
- •Архитектура вычислительных систем. Учебное пособие.
- •Характеристики и режимы работы эвм
- •Основные характеристики эвм
- •1.2. Режимы работы эвм
- •1.2.1. Однопрограммный режим работы
- •1.2.2. Мультипрограммный режим работы
- •1.2.3. Режим пакетной обработки
- •1.2.4. Режим разделения времени
- •1.2.5. Диалоговый режим работы
- •1.2.6. Режим работы в реальном масштабе времени
- •Классификация компьютеров по областям применения
- •2.1. Персональные компьютеры и рабочие станции
- •2.3. Серверы
- •2.4. Мейнфреймы
- •2.5. Кластерные архитектуры
- •3. Организация современного пк
- •Архитектура пк на базе набор микросхем 440 lx
- •3.1. Структура системной платы на наборе микросхем 440 lx
- •3.2. Типы системных плат на чипсете 440 lx
- •4. Функциональная и структурная организация процессоров
- •4.1. Классификация процессоров (cisc и risc)
- •4.2.Принципы организации процессоров
- •4.2.1. Назначение и структура процессора
- •Структура микропроцессора
- •4.2.2. Основные регистры процессоров
- •Операционное устройство и шинный интерфейс
- •4.2.3. Способы организации управления вычислительным процессом
- •Схемный принцип управления
- •Микропрограммный принцип
- •4.2.4. Технология mmx
- •Отображение ммх-регистров на fpu-регистры
- •Влияние ммх-команд на контекст fpu
- •4.2.5. Принципы конвейерной технологии
- •Представление о работе конвейера
- •Диаграмма работы простейшего конвейера
- •4.3. Микроархитектура процессоров p5
- •Структурная схема микропроцессора Pentium
- •4.4. Микроархитектура процессоров семейства р6
- •Структурная схема микропроцессора Pentium Pro
- •Ядро и подсистемы памяти Pentium
- •Устройство выборки/декодирования
- •Структура устройства диспетчирования/выполнения
- •Устройство отката
- •Интерфейс с шиной
- •4.5. Микроархитектура процессоров семейства amd
- •Микроархитектура процессора amd-k6-2
- •Микроархитектура процессора amd Athlon
- •Рабочая схема модуля вычислений с плавающей точкой
- •Организация системной шины
- •5.Принципы организации системы прерывания программ
- •5.1. Классы сигналов прерывания
- •5.2. Распределение прерываний в пк на базе процессоров х86
- •Распределение аппаратных прерываний
- •5.3. Приоритеты прерываний
- •Временная диаграмма возможного процесса прерывания программы
- •Определение исполнение программ в системе с учетом приоритетности запросов прерывания
- •5.4. Защита от прерывания
- •Организация памяти пк
- •6.1. Иерархии памяти
- •6.2. Организация кэш-памяти
- •6.3. Организация оперативной памяти (ram)
- •6.3.1. Типы и классификация оп
- •Прямая регистровая адресация
- •6.3.2.4. Подразумеваемая адресация
- •6.3.2.5. Косвенная адресация
- •Косвенная адресация с использованием оперативной памяти
- •6.3.2.6. Косвенная регистровая адресация
- •6.3.2.7. Модификация адресов
- •Индексная адресация с использованием регистров
- •6.3.2.8. Относительная адресация
- •Относительная адресация
- •Формирование исполнительного адреса при относительной и индексной адресации
- •6.4. Организация виртуальной памяти
- •6.4.1. Страничная адресация памяти
- •Адреса при страничной адресации
- •Порядок использования таблицы страниц
- •6.4.2. Сегментация памяти
- •7. Организация ввода-вывода
- •7.2. Системные и локальные шины
- •7.3. Шины ввода/вывода
- •7.3.1. Шина agp
- •Схемы pci и agp
- •7.3.2. Шина usb
- •Топология шины usb
- •7.3.3. Шины ide и scsi
- •8. Периферийные устройства
- •Примеры устройств ввода/вывода
- •8.1. Магнитные и магнитооптические диски
Ядро и подсистемы памяти Pentium
Системная шина
Рис.4.10.
Процессор Pentium II построен на основе семи базовых модулей (рис. 4.10) — Fetch/Decode Unit (модуль загрузки/декодирования инструкций), Dispatch/Execute Unit (модуль диспетчеризации/исполнения инструкций), Retire Unit (модуль завершения и удаления инструкций). Instruction Pool (пул инструкций, его также называют Reorder Buffer — буфер переупорядочивания инструкций). Bus Interface Unit (модуль внешнего интерфейса), LI ICache (L1-кэш для инструкций) и LI DCache (L1-кэш для данных).
Fetch/Decode Unit предназначен для приема входного потока инструкций исполняемой программы, поступающего из L1-кэша инструкций, и их последующего декодирования в поток микроопераций (рис. 4.11).
Этот модуль работает следующим образом. Прежде всего, блок Next_IP вычисляет индекс (порядковый номер) инструкции, содержащейся в L1-кэше инструкций, которая должна быть обработана следующей — то есть извлечена из L1-кэша инструкций и передана для последующего декодирования.
Индекс этой инструкции вычисляется блоком Next_IP на основе поступающей в него информации о прерываниях, которые были переданы в процессор для обработки, возможных предсказанных переходах (предсказание выполняется блоком Branch Target Buffer), и сообщениях о неправильно предсказанных переходах (branch-misprediction), которые поступают от целочисленных вычислительных ресурсов, расположенных в модуле Dispatch/Execute Unit. После вычисления индекса следующей обрабатываемой инструкции Li-кэш инструкций извлекает две строки кэшированных данных (cache line) — ту, которая соответствует вычисленному индексу, и следующую за ней, — а затем передает для декодирования извлеченные 16 байт, которые содержат IA-инструкции (Intel Architecture). Начало и конец IA-инструкций маркируются.
Далее маркированный поток байт обрабатывается сразу тремя параллельно работающими декодерами, которые отыскивают в нем IA-инструкции. Каждый декодер преобразует найденную IA-инструкцию в набор триадных микроопераций (uops) — триадных в том смысле, что микрооперация проводится над двумя исходными логическими операндами, а в результате ее выполнения получается только один логический результат. Микрооперация — это примитивная инструкция, которая может быть выполнена одним из вычислительных ресурсов, расположенных в модуле Dispatch/Execute Unit.
Из трех декодеров два — простые, которые могут преобразовывать только IA-инструкций, требующие выполнения одной микрооперации, а третий декодер — более совершенный; он может преобразовывать IA-инструкции, требующие выполнения от одной до четырех микроопераций. Таким образом, за один такт работы процессора все три декодера могут в сумме сгенерировать максимум шесть микроопераций. Для преобразования еще более сложных IA-инструкций используется микрокод, который содержится в блоке Microcode Instruction Sequencer и представляет собой набор предварительно запрограммированных последовательностей обычных микроопераций.