Не много разобравшись с делами решил написать еще пост о ПК Специалист.
Итак давайте подробнее присмотримся к сердцу ПК Специалист. В базовой конструкции там стоит КР580ВМ80А (i8080 made in USSR). Штатная тактовая частота для процессора К580ИК80А — 2 МГц, для КР580ИК80А и КР580ВМ80А — до 2,5 МГц (теоретически позволял работать на более высокой частоте). Каждая команда выполняется за 1..5 машинных циклов, каждый из которых состоит из 3..5 тактов. Таким образом средняя производительность оценивается на уровне 200..300 тыс. оп/c на частоте 2 МГц.
Микропроцессор имел раздельные 16-разрядную шину адреса и 8-разрядную шину данных. 16-разрядная шина адреса обеспечивает прямую адресацию внешней памяти объёмом до 64 Кбайт и 256 устройств ввода/вывода.
Условное графическое обозначение микросхемы
процессора КР850ВМ80А
Восьмиразрядное арифметико-логическое устройство микропроцессора выполняет арифметические и логические операции над двоичными числами, представленными в дополнительном коде, а также обработку двоично-десятичных упакованных чисел.
В состав блока регистров входят:
В состав блока регистров входят:
- 16-разрядный регистр адреса команды (IP),
- 16-разрядный регистр указателя стека (SP),
- 16-разрядный регистр временного хранения (WZ) програмно недоступный,
- 16-разрядная схема инкремента-декремента,
- шесть 8-разрядных регистров общего назначения (В, С, D, Е, Н, L), которые могут использоваться и как три 16-разрядных регистра (ВС, DE, HL).
Структурная схема микропроцессора
КР850ВМ80А
Микропроцессор выполняет команды по машинным циклам. Число циклов, необходимое для выполнения команды, зависит от ее типа и может быть от одного до пяти. Машинные циклы выполняются по машинным тактам. Число тактов в цикле определяется кодом выполняемой команды и может быть от трех до пяти. Длительность такта равна периоду тактовой частоты и при частоте 2,0 МГц составляет 500 наносекунд.
Диаграмма состояний типичного машинного цикла
В начале каждого машинного цикла микропроцессор вырабатывает сигнал синхронизации SYN, который в сочетании с другими сигналами может быть использован для организации различных режимов работы процессора.
На рисунке 3 показана диаграмма состояний типичного машинного цикла, показывающая последовательность перехода от такта к такту в машинном цикле и влияние внешних сигналов RDY, HLD и INТ на его выполнение. После подачи на вывод SR сигнала высокого уровня микропроцессор устанавливается в исходное состояние.
На рисунке 3 показана диаграмма состояний типичного машинного цикла, показывающая последовательность перехода от такта к такту в машинном цикле и влияние внешних сигналов RDY, HLD и INТ на его выполнение. После подачи на вывод SR сигнала высокого уровня микропроцессор устанавливается в исходное состояние.
В такте Т1 микропроцессор выдает на адресный канал адрес ячейки, в которой хранится команда программы, а через канал данных - информацию состояния. В такте Т2 анализируются состояния сигналов на входе RDY, "Подтверждение останова", и в зависимости от состояния этих сигналов микропроцессор переходит в состояние ожидания, останова или приступает к выполнению такта Т3. В такте Т3 при наличии сигнала высокого уровня на входе RDV микропроцессор принимает информацию по каналу данных, анализирует состояние сигнала на входе HLD, и если этот сигнал высокого уровня, то после окончания такта Т3 переходит в состояние захвата. В зависимости от кода выполняемой команды машинный цикл завершается после выполнения тактов Т3, Т4 или Т5.
В конце машинного цикла снова анализируется состояние сигнала на входе HLD. При низком уровне сигнала проверяется, окончено ли выполнение команды. Если команда не закончена, то микропроцессор выполняет следующий машинный цикл команды, начиная с такта Т1. В конце каждой команды микропроцессор анализирует состояние сигнала на входе INT. Если сигнал высокого уровня и прерывание ранее было разрешено командой EI, то микропроцессор переходит к выполнению машинного цикла "Прерывание", начиная с такта Т1. В противном случае первый машинный цикл новой команды начинается с такта Т1.
Действия, выполняемые микропроцессором в конкретном машинном цикле, определяются 8-разрядной информацией состояния, которая выдается через канал данных в такте Т1 каждого машинного цикла. Эта информация может использоваться для выработки сигналов обращения к микросхемам памяти, устройствам ввода/вывода и для организации различных режимов работы микропроцессора.
В зависимости от сочетания сигналов состояния, выдаваемых в конкретном цикле, машинные циклы можно разделить на 10 типов:
В конце машинного цикла снова анализируется состояние сигнала на входе HLD. При низком уровне сигнала проверяется, окончено ли выполнение команды. Если команда не закончена, то микропроцессор выполняет следующий машинный цикл команды, начиная с такта Т1. В конце каждой команды микропроцессор анализирует состояние сигнала на входе INT. Если сигнал высокого уровня и прерывание ранее было разрешено командой EI, то микропроцессор переходит к выполнению машинного цикла "Прерывание", начиная с такта Т1. В противном случае первый машинный цикл новой команды начинается с такта Т1.
Действия, выполняемые микропроцессором в конкретном машинном цикле, определяются 8-разрядной информацией состояния, которая выдается через канал данных в такте Т1 каждого машинного цикла. Эта информация может использоваться для выработки сигналов обращения к микросхемам памяти, устройствам ввода/вывода и для организации различных режимов работы микропроцессора.
В зависимости от сочетания сигналов состояния, выдаваемых в конкретном цикле, машинные циклы можно разделить на 10 типов:
1. Цикл М1 - прием первого байта команды в регистр команд.
2. Цикл чтения ЗУ (запоминающего устройства) по содержимому программного счетчика или содержимому одного из регистров ВС, DE, HL.
3. Цикл записи в ЗУ - запись в ЗУ по содержимому одного из регистров ВС, DE, HL.
4. Цикл чтения стека - чтение ЗУ по содержимому указателя стека.
5. Цикл записи в стек - запись в ЗУ по содержимому указателя стека.
6. Цикл ввода - ввод информации в регистр результата (аккумулятор) из внешнего устройства.
7. Цикл вывода - вывод информации из регистра результата во внешнее устройство.
8. Цикл прерывания - прием кода команды RST или CALL из контроллера прерываний.
9. Цикл останова.
10. Цикл прерывания при останове - прием кода команды RST или CALL при выводе микропроцессора из режима "Останов" по прерыванию.
2. Цикл чтения ЗУ (запоминающего устройства) по содержимому программного счетчика или содержимому одного из регистров ВС, DE, HL.
3. Цикл записи в ЗУ - запись в ЗУ по содержимому одного из регистров ВС, DE, HL.
4. Цикл чтения стека - чтение ЗУ по содержимому указателя стека.
5. Цикл записи в стек - запись в ЗУ по содержимому указателя стека.
6. Цикл ввода - ввод информации в регистр результата (аккумулятор) из внешнего устройства.
7. Цикл вывода - вывод информации из регистра результата во внешнее устройство.
8. Цикл прерывания - прием кода команды RST или CALL из контроллера прерываний.
9. Цикл останова.
10. Цикл прерывания при останове - прием кода команды RST или CALL при выводе микропроцессора из режима "Останов" по прерыванию.
Наименования сигналов состояния, соответствие их разрядам канала данных и тактам машинных циклов приведены в таблице
При выполнении команд микропроцессор может переходить в одно из трех состояний: "ожидание", "захват" или "останов", длительность которых определяется внешними управляющими сигналами.
Сигнал высокого уровня на входе RDY обеспечивает автоматическое выполнение команд программы микропроцессором с частотой тактовых сигналов. Если на выводе RDY установлен сигнал низкого уровня, то микропроцессор переходит в режим "Ожидание" и формирует выходной сигнал WI высокого уровня.
Сигнал RDY может быть использован для согласования работы микропроцессора с работой медленно действующих устройств, если длительность их цикла обращения составляет более одного периода тактовой частоты, а также для организации пошагового (по циклам) выполнения команды или покомандного выполнения программы.
При подаче на вход HLD сигнала высокого уровня микропроцессор переходит в состояние "захват" и подтверждает переход в это состояние формированием сигнала высокого уровня на выходе HLDA.
Буферные схемы канала адреса и данных микропроцессора переключаются в высокоомное (высокоимпедансное) состояние, а выходные управляющие сигналы - в состояние низкого уровня (за исключением сигналов TR и HLDA). Микропроцессор переходит в состояние "захват" в такте Т3, если выполняется цикл чтения и на входе RDY сигнал высокого уровня, и в такте, следующем за Т3, если выполняется цикл записи. Сигналы HLD и HLDA позволяют организовать режим прямого доступа к памяти для любого внешнего устройства, формирующего сигнал HLD.
При выполнении команды HLT микропроцессор переходит в состояние "останов" и переводит буферные схемы канала адреса и данных в высокоомное состояние. Из состояния "останов" микропроцессор выходит при наличии сигнала высокого уровня на одном из его входов:
Сигнал высокого уровня на входе RDY обеспечивает автоматическое выполнение команд программы микропроцессором с частотой тактовых сигналов. Если на выводе RDY установлен сигнал низкого уровня, то микропроцессор переходит в режим "Ожидание" и формирует выходной сигнал WI высокого уровня.
Сигнал RDY может быть использован для согласования работы микропроцессора с работой медленно действующих устройств, если длительность их цикла обращения составляет более одного периода тактовой частоты, а также для организации пошагового (по циклам) выполнения команды или покомандного выполнения программы.
При подаче на вход HLD сигнала высокого уровня микропроцессор переходит в состояние "захват" и подтверждает переход в это состояние формированием сигнала высокого уровня на выходе HLDA.
Буферные схемы канала адреса и данных микропроцессора переключаются в высокоомное (высокоимпедансное) состояние, а выходные управляющие сигналы - в состояние низкого уровня (за исключением сигналов TR и HLDA). Микропроцессор переходит в состояние "захват" в такте Т3, если выполняется цикл чтения и на входе RDY сигнал высокого уровня, и в такте, следующем за Т3, если выполняется цикл записи. Сигналы HLD и HLDA позволяют организовать режим прямого доступа к памяти для любого внешнего устройства, формирующего сигнал HLD.
При выполнении команды HLT микропроцессор переходит в состояние "останов" и переводит буферные схемы канала адреса и данных в высокоомное состояние. Из состояния "останов" микропроцессор выходит при наличии сигнала высокого уровня на одном из его входов:
- на входе SR - микропроцессор начинает работать с такта Т1 цикла М1;
- на входе HLD - микропроцессор переходит в состояние "захват", а после перехода сигнала HLD на низкий уровень возвращается в состояние "останов";
- на входе INT - микропроцессор переходит к выполнению цикла прерывания при останове с такта Т1, если команде HLT предшествовала команда EI "разрешение прерывания", иначе он остается в состоянии "останов".
Сигнал высокого уровня на выводе INT позволяет прерывать выполнение текущей программы и переводить микропроцессор на выполнение подпрограммы обслуживания устройства, выдавшего запрос прерывания (например, часов). При поступлении сигнала INT микропроцессор (после окончания текущей команды) переходит с такта Т1 к выполнению машинного цикла "Прерывание" в том случае, если прерывание было разрешено ранее командой EI. При выполнении цикла "Прерывание" в такте Т1 микропроцессор выдает по шине данных сигнал состояния "Подтверждение прерывания". По окончании подпрограммы прерывания происходит возврат к прерванной программе.
Сигнал высокого уровня на входе SR (длительность которого должна быть не менее трех периодов тактовой частоты) устанавливает микропроцессор в исходное состояние: триггеры разрешения прерывания и захвата, регистры команд, признаков и адреса команды устанавливаются в нулевое состояние. После окончания действия сигнала SR микропроцессор производит первое обращение за чтением команды к ячейке памяти по адресу 0000Н.
Система команд микропроцессора состоит из 78 базовых команд, которые можно разделить на пять групп:
Сигнал высокого уровня на входе SR (длительность которого должна быть не менее трех периодов тактовой частоты) устанавливает микропроцессор в исходное состояние: триггеры разрешения прерывания и захвата, регистры команд, признаков и адреса команды устанавливаются в нулевое состояние. После окончания действия сигнала SR микропроцессор производит первое обращение за чтением команды к ячейке памяти по адресу 0000Н.
Система команд микропроцессора состоит из 78 базовых команд, которые можно разделить на пять групп:
- команды передачи данных - используются для передачи данных из регистра в регистр, из регистра в память;
- арифметические команды - используются для сложения, вычитания, инкремента или декремента содержимого регистров или ячейки памяти;
- логические команды - И, ИЛИ, сравнение, сдвиги;
- команды переходов - используются для условных или безусловных переходов, вызова подпрограмм и возврата из них;
- команды управления, ввода/вывода и работы со стеком - используются для управления регистром признаков, ввода и вывода информации.
В микропроцессоре КР580ВМ80А принят формат информационного слова, представляющего собой 8-разрядное двоичное слово (байт) Формат информационного слова (данных):
D7 D6 D5 D4 D3 D2 D1 DO,
где D7 - старший разряд слова, а D0 - младший. Отрицательные числа хранятся в памяти в дополнительном коде.
Формат команды зависит от типа операции - может быть одно-, двух- и трехбайтовым. Байты двух- и трехбайтовых команд должны храниться в ячейках памяти, следующих одна за другой. Операнды команд могут храниться в программно доступных регистрах микропроцессора или памяти. Для указания операнда в регистре используются регистровая и регистровая неявная адресации, для указания операнда в памяти - непосредственная, прямая, косвенная регистровая и стековая адресации.
Регистр признаков микропроцессора используется для хранения пяти битов признаков, которые вырабатываются в результате выполнения некоторых операций:
- S - бит знака; равен 1, если старший значащий разряд результата операции равен 1 (то есть результат операции - отрицательное число);
- Z - бит нуля; равен 1, если результат операции равен нулю;
- АС - бит вспомогательного переноса; равен 1, если при выполнении операции был перенос из третьего разряда сумматора в четвертый;
- С - бит переноса; равен 1, если при выполнении операции был перенос из седьмого разряда сумматора или заем в седьмой разряд сумматора;
- Р - бит четности; равен 1, если число единиц результата четное.
Распределение разрядов в регистре признаков следующее:
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
S | Z | 0 | АС | 0 | Р | 1 | С |
Особенности KP580BM80A
Так же, как и предшественник 580ИК80, процессор требовал трех источников питания: −5В, +12В и +5В, но прекрасно работал от одного +5В при подаче +5В вместо +12В и земли вместо −5В. Для выработки тактовых сигналов по спецификации рекомендовалось применять внешнюю микросхему КР580ГФ24.
КР580ВМ80А имеет 12 недокументированных команд (аналогично 8080). Опкоды #08, #10, #18, #20, #28, #30, #38 являются аналогами операции NOP; опкод #CB является аналогом JMP; опкоды #DD, #ED, #FD являются аналогами CALL; опкод #D9 является аналогом RET. Существует информация, что КР580ВМ80А отличался от зарубежного оригинала i8080 наличием двух дополнительных недокументированных команд (тем не менее задействованных в некоторых компьютерах на базе этого чипа, в частности в ПК Вектор-06Ц). Однако, помимо перечисленных выше кодов операций, все остальные операции задокументированы, больше свободных кодов нет.
КР580ВМ80А имеет 12 недокументированных команд (аналогично 8080). Опкоды #08, #10, #18, #20, #28, #30, #38 являются аналогами операции NOP; опкод #CB является аналогом JMP; опкоды #DD, #ED, #FD являются аналогами CALL; опкод #D9 является аналогом RET. Существует информация, что КР580ВМ80А отличался от зарубежного оригинала i8080 наличием двух дополнительных недокументированных команд (тем не менее задействованных в некоторых компьютерах на базе этого чипа, в частности в ПК Вектор-06Ц). Однако, помимо перечисленных выше кодов операций, все остальные операции задокументированы, больше свободных кодов нет.
Подготовленно по материалам: http://ru.wikipedia.org и http://junetech.chat.ru
4 комментария:
Отлично! Хороший разбор CPU.
Не просто читаю, я еще и сверяюсь, то есть использую в качестве справки. Не далее как сегодня возник вопрос ну как посмотреть на 8080 на систему команд на растактовку. Глянул в талмуд к тебе и сразу же увидел то что в прошлый раз прозевал. А где регистры A, F? Я ничего не путаю аккумулятор и флаги вроде бы входят в регистровый файл К580ВМ80?
Ох слушай, виноват, проморгался заметил что на месте А и F. Ты случайно не знаешь в каком журнале Радио была напечатана на вкладке огромная цветная табличка (если память мне не врет) системы команд К580ИК80А?
В ЮТ88 была табличка... но не цветная. Наверно следующий постом выложу систему команд и доп. материалы.
Отправить комментарий