Байт адресуемой памяти и ISA

682
O.A.

Я пытаюсь прояснить некоторую путаницу в отношении архитектуры набора команд и того, как осуществляется доступ к памяти. По сути, я знаю, что в адресной памяти байтов данные хранятся побайтово или в порядке байтов. Теперь, если у нас есть 32-битный процессор, это означает, что мы можем использовать 32-битные регистры; Шины данных передают 4 байта данных за раз в каждом такте? Кроме того, инструкции также длиной 32 бита? Как это влияет на размер кода операции в зависимости от размера операнда?

1
Быстрый псевдо-ответ: размер команды не зависит от размера регистра данных; Шины данных к основной памяти часто шире и, как правило, используются для заполнения блока кеша за один раз (через несколько «ударов» [двойной цикл шины для DDR]), соединение между кешем L1 и ядром может быть * шире *, чем ядро регистры общего назначения для поддержки пары загрузки / множественных операций или загрузки / хранения регистров FP / SIMD с единым доступом (если они больше, чем GPR), и два банка могут быть доступны одновременно для поддержки несогласованного доступа. (Icache также может предоставлять более 1 инструкции за цикл.) Paul A. Clayton 9 лет назад 0
Этот вопрос слишком широкий, потому что ответы могут значительно отличаться в зависимости от ISA. bwDraco 9 лет назад 0

1 ответ на вопрос

0
Varaquilex

do data buses transfer 4 bytes of data at a time at each clock cycle?

This is entirely up to the system design, but I'm gonna say yes, they transfer 4 bytes of data at each clock cycle (if they are instructed to, ofcourse) assuming that you are a computer engineering/science student taking a computer organization/architecture class. However, this might not always be the case as contemporary computer architectures are far more sophisticated than what you see in your computer organization/architecture course.

I recommend you to read Everything you need to know about DDR, DDR2 and DDR3 memories so that you can have an idea how double data rate transfers occur.

Also, are the instructions also 32 bits long?

Not necessarily. It's up to the design system. I recommend you read about RISC and CISC architectures.

[Source] For example, A Complex Instruction Set Computer (CISC) with IA-32 (namely Intel i386 architecture) might have instructions of length 1 byte to 12 bytes (8 bits to 96 bits) while it has 32-bit data registers.

How does that affect the opcode size versus the operand size?

Again, completely up to the design decisions.

Похожие вопросы