Читайте данную работу прямо на сайте или скачайте

Скачайте в формате документа WORD


Вычислительные машины и системы

ВТОРОЙ СЕМЕСТР

ЛЕКЦИЯ N 1

ЗАПОМИНАЮЩИЕ СТРОЙСТВА ЭВМ.

Запоминающие стройства классифицируют:

1. По типу запоминающих элементова (полупроводниковые, магнит-

ные, конденсаторные, оптоэлектронные, голографические, криоген-

ные).

2. По функциональному назначению (оперативные (ОЗУ), буферные

(БЗУ), сверхоперативные (СОЗУ), внешние (ВЗУ), постоянные (ПЗУ)).

3. По способу организации обращения (с последовательным поис-

ком, с прямым доступом, адресные, ассоциативные, стековые, мага-

зинные).

4. По характеру считывания (с разрушениема или без разрушения

информации).

5. По способу хранения (статические или динамические).

6. По способу организации (однокоординатные, двухкоординатные,

трехкоординатные, двух/трехкоординатные).

ПАМЯТЬ ЭВМ - совокупность всех запоминающих стройств, вхо-

дящих в состав ЭВМ. Обычно в состав ЭВМ входит несколько различ-

ных типов ЗУ.

Производительность и вычислительные возможности ЭВМ в значи-

тельной степени определяются составом и характеристиками ее ЗУ.

Основными операциями в памяти в общем случае являются зане-

сение информации в память - запись и выборка информации из памя-

ти - считывание. Обе эти операции называются обращением к памяти

или, подробнее, обращением при считывании и обращением при запи-

си.

При обращении к памяти производится считывание илиа запись

некоторой единицы данных - различной для стройств разного типа.

Такой единицей может быть бит, байт, машинное слово или блок дан-

ных.

Важнейшими характеристиками отдельных стройств памяти явля-

ются емкость памяти, дельная емкость, быстродействие.

ЕМКОСТЬ ПАМЯТИ определяется максимальным количеством данных,

которые могут в ней храниться. Емкость измеряется в двоичных еди-

ницах (битах), машинных словах, но большей частью в байтах.

ДЕЛЬНАЯ ЕМКОСТЬ есть отношение емкости ЗУ к его физическому

объему.

БЫСТРОДЕЙСТВИЕ ПАМЯТИ определяется продолжительностью опера-

ций обращения, т.е. временем, затрачиваемыма н поиска единицы

информации в памятиа и на ее считывание, илиа временем на поиск

места в памяти, предназначенного для хранения данной единицы ин-

формации, и на ее запись.

.

- 2 -

В некоторых стройствах памяти считывание информации сопро-

вождается ее разрушением (стиранием). В таком случае цикл обраще-

ния должен содержать операцию восстановления (регенерации)а счи-

танной информации на прежнем месте в памяти.

Таким образом, продолжительность обращения к памяти при счи-

тывании

t 4обр_с 0 = t 4дост_с 0 + t 4счит 0 + t 4рег 0,

где t 4дост_с 0а -а промежуток времени между моментом начала операции

считывания и моментом, когда становится возможным доступ к данной

единице информации;а t 4счит 0 - продолжительность самого физического

процесса считывания;а t 4рег 0 - время, затрачиваемое на регенерацию

информации (равно нулю для ЗУ, которым регенерация не требуется).

Продолжительность обращения при записи

t 4обр_з 0 = t 4дост_з 0 + t 4подг 0 + t 4зап 0,

где t 4дост_з 0а -а промежуток времени между моментом начала операции

записи и моментом, когда становится возможным доступ к запоминаю-

щим элементам;а t 4подг 0 - время подготовки, расходуемое на приведе-

ние ва исходноеа состояние запоминающиха элементова для записи

заданной единицы информации; t 4зап 0 - время занесения информации.

В качестве продолжительности цикла обращения к памяти прини-

мается величина

t 4обр 0 = max(t 4обр_с 0,t 4обр_з 0).

Принято разделять все запоминающие стройства на дв основ-

ных типа: оперативные и внешние. Основным критериема для такого

разделения служит скорость доступа к информации.

ОЗУ (оперативное запоминающее стройство)а -а запоминающее

устройство, предназначенное для информации, непосредственно

участвующей в процессе выполнения операций, выполняемых процессо-

ром. Зу должно обеспечивать поступление новойа информации в

процессор с той же скоростью, с какой он ее обрабатывает.

ВЗУ (внешнее запоминающее стройство) - запоминающее строй-

ство, предназначенное для длительного хранения массивова информа-

ции и обмена ими с ОЗУ. Обычно строятся на базе магнитныха носи-

телей информации. Само название этого класс стройств имеет

исторический характер и произошло от больших ЭВМ, ва которых все

ВЗУ, как более медленные и громоздкие, размещались в собственном

корпусе, не в корпусе основного модуля.

.

- 3 -

Внутренняя память ЭВМ организуется как взаимосвязанная сово-

купность несколькиха типов ЗУ. В ее состав, кроме ОЗУ, могут

входить следующие типы ЗУ:

ПОСТОЯННОЕ ЗАПОМИНАЮЩЕЕ СТРОЙСТВО (ПЗУ) - запоминающее ст-

ройство, из которого может производиться только выдача хранящейся

в нем информации. Занесение информации в ПЗУ производится при его

изготовлении.

ПОЛУПОСТОЯННОЕ (ПРОГРАММИРУЕМОЕ) Зу (ППЗУ) - ЗУ, в котором

информация может обновляться с помощью специальной аппаратуры пе-

ред режимом автоматической работы ЭВМ. Если возможно многократное

обновление информации, то иногда такое ППЗУ называют репрограмми-

руемым (РППЗУ).

БУФЕРНОЕ ЗАПОМИНАЮЩЕЕ СТРОЙСТВО (БЗУ) -а запоминающее ст-

ройство, предназначенноеа для промежуточного хранения информации

при обмене данными между стройствами ЭВМ, работающими с различ-

ными скоростями. Конструктивно оно может быть частью любого из

функциональныха устройств.

Местная память (cверхоперативное ЗУ, СОЗУ) - буферное запо-

минающее стройство, авключаемоеа между Зу иа процессорома или

каналами. Различаюта местную память процессора и местную память

каналов.

СТЕК (магазин) - специально организованоое ОЗУ, блок хране-

ния которого состоита иза регистров, соединенных друг с другом в

цепочку, по которой их содержимое при обращении к ЗУ передается

(сдвигается) в прямома или обратнома направлении.

Кеш-память - разновидность стека, ва котором хранятся копии

некоторых команд из ОЗУ.

ВИДЕОПАМТь -а область ОЗУ ЭВМ, в которой размещены данные,

видимые на экране дисплея.

АДРЕСНАЯ, АССОЦИАТИВНАЯ И СТЕКОВАЯ ОРГАНИЗАЦИЯ ПАМЯТИ

Запоминающее устройство, кака правило, содержита множество

одинаковых запоминающих элементов, образующиха запоминающий мас-

сив. Массив разделен на отдельные ячейки;а каждая из них предназ-

начена для хранения двоичного кода, число разрядова ва котором

определяется ширинойа выборки памяти (байт, машинное слово или

несколько слов). Способ организации памятиа зависита ота методов

размещения иа поиска информации в запоминающем массиве. По этому

признаку различают адресную, ассоциативную и стековую память.

.

- 4 -

АДРЕСНАЯ ПАМЯТЬ

При адресной организации памяти размещение и поиска информа-

ции ва запоминающема массиве основаны н использовании адреса

хранения слова. Адресом служит номер ячейки массива, ва которой

это слово размещается.

При записи (или считывании)а слов ва запоминающий массив

инициирующая эту операцию акоманд должна казывать адрес, по

которому производится запись (считывание).

╔════════════════════╗

┌──────╨──────┐ ║

│ БУС │ а║

│ 0 n-1 │<┐ ║

└─────────────┘ │ ║

^ │ ║

║ │ ║а ШВх

┌───────┐ ┌─────┬──────╨──────┐ │ ║ ║

│ k-1│ │ БАВ │ 0а... n-1 │ │ ║ ║

│ │ │ │ │ │ V V

Ш │ │ │ │. │ │ ┌─────────────┐

══════> Рг │═════> │ │. ЗМ │ │ ┌─>│ РгИ │

│ │ │ │. │ │ │┌>│ 0 n-1 │

│ │ │ │ │ │ ││ └──────╥───╥──┘

│ 0 │ │ │ N-1 │ │ ││ ║ ║

└───────┘ └─────┴─────────────┘ │ ││ ║ ║

ПрРгА ^ Выборк ^ ^ │ ││ ║ V

│ ┌────────────┘ ║ │ ││ ║ ШВых

Обра-а ┌───┴─┴─┐ Считывание ║ │ ││ ║

щение │ ├────────────────────╫────────┘ ││ ║

──────>│ │ ПрРгИ ║ ││ ║

│ ├────────────────────╫──────────┘│ ║

Опе- БПа │ ПрШВых ║ │ ║

рация │ ├────────────────────╫───────────┘ ║

──────>│ │ Запись ┌──────╨──────┐ ║

│ ├────────────>│ БУЗ │ ║

└───────┘ │ 0 n-1 │ ║

└─────────────┘ ║

^ ║

╚════════════════════╝

Типичная структур адресной памятиа содержита запоминающий

массив иза Nа n-разрядных ячеек (обычно n равно 1, 4, 8 или 16) и

его аппаратурное обрамление, включающееа регистра адрес РгА,

имеющий kа разрядов (k больше или равно логарифму по основанию 2

от N), информационный регистр РгИ, блока адресной выборки БАВ,

блок силителей считывания БУС, блок разрядных силителей-форми-

рователей сигналов записи БУЗ и блок правления памятью БУП.


- 5 -

По кодуа адрес ва регистреа адрес блок адресной выборки

формирует в соответствующей ячейке памятиа сигналы, позволяющие

произвести считывание или запись слова в ячейку.

Цикл обращения к памяти инициируется поступлениема ва блок

управления памятью сигнала "Обращение". Общая часть цикла обраще-

ния включает в себя:

1) прием в регистр адреса с шины адреса ША адреса обращения;

2) прием блоком управления и расшифровку правляющего сигнала

"Операция", указывающего вид операции (считывание или запись).

Далее, при считывании:

3) блок адресной выборки дешифрирует адреса и посылает сигналы

считывания ва заданную ячейку, при этом код записанного в ячейке

слова считывается силителями считывания и передается ва информа-

ционный регистр РгИ;

4) в памяти с разрушающим считыванием (при считывании все запо-

минающие ячейки станавливаются в нулевое состояние) производится

регенерация информации в ячейке путем записи в нее иза информаци-

онного регистра РгИ считанного ранее слова;

5) считанное слово выдается иза информационного регистра на

выходную информационную шину ШВых.

При записи:

3) производится прием записываемого слова с выходной информаци-

онной шины ШВх в информационный регистр;

4) блока адреснойа выборки производит выборку и очистку ячейки,

заданной в регистре адрес (в памятиа са разрушающим считыванием

для этого производится считывание беза записи в аинформационный

регистр);

5) в выбранную ячейку записывается слово иза информационного

регистра.

Блок управления БПа генерируета необходимые последователь-

ности правляющих сигналов, инициирующих работу отдельныха злов

памяти.

ССОЦИАТИВНАЯ ПАМЯТЬ

В памяти этого типа поиск нужной информации производится не

по адресу, по ее содержанию (по ассоциативному признаку). При

этом поиск по ассоциативному признакуа (или последовательно по

отдельным его разрядам) происходита параллельно во времени для

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

поиск позволяет существенно простить и скорить обработкуа дан-

ных. Это достигается за счет того, что в памяти этого типа опера-

ция считывания информации совмещена с выполнением ряда логических

операций.

Память этого типа применяется в специализированныха вычисли-

тельных машинах - машинах баз данных.


- 6 -

СТЕКОВАЯ ПАМЯТЬ

Стековая память, как и ассоциативная, является безадресной.

В стековой памяти ячейки образуют одномерный массив, ва котором

соседние ячейкиа связаны друг с другом разрядными цепями передачи

слов. Запись нового слова производится ва верхнюю ячейку (ячей-

ку 0), при этома все ранее записанные слова сдвигаются вниз, в

соседние ячейки с большими н 1а номерами. Считывание возможно

только иза верхней ячейки памяти. Если производится считывание с

удалением, все остальные слова ва памятиа сдвигаются ва верх, в

ячейки с меньшими номерами. В этой памяти порядок считывания слов

соответствует правилу FIFO: последним поступил, первым обслужива-

ется. Ва ряде стройства рассматриваемого типа предусматривается

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

его даления и сдвига слов в памяти.

Иногда стековая память снабжается счетчиком стека, показыва-

ющим количество занесенных в память слов.

В вычислительных машинах часто стековуюа память организуют,

используя адреснуюа память и специальный регистр - казатель сте-

ка.


ВТОРОЙ СЕМЕСТР

ЛЕКЦИЯ N 2-3

 СТРУКТУРЫ АДРЕСНЫХ ЗАПОМИНАЮЩИХ СТРОЙСТВ

Тип используемых запоминающих элементов определенным образом

влияет на структуру памяти, в результате чего существует большое

разнообразие структур ЗУ.

Совокупность определенныма образома соединенных запоминающих

элементов (ЗЭ) образует запоминающую матрицуа (массив)а ЗМ, где

каждый запоминающий элемент хранит бит информации.

Запоминающий элемент должен реализовывать следующие режимы

работы:

1) хранение состояния;

2) выдача сигнала состояния (считывание);

3) запись 0 или 1.

К запоминающим элементам должны поступать правляющие сигна-

лы для задания режима работы, также информационный сигнала при

записи. При считыванииа запоминающий элемента должена выдавать

сигнал о своем состоянии.

Запоминающий массив имеет систему адресных и разрядных линий

(проводников). Адресные линии используются для выделения по

дресу совокупности запоминающих элементов, которым станавлива-

ется режим считывания или записи. Выделениеа отдельныха разрядов

осуществляется разрядными линиями, по которым передается записы-

ваемая или считываемая информация.

Запоминающие устройства строятся из специальных запоминающих

элементов, для которых характерно использование троичных сигналов

и совмещение линий входных и выходных сигналов.

Адресные и разрядные линии носят общее название линий выбор-

ки. В зависимости от числа таких линий, соединенных с одним запо-

минающим элементом различают двух-, трехкоординатные ЗУ и т.д.,

называемые соответственно 2D, 3D и т.д.

Запоминающие стройства типа 2D

Организация ЗУ типа 2D обеспечивает двухкоординатную выборку

каждого запоминающего элемента. Основу ЗУ составляет плоская мат-

рица из запоминающих элементов, сгруппированых в 2 5k 0 ячеека по n

разрядов. Обращение к ячейке задается k-разрядным адресом, выде-

ление разрядов производится разрядными линиями записи и считыва-

ния.

.

- 2 -

ШВых

^

┌────────────────╨────────────────┐

│0 n-1│

│ сСч │

└─┬──────────────┬──────────────┬─┘

0 5│ 0.. . j 5│ 0а а.. . n-1 5│

 5┌──────┤ 0  5┌──────┤ 0  5┌──────┤

 5┌─┴─┐ │ 0  5┌─┴─┐ │ 0  5┌─┴─┐ │

 5│ ЗЭ  5│ 0< 5─┐ │ 0...  5│ ЗЭ  5│ 0< 5─┐ │ 0...  5│ ЗЭ  5│ 0< 5─┐ │

 5└───┘а │ │ 0  5└───┘а │ │ 0  5└───┘а │ │

 5┌──────┐ 00 5  0^ 5 │ │ 0  5а  0^ 5 │ │ 0  5а  0^ 5  0│ 5 │

 5│0 ├────────┴────┼─┼───────┴────┼─┼─────── 0┘ │ │

 5│ . │ │ 0  5а. │ │ 0  5а . │  0│

 5│ │  0. 5. │ │ 0  5а . │ │ 0  5а . │ │

 5│ │  0. 5 ┌────┼─┤ 0  5а ┌────┼─┤ 0  5а ┌────┼─┤

 5│ │  0. 5 ┌─┴─┐а │ │ 0  5┌─┴─┐а │ │ 0  5┌─┴─┐а │ │

 5│ │  0  5 │ ЗЭ 5 │ 0< 5─┤ │ 0...  5│ ЗЭ 5 │ 0< 5─┤ │ 0...  5│ ЗЭ 5 │ 0< 5─┤ │

 5│ │ └───┘а │ │ 0  5└───┘а │ │ 0  5└───┘а │ │

дреса  5│ │ 0i 5  0^ 5 │ │ 0  5 а 0^ 5 │ │ 0  5а  0^ 5 │  0│

══════> 5│ 0 Адр 5 ├────────┴────┼─┼───────┴────┼─┼─────── 0┘ │ │

 5│ │. │ │ 0  5а. │ │ 0  5а .  0│ 5  0│

 5│ │  0. 5. │ │ 0  5а . │ │ 0  5 а.  0│ 5 │

 5│ 0  5│  0. 5 ┌────┼─┘ 0  5а ┌────┼─┘ 0  5а ┌────┼─┘

 5│ 0  5│  0. 5 ┌─┴─┐а │ 0  5┌─┴─┐а │ 0  5┌─┴─┐а │

 5│ 0  5│  0  5 │ ЗЭ 5 │ 0< 5─ 0┤...  5│ ЗЭ 5 │ 0< 5─ 0┤ ...  5│ ЗЭ 5 │ 0< 5─ 0┤

 5│ 0  5│ └───┘ 0а │  5└───┘ 0а │  5└───┘ 0а │

 5│ 0  5│ 02 5k 0-1 ^ │ ^ │ ^ │

 5│ 0k-1 ├ 5────────┴──── 0┼─────── 5──┴──── 0┼─────── 5── 0┘ │

└──────┘ │ │ │

^ ^ 0│... jа... n-1│

│ │ ┌─┴──────────────┴──────────────┴─┐

│ │ │ сЗап │

│ │ │0 n-1│

Запа Чт └─────────────────────────────────┘

^

ИнфВх

дрес ячейки i поступает н схемуа адресного формирователя

др, правляемого сигналами "Чтение" и "Запись". Основу адресно-

го формирователя составляет дешифратор с 2 5k 0 выходами, который при

поступленииа н его входы адрес формирует сигнал для выборки

линии i. При этома пода действиема сигнала "Чтение" формируется

сигнал, настраивающий запоминающийа элемента н выдачуа сигнала

состояния, пода действием сигнала "Запись" - соответственно на

запись.

Выделение разряда j в i-ом слове производится второй коорди-

натной линией. При записи по линии j от силителя записи поступа-

ета сигнал, станавливающий выбранныйа для записи элемент в 0

или 1. При считывании на силитель считывания по линии j поступа-

ет сигнал о состоянии элемента.

Используемые запоминающие элементы должны допускать объеди-

нение выходов для работы н общуюа линию са передачейа сигналов

только от выбранного элемента.

.

- 3 -

Каждая адресная линия передает три значения сигнала:

1) выборка при записи,

2) выборка при считывании,

3) отсутствие выборки.

Каждая разрядная линия записи передает в запоминающий эле-

мент записываемый бит информации, разрядная линия считывания -

считываемый бит информации. Линии записи и считывания могут быть

объединены в одну при использовании элементов, допускающиха объ-

единение выход со входома записи. Совмещение функций записи и

считывания на разрядной линии широко используется ва современных

полупроводниковых ЗУ.

Запоминающие устройства типа 2D являются быстродействующими

и достаточно добными для реализации. Однако они неэкономичны по

объему оборудования из-за наличия дешифратор c большима числом

выходов. Поэтомуа структур 2D применяется только в ЗУ небольшой

емкости.

СТРУКТУРЫ АДРЕСНЫХ ЗАПОМИНАЮЩИХ СТРОЙСТВ

Запоминающие стройства типа 3D

Некоторые запоминающие элементы имеют не один, а дв входа

выборк. Чтобы выполнялась операция выборки, требуется наличие

сигнала выборки на обеих входах. Использованиеа такиха элементов

позволяет строить ЗУ с трехкоординатным выделением ячеек.

Запоминающий массив ЗУ тип 3Dа представляета собой прост-

ранственную матрицу, составленную из n плоских матриц, представ-

ляющих собой запоминающий массива для отдельныха разрядова ячеек

памяти. Запоминающиеа элементы для разряда сгруппированы в квад-

ратную матрицу.

.

- 4 -

ИнфВых

^

┌──────────╨──────────┐

│ сСч │

└─┬────────┬────────┬─┘

0... j│... n-1│

├─────┐ ┌─────┬───────┬─────┐

│ │ │┌────┼───────┼┐ │

а  5┌─┴─┐  0 │  5┌─┴─┐ а 0│  5┌─┴─┐

│┌─> 5│ ЗЭ  5│ 0< 5─┐ 0..│├─> 5│ ЗЭ  5│ 0< 5─┐ 0..│├─> 5│ ЗЭ  5│ 0< 5─┐

│  5└───┘а │  0 │  5└───┘а  0│  5└───┘а │

 5┌── 0── 5───┐ 00 5а  0││ 5  0^ 5 │  0 │  5а  0^ 5  0│  5а  0^ 5  0│

 5│0  0  5 ├─── 0┼┼ 5────┴────┼─ 0─┼┼ 5────┴────┼ 0──┼┼─ 5─── 0┘ │

 5  0  5 │  0. 5  0││ 5  0: 5  0│ 5  0 │  5а  0: 5  0│ 5а  0│  5а  0: 5  0│

 5  0  5 │  0. ├┼────┐ ├┼────┐ ├┼────┐ │

 5  0  5 │  0. 5  0││ 5а ┌─┴─┐а  0│ 5  0 │  5┌─┴─┐а  0│ 5а  0│  5┌─┴─┐а  0│

 5  0  5 │  0  5  0│├─> 5│ ЗЭ 5 │ 0< 5─┤ 0..│├─> 5│ ЗЭ 5 │ 0< 5─┤ 0..│├─> 5│ ЗЭ 5 │ 0< 5─┤

 5  0  5  0││ 5а └───┘а │  0 │  5└───┘а  0│  5└───┘а │

дреса  5  0  5 │ 0i' 5  0││ 5  0^ 5 │  0 │  5а  0^ 5  0│  5а  0^ 5 │

══════> 5│ 0 Адр1 5 ├─── 0┼┼ 5────┴────┼ 0─ 5─ 0┼┼─ 5───┴────┼─ 0─┼┼── 5── 0┘ │

 5  0  5  0││ 5  0: 5 а│  0 │  5а  0: 5  0│  5а  0: 5  0│

 5│ 0  5│  0. ├┼────┐ ├┼────┐ └┼────┐ │

 5│ 0  5│  0. 5  0││ 5а ┌─┴─┐а │ 0а │  5┌─┴─┐а  0а  5┌─┴─┐а │

 5│ 0  5│  0. 5  0│├─> 5│ ЗЭ 5 │ 0< 5─ 0┤..│├─> 5│ ЗЭ 5 │ 0< 5─ 0┤...├─> 5│ ЗЭ 5 │ 0< 5─ 0┤

 5│ 0k-1  5а  0││ 5а └───┘ 0а │  5└───┘ 0а а  5└───┘ 0а │

 5│ 0─── - 1 5│ 0 ││ ^ ││ ^ а │ ^ │

 5│ 0 2 ├ 5─── 0┼┼ 5────┴──── 0┼──┼┼── 5──┴──── 0┼───┼── 5── 0┘ │

└───────┘ │└─────────┼──┼┘ │ │

^ ^ └──────────┼──┘ а └─────────┼─────┐

│ │ 0а... i"а... │ │

│ │ ┌─┴─────────────┴─────────────┴─┐ │

├─────┼────────────>│k-1 Адр2 │

│ │ │─── k-1а │

│ ├────────────>│ 2 а │

│ │ └───────────────────────────────┘ │

^ ┌───────┘

Зап Чт ║ │

Адреса 0│... j n-1│

┌─┴─────┴─────┴─┐

│ сЗап │

└───────────────┘

^

ИнфВх

Для адресной выборки запоминающего элемента выдается две его

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

младшую части, каждая из которых поступает на свой адресный фор-

мирователь. Адресные формирователи выдают кода ва соответствующие

дресные линии. В результате в массиве оказывается выбранным эле-

мент, находящийся на пересечении двуха адресныха линий. Адресные

формирователи правляются сигналами "Чтение"а иа "Запись"а и в

зависимости от них выдают сигналы выборки для считывания или для

записи. Приа считывании сигнала о состоянии выбранного элемента

поступает по линии считывания в силитель. При записи в запомина-

ющий элемента будета занесен информация, поступившая са соот-

ветствующего силителя записи.


- 5 -

Для полупроводниковых ЗУ характерно объединение в одну линию

разрядных линий записи и считывания.

Запоминающие устройства типа 3D более экономичны, чем ЗУ 2D.

Однако элементы с тремя входами, используемыми приа записи не

всегда дается реализовать.

Запоминающие стройства типа 2,5D

В ЗУ этого типа при считывании состояния приложение элемента

в запоминающем массиве определяется тремя координатами (две коор-

динаты для выборки и одна для выходного сигнала), при записи в

запоминающийа элемента - двумя координатами. Считывание при этом

осуществляется так же, как в ЗУ типа 3D, запись сходна са за-

писью в ЗУ типа 2D.

Структура одноразрядного ЗУ типа 2,5D:

ИнфВых

^

┌────┴────┐

сСч │

└────┬────┘

├───┐ ┌───┬────────┬───┐

│  5┌─┴─┐  0 │  5┌─┴─┐  0│  5┌─┴─┐

│  5│ ЗЭ  5│ 0< 5─┐ 0...│  5│ ЗЭ  5│ 0< 5─┐ 0...│  5│ ЗЭ  5│ 0< 5─┐

│  5└───┘а  0 │  5└───┘а а  0│  5└───┘а │

 5┌─ 0─ 5──┐ 00 5  0│ 5  0^ 5  0 │  5а  0^ 5 а  0│  5а  0^ 5  0│

 5│0 ├──── 0┼───┴────┼───┼─── 5┴────┼ 0───┼ 5─── 0┘ │

 5│ │  0. 5а  0│ 5  0: 5  0│ 5а  0 │  5а  0: 5  0│ 5  0│  5а  0: 5  0│

 5│ │  0.а ├───┐ а ├───┐ а ├───┐ │

 5│ │  0. 5а  0│ 5 ┌─┴─┐а  0│ 5а  0 │  5┌─┴─┐а  0│ 5  0│  5┌─┴─┐а  0│

 5│ │  0  5а  0│  5│ ЗЭ 5 │ 0< 5─┤ 0...│  5│ ЗЭ 5 │ 0< 5─┤ 0...│  5│ ЗЭ 5 │ 0< 5─┤

 5│ │  0│ 5 └───┘а  0 │  5└───┘а а  0│  5└───┘а │

дреса  5│ │ 0i' 5а  0│ 5  0^ 5  0 │  5а  0^ 5  0│  5а  0^ 5 │

══════> 5│ Адр 5├──── 0┼───┴────┼───┼─ 5──┴─── 0─┼───┼─ 5── 0┘ │

 5│ │  0│ 5  0: 5  0 │  5а  0: 5  0│  5а  0: 5  0│

 5│ 0  5│  0.а ├───┐ а ├───┐ а └───┐ │

 5│ 0  5│  0. 5а  0│ 5 ┌─┴─┐а │ 0 │  5┌─┴─┐а  0│  5┌─┴─┐а │

 5│ 0  5│  0. 5а  0│  5│ ЗЭ 5 │ 0< 5─ 0┤...│  5│ ЗЭ 5 │ 0< 5─ 0┤...  5│ ЗЭ 5 │ 0< 5─ 0┤

 5│ 0  5│  0│ 5 └───┘ 0а а │  5└───┘ 0а │  5└───┘ 0а │

 5│ 0  5│ 02 5r 0а а ^ а а ^ │ ^ │

 5│ 0r-1 ├ 5──── 0┼ 5───┴──── 0┼───┼─ 5──┴──── 0┼───── 5── 0┘ │

└────┘ │ │ │ │

^а ^ └────────┼───┘ │ │

│ 0а...а i"а... │

│ ┌─┴────────────┴────────────┴─┐ 4а  0 ВхИнф

├──┼───────────>│ Адр 4j 0 │<─────────

├───────────>│ r k-1а (0/1)

│ └─────────────────────────────┘

^

Запа Чт │

Адрес

Запоминающий массива Зу тип 2,5Dа можно рассматривать как

группу запоминающих массивова -а по одному для каждого разряда

памяти. Код адреса ячейки, как и в ЗУ типа 3D, разделяется на две

части (i'а иа i"), каждая иза которыха отдельно дешифрируется.


- 6 -

дресный формирователь Адр выдает сигнала выборкиа н линию i'.

Разрядно-адресный формирователь j-го разряда Адрj выдает сигнал

на линию i". При считывании оба сигнала, являющиеся сигналами вы-

борки для считывания, опрашивают запоминающий элемент, выходной

сигнал которого поступает на силитель считывания разряда j.

При записи адресный формирователь Адр выдает сигнал выборки

для записи, разрядно-адресный формирователь j-го разряда Адрj

выдает по линии i" сигнал записи 0 или 1 в зависимости ота назна-

чения входного информационного сигнал j-го разряд ВхИнj.

На остальных линиях разрядно-адресного формирователя устанавлива-

ется сигнала "Хранение", и поэтомуа изменяется состояние только

элемента, лежащего на пересечении линий i' и i".

Из запоминающиха массивов отдельных разрядов формируется за-

поминающий массив всего ЗУ.

Структура n-разрядного ЗУ типа 2,5D:

nа ┌──────┐ nа ИнфВых

╒═══════════╤═══════════╤═/═>│ УсСч ╞═/═══════>

0│ j│ n-1│ └──────┘

┌────┐а ┌───┴───┐ ┌───┴───┐ ┌───┴───┐

│0 ├─>│ а │ │ │

дрес │ │: │ а │ а │ │

═════>др├─> ЗМ 40 0а │... ЗМ 40 0 а│... ЗМ 40 0а │

│ │: │ а │ │ │

│r-1 ├─>│ а │ а │ │

└────┘а └───────┘ └───────┘ └───────┘

^..^..^ ^..^..^ ^..^..^

┌┴──┴──┴┐ ┌┴──┴──┴┐ ┌┴──┴── 4┴─ 0┐

│ Адр 40 0│<┐ │ Адр 4j 0│<┐ │Адр 4n-1 0│<┐

└───────┘ │ └───────┘ │ └─────── 4─┘ 0 │

^ 0│ ^ j│ ^ n-1  4  0а n ИнфВх

дрес (r 7_ 0k-1) ║ ╘═════╬═════╧═════╬══════╧ 4═══ 0══/═════════

══════════════════╩═══════════╩═══════════╝

Недостатком ЗУ типа 2,5D является то, что сигналы на линиях

разрядно-адресного формирователя должны иметь 4 значения: чтения,

запись 0, запись 1 и хранение. Для запоминающих элементов с раз-

рушающим считыванием сигналы "Чтение" и "Запись 0"а совпадают, и

потребуется лишь три значения сигнала. В связи с этим ЗУ типа

2,5D используются лишь для запоминающих элементова c разрушающим

считыванием.

Запоминающие стройства типа 2D-M

Для построения современных полупроводниковых ЗУ из элементов

с неразрушающим считыванием используется структура 2D-M с двухко-

ординатным выделением элементова иа мультиплексированием выходных

сигналов при считывании.

Запоминающие элементы таких ЗУ имеют два входа и один выход.

При наличии сигнала "Хранение" хотя бы на одном из входов элемент

при записи находится в режиме хранения. Сигнал "Чтение" опрашива-

ет состояние элемента. Сигналы "Запись" и "Запись 0" станавлива-

ют элемент в состояние 0, "Запись" и "Запись 1"- в состояние 1.

Выход запоминающего элемента объединяется со входома записи.

Код адреса i-й ячейки разделяется на две части (i' и i"), одна из

которых поступаета на адресный формирователь Адр, а другая - на

разрядно-адресный коммутатор АдрК. Пока на адресный формирова-

тель иа коммутатора не приходит сигнал обращения к памяти, на их


- 7 -

выходных линиях станавливаются сигналы "Хранение". При наличии

сигнала обращения выполняется считывание или запись в зависимости

от значения сигнала "Чтение/Запись".

При считывании адресный формирователь по линии i' выдает

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

элементов линии i' сигналы их состояний поступают на коммутатор.

Коммутатор АдрК мультиплексирует эти сигналы и передает на выход

ИнфВых сигнал с линии i".

При записи адресный формирователь выдает по линии i'а сигнал

выборки для записи. Коммутатора в зависимости от значения ИнфВх

выдает сигнал записи 0 или 1 в линию i"а и сигналы хранения в

остальные линии. Ва результате запись производится только в эле-

мент, лежащий на пересечении линий i' и i".

Структура 2D-Mа наиболее добна для построения полупроводни-

ковых ЗУ и широко применяется в настоящее время для построения

ОЗУ и ПЗУ большой емкости.

Статические и динамические ОЗУ

Микросхемы ОЗУ по типу элементов памяти разделяют на стати-

ческие и динамические. В микросхемах статических ОЗУ ва качестве

элементов памяти применены статические триггеры на биполярных или

МДП-транзисторах. Как известно, статический триггер способен при

наличии напряжения питания сохранять свое состояние неограничен-

ное время. Число состояний, в которых может находиться триггер,

равно двум, что и позволяет использовать его для хранения двоич-

ной единицы информации.

В микросхемаха динамических ОЗУ элементы памяти выполнены на

основе электрических конденсаторов, сформированных внутри полуп-

роводникового кристалла. Для обеспечения сохранности информации

необходимо периодическое восстановление (регенерация) заряда кон-

денсатора, посколькуа из-за токов течки запоминающий конденсатор

может разряжаться. Это осуществляется са помощьюа периодических

циклов регенерации, во время которых информация из элементов па-

мяти считывается и вновь записывается обратно. Периодичность

восстановления информацииа в элементах памяти называется периодом

регенерации. Период регенерации Трег резко меньшается с увеличе-

нием температуры окружающей среды, однако для большинства серийно

выпускаемых микросхем приа наихудшиха словияха окружающейа среды

максимальное значение периода регенерации не менее 2 мс. Длитель-

ность циклов регенерации обычно равна длительности циклова считы-

вания или записи информации, но для полной регенерации информации

в микросхеме необходимо несколько сотен таких циклов.

Микросхемы динамическиха Зу отличаются от микросхем стати-

ческиха Зу большейа информационной емкостью, что обусловлено

меньшим числом компонентов в одном элементе памяти, и, следова-

тельно, более плотным их размещениема ва полупроводниковом крис-

талле. Однако динамические ОЗУ сложнее ва применении, поскольку

нуждаются в организации принудительной регенерации, ва дополни-

тельном оборудовании и более сложных стройствах управления.

Серийные микросхемы динамических ОЗУ в настоящее время имеют

емкость 1, 4 или 16 Мбит и применяются для создания основного ОЗУ

ЭВМ. Ва ближайшееа десятилетие планируется освоениеа серийного

производства микросхем емкостью 256 Мбит.

Емкость микросхем статических ОЗУ не превышает 256 Кбит. Они

применяются для создания сверхоперативной памяти ЭВМ, а также в

устройствах автоматики, микроконтроллерах и т.п.

С точки зрения разработчика электронной аппаратуры типа ОЗУ


- 8 -

гораздо важнее его внутренней организации, так как использование

динамических ОЗУ значительно сложняет как схему разрабатываемого

устройства, так и моделирование его работы в процессе разработки.

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

поглощает заметную часть процессорного времени (5а -а 10%), что

крайне не желательно в системах реального времени.

ПОСТОЯННЫЕ ЗАПОМИНАЮЩИЕ СТРОЙСТВА

Постоянные запоминающие стройств ва рабочема режимеа ЭВМ

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

типа Зу занесение в него информации производится или в процессе

изготовления, или в зксплуатационных словиях путема программиро-

вания с помощью специального оборудования.

Постоянные запоминающие стройства обычно строятся кака ад-

ресные ЗУ. Функционирование ПЗУ можно рассматривать, как выполне-

ние однозначного преобразования k-разрядного код адрес ячейки

запоминающего массива в n-разрядный код хранящегося в ней слова.

По сравнению с ОЗУ, ПЗУ строятся из более простых элементов

и по более простым схемам, поэтому их быстродействие и надежность

выше, стоимость ниже, чем у ОЗУ.

ПЗУ широко используются для хранения рабочих программ специ-

лизированных ЭВМ и программ запуска и тестирования универсальных

ЭВМ.

В ПЗУ со структурой типа 2D запоминающийа массива образуется

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

устанавливаются элементы, которые либо связываюта (состояние 1),

либо не связывают (состояние 0) между собой горизонтальную и вер-

тикальную линии.

Дешифратор Дш по коду адреса в РгА выбирает одну из горизон-

тальных линий, в которую подается сигнал выборки. Выходной сигнал

появляется ва теха вертикальныха разрядных линиях, которые имеют

связь с возбужденной разрядной линией.

В зависимости ота типа запоминающих элементов различают ре-

зисторные, емкостные, индуктивные, полупроводниковые и другие

ПЗУ.

Полупроводниковые интегральные ПЗУ, в отличие от Зу явля-

ются энергонезависимыми, т.е. информация в них не исчезает при

выключении питания.

По способу занесения информации различают следующие типы ин-

тегральных полупроводниковых ПЗУ:

1) са программированием в процессе изготовления путем нанесения

с помощью фотошаблонов перемычек в необходимых местах;

2) с программированием путем выжигания перемычек или разрушения

p-n-переходов;

3) са электрическим программированием и ультрафиолетовым стира-

нием;

4) с электрическима программированием и электрическим стиранием

информации (так называемая флеш-память).

Микросхемы, программируемые ва процессе изготовления или

путем выжигания перемычек, обычно строятся на базе ТТЛ логики и

имеют небольшую емкость (не выше 64 Кбит), но малое время досту-

па, и применяются в простых стройствах автоматики, такжеа для

хранения матриц шрифтов в контроллерах дисплеев и принтеров. Пов-

торное использование микросхем этих типов невозможно, так кака в

них нельзя стереть и перезаписать информацию.

Микросхемы ПЗУ с льтрафиолетовым стиранием информации имеют


- 9 -

емкость до 1 Мбит и применяются при создании контроллеров различ-

ных стройств ЭВМ для хранения программ, также для хранения

программ тестирования ЭМа и начальнойа загрузки операционной

системы.

Новая технология памяти - с электрическим программированием

и электрическим стиранием, именуемая ETOX или флеш-технологи-

ей, была анонсирована фирмой Intel в 1989 году. Изготовляемые по

этой технологии микросхемы имеют емкость 8 Мбита са организацией

1 Мбит x 8 и время цикла чтения 85 нс. Длительность цикла записи

байта составляет 9 мкс, длительность цикла стирания - 10 мс, дли-

тельность автоматического стирания блок в 64 Кбайт составляет

1,5 с. Микросхемы этого типа применяются для создания электронных

дисков переносных и карманных персональных компьютеров.


ВТОРОЙ СЕМЕСТР

ЛЕКЦИЯ N 4

 ПРИНЦИПЫ ОРГАНИЗАЦИИ СИСТЕМ ВВОДА-ВЫВОДА ЭВМ

Передача информации са периферийного устройства в ядро ЭВМ

называется операцией ввода, передача из ядра ЭВМ в периферийное

устройство - операцией вывода.

Связь устройств ЭВМ друг с другом осуществляется са помощью

средств сопряжения - интерфейсов.

Интерфейса представляета собой совокупность линийа и шин,

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

осуществления обмена информацией между стройствами. От характе-

ристик интерфейсова во многом зависят производительность и надеж-

ность вычислительной машины.

При разработке систем ввода-вывода должны быть решены следу-

ющие проблемы:

1) Должн быть обеспечен возможность реализации машина с

переменным составом оборудования.

2) Для эффективного использования оборудования ЭВМ должны

реализовываться параллельная во времениа работа процессора над

программой и выполнениеа периферийными стройствами процедур

ввода-вывода.

3) Необходимо стандартизировать программирование операций вво-

да-вывода для обеспечения их независимости от особенностей пери-

ферийного стройства.

4) Необходимо обеспечить автоматическое распознавание и реакцию

ядра ЭМа на многообразие ситуаций, возникающих в ПУ (готовность

устройства, различные неисправности и т.п.).

При конструировании ЭВМ широко применяются различные сред-

ства нификации.

Средств вычислительной техникиа проектируются н основе

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

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

из которых можно собирать ЭВМ в различных конфигурациях.

При обменеа межда Пу иа ЭМа используются нифицированные

форматы данных. Преобразование нифицированных форматов данных в

индивидуальные, приспособленные для отдельных ПУ, производится в

самих ПУ.

нификации также подвергаюта всеа компоненты интерфейса, а

также формат и набор команд процессора для операций ввода-вывода.

нификация распространяется на семейство моделей ЭВМ.

Для обеспечения параллельной работы процессора иа периферий-

ных стройств схемы правления вводом-выводом отделяют от процес-

сора.

Выполнение общиха функций возлагают на общие для групп пери-

ферийного оборудования нифицированные стройств -а контроллеры

прямого доступа к памяти, процессоры ввода-вывода.


- 2 -

ПРЯМОЙ ДОСТУП К ПАМЯТИ

В системах ввода-вывода ЭВМ используются два основных спосо-

ба организации передачиа данныха между памятьюа и периферийными

устройствами:а программно-управляемая передача и прямой доступ к

памяти.

Программно-управляемая передач данныха осуществляется при

непосредственном частии и пода правлениема процессора, который

при этом выполняет специальную подпрограмму процедуры ввода-выво-

да. Данные между памятью и периферийным стройствома пересылаются

через процессор. Операция ввода - вывод инициируется текущей

командойа программы или запросома прерывания ота периферийного

устройства. Приа этома процессор на все время выполнения операции

ввода-вывода отвлекается от выполнения основной программы.

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

для каждой единицы передаваемыха данных выполнять несколько

команд, чтобы обеспечить буферизацию, преобразование форматов

данных, подсчет количества переданных данных, формирование адре-

сов в памяти и т.п. Это сильно снижает скорость передачи данных

(не выше 100 Кб/сек), что недопустимо при работе с высокоскорост-

ными ПУ.

Между тем потенциально возможная скорость обмена данными при

вводе-выводе определяется пропускной способностью памяти. Для

быстрого ввода-вывода блоков данных используется прямой доступа к

памяти.

Прямым доступом к памяти называется способа обмен данными,

обеспечивающий независимую ота процессор передачу данных между

памятью и периферийным стройством.

Прямым доступома к памяти правляет контроллер ПДП, который

выполняет следующие функции:

1) управление инициируемой процессором или ПУ передачей данных

между ОП и ПУ;

2) задание размера блока данных, который подлежит передаче, и

области памяти, используемой при передаче;

3) формирование адресов ячеек ОП, частвующих в передаче;

4) подсчета числ переданныха единица данных (байт или слов) и

определение момента завершения операции ввода-вывода.

казанные функции реализуются контроллерома ППа са помощью

одного или несколькиха буферных регистров, регистра - счетчика

текущего адреса данныха и регистра-счетчик подлежащих передаче

данных.

При инициировании операции ввода-вывода в счетчик подлежащих

передаче данных заносится размер передаваемого блок (число байт

или слов), в счетчик текущего адреса - начальный адрес области

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

содержимое счетчика адреса величивается на 1, при этом формиру-

ется адреса очередной ячейки памяти, участвующей ва передаче.

Одновременно меньшается н 1а содержимоеа счетчик подлежащих


- 3 -

передаче данных; обнуление этого счетчика казывает на завершение

передачи.

Контроллера ППа обычно имеета более высокийа приоритета в

занятии цикл обращения к памятиа по сравнению с процессором.

Управление памятью переходит к контроллеру ПДП, как только завер-

шается цикл обращения к памяти для текущей команды процессора.

Прямой доступа к памяти обеспечивает высокую скорость обмена

данными за счет того, что правление обменома производится не

программными, аппаратными средствами.

ОСНОВНЫЕ ПРИНЦИПЫ ПОСТРОЕНИЯ СИСТЕМ ВВОДА-ВЫВОДА

Можно выделить дв характерныха принципа построения систем

ввода-вывода: ЭВМ с одним общим интерфейсом и ЭМа са множеством

интерфейсов и процессорами (каналами) ввода-вывода.

Структура с одним общим интерфейсом

Структур c однима общима интерфейсом предполагает наличие

общей шины, к которой подсоединяются все модули, в совокупности

образующие ЭВМ:а процессор, оперативная иа постоянная память и

периферийные стройства. В каждый данный момент через общую шину

может происходить обмен данными только между одной парой присое-

диненных к ней модулей. Таким образом, модули ЭВМ разделяют во

времени один общий интерфейс, причем процессор выступает как один

из модулей системы.

.

- 4 -

Общая шина

<═══════════════════════════════════════════════════════════════>

A A A A A A

│ а│ │ │ │ │

V V V V V V

┌──────┐ ┌────┐а ┌──┐ ┌──────┐ ┌───────────┐ ┌───────────┐

│ Про- │ │ │БУ│... Бу а │Контроер│...│Контроер│

│цессор│ │ ОП └──┘ └──────┘ │ ПДП │ ПДП │

│ │ │ │ A A A └───────────┘ └───────────┘

└──────┘ └────┘ │ │ │ A A A

V V V │ │ │

┌──┐а ┌──┐а ┌──┐ V V V

│ПУ │ПУ │ПУ│ ┌──┐ ┌──┐ ┌──┐

└──┘а └──┘а └──┘ │ПУ│ │ПУ│...│ПУ│

└──┘ └──┘ └──┘

Периферийные стройства подсоединяются к общей шине с помо-

щью блокова управления периферийными стройствами (контроллеров),

осуществляющих согласование форматова данныха периферийныха ст-

ройств с форматом, принятым для передачи по общей шине.

Если ва периферийнома стройстве операции ввода - вывода

производятся для отдельныха байта или слов, то используется

программно-управляемая передача данных череза процессор и под его

управлением. Конструкция контроллера при этом сильно прощается.

Для перифериийных устройства са поблочнойа передачей данных

(ЗУ на дисках, лентах и др.) применяется прямой доступ к памяти и

контроллеры ПДП.

При общема интерфейсеа аппаратур правления вводом-выводом

рассредоточена по отдельным модулям ЭВМ. Процессор приа этома не

полностью освобождается ота правления операциями ввода-вывода.

Более того, на все время операции передачи данных интерфейс ока-

зывается занятым, связь процессора с памятью блокированной.

Интерфейса c общей шиной применяется только ва малыха и

микро-ЭВМ, которые имеют короткое машинное слово, небольшой объем

периферийного оборудования и от которых не требуется высокой про-

изводительности.

Структура с каналами ввода-вывода

Структура системы са процессорамиа (каналами)а ввода-вывода

применяется в высокопроизводительных ЭВМ. Ва такиха ЭМа система

ввода-вывода строится путема централизации аппаратуры управления

вводом-выводом на основе применения программно-управляемыха про-

цессоров (каналов) ввода-вывода. Обмен информацией между памятью

и периферийным стройством осуществляется через канал ввода-выво-

да.

.

- 5 -

┌───────────────┐

│Основная память│

└───────────────┘

A

V Интерфейс основной памяти

<════════════════════════════════════════════════>

A A A

│ │ │

V │ │

┌─────────┐ │ │

│Процессор│ │ │

└─────────┘ │ │

A │ │

│ │ │

Vа Интерфейс процессор-каналы │ │

<══════════════════════════════════>а │ │

A A │ │

│ ┌─────────┼─────┘ │

V V V V

┌─────────────┐ ┌─────────────┐

│ Канал │... │ Канал │

│ввода-вывода │ │ввода-вывода │

└─────────────┘ └─────────────┘

A A

│ │

Интерфейс ввода-вывод V V

<══════════════════════════>

A A A

│ │

V V V

┌──┐ ┌──┐ ┌──┐

│БУ│ │БУ│ │БУ│

└──┘ └──┘ └──┘

A A A

│ │ │

V V V

┌──┐ ┌──┐ ┌──┐

│ПУ│ │ПУ│ │ПУ│

└──┘ └──┘ └──┘

Каналы ввода - вывод полностьюа освобождаюта процессор от

управления операциями ввода-вывода.

В вычислительной машине c каналами ввода-вывод форматы

передаваемых данных неоднородны, поэтому неоходимо использовать

в ЭВМ несколько специализированных интерфейсов.

Можно выделить 4 типа интерфейсов:а интерфейс основной памя-

ти, интерфейс процессор-каналы, интерфейсы ввода-вывода, интер-


- 6 -

фейсы периферийных стройств (малые интерфейсы).

Через интерфейса основной памяти производится обмен информа-

цией между памятью, с одной стороны, и процессором и каналами - с

другой.

Интерфейс процессор-каналы предназначается для передачиа ин-

формации между процессорами и каналами ввода-вывода.

Через интерфейс ввода-вывод происходита обмена информацией

между каналами и блоками правления периферийных устройств.

Интерфейс периферийного стройства служат для обмена данными

между периферийным стройством и его блоком управления. нифика-

ции малые интерфейсы не поддаются, так как ПУ весьма разнообразны

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

ОСНОВНЫЕ ПАРАМЕТРЫ ИНТЕРФЕЙСОВ

Интерфейсы характеризуются следующими параметрами:

1) Пропускная способность интерфейса - это количество информа-

ции, которое может быть передано через интерфейс в единицу време-

ни (имеет диапазон от десятков байт до сотен мегабайт).

2) Максимальная частота передачи информационных сигналов через

интерфейс (от десятков герц до сотен мегагерц).

3) Максимально допустимое расстояниеа между соединяемыми ст-

ройствами (имеет диапазон от десятков сантиметров до нескольких

километров при использовании оптоволоконных линий).

4) Динамические параметры интерфейса: время передачи отдельного

слов и блока данных с четом продолжительности процедур подго-

товки и завершения передачи. Эти параметры особенно важны для

систем реального времени.

5) Общее число линий (проводов) в интерфейсе.

6) Информационная ширина интерфейса - число бит данных, переда-

ваемых параллельно через интерфейс. Различныеа интерфейсы имеют

ширину 1, 8, 16, 32, 64, 128 или 256 бит.

7) Связность интерфейса:а интерфейса можета быть односвязным,

когда существует лишь единственный путь передачи информации между

парой стройств машины, и многосвязным, позволяющим устройствам

обмениваться информацией по нескольким независимым путям. Много-

связность интерфейсов требует дополнительной аппаратуры, но повы-

шает надежность и живучесть вычислительной машины, обеспечивает

возможность автоматической реконфигурации вычислительного комп-

лекса при выходе из строя отдельных стройств.


ВТОРОЙ СЕМЕСТР

ЛЕКЦИЯ N 5

 КАНАЛЫ ВВОДА-ВЫВОДА

Для того, чтобы операции ввода-вывода выполнялись параллель-

но с выполнением вычислений, необходимо освободить процессора от

управления операциями обмен информациейа между периферийными

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

ввода-вывода (каналы), правляемые канальными программами.

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

ввода-вывода, задать номера канал и периферийного стройства,

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

Канал должена обеспечивать прямой доступ к памяти, осущест-

влять буферизацию и преобразование форматова передаваемыха данных

для согласования работы оперативной памяти иа периферийного ст-

ройства. Поэтому в состав канала, кроме специального процессора и

ПЗУ программ, входита контроллер ПДП и буферное ОЗУ (реально все

эти компоненты могут быть раэмещены в одной микросхеме).

Для извещения процессора об окончании каждой операции ввода-

вывода, также о возникновении ошибок, канал формирует запросы

прерываний.

Кроме того, канал может выполнять ряд дополнительных функций

для минимизации частия процессора в операциях ввода-вывода:

1) Организация цепочки блокова данных:а если данные в памяти

состоят из нескольких массивов, произвольно размещенных в памяти,

то канал должен допускать задание цепочки блоков, чтобы не отвле-

кать основной процессор после передачи каждого блока.

2) Организация выборочного чтения информации: иногда необходимо

вводить с носителя информации отдельные части некоторого массива,

пропуская ненужные данные.

3) Организация цепочки операций:а иногд выгодно задавать не

отдельные операции ввода-вывода, сразу группу последовательных

операций.

4) Блокировк контроля неправильнойа длины считанного массива

бывает полезной при попытках извлечения хотя бы части информации

из искаженного массива данных.

ОСНОВНЫЕ ТИПЫ КАНАЛОВ ВВОДА-ВЫВОДА

Способ организации взаимодействия периферийного стройства

с каналом определяется соотношениема быстродействия оперативной

памяти и периферийного стройства. По этому признаку периферийные

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

щие (ЗУ на дискаха иа лентах) - со скоростью обмена информацией

100 Кбайт/с - 100 Мбайт/с, и медленнодействующие (перфоленточные

устройства, принтеры и т.п.) - со скоростью от десяткова байта до

десятков килобайт в секунду. Оперативная память может выдавать и

принимать данные со скоростью 1 - 100а Мбайт/са в зависимости от


- 2 -

типа микросхем памяти и архитектуры ОЗУ.

В зависимости от соотношения быстродействия памяти и перифе-

рийных стройств в каналаха ввода-вывод можета быть реализован

один из двух режимов работы - монопольный или мультиплексный.

Монопольный режим

После установления связи между каналом и периферийным ст-

ройством последнее занимает канал на все время, пока полностью не

завершится инициированная процессором канальная программа работы

с данным стройством и не будут произведены всеа предусмотренные

этой программойа передачи данных между памятью и стройством.

На все время выполнения данной канальной программы канал не-

доступен другим периферийным стройствам.

Канал, работающий в монопольном режиме, называюта  2селектор-

 2ным 0. Приа работе са селекторныма каналом периферийное стройство

после запуск операции остается связанным с каналом до ее завер-

шения. Запросы на обслуживание от других стройств и команды за-

пуска новых операций ввода-вывода от процессора в это время игно-

рируются.

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

ройствами ввода-вывода.

Мультиплексный режим (режим разделения времени)

В таком режиме несколько периферийных стройств разделяют во

времени канал ввода-вывода. При этом каждое из параллельно рабо-

тающих стройства связывается са каналома на короткие промежутки

времени только после того, как оно подготовлено к приему или вы-

даче очередной порции информации.

Промежуток времени, в течение которого происходита передача

информации междуа каналома и периферийным стройством называется

 2сеансом связи 0. Сеансы связи различных ПУ чередуются между собой.

Во время сеанс связи одного из стройств с каналом другие ст-

ройства могута выполнять работу, не требующую использования

средств канала.

Канал, осуществляющий мультиплексирование периферийных ст-

ройств, называют  2мультиплексным 0.

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

раллельно работающиха устройств, попеременно организуя са ними

сеансы связи для приема или передачи небольших порций информации

(от одного до нескольких сотен байт).

Мультиплексные каналы применяются приа работе с медленными

устройствами ввода-вывода: алфавитно-цифровыми дисплеями, принте-

рами, датчиками и рагуляторами телемеханических систем и т.п.

.

- 3 -

 МЕТОДЫ ПЕРЕДАЧИ ИНФОРМАЦИИ МЕЖДУ СТРОЙСТВАМИ ЭВМ

Используются два метода передачи дискретных сигналов:а синх-

ронный и асинхронный. При синхронном методе передающее устройство

устанавливает одно из двух возможнных состояний сигнала (0 или 1)

и поддерживает его в течение строго определенного интервал вре-

мени, послеа истечения которого состояние сигнала на передающей

стороне может быть изменено.

 Время передачи 0а сигнала, котороеа складывается иза времени

передачи сигнала по линии и времени распознавания иа фиксации

сигнала ва регистре приемного стройства, зависит от параметров

линии связи и характеристик приемного иа передающего стройств.

Период синхронной передачи информации должен превышать максималь-

ное время передачи сигнала. Он задается специальными тактовыми

импульсами, кака правило поступающими от тактового генератора с

кварцевым резонатором.

При асинхронной передаче передающее стройство станавливает

соответствующее передаваемому коду состояние сигнала н информа-

ционной линии, принимающее стройство после приема сигнала

информируета оба этома передающее стройство изменением состояния

сигнал н линии подтверждения приема. Передающееа устройство,

получив сигнал подтверждения, снимает передаваемый сигнал.

Обычно при передаче сигналов на короткие расстояния (десятки

сантиметров) более быстрым оказывается синхронный метод, при

передаче на большие расстояния - асинхронный.

При передаче параллельного кода по параллельным линиям сиг-

налы поступят в приемное стройство  2в разное время 0 из-за разброса

параметров цепей, формирующиха сигналы, и линий интерфейса (так

называемая проблема  2состязаний 0).

Используется  2дв метода 0а передачи параллельного код по

нескольким линиям:а со стробированием, использующима синхронную

передачу, и с квитированием, в котором используется асинхронная

передача.

При передаче со  2стробировением 0 кроме N информационныха линий

используется линия "готовность данных":а вначалеа устанавливаются

значения передаваемых сигналов на информационных линиях, затем на

линии готовности станавливается ровень 1. Через строго опреде-

ленный период времени (превышающий максимальное время передачи)

сигнал готовности сбрасывается в 0, процесс передачи завершается,

после чего можно изменить сигналы н информационныха линияха и

передавать следующую порцию данных.

При передаче с  2квитированием 0 кроме N информационных линий и

линии готовности данных используется линия подтверждения приема:

вначале станавливаются значения передаваемых сигналов н инфор-

мационныха линиях, затема н линии готовности станавливается

уровень 1. Приняв фронт сигнала готовности, приемное устройство

считывает сигналы с информационных линий иа посылает передатчику

сигнал подтверждения приема. Приняв фронта сигнал подтверждения


- 4 -

передатчик снимает сигнал готовности, после чего может приступать

к передаче новой порции данных.

 ЦИКЛ ШИНЫ МИКРОПРОЦЕССОРА 8086

Микропроцессора 8086а взаимодействуета c внешней средой ас

помощью 20-битной шины адреса/данных/состояния иа нескольких

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

выполнении одной из двух операций:а МП либо выводита (записывает)

данные, либо вводит (считывает) данные или команды. В каждой из

этих операций процессор должен казывать то стройство, с которым

он будет взаимодействовать;а другимиа словами, процессора должен

 2адресовать 0 ячейку памяти либо порт ввода или вывода.

Для передачи данных или выборки команды процессор инициирует

так называемый цикл шины (кроме процессора цикл шины могут иници-

ировать и другие стройства, например, процессор ввода-вывода или

рифметический сопроцессор).

 Цикл шины 0 представляет собой последовательность событий, в

течение которойа процессор выдает адрес ячейки памяти или перифе-

рийного стройства, а затем формирует сигнал записи или считыва-

ния, также выдает данные в операции записи. Выбранное стройс-

тво воспринимает данные с шины в цикле записи или помещает данные

на шину ва цикле считывания. По окончании цикла шины стройство

фиксирует записываемые данные или снимает считываемые данные.

Цикл шины состоита минимум из четырех тактов синхронизации,

называемых также состояниями T, которые идентифицируются спадаю-

щим фронтома сигнала синхронизации CLC. В первом такте (T1) про-

цессор выдает на шину адреса/данных/состояния адреса устройства,

которое будета источникома или получателема информации в текущем

цикле шины. Во втором такте (T2) процессор снимает адрес с шины и

либо переводита тристабильные буфера линий AD15-AD0 в высокоимпе-

дансное состояние, подготавливая их к выводу информации ва цикле

считывания, либо выдает на них данные в цикле записи.

Работа шинных формирователей разрешается в тактаха T1 или T2

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

информации. правляющие сигналы, инициирующие считывание, запись

или подтверждение прерываний, всегда выдаются в такте T2. В мак-

симальной конфигурации системы сигнал записи формируется ва такте

T3, чтобы гарантировать стабилизацию сигналов данных до начала

действия этого сигнала.

В такте T2 старшие четыре линии адреса/состояния переключа-

ются с режима выдачи адреса на режим выдачи состояния ST6 - ST3.

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

целей. Сигналы ST4 - ST3, например, идентифицируют сегментный

регистр, который частвует в формировании адреса памяти.

В течение такта T3 поцессор сохраняет на линияха ST6а -а ST3

информацию о состоянии. На шине ADа ва цикле записи сохраняются

выводимые данные, а в цикле считывания производится опрос вводи-


- 5 -

мых данных. Если память илиа периферийное стройство не может

работать синхронно с процессором, оно должно до начала такта T3

сформировать низкий ровень сигнала готовности RDY. Это заставля-

ет процессор ввести после такта T3 дополнительные такты, называе-

мые тактами ожидания Tw. Ва тактаха Twа на линиях шины действуют

такие же ровни сигналов, что и в такте T3. Когд адресованное

медленное стройство завершает операцию, оно формируета высокий

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

перейти к такту T4, которым заканчивается цикл шины. В этом такте

снимаются все правляющие сигналы и выбранное стройство отключа-

ется от шины.

Таким образом, цикл шины для памяти или периферийного ст-

ройства представляет собой асинхронное действие. Устройство может

управлять циклом шины только путем введения состояний ожидания.

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

ходимо осуществить запись или считывание информации. Еслиа циклы

шины не требуются, шинный интерфейс реализует холостые состояния

Ti, в течение которых процессор сохраняета н линияха ST6 - ST3

сигналы состояния от предидущего цикла шины.

Процессор выбирает во внутреннюю очередь до 6 байт командно-

го потока, поэтому между выборкой команды и относящимися к ней

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

команд.

Для правильного функционирования памяти и периферийныха ст-

ройств обычно требуется стабильный адрес течение всего цикла

шины. Поэтому адрес, выдаваемый на линии AD и A/Sа в такте T1,

необходимо запомнить в регистрах/защелках и использовать зафикси-

рованный адреса для выбора периферийного устройств или ячейки

памяти. Специально для демультиплексирования шины адреса/дан-

ных/состояния процессор формирует сигнала стробирования STB, по

которому производится запись адреса в регистры-защелки.

Шина адреса/дан-

ных/состояния ┌─────────┐

┌───────────┐ 20 │ │<══════>а Шина адреса

│ │<═══════/═══════>│Демульти-│ (20 разрядов)

│ │ │плексора │

│ Микропро- │ │ │<══════>а Шина данных

│цессор 8086│ └─────────┘ (16 разрядов)

│ │ A

│ │<═════════════════════╩════════════> Шина правления

└───────────┘

.

- 6 -

СИСТЕМНАЯ ШИНА ПЭВМ IBM PC

В персональном компьютере IBM PC имеется не одна, несколь-

ко шин. Основных шин всего три:а L-шина, S-шина и X-шина. Каждая

из этих шин в свою очередь состоит из шины адреса, шины данных и

шины правления.

L-шин S-шин X-шина

A A A ┌────────────┐

┌─────────┐ ║ ║ ║ │Периферийные│

│ Микро-а а ║ ┌─────┐ ║ ┌─────┐ ║ │ микросхемы │

│процессор│<=>║<=>│Буфер│<=>║<=>│Буфер│<=>║<=>│на системной│

└─────────┘ ║ └─────┘ ║ └─────┘ ║ а плате │

║ ║ ║ └────────────┘

V ║ V

║ M-шина

║ A

║ ║

║ ┌─────┐ ║ ┌───────────┐

║<=>│Буфер│<=>║<=>│Оперативная│

║ └─────┘ ║ память │

║ ║ └───────────┘

V V

Линии, идущие ота микропроцессора, образуют так называемую

L-шину. Входящая в состав L-шины адресная шина состоит из 20а ли-

ний ва IBM PC/XT (процессор 8088) и 24 линий в IBM PC/AT (процес-

сор 80286) и является однонаправленной. Шина данных состоит из 8

линий в IBM PC/XT, 16 линий в IBM PC/AT на базе процессоров 80286

и 80386sx и 32 линий в ЭВМ на базе процессора 80386DX. Она явля-

ется двунаправленной. Шина правления формируется сигналами, пос-

тупающими непосредственно от микропроцессора, сигналами от шинно-

го контроллера, а также сигналами, идущими к микропроцессору от

других микросхем и периферийных адаптеров.

Основной шиной, связывающей компьютер в единое целое являет-

ся S-шина. Именно она выведена на специальныеа разъемы-слоты, в

которые вставляются платы периферийных адаптеров. L-шина отделена

от S-шины специальными буферными регистрами, которыеа не только

повышают нагрузочную способность линий, но и разъединяют адресные

линии этих шин, когда осуществляется прямой доступ к памяти.

В режиме ППа адрес на S-шину выставляет контроллер ПДП и

страничные регистры, подключенные к X-шине, которая также через

буферные регистры соединена с системной S-шиной.

Таким образом, наличие трех шин позволяет выставлять адреса

на системную шину различным микросхемам.

Кроме этих трех шин в компьютере имеется M-шина, предназна-

ченная для отделения системной S-шины от оперативной памяти. Эта


- 7 -

шина включает шину правления, 16-разрядную шину данных и 10-раз-

рядную шину адреса. Передач адрес c системной шины на шину

памяти осуществляется через мультиплексоры:а сначала выставляется

10 младшиха разрядов адреса, затем 10 старших разрядов. Разряд-

ность адресной части шины памяти зависит ота тип ЭВМ:а ва самых

первых моделях она была равна 8, в последних превышает 10.


ВТОРОЙ СЕМЕСТР

ЛЕКЦИЯ N 6

 ПЕРИФЕРИЙНЫЕ СТРОЙСТВА ЭВМ

В состав современных ЭВМ входят многочисленные и разнообраз-

ные по выполняемым функциям, принципам действия и характеристикам

периферийные стройства, которые по назначению можно разделить на

две группы:

1) внешние запоминающие стройства, предназначенные для хра-

нения больших объемов информации;

2) стройства ввода-вывода, обеспечивающие связь машины с

внешней средой путем ввода и вывода информации из ЭВМ, ее регист-

рации и отображения.

Операции ввода и вывода определяются относительно ядра ЭВМ -

процессора и основной памяти.

Операцией ввода называется передача в ядро ЭВМ информации из

внешней среды (в том числе от пользователя), или из внешних запо-

минающих стройств.

Операцией вывода называется передача информации из ядра ЭВМ

во внешнюю среду или во внешние запоминающие стройства.

Общей характеристикой для всеха периферийныха стройств

является скорость, са которой стройство можета принимать или

передавать данные. Большинство периферийныха устройства имеет

электромеханические злы, скорость работы которыха значительно

ниже скорости работы электронных стройств ЭВМ. Скорости передачи

данных, с которыми работаюта различныеа периферийные стройства,

отличаются весьма значительно: от нескольких единиц до нескольких

миллионов байт/с.

Периферийные устройств различаюта по реализованному в них

синхронному или асинхронному режиму передачи данных. При синхрон-

ном режиме передач данныха производится ва определенном темпе,

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

например магнитной ленты. При асинхронном режиме передача данных

может происходить в свободном темпе са остановома после передачи

любого байта.

ОСНОВНЫЕ ХАРАКТЕРИСТИКИ ВНЕШНИХ ЗАПОМИНАЮЩИХ СТРОЙСТВ

Одной иза основныха характеристика Зу является общий объем

хранимой информации, или емкость ВЗУ, обычно измеряемая в байтах.

Из-за большого различия быстродействия оперативной памяти и

ВЗУ обращения к внешней памяти вызывают потери производительности

ЭВМ. Поэтому быстродействие Зу является показателем не менее

важным, чем его емкость.

.

- 2 -

Обращение к ВЗУ в общем случае предполагает последовательное

выполнение двух процессов:

1) доступа к ВЗУ - становки головок на часток носителя, с

которого требуется считать или на который нужно записать информа-

цию;

2) считывания и передачи информации из ВЗУ в оперативную па-

мять или передачи информации из памяти в ВЗУ и записи ее на носи-

тель.

Соответственно быстродействие ВЗУ определяется двумя показа-

телями: временем доступа и скоростью передачи информации. Разли-

чают среднее и максимальное время доступа.

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

носителей информации, н них нельзя записать иа са ниха нельзя

считать отдельный байт. Запись и считываниеа информации могут

производиться только группами байт строго определенного размера -

блоками.

Внешние ЗУ делятся на стройства с прямым и последовательным

доступом. В устройстваха с прямым доступом, к которым относятся

магнитные диски и барабаны, время доступа мало зависит от положе-

ния носителя относительно головки в момент обращения к ВЗУ, что

достигается циклическим движением носителя c большой скоростью

относительно головки.

В стройствах с последовательным доступома (ВЗУ на магнитных

лентах) для поиска нужного частка носителя требуется последова-

тельныйа просмотра записанной н носителе информации, для чего

может потребоваться несколько минут.

К важным характеристикама Зу также относятся достоверность

функционирования и относительная стоимость стройства.

Обычно достоверность работы ВЗУ оценивается числом правильно

воспроизводимых ва режиме записи-считывания двоичныха знаков на

один ошибочный знак.

Относительная стоимость ВЗУ определяется как отношение стои-

мости стройства к его емкости.

Плотность записи информации

Основные характеристики ВУа прямо зависята ота плотности

записи информации на носитель.

Поверхностная плотность записи информации является произ-

ведением продольнойа плотности записи н поперечную плотность

записи.

Продольная плотность записи равна числу бит, записываемых на

единицу длины дорожки (бит/мм, бит/см или бит/дюйм). Поперечная

плотность записиа равн числу дорожек, приходящихся на единицу

длины в направлении, перпендикулярном движениюа носителя (доро-

жек/мм, дорожек/сма или дорожек/дюйм). Поверхностная плотность

записи, таким образом, измеряется числом бит на квадратный милли-

метр, квадратный сантиметр или квадратный дюйм.


- 3 -

Допустимая продольная плотность записи зависита ота характе-

ристик магнитного носителя, зазор между носителем и головкой,

конструкции головки, способа записи информации и других факторов.

Увеличения поперечной плотностиа записи можно достигнуть

уменьшением ширины дорожки и расстояния между центрамиа дорожек.

Минимальная ширина дорожки ограничена технологическими трудностя-

ми изготовления головок. При меньшении расстояния между центрами

дорожека увеличиваются перекрестные электромагнитные наводки в

головках.

Наибольшую плотность дается получить при контактной записи,

когда магнитный носитель непосредственно соприкасается са голов-

кой. Такой способа работы применяется только ва устройствах с

магнитнымиа лентами и гибкимиа дисками, така кака трение между

магнитным носителем иа головкой, вызывая их износ, ограничивает

допустимую скорость движения носителя относительно головки.

Скорость перемещения носителя влияет на такие важные харак-

теристики ВЗУ, как время доступа и скорость передачи информации.

С величением этой скорости время доступа меньшается, а скорость

передачиа информации величивается. Ва устройстваха н жестких

дисках для увеличения линейной скорости движения носителя приме-

няется бесконтактная запись. Для обеспечения высокойа плотности

записи зазор между головками иа поверхностью диск должен быть

минимальным, однако этомуа препятствуюта механические неточности

изготовления дисков и температурные деформации.

Для уменьшения зазор используются различные аэродинами-

ческие эффекты, создающие между головкамиа и диском воздушную

подушку толщиной в несколько микрометров.

МЕТОДЫ ЗАПИСИ ИНФОРМАЦИИ НА МАГНИТНЫЙ НОСИТЕЛЬ

Характеристики методов записи:

1) относительная плотность записи;

2) помехоустойчивость метода;

3) способа синхронизации (с самосинхронизацией или с внешней

синхронизацией);

4) наличие или отсутствие потребности в стирании ранее запи-

санной информации перед записью новой информации.

Все реально используемые методы записи имеюта дв общих

свойства:

1) используются потенциальные сигналы, поступающие на голов-

ку записи;

2) не требуется предварительного стирания ранее записанной

информации.

.

- 4 -

Метод записи беза возврата к нулю

с переключением потока по единицам

При записи 1а ток в обмотке записи изменяет направление, и

носитель соответственно переходит из состояния насыщения одного

знака в состояние насыщения другого знака. При записи 0 направле-

ние тока в обмотке и состояние носителя не меняются. При считыва-

нии 1а ва обмотке головки индуцируются разнополярные импульсы,

при считыванииа 0а сигнал с дорожки не поступает. Поэтому для

распознавания информацииа при считывании необходимы синхросигналы

для каждого такта. Этот метод используется только ва устройствах

на магнитных лентах:а выделяется специальная дорожка, на которую

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

В последнема случае в каждом такте хотя бы с одной дорожки посту-

пает сигнала 1, чема достигается самосинхронизация считываемой

информации.

Метод записи с фазовой модуляцией

На границе каждого такта записи происходит смена направления

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

направлении при записи 0, и в противоположном при записи 1. Кроме

того логическая схема тракта записи анализирует значение следую-

щего записываемого двоичного знака:а если должен быть записан тот

же знак, что и в предыдущем такте, то в середине такта изменяется

направление тока записи в головке. При считывании 1 и 0 распозна-

ются по полярности импульса ЭДС в первом полутакте. По сравнению

с предыдущим, при использовании этого метода частота изменения

тока записи величивается в 2 раза, но за счет самосинхронизации

и более высокой помехозащищенности он обеспечивает большую плот-

ность записи. Этот устаревший метод использовался приа работе с

гибкими дисками.

Метод частотной модуляции (FM)

Ток записи изменяета направление н границе каждого такта

записи и, кроме того, посередине такта при записи 1. Таким обра-

зом, при записи 1 частота переключения тока вдвое больше, чем при

записи 0. При считывании 1 соответствует наличие импульса произ-

вольной полярности во втором полутакте, при считывании 0 - его

отсутствие. Этота метода является самосинхронизирующимся. Метод

частотной модуляцииа применялся ранее в некоторых ЗУ на жестких

дисках.

.

- 5 -

Метод записи с модифицированной частотной модуляцией (MFM)

Этот метод обеспечивает самосинхронизацию и болееа высокую

плотность записи, чем описанные ранее методы. Переключение тока в

головке приа записи 1а всегд происходит в начале такта записи,

при записи 0 - посередине такта, но только в том случае, если

следующий записываемый знак также 0. При считывании каждое изме-

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

импульс той или иной полярности. Этот импульса соответствуета 1,

если она совпадаета по времени с синхросигналом, и 0 в противном

случае.

Метод записи с групповым кодированием (RLL)

Для повышения информационной емкости диска необходимо мень-

шить отношение объема записываемой на диска синхронизирующей ин-

формации к объему полезной информации. Для методов FM и MFM это

соотношение составляет 1:1.

В методе записи с групповыма кодированиема вместо синхроим-

пульсова используется самосинхронизирующийся код, иа отношение

объема синхронизирующей информации к полезной составляет 1:4, что

позволяет примерно в 1,5 раза величить скорость передачи данных

и плотность записи информации на диск.

Принцип RLL следующий: каждый байт поступающих данных разде-

ляется на два полубайта, затем полубайты кодируются специальным

5-разрядным кодом, отличающимся тем, что при записи каждой из

кодовых комбинацийа происходита по крайнейа мере одн перемена

направления магнитного потока. При считывании каждые две а5-раз-

рядные кодовые комбинации переводятся обратно в двоичные полубай-

ты, объединяются и передаются в виде полного байта.

От 5-разрядного кода также требуется, чтобы в любой кодовой

комбинации было не более двух стоящих рядом 0, и чтобы в любой

комбинации 5-разрядных кодов также было не более двух стоящих ря-

дом 0. Из 32 кодовых комбинаций, возможных при 5-разрядном коде,

этим словиям довлетворяет 16. Они и приняты для кодирования по

методу RLL.

.

- 6 -

┌─────────────────────────┬────────────────────┐

│ Шестнадцатиричное число │ Кодовая группа RLL │

├─────────────────────────┼────────────────────┤

│ 0 │ 11001 │

│ 1 │ 11011 │

│ 2 │ 10010 │

│ 3 │ 10011 │

│ 4 │ 01 │

│ 5 │ 10101 │

│ 6 │ 10110 │

│ 7 │ 10 │

│ 8 │ 11010 │

│ 9 │ 01001 │

│ A │ 01010 │

│ B │ 01011 │

│ C │ 0 │

│ D │ 01101 │

│ E │ 00 │

│ F │ 0 │

└─────────────────────────┴────────────────────┘

ОСНОВНЫЕ ТИПЫ СТРОЙСТВ ВВОДА-ВЫВОДА ИНФОРМАЦИИ

стройство ввода позволяет вводить в машину данныеа и прог-

раммы. стройства вывода служат для вывода из ЭВМ результатов об-

работки данных, в том числе для их регистрации и отображения.

Типы стройств ввода информации:

1) Ручного ввода: клавиатура пульта правления.

2) Полуавтоматического ввода: клавиатура дисплея, ручной мани-

пулятор "мышь", световое перо, сканер, планшет, джойстик, строй-

ство ввода с перфолент, стройство ввода с магнитных носителей.

3) Автоматического ввода: читающие автоматы, речевые анализа-

торы, стройства ввода с каналов связи, аналого-цифровой преобра-

зователи, телетайпы.

Типы стройств вывода информации:

1) стройства фиксации н машинныха носителях:а перфораторы,

устройства записи на магнитные носители.

2) стройства регистрации: знакогенерирующие (АЦПУ)а и графи-

ческие (графопостроители).

3) стройства наглядного отображения: дисплеи и индикаторы.

4) стройства передачи: кодирующие стройства, цифро-аналого-

вые преобразователи, модемы, телетайпы.


ВТОРОЙ СЕМЕСТР

ЛЕКЦИЯ N 7

 ПЕЧАТАЮЩИЕ СТРОЙСТВА

В зависимости от порядка вывода информации на носитель запи-

си различаюта посимвольные, построчные и постраничные печатающие

устройства.

Посимвольные ПУ выводят информацию на носитель записи после-

довательно символа з символом, приа этома з один цикл печати

формируется один знак. Построчные ПУ формируют и выводят за один

цикл печати всю строку, постраничные - всю страницу.

По принципу формирования изображений символова н носителе

записи различают литерныеа и матричные (знакосинтезирующие) ПУ.

В литерных ПУ изображение формируется одновременно по всей по-

верхности символ при однократном воздействии печатающей головки

на носитель записи. В матричных ПУ изображение символов формиру-

ется иза отдельныха точек последовательно или последовательно-

параллельно при многократном воздействии на носитель записи.

В настоящее время знакосинтезирующие ПУ полностьюа вытеснили

литерные, так как они обеспечивают во много раз большую скорость

печати, позволяют практически неограниченно расширять номенклату-

ру используемых шрифтов, могут выводить не только алфавитно-циф-

ровую, но и графическую информацию, многоцветныеа и полутоновые

изображения.

Наиболее широко применяются ПУ, использующие ва качестве

носителя обычнуюа бумагу, так как это снижает накладные расходы,

но в ряде стройств применяют дарочувствительную, электростати-

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

По способу регистрации информации различаюта Пу дарного и

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

тивные и эксплуатационные характеристики ПУ.

ПУ ДАРНОГО ПРИНЦИПА ДЕЙСТВИЯ

При дарном принципе действия изображение на бумагеа получа-

ются механическима воздействием (ударом) печатающего элемента на

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

ется акраситель. В некоторых литерных стройствах использовалась

прямая печать, при которой краситель наносился непосредственно на

поверхность литеры и далее при даре переносился на бумагу. При

использовании дарочувствительной бумаги красящая лента также не

требуется.

Разработаны два класса ПУ дарного принципа действия: посим-

вольные и построчные. Построчные ПУ дарного действия практически

не применяются из-за сложности конструкции и высокой стоимости.

В настоящее время наиболее распространены посимвольные ПУ с

многоэлементными матричными печатающими головками, которые форми-

руют изображение знака в виде комбинации точек.


- 2 -

Каждый печатающий элемент головки представляет собойа тонкий

стержень, соединенныйа с автономным быстродействующим электропри-

водом (электромагнитным или пьезоэлектрическим). Печатающие эле-

менты располагаются ва одина илиа несколько рядов вдоль движения

носителя. При перемещении такой головки поперек движения носителя

и возбуждении определенных элементов образуются отдельные знаки и

вся печатаемая строка.

Достоинства матричныха ПУ дарного действия:а простота конс-

трукции, низкие накладные расходы, возможность печати на обычную

бумагу, возможность многоцветной печати.

Недостатки: высокий ровень шума, низкоеа качество печати,

сильно ограниченная цветовая гамма.

ПУ БЕЗУДАРНОГО ПРИНЦИПА ДЕЙСТВИЯ

Применяются три класс БУа -а посимвольные, построчные и

постраничные. Изображение в БПУ синтезируется из отдельных точек.

В Пу используется один из следующих способов регистрации:

электрографический, феррографический, электростатический, терми-

ческий и струйный. Достоинством БПУ является низкий ровень шума

и высокая скорость печати.

Электрографические БПУ

При электрографическом способе регистрации скрытоеа электри-

ческое изображениеа создается на промежуточном носителе записи с

фотопроводниковым слоем на поверхности и переносится на бумагу с

помощью тонера (мелкодисперсного красящего порошка). Затем изоб-

ражение закрепляется термическим способом. Для создания скрытого

электрического изображения на фотопроводниковый носитель воздейс-

твуют электромагнитным излучением, источником которого могут быть

лазеры, светодиоды, светоклапанные системы или электронно-лучевые

трубки.

Лазерные ПУ являются высокоскоростными, обеспечивают высокое

качество печати и позволяют использовать широкую цветовую гамму.

Развертка лазерного луча вдоль строки производится электромехани-

ческим путем с помощью вращающегося зеркального многогранника или

призмы.

Светодиодные и светоклапанные системы используются ва сред-

нескоростных ПУ. Светодиодные системы записи представляют собой

светодиодную линейку, излучение которой проецируется на промежу-

точный носитель записи. В светоклапанных системах электромагнит-

ное излучение, создаваемое лампой накаливания, проецируется на

промежуточный носитель записи через световые затворы, например,

магнитооптические или жидкокристаллические.

.

- 3 -

В качестве промежуточного носителя используются электрогра-

фические циллиндры (барабаны, покрытые фотопроводниковыма слоем)

или гибкая пластмассовая пленка, покрытая фотопроводниковым слоем

с металлическим подслоем.

Феррографические БПУ

Феррографические БПУ отличаются от злектрографических только

тем, что на промежуточном носителе создается скрытое магнитное, а

не электрическое изображение. Для этого в качестве промежуточного

носителя используюта магнитные барабаны или ленты, информация на

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

Используемый ва феррографическиха Пу тонер должен быть магнито-

чувствительным.

Электростатические БПУ

Электростатическая регистрация состоит ва создании скрытого

электрического изображения на диэлектрической поверхности основ-

ного или промежуточного носителя.

Наибольшее распространение получили электростатические БПУ

без промежуточного носителя. В низ запись ведется на специальную

электростатическую бумагу, рабочая поверхность которой имеет тон-

кий диэлектрический слой. Для записи на такую бумагу используются

одно- или многорядные записывающие головки, представляющие собой

блок тонких электродов, расположенных соответственно в одина или

несколько рядов. При подаче на электроды высоковольтных импульсов

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

жение. Затем бумага протягивается через зел проявления, в кото-

ром диспергированные в жидкой органической среде частицы красите-

ля визуализируют скрытое изображение.

Достоинством электростатических Пу является возможность

многоцветной печати.

Термические БПУ

Способ термопечати основан на двуха принципиально различных

схемаха -а с использованиема иа беза использования промежуточного

носителя. Для создания изображения н носитель информации воз-

действуют теплотой, выделяемой записывающей головкой, которая мо-

жет содержать до нескольких тысяч отдельных элементов.

В термопечатающиха БПУ без промежуточного носителя использу-

ется бумага, покрытая теплочувствительным веществом, которое при

нагреве изменяет цвет. Недостатком этих стройств являются низкое

качество печати, высокая стоимость термобумаги и ее чувствитель-

ность к температуре окружающей среды.

В БПУ с промежуточным носителем между термопечатающей голов-

кой и бумагойа размещаюта копировальную пленку:а пластмассовую


- 4 -

пленку толщиной 5-10 мкм, покрытую красящим слоем с низкой темпе-

ратурой плавления. При контакте бумаги с копировальной пленкой и

кратковременном прогревеа ее термопечатающей головкойа красящий

слой локально оплавляется и переходит на бумагу, создавая на ней

элемент изображения. Этот способ обеспечиваета высокое качество

печати, широкую гамму цветов, но при этом очень велики накладные

расходы.

Струйные БПУ

В настоящее время выпускаются только струйные Уа последова-

тельного действия (посимвольные или растровые).

В струйных ПУ печать производится с помощьюа мелкиха капелек

красителя, которыеа вылетаюта из сопла печатающей головки. Число

сопл в головке может достигать нескольких десятков.

Для генерации капель ва канале са чернилами, связанном с

выходными отверстиями сопл, возбуждают дарную волну, которая,

дойдя до отверстия сопла, выбрасывает каплю. Для создания ударной

волны используются дв способа:а возбуждение пьезоэлемент или

нагревание микрорезистора.

Струйные ПУ обеспечивают высокое качество и скорость печати,

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

ющие головки имеют ограниченный срок службы из-з засорения ка-

пилляров.

 УСТРОЙСТВА ВЫВОДА ГРАФИЧЕСКОЙ ИНФОРМАЦИИ

стройства вывод графической информации можно разделить на

три основных класса:

1) электромеханические графопостроители векторного типа;

2) растровые устройства вывода графической информации;

3) стройства вывода информации на микрофильм.

Графопостроители делятся на стройства с высокой, средней и

малой производительностью. Производительность электромеханических

графопостроителей определяется динамическими параметрами устройс-

тва: максимальной скоростью и скорением пишущего элемента.

По точности стройств делятся н прецизионные, средней

точности и малой точности.

По области применения:а автономные;а работающие ва составе

больших ЭМа и систем;а работающие ва составе рабочих станций и

ПЭВМ.

ВЕКТОРНЫЕ ГРАФОПОСТРОИТЕЛИ

По принципу действия электромеханические векторные графо-

построители делятся на стройства с неподвижным носителема инфор-

мации и стройства с перемещаемым носителем информации.


- 5 -

В стройствах первого типа носитель информации закреплена на

плоской рабочейа поверхности планшета. Перемещение пишущего эле-

мента осуществляется электромеханической координатной системой по

двум осям. Этот тип графопостроителей принято именовать планшет-

ными.

В устройстваха второго типа по одной координате перемещается

пишущий элемент, по второйа перемещается бумажный носитель.

Графопостроители этого типа называют барабанными.

В зависимости ота способ перемещения носителя барабанные

графопостроителиа делятся н стройства с перфорированным носи-

телем, ва которыха носитель перемещается транспортным валом за

краевуюа перфорацию, и стройств са фрикционныма перемещением

неперфорированного носителя, в которых перемещение носителя осу-

ществляется з счет частичного или полного микрозахвата носителя

транспортным валом с фрикционным покрытиема (т.е. захват носителя

осуществляется за счет трения о транспортный вал).

УСТРОЙСТВА ВЫВОДА ИНФОРМАЦИИ НА МИКРОФИЛЬМ

стройства вывода информации на микрофильм, по сравнению с

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

1) повышение скорости вывода алфавитно-цифровой информации в

20 раз, графической - в 100-200 раз;

2) повышение плотности записи и, соответственно, уменьшение

объема хранилищ информации;

3) скорение процесса копирования и экономию бумаги.

Недостатками этих стройств являются:

1) невозможность чтения микрофильма без специальной аппара-

туры;

2) высокий уровень начальных капитальных вложений;

3) потребность ва специальнома программнома обеспечении для

учета особенностей микрофильмирующих стройств;

4) для обработки и копирования микрофильмов нужн фотолабо-

ратория.

Методы вывода информации на микрофильм:

1) запись с экрана ЭЛТ;

2) непосредственная запись электронным лучом;

3) запись с помощью линейки светодиодов;

4) запись лазерным лучом.


ВТОРОЙ СЕМЕСТР

ЛЕКЦИЯ N 8

 ОСНОВНЫЕ ТИПЫ И ХАРАКТЕРИСТИКИ ДИСПЛЕЕВ

Основными техническими характеристиками дисплея являются:

- размер экрана по диагонали;

- емкость экрана;

- способ формирования изображения (растровый или векторный);

- способ формирования символов;

- частота регенерации изображения;

- зернистость монитора.

Как правило, дисплей состоита иза цветного или черно-белого

монитора, блока правления и клавиатуры.

По типу отображаемой информации дисплеи делятся на алфавит-

но-цифровые и графические.

Применяется три различных типа алфавитно-цифровых дисплеев:

1) дисплеи, способные отображать только алфавитно-цифровую

информацию;

2) дисплеи, способные отображать псевдографические символы;

3) интеллектуальные дисплеи, обладающие редакторскими воз-

можностями и осуществляющие предварительную обработку данных.

Графические дисплеи делятся на два типа: векторные и растро-

вые.

Векторные дисплеи предназначены для получения статическиха и

динамических изображений ограниченного объема в виде совокупности

точек, отрезков векторов и символов с высокой разрешающей способ-

ностью (свыше 2048x2048 точек). Изображение, как правило, являет-

ся черно-белым с несколькими градациями яркости.

Растровые дисплеи с режимом регенерации и матричныма растро-

вым способома получения графическиха образов на экране позволяют

получать черно-белые и цветные статические и динамические изобра-

жения. Их разрешающая способность достигает 1280x1024 точек.

Дисплеи без режима регенерации с запоминающимиа экранами на

ЭЛТ или плоских индикаторных панелях используются для отображения

статических образов большого объема. Они дают черно-белое изобра-

жение без градаций яркости иа имеюта разрешающую способность до

4096x4096 точек.

В настоящее время все IBM-совместимые персональные компьюте-

ры комплектуются графическими растровыми дисплеями с разрешающей

способностью от 640x350 до 1280x1024 точек и размером по диагона-

ли от 9 до 31 дюйма (в некоторых особых случаях в качестве допол-

нительного стройства может использоваться алфавитно-цифровой или

векторный дисплей). На наиболее дешевых моделях и на файл-серве-

рах станавливаются 14-дюймовые черно-белые (стоимостью около 100

$)а или цветныеа (стоимостью 200-250 $). Модели среднего класса

снабжаются 15-дюймовым монитором, снабженным защитой ота вредных

излучений (Low Radiation), соответствующей стандарту MPR II. На

графические станции станавливаются мониторы с размером по диаго-


- 2 -

нали 17 и более дюймов.

Контроллеры растровыха дисплеев обеспечивают палитру от 2 до

256 цветов, а наиболее современные модели - 2 516  0(65536)а и даже

2 524 0 (свышеа 16 миллионов) цветов. В графическом режиме дисплея в

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

которыма эт будет изображаться. Так что чем больше разрешающая

способность дисплея и чем больше может одновременно изображаться

цветова н экране, тем больший размер должна иметь видеопамять,

т.е. встроенное в контроллер монитора ОЗУ. Контроллеры, обеспечи-

вающие режима 640x480 точек с 16 цветами имеют 256 Кбайт памяти,

обеспечивающие режим 800x600 точек с 256 цветами и 1024x768 са 16

цветами - 512 Кбайт памяти, обеспечивающие режим 1024x768 с 256

цветами - 1 Мбайт.

На четкость изображения на экране монитора существенное вли-

яние оказывает размер точки (зерна)а экрана. Чема меньше размер

точки, тема более четкима получается изображение. На мониторах

стандартного размера (14 дюймов) при разрешении 640x480а довлет-

ворительное изображениеа получается при размере зерна 0,39 мм, а

хорошее - при зерне 0,31 мм. При разрешении 800x600 точек необхо-

димо зерно 0,31 мм, а для режима 1024x768 - 0,28 или 0,25 мм. На

мониторах с большим зерном изображение получается нечетким.

ОСОБЕННОСТИ РАСТРОВЫХ СТРОЙСТВ

Растровое устройство можно рассматривать как матрицу диск-

ретных ячеек (точек), каждая из которых можета быть подсвечена.

Таким образом, оно является точечно-рисующим стройством. Невоз-

можно, за исключением специальных случаев, непосредственно нари-

совать отрезока прямой из одной адресуемой точки (пиксела) в мат-

рице в другую адресуемую точку. Отрезок можно лишь аппроксимиро-

вать последовательностями точек, близко лежащих к реальной траек-

тории отрезка.

Отрезок прямой иза точек получится только в случае горизон-

тальных, вертикальных или расположенных под глом 45 градусов от-

резков. Все другие отрезки будут выглядеть как последовательности

ступенек. Это явление называется лестничныма эффектома (ступенча-

тостью изображения):

┌─┐

┌─┐ ┌─┐ │ │

├─┤ ┌─┼─┘ ┌─┼─┘

├─┤ ┌─┼─┘ │ │

├─┤ ┌─┼─┘ ┌───┐ │ │

├─┼─┼─┘ ┌───┼───┘ ┌─┼─┘

├─┼─┼─┬─┬─┬─┐ ┌───┼───┘ │ │

└─┴─┴─┴─┴─┴─┘ └───┘ └─┘

Чаще всего для графических стройств с растровой ЭЛТ исполь-

зуется буфер кадра. Буфер кадра представляет собой большой непре-


- 3 -

рывный частока памяти компьютера. Для каждой точки (пиксела) в

растре отводится как минимум один бит памяти. Эта память называ-

ется битовой плоскостью. Изображение в буфере кадра строится по-

битно. Из-за того что бита памяти имеета только дв состояния

(0 или 1), имея одну битовую плоскость, можно получить лишь чер-

но-белое изображение. Битовая плоскость является цифровыма ст-

ройством, тогда как растровая ЭЛТ - аналоговое устройство. Поэто-

му при считывании информации из буфера кадра и ее выводе н гра-

фическое стройство с растровой ЭЛТ должно происходить преобразо-

вание из цифрового представления в аналоговый сигнал. Такое пре-

образование выполняет цифро-аналоговый преобразователь (ЦАП).

Графическое устройство с черно-белой растровой ЭЛТ:

╔═══╤═══╤═══╤═══╗ ╔═══╤═══╤═══╤═══╗

║ а а ║ Триггер ║ а а ║

╟───┼───┼───┼───╢ ┌───┐ ┌─────┐ ╟───┼───┼───┼───╢

║ │ 1 ┼───┼───╫──────>│ 1 ├─────>│ ЦАП ├──────╫───┼>* а ║

╟───┼───┼───┼───╢ └───┘ └─────┘ ╟───┼───┼───┼───╢

║ а а ║ ║ а а ║

╟───┼───┼───┼───╢ ╟───┼───┼───┼───╢

║ а а ║ ║ а а ║

╚═══╧═══╧═══╧═══╝ ╚═══╧═══╧═══╧═══╝

Буфер кадр Растр ЭЛТ

Цвет или полутона серого цвета могут быть введены ва буфер

кадра путем использования дополнительных битовых плоскостей.

Схема буфера кадра с N битовыми плоскостями для градаций се-

рого цвета:

╔═══╤═══╤═══╤═══╗а N-разрядный

║ а а ║а регистр

╔═══╬═══╪═══╪═══╬───╢ ┌───┐ ╔═══╤═══╤═══╤═══╗

║ а а ║ 0 ╫──>│ 0 │ ║ а а ║

╔═══╬═══╪═══╪═══╬───╫───╢ ├───┤ ┌─────┐ ╟───┼───┼───┼───╢

║ а а ║ 1 ╫───╫──>│ 1 ╞═══>│ ЦАП ├─────╫───┼───┼───┼>* ║

╟───┼───┼───┼───╫───╫───╢ ├───┤ └─────┘ ╟───┼───┼───┼───╢

║ а │ 0 ╫───╫───╫──>│ 0 │ ║ а а ║

╟───┼───┼───┼───╫───╬═══╝ └───┘ ╟───┼───┼───┼───╢

║ а а ║ ║ ║ а а ║

╟───┼───┼───┼───╬═══╝ ╚═══╧═══╧═══╧═══╝

║ а а ║

╚═══╧═══╧═══╧═══╝ Растр ЭЛТ

Буфер кадра

Интенсивность каждого пиксела на ЭЛТ правляется содержимым

соответствующих пикселов в каждой из N битовых плоскостей. В со-

ответствующую позициюа регистр загружается двоичная величина из


- 4 -

каждой плоскости. Двоичное число, получившееся в результате, ин-

терпретируется кака уровень интенсивности между 0 и 2 5N 0-1. Всего

можно получить 2 5N 0 ровней интенсивности за счет величения необ-

ходимого объема памяти буфера кадра в N раз.

Число доступных ровней интенсивности можно величить, нез-

начительно расширив требуемую для этого память и воспользовавшись

 2таблицей цветов 0:

╔═╤═╤═╤═╗а N-разрядный

║ │ │ │ ║а регистр W=4

╔═╬═╪═╪═╬─╢ ┌───┐ ┌─┬─┬─┬─┐ ╔═══╤═══╤═══╤═══╗

║ │ │ │ ║0╫──>│ 0 │ │ │ │ │ │ ║ а а ║

╔═╬═╪═╪═╬─╫─╢ ├───┤ 2а ├─┼─┼─┼─┤ ┌─────┐а ╟───┼───┼───┼───╢

║ │ │ │ ║1╫─╫──>│ 1 ╞═╗а │ │ │ │ │ ╔══>│ ЦАП ├──╫───┼───┼───┼>* ║

╟─┼─┼─┼─╫─╫─╢ ├───┤ ║а ├─┼─┼─┼─┤ ║ └─────┘а ╟───┼───┼───┼───╢

║ │ │ │0╫─╫─╫──>│ 0 │ ╚═>│1│0│1│0╞═╝ ║ а а ║

╟─┼─┼─┼─╫─╬═╝ └───┘ ├─┼─┼─┼─┤ ╟───┼───┼───┼───╢

║ │ │ │ ║ ║ │ │ │ │ │ ║ а а ║

╟─┼─┼─┼─╬═╝ ├─┼─┼─┼─┤ ╚═══╧═══╧═══╧═══╝

║ │ │ │ ║ │ │ │ │ │

╚═╧═╧═╧═╝ ├─┼─┼─┼─┤ Растр ЭЛТ

│ │ │ │ │

Буфер кадр ├─┼─┼─┼─┤

│ │ │ │ │

├─┼─┼─┼─┤

│ │ │ │ │

└─┴─┴─┴─┘

Таблица

цветов

(2 5N 0 элементов)

После считывания из буфера кадра битовых плоскостей получив-

шееся число используется как индекс в таблице цветов. В этой таб-

лице содержится 2 5N 0 элементов. Каждый ее элемент может содержать W

бит, причем W>N, т.е. можно получить 2 5W 0 значений интенсивности,

но одновременно будут доступны только 5  02 5N 0 иза них. Для получения

дополнительных интенсивностей таблицуа цветова следуета изменить

(перезагрузить).

Поскольку существует три основных цвета, можно реализовать

простой цветной буфер кадра с тремя битовыми плоскостями, по од-

ной для каждого из основных цветов. Каждая битовая плоскость бу-

дет правлять индивидуальной электронной пушкой для каждого из

трех основных цветов, используемых в видеотехнике (красный, зеле-

.

- 5 -

ный, синий). Три основных цвета, комбинируясь на ЭЛТ, дают 8 цве-

тов:

┌───────────┬─────────┬─────────┬───────┐

│ │ Красный │ Зеленый │ Синий │

├───────────┼─────────┼─────────┼───────┤

│ Черный │ 0 │ 0 0 │

│ Красный │ 1 │ 0 0 │

│ Зеленый │ 0 │ 1 0 │

│ Синий │ 0 │ 0 1 │

│ Желтый │ 1 │ 1 0 │

│ Голубой │ 0 │ 1 1 │

│ Пурпурный │ 1 │ 0 а 1 │

│ Белый │ 1 │ 1 1 │

└───────────┴─────────┴─────────┴───────┘

Для каждой из трех цветовых пушек могута использоваться до-

полнительные битовые плоскости. Если используется по 8 плоскостей

на каждый цвет (буфер с 24 битовыми плоскостями), то каждая такая

группа может генерировать 256 оттенков красного, зеленого или си-

него цвета, и ва общей сложности можно получить 16216 = 2 524

цветов.

 ВИДЕОСИСТЕМЫ КОМПЬЮТЕРОВ СЕРИИ IBM AT

Из-за большого количества пикселов ва растровыха графических

устройствах трудно достичь производительности, необходимой для

работы в реальном времени, также приемлемой скорости регенера-

ции (смены кадра). Например, если среднее время доступа к каждому

индивидуальному пикселу равно 200 нс, то для доступа ко всем пик-

селам кадра размером 512 Х 512 потребуется 0,0524 с. Это эквива-

лентно скорости регенерации 19 кадров в секунду, что значительно

ниже минимально необходимой скорости 30 кадров в секунду. В буфе-

ре кадра размером 1024 Х 1024 более 1 млн. пикселов, и при сред-

нем времениа доступ 200 нс требуется 0,21 с для доступа ко всем

пикселам. Это составляет 5 кадров в секунду.

Буфер кадра 4096 Х 4096 содержит свыше 16 млн. пикселов. Для

достижения скорости регенерации 30 кадрова ва секунду при таком

растре требуется средняя эффективная скорость доступа 2 нс/пик-

сел.

Работа в реальном времени с растровыми графическими стройс-

твами осуществляется путем одновременного доступ к группама по

16, 32, 64 и более пикселов. В случае цветного буфера кадра пик-

сел может содержать до 32 бит, при этом все битовые плоскости для

каждого пиксела доступны одновременно.

Хотя производительности, необходимой для работы ва реальном

масштабе времени с приемлемыми скоростями регенерации, на растро-

вых стройствах достичь труднее, чем на векторных дисплеях с ре-


- 6 -

генерацией, н ниха легче изображать сплошные фигуры с плавными

переходами цветов.

ВИДЕОКОНТРОЛЛЕРЫ EGA, VGA И SVGA

Видеоконтроллеры IBM AT и совместимых с ними машин могут ра-

ботать в двух режимах - текстовом и графическом. В связи с тем,

что стандартные процедуры BIOS, предназначенные для вывода на эк-

ран текста и графики, выполняются медленно (вследствие допущенных

на начальном этапе разработки операционной системы MS DOSа ошибок

и просчетов), на практике применяются только процедуры переключе-

ния видеорежимов и процедуры правления цветовойа палитрой. Все

остальные операции выполняются путем прямого взаимодействия с ап-

паратурой видеодаптеров. Реализовать переключение видеорежима

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

участвуют некоторые регитры, для которых нет универсального обще-

го стандарта (т.е. для контроллеров разных фирм требуется загруз-

ка в эти регистры различных значений).

Программирование видеодаптеров сложняется тем, что при их

разработке широко использовались методы "экономии адресного про-

странства": один и тот же регистр может выполнять различные функ-

ции ва зависимостиа от состояния правляющих регистров адаптера,

и выполняемой над регистрома операцииа (запись или считывание ин-

формации).

При работе в текстовых режимах контроллеры EGA, VGA И SVGA

мониторов отображают на видеопамять область адресного пространс-

тва B8h-Bh. Начало этой области соответствует левому верх-

нему глу экрана. Каждому символу соответствует два байта памяти:

младший байт кодирует вид символа, старший байт - цвет символа

и цвет фона, на котором будет отображен символ.

Старший байт (код цвета):

┌───┬───┬───┬───┬───┬───┬───┬───┐

│ 7 │ 6 5 4 │ 3 │ 2 1 0 │

└───┴───┴───┴───┴───┴───┴───┴───┘

│ └─────┬─────┘ │ └─────┬─────┘

а Цвет фон Цвет символа

│ │

Мерцание Яркость

.

- 7 -

Видеопамять в текстовом режиме имеет следующую структуру:

Символ 0 Символ 1 Символ N

┌─────┴─────┐ ┌─────┴─────┐ ┌─────┴─────┐

┌──────┬──────┬──────┬──────┬── ─ ─ ─ ──┬──────┬──────┐

B8h │ кода │ цвет │ кода │ цвет │ │ кода │ цвет │

├──────┼──────┼──────┼──────┼── ─ ─ ─ ──┼──────┼──────┤

B8h+2N │ │ │ │ │ │ │ │

├──────┼──────┼──────┼──────┼── ─ ─ ─ ──┼──────┼──────┤

B8h+4N │ │ │ │ │ │ │ │

├──────┼──────┼──────┼──────┼── ─ ─ ─ ──┼──────┼──────┤

где N - длина строки в символах (40, 80, 128, 132).

Стандартные цветовые атрибуты:

┌─────────────┬────────────────────┬─────────────────────┐

Код цвет Стандартный цвета Цвет с повышенной │

│ │ а интенсивностью │

├─────────────┼────────────────────┼─────────────────────┤

Черный Темно-серый │

│ 001 Синий Светло-синий │

│ 010 Зеленый Светло-зеленый │

│ 011 Морской волны Голубой │

│ 100 Красный Светло-красный │

│ 101 Фиолетовый Малиновый │

│ 110 Коричневый Желтый │

│ Светло-серый Ярко-белый │

└─────────────┴────────────────────┴─────────────────────┘


ВТОРОЙ СЕМЕСТР

ЛЕКЦИЯ N 9

РАБОТА ВИДЕОКОНТРОЛЛЕРОВ EGA И VGA

В ГРАФИЧЕСКИХ РЕЖИМАХ

Графические режимы контроллеров EGA, VGA и SVGA можно разде-

лить на 2 основные группы:а режимы с 16 цветами и режимы са 256

цветами. Эти две группы сильно отличаются друг от друга по орга-

низации видеопамяти.

 Видеорежимы с 16 цветами

Контроллер EGA работает в режимах са разрешениема 640х200а и

640х350 точек, контроллер VGA имеет дополнительный режим 640х480

точек, контроллеры SVGA часто могут также реализовывать режимы

800х600 и 1024х768 точек. К сожалению, видеопамять в этих режимах

имеет очень неудобнуюа и морально старевшуюа организацию, что

очень сильно замедляета вывода графики. Ва настоящее время эти

видеорежимы используются только для создания простыха статических

изображений (чертежей и диаграмм).

В режимах с 16 цветами память разделена на 4 видеоплоскости:

по одной на каждый из основных цветов и одна плоскость служит для

кодирования яркости. Байт данных в видеоплоскости кодирует инфор-

мацию для восьми расположенных рядом по горизонтали точек (пиксе-

лов).

прощенная схема прохождения данных через графическиеа конт-

роллеры EGA и VGA в графических режимах с 16 отображаемыми цвета-

ми (цепи становки/сброса не показаны):

.

- 2 -

Битовая

┌─────┐а маска

┌────────────────>│ │ ┌┐ ┌─────────┐

а ┌┐ │ АЛУ ├───>││ │Плоскость│

│┌─>│├────────┬──>│ │ ││ │ 3 │

│ └┘Защелка а └─────┘ │├──────>│ │

││ │ ││ │ │

││ └─────────────>││ │ │

││ └┘ │ │

Сдвигающий│└────────────────────────────────────┤ │

регистр │ ┌─────┐ │ │

┌─┐а ├────────────────>│ │ ┌┐ ┌┴────────┐│

│ ┌┐ │ АЛУ ├───>││ │Плоскость├┘

Байты │ │┌─>│├────────┬──>│ а│ ││ │ 2 │

данных ота │ │ └┘Защелка └─────┘ │├─────>│ │

процессора │ ││ │ ││ │ │

══════════>│ ├──┤│ └─────────────>││ │ │

│ ││ └┘ │ │

│ │└───────────────────────────────────┤ │

│ │ ┌─────┐ │ │

└─┘а ├────────────────>│ │ ┌┐ ┌┴────────┐│

а ┌┐ │ АЛУ ├───>││ │Плоскость├┘

│┌─>│├────────┬──>│ │ ││ │ 1 │

│ └┘Защелка а └─────┘ │├────>│ │

││ │ ││ │ │

││ └─────────────>││ │ │

││ └┘ │ │

│└──────────────────────────────────┤ │

│ ┌─────┐ │ │

└────────────────>│ │ ┌┐ ┌┴────────┐│

┌┐ │ АЛУ ├───>││ │Плоскость├┘

┌─>│├────────┬──>│ │ ││ │ 0 │

└┘Защелка а └─────┘ │├───>│ │

│ │ ││ │ │

│ └─────────────>││ │ │

│ └┘ │ │

└─────────────────────────────────┤ │

│ │

└─────────┘

 Сдвигающий регистр 0а служита в основном в качестве буфера для

хранения байта данных, поступившего от процессора. Операция сдви-

га данных используется крайне редко, так как значительно добнее

выполнять ее в процессоре.

 Регистры-защелки 0 служат для временного хранения старого со-

держимого 4-ха байтов с одинаковыми адресами из 4-х видеоплоскос-

тей: часто необходимо изменять только некоторые из 8 точек, опи-


- 3 -

сываемых этими байтами данных, остальная информация должна ос-

таваться неизменной. Чтобы в защелках сохранилось старое значение

данных, перед операцией записи в видеопамять должна быть выполне-

на операция чтения из видеопамяти по тому же адресу.

Для определения того, какие точки должны быть изменены, а

какие - сохранены, используется  2регистр битовой маски 0. Бит ре-

гистра битовой маски определяет, будет ли записана в соответству-

ющий бит видеопамяти информация из АЛУ или регистра-защелки:

┌────────┐ ┌─────────┐

│ Бит из │ │ Бит иза │

АЛУ │ │ защелки │

└────┬───┘ └────┬────┘

│ │

┌──────────┐ │ 1 0 │

│ Бит из │ └─────── ──────┘

│ регистра ├──────────────>\

│ битовой │ │

│ маски │ │

└──────────┘ │

V

Видеопамять

 Арифметико-логическое стройство  0 позволяет выполнять опера-

ции И (AND), ИЛИ (OR) и ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) над содержимым ре-

гистра-защелки и поступившим от процессора байтом. Это прозволяло

создавать примитивные анимационные эффекты, однако ва настоящее

время такие приемы практически не применяются.

Недостатком графических 16-цветных режимов является необхо-

димость интенсивнойа работы с большим числом рагистров при выводе

в видеопамять текстов и графики. На одну операцию вывода в видео-

память приходится одна операция чтения из видеопамяти и одна-две

операции записи в регистры, что замедляет работу с видеопамятью в

десятки раз (из-за конструктивных особенностей контроллеров EGA и

VGA обращение к регистру выполняется в несколько раза медленнее,

чем обращение к видеопамяти).

 Рассмотрим наиболее часто используемые регистры:

 2"Первый регистр входного состояния"  0 (Input Status аRegister

One) расположен по адресу 3DAh. Бит 3 в этом регистре станавли-

вается в 1 в течение обратного хода луча по кадру. При выполнении

различных видеоэффектова тип прокрутки изображения или перезаг-

рузки палитры используемых цветов, также при создании движущих-

ся изображенийа состояние этого регистр приходится постоянно

контролировать, так как в некоторые регистры контроллера разреша-

ется записывать данные только в течение обратного хода луча.


- 4 -

 2"Регистра адрес указателя последовательности" 0а (Sequenser

Address Register), расположенный по адресуа 3C4h, определяет,

какой из 5 регистров, ассоциированных с портом 3C5h, будет досту-

пен для операций ввода-вывода.

Чтобы получить доступ ака  Регистру маскирования растра 0 (Map

Mask Register), необходимо записать по адресу 3C4h число 2. Каж-

дому из 4 младших битов регистра маскирования растра поставлена в

соответствие одна битовая матрица - запись 1 в любой из этиха би-

тов делает соответствующую матрицу недоступной. Старшие 4 бита не

используются. Регистр маскирования растр позволяета копировать

сложные графическиеа изображения из ОЗУ ЭВМ в видеопамять пооче-

редно для каждой видеоплоскости, что позволяет выводить на экран

заранее созданные и записанные на диск картинки-слайды.

Регистр 3D4hа определяет, какойа иза регистрова контроллера

электронно-лучевой трубки будет доступен для чтения-записи инфор-

мации через регистр 3D5h.

Так, для доступа череза порта 3D5hа к  2"Регистру начального

 2старшего адреса" 0а (Start Address High Register) необходимо запи-

сать в порт 3D4h число 0Ch, для доступа к  2"Регистру начального

 2младшего адреса" 0 (Start Address Low Register) - число 0Dh. В эти

регистры записывается адрес ячейки памяти первого отображаемого

на экране монитора символа или пикселя. Оба регистра доступны для

чтения и записи и используются для плавной вертикальной и грубой

горизонтальной  2"прокрутки" 0 изображения на экране и для переключе-

ния видеостраниц.

Для доступа к регистру  2"Смещение" 0 (Offset Register), который

определяет объем видеопамяти, выделенной для хранения одной стро-

ки видеоизображения, необходимо загрузить в регистр 3D4h код 13h.

Этот регистр предназначен для поддержки режима плавной прокрутки

изображения на экране - длина строки, благодаря этому регистру,

может быть значительно больше высвечиваемой ее части.

Регистр  2"Адреса графики" 0 расположен по адресу 3CFh и опреде-

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

Регистр  2"Установка/сброс" 0а с индексом 0 может быть использо-

ван для выбора битовых матриц в режиме постоянного сброса или с-

тановки. Для определении битовой матрицы как "установленной" в

соответствующий бит записывается 1. Если бит становлен в 0, то

соответствующая матриц находится в режиме сброса. (Содержимое

этого регистра имеет значение только в режиме записи 0).

Регистр  2"Разрешениеа установки/сброса"  0 (индекс 1) разрешает

(при 1 в соответствующем бите) или запрещает (при 0) режима ста-

новки/сброса для каждой из 4 битовых матриц.

Регистр  2"Циклический сдвиг данных" 0 с индексом 3 обеспечивает

сдвиг данныха на заданное число позиций вправо перед записью их в

ячейку памяти, также позволяет осуществлять, вместо простой за-


- 5 -

писи информации в память, операции И, ИЛИ, и исключающее ИЛИ над

содержимым ячейки памяти и передаваемыми из процессора данными.

Регистр  2"Выбора считываемой матрицы" 0 с индексом 4 определяет

номер считываемой битовой плоскости в режиме чтения 0. Номер би-

товой плоскости кодируется в младших двух битах регитра, стар-

шие 6 бит не используются.

Регистр  2"Режим" 0 имеет индекс 5.

Биты 0 и 1 этого регистра определяют режим записи:

- в режиме 0 данные, помещаемые в память адаптера, записыва-

ются в каждую разрешенную матрицу;

- в режиме 1 в память заносится без изменения содержимое ре-

гистров-защелок (этот режим предназначен для копирования информа-

ции с одного места видеопамяти в другое);

- в режиме 2 регистр битовой маски применяется для запреще-

ния или разрешения становки отдельных пикселей в заданный цвет;

- в режиме 3 выполняется операция И над содержимыма регистра

установки/сброса и битовой маской, результат заносится в видео-

память.

Бит 3 определяет режим считывания данных из видеопамяти. При

0 в этом бите процессор прочитает байта иза видеплоскости, номер

которой задана ва регистре "выбор считываемой матрицы". При 1 в

этом бите в считанном процессором байте ва 1а будута становлены

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

указанному в регистре  2"Сравнение цвета" 0.

Регистр  2"Смешанныеа данные" 0 с индексом 6 правляет типом ре-

жима: текстовый или графический", такжеа определяета начальный

дрес видеопамяти. Регистр  2"Цвет безразличен" 0 с индексом 7 позво-

ляет игнорировать становленные ва регистре "Сравнение цветов"

значения для заданных видеоплоскостей. Регистр "Битовой маски" с

индексом 8 разрешает (при 1 в соответствующем бите) или запрещает

(при 0) модификацию определенных битов в байте видеопамяти, к ко-

торому обращается процессор.

Порт 3C0h использует иной метод экономии пространств адре-

сов. Переда обращением к этому порту неоходимо выполнить операцию

считывания из порта 3DAh. Затем в порт 3C0h заносится индекс тре-

буемого порта, а при следующем обращении к порту 3C0h будет про-

изведена запись в выбранный регистр. Так, для обращения к регист-

ру  2"Горизонтальное поэлементное панарамирование" 0 необходимо вна-

чале задать индекса 13h. Регистра поэлементного панарамирования

используется для  2плавной прокрутки 0 изображения  2по горизонтали 0 в

16-цветных графических режимай, когда каждому байту битовой плос-

кости соответствует 8 пикселов на экране (и изменение одних толь-

ко регистров начального адреса приводило бы к скачку сразу н 8

пикселей).


ВТОРОЙ СЕМЕСТР

ЛЕКЦИЯ N 14

 МИКРОПРОЦЕССОРЫ СЕРИИ iX86 ФИРМЫ INTEL

Выбор в программе на Ассемблере типа процессора

По молчаниюа Турбо Ассемблера ассемблирует кода только для

процессора 8086. Чтобы Турбо Ассемблер мога поддерживать другие

процессоры серии iAPx86, или сопроцессоры, вы должны казывать

соответствующие директивы. Следующие директивы сообщают Турбо Ас-

семблеру, какой тип процессора нужно поддерживать при ассемблиро-

вании кода:

.186.286C .287.386C.387.8087

.286.286P.386 .386P а.8086

Эти директивы можно казывать в любом месте исходного фай-

ла, после чего они сразу вступают в действие. В однома исходном

файле можно разместить несколько директив выбора типа процессора,

при этом текущим процессором считается процессор, выбранный по

последней казанной директиве.

Ва любойа момента можно казать директиву .8086, по которой

Турбо Ассемблер будет снова поддерживать только процессора 8086.

(Ва остальной части данной главы все ссылки на процессор 8086 от-

носятся в равной степени и к процессору 8088.)

 ПРОЦЕССОРЫ 80186 И 80188

Процессора 80186 (который является процессором серии iAPx86)

в основном аналогичен процессору 8086. Процессор 80186 поддержи-

вает все инструкции процессора 8086, также несколько новых инс-

трукций и расширенные формы некоторых инструкций процессора 8086.

Процессора 80188 обладает программной совместимостью са про-

цессорома 80186. Единственное отличиеа между ними заключается в

том, что процессор 80186 имеет 16-разрядную шину данных, а про-

цессор 80188 - 8-разрядную.

Поддержк Турбо Ассемблера для ассемблирования кода процес-

сора 80186 разрешается по директиве.186.

Далее мы рассмотрим новые и расширенные инструкцииа процес-

сор 80186. Перед началом рассмотрения отметим, что процессор

8086 не распознает ни одну из тех инструкций, которые мы будем

обсуждать. В итоге все программы, которые содержат хотя бы одну

инструкцию (новую или расширенную) процессора 80186, на процес-

соре 8086 работать не будут.

.

- 2 -

 Новые инструкции

Набора инструкций процессора 80186 содержита следующие новые

инструкции:

BOUND INS OUTS PUSHA

ENTER LEAVE POPA

Инструкции PUSHA и POPA

Инструкции PUSHA и POPA предоставляют эффективное средство,

с помощью которого можно заносить и извлекать из стека все восемь

общих регистров. Инструкций PUSHA заносит в стек восемь общих ре-

гистров в следующем порядке: AX, CX, DX, BX, SP, BP, SI, DI. POPA

извлекает регистры DI, SI, BP, BS, DX, CX и AX (то есть выполняет

действие, обратное действию инструкции PUSHA). Регистра SP инс-

трукцией POPA не извлекается, вместо этого SP увеличивается на 16

- длину блока регистров, занесенных в стек по инструкции PUSHA, а

значение SP, занесенное в стек по инструкции PUSHA, очищается ин-

струкцией POPA и отбрасывается. На сегментные регистры, флаги и

указатель инструкций PUSHA и POPA не влияют.

чтите, что инструкция PUSHA выполняется быстрее, чем восемь

отдельных инструкций PUSH, но медленнее, чем три или четыре инс-

трукции PUSH. Если вы хотите сохранить только несколько регист-

ров, то лучше сделать это с помощью инструкции PUSH. Такое же за-

мечание можно сделать относительно инструкций POPA и POP.

Инструкции ENTER и LEAVE

Инструкции ENTER и LEAVE используются для того, чтобы ста-

новить и отменить границы стека, в которых передаваемые параметры

и локальные динамические переменные доступны относительно BP. Эти

инструкции особенно полезны при организации интерфейса Ассемблера

с языками, ориентированными на работу со стеком (например, Си).

Инструкция ENTER сохраняет регистр BP вызывающей программы,

устанавливает его таким образом, чтобы он казывал на начало пе-

редаваемыха параметров (если они имеются) в новых границах стека,

устанавливает, как это необходимо, SP для выделения пространства

для локальных переменных, и даже копирует блок казателей на гра-

ницы стека языка высокого ровня в новые границы стек (если это

необходимо).

Инструкция LEAVE имеет действие, обратное инструкции ENTER,

и восстанавливает BP и SP в то состояние, которое они имели перед

выполнением соответствующей инструкции ENTER.

.

- 3 -

SampleFunctionа PROC

enter 10,1

.

.

.

leave

ret

SampleFunctionа ENDP

Первый операнд инструкции ENTER представляет собой 16-бито-

вое промежуточное значение, задающее число байтов, азарезервиро-

ванныха для локальныха переменных в новой границе стека. Второй

операнд инструкции ENTER - это 8-битовое промежуточное значение,

задающее ровень вложенности функции, для которой должна созда-

ваться новая граница стека. Этот операнд задает, сколько раз нуж-

но скопировать казатели границы стека из границ стека вызывающе-

го кода в новые границы стека.

Инструкция BOUND

Директиве BOUND проверяет, что 16-битовое значение находит-

ся в диапазоне со знаком, заданном двумя смежными словами памяти,

при этом верхняя граница записана по адресу, расположенному не-

посредственно над нижней границей. Обе границы интерпретируются,

как значения со знаком, поэтому можно задать максимальный диапа-

зона ота -32768 до +32767 включительно. Значения, совпадающие с

нижней или верхней границей, рассматриваются, как принадлежащие

заданному диапазону.

Инструкция BOUNDа используется обычно для того, чтобы пре-

дотвратить выход за границы массива. Если BX не находится ва за-

данном диапазоне, то генерируется прерывание INT 5.

Первый операнда инструкции BOUND представляет собой 16-раз-

рядный регистр общего назначения, содержащий проверяемое значе-

ние. Второй операнд инструкции BOUND - это двойное слово, содер-

жащее диапазон. Это двойное слово содержита 16-битовую нижнюю

границу в младшем слове и 16-битовую верхнюю границу со знаком в

качестве старшего слова.

Инструкции INS и OUTS

Инструкции INSа иа OUTSа обеспечиваюта эффективную передачу

данных между портами ввода-вывода и памятью.

Инструкция INSа перемещает один или более байтов (или слов)

из порта ввода-вывода, на который казывает регистр DX, в массив

в памяти, на который казывают ES:DI, величивая DI на 1 (или на

2)а после того, кака каждый байт (или слово) будет передан (или

уменьшая SI, если становлен флаг направления).

Инструкция OUTS перемещает один или более байтов (или слов)


- 4 -

из массива в памяти, на который казывают DS:SI, в порт ввода-вы-

вода, на который казывает регистр DX, величивая SI на 1 (или 2)

после пересылки каждого байта (или слова)а либо уменьшая регистр

SI, если становлен флаг направления.

 Расширенные версии инструкций процессора 8086

Ва наборе инструкций процессора 80186 имеются следующие рас-

ширенные версии инструкций процессора 8086:

IMUL ROL SAR

PUSH ROR SHL

RCL SAL SHR

RCR

Занесение в стек промежуточных значений

В то время как процессора 8086 может заносить ва стек только

регистровые операнды или операнды в памяти, процессор 80186 может

заносить в него также и промежуточные значения:

push 19

Сдвиги и циклические сдвиги c непосредственными значениями

В то время как процессора 8086 может можета только выполнять

сдвиг или циклический сдвиг на 1 бит или на число битов, заданное

в CL, процессор 80186 может выполнять сдвиг или циклический сдвиг

на значение-константу:

ror ax,3

shl dl,7

Умножение на непосредственное значение

Процессора 8086а можета множать только 8- или 16-разрядный

регистр или операнд в памяти на AL или AX, размещая результата в

AXа или DX:AX. В процессоре 80186 предусмотрены две новые формы

умножения, которые используются, когда 16-разрядное умножение бу-

дет размещаться в 16 битах.

Одна иза новыха форма множения перемножает 16-разрядный ре-

гистр и 16-разрядное непосредственное значение, результат сох-

раняет обратно в 16-разрядном регистре. Например, следующая инс-

трукция множает DX на 4, произведение записывает в DX:

imul dx,4


- 5 -

Первый операнд, который можета представлять собой любой

16-разрядный регистр общего назначения, является одновременно ис-

точником для одного из сомножителей и приемникома для произведе-

ния. Второй операнд, который должен представлять собой непосредс-

твенное 16-битовое значение, - это другой сомножитель.

Еще одна новая форма множения перемножает 16-разрядныйа ре-

гистра или операнд в памяти на 16-битовое непосредственное значе-

ние, и сохраняет результат в заданном 16-битовом регистре. Нап-

ример, следующая инструкция множаета DXа н 600hа и помещает

произведение в CX:

imul cx,dx,600h

Аналогично, следующая инструкция множает 16-разрядноеа зна-

чение в [BX+SI+1] на 3 и помещает произведение в AX.

imul ax,[bx+si+1],3

В данной формеа инструкции IMUL первый операнд представляет

собой приемник. Этот операнд может быть любым 16-разрядным общим

регистром. Второй операнд, который может задаваться любым 16-раз-

рядным общим регистром или ячейкой памяти, является источником

одного из сомножителей. Третий операнд, который должен задаваться

16-битовым непосредственным значением, - это другой сомножитель.

Первая иза новыха форма множения -а это в действительности

подмножество второй новой формы. Например, следующая инструкция:

imul si,10

это просто сокращенная форма инструкции:

imul si,si,10

Для обеих новых форм инструкции IMULа соответствующий шест-

надцатиричный код будет одинаковым. Тем не менее, добно иметь

возможность использовать более простую форму инструкцииа IMULа с

двумя операндами, когда один и тот же регистр используется и как

источник, и как приемник.

При любой из новых форм множения любая часть результата,

которая не помещается в 16 битов, теряется. Если теряются знача-

щие биты (предполагая, что результат должена представлять собой

значение со знаком), то станавливаются флаги переноса и перепол-

нения. В новых формах операции множения множениеа значений со

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

имеет длину только 16 битов, и младшие 16 битов произведения (по-

лученного в результате перемножения как значений со знаком, так и

беззнаковых значений) всегда совпадают. Следовательно, для обоз-

начения новых форм множения можно использовать только инструкцию

IMUL.


ВТОРОЙ СЕМЕСТР

ЛЕКЦИЯ N 15

 МИКРОПРОЦЕССОРЫ СЕРИИ iX86 ФИРМЫ INTEL

ПРОЦЕССОР 80286

Процессор 80286 был первым процессором серии iAPx86, который

позволил странить ограничение памяти в 1 мегабайт и который под-

держивал также защитуа памяти и виртуальнуюа память. Процессор

80286а поддерживаета все инструкции процессора 80186 и кроме того

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

управление памятью с развитой архитектурой.

Процессор 80286 имеет два режима операций:а реальный режим и

защищенный режим. Работа процессора 80286 в реальном режиме прак-

тически аналогична работе процессора 80286 (она обеспечиваета тот

же набор инструкций, что и процессор 80186).

Средства управления памятью ва процессоре 80286а доступны

только в защищенном режиме. И только в этом режиме можно одновре-

менно запустить на выполнение несколько неа оказывающиха влияние

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

которой превышает 1 мегабайт.

Для работы в защищенном режиме в процессоре 80286 использу-

ются следующие инструкции:

CLTS LIDT LMSW

LGDT LLDT LTR

Эти инструкции процессора 80286 предназначены только для ис-

пользования операционной системой. В прикладныха программаха нет

необходимости (и возможности) использовать инструкции защищенного

режима.

В процессоре 80286 введены введены два дополнительных состо-

яния в регистре флагов:а бит вложенной задачи и поле ввода-вывода

привилегированного ровня. Как и инструкции защищенного режима,

оба бита предназначены только для использования в системном прог-

раммном обеспечении, поэтому прикладные программисты не должны с

нимиа работать. Процессора 80286 имеет также несколько новых ре-

гистров, с которыми можно работать только c помощью инструкций

защищенного режима. Это регистр задачи, регистр слова состояния

машины и регистр таблицы глобальных дескрипторов.

В Турбо Ассемблере разрешить ассемблирование с использовани-

ема инструкций процессора 80286 (незащищенный режим) можно с по-

мощью директивы.286. Поддержк инструкций защищенного режима

процессора 80286 разрешается по директиве.28Р.

.

- 2 -

ПРОЦЕССОР 80386

Процессор 80386 обеспечивает новые и расширенные инструкции,

расширенный набор 32-разрядных регистров, линейные сегменты раз-

мером до 4 гигабайт и возможность эмулировать одновременную рабо-

ту нескольких процессорова 8086, быстрые сдвигиа и циклические

сдвиги, страничную память.

Как и процессор 80286, процессор 80386 имеет два тип инс-

трукций - привилегированные и непривилегированные. Непривилегиро-

ванные инструкции может выполнять любая программа. Однако приви-

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

выполняющаяся на текущем ровне привилегий 0 (наиболее привилеги-

рованный ровень). Привилегированные инструкции процессора 80386

представляют собой расширение множеств привилегированныха инс-

трукций процессора 80286 (инструкции защищенного режима) и также

предназначены только для использования операционной системой.

Поддержка непривилегированныха инструкций процессор 80386

разрешается по директиве.386. Директива.38Р разрешает поддерж-

ку привилегированных инструкций процессора 80386.

Новые типы сегментов

Возможность процессора 80386 поддерживать сегменты размером

6Ка (как в процессоре 80286) или линейные сегменты до 4 гигабайт

потребовала двух новых типов сегментов - USE16 и USE32.

При ссылке на сегмент размером 6К 16-разрядное смещение мо-

жет храниться либо в базовом или индексном регистре (BX, SI, DI

или BP), либо использоваться в качестве непосредственного смеще-

ния. В этом режиме работает процессор 80286 (и 8086). В процессо-

ре 80386 сегментам, имеющим максимальный размер 6К, дается тип

использования USE16.

Для ссылки на любую ячейку в 4 гигабайтовома сегменте нужно

использовать 32-разрядное смещение записанное в любом из 32-раз-

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

цессора 80386, которые имеют максимальную длину 4 гигабайта, да-

ется тип USE32. Процессор 80386 позволяет использовать в качестве

базового регистра или в индексного регистра все восемь 32-разряд-

ных общих регистров (EAX, EBX, ECX, EDX, ESI, EDI, EBP и ESP).

.

- 3 -

Новые регистры

В процессоре 80386 общие регистры, регистр флагов и каза-

тель инструкций процессора 8086 увеличены по размеру до 32 бит,

кроме того добавлены два новых сегментных регистра.

31 16 15 0

┌───────────────────┬─────────┬─────────┐─┐

│ AH а AL │ │

EAX │###################├─────────┴─────────┤ │

│ │ AX │ │

└───────────────────┴───────────────────┘ │

┌───────────────────┬─────────┬─────────┐ │

│ а BH а BL │ │

EBX │###################├─────────┴─────────┤ │

│ │ BX │ │

└───────────────────┴───────────────────┘ │

┌───────────────────┬─────────┬─────────┐ │

│ а CH а CL │ │

ECX │###################├─────────┴─────────┤ │

│ │ CX │ │

└───────────────────┴───────────────────┘ │

┌───────────────────┬─────────┬─────────┐ │

│ а DH а DL │ │

EDX │###################├─────────┴─────────┤ Общие

│ │ DX │ │ регистры

└───────────────────┴───────────────────┘ │

┌───────────────────┬───────────────────┐ │

ESI │###################│ SI │ │

└───────────────────┴───────────────────┘ │

┌───────────────────┬───────────────────┐ │

EDI │################### DI │ │

└───────────────────┴───────────────────┘ │

┌───────────────────┬───────────────────┐ │

EBP │###################│ BP │ │

└───────────────────┴───────────────────┘ │

┌───────────────────┬───────────────────┐ │

ESP │###################│ SP │ │

└───────────────────┴───────────────────┘─┘

┌───────────────────┬───────────────────┐ Указатель

EIP │###################│ IP │ инструкций

└───────────────────┴───────────────────┘

┌───────────────────┬───────────────────┐ Регистр

EFLAGSа │###################│ FLAGS │ флагов

└───────────────────┴───────────────────┘


- 4 -

15 0

┌───────────────────┐─┐

CS │ │ │

└───────────────────┘ │

┌───────────────────┐ │

DS │ │ │

└───────────────────┘ │

┌───────────────────┐ │

DS │ │ │

└───────────────────┘ │

┌───────────────────┐ │ Cегментные

ES │ │ │ регистры

└───────────────────┘ │ а--------------------- |

┌───────────────────┐ │

FS │###################│ │

└───────────────────┘ │

┌───────────────────┐ │

GS │###################│ │

└───────────────────┘ │

┌───────────────────┐ │

SS │ │ │

└───────────────────┘─┘

15 0

32-разрядные общие регистры

32-разрядные регистры общего назначения называются EAX, EBX,

ECX, EDX, ESI, EDI, EBP и ESP. Младшие 16 битов этих регистров

образуют множество 16-разрядных регистров процессора 8086, кото-

рые нам же хорошо знакомы. Например, младшие 16 битов регистра

EAXа представляют собой регистр AX. Аналогично, младшие 8 битов

регистра EAX представляют собой регистр AL. В результате к раз-

личныма частям регистра EAX можно теперь обращаться с помощью че-

тырех различных имен:а 32-битового регистра EAX, 16-битового ре-

гистра AX и 8-битовых регистров AH и AL. Тоже самое относится к

регистрам EBX, ECX и EDX.

При обращении к 32-разрядным регистрам есть аимеется только

одина небольшой недостаток:а невозможно непосредственно использо-

вать старшие 16 битов 32-разрядного регистра, кака 16-разрядный

регистр. Если вы хотите использовать старшие 8 битов регистра AX,

то можно просто сослаться на регистр AH, если вы хотите исполь-

зовать младшие 16 битов регистра ESI, как регистр, то можно прос-

то ссылаться на SI. Однако нет эквивалентного способа ссылаться,

скажем, на старшие 16 битов, например, регистра EAX.

Чтобы получить доступа к старшим 16 битам 32-разрядного ре-

гистра, можно просто выполнить циклический сдвиг 16 битов в любом

направлении, обратиться с младшим 16 битам регистра и снова вы-

полнить для регистра циклический сдвиг на 16.


- 5 -

32-разрядный регистр флагов

Младшее слово регистра флагов процессора 80386 идентично ре-

гистру флагов процессора 8086. Старшие 16 битов регистра флагов

процессора 8086 содержит два новых флага. Один из этих новых фла-

гова показывает, работает ли в данный момент процессор 80386 как

виртуальный процессор 8086, другой флаг предназначена для ис-

пользования при разработке средств отладки. Прикладным программ-

ным обеспечением эти флаги обычно не используются.

32-разрядный казатель инструкций

казатель инструкций процессора 80386 имеет размер 32 бита,

что отличается ота 16-битового казателя инструкцийа процессора

8086. Этот расширенный казатель инструкций поддерживает сегменты

кода размером до 4 гигабайт.

Новые сегментные регистры

В процессоре 8086 к четырем сегментным регистрам, поддержи-

ваемым в процессоре 8086 добавлены два новыха сегментных регистра

-а FS и GS. Эти два новых регистра не предназначены для какой-то

конкретной функции, и никакая инструкция или режим адресацииа по

умолчанию их не использует. В итоге использование регистров FS и

GS не является обязательным, но может оказаться добным при обра-

щении к данным в нескольких сегментах сразу.

Регистры FSа и GS используются также, как в несторовых инс-

трукциях используется регистр ES:а с помощью префикса переопреде-

ления сегмента.

Новые режимы адресации

Процессор 80386 поддерживает все режимы адресацииа процессо-

ров 8086, 80186 и 80286 и позволяет также использовать новые ре-

жимы адресации. В качестве базового регистра можно использовать

любой иза восьми 32-разрядных общих регистров, в качестве ин-

дексного регистра - любой из 8 32-разрядных общих регистров, кро-

ме регистра SP.

При вычисленииа адрес памяти индексный регистр можно мно-

жать на 2, 4 или 8. Для этого после индексного регистр просто

помещается *2, *4 или *8 (это средство называется индексным масш-

табированием). Например:

аmovа ebx,8

аmovа eax,[DwordTable+ebx*4]

.

- 6 -

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

доступе к элементам, как к массивам слов, двойных слов или чет-

верных слов.

Если для адресации к памяти используется единственныйа ре-

гистр, то этот регистр всегда считается базовым. Если для адреса-

ции к памяти используются два регистра, то самый левый регистр в

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

регистр - индексным. Если же, однако, с одним или двумя регистра-

ми в квадратных скобках казывается масштабирование, то масштаби-

руемый регистр всегда рассматривается, как индексный регистр.

Вопрос о том, какой из регистров является базовым, важен,

так как по молчанию базовый регистр правляет сегментом, на ко-

торый делается ссылка при данном обращении к памяти. Доступ к па-

мяти, осуществляемый с помощью использования регистров EBP и ESP

в качестве базовых, приводит к ссылке на сегмент, на который ка-

зывает регистр SS, а доступ к памяти, при котором в качестве ба-

зовых используются регистры EAX, EBX, ECX, EDX, ESI или EDI при-

водита к ссылкеа н сегмент, н который казывает регистр DS.

Новые режимы адресации процессора 80386 работают только с 32

-разрядными регистрами адресации к памяти. 16-разрядные регистры

можно использовать только для ограниченного доступ к памяти,

также, как в процессоре 8086.


ВТОРОЙ СЕМЕСТР

ЛЕКЦИЯ N 16

 МИКРОПРОЦЕССОРЫ СЕРИИ iX86 ФИРМЫ INTEL

ПРОЦЕССОР 80386

 Новые инструкции

В процессоре 80386 введены следующие новые инструкции:

BSF BTR LFS MOVZX

BSR BTS LGS SETxx

BT CDQ LSS SHLD

BTC CWDE MOVSX SHRD

Проверка битов

Инструкциями проверки битов процессора 80386а являются инс-

трукции BT, BTC, BTR и BTS. Инструкция BT - это основная инструк-

ция проверки битов, копирующая значение заданного тип во флаг

переноса. Например, ва следующем фрагменте программы переход на

Bit3Is1 происходит только в том случае, если бит 3 регистр EAX

отличен от 0:

bt eax,3

jc Bit3Is1

.

.

Bit3Is1:

.

.

Если EAX содержит значение 8h, то ва этойа программе

произойдета перехода н Bit3Is1. Если же EAX содержит значение

07h, то переход выполнен не будет. Первый операнд инструк-

ции BT представляет собой 16- или 32-разрядный общий регистр или

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

номер проверяемого бита, заданный 8-битовым непосредственным зна-

чением или содержимым 16- или 32-разрядного общего регистра. Если

ва качестве второго операнд используется регистр, то его размер

должен совпадать с размером первого операнда. Номер проверяемого

бита может задаваться как регистром, так и непосредственным зна-

чением, поле, в котором проверяется бит, может представлять со-

бой как ячейку памяти, так и регистр.

Инструкция BTCа аналогична инструкции BT, только копируемое

во флаг переноса значение представляет собой дополнение заданного

бита. То есть флаг переноса станавливается в значение 1, если


а- 2 -

заданный бит равен 0, и в значение 0, если заданный бит равен 1.

Инструкция BTCа страняет необходимость использования инструкции

CMC, когда требуется задать состояние флаг переноса, обратное

значению проверяемого бита.

Инструкция BTR также аналогична инструкции BT, но после ко-

пирования проверяемого бита во флаг переноса его значение стано-

вится равным 0. Аналогично, инструкция BTS станавливает проверя-

емый бит, копируемыйа во флага переноса, ва значение 1. Эти

инструкции проверки полезно использовать для анализа и установки

состояния флага в одной операции (при этома подразумевается, что

не может произойти прерывание между проверкой флага и становкой

его в новое значение).

Просмотр битов

Для нахождения первого или последнего ненулевого бита опе-

ранда размером в слово или двойное слово полезно использовать ин-

струкции BSFа и BSR. Инструкция BSF просматривает исходный опе-

ранд, начиная с бита 0 (младший бит), определяя первый ненулевой

бит. Если все биты операнда-источника являются нулевыми, то флаг

нуля очищается. В противном случае флаг нуля устанавливается, в

целевойа регистра (приемник)а копируется номер первого найденного

ненулевого бита.

Второй операнд инструкции BFS - это 16- или 32-разрядный об-

щий регистр или просматриваемая ячейка памяти, первый операнд -

это 16- или 32-разрядный общий регистр, в который будета записы-

ваться номера первого ненулевого бита в просматриваемых данных.

Оба операнда должны иметь одинаковый размер.

Инструкция BSR аналогична инструкции BFS, но просмотра она

начинает со старшего (наиболее значащего) бита операнда-источника

к младшему биту.

Перемещение данных с расширением по знаку или нулю

Инструкции MOVZX и MOVSX позволяют вам копировать 8- или 16-

разрядное значение в 16- или 32-разрядный общий регистр без необ-

ходимости использования лишних инструкций для расширения значения

до заданного размера. Инструкция MOVZX заполняет старшие биты

приемника нулями, инструкция MOVSX распространяет знак значения

ва соответствии с размером приемника. Обе инструкции аналогичны

стандартной инструкции MOV.

Преобразование данных типа DWORD или QWORD

Для преобразования значений со знаком размером в байт ва ре-

гистре ALа ва значения со знаком размером в слово и значений со

знаком в регистре AL размером в слово в значения со знаком разме-


- 3 -

рома ва двойноеа слово в процессоре 80386 предусмотрены соответс-

твенно инструкции CBW и CWD. В процессор 80386 добавлены еще две

инструкции преобразования, CWDE и CDQ, которые облегчают работу с

32-разрядными регистрами процессора 80386.

Инструкция CWDE преобразует значение со знакома размерома в

слово, записанное в регистре AX, в значение со знаком размером в

двойное слово, так же как инструкция CWD. Различие между этими

двумя инструкциями состоит в том, что в то время как CWD помещает

32-разрядный результат в DX:AX, инструкция CWDE помещает помещает

32-разрядный результат в регистр EAX, который можно затем исполь-

зовать в 32-разрядных инструкциях процессора 80386.

Инструкция CWDа преобразуета значениеа со знаком размером в

двойное слово в регистре EAX в значение со знаком (8-байтовое)

в EDX:EAX.

Сдвиг нескольких слов

Инструкции процессора 80386 SHRD и SHLD, обеспечивают сдвиг

на несколько битов двух регистров или регистра и ячейки памяти.

Первый операнд инструкции SHLD - это 16- или 32-разрядный об-

щий регистр или ячейка памяти, для которых нужно выполнить сдвиг.

Второй операнд представляет собой 16- или 32-разрядный регистр, в

который нужно выполнить сдвиг, третий операнд - это число би-

тов, на которые нужно осуществить сдвиг. Размеры первого и второ-

го операнда должны совпадать. Третий операнд должен представлять

собой непосредственное значение или регистр CL. В последнем слу-

чае целевой операнд сдвигается на число битов, определяемыйа ре-

гистров CL.

Инструкция SHRDа аналогична инструкции SHLD, однако она вы-

полняет сдвиг из наиболее значащего (старшего) бита в направлении

младших битов.

Условная становка битов

Общее применение для словных проверок и переходов состоит в

установке значения ячейкиа памяти, чтобы отразить определенное

состояние. Например, может оказаться желательным становить зна-

чение двух переменных, что две переменные равны, казатель равен

нулю, или ва предыдущей операции был установлен флаг переноса.

В процессоре 80386 для скорения таких операций проверки и ста-

новки предусмотрена мощная группа инструкций SET.

Проверку ва любома иза знакомых вам словных переходах можно

выполнить с помощью инструкции SET. Инструкция SETNC устанавлива-

ета целевой операнд в значение 1, если флаг переноса равен 0, и

сбрасывает значение целевого операнда в 0, если флаг переноса ра-

вена 1. Инструкция SETS станавливает приемник, если флаг знака

равен 1, и сбрасывает его, если флаг знака равен 0 и т. д. Опе-

ранда инструкции SETа можета быть 8-битовым общим регистром или


- 4 -

8-битовой переменной в памяти. 16- и 32-разрядные операнды не до-

пускаются.

Загрузка регистров SS, FS и GS

Инструкция процессора 8086 LDS позволяет вама загружать как

регистр DS, так и один из общих регистров из памяти в одной инс-

трукции, позволяя, таким образом, очень эффективно станавливать

дальниеа указатели. Инструкция LES обеспечивает аналогичную воз-

можность, но вместо DS загружает регистр ES. В процессоре 80386

для загрузки дальних казателей добавлены инструкции LSS, LFS и

LGS, которые загружают дальние казатели на основе сегментных ре-

гистров SS, FS и GS соответственно.

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

В процессора 80386 не только добавлены новые мощные инструк-

ции по сравнению с набором инструкций процессором

8086/80186/80286, но также расширены имеющиеся инструкции. Это

следующие инструкции:

CMPS JC JNAE JNLE JPO OUTS

IMUL JCXZ JNB JNO JS POPA

INS JE JNBE JNP JZ POPF

IRET JG JNC JNS LODS PUSHA

JA JGE JNE JNZ LOOP PUSHF

JAE JL JNG JO MOV SCAS

JB JLE аJNGE JP MOVS STOS

JBE JNA JNL JPE

Кроме того, в процессоре 80386 многие инструкции могут рабо-

тать с 32-разрядными операндами, хотя их мнемоника явно не изме-

нилась.

Специальные версии инструкции MOV

Процессор 80386 поддерживаета специальные формы инструкции

MOV, которые позволяют программе, работающей на ровень привилегий

0 (уровень с максимальными полномочиями) перемещать данные между

32-разрядными общими регистрами и специальными регистрами процес-

сора 80386. Таким способом можно обращаться к следующим регистрам

процессора 80386:

CR0 DR0 DR3 TR6

CR2 DR1 DR6 TR7

CR3 DR2 DR7

32-разрядные версии инструкций процессора 8086


- 5 -

Многие инструкции процессора 8086 расширены такима образом,

чтобы можно было использовать новые возможности адресации и новые

операнды процессора 80386. Следующая инструкция выполняет 32-раз-

рядное вычитание 32-битового регистра EBX из 32-битовой перемен-

ной по адресу EBP+EAX*8+10h. При этом для ссылки на целевую ячей-

ку памяти используются 32-разрядные регистры:

sub DWORD PTR [ebp+eax*8+10h],ebx

Новые версии инструкций LOOP и JCXZ

Инструкции LOOP, LOOPE, LOOPNE и JCXZа работаюта обычно с

16-разрядным регистром CX. Процессор 8086 предусматривает как 16-

разрядную, так и 32-разрядную версию этих инструкций. 32-разряд-

ные версии вместо регистра CX могут работать с регистром ECX.

Инструкции LOOP, LOOPE и LOOPNE используют в качестве счет-

чика цикла регистр CX или ECX, в зависимости от типа сегмента (16

-битового или 32-битового). Если вы хотите обеспечить, чтобы в

качестве регистра правления циклом всегд используется регистр

CXа (даже ва 32-битовом сегменте), то используйте словную форму

данных инструкций (LOOPW, LOOPWE или LOOPWNE). Аналогично, если

нужно обеспечить использование в качестве правляющего циклом ре-

гистр регистра ECX, используйтеа следующие формы инструкций:

LOOPD, LOOPDE и LOOPDNE.

Инструкция LOOPDа меньшает содержимое ECX и выполняет пере-

ход по казанному смещению, если возвращаемое значение отлично от

нуля.

Инструкция LOOPDE меньшает содержимое ECX и выполняет пере-

ход на целевое смещение, пока флаг нуля равен 1, ECX не равен

0. (LOOPDZа - это еще одна форма той же инструкции.) Аналогично,

инструкция LOOPDNE меньшает значение ECX и переходит по целевому

смещению, пока флаг нуля равен 0, ECX не равен 0. (LOOPDNZ -

это эквивалентная инструкция.)

Новые версии строковых инструкций

В процессоре 80386 все строковые инструкции могут работать с

байтами, словами или двойными словами. Версии этих инструкций,

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

не буквами W или B. Это следующие инструкции:

CMPSD MOVSD SCASD

INSD OUTSD STOSD

LODSD

Каждая иза этих инструкций работает сразу с 32 битами данных

и величивает или меньшает при каждом повторении соответствующий


- 6 -

регистр-указатель на 4.

Инструкция IRETD

Инструкция IRETDа аналогична инструкции IRET. Она извлекает

из стека EIP, а затем CS, как двойное слово (отбрасывая старшее

слово), после чего извлекает EFLAGS, как двойное слово.

Инструкции PUSHFD и POPFD

Инструкция PUSHFD заносит в стек полный 32-разрядный регистр

флагов процессора 80386. Инструкция POPFD извлекает из стека пол-

ный 32-разрядный регистр флагов.

Инструкции же PUSHF и POPF заносят в стек и извлекают из не-

го только младшие 16 битов регистра флагов.

Инструкции PUSHAD и POPAD

Инструкция PUSHAD заносит в стек восемь 32-разрядныха общих

регистров в следующем порядке: EAX, ECX, EDX, EBX, ESP, EBP, ESI,

EDI. Значение, заносимое для регистра ESP, соответствует значению

регистра ESP в начале инструкции PUSHAD. Инструкция POPAD извле-

кает из стека семь 32-разрядных общих регистров ва следующема по-

рядке:а EDI, ESI, EBP, EBX, EDX, ECX и EAX. Все эти регистры

можно сохранить в стеке c помощью инструкции PUSHAD, затем

восстановить с помощью инструкции POPAD. Регистр ESP инструкцией

POPAD не восстанавливается. Вместо этого выполняется выполняется

увеличение на 32, чтобы отбросить блок из восьми 32-разрядных об-

щих регистров, ранее сохраненный в стеке. Сохраненное ранее зна-

чение ESP игнорируется.

Новые версии инструкции IMUL

Дополнительно к формам инструкции IMUL, предусмотренным для

процессорова 8086/80186/80286а ва процессореа 80386 предусмотрена

возможно самая добная форма инструкции IMUL: любой общий регистр

или ячейку памяти можно множать на любой общий регистр, при этом

результат снова сохраняется в одном из исходных регистров. Напри-

мер, инструкция:

imul ebx,[edi*4+4]

умножает содержимоеа регистр EBX на значение размером в двойное

слово, хранящееся по адресу памяти edi*4+4, результат сохраняет

снова в регистре EBX.

Как можно заметить, первый операнд в этой форме инструкции

IMUL представляет собой целевой регистр. Этот операнд может быть

любым 16- или 32-разрядным общим регистром. Второй операнд может


- 7 -

задаваться любым 16- или 32-разрядным общим регистром или ячейкой

памяти. Размеры двух операндов должны совпадать. Если результат,

рассматриваемый, как значение со знаком, слишком велик, чтобы его

можно было разместить в приемнике, то станавливаются флаги пере-

носа и переполнения.

Как можно ожидать, в процессоре 80386 имеются также расши-

ренные формы инструкцииа IMUL для процессоров 8086/80186/80286,

поддерживающие 32-разрядные операнды. Например, в следующем коде

ECX множается на 1h, результат сохраняется в регистре

EBP:

imul ebp,ecx,1h

следующая инструкция множает ECX на EBX, записывая результат в

EDX:EAX:

imul ebx


P E N T I U M

processor

Технический обзор

Новое поколение процессоров фирмы INTEL

Объединяя более, чема 3.1а миллион транзисторов на одной

кремниевой подложке, 32-разрядный Pentium процессор характери-

зуется высокой производительностью с тактовой частотой 60 и 66

Гц. Его суперскалярная архитектура используета совершенство-

ванные способы проектирования, которые позволяют выполнять бо-

лее, чем одну команду за один период тактовой частоты, ва ре-

зультате чего Pentium в состоянии выполнять огромное количест-

во PC-совместимого программного обеспечения быстрее, чем любой

другой микропроцессор. Кроме существуюших наработок программ-

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

плавающей запятойа Pentiumа проессор обеспечивает величение

вычислительной мощности до необходимой для использования не-

доступных ранее технических и научных приложений, первоначаль-

но предназначенных для платформ рабочиха станций. Также, как

локальные иа глобальные сети продолжают вытеснять старевшие

иерархические сети, управляемые большими ЭВМ, преимущества

мультипроцессорностиа и гибкость операционной системы Pentium

процессора - идеал для Хост-компьютера для современныха прило-

жений клиент-серверов, применяемых в промышленности.

Поскольку Pentiumа процессора способена достигать ровня

производительности равного или более высокого, чем современные

рабочие станцииа высокого ровня, он обладает преимуществми,

которых лишены обычные рабочие станции: полная совместимость с

более, чем 50 программных приложений со стоимостью милли-

рды долларов, которые были написаны пода ахитектуру фирмы

INTEL. В дополнение, Pentium процессор позволяет использовать

все основные операционные системы, которые доступны современ-

ным настольным персональным компьютерам, рабочима станцияма и

серверам, включая UNIX, Windows-NT, OS/2, Solaris и NEXTstep.

Pentium процессор. Технические нововведения.

Многочисленные нововведения -а характерная особенность

Pentium процессора в виде никального сочетания высокой произ-

водительности, совместимости, интеграции данных и наращивае-

мости. Это включает:

- Суперскалярную архитектуру;

- Раздельное кэширование программного кода и данных;

- Блок предсказания правильного адреса перехода;

- Высокопроизводительный блок вычислений с плавающей за-

пятой;

- Расширенную 64-битовую шину данных;

- Поддержку многопроцессорного режима работы;

- Средства задания размера страницы памяти;

- Средств обнаружения ошибок и функциональной избыточ-

ности;

- правление производительностью;

- Наращиваемость с помощью Intel OverDrive процессора.

Архитектура Pentium процессора

┌────────────────────────────────────────────────────────────┐

│ Intel Pentium Processor │

├────────────────────────────────────────────────────────────┤

│ 2────────────┐ 8────────────┐а │

│ 64-bits │ Code │ а Branch │

│ ┌─────┤ Cache ├──────┤ Prediction │

│ │ └────┬───────┘ └──────┬─────┘а │

│ 256-bits│ ┌────────────────┘ │

│ │ 3────┴────┴──┐ 9────────────┐а │

│ │ Prefetchа │ │ │

│ │ Buffers │ │ │

│ │ └──┬──────┬──┘ │ │

│ 1────────────┐ │ 4──────┴──┐5──┴──────┐а │ Pipelinedа │

│ а 64-bit │ │ Integer ││ Integer │ Floating-а │

│─┤ Bus ├───┤ ALU │а ALU │ Point Unit │

│ Interface а │ └──────┬──┘└──┬──────┘а │ │

│ └────────────┘ │ 6──┴──────┴──┐ ┌──┤ │

│ └─────┤а Registerа а │ │

│ 64-bits │ Set а ├────────────┤а │

│ └───┬─────┬──┘ Multiplyа │

│ 32-bits├─────┼──────┘а ├────────────┤а │

│ 7───┴─────┴──┐64-bit│ Add │

│ │ Data │ ├────────────┤а │

│ │ Cache │ Divide │

│ └────────────┘ └────────────┘а │

└────────────────────────────────────────────────────────────┘

1 - 64-битовый шинный интерфейс;

2 - Средства кэширования программного кода;

3 - Буферы выборки с преждением;

4 - 32-битовый целочисленный блок АЛУ;

5 - 32-битовый целочисленный блок АЛУ;

6 - Набор регистров;

7 - Средства кэширования данных;

8 - Блок предсказания правильного адреса перехода;

9 - Блок конвеерных вычислений с плавающей запятой.

Суперскалярная архитектура.

Суперскалярная архитектура Pentium процессора представля-

ет собой совместимую только с INTELа двухконвеерную индустри-

льную архитектуру, позволяющую процессору достигать новых

уровней производительности посредством выполнения более, чем

одной команды з одина период тактовой частоты. Термин "су-

перскалярная" обозначает микропроцессорную архитектуру, кото-

рая содержит более одного вычислительного блока. Эти вычисли-

тельные блоки, или конвееры, являются злами, где происходят

все основные процессы обработки данных и команд.

Появление суперскалярной архитектуры Pentiumа процессора

представляет собой естественное развитие предыдущего семейства

процессоров с 32-битовой архитектурой фирмы INTEL. Например,

процессор Intel486а способена выполнять несколько своих команд

за один период тактовой частоты, однако предыдущие семейства

процессоров фирмы INTELа требовали множество циклов тактовой

частоты для выполнения одной команды.

Возможность выполнять множество команда з один период

тактовой частоты существует благодаря тому, что Pentiumа про-

цессор имеет дв конвеера, которыеа могута выполнять две

инструкции одновременно. Так же, как и Intel486 с одним конве-

ером, двойной конвеер Pentium процессора выполняет простую ко-

манду за пять этапов: предварительная подготовка, первое деко-

дирование (а декодирование команды ), второе декодирование (

генерация адреса ), выполнение и обратная выгрузка. Это позво-

ляет нескольким командам находиться в различных стадиях выпол-

нения, величивя тем самым вычислительную производительность.

Каждый конвеер имеет свое арифметическо-логическое стройство

(ALU), совокупность стройств генерации адреса и интерфейс кэ-

ширования данных. Така же как и процессор Intel486, Pentium

процессор использует аппаратное выполнение команд, заменяющее

множество микрокоманд, используемыха в предыдуших семействах

микропроцессоров. Эти инструкции включают загрузки, запомина-

ния и простые операции АЛУ, которые могут выполняться аппарат-

ными средствами процессора, без использования микрокода. Это

повышает производительность без затрагивания совместимости. В

случае выполнения более сложныха команд, для дополнительного

ускорения производительности выполнения расширенного микрокода

Pentium процессора для выполнения команд используются оба кон-

веера суперскалярной архитектуры.

В результате этих архитектурных нововведений, по сравне-

нию с предыдущими микропроцессорами, значительно большее коли-

чество команд может быть выполнено за одно и то же время.

Раздельное кэширование программного кода и данных.

Другое важнейшее революционное совершенствование, реали-

зованное в Pentium процессоре, это введение раздельного кэши-

рования. Кэшированиеа увеличивает производительность посредст-

вом активизации места временного хранения для часто используе-

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

заменяя по возможности обращение ко внешней системнойа памяти

для некоторых команд. Процессор Intel486, например, содержит

один 8-KB блок встроенной кэш-памяти, используемой одновремен-

но для кэширования программного кода и данных.

Проектировщики фирмы INTEL обошли это ограничение исполь-

зованием дополнительного контура, выполненного на 3.1 миллио-

нах транзисторов Pentium процессора ( для сравнения, Intel486

содержит 1.2а миллион транзисторова )а создающиха раздельное

внутреннее кэширование программного кода и данных. Это улучша-

ет производительность посредством исключения конфликтов на ши-

не и делает двойное кэширование доступным чаще, чем это было

возможно ранее. Например, во время фазы предварительной подго-

товки, используется код команды, полученный из кэша команд. В

случае наличия одного блока кэш-памяти, возможен конфликт меж-

ду процессом предварительной подготовки команды и доступома к

данным. Выполнение раздельного кэширования для команд и данных

исключает такие конфликты, давая возможность обеим акомандам

выполняться одновременно. Кэш-память программного кода и дан-

ных Pentium процессора содержит по 8 KB информации каждая, и

каждая организован кака набор двухканального ассоциативного

кэш -а предназначенная для записи только предварительно

просмотренного специфицированного 32-байтного сегмента, причем

быстрее, чем внешний кэш. Все эти особенности расширения про-

изводительностиа потребовали использования 64-битовой внутрен-

ней шины данных, которая обеспечивает возможность двойного кэ-

ширования и суперскалярной конвеерной обработки одновременно с

загрузкой следующих данных. Кэш данных имеет дв интерфейса,

по одному для каждого из конвееров, что позволяет ему обеспе-

чивать данными две одельные инструкции в течение одного машин-

ного цикла. После того, как данные достаются из кэша, они за-

писываются в главную память в режиме обратнойа записи. Такая

техника кэширования дает лучшую производительность, чем

простое кэширование с непосредственной записью, при котором

процессор записываета данные одновременно в кэш и основную па-

мять. Тем не менне, Pentiumа процессора способена динамически

конфигурироваться для поддержки кэширования с непосредственной

записью.

Таким образом, кэширование данных использует два различ-

ных великолепных решения:а кэш с обратной записью иа алгоритм,

названный MESI ( модификация, исключение, распределение, осво-

бождение) протокол. Кэш с обратной записью позволяета записы-

вать ва кэша беза обращения к основнойа памяти в отличие от

используемого до этого непосредственного простого кэширования.

Эти решения увеличивают производитльность посредством исполь-

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

самого зкого мест в системе. В свою очередь MESI-протокол

позволяет данным в кэш-памяти и внешней памяти совпадать - ве-

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

системах, где различные процессоры могут использовать для ра-

боты одни и те же данные.

Рекомендуемый объема общей кэш-памяти для настольных

систем, основанных на Pentium процессоре, равен 128-256 K, а

для серверов - 256 K и выше.

Блок предсказания правильного адреса перехода.

Блок предсказания правильного адреса перехода - это сле-

дующее великолепное решение для вычисленй, величивающее про-

изводительность посредствома полного заполнения конвееров ко-

мандами, основанное на предварительном определении правильного

набор команд, которые должны быть выполнены. Pentium про-

цессор - это первый и единственный PC-совместимый процессор,

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

был связан с вычислительными платформами больших ЭВМ.

Для лучшего понимания этой концепции, рассмотрим типичное

программное приложение. После выполнения каждого программного

цикла, программ выполняет соответствующую проверку для опре-

деления, необходимо ли возвратиться в начало цикла или выйти и

продолжить выполнениеа следующего шага. Эти два решения, или

пути, называют предсказанием адреса перехода. Блок предсказа-

ния правильного адрес переход прогнозирует, какая ветвь

программы будет затребована, основываясь н допущении, что

предыдущая ветвь, которая была пройдена, будет использоваться

снова. Pentium процессора выполняета предсказание правильного

дреса перехода, используя специальный буфер предсказания пе-

рехода (BTB). В отличие ота альтернативной архитектуры, это

программно-шаблонное нововведение даета возможность для пере-

компилирования программного кода, величивая при этом скорость

и производительность существующего прикладного программного

обеспечения. Если команда правляет ветвлением программы, бу-

фер BTB запоминает команду и адрес, на который необходимо пе-

рейти, и предсказывает, какая ветвь команд в следующий момент

будет использоваться. Когда буфер содержит правильное предска-

зание, переход выполняется без задержки.

Высокопроизводительный блок

вычислений с плавающей запятой.

Наростающая волн 32-разрядныха программныха приложений

включает много интенсивно вычисляющих, графическиа ориентиро-

программ, которые занимают много процессорных ресурсов н вы-

полнение операций с плавающей запятой, обеспечивающих матема-

тические вычисления. Поскольку требования к персональным

компьютерам со стороны программного обеспечения по вычислениям

с плавающей запятой постоянно возрастают, удовлетворить эти

потребности могута усовершенствования в микропроцессорной тех-

нологии. Процессор Intel486 DX, например, был первым микропро-

цессором, интегрированныма н одной подложке с математическим

сопроцессором. Предыдущие семейства процессорова фирмы INTEL,

при необходимостиа использования вычислений с плавающей запя-

той, использовали внешний математический сопроцессор.

Pentium процессора позволяет выполнять математические вы-

числения на более высоком ровне благодаря использованию со-

вершенствованного встроенного блока вычислений с плавающей за-

пятой, который включает восьмитактовый конвеер и аппаратно ре-

лизованные основныеа математические функции. Четырехтактовые

конвеерные команды вычислений са плавающейа запятой дополняют

четырехтактовую целочисленную конвееризацмю. Большая часть ко-

манд вычислений с плавающей запятой могут выполняться ва одном

целочисленном конвеере, после чего подаются в конвеер вычисле-

ний с плавающей запятой. Обычные функции вычислений с плаваю-

щей запятой, такие как сложение, множение и деление, реализо-

ваны аппаратно с целью скорения вычислений.

В результате этих инноваций, Pentium процессор выполняет

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

33-Гц Intel486 DX, оптимизируя иха для высокоскоростных

численных вычислений, являющихся неотъемлемой частьюа таких

усовершенствованных видеоприложений, как CAD и 3D-графика.

Pentium процессор на тактовой частоте 66 Гц работает как

"числодробилка" са рейтингом 64.5 по тесту SPECint92, практи-

чески не ступая RISC-процессору Alpha компании Digital, но с

тактовой частотой вдвое более высокой.

Общая производительность Pentium процессора превосходит в

6 раза 25а Гца Intel486 SX и в 2.6 раз - 66 Гц Intel486 DX2.

Индекс по рейтингу iCOMP для 66 Гц Pentium процессора, кото-

рый выполняета 112а миллионова операций в секунду, составляет

567. Индекса по iCOMPа (а Intelа COmparative Microprocessor

Peformance )а выполняет относительное сравнение производитель-

ности 32-битовых процессоров фирмы INTEL.

Расширенная 64-битовая шина данных.

Pentium процессора снаружи представляет собой 32-битовое

устройство. Внешняя шина данных к памяти является 64-битовой,

удваивая количество данных, передаваемых в течение одного шин-

ного цикла.а Pentium процессора поддерживаета несколько типов

шинных циклов, включая пакетный режим, в течение которого про-

исходит порция данных из 256 бит в кэш данных и в течение од-

ного шинного цикла.

Шина данных является главной магистралью, которая переда-

ет информацию между процессором и подсистемой памяти. Благода-

ря этой 64-битовой шине данных, Pentium процессор существенно

повышает скорость передачи по сравнению с процессором Intel486

DX - 528 MB/сек для 66 Гц, по сравнению со 160 MB/сек для 50

Гц процессор Intel486а DX. Эт расширеная шин данных

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

одновременной подпитки командами и данными процессорного блока

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

большая общая производительность Pentium процессора по сравне-

нию с процессором Intel486 DX.

В общем, имея более широкую шину данных, Pentiumа про-

цессор обеспечивает конвееризацию шинных циклов, что

способствует величению пропускной способности шины. Конвеери-

зация шинныха циклова позволяет второму циклу стартовать ранше

завершения выполнения первого цикла. Это дает подсистеме памя-

ти большеа времени для декодирования адреса, что позволяет

использовать более медленные и менее дорогостоящие компоненты

памяти, меньшая в результате общую стоимость системы. Ускоре-

ние процессов чтения и записи, апараллелилизм адреса и данных,

также декодирование в течение одного цикла - все вместе поз-

воляет лучшить пропускную способность и повышаета возможности

системы.

Мультипроцессорность.

┌────────────────────────────────────────────────────────────┐

│ Внутреннее определнние ошибок и тестирование │

│ с помощью функциональной избыточности │

├───────────────────────────┬────┬───────────────────────────┤

│ Master │ │ Checker │

│ ┌────────┐ ┌────┐│ │ ┌────────┐ ┌────┐│

│ ┌─┤ ├───┤ ││ │ ┌─┤ ├───┤ ││

│ │ └───┬────┘ └──┬─┘│ │ │ └───┬────┘ └──┬─┘│

│ │ ┌────────┘а │ │ │ ┌────────┘а │

│ │ ┌───┴──┴─┐ ┌────┐│ │ │ ┌───┴──┴─┐ ┌────┐│

│┌───┐ │ │ ├───┤ ││ │┌───┐ │ │ ├───┤ ││

│┤ ├─┤ └─┬────┬─┘ │ ││ ─┬─│┤ ├─┤ └─┬────┬─┘ │ ││

│└───┘ │ ┌─┴─┐┌─┴─┐ │ │ │ │└───┘ │ ┌─┴─┐┌─┴─┐ │ ││

│ │ а │а │ ┌─┤ │ │ │ │ │а │ ┌─┤ ││

│ │ └─┬─┘└─┬─┘ │ │ │ │ │ │ └─┬─┘└─┬─┘ │ │ ││

│ │ ┌─┴────┴─┐ │ ├────┤ │ │ │ ┌─┴────┴─┐ │ ├────┤│

│ │ │ │ │ │ │ │ │ │ │ │ │ │ ││

│ │ └─┬────┬─┘ │ ├────┤ │ │ │ └─┬────┬─┘ │ ├────┤│

│ а ├────┼───┘ │ │ │ │ а ├────┼───┘ │ ││

│ │ ┌─┴────┴─┐ ├────┤ │ │ │ ┌─┴────┴─┐ ├────┤│

│ └─┤ а │ │ │ │ └─┤ │ ││

│ └────────┘ └────┘ │ │ └────────┘ └────┘│

├─────────────┬─────────────┘а │ └──────┬──────┬─────────────┤

│ │ Check │ │ │

│ ├────────────────┼────────┘ │ │

│ Outputs Inputs IERR# │

└────────────────────────────────────────────────────────────┘

Pentium процессор - это идеал для наростающей волны муль-

типроцессорных систем, а также высочайший ровень производи-

тельности иа вычислительной мощности в области современных вы-

числительных средств. Мультипроцессорные приложения, которые

соединяют дв или более Pentium процессоров - хорошо обслужи-

ваются посредством совершенствованной архитектуры кристаллов,

раздельным встроенным кэшированием программного кода и данных,

также наборами микросхем для правления внешней кэш-памятью

и тонченными средствами контроля целостности данных.

Как обсуждалось ранее, Pentiumа процессора поддерживает

упорядоченный кэш с его MESI протоколом. Когда один процессор

получает доступа к данным, которыеа кэшируются в другом про-

цессоре, он имеет возможность приема правильных данных. И если

данные модифицировались, все процессоры получаюта возможность

доступ к приемуа данныха в модифицированном виде. Новейший

Pentium процессор фирмы INTEL также определяет, какие команды

распознаются системой ва соответствии с ипользуемым способом

программирования. Это строго определенно подсказывает, каким

образом программному обеспечению, разработанному для однопро-

цессорной системы, корректно работать в многопроцессорном ок-

ружении.

Средства разделения памяти на страницы.

Pentium процессор предлагаета опции поддержкиа любой из

традиционных размеров страниц памяти - 4 KB или более широкие,

4 MB страницы. Эт опция позволяета производить вычисление

частоты свопинг страниц в комплексных графических приложени-

ях, буферах фреймов, а также ядера операционныха систем, где

увеличенный размера страницы сейчаса позволяета пользователям

перепланировать шире первоначально громоздкие объекты. вели-

чение страница даета результат в виде повышения производитель-

ности, причем все это отражается н прикладнома программном

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

Определение ошибок и функциональная избыточность.

Хорошая защит данных иа обеспечение иха целостности

посредством внутренних средств становится крайне важным в при-

ложениях, критичным к потерям данных благодаря распространению

современного окружения клиент-серверов. аPentium процессор со-

держит два совершенствования, традиционно присущих проектиро-

ванию класса больших ЭВМ -а внутреннееа определение ошибока и

контроль за счет функциональной избыточности ( FCR ) - это по-

могает обеспечить целостность данныха развивающихся сегодня

систем, базирующихся на настольных компьютерах.

Внутреннее определение ошибока дополняета битома четности

внутренний кода и кэширование данных, сдвиговую ассоциативную

таблицу страниц, микрокод, также целевой буфер перехода, по-

могая определять ошибки таким образом, что это остается неза-

метным и для пользователя, и для системы. В то же время конт-

роль с помощью функциональной избыточности оптимизирована для

приложений, критическиха к потерям данных, где Pentium про-

цессор может работать в конфигурации основной/контролирующий.

Если между двумя процессорами обнаруживаются разногласия,

система извещается об ошибке. В результате происходит обнару-

жение более, чем 99% ошибок.

Кроме того, на подложке процессора расположено стройство

встроенного тестирования. Самотестирование охватываета более

70% злов Pentium процессора, неа требуета выполнения сброса

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

при диагностике систем. Другими встроенными решениями является

реализация стандарт Iа 1149.1, позволяющая тестировать

внешние соединения проессора и отладочный режим, дающийа воз-

можность программному обеспечению просматривать регистры и

состояние процессора.

Управление производительностью.

правление производительностью - особенность Pentium про-

цессора, что позволяета разработчикама система и прикладных

расширений оптимизировать свои аппаратные и программные

средства посредством определения потенциально зкого места для

программного кода. работчики могут наблюдать и считать такты

для внутренних событий процессора, таких, как производитель-

ность чтения и записи данных, кэширование совпадений и выпаде-

ний, прерываний и использования шины. Это позволяет им изме-

рять эффективность, которую имеет код ва двойной архитектуре

Pentiumа процессор и ва своиха продуктах и выполнять тонкую

настройку своих приложений или систем для достижения оптималь-

нойа производительности. Выгод для конечных пользователей -

это более высокие достоинства и высшая производительность, и

все это благодаря хорошему взаимодействию с Pentium процессо-

ром, пользовательской системой и прикладным программным

обеспечением.

Давая возможность разработчикам проектировать системы с

управлением энергопотреблением, защитой и другими свойствами,

Pentium процессора поддерживаема режим правления системой

(SMM), подобный режиму архитектуры Intel SL.


ВТОРОЙ СЕМЕСТР

СЕМИНАР N 1-2

ПРИНЦИПЫ ОРГАНИЗАЦИИ СИСТЕМ ОБРАБОТКИ ПРЕРЫВАНИЯ ПРОГРАММ

Во время выполнения программы внутри ЭВМ и во внешнейа среде

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

стороны машины.

Реакция состоита ва том, что машин прерываета обработку

текущейа программы и переходита к выполнению некоторой другой

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

завершении этойа программы ЭВМ возвращается к выполнению прерван-

ной программы.

Такой процесс называется прерыванием программы. Принципиаль-

но важным является то, что моменты возникновения событий, требую-

щих прерывания программ, заранее неизвестны и поэтому не могут

быть чтены при программировании.

Каждое событие, требующее прерывания, сопровождается сигна-

лом, оповещающим об этом событии ЭВМ, который называется запросом

прерывания. Программу, затребованную запросом прерывания, называ-

ют прерывающей программой, программу, выполнявшуюся до появле-

ния запроса - прерываемой программой.

Запросы на прерывание могут возникать как внутри самой ЭВМ,

так и во внешней среде.

Внутренние запросы на прерывание возникают при сбоях в аппа-

ратуре ЭВМ, переполнении разрядной сетки, попытке деления на 0,

нарушении защиты памяти, при затребовании или завершении операции

ввода-вывода периферийным стройством.

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

процесса и других ЭВМ.

В сущности запросы прерывания поступают от нескольких парал-

лельно развивающихся во времени процессов, требующих в произволь-

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

процессам относится выполнение основной программы, контроль пра-

вильности работы ЭВМ, операции ввода-вывода и т.п.

Система прерываний позволяет значительно эффективнее исполь-

зовать процессор при наличии несколькиха протекающиха параллельно

во времени процессов.

Для эффективной реализации системы прерываний ЭВМ снабжается

соответствующими аппаратными и программными средствами, совокуп-

ность которых называется контроллером прерываний.

Основными функциями системы прерываний являются:

-а запоминание состояния прерываемой программы и осуществление

перехода к прерывающей программе;

-а восстановление состояния прерванной программы и возврата к

ней.

.

- 2 -

При наличии нескольких источников запросов прерываний должен

быть становлена определенный порядок в обслуживании поступающих

запросов, т.е. должны быть становлены приоритетные соотношения

между запросами.

Приоритетные соотношения определяют, какойа иза нескольких

поступивших запросов подлежит обработке в первую очередь, и ста-

навливают, имеет или не имеет право данный запроса прерывать ту

или иную программу.

Прерывающая программа, как правило, состоит из трех частей:

1) подготовительной, обеспечивающей сохранение состояния прер-

ванной программы;

2) основной, выполняющей затребованную запросом работу;

3) завершающей, обеспечивающей продолжение работы прерванной

программы.

Характеристики системы прерывания:

1) Общее количество типов запросов прерываний (число входов в

систему прерывания).

2) Время реакции - время между появлениема запроса прерывания и

началом выполнения прерывающей программы.

Время реакции на запрос прерывания зависит от того, сколько

программ со старшима приоритетома ждета обслуживания. Поэтому в

документации обычно казывают время реакции на запрос с наивысшим

приоритетом.

3) Затраты времени на переключение программ, которые равны сум-

марному расходу времени на запоминание и восстановление состояния

программы.

4) Глубина прерывания - это максимальное число программ, кото-

рые могут прерывать друг друга. Если после перехода к прерывающей

программе и вплоть до ее окончания прием других запросов запреща-

ется, то говорят, что система имеет глубину прерывания, равную 1.

Глубина равна n, если допускается последовательное прерывание до

n программ. Глубина прерывания обычно совпадает с числом ровней

приоритета в системе прерываний. Системы с большим значением глу-

бины прерывания обеспечиваюта более быструюа реакцию на срочные

запросы.

Насыщение системы прерываний

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

прихода нового запроса от того же источника, то возникает так на-

зываемое насыщение системы прерываний. В этом случаеа предыдущий

запрос прерывания от данного источника будет машиной утрачен, что

недопустимо. Быстродействие ЭВМ, характеристики системы прерыва-

ний, число источников прерывания и частоты возникновения запросов

должны быть согласованы таким образом, чтобы насыщение было не-

возможным.

.

- 3 -

Допустимые моменты прерывания программ

Обычно прерывание допускается послеа завершения выполнения

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

основном временем выполнения одной команды.

Это время реакции может оказаться недопустимо большима для

ЭВМ, работающиха ва реальнома масштабеа времени. В таких машинах

часто допускается прерывание после любого такта выполнения коман-

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

запоминанию и восстановлению при переключении программ, так как в

этома случае необходимо сохранять состояния счетчик тактов,

регистра кода операции и некоторых других в момент прерывания.

Имеются ситуации, в которых желательно немедленное прерыва-

ние. Например, если аппаратур контроля обнаружила ошибку, то

целесообразно сразу прервать операцию, пока ошибка не оказала

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

Число классов (уровней) прерываний

В ЭВМ число различных запросова прерывания можета достигать

нескольких сотен. В таких случаях запросы обычно разделяют на от-

дельные классы или ровни.

Совокупность запросов, инициирующих одну и ту же прерывающую

программу, образует класс или ровень прерывания.

Запросы от источников прерываний

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

V V V V V V V V V V V V V V V V V V V V V V V V V

┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐

│0│0│1│0│0│.│.│.│.│.│0│0│0│0│0│.│.│.│.│.│0│0│0│1│0│ РгЗП

└┬┴┬┴┬┴┬┴┬┴─┴─┴─┴─┴─┴┬┴┬┴┬┴┬┴┬┴─┴─┴─┴─┴─┴┬┴┬┴┬┴┬┴┬┘

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │

┌┴─┴─┴─┴─┴┐ ┌┴─┴─┴─┴─┴┐ ┌┴─┴─┴─┴─┴┐

│1 │ │1 │ │1 │

└────┬────┘ └────┬────┘ └────┬────┘

│ │ │ЗПКk ┌───┐

│ │ЗПКi ├─────────┤1а ОСП

│ЗПК1 ├───────────────────┼─────────┤ ├─────

├───────────────────┼───────────────────┼─────────┤ │

V V V └───┘

┌──────────────────────────────────────────────────┐

│ Схема распознавания класса прерывания │

└──────────────────────────────────────────────────┘

Запросы ота всеха источников прерывания поступают на регистр

запросов прерывания РгЗП, станавливая соответствующие его разря-

ды ва состояние 1, казывающее на наличие запроса прерывания от


- 4 -

определенного источника. Запросы классова прерывания ЗПК1-ЗПКk

формируются элементами ИЛИ, объединяющими разряды РгЗП, относящи-

еся к соответствующим классам. Еще одна схема ИЛИ формирует общий

сигнал прерывания ОСП, поступающий в стройство управления про-

цессора.

Информация о действительной причине прерывания, породившей

запрос данного класса, содержится ва кодеа прерывания, который

отражает состояниеа разрядова РгЗП, относящихся к данному классу

прерывания. После принятия запрос прерывания на исполнение и

передачи правления прерывающей программе соответствующий триггер

РгЗП сбрасывается. Объединение запросов в классы прерывания поз-

воляет меньшить объем аппаратуры, но связано с замедлением рабо-

ты системы прерывания.

Приоритетное обслуживание запросов прерывания

Вектором прерывания называюта вектора начального состояния

прерывающей программы. Вектор прерывания содержит всю необходимую

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

начальный адрес. Каждому ровню прерывания, в микро-ЭВМ - каж-

дому запросу, соответствуета свой вектора прерывания. Векторы

прерывания обычно находятся в специально выделенных фиксированных

ячейках памяти.

Процедура организации перехода к прерывающей программе выде-

ляет из всех выставленных запросов тот, который имеет наибольший

приоритет, выполняета передачу текущего состояния прерываемой

программы из регистров процессора в стек, загружаета ва регистры

процессора вектора прерывания и передает правление прерывающей

программе.

Ва простейшема случае вектора прерывания состоита лишь из

начального адреса прерывающей программы.

Различают абсолютный и относительныйа приоритеты. Запрос,

имеющий абсолютный приоритет, прерывает выполняемую программу и

инициирует выполнение соответствующей прерывающей программы. Зап-

рос с относительным приоритетома является первыма кандидатома на

обслуживание после завершения выполнения текущей программы.

Если наиболее приоритетный из выставленных запросов прерыва-

ния неа превосходита по ровню приоритета выполняемую процессором

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

откладывается до завершения выполнения текущей программы.

Простейший способ становления приоритетных соотношений меж-

ду запросамиа состоит в том, что приоритет определяется порядком

присоединения линий сигналов запросов ко входам системы прерыва-

ния. При появлении нескольких запросов прерывания первым воспри-

нимается запрос, поступивший на вход с меньшим номером. Ва этом

случае приоритет является жестко фиксированным.

.

- 5 -

Процедура прерывания с опросом источников прерывания

В системе c фиксированными приоритетами каждому источнику

запросова соответствуета отдельный разряда ва регистре запросов

прерывания.

При наличии запрос илиа несколькиха запросова формируется

общий сигнал прерывания ОСП, инициирующий выполняемую специальной

программой или аппаратурой процедуру опрос регистр прерывания

или просто линий сигналов прерывания для становленного источни-

ка, выставившего запрос с наибольшим приоритетом.

Программный опрос источников прерываний занимает сравнитель-

но много времени. Для скорения опроса его выполняют аппаратными

средствами.

Циклический опрос источников прерываний

┌─────────────┐

Счетчик │<─────────────────────────────────┐

│ │<───────────────┐ │

└─┬──────┬──┬─┘ Сброс │ │ Код номера

n│... 2│ 1│ │ запроса

│ ├──────────────────┼─────────────────┼──────────>

│ ├──┼──────────────────┼─────────────────┼──────────>

├──────┼──┼──────────────────┼─────────────────┼──────────>

┌─┴──────┴──┴─┐ │ │

│ Дешифратора │ │ │

└─┬──────┬──┬─┘ От ГТИ ┌──┐ │

k│... 2│ 1 ┌──┐ а ─────────┤& ├─┘

1а │ └──┤& ├──┐ │ ┌─┤а │

───┼──────┼─────┤а │ │ │ └──┘

│ │ └──┘а ┌───┐а │ │

│ │ ┌──┐а └──┤1а │ │ Общий сигнал

2а │ └─────┤& ├─────┤ ┌─┬───┐ │ прерывания

───┼────────────┤а а . а ├──┼──┤S│ T ├─┼──────────────────>

│ └──┘. а │ │ │

│. ┌──┤ ├──┤Rа ├─┘

│. └───┘а └─┴───┘

│ ┌──┐а │ │ Сброс счетчика

kа └────────────┤& ├──┘ └──────────────────────────────

────────────────┤а │

Запросы └──┘

прерывания

Опрос kа линий источников прерывания производится циклически

с помощью n-разрядного счетчика, на который с некоторой частотой

поступают импульсы от тактового генератора. Поиск приоритетного

запроса прерывания начинается со сброса счетчика и триггер Tа в

нулевое состояние;а при этом импульсы генератора начинают посту-


- 6 -

пать на вход счетчика. При помощи дешифратора и элементова Иа в

каждом такте поиска проверяется наличие запроса прерывания, номер

которого совпадает с кодом счетчика. Если н даннома входе нет

запроса, то к счетчику прибавляется 1а и проверяется следующий

вход. Если имеется запрос, триггер T переходит в состояние 1; при

этом в процессор посылается общий сигнал прерывания ОСП и прекра-

щается поступление импульсов на вход счетчика, т.е. завершается

цикл просмотр входова системы прерывания. Содержимое счетчика

используется для формирования начального адреса прерывающей прог-

раммы.

Цепочечная однотактная схема

определения приоритетного запроса

Время реакции при аппаратном циклическом опросе в некоторых

случаях может оказаться недопустимо большим, поэтому может потре-

боваться схема, позволяющая определить номера запрос з один

такт.

Рассмотрим цепочечную однотактную схему определения приори-

тетного запроса.

ЗП1 ЗП2 ЗП3

а │ │

Приоритет │ ┌──┐а │ ┌──┐а │ ┌──┐

─────────┬┼────────┤& ├─┬┼────────┤& ├─┬┼────────┤& ├──>...

││ ┌─ 7@ 0а │ ││ ┌─ 7@ 0а │ ││ ┌─ 7@ 0а │

а││ ┌──┐ │ └──┘ ││ ┌──┐ │ └──┘ ││ ┌──┐ │ └──┘

а│└─┤& ├─┤ │└─┤& ├─┤ │└─┤& ├─┤

а└──┤а │ │ └──┤а │ │ └──┤а │ ┌──┐

└──┘ │ └──┘ │ └──┘ ├──┤1 │ ОСП ┌──┐

а│ ├──────────────┼──┤а ├─────┤& ├─>

а├──────────────┼──────────────┼──┤а ┌──┤а │

│ └──┘а └──┘

┌─────┴──────────────┴──────────────┴─────┐а │

Шифратор номера приоритетного запрос │

└────────────────────╥────────────────────┘а │

║ ┌────────────┐а │

Порог прерывания ╠══════>│ Компаратор ├──┘

════════════════════════════════╬══════>│ │ Разрешение

║ └────────────┘ прерывания

V

Код запроса

Процесс определения приоритетного запроса инициируется сиг-

налом "Приоритет", поступающим на цепочку последовательно вклю-

ченных схем И. При отсутствии запросов этот сигнал пройдет через

цепочку и сигнал общего запроса прерывания не сформируется. Если

среди выставленных запросов прерывания наибольший приоритет имеет


- 7 -

i-й запрос, то распространение сигнала "Приоритет" правее схемы И

с номером i блокируется. На i-ма выходе цепочечнойа схемы будет

сигнал 1, на всех остальных - 0. При этом в процессор поступает

общий сигнала прерывания, шифратор формирует код i-го запроса.

По сигналу процессора "Подтверждение прерывания" этот код переда-

ется ва процессора и используется для формирования начального

дреса прерывающей программы.

ВЕКТОРНОЕ ПРЕРЫВАНИЕ

Процедура опроса источников прерывания, даже если она выпол-

няется аппаратными средствами, требует больших затрат времени.

Более гибким и динамичным является векторное прерывание, при

котором исключается опрос источников прерывания.

Прерывание называется векторным, если источник прерывания,

выставляя запрос, посылает в процессор код адреса в памяти своего

вектора прерывания.

Отметим, что прерывание на основе опроса источников прерыва-

ний всегд сопровождается переходом по одному и тому же адресу и

инициирует одну и ту же прерывающую подпрограмму, которая после

идентификации источника запрос иа формирования адрес соответ-

ствующей программы прерывания передает ей правление. При вектор-

ном прерывании каждому запросу прерывания соответствует переход к

программе, расположенной по адресу, задаваемому вектором прерыва-

ния.

ПРОГРАММНОЕ ПРАВЛЕНИЕ ПРИОРИТЕТОМ

Относительная степень важности программ в ходе вычислитель-

ного процесса может меняться. требуя становления новыха приори-

тетных отношений. Необходимо иметь возможность изменять по мере

надобности приоритетные соотношения программным путем.

В ЭМа широко применяются два способа реализации программно

управляемого приоритета, в которых используются или порог преры-

вания, или маски прерывания.

Метод порога прерывания

Этота метода позволяет в ходе вычислительного процесса прог-

раммным путем изменять ровень приоритета процессора относительно

приоритетов источников прерываний.

Порога прерывания -а это минимальныйа уровень приоритета

запросов, которыма разрешается прерывать программу, выполняемую

процессором.

Порог прерывания задается командойа программы, станавли-

вающей ва регистреа порог прерывания кода порог прерывания.


- 8 -

Специальная схем выделяет наиболее приоритетный запрос прерыва-

ния, сравниваета его приоритет с порогом прерывания и, если он

оказывается вышеа порога, вырабатываета общий сигнал прерывания,

запускающий процедуру обработки прерывания.

Метод маски прерывания

В современных ЭВМ общего назначения наибольшее распростране-

ние получило программное правление приоритетом на основе маски

прерывания.

Маска прерывания представляета собой двоичный код, разряды

которого поставлены в соответствие отдельным запросам или классам

прерываний. Маска загружается командой программы в регистр маски.

Состояние 1 в данном разряде регистра маски разрешает, состоя-

ние 0а запрещаета (маскирует)а прерывание текущейа программы от

соответствующего запроса. Таким образом можно изменять приоритеты

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

прерывающая программа может станавливать свою маску.

Замаскированные запросы можно либо игнорировать, либо запо-

минать, чтобы можно было осуществить затребованные действия,

когда запрет будет снят.


ВТОРОЙ СЕМЕСТР

СЕМИНАР N 3

ОРГАНИЗАЦИЯ СИСТЕМЫ ПРЕРЫВАНИЙ МИКРОПРОЦЕССОРА 8086

Микропроцессор 8086 имеет простую, но достаточно ниверсаль-

ную систему прерываний. Каждому прерыванию поставлена ва соот-

ветствие код типа. Допускается обработка до 256 типов прерываний.

Прерывания могут инициироваться внешними стройствами и командами

программных прерываний. В некоторых случаях прерывания генерирует

сам микропроцессор.

Возможные источники прерываний:

Немаскируемое прерывание

─────────────────────────────────────────┐

│NMI

┌──────────┐ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─│─ ─ ─ ─ ─ ─ ─ ┐

───>│ │ V МП 8086

───>│ │ INTа ┌─────────────────────────────┐│

Запросы ───>│ ├────────>│ Схемы прерываний │

от ───>│Контроллер│ └───┬─────┬─────┬─────┬───────┘│

уст- ───>│прерываний│ │ │ │ │

ройства ───>│ │ ┌───┴───┐ │ ┌───┴───┐ │ │

───>│ │ │Команда│ │ │Ошибка │ │

───>│ │ INTа │ │ │деления│ │ │

└──────────┘ └───────┘ │ └───────┘ │

│ ┌───┴───┐ ┌─────┴─────┐а │

│Команда│ │Одношаговый│

│ │ INT0а │ режим │

└───────┘ └───────────┘

└ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘

Внешние прерывания

В микропроцессоре имеются два входа прерываний - маскируемо-

го прерывания INT и немаскируемого прерывания NMI.

На вход INT подается сигнал от программируемого контроллера

прерываний, которыйа обрабатываета сигналы запросов прерываний от

периферийных стройств. Для программы контроллер прерываний выг-

лядит, кака порт ввода-вывода, ва которома фиксируется код типа

прерывания. Его основная функция заключается в восприятии сигна-

лов от периферийных стройств, определении запроса с максимальным

приоритетома и генерированииа сигнал INT, еслиа запроса имеет

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

Если установлен сигнал на линии INT и становлен в 1а флажок

разрешения прерывания IF, то после завершения выполнения текущей

команды происходит прерывание иа процессора выполняета следующие

действия:

1) выдает контроллеру прерывания подтверждение прерывания;

2) считывает из контроллера прерывания код типа прерывания;

3) заносит в стек содержимое регистра флагов;

4) заносит в стек содержимое регистров IP и CS;

5) вызывает и выполняет процедуру прерывания;

6) извлекает из стека содержимое CS и IP;

7) извлекает из стека содержимое регистра флагов;

8) возвращается к выполнению следующей команды прерванной прог-

раммы.

Линия немаскируемого прерывания NMI используется для сигна-

лизации о катастрофическиха событиях в системе. Немаскированные


- 2 -

прерывания имеют фиксированный код 2. Немаскированное прерывание

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

дения и считывания типа.

Если установлен сигнала н линииа NMI, то после завершения

выполнения текущейа команды происходита прерываниеа и процессор

выполняет следующие действия:

1) заносит в стек содержимое регистра флагов;

2) заносита ва стек содержимое регистра IP и CS, запоминая тем

самым точку возврата из процедуры прерывания;

3) вызывает и выполняет процедуру прерывания;

4) извлекает из стека содержимое CS и IP;

5) извлекает из стека содержимое регистра флагов;

6) возвращается к выполнению следующей команды.

Наибольшее время запаздывания реакции на внешние прерывания

получается при выполнении команд множения, деления и многобитно-

го сдвига.

Внутренние прерывания

В процессоре а8086 предусмотрено несколько внутренних преры-

ваний, генерируемыха при выполненииа программы. Команд INT n

вызывает прерывание сразу после своего завершения. Тип прерывания

n, закодированный программистом в команде, определяет вызываемую

процедуру прерывания. Следовательно, эту команду можно использо-

вать для отладки процедур прерываний, обслуживающих периферийные

устройства.

Команд INTOа генерируета прерывание тип 4а после своего

завершения, если становлен флаг переполнения OF.

Процессор самостоятельно генерирует прерывание типа 0а сразу

после выполнения команд деления DIVа и IDIV, еслиа имело место

деление на 0.

Если установлен флаг пошаговой работы TF, процессор автома-

тическиа генерируета прерывание тип 1а после выполнения каждой

команды. Пошаговый режим предназначен для отладки программ.

Внутренние прерывания характеризуются следующими свойствами:

1) Типа прерывания либо предопределен, либо содержится в коде

команды.

2) Подтверждение прерывания не выдается.

3) Внутренние прерывания нельзя запретить, кроме прерываний

пошаговой работы.

4) Любое внутреннее прерывание (за исключением прерывания поша-

говой работы) имеет более высокий приоритет, чем внешние прерыва-

ния. Если запрос NMI или INT появляется при выполненииа команды,

которая сам генерирует внутреннее прерывание (например, ошибка

деления), оно обрабатывается первым.

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

следующие действия:

1) заносит в стек содержимое регистра флагов;

2) заносит в стек содержимое регистра IP и CS;

3) вызывает и выполняет процедуру прерывания;

4) извлекает из стека содержимое CS и IP;

5) извлекает из стека содержимое регистра флагов;

6) возвращается к выполнению следующей команды.

Приоритеты прерываний в порядке их убывания:

1) прерывание из-за ошибки деления;

2) программное прерывание, инициируемое командой INT;

3) команда прерывания при переполнении;


- 3 -

4) немаскируемое прерывание NMI;

5) маскируемое прерывание INT;

6) прерывание пошаговой работы.

Таблица казателей векторов прерываний

Таблица указателей векторова прерыванийа осуществляет связь

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

прерывание данного типа. Таблица занимает 1 Кбайт памяти с диапа-

зоном адресов 0 - 3FF и может содержать до 256 элементов. Каждый

элемент i таблицы представляет собой полный начальный логический

дрес процедуры, которая обслуживает прерывание типа i. Слово с

меньшим адресома содержита смещение, слово с большим адресом -

базовый адрес сегмента. Так как каждый элемент таблицы состоит из

4 байт, процессор вычисляет адрес нужного элемента таблицы путем

умножения кода типа на 4.

Процедуры прерываний

Когда вызывается процедура прерывания, содержимое регистров

флагов, CS и IP включено в стек, флаги IF и TF сброшены. Проце-

дура можета разрешить внешние прерывания командой STI, допуская

прерывание самой себя запросома н входе INT. Кроме того, она

можета быть всегд прерван запросома н входе немаскируемых

прерываний на входе NMI. Внутренние прерывания, возникающие при

выполнении процедуры, будут также прерывать ее. В каждой процеду-

ре необходимо тщательно следить за тем, чтобы в ней не возникло

прерывание того типа, которое она обслуживает. Необходимо также

задавать объем стека, рассчитанный на максимальную глубину вложе-

ния прерываний.

Каждая процедура прерывания должна запоминать в стеке содер-

жимое всех регистров, которые она использует, до их модификации,

перед завершением восстанавливать содержимое этих регистров.

Целесообразно разрешать восприятие прерываний по входу INT

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

которые нельзя прерывать без риска получения ошибочных результа-

тов. Если прерывания запрещены слишком долго, возникает потенци-

льная опасность потери запросов прерываний по входу INT.

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

из прерывания IRET. Перед ее выполнением предполагается, что стек

находится в том состоянии, ва какома она была сразу после вызова

процедуры. Команд IRETа извлекает три верхних слова из стека в

регистры IP, CS и флагов.

Фактические действия процедуры зависята ота ее назначения.

Если процедура обслуживает периферийное стройство, он должна

передать ему приказ о снятии запроса прерывания. Затем она может

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

причину прерывания и предпринять соответствующие действия.

Программные прерывания можно использовать для вызов обслу-

живающих программ операционной системы (вызов супервизора).

Прерывание типа 0

Прерывание из-з ошибкиа деления возникаета ва том случае,

когда результат операции деления превышает максимально допустимое

значение, например, при делении на 0.

.

- 4 -

Прерывание типа 1

Прерывание пошагового режима автоматически генерируется мик-

ропроцессором после выполнения каждой команды, если становлен

флаг TF. При выполненииа прерывания содержимое регистра флагов

загружается в стек, затем флажки IF и TF сбрасываются. Следова-

тельно, послеа вызова соответствующей процедуры процессор перехо-

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

извлекаются старыеа состояния флажков и процессор возвращается в

пошаговый режим работы.

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

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

выполнения каждой команды отлаживаемой программы.

Прерывание типа 3

Прерывание тип 3а -а это прерываниеа контрольной точки.

Контрольной точкой называется любое место ва программе, где ее

выполнение приостанавливается и вызывается специальная программа

обработки. Контрольные точки используются программами-отладчиками

для отображения содержимого регистров, ячеека памяти иа портов

ввода-вывода в критических местах программы.

Команда INT3 имеет длину 1 байт, что позволяет вставлять ее

в любом месте программы: запоминается заменяемая команда и вместо

нее подставляется команд INT3. Процедур контрольной точки,

после выполнения своих основныха функций, восстанавливаета ранее

замененную команду и производит декремент слова в стеке, которое

хранило старое значениеа IP, чтобы послеа завершения процедуры

произошел переход к этой команде.


ВТОРОЙ СЕМЕСТР

СЕМИНАР N 4

 КОНТРОЛЛЕР ПРЕРЫВАНИЙ

Программируемый контроллер прерываний 8259 предназначена для

обработки до 8 приоритетных ровней прерываний. Возможно каскади-

рование микросхем, при этом общее число ровней прерывания будет

достигать 64.

Контроллер 8259 имеет несколько режимов работы, которые с-

танавливаются программныма путем. В ПЭВМ IBM используется только

один из этих режимов, который станавливается программами началь-

ной загрузки BIOS при запуске машины. Без крайней необходимости

не желательно перепрограммировать контроллер, так как неправиль-

ное программирование нарушает логику работы всей системы.

словное графическое изображение микросхемы:

┌──────┬─────┬──────┐

 756 0а │ PIC │ │

11 ───┤а D0а │ │ │

10 ───┤а D1а │ │ │

9 ───┤а D2а │ │ │

8 ───┤а D3а │ │ │

7 ───┤а D4а │ │ │

6 ───┤а D5а │ │ │

5 ───┤а D6а │ │ │

4 ───┤а D7а │ │ │

├──────┤ │ │

27 ───┤а A0а │ │ INT а├─── 17

├──────┤ │ │

18 ───┤ IRQ0 │ │ │

19 ───┤ IRQ1 │ │ │

20 ───┤ IRQ2 │ │ CAS0 ├─── 12

21 ───┤ IRQ3 │ │ │

а22 ───┤ IRQ4 │ │ CAS1 ├─── 13

23 ───┤ IRQ5 │ │ │

24 ───┤ IRQ6 │ │ CAS2 ├─── 15

25 ───┤ IRQ7 │ │ │

├──────┤ ├──────┤

1 ─── 7@ 0а CSа │ │ │

2 ─── 7@ 0а WRа │ │ GNDа ├─── 14

3 ─── 7@ 0а RDа │ │ │

26 ─── 7@ 0 INTA │ │ U 4cc 0а ├─── 28

16 ─── 7@ 0 MS/SW│ │ │

└──────┴─────┴──────┘

.

- 2 -

D0-D7 - канал данных;

A0 - адресная линия нулевого разряда;

IRQ0-IRQ7 - входы запросов прерываний;

 4__

CS - сигнал "выбор микросхемы";

 4__

WR - сигнал "запись информации";

 4__

RD - сигнал "чтение информации";

 4

INTA - сигнал "подтверждение прерывания";

 4__ __

MS/SW - выбор ведомой микросхемы;

INT - сигнал прерывания;

CAS0-CAS2 - шина каскадирования;

GND - "земля";

U 4cc 0 - напряжение питания.

 4

INTA INT

│ ^

┌──────────┐ ┌──┐ v │

│ Буферные а ┌──────────────────┴──────┐

D0-D7 <══>│ регистры │<═> а стройство правления │

данныха а а └─────────┬───────────────┘

└──────────┘ │ ^ │ ^

╔╡а ╞═══════╝ │ │

 4__ 0 ┌──────────┐а ║ └─────────────┴───────────┴─────┐

RD ───>│Логическая ║│Внутренняя 8-разрядная шина дпнных│

 4__ 0 схем ║ ┌─────────────┬─────────────────┘

WR ───>│ чтения-а │<═╣ │ ^ │ ^ ^

│ записи ║ │ ║ │ ║ │

A0 ───>│ ║ │ ║ │ v │

└──────────┘а ║ │ v vа ┌────────┴─┐<─ IRQ0

 4__ 0 ^ ║ а ┌───────────┐│ │<─ IRQ1

CS ─────────┘ ║ а Регистра ││ Регистра │<─ IRQ2

║ │обслуженных││ запросов │<─ IRQ3

┌──────────┐а ║ а запросов ││прерывания│<─ IRQ4

CAS0 <──>│ Буферная ║ └───────────┘│ │<─ IRQ5

схем а ║ │ ^ │ │<─ IRQ6

CAS1 <──>│ каскади- │<═╝ │ ║ └──────────┘<─ IRQ7

│ рования │ ║ ^

CAS2 <──>│ а а ┌─────╨────────────╨────────┐

└──────────┘ а│Схема маскирования запросов│

 4__ __ 0 ^ │<═> прерывания и анализа иха │

MS/SW ─────────┘ а │ по приоритету │

└──┘ └───────────────────────────┘

.

- 3 -

Регистр запросов прерывания IRR предназначена для записи и

хранения запросов прерывания (IRQ). Регистр обслуженных запросов

ISR предназначен для хранения сигнала, обслуживаемого ва данный

момент.

Схема маскирования IMR разрешает или запрещаета прохождение

сигналов с выхода регистра запросов прерывния на входы схемы ана-

лиза по ровню приоритета. Сигналы, прошедшие через схему маски-

рования, анализируются по ровню приоритета. Запросы с более вы-

соким приоритетом, занесенные ва регистра обслуженныха запросов,

запрещаюта прохождение через схему маскирования равных или низших

по ровню приоритета запросов. Для разрешения прохождения этих

запросова необходимо подать на микросхему команду "Конец прерыва-

ния" либо команду специального маскирования.

Различные сочетания сигналов, подаваемых на вход логической

схемы чтения/записи, позволяют записывать команды в регистры мик-

росхемы, также считывать содержимое этих регистров на шину дан-

ных.

стройство управления предназначено для выдачиа сигнал INT

после поступления одного или нескольких запросов на входы IRQ0-

IRQ7, также для формирования команды CALL.

Если необходимо обслуживать более 8 линий запросов прерыва-

ния, используется метод каскадирования: один контроллер включает-

 4__ __

ся кака ведущая микросхем (н входе MS/SV напряжение высокого

 4__ __

уровня), остальные - как ведомые (н входаха MS/SVа напряжение

низкого ровня), причема каждой ведомой микросхеме присваивается

номер, который станавливается программныма путема переда началом

работы.

В машинах IBM AT имеется 15 линий сигналова прерывания, для

обслуживания которыха используются ведущая и одна ведомая микрос-

хемы. Для каскадирования используется линия IRQ2 ведущей микрос-

хемы (в результате ошибока проектирования линии прерываний были

распределены достаточно произвольным образом).

Каждому приоритетному ровню прерывания контроллер 8259 ста-

вит ва соответствие определенный, задаваемый программно, номер

прерывания. Ведомой микросхеме программным методома присваивается

код, равный номеру входа IRQ ведущей микросхемы, с которым соеди-

нен выход запроса прерывания INT ведомой микросхемы. Внутри мик-

росхемы приоритет зависит от номера IRQ и задается программно.

.

- 4 -

┌─────────────────┐

IRQ0 (таймер) ────┤ │

IRQ1 (клавиатура) ────┤ │

IRQ2 (каскадирование) ┌─┤ │ К шине

IRQ3 (порт COM2) ──┼─┤ Ведущий │ INT правления

IRQ4 (порт COM1) ──┼─┤ контроллер ├─────────────────>

IRQ5 (резерв) ──┼─┤ │ процессора

IRQ6 (кондроллер НГМД) ──┼─┤ │

IRQ7 (принтер) ──┼─┤ │

│ └─┬──────┬──────┬─┘

а │CAS0а │CAS1а │CAS2

└───┼──────┼──────┼─────────┐

│ │ │ │

v v v │

┌─────────────────┐ │

IRQ8 (часы) ────┤ │ │

IRQ9 (контроллер EGA)а ────┤ │ │

IRQ10 (резерв) ────┤ │ │

IRQ11 (резерв) ────┤ Ведомый │ INT │

IRQ12 (резерв) ────┤ контроллер ├───────┘

IRQ13 (сопроцессор) ────┤ │

IRQ14 (НЖМД) ────┤ │

IRQ15 (резерв) ────┤ │

└─────────────────┘

Приоритеты прерываний распределены в следующем порядке (по

убыванию приоритета):

IRQ0а - прерывание таймера;

IRQ1а - прерывание от клавиатуры;

IRQ8а - прерывание от часов реального времени;

IRQ9а - прерывание от контроллер EGA;

IRQ10 - зарезервированная линия;

IRQ11 - зарезервированная линия;

IRQ12 - зарезервированная линия;

IRQ13 - прерывание от математического сопроцессора;

IRQ14 - прерывание от контроллера жестких дисков;

IRQ15 - зарезервированная линия;

IRQ3а - прерывание от последовательного порта COM2;

IRQ4а - прерывание от последовательного порта COM1;

IRQ5а - зарезервированная линия;

IRQ6а - прерывание от контроллера гибких дисков;

IRQ7а - прерывание от параллельного порта (от принтера).

Часть линий прерываний жестко закреплена за стройствами оп-

ределенных типов, а другая часть находится в полном распоряжении

пользователя. Возможность свободного использования зарезервиро-

ванных линий создает определенные проблемы, называемые конфликта-

ми прерываний. Такой конфликт может возникнуть в результате ошиб-


- 5 -

ки пользователя в процессе становки контроллера какого-либо но-

вого стройства: может возникнуть ситуация, когда два контроллера

посылают запросы прерываний на одну и ту же линию, и процессор не

знает, какое иза устройства послало сигнал. Для предотвращения

конфликта перед становкой нового стройства необходимо использо-

вать специальную программу, которая определяет, какие иза линий

прерываний в системе свободны, затем настроить новый контроллер

на одну из свободных линий путем соответствующей установки перек-

лючателей на контроллере.

Имеется два типа команд, посылаемых программой в контроллер

8259 - команды инициализации и команды операции. Возможны следую-

щие операции:

- индивидуальное маскирование запросов прерывания;

- специальное маскирование обслуженных запросов;

- становка статуса ровней приоритета (по становке исходного

состояния, по обслуженному запросу, по казанию);

- операции конца прерывания (обычный конец, специальный конец,

автоматический конец);

- чтение регистров IRR, ISR, IMR.

Команды операций бывают трех типов:

- маскирование запросов прерывания;

- команды обработки конца прерывания;

- опрос регистров и специальное маскирование.

Байты команды маскирования запросов прерывания выводятся со-

ответственно в порты 21h и A1h для ведущего и ведомого контролле-

ров. Команды операций второго и третьего типа используют порты с

дресами 20h (ведущий) и A0h (ведомый).

Разряды регистра маски прерываний соответствуют номерам IRQ.

Для того, чтобы замаскировать (запретить) аппаратное прерывание

какого-либо ровня, надо заслать в регистр маски байт, в котором

бит, соответствующий этому ровню, установлен в 1. Например,

для маскирования НГМД в порта 21hа надо заслать двоичноеа число

01b.

Из всего списка команд контроллера 8259 программистуа обычно

необходима только команда "Обычный конец прерывания" с кодом 20h.

Если написанная вами программ содержита обработчика аппаратного

прерывания, полностью заменяющий собой стандартный обработчик BI-

OS, этот обработчик (после завершения обработки прерывания) дол-

жен выдавать команду "Обычный конец прерывания" 20h в порт 20h, и

при необходимости, такую же команду в порт A0h (если номер преры-

вания больше 7). Если же ваша программа просто перехватывает пре-

рывание, затема передаета правление стандартному обработчику

BIOS, то команды завершения прерывания будет посылать этот обра-

ботчик.

.

- 6 -

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

Порт последовательной передачи данных RS-232-Cа (асинхронный

даптер) предназначена для подключения к ПЭВМ IBM PC/AT низкоско-

ростных периферийных стройств, работающих со скоростями передачи

данных не выше 115200 бит/с (14400 байт/с), к которым относятся:

- манипуляторы типа "мышь";

- графопостроители;

- ручные сканеры;

- принтеры;

- модедемы.

При использовании метод последовательной передачи данных

данные иа синхронизирующая информация передаются по одной линии

последовательно во времени (по одному биту). Синхронизация необ-

ходима, так как частоты задающих генераторов приемника и передат-

чика не совпадают даже при использованииа кварцевыха резонаторов

(расхождение может составлять доли процента).

Для синхрониза группе информационных битов обычно предшест-

вует специальный  2"стартовый" 0 бит. Для контроля правильности пере-

дачи данных после группы информационных битов передается бит про-

верки н четность (P). Завершают посылку один или два стоповых

бита.

START

а 0 1 2 3 4 5 6 7 P STOP

───────────┐ V ┌───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌─────

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

Использование (или неиспользование)а бит четности, число

информационных, стартовых и стоповыха битова определяета  2протокол

 2передачи данных 0.

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

ПЭВМ IBMа ATа ва стандартной конфигурации имеет один или два

порта последовательной передачи данных. Порта N1а имеета кодовое

обозначение COM1а и базовый адрес 3F8h (занимает пространство ад-

ресов от 3F8h до 3FFh). Порт COM1 вырабатываета прерывание IRQ4

(INT 0Ch). Порт N2 обозначается COM2, занимает пространство ад-

ресов от 2F8h до 2FFh и вырабатывает прерывание IRQ3 (INT 0Bh).

Порт 3F8h (2F8h) - этот адрес разделяют два регистра:

1) регистр данных (при передаче в него записываются, при

приеме из него считываются байты данных).

2) регистр младшего байта делителя частоты.

Порт 3F9h (2F9h) - этот адрес разделяют два регистра:


- 7 -

1) регистр управления прерываниями:

- если бита 0а установлен в 1, разрешено прерывание при пос-

туплении байта данных;

- если бит 1 установлен в 1, разрешено прерывание при завер-

шении передачи байта данных;

- если бит 2 установлен в 1, разрешено прерывание по ошибке;

- если бит 3 установлен в 1, разрешено прерывание по сигналу

от модема;

- биты 4-7 не используются и должны быть становлены в 0.

2) регистр старшего байта делителя частоты.

Порт 3FAh (2FAh) - регистр идентификации прерывания:

- если бит 0 установлен в 1, то это означает наличие сигнала

прерывания;

- биты 1 и 2 идентифицируют источник сигнала прерывания:

00 - изменилось состояние модема;

01 - завершилась передача байта;

10 - завершен прием байта;

11 - ошибка при приеме данных.

- биты 3 - 7 не используются (установлены в 0).

Порт 3FBh (2FBh) - регистр правления:

- биты 0 и 1 задают длину передаваемого слова в битах: (00 -

5 бит, 01 - 6 бит, 10 - 7 бит, 11 - 8 бит);

- бита 2а определяета число стоповыха битова (0а -а 1а бит,

1 - 2 бита);

- биты 3а определяета наличие контроля по четности (0 - нет

контроля, 1 - есть контроль);

- бит 4 определяет тип контроля (0 - контроль на нечетность,

1 - на четность);

- бит 5 при установке в 1 блокирует контроль по четности;

- бит 6 - выдает на линию передачи сигнал "Обрыв линии";

- бит 7 управляет регистрами 3F8h и 3F9h:а при установке в 1

этого бита данные регистры используются для загрузки делителя

частоты тактового генератора, при 0 - как регистр данных и ре-

гистр правления прерываниями соответственно.

Порт 3FCh (2FCh) - регистр правления модемом:

- бит 0 - готовность выходных данных (при 1 данные готовы);

- бит 1 - готовность к приему данных;

- биты 2 и 3 - сигналы OUT1 и OUT2 для модема;

- бит 4 - запуск самотестирования контроллера последователь-

ного порта;

- биты 5-7 не используются и должны быть становлены в 0.

Порт 3FDh (2FDh) - регистр состояния линии связи:

- бит 0 устанавливается в 1, когда данные получены и готовы

для считывания, и сбрасывается при чтении данныха иза регистра


- 8 -

3F8h;

- бит 1 устанавливается при ошибке переполнения приемника (в

приемник поступила новый байт, когда предыдущий еще не был счи-

тан);

- бит 2 устанавливается при обнаружении ошибки по четности;

- бит 3 устанавливается при обнаруженииа ошибки синхрониза-

ции;

- бит 4 устанавливается при обнаружении сигнала "Разрыва ли-

нии";

- бит 5 устанавливается в 1, когда завершена передача байта

данных и в передатчик можно записывать новый байт;

- бит 6 устанавливается в 1, когда регистр сдвига передатчи-

ка пуст;

- бит 7 устанавливается при обнаружении сигнала "Тайм-аут".

Порт 3FEh (2FEh) - регистр состояния модема.


ВТОРОЙ СЕМЕСТР

СЕМИНАР N 5

 ИНТЕРФЕЙСЫ НАКОПИТЕЛЕЙ

 НА ЖЕСТКИХ МАГНИТНЫХ ДИСКАХ (НЖМД)

В настоящее время имеется несколько основных стандартов на

интерфейсы для ПЭВМ и мини-ЭВМ, разработанных различными фирмами:

ST506/412 - разработан фирмой Seagate Technology, применялся

в ранних моделях IBM PC/AT, имеет скорость передачи данныха 0,6

Мбайт/с при MFM-кодировании и 0,9 Мбайт/с при RLL-кодировании;

ESDI (Enhanced Small Device Interface) - разработан по ини-

циативе фирмы Maxtor, в настоящее время вытеснен с рынк персо-

нальных компьютерова ва результате жесткой конкурентной борьбы с

интерфейсами IDE и SCSI;

IDE (Integrated Driveа Electronics)а -а разрабатывается под

контролем ANSI и по спецификации ANSI носит название ATA, ATA-2,

ATA-3, имеет скорость передачи данных до 16,5 Мбайт/с;

SCSI (Smallа Computerа System Interface) - ниверсальный ин-

терфейс, был предложен фирмой Shugart Associates и ва дальнейшем

разрабатывался под контролем ANSI, имеет скорость передачи данных

до 40 Мбайт/с.

IPI (Intelligent Peripherial Interface) - применяется в уни-

версальных вычислительных машинах, имеет скорость передачи данных

до 10 Мбайт/с, из сферы ПЭВМ и файл-серверов вытеснен более прос-

тым и дешевым интерфейсом SCSI.

Интерфейс ESDI

В интерфейсе ST412а по кабелю данных передавались необрабо-

танные сигналы, представляющие из себя смесь битов синхронизации

и данных. Разделение этих битов производилось схемами, находящи-

мися в адаптере. При этом специальные схемы фазовой автоподстрой-

ки частоты и генератора, управляемого напряжение, следили за из-

менением фазы входных сигналов и соответствующим образом подстра-

ивали схемы разделения.

В интерфейсе ESDI функции разделения данныха перенесены не-

посредственно в накопитель. Это изменение дает два основных преи-

мущуства: во-первых, уменьшение вероятности искажения сигнал в

результате передачи его по кабелю, во-вторых, появилась возмож-

ность подстраивать сам разделитель данных под характеристики дис-

ковода и носителя.

ESDI -а ниверсальныйа помехоустойчивый интерфейс, который

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

Спецификации ESDI определяют логический иа физический интерфейс

между контроллером и ПУ, но не определяют ни способ передачи дан-

ных между контроллером и процессором, ни способ записи информации

на внешнем стройстве.

.

- 2 -

Подключение внешних стройств в интерфейсе ESDI:

Шина правления

╔═════════════════════════╦═══════ ═ ═ ══════════╗

║ ┌───────╨──────┐ ┌───────╨──────┐

║ │ Устройство 1 ... │ стройство N │

║ └───────╥──────┘ └───────╥──────┘

┌──────╨─────┐а Шина данных ║ ║

│ Контроллер ╞═══════════════════╝ ║

│ Шина данных ║

│ ESDI ╞══════════════════════════════════════════╝

└──────╥─────┘

║ Шина компьютера

═ ═ ════╩════════════════════════════════ ═ ═

Интерфейс IDE

Интерфейс IDEа был разработан в качестве недорогой альтерна-

тивы интерфейсам ESDI и SCSI. Отличительная особенность этого ин-

терфейса - реализация функций контроллера в накопителе. При этом

плата, которая является промежуточной между системной шиной Ка и

НЖМД представляета собой довольно простое стройство, содержащее

дешифратор базовых адресов контроллера и формирователиа сигналов

интерфейса. Интерфейс позволяет подключать одина или два НЖМД.

Объем одного диска не может превышать 504 Mb.

НЖМД подключается к адаптеру одним 40-жильным кабелем:

┌─────────┐а ┌─────────┐

│ НЖМД N1 │ НЖМД N2 │

└────╥────┘а └────╥────┘

║а Шина IDEа ║

╠════════════╝

┌──────╨──────┐

│ Адаптер IDE │

└──────╥──────┘

Шина компьютер ║

═ ═ ═══════════════════╩════════ ═ ═

Примечание:а НЖМД N1 называют "ведущим" (Master), НЖМД N2 -

"ведомым" (Slave); поскольку оба накопителя подключены к одному и

тому же кабелю, номер накопителя задается переключателями на са-

мом накопителе. При становке второго накопителя для наращивания

дисковой памятиа ПЭМа необходимо внимательно изучить инструкцию,

поставляемую фирмами - поставщиками комплектующих вместе са нако-

.

- 3 -

пителем (на заводе-изготовителе переключатели могут быть установ-

лены в положение "Master").

Интерфейс Enhanced IDE (Fast ATA)а позволяета подключать до

4-х стройства различныха типов (накопителей на жестких или опти-

ческих дисках) емкостью более 504 Мбайт каждое (на данный момент

в широкой продаже имеются диски с интерфейсом EIDE емкостью 4Gb).

Интерфейс SCSI

Интерфейс SCSI определяет шину данных между центральным про-

цессором и несколькими ВЗУ, каждое из которых имеета свойа собс-

твенный контроллер. Помимо электрических и физических параметров

этой шины, интерфейс SCSI определяет систему команд, c помощью

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

собой.

┌──────────────┐ ┌──────────────┐ ┌──────────────┐

│ Устройство 1 │ │ стройство 2... │ стройство N │

└──────╥───────┘ └──────╥───────┘ └───────╥──────┘

║ ║ ║

┌──────╨───────┐ ┌──────╨───────┐ ┌───────╨──────┐

│ Контроллер 1 │ │ Контроллер 2 а ... │ Контроллер N │

└──────╥───────┘ └──────╥───────┘ └───────╥──────┘

║ ║ Шина SCSI ║

╚════════════════╬══════════════════════════╝

┌──────╨───────┐

│ Адаптер SCSI │

└──────╥───────┘

Шина компьютер ║

═ ═ ════════════════════╩════════════ ═ ═

Интерфейс SCSI предусматривает передачу данных по параллель-

ной 8-разрядной шине со скоростью до 4 Мбайт/с, интерфейс SCSI-2

- по 8 или 16-разрядной шине (со скоростями 10 и 20 Мбайт/с соот-

ветственно. Интерфейса SCSI-3а разрабатывается и будет позволять

передавать данные со скоростью 40 Мбайт/с.

НКЦИИ АДАПТЕРА НЖМД С ИНТЕРФЕЙСОМ ST412

Адаптер жесткого диска позволяет:

1) поддерживать формат данных на диске, совместимый с форма-

том данных IBM;

2) поддерживать не только стандартные, но также и задаваемые

пользователем типы НЖМД;

3) генерировать прерывание IRQ14;

4) осуществлять поиск требуемых циллиндрова одновременно на


- 4 -

двух НЖДа (если головки находятся не на требуемом циллиндре, то

инициируется его поиск, затем выполняется чтение или запись ин-

формации);

5) осуществлять предкомпенсацию записываемых данных ва соот-

ветствии с параметрами подключенных НЖМД;

6) производить автоматическое переключение головок накопите-

ля (приа обнаружении конца дорожки во время мультисекторной пере-

дачи адаптер выбирает следующую дорожку, при обнаружении конца

циллиндра - следующий циллиндр, после чего продолжается выполне-

ние команды);

7) обнаруживать ошибки в считываемой информации и корректи-

ровать пакеты ошибок длиной до 11 бит;

8) управлять последовательностью размещения секторов на до-

рожке (чередованием);

9) производить обмен данными с ЦП и ОЗУ в режиме программно-

го ввода-вывода;

10) производить внутреннюю диагностику аппаратуры адаптера.

Получив команды и данныеа от ЦП через программно-доступные

регистры, адаптер НЖМД начинает выполнять операцию. Передач в

ОЗУ компьютера считываемых данных, также прием из ОЗУ записыва-

емых данных происходит через буферную память адаптера НЖМД, необ-

ходимую для согласования временных параметров обмена данными меж-

ду НЖМД и системной шиной, также для коррекции информации (при

записи информацииа на диск формируется циклический избыточный код

контроля ошибок, который приписывается в конец каждого поля иден-

тификатора сектора и каждого поля данных).

ПОРТЫ ВВОДА-ВЫВОДА

Регистр данных 1F0h испльзуется при выполнении операции чте-

ния или записи сектора в программнома режимеа ввода-вывода. Этот

регистр недоступен, пока не начнется операция чтения или записи.

Передача данных осуществляется 16-разрядными словами.

Регистр ошибок 1F1h доступен только по чтению. Он определяет

состояние адаптера после выполнения операции. Состояние этого ре-

гистра действительно:

1) после выполнения команды, если становлен бит "Error" в

регистре состояния;

2) после выполнения команды "Диагностика" или после выполне-

ния внутренней диагностики адаптера по системному сбросу.

Коды регистра ошибок в диагностическома режиме:а 01hа -а нет

ошибки, 02h - ошибка адаптера, 03h - ошибка буфера сектора, 04h -

ошибка аппаратуры вычисления контрольных кодов, 05h - ошибка про-

цессора.

Значения битов регистра ошибок после выполнения команды (ус-

танавливаются в 1 при наличии соответствующей ошибки):


- 5 -

бит 0 - не найден адресный маркер сектора;

бит 1 - при выполнении команды "Рекалибровка" не найдена ну-

левая дорожка;

бит 2 - аварийное прекращение выполнения команды;

бит 3 не используется;

бит 4 - сектор с заданными координатами (циллиндр, головка,

сектор) не найден;

бит 5 не используется;

бит 6 - наличие некорректируемой ошибки данных;

бит 7 - в идентификаторе сектора обнаружена метка дефектного

сектора.

В регистр стартового циллиндра предкомпенсации 1F1h (доступ-

ный только для записи) заносится меньшенный ва 4 раза по отноше-

нию к действительному номер циллиндра, начиная с которого адаптер

осуществляет запись данных с предкомпенсацией.

В регистр счетчика секторов 1F2h заносится количество секто-

ров, которое должно быть считано или записано. Значение этого

регистра меньшается на 1а при обработке каждого сектора. При

мультисекторнома считывании сектора долны располагаться на диске

последовательно друг за другом (т.е. область данных должн быть

непрерывной).

Внимание! При записи 0 в этот регистра происходита обработка

256 секторов.

Этот регистр доступен для считывания - в случаеа возникнове-

ния ошибкиа при выполнении операции чтения или записи в этом ре-

гистре будет находиться число необработанных секторов.

В регистра номер сектор 1F3h загружается стартовый номер

сектора при операциях чтения-записи. После обработки каждого сек-

тора в этот регистр заносится номер следующего сектора, подлежа-

щего обработке.

Регистр доступен для чтения/записи. После выполнени команды

он содержит номер последнего обработанного сектора.

Регистры младшего (1F4h)а иа старшего (1F5h) байтов номера

циллиндра определяют стартовый циллиндр для выполнения команды.

Внимание!а В регистреа старшего байта используются только 2

младших разряда.

Регистр доступен для чтения/записи. После выполнени команды

он содержит текущий адрес циллиндра.

Биты регистра выбора НЖМД и номера головки 1F6hа (доступного

для чтения/записи) имеют следующие значения:

биты 0-3 - номер головки;

бит 4 - выбор НЖМД (1 или 2);

биты 5 и 6 - размер сектор (всегд используется двоичный


- 6 -

код 10, соответствующий размеру физического сектора 512 байт);

бит 7 не используется.

Регистр состояния 1F7h, доступный только для чтения, отобра-

жает состояние адаптера и НЖМД.

Значения битова регистр состояния (возникновение опреде-

ленного состояния индицируется становкой соответствующего бита

в 1):

бит 0 - при выполнении команды произошл ошибк (этот бит

сбрасывается при поступлении следующей команды);

бит 1 - сигнал "Index" активен;

бит 2 - индицирует, что при считывании с диска имел место

ошибка, но данные были спешно скорректированы;

бит 3 - имеется запрос на обмен данными с буфером в ОЗУ;

бит 4 - индицирует, что головки чтения-записи завершили по-

иск заданного сектора;

бит 5 - неисправность накопителя;

бит 6 - НГМД готов к выолнению операций чтения, записи или

поиска;

бит 7 - НГМД "занят", ему нельзя передавать команды или дан-

ные, нельзя считывать содержимое регистров (во избежание получе-

ния ложных данных).

Регистр команд 1F7h используется для загрузкиа выполняемой

команды (загрузка команды должна производиться только после того,

как подготовлены и записаны в регистры 1F1h-1F6h все необходимые

для ее выполнения даые).

Регистр управления 3F6h доступен только для записи. Значения

битов этого регистра следующие:

бит 0 не используется;

бит 1 - разрешение прерывания (0 - разрешено, 1 - запреще-

но);

бит 2 - сброс адаптера (сброс происходит при становке этого

бита в 1);

бит 3 - разрешение использования бита 3 для выбор головки

(0 - запрет, 1 - разрешение);

биты 4-7 не используются.


 ВТОРОЙ СЕМЕСТР

СЕМИНАР N 6

 _ИНТЕРФЕЙС ТУРБО АССЕМБЛЕРА И ТУРБО СИ

Для смешанного программирования на языке высокого уровня и

ссемблереа прекрасно подходит Турбо Си. Для объединения кода Ас-

семблера и Си в нем предусмотрен не один, целых дв механизма.

Средство встроенного Ассемблера в Турбо Си обеспечивает быстрый и

удобный способ для включения код Ассемблер непосредственно в

функцию Си. Для тех, кто предпочитает при программировании на Ас-

семблере использовать отдельные модули, целикома написанные на

этома языке, такие модули можно ассемблировать отдельно, а затем

компоновать с программами Турбо Си.

Встроенный Ассемблера -а это не что иное, как возможность

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

Каждый раз, когда Турбо Си обнаруживает ключевое слово asm,

указывающее, что это строка Ассемблера, он помещает данную строку

ссемблера непосредственно в скомпилированный код с одним измене-

нием:а ссылки н переменные Си преобразуются в соответствующий

эквивалент на Ассемблере. Предусмотрен возможность объединения

инструкцийа встроенного ассемблера в блоки с испотльзованием кон-

струкции asm {...}.

Турбо Си компилирует свой код таким образом, чтобы избежать

многих потенциально опасных взаимодействий со встроенныма Ассемб-

лером. Тем не менее, неправильно функционирующий встроенный код

ссемблера определенно может привести к серьезным ошибкам. Однако

ошибки во встроенном коде Ассемблера гораздо менее вероятны, чем

в программе, целиком написанной на Ассемблере, поскольку Турбо Си

берет на себя множество мелочей, таких, кака входа ва функции и

выход из них, передачу параметров и выделение памяти для перемен-

ных.

.

- 2 -

Как работает встроенный Ассемблер

Обычно Турбо Си компилирует каждый файла исходного код на

языке Си ва объектный файл, затем вызывает утилиту TLINK для

компоновки объектных файлов в выполняемую программу.

┌───────────────────────────────┐

а Исходный файл на языке Си │

└───────────────┬───────────────┘

V

╔═════════════╗

║а Турбо Си ║ Компиляция

╚══════╦══════╝

V

┌───────────────────────────────┐

│ Объектный файл │

└───────────────┬───────────────┘

V

╔═════════════╗

║ TLINK ║ Компоновка

╚══════╦══════╝

V

┌───────────────────────────────┐

│ Выполняемый файл │

└───────────────────────────────┘

Рис. 1 Цикл компиляции и компоновки Турбо Си.

Однако при использовании встроенного Ассемблера Турбо Си до-

бавляет в цикл компиляции и компоновки дополнительный шаг.

При обработке Турбо Си каждого модуля, где содержится встро-

енный код Ассемблера, сначала весь модуль компилируется в исход-

ный файл на языке Ассемблера, затем для трансляции полученного

кода Ассемблера объектный код вызывается Турбо Ассемблер. После

этого для компоновки объектных файлов вызывается тилит TLINK.

.

- 3 -

┌───────────────────────────────┐

а Исходный файл на языке Си │

└───────────────┬───────────────┘

V

╔═════════════╗

║а Турбо Си ║ Компиляция

╚══════╦══════╝

V

┌───────────────────────────────┐

Исходный файл на Ассемблере │

└───────────────┬───────────────┘

V

╔═════════════════╗

║ Турбо Ассемблер ║ Ассемблирование

╚════════╦════════╝

V

┌───────────────────────────────┐

│ Объектный файл │

└───────────────┬───────────────┘

V

╔═════════════╗

║ TLINK ║ Компоновка

╚══════╦══════╝

V

┌───────────────────────────────┐

│ Выполняемый файл │

└───────────────────────────────┘

Рис. 2. Цикл компиляции, ассемблирования и компоновки Турбо Си.

Встроенный код Ассемблера просто передается Турбо Си ва файл

на языке Ассемблера. Турбо Си не нужно ничего знать об ассембли-

рованииа встроенного кода, вместо этого Турбо Си компилирует

исходный код языка Си на ровень Ассемблера, затема позволяет

Турбо Ассемблеру выполнить трансляцию.

Обычно Турбо Си компилирует исходный кода непосредственно в

объектныйа код. Существует несколько способов, с помощью которых

можно сообщить Турбо Си, что нужно поддерживать встроенный Ассем-

блера путема компиляцииа на язык Ассемблера и последующего вызова

утилиты TLINK.

Параметр командной строки -s казывает Турбо Си, что нужно

транслировать исходный код в код Ассемблера, после чего прекра-

тить работу. Файл с расширением.ASM, сгенерированный Турбо Си

приа использовании параметра -s, можно отдельно ассемблировать и

скомпоновать с другими модулями Си и Ассемблера.

Параметр -b или вставленная в программу на C директива:

#pragma inline


- 4 -

указывают Турбо Си, что нужно выполнить трансляцию в Ассемблер,

затем для получения объектного код вызвать Турбо Ассемблер.

Лучше помещать казаниеа #pragma inlineа возможно ближе к началу

исходного кода языка Си, така кака любойа исходный код языка Си,

после которым следует следует данная директива, будет компилиро-

ваться дважды: один раз в обычном режиме, другой раз в режиме

Си -> Ассемблер.

Встроенный код Турбо Ассемблера

Встроенный код Ассемблера может находиться ва сегменте кода

или сегменте данных Турбо Си. Код Ассемблера, размещенный в функ-

ции, ассемблируется в сегмент кода Турбо Си, встроенный код,

размещенный вне функции, ассемблируется ва сегмент данных Турбо

Си.

Например, программа:

// Таблица квадратов значений

asm SquareLookUpTable labelа word;

asm dwа 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100;

// Функция для поиска квадрата значения между 0 и 10

int LookUpSquare(int Value)

{

asm mov bx,Value; // получить значение для возведения в квадрат

asm shl bx,1; // множить на 2 для поиска в таблице элементов размером в слово

asm mov ax,[SquareLookUpTable+bx]; // поиск в таблице

return(_AX);

}

помещает данные для таблицы SquareLookUpTableа ва сегмента данных

Турбо Си, встроенный код Ассемблера в LookUpTable в сегмент

кода Турбо Си. С равным спехом данные можно было бы поместить в

сегмента кода. Рассмотрима следующую версию LookUpSquare, где

SquareLookUpTable находится в сегменте кода Турбо Си:

int LookUpSquare(int Value)

{

asmа jmp SkipAroundData /* пропустить таблицу данных */

asmа SquareLookUpTable labelа word;

asmа dwа 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100;

SkipAroundData:

asmа mov bx,Value;

asmа shl bx,1;

asmа mov ax,[SquareLookUpTable+bx];

return(_AX);

}


- 5 -

Так как SquareLookUpTable находится в таблице кода Турбо Си,

то чтобы из нее можно было считывать, казалось бы требуется ис-

пользовать префикс переопределения сегмента CS:. Фактическиа для

доступ к SquareLookUpTable данный код автоматически ассемблиру-

ется с префиксом CS:. Турбо Си генерирует корректный кода Ассем-

блера, чтобы Турбо Ассемблера знал, к каком сегменте находится

SquareLookUpTable, Турбо Ассемблер затем генерирует необходимые

префиксы переопределения сегментов.

Формат встроенных операторов на языке Ассемблера

Встроенные операторы на языке Ассемблера во многом похожи на

обычные строки Ассемблера, но начинаются с ключевого слова asm.

Точка с запятой в отличие от других операторова Си в опера-

торах встроенного Ассемблер не является обязательной, хотя она

может использоваться для их завершения.

Комментировать код встроенного Ассемблер можно только с

помощью комментариев Си.

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

имена и на переменные Си.

Обращение к элементам структуры/объединения

Встроенный код Ассемблера может ссылаться непосредственно на

элементы структуры. Например, в следующем фрагменте программы:

.

.

structа Student {

char Teacher[30];

intа Grade;

} JohnQPublic;

.

.

asm movа ax,JohnQPublic.Grade;

.

.

в регистр AXа загружается содержимое элемент Gradeа структуры

JohnQPublic типа Student.

Встроенный код Ассемблера может также обращаться к элементам

структуры, адресуясь к ним относительно базового или индексного

регистра. Например:

asm mov bx,OFFSET JohnQPublic;

asm mov ax,[bx].Grade;

.

- 6 -

Здесь в регистр AX также загружается элемент Grade структуры

JohnQPublic. Поскольку Gradeа находится в структуре Student по

смещению 30, последний пример на самом деле принимает вид:

asm mov bx,OFFSET JohnQPublic;

asm mov ax,[bx]+30

Возможность обращаться к элементама структуры относительно

регистра-указателя является достаточно мощным средством, позволя-

ющим во встроенном коде Ассемблера работать с массивами и струк-

турами и использовать казатели на структуры.

Ограничения адресации к операндам в памяти

Единственное изменение, которое Турбо Си вносит ва операторы

встроенного Ассемблера, состоит в преобразовании ссылок на память

и адреса памяти (например, имен переменных и адресов перехода) из

их представления в Си в соответствующий эквивалент на Ассемблере.

Такие изменения налагают два ограничения: в инструкцияха перехода

встроенного Ассемблер можно ссылаться только на метки Си, в

прочих инструкциях можно ссылаться н что угодно, кроме меток

языка Си.

Заметим, что вызова подпрограммы не считается переходом,

поэтому в качестве операндов при вызове функции Си в инструкции

встроенного Ассемблера можно казывать имена функций Си иа метки

ссемблера, но не метки Си. Еслиа ва коде встроенного Ассемблера

имеется ссылка на имя функции Си, то перед именем функции должен

указываться символ подчеркивания.

Размер динамических локальных переменных

Когда Турбо Си заменяет в операторе встроенного Ассемблера

ссылку н динамическуюа локальную апеременную операндома вида

[BP-02], он не помещает в измененный оператор операцию назначения

размера (типа WORD PTR или BYTE PTR). Поэтомуа при обращении к

динамической локальной переменной, когда в качестве источника или

приемника используется ячейка памяти, нужно казывать размер опе-

ранда.

Пример:

int i;

asm mov WORD PTR i,0;

asm inc WORD PTR i;

Необходимость сохранения регистров

В конце каждого используемого вами код встроенного Ассем-

блер регистры BP, CS, DS и SS должны содержать те же значения,

которые они имелиа переда началома выполнения кода встроенного


- 7 -

ссемблера. Несоблюдение этого правила часто будета приводить к

варийному завершению программы и перезагрузкам системы. Регистры

AX, BX, CX, DX, SI, DI, ES и флаги в коде встроенного Ассемблера

можно свободно изменять.

 _СПОСОБЫ ПЕРЕДАЧИ ПАРАМЕТРОВ В ПОДПРОГРАММЫ

При организации подпрограмм важно выбрать правильный способ

передачи параметров. Для микропроцессорныха система разработано

несколько таких способов.

Передача параметров через глобальную область данных

Понятие общих (глобальных) данных относится к данным, храни-

мым в тех ячейках памяти, к которым могут обращаться и вызывающая

программа, и подпрограмма. Для этого и программа, и подпрограмма

должны знать адреса глобальной области. Этот способ применяется

для передачи данных большого объема, но имеет определенные огра-

ничения при совместном использовании ассемблера и языков высокого

уровня: объем области глобальных данных не должена превышать 6К

байт.

Передача параметров через регистры

Небольшой объем данных можета быть передана череза регистры

общего назначения AX, BX, CX, DX, SI, DI, BP и SP, также через

сегментные регистры DS и ES - всего 10 регистров, через которые

можно передать 20 байт информации. Этот способ обеспечивает мак-

симальную эффективность при работе с небольшими объемами данных,

так как процессор работает с регистрами значительно быстрее, чем

с памятью. Основной недостатока данного способ заключается в

жестких ограничениях на число передаваемых параметров.

Рассмотрим участок код программы, ва которома выполняется

вызов подпрограммы сложения двух целых чисел с передачей парамет-

ров в регистрах AX и BX. Подпрограмма возвращает результат сложе-

ния в регистре AX.

Фрагмент кода основной программы:

.

.

mov AX,17

mov BX,7021

callа Addition

.

.

Код подпрограммы:


- 8 -

Addition proc near

add AX,BX

ret

Addition endp

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

выделенную область памяти

Передача параметрова можета осуществляться через специально

выделенную область памяти, называемую областью параметров. Вызы-

вающая программ переда вызовом подпрограммы записывает данные в

последовательныха ячейкаха области параметров. Затема начальный

дрес этой областиа передается ва подпрограммуа череза регистры,

глобальную область данных или через стек. Иногда передавать пара-

метры ва смежных ячейках памяти по каким либо причинам неудобно.

В таких ситуацияха целесообразно передавать подпрограммеа адрес

таблицы, содержащей адреса параметров, либо поместить эту таблицу

в глобальную область памяти.

Передача параметров через сегмент кода

Когда программа хранится ва ПЗУ, можно разместить область

параметров в сегменте кода сразу после команды CALL, начальный

дреса этой областиа передавать череза стек. Когда выполняется

команда CALL, адрес возврата, фактически являющийся адресом пер-

вого параметра, включается в стек, правление передается первой

команде подпрограммы. Подпрограмм можета извлечь из стека этот

дрес, последовательно считать параметры, произвести необходимые

операции и затем, перед вызовом команды RET модифицировать в сте-

ке адрес возврата так, чтобы он казывал не на область парамет-

ров, на следующую команду программы.

Этот способ применяется крайне редко, так как требуета либо

применения префикса замены сегмента DS на CS при считывании пара-

метров, либо использования так называемой "малой модели памяти",

обеспечивающей совпадение сегментов CS и DS.

Передача параметров через стек

Передача параметров через стек добна и широко применяется в

языках высокого ровня. Вызывающая программа загружает передавае-

мые параметры в стек перед выполнением команды CALL. Вызываемая

подпрограмма получаета указатель стек ва регистраха SSа и SP,

затем копирует содержимое регистра SP в BP и использует адреса-

цию относительно регистровой пары SS:BP для считывания параметров

из стека. Копирование SP в BP необходимо, так как указатель стека

может изменяться и в самой подпрограмме. Послеа возврата из под-

программы вызывающая программа должна далить параметры из стека,

изменив содержимое SP.


- 9 -

Рассмотрима примера передачиа череза стека двух 16-разрядных

чисел в подпрограмму, которая выполняет их сложение и возвращает

результат в регистре AX.

Фрагмент кода основной программы:

.

.

mov ax,112

pushа ax

mov ax,361

pushа ax

callа Addition

.

.

Код подпрограммы:

Addition proc near

pushа bp ; сохранить содержимое BP

mov bp,sp

mov ax,word ptr [bp+4]

add ax,word ptr [bp+6]

pop bp ; восстановить содержимое BP

ret 4 ; далить параметры из стека

Addition endp

Данная подпрограмма может быть оформлена и без использования

регистрс BP:

Addition proc near

mov ax,word ptr [sp+2]

add ax,word ptr [sp+4]

ret 4

Addition endp


ВТОРОЙ СЕМЕСТР

СЕМИНАР N 9

 СИСТЕМНЫЕ ШИНЫ ПЭВМ СЕРИИ IBM AT

Стандартная шина ISA (AT-bus) является 16-разрядной иа рабо-

тает на частоте 8 Гц:

┌─────────────┐ ┌────────────┐

│ Процессор и │ │ Подсистема │

│ кэш-память ╞═════════════╦═════════════╡ ОЗУ │

└─────────────┘ ║ └────────────┘

┌──────╨─────┐

│ Микросхемы │

│ интерфейса │

шины ISAа │

└──────╥─────┘

Стандартная 8 Гц ║ 16-разрядная шина ISA

╔════════╦════════╬════════╦════════╗

┌──╨──┐а ┌──╨──┐а ┌──╨──┐а ┌──╨──┐а ┌──╨──┐

│ │ │ │ │ │

└─────┘а └─────┘а └─────┘а └─────┘а └─────┘

Контроллеры периферийных устройств

Процессоры 386 и 486 являются 32-разрядными иа работаюта с

внешней тактовойа частотой 20, 25, 33 или 40 Гц, по шине ISA

32-битные данные будут передаваться 16-битными блоками с частотой

всего 8 Гц, т.е. имеет место резкое замедление скорости обмена

данными между процессором и ПУ.

Наиболее высокой скорости передачи данных требуют две под-

системы ПЭВМ:а видеосистема и накопители на жесткиха дисках. Для

обеспечения эффективной работы аэтих подсистем было разработано

несколько технологий построения "локальной шины" (Local Bus), из

которых в настоящее время используются две:

- VESA localа busа (VLB), разработанная ассоциацией Video

Electronic Standarts Association:

- Peripherial Componentа Interconnectа (PCI), разработанная

фирмой Intel.

Особенность технологии Local Bus состоит в том, что высокос-

коростные ПУ не связаны с системной шиной, подключаются напря-

мую к процессору, работают на полной частоте процессора и обмени-

ваются 32-битными блоками данных.

.

- 2 -

Шина VL-bus имеет следующую структуру:

┌─────────────┐ ┌────────────┐

│ Процессор и │ │ Подсистема │

│ кэш-память ╞═════════════╦═════════════╡ ОЗУ │

└─────────────┘ ║ └────────────┘

┌──────╨─────┐

а VL-bus │

│ контроллер │

└──────╥─────┘

32-разрядная шина VL-busа ║ (25-40 Гц)

╔═════════════╦═══════════╬═══════════╗

┌─────╨────┐а ┌─────╨────┐а ┌───╨───┐а ┌────╨─────┐

Видео-а │ Дисковый │Сетевая │Контроллер│

│контроллер │контроллер │ плата ISA │

└──────────┘а └──────────┘а └───────┘а └────╥─────┘

Стандартная ║ 8 Гц

16-разрядная ║ шина ISA

╔════════╦════════╬════════╗

┌──╨──┐а ┌──╨──┐а ┌──╨──┐а ┌──╨──┐

│ │ │ │ │

└─────┘а └─────┘а └─────┘а └─────┘

Контроллеры периферийных стройств

Достоинством VLB является относительная простота конструкции

и высокая пропускная способность (до 132 Мбайт/с на частоте 33

Гц). Недостатками VLB является низкая нагрузочная способность

(2-3 контроллера ПУ) и ограничение по тактовой частоте (на часто-

тах выше 33 Гц в работе шины возникают задержки).

После появления процессора Pentium ассоциация VESA приступи-

ла к работе над новым стандартом VL-bus. Он предусматриваета ис-

пользование 64-разряднойа шины данных, величение числа разъемов

расширения (до 5) и повышение рабочей частоты до 50 Гц. Ожидае-

мая скорость передачи теоретически должна возрасти до 400 Мб/с.

Спецификация PCIа позволяета обеспечить большую гибкость и

быстродействие шины, но предполагает значительные аппаратные зат-

раты, что величивает стоимость системной платы. Поэтому шина PCI

применяется только в старших моделях ПЭВМ (с процессорами 486DX4

и Pentium).

К шине PCI можно подключить до 10 ПУ, но разъемов расширения

при этом можно использовать не более трех:а каждая плата расшире-

ния PCI может разделяться между двумя ПУ, и несколько Пу можно

разместить н самойа системной плате (так называемые встроенные

контроллеры). Шина PCI является процессорно-независимой (т.е. ис-

пользуется неа только с процессорами фирмы Intel). Она может ис-

пользовать 124 контактный разъем (са 32-разряднойа шиной данных)


- 3 -

или 188-контактный разъем (с 64-разрядной шиной данных), при этом

теоретически возможная скорость обмена составляета соответственно

132 и 264 Мбайт/с.

Шина PCI имеет следующую структуру:

┌─────────────┐ ┌────────────┐

│ Процессор и │ │ Подсистема │

│ кэш-память ╞═╦═════════════════════╦═══╡ ОЗУ │

└─────────────┘ ║ ║ └────────────┘

║ ║

┌─────╨──────┐ ┌────╨─────┐

│ Контроллер │ │Контроллер│

│ PCI │ ISA │

└─────╥──────┘ └────╥─────┘

32-разрядная шина ║ PCI (33 Гц) ║а Стандартная 8 Гц

╔═══════════╦═╩═══════╗ ║16-разрядная шина ISA

┌─────╨────┐┌─────╨────┐┌───╨───┐ ╔═══╩══╦══════╦══════╗

Видео-а ││ Дисковый ││Сетевая ┌──╨──┐┌──╨──┐┌──╨──┐┌──╨──┐

│контроллер││контроллер││ плата │ ││ ││ ││ │

└──────────┘└──────────┘└───────┘а └─────┘└─────┘└─────┘└─────┘

Контроллеры периферийных

устройств


КОНТРОЛЛЕР ПРЯМОГО ДОСТУПА К ПАМЯТИ

Прямой доступ к памяти (Direct Memory Access - DMA)а исполь-

зуется для выполнения операций передачи данных непосредственно

между оперативной памятью и стройствами ввода/вывода. Обычно это

такие стройства, как НГМД, НЖМД, кассетные накопители на магнит-

ной ленте КНМЛ (стриммеры).

При использовании ОМ процессора не частвует в операциях

ввода/вывода, контроллер прямого доступа сам формирует все сигна-

лы, необходимые для обмена данными с стройством. Скорость такого

непосредственного обмена значительно выше, чем приа традиционном

вводе/выводеа са использованиема центрального процесора и команд

INP, OUT.

Контроллер прямого доступа IBM PC/XT

Контроллер прямого доступа для IBM PC/XT реализован н базе

микросхемы Intel 8237A и содержит четыре канала. Эти каналы ис-

пользуются следующим образом:

0 - обновление содержимого динамической памяти

компьютера, этот канал имеет наивысший прморитет;

1 - не используется;

2 - адаптер НГМД;

3 - адаптер НЖМД.

Канал 0 имеет наивысший приоритет, канал 3 - низший.

Регистры каналов DMA

Каждый канал содержит 16-разрядные регистры:

- регистр текущего адреса CAR, содержит текущий адрес ячейки

памяти при выполнении операции обмена данными c использованием DMA;

- регистр циклов прямого доступа к памяти CWR, содержит число слов, предназначенных для передачи минус единица;а при

выполнении обмена данными регистр работает в режимеа вычитания;

- регистр хранения базового адрес BAR, используется для

хранения базового адреса памяти, используемого при передаче данных;а в процессе работы канала DMA содержимое этого

регистра не изменяется;

- регистр хранения базового числа циклов прямого досту к памяти WCR; он хранит число циклов DMA, его содержимое также

не изменяется;

- регистр режима MR, определяющий работу канала.

Приведем адрес регистрова и их форматы для компьютера IBM

PC/XT.

Порты 00h - 07h

Эти регистры содержат базовые адреса и счетчикиа передаваемых

данных каналов О - 3. Их назначение следующее:

00h Запись: Базовый адрес канала О

Чтение: Текущий адрес

01h Запись: Счетчик канала О

Чтение: Текущий адрес

02h Запись: Базовый адрес канала 1

Чтение: Текущий адрес

03h Запись: Счетчик канала 1

Чтение: Текущий адрес

04h Запись: Базовый адрес канала 2

Чтение: Текущий адрес

05h Запись: Счетчик канала 2

Чтение: Текущий адрес

06h Запись: Базовый адрес канала 3

Чтение: Текущий адрес

07h Запись: Счетчик канала 3

Чтение: Текущий адрес

Порт 08h

Этот порт используется при записи в качестве правляющего

регистра и при чтении как регистр состояния.

Формат управляющего регистра:

7 6 5 4 З 2 1 0

┌─┬─┬─┬─┬─┬─┬─┬─┐

│ │ │ │ │ │ │ │ │

└┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┘

│ │ │ │ │ │ │ └─ 1 - использование режима память-память;

│ │ │ │ │ │ │ 0 - обычный режим работы

│ │ │ │ │ │ │

│ │ │ │ │ │ └─── если используется режим память-память,то 1

│ │ │ │ │ │ этом разряде разрешает захват канала,

│ │ │ │ │ │ 0 - запрещает; в обычном режиме работы

│ │ │ │ │ │ состояние этого бита безразлично

│ │ │ │ │ │

│ │ │ │ │ └───── 1 - запрет работы DMA;

│ │ │ │ │ 0 - разрешение работы DMA

│ │ │ │ │

│ │ │ │ └─────── 1 - использование сжатия во времени, если

│ │ │ │ становлен бит обычного режима работы;

│ │ │ │ 0 - обычный режим работы

│ │ │ │

│ │ │ └───────── 1 - вращение приоритетов:

│ │ │ 0 - фиксированные приоритеты

│ │ │

│ │ └─────────── 1 - длиненный цикл записи;

│ │ 0 - нормальный цикл записи

│ │

│ └───────────── 1 - используется низкий ровень для

│ сигнала запроса на DMA DREQ;

│ 0 - используется высокий уровень

└─────────────── 1 - используется высокий ровень для

сигнала запроса на DMA DACK;

0 - используется низкий ровень

Обычно этот регистр инициализируется BIOS в процессеа тести-

рования системы, и впоследствии изменять режим работы контроллера

DMA не требуется. Ошибки при инициализации этого порта могут при-

вести к "зависанию" системы.

При чтении иза порта 08h программа получает слово состояния

контроллера DMA:

7 6 5 4 З 2 1 0

┌─┬─┬─┬─┬─┬─┬─┬─┐

│ │ │

└─┴─┴─┴─┴─┴─┴─┴─┘

└──┬──┘ └─────┴─ Биты 0-3 устанавливаются ва 1а при достижении

│ счетчиками каналов 0-3 конечных значений

└──────────── Биты 4-7 становлены в 1, если имеется

разрешение на DMA соответственно каналов 0-3

Порт 09h

Регистр запроса. Предназначен для организации программного

(а не аппаратного) запроса на DMA. Для использования программного

запроса канал должен быть запрограммирован в режиме блочной пере-

дачи. Формат регистра:

7 6 5 4 З 2 1 0

┌─┬─┬─┬─┬─┬─┬─┬─┐

│ │ │

└─┴─┴─┴─┴─┴┬┴─┴─┘

└───┬───┘ │ └─┴─ Номер используемого канала:

│ │ 00 - канал О;а 10 - канал 2;

│ │ 01 - канал; 11 - канал 3

│ │

│ └───── 0 - становить запрос; 1 - сбросить запрос

└─────────── Не используются.

Порт 0Ah

Регистр маски. Используется для маскирования запросов на

прямой доступ для отдельных каналов:

7 6 5 4 З 2 1 0

┌─┬─┬─┬─┬─┬─┬─┬─┐

│ │ │

└─┴─┴─┴─┴─┴┬┴─┴─┘

└───┬───┘ │ └─┴─ Номер канала:

│ │ 00 - канал О;а 10 - канал 2;

│ │ 01 - канал; 11 - канал 3

│ │

│ └───── 0 - становить маску; 1 - сбросить маску

└─────────── Не используются.

Порт 0Bh

Регистр режима. Служит для определения режимов работы калов

контроллера DMA:

7 6 5 4 З 2 1 0

┌─┬─┬─┬─┬─┬─┬─┬─┐

│ │ а │

└─┴─┴┬┴┬┴─┴─┴─┴─┘

└┬┘ │ │ └┬┘ └─┴─ Номер канала:

│ а 00 - канал О;а 10 - канал 2;

│ │ 01 - канал; 11 - канал 3

│ │

│ └────── Тип цикла DMA:

│ │ 00 - цикл проверки;

│ │ 01 - цикл записи;

│ │ 10 - цикл чтения;

│ │ 11 - запрещеая комбинация.

│ │

│ └───────── 1 - режим автоинициализации

└─────────── Приращение адреса:

│ 0 - инкрементирование, 1 декрементирование

└────────────── Режим обслуживания

00 - передача по требованию;

01 - одиночная передача;

10 - блочнная передача;

11 - каскадирование

Порт 0Ch

Сброс триггера байтов. Для загрузки внутренних 16-разрядных

регистров контроллера используется последовательный вывод младше-

го, затем старшего байтов слова. После сброс триггер байтов

можно начинать загрузку 16-разрядных регистров.

Порт 0Dh

Запись в этот порт вызывает сброс контроллера. Для дальней-

шего использования контроллер должен быть заново проинициализиро-

ван.

Порт 0Eh

Сброс регистр маски. Послеа записи в этот регистр любого

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

Порт 0Fh

Маскирование/размаскирование каналов. С помощью этого порта

можно выполнить одновременное маскированиеа или размаскированис

нескольких каналов:

7 6 5 4 З 2 1 0

┌─┬─┬─┬─┬─┬─┬─┬─┐

│ │ │ │ │ │ │ │ │

└─┴─┴─┴─┴┬┴┬┴┬┴┬┘

└──┬──┘ │ │ │ └─ 1 - маскирование канала 0;

│ │ │ │ 0 - разрешение канала 0

│ │ │ │

│ │ │ └─── 1 - маскирование канала 1;

│ │ │ 0 - разрешение канала 1

│ │ │

│ │ └───── 1 - маскирование канала 2:

│ │ 0 - разрешение канала 2

│ │

│ └─────── 1 - маскирование канала 3:

│ 0 - разрешение канала 3

└──────────── Не используются

Порты 81h-8Fh

Это порты регистров страниц.

Для работы c памятью контроллер прямого доступа использует

20-разрядные физические адреса. Шестнадцать младших битов адреса

необходимо записать в регистр базового адреса канала. Старшие че-

тыре бита - биты 16-10 должны быть записаны ва соответствующие

порты регистров страниц. При инициализации регистров базового ад-

реса и регистра страниц необходимо следить за тем, чтобы ва про-

цессе передачиа данныха не происходил переход за границу 64 кило-

байт. Для адресации регистров страниц можно использовать порты:

81h Регистр страниц канала 2

82h Регистр страниц канала 3

83h Регистр страниц канала 1

9.1.2. Инициализация канала DMA

Для инициализации канала программа должна выполнить следую-

щие шаги:

- сбросить триггер байтов командой записи в регистр 0Ch;

- задать режим работы канала, выполнив запись по адресу

0Bh в регистр режима MR;

- заслать младшие 16 битов 20-битового адреса области памяти, которая будет использована для передачи данных, в

регистр базового адеса (адрес порта зависит от номера канала: 0-й канал использует адрес 00h, 1-й канал - 02h,

2-и канал - 04h, З-й канал - 06h);

- заслать номер страницы (старшие 4 бита 20-битового адреса) в соответствующий регистр страниц (81h, 82h или 83h);

- загрузить регистр циклов прямого доступа к памяти CWR

значением, на 1 меньшим требуемого количества передаваемых байтов (адреса этих портов для каналов 0...3 соответственно 01h, 03h, 05h, 07h);

- разрешить работу канала, выполнив запись в регистр маски

каналов по адресу 0Ah.

Сразу после разрешения канал начинает передачу данных. Окон-

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

служит признаком окончания передачи данных.

9.2. Контроллер прямого доступа для IBM AT

Контроллер DMAа компьютер IBMа ATа совместим снизу вверх с

контроллером IBM PC/XT. Он состоит из двуха каскадно включенных

микросхем Intel 8237A-5. Второй контроллер обслуживает каналы DMA

с номерами 4-7.

Приведем назначение каналов DMA для IBM AT:

0 - Зарезервировано

1 - правление синхронной передачей данных SDLC

2 - Адаптер накопителя на гибком магнитном диске (НГМД)

3 - Адаптер накопителя на магнитном диске (НЖМД);

4 - Используется для каскадного соединения с первым

контроллером DMA.

5-6 Зарезервировано

Другое отличие - это разрядность каналов. Каналы 0-3 являют-

ся каналами 8-битовой передачи данных, каналы 4-7 обеспечивают

16-битовую передачу данных. В связи с этим используются все 8 би-

тов регистров страниц. Формируется 24-битовый адрес из 16 младших

битов адреса, записываемых в базовые регистры, и 8 старших битов

дреса, записываемых в регистры страниц.

Размер страницы составляет 128 килобайт, поэтому при переда-

че данных с использованием DMA не должна пересекаться граница 128

килобайт.

Приведем назначение и адреса регистров страниц контроллера

для IBM AT:

81hа -а Регистр страниц канала 2

82hа -а Регистр страниц канала 3

83hа -а Регистр страниц канала 1

87hа -а Регистр страниц канала 0

89hа -а Регистр страниц канала 6

8Bhа -а Регистр страниц канала 5

8Ahа -а Регистр страниц канала 7

8Fhа -а Регенерация динамической памяти

Для 16-битовых каналов 4-7 передача данных начинается с гра-

ницы слова и все адреса относятся к 16-битовым словам.

Порты 0C0h-0CFh

Эти регистры содержат базовые адреса и счетчики передаваемых

данных каналов 4-7. Их назначение следующее:

0C0h - Запись: Базовый адрес канала 4

Чтение: Текущий адрес

0C2h - Запись: Счетчик канала 4

Чтение: Текущий адрес

0C4h - Запись: Базовый адрес канала 5

Чтение: Текущий адрес

0C6h - Запись: Счетчик канала 5

Чтение: Текущий адрес

0C8h - Запись: Базовый адрес канала 6

Чтение: Текущий адрес

0CAh - Запись: Счетчик канала 6

Чтение: Текущий адрес

0CCh - Запись: Базовый адрес канала 7

Чтение: Текущий адрес

0CEh - Запись: Счетчик канала 7

Чтение: Текущий адрес

Порты 0D0h-0DFh

Это управляющие порты и порты состояния второй микросхемы

8237A-5. По формату и назначению они соответствуют рассмотренным

ранее для контроллера DMA компьютеров IBM PC/XT:

0D0h - правляющий регистр/регистр состояния

0D2h - Регистр запроса

0D4h - Регистр маски

0D6h - Регистр режима

0D8h - Сброс триггера байтов

0DAh - Сброс контроллера

0DCh - Сброс регистра маски

0DEh - Маскирование/размаскирование каналов


РЕГИСТРЫ КОНТРОЛЛЕРА VGA

Рассматриваемые ниже регистры VGA часто используются

программистами для прямого правления контроллером в обход

операционной системы, так как использованние функций DOS

замедляет некотороые операции передачи данных в тысячи

раз.

НАИМЕНОВАНИЕ РЕГИСТРА: INPUT STATUS REGISTER ONE

АДРЕС ПОРТА: 3BAh Monochrome Mode Read Only

3DAh Color Mode Read Only

┌───────────────────────────────────────────────────────────┐

│ INPUT STATUS REGISTER ONE │

├───────────────────────────────────────────────────────────┤

│ BITа 7а 6а 5а 4а 3а 2а 1а 0 │

│ │ │

│ └──────── Display Enable │

│ └─────────── Light Pen Strobe │

│ └────────────── Light Pen Switch │

│ └───────────────── Vertical Retrace │

│ └──────────────────── Diagnostic 1 │

│ └─────────────────────── Diagnostic 2 │

│ └──┴────────────────────────── Not Used │

└───────────────────────────────────────────────────────────┘

DISPLAY ENABLE:

D0

1 казывает на то,что дисплей отключен. Это

происходит во время обратного хода по строке

или кадру.

Система Мulti Function Video Controller

имеет арбитраж процессор/video RAM, поэтому

обновление video RAM может быть произведено

в любое время, не вызывая при этом

разрушения отображаемого образа

[изображения]

LIGHT PEN STROBE:

D1

1 казывает, что становлена схема-защелка

светового пера.

0 казывает, что схема-защелка светового пера

возвращена в исходное положение.

LIGHT PEN SWITCH:

D2

1 казывает, что переключатель светого пера

разомкнут.

0 казывает, что переключатель светового пера

замкнут.

VERTICAL RETRACE:

D3

1 казывает на то, что СRT находится в

промежутке обратного хода по кадру.

0 казывает, что CRT находится в промежутке

дисплея.

DIAGNOSTIC 1,0:

D5а D4 Эти два бита идут от двух из шести color

output атрибутного контроллера. Биты D5 и D4

регистра Color Plane Enable атрибутного

контроллера определяют, какой Сolor Output

используется.

Color Plane Input Status

Register Register One

D5а D4 D5 D4

0 0 Red Blue

0 1 S.Red S.Green

1 0 S.Blue Green

1 1 Not Used Not Used

.

SEQUENCER:

НАИМЕНОВАНИЕ РЕГИСТРА: EGA SEQUENCER INDEX

АДРЕС ПОРТА: 3C4h Write Only

┌───────────────────────────────────────────────────────────┐

│ EGA SEQUENCER INDEX │

├───────────────────────────────────────────────────────────┤

│ BITа 7а 6а 5а 4а 3а 2а 1а 0 │

│ │ │

│ └──┴──┴─── Sequencer Index │

│ └──┴──┴──┴──┴──────────── Not Used │

└───────────────────────────────────────────────────────────┘

SEQUENCER INDEX:

D2а D1а D0а Двоичный адрес нужного регистра при 3C5h

0 0 0 00h Reset Register

0 0 1 01h Clocking Mode Register

0 1 0 02h Map Mask Register

0 1 1 03h Character Map Select Register

1 0 0 04h Memory Mode Register

1 X X Все другие комбинации не обеспечиваются

MAP MASK:

┌───────────────────────────────────────────────────────────┐

│ INDEX = 02h MAP MASK │

├───────────────────────────────────────────────────────────┤

│ BITа 7а 6а 5а 4а 3а 2а 1а 0 │

│ │ │

│ └─── Enable Plane 0 │

│ └────── Enable Plane 1 │

│ └───────── Enable Plane 2 │

│ └──────────── Enable Plane 3 │

│ └──┴──┴──┴─────────────── Not Used │

└───────────────────────────────────────────────────────────┘

ENABLE PLANE:

D3,D2,D1,D0 Каждый бит разрешает процессору записи в

соответствующую матрицу видеопамяти.

Одновременные записи производятся в том

случае, когда когда на высшем ровне

находится более одного бита(1). Матрицы

0-1 и 2-3 в режиме ODD/EVEN (выбранном

регистром Memory Mode D2) должны иметь

одно и то же значение маски карты.

.

НАИМЕНОВАНИЕ РЕГИСТРА: CRTC INDEX

АДРЕС ПОРТА: 3B0h, 3B2h, 3B4h, or 3B6h

MONOCHROME MODE Write Only

3D0h, 3D2h, 3D4h or 3D6h COLOR

MODE Write Only

┌───────────────────────────────────────────────────────────┐

│ CRTC INDEX │

├───────────────────────────────────────────────────────────┤

│ BITа 7а 6а 5а 4а 3а 2а 1а 0 │

│ │ │

│ └──┴──┴──┴──┴─── CRTC Data Index │

│ └──┴──┴────────────────── Special Function │

└───────────────────────────────────────────────────────────┘

CRTC DATA INDEX:

D4-D0

D4а D3а D2а D1а D0а ДОСТПа HEXа R#а REG.NAME

0 0 0 0 0 W 00hа R0а Horizontal Total

0 0 0 0 1 W 01hа R1а Horizontal Display End

0 0 0 1 0 W 02hа R2а Start Horizont. Blanking

0 0 0 1 1 W 03hа R3а End Horizontal Blanking

0 0 1 0 0 W 04hа R4а Start Horizontal Retrace

0 0 1 0 1 W 05hа R5а End Horizontal Retrace

0 0 1 1 0 W 06hа R6а Vertical Total

0 0 1 1 1 W 07hа R7а CRTC Overflow

0 1 0 0 0 W 08hа R8а Preset Row Scan

0 1 0 0 1 W 09hа R9а Maximum Scan Line

0 1 0 1 0 W 0Ahа RAа Cursor Start

0 1 0 1 1 W 0Bhа RBа Cursor End

0 1 1 0 0 R/W 0Chа RCа Start Address High

0 1 1 0 1 R/W 0Dhа RDа Start Address Low

0 1 1 1 0 R/W 0Ehа REа Cursor Location High

0 1 1 1 1 R/W 0Fhа RFа Cursor Location Low

1 0 0 0 0 W 10hа R10 Vertical Retrace Start

1 0 0 0 0 R 10hа R10 Light Pen High

1 0 0 0 1 W 11hа R11 Vertical Retrace End

1 0 0 0 1 R 11hа R11 Light Pen Low

1 0 0 1 0 W 12hа R12 Vertical Display End

1 0 0 1 1 W 13hа R13 Offset

1 0 1 0 0 W 14hа R14 Underline Location

1 0 1 0 1 W 15hа R15 Start Vertical Blanking

1 0 1 1 0 W 16hа R16 End Vertical Blanking

1 0 1 1 1 W 17hа R17 Mode Control

1 1 0 0 0 W 18hа R18 Line Compare

SPECIAL FUNCTION:

D7,D6,D5а Эти три бита используются

.

CURSOR START : Только запись.

┌───────────────────────────────────────────────────────────┐

│ INDEX = 0Ah CURSOR START │

├───────────────────────────────────────────────────────────┤

│ BITа 7а 6а 5а 4а 3а 2а 1а 0 │

│ │ │

│ └──┴──┴──┴──┴─── ROW Scan Cursor Begins │

│ └──┴──┴────────────────── Not Used │

└───────────────────────────────────────────────────────────┘

ROW SCAN CURSOR BEGINS:

D4-D0а Курсор появляется, когда счет строк равен

содержимому регистра, адрес дисплея казывается

такой, который равен содержимому регистров OEh и

OFh.

CURSOR END: Только запись

┌────────────────────────────────────────────────────────────┐

│ INDEX = 0Bh CURSOR END │

├────────────────────────────────────────────────────────────┤

│ BITа 7а 6а 5а 4а 3а 2а 1а 0 │

│ │ │

│ └──┴──┴──┴──┴─ Row Scan Cursor Ends │

│ └──┴──────────────── Cursor Skew Control │

│ └────────────────────── Not Used │

└────────────────────────────────────────────────────────────┘

ROW SCAN CURSOR ENDS:

D4-D0 Если счет строк будет равен или превышает

содержимое этого регистра, то отображения

курсора на дисплее не будет.

CURSOR SKEW CONTROL:

D6а D5 Значение, запрограммированное в этом регистре

определяет перекос курсора, измеренный в

character clocks.

0 0 Задержки курсора нет.

0 1 Курсор задерживается на один character clock.

1 0 Курсор задерживается на два character clocs.

1 1 Курсор задерживается на три character clocs.

START ADDRESS HIGH: Чтение / Запись.

┌───────────────────────────────────────────────────────────┐

│ INDEX = 0Ch START ADDRESS HIGH │

├───────────────────────────────────────────────────────────┤

│ BITа 7а 6а 5а 4а 3а 2а 1а 0 │

│ │ │

│ └──┴──┴──┴──┴──┴──┴──┴─── High Order Start Address │

└───────────────────────────────────────────────────────────┘

Зто восемь высоких битов 16-ти битового регистра,

которые используются для определения начального адреса

экранного буфера дисплея.

START ADDRESS LOW: Чтение / Запись

┌───────────────────────────────────────────────────────────┐

│ INDEX = 0Dh START ADRESS LOW │

├───────────────────────────────────────────────────────────┤

│ BITа 7а 6а 5а 4а 3а 2а 1а 0 │

│ │ │

│ └──┴──┴──┴──┴──┴──┴──┴─── Low Order Start Address │

└───────────────────────────────────────────────────────────┘

Это восемь младших битов 16-ти битового регистра,

используемые для определения начального адреса экранного

буфера дисплея.

CURSOR LOCATION HIGH: Чтение/ Запись.

┌───────────────────────────────────────────────────────────┐

│ INDEX = 0Eh CURSOR LOCATION HIGH а│

├───────────────────────────────────────────────────────────┤

│ BITа 7а 6а 5а 4а 3а 2а 1а 0 │

│ │ │

│ └──┴──┴──┴──┴──┴──┴──┴─── High Order Cursor Location │

└───────────────────────────────────────────────────────────┘

Это восемь старших битов 16-битового адресного регистра,

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

CURSOR LOCATION LOW: Чтение/Запись.

┌───────────────────────────────────────────────────────────┐

│ INDEX = 0Fh CURSOR LOCATION LOW │

├───────────────────────────────────────────────────────────┤

│ BITа 7а 6а 5а 4а 3а 2а 1а 0 │

│ │ │

│ └──┴──┴──┴──┴──┴──┴──┴─── Low Order Cursor Locationа │

└───────────────────────────────────────────────────────────┘

Это восемь младших битов 16-битового адресного регистра,

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

OFFSET: Только запись.

┌───────────────────────────────────────────────────────────┐

│ INDEX = 13h OFFSET │

├───────────────────────────────────────────────────────────┤

│ BITа 7а 6а 5а 4а 3а 2а 1а 0 │

│ │ │

│ └──┴──┴──┴──┴──┴──┴──┴─── Logical Line Width │

└───────────────────────────────────────────────────────────┘

Этот регистр содержит значение, используемое для

смещения счетчика адресов памяти к началу следующей

отображаемой текстовой строки. Это значение представляет

собой слова или двойные слова, в зависимости от CRTC

clocking mode, в одной текстовой строке.

LINE COMPARE: Только запись.

┌────────────────────────────────────────────────────────────┐

INDEX = 18h LINE COMPARE │

├────────────────────────────────────────────────────────────┤

BITа 7 6 5 4 3 2 1 0 │

│ │ │ │ │ │ │ │ │ │

│ └─┴─┴─┴─┴─┴─┴─┴───── Line Compare Value │

└────────────────────────────────────────────────────────────┘

Это 8 младших битов 9-ти битового регистра Line Compare.

Бит 8 находится в регистре переполнения CRTC. Адрес памяти

дисплея становится в положение 0 в начале следующих двух

строк после того, как число отображенных на дисплее строк

станет равным содержимому этого регистра.

.

НАИМЕНОВАНИЕ РЕГИСТРА:а GRAPHICS 1 AND 2 ADDRESS

АДРЕС ПОРТА: 3CEh только запись

┌────────────────────────────────────────────────────────────┐

GRAPHICS 1 AND 2 ADDRESS │

├────────────────────────────────────────────────────────────┤

BIT а7 6 5 4 3 2 1 0 │

│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ └─┴─┴─┴───── Graphics Address │

│ └─┴─┴─┴───────────── Not Used │

└────────────────────────────────────────────────────────────┘

GRAPHICS ADDRESS:

D3а D2а D1а D0 Hex Register Name

0 0 0 0 00 Set/Reset

0 0 0 1 01 Enable Set/Reset

0 0 1 0 02 Color Compare

0 0 1 1 03 Data Rotate

0 1 0 0 04 Read Msp Select

0 1 0 1 05 Mode

0 1 1 0 06 Miscellaneous

0 1 1 1 07 Color Don't Care

1 0 0 0 08 Bit Mask

НАИМЕНОВАНИЕ РЕГИСТРА:а GRAPHICS CONTROLLER DATA

АДРЕС ПОРТА: 3CFh только запись

SET/RESET:

┌────────────────────────────────────────────────────────────┐

INDEX = 00h SET/RESET │

├────────────────────────────────────────────────────────────┤

BITа 7 6 5 4 3 2 1 0 │

│ │ │ │ │ │ │ │ │ │

│ └─┴─┴─┴─┴─┴─┴─┴───── Refer to Mapping Table │

└────────────────────────────────────────────────────────────┘

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

Mapping Table в начале этого раздела. Этот регистр разрешает

или Возврат значений байта в четырех видеоплоскостях

соответствующих битам в этом регистре : 1=Set байт, 0=Reset

байт. Этот регистр является активным, когда Graphics

Controller находится в положении Mode 0, Enable Set/Reset

ктивируется. Этот регистр эффективен только при записи в

видеопамяти.

.

ENABLE SET/RESET:

┌────────────────────────────────────────────────────────────┐

INDEX = 01h ENABLE SET/RESET │

├────────────────────────────────────────────────────────────┤

BITа 7 6 5 4 3 2 1 0 │

│ │ │ │ │ │ │ │ │ │

│ └─┴─┴─┴─┴─┴─┴─┴───── Refer to Mapping Table │

└────────────────────────────────────────────────────────────┘

ктивные положения бита в этом регистре приведены в Mapping

Table в начале этого раздела. Этот регистр контролирует

ктивацию Set/Reset регистра. Программирование любого бита с

logie 1 разрешает соответствующий бит в регистре Set/Reset.

Logie 0 запрещает соответствующий бит Set/Reset, позволяя

записать данные процессора без изменений.

COLOR COMPARE:

┌────────────────────────────────────────────────────────────┐

INDEX = 02h COLOR COMPARE │

├────────────────────────────────────────────────────────────┤

BITа 7 6 5 4 3 2 1 0 │

│ │ │ │ │ │ │ │ │ │

│ └─┴─┴─┴─┴─┴─┴─┴───── Refer to Mapping Table │

└────────────────────────────────────────────────────────────┘

ктивные положения бита в этом регистре приведены в Mapping

Table в начале этого раздела. Этот регистр определяет

эталонный цвет для Read Mode1(см. Mode Register). В этом

режиме, когда процессор считывает с памяти дисплея, байт

возврата данных будет в положении 1 в каждом положении бита,

где данные в 4 плоскостях памяти согласуются со значением в

регистре Color Compare (см. таблицу ниже). Тестироваться

будут только плоскости, разрешенные регистром Color Don't

Care.

Color Compare ┌───────────────┐

Register ┌──────┤VRAM Plane 0 │

│ │1 1 0 1 1 0 1 0│

┌───────┐ │ └───────────────┘

C.P.U. Bitа ├──────┘ ┌───────────────┐

┌───────────────┐ │ ├─────────────┤VRAM Plane 1 │

│ │ │ 0 = 1 │ │1 1 0 0 1 1 0 1│

│0 1 0 0 1 0 0 0├──────┤ 1 = 1 │ └───────────────┘

│ │ │ 2 = 0 │ ┌───────────────┐

└───────────────┘ │ 3 = 1 ├─────────────┤VRAM Plane 2 │

│ 4 = X │ │1 0 1 1 0 1 1 0│

Диаграмма показывает │ 5 = X │ └───────────────┘

сравнение с GP A = 0, │ 6 = X │ ┌───────────────┐

GP B = 1 │ 7 = X ├─────────────┤VRAM Plane 3 │

│ 8 = X │ │1 1 1 1 1 0 1 1│

└───────┘ └───────────────┘

.

DATA ROTATE:

┌────────────────────────────────────────────────────────────┐

INDEX = 03h DATA ROTATE │

├────────────────────────────────────────────────────────────┤

BITа 7 6 5 4 3 2 1 0 │

│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ │ └─┴─┴───── Rotate Count │

│ │ │ │ └─┴─────────── Function Select │

│ └─┴─┴─────────────── Not Used │

└────────────────────────────────────────────────────────────┘

ROTATE COUNT:

D2-D0 Загруженное 3 битовое двоичное значение

определяет число положений бита для вращения

данных процессора при записи в видеопамять

нужно загрузить эти 3 бита как двоичное 0. Эта

функция является Rotate Logie Right (см.

таблицу ниже).

ROTATE COUNT

7 6 5 4 3 2 1 0

┌─┬─┬─┬─┬─┬─┬─┬─┐

│X│X│X│X│X│1│0│1а Count = 5h

└─┴─┴─┴─┴─┴─┴─┴─┘

CPU BUS VIDEO MEMORY

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

┌─┬─┬─┬─┬─┬─┬─┬─┐ ┌─┬─┬─┬─┬─┬─┬─┬─┐

┌───┤0│1│0│0│1│1│0│1├───┐ ───────────> │0│1│1│0│1│0│1│0│

└─┴─┴─┴─┴─┴─┴─┴─┘ │ └─┴─┴─┴─┴─┴─┴─┴─┘

└───────────<───────────┘

FUNCTION SELECT:

D4а D3а Эти два бита используются для выбора логических

функций аппаратных, которые можно предварительно

форматировать между фиксатором данных памяти и

любыми данными, выбранными регистром Write Mode.

D4а D3

0 0 Данные без изменений.

0 1 Logical AND c фиксированными данными

1 0 Logical OR с фиксированными данными

1 1 Logical XOR с фиксированными данными.

.

READ MAP SELECT:

┌────────────────────────────────────────────────────────────┐

INDEX = 04h READ MAP SELECT │

├────────────────────────────────────────────────────────────┤

BITа 7 6 5 4 3 2 1 0 │

│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ │ └─┴─┴───── Map Select │

│ └─┴─┴─┴─┴─────────── Not Used │

└────────────────────────────────────────────────────────────┘

MAP SELECT:

D2-D0 Этот регистр используется для выбора Video Memory

Plane, который будет считываться процессором.

Этот регистр выбирает плоскости от 0 до 7, как

запрограммированно в двоичном исчислении для

операции чтения. Фактические положения плоскостей

памяти контролируются Graphicr Position A u B.

(GP A, GP B).

MODE:

┌────────────────────────────────────────────────────────────┐

INDEX = 05h MODE │

├────────────────────────────────────────────────────────────┤

BITа 7 6 5 4 3 2 1 0 │

│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ │ │ └─┴───── Write Mode │

│ │ │ │ │ │ └───────── Not Used │

│ │ │ │ │ └─────────── Read Mode │

│ │ │ │ └───────────── Odd/Even │

│ │ │ └─────────────── Shift Register Mode │

│ └─┴───────────────── Not Used │

└────────────────────────────────────────────────────────────┘

.

WRITE MODE:

D1а D0а Эти два бита выбирают режим записи. Имеются три

ценных режима записи, которые контролируют

переход данных процессора в Video Planer.

0 0 Write Mode 0: Data Rotate,Logicalа Function u

Set/Reset срабатывают в этом режиме.

0 1 Write Mode 1: Активные Video Memory Plane(s)

записываются с содержимым фиксаторов данных 32-

битового процессора,эти фиксаторы загружаются

предыдущим считыванием процессора из видеопамяти.

1 0 Write Mode 2:а В этом режиме положение бита,

соответствующего адресу Video Plane

(контролируемого GPA и GPB), используется как

значение 8 бит записи в видеоплотность,

например, Write Mode 2; Данные процессора это ``10101100``. Видеоплотность 3 будет

записываться с 8 битами(один байт) с таким же

значением, как бит 3 данных процессора.

D1 D0

1 1 Обычно эта комбинация не используется. Это то

же самое, что Write Mode 1.

READ MODE:

D3

0 Этот процессор считывает данные из активной

Video Memory Plane.

1 Разрешает Color Compare Register (подробности

см. в Color Compare).

ODD/EDEN:

D4

0 Регистр выбора Read Plane контролирует, из

какой плоскости процессор считывает данные.

1 Бит AO адреса процессора замещает бит 0

регистра Read Plane Select (см.Read Plane

Select). Поэтому A 0 определяет, с какой

плоскости будут считываться данные, с четной

или нечетной.

SHIFT REGISTER MODE:

D5 Этот регистр контролирует, каким образом

данные из Video Memory Planes смещаются в

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

Graphics Mode. После каждого CRT считывания из

видеопамяти в палитру может быть смещено до 16

бит. Нижеследующая таблица показывает порядок

смещения видеоданных (P1 = Memory Plane 1 и

т.д.)

.

D5 = 0:

┌──────────┬──────────┐

P1 а P0 │ COLOR Palette

├──────────┼──────────┤

│ 01234567 │ 01234567 ├─────┐ ┌────────────┐

└──────────┴──────────┘ │ │ │

│ │ │

┌──────────┐ │ │ │

а P1 │ └──────┤ A0 │

┌──────────┼──────────┤ │ │

│ │ 01234567 ├─────┐а │ │

└──────────┴──────────┘ └──────┤ A1 │

│ │

│ │

┌──────────┬──────────┐ ┌──────┤ A2 │

P3 а P2 │ │ │ │

├──────────┼──────────┤ │ │ │

│ 01234567 │ 01234567 ├─────┘ │ │

└──────────┴──────────┘ ┌──────┤ A3 │

│ │ │

┌──────────┐ │ │ │

а P3 │ │ └────────────┘

┌──────────┼──────────┤ │

│ │ 01234567 ├─────┘

└──────────┴──────────┘

D5 = 1:

┌──────────┬──────────┐

│ P1 P0а │ P1 P0а │ COLOR Palette

├────┼─────┼────┼─────┤

│1357│ 1357│0246│0246 ├─────┐ ┌────────────┐

└────┴─────┴────┴─────┘ │ │ │

│ │ │

┌──────────┐ └──────┤ A0 │

│ P1 P0а │ │ │

┌────┬─────┼────┼─────┤ │ │

││ │1357│1357 ├────────────┤ A1 │

└────┴─────┴────┴─────┘ │ │

│ │

┌──────────┬──────────┐ │ │

│ P3 P2а │ P3 P2а │ ┌──────┤ A2 │

├────┼─────┼────┼─────┤ │ │ │

│1357│ 1357│0246│0246 ├─────┘ │ │

└────┴─────┴────┴─────┘ │ │

┌──────┤ A3 │

┌────┬─────┐ │ │ │

│ P3 │ P2а │ │ │ │

┌────┬─────┼────┼─────┤ │ └────────────┘

││ │1357│1357 ├─────┘

└────┴─────┴────┴─────┘

.

COLOR DON`T CARE:

┌────────────────────────────────────────────────────────┐

INDEX = 07h Color Don't Care │

├────────────────────────────────────────────────────────┤

│ BIT 7 6 5 4 3 2 1 0 │

│ │ │ │ │ │ │ │ │ Refer to Mapping Table │

│ │

└────────────────────────────────────────────────────────┘

ктивное наложение битов в этом регистре описаны в Mapping

Table в начале этого раздела. Этот регистр взаимодействует

только с Read Mode 1.

Только А позволяет включить соответствующую Video Memory

Plane в color compare (как изображено в таблицах GPA и GPB).

BIT MASK:

┌────────────────────────────────────────────────────────┐

INDEX = 08h Bit Mask │

├────────────────────────────────────────────────────────┤

│ BIT 7 6 5 4 3 2 1 0 │

│ │ │ │ │ │ │ │ │ │

│ └─┴─┴─┴─┴─┴─┴─┴────── Bit Mask │

└────────────────────────────────────────────────────────┘

BIT MASK:

0 Это позволяет записать соответствующий бит в

каждой плоскости памяти вместе с данными из

фиксаторов процессора. Фиксаторы процессора

загружаются Video memory чтения процессора.

1 Это позволяет соответствующий бит в плоскостях

видеопамяти изменить выбранным режимом записи

и данными CPU.

.

ATTRIBUTES CONTROLLER:

ATTRIBUTE ADDRESS AND DATA:

Регистры Attribute Address и Data являются регистрами

только записи, которая занимает одни и те же адреса порта 1 0

(3C0h). Чтобы сначала выбрать регистр Attribute Address

процессор должен считывать из адреса 1 0а 3BAh или 3DAh.

Это приводит в адресное состояние flip-flop выбора

address/data. Запись в порты 3C0h с нужным атрибутным адресом

позволяет выбрать этот регистр для последующей записи данных

и переключает тригер выбора адреса/данных. Дополнительная

запись переключает между адресом и данными в этом адресе

порта.

ATTRIBUTE ADDRESS:

First Write to 3C0h

┌──────────────────────────────────────────────────────┐

ATTRIBUTE ADDRESS │

├──────────────────────────────────────────────────────┤

│ BIT 7 6 5 4 3 2 1 0 │

│ │ │ │ │ │ │ │ │ │

│ │ │ │ └─┴─┴─┴─┴──── Attribute Address │

│ │ │ └────────────── Palette Address Source │

│ └─┴──────────────── Not Used │

│ │

└──────────────────────────────────────────────────────┘

INDEX:

D4а D3а D2а D1а D0

0 X X X X 00h - 0Fh Palette Registers

1 0 0 0 0 10h Mode Control

1 0 0 0 1 11h Over-scan Color

1 0 0 1 0 12h Color Plane Enable

1 0 0 1 1 13h Horizontal Picture Element

Panning

PALETE ADDRESS SOURCE:

D5

0 Разрешена загрузка Palette регистров. Биты

D3-D0 атрибутного регистра адресов применяются

к входам color palette address.

1 Видеоданные применяются к входам адреса

патитры цветов.

.

PALETTE:

┌──────────────────────────────────────────────────────┐

INDEX = 00h-0Fh Palette Registers │

├──────────────────────────────────────────────────────┤

│ BIT 7 6 5 4 3 2 1 0 │

│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ │ │ │ └──── Blue │

│ │ │ │ │ │ │ └────── Green │

│ │ │ │ │ │ └──────── Red │

│ │ │ │ │ └────────── Secondary Blue/Mono Video │

│ │ │ │ └──────────── Secondary Green/Intensity │

│ │ │ └────────────── Secondary Red │

│ └─┴──────────────── Not Used │

└──────────────────────────────────────────────────────┘

Это регистры 16 палитр. Каждый из этих регистров

соответствует одной возможной комбинации из 4 входов

видеоплоскости в систему атрибутного контроллера.

FUNCTION DIAGRAM:

Sec.Red ┌───────────┐

┌────────────────────┤ │

│ Sec.Green │ Direct │

│ ┌──────────────────┤ │

│ │ Sec.Blue │ Drive │

│ │ ┌────────────────┤ │

│ │ │ Red │ Video │

│ │ │ ┌──────────────┤ │

│ │ │ │ Green │ Out │

│ │ │ │ ┌────────────┤ │

│ │ │ │ │ Blue │ │

│ │ │ │ │ ┌──────────┤ │

┌──────┐ │ │ │ │ │ │ │ │

│ ├──┐ ┌────────────┬┴┬┴┬┴┬┴┬┴┬┴┬─┐ └───────────┘

│Video │ │ 00h │1│0│0│1│0│1│ │

│Shift ├─┐└─┤ A0 ∙а └┬┴┬┴┬┴┬┴┬┴┬┘ │

│Regis-├┐└──┤ A1 ∙ │ │ │ │ │ │

│ter │└───┤ A2 ∙а ┌┴┬┴┬┴┬┴┬┴┬┴┐ │

│ ├────┤ A3 /Fh │0│1│1│0│0│1│ │

│ │ │ └─┴─┴─┴─┴─┴─┘ │

└──────┘ └──────────────────────────┘

Attributes Controller Palette

Выход из палитры будет таким:

For A3-0 = 00h:ONS.Red For A3-0 = OFh:OFFS.Red

OOFS.Green ONS.Green

OFFS.Blue ONS.Blue

ONRed OFFRed

аOFFGreen OFFGreen

ONBlue ONBlue

.

COLOR PLANE ENABLE:

┌──────────────────────────────────────────────────────┐

INDEX = 12h Color Plane Enable │

├──────────────────────────────────────────────────────┤

│ BIT 7 6 5 4 3 2 1 0 │

│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ └─┴─┴─┴──── Enable Color Plane │

│ │ │ └─┴──────────── Video Status MUX │

│ └─┴──────────────── Not Used │

│ │

└──────────────────────────────────────────────────────┘

ENABLE COLOR PLANE

D3 -а D0

1 Данные соответствующей Video Memory plane

(plane 3-0) применяются к палитре цветов.

0 Выход палитры цветов соединяется с logic 0.

VIDEO STATUS MUX:

D5а D4 Эти биты выбирают 2 из 6 цветовых выхода для

Status Port (см. порты 3BAh, 3DAh биты D5 и

D4).

Status Port

D5 D4

0 0 Red Blue

0 1 S.Red S.Green

1 0 S.Blue Green

1 1 Not Used Not Used

HORIZONTAL PICTURE ELEMENT PANNING:

┌──────────────────────────────────────────────────────┐

INDEX = 13h Horizontal Pel Panning │

├──────────────────────────────────────────────────────┤

аBIT 7 6 5 4 3 2 1 0 │

│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ └─┴─┴─┴──── Horizontal Pel Panning │

│ └─┴─┴─┴──────────── Not Used │

│ │

└──────────────────────────────────────────────────────┘

HORIZONTAL PEL PANNING

D3 - D0 Этот регистр используется для горизонтальной

прокрутки. В 8 Pels на character modes этот

регистр обычно программируеися со значением

0. Отображаемое значение смещается влево

определенным числом точек растра,

определяемым с помощью этого регистра.

Максимально разрешается 7. В 9 точках на

character modes этот регистр обычно

программируется со значением 8.

Программирование значений 0-7 будет все

больше смещать изображение влево.