Я чего-то не понял или где-то шины шире чем 8 бит?
Еще не догоняю как по той же 8-разрядной шине передаются данные от 10-разрядного АЦП. Помогите разобраться, плиз.


Смотрю... Только там разрядность шины не указана... )))GP1 писал(а):А с чего ты взял что инструкции передаются по шине данных
смотри внимательнее на левую часть рисунка.
Я вообще в электронике не спец, пытаюсь вот разобраться в микроконтроллерах.uldemir писал(а):Я в AVR не спец, но я не вижу чёрточки со стрелочкой от памяти программ к "восьмибитной шине данных".
Только на схемках Гарвардской архитектуры, которую обычно рисуют, блоков гораздо меньше, чем здесь.uldemir писал(а):Не забывайте, это не фон Неймановская архитектура, а Гарвардская.
То есть значения из этих регистров за 2 такта пересылаются?YS писал(а):А АЦП имеет два регистра данных, ADCH и ADCL. Восьмибитных.
Количество блоков не имеет никакой связи с типом архитектуры, оно зависит от особенностей конкретного МК. В данном случае архитектура определяет только принцип адресации. В микроконтроллерах AVR команды не передаются по шине данных.Только на схемках Гарвардской архитектуры, которую обычно рисуют, блоков гораздо меньше, чем здесь.
Нет. Это другое адресное пространство, ибо гарвардская архитектура.Надо понимать, что 16-разрядная инструкция из Instruction Register загружается в два 8-битных регистра General Purpose Registers?
Это линии управления логикой. Instruction Decoder - это и есть блок, обрабатывающий шестнадцатибитные инструкции и управляющий АЛУ. Как не трудно видеть, он соединен с Flash памятью отдельной шестнадцатибитной шиной, не пересекающейся с шиной данных. Из блок-схемы видно, что команды и данные на АЛУ поступают по разным шинам с разной разрядностью.Что это за стрелка Control Lines, которая выходит из блока Instruction Decoder?
Как захотим, так и перешлем. Мы должны сами явно их читать.То есть значения из этих регистров за 2 такта пересылаются?
А тогда что означают стрелки, идущие из Instruction Register к General Purpose Register и Data SRAM?YS писал(а):Instruction Decoder - это и есть блок, обрабатывающий шестнадцатибитные инструкции и управляющий АЛУ. Как не трудно видеть, он соединен с Flash памятью отдельной шестнадцатибитной шиной, не пересекающейся с шиной данных. Из блок-схемы видно, что команды и данные на АЛУ поступают по разным шинам с разной разрядностью.
Если в регистре инструкций формируются управляющие сигналы в соответствии с кодом команды, то чем же тогда занимается декодер команд?GP1 писал(а):Это означает, что в регистре инструкций формируются управляющие сигналы для взаимодействия между различными устройствами в МК в соответствии с кодом команды.
А почему нельзя слать байт за байтом? Например, переслал младший байт, потом переслал старший байт? (так оно и происходит во многоих МК и МП).ktb писал(а):При чтении даташита на ATMega16 я не смог разобраться каким образом по 8-битной шине данных Data Bus 8-bit передаются 16-разрядные инструкции Most AVR instructions have a single 16-bit word format. На картинке нарисовано, что шина восьмиразрядная, а инструкции 16-разрядные, да еще и выполняются часто за один такт.![]()
Я чего-то не понял или где-то шины шире чем 8 бит?
Еще не догоняю как по той же 8-разрядной шине передаются данные от 10-разрядного АЦП. Помогите разобраться, плиз.
Это понятно, только стрелки к памяти идут до блока дешифратора команд.Stalker46 писал(а):Он их декодирует. При этом на выходе дешифратора команд сигналы идут на АЛУ, Память, например, т.е. активирует те устройства, которые необходимы для выполнения текущей команды.
Program Counter - это счетчик команд, вроде. А регистр команд - это Instruction Register. О чем именно речь?Stalker46 писал(а):Да, и еще, не всегда в регистре команд (Program counter) содеджится 2 байт. Может и 1.
Изначально меня смутило то, что многие команды выполняются за 1 такт.Stalker46 писал(а):А почему нельзя слать байт за байтом? Например, переслал младший байт, потом переслал старший байт? (так оно и происходит во многоих МК и МП).
Да, точно, ошибся.ktb писал(а):Это понятно, только стрелки к памяти идут до блока дешифратора команд.Stalker46 писал(а):Он их декодирует. При этом на выходе дешифратора команд сигналы идут на АЛУ, Память, например, т.е. активирует те устройства, которые необходимы для выполнения текущей команды.Получается, что вроде как прям из регистра инструкций что-то шлется в регистровый файл и ОЗУ.
Program Counter - это счетчик команд, вроде. А регистр команд - это Instruction Register. О чем именно речь?Stalker46 писал(а):Да, и еще, не всегда в регистре команд (Program counter) содеджится 2 байт. Может и 1.
Попробую по-другому мысль сформулировать...YS писал(а):Если кто не в курсе, команда содержит адреса операндов. Вот они то и передаются дешифратору адреса памяти и регистров.
дешифратор адреса - это вообще отдельное устройство. И к дешифратору команд и регистру команд никакого отношения не имеет.ktb писал(а):Попробую по-другому мысль сформулировать...YS писал(а):Если кто не в курсе, команда содержит адреса операндов. Вот они то и передаются дешифратору адреса памяти и регистров.
Понятно, что адреса операндов в команде содержатся, но как АЛУ понимает по какому адресу данные взять, если команда из регистра команд еще не поступила в дешифратор команд? Если бы стрелки к памяти и регистрам шли после дешифратора команд, то я бы это понял...
Почитал AVR Instruction Set.
Насколько я понимаю, поля адресов операндов в команде не находятся в фиксированной позиции. Вариантов много... Пока команда не дешифрована в Instruction Decoder, неизвестно с какого по какой бит считывать адреса.
Как тогда Instruction Register знает по какому адресу обращаться с помощью Direct Addressing, если команда еще не дошла до Instruction Decoder?
Упомянутый дешифратор адреса находится в регистре команд или дешифраторе команд?
Почему это? Это при какой адресации? Только при косвенной регистровой и прямой.YS писал(а):Если кто не в курсе, команда содержит адреса операндов.
Stalker46 писал(а):Пуста дв. комбинация 00000001 поступила из ПЗУ. Она сразу засылается в регистр команд. Пусть эта дв. комбинация декодируется как "сложить содержимое регистров А и В. Дешифратор команд активирует регистр А и В, а также АЛУ на режим сложения.
Данные по шине данных передаются в АЛУ из регистров А и В. Содержимые регистров складываются.
А где оно находится на схеме, в каком блоке?Stalker46 писал(а):дешифратор адреса - это вообще отдельное устройство. И к дешифратору команд и регистру команд никакого отношения не имеет.
У нас-то вроде прямая.Stalker46 писал(а):Почему это? Это при какой адресации? Только при косвенной регистровой и прямой.

на схеме он не показанktb писал(а): А где оно находится на схеме, в каком блоке?
Да, поэтому не при всех типах адресации команда - это всего лишь КОП и адрес операнда. Например, при неявной адресации никаких адресов не используется.У нас-то вроде прямая