CPU 8085 имеет дополнительный регистр в ALU?


11

Начиная с архитектуры процессора 8085, когда ALU выполняет вычисления, результат возвращается к аккумулятору A на следующем фронте тактового сигнала. Но аккумулятор A напрямую подключен как вход ALU, что если бы частота тактового импульса не увеличивалась достаточно быстро, чтобы вызвать добавление A дважды или много раз, было бы чрезвычайно трудно обнаружить такую ​​ошибку, такая конструкция очень " хрупкий "для меня.

Разве в ALU есть дополнительный регистр для временного сохранения результатов ALU?

https://en.wikipedia.org/wiki/Intel_8085#/media/File:Intel_8085_arch.svg

https://en.wikipedia.org/wiki/Intel_8085


2
Это похоже на вопрос для @ KenShirriff ...
duskwuff -inactive-

1
Почему вы думаете, что синхронизация результата ALU с промежуточным регистром не будет иметь таких же возможных проблем, как синхронизация с аккумулятором? В любом случае, вам лучше знать, что ваш ALU дает правильный результат с достаточной настройкой и временем удержания относительно часов.
Фотон

Ответы:


17

Как и подозревал @duskwuff, я изучил это. Чтобы ответить на вопрос, 8085 имеет два дополнительных регистра в ALU.

У 8085 есть несколько «скрытых» регистров: 16-битная пара WZ и два 8-битных вспомогательных регистра ALU: ACT и TMP. WZ является частью файла реестра, в то время как ACT, A (аккумулятор) и TMP находятся в самой схеме ALU.

Вот схема того, как работает ALU:

Регистрация структуры АЛУ 8085-х годов

Регистр ACT имеет несколько важных функций. Во-первых, он содержит вход в АЛУ. Это позволяет записывать результаты из АЛУ обратно в аккумулятор без нарушения ввода, что может привести к нестабильности. Во-вторых, ACT может хранить постоянные значения (например, для увеличения или уменьшения, или для десятичной корректировки), не влияя на аккумулятор. Наконец, ACT разрешает операции ALU, которые не используют аккумулятор.

Одним интересным следствием установки ALU 8085 является то, что значение может быть загружено в аккумулятор только после прохождения через ALU.

Подробная информация о наборе регистров 8085 находится здесь, а подробная информация об ALU здесь .


1
Почему-то я знал, что тебе есть что сказать по этому поводу. : 3
duskwuff -неактив-

2
блестяще ~ (и блог Кена Шириффа и 8085)!
Старкс

5

В синхронных конструкциях важной задачей дизайнера является обеспечение того, чтобы такие вещи не происходили. Регистр, в который "синхронизируются" данные, имеет определенные динамические свойства, такие как время поднятия часов, время удержания часов, стабильность данных до и после изменения тактового сигнала. Если время нарушено, результирующее состояние не гарантируется.

В вашем конкретном случае ALU имеет задержку распространения, и для добавления A дважды необходимо время, чтобы добавить новое A к предыдущему A в сумматоре и результат появится на его выходе. Скорее всего, было смоделировано и рассчитано, что такое не произойдет в пределах определенного разрешенного диапазона тактовой частоты для устройства. Вот почему таблица данных имеет минимальные и максимальные значения часов. Для 8085A-2 написано:

  • Минимальный период цикла CLK: 320 нс
  • Максимальный период цикла CLK: 2000 нс

5

Аккумулятор является выходным регистром АЛУ.

8085 имеет двухфазные часы. Где инструкция одиночного такта как NOP заняла 2 такта. Подобно 8088, использовавшемуся в оригинальном IBM PC, 8088 имел четырехфазную тактовую частоту 4 МГц и выполнял команды со скоростью 1 МГц.

С двумя фазовыми часами у вас есть два такта генератора для каждого цикла инструкций.

Внутренне, для синхронизации, может использоваться любой фронт любых часов. Часы инвертированы, так что на самом деле для синхронизации доступно четыре часа.

Затем у вас есть прозрачные защелки, которые защелкиваются на падающем фронте, и D-триггеры, которые защелкиваются на нарастающем фронте часов.

Прозрачная защелка позволяет входным данным распространяться на выход, начиная с переднего фронта часов, а значения фиксируются на заднем фронте часов.

У 8085 было много вариантов, когда дело дошло до того, чтобы избежать условий расы распространения.

введите описание изображения здесь


«8088 имел четырехфазную тактовую частоту 4 МГц и выполнял команду с частотой 1 МГц» - 8088 имеет только один входной тактовый вывод (хотя он ожидает несимметричные часы с высоким состоянием, которое длится примерно вдвое дольше, чем низкое состояние, которое указывает на то, что он явно выполняет разные действия в этих состояниях, в отличие от большинства современных процессоров, которые всегда синхронизируют все на одном и том же фронте тактовой частоты), так как эти 4-фазные тактовые импульсы генерируются как-то внутренне? Есть ли где-нибудь описание того, как это работает?
Жюль
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.