
16 Разрядные микропроцессоры
Организация однокристальных, 16-разрядных микропроцессоров
Появлению 16-ти разрядного МП способствовало внедрение n-МОП технологии (метало - оксидная пленка), которая дала возможность уменьшить размеры электронных устройств.
Достигнутая степень интеграции при высоком быстродействии микросхем позволила поставить ~30000 транзисторов на кристалл площадью 5,5х5,5 мм. По этой технологии Intel создал 16-ти разрядный, однокристальный МП (К1810 ВМ86) выпускался в 40-контактном корпусе. Частота 5 МГц, 2,5 млн. операций типа регистр – регистр.
Архитектура имеет следующие особенности:
Выполнение аппаратными средствами арифметических операций над 8-16 разрядными двоичными числами со знаком и без. Логических операций над цепочками данных, возможность работы с отдельными разрядами.
Наличие 16-ти разрядного АЛУ с аппаратной реализацией (*) и (:).
Регистровая структура с вдвое большим, по сравнению с МП 8080, числом общим регистров.
Полная совместимость с командами из МП8080 и наличие новых.
Сегментная адресация, позволяющая прямо адресовать 1 МБ памяти.
Питание 5В.
В 16-ти разрядном МП каждый регистр имеет свое значение.
Всего их 16: АХ, ВХ, СХ, DX – регистры данных, каждый из которых имеет также и свое специфическое значение.
АХ – умножение, деление, обмен с УВВ.
ВХ – базовый регистр в вычислениях адреса.
СХ – счетчик циклов.
DX – определение адреса ввода/вывода.
Для регистра данных существует возможность раздельного использования обоих байтов.
AX
AH
AL
8
8
Следующие четыре регистра – сегментные регистры, каждый из которых определяет положение одного из рабочих регистров.
CS; DS; ES; SS
CS – сегмент команд, исполняемых в данный момент.
DS – соответствует сегменту данных, с которыми работает МП.
ES – соответствует дополнительному сегменту данных.
SS – соответствует сегменту стека.
Сегменты команд и данных стека
CS
DS
ES
SS
Память
Для оптимального использования пространств памяти сегменты могут перекрываться:
Если программа занимает только часть сегмента, то сегмент данных может начинаться сразу после завершения рабочей программы, а не после всего сегмента.
Регистры указатели ( определяют смещение внутри счетчика)
SP – Stack Pointer
BP – Base Pointer
SI – Source Pointer
DI – Distinction Index
IP – Instruction Pointer
Например - счетчик команд МП образуется парой регистров CS и IP.
Указатель стека: SS и SP.
SI и PI используются в строковых операциях, т.е. при последовательной обработке нескольких ячеек памяти одной команды.
Регистр состояния МП 8086 (FLAGS)
OF
DF
IF
TF
SF
ZF
0
AF
0
PF
1
CF
CF – флаг переноса для арифметических операций
PF – флаг четности результата
AF – флаг дополнительного переноса
ZF – флаг нулевого результата
SF – флаг знака
TF – флаг пошагового режима (при отладке)
IF – флаг разрешения аппаратных прерываний.
DF – флаг направления при строковых операциях
OF – флаг переполнения
Биты регистра состояния устанавливаются в зависимости от предыдущей команды и используется в МП.
Регистр А – предназначен для хранения результата. Он может участвовать во всех операциях, через него может производиться взаимодействие с УВВ.
Выделение специального регистра аккумулятора упрощает структуру П, но в некоторых случаях замедляется работа системы в целом, т.к.весь поток информации должен пройти через один регистр аккумулятора.
В случае, когда несколько регистров МП полностью взаимозаменяемы, таких проблем не возникает.
Система команд микропроцессора
В общем случае система команд МП включает в себя четыре основные группы команд:
Пересылки данных;
Арифметические команды;
Логические команды;
Команды перехода;
Команды пересылки данных – не требуют выполнения никаких операций над операндами. Операнды пересылаются (копируются) из источника в приемник.
Source – Distinction
Источником и преемником могут быть внутренние регистры МП, ячейки памяти, УВВ. АЛУ в данном случае не используется.
Арифметические команды («+», «-», «* », «/ », «+1», «-1»). Этим командам требуется один или два входных операнда.
Логические команды – производят над операндами логические операции: инверсию, логическое «и», логическое «или», очистку, сдвиг влево/вправо, аналитический сдвиг. Этим командам требуется один или два входных операнда и они формируют один выходной операнд.
Команды перехода - предназначены для изменения обычного порядка последнего выполнения команды. С их помощью организуются переходы на подпрограммы, всевозможные циклы, ветвления программ и т.д. Команды перехода всегда меняют содержимое счетчика команд. Переходы: условные и безусловные.
Команды чистки – запись нулевого кода в регистр или ячейку.
5.04.2010
Структуры и формат команд
D1
D2
D3
D4
D5
D6
D7
D0
КОП 1 байтной команды
2 байтная команда
= КОП + 8 разрядный операнд адрес порта
ввода/вывода
16 разрядный адрес
и КОП
Многобайтная команда размещается последовательно в ячейках памяти. Адрес первого байта команды является адресом всей команды. Чем больше байт в команде, тем больше времени затрачивается на ее выборку из памяти.
Код операнда всегда находится в первом байте команды. Второй и третий байты команды используются для задания операнда (данных, портов ВВ, адресов ячеек памяти).
Код операции задается только первым байтом команды, т.е. всего может существовать не более 256 команд.
Кроме адресации памяти и УВВ, которая выполняется по ША, также необходима адресация регистров общего назначения и регистровых пар. Эта адресация производиться частью разрядов кода операции.
MOV C,A
0
1
D
D
D
S
S
S
0
00
B 0100
1111
001 C 4 F
010 D
011 E
100 H
101 L
110 M
111 A
Значение DDD и SSS равное 110, указывает на операцию над операндом, находящимся в памяти, когда его адрес находится в регистровой паре HL. В операндных командах только один операнд может находиться в памяти.
Для хранения 16 разрядных операндов 8 разрядные РОНы объединены в 3-16 разрядные регистровые пары.
В обозначении rp указывается адрес, в котором находится старший байт операнда. Адресация регистровых пар производится разрядами D5, D4.
00
BC
LXI H
01
DE
0
0
1
0
0
0
0
1
10
HL
11
PSW A+F
2
1
|| PUSH BC
1
1
0
0
1
0
1
0
C
5
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 F
1100 C
1101 D
1110 E
1111 F
POP BC
1
1
0
0
0
0
1
0
C
5
Группа команд передачи данных: эти команды не изменяют содержимое регистра признаков F, так как производят пересылку данных из одного устройства (регистра или памяти) в другое не изменяя их содержимого.
MOV r1, r2 r1 ← r2
M
Ячейка памяти М
MOV r, M r ← M (rp H)
M
8 разряд числа
LDA addr, d16 A ← M (addr)
S
16
разряд числа
LDAX rp B, D A ← M (rp B или rp D)
STAX rp B, D M (rp B или rp D) ← A
LXI rp, d16 rp ← d16
MVI M, d8 M(rp H) ← d18
Группа арифметических команд. Эти команды преобразуют операнды и изменяют флаги регистра признаков: сложение, вычитание, инкрементирование, декрементирование.
ADD r A ← A + r
ADD M A ← A + M (rp H)
ADI d8 A ← A + d8
SUB r A ← A – r
SUB M A ← A – M (rp H)
SUI d8 A ← A – d8
Adc R A ← A + r + Cy (перенос)
Adc M A ← A + M (rp H) + Cy
AcI d8 A ← A + d8 + Cy
SBB r A ← A – r – Cy
SBB M A ← A – M (rp H) – Cy
SBI d8 A ← A – d8 – Cy
INR r r ← r + 1
DCR r r ← r – 1
INX rp rp ← rp + 1
DCX rp rp ← rp – 1
INR M M (rp H) ← M (rp H) + 1
DCR M M (rp H) ← M (rp H) – 1
Группа команд логических операций. Двухоперандные логические операции производятся поразрядно.
ANA r A ← A & r
ANA M A ← A & M (rp H)
ANI d8 A ← A & d8
ORA r A ← A v r
ORA M A ← A v M (rp H)
O
RI
d8 A ←
A v d8
X
Исключающее «или»
XRA M A ← A ▼ M (rp H)
XRI d8 A ← A ▼ d8
C
MP
r A – r Z=1; A=1
CMP M A – M (rp H) M (rp H)
C
PI
d8 A
– d8 Z=0,
A
= 1
Команды сравнения восьми разрядных операндов выполняются с помощью команд вычитания без фиксирования результата в аккумуляторе, то есть сами операнды при выполнении этих команд не изменяются. Это позволяет производить многократное сравнение содержимого аккумулятора с различными операндами. Изменение флагов 7 и Cy этими командами в регистре используются командами условной передачи управления для изменения порядка выполнения программы.
Команды сдвига.
Команды сдвига на один разряд влево RLC и RAL или вправо RRC и RAR
Производятся над содержимым аккумулятора, с участием флага Сy. Эти команды позволяют реализовать программное выполнении операции деления или умножения.
Су
А7
А6
А5
А4
А3
А2
А1
А0
-
Цикл влево
Группа команд передачи управления
Выборка команд программы производится из последовательных ячеек памяти в порядке возрастания их адресов при выполнении всех команд, кроме команд передачи управления
JMP, JCond, CAL, CCond, PCHL, RET, Rcond, RSTn.
Данные команды используются для изменения последовательности выборки команд из памяти. Некоторые из них используют флаги регистра признака F, для условных передач управления. При выполнении условия зафиксированного во флаге регистра признаков F, производится передача управления по адресу, указанному в команде, а при невыполнении условия происходит переход к выполнению следующей команды.
Cond результат операции при передаче управления Команды
NZ Не нуль (Z=0) JNZ, CNZ, RNZ
Z Нуль (Z=1) JC, CZ, RZ
NC Нет переноса (С=0) JNC, CNC, RNC
C Перенос (С=1) JC, CC, RC
PO нечетность (P=0) JPO, CPO, RPO
PE четность (P=1) JPE, CPE, RPE
P Плюс (S=0) JP, RP, CP
M Минус (S=1) JM, CM, RM
В таблице приведены команды условной передачи управления. Они содержат мнемонику cond, которая заменяется в командах на языке Assembler на мнемонику в соответствии с таблицей.
JMP, JCOND, ADDR - это команды безусловных и условных переходов, которые задают переход на выполнение команды, расположенной по адресу ADDR, которая находится во втором и третьем байтах команды. Эти команды обеспечивают ветвление программ, способ адресации при этом прямой.
Команды безусловного перехода PCHL позволяют загрузить содержимое HL в счетчик команд PC, что приводит к выборке следующей команды, находящейся по адресу задаваемого содержимым регистров H и L. Команды вызова подпрограмм CALL, ccont, RSTn используются для вызова подпрограмм.
Команды CALL и ccont передают управление по адресу, который находится во втором и третьем байтах команды. Команда RSTn передает управление по адресу ADDR=n*8, где n от 0 до 7.
Команды вызова подпрограмм используют стек для включения точки возврата.
PC
8
83
03
8301 00
8
PCH
PCL
8303
Прямая
команда
Обратная команда
SP ← SP – 1 PCH ← M (SP)
M (SP) ← PCL SP ← SP + 1
Команды возврата из подпрограммы Ret и Rcond заканчивают выполнение подпрограмм и передают управление на команду, непосредственно следующую за командой вызвавшей переход к этой подпрограмме.
Подпрограммы могут содержать и команды условного возврата Rcond, досрочно прекращающих их выполнение при реализации данного условия. Подпрограммы могут иметь любое число уровней вложенности. Ограничивающим фактором является размер стека.
Группа команд управления стеком, вводом/выводом и состояния МП.
Команды PUSH, PSW, PUSHrp, POP PSW, POPrp, включают в стек два байта содержащихся в PSW=A+F или регистровых пар rp=BC,DE,HL, адрес памяти содержится в указателе стека(SP), который автоматически дважды декрементируется при выполнении команды PUSH и инкрементируется дважды при выполнении команды POP.
PUSH PSW PUSH rp
SP ← SP – 1 SP ← SP – 1
M (SP) ← A M (rp) ← rpH
SP ← SP – 1 SP ← SP – 1
M (SP) ← F M (rp) ← rpL
POP PSW POP rp
F ← M (SP) rpL ← M (SP)
SP ← SP + 1 SP ← SP + 1
A ← M (SP) rpH ← M (SP)
SP ← SP+1 SP ← SP + 1
Команды ввода in port и вывода out port обеспечивают связь МП с внешними устройствами. Команда HLT устанавливает режим остановок П, выйти из которого он может только при запросе прерывания от внешнего устройства.
Формат команд, способы адресации 16 разрядного МП
Команды МП 80-86 могут содержать от 1 до 6 байт. В первом байте всегда находится код операцию. Во многих командах второй байт задает режим адресации данных, а также может содержать три дополнительных разряда кода операции. Команды могут иметь не более 2х операндов, причем хотя бы один из них должен находиться в регистре. Исключение – команда обработки цепочки данных, в которых оба операнда находятся в памяти. Способ определения адреса операнда называется способом адресации (режимом). Если на код операции и режим адресации отводятся два байта, то второй байт называется пост-байтным.
3 – 6 байт
КОП
D
W
MOD
Reg
R/M
Смещение данных
7
2
1
07
65
32
0
1 байт
2 байт
Поля команд имеют следующее назначение:
Поле D определяет направление передачи информации. Если D равняется 1, то поле Reg является приемником, Если D- равно 0, то Reg является источником.
Поле W определяет длину операнда в команде, если W = 1 то операнд шестнадцатиразрядный, если W = 0 то операнд восьмиразрядный. Поле Reg определяет регистр для первого операнда.
Reg |
Регистр |
|
R/M |
W=0 |
W=1 |
000 |
AL |
AX |
001 |
CL |
CX |
010 |
DL |
DX |
011 |
BL |
BX |
100 |
AH |
SP |
101 |
CH |
BP |
110 |
DH |
SI |
111 |
BH |
BI |
Поле R/M и поле MOD определяют способ формирования адреса второго операнда в памяти, а адрес первого операнда указывается в поле Reg.
R/M |
MOD=00 |
MOD=01 |
||
Логический адрес |
Сегмент |
Логический адрес |
Сегмент |
|
000 |
BX+SI |
DS |
BX+SI+d8 |
DS |
001 |
BX+DI |
DS |
BX+DI+d8 |
DS |
010 |
BP+SI |
DS |
BP+SI+d8 |
DS |
011 |
BP+DI |
DS |
BP+DI+d8 |
DS |
100 |
SI |
DS |
SI+d8 |
DS |
101 |
DI |
DS |
DI+d8 |
DS |
110 |
D16 |
DS |
D16+d8 |
DS |
111 |
BX |
DS |
BX+d8 |
DS |
В таблице обозначения d8 и D16 означают восьми и шестнадцатиразрядное смещение (3 и четвертый байт команд). Если MOD = 10 то используются те же регистры, что и при MOD = 01, только смещение будет D16. Если MOD = 11, то второй операнд команды задается полем R/M, в качестве которого выступает регистр.
В системе команд 16-разрядного МП имеется 113 базовых команд, которые объединены в следующие группы:
Команды пересылки:
Между регистром и памятью (включая стек)
Ввода/вывода
Загрузка исполнительного адреса в регистры общего назначения.
Передача содержимого регистра в память, стек из стека
Арифметические и команды десятичной коррекции
Логические команды и команды сдвига
Наличие команд со сдвигом на один или несколько команд со сдвигом
Команды передачи управления
Команды перехода
Внутрисегментные
Межсегментные
Передачи управления могут быть прямыми, т.е. целевой адрес находится в команде, или косвенными – целевой адрес при этом вычисляется с использованием стандартных способов адресации.
Команды обработки цепочки данных – манипулируют последовательностью данных или слов в памяти. Время обработки цепочки этими командами гораздо меньше, чем соответствующая программная реализация.
Быстродействие процессора
Быстродействие это одна из важнейших его характеристик определяющая эффективность работы всей МПС в целом. Быстродействие П зависит от множества факторов. Среди них наиболее важными являются:
Тактовая частота процессора. Все операции внутри П выполняются синхронно и тактируются единым тактовым сигналом. Чем больше тактовая частота, тем быстрее работает П. Необходимо отметить что разные П выполняют разные команды за разное количество тактов. Причем количество тактов затрачиваемых на команду может изменяться от одного такта до десятков и даже сотен. Количество тактов затрачиваемых на выполнение команды зависит от сложности этой команды и от методов адресации операндов. Наиболее быстрые команды – это команды пересылки данных между внутренними регистрами П. Медленнее всего за большое количество тактов выполняются сложные арифметические команды с плавающей запятой, операнды которых хранятся в памяти. Первоначально для количественной оценки производительности П применялась единица измерения MIPS – соответствующая миллионам выполняемых инструкций(команд) за секунду. Для измерения производительности при выполнении вычислений с плавающей запятой используется единица FLOPS, но она является узко специальной, т.к. в некоторых МПС операции с плавающей точкой просто не используются.
Большое значение на быстродействие П оказывает структура системы команд П. Например некоторым П для выполнения какой то операции понадобится одна команда а другим процессорам несколько. Одни П имеют систему команд, позволяющую быстро решать задачи одного типа, а другие – задачи другого типа.
Важное значение в определении также играют методы адресации, разрешенные в данном П, наличие сегментирования памяти, способы взаимодействия П с УВВ. На быстродействие системы в целом существенно влияет и то, как П общается с памятью команд и данных, применяется совмещение выборки команд из памяти с выполнением ранее выбранных команд.
Быстродействие системы в целом определяется также разрядностью П.
При высокой сложности решаемых задач быстродействие системы зависит и от общего объема системной памяти. Если системной памяти (оперативная память) то системе приходится сохранять данные на внешней памяти (например, на магнитном диске), что очень сильно замедляет работу.
Также на быстродействие оказывает влияние разрядность ША процессора.
Т.о. количественные показатели производительности П очень условны, они лишь косвенно характеризуют быстродействие системы на базе данного П. некоторые производители предлагают количественные показатели для своих П, которые характеризуют время выполнения специально составленных тестовых программ содержащих самые различные команды в тех или иных соотношениях. Например для сравнения производительности 32-х разрядных процессоров фирмы INTEL была предложена единица измерения iCOMP Idex.
Точная оценка быстродействия П возможна только в составе конкретной системы и при решении определенных задач.
Микро-ЭВМ
Имеет традиционную архитектуру и содержит следующие основные функциональные узлы: процессор…системную шину, источник питания.
ЦП
Плата
расширения
Плата
расширения
Контроллер
ПДП
Постоянная
память
ОП
Контроллер
регенерации
Контроллер
прерываний
Часы
реального времени и таймер-счетчик
Системные
устройства ввода/вывода
Перестановщик
байтов
Центральный процессор это МП со всеми необходимыми вспомогательными микросхемами включая внешнюю сфер память и контроллер системной шины
ОП – выполняется на микросхемах динамической памяти и поэтому требует регенерации. Ее оббьем от 64 Мб до нескольких Гб
Постоянная память – имеет небольшой оббьем, до 64 Кб, содержит программы начального запуска, описание конфигурации системы, а также драйверы для взаимодействия с системными устройствами.
Контроллер прерываний – преобразует аппаратные прерывания системной магистрали, прерывания процессора и задает адреса векторов прерывания. Все режимы функционирования контроллера прерываний задаются программно перед началом работы.
Контроллер регенерации – осуществляет периодическое обновление информаций в динамической оперативной памяти путем проведения по шине специальных циклов регенерации.
Контролер прямого доступа к памяти – принимает запрос на ПДП из системной магистрали, передает его процессору, а после предоставления процессором магистрали производит пересылку данных между памятью и устройством ввода/вывода.
Перестановщик байтов данных – помогает производить обмен данными между 16 и 8 разрядными устройствами, пересылать целые слова и отдельные байты.
Часы реального времени и таймер счетчик – устройства для внутреннего контроля время и даты, программного задания частоты и выдержки временных интервалов.
Системные устройства ввода/вывода – необходимы для работы ПК, взаимодействия его со стандартными внешними устройствами по параллельному и последовательному интерфейсам.
Плата расширения – устанавливаются в слоты (разъемы) системной магистрали и могут содержать дополнительную ОП и УВВ. Они могу обмениваться данными с другими устройствами по шине в режиме программного обмена, в режиме прерываний и в режиме ПДП.