2016-08-07 64 views
-3

Wie viele Anweisungen könnten bei einer 32-Bit-Architektur in eine 256-Byte-Speichereinheit passen?Wie viele Befehle könnten bei einer 32-Bit-Architektur in eine 256-Byte-Speichereinheit passen?

Könnte jemand erklären, wie Sie diese Antwort bekommen? Ich weiß, dass jeder Befehl 32 Bits ist. Ich weiß, dass die Antwort 9 ist, aber ich weiß nicht, wie man diese Antwort erhält

1 Anweisung = 32 Bits = 4 Bytes.

Dann 256/4 = 64.

Was ich eine Erklärung möchte, wenn möglich ist, was für einen Unterschied es macht, wenn es 32-Bit-Architektur. Das bezieht sich auf die Anweisung richtig? Mit anderen Worten, wenn es eine 64-Bit-Architektur bedeutet, würde das bedeuten; jeder Befehl ist 64 Bits = 8 Bytes, also würden nur 32 Befehle passen.

Bin ich richtig?

Danke!

+0

Nein, Prozessor Anweisungen sind nicht an Bitterkeit der Architektur gebunden. x86 zum Beispiel hat Anweisungen mit variabler Länge. Auch das ist eine Frage, die sehr unklar und vage ist. – milleniumbug

+0

Sie sagen, die Antwort ist 64 Anweisungen in 256 ** Mega ** Bytes? Also ist jede Anweisung 4MiB lang? Auf x86 ist die richtige Antwort eine Anweisung pro Byte. Auf etwas wie MIPS mit 32-Bit-Anweisungen fester Länge lautet die Antwort 256MiB/4B = 2^28/2^2 = 2^26 Anweisungen. –

+0

@PeterCordes OP sagt, dass jeder Befehl 32 Bits ist. IOW, '(4 Bytes) * 64 = 256 MB'. Die Mathematik funktioniert perfekt. Ja. – Mysticial

Antwort

1

Eine 32-Bit-Architektur verwendet nicht notwendigerweise 32-Bit-Befehle. Das 32-Bit teilt Ihnen nur mit, dass Speicheradressen 32 Bit lang sind, also 2 Adressen möglich sind (2 Byte = 4GiB) und Register können ebenso viele Bits speichern.

Anweisungen können abhängig von Ihrer Architektur variable Länge haben.

Wenn Sie beispielsweise eine x86-Architektur (16, 32 oder 64 Bit) haben, haben die Anweisungen eine variable Länge. Die maximale Länge ist theoretisch unbegrenzt. In der realen Welt sind die Anweisungen auf x86-Maschinen auf 15 Byte beschränkt. (See this answer)

Wenn die 15-Byte-Grenze gilt, ist die minimale Anzahl von Anweisungen, die in einer 256-Byte-Speichereinheit gespeichert werden können, ⌊256/15⌋ = 17 Anweisungen. Die kürzest möglichen Anweisungen auf einer x86-Maschine sind nur 1 Byte lang, also würden 256 Anweisungen passen. (x86 Wikipedia article)

Wenn Sie eine RISC-Architektur (reduzierter Befehlssatz) verwenden, haben Anweisungen oft eine feste Länge. Zum Beispiel verwendete die ARM-Architektur anfänglich nur 32-Bit-Befehle, so dass 256/4 = 64 Befehle in Ihre Speichereinheit passen würden. Aktuelle Versionen von ARM (32 Bit oder 64 Bit) haben 32 und 16 Bit lange Anweisungen, um die Codedichte zu erhöhen, so dass theoretisch bis zu 128 Anweisungen in Ihre Speichereinheit passen könnten. (ARM Wikipedia article)