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

Загрузить архив:
Файл: 1061-005.zip (111kb [zip], Скачиваний: 88) скачать

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

                          ЛЕКЦИЯ N 1

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

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

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

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

ные).

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

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

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

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

зинные).

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

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

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

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

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

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

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

ных типов ЗУ.

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

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

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

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

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

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

си.

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

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

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

ных.

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

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

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

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

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

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

объему.

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

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

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

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

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

.

                              - 2 -

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

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

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

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

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

тывании

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.

                              - 3 -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

каналов.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.

                              - 4 -

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

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

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

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

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

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

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

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

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

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

                             │     БУС     │║

                             │ 0       n-1 │<┐           ║

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

                                    ^        │           ║

                                    ║        │           ║ШИВх

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

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

       │       │       │     │             │ │           V   V

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                    ^                    ║

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

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

массив изNn-разрядных ячеек (обычно 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

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

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

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

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

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

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

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

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

работы:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    

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

  

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

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

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

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

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

ния.

.

                              - 2 -

                                            ШИВых

                                              ^

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

                             │0                             n-1│

                             │              УсСч               │

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

                              05│0    . . .    j5│0. . .   n-15│

                        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─┐ │

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

        5┌──────┐005       0^5    │ │0     5  0^5    │ │0     50^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    │0ЗЭ5 │0<5─┤ │0 ... 5│0ЗЭ5 │0<5─┤ │0 ... 5│0ЗЭ5 │0<5─┤ │

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

Адрес5│      │0i5       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    │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│025k0-1    ^    │         ^    │         ^    │

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

        └──────┘             │              │              │

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

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

         │    ││              УсЗап              │

         │    ││0                             n-1│

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

                                            ^

                                            ║

                                          ИнфВх

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

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

го формирователя составляет дешифратор с 25k0 выходами, который при

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

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

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

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

запись.

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

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

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

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

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

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

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

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

.

                              - 3 -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

емкости.

    

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

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

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

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

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

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

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

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

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

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

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

.

                              - 4 -

                ИнфВых

                   ^

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

        │        УсСч         │

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

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

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

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

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

                   │┌─>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───┐0050││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 ││50:5    0│50││5  0:5    0│

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

       5│0 5    │ 0.5 0││5┌─┴─┐0│5 0 ││  5┌─┴─┐0│50││  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    │0i'5 0││5    0^5    │ 0 ││5  0^5    │0││5  0^5    │

══════>5│0 АдрФ15 ├───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│0ЗЭ5 │0<5─0┤..│├─>5│0ЗЭ5 │0<5─0┤...├─>5│0ЗЭ5 │0<5─0┤

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

       5│0─── - 15│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│0ЗЭ 5│0<5─┐0...│ 5│0ЗЭ 5│0<5─┐0...│ 5│0ЗЭ 5│0<5─┐

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

       5┌─0─5──┐005   0│5   0^5    │  0 │ 50^5    │   0│ 5  0^5    0│

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

       5│    │ 0.5  0│5   0:5    0│50 │ 50:5    0│5   0│ 50:5    0│

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

       5│    │ 0.50│5 ┌─┴─┐  0│50 │ 5┌─┴─┐0│5   0│ 5┌─┴─┐0│

       5│    │ 0 50│ 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│    │0i'50│5   0^5    │  0 │ 5  0^5    │   0│ 50^5    │

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

       5│    │    0│5   0:5    │  0 │ 5  0:5    │   0│ 50: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 │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│025r0  │   ^    │   │   ^    │       ^    │

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

       └────┘    │        │   │        ││

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

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

        ││            ┌─┴────────────┴────────────┴─┐40 ВхИнф

        ├──┼───────────>│РАдрФ4j0           │<─────────

        │  ├───────────>│ 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   ├─>│       │   │       │   │       │

Адрес │    │: │       │   │       │   │       │

═════>│АдрФ├─>│ЗМ400│...│ЗМ400 │...│ЗМ400│

      │    │: │       │   │       │   │       │

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

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

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

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

              │ РАдрФ400│<┐ │ РАдрФ4j0│<┐ │РАдрФ4n-10│<┐

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

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

Адрес (r7_0k-1)     ║     ╘═════╬═════╧═════╬══════╧4═══0══/═════════

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

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

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

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

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

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

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

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

               Запоминающие устройства типа 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 III или флеш-технологи-

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

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

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

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

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

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

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


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

                           ЛЕКЦИЯ N 4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

самих ПУ.

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

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

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

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

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

сора.

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

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

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


                              - 2 -

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

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

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

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

памяти.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ными ПУ.

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

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

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

памяти.

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

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

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

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

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

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

между ОП и ПУ;

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

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

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

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

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

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

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

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

данных.

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

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

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

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

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

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

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


                            - 3 -

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

передачи.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.

                              - 4 -

                           Общая шина

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

    A       A      A       A             A               A

    │      │      │       │             │               │

    V       V      V       V             V               V

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

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

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

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

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

                   V     V    V          ││     │

                 ┌──┐  ┌──┐  ┌──┐        VV     V

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

да.

.

                              - 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

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

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

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

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

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

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

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

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

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

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


                              - 6 -

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

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

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

другой.

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

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

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

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

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

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

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

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

    

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

    

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

                          ЛЕКЦИЯ N 5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

вывода,а также о возникновении ошибок,канал формирует запросы

прерываний.

     Кроме того, канал может выполнять ряд дополнительных функций

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

1) Организацияцепочкиблоков  данных:еслиданные в памяти

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

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

кать основной процессор после передачи каждого блока.

2) Организация выборочного чтения информации: иногда необходимо

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

пропуская ненужные данные.

3) Организация цепочки операций:иногдавыгодно  задаватьне

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

операций.

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

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

из искаженного массива данных.

    

              ОСНОВНЫЕ ТИПЫ КАНАЛОВ ВВОДА-ВЫВОДА

    

     Способ организациивзаимодействияпериферийного устройства

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

памяти и периферийного устройства. По этому признаку периферийные

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

щие(ЗУ на дискахи  лентах) - со скоростьюобмена информацией

100 Кбайт/с - 100 Мбайт/с,и медленнодействующие (перфоленточные

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

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

принимать данные со скоростью1 - 100  Мбайт/св зависимости от


                              - 2 -

типа микросхем памяти и архитектуры ОЗУ.

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

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

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

    

                        Монопольный режим

    

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

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

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

с данным устройством и не будут произведенывсе  предусмотренные

этой программой  передачи данных между памятью и устройством.

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

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

     Канал, работающий в монопольном режиме,  называют2селектор-

2ным0. При  работесселекторным  каналом периферийное устройство

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

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

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

рируются.

     Селекторные каналы применяются при работесбыстрыми  уст-

ройствами ввода-вывода.

    

        Мультиплексный режим (режим разделения времени)

    

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

времени канал ввода-вывода.При этом каждое из параллельно рабо-

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

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

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

     Промежуток времени,в течение которого происходитпередача

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

2сеансом связи0.Сеансы связи различных ПУ чередуются между собой.

Во время  сеансасвязи одного из устройств с каналом другие уст-

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

средств канала.

     Канал, осуществляющиймультиплексирование периферийных уст-

ройств, называют 2мультиплексным0.

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

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

сеансы связидля приема или передачи небольших порций информации

(от одного до нескольких сотен байт).

     Мультиплексные каналыприменяютсяпри  работе с медленными

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

рами, датчиками и рагуляторами телемеханических систем и т.п.

.

                              - 3 -

        2МЕТОДЫ ПЕРЕДАЧИ ИНФОРМАЦИИ МЕЖДУ УСТРОЙСТВАМИ ЭВМ

     Используются два метода передачи дискретных сигналов:  синх-

ронный и асинхронный. При синхронном методе передающее устройство

устанавливает одно из двух возможнных состояний сигнала (0 или 1)

и поддерживает его в течение строго определенного интервалавре-

мени, после  истечениякоторогосостояние сигнала на передающей

стороне может быть изменено.

     2Время передачи0сигнала,которое  складываетсяизвремени

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

сигнала в  регистреприемного устройства,зависит от параметров

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

Период синхронной передачи информации должен превышать максималь-

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

импульсами, как  правилопоступающимиот тактового генератора с

кварцевым резонатором.

     При асинхронной передаче передающее устройство устанавливает

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

ционной линии,  апринимающееустройство  послеприема сигнала

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

сигналаналинии подтверждения приема.Передающее  устройство,

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

     Обычно при передаче сигналов на короткие расстояния (десятки

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

передаче на большие расстояния - асинхронный.

     При передачепараллельного кода по параллельным линиям сиг-

налы поступят в приемное устройство 2в разное время0 из-за разброса

параметров цепей,  формирующихсигналы,и линий интерфейса (так

называемая проблема 2состязаний0).

     Используется2дваметода0  передачипараллельногокода  по

нескольким линиям:  состробированием,использующим  синхронную

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

передача.

     При передаче со 2стробировением0 кроме N информационныхлиний

используется линия "готовность данных":вначале  устанавливаются

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

линии готовности устанавливается уровень 1.Через строго опреде-

ленный период времени (превышающий максимальноевремя  передачи)

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

после чего можно изменить  сигналынаинформационныхлиниях  и

передавать следующую порцию данных.

     При передаче с 2квитированием0 кроме N информационных линийи

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

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

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

уровень 1.Приняв фронт сигнала готовности,приемное устройство

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

сигнал подтверждения приема. Приняв фронтсигнала  подтверждения


                              - 4 -

передатчик снимает сигнал готовности, после чего может приступать

к передаче новой порции данных.

                 2ЦИКЛ ШИНЫ МИКРОПРОЦЕССОРА 8086

     Микропроцессор8086взаимодействуетс  внешнейсредой с

помощью   20-битнойшиныадреса/данных/состоянияи  нескольких

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

выполнении одной из двух операций:МП либо выводит(записывает)

данные, либо  вводит (считывает) данные или команды.  В каждой из

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

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

2адресовать0 ячейку памяти либо порт ввода или вывода.

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

так называемый цикл шины (кроме процессора цикл шины могут иници-

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

арифметический сопроцессор).

     2Цикл шины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-раз-

рядную шину адреса.  Передачаадресас  системнойшины на шину

памяти осуществляется через мультиплексоры:сначала выставляется

10 младших  разрядов адреса,затем 10 старших разрядов.Разряд-

ность адресной части шины памяти зависит оттипа  ЭВМ:всамых

первых моделях она была равна 8, а в последних превышает 10.


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

                           ЛЕКЦИЯ N 6

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

     В состав современных ЭВМ входят многочисленные и разнообраз-

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

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

две группы:

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

нения больших объемов информации;

     2) устройства ввода-вывода,обеспечивающие связьмашины  с

внешней средой путем ввода и вывода информации из ЭВМ, ее регист-

рации и отображения.

     Операции ввода и вывода определяются относительно ядра ЭВМ -

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

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

внешней среды (в том числе от пользователя), или из внешних запо-

минающих устройств.

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

во внешнюю среду или во внешние запоминающие устройства.

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

является скорость,  скоторойустройство  можетприниматьили

передавать  данные.Большинство   периферийных  устройствимеет

электромеханические узлы,  скоростьработыкоторых  значительно

ниже скорости работы электронных устройств ЭВМ. Скорости передачи

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

отличаются весьма значительно: от нескольких единиц до нескольких

миллионов байт/с.

     Периферийные устройстваразличаютпо  реализованному в них

синхронному или асинхронному режиму передачи данных. При синхрон-

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

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

например магнитной ленты.  При асинхронном режиме передача данных

может происходить в свободном темпе состановом  послепередачи

любого байта.

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

     Одной изосновных  характеристикВЗУявляется общий объем

хранимой информации, или емкость ВЗУ, обычно измеряемая в байтах.

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

ВЗУ обращения к внешней памяти вызывают потери производительности

ЭВМ.Поэтому быстродействиеВЗУявляется  показателем не менее

важным, чем его емкость.

.

                              - 2 -

    Обращение к ВЗУ в общем случае предполагает последовательное

выполнение двух процессов:

     1) доступа к ВЗУ - установки головок на участок носителя,  с

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

цию;

     2) считывания и передачи информации из ВЗУ в оперативную па-

мять или передачи информации из памяти в ВЗУ и записи ее на носи-

тель.

     Соответственно быстродействие ВЗУ определяется двумя показа-

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

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

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

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

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

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

блоками.

     Внешние ЗУ делятся на устройства с прямым и последовательным

доступом.В устройствахс прямым доступом,к которым относятся

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

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

достигается циклическим движением носителяс  большойскоростью

относительно головки.

     В устройствах с последовательным доступом(ВЗУ на магнитных

лентах) дляпоиска нужного участка носителя требуется последова-

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

может потребоваться несколько минут.

     К важным характеристикамВЗУтакже относятся достоверность

функционирования и относительная стоимость устройства.

     Обычно достоверность работы ВЗУ оценивается числом правильно

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

один ошибочный знак.

     Относительная стоимость ВЗУ определяется как отношение стои-

мости устройства к его емкости.

                   Плотность записи информации

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

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

     Поверхностная плотность записиинформацииявляется  произ-

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

записи.

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

единицу длины дорожки (бит/мм,бит/см или бит/дюйм).Поперечная

плотность записи  равначислудорожек,  приходящихся на единицу

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

жек/мм,  дорожек/смилидорожек/дюйм).Поверхностная плотность

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

метр, квадратный сантиметр или квадратный дюйм.


                              - 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│       11101        │

│            5│       10101        │

│            6│       10110        │

│            7│       10111        │

│            8│       11010        │

│            9│       01001        │

│            A│       01010        │

│            B│       01011        │

│            C│       11110        │

│            D│       01101        │

│            E│       01110        │

│            F│       01111        │

└─────────────────────────┴────────────────────┘

         ОСНОВНЫЕ ТИПЫ УСТРОЙСТВ ВВОДА-ВЫВОДА ИНФОРМАЦИИ

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

раммы. Устройства вывода служат для вывода из ЭВМ результатов об-

работки данных, в том числе для их регистрации иотображения.

                Типы устройств ввода информации:

1) Ручного ввода: клавиатура пульта управления.

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

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

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

3) Автоматического ввода: читающие автоматы,речевые анализа-

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

зователи, телетайпы.

                Типы устройств вывода информации:

1) Устройства фиксациинамашинных  носителях:перфораторы,

устройства записи на магнитные носители.

2) Устройства регистрации: знакогенерирующие (АЦПУ)  играфи-

ческие (графопостроители).

3) Устройства наглядного отображения: дисплеи и индикаторы.

4) Устройства передачи: кодирующие устройства,цифро-аналого-

вые преобразователи, модемы, телетайпы.


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

                           ЛЕКЦИЯ N 7

                      2ПЕЧАТАЮЩИЕ УСТРОЙСТВА

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

си различаютпосимвольные,построчные и постраничные печатающие

устройства.

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

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

формируется один знак.  Построчные ПУ формируют и выводят за один

цикл печати всю строку, а постраничные - всю страницу.

     По принципу формирования изображенийсимволовна  носителе

записи различают литерные  иматричные(знакосинтезирующие) ПУ.

В литерных ПУ изображение формируется одновременнопо  всейпо-

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

на носитель записи.  В матричных ПУ изображение символов формиру-

етсяизотдельных  точек последовательноилипоследовательно-

параллельно при многократном воздействии на носитель записи.

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

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

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

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

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

изображения.

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

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

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

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

     По способу регистрации информации различаютПУударного  и

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

тивные и эксплуатационные характеристики ПУ.

ПУ УДАРНОГО ПРИНЦИПА ДЕЙСТВИЯ

     При ударном принципе действия изображение на бумаге  получа-

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

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

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

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

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

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

требуется.

     Разработаны два класса ПУ ударного принципа действия: посим-

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

не применяются из-за сложности конструкции и высокой стоимости.

     В настоящеевремя наиболее распространены посимвольные ПУ с

многоэлементными матричными печатающими головками, которые форми-

руют изображение знака в виде комбинации точек.


                              - 2 -

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

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

водом (электромагнитным или пьезоэлектрическим).Печатающие эле-

менты располагаются  водинили  несколько рядов вдоль движения

носителя. При перемещении такой головки поперек движения носителя

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

вся печатаемая строка.

     Достоинства матричныхПУ ударного действия:простота конс-

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

бумагу, возможность многоцветной печати.

     Недостатки: высокий уровень шума,низкое  качествопечати,

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

ПУ БЕЗУДАРНОГО ПРИНЦИПА ДЕЙСТВИЯ

     Применяются триклассаБПУ  -посимвольные,построчные и

постраничные. Изображение в БПУ синтезируется из отдельных точек.

     В БПУиспользуется  один из следующих способов регистрации:

электрографический, феррографический,электростатический, терми-

ческий и струйный.  Достоинством БПУ является низкий уровень шума

и высокая скорость печати.

                     Электрографические БПУ

     При электрографическом способе регистрации скрытое  электри-

ческое изображение  создаетсяна промежуточном носителе записи с

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

помощью тонера (мелкодисперсного красящего порошка).Затем изоб-

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

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

твуют электромагнитным излучением, источником которого могут быть

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

трубки.

     Лазерные ПУ являются высокоскоростными, обеспечивают высокое

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

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

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

призмы.

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

нескоростных ПУ.  Светодиодныесистемы записи представляют собой

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

точный носитель записи.  В светоклапанных системах электромагнит-

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

промежуточный носитель  записи через световые затворы,  например,

магнитооптические или жидкокристаллические.

.

                            - 3 -

     В качествепромежуточного носителя используются электрогра-

фические циллиндры (барабаны,покрытые фотопроводниковымслоем)

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

с металлическим подслоем.

                      Феррографические БПУ

     Феррографические БПУ отличаются от злектрографических только

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

не электрическое изображение. Для этого в качестве промежуточного

носителя используют  магнитные барабаны или ленты,  информация на

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

Используемый в  феррографическихБПУтонер должен быть магнито-

чувствительным.

                     Электростатические БПУ

     Электростатическая регистрация состоит всозданиискрытого

электрического изображенияна диэлектрической поверхности основ-

ного или промежуточного носителя.

     Наибольшее распространениеполучилиэлектростатические БПУ

без промежуточного носителя.В низ запись ведется на специальную

электростатическую бумагу, рабочая поверхность которой имеет тон-

кий диэлектрический слой. Для записи на такую бумагу используются

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

блок тонких электродов,  расположенных соответственно в один  или

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

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

жение. Затем бумага протягивается через узел проявления,в кото-

ром диспергированные в жидкой органической среде частицы красите-

ля визуализируют скрытое изображение.

     Достоинством электростатических   БПУявляется  возможность

многоцветной печати.

                         Термические БПУ

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

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

носителя. Для создания изображения наноситель  информациивоз-

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

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

     В термопечатающихБПУ без промежуточного носителя использу-

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

нагреве изменяет цвет. Недостатком этих устройств являются низкое

качество печати,  высокая стоимость термобумаги и ее чувствитель-

ность к температуре окружающей среды.

     В БПУ с промежуточным носителем между термопечатающей голов-

койибумагой  размещаюткопировальнуюпленку:  пластмассовую


                              - 4 -

пленку толщиной 5-10 мкм, покрытую красящим слоем с низкой темпе-

ратурой плавления.  При контакте бумаги с копировальной пленкой и

кратковременном прогреве  еетермопечатающейголовкой  красящий

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

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

печати, широкую гамму цветов,но при этом очень велики накладные

расходы.

                          Струйные БПУ

     В настоящее время выпускаются только струйные ПУ  последова-

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

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

красителя, которые  вылетаютиз сопла печатающей головки.Число

сопл в головке может достигать нескольких десятков.

     Для генерациикапельв  каналесчернилами,  связанном с

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

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

волны используются два  способа:возбуждениепьезоэлемента  или

нагревание микрорезистора.

    Струйные ПУ обеспечивают высокое качество и скорость печати,

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

ющие головки имеют ограниченный срок службы из-зазасорения  ка-

пилляров.

            2УСТРОЙСТВА ВЫВОДА ГРАФИЧЕСКОЙ ИНФОРМАЦИИ

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

три основных класса:

     1) электромеханическиеграфопостроители векторного типа;

     2) растровые устройства вывода графической информации;

     3) устройства вывода информации на микрофильм.

     Графопостроители делятся на устройства с высокой,средней и

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

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

тва: максимальной скоростью и ускорением пишущего элемента.

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

точности и малой точности.

     По областиприменения:автономные;  работающиевсоставе

больших ЭВМисистем;  работающиевсоставе рабочих станций и

ПЭВМ.

                   ВЕКТОРНЫЕ ГРАФОПОСТРОИТЕЛИ

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

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

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


                              - 5 -

     В устройствах первого типа носитель информации закреплен  на

плоской рабочей  поверхности планшета.Перемещение пишущего эле-

мента осуществляется электромеханической координатной системой по

двум осям.Этот тип графопостроителей принято именовать планшет-

ными.

     В устройствахвторого типа по одной координате перемещается

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

Графопостроители этого типа называют барабанными.

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

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

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

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

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

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

транспортным валом с фрикционным покрытием(т.е. захват носителя

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

           УСТРОЙСТВА ВЫВОДА ИНФОРМАЦИИ НА МИКРОФИЛЬМ

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

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

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

20 раз, а графической - в 100-200 раз;

     2) повышение плотности записи и,соответственно, уменьшение

объема хранилищ информации;

     3) ускорение процесса копирования и экономию бумаги.

     Недостатками этих устройств являются:

     1) невозможность чтения микрофильма без специальнойаппара-

туры;

     2) высокий уровень начальных капитальных вложений;

     3) потребность вспециальномпрограммном  обеспечениидля

учета особенностей микрофильмирующих устройств;

     4) для обработки и копирования микрофильмов нужна  фотолабо-

ратория.

     Методы вывода информации на микрофильм:

     1) запись с экрана ЭЛТ;

     2) непосредственная запись электронным лучом;

     3) запись с помощью линейки светодиодов;

     4) запись лазерным лучом.


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

                           ЛЕКЦИЯ N 8

             2ОСНОВНЫЕ ТИПЫ И ХАРАКТЕРИСТИКИ ДИСПЛЕЕВ

     Основными техническими характеристиками дисплея являются:

- размер экрана по диагонали;

- емкость экрана;

- способ формирования изображения (растровый или векторный);

- способ формирования символов;

- частота регенерации изображения;

- зернистость монитора.

     Как правило, дисплейсостоитиз  цветного или черно-белого

монитора, блока управления и клавиатуры.

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

но-цифровые и графические.

     Применяется три различных типа алфавитно-цифровых дисплеев:

     1) дисплеи,способные отображать толькоалфавитно-цифровую

информацию;

     2) дисплеи, способные отображать псевдографические символы;

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

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

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

вые.

     Векторные дисплеи предназначены для получения статических  и

динамических изображений ограниченного объема в виде совокупности

точек, отрезков векторов и символов с высокой разрешающей способ-

ностью (свыше 2048x2048 точек). Изображение, как правило, являет-

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

     Растровые дисплеи с режимом регенерации и матричным  растро-

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

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

жения. Их разрешающая способность достигает 1280x1024 точек.

     Дисплеи без режима регенерации с запоминающими  экранамина

ЭЛТ или плоских индикаторных панелях используются для отображения

статических образов большого объема. Они дают черно-белое изобра-

жение без градаций яркостии  имеютразрешающуюспособность до

4096x4096 точек.

     В настоящее время все IBM-совместимые персональные компьюте-

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

способностью от 640x350 до 1280x1024 точек и размером по диагона-

ли от 9 до 31 дюйма (в некоторых особых случаях в качестве допол-

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

векторный дисплей).  На наиболее дешевых моделях и на файл-серве-

рах устанавливаются 14-дюймовые черно-белые (стоимостью около 100

$)илицветные  (стоимостью 200-250 $).Модели среднего класса

снабжаются 15-дюймовым монитором,снабженным защитой отвредных

излучений (Low Radiation),соответствующей стандарту MPR II.На

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


                              - 2 -

нали 17 и более дюймов.

     Контроллеры растровыхдисплеев обеспечивают палитру от 2 до

256 цветов,а наиболее современные модели - 2516 0(65536)идаже

25240 (свыше  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 и 25N0-1.Всего

можно получить 25N0 уровней интенсивности за счет увеличениянеоб-

ходимого объема памяти буфера кадра в N раз.

     Число доступных уровней интенсивности можно увеличить,нез-

начительно расширив требуемую для этого память и воспользовавшись

2таблицей цветов0:

    ╔═╤═╤═╤═╗N-разрядный

    ║ │ │ │ ║регистр      W=4

  ╔═╬═╪═╪═╬─╢   ┌───┐    ┌─┬─┬─┬─┐              ╔═══╤═══╤═══╤═══╗

║ │ │ │ ║0╫──>│ 0 │    │ │ │ │ │              ║   │   │   │   ║

╔═╬═╪═╪═╬─╫─╢   ├───┤ 2├─┼─┼─┼─┤     ┌─────┐  ╟───┼───┼───┼───╢

║ │ │ │ ║1╫─╫──>│ 1 ╞═╗│ │ │ │ │ ╔══>│ ЦАП ├──╫───┼───┼───┼>* ║

╟─┼─┼─┼─╫─╫─╢   ├───┤ ║  ├─┼─┼─┼─┤ ║   └─────┘  ╟───┼───┼───┼───╢

║ │ │ │0╫─╫─╫──>│ 0 │ ╚═>│1│0│1│0╞═╝║   │   │   │   ║

╟─┼─┼─┼─╫─╬═╝   └───┘    ├─┼─┼─┼─┤              ╟───┼───┼───┼───╢

║ │ │ │ ║ ║              │ │ │ │ │              ║   │   │   │   ║

╟─┼─┼─┼─╬═╝              ├─┼─┼─┼─┤              ╚═══╧═══╧═══╧═══╝

║ │ │ │ ║                │ │ │ │ │

╚═╧═╧═╧═╝                ├─┼─┼─┼─┤                   Растр ЭЛТ

                         │ │ │ │ │

Буфер кадра              ├─┼─┼─┼─┤

                         │ │ │ │ │

                         ├─┼─┼─┼─┤

                         │ │ │ │ │

                         └─┴─┴─┴─┘

                          Таблица

                          цветов

                      (25N0 элементов)

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

шееся число используется как индекс в таблице цветов. В этой таб-

лице содержится 25N0 элементов. Каждый ее элемент может содержать W

бит, причем W>N,  т.е.можно получить 25W0 значений интенсивности,

но одновременно будут доступны только5 025N0 изних.Для  получения

дополнительных интенсивностейтаблицу  цветовследуетизменить

(перезагрузить).

     Поскольку существует три основных цвета,  можнореализовать

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

ной для каждого из основных цветов.Каждая битовая плоскость бу-

дет управлять  индивидуальнойэлектроннойпушкой для каждого из

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

.

                              - 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 оттенков красного, зеленого или си-

него цвета,ив  общей сложности можно получить  16777216 = 2524

цветов.

              2ВИДЕОСИСТЕМЫ КОМПЬЮТЕРОВ СЕРИИ 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

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

тва B8000h-BFFFFh. Начало этой области соответствует левому верх-

нему углу экрана. Каждому символу соответствует два байта памяти:

младший байт кодирует вид символа,а старший байт - цвет символа

и цвет фона, на котором будет отображен символ.

                  Старший байт (код цвета):

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

                  │ 7 │ 6   5   4 │ 3 │ 2   1   0 │

                  └───┴───┴───┴───┴───┴───┴───┴───┘

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

                    │   Цвет фона   │  Цвет символа

                    │               │

                 Мерцание        Яркость

.

                             - 7 -

     Видеопамять в текстовом режиме имеет следующую структуру:

              Символ 0      Символ 1                  Символ N

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

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

B8000h    │ код│ цвет │ код│ цвет │           │ код│ цвет │

          ├──────┼──────┼──────┼──────┼── ─ ─ ─ ──┼──────┼──────┤

B8000h+2N │      │      │      │      │           │      │      │

          ├──────┼──────┼──────┼──────┼── ─ ─ ─ ──┼──────┼──────┤

B8000h+4N │      │      │      │      │           │      │      │

          ├──────┼──────┼──────┼──────┼── ─ ─ ─ ──┼──────┼──────┤

     где N - длина строки в символах (40, 80, 128, 132).

     Стандартные цветовые атрибуты:

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

│Код цвета│Стандартный цвет│  Цвет с повышенной│

│             │                    │   интенсивностью    │

├─────────────┼────────────────────┼─────────────────────┤

│   000     │Черный│Темно-серый        │

│     001     │Синий             │Светло-синий       │

│     010     │Зеленый           │Светло-зеленый     │

│     011     │Морской волны     │  Голубой│

│     100     │Красный           │Светло-красный     │

│     101     │Фиолетовый        │  Малиновый          │

│     110     │Коричневый        │  Желтый             │

│     111     │Светло-серый      │  Ярко-белый         │

└─────────────┴────────────────────┴─────────────────────┘


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

                           ЛЕКЦИЯ N 9

               РАБОТА ВИДЕОКОНТРОЛЛЕРОВ EGA И VGA

                      В ГРАФИЧЕСКИХ РЕЖИМАХ

     Графические режимы контроллеров EGA, VGA и SVGA можно разде-

лить на 2 основные группы:режимы с 16 цветами ирежимы  с256

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

низации видеопамяти.

                    2Видеорежимы с 16 цветами

     Контроллер EGA работает в режимах сразрешением640х200  и

640х350 точек,  контроллер VGA имеет дополнительный режим 640х480

точек, а контроллеры SVGA часто могут также реализовыватьрежимы

800х600 и 1024х768 точек. К сожалению, видеопамять в этих режимах

имеет очень неудобную  иморальноустаревшую  организацию,что

очень сильно замедляет  выводграфики.В  настоящеевремяэти

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

изображений (чертежей и диаграмм).

     В режимах с 16 цветами память разделена на 4 видеоплоскости:

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

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

мацию для восьми расположенных рядом по горизонтали точек (пиксе-

лов).

     Упрощенная схема прохождения данных через графические  конт-

роллеры EGA и VGA в графических режимах с 16 отображаемыми цвета-

ми (цепи установки/сброса не показаны):

.

                              - 2 -

                                          Битовая

                                  ┌─────┐маска

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

                │   ┌┐│ АЛУ ├───>││       │Плоскость│

                │┌─>│├────────┬──>│     │    ││       │    3    │

                ││  └┘Защелка │   └─────┘    │├──────>│         │

                ││            │              ││       │         │

                ││            └─────────────>││       │         │

                ││                           └┘       │         │

      Сдвигающий│└────────────────────────────────────┤         │

        регистр │                 ┌─────┐             │         │

           ┌─┐  ├────────────────>│     │    ┌┐      ┌┴────────┐│

           │ ││   ┌┐│ АЛУ ├───>││      │Плоскость├┘

Байты      │ │  │┌─>│├────────┬──>│    │    ││      │    2    │

данных от│ │││└┘Защелка │   └─────┘    │├─────>│         │

процессора │ ││││              ││      │         │

══════════>│ ├──┤│            └─────────────>││      │         │

           │ │││                           └┘      │         │

           │ │  │└───────────────────────────────────┤         │

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

           └─┘  ├────────────────>│     │    ┌┐     ┌┴────────┐│

                │   ┌┐            │ АЛУ ├───>││     │Плоскость├┘

                │┌─>│├────────┬──>│     │    ││     │    1    │

                ││  └┘Защелка │   └─────┘    │├────>│         │

                ││            │              ││     │         │

                ││└─────────────>││     │         │

                ││                           └┘     │         │

                │└──────────────────────────────────┤         │

                │                 ┌─────┐           │         │

                └────────────────>│     │    ┌┐    ┌┴────────┐│

                    ┌┐│ АЛУ ├───>││    │Плоскость├┘

                 ┌─>│├────────┬──>│     │    ││    │    0    │

                 │└┘Защелка │   └─────┘    │├───>│         │

                 ││              ││    │         │

                 │            └─────────────>││    │         │

                 │                           └┘    │         │

                 └─────────────────────────────────┤         │

                                                   │         │

                                                   └─────────┘

     2Сдвигающий регистр0  служитв основном в качестве буфера для

хранения байта данных, поступившего от процессора. Операция сдви-

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

выполнять ее в процессоре.

     2Регистры-защелки0 служат для временного хранения старогосо-

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

тей: часто необходимо изменять только некоторые из 8 точек,опи-


                              - 3 -

сываемых этими байтами данных,а остальная информация должна ос-

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

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

на операция чтения из видеопамяти по тому же адресу.

     Для определения того,какие точки должны бытьизменены,а

какие- сохранены,используется 2регистр битовой маски0.Бит ре-

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

ющий бит видеопамяти информация из АЛУ или регистра-защелки:

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

                    │ Бит из │       │ Бит из│

                    │АЛУ   │       │ защелки │

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

                         │                │

       ┌──────────┐      │      1   0     │

       │ Бит из   │      └───────   ──────┘

       │ регистра ├──────────────>

       │ битовой│               │

       │ маски    │               │

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

                                  V

                             Видеопамять

     2Арифметико-логическое устройство 0 позволяет выполнять опера-

ции И (AND),ИЛИ (OR) и ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) над содержимым ре-

гистра-защелки и поступившим от процессора байтом. Это прозволяло

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

время такие приемы практически не применяются.

     Недостатком графических 16-цветных режимов является  необхо-

димость интенсивной  работы с большим числом рагистров при выводе

в видеопамять текстов и графики. На одну операцию вывода в видео-

память приходится  одна операция чтения из видеопамяти и одна-две

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

десятки раз (из-за конструктивных особенностей контроллеров EGA и

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

чем обращение к видеопамяти).

        2Рассмотрим наиболее часто используемые регистры:

    

     2"Первый регистр входного состояния" 0 (Input Status Register

One) расположен по адресу 3DAh.Бит 3 в этом регистре устанавли-

вается в 1 в течение обратного хода луча по кадру. При выполнении

различных видеоэффектов  типапрокрутки изображения или перезаг-

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

ся изображений  состояниеэтогорегистра  приходитсяпостоянно

контролировать, так как в некоторые регистры контроллера разреша-

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


                              - 4 -

     2"Регистрадреса  указателя  последовательности"0  (Sequenser

Address Register),  расположенныйпоадресу  3C4h,определяет,

какой из 5 регистров, ассоциированных с портом 3C5h, будет досту-

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

     Чтобы получитьдоступ к  2Регистру маскирования растра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

             2МИКРОПРОЦЕССОРЫ СЕРИИ iX86 ФИРМЫ INTEL

         Выбор в программе на Ассемблере типа процессора

    Поумолчанию  ТурбоАссемблерассемблирует кодтолько для

процессора 8086.  Чтобы Турбо Ассемблер мог  поддерживатьдругие

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

соответствующие директивы. Следующие директивы сообщают Турбо Ас-

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

вании кода:

.186       .286C       .287      .386C       .387       .8087

.286       .286P       .386      .386P      .8086

     Этидирективы  можно указывать в любом месте исходного фай-

ла,после чего они сразу вступают в действие.В одномисходном

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

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

последней указанной директиве.

     Влюбой  моментможно указать директиву .8086,по которой

Турбо Ассемблер будет снова поддерживать толькопроцессор  8086.

(Востальной части данной главы все ссылки на процессор 8086 от-

носятся в равной степени и к процессору 8088.)

                    2ПРОЦЕССОРЫ 80186 И 80188

     Процессор80186 (который является процессором серии iAPx86)

в основном аналогичен процессору 8086.Процессор 80186 поддержи-

вает все инструкции процессора 8086, а также несколько новых инс-

трукций и расширенные формы некоторых инструкций процессора 8086.

     Процессор80188 обладает программной совместимостью спро-

цессором  80186.Единственноеотличие  между ними заключается в

том,что процессор 80186 имеет 16-разрядную шину данных,а про-

цессор 80188 - 8-разрядную.

     ПоддержкаТурбо Ассемблера для ассемблирования кода процес-

сора 80186 разрешается по директиве .186.

     Далее мы рассмотрим новые и расширенные инструкции  процес-

сора80186.Перед началом рассмотрения отметим,что процессор

8086 не распознает ни одну из тех инструкций,которые мы  будем

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

инструкцию (новую или расширенную) процессора 80186,на процес-

соре 8086 работать не будут.

.

                              - 2 -

                        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

SampleFunctionENDP

     Первый операнд инструкции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,еслиустановлен флаг направления.

          2Расширенные версии инструкций процессора 8086

     Внаборе инструкций процессора 80186 имеются следующие рас-

ширенные версии инструкций процессора 8086:

        IMULROL             SAR

        PUSHROR             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

             2МИКРОПРОЦЕССОРЫ СЕРИИ iX86 ФИРМЫ INTEL

                         ПРОЦЕССОР 80286

     Процессор 80286 был первым процессором серии iAPx86, который

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

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

80286  поддерживаетвсе инструкции процессора 80186 и кроме того

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

управление памятью с развитой архитектурой.

     Процессор 80286 имеет два режима операций:  реальный режим и

защищенный режим. Работа процессора 80286 в реальном режиме прак-

тически аналогична работе процессора 80286 (онобеспечивает  тот

же набор инструкций, что и процессор 80186).

     Средства управленияпамятьюв  процессоре80286доступны

только в защищенном режиме. И только в этом режиме можно одновре-

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

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

которой превышает 1 мегабайт.

     Для работыв защищенном режиме в процессоре 80286 использу-

ются следующие инструкции:

        CLTS    LIDT    LMSW

        LGDT    LLDT    LTR

     Эти инструкции процессора 80286 предназначены только для ис-

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

необходимости (и возможности) использовать инструкции защищенного

режима.

     В процессоре 80286 введены введены два дополнительных состо-

яния в регистре флагов:  бит вложенной задачи и поле ввода-вывода

привилегированного уровня.Как и инструкции защищенногорежима,

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

раммном обеспечении,  поэтому прикладные программисты не должны с

ними  работать.Процессор80286 имеет также несколько новых ре-

гистров,с которыми можно работать только с  помощьюинструкций

защищенного режима.  Это регистр задачи,регистр слова состояния

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

   В Турбо Ассемблере разрешить ассемблирование с использовани-

еминструкцийпроцессора 80286 (незащищенный режим) можно с по-

мощью директивы .286.  Поддержкаинструкцийзащищенного  режима

процессора 80286 разрешается по директиве .286Р.

.

                              - 2 -

                         ПРОЦЕССОР 80386

     Процессор 80386 обеспечивает новые и расширенные инструкции,

расширенный набор 32-разрядных регистров,линейные сегменты раз-

мером до 4 гигабайт и возможность эмулировать одновременную рабо-

ту нескольких процессоров  8086,быстрыесдвиги  ициклические

сдвиги, страничную память.

     Как и процессор 80286,процессор 80386 имеет два типаинс-

трукций - привилегированные и непривилегированные. Непривилегиро-

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

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

выполняющаяся на текущем уровне привилегий 0 (наиболее привилеги-

рованный уровень).  Привилегированные инструкции процессора 80386

представляют собой расширениемножества  привилегированныхинс-

трукцийпроцессора 80286 (инструкции защищенного режима) и также

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

     Поддержка непривилегированныхинструкцийпроцессора  80386

разрешается по директиве .386. Директива .386Р разрешает поддерж-

ку привилегированных инструкций процессора 80386.

                      Новые типы сегментов

     Возможность процессора 80386 поддерживатьсегменты размером

64К(как в процессоре 80286) или линейные сегменты до 4 гигабайт

потребовала двух новых типов сегментов - USE16 и USE32.

     При ссылке на сегмент размером 64К 16-разрядное смещение мо-

жет храниться либо в базовом или индексном регистре (BX,SI,  DI

или BP),либо использоваться в качестве непосредственного смеще-

ния. В этом режиме работает процессор 80286 (и 8086). В процессо-

ре 80386 сегментам,  имеющим максимальный размер 64К,  дается тип

использования 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

             2МИКРОПРОЦЕССОРЫ СЕРИИ iX86 ФИРМЫ INTEL

                         ПРОЦЕССОР 80386

                        2Новые инструкции

     В процессоре 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 содержит значение 00000008h,то вэтой  программе

произойдет  переходнаBit3Is1.  Еслиже EAX содержит значение

0FFFFFF7h,то переход выполнен не будет. Первый операнд инструк-

ции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 соответственно.

                     2Расширенные инструкции

     В процессор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.  Все эти регистры

можно сохранить в стеке с  помощьюинструкции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 умножается на 1000000000h, а результат сохраняется в регистре

EBP:

        imul    ebp,ecx,100000000h

а следующая инструкция умножает 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 000 программных приложений со стоимостьюмилли-

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

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  (IntelCOmparative   Microprocessor

Peformance )  выполняет относительное сравнение производитель-

ности 32-битовых процессоров фирмы INTEL.

             Расширенная 64-битовая шина данных.

     Pentium процессорснаружипредставляет собой 32-битовое

устройство. Внешняя шина данных к памяти является64-битовой,

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

ного цикла.  Pentium процессор  поддерживаетнесколькотипов

шинных циклов, включая пакетный режим, в течение которого про-

исходит порция данных из 256 бит в кэш данных и в течениеод-

ного шинного цикла.

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

ет информацию между процессором и подсистемой памяти. Благода-

ря этой 64-битовой шине данных,Pentium процессор существенно

повышает скорость передачи по сравнению с процессором Intel486

DX - 528 MB/сек для 66 МГц,по сравнению со 160 MB/сек для 50

МГц процессора  Intel486DX.Эта  расширеная   шина   данных

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

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

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

большая общая производительность 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 процессора,не  требуетвыполнениясброса

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

при диагностике систем. Другими встроенными решениями является

реализация  стандартаIEEE1149.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 -

      Процедура прерывания с опросом источников прерывания

     В системес  фиксированнымиприоритетами каждому источнику

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

прерывания.

     При наличиизапросаили  несколькихзапросовформируется

общий сигнал прерывания ОСП, инициирующий выполняемую специальной

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

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

ка, выставившего запрос с наибольшим приоритетом.

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

но много времени.  Для ускорения опроса его выполняют аппаратными

средствами.

           Циклический опрос источников прерываний

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

   │   Счетчик   │<─────────────────────────────────┐

   │             │<───────────────┐                 │

   └─┬──────┬──┬─┘ Сброс          │                 │ Код номера

    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

                      2КОНТРОЛЛЕР ПРЕРЫВАНИЙ

     Программируемый контроллер прерываний 8259 предназначендля

обработки до 8 приоритетных уровней прерываний. Возможно каскади-

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

достигать 64.

     Контроллер 8259 имеет несколько режимов работы,  которые ус-

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

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

ной загрузкиBIOS при запуске машины.Без крайней необходимости

не желательно перепрограммировать контроллер,так как неправиль-

ное программирование нарушает логику работы всей системы.

          Условное графическое изображение микросхемы:

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

                       │7560│ 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 │     │ U4cc0├─── 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       - "земля";

U4cc0       - напряжение питания.

                                     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  надозаслатьдвоичное  число

01000000b.

     Из всего списка команд контроллера 8259 программисту  обычно

необходима только команда "Обычный конец прерывания" с кодом 20h.

Если написанная вами программасодержит  обработчикаппаратного

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

OS,этот обработчик (после завершения обработки прерывания) дол-

жен выдавать команду "Обычный конец прерывания" 20h в порт 20h, и

при необходимости, такую же команду в порт A0h (если номер преры-

вания больше 7). Если же ваша программа просто перехватывает пре-

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

BIOS, токоманды завершения прерывания будет посылать этот обра-

ботчик.

.

                              - 6 -

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

     Порт последовательной передачи данных 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.

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

     ПЭВМ IBMAT  встандартной конфигурации имеет один или два

порта последовательной передачи данных.Порт  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

                     2ИНТЕРФЕЙСЫ НАКОПИТЕЛЕЙ

               2НА ЖЕСТКИХ МАГНИТНЫХ ДИСКАХ (НЖМД)

     В настоящеевремяимеется несколько основных стандартов на

интерфейсы для ПЭВМ и мини-ЭВМ, разработанных различными фирмами:

     ST506/412 - разработан фирмой Seagate Technology, применялся

в ранних моделях IBM PC/AT,имеет скорость передачиданных  0,6

Мбайт/с при MFM-кодировании и 0,9 Мбайт/с при RLL-кодировании;

     ESDI (Enhanced Small Device Interface) - разработанпо  ини-

циативе фирмы Maxtor,  в настоящее время вытеснен с рынка  персо-

нальных компьютеров  врезультатежесткой конкурентной борьбы с

интерфейсами IDE и SCSI;

     IDE (Integrated DriveElectronics)  -разрабатывается  под

контролем ANSI и по спецификации ANSI носит названиеATA, ATA-2,

ATA-3, имеет скорость передачиданных до 16,5 Мбайт/с;

     SCSI (SmallComputer  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 определяет систему команд,с  помощью

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

собой.

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

   │ Устройство 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 не используются.


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

                           СЕМИНАР 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   labelword;

asm dw0, 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)

{

asmjmp   SkipAroundData /* пропустить таблицу данных */

asm  SquareLookUpTable   labelword;

asm  dw0, 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.

     Точка с запятой в отличие от других операторов  Сив опера-

торах встроенного  Ассемблеране является обязательной, хотя она

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

     Комментировать код встроенногоАссемблераможно  толькос

помощью комментариев Си.

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

имена и на переменные Си.

          Обращение к элементам структуры/объединения

     Встроенный код Ассемблера может ссылаться непосредственно на

элементы структуры. Например, в следующем фрагменте программы:

    .

    .

structStudent {

    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 и флаги в коде встроенногоАссемблера

можно свободно изменять.

           _СПОСОБЫ ПЕРЕДАЧИ ПАРАМЕТРОВ В ПОДПРОГРАММЫ

     При организации подпрограмм важно выбрать правильныйспособ

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

несколько таких способов.

       Передача параметров через глобальную область данных

     Понятие общих (глобальных) данных относится к данным, храни-

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

программа, и подпрограмма.Для этого и программа, и подпрограмма

должны знать  адресглобальной области.Этот способ применяется

для передачи данных большого объема,но имеет определенные огра-

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

уровня: объем области глобальных данных не долженпревышать  64К

байт.

               Передача параметров через регистры

     Небольшой объем данных можетбытьпередан  черезрегистры

общего назначения 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

                2СИСТЕМНЫЕ ШИНЫ ПЭВМ СЕРИИ 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 localbus(VLB),  разработаннаяассоциациейVideo

Electronic Standarts Association:

     - Peripherial ComponentInterconnect  (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, содержит текущий адрес ячейки

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

       ванием 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

     Это порты регистров страниц.

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

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                     │

├───────────────────────────────────────────────────────────┤

│ BIT7  654  321  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:

      D5D4    Эти два бита идут от двух из шести 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                           │

├───────────────────────────────────────────────────────────┤

│ BIT7  654  321  0                               │

│      │  │││  │││  │                               │

│      │  │││  │  └──┴──┴─── Sequencer Index            │

│      └──┴──┴──┴──┴──────────── Not Used                   │

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

    SEQUENCER INDEX:

      D2  D1D0Двоичныйадреснужногорегистрапри 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                          │

├───────────────────────────────────────────────────────────┤

│ BIT76  543  210                               │

│      │││  │││  ││                               │

│      │││  │││  │  └─── 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                                    │

├───────────────────────────────────────────────────────────┤

│ BIT7  654  321  0                               │

│      │  │││  │││  │                               │

│      │  ││  └──┴──┴──┴──┴─── CRTC Data Index│

│      └──┴──┴────────────────── Special Function           │

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

      CRTC DATA INDEX:

        D4-D0

D4  D3D2D1  D0ДОСТУП  HEXR#REG.NAME

0   0   0   0   0     W     00h  R0Horizontal Total

0   0   0   0   1     W     01hR1Horizontal Display End

0   0   0   1   0     W     02h  R2Start Horizont. Blanking

0   0   0   1   1     W     03h  R3End Horizontal Blanking

0   0   1   0   0     W     04h  R4Start Horizontal Retrace

0   0   1   0   1     W     05h  R5End Horizontal Retrace

0   0   1   1   0     W     06h  R6Vertical Total

0   0   1   1   1     W     07h  R7CRTC Overflow

0   1   0   0   0     W     08h  R8Preset Row Scan

0   1   0   0   1     W     09h  R9Maximum Scan Line

0   1   0   1   0     W     0Ah  RACursor Start

0   1   0   1   1     W     0Bh  RBCursor End

0   1   1   0   0    R/W    0Ch  RCStart Address High

0   1   1   0   1    R/W    0Dh  RDStart Address Low

0   1   1   1   0    R/W    0Eh  RECursor Location High

0   1   1   1   1    R/W    0Fh  RFCursor 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                      │

├───────────────────────────────────────────────────────────┤

│ BIT76  543  210                               │

│      │││  │││  ││                               │

│      │││  └──┴──┴──┴──┴─── ROW Scan Cursor Begins     │

│      └──┴──┴────────────────── Not Used                   │

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

    ROW SCAN CURSOR BEGINS:

       D4-D0Курсор появляется, когда счет строк равен

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

              такой, который равен содержимому регистров OEh и

              OFh.

    CURSOR END: Только запись

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

│             INDEX = 0Bh CURSOR END                         │

├────────────────────────────────────────────────────────────┤

│ BIT76  543  210                                │

│      │││  │││  ││                                │

│      │││  └──┴──┴──┴──┴─ Row Scan Cursor Ends          │

│      │  └──┴──────────────── Cursor Skew Control           │

│      └────────────────────── Not Used                      │

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

    ROW SCAN CURSOR ENDS:

       D4-D0   Если счет строк будет равен или превышает

               содержимое этого регистра , то отображения

               курсора на дисплее не будет .

    CURSOR SKEW CONTROL:

      D6D5    Значение, запрограммированное в этом регистре

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

                character clocks.

      0    0    Задержки курсора нет.

      0    1    Курсор задерживается на один character clock.

      1    0    Курсор задерживается на два character clocs .

      1    1    Курсор задерживается на три character clocs.

    START ADDRESS HIGH: Чтение / Запись.

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

│             INDEX = 0Ch START ADDRESS HIGH                │

├───────────────────────────────────────────────────────────┤

│ BIT76  543  210                               │

│      │││  │││  ││                               │

│      └──┴──┴──┴──┴──┴──┴──┴─── High Order Start Address   │

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

     Зто восемь высоких битов 16-ти битового регистра,

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

экранного буфера дисплея.

  START ADDRESS LOW: Чтение / Запись

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

│             INDEX = 0Dh START ADRESS LOW                  │

├───────────────────────────────────────────────────────────┤

│ BIT76  543  210                               │

│      │││  │││  ││                               │

│      └──┴──┴──┴──┴──┴──┴──┴─── Low Order Start Address    │

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

    Это восемь младших битов 16-ти битового регистра ,

используемые для определения начального адреса экранного

буфера дисплея .

    CURSOR LOCATION HIGH: Чтение/ Запись.

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

│             INDEX = 0Eh CURSOR LOCATION HIGH             │

├───────────────────────────────────────────────────────────┤

│ BIT76  543  210                               │

│      │││  │││  ││                               │

│      └──┴──┴──┴──┴──┴──┴──┴─── High Order Cursor Location │

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

    Это восемь старших битов 16-битового адресного регистра,

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

    CURSOR LOCATION LOW: Чтение/Запись.

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

│             INDEX = 0Fh CURSOR LOCATION LOW               │

├───────────────────────────────────────────────────────────┤

│ BIT76  543  210                               │

│      │││  │││  ││                               │

│      └──┴──┴──┴──┴──┴──┴──┴─── Low Order Cursor Location│

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

    Это восемь младших битов 16-битового адресного регистра,

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

    OFFSET: Только запись.

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

│             INDEX = 13h OFFSET                            │

├───────────────────────────────────────────────────────────┤

│ BIT76  543  210                               │

│      │││  │││  ││                               │

│      └──┴──┴──┴──┴──┴──┴──┴─── Logical Line Width         │

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

    Этот регистр содержит значение , используемое для

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

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

собой слова или двойные слова , в зависимости от CRTC

clocking mode, в одной текстовой строке.

    LINE COMPARE: Только запись.

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

│   INDEX = 18h LINE COMPARE                                 │

├────────────────────────────────────────────────────────────┤

│   BIT7 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:

     D3D2  D1D0    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                                    │

├────────────────────────────────────────────────────────────┤

│   BIT7 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                             │

├────────────────────────────────────────────────────────────┤

│   BIT7 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                                │

├────────────────────────────────────────────────────────────┤

│   BIT7 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                                  │

├────────────────────────────────────────────────────────────┤

│   BIT7 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:

      D4D3Эти два бита используются для выбора логических

              функций аппаратных, которые можно предварительно

              форматировать между фиксатором данных памяти и

              любыми данными, выбранными регистром Write Mode.

      D4D3

      0   0   Данные без изменений.

      0   1   Logical AND c фиксированными данными

      1   0   Logical OR с фиксированными данными

      1   1   Logical XOR с фиксированными данными.

.

    READ MAP SELECT:

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

│   INDEX = 04h READ MAP SELECT                              │

├────────────────────────────────────────────────────────────┤

│   BIT7 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                                         │

├────────────────────────────────────────────────────────────┤

│   BIT7 6 5 4 3 2 1 0                                     │

│        │ │ │ │ │ │ │ │                                     │

│        │ │ │ │ │ │ └─┴─────   Write Mode                   │

│        │ │ │ │ │ └─────────   Not Used                     │

│        │ │ │ │ └───────────   Read Mode                    │

│        │ │ │ └─────────────   Odd/Even                     │

│        │ │ └───────────────   Shift Register Mode          │

│        └─┴─────────────────   Not Used                     │

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

.

    WRITE MODE:

     D1D0Эти два бита выбирают режим записи. Имеются три

             ценных режима записи, которые контролируют

             переход данных процессора в 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         │

     ┌──────────┼──────────┤││

     │ 00000000 │ 01234567 ├─────┐    ││

     └──────────┴──────────┘     └──────┤ A1         │

                                        ││

                                        ││

     ┌──────────┬──────────┐     ┌──────┤ A2         │

     │   P3     │   P2     │     │      ││

     ├──────────┼──────────┤     │      ││

     │ 01234567 │ 01234567 ├─────┘      ││

     └──────────┴──────────┘     ┌──────┤ A3         │

│      ││

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

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

     ┌──────────┼──────────┤     │

     │ 00000000 │ 01234567 ├─────┘

     └──────────┴──────────┘

D5 = 1:

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

     │ P1   P0  │ P1   P0│             COLOR Palette

     ├────┼─────┼────┼─────┤

     │1357│ 1357│0246│0246 ├─────┐      ┌────────────┐

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

│      ││

                ┌──────────┐     └──────┤ A0         │

                │ P1   P0│││

     ┌────┬─────┼────┼─────┤││

     │0000│ 0000│1357│1357 ├────────────┤ A1         │

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

                                        ││

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

     │ P3   P2  │ P3   P2│     ┌──────┤ A2         │

     ├────┼─────┼────┼─────┤     │      ││

     │1357│ 1357│0246│0246 ├─────┘      ││

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

                                 ┌──────┤ A3         │

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

                │ P3 │ P2  │     │      ││

     ┌────┬─────┼────┼─────┤     │      └────────────┘

     │0000│ 0000│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 03BAh или 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:

     D4D3  D2D1D0

     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.RedFor 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:

      D5D4    Эти биты выбирают 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 будет все

                 больше смещать изображение влево.