Московский государственный университет печати

Иванько А.Ф.


         

Структура и архитектура микропроцессоров современных персональных электронных вычислительных машин

Учебное пособие


Иванько А.Ф.
Структура и архитектура микропроцессоров современных персональных электронных вычислительных машин
Начало
Печатный оригинал
Об электронном издании
Оглавление
1.

Введение в архитектуру микропроцессоров

2.

Особенности набора КР 580

3.

Архитектура микропроцессора К 580 и микроЭВМ на его базе

4.

Система команд микропроцессора КР 580ИК80

5.

Структуры микропроцессорных систем и области их применения

6.

Процессоры PENTIUM

7.

Интерфейс шины процессоров PENTIUM

8.

Расширения архитектуры

9.

Двухпроцессорные системы

10.

Маркировка и идентификация процессоров PENTIUM

11.

Универсальные микропроцессоры

11.1.

Микропроцессоры компании AMD

11.2.

Микропроцессоры компании Cyrix

11.3.

Микропроцессоры с архитектурой Alpha

Список литературы

Указатели
4  именной указатель
102  предметный указатель
31  указатель иллюстраций
21  указатель компаний

7.
Интерфейс шины процессоров PENTIUM

По Интерфейсинтерфейсу шина процессора Pentium напоминает шину i486, но имеет заметные отличия. Новые особенности направлены на поддержку политики обратной записи кэша, повышение производительности и обеспечение дополнительных функциональных возможностей. Если шина i486 была ориентирована на максимальную гибкость и простоту подключения устройств с различной разрядностью, то шина Pentium ориентирована на достижение максимальной производительности [ссылка на источники литературы]. Шина данных стала 64-битовой для повышения производительности обмена с памятью. Возможность динамического управления разрядностью шины (сигналы BS16# и BS8#) изъята, согласование по разрядности с интерфейсными шинами возложено на микросхемы чипсета [ссылка на источники литературы].

При разрешенном контроле паритета данных (сигналом PEN) ошибка вызывает не только срабатывание сигнала PCHK#, но и фиксацию сбойного адреса и данных в регистре машинного контроля. А если установлен бит MCE регистра CR4, по этой ошибке генерируется исключение 18 [ссылка на источники литературы].

В дополнение к контролю паритета шины данных введен контроль паритета шины адреса. Обнаруженная ошибка паритета битов A[31:5] шины адреса только вызывает сигнал ошибки APCHK#, который может быть обработан системной логикой.

Таблица 7.1

Последовательность адресов в пакетном цикле Pentium

Первый адрес Второй адрес Третий адрес Четвертый адрес
0 8 10h 18h
8 0 18h L0h
L0h 18h 0 8
18h 10h 8 0

Пакетные циклы выполняются только при обращениях к памяти, причем как при чтении (как это было у 486-го), так и при записи. Пакетные циклы связаны только с кэшируемой памятью, при этом кэшируемость памяти подразумевает и ее поддержку пакетного режима. Во время пакетного цикла сигналы разрешения байт и младшие биты адреса A[4:3] не меняются (пакеты всегда выровнены по границам строк Кэшкэша). Порядок чередования адресов (табл. 7.1), как и у процессора 486, оптимизирован для двухбанковой организации памяти. Снова появилась конвейерная адресация на шине (как у 286-го и 386-го), что позволяет одновременно на шине присутствовать двум обслуживаемым запросам. На рис. 7.1Рис. 07.1. Одиночные циклы чтения и записи на шине Pentium и  7.2Рис. 07.2. Конвейеризованные пакетные циклы чтения на шине Pentium приведены временные диаграммы одиночных и конвейеризованных пакетных циклов. Признаком пакетного цикла (и его окончания) является сигнал CACHE#. Внешняя система не может прервать пакетный цикл, начатый процессором (в 486-м она могла заставить процессор любой пакетный цикл преобразовать в обычные сигналом RDY#). Конвейеризация запрашивается сигналом NA#, в ответ на который процессор через такт выдаст адрес следующего цикла. Без конвейеризации следующий адрес (и тип цикла) был бы выставлен только после завершения передачи данных текущего цикла [ссылка на источники литературы].

Как и у предыдущих процессоров, тип шинного цикла задается управляющими сигналами М/Ю#, D/Cff и W/R#, действующими одновременно со стробом A-DSft. Кроме циклов обращения к памяти, вводу-выводу и подтверждения прерывания процессор имеет специальные шинные циклы, идентифицируемые по комбинации сигналов BE[0:7]# (табл. 7.2). Эти циклы, так же как и остальные, требуют подтверждения сигналом BRDY# [ссылка на источники литературы].

Таблица 7.2

Идентификация шинных циклов

BE[7:0]#:

76543210

Специальный цикл:

М/Ю# –0, D/C#>> 0 и W/R#<< 1

11111110 Shutdown
11111101 Flush (инструкции INVD, WBINVD)
Union Halt
11110111 Writeback (инструкция WBINVD)
11101111 Flush Acknowledge (сигнал FLUSH>>)
11011111 Branch Trace Message

Процессор имеет вход EWBE#, с помощью которого он отслеживает состояние внешних буферов отложенной записи для обеспечения корректной последовательности шинных циклов записи [ссылка на источники литературы].

Для поддержания согласованности данных кэша и основной памяти процессор отрабатывает циклы слежения (Snoop Cycle или Inquire Cycle), инициированные внешней (для него) системой. Эти циклы, как и в 486-м, используют сигналы AHOLD#, EADS# и ответные сигналы процессора H1T# и H1TM#. Сигнал FLUSH# вызывает выгрузку всех модифицированных строк первичного кэша (обратную запись). Циклы слежения иниицируются системой для определения присутствия затребованной области памяти в строке какой-либо кэш-памяти и определения ее состояния. Процессоры начиная с Pentium поддерживают протокол MESI, названный по определяемым им состояниям M (Modified), E (Exclusive), S (Shared) и I (Invalid). Состояния определяются следующим образом: [ссылка на источники литературы]

  • M-state - строка присутствует только в одном кэше и модифицирована, то есть отличается от содержимого основной памяти. Доступ к этой строке возможен без генерации внешнего (по отношению к локальной шине) цикла обращения;

  • E-state - строка присутствует только в одном кэше, но не модифицирована. Доступ к этой строке возможен без генерации внешнего цикла обращения, при записи в нее она перейдет в состояние «М»;

  • S-state - строка потенциально может присутствовать в нескольких кэшах. Ее чтение возможно без генерации внешнего цикла, а запись в нее должна сопровождаться сквозной записью в основную память, что повлечет аннулирование соответствующих строк в других кэшах;

  • I-state - строка отсутствует в кэше, ее чтение может привести к генерации цикла заполнения строки. Запись в нее будет сквозной и выйдет на внешнюю шину.

Инициализация процессора выполняется по сигналу RESET, как и для предыдущих процессоров. В дополнение ко входу сброса RESET введен сигнал INIT, по которому процессор переходит в то же состояние, что и по сигналу RESET, но сохраняя содержимое кэша и регистров FPU. Этот сигнал может быть использован для переключения из защищенного режима в реальный [ссылка на источники литературы].

Во время действия сигнала RESET должны установиться значение на входах управления коэффициентом умножения BF[1:0] и частота на входе CLC. Колебания входной частоты не могут быстро отрабатываться схемой умножителя, построенной на основе петли фазовой автоподстройки частоты PLL (Phase Lock Loop). При нестабильности генератора входной частоты работоспособность процессора не гарантируется [ссылка на источники литературы].

Для процессоров первого поколения умножение частоты не применялось (KF = 1). Для процессоров с частотой 75 - 133 МГц коэффициент умножения (1,5 или 2) официально определялся сигналом BF, но фактически многие процессоры воспринимали два сигнала:

BFO (называемый просто BF) и BFI. Значение коэффициентов умножения для различных моделей Pentium приведены в табл. 7.3. Пока что они отличаются только трактовкой коэффициента по умолчанию (когда оба вывода BFO и BFI свободны), но для грядущего процессора 266 МГц, вероятно, комбинация 10 будет означать коэффициент 4 (а не 2, как указано в справочном листке на процессоры MMX) [ссылка на источники литературы].

Таблица 7.3

Коэффициент умножения частоты процессоров

            Pentium 75 — 133 МГц Pentium MMX 166 — 233 МГц
BFf1-0I KF FCORE* KF FCORE*
00 25 150 166 25x 166
01 30 180 200 30x 200
10 20 100 120 133 20x Нет
11 15 75 90 100 35x 233**

В момент окончания действия сигнала RESET процессор кроме нормального рабочего режима может быть переведен в один из следующих режимов: [ссылка на источники литературы]

  • BIST (Built-In Self Test) - встроенный тест, выполняемый приблизительно за 2n тактов ядра и охватывающий около 70% внутренних блоков процессора. Во время выполнения теста процессор не генерирует внешних циклов. После выполнения теста процессор переходит в рабочий режим, о результате завершения можно судить по содержимому регистра EAX. Нулевое значение указывает на исправность, любое другое - на отказ какого-либо блока. Если во время выполнения BIST процессор обнаружит внутреннюю ошибку паритета, он выставит сигнал IERR# и попытается выполнить ShutDown. BIST запускается при высоком уровне сигнала INIT во время спада сигнала RESET;

  • Tristate Test Mode - режим, при котором все (кроме TDO) выходные и двунаправленные сигналы переходят в третье состояние, включается по низкому уровню сигнала FLUSH# во время спада сигнала RESET;

  • FRC - режим, при котором процессор работает в качестве проверяющего в функционально-избыточной двухпроцессорной системе. Включается при низком уровне на входе FRCMC# во время спада сигнала RESET.

Для процессоров Pentium источниками аппаратно вызываемых прерываний являются следующие входные сигналы, расположенные в порядке убывания приоритета:

  • BUSCHK# - контроль шины, вызывающий исключение MCE;

  • R/S# - переключение в зондовый режим;

  • FLUSH# - очистка кэш-памяти (может вызвать поток операций записи);

  • SMI# - прерывание входа в режим SMM;

  • INIT - «мягкий» сброс процессора;

  • NMI - немаскируемое прерывание;

  • INTR - запрос маскируемых прерываний;

  • STOPCLK# - останов синхронизации. Здесь понятие прерывания трактуется несколько шире и относится ко всем событиям, заставляющим процессор генерировать внешние циклы вне очереди, определяемой прерываемой последовательностью инструкций (таким образом можно определить действие сигнала FLUSH#). Если в процессоре разрешена работа контроллера AP1C, то прерывания, поступающие по его шине, заменяют в данном списке сигналы NMI и INTR.

Процессоры второго поколения имеют возможность изменять порядок приоритета прерываний с помощью бита ITR (бит 9 регистра TR12). В табл. 7.4 приведены два возможных варианта приоритетов прерываний [ссылка на источники литературы].

Таблица 7.4

Приоритеты прерываний процессоров Pentium

Прерывание ITR = 0 (по умолчанию) ITR = 1
1 Точка останова (INT 3) Точка останова (INT 3)
2 BUSCHK# BUSCHK#
3 Ловушки отладки (INT 1) FLUSH#
4 R/S# SMI#
5 FLUSH# Ловушки отладки (INT 1)
6 SMI# R/S#
7 INIT INIT
8 NMI NMI
9 INTR INTR
10 Ошибка FPU Ошибка FPU
11 STPCLK# STPCLK#
12 Отказ на следующей инструкции Отказ на следующей инструкции

Зондовый режим отладки (Probe Mode) использует тестовый порт TAP (Test Acess Port) подключения интерфейса JTAG. Этот интерфейс может использоваться в только для тестирования (Boundary Scan), но и для отладочных целей. Для этого состав порта TAP введен сигнал R/S#, по его отрицательному перепаду процессор завершает выполнение текущей инструкции и останавливается, сообщив об этом сигналом PRDY. В этом состоянии по интерфейсу JTAG внешнее отладочное устройство может «пообщаться» со всеми внутренними регистрами процессора, после чего, возвратив сигнал в неактивное состояние (высокий уровень), «отпустить» процессор для продолжения выполнения прерванного потока инструкций. По предоставляемым возможностям отладки зондовый режим эквивалентен внутрисхемному эмулятору - мечте любого разработчика самого аппаратно-зависимого программного обеспечения. Для подключения порта TAP фирма IntelIntel предлагает на системной плате устанавливать специальный 20- или 30-штырьковый разъем, к которому подключается шлейф внешнего отладчика. На этот разъем выводятся сигналы процессора R/S#, PRDY, TDI, TDO, TMS, TCK и TRST# - все, что нужно для внутрисхемной отладки. Но даже если этого разъема нет на системной плате, подключиться к выводам TAP можно через специальную переходную колодку, к которой подключен шлейф TAP. Колодка вставляется в сокет, а в нее - процессор. Есть и сдвоенные колодки для отладки двухпроцессорных систем [ссылка на источники литературы].

Режим SMM реализован аналогично предыдущим процессорам 386SL и 486SL, но начиная со второго поколения имеется возможность рестарта инструкций и входа в SMM по сообщению, принятому с шины AP1C [ссылка на источники литературы].

Процессоры Pentium второго поколения имеют возможность снижения энергопотребления в нерабочем режиме (табл. 7.5). По сигналу STOPCLK# процессор выгружает буфера записи и входит в режим Stop Grant, в котором прекращается тактирование большинства узлов процессора, что вызывает снижение энергопотребления примерно в 10 раз. В этом состоянии он прекращает исполнение инструкций и не обслуживает прерывания, однако продолжает слежение за шиной данных, отслеживая кэш-попадания. Из этого состояния процессор выходит по снятию сигнала STOPCLK#. Управление сигналом STOPCLK# совместно с использованием режима SMM реализует механизм расширенного управления питания APM (Advanced Power Management). При отсутствии активности внешняя схема (чипсет) по команде, исполненной в режиме SMM, устанавливает данный сигнал. По пробуждающему событию внешняя схема (без участия процессора, который «спит») снимает сигнал и процессор продолжает работу. Кроме того, с помощью сигнала STOPCLK# возможно и замедление процессора (с пропорциональным снижением потребляемой мощности), если на этот вход подавать периодический импульсный сигнал. Скважность импульсов будет определять коэффициент простоя процессора и, следовательно, его производительность (как бы снижая условную тактовую частоту) [ссылка на источники литературы].

Таблица 7.5

Энергопотребление процессоров Pentium MMX

Частота, МГц 233 200 166
Ток 1СС2, А 6,5 5,7 4,75
Ток 1СС3, А 0,75 0,65 0,54
Мощность максимальная, Вт 17,0 15,7 13,1
Мощность типовая, Вт 7,9 7,3 6,1
Мощность, потребляемая в режимах Stop Grant и Auto Halt Powerdown, Вт* 2,61 2,41 2,0

В состояние пониженного потребления Auto HALT PowerDown процессор переходит при исполнении инструкции HALT. В этом состоянии процессор реагирует на все прерывания и также продолжает слежение за шиной [ссылка на источники литературы].

В режиме остановки внешней синхронизации процессор потребляет минимальную мощность, но в этом режиме он не выполняет никаких функций, а последующая подача синхронизации должна сопровождаться сигналом аппаратного сброса RESET [/ссылка на источники литературы].

В Pentium первого поколения имеются выходные сигналы трассировки, отражающие работу конвейеров (IU, IV), факты ветвлений (1ВТ) и трассу ветвлений ВТ3-ВТ0. Однако в процессорах второго поколения этих выводов нет - видимо, их наблюдать стало уже не интересно. Назначение сигналов приведено в табл. 7.6.

Выводы ADSC#, BRDYC#, CPUTYP, D/P#, FRCMC#, PBGNT#, PBREQ#, PHIT#, PHITM#, PICCLK, PICDO[DPEN#] и PICDI[APICEN] у процессоров для мобильных применений отсутствуют [ссылка на источники литературы].

С. 44-48 нет табл.7.6.!!!!! Таблица 7.6 Назначение сигналов процессора Pentium!!!!!

© Центр дистанционного образования МГУП