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

Архитектура компьютера - Таненбаум Э

..pdf
Скачиваний:
485
Добавлен:
24.05.2014
Размер:
5.67 Mб
Скачать

Примеры центральных процессоров

193

До восьми контроллеров ввода-вывода могут быть непосредственно связаны с восемью входами IRx (Interrupt Request — запрос прерывания) микросхемы 8259А Когда любое из этих устройств хочет произвести прерывание, оно запускает свою линию входа Если активизируется один или несколько входов, контроллер 8259А выдает сигнал INT (INTerrupt — прерывание), который подается на соответствующий вход центрального процессора Когда центральный процессор способен произвести прерывание, он посылает микросхеме 8259А импульс через вывод INTA (INTerrupt Acknowledge — подтверждение прерывания) В этот момент микросхема 8259А должна определить, на какой именно вход поступил сигнал прерывания Для этого она помещает номер входа на информационную шину Эта операция требует наличия особого цикла шины Центральный процессор использует этот номер для обращения в таблицу указателей, которую называют таблицей векторов прерывания, чтобы найти адрес процедуры, производящей соответствующее прерывание

Микросхема 8259А содержит несколько регистров, которые центральный процессор может считывать и записывать, используя обычные циклы шины и выводы RD (ReaD — чтение), WR (WRite — запись), CS (Chip Select — выбор элемента памяти) и Xfl Когда программное обеспечение обработало прерывание и готово получить следующее, оно записывает специальный код в один из регистров, который вызывает сброс сигнала INT микросхемой 8259А, если не появляется другая задержка прерывания Регистры также могут записываться для того, чтобы ввести микросхему 8259А в один из нескольких режимов, и для выполнения некоторых других функций

Когда присутствует более восьми устройств ввода-вывода, микросхемы 8259А могут быть соединены каскадно В самой экстремальной ситуации все восемь входов могут быть связаны с выходами еще восьми микросхем 8259А, соединяя до 64 устройств ввода-вывода в двухступенчатую систему прерывания Микросхема 8259А содержит несколько выводов для управления каскадированием, но мы их опустили ради простоты

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

Примеры центральных процессоров

В этом разделе мы рассмотрим процессоры Pentium II, Ultra SPARC II и picojava на уровне аппаратного обеспечения

Pentium II

Pentium II — прямой потомок процессора 8088, который использовался в первой модели IBM PC Хотя Pentium II очень сильно отличается от процессора 8088 (первый содержит 7,5 млн транзисторов, а второй — всего 29 000), он полностью

194 Глава 3. Цифровой логический уровень

совместим с 8088 и может выполнять программы, написанные для 8088 (не говоря уже о программах для всех процессоров, появившихся между Pentium II и 8088).

Сточки зрения программного обеспечения, Pentium II представляет собой 32разрядную машину. Он содержит ту же архитектуру системы команд, что и процессоры 80386, 80486, Pentium и Pentium Pro, включая те же регистры, те же команды и такую же встроенную систему с плавающей точкой стандарта IEEE 754.

Сточки зрения аппаратного обеспечения, Pentium II представляет собой нечто большее, поскольку он может обращаться к 64 Гбайт физической памяти и передавать данные в память и из памяти блоками по 64 бита. Программист не видит этих передач по 64 бита, но такая машина работает быстрее, чем 32-разрядная.

На микроархитектурном уровне Pentium II представляет собой Pentium Pro с командами ММХ. Команды вызываются из памяти заранее и разбиваются на микрооперации. Эти микрооперации хранятся в буфере, и как только одна из них получает необходимые ресурсы для выполнения, она может начаться. Если в одном цикле может начинаться несколько микроопераций, Pentium II является суперскалярноймашиной.

Pentium II имеет двухуровневую кэш-память. Кэш-память первого уровня содержит 16 Кбайт для команд и 16 Кбайт для данных, а смежная кэш-память второго уровня — еще 512 Кбайт. Строка кэш-памяти состоит из 32 байт. Тактовая частота кэш-памяти второго уровня в два раза меньше тактовой частоты центрального процессора. Тактовая частота центрального процессора — 233 МГц и выше.

В системах с процессором Pentium II используются две внешние шины, обе они синхронные. Шина памяти используется для доступа к главному динамическому ОЗУ; шина PCI используется для сообщения с устройствами ввода-вывода. Иногда к шине PCI подсоединяется унаследованная (то есть прежняя) шина, чтобы можно было подключать старые периферические устройства.

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

Pentium II существенно отличается от своих предшественников компоновкой. Все процессоры, начиная с 8088 и заканчивая Pentium Pro, были обычными микросхемами с выводами по бокам или снизу, которые вставлялись в разъемы. Микропроцессор Pentium II представляет собой так называемый SEC (Single Edge Cartridge — картридж с однорядным расположением контактов). Как видно из рис. 3.40, этот картридж представляет собой довольно большую пластиковую коробку, содержащую центральный процессор, двухуровневую кэш-память и торцевой соединитель для передачи сигналов. Он содержит 242 контакта.

Хотя у Intel были все основания перейти к такой модели, она повлекла за собой проблему, которую компания не могла предвидеть. Многие покупатели имеют привычку разбирать компьютер и искать микросхему процессора. Однако в первых системах Pentium II покупатели не могли найти процессор и громко жаловались («У моего компьютера нет процессора!»). Компания Intel разрешила эту проблему, приклеив изображение процессора (голограмму) на следующие модели SEC.

Примеры центральных процессоров

195

.14 0 cm.

 

 

Картридж SEC

Процессор

Объединенная

 

кэш-память

 

 

Pentium II

 

 

второго уровня

 

6.3 cm

 

 

 

на 512 Кбайт

 

 

 

 

Кэш-память

Связь

Кэш-память

 

первого уровня

первого уровня

Контакт

с локальной

для команд

для данных

 

 

 

объемом 16 Кбайт

шиной

объемом 16 Кбайт

 

1 6 cm

Рис.3.40. КомпоновкаSEC

Главная проблема, связанная с процессором Pentium II, — управление режимом электропитания. Количество выделяемого тепла зависит от тактовой частоты, а выделяемая мощность при этом разнится от 30 до 50 Вт. Это огромная цифра для компьютерной микросхемы. Чтобы получить представление, что такое 50 Вт, поднесите руку к электрической лампочке в 50 Вт, которая включена уже некоторое время (только не дотрагивайтесь до нее). По этой причине SEC снабжен радиатором, чтобы рассеивать накопившееся тепло. Когда Pentium II перестанет быть рабочим процессором, его можно будет использовать в качестве нагревателя.

В соответствии с законами физики все, что выделяет большое количества тепла, должно потреблять большое количество энергии. В случае с портативным компьютером, который работает отбатареи с ограниченным зарядом, потребление большого количества энергии нежелательно. Чтобы решить эту проблему, компания Intel нашла способ вводить центральный процессор в режим пониженного энергоснабжения (состояние «сна»), если он не выполняет никаких действий, и вообще отключать его (вводить в состояние «глубокого сна»), если есть вероятность, что он не будет выполнять никаких действий некоторое время. В последнем случае значения кэш-памяти и регистров сохраняются, а тактовый генератор и все внутренние блоки отключаются. Видит ли Pentium II сны во время «глубокого сна», науке пока не известно.

Цоколевка процессора Pentium II

Из 242 контактов картриджа SEC 170 используются для сигналов, 27 для питания (с различной мощностью), 35 для «земли» и еще 10 остаются на будущее. Для некоторых логических сигналов используется два и более выводов (например, для запроса адреса памяти), поэтому существует только 53 типа выводов. Цоколевка в несколько упрощенном виде представлена на рис. 3.41. С левой стороны рисунка показано 6 основных групп сигналов шины памяти; с правой стороны расположены прочие сигналы. Заглавными буквами обозначены названия самих сигналов,

196Глава 3. Цифровой логический уровень

астрочными — общие названия для групп связанных сигналов (в последнем случае только первая буква заглавная).

Компания Intel используетодно соглашение, которое важно понимать. Поскольку микросхемы разрабатываются с использованием компьютеров, нужно какимто образом представлять названия сигналов в виде текста ASCII. Использовать черту над названиями сигналов, запускаемых низким напряжением, слишком сложно, вместо этого компания Intel помещает после названия сигнала знак #. Например, вместо обозначения BPRI используется BPRI#. Как видно из рисунка, большинство сигналов Pentium II запускаются низким напряжением.

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

Центральный процессор или другое задающее устройство шины может производить запрос на доступ к шине, используя следующую группу сигналов. Адреса состоят из 36 бит, но три последних бита должны всегда быть равны 0, и следовательно, они не имеют собственных выводов, поэтому А# содержит только 33 вывода. Все передачи состоят из 8 байтов. Поскольку адрес содержит 36 бит, максимальный объем памяти составляет 236, то есть 64 Гбайт.

Когда адрес передается на шину, устанавливается сигнал ADS#. Этот сигнал сообщает целевому объекту (например, памяти), что задействованы адресные линии. На линиях REQ# запускается цикл шины определенного типа (например, считывание слова или запись блока). Два сигнала четности нужны для проверки А#, а третий — для проверки ADS# и REQ#. Подчиненное устройство использует пять специальных линий для сообщения об ошибках четности. Эти же линии используются всеми устройствами для сообщения о каких-либо других ошибках.

Группа сигналов для отслеживания адресов, по которым происходило изменение данных, используется в многопроцессорных системах. Эти сигналы позволяют процессору обнаружить, есть ли слово, которое ему нужно, в кэш-памяти другого процессора. Как процессор Pentium II отслеживает эти адреса, мы рассмотрим в главе 8.

Ответные сигналы передаются от подчиненного к задающему устройству. Сигнал RS# содержит код состояния. Сигнал TRDY# показывает, что подчиненное устройство (целевой объект) готово принять данные от задающего устройства. Эти сигналы также проверяются на четность.

Последняя группа сигналов нужна для передачи данных. Сигнал D# используется, чтобы поместить 8 байтов данных на шину. Когда они туда помещаются, выдается сигнал DRDY# (сигнал наличия данных в шине). Он сообщает устройствам, что шина в данный момент занята.

Сигнал RESET# нужен для перезагрузки процессора в случае сбоя. Pentium II может осуществлять прерывания тем же способом, что и процессор 8088 (это требуется в целях совместимости), или использовать новую систему прерывания с устройством APIC (Advanced Programmable Interrupt Controller— встроенный

контроллер прерываний).

 

 

 

Примерыцентральныхпроцессоров

197

 

Г BPRI#

 

RESET#

 

Арбитраж <LOCK#

 

 

 

шины

[

Misc#

 

 

 

 

 

 

 

Прерывания

 

 

Г

А#

 

 

 

Запросы

I

ADS#

 

 

 

I

REQ#

 

VID

 

 

[ Parity#

 

 

 

Ошибки •< Misc#

 

Совместимость

 

 

 

 

Отслеживание

 

 

Микропроцессор

11

 

 

Misc#

Pentium II

Диагностика

 

изменений

 

 

 

 

 

 

 

поадресам

 

 

 

 

 

 

Г

RS#

 

Инициализация

 

Ответы < TRDY#

 

 

 

 

[ Parity*

 

Управление

 

 

 

 

 

электропитанием

 

ГD#

Данные

IDRDY#

Прочиесигналы

]DBSY#

 

 

i Parity*

 

27 - 35

Источник

энергии

Рис. 3 . 41 . Цоколевка процессора Pentium II. Официальные названия отдельных сигналов приведены заглавными буквами. Строчными буквами даны общие названия групп связанныхсигналов илиописаниясигналов

Pentium II может работать при разном напряжении. Сигналы VID используются для автоматического выбора напряжения источника питания. Сигналы совместимости нужны для работы с устройствами более старых моделей, которые изначально предназначены для процессора 8088. Группа сигналов диагностики содержит сигналы для проверки и отладки системы в соответствии со стандартом IEEE 1149.1 JTAG. Сигналы инициализации связаны с загрузкой системы. Сигналы управления режимом электропитания позволяют процессору входить в состояние «сна» или «глубокого сна». Наконец, оставшаяся группа содержит сигналы разного рода. Сюда относится, например, сигнал, который выдается центральным процессором, если его внутренняя температура превышает 130°С (266°F). Хотя если температура центрального процессора превышает 130°С, он уже, вероятно, мечтает о выходе на пенсию и хочет служить в качестве нагревателя.

КонвейерныйрежимшиныпамятипроцессораPentiumU

Современные процессоры, например Pentium II, работают гораздо быстрее современных динамических ОЗУ. Чтобы процессор не простаивал, необходима макси-

1 98 Глава 3. Цифровой логический уровень

мально возможная производительность памяти. По этой причине шина памяти процессора Pentium II работает в конвейерном режиме, при этом в шине происходит одновременно 8 операций. Понятие конвейера мы рассматривали в главе 2, когда говорили о конвейерных процессорах. Отметим, что память тоже может быть конвейерной.

Обращения процессора к памяти, которые называются транзакциями, имеют

6стадий:

1.Фаза арбитража шины.

2.Фаза запроса.

3.Фаза сообщения об ошибке.

4.Фаза проверки на наличие нужного слова в другом процессоре.

5.Фаза ответа.

6.Фаза передачи данных.

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

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

Всистеме с процессором Pentium II на каждой стадии используются определенные сигналы, отличные от сигналов других стадий, поэтому каждая из них не зависит от остальных. Шесть групп необходимых сигналов показаны в левой части рис. 3.41. Например, один из процессоров может пытаться получить доступ к шине, используя сигналы арбитража. Как только процессор получает право на доступ к шине, он освобождает эти линии шины и занимает линии запроса. Тем временем другой процессор или какое-нибудь устройство ввода-вывода может войти

вфазу арбитража шины и т. д. На рис. 3.42 показано, как осуществляется одновременно несколько транзакций.

Фаза арбитража шины на рис. 3.42 не показана, поскольку она не всегда нужна. Например, если устройство, обладающее в данный момент шиной (часто это центральный процессор), хочет произвести еще одну транзакцию, ему не требуется заново получать доступ к шине. Ему нужно запрашивать шину заново только в том случае, если он уступает ее другому устройству. Транзакции 1 и 2 обычные: пять фаз за пять циклов шины. Во время транзакции 3 вводится более длительная фаза передачи данных (поскольку, например, требуется передать целый блок или нужно ввести режим ожидания). Вследствие этого транзакция 4 не может начать фазу передачи данных сразу после стадии ответа Стадия передачи данных начинается только после того, как исчезнет сигнал DBSY#. Фаза ответа в транзакции 5 также может занимать несколько циклов шины, что задерживает транзакцию 6. Наконец, мы видим, что в транзакции 7 также происходит задержка, поскольку она уже появилась ранее. В действительности же маловероятно, что центральный процессор будет пытаться начать новую транзакцию на каждом цикле шины, поэтому простои не такие уж длительные.

М

А

О

о

о

а

S

а>

о

•о

о

8

•о

о

•v to

я

с

I бгспежиааниё I Ошибка! изменений

L _ n o aflpecaM__J

Транзакция

П

CD

CD

X

Z]

•D

о

CD

О

о

о

TJ

о

(D

2 0 0 Глава 3. Цифровой логический уровень

UltraSPARC II

В качестве второго примера процессора возьмем семейство UltraSPARC (производитель — компания Sun). Семейство UltraSPARC — это серия 64-разрядных процессоров SPARC. Эти процессоры полностью соответствуют архитектуре Version 9 SPARC, которая также подходит для 64-разрядных процессоров. Они используются в рабочих станциях и серверах Sun, а также во многих других системах. Семейство включает в себя процессоры UltraSPARC I, UltraSPARC II и UltraSPARC III, которые имеют сходную архитектуру, но различаются датой выпуска и тактовой частотой. Ниже мы будем говорить о процессоре UltraSPARC II, поскольку нам нужен конкретный пример, но изложенная информация по большей части имеет силу и для других типов UltraSPARC.

UltraSPARC II представляет собой машину типа RISC. Он полностью совместим с 32-разрядным SPARC V8. Единственное, чем UltraSPARC II отличается от SPARC V9, — это наличием команд VIS, которые разработаны для графических приложений, кодировки MPEG в реальном времени и т. п.

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

В отличие от структуры Pentium II SEC, процессор UltraSPARC II представляет собой относительно большую самостоятельную микросхему, содержащую 5,4 млн транзисторов. Микросхема содержит 787 выводов, расположенных снизу, как показано на рис. 3.43. Такое большое число выводов объясняется, с одной стороны, использованием 64 битов для адресов и 128 битов для данных. С другой сторо- ны,этообъясняетсяособенностямиработыкэш-памяти. Крометого, многиевыводы являютсярезервными. Число 787 быловыбранодля того, чтобы промышленность могла производить стандартные модули. Компании, вероятно, считают простое число выводов счастливым.

Процессор UltraSPARC II содержит 2 внутренних блока кэш-памяти: 16 Кбайт для команд и 16 Кбайт для данных. Как и у Pentium II, здесь вне кристалла про- цессорарасположенакэш-память второго уровня, но, вотличие от Pentium II, процессор UltraSPARC II не упакован в один картридж с кэш-памятью второго уровня, поэтому разработчики вправе выбирать любые микросхемы для кэш-памяти второго уровня.

Решение объединить кэш-память второго уровня с процессором или разделить ее с процессором обусловлено выбором между различными техническими преимуществами, а также особенностями компаний Intel и Sun. Внешняя кэш-память более гибкая (кэш-память процессора UltraSPARC II можно расширить с 512 Кбайт до 16 Мбайт; кэш-память процессора Pentium II имеет фиксированный объем 512 Кбайт), но при этом она работает медленнее из-затого, что расположенадальше от процессора. Для обращения к внешней кэш-памяти требуется больше сигналов (у картриджа SEC нет контактов для связи с кэш-памятью, поскольку в данном случае кэш-память встроена прямо в картридж), но среди 787 выводов процессора UltraSPARC II обязательно должны быть выводы для управления кэш-памятью.

 

Примеры центральных процессоров

201

папапаппппаапааапапапапапапапппп

 

паппаппппапапапапапаппппапаппппа

 

пппааппппппапааааапапапйппаппппп

 

пшппппаапапапапппаааппааапппаппа

 

папопапапппапапапапапапаппппппап

 

папппапапааапапаапаааппппапапппп

 

•апапаапааааоапапопаппапаппппппа

 

апаппапапппапаааааапапаааааапапп

 

папапапа

 

 

аппппапа

 

апаапапа

 

 

ппаппапп

 

пааооапа

с

аппппппп

 

аппапапа

ппапВпап

 

аааааааа

а

пппапоаа

 

папапааа

о

ааапапаа

 

пппапааа

о

а

апапаппп

 

папапааа

а

а

ааапапап

 

••папаап

р

а

папаппап

 

папапапо

а

п

апааапаа

 

аааппааа

а

а

паааоадп

 

папапапа

п

а

апапсюйп

 

папапааа

п

а

апааапаа

 

папапапа

 

 

апааааап

 

•aaananai

Индекс вывода1 oaaaaaaa

 

DanananaL_

 

M

ananaaaa

 

ааапаапаппппппппапппапппапппапап

 

папапааппппппапапаппппапапппапаа

 

ааапаппаапапааапаапааппаапапапап

 

паппапапппапппппапапапапапааапап

 

апппппппапаппппппппаапааааапапап

 

папапаапапппппппапапапапаааааааа

 

аапапппаппппапапапааааааапапаапа

аапапапппппппапапапапааааааааап

Рис. 3.43. Микросхема процессора UltraSPARC II

Что касается производственных особенностей, компания Intel является поставщиком полупроводниковых приборов, поэтому у нее есть возможность разрабатывать и выпускать собственные микросхемы кэш-памяти второго уровня и связывать их с центральным процессором через собственный интерфейс с высокими техническими характеристиками. Компания Sun, напротив, является производителем компьютеров, а не микросхем. Она иногда разрабатывает собственные микросхемы (например, UltraSPARC II), но поручает их производство предприятиям, выпускающим полупроводниковые приборы (например, Texas Instruments и Fujitsu). Иногда компания Sun предпочитает использовать микросхемы, имеющиеся в продаже. Статические ОЗУ для кэш-памяти второго уровня можно приобрести у различных производителей, поэтому у компании Sun не было особой необходимости разрабатывать собственные ОЗУ. А если ОЗУ не разрабатывается специально, то нужно устанавливать кэш-память второго уровня отдельно от центрального процессора.

Большинство рабочих станций Sun содержат синхронную шину на 25 МГц, которая называется Sbus. К этой шине могут подсоединяться устройства ввода-вы- вода. Однако шина Sbus работает слишком медленно и не подходит для памяти, поэтому компания Sun придумала другой механизм для соединения процессоров UltraSPARC II с памятью: UPA (Ultra Port Architecture высокоскоростной пакетный коммутатор). UPAможет воплощаться в видешины, переключателяили сочетания того и другого. В различных рабочих станциях и серверах используются различные реализации UPA. Реализация UPA никак не зависит от процессора, поскольку интерфейс с UPA точно определен и процессор должен поддерживать (и поддерживает) именно этот интерфейс.

На рис. 3.44 мы видим ядро системы UltraSPARC II: центральный процессор, интерфейс UPA и кэш-память второго уровня (2 статических ОЗУ). На рисунке

202 Глава3. Цифровойлогическийуровень

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

 

18 Адрес дескриптора

 

 

Арбитраж шины

5

Дескрипторы

щ

Действительность

 

t Адрес памяти

 

35 ^

 

дескриптора

 

 

кэш-памяти

 

 

 

ч Четность адреса

щ

второго

 

 

 

 

Действительность

 

уровня

25Данныедескриптора

 

 

 

 

 

адреса данных

*

 

 

 

 

 

 

4

Четность

Процессор

 

 

 

 

 

дескриптора

UltraSPARC И

 

 

 

 

 

 

 

_Ожидание

 

 

 

^20

Адрес данных

 

в Ответ

4

UPA-

 

 

Действительность

 

интерфейс

 

 

Кэш-память

 

 

с основной

Данные

 

адресаданных

 

 

 

первого уровня

 

 

памятью

 

 

 

 

кэш-памяти

 

 

 

 

 

 

 

 

 

 

 

 

второго

 

 

 

 

 

 

 

уровня

1 ?8

Данные

 

 

 

 

 

 

Д6

Четность

 

5- Управление

 

 

 

 

 

 

 

 

 

 

 

Буфер памяти

Данные памяти

 

128

 

 

 

UDBII

 

Коде

 

1? ^

 

 

 

 

%

 

исправлением ошибок Рис. 3.44. Основная структура системы UltraSPARC II

Хотя мы в главе 4 будем подробно обсуждать работу кэш-памяти, все-таки стоит сказать здесь несколько слов об этом. Вся основная память подразделяется на строки кэш-памяти (блоки) по 64 байта. В кэш-памяти первого уровня находятся 256 наиболее часто используемых строк команд и 256 наиболее часто используемых строк данных. В кэш-памяти второго уровня содержатся строки, которые не поместились в кэш-память первого уровня. Кэш-память второго уровня содержит линии данных и команд вперемешку. Они хранятся в статическом ОЗУ, которое на рис. 3.44 обозначено прямоугольником с надписью «Данные кэш-памяти второго уровня». Система должна следить за тем, какие строки находятся в кэш-па- мяти второго уровня. Эта информация хранится во втором статическом ОЗУ, обозначенном на рис. 3.44 «Дескрипторы кэш-памяти второго уровня».

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