Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Энциклопедия PC

.pdf
Скачиваний:
30
Добавлен:
13.03.2015
Размер:
8.94 Mб
Скачать

2.6. Кабелииразъемы 57 •

1

18

Рис. 2.11. Разъемытипа

uuuuuuuuuuuuuuuuuu

пппппппппппппппппп

Centronics

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

АрхитектураIBM РСсовместимого

компьютера

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

используя вызовы функций операционной системы (прерывания DOS,

API Windows ит. п.);

используя вызовы функций базовой системы ввода-вывода (BIOS); ш непосредственновзаимодействуясизвестнымим«железом» — портамии

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

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

Облик PC-совместимого компьютера в значительной степени определяется разработчиками из фирм Microsoft и Intel. Для этих фирм стало уже традицией выпускать объемистый документ, диктующий разработчикам аппаратуры требованиядляполучениявожделенного логотипа «Designed for Microsoft Windows».

3.1. Структурнаясхема 59

В настоящее время действует спецификация PC 99 System Design Guide, опубликованная Microsoft Press в 1998 году. Провозглашенные в ней требования вступили в действие с 1 июля 1999 года и относятся к компьютерам, предназначенным для работы под ОС Windows 98 или Windows 2000 (в спецификации последняя называлась NT Workstation 5.0). Эти требования не распространяются на специализированные серверы, а также на крохотные компьютеры PalmTop с ОС Windows СЕ. Следующей стала более категоричная спецификация PC'2001, но пока еще не все компьютеры соответствуют и предыдущей.

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

3.1. Структурнаясхема

СтруктурнаясхемасовременногоIBM PC-совместимогокомпьютераприведенана рис. 3.1. Ядром компьютера является процессор (CPU), один или несколько; ОЗУ (RAM); ПЗУ с BIOS (ROM BIOS) и интерфейсные средства, связывающие их между собой и с остальными компонентами. Эти средства на рисунке изображены в виде «облака», поскольку их формы разнообразны (шины, хабы). Это «облако» обычно имеет интерфейсы одной или нескольких шин расширения (PCI, ISA...), а также порта AGP. Стандартная архитектура PC определяет набор обязательных средств ввода-вывода и поддержки периферии — системы аппаратных прерываний (PIC 8259А), системы прямого доступа к памяти (DMA 8237А), трехканальный счетчик (8254), интерфейсклавиатуры иуправления(КВС 8042), канал управления звуком, память и часы (CMOS RTC). На рисунке изображены лишь логические связи между этими устройствами; подразумевается, что с помощью средств того же «облака» они представлены своими стандартизованными регистрами в общедоступном пространстве ввода-вывода. Также подразумевается, что все компоненты получают требуемое питание, что превращает весь этот набор компонентов в работоспособный компьютер. Конечно же, он должен быть дополнен периферией: дисплеем со своим адаптером, подключаемым к порту AGP, шине расширения или прямо в «облако», контроллера-УШ шин периферийных устройств (АТА, SCSI, USB...), интерфейсов портов (СОМ, LPT, GAME...), дисководов, аудиосредств и прочего. «Облако» вместе со средствами ввода-вывода и поддержки периферии реализуется чипсетом системной платы (см. п. 4.1), который обычно включает в себя и вышеперечисленные интерфейсы.

Любой PC-совместимый компьютер имеет следующие характерные черты:

процессор, программносовместимый ссемейством х8бфирмыIntel;

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

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

60Глава3. АрхитектураIBM PC-совместимогокомпьютера

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

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

т наборсистемныхустройствиинтерфейсовввода-вывода;

унифицированные по конструктиву и интерфейсу шины расширения (ISA, EISA, MCA, VLB, PCI, PC Card, Card Bus), состав которых может варьи-

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

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

Мосты(хабы) чипсетасистемнойплаты

Рис. 3.1. Структурнаясхемакомпьютера

3.2. Распределениепамяти

Логическая структура памяти PC обусловлена особенностями системы адресации процессоров семейства х86. Процессоры 8086/88, применявшиеся в первых моделях PC, имели доступное адресное пространство 1 Мбайт (20 бит шины адреса). Эти процессоры использовали сегментную модель памяти, унаследованную и следующими моделями в реальном режиме. Согласно этой модели исполнительный (линейный) адрес вычисляется по формуле Addr = Seg x 16 + Offset, где Seg и Offset — содержимое сегментного и адресного регистров. Таким образом, обеспечивался доступ к адресному пространству Addr - 00000 - FFFFFh при помощи пары 16-битных регистров. Заметим, что при Seg = FFFFh и

3.2. Распределениепамяти 61

Offset - FFFFh данная формула дает адрес lOFFEFh, но ввиду 20-битного ограничения на шину адреса эта комбинация в физической памяти указывает на OFFEFh. Таким образом, адресное пространство как бы сворачивается в кольцо с небольшим «нахлестом». Начиная с процессора 80286, шина адреса была расширена до 24 бит, а впоследствии (386DX, 486 и выше) до 32 и даже 36 (у процессоров Р6). В реальном режиме процессора, используемом в DOS, применяется та же сегментная модель памяти и формально доступен лишь 1 Мбайт памяти, что является недостаточным для большинства современных приложений. Однако выяснилось, что процессоры 80286 в реальном режиме эмулируют 8086 с ошибкой: та самая единица в бите А20, которая отбрасывалась в процессорах 8086/88, теперь попадает на шину адреса, и в результате максимально доступный линейный адрес в реальном режиме достиг 1 OFFEFh. За эту ошибку с радостью ухватились разработчики PC, поскольку дополнительные (64 К - 16) байты оперативной памяти, адресуемой в реальном режиме, оказались подарком, позволяющим освободить дефицитное пространство оперативной памяти для прикладных программ. В эту область (lOOOOOh - lOFFEFh), названную «высокой памятью» — High Memory Area (HMA), стали помещать часть операционной системы и небольшие резидентные программы. Однако для обеспечения полной совместимости с процессором 8086/88 в схему PC ввели вентиль линии А20 шины адреса — GateA20, который либо пропускает сигнал от процессора, либо принудительно обнуляет линию А20 системной шины адреса. Более старшие биты такой «заботы» не требуют, поскольку переполнение при суммировании 16-битных компонентов адреса по данной схеме до них не распространяется. Управление этим вентилем подключили к свободному программно-управляемому выходному биту 1 контроллера клавиатуры 8042, ставшего стандартным элементом архитектуры PC, начиная с AT. Предполагалось, что этим вентилем часто пользоваться не придется. Однако жизнь внесла свои поправки, и оказалось, что переключение вентиля в многозадачных ОС, часто переключающих процессор между защищенным режимом, реальным режимом и режимом V86, контроллером клавиатуры выполняется слишком медленно. Так появились альтернативные методы быстрого переключения вентиля, специфичные для различных реализаций системных плат (например, черезпорт92h). Крометого, иногдаиспользовалииаппаратную логику быстрого декодирования команды на переключение бита, поступающую к контроллеру клавиатуры. Для определения способа переключения в утилиту CMOS Setup ввели соответствующие параметры (см. п. 4.6), позволяющие выбрать между стандартным, но медленным способом и менее стандартизованным, но быстрым, в зависимости отиспользуемого ПО.

Поскольку ошибка эмуляции 8086 была радостно принята и широко использована, ее повторили и в 386, и в следующих моделях процессоров. А для упрощения внешних схем в процессоры, начиная с 486, ввели и вентиль GateA20 с соответствующим внешнимуправляющим выводом.

32-разрядные процессоры позволяют организовать режим, иногда называемый «нереальным» или «большим реальным» (см. п. 5.2), в котором инструкции выполняются как в реальном, но доступны все 4 Гбайт памяти. Этот режим часто используется вигровых программах, целикомзахватывающих всересурсы ком-

62 Глава3. АрхитектураIBM PC-совместимогокомпьютера

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

Основную часть адресного пространства занимает оперативная память. Объем установленной памяти определяется тестом POST при начальном включении (перезагрузке) компьютера, начиная с младших адресов. Натолкнувшись на отсутствие памяти (ошибку), тест останавливается на достигнутом и сообщает системе объем реально работающей памяти.

Распределение памяти PC, непосредственно адресуемой процессором, приведено на рис. 3.2 и представляется следующим образом.

» OOOOOh-QFFFFh — Conventional (Base) Memory, 640 Кбайт — стандартная

(базовая) память, доступная DOS и программам реального режима. В некоторых системах с видеоадаптером MDA верхняя граница сдвигается к AFFFFh (704 Кбайт). Иногда верхние 128 Кбайт стандартной памяти (область

80000h-9FFFFh) называют Extended Conventional Memory.

ш AOOOOh-FFFFFh — Upper Memory Area (UMA), 384 Кбайт — верхняя память,

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

$ ПамятьвышеlOOOOOh — Extended Memory — дополнительная(расширенная) память, непосредственно доступная только в защищенном (и в «большом реальном») режиме для компьютеров с процессорами 286 и выше. В ней выделяется область lOOOOOh-lOFFEFh — высокая память, НМЛ, — единственная область расширенной памяти, доступная 286+ в реальном режиме при открытом вентиле Gate A20.

Область памяти выше первого мегабайта в различных источниках называется поразному. Ее современное английское название — Extended Memory — пересекаетсяс названием одной из спецификаций ее использования — Extended Memory Specification. Но название другой спецификации использования — Expanded Memory Specification — в прямом переводе на русский язык неотличимо от пе^ ревода предыдущего термина (и Extended и Expanded переводятся как «расширенный»). Будем придерживаться терминологии, укрепившейся в литературе, выпущенной издательством «Питер», и область всей физической памяти, расположенной в адресном пространстве выше 1 Мбайта, будем называть дополнительной памятью. Ее объем у современных компьютеров указывается строкой Extended Memory xxxxx Kbyte в таблице, выводимой после прохождения теста POST, и в менюстандартной конфигурации CMOS Setup.

Вышеприведенное разделение памяти актуально только для приложений и операционных систем реального режима типа MS-DOS. Для ОС защищенного режима (в том числе Windows 9x/NT/2000) доступна вся оперативная память, причем без каких-либо ухищрений вроде EMS и XMS, описанных ниже. Однако область UMA с ее традиционными «жителями», сохраняемая ради совместимости, остается барьером на пути кединой однородной памяти.

3.2. Распределениепамяти 63

16М

15М

640К

Рис. 3.2. РаспределениепамятиPC

Для компьютеров класса АТ-286 с 24-битной шиной адреса верхняя граница оперативной памяти — FDFFFFh (максимальный размер 15,9 Мбайт). Область

FEOOOOh-FFFFFFh содержит ПЗУ BIOS (ROM BIOS Area), обращение к этой областиэквивалентнообращениюкROM BIOS поадресамOEOOOOh-OFFFFFh,

Для 386+ процессоров и 32-битной шины адреса теоретическая верхняя граница

— 4 Гбайт, а для Р6 — 64 Гбайт (36-битная шина адреса). В компьютерах с 32разрядной шиной адреса образ BIOS дополнительно проецируется в адреса FFFEOOOOh-FFFFFFFFh, хотя для процессоров Р6 это и необязательно. Однако иногда используется и проекция BIOS в область FEOOOOh-FFFFFFh, что не позволяет задействовать более 16 Мбайт ОЗУ, поскольку система воспринимает только найденную непрерывную область оперативной памяти. Если 32-разрядный компьютер имеет отображение области BIOS под границей 16 Мбайт, это отображение обычно можно запретить установкой соответствующего параметра CMOS Setup. Иногда для использования специфических адаптеров ISA, имеющих буфер с адресами в 16-м мегабайте памяти, предусматривают параметр Memory Hole At 15-16M. Его установка также не позволяет использовать оперативную память свыше 16 Мбайт.

Реально современные системные платы позволяют установить до 512-2048 Мбайт ОЗУ, для мощных серверных платформ и это не предел. Обращение по адресам, превышающим границу установленной оперативной памяти (или максимально возможного объема), транслируется на шину PCI, которая имеет 32битнуюадресацию.

64 Глава3. АрхитектураIBM PC-совместимогокомпьютера

Подробнее с иерархической подсистемой электронной памяти можно познакомиться в главе 6. Здесь же отметим, что в логическом распределении памяти фигурирует только оперативная и постоянная память, а кэш является программнопрозрачнымсредствомповышенияеепроизводительности.

Компьютеры, использующие режим системного управления SMM (System Management Mode), имеющийся у большинства процессоров последних поколений, имеют еще одно адресное пространство памяти — SMRAM. Это адресное пространство «параллельно» пространству обычной памяти и при работе доступно процессору только в режиме обработки SMI. Память SMRAM может представлять собой часть физической оперативной памяти (DRAM), а может быть реализована и специальной микросхемой энергонезависимой памяти. Ее размер может варьироваться в диапазоне от 32 Кбайт (минимальные потребности SMM) до 4 Гбайт. SMRAM располагается, начиная с адреса SMIBASE (по умолчанию SOOOOh), ираспределяетсяотносительноадресаSMIBASE следующимобразом.

тFEOOh-FFFFh (3FEOOh-3FFFFh) — область сохранения контекста (рас-

пределяется, начиная со старших адресов по направлению к младшим). По прерыванию SMI сохраняются почти все регистры процессора, но сохранениерегистровFPU непроизводится.

тSOOOh (38000h) - точкавходавобработчик(SMI Handler).

т0-7FFFh (30000h-37FFFh) - свободная область.

Память SMRAM должна быть схемотехнически защищена от доступа прикладных программ. Процессор генерирует специальный выходной сигнал SMIACT# во время обработки SMI, который и должен являться «ключом» доступа к этой памяти. Если SMRAM не является энергонезависимой, то системная логика должна обеспечить возможность ее инициализации (записи программного кода обработчика) процессором из обычного режима работы до разрешения появления сигналаSMI#.

3.2.1. Стандартнаяпамять— Conventional Memory

Стандартная память является самой дефицитной в PC, когда речь идет о работе в среде операционных систем типа MS-DOS. На ее небольшой объем (типовое значение 640 Кбайт) претендуют и BIOS, и ОС реального режима, а остатки отдаются прикладному ПО. Стандартная память распределяется следующим образом:

«OOOOOh-003FFhInterrupt Vectors — векторы прерываний (256 двойных слов);

* 00400h-004FFh - BIOS Data Area - область переменных BIOS; м 00500h-00xxxh - DOS Area - область DOS;

ж OOxxxh-9FFFFh — User RAM — память, предоставляемая пользователю (до 638 Кбайт); при использовании PS/2 Mouse область 9FCOOh-9FFFFh используется как расширение BIOS Data Area, и размер User RAM уменьшается.

3.2. Распределениепамяти 65

3.2.2. Верхняяпамять— UMA

Верхняя память имеет области различного назначения, которые могут быть заполнены буферной памятью адаптеров, постоянной памятью или оставаться незаполненными. Раньше эти «дыры» не использовали из-за сложности «фигурного выпиливания» адресуемого пространства. С появлением механизма страничной переадресации (у процессоров 386 и выше) их стали по возможности заполнять «островками» оперативной памяти, названными блоками верхней памяти UMB (Upper Memory Block). Эти области доступны DOS для размещения резидентных программ и драйверов через драйвер EMM386, который отображает в них доступнуюдополнительнуюпамять.

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

(рис. 3.3).

*AOOOOh-BFFFFhVideo RAM, 128 Кбайт — видеопамять (обычно используется не полностью).

« COOOOh-DFFFFh - Adapter ROM, Adapter RAM, 128 Кбайт - резерв для адаптеров, использующих собственные модули ROM BIOS или (и) специальноеОЗУ, разделяемое ссистемнойшиной.

»EOOOOh-EFFFFh — свободная область, 64 Кбайт, иногда занятая под System BIOS.

FOOOOh-FFFFFh - System BIOS, 64 КбайтсистемнаяBIOS.

»FDOOOh-FDFFFh - ESCD (Extended System Configuration Data) - область энергонезависимой памяти, используемая для конфигурирования устройств Plug and Play. Эта область имеется только при наличии PnP BIOS, ее положениеиразмержестконезаданы.

Рис. 3.3. Распределениеверхнейпамяти(UMA)

66Глава3. АрхитектураIBM PC-совместимогокомпьютера

Вобласти UMA практически всегда присутствует графический адаптер. В зависимостиотмоделионзанимаетследующиеобласти:

т MDA RAM - BOOOOh-BOFFFh; м CGA

RAM - BSOOOh-BBFFFh; я EGA ROM -

COOOOh-C3FFFh/C7FFFh; т VGA ROM -

COOOOh-C7FFFh;

»EGA, VGA RAM — AOOOOh-BFFFFh, взависимости отвидеорежима используютсяследующиеобласти:

пGraphics - AOOOOh-AFFFFh;

пColor Text - BSOOOh-BFFFFh;

a Mono Text - BOOOOh-B7FFFh.

Также распространенным потребителем UMA являются расширения ROM BIOS, расположенные на платах дисковых контроллеров и микросхемы удаленной загрузки (Boot ROM) на платах адаптеров ЛВС. Обычно они занимают область CSOOOh — CBFFFh/C9FFFh/C8FFFh (для дисковых контроллеров), но могут и перемещатьсяприконфигурированииадаптеров.

Размер области, занимаемой системной ROM BIOS, колеблется от 8 Кбайт у PC/XT до 128 Кбайт, однако разумное значение — 64 Кбайт. Большая область использовалась «на радостях» от появления микросхем ROM и флэш-памяти объемом 1 Мбит (128Кх 8), но при этом размер доступной UMA сократился. Тогда стали микросхемы того же (и большего) объема отображать только на область FOOOOh-FFFFFh (64 Кбайт), а иногда и меньшую. Это оказалось возможным, поскольку не все содержимое микросхемы ROM BIOS должно быть доступно одновременно. Таким способом удалось примирить интересы пользователей UMB с необходимостью расширения объема BIOS, связанной с усложнением техническихсредств.

3.2.3. Отображаемаяирасширеннаяпамять— спецификацииEMS иXMS

Отображаемая память EMS (Expanded Memory Specification) — программная спецификацияиспользованиядополнительнойпамятиDOS-программамиреаль- ногорежима. СпецификацияLIM EMS — соглашениефирмLotus, Intel, Microsoft на использование EMS. С помощью специальных аппаратных или программных средств любая область дополнительной памяти может быть отображена на небольшие страницы, расположенные в области UMA. В первоначальном варианте можно было использовать 4 страницы по 16 Кбайт, примыкающие друг к другу, обычно начиная с адреса DOOOOh (положение страниц можно менять в пределах свободных областей UMA). Обращение прикладных программ к памяти EMS осуществляется через диспетчер памяти, вызываемый по прерыванию Int 67h. Программа, нуждающаяся в дополнительной памяти, должна сначала запросить выделение области, указав ее размер в 16-килобайтных страницах. В ответ на этот запрос (если имеется свободная память) диспетчер сообщает программе номер дескриптораEMS (EMS handler), покоторомупрограммавдальнейшембу-