ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 15.06.2025
Просмотров: 4572
Скачиваний: 2
15.5. Микропрограммирование
•в поле «считывания» означают А = I или В — 1^ что в накапли вающий регистр (accumulator) А либо в регистр В переводятся данные с шины данных.
• В поле «запись» при AL = 1 результат счета ALU передается на шину, при 1т — i постоянная А — (Аз, ^2, AI^AQ) последним словом подается на шину.
• Последнее поле А = (Аз, А2, Ai, AQ) содержит константы или адреса величин, запомненных во внешних ЗУ, или адрес пере ходов микропрограммы.
Р и с . 15.5. Операционный блок для примера микропрограммы, показанной в табл. 15.2.
На основе этих исходных данных можно следуюш;им образом за программировать сложение констант ЮООв и 0011в-
Для d = О получаем три строчки микропрограммы:
0000010011000
0000001010011
1101010100000
Глава 15. Принципы построения микропроцессоров
В первой строке вследствие Тщ = ^ константа ЮООв подается на шину данных и вследствие А = I записывается в накопительном ре гистре. Во второй строке константа 0011в загружается в регистр В. В третьей строке проводится сложение {S = (»5з, ^2, S^i, So) = (HOI) и М == 0) и результат запоминается в накопительном регистре {А = I). Кроме того, выход АЛУ подключается к шине данных {Ai = 1).
Таблица 15.2. Микропрограмма для указанного вьпые примера.
АЛУ |
Считывание |
Запись |
Адрес/константа |
|||||||||
5з |
S2 |
5i |
So |
M |
A |
В |
AL |
IM |
Аз |
A2 |
Al |
Ao |
d |
d |
d |
d |
d |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
d |
d |
d |
d |
d |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
d |
d |
d |
D |
Составляющий микропрограмму программист должен иметь при этом точную информацию об аппаратных средствах. Так, в приве денном примере при последней команде результат сложения содер жания регистров А и В вновь записывается в А. Это может про исходить только при одинаковых тактовых сигналах, когда либо регистр А управляется двумя фронтами, либо время запаздывания линий в АЛУ достаточно велико. При этом тактовый сдвиг фазо вого сигнала должен контролироваться достаточно точно.
15.6. Упражнения
Задача 15.1. Каковы достоинства и недостатки совместного хра нения данных и команд в том же самом ЗУ в компьютере фонНеймана?
Задача 15.2. Что произойдет, если в операционном блоке, показан ном на рис. 15.5, переменные А^ — \ VL 1^ = 1 будут сдвинуты? Что следует из этого J\RR программирования блоков?
ГЛАВА 16 СТРУКТУРА, СИСТЕМА КОМАНД
ИРАБОТА МИКРОПРОЦЕССОРА
16.1.Структура микропроцессора
Структура микропроцессора описывается на примере микропроцес сора 8085А компании Intel [19, 22]. Микропроцессор 8085А предста вляет собой 8-битный процессор, что означает, что шина данных имеет ширину 8 бит. Адреса имеют ширину 16 бит, что соответ ствует адресуемому адресному пространству 64 кБайт. Один байт состоит из 8 бит.
Микропроцессор 8085А требует напряжения питания 5 В. Он имеет интегрированный кварцевый генератор с внешним кварцем. Тактовая частота лежит между 3 и 6 МГц. Кварц работает на удво енной частоте.
К отдельным компонентам, показанным на рис. 16.1 относятся:
Накапливающий регистр и временный (буферный) регистр
Эти оба регистра соответствуют регистрам А и В операционного блока, который обсуждался в главе 15. Оба имеют ширину 8 бит. Накапливаюш;ий регистр (accumulator) ниже обозначается сокраш;енно через А.
Флаг-регистр
Флаг-регистр выдает информацию о результатах операции АЛУ. Он имеет ширину 8 бит и может показать следуюш;ие 6 флагов:
От |
Вб D5 |
D4 |
D3 D2 |
Di |
Do |
S |
Z |
АС |
Р |
V |
CY |
S Флаг знака (sign-flag), эквивалентен биту 7 результата опера ции.
ZНулевой флаг (zero-flag) устанавливается тогда, когда все би ты равны 0.
Глава 16. Структура, система команд и работа микропроцессора
АС Флаг вспомогательного переноса (auxiliary-carry-flag), являет ся индикацией переноса из бита 3. Он обслуживает арифме тические операции в двоично-десятичном коде.
РФлаг четности (parity-flag) показывает, что число единиц в результате является четным.
СУ Флаг переноса (carry-flag) устанавливается при арифметиче ских операциях. Например, он устанавливается при сложении, когда результат больше 8 бит. Если результат меньше, СУ устанавливается на 0.
VФлаг переполнения (overflow-flag) является индикацией пере полнения при арифметической операции в соответствии с раз делом 2.3.6.
Блок регистров
Он состоит из трех пар регистров (В,С), (D,E), (H,L), которые со держат по 8 бит. К ним можно обрап1;аться как по одиночке (напри мер, за данными), либо как к паре (например, за адресами).
Указатель вершины стека
Указатель вершины стека запоминает адрес последнего байта, кото рый был записан в стеке. Когда в стек записываются новые данные, указатель вершины стека понижает свое значение, при каждой опе рации в стек записываются по 2 бита. Суш;ествуют команды ассем блерного типа, при которых содержание регистерной пары и сло во состояния процессора (флаг-регистр и накапливаюш;ий регистр) могут быть записаны в стек.
Регистр команд
В командный регистр приходит машинная команда после того, как она выведена из ЗУ. В заключение она декодируется.
Счетчик команд
Счетчик команд содержит адрес следуюш;ей подлежаш;ей исполне нию команды; после того, как операционный код команды доставлен из ЗУ, счетчик повышает свое значение и указывает на следуюш;ую команду.
Декодер команд
В декодере команд из машинной команды выводятся управляюш;ие команды как /\ля отдельных регистров и АЛУ, так и для перифе рийного управления.
16.1. Структура микропроцессора 365
-^NTA |
RST6.5 |
TRAP |
|||||||||
INTR |
f |
f^T5.5 |
1 RST7.5 1 |
SID |
SOD |
||||||
1 |
1 1 i |
И |
|||||||||
1 |
t |
||||||||||
Управление прерыванием |
последовательное управление |
||||||||||
(interrupt-driven) |
входом/выходом |
||||||||||
E |
I |
||||||||||
накопительI |
(serial lO-control) |
||||||||||
флагГО- |
(8) |
||||||||||
временный |
регистр |
В(8) |
С(8) |
||||||||
ный регистр |
регистр |
регистр |
команд |
||||||||
Т |
D(8) |
Е(8) |
|||||||||
I |
|||||||||||
Н(8) |
Ц8) |
||||||||||
декодер |
указатель вершины стека |
||||||||||
команд |
|||||||||||
(16) |
|||||||||||
р> АЛУ |
|||||||||||
счетчик команд |
|||||||||||
^zzni |
|||||||||||
(16) |
|||||||||||
управление/синхронизация |
буфер |
буфер шины |
|||||||||
адресов/данных |
|||||||||||
CLK |
DMA сброс |
адреса (8) |
|||||||||
(8) |
|||||||||||
W |
i |
I |
|||||||||
I |
t М |
I t Н |
+ |
||||||||
^ ^ ^ |
\-.RD-^WR |
ALE |
So |
S^ IO/-^M\ |
HLDA^ |
• |
• |
||||
^ ^ |
I |
I |
RESET |
^s'Ais |
ADo'ADj |
||||||
цJQ^У^Q |
rjTj^ |
OUT |
^ДР^^"^^ шина |
адрес\шина данных |
|||||||
Р и с . 1 6 . 1 . С т р у к т у р а 8085А (ширина регистров показана в скобках). Вну тренняя шина имеет ширину 8 бит.
Адресный буфер
В адресном буфере запоминается имеющая более высокие значения часть адреса до тех пор, пока она не считана с соответствующей схемы (ЗУ, схема I/O).
Информационно-адресный буфер
Информационно-адресный буфер запоминает данные, которые должны быть поданы на адресную шину до тех пор, пока соответствующая схема (ЗУ, схема I/O) не прочитает их. Кроме того, через этот бу фер выдается младший байт. Это позволяет сэкономить 8 выводов схемы, а внутри требуемая ширина шины составляет только 8 бит.