Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Лекции по ВМСС - файл Глава 5 ЦЕНТРАЛЬНЫЕ УСТРОЙСТВА ЭВМ.doc


Загрузка...
Лекции по ВМСС
скачать (35218.7 kb.)

Доступные файлы (18):

Глава 10.doc8030kb.25.01.2005 11:05скачать
Глава 11 ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ.doc2232kb.28.01.2005 20:28скачать
Глава 12.doc4356kb.29.01.2005 18:29скачать
Глава 13.doc745kb.09.03.2005 15:11скачать
Глава 14.doc605kb.11.03.2005 15:19скачать
Глава 15.doc243kb.11.03.2005 15:35скачать
Глава 16.doc498kb.11.03.2005 15:43скачать
Глава 2.doc2062kb.24.02.2005 19:16скачать
Глава 3 ЭЛЕМЕНТНАЯ БАЗА ЭВМ.doc2589kb.24.02.2005 20:00скачать
Глава 4.doc1726kb.02.03.2005 20:36скачать
Глава 5 ЦЕНТРАЛЬНЫЕ УСТРОЙСТВА ЭВМ.doc1113kb.04.03.2005 13:56скачать
Глава 6.doc1177kb.04.03.2005 18:09скачать
Глава 7 ВНЕШНИЕ УСТРОЙСТВА ЭВМ.doc918kb.09.03.2005 14:44скачать
Глава 8.doc6796kb.25.01.2005 19:33скачать
Глава 9.doc4463kb.25.01.2005 18:23скачать
ОГЛАВЛЕНИЕ.doc45kb.11.03.2005 19:02скачать
УСЛОВНЫЕ ОБОЗНАЧЕНИЯ.doc41kb.04.03.2005 14:10скачать
учебник_введение.doc53kb.25.01.2005 11:37скачать

Глава 5 ЦЕНТРАЛЬНЫЕ УСТРОЙСТВА ЭВМ.doc

Реклама MarketGid:
Загрузка...
Глава 5 ЦЕНТРАЛЬНЫЕ УСТРОЙСТВА ЭВМ

5.1.Основная память

5.1.1.Состав, устройство и принцип действия основной памяти

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

Запоминающие устройства делятся на основную память, сверхоперативную память (СОЗУ) и внешние запоминающие устройства.

Основная память включает два типа устройств: оперативное запоминающее устройство (ОЗУ или RAM — Random Access Memory) и постоянное запоминающее устройство (ПЗУ или ROM — Read Only-Memory).

ОЗУ предназначено для хранения переменной информации. Оно допускает изменение своего содержимого в ходе выполнения процес­сором вычислительных операций с данными и может работать в ре­жимах записи, чтения и хранения.

ПЗУ содержит информацию, которая не должна изменяться в ходе выполнения процессором вычислительных операций, например стан­дартные программы и константы. Эта информация заносится в ПЗУ перед установкой микросхемы в ЭВМ. Основными операциями, ко­торые может выполнять ПЗУ, являются чтение и хранение.

Функциональные возможности ОЗУ шире, чем ПЗУ, но ПЗУ со­храняет информацию при отключении питания (т.е. является энерго­независимой памятью) и может иметь более высокое быстродействие, так как ограниченность функциональных возможностей ПЗУ и его спе­циализация на чтении и хранении позволяют сократить время выпол­нения реализуемых им операций считывания.

В современных ЭВМ микросхемы памяти (ОП и СОЗУ) изготав­ливают из кремния по полупроводниковой технологии с высокой сте­пенью интеграции элементов на кристалле (микросхемы памяти от­носятся к так называемым «регулярным» схемам, что позволяет сде­лать установку элементов памяти в кристалле (чипе) настолько плот­ной, что размеры элементов памяти становятся сопоставимыми с раз­мерами отдельных атомов).

Основной составной частью микросхемы является массив элемен­тов памяти (ЭП), объединенных в матрицу накопителя.

Каждый элемент памяти может хранить 1 бит информации и имеет свой адрес. ЗУ, позволяющие обращаться по адресу к любому ЭП в произвольном порядке, называются запоминающими устройствами с произвольным доступом.

При матричной организации памяти реализуется координатный принцип адресации ЭП, в связи с чем адрес делится на две части (две координаты) — X и Y. На пересечении этих координат находится эле­мент памяти, чья информация должна быть прочитана или изменена.

ОЗУ связано с остальным микропроцессорным комплектом ЭВМ через системную магистраль (рис. 5.1).

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

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

По шине адреса передается адрес участвующих в обмене элемен­тов памяти (поскольку данные передаются машинными словами, а один ЭП может воспринять только один бит информации, блок элементов памяти состоит из п матриц ЭП, где п — количество разрядов в ма­шинном слове).



Рис. 5.1. Структурная схема ОЗУ

Максимальная емкость памяти определяется количе­ством линий в шине адреса системной магистрали: если количество линий обозначить через т, то емкость памяти (т.е. количество элемен­тов памяти, имеющих уникальные адреса) определяется как 2т. Так, в IBM PC XT шина адреса СМ содержит 20 линий. Поэтому максималь­ный объем ОП в этих машинах равен 220 = 1 Мбайт. В IBM PC AT (с микропроцессором i80286) СМ содержит 24 линии, поэтому объем ОП может быть увеличен до 16 Мбайт. Начиная с МП i80386, шина адре­са содержит 32 линии. Максимальный объем ОП увеличился до 232 = 4 Гбайта.

Микросхемы памяти могут строиться на статических (SRAM) и динамических (DRAM) ЭП. В качестве статического ЭП чаще всего выступает статический триггер. В качестве динамического ЭП мо­жет использоваться электрический конденсатор, сформированный внутри кремниевого кристалла.

Статические ЭП способны сохранять свое состояние (0 или 1) нео­граниченно долго (при включенном питании). Динамические ЭП с тече­нием времени записанную в них информацию теряют (например, из-за саморазряда конденсатора), поэтому они нуждаются в периодическом восстановлении записанной в них информации — в регенерации.

Микросхемы элементов памяти динамических ОЗУ отличаются от аналогичных ЭП статических ОЗУ меньшим числом компонентов в одном элементе памяти, в связи с чем имеют меньшие размеры и мо­гут быть более плотно упакованы в кристалле. Однако из-за необхо­димости регенерации информации динамические ОЗУ имеют более сложные схемы управления.

Основными характеристиками ОЗУ являются объем и быстродей­ствие.

В современных ПЭВМ ОЗУ имеет модульную структуру. Смен­ные модули могут иметь различное конструктивное исполнение (SIP, ZIP, SIMM, DIMM). Увеличение объема ОЗУ обычно связано с уста­новкой дополнительных модулей, которые выпускаются в 30-контак­тном (ЗО-pin) и 72-контактном исполнениях на 1, 4, 8, 16, 32 и 64 Мбай­та. Время доступа к модулям DRAM составляет 60 — 70 не.

На производительность ЭВМ влияют не только время доступа, но и такие параметры (связанные с ОЗУ), как тактовая частота и разрядность шины данных системной магистрали. Если тактовая частота недоста­точно высока, то ОЗУ простаивает в ожидании обращения. При такто­вой частоте, превышающей возможности ОЗУ, в ожидании будет нахо­диться системная магистраль, через которую поступил запрос в ОЗУ.

Разрядность шины данных (8, 16, 32 или 64 бита) определяет дли­ну информационной единицы, которой можно обменяться с ОЗУ за одно обращение. Интегральной характеристикой производительности ОЗУ с учетом частоты и разрядности является пропускная способность, которая из­меряется в мегабайтах в секунду. Для ОП с временем доступа 60-70 не и разрядностью шины данных 64 бита максимальная (теоретичес­кая) пропускная способность при тактовой частоте СМ 50 МГц со­ставляет 400 Мбайт/с, при частоте 60 МГц — 480 Мбайт/с, при 66 МГц — 528 Мбайт/с в режиме группового обмена, реализуемом, на­пример, при прямом доступе к памяти. Для группового обмена харак­терно (и это является еще одной характеристикой ОЗУ), что при каж­дом обращении к памяти для считывания первого слова необходимо больше времени, чем для последующих. Так, при использовании стан­дартной динамической памяти FPM (Fust Page Mode) DRAM на 60 — 70 не каждое обращение к памяти в групповом режиме описывается формулой 7-3-3-3, т.е. для обработки первого слова необходимо 7 так­тов (в течение 6 из которых СМ простаивает в ожидании), а для обра­ботки следующих трех слов - по 3 такта, по 2 из которых СМ проста­ивает. Память типа EDO (Extended Data Output) DRAM позволяет уменьшить количество циклов ожидания (х-2-2-2, где х — количество тактов, необходимое для обработки первого слова). Память типа BEDO (Burst EDO) DRAM обеспечивает обмен по формуле х-1-1-1 для первого обращения и 1-1-1-1 — для последующих. Приведенные формулы характерны для тактовых частот до 60 МГц. Синхронная динамическая память (SDRAM — Synchronous DRAM) способна обмениваться блоками данных на рабочей тактовой частоте (внеш­няя частота процессора) без циклов ожидания: при времени доступа 10 не — до 100 МГц, 12 не — до 83 МГц и 15 не — до 66 МГц.

Микросхемы ПЗУ также построены по принципу матричной струк­туры накопителя. Функции элементов памяти в них выполняют пере­мычки в виде проводников, полупроводниковых диодов или транзис­торов. В такой матрице наличие перемычки может означать «1», а ее отсутствие — «О». Занесение информации в микросхему ПЗУ назы­вается ее программированием, а устройство, с помощью которого заносится информация, — программатором. Программирование ПЗУ заключается в устранении (прожигании) перемычек по тем адресам, где должен храниться «О». Обычно схемы ПЗУ допускают только одно программирование, но специальные микросхемы — репрограммируемые ПЗУ (РПЗУ) — допускают их многократное стирание и за­несение новой информации. Этот вид микросхем также относится к энергонезависимым, т.е. может длительное время сохранять инфор­мацию при выключенном питании (стирание микросхемы происходит либо за счет подачи специального стирающего напряжения, либо за счет воздействия на кристалл ультрафиолетового излучения, для этого в корпусе микросхемы оставляется прозрачное окно).

Сверхоперативные ЗУ используются для хранения небольших объемов информации и имеют значительно меньшее время (в 2 — 10раз) считывания/записи, чем основная память. СОЗУ обычно строятся на регистрах и регистровых структурах.

Регистр представляет собой электронное устройство, способное хранить занесенное в него число неограниченно долго (при включен­ном питании). Наибольшее распространение получили регистры на статических триггерах.

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

Сдвиг записанной в регистр информации может производиться вправо или влево. Если регистр допускает сдвиг информации в лю­бом направлении, он называется реверсивным.

Регистры могут быть объединены в единую структуру. Возмож­ности такой структуры определяются способом доступа и адресации регистров.

Если к любому регистру можно обратиться для записи/чтения по его адресу, такая регистровая структура образует СОЗУ с произволь­ным доступом.

Безадресные регистровые структуры могут образовывать два вида устройств памяти: магазинного типа и память с выборкой по содер­жанию (ассоциативные ЗУ).

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



Рис. 5.2. Регистровая структура магазинного типа: а - типа FIFO; б - типа FILO

Если запись в регистровую структуру (рис. 5.2, а) производится через один регистр, а считывание — через другой, то такая память является аналогом линии задержки и работает по принципу «первым вошел — первым вышел» (FIFO — first input, first output).

Если же запись и чтение осуществляются через один и тот же ре­гистр (рис. 5.2, б), такое устройство называется стековой памятью, работающей по принципу «первым вошел — последним вышел» (FILO — first input, last output). При записи числа в стековую память сначала содержимое стека сдвигается в сторону последнего, К-го регистра (если стек был полностью заполнен, то число из К-го регис­тра теряется), а затем число заносится в вершину стека — регистр 1. Чтение осуществляется тоже через вершину стека, после того как число из вершины прочитано, стек сдвигается в сторону регистра 1.

Стековая память получила широкое распространение. Для ее реа­лизации в ЭВМ разработаны специальные микросхемы. Но часто ра­бота стековой памяти эмулируется в основной памяти ЭВМ: с помо­щью программ операционной системы выделяется часть памяти под стек (в IBM PC для этой цели выделяется 64 Кбайта). Специальный регистр микропроцессора (указатель стека) постоянно хранит адрес ячейки ОП, выполняющей функции вершины стека. Чтение числа все­гда производится из вершины стека, после чего указатель стека изме­няется и указывает на очередную ячейку стековой памяти (т.е. фак­тически стек остается неподвижным, а перемещается вершина сте­ка). При записи числа в стек сначала номер ячейки в указателе стека модифицируется так, чтобы он указывал на очередную свободную ячейку, после чего производится запись числа по этому адресу. Такая работа указателя стека позволяет реализовать принцип «первым во­шел — последним вышел».

В стек может быть загружен в определенной последовательности ряд данных, которые впоследствии считываются из стека уже в об­ратном порядке. На этом свойстве построена система арифметичес­ких преобразований информации, известная под названием «логика Лукашевича».

Память с выборкой по содержанию является безадресной. Обра­щение к ней осуществляется по специальной маске, которая содержит поисковый образ. Информация считывается из памяти, если часть ее соответствует поисковому образу, зафиксированному в маске. На­пример, если в такую память записана информация, содержащая дан­ные о месте жительства (включая город), и необходимо найти сведе­ния о жителях определенного города, то название этого города поме­щается в маску и дается команда «Чтение» — из памяти выбираются все записи, относящиеся к заданному городу.

В микропроцессорах ассоциативные ЗУ используются в составе кэш-памяти для хранения адресной части команд и операндов испол­няемой программы. При этом нет необходимости обращаться к ОП за следующей командой или требуемым операндом: достаточно помес­тить в маску необходимый адрес, если искомая информация имеется в СОЗУ, то она будет сразу выдана. Обращение к ОП будет необхо­димо лишь при отсутствии требуемой информации в СОЗУ. За счет такого использования СОЗУ сокращается число обращений к ОП, а это позволяет экономить время, так как обращение к СОЗУ требует в 2 — 10 раз меньше времени, чем обращение к ОП.

Кэш-память может быть размещена в кристалле процессора (так называемая «кэш-память I уровня») или выполнена в виде отдельной микросхемы (внешняя кэш-память, или кэш-память II уровня). Встро­енная кэш-память (I уровня) в процессорах Pentium имеет объем око­ло 16 Кбайт, время доступа— 5 — 10 не, работает с 32-битовыми словами и при частотах 75 — 166 МГц обеспечивает пропускную спо­собность от 300 до 667 Мбайт/с. Внешняя кэш-память (II уровня) име­ет объем 256 Кбайт — 1 Мбайт, время доступа — 15 не, работает с 64-битовыми словами и при частоте 66 МГц обеспечивает максималь­ную пропускную способность 528 Мбайт/с. Конструктивно исполня­ется либо в виде 28-контактной микросхемы, либо в виде модуля рас­ширения на 256 или 512 Кбайт.
^ 5.1.2. Размещение информации в основной памяти IBM PC

Адресуемой единицей информации основной памяти IBM PC яв­ляется байт. Это означает, что каждый байт, записанный в ОП, имеет уникальный номер (адрес). При использовании 20-битовой шины ад­реса абсолютный (физический) адрес каждого байта является пяти­разрядным шестнадцатеричным числом, принимающим значения от 00000 до FFFFF. В младших адресах располагаются блоки операци­онной системы (векторы прерываний, зарезервированная область па­мяти BIOS), в этой же части могут размещаться драйверы устройств, дополнительные обработчики прерываний DOS и BIOS, командный процессор операционной системы. Затем располагается область па­мяти, отведенная пользователю. Область памяти пользователя закан­чивается адресом 9FFFF. Этот адрес является физической границей оперативного ЗУ, последним адресом 640-Кбайтовой основной памя­ти. Остальное адресное пространство (128 Кбайт с адреса АОООО по BFFFF) отведено под видеопамять, которая физически размещается не в ОП, а в адаптере дисплея. После видеопамяти расположено ад­ресное пространство (256 Кбайт) постоянного запоминающего уст­ройства (ПЗУ), хранящего программы базовой системы ввода-выво­да (BIOS — Basic Input-Output System). Эта часть ОП еще называется ROM-BIOS. Из отведенных 256 Кбайт непосредственно ПЗУ занима­ет 64 Кбайта, а остальные 192 Кбайта оставлены для расширения ПЗУ. Поскольку большая часть оставленной'для расширения BIOS части адресного пространства не используется, в этих адресах часто распо­лагается информация, необходимая для работы сетевых карт, графи­ческих расширителей и др. Запись в ОП (и чтение из нее) может осуществляться не только бай­тами, но и машинными словами. При этом машинное слово при разме­щении в памяти занимает несколько смежных байтов. Каждый байт ОП имеет свой адрес. Но машинное слово характеризуется не всеми адресами занятых байтов, а только одним - адресом младшего байта слова. Обычно графически машинное слово изображается так, что младший байт находится справа (рис. 5.3).



Рис. 5.3. Стереотипное представление машинного слова

При записи слова младший байт размещается по адресу, который является адресом машинного слова, старший байт машинного слова размещается в следующем по порядку байте ОП, имеющем номер, увеличенный на 1 (здесь действует мнемоническое правило «младший байт — по младшему адресу»).



Рис. 5.4. «Вращение» байтов при чтении машинного слова из ОП

При чтении из ОП двух следующих подряд байтов машинного сло­ва их принято размещать слева направо: сначала первый из прочитан­ных байтов (с меньшим адресом), а затем — следующий. В результате происходит «вращение» байтов (рис. 5.4), которое психологически труд­но воспринимается. Необходимо помнить, что при записи отдельных байтов каждый байт располагается в ОП по своему адресу, при чте­нии никакого вращения не происходит. При записи же в ОП единиц информации, имеющих в своем составе больше одного байта, адре­сом информационной единицы является адрес самого младшего бай­та, запись в ОП ведется побайтно, начиная с самого младшего байта, каждый последующий байт располагается в ячейке, адрес которой на 1 больше предыдущего. Иными словами, запись машинного или двой­ного слова производится справа налево, тогда как при чтении считан­ные байты обычно располагаются слева направо — происходят «вра­щение» байтов, перестановка их местами, что необходимо учитывать при работе с ОП на физическом уровне.
^ 5.1.3. Расширение основной памяти IBM PC

Рабочая концепция фирмы IBM при создании IBM PC содержала гипотезу, что объем основной памяти ЭВМ, предназначенной для пер­сонального использования в любой предметной области, не должен превышать 640 Кбайт. Поэтому в базовую модель IBM PC заложили 20-разрядную шину адреса системной магистрали. Наличие 20 линий в шине адреса позволяло адресовать память большего объема, чем было предусмотрено концепцией (220 = 1 Мбайт). «Излишек» адрес-, ного пространства в 384 Кбайта был поделен между видеопамятью (128 Кбайт) и ПЗУ (256 Кбайт).

Физически увеличить объем памяти несложно, для этого необходи­мо только подключить к системной магистрали дополнительные мо­дули. Такая возможность в IBM PC была предусмотрена. Но каждый байт дополнительной памяти должен иметь уникальный адрес, а ад­ресного пространства для дополнительной памяти нет.

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

В IBM PC XT фирма IBM применила другой способ: 256 Кбайт было сначала оставлено для ПЗУ, в котором размещалась базовая система ввода-вывода (BIOS). Анализ программ BIOS показал, что в оставленном для ПЗУ адресном пространстве (UMB — Upper Memory Block) имеются «окна» — неиспользуемые участки. Четыре таких участка (paqe frames), no 16 Кбайт каждый, были выделены, и их адре­са стали использоваться для адресации дополнительной памяти, под­ключенной к системной магистрали. Таким образом, общий объем ОП удалось увеличить на 64 Кбайта. Специальная программа (драйвер дополнительной памяти) «перехватывала» обращение к «окнам» ПЗУ и вместо них «подставляла» дополнительный модуль памяти (Expended Memory).

Дополнительная память не обязательно должна была иметь объем 64 Кбайта. Ее объем мог быть и большим (фирма IBM выпускала модули допблнительной памяти объемом 8 и 32 Мбайта). При этом драйвер дополнительной памяти делил ее на блоки по 16 Кбайт и «отображал» каждое окно UMB на один из блоков Expended Memory. Из-за этого память такого вида получила название отображаемой.

Но развитие персональных ЭВМ привело к необходимости более , серьезной корректировки рабочей концепции. Поэтому в IBM AT с микропроцессором i80286 разрядность шины адреса увеличили до 24, что позволило увеличить ее объем до 16 Мбайт. В МП i80386 разряд­ность шины адреса и адресных регистров микропроцессора увели­чена до 32, в результате чего допустимый объем ОП увеличился до 4 Гбайт.

Наряду с этим изменился принцип формирования абсолютного ад­реса ОП, в результате чего утрачена совместимость с программным обеспечением, разработанным для IBM PC XT.

Для того чтобы обеспечить совместимость AT с XT, было решено реализовать два режима работы микропроцессоров, имеющих номер, больший 80286: реальный и защищенный.

В реальном режиме дополнительные разряды шины адреса забло­кированы, что обеспечивает совместимость с микропроцессором i8086 и позволяет использовать операционную систему MS DOS и программ­ное обеспечение, разработанное для XT. Но при этом остается неис­пользованной вся дополнительная память, находящаяся за пределами 1 Мбайта.

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

В IBM PC XT 20-битовый адрес формировался из двух машинных слов: базового адреса сегмента (16 бит) и смещения (16 бит). Это было связано с тем, что вся ОП делилась на сегменты емкостью 64 Кбайта. Адресация байтов внутри сегмента начиналась с 0 и заканчивалась адресом FFFF.

Внутрисегментный адрес байта называется смещением (т.е. сме­щением относительно начала сегмента). Начало же сегмента (т.е. его базовый 20-битовый адрес) однозначно определялось 16-битовым ад­ресом, который преобразовывался в 20-битовый адрес дописыванием справа четырех нулей. В машинных командах абсолютный (физичес­кий) адрес задавался либо прямым указанием базового адреса сег­мента и смещения (которые разделялись двоеточием, например OA12:F4B2, где ОА12 — 20-битовый адрес начала сегмента; F4B2 — 16-битовое смещение внутри сегмента), лдбо по умолчанию (базовые адреса сегментов программы, данных, стека запоминаются в специ­альных регистрах микропроцессора), либо указанием регистра, в ко­тором содержится необходимый базовый адрес (например, если регистр называется CS, то абсолютный адрес в машинной команде может быть задан в виде CS:F4B2).

Начиная с МП i80386, благодаря увеличению длины всех регист­ров для смещений до 32 бит, реализована возможность работы «с плос­кой памятью», не разделяемой на сегменты. Это допускает адреса­цию 232 байт или 4 Гбайта ОП. Кроме того, в защищенном режиме (начиная с МП i80286) можно использовать и сегментированную память, но сегментные регистры не суммируются со смещением, а предназначены в качестве указателя на управляющие таблицы, содержащие необходимую информацию о сегментах.

Желание использовать в реальном режиме всю фактически имеющуюся в наличии дополнительную память привело к созданию двух виртуальных режимов, один из которых — стандарт EMS (Expended Memory Specifications), реализующий принцип банкирования допол­нительной памяти.

Вся дополнительная память делится на страницы (банки) емкос­тью по 16 Кбайт; выбираются четыре страницы и объявляются актив­ными. Выбранные активные страницы отображаются на четыре окна UMB, теперь при обращении к одному из окон UMB вместо него под­ставляется отображенная на него страница дополнительной памяти.

Поскольку любое окно UMB можно отобразить на любую страни­цу дополнительной памяти (объявив ее активной), то, изменяя отобра­жение в процессе работы, можно использовать всю дополнительную память любого объема.

Стандарт EMS реализуется программным путем — с помощью драйвера дополнительной памяти, который «перехватывает» каждое обращение к окну, имеющемуся в адресном пространстве ПЗУ, и «под­ставляет» вместо ПЗУ соответствующий участок дополнительной памяти.

В соответствии с этим стандартом работают драйверы XMA2EMS.SYS, EMM386.SYS и др.

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

Другой виртуальный режим основан на том, что за счет разблоки­рования на время дополнительных (по сравнению с XT) линий шины адреса системной магистрали удается увеличить доступное MS DOS адресное пространство еще почти на 64 Кбайта, начиная с адреса FFFFF (т.е. за пределами адресного пространства 1 Мбайт). Эта об­ласть адресного пространства (64 Кбайта, начиная с 1 Мбайта) полу­чила название НМЛ (High Memory Area) — старшая область памяти. Ее также можно использовать, работая в MS DOS, для хранения и про­грамм, и данных.

Блоки памяти, расположенные выше границы НМЛ, называются ЕМВ (Extended Memory Blocks) — расширенные блоки памяти, хотя часто расширенной памятью (ЕМ — Extended Memory) называют всю дополнительную память, расположенную в адресном пространстве выше 1 Мбайта, иногда выделяя в ней область НМЛ.

Кратковременное разблокирование дополнительных линий шины адреса системной магистрали позволяет реализовать стандарт XMS(extended Memory Specification), при котором разделенная на страни­цы ЕМ отображается на НМЛ, но в этом стандарте программные модули могут располагаться только в НМА, а остальная память мо­жет использоваться лишь для хранения данных. Стандарт XMS реа­лизуется драйвером HIMEM.SYS, который способен работать с ши­ной адреса, имеющей до 32 линий.

^ 5.2. Центральный процессор ЭВМ

5.2.1. Структура базового микропроцессора

Основу центрального процессора ПЭВМ составляет микропроцес­сор — обрабатывающее устройство, служащее для арифметических и логических преобразований данных, для организации обращения к ОП и ВнУ и для управления ходом вычислительного процесса. В на­стоящее время существует большое число разновидностей микропро­цессоров, различающихся назначением, функциональными возмож­ностями, структурой и исполнением. Наиболее существенными, клас­сификационными различиями между ними чаще всего выступают:

• назначение (микропроцессоры для серверов и мощных приложе­ний; МП для персональных компьютеров и т. д.);

• количество разрядов в обрабатываемой информационной единице (8-битовые, 16-битовые, 32-битовые, 64-битовые и др.);

• технология изготовления (0,5 мкм; 0,35 мкм; 0,25 мкм; 0,18 мкм;

0,13 мкм; 0,07 мкм).

Среди МП для серверов и мощных приложений прочное место завоевали RISC-процессоры (Reduce Instruction Set Computing) с сокращенной системой команд. Система команд таких МП содер­жит ограниченное число (порядка 50) очень простых команд. За счет этого упрощаются схемы управления микропроцессором и сокращаются его размеры. На кристалле МП (чипе) освобождается место, которое используется для размещения кэш-памяти большого объема. Наличие такой памяти внутри чипа позволяет сократить количество обращений к основной памяти, а это приводит к повы­шению быстродействия ЭВМ в 2—10 раз, так как обращение к кэш-памяти, расположенной внутри чипа, требует меньших затрат времени. Для повышения производительности RISC-процессоры обычно работают с машинными словами очень большой длины (не менее 64 бит). 'К числу RISC-процессоров относятся микропроцессоры SPARC и UltraSPARC фирмы Sun Microsystems, Alpha фирмы Compaq, MIPS фирмы Silicon Graphics. Консорциум фирм IBM—Motorola—Apple разрабатывает и выпускает МП Power PC, или сокращенно РРС. Фирма Intel (INTegrated ELectronics) совместно с Hewlett-Packard разраба­тывает RISC-процессор «Р7» с тактовой частотой более 900 МГц, обеспечивающий совместимость с 32-битовыми МП. Прогнозирует­ся, что два из этих микропроцессоров (РРС и Р7) в модифицирован­ном виде будут использоваться до 2025 г.

Микропроцессоры для персональных компьютеров обычно отно­сятся к CISC-процессорам (Complete Instruction Set Computing) с пол­ной системой команд, насчитывающей до 250 единиц. К их числу от­носятся 8-битовые микропроцессоры i8080, i8085 (с буквы i начина­ются названия МП, выпускаемых фирмой Intel), Z80 (с буквы Z на­чинаются названия МП фирмы Zilog) и др.

Наибольшее распространение среди 16-битовых микропроцессо­ров получили i8086, i8088, среди 32-битовых — i80386, i80486, кото­рые совместимы по командам и форматам данных снизу вверх. Эти микропроцессоры используются в различных модификациях IBM PC.

Два из этих микропроцессоров — J8086 и i8088 — по назначению и функциональным возможностям одинаковы. Различаются они только разрядностью шины данных системной магистрали: МП i8086 имеет 16-битовую шину данных, a i8088 — 8-битовую. В связи с этим вы­борка команд и операндов из основной памяти производится за раз­ное число машинных циклов. С точки зрения функциональных воз­можностей существенного значения эти различия не имеют, поэтому и упоминают о них, как правило, вместе: 8086/8088.

Этот тип МП является базовым для IBM-совместимых машин. Все последующие типы МП основываются на нем и лишь развивают его архитектуру.

МП 8086/8088 имеет базовую систему команд. В следующей мо­дификации МП фирмы Intel — 80186 реализована расширенная сис­тема команд. Расширение системы команд продолжается во всех но­вых моделях, но кроме этого в каждой новой модели вводятся допол­нительные архитектурные решения: в 80286 введены встроенный блок управления ОП, работающей в виртуальном режиме (что позволило увеличить предельно допустимый объем виртуальной памяти до 4 Гбайт при 16 Мбайт физической), и блоки, позволяющие реализовать мультизадачность: блок защиты ОП и блок проверки уровня привилегий, присваиваемых каждой задаче. Кроме того, во всех последующих моделях вводятся и совершенствуются средства, позволяющие повы­сить производительность МП: совершенствуются конвейер команд и встроенный блок управления ОП, вводятся микропрограммное уп­равление операциями, прогнозирование переходов по командам ус­ловной передачи управления, скалярная архитектура ЦП (арифметический конвейер) и мультискалярная архитектура (несколько парал­лельно работающих арифметических конвейеров, одновременно вы­полняющих несколько машинных операций, благодаря чему появля­ется возможность за один такт МП выполнять более одной машинной операции). Начиная с 80486, в кристалле МП размещается арифмети­ческий сопроцессор для операций с плавающей точкой. Фирма Intel разработала специальный микропроцессор Over Drive, который пред­назначен для параллельной работы с основным микропроцессором (для этого на системной плате предусматривается специальное гнездо).

Все эти усовершенствования позволяют сделать персональную ЭВМ IBM PC мультипрограммной, многопользовательской (МП 80286 позволял работать с 10 терминалами; 80386 — с 60) и многозадачной. С помощью операционной системы стало возможным реализовать работу в режиме SVM (системы виртуальных машин), т.е. на одной ПЭВМ реализовать множество независимых виртуальных машин (МП 80386 позволял в этом режиме реализовать работу до 60 пользовате­лей, каждому из которых предоставлялась отдельная виртуальная ПЭВМ IBM PC на МП 8086).

В обозначениях микропроцессоров появились дополнительные эле­менты: буквы SL, SX, DX и цифры. Буквы обозначают:

• SL — микропроцессор изготовлен с пониженным потреблением энергии (питание на те или иные блоки МП подается только в те моменты, когда они включаются в работу; в результате снижается потребление энергии и увеличивается срок службы источников пи­тания, сокращается выделение энергии в кристалле МП и снижа­ется его температура, благодаря чему увеличивается срок службы микропроцессора);

• SX — данный микропроцессор является переходным — длина ма­шинного слова в нем осталась без изменения от предыдущей модели;

• DX — длина машинного слова увеличена вдвое по сравнению с

МП предыдущей модели.

Цифры обозначают, во сколько раз изменилась тактовая частота по сравнению с МП предыдущей модели. Иногда (при наличии моди­фикаций) дополнительно указывается тактовая частота МП.

Разработан новый микропроцессор — Pentium MMX (MultiMedia Extention), в котором реализована архитектура вычислительных сис­тем класса SIMD, введено 57 новых команд, необходимых для обра­ботки аудио-, видео- и телекоммуникационной информации.

Тактовая частота МП Pentium различных модификаций выросла с 60 до 700 МГц и продолжает расти.

Ведущие фирмы-производители ЭВМ с целью совершенствования выпускаемой ими продукции активно ведут научные исследования, о чем свидетельствуют данные, приведенные в табл. 5.1. За 1997 г. фир­мой IBM получены:

  • патенты по применению в микросхемах медных проводников вместо алюминиевых (50 патентов), что позволяет увеличить степень интег­рации микросхем, повысить их тактовую частоту, снизить энерго­потребление, рассеиваемую мощность и стоимость изготовления;

  • группа патентов, позволяющая в накопителе на жестких магнит­ных дисках достигнуть плотности записи 10 Мбит на 1 кв. дюйм, что позволило фирме создать НЖМД емкостью 1 Гбайт размером с пуговицу средней величины;

  • группа патентов, обеспечивающая запись и чтение нескольких сто­рон CD за счет перефокусировки лазерного луча (без переворачи­вания компакт-диска);

  • патент на клавиши, чувствительные к силе нажатия, и др. В ре­зультате выполнения таких работ с 1998 г. IBM выпускает микро­процессоры РРС 750 с медной разводкой.

" Таблица 5.1 Творческая деятельность компьютерных фирм в 1997 г.

Наименование фирмы


Количество полученных патентов


IBM

1724

NEC

1095

Motorol

1058

Fujitsu

903

Hitachi

902

Mitsubishi

893

Toshiba

862

Sony

860

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

Микропроцессоры Pentium Pro фирмы Intel начали выпускаться по технологии 0,5 мкм (данный параметр характеризует минимально различимый размер компонентов ИС), a Pentium 2 выпускался уже по технологии 0,35 мкм. Микропроцессоры фирмы Intel Xeon (для серве­ров) и Celeron (для недорогих компьютеров) выпускаются по 0,25 мкм-технологии. МП Pentium 3 (тактовая частота в конце 1999 г. дости­гала 750 МГц) и Alpha фирмы Compaq (с тактовой частотой 1 ГГц) выпускаются по 0,18 мкм-технологии.

Считается, что переход на 0,13 мкм-технологию позволит повы­сить тактовую частоту МП до 1,3 ГГц. В то же время фирма Texas Instruments с 1998 г. осваивает 0,07 мкм-технологию.

Микропроцессоры фирмы Intel, начиная с Pentium 2, имеют ядро, выполненное в виде RISC-процессора, и аппаратный транслятор ко­манд х86 в RISC-команды.

В персональных ЭВМ нашли применение не только микропроцес­соры фирмы Intel. Крупнейшими производителями аналогов микро­процессорам Intel (клонов) являются фирмы Cyrix и AMD.

Фирма Cyrix выпускает микропроцессоры М-1 и М-2, аналогич­ные Pentium, но превосходящие его по производительности. Так, М-1 с тактовой частотой 150 МГц по производительности эквивалентен МП Pentium с тактовой частотой 200 МГц.

Фирма AMD, завоевавшая около 30% рынка МП в России, вы­пускает микропроцессоры К-5, К-6 и К-7, соответствующие по архи­тектуре Pentium. Причем МП К-7 Thunderbird в 2000 г. работал с тактовой частотой 1 ГГц.

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

Структурная схема базовой модели МП фирмы Intel приведена на рис. 5.5.

Условно микропроцессор можно разделить на две части: исполни­тельный блок (Execution Unit, EU) и устройство сопряжения с систем­ной магистралью (Bus Interface Unit, BIU).

В исполнительном блоке находятся арифметический блок и реги­стры общего назначения (РОН). Арифметический блок включает арифметико-логическое устройство, вспомогательные регистры для хранения операндов и регистр флагов.

Восемь регистров исполнительного блока МП (АХ, ВХ, СХ, DX, SP, ВР, SI, DI), имеющих длину, равную машинному слову, делятся на две группы. Первую группу составляют регистры общего назна­чения АХ, ВХ, СХ и DX, каждый из которых представляет собой регистровую пару, составленную из двух регистров длиной 0,5 ма­шинного слова: аккумулятор, или регистр АХ, состоит из регистров АН и AL. Регистр базы (Base Register) ВХ состоит из регистров ВН и BL. Счетчик (Count Register) СХ включает регистры СН и CL. Ре­гистр данных (Data Register) DX содержит регистры DH и DL. Каж­дый из коротких регистров может использоваться самостоятельно или в составе регистровой пары. Условные названия (аккумулятор, ре­гистр базы, счетчик, регистр данных) не ограничивают применения этих регистров - эти названия говорят о наиболее частом использо­вании их или об особенности использования того или иного регистра в той или иной команде.

Вторую группу составляют адресные регистры: SP, BP, SI и DI (в старших моделях количество адресных регистров увеличено). Эти регистры активно используются по функциональному назначению и в других целях их применять не рекомендуется. В качестве адресного регистра часто используется РОН ВХ. Программно допускается ис­пользование регистров ВР, DI и SI в качестве регистров для хранения операндов, но отдельные байты в этих регистрах недоступны. Основ­ное их назначение — хранить числовые значения, реализуемые при формировании адресов операндов.-


Рис. 5.5. Структурная схема микропроцессора

Устройство сопряжения с системной магистралью содержит управ­ляющие регистры, конвейер команд, АЛУ команд, устройство управле­ния исполнительным блоком МП и интерфейс памяти (соединяющий внутреннюю магистраль МП с системной магистралью ПЭВМ).

Управляющие регистры ВШ: CS (указатель командного сегмен­та), DS (указатель сегмента данных), SS (указатель сегмента стека), ES (указатель дополнительного сегмента) и др. — служат для опреде­ления физических адресов ОП — операндов и команд. Регистр IP (Instruction Pointer) является указателем адреса команды, которая будет выбираться в конвейер команд в качестве очередной команды (в отечественной литературе такое устройство называется счетчик команд). Конвейер команд МП хранит несколько команд, что позво­ляет при выполнении линейных программ совместить подготовку оче­редной команды с выполнением текущей.

К управляющим регистрам МП относится и регистр флагов, каж­дый разряд которого имеет строго определенное назначение. Обычно разряды регистра флагов устанавливаются аппаратно при выполне­нии очередной операции в зависимости от получаемого в АЛУ ре­зультата. При этом фиксируются такие свойства получаемого резуль­тата, как нулевой результат, отрицательное число, переполнение раз­рядной сетки АЛУ и т.д. Но некоторые разряды регистра флагов мо­гут устанавливаться по специальным командам. Некоторые разряды имеют чисто служебное назначение (например, хранят разряд, «вы­павший» из АЛУ во время сдвига) или являются резервными (т.е. не используются).

Все флаги младшего байта регистра устанавливаются арифмети­ческими или логическими операциями МП. Все флаги старших бай­тов, за исключением флага переполнения, устанавливаются программ­ным путем. Для этого в МП имеются команды установки флагов (STC, STD, STI), сброса (CLC, CLD, СП), инвертирования (CMC).
^ 5.2.2. Система команд микропроцессора

Один из основных принципов построения ЭВМ был сформулиро­ван американским ученым Дж.фон Нейманом: работой ЭВМ управля­ет программа, состоящая из отдельных команд. Программа размеща­ется вместе с данными в основной памяти ЭВМ. Каждая команда хра­нится в отдельной ячейке памяти (или группе смежных ячеек) и име­ет свой адрес. Все команды имеют одинаковую структуру. Они со­стоят из двух частей: кода операции и адресной части. Код операции определяет, какую команду нужно выполнить. Адресная часть опре­деляет, где хранятся операнды, т.е. обрабатываемые данные, и куда необходимо поместить результат операции.

В зависимости от количества используемых в команде операндов различаются одно-, двух-, трех-, четырехадресные и безадресные ко­манды.

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

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

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

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

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

Все команды программы выполняются последовательно, команда за командой, в том порядке, как они записаны в памяти ЭВМ (есте­ственный порядок следования команд). Этот порядок характерен для линейных программ, т.е. программ, не содержащих разветвлений.

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

При явном указании адреса следующей команды реализуется «при­нудительный» порядок следования команд. Он возможен только в том случае, если программа размещается в доступной процессору части основной памяти. Поскольку при этом команды (с точки зрения про­цессора) ничем не отличаются от данных, в процессе выполнения программы ее команды можно изменять (модифицировать), что по­вышает гибкость программирования и универсальность ЭВМ.

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

• команды пересылки данных:

команды пересылки данных внутри МП (MOV, PUSH, POP,

XCHNG и т.д.);

команды ввода-вывода (IN, OUT); -

• арифметические команды:

основные (сложение, вычитание, умножение, деление); дополнительные (INS, DEC и др.);

• логические команды (сдвиг, дизъюнкция, конъюнкция, отрицание равнозначности и др.);

• команды обработки строковых данных (пересылка, сравнение, ска­нирование, слияние/разделение и др.);

• команды передачи управления (безусловный переход, условный пе­реход, прерывания, переход с возвратом);

• команды управления («нет операции», «внешняя синхронизация»

и т.д.).

Каждая команда имеет большое число модификаций, чаще всего оп­ределяемых режимом адресации данных (операндов). Операнды быва­ют трех типов: регистровый, непосредственный и «операнд в памяти».

^ Регистровые операнды указываются именами используемых ре­гистров МП.

Непосредственные операнды бывают всегда числовые. Причем числа могут быть представлены в различных системах счисления. Различаются они по последней букве, сопровождающей число: «Ь» — двоичное, «q» — восьмеричное, «d» — десятичное, «h» — шестнадцатеричное.

«Операнды в памяти» могут указываться с помощью регистров, символическими именами, константами. Различные комбинации этих элементов в команде называются способами адресации. Так, команда MOV (переслать число) может иметь следующие способы адресации:

mov r,r mov sr,m

mov r,m mov sr,r

mov m,r mov m,sr

mov r,imed mov r,sr

mov m,imed

где: г — регистр общего назначения микропроцессора; m — адрес в памяти; imed — число; sr — сегментный регистр.

При использовании «операндов в памяти» указание на физический адрес ОП может производиться непосредственно, косвенно и со сме­щением.

При непосредственной адресации исполнительный адрес указыва­ется в виде шестнадцатеричного числа, однозначно определяющего ячейку внутри заданного сегмента или в виде символического имени. Если адресуется ячейка текущего сегмента, то имя сегмента в адресной части команды не указывается (это связано с режимом умолча­ния: текущим по умолчанию для адреса команды является регистр CS, для адресации ячейки в стековом сегменте — SS, для адресации дан­ных — DS). Это значит, что в команде безусловного перехода внутри того же сегмента нет необходимости указывать:

cs: исполнительный адрес,

а при адресации данных —

ds: исполнительный адрес.

Только, если адрес ОП относится к сегменту, указанному в другом регистре (или не указанному в сегментных регистрах), его имя необ­ходимо указывать в команде.

При косвенной адресации исполнительный адрес ОП хранится в одном из 16-битовых регистров МП, а в команде указывается имя этого регистра. В этом случае имя регистра, содержащего адрес, заключа­ется в квадратные скобки. Например:

mov [si], 12 .

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

^ Базовая адресация появилась впервые, когда стало применяться динамическое размещение программ в ОП, а это в свою очередь воз­никло, когда объем ОП стал настолько большим, что превысил раз­меры выполняемых программ.

(Программу можно писать в абсолютных адресах, когда программист сам оп­ределяет, в каких ячейках ОП она должна размещаться для исполнения, и в относи­тельных адресах, когда заранее неизвестно, в какую часть ОП программа попадет при загрузке. В первом случае программа окончательно готова к использованию, но является неперемещаемой. Если требуемая область ОП занята хотя бы частично, такую программу выполнить уже нельзя. Во втором случае программа перед вы­полнением должна быть «привязана» к своему месту в ОП, поскольку все програм­мы пишутся так, как будто при загрузке они обязательно попадут в область ОП, начиная с ячейки 0. Перед загрузкой операционная система ищет свободное место в ОП, в которой можно разместить программу, и адрес первой ячейки этой свобод­ной области запоминается как общая добавка ко всем адресам, употребляемым в программе. Этот адрес называется «базовым». Абсолютные адреса определяются по сложению с базовым адресом. Такая система реализована в мультипрограмм­ных вычислительных машинах с динамическим распределением ресурсов.)

В IBM PC базовая адресация реализована с использованием реги­стров ВХ или ВР.

Индексная адресация имеет смысл, когда надо осуществить пере­бор элементов какого-то набора данных. Если элемент данных имеет длину 1 байт, то при переходе от одного элемента к другому адрес должен меняться на 1. Если длина равна 3 байтам — на 3. Начальный же адрес массива (НА) желательно не менять, так как одновременно может быть несколько обращений к одному и тому же массиву. НА является как бы константой этого массива. Индекс (i) указывает на конкретный элемент массива, адрес которого может быть вычислен как сумма: HA+i. Для хранения индексов в IBM PC предусмотрено два индексных регистра: EI и DI.

Могут встретиться комбинированные системы адресации, напри­мер базовая (или индексная) со смещением, базово-индексная и т.д. Базово-индексная адресация в команде выглядит в виде такого адре­са: [BP+SI].
^ 5.2.3.Взаимодействие элементов при работе микропроцессора

Работой МП управляет программа, записанная в ОП ЭВМ. Адрес очередной команды хранится в счетчике команд IP (Instruction Pointer) и в одном из сегментных регистров (чаще всего в CS). Каждый из них в реальном режиме имеет длину 16 бит, тогда как физический адрес ОП должен иметь длину 20 бит. Несогласованность длины машинно­го слова (16 бит) и длины физического адреса ОП (20 бит) приводит к тому, что в командах невозможно указать физический адрес ОП — его приходится формировать, собирать из разных регистров МП в процессе работы.

В реальном режиме вся ОП делится на сегменты (длина сегмента — 64 Кбайта). Адрес ОП состоит из двух частей: номер сегмента в ОП (база сегмента) и номер ячейки внутри данного сегмента (смещение относительно начала сегмента). Базовый адрес сегмента образуется добавлением к номеру сегмента справа четырех нулей. Поскольку пос­ледние четыре разряда абсолютного (физического) адреса сегмента всегда нулевые, сегмент может начинаться не с любой ячейки ОП, а только с «параграфа» — начала 16-байтового блока ОП. В структуре микропроцессора имеется несколько регистров сегментов, например в i8086 — четыре:

CS — программный сегмент;

DS — сегмент данных (информационный сегмент);

SS — стековый сегмент;

ES — расширенный сегмент (дополнительный сегмент данных).

Номер ячейки внутри сегмента (смещение) называется также ис­полнительным адресом. В большинстве случаев в адресной части ко­манды указывается именно исполнительный адрес — номер сегмента чаще всего подразумевается по умолчанию. Однако допускается указание и полного адреса ОП в виде префиксной структуры: «сегмент: смещение». Если сегмент в команде не указывается, значит работа ведется внутри текущего сегмента (характер выполняемой работы и сегментный регистр, определяющий текущую базу сегмента, зависят от вида выполняемой команды).

Номер сегмента так же, как и смещение, имеет длину 2 байта. При вычислении физического адреса ОП сегмент и смещение суммируют­ся, но сегмент перед суммированием сдвигается влево на 4 бита. В результате суммирования образуется физический адрес ОП длиной 20 бит.

В защищенном режиме базовые адреса сегментов хранятся в дескрипторных таблицах и имеют длину 24 или 32 бита (в зависимости от типа МП). В сегментных же регистрах хранится селектор, содержа­щий номер дескрипторной таблицы и дескрипторное смещение, т.е. порядковый номер дескриптора (в котором и хранится базовый адрес сегмента) в данной дескрипторной таблице (рис. 5.6).



Рис. 5.6. Формирование физического адреса ОП в защищенном режиме

Физический адрес очередной команды через внутреннюю магист­раль МП и интерфейс памяти поступает на шину адреса системной магистрали. Одновременно из устройства управления (УУ) исполни­тельного блока на шину управления выдается команда (управляющий сигнал) в ОП, предписывающая выбрать число, находящееся по адресу, указанному в системной магистрали. Выбранное число, яв­ляющееся очередной командой, поступает из ОП через шину данных системной магистрали, интерфейс памяти, внутреннюю магистраль МП на регистр команд (INST).

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

В зависимости от используемого в команде режима адресации организуется выборка необходимых исходных данных.
^ 5.2.4. Работа микропроцессора при выполнении программного прерывания

Программы-обработчики прерываний могут находиться в различ­ных частях основной памяти (место их расположения в разных верси­ях операционной системы может быть различным). Для обеспечения совместимости программ под разными версиями операционной сис­темы обращение к обработчикам прерываний осуществляется по их номерам.

Связь между номером прерывания и адресом основной памяти, соответствующим точке входа в обработчик прерывания, осуществ­ляется через таблицу векторов прерываний, занимающую 1 Кбайт сегмента 0 основной памяти (при работе в DOS). При работе в защи­щенном режиме связь между номером прерывания и адресом обработ­чика прерывания осуществляется через дескрипторную таблицу пре­рываний (IDT — Interrupt Descriptor Table), местонахождение кото­рой определяется системным регистром микропроцессора IDTR.

Поскольку адрес любого байта основной памяти определяется ба­зовым адресом сегмента (2 байта) и смещением в сегменте (2 байта), вектор прерываний разделен на «четверки» байтов, имеющие струк­туру, показанную на рис. 5.7.

1-й байт

2-й байт

3-й байт

4-й байт

Смещение




Сегмент

Рис. 5.7. Структура записи в векторе прерываний

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

  • по номеру прерывания определить адрес первого байта «четвер­ки» в векторе прерываний (он равен п*4);

  • выбрать 4 байта из 0 сегмента основной памяти, начиная с байта 4nh;

  • два последних байта поместить в регистр CS;

  • два первых байта поместить в счетчик команд IP.

После этого начнет выполняться первая команда обработчика пре­рывания № nh.

Таблица векторов прерываний используется не только для хране­ния адресов обработчиков прерываний, но и для указания на места хранения в ОП служебной информации. Для этой цели служат векто­ры прерываний IDh, lEh, IFh, 41h, 43h, 46h, 4Ah. Так, вектор IDh содержит адрес таблицы параметров видеосистемы (а не обработчи­ка прерывания); вектор lEh - таблицы параметров дискет; вектор IFh- адрес знакогенератора адаптера CGA и т.д.

Команда INT, кроме определения адреса обработчика прерыва­ний, выполняет следующие действия:

• сохраняет в стеке часть слова состояния процессора:

(SP) <—— (SP) - 2

(вершина стека) <— (регистр флагов)

(SP) <——(SP) - 2

(вершина стека) <-— (CS)

(SP) <—(SP) - 2

(вершина стека) <— (IP)

• сбрасывает флаги разрешения прерывания и трассировки:

(IF) <— О (TF) <— О

• заносит адрес точки входа обработчика прерываний в регистры CS и IP:

(CS) <— (номер прерывания * 4 + 2)

(IP) <— (номер прерывания * 4)

Команда INT относится к парным командам - каждый обработчик прерывания заканчивается командой IRET (возврат из прерывания).

По команде IRET (без параметров) выполняются следующие дей­ствия:

(IP) <— (вершина стека)

(SP) <— (SP) + 2

(CS) <— (вершина стека)

(SP) <— (SP) + 2

(регистр флагов) <— (вершина стека)

(SP) <— (SP) + 2

Каждый обработчик прерываний BIOS и DOS (Windows) может выполнять несколько различных функций. В команде INT никак не определяется, какую именно функцию должен выполнить обработчик прерываний. Поэтому перед обращением к команде INT в регистры микропроцессора должна быть занесена информация, определяющая, какую функцию необходимо выполнить.

Например, по команде INT 13h могут быть выполнены следующие функции:

00h — сброс дисковой системы;

01h — определение состояния дисковой системы (успешное завер­шение, некорректная команда, не найдена адресная метка и т.д.);

02h — чтение секторов в основную память;

03h — запись секторов из основной памяти;

04h — контроль секторов (есть ошибка — нет ошибки);

05h — форматирование дорожки;

06h — для жесткого диска — форматирование дорожки с установ­кой флагов плохих секторов;

07h — для жесткого диска — форматирование диска, начиная с указанной дорожки;

08h — определение типа и текущих параметров диска и т.д.

Нужно иметь в виду, что одни и те же номера функций могут обо­значать разные операции для различных устройств; некоторые функ­ции отсутствуют в ранних версиях операционной системы, а некото­рые — претерпели изменения в последующих версиях.

При выполнении команды INT номер функции должен содержать­ся в регистре АН микропроцессора. Остальные регистры должны включать необходимые для этой функции параметры. Например, для функции 02h остальные регистры микропроцессора должны содер­жать:

AL — число читаемых секторов;

СН — номер дорожки, на которой расположены читаемые сек­тора;

CL — номер сектора;

DH — номер головки;

DL — номер дисковода;

ES:BX — адрес буфера для чтения.

В результате выполнения этой функции при возникновении ошиб­ки флаг CF устанавливается в 1; в регистр AL заносится число счи­танных секторов, в регистр АН записывается код состояния, сформи­рованный после окончания операции:

00 — успешное завершение;

01 — некорректная команда;

02 — адресная метка не найдена;

FF — сбой операции опроса (для жесткого диска).

Кроме команд INT и IRET, в IBM PC с прерываниями работают команды CLI (запрещение маскируемых прерываний) и STI (отмена запрета прерывания).
Контрольные вопросы

1.Для чего необходима стековая память?

2. Как организована стековая память IBM PC?

3. Чем различаются стандарты XMS и EMS использования дополни­тельной памяти IBM PC?

4. Каким образом определяется физический адрес ОП в реальном и в защищенном режимах?

5. Для чего необходим регистр флагов в исполнительном блоке МП?

6. Каким образом взаимодействуют узлы МП при выполнении ариф­метической команды?

7. Чем объясняется использование матричной организации ОП?

8. Каким образом заносится информация в постоянное ЗУ?

9. В каких случаях приходится сталкиваться с «вращением байтов» и чем оно объясняется?

10. Чем отличается память с выборкой по содержанию от памяти с произвольным доступом?

11. С какой целью в ЭВМ реализован режим прерываний?

12. Какая информация включается в состав слова состояния процес­сора?

13. Какие действия выполняют команды, вызывающие программные прерывания?

14. В чем заключается подготовка ЦП к выполнению программного прерывания?






Скачать файл (35218.7 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru