- •Составитель: Валерий Анатольевич Засов
- •Рецензенты: генеральный директор научно-производственного центра «Информационные и транспортные системы», д.Т.Н., профессор с.В. Архангельский
- •Оглавление
- •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
- •Команды передачи данных
- •Арифметические команды
- •Логические команды и команды сдвигов
- •Строковые или цепочечные команды
- •Команды передачи управления
- •Коды условий перехода (сс)
- •Команды управления микропроцессором
5.4.Эффективность многоядерной архитектуры микропроцессоров
Избежать конфликтных ситуаций, возникающих при использовании технологии Hyper-Threading, можно в том случае, если изолировать в пределах одного процессора выполнение различных потоков инструкций. Фактически для этого потребуется использовать не одно, а два и более ядер процессора. Тогда в идеальном варианте каждый поток инструкций использует отведенное ему ядро процессора (и исполнительные блоки), что позволяет избежать конфликтных ситуаций и увеличить производительность процессора за счет параллельного выполнения потоков инструкций.
В рассмотренном на рис.5.6 примере показана эффективность применения двух независимых ядер в процессоре для выполнения двух потоков инструкций. Применение в процессоре двухъядерной архитектуры позволило выполнить весь программный код не за семь (как в случае процессора с технологией Hyper-Threading), а за пять тактов.
Конечно, говорить о том, что двухъядерные процессоры в два раза производительнее одноядерных, нельзя. Причина заключается в том, что для реализации параллельного выполнения двух потоков необходимо, чтобы эти потоки были полностью или частично независимы друг от друга, и, кроме того, чтобы операционная система и само приложение поддерживали на программном уровне возможность распараллеливания задач.
В связи с этим стоит подчеркнуть, что сегодня далеко не все приложения удовлетворяют этим требованиям и поэтому не смогут получить выигрыша от использования двухъядерных процессоров. Должно пройти еще немало времени, чтобы были разработаны эффективные средства для разработки программ, которые могут выполняться параллельно во времени и ориентированных на параллельные вычислительные системы. Впрочем, уже сегодня существует немало приложений, которые оптимизированы для выполнения в многопроцессорной среде, и такие приложения позволяют использовать преимущества двухъядерных и многоядерных микропроцессоров.
5.5.Регистровые структуры 32-разрядных микропроцессоров
32-разрядный процессор имеет 32 программно-доступных регистра следующих видов:
-
регистры общего назначения;
-
регистр указателя команд;
-
регистр флагов;
-
регистры сегментации;
-
регистры управления;
-
регистры системного адреса;
-
регистры отладки и тестирования;
Все 16-разрядные регистры микропроцессоров 8086, 80186, 80286 входят в состав набора 32-разрядных регистров. Рассмотрим эти регистры.
-
Регистры общего назначения. Восемь 32-х разрядных регистров общего назначения (РОН) предназначены для хранения данных и адресов (рис.5.7). Они поддерживают работу с данными разрядностью 1, 8, 16, 32 и 64 бита, битовыми полями длиной от 1 до 32 бит и адресными операндами размером 16 и 32 бита. РОН называются: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP.
Младшие 16 разрядов каждого регистра могут использоваться по отдельности, они называются: AX, BX, CX, DX, SI, DI, BP, SP. Также могут индивидуально использоваться младший (0-7) и старший (8-15) байты РОН AX, BX, CX, DX соответственно, их называют: AL, BL, CL, DL и AH, BH, CH, DH.
Индивидуальная доступность байтов РОН обеспечивает дополнительную гибкость для операций с данными, но это не используется при адресации.
Р егистр указателя команд. Регистр указателя команд представляет собой 32-х разрядный регистр, который называют EIP (рис.5.8). Он содержит смещение следующей команды, которую нужно выполнить. Смещение всегда определяется относительно сегмента кода. Его младшие 16 бит называются IP и используются при шестнадцатиразрядной адресации.
-
Регистр флагов. Регистр флагов является 32-х разрядным и называется EFLAGS. Его разряды содержат признаки выполнения команд, управляют обработкой прерываний, последовательностью вызываемых команд, вводом/выводом и рядом других процедур. Младшие 16-ть разрядов EFLAGS представляют собой регистр FLAGS, который может использоваться при выполнении операций с 8086, 80186, 80286.
Все флаги младшего байта регистра устанавливаются арифметическими или логическими операциями процессора. За исключением флага переполнения, все флаги старшего байта младшего слова отражают состояние микропроцессора и влияют на характер выполнения программ.
Описание разрядов регистра следующее:
M – виртуальный режим;
RF – возобновление задач;
NT – вложение задач;
IOPL – уровень привилегий ввода/вывода;
OF – переполнение;
DF – направление обработки;
IF – разрешение прерываний;
TF – трассировка;
SF – знак результата;
ZF – нулевой результат;
AF – вспомогательный перенос;
PF – паритет;
CF – перенос.
Сегментные регистры. Шесть 16-ти разрядных сегментных регистров содержат базовые адреса сегментов, определяющие сегменты памяти текущей адресации (рис.5.9). В защищенном режиме каждый сегмент может иметь размеры от одного байта до целого линейного и физического пространства машины (до 4 Гбайт). В режиме реальной адресации, максимальный размер сегмента ограничен на 64 Кб. Шесть сегментов определяются содержимым регистров CS, SS, DS, ES, FS и GS. Значение в CS указывает на текущий сегмент кода; содержимое SS указывает текущий сегмент стека, а значения в DS, ES, FS и GS – на сегменты данных.
Регистры дескриптора сегмента. Регистры дескриптора сегмента невидимы для программиста. В 32-х разрядном процессоре регистр дескриптора сегмента соотнесен с каждым видимым регистром селектора, как показано на рис.5.9. Каждый из них содержит 32-х битовый базовый адрес сегмента, его границу (предел) и другие необходимые признаки сегмента. Когда адрес сегмента загружается в сегментный регистр, ассоциативный (соотнесенный) регистр дескриптора автоматически модифицируется в соответствии с новой информацией.
Регистры процессора обработки чисел с плавающей точкой. Набор регистров, входящих в блок (FPU), изображен на рис.5.10. При работе FPU 80-разрядные регистры ST0-ST7 образуют кольцевой стек, в котором хранятся числа с плавающей точкой, представленные в формате с расширенной точностью.
П ри работе FPU 80-разрядные регистры ST0-ST7 образуют кольцевой стек, в котором хранятся числа с плавающей точкой, представленные в формате с расширенной точностью. Тег определяет, является ли регистр пустым (незаполненным) – код 11 или в него введено конечное число – 00 (достоверное значение), или нуль – 01, неопределенное значение (бесконечность) – 10 (нет числа и неподдерживаемый формат). Слово тегов позволяет оптимизировать функционирование FPU посредством идентификации пустых и непустых регистров данных, проверить содержимое регистра без сложного декодирования хранящихся в нем данных.
Системные регистры. Системные регистры управляют функционированием микропроцессора в целом и режимами работы отдельных внутренних блоков: процессора с плавающей точкой, кэш-памятью, диспетчера памяти. Эти регистры доступны только в защищенном режиме для программ.
Набор системных регистров включает регистры управления, регистры системных адресов и с сегментов.
Регистры управления 32-разрядные, служат для фиксации общего состояния процессора. Эти регистры вместе с регистрами системных адресов хранят информацию о состоянии процессора, которое затрагивает все задачи.
Регистры отладки и тестирования. Набор программно-доступных регистров поддерживает отладку программ и тестирования внутренних блоков процессора. Встроенный алгоритм самотестирования (BIST) в процессоре Pentium 4 осуществляет поиск ошибки в микрокоде и в больших логических матрицах, а также тестирование кэш-памяти команд и данных, буферов ассоциативной трансляции (TLB) и устройств постоянной памяти. Внутренние счетчики контролируют работу процессора и проводят подсчет событий. Также введена новая функция – мониторинг термического состояния системной платы.