Техническая диагностика средств вычислительной техники

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

µдующего адреса, сообщает CPU, что система готова принять от него новые значения адресов и сигналов управления циклом обмена, даже если завершение текущего цикла шины не подтверждено сигналом /READY.

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

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

HOLD (Bus Hold Request) запрос захвата шины. Синхронный входной сигнал, устанавливаемый другим CPU, или интеллектуальным УВВ для работы с шиной. Анализируется фронтом CLK2 и, пока HOLD активен, CPU следит за его уровнем, устанавливая в конце цикла обмена ответный сигнал HLDA.

HLDA (Bus Hold Asknowlege) синхронный выход подтверждения передачи управления шиной другому, активному CPU или УВВ. В ответ на запрос HOLD, CPU переходит в состояние подтверждения захвата. На входе NMI возможно появление только одного запроса, запоминающегося в CPU для обработки его после снятия сигнала HOLD.

INTR (Interrupt прерывание) асинхронный вход, инициирующий последовательность прерывания в CPU, аналогичен для любого i80x86 CPU.

NMI (Non Maskable Interrupt) немаскируемое прерывание, сигнализирует CPU о появлении критической ошибки в ВС, не позволяющей правильно продолжить операцию (например, ошибка адресов или данных в ОЗУ). Текущая программа прерывается и ситуация обрабатывается специальной программой для принятия решения (перезапрос данных, повторное выполнение операции, или сигнализация о неработоспособности ВС).

PE REQ (Co-processor Request) запрос прерывания от FPU. Асинхронный вход, указывающий, что FPU нужен обмен с памятью (сам FPU обменом не управляет). CPU отвечает сигналом синхронизации, после чего FPU выполняет циклы обмена между локальной шиной и портами регистров данных FPU.

/BUSY (занят) асинхронный вход, анализируемый по уровню командой WAIT, автоматически выдаваемой CPU, при обнаружении активного входа /BUSY=L (признак наличия ошибки, особой ситуации, или выполнения FPU очередной операции). На время активизации сигнала /BUSY, CPU выполняет такты ожидания. Если во время среза RESET сигнал /BUSY=L, то CPU выполняет процедуру самодиагностики.

ERROR (ошибка), асинхронный вход, анализируемый по уровню. Указывает, что при выполнении команды в FPU сформирован незамаскированный в регистре состояния FPU код ошибки. CPU вырабатывает прерывание типа 10h, но чаще аппаратное прерывание типа 75h по линии IRQ13.

Какие именно байты (A, B, C или D), из четырех возможных, машинного слова будет передаваться по системной шине ISA за один цикл обмена, определяются кодами управляющих сигналов ВЕ3# - BE0#. Коды передачи байтов по системной шине приведены в таблице 1.2.

Возможные типы циклов шины приведены в таблице 1.3. Символ #, стоящий после названия сигнала означает, что активный уровень сигнала нижний. Сигнал М означает обмен с DRAM, IO обмен с портом, D передача данных, С передача команды, W запись, R чтение DRAM или порта соответственно.

 

Таблица 1.2. Коды передачи байтов по системной шине.

/BЕ3 /ВЕ2 /ВЕ1 /ВЕ0 БАЙТЫ В 32-БИТОВОМ СЛОВЕ ДАННЫХ
D(D24/31) C(D16/23) B(D8/15) A(D0/7)
1 1 1 0 - - - A
1 1 0 1 - - B -
1 0 1 1 - C - C
0 1 1 1 D - D -
1 1 0 0 - - B A
1 0 0 1 - C B -
0 0 1 1 D C D C
1 0 0 0 - C B A
0 0 0 1 D C B A
0 0 0 0 D C B A

Таблица 1.3. Типы циклов шины.

M/IO# D/C# W/R#
0 0 0 - подтверждение прерывания
0 0 1 - не используется
0 1 0 - чтение данных из УВВ
0 1 1 - запись данных в УВВ
1 0 0 - чтение команды из ОЗУ
1 0 1 - 1) останов: Addr=2, /BE0-/BE3=1101, A[31/2]=0
- 2) отключение: Addr=0, /BE0-BE3=1111,A[31/2]=0
1 1 0 - чтение данных из ОЗУ
1 1 1 - запись данных в ОЗУ

Из таблицы типов циклов шины видно, что циклов шины может быть восемь:

1) чтение ОЗУ без блокировки шины (/LOCK=H),

2) чтение ОЗУ с блокировкой шины (/LOCK=L),

3) запись в ОЗУ без блокировки шины (/LOCK=H),

4) запись в ОЗУ с блокировкой шины (/LOCK=L),

5) чтение из УВВ или регистров FPU,

6) запись в УВВ или в регистры FPU,

7) подтверждение прерывания,

8) цикл останова или выключения.

Но основных, обменных циклов, четыре: чтение ОЗУ, запись в ОЗУ, чтение порта ввода-вывода и запись в порт ввода-вывода. Остальные циклы шины либо варианты основных (с блокировкой или без блокировки), либо служебные, а не обменные.

1.4.3.3) Конвейерная обработка команд в CPU

Шесть автономных блоков микропроцессора i386 составляют систему конвейерного выполнения команд.

Исполнение команды, в общем виде, состоит из 6 тактов:

ФАК-->ВК-->ФАО-->ВО-->ОП-->ЗпРез

здесь:

ФАК формирование адреса команды,

ВК выборка команды,

ФАО формирование адреса операнда,

ВО выборка операнда,

ОП выполнение текущей операции,

ЗпРез за