Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по типам > Микроконтроллеры > HC08 > Архитектура |
|
||||||||||||
Функциональное описание CPUНиже следует обзор архитектуры CPU HC08 с описанием работы важнейших блоков CPU. CPU, как это видно из Рис.7, состоит из двух основных блоков: блока управления и блока выполнения. Блок управления, в свою очередь, состоит из конечного автомата с разнообразной логикой управления и синхронизации. Выходы этого блока управляют блоком выполнения, содержащим арифметико-логическое устройство (ALU), регистры и шинный интерфейс.
Рис. 7. Блок-схема CPU Внутреннее тактированиеТактирование CPU08 организуется четырехфазным тактовым сигналом, фазы которого обозначаются T1, T2, T3 и T4. Синхронизация шины CPU организуется тактовым импульсом по каждой фазе, как это показано на Рис. 8. Для упрощения последующих диаграмм считается, что импульсы фаз T объединены в единый тактовый сигнал, названный тактовым сигналом CPU. Начало тактового сигнала CPU приходится на передний фронт импульса T1, хотя адрес, связанный с этим циклом не будет выдан на шину адреса до поступления импульса T3. Отметим, что новый адрес выведет соответствующие данные через половину цикла шины. Например, чтение данных, соответствующих новому значению счетчика команд, генерируемого в фазах T1/T2 цикла 1 (См. Рис.8), не будет считано до наступления фазы T2 следующего цикла.
Рис. 8. Детальное представление внутреннего тактирования CPU Блок управленияБлок управления содержит секвенсер - формирователь последовательности состояний, память управления и логику произвольного управления. Эти блоки составляют конечный автомат, генерирующий сигналы управления блоком выполнения. Секвенсер формирует последовательность состояний для управления управляющей памятью, базирующуюся на содержимом регистра команд (IR) и текущем состоянии конечного автомата. Управляющая память стробируется (разрешается) когда очередное состояние входа стабилизируется, формируя выход, представляющий декодированное условие следующего состояния блока выполнения (EU). Этот результат, с помощью некоторой произвольной логики, используется для генерации сигналов управления, которые конфигурируют блок выполнения. Произвольная логика выбирает соответствующие сигналы и добавляет сигналы синхронизации управляющей памяти. Блок управления срабатывает один раз на каждый цикл шины но срабатывает почти на целый цикл раньше блока выполнения для обеспечения декодирования и генерации всех управляющих сигналов для следующего цикла. Последовательная природа конечного автомата показана на Рис.9. Сeквенсер содержит также, и управляет его работой, регистр OPCODE LOOKAHEAD, который используется для предварительной выборки следующей команды. Тактирование этой операции обсуждается в подразделе Выполнение команды. Тактовая частота CPU
Рис. 9. Тактирование блока управления Блок выполненияБлок выполнения (EU) содержит все регистры, АЛУ и шинный интерфейс. С каждым циклом шины вычисляется новый адрес, передачей содержимого выбранного регистра по внутренней шине данных в буферы адреса. Отметим, что новый адрес приведет к соответствующим данным через половину цикла шины. Блок выполнения также содержит некоторую логику специальных функций для таких команд, как: DAA, MUL и DIV. Выполнение командКаждая команда выполняется в границах, определяемых конечным количеством циклов T1-T2-T3-T4. Все команды отвечают, во время их выполнения, за выборку следующего операционного кода (опкода) из регистра OPCODE LOOKAHEAD. Содержимое регистра OPCODE LOOKAHEAD копируется в регистр команд во время последнего цикла команды. Выполнение новой команды начинается с цикла T1 после того как она будет загружена в регистр команд. Отметим, что все команды отвечают за инкремент счетчика команд (PC) после предварительной выборки следующей команды. Таким образом, по завершении выполнения команды (т.е. на границе выполнения команды) счетчик команд будет отмечать байт следующий за операционным кодом, выбранным командой. Пример последовательности команд, касающихся активности шин адреса и данных, относительно границ команд, показан на Рис.10. Сигнал блока управления, OPCODE LOOKAHEAD, указывает цикл, когда выбирается следующий операционный код. Другой управляющий сигнал, LASTBOX, указывает последний текущий цикл выполняемой команды. В большинстве случаев, OPCODE LOOKAHEAD и LASTBOX активны в одно и то же время. Однако, для ряда команд, сигнал OPCODE LOOKAHEAD выбирается в команде раньше и следующий операционный код предвыбирается и сохраняется в регистре предварительного просмотра до окончания выполняемой команды. В примере границ команд (Рис.10) OPCODE LOOKAHEAD и LASTBOX устанавливаются одновременно во время выполнения TAX и INCX, но индексированная команда LDA, с 8-разрядным смещением, выбирает следующий операционный код перед последним циклом. См. Рис.11. Выделенные команды Рис.10 иллюстрируются на Рис.11. ORG $50 FCB $12 $34 $56 ORG $100 0100 A6 50 LDA #$50 ;A = $50 PC=$0103 0102 97 TAX ;A -> X PC=$0104 0103 e6 02 LDA 2, x ;[X+2] -> A PC=$0106 0105 5c INCX ;X = X+1 PC=$0107 0106 c7 80 00 STA $8000 ;A -> $8000 PC=$010A Рис. 10. Границы команд
Рис. 11. Временная диаграмма выполнения команд
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|