- •К.А. Палагута Микропроцессоры и интерфейсные средства транспортных средств
- •Москва 2011
- •Глава 1. Микропроцессор (мп), микропроцессорная система (мпс), основные понятия 11
- •Глава 2 Режимы работы мпс 33
- •Глава 3. Реализация и организация памяти мп 57
- •Глава 4. Микропроцессор кр580вм80а (Intel 8080) 77
- •Глава 5. Микропроцессор к1810вм86 (Intel 8086) 138
- •Глава 6. Микропроцессоры Intel от 80186 до Pentium 4 159
- •Глава 7. Микропроцессор к1801вм1, магистраль q-bus 209
- •Глава 8. Понятие и задачи интерфейса 239
- •Глава 9. Интерфейсные блоки для магистралей isa и q-bus 255
- •Глава 10. Промышленные интерфейсы. Сетевые протоколы в автомобиле 308
- •Глава 11. Интегральные схемы программируемой логики (ис пл) 326
- •Предисловие
- •Введение
- •Глава 1. Микропроцессор (мп), микропроцессорная система (мпс), основные понятия
- •1.1 Определение микропроцессора, классификация мп
- •1.2 Микропроцессорный комплект (мпк)
- •1.3 Микропроцессорная система
- •1.4 Линия, шина, магистраль
- •1.5 Типы магистралей
- •1.6 Шина адреса, раздельные и объединенные адресные пространства памяти и устройств ввода-вывода
- •1.7 Шина данных
- •1.8 Шина управления
- •1.9 Архитектура и структура микропроцессора
- •1.10 Cisc и risc процессоры, конвейерное выполнение команд программы
- •1.11 Конвейерная обработка данных
- •1.12 Контрольные вопросы и задания
- •Глава 2 Режимы работы мпс
- •2.1 Режим обмена данными под управлением процессора
- •2.2 Режим пдп
- •2.3 Режим прерывания
- •2.4 Контрольные вопросы и задания
- •Глава 3. Реализация и организация памяти мп
- •3.1. Виды запоминающих устройств (зу)
- •3.2. Кэш-память
- •3.3. Когерентность, механизмы сквозной и обратной записи
- •3.4. Алгоритмы обновления содержимого заполненных строк, снуппинг
- •3.5. Организация памяти
- •3.6. Внешние зу
- •3.7. Контрольные вопросы и задания
- •Глава 4. Микропроцессор кр580вм80а (Intel 8080)
- •4.1 Структура мп к580вм80
- •4.2 Основные технические характеристики мп кр580вм80а
- •4.3 Регистровая модель мп к580вм80
- •4.4 Классификация команд мп кр580вм80а
- •4.5 Команды пересылки (перемещения) данных
- •4.5.1 Пересылка из регистра в регистр
- •4.5.2 Непосредственная пересылка
- •4.5.3 Непосредственная загрузка пары регистров
- •4.5.4 Запоминание/загрузка аккумулятора и пары hl
- •4.5.5 Ввод из пары регистров в стек
- •4.5.6 Ввод а и f в стек
- •4.5.7 Выбор из стека пары регистров
- •4.5.8 Выбор (a) и (f) из стека
- •4.5.9 Обмен данными
- •4.5.10 Пересылка нl
- •4.6 Приращение / отрицательное приращение
- •4.6.1 Приращение/отрицательное приращение регистра
- •4.6.2 Приращение пары регистров
- •4.6.3 Отрицательное приращение пары регистров
- •4.7 Арифметические и логические операции
- •4.7.1 Арифметические операции над (a) и (r)
- •4.7.2 Арифметические операции с непосредственной адресацией
- •4.7.3 Сложение содержимого пар регистров
- •4.7.4 Логические операции над (а) и (r)
- •0800) Ora c
- •4.7.5 Логические операции с непосредственной адресацией
- •4.7.6 Операции сравнения
- •4.7.7 Операции циклического сдвига (а).
- •4.7.8 Дополнение аккумулятора
- •4.8 Команды перехода и вызова подпрограмм
- •4.8.1 Команды переходов
- •4.8.2 Команды вызова подпрограмм и возврата из подпрограмм
- •4.9 Команды ввода – вывода
- •4.9.1 Ввод данных из входного порта
- •4.9.2 Вывод данных в выходной порт
- •4.10 Команды управления
- •4.10.1 Рестарт (повторный запуск)
- •4.10.2 Изменение (Тс)
- •0800) Stc
- •0800) Cmc
- •4.10.3 Управление прерываниями
- •4.10.4 Двоично-десятичная коррекция
- •4.10.5 Пустая операция
- •4.10.6 Останов
- •4.11 Микропроцессор intel8085
- •4.11.1 Архитектура мп intel8085
- •4.11.2 Регистры мп Intel 8085
- •4.11.3 Ввод и вывод последовательных данных
- •4.12 Контрольные вопросы и задания
- •Глава 5. Микропроцессор к1810вм86 (Intel 8086)
- •5.1. Устройство и работа микропроцессора Intel 8086 (k1810bm86)
- •5.1.1. Структура микропроцессора Intel 8086
- •5.1.2. Режимы работы микропроцессора
- •5.1.3. Структура минимально укомплектованной системы на базе микропроцессора к1810вм86
- •5.1.4. Структура системы средней сложности на базе микропроцессора к1810вм86
- •5.2. Программная модель микропроцессора Intel 8086
- •5.2.1. Пользовательские регистры
- •5.2.2. Регистры общего назначения
- •5.2.3. Сегментные регистры
- •5.2.4. Регистры состояния и управления
- •5.3. Формирование физического адреса в микропроцессоре Intel 8086
- •5.4 Способы адресации микропроцессора
- •5.5 Контрольные вопросы и задания
- •Глава 6. Микропроцессоры Intel от 80186 до Pentium 4
- •6.1. Архитектура микропроцессоров 80186/80188
- •6.2. Микропроцессор 80286
- •6.2.1 Аппаратные особенности
- •6.2.2 Система команд
- •6.2.3. Виртуальная память
- •6.3. Микропроцессоры 80386 и 80486
- •6.3.1. Микропроцессор 80386
- •6.4. Микропроцессоры Pentium и Pentium Pro
- •6.5. Специальные регистры микропроцессора Pentium
- •6.6. Управление памятью микропроцессора Pentium
- •6.7. Новые команды микропроцессора Pentium
- •6.8. Специальные особенности микропроцессора Pentium Pro
- •6.9. Микропроцессоры Pentium II, Pentium III и Pentium 4
- •6.9.1. Сопряжение с памятью
- •6.9.2. Набор регистров
- •6.11 Контрольные вопросы и задания
- •Глава 7. Микропроцессор к1801вм1, магистраль q-bus
- •7.1 Микропроцессор к1801вм1
- •7.1.1 Структурная схема микропроцессора к1801вм1
- •7.1.2 Основные технические характеристики
- •7.1.3 Регистровая модель микропроцессора
- •7.1.4 Адресное пространство
- •7.1.5 Формат команд
- •7.1.6 Методы адресации
- •7.2. Системная магистраль q-Bus
- •7.2.1 Временная диаграмма цикла ввод
- •7.2 2 Временная диаграмма цикла вывод
- •7.2.3 Цикл ввод-пауза-вывод
- •7.2.4 Временная диаграмма предоставления прямого доступа к памяти
- •7.2.5 Временная диаграмма прерывания
- •7.3 Контрольные вопросы и задания
- •Глава 8. Понятие и задачи интерфейса
- •8.1 Интерфейс
- •8.2 Селекция магистралей
- •8.2.1 Схемы централизованной селекции
- •8.2.2 Схемы децентрализованной селекции
- •8.3 Синхронизация обмена по магистрали
- •8.4 Координация взаимодействия устройств на магистрали
- •8.5 Контрольные вопросы и задания
- •Глава 9. Интерфейсные блоки для магистралей isa и q-bus
- •9.1 Isa
- •9.2. Порядок обмена по системной магистрали isa
- •9.2.1. Особенности магистрали isa
- •9.2.2. Сигналы магистрали isa
- •9.2.3. Циклы магистрали isa
- •9.3 Разработка устройств сопряжения для isa
- •9.3.1. Проектирование аппаратуры для сопряжения с isa
- •9.4 Разработка устройств сопряжения для q-bus
- •9.5 Контрольные вопросы и задания
- •Глава 10. Промышленные интерфейсы. Сетевые протоколы в автомобиле
- •10.1 Промышленные Fieldbus (полевые) сети
- •10.1.1 Модель osi (Open System Interconnection) (iso/osi) для стандартов.
- •10.1.2 Локальная сеть на основе интерфейса rs-485, объединяющая несколько приемо-передатчиков.
- •10.2 Этапы развития fieldbus технологий
- •10.3 Сетевые протоколы в автомобиле
- •10.4 Контрольные вопросы и задания
- •Глава 11. Интегральные схемы программируемой логики (ис пл)
- •11.1. Классификация ис программируемой логики
- •11.2. Конструктивно-технологические типы современных программируемых элементов
- •11.3. Области применения микросхем с программируемой логикой
- •11.4 Системные свойства ис пл
- •11.5 Типовые схемотехнические решения
- •11.6 Приемы дополнительной обработки сигнала
- •11.7 Организация двунаправленных выводов
- •11.8 Схема программирования типа выхода ячейки (введение триггера)
- •11.9 Fpga (программируемые пользователем вентильные матрицы)
- •11.10. Полные ресурсы межсоединений в микросхемах cpld
- •11.11 Контрольные вопросы и задания
- •Заключение
- •Глоссарий
- •Список литературы
6.4. Микропроцессоры Pentium и Pentium Pro
Микропроцессор Pentium обладает модернизированной архитектурой, которая была в микропроцессоре 80486. Изменения включают: улучшенную структуру кэш-памяти, большую разрядность шины данных, более быстродействующий цифровой сопроцессор, процессор содержит два параллельно работающих конвейера обработки, реализован интерфейс построения двухпроцессорных систем и добавлена логика предсказания ветвления. Кэш-память первого уровня (Level 1) процессора Pentium состоит из двух частей по 8 Кбайт в каждой: одна — для кэширования данных, а другая — для команд. Разрядность шины данных увеличена с 32 до 64 разрядов. Цифровой сопроцессор функционирует в пять раз быстрее, чем цифровой сопроцессор микропроцессора 80486. Процессор содержит два параллельно работающих конвейера обработки, благодаря чему он часто выполняет одновременно две команды. Наконец, логика предсказания ветвления позволяет программам выполнять условные переходы более эффективно. Следует заметить, что эти изменения дополнительно встроены в процессор Pentium, что делает программное обеспечение совместимым снизу вверх со всеми предыдущими микропроцессорами Intel 80x86. Последнее существенное усовершенствование микропроцессора Pentium связано с добавлением команд ММХ.
Микропроцессор Pentium Pro является более быстродействующей версией микропроцессора Pentium. Он имеет усовершенствованную внутреннюю архитектуру, которая способна планировать выполнение до пяти команд, и более быстрый блок вычислений с плавающей запятой. Кроме того, микропроцессор Pentium Pro содержит кэш-память второго уровня (Level 2) объемом 256 или 512 Кбайт, дополнительно к кэш-памяти первого уровня (Level 1) объемом 16 Кбайт (8 Кбайт для данных и 8 Кбайт для команд). Микропроцессор Pentium Pro содержит в себе схему коррекции ошибок ЕСС (error correction circuitry), которая может исправлять ошибку в одном разряде и указывать на ошибку в двух разрядах. Также добавлены четыре дополнительные адресные строки, которые предоставляют микропроцессору Pentium Pro прямо адресоваться к огромному объему физической памяти, равному 64 Гбайтам.
Система памяти
Шина адреса микропроцессора Pentium позволяет адресовать 4 Гбайт физической памяти, как и в микропроцессорах 80386DX и 80486. Разница заключается в разрядности шины данных памяти процессоров. Микропроцессор Pentium использует 64-разрядную шину данных памяти, состоящую из восьми банков по 512 Мбайт данных в каждом. На рис. 6.8 представлена организация системы физической памяти микропроцессора Pentium.
Система памяти микропроцессора Pentium разделена на 8 банков, каждый из которых содержит байт данных с битом паритета. Микропроцессор Pentium, подобно микропроцессору 80486, использует внутреннюю генерацию сигнала паритета и логику проверки достоверности информации шины данных системы памяти. Следует заметить, что в большинстве систем, построенных на процессоре Pentium, не используют контроль паритета, но он доступен.
Память, имеющая 64-разрядную шину данных, является наиболее подходящей для данных с плавающей точкой удвоенной точности. Следует напомнить, что число с плавающей точкой удвоенной точности является 64-разрядным. Микропроцессор Pentium, благодаря переходу на 64-разрядную шину данных, способен извлекать данные с плавающей точкой за один цикл чтения, вместо двух, как это было в микропроцессоре 80486. За счет этого производительность микропроцессора Pentium выше, чем у микропроцессора 80486. Система памяти, как и в предыдущих микропроцессорах Intel, адресуется байтами: от байта 00000000Н до байта FFFFFFFFH.
|
Рис. 6.8. Организация банков памяти микропроцессора Pentium
|
Выбор банков памяти осуществляется при помощи сигналов разрешения байтов ВЕ7—ВЕ0 (byte enable). Такая организация памяти позволяет микропроцессору Pentium получать доступ к любому одиночному байту, слову, двойному слову или учетверенным словам за один цикл обмена данными памяти. Как и для предыдущей логики выбора памяти, для записи в систему памяти необходимо сформировать восемь отдельных стробов записи.
Новая особенность, добавленная в микропроцессор Pentium, заключается в его возможности в ходе выполнения отдельных операций контролировать и формировать бит паритета для шины адреса (А31—А5). Вывод АР обеспечивает систему информацией о паритете адреса, а вывод АРСНК указывает на ошибку паритета шины адреса. Микропроцессор Pentium сам не предпринимает никаких действий при ошибке паритета, он только указывает на ее наличие. Ошибку оценивает система и она же должна принимать при необходимости соответствующие меры (вызвать прерывание процессора).
Микропроцессор Pentium может работать с 32-разрядной системой памяти, но используя мультиплексор для преобразования 64-разрядной шины данных в 32-разрядную шину. При использовании такой схемы необходимо быть внимательным, поскольку программное обеспечение может получать доступ к двойному слову, которое пересекает границу между нижней и верхней частями шины данных. Все двойные слова должны находиться в пределах границ двойных слов. Следует заметить, что граница двойного слова — это адрес, кратный 4.
Логика предсказания ветвления
Микропроцессор Pentium использует логику предсказания ветвления, чтобы снизить необходимое для выполнения ветвления время, которое связано с внутренними задержками. Эти задержки минимизируются, поскольку блок предвыборки при встрече команды ветвления (в данном случае только вероятной) микропроцессор начинает предварительно выбирать команду, на которую должен произойти переход. Процессор Pentium выполняет упреждающую обработку переходов, используя буфер адресов переходов ВТВ, иначе называемый как целевой буфер переходов (branch target buffer), и два буфера предварительной выборки. Один буфер применяется для предварительной выборки команды в предположении, что перехода нет, а другой выполняет предвыборку команд, используя содержимое буфера ВТВ, которое было запомнено при первом переходе. Буфер ВТВ может хранить до 256 результатов переходов, что позволяет прогнозировать вложенные циклы. Затем инструкции из буферов предвыборки загружаются в кэш команд, чтобы при возникновении ветвления необходимые команды уже имелись в наличии и позволили бы выполнить ветвление за один такт. При ошибочном предсказании перехода конвейеры команд обнуляются и предвыборка команд начинается заново. Тогда либо при какой-либо другой ошибке в логике предсказания ветвления для выполнения операции ветвления потребуется три дополнительных периода синхронизации. Однако в большинстве случаев предсказание ветвления является правильным и никаких задержек не происходит.
Структура кэш-памяти
Кэш-память микропроцессора Pentium изменена по сравнению с кэш-памятью микропроцессора 80486. Микропроцессор Pentium содержит два раздельных блока кэш-памяти по 8 Кбайт каждый вместо одного, как это было в микропроцессоре 80486. Имеется кэш-память данных и кэш-память команд. Кэш команд содержит только команды, а кэш данных содержит данные, используемые командами.
Микропроцессор 80486 с унифицированной кэш-памятью при выполнении программы, перерабатывая большое количество данных, быстро заполнял кэш и тем самым оставлял мало места для команд. Поэтому скорость выполнения программы микропроцессора 80486 часто замедлялась. Такого в микропроцессоре Pentium не происходит, поскольку имеется два отдельных блока кэш-памяти.
Суперскалярная архитектура
Микропроцессор Pentium, в отличие от процессора 80486, имеет суперскалярную архитектуру, состоящую из трех операционных блоков. Один блок выполняет команды с плавающей точкой (сопроцессор), а два другие блока (U-конвейер и V-конвейер), работая параллельно, выполняют команды над целочисленными данными. Это означает, что одновременно можно исполнять три команды. Например, команда fadd st, st(2), команда mov еах, 10H и команда mov евх, 12H могут выполняться одновременно, поскольку ни одна из этих команд не зависит друг от друга. Команда fadd st,st(2) выполняется сопроцессором, команда mov еах,10н выполняется U-конвейером, а команда mov евх, 12H — V-конвейером. Поскольку сопроцессор используется также для выполнения ММХ - команд, разумеется, при их наличии, то микропроцессор Pentium одновременно может выполнять две команды над целочисленными данными и одну ММХ - команду.
Программное обеспечение должно составляться с учетом этой особенности путем просмотра всех команд программы с дальнейшим их вероятным изменением в том случае, если возможна замена или разделение зависимых команд на независимые. В результате, такие изменения могут повышать скорость выполнения некоторых программ до 40%. Поэтому следует убедиться, что новая компилирующая программа или какой-либо другой пакет прикладных программ, применяемый вами, использует преимущества новой суперскалярной архитектуры микропроцессора Pentium.