- •Составитель: Валерий Анатольевич Засов
- •Рецензенты: генеральный директор научно-производственного центра «Информационные и транспортные системы», д.Т.Н., профессор с.В. Архангельский
- •Оглавление
- •1.Принципы организации классической эвм
- •2.Структурная организация процессора
- •3.Принципы организации и программирование
- •4.Принципы организации и программирование
- •5.Структурная организация современных
- •Приложение 1.Список основных команд микропроцессора i8080
- •1.Принципы организации классической эвм и определение микропроцессорной системы
- •1.1.Принципы организации эвм Дж. Фон-Неймана
- •1.2.Определение микропроцессора и микропроцессорной системы
- •1.3.Понятие архитектуры микропроцессорной системы
- •1.4.Структура типовой микропроцессорной системы
- •1.4. Командный цикл и его фазы
- •Контрольные вопросы и задания
- •2.2.Устойство управления с аппаратной логикой
- •2.3.Устройство управления с программируемой логикой
- •2.4.Функция и структура арифметико-логического устройства
- •2.5.Система команд процессора и способы адресации
- •Контрольные вопросы и задания
- •3.Принципы организации и программирование
- •3.1.Структурная схема 8-разрядного микропроцессора
- •3.2.Программная модель 8-разрядной микропроцессорной системы
- •3.3. Способы адресации данных в 8-разрядной микропроцессорной системе
- •3.4.Программирование на ассемблере 8-разрядного микропроцессора
- •3.5. Инструментальные средства разработки и отладки программ для 8-разрядных микропроцессоров
- •3.6. Пример решения задачи
- •3.7.Функциональная схема ядра 8-разрядной микропроцессорной системы
- •Контрольные вопросы
- •4. Принципы организации и программирование
- •4.1. Структурная схема микропроцессоров семейства i8086/8088
- •4.2.Функциональная схема центрального процессора на базе микропроцессора i8086/8088
- •Типы циклов шины мп i8086/8088 Таблица 4.2.
- •4.3. Конвейерный метод выполнения команд и направления его развития
- •4.4. Сегментная организация памяти и ее эволюция
- •4.5.Адресное пространство ввода – вывода
- •4.6.Программная модель микропроцессоров i8086/8088 и способы адресации
- •4.7. Описание системы команд 16-разрядного микропроцессора
- •4.8. Основные элементы программ на языке Турбо ассемблер
- •Контрольные вопросы и задания
- •5.Структурная организация современных микропроцессоров
- •5.1.Структура микропроцессора Intel Pentium 4
- •5.2.Структура микропроцессора amd Athlon
- •5.3.Гиперпотоковая технология организации вычислений
- •5.4.Эффективность многоядерной архитектуры микропроцессоров
- •5.5.Регистровые структуры 32-разрядных микропроцессоров
- •5.6.Регистровые структуры 64-разрядных микропроцессоров
- •5.7.Обобщенный формат команд и типы данных
- •Контрольные вопросы и задания
- •6. Организация памяти в микропроцессорных
- •Системах
- •6.1.Назначение, основные параметры и классификация видов памяти
- •6.2. Иерархическая структура памяти мс
- •6.3. Оперативные запоминающие устройства
- •6.4. Постоянные запоминающие устройства
- •7. Интерфейсы микропроцессорных систем
- •7.1. Назначение и функции интерфейсов
- •7.2. Принципы организации и классификация интерфейсов
- •7.3. Система интерфейсов компьютера
- •8.Способы обмена информацией между устройствами микропроцессорной системы
- •8.1. Программно – управляемый обмен и прямой доступ к памяти
- •8.2. Организация прерываний в мс
- •8.3. Циклы шины
- •9. Программируемый периферийный адаптер
- •9.1. Назначение, структурная схема и режимы работы программируемого периферийного адаптера
- •9.2. Управление работой программируемого периферийного адаптера
- •9.3. Примеры программирования периферийного адаптера
- •Признак pc7-pc4
- •Канал а Канал в
- •Контрольные вопросы и задания
- •10. Программируемый интервальный таймер.
- •Организация счета времени и событий
- •10.1.Назначение, структурная схема и программирование таймера.
- •10.2.Режимы работы таймера
- •10.3. Примеры программирования таймера
- •10.4. Организация счета времени и событий в мс
- •Контрольные вопросы и задания
- •Рассмотрим основные блоки программируемого связного адаптера.
- •11.2. Режимы работы связного адаптера
- •11.3. Управление работой и программирование связного адаптера
- •9.4. Особенности программирования асинхронных адаптеров коммуникационных портов компьютеров
- •11.5. Организация обмена между компьютерами по интерфейсу rs-232с
- •Контрольные вопросы и задания
- •Б иблиографический список
- •Список основных команд микропроцессора i8080
- •Список основных команд микропроцессора i8086/8088 и директивы языка Турбо Ассемблер
- •Основные директивы (псевдокоманды) языка
- •Турбо Ассемблер (tasm)
- •Типы символов в tasm
- •Команды передачи данных
- •Арифметические команды
- •Логические команды и команды сдвигов
- •Строковые или цепочечные команды
- •Команды передачи управления
- •Коды условий перехода (сс)
- •Команды управления микропроцессором
-
Контрольные вопросы
1.Определите назначение РОН, адресного регистра, регистра команд, флажкового регистра.
2.С какой целью РОН объединяются в регистровые пары?
3.В чем отличие структурной схемы МС от ее программной модели?
4. Какие блоки входят в состав центрального процессора?
5.Перечислите достоинства и недостатки языка программирования ассемблер. Для решения каких задач целесообразно применять этот язык программирования?
6.Для чего предназначена программа-симулятор?
7. В чем состоит отличие целевых и инструментальных МС?
4. Принципы организации и программирование
16-РАЗРЯДНЫХ МИКРОПРОЦЕССОРОВ
4.1. Структурная схема микропроцессоров семейства i8086/8088
Первый 16 – разрядный микропроцессор i8086 фирма INTEL выпустила в 1978 году. Этот МП выполнен по n – МОП технологии, содержит около 30000 транзисторов (технология 3 мкм) и потребляет 1,7 Вт от источника питания +5В. Шина данных DB этого МП 16 – разрядная (16 – битовая), а 20 – разрядная шина адреса AB позволяет адресовать до 1 Мбайт памяти. Для сокращения необходимого числа выводов БИС микропроцессора младшие 16 адресных линий мультиплексированы во времени с линиями данных и составляют единую шину адреса/данных A/DB. Четыре старшие адресные линии аналогично мультиплексированы с линиями состояния. Чтобы сигналы этих линий можно было использовать в МС, их обязательно разделяют с помощью внешних схем, т.е. осуществляют демультиплексирование шин /11,12/.
Адресное пространство портов ввода – вывода является изолированным и его размер ограничен 64 Кбайт.
Через год фирмой INTEL был выпущен МП i8088 – 16 – разрядный МП с 8 – разрядной внешней шиной данных. Этот МП предназначался для применения в 8 – разрядных МС и позволял существенно повысить производительности таких систем путем замены МП i8080 и i8085 на i8088. Микропроцессоры i8086 и i8088 имеют аналогичную архитектуру и одинаковую систему команд /11-14/.
На основе МП i8088 фирмой IBM было организовано крупносерийное производство персональных компьютеров IBM PC и IBM PC XT - первых ПК массового использования. С тех пор для обеспечения преемственности система команд и набор регистров этих МП наследуются всеми процессорами IBM PC – совместимых компьютеров.
МП i8086/8088 поддерживают многоуровневую векторную систему прерываний с числом векторов до 256 и допускают разделяемое использование шины совместно с другими процессорами или активными модулями (например, с математическим сопроцессором i8087 или с контроллером прямого доступа к памяти i8237А).
Структурная схема МП i8086 (российский аналог этого процессора - МП К1810ВМ86) приведена на рис.4.1.
МП i8086 содержит две относительно независимые части: операционное устройство, реализующее заданные командой операции, и устройство шинного интерфейса /13-14/, осуществляющее выборку команд из памяти, а также обращение к памяти и внешним устройствам для считывания операндов и записи результатов. Оба устройства могут работать параллельно, образуя конвейер и совмещая во времени процессы выборки и исполнения команд. Это повышает быстродействие МП, так как операционное устройство, как правило, выполняет команды, коды которых уже находятся в МП, и поэтому такты выборки команды не включаются в ее цикл.
Операционное устройство МП содержит группу общих регистров, арифметико-логическое устройство (АЛУ), регистр флагов F и блок управления.
Восемь 16-битовых регистров общего назначения участвуют во многих к омандах. В соответствии с основным назначением рассматриваемых регистров выделяют регистры АХ, ВХ, СХ, DX, используемые прежде всего для хранения данных, и регистры SP, BP, SI, DI, которые хранят главным образом адресную информацию.
Особенностью регистров АХ, ВХ, СХ, DX является то, что они допускают раздельное использование их младших байтов AL, BL, CL, DL и старших байтов АН, ВН, СН, DH (младшие байты – Low, старшие – High). Тем самым обеспечивается возможность обработки как слов, так и байтов, и создаются необходимые условия для программной совместимости i8086/8088 и i8080.
Все остальные регистры являются неделимыми и оперируют 16-битовыми словами, даже в случае использования только старшего или младшего байтов. Указательные регистры SP (Stack Pointer) и ВР (Base Pointer) хранят смещение адреса в пределах текущего стекового сегмента памяти, а индексные регистры SI (Source Index – индекс источника) и DI (Destination Index – индекс назначения) хранят смещение адреса соответственно в текущем сегменте данных и в текущем дополнительном сегменте.
Кроме основных функций, соответствующих названию регистров, общие регистры выполняют специальные функции, указанные в табл. 4.1.
Таблица 4.1.
Регистр |
|
|
|
Аккумулятор |
Умножение, деление и ввод-вывод слов |
AL |
Аккумулятор (младший байт) |
Умножение, деление и ввод-вывод байтов; преобразование байтов; десятичная арифметика |
AH |
Аккумулятор (старший байт) |
Умножение и деление слов |
BX |
Базовый регистр |
Адресация по базе; преобразование адресов |
CX |
Счетчик |
Подсчет циклов; подсчет элементов цепочек |
CL |
Счетчик (младший байт) |
Реализация параметрических сдвигов |
DX |
Регистр (младший байт) |
Умножение и деление слов; косвенный ввод-вывод |
SP |
Указатель стека |
Операции с использованием стека |
BP |
Указатель базы |
Базовый регистр |
SI |
Индекс источника |
Указатель цепочки-источника, индексный регистр |
DI |
Индекс приемника |
Указатель цепочки-приемника, индексный регистр |
Арифметико-логическое устройство (АЛУ) содержит 16-битовый комбинационный сумматор и наборы комбинационных схем для выполнения логических операций. К АЛУ примыкает регистр флагов F, содержащий биты CF – флаг переноса, PF – флаг четности, ZF – флаг нулевого результата, SF – флаг знака, OF – флаг переполнения, DF – флаг направления, управляемый командами CLD и STD, IF – флаг разрешения прерываний, управляемый с помощью команд CLI и STI, TF – флаг трассировки.
Устройство управления (УУ) дешифрует команды, а также воспринимает и вырабатывает необходимые управляющие сигналы. В его состав входит блок микропрограммного управления, в котором реализовано программирование МП на микрокомандном уровне.
Устройство шинного интерфейса содержит блок сегментных регистров, указатель команд, сумматор адресов, очередь команд и буферы, обеспечивающие связь с шиной. Шинный интерфейс выполняет операции обмена между МП и памятью или портами ввода-вывода по запросам операционного устройства. Когда операционное устройство занято выполнением команды, шинный интерфейс самостоятельно инициирует опережающую выборку кодов очередных команд из памяти.
Очередь команд представляет собой набор байтовых регистров и выполняет роль регистра команд, в котором хранятся коды, выбранные из программной памяти. Длина очереди составляет 6 байт, что соответствует максимально длинному формату команд. Наличие очереди команд, а также способность операционного устройства и шинного интерфейса работать параллельно позволяют совместить во времени фазы выборки команды и выполнения заданной операции: пока очередная команда исполняется в операционном устройстве, шинный интерфейс осуществляет выборку следующей команды. Таким образом достигаются высокая плотность загрузки шины и повышение скорости выполнения программы.
Шинный интерфейс инициирует выборку следующего командного слова автоматически, как только в очереди освободятся два байта. Как правило, в очереди находится минимум один байт потока команд, так что операционное устройство не ожидает выборки команды.
Ясно, что опережающая выборка команд позволяет экономить время только на линейных участках программ, когда сохраняется естественный порядок выполнения команд в программе. При выполнении ветвлений, когда операционное устройство, например, выполняет команду условной передачи управления (перехода) в программе, шинный интерфейс сбрасывает очередь, выбирает команду по новому адресу, передает ее в операционное устройство, а затем начинает заполнение (реинициализацию) очереди из следующих ячеек памяти. Эти действия предпринимаются в условных и безусловных переходах, вызовах подпрограмм, возвратах из подпрограмм и при обработке прерываний.
По мере необходимости операционное устройство считывает байт из очереди и выполняет предписанную командой операцию. При многобайтовых командах из очереди считываются и другие байты команды. В тех редких случаях, когда к моменту считывания очередь оказывается пустой, операционное устройство ожидает выборку очередного командного слова, которую инициирует шинный интерфейс. Если команда требует обращение к памяти или порту ввода-вывода, операционное устройство запрашивает шинный интерфейс на выполнение необходимого цикла шины для передачи данных. Когда шинный интерфейс не занят выборкой команды, он удовлетворяет запрос немедленно; в противном случае операционное устройство ожидает завершения текущего цикла шины. Со своей стороны, шинный интерфейс приостанавливает выборку команд во время обмена данными между операционном устройством и памятью или портами ввода-вывода.
Буфер шины адреса/данных содержит 16 двунаправленных управляемых усилителей с тремя выходными состояниями и обеспечивает номинальную нагрузочную способность линий AD15-AD0.
Буфер шины адреса/состояния содержит четыре однонаправленных усилителя с тремя выходными состояниями и обеспечивает номинальную нагрузочную способность линий А19/SТ6-А16/SТ3.
Сегментные регистры хранят базовые (начальные) адреса сегментов памяти: кодового сегмента CS, в котором содержится программа; стекового сегмента SS; сегмента данных DS; дополнительного сегмента ES, в котором обычно содержатся данные. Наличие сегментных регистров обусловлено разделением памяти на сегменты и используемым способом формирования адресов памяти. Хотя МП имеет 20-битовую шину физического адреса памяти, он оперирует 16-битовыми логическими адресами, состоящими из базового адреса сегмента и внутрисегментного смещения. Внутрисегментное смещение может быть вычислено в соответствии с указанным в команде способом адресации, может находиться в формате команды или содержаться в общем регистре. Физический адрес формируется путем суммирования смещения и содержимого соответствующего сегментного регистра, сдвинутого на четыре разряда влево (т.е. умноженного на 16).
Сумматор адресов осуществляет вычисление 20-битовых физических адресов по 16-битовым логическим адресам.
Указатель команд IP хранит смещение следующей команды в текущем кодовом сегменте, т. е. указывает на следующую по порядку команду. Он является аналогом стандартного программного счетчика с той лишь разницей, что его содержимое определяет адрес команды лишь в совокупности с содержимым регистра CS; если же CS заполнен нулями, аналогия становится полной.
Модификация IP осуществляется шинным интерфейсом так, что при обычной работе IP содержит смещение того командного слова, которое шинный интерфейс будет выбирать из памяти. Оно не совпадает со смещением очередной команды (находящейся в этот момент на выходе очереди команд), которую будет выполнять операционное устройство. Поэтому при запоминании содержимого IP в стеке, например при вызове подпрограмм, оно автоматически корректируется, чтобы адресовать следующую команду, которая будет выполняться. Эта особенность является следствием опережающей выборки команд, реализованной в i8086/8088 (К 1810ВМ86). Непосредственный доступ к IP имеют команды передачи управления.