p align="left">Структурная схема микропроцессора i386 приведена на рисунке 1.4. сигналы сигналы адресов и данных: управления шиной: /BE[3/0] A[31/02] D[31/00] W/R#, D/C#, M/IO#,/LOCK ^ /\ /\ /ADS,/NA,/BS16,/READY ¦ ¦¦ ¦¦ ^ ¦ ¦¦ ¦¦ ¦ --------------¬ ---+--------++-------++----------------+--¬ ¦ P U ¦ ¦ ¦-->+-------------+ ¦ B I U ¦ ¦ очередь ¦ ¦ ¦ ¦ команд 16б ¦ L--------------------------T--------------- L------T------- ¦ -------+------¬ - - - - - - - - - - - - - - ¦ - - - -¬ ¦ I D U ¦ ---------------------¬ ¦ +-------------+ ¦ ¦ ---------------¬¦ ¦<-------¦-------->¦ очередь МкК +--¬ ¦PAG ¦КЭШ стр.дескр.¦¦<---+ ¦ 31x100 бит ¦ ¦ ¦ ¦ L---------------¦ ¦ ¦ L-------------- ¦ L-----------T--------- ¦ ---------------¬ ¦ ¦ ¦ ¦<-------¦-------->¦ E U ¦ ¦ -----+-------------+---¬ +--------------+ ¦ ¦ ¦ -----------------¬¦ ¦ ¦-------------¬¦ ¦ MMU ¦ SU ¦ КЭШ сегм. дескр.¦ ¦¦файл 32р Рг ¦¦ ¦ ¦ ¦ L-----------------¦ ¦ ¦L-------------¦ ¦ L------------------T---- ¦-------------¬¦ ¦ L - - - - - - - - - - - - - ¦ - - - -- ¦¦ А Л У 32𠦦 ¦ ---------------¬ ¦ ¦L-------------¦ ¦ ¦ устройство ¦<------+----------------->¦-------------¬¦ ¦ ¦ защиты памяти¦ ¦¦сдвигат. 64𦦠¦ L--------------- ¦L-------------¦ ¦ микрооперации L--------------- ¦ ^ ^ ^ ^ ^ ^ ¦ -------------+--+--+--+--+--+------------¬ ¦ ¦ управление микропроцессором ¦<---------------- L--------------------------------------T-- ^ ^ ^ ^ ^ ^ ^ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ PE REQ ¦ /ERROR ¦ NMI ¦ ¦ v /BUSY /RESET INTR HOLD HLDA L------------------------------ L---------- сигналы управления сигналы микропроцессором арбитража Рисунок 1.4. Структурная схема микропроцессора i386. *) Термин ДЕСКРИПТОР в блоке MMU означает ключевое слово, описатель адреса страницы или сегмента и содержит физический адрес - эквивалент логического (математического) адреса в команде. Описание функций блоков микропроцессора. 1. BIU (Bus Interface Unit) - устройство сопряжения с шиной. Системная шина осуществляет обмен информацией между CPU и подсистемами ВС. 2. PU (Prefetch Unit) - устройство предварительной выборки команд, представлено узлом управления конвейером команд и 16-битовым стеком команд дисциплины FIFO (First Input - First Output: первым пришел - первым вышел). 3. IDU (Instruction Decode Unit) - устройство декодирования команд, состоит из: - декодера команд, осуществляющего дешифрацию полей команд первой ступени (определение типа и формата команды) и - стековой памяти из 31-го 100-битовых полей, дисциплины FIFO, определяющих собственно набор микроопераций выполняемых команд. Стеки PU и IDU программно недоступны. 4. EU (Execution Unit) - устройство обработки данных, предназначено для хранения и обработки данных, выполнения команд и формирования кодов состояний CPU. EU включает в себя группу (файл) 32-битовых регистров: 1) EAX - аккумулятор; 2) EBX - адресный регистр базы данных; 3) ECX - счетчик операций цикла; 4) EDX - 64-Кбайтный адрес порта ПУ, либо адрес хранения старшей половины операнда в командах умножения и деления; 5) AX, BX, CX, DX - регистры хранения адресов 16-битовых операндов; 6) AL, AH, BL, BH, CL, CH, DL, DH - регистры хранения адресов 8-битовых операндов; 7) ESP и EBP - группа 32-битовых регистров указателей стеков для работы со стековыми сегментами; 8) ESI и EDI - регистры индексов, для хранения смещения адреса относительно базы при чтении или записи в память; 9) SP, BP, SI, DI - регистры для хранения 16-битовой информации, 10) EFLAGS - 32-битовый регистр флагов, включающий в себя: - 6 статусных флагов (устанавливаются по результатам выполнения соответствующих операций); - 2 управляющих флага, разрешающих включение режима VM86 и игнорирования (блокировки) ошибок при отладке программы по шагам; - 2 системных флага, используемых в режиме РМ, 11) EIP (Instrucktion Pointer) - 32-битовый регистр счетчика команд (IP - 16-битовая секция счетчика команд). Счетчик команд программно недоступен. 12) CR0 - СR3 - три 32-разрядных регистра управления, которые, совместно с системными регистрами, сохраняют информацию о состоянии CPU во время выполнении задачи. СR1 не используется. Механизм отладки программ в микропроцессоре i386 позволяет: 1) введение в программу точек разрыва; 2) пошаговый (покомандный) режим выполнения программы; 3) программирование четырех адресных контрольных точек останова (DR0 - DR3). В реализации режима останова участвуют также регистры состояний DR6 (статусный) и DR7 (управляющий) из регистра EFLAGS. Оба регистра - TR6 и TR7 используются также для самодиагностики CPU. Режим самодиагностики запускается по заднему фронту сигнала RESET при условии, что сигнал /BUSY = L (Low - нижний уровень). 5. SU (Segmentation Unit) - блок сегментации, осуществляет первую ступень преобразования адресов, и состоит из 16-битовых регистров для хранения базовых текущих адресов, или сегментов в RM, либо селекторов в РМ и содержит: 1) CS (Code Segment) - селектор или сегмент кода; 2) SS (Stack Segment) - начало стекового сегмента; 3) DS, ES, FS, GS (Data Segments) - регистры сегментов данных. Для организации режима виртуальной памяти в CPU i386 имеется механизм, включающий системные регистры: 1) GDTR (Global Descriptor Table Register) - регистр глобальной дескрипторной таблицы, 2) LDTR (Local Descriptor Table Register) - регистр локальной дескрипторной таблицы, 3) IDTR (Interrupt Descriptor Table Register) - регистр таблицы дескрипторов прерываний, 4) TR (Task Register) - регистр селектора сегмента состояния задачи (TSS). 6. PAG (Paging Unit) - блок страничной организации памяти. Это вторая ступень (первая - SU) для доступа к страничным ячейкам при виртуальном преобразовании адреса. SU и PAG входят как независимые узлы в MMU (Мemory Managment Unit). ПРИМЕЧАНИЯ по тексту: 1) полярность активности логического сигнала может быть прямой (положительной) или инверсной (отрицательной). ПРЯМЫЕ активные сигналы в таблицах и на схемах обычно не имеют особых отметок или, в исключительных случаях, имеют индекс high перед именем сигнала. ИНВЕРСНЫЕ активные сигналы имеют равносильные обозначения: - минус перед именем сигнала, - знак "/" (слэж) перед именем сигнала (например, /ERROR), - надчеркивание, - знак # после имени (например, BUSY#), или - индекс L (Low) после имени; 2) для принятой системы счисления за цифровым обозначением следует буквенный указатель: - h (hex) - шестнадцатеричная, - d (decimal) - десятичная, или - b (binare) - двоичная система счисления; 3) размещение байтов в регистрах различно: обычно информация о составе байтов, заключенных в ячейки памяти, разделяется двоеточием, а при акцентировании конкретного бита, входящего в состав регистров или шин, принято обозначение бита (разряда) - его номером в квадратных скобках (например, EFLAGS[17]). Назначение линий и сигналы интерфейса CPU. D[31/00] (Data) - двунаправленная шина данных с тремя состояниями. Сигналы шины синхронные. BS16# (Bus Size 16) - вход, связывающий CPU с 16-битовой шиной (режим i286). Если операнд - двойное слово, то BIU переключается на трансляцию в линию D[15/00] двух слов за два цикла обмена. Сигнал синхронный. ВЕ0# - ВЕ3# - выходные стробы данных, линии с тремя состояниями. Сигналы показывают, какие байты 32-разрядной шины используются в текущей передаче. Вырабатываются при внутренней дешифрации двух младших разрядов адреса А[01/00] (см. Таблицу 1,2. Коды передачи байтов по системной шине). А31-А0 - выходные адресные линии с Z-состоянием, обеспечивающие физическую адресацию памяти или УВВ. W/R# (Write/Read) выходные линии с Z-состоянием, определяющие D/C# (Data/Control) тип цикла шины. Сигналы действительны только M/IO# (Memory/Input-Output) при активном уровне /ADS=L. ADS# (Address Strobe) - выход строба адреса. Линия с Z-состоянием, по которой поступает сигнал к ВУ, о том, что начался цикл шины, определяемый сигналами управления W/R#, M/IO#, D/C#, /BE0- /BE3 и адресными линиями A[31/02] и адрес на них достоверен. RESET (сброс) - асинхронный вход, останавливающий выполнение любой операции в CPU и переводящий его в состояние сброса. Сигнал определяется CPU по уровню и имеет наивысший приоритет. Это состояние реализуется на 15 и более периодов CLK2, но за 78 и более периодов CLK2 до запуска самодиагностики. На время действия RESET сигналы на входах CPU игнорируются, а выходы переводятся в пассивное состояние: /ADS=H, D[31/00]=Z, A[31/02]=H, /BE0-/BE3=L, W/R#=H, M/IO#=L, /LOCK=H, HLDA=L.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41
|