Почему в микропроцессоре 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 градусов), которые должны были не перекрываться , то есть одна фаза должна была быть низкой в ​​течение нескольких нс, прежде чем другой фазе позволили подняться. Для генерации этих тактовых сигналов использовалась дополнительная ИС генератора (MC6810?).
Творог

1
@Curd Неприятный выбор времени, и он должен был качаться очень близко к ОБОИ рельсам снабжения (редкий в те дни). pdf.datasheetarchive.com/indexerfiles/Scans-000/… MC6871. MC6810 был статическим чипом ОЗУ 128 x 8 (!).
Спехро Пефхани

Ответы:


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
Вы уверены в утверждении рабочего цикла? У меня сложилось впечатление, что цикл команд может потребовать нескольких тактов (например, один цикл команд, состоящий из цикла выборки и цикла выполнения). Я почти уверен, что даже у современных PIC есть 4-этапный цикл инструкций, поэтому в таблице есть все Fosc / 4
ajs410

1
@ ajs410 - 8085 определенно потребуется несколько тактов для выполнения инструкции; все 8-битные микроэлементы того времени (о которых я знаю) требовали как минимум двух часов, чтобы что-то сделать. То, что я имею в виду здесь, является чисто внутренним для чипа. Если вы посмотрите на блок-схемы для этих старых зверей, вы увидите, что у них есть некоторые внутренние шины, временные регистры и т. Д., И я предполагаю, что они могут использовать оба ребра. Любые внешние циклы шины будут проходить между краями одинаковой полярности.
JustJeff

6

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

Я подозреваю, что практически каждый «регистр» (как видимый программисту регистр набора команд, так и внутренние защелки микроархитектуры) в ЦП той эпохи хранил данные в прозрачной стробированной D-защелке или что-то подобное. В настоящее время в микросхеме много транзисторов, поэтому проще использовать полные триггеры типа «ведущий-ведомый», хотя они используют вдвое больше транзисторов.

Многие инструкции берут данные из некоторого регистра A, объединяют его с некоторыми другими данными с ALU и сохраняют результат обратно в регистр A. Это довольно легко сделать, если регистр A реализован с полным триггером D-master-slave.

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

Это требует двухфазных часов. Самый простой способ сделать неперекрывающиеся 2-фазные часы (в те дни, когда транзисторов было мало) - это небольшая внешняя схема, которая берет входные часы и делит их на два.

Со временем люди выяснили, как упаковать все больше и больше транзисторов в ИС. Таким образом, люди, разрабатывающие ЦП, все больше и больше интегрировали все компоненты ЦП в полную компьютерную систему в чип ЦП.

Читая между строк статьи о тактовых сигналах в Википедии , у меня складывается впечатление, что у людей, которые проектировали 8085, 6502 и другие чипы той эпохи, было немного больше места, чем в интегрированных процессорах предыдущего поколения, и они решили, что лучше. использование этой комнаты состояло в том, чтобы поместить эту маленькую внешнюю цепь в чип. Но они сохранили все регистры той же закрытой D-защелки, что и раньше.

Вот почему тактовая частота делится на два. Можно вспомнить, что первый внешний тактовый импульс генерирует импульс во внутреннем тактовом сигнале phase_one для обновления этого промежуточного регистра результата, а второй импульс из внешнего тактового генератора генерирует импульс во внутреннем тактовом сигнале phase_two для обновления видимого программистом регистра.


Если защелка никогда не будет проходить больше нескольких микросекунд без перезагрузки, можно еще больше упростить схему, так что «защелка» - это не что иное, как проходной затвор с одним транзистором и инвертор.
Суперкат

1
С момента написания выше, я посмотрел на дизайн 6502; многие из внутренних шин безоговорочно возбуждаются на одной тактовой фазе, а затем на другой тактовой фазе выбранный регистр может устанавливать соответствующие биты на низком уровне. Если имеется, например, пять регистров, которые могут выводить на шину, это означает, что вместо необходимости в подтягивающем устройстве для каждого выхода регистра, микросхема может просто использовать одно коммутируемое подтягивающее устройство и два двух последовательных транзистора для каждого регистра. чтобы снять автобус, если это необходимо. Я ожидаю, что 8085 почти наверняка использует подобные трюки.
суперкат

2

Есть много причин разделить цикл команд на несколько тактов. Хорошим примером является доступ к шине основной памяти.

Большинство современных процессоров являются архитектурами фон Неймана; то есть их код и данные существуют в одном и том же чипе памяти. Ну, если вы хотите прочитать инструкцию, и эта инструкция будет загружать переменную из памяти ... это два обращения к памяти. Но большая часть памяти только однопортовая (то есть она может выполнять только одно чтение или запись за цикл). Итак, как вы читаете инструкцию и читаете переменную?

Решение состоит в том, чтобы использовать двухэтапный цикл инструкций. Первый этап извлекает инструкцию из памяти, а второй этап может затем прочитать (или записать!) Переменную из основной памяти.

Некоторые старые чипы пошли еще дальше. В свое время, если ваша микросхема имела 16-битную адресуемую память, а внешняя адресная шина только 8-битная, то вы были бы знакомы с Address Latch Enable. Один тактовый цикл отправляет старшие 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

Часы - это не что иное, как момент, когда вы хотите, чтобы произошло событие. Теперь мы не предпочитаем запуск уровня в цифровых цепях, потому что, когда дается больше времени, может происходить взаимодействие между разными цепями в микропроцессоре, что приводит к коротким замыканиям. Таким образом, мы идем к краю TRIGGERING. Теперь микропроцессор не знает, когда произошел запуск по фронту. Он понимает только 1 или 0. Таким образом, триггер необходим для получения 1 и 0 при каждом обнаружении фронта тактового сигнала. Таким образом, становится необходимым использовать триггер. В результате тактовая частота делится на два.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.