Характеристики компьютера

МикроЭВМ IBM PC (и ее варианты) является одноплатной вычислительной машиной, построенной на основе микропроцессорного набора серии Intel 8088/Intel 8086. В состав машины входят: процессор, оперативная память, набор специализированных контроллеров (памяти, шины, прерываний и т.д.). Другие устройства являются возможными, но не обязательными и могут как подключаться через разъемы системной шины, так и входить в состав машины (onboard-устройства или интегрированные устройства).

Рассмотрим технические характеристики машин IBM PC.

  • Система команд. Процессор машин типа IBM PC выполняет команды исходной арифметики или общего назначения (процессора 8086, 8088, 80186, 80286 и т.д.). Команды, позволяющие работать с вещественными числами, выполняются дополнительным математическим сопроцессором при его наличии (сопроцессоры 8087, 80187, 80287 и т.д. или внешний сопроцессор Weitek), а в большинстве случаев — внутренним сопроцессором (80386 (при его наличии), 80486, Pentium).
  • Быстродействие. В настоящее время разные производители выпускают машины с широким диапазоном производительности процессора (приблизительно от 5 МГц (уже не производятся) до 1,5 ГГц).
  • Объем адресуемой памяти. Он составляет приблизительно от 1 МБ до 4 Гб в зависимости от процессора;
  • Внутреннее программное обеспечение. Все рассматриваемые машины не имеют возможности полноценно функционировать без дополнительного внешнего программного обеспечения. В ПЗУ ранних систем хранился только начальный загрузчик, набор подпрограмм ввода/вывода (поэтому содержимое ПЗУ иногда называется BIOS – Basic Input Output Subroutine), простейший тест компонентов системы и программы изменения данных. Все это хранится в CMOS — маленьком энергонезависимом ОЗУ (работающим от батарейки), в котором хранится ряд параметров системы — типы дисководов, количество и тип установленной памяти и т. д. ПЗУ некоторых ранних систем содержал также интерпретатор языка BASIC, который в дальнейшем был исключен. ПЗУ более поздних систем содержит довольно развитую систему настройки параметров чипсета. Внешние устройства могут содержать свои ПЗУ, эта практика особенно развита для: SCSI-контроллеров (BIOS контроллера), видеокарт (VESA-BIOS), сетевых карт (начальный сетевой загрузчик ЭВМ).

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

  • Машинное слово имеет 16 двоичных разрядов и может быть разделено на два восьмиразрядных байта (для 8086, 80186, 80286). Более поздние процессоры имеют слова в 32, 64 разряда.
  • Методы адресации. Ранние процессоры поддерживали 9 методов адресации, более поздние — значительно больше. Однако большинство методов являются частными случаями или расширениями одного из базовых. К базовым можно отнести: непосредственную, регистровую, индексную и относительную адресацию.
  • Регистры процессора. Регистров общего назначения 14, из них SP аппаратно назначен указателем стека, а IP — счетчиком команд (8086). Более поздние процессоры имеют большее число регистров. Большинство новых регистров — системного назначения, они предназначены для управления процессором.
  • Информационный обмен. Обмен информацией между модулями производится по принципу «асинхронного автомата», т.е. отсутствует строгая временная синхронизация, ведется диалоговый обмен служебными сигналами и информацией, и по принципу лидера, т.е. любое внешнее устройство может проявить инициативу в обмене (например, запрос на прерывание).
  • Система прерываний. Обработка внешних и внутренних прерываний производится с применением аппаратно-программного стека, причем в качестве стековой памяти используется ОЗУ.
  • Режимы работы процессора.

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

Защищенный (Protect Mode): включается схема защиты памяти, возможно включение механизма страничного преобразования адресов, размер сегмента, в зависимости от процессора, может превышать 64 Кб. Доступен с 80286 и выше.

V86 (Virtual 8086): подвид защищенного режима. Предназначен для выполнения программ реального режима в защищенном режиме процессора. Задействованы все механизмы защиты, виртуальной памяти, страничного преобразования, но сегменты ограничены 64 Кб, сегментные регистры используются по правилам реального режима, программа может не иметь прав на управление машиной. Что-либо изменить может только ОС защищенного режима.

«Нереальный» (большой реальный режим, реальный flat-режим, режим линейной адресации) — не документированный режим: процессор переводится в реальный режим из защищенного с такими текущими настройками дескрипторов, что размер сегментов ≠ 64 Кб, а может быть установлен гораздо большим, на усмотрение программиста. В этом случае все особенности функционирования процессора соответствуют реальному режиму, за исключением размера сегментов.

ICE (In-Circuit Emulator) доступен с 80386, но не освещался в общедоступной документации: в ряде ситуаций срабатывание точек остановки при программной отладке или специальный внешний сигнал могут приводить к переходу в этот режим. Он характерен тем, что вместо обращения к основной системной памяти процессор обращается к памяти внешнего отладочного комплекса и выполняет программу из его памяти, предварительно сохранив все регистры. Программа, исполняющаяся в ICE-режиме, может обращаться к памяти по основной магистрали, используя специальные команды.

Режим зондовой отладки (Probe Mode) доступен с 80586. Этот режим, более мощный по сравнению с ICE, отличается от последнего тем, что в нем процессор прекращает любую активность на магистрали, а с отладочным комплексом работает по интерфейсу JTAG, изолированному от системной магистрали. На команды JTAG не накладывается никаких ограничений, связанных с механизмами защиты памяти или уровнями приоритетов. Probe mode активизируется по команде с интерфейса JTAG, внешнему сигналу по линии R/S# либо, в некоторых случаях, по событию отладки.

SMM (System Management Mode) доступен с некоторых моделей 80386SL и 80486: позволяет выполнять некоторые действия, полностью изолированные от ОС и прикладных программ. Предназначен в основном для «прозрачной» остановки ЭВМ на неопределенное время, возможно, с отключением питания, либо «прозрачной» остановки отдельных узлов ЭВМ, хотя может также использоваться в целях отладки. Вход в режим SMM происходит по специальному внешнему немаскируемому сигналу. При входе процессор сохраняет часть внутренних регистров в специальной области внешней физической памяти, которая активизируется процессором только в режиме SMM, после чего выполняет переход на обработчик, находящийся в этой же памяти. Обработчик исполняется в режиме, близком к реальному, с полностью блокированными внешними прерываниями (в т.ч. NMI) и размером сегмента = 4 Гб, после чего может вернуть управление специальной командой, которая восстановит регистры процессора и выведет его из SMM-режима.

Аварийный останов (ShutDown): процессор переходит в него в случае некоторых ошибок в обработчике SMM-режима, а также при обнаружении трех необслуженных исключений (два исключения — некоторая ошибка + запрос подкачки виртуальной памяти — допустимы). Выход их этого режима возможен лишь по сигналу NMI или аппаратному сбросу.

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

¨  Карта сети (сетевая карта) содержит схему для последовательного обмена информацией.

¨  Карты могут выполнять несколько функций, так карта дисководов и внешнего интерфейса (мультикарта) содержит в себе контроллер дисковода гибких дисков, ATA-контроллер (жесткие диски и CD-ROM), а также несколько портов для обмена информацией с внешней средой.

Звуковая (audio) карта часто содержит порт джойстика и интерфейс MIDI-устройств (музыкальная клавиатура, синтезатор, и т.д.).

Особенности периферийных устройств IBM-PC

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

  • Развитие системной шины привело к появлению возможностей и стандартов на устройства с программно изменяемыми адресами, номерами прерываний и т.д., что позволяет избежать конфликтов устройств при разделении ресурсов системы.
  • Шина PCI позволила устройствам работать в режиме Bus Master — в этом режиме устройство может самостоятельно управлять шиной, например для того чтобы, не прерывая процессор, самостоятельно обмениваться информацией с ОЗУ.
  • Видеосистемы стали использовать увеличивающееся адресное пространство процессора, что позволило программам обращаться к видеопамяти без использования каких-либо программных переключателей.
  • Развиваются возможности для построения многопроцессорных систем.
  • Появились новые возможности ранее существовавших устройств. Видеосистемы стали обладать мощными графическими сопроцессорами, жесткие диски поддерживают самодиагностику, шифрование данных и прочее, выключать и включать[1] питание компьютеров можно программно и т.д.
  • У ПЗУ BIOS все большего числа устройств появляется возможность перепрограммирования (Flash-ROM) средствами устройства.

В настоящей работе мы, в основном, рассмотрим только те возможности, которые предоставляют процессоры Intel и IBM-PC в реальном режиме, под управлением MS-DOS (или совместимой с ней ОС) и будем делать минимальные предположения о конфигурации компьютера.

Если вас интересуют другие возможности, вы можете обратиться как к литературе [1-3] так и к Интернет, на серверы производителей процессоров.

Например, описание на процессоры фирмы Intel (а также другие микросхемы Intel) вы найдете на сервере http://www.intel.ru.

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

Закрытость информации не мешает пользоваться стандартными (по сравнению с IBM-AT 10-15-летней давности) возможностями процессоров, чипсетов и периферии, но новые возможности остаются закрытыми, если только производитель не подчиняет их хотя бы одному из существующих стандартов. Примером такого современного стандарта является, например, стандарт VBE для видеосистем или ATA для жестких дисков и CD-ROM. Обратным примером могут служить различные реализации звуковых кодеков AC97.

Если явная информация о работе того или иного устройства так и осталась недоступна вам, при хорошем знании языка C можно воспользоваться открытыми текстами UNIX-подобных операционных систем, например, LINYX или FreeBSD. Эти системы поддерживают очень много устройств и постоянно развиваются.


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

2. Чипсет: набор микросхем, физически расположенных на системной плате ЭВМ, включающий: необходимые для функционирования процессора и ОЗУ компоненты (например, тактовый генератор); ряд обязательных для IBM-PC контроллеров (например: контроллер прерываний или контроллер клавиатуры); интегрированные на системную плату периферийные устройства (например, контроллер IDE-устройств).