Блок кэш-памяти

Блок регистровой памяти

Блок регистровой памяти процессора архитектуры NetBurst содержит следующие группы регистров:

· базовые регистры;

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

· регистры MMX;

· регистры XMM и регистр MXSCR.

Группа базовых регистров содержит следующие регистры:

· 32-разрядные регистры общего назначения (8 регистров), используемые как операнды в логических и арифметических операциях, а также для хранения адресов;

· 16-разрядные сегментные регистры для хранения адресов областей (сегментов) памяти, используемых в программе (6 регистров);

· 32-разрядный регистр флажков, содержащий флажки состояния, флажок управления и системные флажки;

· регистр адреса команды, содержащий адрес следующей выполняемой команды;

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

Группа регистров для операций с плавающей точкой – регистры FP (Float Point – плавающая точка) содержит восемь 80-разрядных регистров для хранения данных с плавающей точкой и следующие 16-разрядные регистры:

· 16-разрядный регистр состояния, содержащий флаги текущего состояния блока операций с плавающей точкой;

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

· 16-разрядный регистр метки слова указывает на тип содержимого каждого из восьми регистров данных (находится ли там правильное число, нуль или нечисловое значение);

· 48-разрядный регистр, содержащий адрес последней выполненной команды;

· регистр, содержащий адрес памяти данного (операнда) в последней выполненной команде;

· 11-разрядный регистр, содержащий код последней выполненной операции.

Восемь 64-разрядных регистров MMX предназначены для хранения данных, используемых в командах SIMD, а восемь 128-разрядных регистров XMM используются для хранения данных в расширениях SSE, SSE2 и SSE3 режима MMX. Регистр управления и состояния для расширенного MMX – MXCSR (Multimedia eXtended Control and Status Register) содержит управляющую информацию и информацию о состоянии для SSE, SSE2 и SSE3.

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

Кэш-память состоит из трех основных компонент:

· контроллера кэш-памяти, управляющего взаимодействием кэш-памяти, системной шины и процессора;

· кэш-памяти данных (DataRAM);

· кэш-памяти адресов (TagRAM).

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

Однако с увеличением тактовой частоты работы процессора скорость обмена данными между процессором и внешней кэш-памятью стала тормозить производительность системы. Чтобы устранить этот недостаток была разработана отдельная шина для внешней кэш-памяти, названная двойной независимой шиной – DIB (Dual Independent Bus), которая работала с большей тактовой частотой, чем системная шина.

Кэш-память первого уровня (L1) называется также внутренней кэш-памятью. Это самая быстродействующая, но и самая маленькая по объему, кэш-память. Эта память разделена на два блока: кэш-память данных и кэш-память команд.

Кэш-память команд L1, называемая в последних моделях Pentium IV кэш-памятью трассировки выполнения – ETC (Execution Trace Cache), содержит микрокоманды декодированных узлом загрузки/дешифровки команд в блоке обработки команд.

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

Если данные не найдены в кэш-памяти L1, то выполняется обращение к менее быстродействующей, но большей по объему кэш-памяти второго уровня (L2). Первоначально эта кэш-память располагалась на материнской плате, поэтому иногда ее называют также внешней кэш-памятью. Кэш-память L2 выполнена в виде одного блока. Кэш память передает 32 байта в течение одного такта процессора и для процессора с тактовой частотой 3,4 ГГц скорость обмена достигает 108,8 Гбайт/с.

В свою очередь, если данные не найдены в кэш-памяти L2, то с помощью системной шины выполняется обращение к оперативной памяти.

В некоторых моделях процессоров Pentium IV и Xeon в блок кэш-памяти между кэш-памятью L2 и системной шиной добавлена кэш-память третьего уровня (L3). Кэш-память L3 также выполнена в виде одного блока.

Блок сопряжения с системной шиной обеспечивает обмен данными, адресами и командами между процессором и системной шиной. Поскольку он обменивается данными с системной шиной по 4 байта за один такт, скорость передачи по шине с тактовой 100 МГц увеличивается в 4 раза и составляет 3,2 Гбайта/с.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: