Преимуществом реализации такого типа архитектуры являются довольно низкие затраты, поскольку, по сути, требуется всего лишь одна операция сравнения (для тегов). Недостатки ее, впрочем, также очевидны. Например, если два блока данных основной памяти, используемые одинаково часто, претендуют на одну и ту же строку в кэше. Внешняя кэш-память с прямым отображением использовалась, например, вместе с 386-ми процессорами (кэш-контроллер 182385), а внутренняя — в микропроцессоре DEC Alpha 21064.
Полностью ассоциативная архитектура
Другим типом архитектуры является полностью ассоциативная кэш-память. В этом случае любой блок памяти может занимать любую строку кэша. Полный адрес памяти делится только на две части: младшие разряды — смещение в строке и старшие разряды — информация о теге. В этой архитектуре решена проблема конфликтов адресов, однако сама кэш-память требует для своей реализации больших аппаратных затрат, поскольку значения тегов должны уже сравниваться для всех линий кэша. Тем не менее, микропроцессор 6x86 фирмы Cyrix, имел вторичную встроенную 256-байтную кэш память для команд, которая имела полностью ассоциативную архитектуру.
Наборно-ассоциативная архитектура
Разумным компромиссом между двумя рассмотренными архитектурами является наборно-ассоциативная организация кэш-памяти. В этом случае несколько линий (две, четыре, пять, восемь) объединяются в наборы, и средние биты адреса памяти определяют уже не конкретную линию (как в прямом отображении), а набор. Сравнение тегов (со значением старших разрядов) производится только для линий, входящих в набор. Подобную архитектуру имеет подавляющее число процессоров, например 486DX, 486DX2, Intel DX4, Pentium и т.д.
По количеству линий кэша, входящих в набор, подобная архитектура может называться 2-входовой (2-way set associative), 4-входовой (4-way set associative) и т.д.
Обновление информации
Каждый раз, когда микропроцессору требуется информация, отсутствующая в кэше (cache-miss), он вынужден обращаться через системную шину к основной оперативной памяти. После этого обычно решается, должна ли происходить замена строки в кэш-памяти и какая конкретно строка кэша будет заменена. В подавляющем большинстве случаев об этом заботится встроенный в контроллер LRU-алгоритм (Last Recently Used), который обновляет именно ту строку кэша, которая используется менее интенсивно.
1.5 BIOS и CMOS RAM
Базовая система ввода-вывода BIOS (Basic Input Output System) называется так потому, что включает в себя обширный набор программ ввода-вывода, благодаря которым операционная система и прикладные программы могут взаимодействовать с различными устройствами как самого компьютера, так и подключенными к нему. Большинство современных видеоадаптеров, а также контроллеры накопителей имеют собственную систему BIOS, которая обычно дополняет системную. Во многих случаях программы, входящие в конкретную BIOS, заменяют соответствующие программные модули основной BIOS. Вызов программ BIOS, как правило, осуществляется через программные или аппаратные прерывания.
Система BIOS, помимо программ взаимодействия с аппаратными средствами на физическом уровне содержит программу тестирования при включении питания компьютера POST (Power-On-Self-Test) и программу начального загрузчика. Последняя программа необходима для загрузки операционной системы с соответствующего накопителя.
Система BIOS в IBM PC-совместимых компьютерах реализована в виде одной или двух микросхем, установленных на системной плате компьютера. Название "ROM BIOS" в настоящее время не совсем справедливо, ибо "ROM" предполагает использование постоянных запоминающих устройств (ROM — Read Only Memory), а для хранения кодов BIOS применяются в основном перепрограммируемые (стираемые электрически или с помощью ультрафиолетового излучения) запоминающие устройства, например ППЗУ ЭС (Electrically Erasable Programmable ROM, EEPROM). Мало того, наиболее перспективной для хранения системы BIOS является сейчас флэш-память.
Поскольку содержимое ROM BIOS фирмы IBM было защищено авторским правом (то есть его нельзя подвергать копированию), то большинство других производителей компьютеров вынуждены были использовать микросхемы BIOS независимых фирм, разумеется, практически полностью совместимые с оригиналом. Наиболее известны из этих фирм три: American Megatrends Inc. (AMI), Award Software и Phoenix Technologies. Заметим, что конкретные версии BIOS неразрывно связаны с набором микросхем (chipset), размещенных на системной плате.
Система BIOS в компьютерах неразрывно связана с аббревиатурой CMOS RAM. Под этим понимается "неизменяемая" память, в которой хранится информация о текущих показаниях часов, значении времени для будильника, конфигурации компьютера: количестве памяти, типах накопителей и т.д. Именно в такой информации нуждаются программные модули системы BIOS. Своим названием CMOS RAM обязана тому, что выполнена на основе КМОП-структур (CMOS — Complementary Metal-Oxide-Semiconductor), которые, как известно, отличаются малым энергопотреблением. Поскольку в данной микросхеме реализованы также часы реального времени RTC (Real Time Clock), то ее обычно называют RTC CMOS RAM. В современных компьютерах функции этой микросхемы включены в одну из вспомогательных (микросхем, например периферийного контроллера. CMOS-память энергонезависима только постольку, поскольку постоянно подпитывается, например, от аккумулятора, расположенного на системной плате, или батареи гальванических элементов, как правило, смонтированной на корпусе системного блока. Заметим, что большинство системных плат допускают питание CMOS RAM как от встроенного, так и от внешнего источников.
В системе BIOS имеется программа, называемая Setup, которая может изменять содержимое CMOS-памяти. Вызывается эта программа определенной комбинацией клавиш, которая обычно высвечивается на экране монитора после включения питания компьютера. Некоторые из данных комбинаций для различных фирм-производителей приведены в таблице 1. Заметим, что войти в программу Setup можно либо после успешной загрузки компьютера (нажав соответствующую комбинацию клавиш), либо после возникновения ошибки (клавиши F1 или F2). Во время загрузки компьютера запустить программу Setup можно, например, для системы BIOS фирмы AMI, нажав клавишу DEL.
Таблица 1 Комбинации клавиш для входа в BIOS различных фирм
Фирма-изготовитель | Комбинация клавиш | Примечание |
Phoenix Technologies | CTL-ALT-S | или F2 после ошибки |
American Megatrends | DEL | в течение загрузки |
Award Software | CTL-ALT-ESC | — |
Chips&Technologies | CTL-ALT-S | или F2 после ошибки |
Zenith | CTL-ALT-INS | — |
Quadtel | CTL-ALT-S | или F2 после ошибки |
Программы Setup многих фирм, могут не только выполнять стандартные установки, доступные практически на любой АТ/286, но и имеет ряд дополнительных возможностей.
Расширенные установки Advanced CMOS Setup или Advanced ChipSet Setup включают в себя дополнительные возможности конфигурирования системной платы, которые во многом зависят от используемого набора вспомогательных микросхем. Наиболее общими являются обычно такие возможности, как допустимая скорость ввода символов с клавиатуры (по умолчанию 15 символов в секунду), тестирование памяти выше границы 1 Мбайт, разрешение использования арифметического сопроцессора, приоритет или последовательность загрузки (то есть попытка загрузки компьютера сначала с накопителя со сменным, а затем несменным носителем, или наоборот), установка определенной тактовой частоты микропроцессора при включении, разрешение парольной защиты, запрет контроля четности памяти и т.д. Кроме того, возможна установка тактовой частоты системной шины, а также числа тактов ожидания (или временной задержки) для микропроцессора при обращении к устройствам ввода-вывода, оперативной и/или кэш-памяти.
Заметим, что в случае повреждения микросхемы CMOS RAM (или разряде батареи/аккумулятора) программа Setup имеет возможность воспользоваться некой информацией по умолчанию (BIOS Setup Default Values), которая хранится в таблице соответствующей микросхемы ROM BIOS. Кстати, на некоторых материнских платах питание микросхемы CMOS RAM может осуществляться как от внутреннего, так и от внешнего источников. Выбор определяется установкой соответствующей перемычки.
Обычно программа Setup поддерживает также установки, связанные с шиной PCI и автоматической конфигурацией системы Plug and Play.
Задание полной конфигурации компьютера осуществляется не только установками из программы Setup, но и замыканием (или размыканием) соответствующих перемычек на системной плате. Назначение каждой из них указано в соответствующей документации. Они определяют тип процессора, наличие внешнего сопроцессора, тактовую частоту, размер внешней кэш-памяти, разрешения локальной шины. Причем подобные перемычки могут использоваться даже на системных платах с автоматической конфигурацией, например для выбора внешней тактовой частоты процессора, значения коэффициента умножения частоты, напряжения питания процессора и т.д.
1.6 Вспомогательные микросхемы
Хотя микропроцессор и память являются главными компонентами системной платы, но сами по себе они — еще не компьютер. Для создания полновесной микропроцессорной системы необходимы вспомогательные микросхемы, такие, как тактовый генератор, таймер, различные контроллеры, буфера адреса и данных и т.п.
Большинство логических элементов компьютера разработано таким образом, чтобы работать синхронно, то есть по определенным тактовым сигналам. Именно генератор тактовой частоты вырабатывает специальные импульсы, служащие отсчетами времени для всех электронных устройств на системной плате. В качестве главного элемента генератора используется кристалл кварца, который на своей резонансной частоте обладает стабильностью 10-6.