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

Почему получается, что выдаваемая тактовая частота составляет 6,144 МГц, а внутри он (процессор 8085) использует только 3,072 МГц. Также что приводит к конкретному значению 6,144 в часах.

Я нашел ответ на Yahoo.... http://answers.yahoo.com/question/index?qid=20080810090119AAurr2i

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

ответ Yahoo очень плохой. Пожалуйста, простите меня, если вы знаете автора.
хм, только что изучал микропроцессоры в этом семестре, поэтому я понятия не имею, насколько это могло быть неправильно. Я думаю, я получил ответ здесь ... спасибо.
MC6800 был еще более требовательным. Он имел два тактовых входа (phi1, phi2, сдвинутые по фазе примерно на 180 градусов), которые должны были не перекрываться , т. е. одна фаза должна была быть низкой в ​​течение нескольких нс, прежде чем другая могла подняться. Была дополнительная микросхема генератора (MC6810?) для генерации этих тактовых сигналов.
@Curd Неприятное время, и ему приходилось качаться очень близко к ОБЕИМ рельсам подачи (редко в те дни). pdf.datasheetarchive.com/indexerfiles/Scans-000/… MC6871. MC6810 представлял собой микросхему статической оперативной памяти 128 x 8 (!) .

Ответы (5)

Одна из причин разделить часы на два состоит в том, чтобы получить прямоугольную волну даже с 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 гарантирует, что система получит хороший ровный рабочий цикл, по крайней мере.

часто разные этапы микроконтроллера должны быть не в фазе из-за логической задержки. использование генератора с более высокой скоростью и деление вниз и использование двух разных фронтов для разных наборов логики может значительно снизить стоимость устройства. JustJeff точно использует генератор, кратный стандартным тактовым частотам. Это может сделать высокоскоростные передачи очень легкими.
Вы уверены в заявлении рабочего цикла? У меня сложилось впечатление, что цикл инструкции может потребовать нескольких тактов (например, один цикл инструкции, состоящий из цикла выборки и цикла выполнения). Я почти уверен, что даже современные PIC имеют 4-этапный цикл команд, поэтому в таблице данных есть все Fosc / 4.
@ ajs410 - 8085 определенно потребуется несколько тактов для выполнения инструкции; всем 8-битным микропроцессорам того времени (о которых я знаю) требовалось как минимум два такта, чтобы что-то сделать. То, что я имею в виду здесь, является чисто внутренним для чипа. Если вы посмотрите на блок-схемы этих старых зверей, вы увидите, что у них есть некоторые внутренние шины, временные регистры и так далее, и я предполагаю, что именно они могут использовать оба ребра. Любые внешние циклы шины будут выполняться между фронтами одной полярности.

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

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

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

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

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

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

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

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

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

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

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

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

Некоторые старые чипы пошли еще дальше. Когда-то, если ваш чип имел 16-разрядную адресную память, но внешняя адресная шина была только 8-разрядной, то вы были бы знакомы с включением блокировки адреса. Один тактовый цикл отправляет старшие 8 бит 16-битного адреса, а следующий тактовый цикл отправляет младшие 8 бит. Затем третий цикл может читать/записывать переменную из/в память.

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

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

Внутри ядра 8085A требуется двухфазный тактовый сигнал. Внутренняя логика, которая выводит две фазы тактового сигнала, также делит входной тактовый сигнал на два. Как указывалось ранее, причина использования входной тактовой частоты 6,144 МГц заключается в скорости передачи данных, чип будет нормально работать на частоте 6 МГц. Чип на самом деле рассчитан на 3 МГц, требуя кварца 6 МГц, но успешно работает с частотой 6,144 МГц, что упрощает генерацию скорости передачи (Uart может работать на частоте 6,144 МГц от генератора, управляющего 8085, или на 3,072 МГц от выхода CLK 8085). предоставляя множество пригодных для использования скоростей передачи). Я до сих пор использую эти архаичные чипы для выполнения специальных функций в некоторых своих роботах. Я тактирую Uart с их собственным генератором, а 8085A тактирую с генератором на 6,4 МГц, который запускает чип на частоте 3,2 МГц. 3. 2 МГц хорошо делится, чтобы обеспечить тактовую частоту 40 кГц для моих ультразвуковых преобразователей. Имеет больше смысла использовать более современные микросхемы в моих ботах, но у меня есть масса старых 8085, Z80, 63C09 и 63C09E, 68B09 и 68B09E и т. д., с которыми мне очень нравится играть.

Часы — это не что иное, как момент, когда вы хотите, чтобы произошло событие. Теперь мы не предпочитаем запуск по уровню в цифровых схемах, потому что, когда дается больше времени, может произойти взаимодействие между различными схемами внутри микропроцессора, что приведет к коротким замыканиям. Итак, мы ПРИНИМАЕМСЯ В ТРИГГЕРИНГ ПО КРАЯМ. Теперь микропроцессор не знает, когда произошло срабатывание по фронту. Он понимает только 1 или 0. Поэтому требуется триггер для выдачи 1 и 0 всякий раз, когда обнаруживается фронт тактового сигнала. Таким образом, становится необходимым использовать флип-флоп. В результате тактовая частота делится на два.