7.2.4. Особенности процессора 486

 

            Процессор 486 является представителем второго поколения 32-разрядных процессоров. Он сохраняет основные принципы архитектуры процессора 80386, а также обеспечивает полную совместимость со своими предшественниками. Но в то же время он имеет ряд преимуществ.

            • В процессор введена внутренняя кэш-память 1-ro уровня (Internal cache Level 1) размером 8 Кбайт и предусмотрены средства для двухуровневого кэширования.

            • В процессор введен математический сопроцессор (в модели процессора 486SX сопроцессор отсутствует).

            • Повышена производительность обмена по внешней шине — введены так называемые пакетные циклы, передающие одно слово за один такт шины.

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

            • В структуру введены буферы отложенной записи.

            В отдельных моделях предусмотрено внутреннее умножение тактовой частоты (на 2, 2,5 или 3).

            Все это обеспечило существенное увеличение быстродействия. А усовершенствованный защищенный режим дает некоторые дополнительные возможности.

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

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

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

            В принципе кэш-память может быть как внутренней (входить в состав процессора), так и внешней. Внутренний кэш называется кэшем первого уровня, внешний — кэшем второго уровня. Объем внутреннего кэша обычно невелик — типовое значение 32 Кбайт. Объем внешнего кэша может достигать нескольких мегабайт. Но принцип функционирования у них один и тот же.

            Кэш первого уровня процессора 486 имеет четырехканальную структуру (рис. 7.9). Каждый канал состоит из 128 строк по 16 байт в каждой. Одноименные строки всех четырех каналов образуют 128 наборов из четырех строк, каждый из которых обслуживает свои адреса памяти. Каждой строке соответствует 21-разрядная информация об адресе скопированного в нее блока системной памяти. Эта информация . называется тегом (Tag) строки.

            Кроме того, в состав кэша входит так называемый диспетчер, то есть область памяти с организацией 128 х 7, в которой хранятся 4-битные теги действительности (достоверности) для каждого из 128 наборов и 3-битные коды LRU (Least Recently Used) для каждого из 128 наборов. Тег действительности набора включает в себя 4 бита достоверности каждой из 4 строк, входящих в данный набор. Бит достоверности, установленный в единицу, говорит о том, что соответствующая строка заполнена если он сброшен в нуль, то строка пуста. Биты LRU говорят о том, как давно было обращение к данному набору. Это нужно для того, чтобы обновлять наименее используемые наборы.

            Адресация кэш-памяти осуществляется с помощью 28 разрядов адреса. Из них 7 младших разрядов выбирают один из 128 наборов, а 21 старший разряд сравнивается с тегами всех 4 строк выбранного набора. Если теги совпадают с разрядами адреса, то получается ситуация кэш-попадания, а если нет, то ситуация кэш-промаха.

            В случае цикла чтения при кэш-попадании байт или слово читаются из кэш-памяти. При кэш-промахе происходит обновление (перезагрузка) одной из строк кэш-памяти.

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

            Такая политика записи называется сквозной или прямой записью (Write Through). В более поздних моделях процессоров применяется и обратная запись (Write Back), которая является более быстрой, так как требует гораздо меньшего числа обращений по внешней шине.

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

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

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

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

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

            Режим пакетной передачи (Burst Mode), впервые появившийся в процессоре 486, предназначен для быстрых операций со строками кэша. Пакетный цикл обмена (Burst Cycle) отличается тем, что для пересылки всего пакета адрес по внешней шине адреса передается только один раз — в начале пакета, а затем в каждом следующем такте передаются только данные. Адрес для каждого следующего кода данных вычисляется из начального адреса по правилам, установленным как передатчиком данных, так и их приемником. Например, адрес каждого следующего слова данных вычисляется как инкрементированный адрес предыдущего. В результате время передачи одного слова данных значительно сокращается. Понятно, что обмен пакетными циклами возможен только с устройствами, изначально способными обслуживать такой цикл. Допустимая длина пакета не слишком велика, например, при чтении размер пакета ограничен одной строкой кэша.

            Режим внутреннего умножения тактовой частоты процессора был предложен для того, чтобы повысить быстродействие процессора, но при этом устанавливать его в системные платы, рассчитанные на невысокие тактовые частоты. Например, модель процессора 486DX2-66 работает в системной плате с тактовой частотой 33, но эту частоту внутри себя преобразует в удвоенную частоту — 66 МГц. Это позволяет уменьшить общую стоимость системы, так как снижает требования к элементам системной платы.

            Процессор 486 выпускался в 168 или 169-выводных корпусах. Напряжение питания — 5 В или 3,3 В. Введение пониженного напряжения питания 3,3 В связано с необходимостью снижения величины рассеиваемой мощности. Растущая тактовая частота и усложнение структуры процессоров приводят к тому, что рассеиваемая ими мощность достигает нескольких ватт. Для современных процессоров уже обязательно применение вентиляторов на корпусе процессора.

 

7.2.5. Особенности процессоров Pentium

 

            Процессоры Pentium относятся к пятому поколению процессоров или к третьему поколению 32-разрядных процессоров. По своим основным архитектурным принципам они совместимы с процессорами 386 и 486. Но имеются существенные отличия, позволяющие говорить о новом поколении:

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

            • Внешняя 64-разрядная шина данных для повышения производительности. Это требует соответствующей организации памяти. Из-за такой особенности процессор иногда неправильно называют 64-разрядным (хотя внутри он все-таки остался 32-разрядным). Внешняя шина адреса процессора — 32-разрядная.

            • Применение технологии динамического предсказания ветвлений (переходов).

            • Раздельный кэш для команд и данных объемом 8 Кбайт каждый. Длина строки кэша — 32 байта. Оба кэша работают в режиме обратной записи.

            • Повышенная в 2 — 10 раз по сравнению с процессором 486 производительность встроенного математического сопроцессора. В нем применена восьми ступенчатая конвейеризация и специальные блоки сложения, умножения и деления, что позволяет выполнять операции с плавающей точкой за один такт процессора.

            • Сокращено время (число тактов) выполнения команд.

            • Предусмотрена возможность построения двухпроцессорных систем.

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

            В дополнение к базовой архитектуре 32-разрядных процессоров Pentium имеет набор регистров MSR (Model Specific Registers). В него входит группа тестовых регистров (TR1 — TR12), средства слежения за производительностью, регистры-фиксаторы адреса и данных цикла, вызвавшего срабатывание контроля машинной ошибки. Название этой группы регистров указывает на их уникальность для каждой модели процессоров Pentium.

            Средства для слежения за производительностью (мониторинга производительности) включают в себя таймер реального времени и счетчики событий. Таймер представляет собой 64-разрядный счетчик, инкрементируемый с каждым тактом процессора. Два счетчика событий имеют разрядность по 40 бит и программируются на подсчет событий различных классов, связанных с шинными операциями, исполнением команд, связанных с работой кэша, контролем точек останова и т.д. Сравнивая состояния таймера и счетчиков событий, можно сделать вывод о производительности процессора.

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

            Средства для построения двухпроцессорных систем позволяют на одной локальной шине устанавливать два процессора с объединением почти всех одноименных выводов. Это дает возможность использовать симметричную мультипроцессорную обработку (SMP — Symmetric Multi Processing) или строить функционально избыточные системы (FRC Functional Redundancy Checking).

            В режиме SMP каждый процессор выполняет свою задачу, порученную ему операционной системой, что поддерживается такими системами, как Novell NetWare, Windows NT, Unix. Оба процессора разделяют общие ресурсы компьютера, включая память и устройства ввода/вывода. В каждый момент шиной управляет один процессор, по определенным правилам они меняются ролями. В идеальном случае производительность системы увеличивается вдвое (без учета обращений к шине и времени на переключение процессоров).

            В конфигурации FRC два процессора выступают как один логический процессор. Основной процессор (Master) работает в обычном однопроцессорном режиме. Проверочный процессор (Checker) выполняет все те же операции внутри себя, не управляя внешней шиной, и сравнивает сигналы основного процессора с теми, которые генерирует сам. В случае несовпадения формируется сигнал" ошибки, обрабатываемый как прерывание. То есть в данном случае увеличивается надежность системы в целом (в идеале — вдвое).

            Развитием Pentium стало добавление технологии ММХ, рассчитанной на мультимедийное, графическое и коммуникационное применение. Основная идея ММХ заключается в одновременной обработке нескольких элементов данных за одну команду (SIMD, Single Instruction — Mutiple Data). Расширение М МХ использует новые типы упакованных 64-битных данных:

            • упакованные байты — восемь байт;

            • упакованные слова — четыре слова;

            • упакованные двойные слова (два двойных слова);

            • учетверенное слово (одно слово).

            Эти типы данных могут обрабатываться в восьми дополнительных 64 разрядных регистрах ММХ0 — ММХ7. В систему команд для поддержки ММХ введено 57 дополнительных команд для одновременной обработки нескольких единиц данных (команды пересылки, арифметические, логические команды и команды преобразования форматов данных). Команды ММХ доступны из любого режима процессора.

            Кроме того, в процессорах Pentium ММХ увеличен объем кэша данных и программ (до 16 Кбайт каждый), увеличено число ступеней конвейеров и введено еще несколько усовершенствований, повышающих производительность обычных (не мультимедийных) операций.

            От процессора Pentium Pro принято отсчитывать шестое поколение процессоров. Pentium Pro по сравнению с Pentium имеет следующие усовершенствования:

            • Динамическое исполнение команд предполагает, что команды, не зависящие от результатов предыдущих операций, могут выполняться в измененном порядке (последующие раньше предыдущих), однако последовательность обмена с внешними устройствами (памятью и устройствами ввода/вывода) будет соответствовать программе. То есть процессор сам выбирает удобный ему порядок выполнения команд. Это позволяет повысить производительность процессора без увеличения тактовой частоты.

            • Архитектура двойной независимой шины повышает суммарную пропускную способность. Одна шина (системная) служит для обмена с основной памятью и устройствами ввода/вывода, а другая (локальная) предназначена только для обмена с вторичным кэшем (см. рис. 7.3).

            • В процессор введен кэш второго уровня объемом 256 — 512 Кбайт.

            • Возможно построение многопроцессорных систем (до четырех микропроцессоров).

            Процессор Pentium II сочетает в себе архитектуру Pentium Pro с технологией ММХ.

            Размер первичных кэшей данных и команд составляет 16 Кбайт, вторичного кэша — до 512 Кбайт. Кэш второго уровня несколько медленнее, чем кэш первого уровня, зато он имеет больший объем. Такая двухуровневая организация позволяет достигать компромисса между быстродействием кэш-памяти и ее объемом.

            Шина адреса имеет 36 разрядов (то есть максимально допустимый объем памяти — 64 Гбайта).

            Процессоры Pentium III и Pentium 4 отличаются значительно возросшей предельной тактовой частотой (до 3 ГГц у Pentium 4, а в перспективе и до 5 ГГц), увеличенным объемом кэша (от 512 Кбайт до нескольких мегабайт) и дальнейшим совершенствованием архитектуры Pentium. Размер внутреннего конвейера у Pentium 4 доведен до 20 ступеней.

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

            Надо отметить, что в составе персональных компьютеров практически никогда не используются все возможности процессоров семейства Pentium. Например, многопроцессорные системы встречаются достаточно редко, а объем системной памяти лишь иногда превышает 512 Мбайт.

            Для портативных компьютеров были предложены упрощенные версии процессоров Pentium III и Pentium 4, продаваемые под маркой Celeron. Они отличаются уменьшенной тактовой частотой и сокращенным объемом кэша второго уровня. Их тактовая частота сейчас доходит до 2 ГГц. Надо учитывать, что рассеиваемая мощность процессора Celeron остается практически такой же, как у процессоров Pentium III и Pentium 4.

 

Лекция 14. Устройства, входящие в состав персонального компьютера

 

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

 

            Ключевые слова: оперативная, постоянная и внешняя память ПК, тактовый генератор, системный таймер, контроллеры прерываний и ПДП.

 

7.3. Память персонального компьютера

 

            Как и в любой другой микропроцессорной системе, память персонального компьютера состоит из двух частей: оперативной памяти и постоянной памяти. Обе части расположены в адресном пространстве памяти, к обеим компьютер может обращаться одинаковым образом. Обе памяти допускают обращения к отдельным байтам, 16-разрядным словам (имеющим четные адреса), к 32-разрядным двойным словам (имеющим адреса, кратные четырем) и к 64-разрядным учетверенным словам (имеющим адреса, кратные восьми). Различие только в том, что оперативную память используют для временного хранения программ и данных, а в постоянной памяти хранятся программы начального запуска, начального самотестирования компьютера, а также набор программ ввода/вывода нижнего уровня, то есть то, что не должно теряться при выключении питания компьютера. Объем оперативной памяти гораздо больше, чем постоянной памяти.

 

 

7.3.1. Оперативная память

 

            Оперативная память занимает значительную часть адресного пространства компьютера. Ее установленный объем и быстродействие оказывают огромное влияние на быстродействие персонального компьютера в целом (порой даже большее, чем скорость процессора). Надежность ее работы во многом определяет надежность всего компьютера. Поэтому всеми разработчиками ей уделяется большое внимание.

            Все персональные компьютеры используют оперативную память динамического типа (DRAM — Dynamic Random Access Memory), основным преимуществом которой перед статической оперативной памятью (SRAM — Static RAM) является низкая цена. Это связано с тем, что если элемент статической памяти (триггер) требует 4 — 6 транзисторов, то элемент динамической памяти — это интегральный конденсатор, для обслуживания которого требуется 1 — 2 транзистора. Отсюда же следуют два основных недостатка динамической памяти: она требует регенерации (то есть постоянного возобновления заряда на разряжающемся конденсаторе) и имеет в несколько раз меньшее быстродействие по сравнению со статической памятью. К тому же во время регенерации динамическая память недоступна для обмена, что также снижает быстродействие компьютера. Отметим, что сейчас обычно применяют встроенную регенерацию, не требующую внешнего обслуживания, но опять-таки занимающую время.

            Переход на полностью статическую память слишком сильно повысил бы стоимость компьютера в целом (к тому же необходимый объем оперативной памяти компьютера все увеличивается), поэтому статическую память применяют только в самых «узких» местах, там, где без высокой скорости не обойтись, например, для кэш-памяти. Что касается динамической памяти, то ее развитие идет по пути снижения времени доступа благодаря структурным и технологическим усовершенствованиям. Например, второе поколение динамической памяти EDO RAM (Extended Data Output RAM) имело быстродействие примерно на 20 — 25% выше, чем у обычной памяти. Это достигается за счет того, что следующее обращение к памяти возможно еще до завершения предыдущего обращения. Третье поколение динамической памяти — SDRAM (Synchronous DRAM) — еще на столько же быстрее (рабочая частота в настоящее время достигает 133 МГц). Еще более быстродействующая память — DDR SDRAM (частота до 400 МГц) и память RDRAM (частота до 1 ГГц и даже выше).

            Для упрощения установки оперативной памяти в компьютер ее выполняют в виде небольших модулей — печатных плат с ножевым (печатным) разъемом, на которые установлены микросхемы памяти (SIMM — Single In-Line Memory Module). Эти модули устанавливаются в специальные SIMM-разъемы на материнской плате, что позволяет пользователю легко менять объем памяти компьютера, учитывая при этом необходимый уровень быстродействия, сложность решаемых задач и свои финансовые возможности. Широко применяются 72-контактные SIMM-модули разного объема. Отметим, что не рекомендуется одновременно использовать несколько модулей с разным быстродействием: в некоторых компьютерах это приводит к сбоям. В современных компьютерах на базе процессоров Pentium применяются также модули DIMM (Dual In-Line Memory Module — модуль памяти с двусторонними печатными выводами), имеющие 64 бита данных.

            Модули памяти иногда поддерживают проверку содержимого памяти на четность. Для этого к 8 битам данных каждого адреса памяти добавляется девятый бит четности. Он записывается при каждой записи информации в соответствующий байт памяти и проверяется при чтении информации из соответствующего байта памяти. Если обнаруживается несоответствие бита четности байту информации, то вырабатывается сигнал, вызывающий немаскируемое прерывание NMI.

            Все адресное пространство памяти компьютера разделяется на несколько областей, что связано, в первую очередь, с необходимостью обеспечения совместимости с первыми компьютерами семейства. В компьютере IBM PC ХТ на процессоре i8088 процессор мог адресовать 1 Мбайт памяти (20 адресных разрядов). Но все программные и аппаратные средства строились исходя из предположения, что доступное адресное пространство— только младшие 640 Кбайт (тогда это казалось вполне достаточным). Данная область памяти получила название стандартной памяти (Conventional memory). Именно в пределах этих 640 Кбайт (адреса 0...9FFFF) работает операционная система MS DOS и все ее прикладные программы.

            Первые 1024 байта (адреса 0...3FF) хранят таблицу векторов прерывания (Interrupt Vectors) объемом 256 двойных слов, формируемую на этапе начальной загрузки. Однако если процессор работает в защищенном режиме, таблица векторов может располагаться в любом другом месте памяти.

            Адреса 400...4FF отводятся под область переменных BIOS (BIOS Data Area). Подробнее о BIOS будет рассказано в следующем разделе.

            Адреса 500...9FFFF включают в себя область операционной системы DOS (DOS Area) и память пользователя (User RAM).

            Оставшиеся от 1 Мбайта памяти 384 Кбайта (адреса А0000...FFFFF), зарезервированные под другие системные нужды, называются U MA (Upper Memory Area) — область верхней памяти или UMB (Upper Memory Blocks) — блоки верхней памяти или High DOS Memory.

            Пространство видеопамяти (адреса А0000...BFFFF) содержит области для хранения текстовой и графической информации видеоадаптера.

            Пространство памяти с адресами Е0000...FFFFF отведено под системную постоянную память компьютера ROM BIOS.

            В этой же области выделено окно размером в 64 Кбайта (page frame) с адресами D0000...DFFFF, через которое программы могли получать доступ к дополнительной (отображаемой) памяти (Expanded memory) объемом до 32 Мбайт, оставаясь в пределах того же 1 Мбайта адресуемой памяти. Это достигается путем поочередного отображения четырех страниц по 16 Кбайт из дополнительной памяти в выделенное окно. При этом положение страниц в дополнительной памяти можно изменять программным путем. Понятно, что работать с дополнительной памятью менее удобно, чем с основной, так как в каждый момент компьютер «видит» только окно в 64 Кбайт. Поэтому сейчас она применяется довольно редко.

            В настоящее время область памяти с адресами С0000...DFFFF чаще используется для оперативной и постоянной памяти, входящей в состав различных адаптеров и плат расширения компьютера.

            В результате логическая организация адресного пространства в пределах 1 Мбайт получилась довольно сложной (рис. 7.10). И такую же организацию должны поддерживать все персональные компьютеры семейства 1 ВМ РС для обеспечения совместимости с предшествующими моделями.

 

            При дальнейшем расширении адресуемого пространства памяти в последующих моделях компьютеров вся память объемом свыше 1 Мбайт получила название расширенной памяти (Extended memory). Для доступа к ней микропроцессор должен переходить из реального режима в защищенный и обратно. Общий объем памяти персонального компьютера (верхняя граница расширенной памяти) может доходить до 16 Мбайт (24 разряда адреса) или до 4 Мбайт (32 разряда адреса).

            Особого упоминания заслуживает так называемая теневая память (Shadow RAM), представляющая собой часть оперативной памяти, в которую при запуске компьютера переписывается содержание постоянной памяти, и заменяющая эту постоянную память на время работы компьютера. Необходимость данной процедуры вызвана тем, что даже сравнительно медленная динамическая оперативная память оказывается все таки быстрее, чем постоянная память. Постоянная память часто заметно сдерживает быстродействие компьютера. Поэтому было предложено выделять часть оперативной памяти для исполнения обязанностей как системной постоянной памяти ROM BIOS, так и постоянной памяти, входящей в состав дополнительных адаптеров, которые подключаются к компьютеру. Переписывание информации обычно предусмотрено в программе начального пуска.

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

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

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

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

 

7.3.2. Постоянная память

 

            Системная постоянная память (ПЗУ) занимает сравнительно небольшой объем (обычно 64 Кбайта). Однако ее значение для компьютера очень велико. Само ее название ROM BIOS (ROM Basic Input/Output System)— базовая система ввода/вывода — говорит о том, что в ней находится функционально полный набор программ нижнего уровня для управления устройствами ввода/вывода. Поэтому даже до загрузки в оперативную память

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

            В принципе, под память ROM BIOS отведено 128 Кбайт адресного пространства памяти. В первых компьютерах (IBM PC ХТ) она занимала всего 8 Кбайт, сейчас обычно занимает 64 Кбайт. Если же нужно использовать системную постоянную память большего объема, то она поочередно отображается на окно системной памяти размером 64 Кбайт (адреса F0000...РРРРР). Это связано со стремлением сэкономить пространство верхней памяти для других целей.

            При старте компьютера после включения питания, нажатия кнопки на передней панели RESET или после программного перезапуска начинает выполняться программа начального запуска, также хранящаяся в постоянной памяти (начальный адрес FFFFO) . Эта программа включает в себя:

            • программу самотестирования компьютера (POST — Power On БеИ Test);

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

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

            Отметим, что в последнее время ROM BIOS выполняется не на микро схемах собственно постоянной памяти, а на микросхемах, допускающих многократную перезапись информации пользователем EPROM (Erasable Programmable ROM) с электрической перезаписью — типа флэш (flash), что позволяет более гибко настраивать компьютер.       Пользователь может легко модернизировать BIOS своего компьютера с помощью программы перезаписи флэш-памяти. При использовании же микросхем ПЗУ с ультрафиолетовым стиранием для этого требовались специальный программатор и стирающее устройство (ультрафиолетовая лампа).

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

            • сообщениями на дисплее (наиболее наглядно и понятно пользователю);

            • звуковыми сигналами (что очень полезно при неработоспособном дисплее);

            • выдачей кодов в определенный порт ввода/вывода, обычно это порт с адресом 080 (на этом основаны все диагностические приборы).

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

 

 

            Звуковые сигналы не отличаются особым разнообразием, но, тем не менее, позволяют обнаружить и идентифицировать основные ошибки. Для примера в табл. 7.2 приведены звуковые сигналы об ошибках, используемые BIOS компании 1 ВМ (для BIOS других фирм сигналы могут быть иными).

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

            Начиная с компьютеров на процессоре 80286 (IBM PC АТ) постоянная память ROM BIOS обязательно дополняется небольшой энергонезависимой оперативной памятью CMOS RAM, которая выполнена на микросхемах с пониженным энергопотреблением с технологией КЛОП (CMOS) и при выключении питания компьютера подпитывается от батарейки или аккумулятора (эта память, как правило, входит в состав других микросхем). В CMOS-памяти хранится информация о текущих показаниях часов (дате и времени), о значении времени для будильника, о конфигурации компьютера: приоритете загрузки с разных накопителей, количестве памяти, типах накопителей, режимах энергопотребления, о типе дисплея, об установках клавиатуры и т.д. CMOS RAM отличается от постоянной памяти тем, что записанная в нее информация легко меняется программным путем.

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

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

            Программа Setup позволяет также разрешить или запретить использование теневой (Shadow) памяти как для системного BIOS, так и для BIOS используемых адаптеров (по отдельным сегментам памяти). При использовании теневой памяти в выбранную область оперативной памяти копируется содержимое BIOS ROM, эта область определяется как доступная только для чтения, и производится переадресация памяти. То есть при любых обращениях по адресам ROM чтение данных будет производиться из соответствующих адресов Shadow RAM, а постоянная память уже не используется.       Такой подход может существенно (иногда в 4 — 5 раз) ускорить выборку команд для программ обмена с видеоадаптером и с дисковыми накопителями.

            В программе Setup всегда предусмотрена возможность установки параметров компьютера по умолчанию (Detault Setting). Это особенно удобно в случае разряда или повреждения батареи или аккумулятора.

            В новых компьютерах, поддерживающих режим экономии потребляемой электроэнергии, можно также задавать переход компьютера в режимы Doze (спящий), Standby (ожидания или резервный) и Suspend (приостановки работы) при отсутствии обращений к узлам компьютера в течение заданного времени. Режимы перечислены в порядке снижения потребления электроэнергии. Компьютеры (а также их системные платы), где применяются такие режимы, называются иногда «зелеными».

 

7.4. Системные устройства

 

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

 

 

 

 

7.4.1. Тактовый генератор

 

            Системный тактовый генератор генерирует сигналы синхронизации для работы микропроцессора, всех контроллеров и системной шины. Для обеспечения высокой стабильности тактовых частот и их независимости от температуры применяются кварцевые резонаторы, то есть кристаллы кварца, имеющие высокостабильную частоту собственных колебаний. Как правило, в состав системной платы входит несколько кварцевых резонаторов, каждый из которых обеспечивает свой тактовый сигнал. Тактовую частоту процессора можно выбирать путем установки перемычек на системной плате. Это позволяет пользователю модернизировать компьютер путем замены процессора на другой, рассчитанный на более высокую тактовую частоту. Иногда удается заставить процессор работать на более высокой тактовой частоте, чем та, на которую он рассчитан, но здесь нужно соблюдать осторожность, так как повышение частоты ведет не только к увеличению потребляемой мощности и перегреву микросхемы, но и к ошибкам и сбоям в работе, причем проявляющихся только в отдельных режимах, например, в многозадачном.

            В компьютерах на базе процессоров 486 и Pentium применяется деление опорной тактовой частоты для синхронизации системной шины и внутреннее умножение частоты в процессорах. Например, в процессоре 486DX2-66 используется умножение на два тактовой частоты 33,3 МГц, а в процессорах семейства Pentium применяется умножение на 2,5 (при опорной частоте 60 МГц частота процессора 150 МГц) или на 3 (при опорной частоте 66,6 МГц частота процессора 200 МГц).

            В общем случае в компьютере существуют следующие тактовые частоты:

            • Host Bus Clock (CLK2IN) — это опорная частота (внешняя частота

шины процессора). Именно из нее могут получаться другие частоты и именно она задается перемычками (джамперами);

            • CPU Clock (Core Speed) — это внутренняя частота процессора, на которой работает его вычислительное ядро. Может совпадать с Host Bus Clock или получаться из нее умножением на 1,5, 2, 2,5, 3, 4. Умножение должно быть предусмотрено в конструкции процессора.

            • ISA Bus Clock (ATCLK, BBUSCLК) — это тактовая частота системной шины ISA (сигнал SYSCLК). По стандарту она должна быть близка к 8 МГц, но в BIOS Setup имеется возможность выбрать ее через коэффициент деления частоты Host Bus Clock. Иногда компьютер остается работоспособным и при частоте шины ISA около 20 МГц, но обычно платы расширения ISA разрабатываются из расчета на 8 МГц, и при больших частотах они перестают работать. Не следует рассчитывать, что компьютер станет вдвое быстрее при удвоении этой частоты. Для каналов прямого доступа к памяти на системной плате используется еще один тактовый сигнал SCLK, частота которого, как правило, составляет половину от ISA Bus Clock.

            • PCI Bus Clock — это тактовая частота системной шины PCI, которая по стандарту должна быть 25 — 33,3 МГц. Ее обычно получают делением частоты Host Bus Clock на нужный коэффициент. В компьютерах предусматривается возможность ее увеличения до 75 или даже 83 МГц, но из соображений надежности работы рекомендуется придерживаться стандартных значений.

            • VLВ Bus Clock — это частота локальной шины VLВ, определяемая аналогично PCI Bus Clock.

7.4.2. Контроллер прерываний

 

            Контроллеры радиальных прерываний в первых компьютерах выполнялись на микросхемах i8259, каждая из которых имела 8 входов запроса прерываний. В IBM PC АТ применялось две таких микросхемы, в результате чего количество входов запросов прерываний увеличилось до 15. Peжимы работы контроллеров прерываний определяются процессором путем записи соответствующих управляющих кодов по адресам в пространстве устройств ввода/вывода.

            О циклах обмена по прерываниям уже говорилось в разделе 2.2.2. При поступлении запроса прерывания на один из входов IRQ и удовлетворении этого запроса контроллер прерываний вь1рабатывает выходной сигнал запроса прерывания, поступающий на процессор. В ответ на это процессор запрашивает контроллер о том, прерывание с каким адресом вектора необходимо обслужить. Всего прерываний может быть 256 (от 00 до ЕЕ).        Номер прерывания, полученный от контроллера, процессор умножает на 4 и получает, таким образом, адрес памяти, где хранится адрес начала программы обработки прерываний (вектор прерывания). Присваивание каждому из каналов IRQ своего номера процессор осуществляет на этапе инициализации контроллера.

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

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

            • установка приоритетов запросов по различным входам, то есть разрешение конфликтов при одновременном приходе нескольких запросов на прерывание;

            • работа в качестве основного контролера (Master) или подчиненного (Slave).

            Для маскирования прерываний используется внутренний регистр контроллера, программно доступный процессору как по записи, так и по чтению. Замаскирован может быть каждый запрос (по каждой из линий IRQ), путем установки соответствующего бита маскирования в записываемом в контроллер управляющем байте.

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

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

            Контроллер 8259 предусматривает возможность выбора способа распознавания запроса на прерывание — по фронту сигнала И() и по уровню этого сигнала. В архитектуре компьютера типа РС используется запрос по фронту.

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

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

 

7.4.3. Контроллер прямого доступа к памяти

 

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

            В персональном компьютере применяется два четырехканальных контроллера ПДП типа |8237, обеспечивающих 7 каналов ПДП (один канал задействован под каскадирование контроллеров по тому же принципу, что и контроллеры прерываний). Помимо собственно контроллеров ПДП в подсистему ПДП входят также программно доступные регистр старшего байта адреса и регистры страниц ПДП.

            О циклах обмена в режиме ПДП уже говорилось в разделе 2.2.3. Получив сигнал запроса ПДП по одной из линий DRQ, контроллер формирует запрос процессору на захват шины и, получив разрешение от процессора, сообщает о предоставлении ПДП запросившему прямой доступ устройству по соответствующей линии РАСК. После этого производится цикл ПДП, пересылающий данные из устройства ввода/вывода в память или наоборот. При этом сам контроллер ПДП формирует только 16 младших разрядов адреса памяти, а восемь старших разрядов содержатся в регистре страниц. Свой собственный регистр страниц соответствует каждому из каналов ПДП.

            Передача данных в случае ПДП возможна по одному из следующих режимов:

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

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

            • Режим передачи по требованию. Этот режим позволяет продолжать ПДП до тех пор, пока устройство, запросившее ПДП, не исчерпает весь объем данных.

            • Каскадный режим позволяет объединять контроллеры для увеличения количества каналов ПДП.

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

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

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

 

 

7.4.4. Системный таймер и часы реального времени

 

            В качестве системного таймера компьютера используется микросхема трехканального 16-разрядного таймера i8254 или ее аналог. Таймер предназначен для получения программно управляемых временных задержек и генерации сигналов заданной частоты. Таймер позволяет повысить эффективность программирования процессов управления и синхронизации внешних устройств, особенно в реальном времени.

            Таймер содержит три независимых канала (0, 1 и 2), каждый из которых может быть, в принципе, запрограммирован на работу в одном из шести режимов счета:

            • прерывание терминального счета;

            • программируемый генератор одиночного импульса;

            • генератор импульсов заданной частоты;

            • генератор прямоугольных импульсов типа «меандр»;

            • программно формируемый строб;

            аппаратно формируемый строб.

            На каждый канал могут подаваться входные синхросигналы. Из каждого канала можно получать сигнал с частотой, равной входной частоте, деленной на произвольное 16-разрядное число. В компьютере на все входы поступают синхросигналы частотой 1,19 МГц. Все каналы таймера в компьютере имеют специальное назначение, поэтому особой свободы в выборе режима работы или переназначении функций у пользователя нет.

            • Выход канала 0 связан с сигналом запроса прерывания IRQ0 и обеспечивает прерывание для счетчика реального времени (используется режим работы 3). Пользователю не рекомендуется перепрограммировать этот канал. При старте компьютера канал программируется так, чтобы выдавать импульсы примерно 18,2 раза в секунду. По этому прерыванию программно увеличивается состояние счетчика реального времени. Пользователь может читать состояние данного счетчика из специально выделенной ячейки памяти и применять его для задержек в своих программах.

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

            • Выход канала 2 генерирует тональный сигнал для встроенного динамика компьютера (режим работы 3). Однако разрешение этого тонального сигнала производится установкой выделенных разрядов (0 и 1) программно доступного параллельного порта контроллера периферийных устройств. Один разряд (0) разрешает работу канала, другой разряд (1) пропускает выходной сигнал на динамик.

            Таким образом, пользователь компьютера может задействовать только канал 2. Чаще всего его применяют для генерации звуков заданной частоты и длительности. Кроме того, выходной сигнал данного канала программно доступен по чтению из одного из разрядов параллельного порта. Это позволяет, запрограммировав таймер соответствующим образом, выдерживать нужные временные интервалы. Для этого следует программно разрешить генерацию (при отключенном динамике), а затем программно опрашивать выходной сигнал таймера и принимать решения по изменению его уровня.

            Подсистема часов реального времени в первых компьютерах выполнялась на микросхеме контроллера МСЖ6818 фирмы Motorola. Этот контроллер содержит 64 байта CMOS-памяти, из которых первые 14 байт используются для часов реального времени, а остальные 50 байт хранят информацию о конфигурации системы.

            Для входного тактового сигнала контроллера применяется специальный «часовой» кварцевый генератор с частотой 32 768 кГц, что позволяет с помощью деления частоты получить импульсы с частотой 1 Гц. Контроллер считает секунды, минуты, часы, дни недели, месяцы и годы. Причем работает он даже при отключении питания компьютера, подпитываясь от батареи или аккумулятора. Это позволяет сохранять информацию о текущем времени постоянно.

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

 

 

 

 

 

7.5. Средства интерфейса пользователя

 

            Для связи компьютера с пользователем (то есть организации интерфейса пользователя) применяются видеоадаптер, управляющий видео монитором, клавиатура и графический манипулятор типа «мышь» (mouse), touch pad или stick pointer.

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

            Видеопамять представляет собой оперативную память, которая, хотя и не является, по сути, системной памятью, рассматривается процессором как часть системной памяти с адресами А0000 — BFFFF (всего 128 Кбайт). То есть с этой памятью процессор может взаимодействовать как с системной оперативной памятью: писать информацию в любую ячейку и читать информацию из любой ячейки. Но одновременно эта же память постоянно сканируется (то есть последовательно опрашивается) самим видеоадаптером для формирования растрового изображения на экране монитора. То есть доступ к этой памяти имеют как процессор, так и видеоадаптер.

            Скорость обмена с видеопамятью — довольно важный параметр, он влияет на удобство работы с компьютером и часто определяет круг задач, который может им выполняться. Поэтому для видеопамяти используют самые быстродействующие микросхемы.   Кроме того, применяют специальные архитектурные решения, позволяющие облегчить разделение доступа к памяти со стороны процессора и видеоадаптера. Например, в случае двух портовой памяти VRAM — Video RAM, к каждой ее ячейке одновременно могут получить доступ (с записью или чтением) как процессор, так и сам адаптер. Отметим, что в старых видеоадаптерах для снижения искажений изображения на экране во время перезаписи содержимого памяти использовалось обращение к памяти со стороны центрального процессора только в периоды кадрового и строчного гасящего импульсов (когда электронный луч монитора гасится при переходе к следующей строке экрана или к следующему кадру).   Все современные видеоадаптеры могут работать в двух основных режимах: текстовом (символьном, алфавитно-цифровом) и графическом. В текстовом режиме видеопамять имеет начальный адрес В8000, а в графическом — А0000.

            В текстовом режиме на экран можно выводить только отдельные символы, причем только в определенные позиции на экране. При этом в видеопамяти хранятся исключительно коды выводимых символов (8-разрядные) и коды атрибутов символов (8-разрядные). То есть каждой символьной позиции на экране соответствует два байта памяти. К атрибутам символа относятся яркость, цвет, мерцание как символа, так и его фона. Для преобразования содержимого памяти в видеосигнал точечного изображения применяется так называемый знакогенератор. Он может представлять собой ПЗУ, в котором записано построчное растровое изображение каждого символа. При этом чем больше точек растра отводится по изображение символа, тем он качественнее, но тем больше места занимает на экране. Преимущества текстового режима — это простота управления экраном и малый объем требуемой памяти. Примером его использования является программа начального запуска BIOS.

            В графическом режиме в видеопамяти хранится описание каждой точки на экране монитора. Каждой точке соответствует несколько бит памяти (используется ряд: 1, 4, 8, 16, 24 бит на одну точку). При этом, соответственно, каждая точка может иметь 2n состояний, где n — количество битов, а под состоянием понимается цвет и яркость точки. При одном бите точка может быть белой или черной, при 4 битах она может иметь 16 цветов, при 8 битах — 256, при 16 битах— 65 536, а при 24 битах — 16 777 216 цветов и оттенков. Здесь же отметим, что общее количество точек на экране в современных компьютерах выбирается из ' ряда 640 (по горизонтали) х 480 (по вертикали), 800x600, 1024х768, 1280х 1024, 1600x1200. Отсюда нетрудно рассчитать требуемый для полного экрана объем видеопамяти. Так, например, при разрешении 800x600 точек и при 256 цветах (8 бит или 1 байт) требуется 800х600х1 480 000 байт памяти. При разрешении 1024х768 и 65 536 цветов {2 байта) требуется 1024х768х2 = 1 572 864 байта. Однако объем видеопамяти выбирается из следующего ряда: 256 Кбайт, 512 Кбайт, 1 Мбайт, 2 Мбайт, 4 Мбайт, 8 Мбайт, 16 Мбайт. В табл. 7.3 приведены необходимые объемы видеопамяти для различных режимов работы видеоадаптера.

 

 

            Понятно, что для полного обновления такого большого объема памяти требуется значительное время даже при быстрой видеопамяти и быстром процессоре. В роли ограничивающего фактора будет выступать темп обмена по системной шине. Поэтому именно видеоадаптеры первыми стали размещать на локальной шине VLВ или на шине PCI, а позднее — на выделенной шине AGP. Другое направление ускорения формирования изображения — совершенствование принципов обмена с компьютером. Первые видеоадаптеры были рассчитаны на то, чтобы все манипуляции с изображением проводил сам центральный процессор компьютера. Принципиально иной подход — использование графического сопроцессора. При этом центральный процессор только дает команды на формирование изображения, а сопроцессор, расположенный на плате видеоадаптера, сам уже выполняет всю обработку, расчеты и формирование объектов на экране, что дает большое увеличение скорости формирования изображений. Промежуточный вариант — это применение так называемых графических ускорителей, то есть узлов, выполняющих наиболее трудоемкие операции по формированию изображений, но центральный процессор при этом не освобождается полностью от управления видеопамятью.

            В настоящее время наиболее распространены два стандарта дисплеев:

            • SVGA (Super VGA), который поддерживает максимальное разрешение 1024x768 точек (стандартным считается 800x600 точек) в 16 и 256- цветных режимах при максимальном объеме видеопамяти 4 Мбайт. Кроме того, предусмотрено использование двух портовой памяти и 16- разрядной шины данных и ряд других новшеств.

            • XGA и XGA-2 (eXtended Graphics Array) — эти стандарты предложены в 1990 и 1992 г.г. компанией IBM. Основным режимом считается разрешение 1024x768 точек при 256 цветах (XGA) или при 64 К цветах (XGA- 2). Отличительная особенность — использование быстродействующего графического сопроцессора и наличие возможности управлять системной шиной, что позволяет выполнять видео операции без участия центрального процессора. Так же, как и в SVGA, используется двух портовая оперативная память, причем она располагается в адресном пространстве компьютера в последних адресах полной 4-гигабайтной области, на которые обычно никто не претендует. В XGA-2, в отличие от ХGА, используется только прогрессивная (сплошная, non-interlaced, NI), а не чересстрочная (interlaced) развертка изображения на экране монитора, что обеспечивает малые мерцания. Оба стандарта поддерживают полную совместимость с SVGA.

            • UVGA (Ultra VGA) — основным разрешением считается 1280х1024 точек

            • UXGA — разрешение 1600х1200 точек, XVGA — 1280x768 точек.

            Для подключения к компьютеру клавиатуры применяется специальный интерфейс с последовательной передачей информации. Эго позволяет использовать для присоединения клавиатуры всего два двунаправленных провода (линия данных и тактовый сигнал). Обмен информацией идет 11-битовыми посылками, включающими 8 разрядов данных и служебную информацию (то есть стартовый бит, бит четности и стоповый бит). В компьютере IBM PC ХТ для подключения клавиатуры использовалась микро схема PPI (Programmable Peripheral Interface) i8255, а в PCАТ — микросхема UPI (Universal Peripheral Interface) i8042.

            Принцип работы клавиатуры довольно прост. Он сводится к постоянному сканированию (последовательному опросу) всех клавиш (обычно применяется 101-клавишная клавиатура) и к пересылке в компьютер номера нажатой клавиши (8-битного стэн-кода), причем как при ее нажатии, так и при отпускании. При отпускании клавиши ее скэн-код предваряется посылкой кода FO. Если клавиша удерживается длительное время, то через заданный интервал посылки ее скэн-кодов повторяются с заданной частотой. Если одновременно нажимается более одной клавиши, то повторяется посылка кода только последней из нажатых клавиш.

            При получении скэн-кода контроллером 8042 он формирует сигнал запроса аппаратного прерывания IRQI. Это приводит к вызову программы обработки нажатия клавиши, находящейся в BIOS. Служебные клавиши (Shift, Ctrl, Alt) и переключающие клавиши (Caps Lock, Insert, Num Lock) обрабатываются специальным образом, а в случае нажатия символьных клавиш их скэн-коды преобразуются в коды соответствующих символов и помещаются в буфер клавиатуры. Буфер клавиатуры — это 16-байтная область памяти, организованная по принципу FIFO «первый вошел — первый вышел», в которой хранятся коды нажатых клавиш до тех пор, пока их сможет обработать программа.

            Современные клавиатуры персональных компьютеров имеют 101 или 102 клавиши. Имеются «расширенные» модели с количеством клавиш до 122 и «усеченные» модели с количеством клавиш около 90, применяемые в портативных компьютерах типа ноутбук.

            Начиная с компьютера PC АТ, клавиатура может не только передавать информацию, но и принимать ее. Эта возможность используется для пересылки в клавиатуру команд, устанавливающих режимы ее работы (например, скорость повтора ввода символов при удерживаемой клавише или временная задержка перед повтором).

            Компьютерная мышь, служащая для управления курсором, подключается к компьютеру через стандартный последовательный интерфейс RS 232С (о нем подробнее — в отдельной главе). Для передачи компьютеру информации о перемещении мыши используется 3-байтовый формат. Два байта при этом содержат информацию о перемещении мыши по вертикали и по горизонтали, а один байт — о состоянии кнопок мыши. Передача ведется только в одном направлении (от мыши к компьютеру) со скоростью 1200 бит/с. Перемещение измеряется в специальных единицах cpi (counts per inch), равных примерно 0,005 дюйма (0,13 мм).

            Стоит отметить, что мышь, как правило, питается от системного блока компьютера, для чего задействованы неиспользуемые сигнальные линии разъема интерфейса RS-232С, так как собственно напряжения питания на разъем не выведены. Именно поэтому мышь присоединяется к компьютеру четырех проводным кабелем, хотя для информации хватило бы и двухпроводного. Подробнее об интерфейсе RS-232С в следующей главе. Сейчас используется также подключение мыши через интерфейс PS/2, похожий на RS-232С, но не совместимый с ним ни электрически, ни конструктивно.

            Альтернатива мыши — это манипуляторы Stick Pointer и Touch Pad, которые не имеют движущихся механических частей. Сначала они применялись только в ноутбуках, но затем их стали размещать и на клавиатурах обычных настольных компьютеров. Stick Pointer представляет собой небольшой рычажок, расположенный между клавишами. Давление на него в разные стороны вызывает перемещение курсора на экране. При этом сам рычажок остается неподвижным. Touch Pad представляет собой небольшую площадку, расположенную рядом с клавишами, по которой необходимо двигать пальцем или ручкой, причем движение пальца вызывает такое же перемещение курсора на экране. С точки зрения компьютера эти манипуляторы ничем не отличаются от мыши, они используют тот же интерфейс.

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

 

7.6. Внешняя память

 

            Внешняя память компьютера представляет собой дисковые накопители информации — встроенный накопитель на жестком диске (винчестер) и накопитель на сменных гибких дисках (дискетах). В обоих случаях магнитные диски хранят информацию в виде намагниченных концентрических дорожек (цилиндров) на магнитном покрытии, разбитых на сектора. Диск в накопителе постоянно вращается, а запись и чтение информации производятся перемещаемыми вдоль радиуса диска магнитными головками. Благодаря постоянному прогрессу технологии производства накопителей, развитию технологии магнитных покрытий и магнитных головок, емкость винчестеров повысилась до нескольких десятков гигабайт, а емкость дискет — до сотен мегабайт (правда, стандартным пока считается объем дискеты 1,44 Мбайт).

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

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

            В настоящее время наиболее распространены два стандартных интерфейса для винчестеров:

            • IDE (Integrated Drive Electronics) — интерфейс для дисковых накопителей, официальное название — АТА (АТ Attachment). Именно этот интерфейс применяется в качестве основного в персональных компьютерах. Скорость обмена может достигать 133 Мбайт/с.

            • SCSI (Small Cotnlarter System Inter6u3) — малый компьютерный системный интерфейс. В принципе, он используется и для подключения других устройств (например, сканеров), но основное его применение — для дисководов. Как правило, данный интерфейс изначально включается в структуру только некоторых серверов, а для его реализации в персональных компьютерах необходима дополнительная плата расширения (кстати, довольно дорогая). Скорость обмена может достигать 320 Мбайт/с.

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

            Для ускорения обмена с дисками широко применяется кэширование, принцип которого близок к принципу кэширования оперативной памяти. Точно так же кэширование диска позволяет за счет использования более быстрой электронной памяти, чем дисковая память, существенно увеличить среднюю скорость обмена с диском. Здесь принципиально важны несколько моментов:

            • в большинстве случаев каждое следующее обращение к диску будет обращением к следующему по порядку блоку информации на диске;

            • для позиционирования головки требуется заметное время (порядка миллисекунды);

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

            Все это приводит к тому, что оказывается гораздо выгоднее содержать в оперативной памяти (дисковой кэш-памяти) копию части диска и обращаться на диск только в том случае, если нужной информации нет в кэш-памяти. Для обмена с кэш-памятью, как и в случае оперативной памяти, используются методы Write Through (WT) и Write Back (WB). Так как винчестер — это блочно ориентированное устройство (размер блока равен 512 байт), то данные передаются в кэш блоками. При заполнении кэш-памяти в нее переписываются не только необходимые в данный момент блоки, но и следующие за ними (метод «чтение вперед», Read Ahead), дальнейшее обращение к которым наиболее вероятно. Особенно эффективно кэширование при оптимизации жесткого диска (его дефрагментации), когда каждый файл расположен в группе секторов, следующих друг за другом. Как и в случае кэширования памяти, при кэшировании диска используется механизм LRU, позволяющий обновлять те блоки, к которым дольше всего не было обращений. Кэш-память диска обычно располагается на плате специального кэш-контроллера дисковода, и ее объем может достигать 16 Мбайт.

            Для сопряжения с компьютером дисковода для гибких дисков (флоппи дисков, дискет) традиционно применяется специальный интерфейс SA-400, разработанный в начале 70-х годов. Контроллер присоединяется к дисководу 34-проводным кабелем, причем к одному контроллеру обычно присоединяется до двух дисководов (теоретически их может быть четыре). На каждом накопителе, как правило, имеется четыре перемычки DS0 — DS3 (Drive Select) для выбора номера данного дисковода. Данные по интерфейсу передаются в последовательном коде в обоих направлениях (по разным проводам). Скорость передачи данных для дискет емкостью 1,44 Мбайт составляет 500 Кбит/с. Как и контроллер жестких дисков, контроллер гибких дисков в современных компьютерах установлен на системной плате (для старых моделей компьютеров выпускались специальные платы расширения).

            В новых компьютерах стал стандартным дисковод на оптических компакт дисках (CD-ROM). На этих дисках информация хранится в виде зон с разными степенями отражения света от поверхности диска. Вместо множества концентрических дорожек на поверхности диска (как у магнитного диска, винчестера), в случае компакт-диска применяется всего одна спиральная дорожка. Для чтения информации применяется миниатюрный лазер. Диски имеют диаметр 5 дюймов и стандартный объем 780 Мбайт. Скорость обмена информацией с компакт-дисками сейчас составляет от 2,4 Мбайт/с (для дисководов со скоростью 16х) до 3,6 Мбайт/с (для дисководов со скоростью 52х).       Используются интерфейсы IDE и SCSI. На компакт-диск записываются не только данные, но и звук, а также изображение. Существуют компакт-диски с возможностью однократной записи или даже многократной перезаписи информации с компьютера. Возможно, дисководы, поддерживающие такие диски, вскоре войдут в стандартную комплектацию персонального компьютера. Правда, скорость записи информации на компакт-диски обычно существенно ниже скорости чтения информации.

 

Глава 8. Интерфейсы персонального компьютера

 

Лекция 15. Системная магистраль ISA

 

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

 

            Ключевые слова: ISA, Master, Slave, временные интервалы, протоколы обмена, распределение ресурсов, Plug-and-play. Сразу же оговоримся, что под интерфейсами персонального компьютера в данном случае имеются в виду только внешние интерфейсы, то есть средства сопряжения с внешними по отношению к компьютеру в целом устройствами.          При этом внешние устройства могут быть как стандартными (например, принтер или модем), так и нестандартными (например, измерительные и управляющие модули, приборы, установки).

            В настоящее время компьютеры могут иметь множество внешних интерфейсов. Наиболее распространены следующие:

            • системная шина (магистраль) ISA;

            шина PCI;

            • шина AGP;

            • шина PC Cards (старое название PCMCIA) — обычно только в ноутбуках;

            • параллельный порт (принтерный, LPT-порт) Centronics;

            • последовательный порт (СОМ-порт) RS-232С;

            • последовательный порт USB (Universal Serial Bus);

            последовательный инфракрасный порт IrDA.

            Кроме того, компьютеры могут иметь разъемы для подключения внешнего монитора, клавиатуры, мыши. Некоторые компьютеры имеют встроенные модемы и сетевые адаптеры, тогда они располагают, соответственно, телефонным и сетевым внешними интерфейсами.

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

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

            Чаще всего для подключения нестандартных внешних устройств используются системная магистраль ISA, параллельный интерфейс Centronics (LPT) и последовательный интерфейс RS-232С (СОМ).

 

8.1. Системная магистраль ISA

 

            Системная шина (магистраль) ISA была разработана специально для персональных компьютеров типа IBM РС АТ и является фактическим стандартом. В то же время, отсутствие официального международного статуса магистрали ISA (она не утверждена в качестве стандарта ни одним международным комитетом по стандартизации) приводит к тому, что многие производители допускают некоторые отклонения от фирменного стандарта.

            ISA явилась расширением магистрали компьютеров IBM РС и 1ВМ РС ХТ. В ней было увеличено количество разрядов адреса и данных, увеличено число линий аппаратных прерываний и каналов ПДП, а также повышена тактовая частота. К 62-контактному разъему прежней магистрали был добавлен 36-контактный новый разъем. Тем не менее, совместимость была сохранена, и платы, предназначенные для IBM РС ХТ, годятся и для IBM РС АТ. Характерное отличие ISA состоит в том, что ее тактовый сигнал не совпадает с тактовым сигналом процессора, как это было в IBM РС ХТ, поэтому скорость обмена по ней не пропорциональна тактовой частоте процессора.

            Магистраль ISA относится к не мультиплексированным (то есть имеющим раздельные шины адреса и данных) 16-разрядным системным магистралям среднего быстродействия. Обмен осуществляется 8-ми или 16-ти разрядными данными. На магистрали реализован раздельный доступ к памяти компьютера и к устройствам ввода/вывода (для этого имеются специальные сигналы). Максимальный объем адресуемой памяти составляет 16 Мбайт (24 адресные линии). Максимальное адресное пространство для устройств ввода/вывода — 64 Кбайт (16 адресных линий), хотя и практически все выпускаемые платы расширения используют только 10 младший адресных линий (1 Кбайт). Магистраль поддерживает регенерацию динамической памяти, радиальные прерывания и прямой доступ к памяти. Допускается также захват магистрали.

            Разъем магистрали ISA разделен на две части, что позволяет уменьшать размеры 8-разрядных плат расширения, а также использовать платы, разработанные для компьютеров IBM РС ХТ. Внешний вид плат расширения показан на рис. 8.1. Назначение контактов разъемов представлено в Табл. 8.1 и 8.2. На магистрали присутствуют четыре напряжения питания: +5 В, — 5 В, +12 В и — 12 В, которые могут использоваться платами расширения.

 

            В роли задатчика (Master) магистрали могут выступать процессор, контроллер ПДП, контроллер регенерации или другое устройство. Исполнителями (Slave) могут быть системные устройства компьютера, подключенные к ISA, или платы (карты) расширения.

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

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

 

 

 

 

 

 

 

8.1.1. Назначение сигналов ISA

 

            Вкратце о сигналах ISA уже говорилось в разделе 2.2. Рассмотрим назначение основных, наиболее часто используемых сигналов магистрали ISA подробнее.

            • SA0...SA19 — фиксируемые адресные разряды (они действительны в течение всего цикла обмена). 16-разрядным словам соответствуют четные адреса (SA0=0).

            • LA17... LA23 — не фиксируемые адресные разряды. Используются для адресации памяти. Действительны только в начале цикла обмена (в адресной фазе).

            • BALE — сигнал стробирования адресных разрядов (действительности адреса соответствует отрицательный фронт сигнала). Основное назначение — фиксация нефиксированных адресных разрядов в регистре-защелке.

            • -SBHE — сигнал типа цикла передачи данных (8-ми или 16-разрядный цикл). Активен при передаче старшего байта.

            • SDO...SD15 — разряды данных. По линиям SD0...SD7 передается младший байт, по линиям SD8...SD15 — старший байт.

            •-SMEMR, -MEMR — стробы чтения данных из памяти. Сигнал SMEMR вырабатывается только при обращении к адресам, не превышающим FFFFF (находящимся в пределах младшего 1 Мбайта), а сигнал -MEMR при обращении ко всем адресам памяти.

            •-SMEMW, -MEMW — стробы записи данных в память. Сигнал— SMEMW вырабатывается только при обращении к адресам, не превышающим FFFFF (находящимся в пределах младшего 1 Мбайта), сигнал -MEMW при обращении ко всем адресам памяти.

            •-IOR — строб чтения данных из устройств ввода/вывода. При активном сигнале адресуемое устройство ввода/вывода должно выдать свои данные на шину данных.

            •-IOW — строб записи данных в устройства ввода/вывода. По этому сигналу адресуемое устройство ввода/вывода должно принять данные с шины данных.

            •-МЕМ CS16 — сигнал выставляется памятью для сообщения задатчику о том, что она имеет 16-разрядную организацию. Вырабатывается в ответ на распознавание адреса памяти.

            •-I/О CS16 — сигнал выставляется устройством ввода/вывода для сообщения задатчику о том, что оно имеет 16-разрядную организацию, и необходим 16-разрядный цикл обмена. Вырабатывается в ответ на распознавание своего адреса.

            •I/О СН RDY — сигнал снимается (делается низким) исполнителем (устройством ввода/вывода или памятью) по переднему фронту сигналов -IOR и -IOW в случае, если он не успевает выполнить нужную операцию в темпе задатчика. То есть этот сигнал используется для асинхронного обмена по магистрали.

            •-I/О СН СК — сигнал вырабатывается любым исполнителем (устройством ввода/вывода или памятью) для информирования задатчика о фатальной ошибке, например, об ошибке четности при доступе к памяти.

            •-0WS — сигнал выставляется исполнителем для информирования задатчика о необходимости проведения цикла обмена без вставки такта ожидания.

            •-REFRESH — сигнал регенерации, выставляется контроллером регенерации для информирования всех устройств на магистрали о выполнении циклов регенерации динамической памяти компьютера.

            •RESET DRV — сигнал сброса в начальное состояние всех устройств на магистрали. Вырабатывается центральным процессором при включении или сбое питания, а также при нажатии на кнопку сброса RESET компьютера.

            • SYSCLK — сигнал системного тактового генератора, тактовый сигнал магистрали. В большинстве компьютеров его частота равна 8 МГц независимо от тактовой частоты процессора.

            • OSC — не синхронизированный с SYSCLК сигнал кварцевого генератора с частотой 14,31818 МГц.

            • IRQ — сигналы запроса радиальных прерываний. Запросом является положительный переход на соответствующей линии IRQ.

            • DRQ — сигналы запроса ПДП.

            • -РАСК — сигналы предоставления ПДП.

            • AEN — сигнал выбора устройства, запросившего ПДП. Отключает все остальные устройства, не участвующие в данном цикле ПДП.