Чому в мікропроцесорі 8085 тактова частота ділиться на два?


16

Чому так, що вироблена тактова частота становить 6,144 МГц, але внутрішньо вона (8085 процесор) використовує лише 3,072 МГц. Також те, що призводить до конкретного значення 6,144 в годиннику.

Я знайшов відповідь у Yahoo .... http://answers.yahoo.com/question/index?qid=20080810090119AAurr2i

але мушу визнати, що я все-таки не сприйняв це добре. Невже хтось із вас, хлопці, може викинути кілька рядків на це, будь ласка?


2
відповідь Yahoo дуже дуже погана. Пробачте, будь ласка, якщо ти знаєш письменника.
Кортук

Хм, я просто взяв мікропроцесори цей семестр, тому я не маю уявлення, наскільки це могло бути. Напевно, я отримав відповідь тут ... дякую.
loxxy

1
MC6800 був ще більш вимогливим. Він мав два тактові входи (phi1, phi2, приблизно 180 ступінчасті фази зміщені), які не повинні перекриватися , тобто одна фаза повинна була бути низькою для деяких нс, перш ніж іншому було дозволено піднятися. Був додатковий генератор IC (MC6810?) Для генерування цих синхросигналів.
Сир

1
@Curd Неприємний термін, і йому довелося розгойдуватись дуже близько до рейок постачання (рідкість в ті дні). pdf.datasheetarchive.com/indexerfiles/Scans-000/… MC6871. MC6810 являв собою статичний чіп оперативної пам'яті розміром 128 x 8 (!).
Spehro Pefhany

Відповіді:


15

Однією з причин поділу годинника на два є отримання рівномірної квадратної хвилі на 50% робочого циклу. Можливо, 8085 використовує внутрішньо обоє краї годин, і він не функціонує, якби половина циклу була набагато коротшою, ніж інша.

У часи, коли 8085 рік був новим, ці прекрасні консервовані осцилятори не були звичайними, і люди часто обмотували годинникові ланцюги з дискретних кристалів, конденсаторів та логічних воріт. Поділ на два гарантує, що у вас однаково розташовані піднімаються і падаючі краї.

Що стосується 6,144 МГц, ви побачите, що воно може бути розділене на ціле число, щоб отримати загальні значення швидкості передачі, принаймні до 38400.


слідувати ...

Переглядаючи інформаційний аркуш Intel для 8085, є три цікаві твердження

  1. 8085 включає в себе всі функції, які генератор тактового пристрою 8224 та системний контролер 8228 забезпечували для 8080A

  2. X1 і X2: підключені до кристалічної, LC або RC мережі для управління внутрішнім тактовим генератором. Вхідна частота ділиться на 2, щоб дати внутрішню робочу частоту процесора.

  3. CLK: тактовий вихід для використання в якості системного годинника. Період CLK вдвічі перевищує вхідний період X1, X2.

Отже, міркуваннями щодо використання непарних країв годинника для переміщення предметів всередині вбік, стає очевидним, що коли вони проектували 8085, Intel заміняла потребу в спеціальному контролері годинника, інтегруючи цю функцію в мікросхему. Поділ часової бази X1-X2 навпіл, перш ніж виводити її як CLK, гарантує, що система отримує хороший рівномірний робочий цикл, якщо нічого іншого.


1
часто різні етапи мікроконтролера повинні бути поза фазою через логічну затримку. використання осцилятора з більшою швидкістю, розділення та використання двох різних ребер для різних наборів логіки може значно знизити вартість пристрою. JustJeff виявляється за допомогою осцилятора, що є кратним стандартних тактових частот. Це може зробити швидкісні передачі дуже легко.
Кортук

2
Ви впевнені в заяві про робочий цикл? У мене склалося враження, що цикл інструкцій може зажадати декількох тактових циклів (наприклад, один цикл інструкцій, що складається з циклу отримання та циклу виконання). Я впевнений, що навіть у сучасних ПІК є 4-ступінчастий цикл інструктажів, саме тому є весь Fosc / 4 на всьому
листі

1
@ ajs410 - 8085 обов'язково потребує декількох циклів годин, щоб виконати інструкцію; всі 8-бітні мікросередовища з того часу (про які я знаю) потребували щонайменше двох годин, щоб зробити що-небудь. Те, про що я говорю тут, суто внутрішнє для чіпа. Якщо ви подивитеся на блок-схеми для цих старих звірів, ви можете побачити, що у них є деякі внутрішні шини, тимчасові регістри тощо, і я вважаю, що це, можливо, використовують обидва краї. Будь-які зовнішні цикли шини будуть проходити між ребрами однакової полярності.
JustJeff

6

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

Я підозрюю, що практично кожен «реєстр» (як видимі програмісту регістри наборів інструкцій, так і внутрішні фіксатори мікроархітектури) в ЦПУ тієї епохи зберігав дані в прозорій засувці D або в чомусь подібному. На сьогоднішній день на мікросхемі є багато транзисторів, тому простіше використовувати повноцінні джентльмени D-master, хоча вони використовують вдвічі більше транзисторів.

Багато інструкцій беруть дані з якогось регістра A, поєднують його з деякими іншими даними з ALU і зберігають результат назад в регістрі А. Це досить легко зробити, якщо реєстр A реалізований з повним F-flop флот-ведучого.

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

Для цього потрібен 2-фазний годинник. Найпростіший спосіб зробити 2-фазний тактовий годинник, що не перекривається (у ті часи, коли транзистори були дефіцитними), був невеликий зовнішній ланцюг, який приймає вхідний такт і ділить його на два.

З плином часу люди зрозуміли, як упакувати все більше транзисторів на ІС. Тож люди, що проектують процесори, інтегрували все більше речей навколо процесора у повну комп’ютерну систему на чіп процесора.

Читаючи між рядками статті про сигнал годинника Wikipedia , у мене складається враження, що люди, які сконструювали 8085 та 6502 та інші мікросхеми тієї епохи, мали лише трохи більше місця, ніж попередні покоління інтегрованих процесорів, і вони вирішили найкраще використання цієї кімнати полягало в тому, щоб поставити цю маленьку зовнішню схему на мікросхему. Але вони зберігали всі регістри в тій самій засувці, що закрилася, як і раніше.

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


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

1
З моменту написання сказаного я розглядав дизайн 6502; багато внутрішніх шин приводяться безумовно високо на одній тактовій фазі, і тоді під час іншої тактової фази вибраний реєстр може знизити відповідні біти. Якщо є, наприклад, п'ять регістрів, які можуть виводити на шину, це означає, що замість того, щоб підключати пристрої для виходу кожного реєстру, чіп може просто використовувати один комутований підключаючий пристрій та два два послідовні провідні транзистори для кожного регістра щоб тягнути автобус вниз, якщо це доречно. Я б очікував, що 8085 майже напевно використовує подібні хитрощі.
supercat

2

Існує маса причин розділити цикл інструкцій на кілька тактових годин. Хороший приклад - доступ до основної шини пам'яті.

Більшість сучасних процесорів - це архітектури Фон-Неймана; тобто їх код і дані існують в одній мікросхемі пам'яті. Ну, якщо ви хочете прочитати інструкцію, і ця інструкція буде завантажувати змінну з пам'яті ... це два доступу до пам'яті. Але більшість пам'яті - це лише однопортові (тобто вони можуть робити лише одне читання або запис за цикл). То як ви читаєте інструкцію та читаєте свою змінну?

Рішення полягає у використанні двоступеневого циклу інструкцій. Перший етап отримає інструкцію з пам'яті, а другий етап зможе прочитати (або записати!) Змінну з основної пам'яті.

Деякі старі фішки пішли ще далі. Ще в той день, якщо ваш чіп мав 16-бітову пам'ять, яка адресована, але зовнішня шина адреси лише 8-біт, то ви були б знайомі з включенням виправлення адреси. Один тактовий цикл посилає верхні 8-бітові 16-бітові адреси, а наступний тактовий цикл посилає нижні 8-бітові адреси. Потім третій цикл міг прочитати / записати змінну з / в пам'ять.

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


3
Я не думаю, що ОП запитує, чому ви поширили інструкцію на кілька годин, а навпаки, чому 8085 розроблений так, щоб вимагати, щоб ви годували його 2-годинним годинником (який він потім ділить всередині), а не просто брати призначений тактова частота безпосередньо.
JustJeff

1
все, що ви сказали про інструкції, ввімкнено.
JustJeff

1

Всередині ядра 8085A потрібен двофазний годинник. Внутрішня логіка, яка походить від двох фаз тактової частоти, також ділить вхідний такт на два. Як було зазначено раніше, причиною використання тактових частот вхідної частоти 6,144 МГц є швидкість передачі даних, чіп буде працювати нормально на частоті 6 МГц. Насправді чіп оцінюється в 3 МГц, вимагаючи кристала 6 МГц, але він працює щасливо з частотою 6,144 МГц, що забезпечує легше генерування швидкості передачі даних (Uart може бути синхронізований або з 6,144 МГц від генератора, що керує 8085, або на 3,072 МГц від виходу CLK 8085 забезпечення багатьох корисних ставок Бода). Я все ще використовую ці архаїчні чіпи для виконання спеціальних функцій у деяких моїх роботів. Я тактовую час Uarts з власним генератором, а 8085A - 6,4 МГц, який працює на 3,2 МГц. 3. 2 МГц добре поділяється, щоб забезпечити 40 кГц годин для моїх ультразвукових перетворювачів. Більше сенсу використовувати більш сучасні пристрої ІС у своїх «ботах», але у мене є тонна старих 8085-х, Z80, 63C09 та 63C09E, 68B09 та 68B09E тощо, з якими мені дуже подобається грати.


0

Годинник - це не що інше, як момент, коли ви хочете, щоб відбулася подія. Тепер ми не віддаємо перевагу спрацьовуванню рівня в цифрових схемах, оскільки, коли приділяється більше часу, може виникати взаємодія між різними схемами в мікропроцесорі, що призводить до коротких замикань. Таким чином, ми МАЄМО ДЛЯ ТРИГІНГУВАННЯ EDGE. Тепер мікропроцесор не знає, коли сталося запуску краю. Він розуміє лише 1 або 0. Отже, фліп-флоп необхідний для отримання 1 і 0 кожного разу, коли буде виявлено край годинника. Таким чином, стає необхідним використовувати фліп-флоп. В результаті тактова частота ділиться на два.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.