Смекни!
smekni.com

Техническая диагностика средств вычислительной техники (стр. 6 из 50)

сигналы управления сигналы
микропроцессором арбитража

Рисунок 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.

READY (готов) – синхронный сигнал, указывающий, что текущий ЦИКЛ ШИНЫ завершен, байты, определяемые сигналами /ВЕ0-/ВЕ3, /BS16, приняты или переданы. В первом такте цикла сигнал игнорируется, в остальных – анализируется, пока не станет активным. Внешнее оборудование, не способное закончить обмен за 2 такта, продлевает цикл, удерживая CPU в состоянии Time Out.

/NA (Next Addres) – синхронный сигнал для запроса следующего адреса, сообщает CPU, что система готова принять от него новые значения адресов и сигналов управления циклом обмена, даже если завершение текущего цикла шины не подтверждено сигналом /READY.

CLKвнутрипроцессорная частота CPU i386. Она вдвое ниже подводимой к входу CLK CPU от генератора тактовых импульсов. Для каждого периода CLK2 есть две фазы – Ф1 и Ф2, внутренней синхронизации микроопераций в CPU, но они могут быть синхронизированы с задним фронтом RESET. Различаются такты Ts и Tc, составляющие цикл обмена.

/LOCK – выходная шина с Z-состоянием, определяет тип цикла шины с блокировкой. Активизируется установкой /ADS=L в начале цикла шины с конвейеризацией адресов, или в циклах INTA. Применяется в мультипроцессорных системах и сигнализирует о том, что CPU выполняет операцию с несколькими циклами шины, которая не должна прерываться. Сигнал вырабатывается автоматически, при выполнении префикса /LOCK в циклах INTA и при смене страничных таблиц.