В зависимости от способа определения взаимного соответствия строки КЭШа и области основной памяти различают три архитектуры кэш-памяти:
· кэш прямого отображения;
· полностью ассоциативный кэш;
· частично или наборно-ассоциативный кэш.
Кэш прямого отображения.В кэш-памяти прямого отображения адрес памяти, по которому происходит обращение, однозначно определяет строку, в которой может находиться отображение требуемого блока.
Кэшируемая основная память условно разбивается на страницы, размер которых совпадает с размером кэш-памяти. Кэш-память делится на строки. Архитектура прямого отображения подразумевает, что каждая строка КЭШа может отображать из любой страницы кэшируемой памяти только соответствующею ей строку.
Наборно-ассоциативный кэш.Наборно-ассоциативная архитектура КЭШа позволяет каждому блоку кэшируемой памяти претендовать на одну из нескольких строк КЭШа, объединенных в набор.
Ассоциативный кэш.В отличии от предыдущих, у полностью ассоциативного КЭШа любая его строка может отображать любой блок памяти, что существенно повышает эффективность использования его ограниченного объема. При этом все биты адреса кэшированного блока за вычетом бит, определяющих положение (смещение) данных в строке, хранятся в памяти тегов. В такой архитектуре для определения наличия затребованных данных в кэш-памяти требуется сравнение со старшей частью адреса тегов всех строк, а ни одной или нескольких, как при прямом.
Резкое повышение быстродействия процессоров и переход на 32-разрядные многозадачные операционные системы существенно поднимают требования и к другим компонентам компьютера. Важнейшим из них является оперативная память. Возрастание внешних тактовых частот процессоров с 33-40 МГц, характерных для семейства 486 (486DX2-66/80 и 486DX4-100/120), до 50-66 МГц для Pentium (Pentium 75/90/100/120/133), требует прежде всего адекватного увеличения быстродействия подсистемы памяти. Поскольку в качестве оперативной используется относительно медленная динамическая память Dram (Dynamic Random Access Memory), главный способ увеличения пропускной способности основан на применении кэш-памяти. Кроме встроенной в процессор кэш-памяти первого уровня применяется и кэш-память второго уровня (внешняя), построенная на более быстродействующих, чем Dram, микросхемах статической памяти SRAM (Static Ram). Для высоких тактовых частот нужно увеличивать быстродействие SRAM. Кроме того, в многозадачном режиме эффективность работы кэш-памяти также может снижаться. Поэтому актуальной становится задача не только увеличения быстродействия кэш-памяти, но и ускорения непосредственного доступа к динамической памяти. Для решения этих проблем начинают использоваться новые типы статической и динамической памяти.Требования к объемам памяти диктуются программным обеспечением. При использовании Windows оценить необходимое количество памяти можно на основе тестов Winstone, использующих наиболее популярные приложения Windows.
Статическая память
В качестве кэш-памяти второго уровня практически всегда применялась (и до сих пор продолжает широко применяться) стандартная асинхронная память SRAM. При внешних тактовых частотах порядка 33 МГц хорошие результаты давала статическая память со временем выборки 15-20 нс. Для эффективной работы на частотах выше 50 МГц такого быстродействия уже недостаточно. Прямое уменьшение времени выборки до нужных величин (12-8 нс) обходится дорого, так как требует зачастую применения дорогой технологии Bi-CMOS вместо CMOS, что неприемлемо для массового рынка. Поэтому предлагаемое решение заключается в применении новых типов памяти с усовершенствованной архитектурой, которые первоначально были разработаны для мощных рабочих станций. Наиболее перспективна синхронная SRAM. В отличие от обычной асинхронной, она может использовать те же тактовые сигналы, что и остальная система, поэтому и называется синхронной. Она снабжена дополнительными регистрами для хранения информации, что освобождает остальные элементы для подготовки к следующему циклу еще до того, как завершился предыдущий. Быстродействие памяти при этом увеличивается примерно на 20%. Эффективную работу на самых высоких частотах может обеспечить особая разновидность синхронной SRAM с конвейерной организацией (pipelined burst). При ее применении уменьшается число циклов, требующихся для обращения к памяти в групповом режиме.
Динамическая память
Так же, как и для статической памяти, прямое сокращение времени выборки для динамической памяти достаточно трудно технически осуществимо и приводит к резкому росту стоимости. Поэтому ориентация в новых системах идет на микросхемы со временем выборки 60-70 нс. Стандартные микросхемы Dram имеют страничную организацию памяти Fast Page Mode (FPM), которая позволяет значительно ускорить доступ к последовательно расположенным (в пределах страницы) данным по сравнению со случаем произвольной выборки. Поскольку обращения к последовательно расположенным данным в реальных задачах встречаются очень часто, применение FPM Dram заметно повышает производительность. FPM Dram со временем выборки 60-70 нс обеспечивает необходимые характеристики для тактовых частот 33-40 МГц. При повышении тактовой частоты обеспечить надежное и быстрое считывание данных в страничном режиме уже не удается. Эту проблему в значительной степени решает применение памяти нового типа - EDO Dram (Extended Data Output Dram). От обычной памяти со страничной организацией она отличается наличием дополнительных регистров для хранения выходных данных. Увеличивается время, в течение которого данные хранятся на выходе микросхемы, что делает выходную информацию доступной для надежного считывания процессором даже при высоких тактовых частотах (фактически время между обращениями в страничном режиме можно уменьшить до 30 нс по сравнению с 45 нс для FPM).
Радикальный, но не общепризнанный подход к повышению быстродействия динамической памяти заключается во встраивании в микросхемы Dram собственной кэш-памяти. Это Cached Dram (CDRAM) и Enhanced Dram (EDRAM). Память CDRAM выпускается фирмой Mitsubishi и имеет 16 KB кэш-памяти как на 4, так и на 16 Mbit кристалле, обмен между динамической и встроенной кэш-памятью осуществляется словами шириной 128 разрядов.
Вообще говоря, применение новых типов динамической памяти позволяет получать высокую производительность даже и без применения кэш-памяти второго уровня (если кэш-память первого уровня типа write back), особенно в случае CDRAM и Enhanced Dram, которые именно так и используются. Однако подавляющее большинство систем для достижения максимальной производительности строится все-таки с использованием кэш-памяти второго уровня. Для них наиболее подходит память типа EDO Dram. К тому же она стала уже промышленным стандартом, и ее доля будет преобладать в микросхемах памяти емкостью 16 Mbit и более. Фактически эта память приходит на смену стандартной FPM Dram и ее можно применять в любых системах вместо стандартной.
Конструктив
Несмотря на то, что наиболее популярным конструктивом для динамической памяти по прежнему остается SIMM (Single In-line Memory Module), начинают применяться и другие стандарты. Возникновение новых стандартов вызвано необходимостью решения двух основных проблем. Первая связана с увеличением плотности упаковки элементов памяти, особенно актуальной для рабочих станций, использующих память очень большого объема, и мобильных систем. Вторая с обеспечением устойчивой работы при высоких частотах, которая зависит от размеров, емкости и индуктивности соединителя. Большую по сравнению с SIMM плотность упаковки и, соответственно, объем памяти могут обеспечить модули типа DIMM (Dual In-line Memory Module), у которых, в отличие от SIMM, контакты на обеих сторонах модуля не объединены, а могут использоваться независимо.
Микросхемы стандартной статической памяти в основном выпускаются в корпусах типа Dip и SOJ. Память типа pipelined burst либо запаивается на системную плату сразу в процессе ее изготовления, либо поставляется в виде модулей.
2. Организация и виды прерываний
Пpepывaния – этo гoтoвыe пpoцeдуpы, кoтopыe кoмпьютep вызывaeт для выпoлнeния oпpeдeлeннoй зaдaчи.
Cущecтвуют aппapaтныe и пpoгpaммныe пpepывaния. Aппapaтныe пpepывaния иницииpуютcя aппapaтуpoй, либo c cиcтeмнoй плaты, либo c кapты pacшиpeния. Oни могут быть вызваны сигналом микросхемы таймера, сигналом от принтера, нажатием клавиши на клавиатуре и множеством других причин. Aппapaтныe пpepывaния не координируются c работой программного обеспечения. когда вызывается прерывание, то процессор оставляет свою работу, выполняет прерывание, а затем возвращается на прежнее место. Для того чтобы иметь возможность вернуться точно в нужное место программы, адрес этого места (CS:IP) запоминается на стеке, вместе c регистром флагов. Затем в CS:IP загружается адрес программы обработки пpepывaния и ей передается управление. Программы обработки прерываний иногда называют драйверами прерываний. Oни всегда завершаются инструкцией IRET (возврат из пpepывaния), которая завершает процесс, начатый прерыванием, возвращая старые значения CS:IP и регистра флагов, тем самым давая программе возможностьпродолжить выполнение из того же состояния.
C другой стороны, пpoгpaммныe пpepывaния на самом деле ничего не прерывают. Ha самом деле этo обычные пpoцeдуpы, кoтopыe вызываются Baшими программами для выпoлнeния рутинной работы, такой как прием нажатия клавиши на клавиатуре или вывод на экран. однако эти подпрограммы содержатся не внутри Baшeй программы, а в oпepaциoннoй cиcтeмe и мexaнизм прерываний дaeт Baм возможность oбpaтитьcя к ним. Пpoгpaммныe пpepывaния мoгут вызывaтьcя дpуг из дpугa. Haпpимep, все пpepывaния обработки ввода c клавиатуры DOS используют пpepывaния обработки ввода c клавиатуры BIOS для получения символа из буфера клавиатуры. Аппаратное пpepывaeниe мoжeт пoлучить управление пpи выполнении программного пpepывaния. Пpи этoм не вoзникaeт кoнфликтoв, тaк как кaждaя пoдпpoгpaммa обработки пpepывaния coxpaняeт значения вcex иcпoльзуeмыx eю peгиcтpoв и затем восстанавливает их пpи выходе, тем самым не оставляя следов того, что она занимала процессор.