Основные понятия. Существует множество различных формулировок понятия ЭВМ от достаточно простых и понятных до чрезмерно вычурных, которые, однако, схожи по своей сути. По Э. Таненбауму



страница3/20
Дата09.08.2018
Размер2.45 Mb.
#43700
ТипРешение
1   2   3   4   5   6   7   8   9   ...   20
Часть ресурсов мультиплексного канала, используемая отдельным ВУ, называется подканалом. В каждом подканале используется некоторая область памяти канала, в которой хранится информация о текущем состоянии обмена с данным ВУ. Переключение мультиплексного канала с обслуживания одного ВУ на другое сопровождается сохранением информации в памяти подканала для текущего ВУ и выборкой информации из памяти подканала для следующего ВУ.
Сравнение Канального ВВ с PIO и с DMA.
Так как КВВ осуществляет организацию обмена по собственной программе, то КВВ следует считать программно управляемой, однако, в отличие от PIO, программу выполняет не ЦП, а КВВ.

Многие авторы сопоставляют КВВ и DMA. Аналогия между КВВ и DMA состоит в том, что оба эти способа обмена реализуются практически без участия ЦП. Так же, как и для DMA, КВВ требует участия ЦП на этапе инициализации. В частности, при инициализации от ЦП в КВВ передается начальный адрес канальной программы. Существенным же отличием КВВ от DMA является программная реализация первого и чисто аппаратная второго.

Организация прерываний.
Основные отличия организации прерываний в защищенном режиме по сравнению с реальным режимом.

Организация прерываний в реальном режиме практически ничем не отличается от организации прерываний в процессоре Intel 8086. В защищенном режиме, а также в его модификации в виде виртуального режима (V – режима), механизм прерываний при особых случаях, сохранив общую реакцию на их возникновение, значительно усовершенствован.

Основные усовершенствования сводятся к следующим.

  1. Трансформация таблицы векторов прерываний в дескрипторную таблицу прерываний (IDTInterrupt Description Table).

  2. Более сложный процесс перехода к обработчику особого случая или прерывания с привлечением системных объектов в виде шлюзов.

  3. Возможность передачи обработчику дополнительной информации о причине возникновения особого случая с помощью так называемого кода ошибки (Error Code).

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

Для защищенного режима используется следующая классификация программных прерываний, которые обобщаются единым наименованием exception, (особый случай). В зависимости от способа возникновения особых случаев и возможности перезапуска (рестарта ЦП) после их обработки с вызвавшей их командой, принято различать три вида особых случаев:

а) Fault (нарушение) – особые случаи, которые выявляются и обслуживаются либо перед выполнением, либо во время выполнения “виновной” команды.

При обнаружении нарушения, сохраняемые в стеке значения CS, EIP, указывают на команду, вызвавшую это нарушение, а не на следующую команду программы. Это дает возможность осуществлять рестарт программы после устранения причины нарушения именно с виновной команды.

Типичными примерами нарушений могут служить отсутствие сегмента или страницы в ОП.

б) Trap (ловушка) – особый случай, который возникает непосредственно после выполнения команды, вызвавшей этот особый случай. Значение регистров CS и EIP, сохраняемые при срабатывании ловушек, указывают на команду следующую по отношению к команде, вызвавшую это срабатывание.

Типичным примером ловушки может служить ловушка пошагового выполнения программы, ее генератором является установленный флаг TF.

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

Примером такого особого случая может служить так называемая двойная ошибка, которая имеет место в том случае, когда при обработке нарушений, связанных с неприсутствием сегмента или страницы, возникает новое нарушение. Назначением аварии является устранение возможности бесконечных циклов прерываний.

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

Программируемый контроллер прерываний (PIC i8259A).
Одна микросхема PIC может обслуживать 8 запросов прерываний. В современных компьютерах на базе процессоров Intel используются две микросхемы PIC, объединенных с помощью так называемого каскадного включения, что позволяет в принципе обслуживать до 15 источников прерывания.

Одна из микросхем является ведущей, а вторая – ведомая. Ведущий PIC связан с CPU, а ведомый PIC с ведущим. Максимальные возможности каскадного включения PIC позволяют обслуживать до 64 внешних источников запросов прерываний. Связь между ведущим PIC и CPU осуществляется по двум линиям: 1-ая линия INT PICINTR(CPU), 2 – ая линия INTA (CPU) – INTA (PIC).
Основные функции PIC.


  1. Фиксация запросов, поступающих от подключенных к нему ВУ в специальном регистре запросов - IRR.

  2. Осуществление внутреннего маскирования запросов с помощью специального регистра – маски IMR (0 – разрешение, 1 - запрет).

  3. Выделение наиболее приоритетного запроса из всех поступивших и незамаскированных запросов.

  4. Выдача в CPU сигнала о наличии хотя бы одного незамаскированного запроса (по линии 1).

  5. Выдача в CPU номера (кода) запроса в цикле подтверждения прерывания, который, в свою очередь, модифицируется CPU в адрес вектора прерываний (начальный адрес программы обработчика соответствующего прерываний).


Внутренняя структура PIC.
В состав PIC входят 7 байтных регистров, основными из которых являются:

  • IRR – Interrupt Request Register

  • IMR – Interrupt Mask Register

  • ISRInterrupt Service Register (фиксируются запросы, принимаемые на обслуживание или обработку в CPU)

Кроме регистров, в состав PIC входят комбинационные схемы, в частности:

  1. Схема выделения наиболее приоритетного незамаскированного запроса.

  2. Шифратор выделенного запроса.

Шифратор представляет собой комбинационную схему, осуществляющую преобразование двоичного унитарного кода (код с единственной единицей) в двоичный позиционный код, в данном случае шифратор имеет 8 входов и 3 выхода.

  1. Схема для реализации каскадирования.

Внешние запросы о ВУ поступают на входы ir0,..ir7.
Основные режимы работы PIC.
1) FNM (Fully Nested Mode – Режим вложенных прерываний).

В этом режиме наивысшим приоритетом обладает запрос irq0, наинизшим irq7. Допускается прерывание прерываний, это означает, что поступление на вход PIC запроса с более высоким приоритетом, чем обрабатываемый, вызывает генерацию активного уровня выходного сигнала INT, который поступает в CPU.

В регистре ISR может быть несколько установленных битов.

Недостаток этого режима – достаточно сильная дискриминация запросов низшего уровня. В связи с этим, используется следующий режим.

2) ARM (Automatic Rotation Mode – Режим автоматического сдвига приоритета запросов).

Приоритеты линейно упорядочены и изменяются после обработки очередного запроса таким образом, что уровень обработанного запроса становится низшим, а следующий за ним уровень – высшим.

  1. SRM (Specific Rotation Mode – Режим программно управляемых приоритетов).

Уровень запроса наивысшего приоритета устанавливается извне путем передачи соответствующего приказа из CPU в PIC.

  1. PM (Polling Mode – Режим опроса).

PIC лишь фиксирует поступающие запросы в IRR. Анализ содержимого IRR и соответствующая реакция на него осуществляется CPU. При этом IRR предварительно считывается в CPU с помощью команды IN <порт ввода/вывода>.

Взаимодействие между CPU и ведущим PIC.


  1. При наличии хотя бы одного незамаскированного запроса прерываний, PIC выставляет активный выходной сигнал INT, который поступает на вход INTR CPU.

  2. CPU завершает текущую команду программы и проверяет состояние внешних входов NMI и INTR.

  3. Если флаг IF установлен, процессор переходит к обработке запроса. При сброшенном флаге IF обработка запроса временно откладывается до выполнения процессором команды STI (Set Interrupt).

  4. При IF = 1 процессор генерирует активный уровень выходного сигнала подтверждения прерывания INTA.

  5. При получении сигнала INTA, PIC выполняет следующие действия:

a) сбрасывает бит обрабатываемого запроса в IRR;

б) устанавливает бит обрабатываемого запроса в ISR;

в) выставляет на внешнюю шину данных (в ее младший байт) номер обрабатываемого запроса;

6) CPU принимает номер запроса по шине данных и модифицирует этот номер в адрес соответствующего вектора прерываний (модификация осуществляется путем умножения на 4 – сдвиг влево на 2 разряда).

7) Текущее значение регистра флагов, CS и IP последовательно помещаются в стек, и тем самым сохраняется минимальный контекст прерываемой программы.

8) Два последовательных слова из таблицы векторов прерываний загружаются в регистр IP(слово по меньшему адресу) и CS (слово по большему адресу).

9) Н аппаратном уровне осуществляется сброс флага IF.

10) Процессор переходит к выполнению первой команды обработчика прерываний.
Основы программирования PIC.
Доступ к ведущему PIC осуществляется с помощью портов с адресами 20h, 21h, а к ведомому A0h, A1h. PIC имеет достаточно большое число программируемых битов (устанавливаемых программой), которые содержатся в 7 байтных регистрах. Эти регистры разделяются на две группы:


Приказы инициализации

Рабочие приказы

ICW – Initialization Control Word

OCW – Operation Control Word

ICW1, ICW2, ICW3, ICW4

OCW1, OCW2, OCW3

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

В порт с четным адресом выводятся слова ICW1, OCW2, OCW3. В порт с нечетным адресом выводятся остальные слова приказов.

Идентификация типа слова (приказ инициализации или рабочий приказ) осуществляется специальными битами. В связи с чем, неоднозначности их интерпретации не происходит. Инициализация PIC начинается выводом в порт с четным адресом приказа ICW1. Далее, в процессе инициализации контроллер принимает приказ ICW2 (в порт с четным адресом) и далее, при использовании каскадного включения, - приказ ICW3 (при использовании единственной микросхемы этот приказ не выводится). Необходимость вывода последнего приказа ICW4 определяется значением специального бита приказа ICW1.

При программировании PIC имеет место такая особенность, что один и тот же порт используется для инициализации нескольких регистров контроллера.

Приказы инициализации.
ICW1 имеет следующий формат:


A0

7

6

5

4

3

2

1

0

0

-

-

-

1

LTIM

-

SNGL

IC4



Бит 0 (IC4) определяет будет ли выводиться приказ ICW4 в процессе инициализации (1 – выводится, 0 – не выводится). В современных моделях ПК на базе процессоров Intel бит IC4 установлен.

SNGL (Single) указывает на наличие в системе единственной микросхемы PIC, если он установлен, и нескольких, если он сброшен.

LTIM определяет режим запуска по входам. При сброшенном бите запуск осуществляется по фронту сигналов, при установленном бите запуск осуществляется по уровню сигнала. Режим запуска фронтом вызывает сброс бита в регистре IRR, когда устанавливается соответствующий бит ISR. Режим запуска оказывает влияние на способ установки битов в регистре запросов IRR при появлении сигнала запроса на соответствующем входе irq.

Установленный бит 4 является идентификатором приказа инициализации, отличающим его от рабочих приказов, выводимых в тот же четный порт.
ICW2 определяет базовый адрес последовательности векторов прерываний, размещаемых в таблице векторов прерываний. Собственно, под базовый адрес отводятся старшие 5 битов приказа(3-7).

Для ведущего PIC базовый адрес инициализируется на значении 08h, для ведомого PIC на значение 70h. Младшие три бита определяются номером источника запроса и фиксируются с помощью шифратора приоритетов. Значение базового адреса, дополненное уровнем обслуживаемого запроса, и выставляется микросхемой PIC на внешнюю шину данных в цикле подтверждения прерывания. Фактически, это значение задает номер (тип) обрабатываемого прерывания, который модифицируется процессором в адрес вектора прерываний.
ICW3 определяет связи микросхем PIC при их каскадном включении. Для ведущего PIC установленные биты определяют к каким входам irq подключаются ведомые PIC. Cброшенное значение бита означает, что к соответствующему входу подключается ВУ либо этот вход не используется. Для ведомых PIC младшие три бита приказа являются кодом идентификации и задают номер линии запроса ведущего PIC, к которой подключается выход INT ведомого контроллера.
ICW4 Наиболее важным битом приказа ICW4 является бит 1, именуемый AEOIAutomatic End Of Interrupt.

В обычном режиме работы (при сброшенном бите AEOI) процедура обработки аппаратного прерывания должна перед своим завершением очистить собственный бит в ISR специальной командой, иначе новые прерывания этого же типа не будут обрабатываться.

При использовании же режима AEOI (соответствующий бит установлен) бит, соответствующий виду запроса в ISR сбрасывается автоматически в тот момент, когда начинается обработка этого прерывания. Сложность работы в этом режиме обусловлена тем, что процедура обработки аппаратного прерывания должна обеспечивать свойства повторной входимости (реентерабельности), т. к. во время их работы могут повторно возникнуть запросы того же уровня.
После инициализации PIC готов к работе в заданном режиме, т.е. выполнять следующие действия:

1) Маскировать и размаскировать аппаратные прерывания.

2) Изменять приоритеты уровней.

3) Издавать команду завершения обработки аппаратного прерывания (AEOI).

4) Переводить контроллер в режим опроса и считывать состояния регистров ISR и IRR с помощью вывода в соответствующий порт одного из слов рабочих приказов.
Слова рабочих приказов.
OCW1 представляет собой маску запросов прерываний. Маскирование запросов осуществляется единичным значением соответствующего бита. Этот приказ при выводе в нечетный порт пересылается в регистр IMR.
OCW2 предназначено для следующих целей:

  1. вывод команды завершения обработки аппаратного прерывания (EOIEnd Of Interrupt);

  2. циклический сдвиг или явное изменение уровней приоритетов.

Структура:

A0

7

6

5

4

3

2

1

0

0

R

SL

EOI

0

0

L2

L1

L0

R – Rotation – вращение приоритетов,

SLSet Level – установка уровня приоритета,

EOI – End Of Interrupt – приказ конца прерывания,

L0, L1,L2 - уровень приоритета (значение битов актуально только при SL=1).

Биты 3 и 4 – биты идентификации. Нулевое значение четвертого бита отличает рабочий приказ от приказа инициализации ICW1, выводимого в тот же четный порт. Нулевое значение третьего бита отличает рабочий приказ OCW2 от OCW3, для которого этот бит установлен.

Бит EOI непосредственным образом связан с аналогичным битом AEOI (1 бит в ICW4).Единичное значение бита AEOI означает автоматический конец прерывания и приводит к тому, что установленный запросом прерывания бит в регистре ISR автоматически сбрасывается в цикле подтверждения прерывания. При нулевом значении бита AEOI бит в регистре ISR необходимо сбрасывать специальным приказом конца прерывания. Выдача этого приказа заключается в передаче OCW2 с установленным битом EOI в порт с четным адресом (ведущего 20, ведомого А0).

Выдача этого приказа возлагается на программу обработчик прерывания и команды, связанные с этой выдачей размещаются в самом конце обработчика.

При выдаче приказа EOI комбинация битов R и SL определяют возможное изменение приоритетов запросов прерывания.

R

SL

Описание режимов

0

0

Режим обычных приоритетов. После сброса последнего установленного бита в регистре ISR, приоритеты запросов остаются стандартными, т. е. irq0 имеет наивысший приоритет, а irq7 – наинизший.

0

1

Специальный режим конца прерывания, в ISR сбрасывается бит с заданным в поле L0, L1,L2 номером или уровнем.

1

0

После сброса бита наивысшего уровня производится циклическое изменение приоритетов, причем обслуживаемый уровень опускается на дно приоритетного кольца.

1

1

Т.е. сброс бита в ISR с заданным уровнем с изменением его приоритета на низший.


В принципе, биты R и SL являются актуальными и при нулевом значении бита EOI. Например, комбинация 10 предполагает разрешение вращения уровней приоритетов, причем изменение приоритетов происходит каждый раз при автоматическом сбросе бита запроса в ISR (AEOI = 1). Аналогично, комбинация 11 осуществляет принудительную установку дна приоритетного кольца при каждом сбросе бита в регистре ISR. Возврат к обычному режиму приоритетов осуществляется посылкой нулевого байта в порт с адресом 20.
OCW3 позволяет выполнить следующие действия:

  1. установка и отмена так называемого режима специального маскирования;

  2. установка и сброс режима опроса (полинга);

  3. разрешение чтения регистров IRR и ISR контроллера.

Структура:

A0

7

6

5

4

3

2

1

0

0

0

ESMM

SMM

0

1

P

RR

RIS

RIS – бит управления чтением регистров. 0–читается регистр IRR, 1 – ISR,

P – бит поллинга, разрешающего опрос,

RR – бит разрешения чтения регистров,

SMMSpecial Mask Mode - режим специального маскирования,

ESMMEnable Special Mask Mode – режим разрешения специального маскирования.

Установка битов RR, P, ESMM является взаимоисключающей.


ESMM

SMM

Описание режимов

1

1

Режим специального маскирования устанавливается битом ESMM и реализует следующие действия, в зависимости от бита SMM: осуществляется обработка незамаскированных запросов по мере их появления(порядок приоритетов игнорируется – FIFO(FCFS)).

1

0

Восстановление приоритетного обслуживания.

P=1 - Режим поллинга. В этом режиме предполагается, что процессор не воспринимает запросов прерываний по входу INTR, вход замаскирован (IF = 0).При этом необходимо опрашивать наличие запросов в регистре IRR. По активному уровню сигнала чтения, поступающему в PIC либо от CPU, либо от контроллера шины, происходит установка соответствующего бита в ISR, как будто получен сигнал INTA и выдача в регистр AL процессора байта следующего формата:


7

6

5

4

3

2

1

0

I

X

X

X

X

L2

L1

L0


Старший бит I=1 показывает наличие незамаскированного запроса прерывания, а младшие три бита содержат уровень запроса наивысшего приоритета из поступивших и незамаскированных. Сигнал Read генерируется при выполнении команды IN.

При P=0, содержимое регистров IRR и ISR можно прочитать в регистр AL, используя команду IN, при предварительно установленном бите RR.
Организация центральных процессоров.

CPUCentral Processing Unit.
ЦП выполняет в компьютере двоякую функцию:

  1. Как обрабатывающее устройство: ЦП осуществляет выполнение программ, связанных с какой-либо обработкой данных.

  2. Как управляющее устройство: ЦП осуществляет координацию остальных устройств компьютера, а также связь компьютера с внешним миром.

Чтобы подчеркнуть одну из основных функций CPU, в некоторых случаях в компьютерной литературе для его обозначения используется аббревиатура ISPInstruction Set Processor ( процессор команд). ISP =CPU.

По мнению некоторых специалистов, термин «Central» в аббревиатуре CPU является устаревшим.

В состав CPU, как правило, входят следующие блоки:
Регистры, которые в свою очередь можно разделить на программно доступные и программно недоступные. Программно доступные регистры можно разделить на прикладные и системные.
ALU (Arithmetic and Logic Unit). В этом блоке осуществляется обработка целых чисел и логических значений. В связи с этим аббревиатуру ALU иногда заменяют IU(Integer Unit).

FPU (Floating Point Unit). Блок или устройство обработки чисел с плавающей запятой.
Блоки, ориентированные на так называемую мультимедийную обработку:

MMX (Multimedia extension),

SSE (Stream SIMD Extension - потоковое SIMD расширение),

SIMD (Single Instruction Multiple Date - одиночный поток команд, множественный поток данных).

Отметим, что основной особенностью блоков мультимедийной обработки является использование не скалярных, а векторных данных и, соответственно, векторных команд (одной векторной командой задается однотипная обработка для нескольких данных, трактуемых как элементы вектора).
CU (Control Unit - блок (устройство) управления).
Блоки, входящие в состав конвейера команд:

PFU (Prefetch Unit - блок предварительной выборки команд),

DU (Decode Unit- блок декодирования команд),

BTB (Branch Target Buffer - блок предсказания ветвлений).
Блок для связи CPU с системной шиной:

BIU (Bus Interface Unit - блок сопряжения с шиной

или BU – Bus Unit).


MMU – (Memory Management Unit - блок управления памятью).


PU (Page Unit -блок управления страницами).
SU (Segment Unit –блок управления сегментацией).
В некоторых источниках внутрикристалльную Кэш-память (КЭШ L1) включают также в состав CPU, что, по мнению Довгия П.С. является некорректным.

Связи между отдельными блоками (устройствами) CPU осуществляются с использованием внутренних шин. Примерами структур процессора i386, i486, Pentium, Pentium Pro (P6) см. раздаточный материал.
Принципы построения и

функционирования конвейеров команд.
Конвейеры команд следует рассматривать в качестве одного из актуальных структурных средств улучшения производительности центральных процессоров и, соответственно, всего компьютера вцелом.

Принципы построения конвейеров команд базируются, во-первых, на разделении, выполнения любой машинной команды на ряд последовательных этапов и, во-вторых, на разделении аппаратуры CPU на ряд независимых функциональных блоков, способных функционировать параллельно и выполнять один или несколько смежных этапов машинной команды.

При классическом подходе выполнение основных машинных команд (например, арифметических или логических), связанных с обработкой данных, можно разделить на 6 этапов (фаз, стадий):


  1. IF (Instruction Fetch - выборка команды).

  2. D (Decode - декодирование команды).

  3. OA (Operand Address - формирование адресов операнда).

  4. OF (Operand Fetch - выборка операнда).

  5. EX (Executive - выполнение операции).

  6. S (Store - запись результата).


Сравнение производительности последовательного процессора (без конвейера команд) и «параллельного» процессора (с конвейером команд).
Конвейеризация на уровне машинных команд представляет собой низкоуровневый параллелизм на уровне машинных команд.




В идеальном случае производительность процессора с N - ступенчатым конвейером команд в N раз больше производительности последовательного процессора, т.е. без конвейера команд.

Сравнительная оценка конвейерного и без конвейерного процессора по производительности производилась для идеального случая, который включает в себя следующие допущения:

  1. длительности всех фаз конвейера одинаковы;

  2. обеспечивается постоянная загрузка вех блоков конвейера (без изменения порядка действия);

  3. в конвейере отсутствуют так называемые сбои, связанные с выполнением команд переходов, т.е. работа конвейера рассматривается на достаточно длинном, линейном участке программы.

В реальности производительность конвейеров команд оказывается намного ниже идеального случая. К основным причинам снижения производительности конвейера команд принято относить:


    1. Наличие в программе так называемых зависимостей по управлению (конфликты по управлению).

Эта зависимость проявляется в использовании команд, нарушающих естественный порядок следования команд программы. К таким командам относятся команды перехода (безусловные и условные), команды вызовов и возвратов, команды циклов, команды прерываний.

Конвейер команд осуществляет предварительную выборку команд из памяти, как правило, руководствуясь линейным порядком их следования (предварительная выборка осуществляется по последовательным адресам). Когда в конвейер попадает одна из перечисленных выше команд, то факт наличия перехода по тому или иному адресу распознается на фазе EX (исполнения).

Для команд с безусловным переходом (JMP, CALL, RET, INT, IRET) оказывается, что все последующие команды, накопленные к этому моменту, остановятся неактуальными. Инициализируется так называемый сброс конвейера, формально связанный с очисткой его ступней от последующих команд программы, который сопровождается реинициализацией конвейера, начиная с выборки команды по сформированному адресу перехода.

При выполнении команд условного перехода (команды типа JA, JB, JG,.., LOOP, JCXZ), проверка выполнения или невыполнения условия перехода осуществляется на фазе EX и реинициализация конвейера требуется только в том случае, если условие перехода выполняется, в противном случае работа конвейера продолжается в естественном порядке следования команд программы.

    1. Наличие в программах зависимостей по данным (конфликты по данным).

Зависимость по данным проявляется при использовании некоторой программы некоторой команды результата предыдущей команды в качестве операнда или адреса операнда. При этом имеет место следующая ситуация в конвейере: когда зависимая команда доходит до фазы выборки операнда, предыдущая команда еще не успела сформировать и записать в память свой результат.

Подобная ситуация не приводят к сбою конвейера, а приводят лишь к его приостановке.


    1. Использование различными блоками конвейера одного и того же ресурса (структурные конфликты).

Как правило, в роли разделяемого ресурса фигурирует память. Обращения к памяти могут возникать в блоках конвейера IF, OF, S. Учитывая факт использования Кэш-памяти и более того, разделение внутренней Кэш-памяти на два независимых блока (Кэш-команд и Кэш-данных), принято считать, что структурные конфликты снижают реальную производительность конвейера команд весьма незначительно.


    1. Наличие при выполнении программы особых случаев, приводящих к прерыванию.

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


    1. Различное время выполнения отдельных фаз машинных команд.

Наиболее трудоёмкой фазой является фаза ЕХ для так называемых длинных команд типа умножение, деление.


    1. Большой разброс длительности фазы ЕХ для различных машинных команд.


Основные действия, выполняемые процессором на различных фазах (этапах) команды.

IF - выборка команды.

С позиции простейшего классического процессора при реализации этой фазы используются следующие регистры:

PC – Program Counter;

IR - Instruction Register

MAR – Memory Address Register;

MBR - Memory Buffer Register.

Последние два регистра обеспечивают интерфейс процессора с основной памятью.

Простейший классический процессор не имеет следующих средств:

  • Кэш-памяти;

  • средств преобразования программного адреса в физический;

  • конвейера команд;

  • команды и данные имеют единый формат, совпадающий с разрядностью шины данных (шириной выборки из ОП);

Этап выборки команды состоит в извлечении текущей команды из памяти с последующей ее пересылкой в регистр команд (IR). Адрес, по которому осуществляется выборка команды, находится в счетчике команд. Как правило, в этот же этап включается модификация счетчика команд (PC) путем увеличения на длину выбираемой команды.

Выборку команды можно представить последовательностью действий вида:

1. PC MAR;

2. RDM: ОП [MAR] MBR; PC + 1 PC;

3. MBR IR;
Комментарии:

Использование механизмов сегментации и страничного преобразования создает необходимость предварительного преобразования программного адреса команды, который является частью логического, в физический адрес.

На этапе сегментации логический адрес команды, представляющий пару CS:IP с использованием дескрипторных таблиц сегментов (GDT-Global Descriptor Table, и возможно LDT- Local Descriptor Table) преобразуется в так называемый линейный адрес.

На этапе страничного преобразования линейный адрес преобразуется в физический адрес с использованием таблиц двух уровней:

  • первый уровень – каталог таблиц страниц (PDPage Directory);

  • второй уровень – таблицы страниц (PTPage Table).

Для ускорения преобразования адреса из логического в физический используются специальные аппаратные средства в виде теневых регистров (Shadow Register) на этапе сегментации и буфера ассоциативного преобразования. TLB (Translate Look aside Buffer) на этапе пейджинг (paging).

Теневые регистры представляют собой аппаратные расширения (64-разрядные) сегментных регистров недоступные программам. В эти расширения помещаются дескриптор соответствующего сегмента при любом изменении содержимого сегментного регистра. Тем самым предотвращается задержка, связанная с обращением к дескрипторным таблицам, находящимся в памяти. Фактически, обращение к таблицам производится только один раз при перезагрузке сегментного регистра. Достаточного часто теневые регистры называют Кэш-регистрами дескрипторов, в связи с тем, что их использование может рассматривать как один из способов кэширования.
TLBTranslate Look aside Buffer представляет собой небольшой блок ассоциативной памяти, в котором содержится информация о страницах, которые использовал процессор последнее время.

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

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

Так как TLB используется для преобразования линейного адреса в физический, то тегом для поиска TLB служит линейный адрес, точнее, 20 старших его разрядов. В свою очередь в памяти данных TLB содержатся физические адреса наиболее часто используемых страниц, точнее 20 их старших разрядов. Кроме физического адреса в памяти данных TLB содержатся также некоторые атрибуты страниц, связанные с их защитой и возможностью кэширования. Младшие 12 разрядов линейного адреса являются смещением внутри страницы и не подлежат преобразованию, то есть прямо копируются в младшие разряды физического адреса.

В физическом пространстве памяти, впрочем как и в линейном, страницы выравниваются на 4-х Кб границу из этого следует, что базовый или начальный адрес страницы содержит 12 младших нулей.

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

Конспект лекций по курсу «Организация ЭВМ и ВС»

Санкт-Петербург


2012



Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   ...   20




База данных защищена авторским правом ©vossta.ru 2022
обратиться к администрации

    Главная страница