чи має 8085 CPU додатковий регістр в межах 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 дає дійсний результат при достатній налаштуванні та утримуванні часу щодо годинника.
The Photon

Відповіді:


17

Як підозрював @duskwuff, я розглядав це. Щоб відповісти на питання, 8085 має два додаткові регістри в АЛУ.

У 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
сутінки -активний-

2
блискучий ~ (і блог Кена Ширріфа, і 8085)!
starx

5

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

У вашому конкретному випадку ALU має затримку розповсюдження, і щоб додати A два рази, повинен бути час, поки новий A буде доданий до попереднього A у складі суматора і результат з’явиться на його виході. Найімовірніше, було імітовано та обчислено, що подібне не відбудеться у визначеному дозволеному діапазоні тактових частот для пристрою. Ось чому таблиця явно має мінімальні та максимальні номери годин. Для 8085A-2 написано:

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

5

Акумулятор - це вихідний реєстр АЛУ.

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

За допомогою двохфазних годин ви маєте два цикли осцилятора для кожного циклу інструкцій.

Внутрішньо для встановлення часу можна використовувати будь-який край будь-якого годинника. Годинники перевернуті, так що насправді є чотири годинники для синхронізації.

Тоді у вас є прозорі засувки, які фіксуються на падаючій кромці, і D-Flip Flops, які фіксуються на піднімається краю годинника.

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

У 8085 було багато варіантів, коли справа стосувалася уникнення умов перегонів для поширення.

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


"8088 мав чотирифазний тактовий годинник 4 МГц і виконував інструкцію зі швидкістю 1 МГц" - 8088 має лише один вхідний тактовий штифт (хоча він очікує несиметричного тактового часу, при цьому високий стан триває приблизно вдвічі довше, ніж низький стан, що внутрішньо вказує, що в цих станах явно робиться різна річ, на відміну від більшості сучасних процесорів, які завжди тактовують все на одній і тій самій грані годинника. Чи є десь опис того, як це працює?
Жуль
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.