Жанр: Учеба

Программно-аппаратная организация компьютера IBM PC

сторінка №3

в
использовании сопроцессора 8087, для которого в IBM/PC предусмотрено
специальное гнездо в системном блоке. Второй способ заключается в
организации мультипроцессорного режима, при котором несколько обычных
микропроцессоров совместно выполняют вычисления, распределяя нагрузку
между собой. Фирма "IBM" не предусмотрела такой режим работы в конструкции
своего персонального компьютера. Еще один вспомогательный "чип" -
процессор ввода/вывода 8089 позволяет повысить общую производительность
системы на базе процессора 8086/8088, однако его использование также не
предусмотрено в IBM/PC.
Рассмотрим теперь еще одно пустое гнездо в системном блоке IBM/PC.
"Встроенное" программное обеспечение IBM/PC записано в микросхемах
постоянного запоминающего устройства (ПЗУ), расположенных почти в центре
системного блока, ближе к левой стороне. Как видно из рис.2.1 таких
микросхем пять. Рядом с ними, с левой стороны имеется свободное гнездо,
которое оставлено специально с целью добавления каких-либо программ.
Назначение этого гнезда вызывает различные домыслы. Лично я вижу три
возможных разумных предназначения. Во-первых, оно могло быть оставлено по
соображениям надежности - если в какой-нибудь из записанных в ПЗУ процедур
обнаружатся ошибки, исправление которых приведет к увеличению объема
процедуры, то в это гнездо можно будет установить микросхему с записью
этих изменений. Во-вторых, если "IBM" расширит номенклатуру поддерживаемых
системой устройств, таких как жесткие диски большой емкости, тогда в это
гнездо можно будет установить микросхему ПЗУ с записанными программами
управления. Правда, блок расширения для любого нового устройства также
может содержать все необходимые программы, так что действительной
необходимости в дополнительном гнезде для этих целей нет. Третья, и
наиболее вероятная, возможность связана с поддержкой сопроцессора 8087. В
это гнездо можно установить ПЗУ с программами сопроцессора. Такие
программы позволили бы работать с арифметическим сопроцессором 8087
"встроенному" интерпретатору Бейсика, а также программам, написанным на
других языках, например, на Паскале, Фортране или Бейсике (с помощью
компилятора).

2.6. Три аспекта рассмотрения архитектурных решений

Все о чем мы говорили до сих пор в этой главе относится только к
оригинальной модели IBM/PC, т.е. к первому аспекту. На совместимые с
IBM/PC компьютеры распространяется лишь часть информации, а вся остальная
применяется для каждого конкретного компьютера. Совпадает обычно лишь одна
деталь всех совместимых с РС компонентов - это вид разьемов для
подключения блоков расширения. В этой части все РС - подобные компьютеры
практически полностью повторяют IBM/PC.
В сфере больших компьютеров уже давно образовался определенный круг
так называемых элементов совместимых по способу соединения. Такие элементы
могут заменить части системы путем отключения исходного элемента и
включения на его место заменителя. Такая замена может производиться как со
стороны периферийных устройств компьютера, так и со стороны процессора.
То же самое происходит и с IBM/PC. В месте любого соединения можно
обнаружить конкуренцию между различными вариантами элементов замены по обе
стороны соединения. Постоянным остается только формат разъема - его
изменить нельзя. Таким образом, общим для всех компьютеров, совместимых с
IBM/PC, будет формат разъема для подключения блоков расширения.
Материал, рассматривавшийся в начале этой главы, к третьей области
интересов - компьютером, использующих различные версии операционной
системы MS-DOS, - непосредственного отношения не имеет. Однако, в той
части, где речь пойдет о значении дополнительного оборудования,
подключаемого к IBM/PC, все сказанное об IBM/PC в равной степени относится
и к другим персональным компьютерам.

2.7. Возможности комплектации IBM/PC

В этом параграфе речь пойдет о различных возможностях комплектации
IBM/PC дополнительными периферийными устройствами и о том, как это
сказывается на рабочих характеристиках. Не все понимают значение
периферийного оборудования. Дескать, IBM/PC и есть IBM/PC, независимо от
того, что к нему подключено. Однако, для практического использования
решающее значение имеет то оборудование, которое подключено к компьютеру.
По моему мнению существует три или четыре достаточно сильно
различающихся персональных компьютера фирмы "IBM".
Речь идет об одной модели компьютера с различными комплектами
периферийных устройств, которые определяют область применения компьютера.
ИГРУШКА. Это IBM/PC без дисковой памяти, так называемая "кассетная
система". Такая конфигурация, по моему мнению, никогда и никем не
воспринималась всерьез и, вероятно, не имела права на существование. Я
убежден, что ее появление связано только с желанием снизить цену базовой
модели, чтобы не отпугнуть потенциальных покупателей. Такой комплект вряд
ли можно использовать для решения сколько-нибудь серьезных задач, так что
усеченный вариант мощной машины становится похож на игровую машину типа
"Атари" или "Маттель". Доказательством бесполезности такого варианта может
служить отсутствие программ на кассетах. Единственная возможность
использования этой системы состоит, вероятно, в подготовке и обучении
пользователей перед переходом к работе с более серьезным оборудованием.

Следующие два варианта комплектации IBM/PC являлись основными
вариантами компоновки IBM/PC в начале ее применения. На их примере хорошо
иллюстрируется положение о том, что в некотором смысле существует не один
компьютер IBM/PC с различным периферийным оборудованием, а несколько
существенно отличающихся друг от друга компьютеров IBM/PC.
ДЕЛОВОЙ КОМПЬЮТЕР. Это IBM/PC с монохромным дисплеем, желательно
фирмы "IBM". Естественно, эта машина должна иметь два дисковода,
устройство печати и, возможно, еще какое-то оборудование. Но отличает этот
компьютер, прежде всего, дисплей. Графика здесь не требуется, вся работа
ведется в алфавитно-цифровом (текстовом) режиме. Использование дисплея
фирмы "IBM" очень облегчает чтение текста на экране. Сфера применения
этого компьютера - в основном учреждения. Экран монохромного дисплея фирмы
"IBM" не утомляет глаза, даже если смотреть на него целый день. С помощью
этого компьютера можно выполнять деловые расчеты, формировать планы
(например, с помощью программы "VisiCalk") или готовить документы с
помощью текстовых процессоров.
ГРАФИЧЕСКАЯ МАШИНА. Это IBM/PC оборудованный цветным графическим
дисплеем и остальными периферийными устройствами, включая дискеты. Этот
компьютер позволяет работать с графическими изображениями, правда ценой
пониженной различимости символов. Использование этой машины труднее
описать простыми категориями, но они могут использоваться в инженерном и
архитектурном черчении, деловой графике, играх и мультипликации.
Я утверждаю, что "деловой компьютер" и "графическая машина" являются
различными компьютерами, поскольку они предназначены для совершенно разных
целей. И, что еще более важно, программные продукты для них тоже
совершенно различны. Ясно, что деловые программы, выдающие текстовые
результаты, смогут работать и на компьютерах с цветными графическими
дисплеями, однако, это будет более утомительно для глаз. Программы,
написанные для графического дисплея, определенно не будут работать на
деловом компьютере.
Такое частичное разделение между предполагаемыми вариантами
использования деловых систем IBM/PC делает их практически разными
машинами, со своими рынками и своими кругом пользователей. Но все же, все
системы IBM/PC имеют очень много общего в оборудовании, программных
средствах и интересах пользователей. Я так подробно остановился на
разделении деловых и графических систем, чтобы Вы лучше представляли себе
сам факт существования такого различия.
МАШИНА С ВИНЧЕСТЕРОМ. Это IBM/PC, к которой подключен диск большой
емкости с высокой скоростью доступа. Такой диск часто называют "жестким"
(чтобы отличать его от "гибких" дисков) или "винчестером" (по кодовому
наименованию одного из ранних проектов фирмы "IBM", в рамках которого
разрабатывалась технология, реализованная в этих накопителях).
Отличительной чертой такого компьютера является наличие внешней памяти
большого объема, позволяющей решать множество задач: хранить всю деловую
информацию небольшой компании, хранить регистрационные записи пациентов
врача или хранить базу данных научного работника. Короче говоря, IBM/PC,
оборудованный винчестером, обладает возможностями оперативной работы с
большими массивами данных.
Не требуется большого опыта работы с IBM/PC, чтобы установить, что
основным сдерживающим фактором быстродействия, возможностей и полезности
этого компьютера является хранение данных на диске. Быстродействие
микропроцессора 8088, использующегося в IBM/PC, для большинства задач
достаточно велико. (Если какие-либо программы на Ваш взгляд работают
недостаточно быстро, то это скорее всего связано с недостаточно
эффективной реализацией. Наиболее общий пример - это программы на Бейсике,
выполняемые в режиме интерпретации.)
Объем памяти IBM/PC также вполне достаточен и, во всяком случае,
значительно превышает характеристики персональных компьютеров предыдущего
поколения. Большинство первых персональных компьютеров имело всего 64 К
памяти, в то время как объем памяти IBM/PC может превышать 256К. (Часть
памяти используется в качестве экранной памяти, хранения интерпретатора
Бейсика и управляющих программ системы BIOS).
Скорость и емкость внешней памяти на гибких дисках ограничивают
возможности IBM/PC. Снять эти ограничения позволяют жесткие диски
винчестерского типа. Обычно емкость винчестера лежит в пределах от 2 до 25
миллионов байт, что эквивалентно емкости 12 - 150 односторонних дискет.
Кроме того, скорость доступа у винчестера намного выше, чем у дисководов с
гибкими магнитными дисками.
Таким образом, с подключением винчестера появился четвертый и,
вероятно, наиболее интересный вариант IBM/PC. Мы имеем все основания
считать оснащенный винчестером IBM/PC отдельной версией компьютера,
поскольку его возможности на порядок выше, чем у остальных систем.
Винчестеры позволяют хранить базу данных значительного объема или всю
деловую документацию компании. Винчестеры превращают персональные
компьютеры либо в законченные деловые машины, либо в мощные средства
доступа к данным. Таким образом, винчестеры существенно увеличивают
возможности IBM/PC.

Когда появился первый вариант IBM/PC, фирма "IBM" не поставляла и не
предусматривала подключение винчестеров к IBM/PC, но изготовители дисков
быстро разработали контроллеры и программы для подключения винчестера к
IBM/PC. Однако, можно ожидать, что для полной реализации потенциала IBM/PC
винчестеры (или другие эквивалентные устройства памяти большой емкости с
быстрым доступом) должны стать составной частью большинства компьютеров
IBM/PC.
Прежде чем завершить рассмотрение важности комплектации IBM/PC
периферийным оборудованием, необходимо упомянуть адаптер последовательной
связи. Адаптер связи настолько обычный элемент оборудования, что о нем
редко вспоминают. Однако, наиболее перспективный путь использования
персональных компьютеров заключается в организации вычислительных сетей,
которые без адаптера связи создать невозможно. Таким образом, адаптер
связи может оказаться наиболее важным дополнительным элементом
оборудования.

ГЛАВА 3. КАК РАБОТАЕТ IBM/PC


В этой главе мы рассмотрим работу "мозга" IBM/PC - микропроцессора
8088 - как он выполняет вычисления, использует память и общается с внешним
миром. В этой главе поясняются такие понятия как прерывание, стек и порт.
Практически весь материал этой главы полностью относится к уже
упоминавшимся нами трем областям интересов. Это объясняется тем, что речь
в основном будет идти о функционировании микропроцессора 8086/8088, общего
для IBM/PC, компьютеров, работающих под управлением операционной системы
MS-DOS.

3.1. Память, часть 1: что это такое и как осуществляется чтение из
памяти

Одним из основных элементов компьютера, позволяющим ему нормально
функционировать, является память. Внутренняя память компьютера - это место
хранения информации, с которой он работает. Внутренняя память компьютера
является временным рабочим пространством; в отличие от нее внешняя память,
такая как файл на дискете, предназначена для долговременного хранения
информации. Информация во внутренней памяти не сохраняется при выключении
питания.
По аналогии с конторской работой можно назвать микропроцессор
конторским служащим, а память компьютера - рабочим столом: пространство
его используется временно, для выполнения работы.
Память компьютера организована в виде множества ячеек, в которых
могут храниться значения; каждая ячейка обозначется адресом. Размеры этих
ячеек и, собственно, типы значений, которые могут в них храниться,
отличаются у разных компьютеров. Некоторые старые компьютеры имели очень
большой размер ячейки, иногда до 64 бит в каждой ячейке. Эти большие
ячейки назывались "словами". Супер-копьютеры Крей и компьютер Юнивак
ориентированы на работу со словами.
Трудность работы со словами большой длины заключается в том, что
обычно программы работают не с целыми словами, а с их частями. Поэтому
большинство современных компьютеров, и в том числе все персональные
компьютеры, используют значительно меньший размер ячейки памяти, состоящей
всего из 8 бит или "байта": Байт - это очень удобная единица информации,
отчасти потому что он позволяет хранить код одной буквы алфавита или
одного символа. Поскольку символ занимает в точности один байт, термины
"байт" и "символ" часто используются в одном и том же смысле.
Так как IBM/PC использует ячейки памяти длиной восемь бит или один
байт, в памяти могут храниться значения, которые можно выразить восемью
битами. Это значения до двух в восьмой степени или 256. Смысл величины,
записанной в ячейку памяти, зависит от способа ее использования. Можно
считать, что байт содержит код алфавитного символа - так называемый код
ASCII. В то же время его можно рассматривать и как число. Все 256
возможных значений могут рассматриваться либо как положительные числа от 0
до 255, либо как числа со знаками в диапазоне от - 128 до + 127. Кроме
того, байт может использовать как часть большого объема данных, например,
строки символов или двухбайтного числа.
Для удобства манипулирования символьными данными компьютеру
необходимо чтобы коды символов преобразовывались в байтовые величины.
Большинство компьютеров, включая IBM/PC, используют код ASCII,
американский стандартный код для обмена информации. (Большинство
компьютеров фирмы "IBM" используют другую схему кодирования символов,
называющуюся EBCDIC; системы ASCII и EBCDIC организованы по разному, но
перекодировка из одной системы в другую большого труда не представляет).
В коде ASCII числовые значения присваиваются всем обычно используемым
символам, таким как буквы алфавита, строчные и заглавные, цифры, знаки
пунктуации. Несколько кодов зарезервированы для управления, например,
чтобы указать конец строки символов. Эти специальные управляющие коды в
основном имеют значения от CHR$(0) до CHR$(31). Использование этих
специальных кодов IBM/PC имеет ряд особенностей, которым посвящено
приложение 4.

Код ASCII - это семибитовый код, имеющий 128 возможных значений
кодов. Стандартный код ASCII обычно использует первые 128 из 256 возможных
значений, помещающихся в байте. Остальные 128 могут использоваться для
различных целей, образуя "расширенный набор" символьных кодов ASCII. Не
существует никаких стандартов использования расширенных кодов и различные
устройства компьютеров используют их по-разному. Дисплей IBM/PC использует
расширенный набор языков, отличных от английского, различных
математических символов, а также псевдографических элементов, которые
можно использовать для рисования. Программа, приведенная в листинге 1.1,
показывает все специальные символы IBM/PC, а подробнее об их организации
сказано в главе 8.
Стандартное для IBM/PC матричное устройство печати MX-80 фирмы
"Эндисон" преобразует коды символов расширенного набора ASCII в печатные
формы, отличающиеся от изображений на экране. Если запустить программу
1.1, а затем использовать операцию PrintScreen (печать экрана) для
копирования содержимого экрана на печатающее устройство, Вы сможете
сравнить экранный и печатный эквиваленты одних и тех же расширенных кодов
ASCII.
Таблицы стандартных кодов ASCII и расширенных кодов ASCII для IBM/PC
можно найти во многих местах. Одна из них приведена в конце руководства по
Бейсику. Очень удобная форма таблицы приведена в приложении C к
техническому руководству по IBM/PC.
До сих пор мы рассматривали побайтное использование памяти, однако,
часто для более сложных значений, чем может уместиться в одном байте
используется несколько байт вместе. Если необходимы строки символов, они
сохраняются в соседних ячейках памяти, по одному символу на байт; первый
слева символ записывается в первый байт, т.е., байт с наименьшим адресом.
Если требуется запомнить целое число больше одного байта, то оно
записывается в несколько байт, также расположенных рядом. Наиболее
распространенный формат использует 2 байта или 16 бит, что очень удобно
для 16-разрядного процессора, такого как 8088. В терминах микропроцессора
8088 двухбайтное число называется словом. Многие команды 8088 специально
разработаны для работы со словами. Могут использоваться и более длинные
форматы - трех-, четырехбайтные и длиннее - но они не так широко
распространены как двухбайтные и для работы с ними нужны специальные
программы.
Когда числа, состоящие из двух или нескольких байт, хранятся в памяти
микропроцессора 8088, они размещаются в ячейках последовательно, начиная с
младшего байта числа. Такой способ несколько непривычен для большинства
специалистов, не имевших дела с микропроцессорами фирмы "Интел". Если Ваша
программа работает с отдельными байтами в памяти, необходимо учитывать
такой способ хранения.
Арифметический сопроцессор 8087 использует несколько специальных
форматов, включающих четырехбайтовый целочисленный формат и три формата с
плавающей запятой: двухбайтный, четырехбайтный и десятибайтный, а также
десятичный формат с двадцатью десятичными цифрами. Микропроцессор 8088
непосредственно не использует эти форматы, но если к IBM/PC подключен
арифметический сопроцессор 8087, эти форматы становятся как бы расширением
набора форматов данных.

3.2. Память, часть 2: что такое адрес

Каждая ячейка памяти имеет адрес, который используется для ее
нахождения. Адреса - это числа, начиная с нуля для первой ячейки
увеличивающиеся по направлению к последней ячейке памяти. Поскольку адреса
- это те же числа, компьютер может использовать арифметические операции
для вычисления адресов памяти.
Архитектура каждого компьютера накладывает собственные ограничения на
величину адресов. Наибольший возможный адрес определяет обьем адресного
пространства компьютера или то, какой обьем памяти он может использовать.
Обычно компьютер использует память меньшего обьема, чем допускается его
возможностями адресации. Если архитектура компьютера предусматривает
небольшое адресное пространство, это накладывает суровые ограничения на
возможности такого компьютера.
IBM/PC использует возможности адресации микропроцессора 8088
полностью. Адреса в 8088 имеют длину 20 бит, следовательно, процессор
позволяет адресовать два в двадцатой степени байта или 1024 К.
Такое большое адресное пространство позволяет свободно использовать
ресурсы памяти для специальных целей, что мы увидим в следующем разделе.
Перед этим необходимо разобраться в том, как 16-разрядный компьютер
работает с 20-разрядными адресами и какие ограничения это может наложить
на программы пользователя.
Большая часть арифметических операций, которые может выполнять
микропроцессор 8088, ограничивается манипуляцией с 16-разрядными числами,
что дает диапазон значений от 0 до 65.535 или 64 К. Поскольку полный адрес
должен состоять из 20 разрядов, необходимо было разработать способ
управления 20 разрядами. Решение было найдено путем использования принципа
сегментированной адресации.

Если взять 16-ти разрядное число и добавить к нему в конце четыре
двоичных нуля, то получится 20-ти разрядное число, которое может
использоваться как адрес. Добавлением четырех нулей или сдвиг числа влево
на четыре разряда фактически означает умножение числа на 16 и теперь
диапазон значений будет составлять 1.024К. К сожалению, число с четырьмя
нулями в конце может адресовать только одну из 16 ячеек памяти - ту, адрес
которой оканчивается на четыре нуля. Все остальные ячейки, адреса которых
оканчиваются на любую из остальных 16 комбинаций из четырех бит, не могут
быть адресованы при таком методе адресации.
Для окончательного решения проблемы 20-разрядной адресации
используются два 16-разрядных числа. Считается, что одно из них имеет еще
четыре нуля в конце (выходящие за пределы разрядной сетки). Такое как бы
20-разрядное число называется сегментной частью адреса. Второе
шестнадцатиричное число не сдвигается на четыре разряда и используется в
своем нормальном виде. Это число называется относительной частью адреса.
Сложением этих двух чисел получают полный 20-разрядный адрес, позволяющий
адресовать любую из 1.024 К ячеек памяти в адресном пространстве IBM/PC.
Сегментная часть адреса задает ячейку с адресом, кратным 16, эта ячейка
называется границей параграфа. Окончательное значение указывает конкретную
ячейку на определенном удалении от границы параграфа. Рисунок 3.1
показывает как это делается.
Чтобы лучше усвоить этот момент, рассмотрим все еще раз. Полный
20-разрядный адрес задается двумя частями, каждая из которых представляет
собой 16-разрядное число. Сегментная часть адреса обрабатывается так, как
будто он имеет четыре дополнительных нуля в конце. Эта сегментная часть
может относиться к любой части всего адресного пространства - но она может
указывать только на шестнадцатиричную границу, то есть, на адрес,
оканчивающийся на четыре нуля. Относительная часть адреса прибавляется к
сегментной части, образуя полный адрес. Относительная часть адреса может
задавать любую ячейку памяти, отстоящую от ячейки, указываемой сегментной
частью, не более чем на 64К.




Рис. 3.1. Адресация памяти:
1-обычный 16-разрядный регистр адреса; 2-16бит (4 шестнадцатиричные цифры)
4 бита на шестнадцатиричную цифру; 3-сдвиговый регистр сегмента;
4-объединенные регистры сегмента адреса и сегмента; 5-дополнительный
шестнадцатиричный ноль; 6-результат - 20-разрядный адрес

Хотя относительная часть адреса могла бы задавать только четыре
последних цифры адреса, она принимает значения от 0 до без единицы 64К.
Большая часть манипуляций с адресами связана с относительной частью
адреса. Сегментная часть адреса фактически становится базовым адресом для
рабочей области размером ,;К, которую позволяет адресовать относительная
часть адреса.
Имеется удобный способ записи сегментированных адресов, использование
которого программой DEBUG (описанной в главе 6) Вы еще увидите. Кроме
того, он хорошо прослеживается в ассемблерных листингах, например в том,
который приведен в приложении А к техническому руководству фирмы IBM.
Сначала записывается сегментная часть адреса, после нее следует двоеточие,
а затем относительная часть адреса. Например, если сегментная часть адреса
(в шестнадцатиричной форме) 2222, а относительная часть - 3333, то полный
сегментированный адрес будет записываться как 2222:3333. Фактический
20-разрядный адрес будет в шестнадцатиричном виде иметь значение 25553,
получаемое таким простым сложением:

22220


+

3333


____________

25553


(В конце этого раздела мы приведем несколько примеров работы с
сегментированными адресами на Бейсике и Паскале).
Для работы с сегментированными адресами микропроцессор 8088 имеет
специальные регистры сегментов, предназначенные для хранения сегментной
части адресов. Загрузив в регистр сегмента некоторое значение, можно
адресовать следующие за ним 64К ячеек памяти. Без изменения значения в
регистре сегмента компьютер может работать только с 64К байтами из общего
адресного пространства в 1.024К. Путем изменения значения в регистре
сегмента можно адресовать любую ячейку памяти.
Чтобы иметь возможность в каждый момент времени работать более чем с
64К памяти, в микропроцессоре 8088 предусмотрены четыре различных регистра
сегмента, каждый из которых имеет особое назначение. Пам

Список сторінок

Поділитися у соцмережах

☏ Замовлення реклами: +3805044-68-872

© Асоціація електронних бібліотек України

☝ Усі матеріали сайту (зокрема статті, зображення, рекламні оголошення тощо) призначені лише для попереднього ознайомлення. Усі права на публікації, представлені на сайті, належать їхнім законним власникам. Просимо Вас не зберігати копії інформації.