Transcript
Page 1: Лекция №4 Организация ЭВМ и систем (продолжение)

Организация ЭВМ и систем

Тема: Сопроцессоры

• Взаимодействие ПЭВМ и сопроцессора• Особенности программирования ПЭВМ с сопроцессором• Форматы данных, система команд

Page 2: Лекция №4 Организация ЭВМ и систем (продолжение)

СопроцессорСопроцессор

СопроцессорСопроцессор – это специализированная – это специализированная интегральная схема, которая работает в содружестве с интегральная схема, которая работает в содружестве с ЦП, но менее универсальна.ЦП, но менее универсальна.

Принципиальное отличие процессора от Принципиальное отличие процессора от сопроцессора – сопроцессора – только у ЦП есть счетчик командтолько у ЦП есть счетчик команд..

Способы обмена информацией между ЦП и Способы обмена информацией между ЦП и сопроцессоромсопроцессором::

1.1.Через прямое соединение входных и выходных Через прямое соединение входных и выходных портов.портов.

2.2.С обменом через память.С обменом через память.

Page 3: Лекция №4 Организация ЭВМ и систем (продолжение)

Математический сопроцессорМатематический сопроцессор

Предназначен для:Предназначен для:

1.1.Быстрого выполнения арифметических Быстрого выполнения арифметических операций с плавающей точкой.операций с плавающей точкой.

2.2.Содержит набор констант: 0, 1, logСодержит набор констант: 0, 1, log221010, log, log22e, e, loglogee22,... .,... .

3.3.Может выполнять трансцендентные Может выполнять трансцендентные операции: операции: tg, arctg, 2tg, arctg, 2x-1x-1, ylog, ylog22x, ...x, .....

Стандарт Стандарт IEEEIEEE-754 определяет -754 определяет три основных три основных способа кодирования (типа) вещественных чисел.способа кодирования (типа) вещественных чисел.

Page 4: Лекция №4 Организация ЭВМ и систем (продолжение)

Машинное представление числа Машинное представление числа с плавающей запятой состоит из: с плавающей запятой состоит из:- знака,- знака,- - строки значащих цифр, называемойстроки значащих цифр, называемой мантиссой,мантиссой,- - и показателя степени (фиксированного и показателя степени (фиксированного

основания),основания), называемогоназываемого порядком. порядком.

Page 5: Лекция №4 Организация ЭВМ и систем (продолжение)

Форматы чисел Форматы чисел с плавающей точкойс плавающей точкой

1.1. Одинарная точность – 4 байта - 1,18·10Одинарная точность – 4 байта - 1,18·10-38-38... 3,40·10... 3,40·103838

2.2. Двойная точность – 8 байт -Двойная точность – 8 байт - 22,,23·1023·10-308-308... 1... 1,,79·1079·10308308

3.3. Тройная (расширенная) точность – 10 байт - 3Тройная (расширенная) точность – 10 байт - 3,,37·1037·10--

49324932... 1... 1,,18·1018·1043924392

S Порядок Мантисса

1 бит1 бит 8 бит8 бит 23 бита23 бита

S Порядок Мантисса

1 бит1 бит 11 бит11 бит 52 бита52 бита

S Порядок Мантисса

1 бит1 бит 15 бит15 бит 64 бит64 бит

Page 6: Лекция №4 Организация ЭВМ и систем (продолжение)

Способы кодирования Способы кодирования вещественных чиселвещественных чисел

Вещественное число вычисляется как:Вещественное число вычисляется как: (-1)(-1)SS·2·2EE·M,·M,

где S – знаковый бит числа, E – экспонента (порядок), где S – знаковый бит числа, E – экспонента (порядок), M – мантисса. M – мантисса.

Если 1≤M<2, то такое число называется Если 1≤M<2, то такое число называется нормализованным.нормализованным. При хранении нормализованных При хранении нормализованных чисел сопроцессор отбрасывает целую часть мантиссы чисел сопроцессор отбрасывает целую часть мантиссы (она всегда 1), сохраняя лишь дробную часть. Экспонента (она всегда 1), сохраняя лишь дробную часть. Экспонента кодируется со сдвигом на половину разрядной сетки, кодируется со сдвигом на половину разрядной сетки, таким образом, удается избежать вопроса о кодировании таким образом, удается избежать вопроса о кодировании знака экспоненты. Т. е. при 8-битной разрядности знака экспоненты. Т. е. при 8-битной разрядности экспоненты код 0 соответствует числу -127, 1 числу -экспоненты код 0 соответствует числу -127, 1 числу -126, ..., 255 числу +126 (экспонента вычисляется как код 126, ..., 255 числу +126 (экспонента вычисляется как код 127). 127).

(-1)(-1)SS·(1.·(1.ff11ff22….f….f2323))х2х2(E-127)(E-127),,

Page 7: Лекция №4 Организация ЭВМ и систем (продолжение)

В общем случае все множество двоичных В общем случае все множество двоичных комбинаций делится на следующие классы:комбинаций делится на следующие классы:

нормализованные вещественные числа со знаком;нормализованные вещественные числа со знаком; денормализованные вещественные числа со денормализованные вещественные числа со

знаком;знаком; ноль со знаком;ноль со знаком; бесконечность со знаком;бесконечность со знаком; нечисла (нечисла (NaNNaN – – not a numbernot a number) – сигнализирующие и ) – сигнализирующие и

тихие.тихие.

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

Page 8: Лекция №4 Организация ЭВМ и систем (продолжение)

Структура сопроцессора 8087Структура сопроцессора 8087

Регистр управления

Регистр состояния

015

Управление интерфейсом

Команда

Очередькоманд

Указатель команды

Указатель данных

031

Блок управления

АD15-0

А19-16

S2-0

АЛУ дляпорядкачисла

Тег

01

Сдвигатель

АЛУ для мантиссы

Регистровый стек

79 0

R0R1

R7

Операционный блок

Page 9: Лекция №4 Организация ЭВМ и систем (продолжение)

Структура сопроцессора 8087Структура сопроцессора 8087

В 1980 году сопроцессор 8087 был реализован как В 1980 году сопроцессор 8087 был реализован как отдельный элемент по стандарту института отдельный элемент по стандарту института электрических и электронных разработок электрических и электронных разработок IEEEIEEE.. Регистр управленияРегистр управления – содержит биты масок – содержит биты масок особых случаев (маска переполнения, деления на 0).особых случаев (маска переполнения, деления на 0).

PC – PC – поле управления точностью (8,9 биты)поле управления точностью (8,9 биты)11- округление до расширенной точности (по 11- округление до расширенной точности (по

умолчанию);умолчанию);10 – округление до двойной точности;10 – округление до двойной точности;00 – округление до одинарной точности.00 – округление до одинарной точности.RC –RC – поле управления округлением (10,11 биты) поле управления округлением (10,11 биты)00 – округление к ближайшему (по умолчанию).00 – округление к ближайшему (по умолчанию).01 – округление к 01 – округление к +∞+∞ . .10 – округление к -10 – округление к -∞∞..11 – округление к 0. 11 – округление к 0.

Page 10: Лекция №4 Организация ЭВМ и систем (продолжение)

Регистр состоянияРегистр состояния – флаги особых случаев. – флаги особых случаев. ST (11-13 ST (11-13 битыбиты)) – задается вершина стека. – задается вершина стека. B (15 B (15 битбит)) – бит занятости: – бит занятости:

1 – сопроцессор выполняет определенную команду;1 – сопроцессор выполняет определенную команду;

0 – сопроцессор свободен.0 – сопроцессор свободен.

Указатель командУказатель команд ( (данныхданных)) – содержат адреса – содержат адреса последней команды и ее операнда.последней команды и ее операнда.

ТегТег (регистр признаков) (регистр признаков) – характеризует – характеризует содержимое соответствующих целочисленных содержимое соответствующих целочисленных регистров.регистров.

00 – в регистре находится действительное число;00 – в регистре находится действительное число;

01 – нулевое число в регистре;01 – нулевое число в регистре;

10 – недействительное число;10 – недействительное число;

11 – пустой регистр.11 – пустой регистр.

Page 11: Лекция №4 Организация ЭВМ и систем (продолжение)

Сопроцессор 8087Сопроцессор 8087

Схема сопроцессора 8087 делится на 2 устройства:Схема сопроцессора 8087 делится на 2 устройства:устройство шинного интерфейса;устройство шинного интерфейса;устройство с плавающей точкой.устройство с плавающей точкой.

Сопроцессор 80287 был создан в 1985 году, Сопроцессор 80287 был создан в 1985 году, изменения произошли только в устройстве шинного изменения произошли только в устройстве шинного интерфейса. интерфейса. В отличии от 8087 сопроцессор 80287 не В отличии от 8087 сопроцессор 80287 не имеет доступа к ШАимеет доступа к ША, поэтому все обращения к памяти , поэтому все обращения к памяти выполняет ЦП.выполняет ЦП.

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

Page 12: Лекция №4 Организация ЭВМ и систем (продолжение)

В целом базовая программная модель всех В целом базовая программная модель всех перечисленных сопроцессоров и блока перечисленных сопроцессоров и блока FPU FPU у у IAIA-32 -32 сходная: регистровый стек (восемь 80-битных регистров сходная: регистровый стек (восемь 80-битных регистров RR0-0-RR7), слово тегов, регистр управления, регистр 7), слово тегов, регистр управления, регистр состояния, указатель команды и указатель данных.состояния, указатель команды и указатель данных. Для хранения данных в сопроцессоре предназначены Для хранения данных в сопроцессоре предназначены регистры регистры RR0-0-RR77. Эти регистры организованы в стек, и . Эти регистры организованы в стек, и доступ к ним производится относительно вершины стека доступ к ним производится относительно вершины стека – – STST. Номер регистра, соответствующего вершине стека, . Номер регистра, соответствующего вершине стека, хранится в регистре состояния (поле хранится в регистре состояния (поле TOSTOS). ). Сопроцессор использует теги, чтобы определить Сопроцессор использует теги, чтобы определить переполнение или опустошение стека. переполнение или опустошение стека. Указатель командУказатель команд и и указатель данных указатель данных содержат содержат логические адреса (селектор сегмента и смещение) логические адреса (селектор сегмента и смещение) последней команды и ее операнда. Эта информация последней команды и ее операнда. Эта информация используется обработчиком особых случаев используется обработчиком особых случаев сопроцессора.сопроцессора.

Page 13: Лекция №4 Организация ЭВМ и систем (продолжение)

Набор регистров блока Набор регистров блока FPU FPU PentiumPentium

R7

R0

06364777879

01015

047

Знак Порядок Мантисса

Тег

Регистр управления

Регистр состояния

Слово тегов

Указатель команды

Указатель данных

Page 14: Лекция №4 Организация ЭВМ и систем (продолжение)

Система командСистема команд

Для команд сопроцессора выделена группа кодов, Для команд сопроцессора выделена группа кодов, начинающаяся с начинающаяся с 1101111011ххх. В ассемблерах мнемоники ххх. В ассемблерах мнемоники команд сопроцессора начинаются с “команд сопроцессора начинаются с “FF”: ”: FADDFADD (сложение), (сложение), FCOMFCOM (сравнение), (сравнение), FCOSFCOS (косинус), (косинус), FDIVFDIV

(деление) и т. п.(деление) и т. п. Параллельная работа ЦП и сопроцессора Параллельная работа ЦП и сопроцессора

ставитставит перед программистом перед программистом проблемы проблемы

синхронизациисинхронизации..

Page 15: Лекция №4 Организация ЭВМ и систем (продолжение)

Особенности программирования ЦП с Особенности программирования ЦП с сопроцессоромсопроцессором

FIST IFIST I; (запомнить в память ; (запомнить в память II))MOV AX, IMOV AX, IЦП 80286 начнет выполнять команду ЦП 80286 начнет выполнять команду MOVMOV раньше, чем раньше, чем

80287 закончит 80287 закончит FISTFIST, и в регистр , и в регистр AX AX будет передано будет передано неверное значение.неверное значение.

FIST IFIST IFADD ST(3)FADD ST(3)MOV AX, IMOV AX, IЦП ЦП 8028680286, встретив , встретив FADDFADD, должен ожидать завершение , должен ожидать завершение

FISTFIST..Задача синхронизации процессоровЗадача синхронизации процессоров возникает, когда возникает, когда

287 обращается к ячейкам памяти, к которым впоследствии 287 обращается к ячейкам памяти, к которым впоследствии обращается и 80286. Во всех случаях она решается обращается и 80286. Во всех случаях она решается вставкой вставкой FWAIT FWAIT между подозрительными командами 287 и между подозрительными командами 287 и 286.286.

Page 16: Лекция №4 Организация ЭВМ и систем (продолжение)

Сопроцессорный интерфейс Сопроцессорный интерфейс ЦПЦП Motorola MC 68020 Motorola MC 68020

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

Page 17: Лекция №4 Организация ЭВМ и систем (продолжение)

Для ускоренияДля ускорения взаимодействия с сопроцессором в взаимодействия с сопроцессором в MC68020MC68020 поддерживается специальный поддерживается специальный сопроцессорный интерфейс.сопроцессорный интерфейс.

ЦП

MC 68020

Сопроцессор

ИнтерфейсCIR

Дешифратор

А19-А13

FC2-FC0

CS

A4 – A0

AS

R/W

DS

DSACK1

DSACK0

D0 – D31

Page 18: Лекция №4 Организация ЭВМ и систем (продолжение)

AA1919 -- AA1313 – – определяют операцию и тип сопроцессора.определяют операцию и тип сопроцессора.FC2FC2 -- FC0 – FC0 – передается функциональный код передается функциональный код

(статус) сопроцессора.(статус) сопроцессора.АА4 4 - А- А00 – передается номер регистра интерфейса – передается номер регистра интерфейса

CIR.CIR.ASAS – строб адреса. Показывает достоверность – строб адреса. Показывает достоверность

адреса на ША.адреса на ША.DS – DS – строб данных.строб данных.R/W – R/W – определяет направление пересылки.определяет направление пересылки.DSACK1,DSACK1, DSACK2 -DSACK2 - подтверждают пересылку и подтверждают пересылку и

размер операнда. Служат для определения пересылки и размер операнда. Служат для определения пересылки и динамического определения ширины ШД.динамического определения ширины ШД.

Page 19: Лекция №4 Организация ЭВМ и систем (продолжение)

Регистры интерфейса Регистры интерфейса CIRCIR

1.1. Регистр ответа.Регистр ответа.2.2. Регистр управления.Регистр управления.3.3. Регистр сохранения.Регистр сохранения.4.4. Регистр восстановления.Регистр восстановления.5.5. Регистр слово операции.Регистр слово операции.6.6. Регистр команды.Регистр команды.7.7. Регистр условия.Регистр условия.8.8. Регистр выбора.Регистр выбора.9.9. Регистр операнда.Регистр операнда.10.10. Регистр адреса операнда.Регистр адреса операнда.11.11. Регистр адреса инструкции.Регистр адреса инструкции.

16-разрядные

32 - разрядные

Page 20: Лекция №4 Организация ЭВМ и систем (продолжение)

Применение сопроцессоровПрименение сопроцессоров

1.1.Обработка экономической информации.Обработка экономической информации.2.2.Моделирование.Моделирование.3.3.Графические преобразования.Графические преобразования.4.4.Промышленное управление.Промышленное управление.5.5.Системы числового управления.Системы числового управления.6.6.Роботы.Роботы.7.7.Навигация.Навигация.8.8.Сбор данных.Сбор данных.

Page 21: Лекция №4 Организация ЭВМ и систем (продолжение)

Вопросы для самоконтроляВопросы для самоконтроля

1.1. Что такое сопроцессор?Что такое сопроцессор?

2.2. Основные способы обмена информацией между Основные способы обмена информацией между процессором и сопроцессором.процессором и сопроцессором.

3.3. Функции математического сопроцессора.Функции математического сопроцессора.

4.4. Форматы чисел с плавающей точкой.Форматы чисел с плавающей точкой.

5.5. Основное отличие структуры сопроцессора 8086 от Основное отличие структуры сопроцессора 8086 от 80286? С чем это связано?80286? С чем это связано?

6.6. Особенности обращения к регистрам сопроцессора Особенности обращения к регистрам сопроцессора 8086 по сравнению с регистрами блока с плавающей 8086 по сравнению с регистрами блока с плавающей точкойточкой ЦП ЦП PentiumPentium??

Page 22: Лекция №4 Организация ЭВМ и систем (продолжение)

ЗадачиЗадачи

1.1.Переведите вещественное число Переведите вещественное число

0 01111011 100110000000000000000000 01111011 10011000000000000000000

из формата из формата IEEEIEEE-754 -754 single precision single precision в десятичный в десятичный вид (с точностью до 3 десятичных знаков). вид (с точностью до 3 десятичных знаков).

Вещественное число вычисляется как:Вещественное число вычисляется как:

(-1)(-1)SS·(1.·(1.ff11ff22….f….f2323))х2х2(E-127)(E-127),,где S – знаковый бит числа, E – экспонента (порядок), M – где S – знаковый бит числа, E – экспонента (порядок), M –

мантисса. мантисса.

1.1.Одинарная точность – 4 байта - 1,18·10Одинарная точность – 4 байта - 1,18·10-38-38... 3,40·10... 3,40·103838

S Порядок Мантисса

1 бит1 бит 8 бит8 бит 23 бита23 бита

Page 23: Лекция №4 Организация ЭВМ и систем (продолжение)

2. В приведенной ниже 2. В приведенной ниже таблице показано содержимое таблице показано содержимое (десятичные значения) (десятичные значения) регистрового стека регистрового стека сопроцессора 8087. Определите сопроцессора 8087. Определите результат выполнения результат выполнения указанных инструкций, если указанных инструкций, если TOSTOS=010=01022..

FADD STFADD ST,,STST(1) (1)

FADD STFADD ST(1),(1),STST(2) (2)

FSUB STFSUB ST(0),(0),STST(2).(2).

R7 3,14R7 3,14

R6 -∞R6 -∞

R5 NaNR5 NaN

R4 0,1R4 0,1

R3 2,3R3 2,3

R2 3,45R2 3,45

R1 0R1 0

R0 NaNR0 NaN

Page 24: Лекция №4 Организация ЭВМ и систем (продолжение)

3. Среди перечисленных фрагментов программ 3. Среди перечисленных фрагментов программ выберите те, в которых не возникает проблем выберите те, в которых не возникает проблем синхронизации работы ЦП и сопроцессора.синхронизации работы ЦП и сопроцессора.

Ответ 1.Ответ 1.FIST mem16; mem16:=integer (ST)FIST mem16; mem16:=integer (ST)MOV AX, mem16MOV AX, mem16; ; AX:=mem16AX:=mem16INC mem16; mem16:=mem16+1INC mem16; mem16:=mem16+1 ОтветОтвет 2. 2.FIST mem16; mem16:=integer(ST)FIST mem16; mem16:=integer(ST)FWAIT; FWAIT; ожиданиеожиданиеMOV AX, mem16; AX:=mem16MOV AX, mem16; AX:=mem16Ответ 3.Ответ 3.FIST mem16; mem16:=integer(ST)FIST mem16; mem16:=integer(ST)FIMUL mem16; ST:=ST*mem16FIMUL mem16; ST:=ST*mem16INC mem16; mem16:=mem16+1INC mem16; mem16:=mem16+1

Page 25: Лекция №4 Организация ЭВМ и систем (продолжение)

Ответ 1. 9,96·10Ответ 1. 9,96·10-2-2 Ответ 2. 5,75Ответ 2. 5,75; ; 2,42,4; ; 3,353,35.. Ответ 3. ФрагментОтвет 3. Фрагмент 2. 2.

Page 26: Лекция №4 Организация ЭВМ и систем (продолжение)

Организация ЭВМ и систем

Тема: Системы памяти ЭВМ

• Основные характеристики системы памяти

• Распределение адресного пространства• Кэш-память• Типы кэш-памяти• Особенности обновления информации в кэш-памяти

Page 27: Лекция №4 Организация ЭВМ и систем (продолжение)

Организация интерфейса памятиОрганизация интерфейса памяти

Появления 32-разрядного МП определило Появления 32-разрядного МП определило использование 3 новых концепций организации использование 3 новых концепций организации интерфейса памяти. интерфейса памяти.

1.1.Расширение шины локальной памяти.Расширение шины локальной памяти.

2.2. Расслоение (интерливинг) памяти. Расслоение (интерливинг) памяти.

3.3.Виртуальное управление памятью. Виртуальное управление памятью.

В 32-разрядных МП два вида организации В 32-разрядных МП два вида организации виртуальной памяти:виртуальной памяти: страничная и сегментная. страничная и сегментная.

Page 28: Лекция №4 Организация ЭВМ и систем (продолжение)

Иерархия подсистемы памяти ПКИерархия подсистемы памяти ПК

1.1. Регистровая памятьРегистровая память (сверхоперативное запоминающее (сверхоперативное запоминающее устройство).устройство).

2.2. Буферная памятьБуферная память (кэш-память – для согласования (кэш-память – для согласования скорости работы ЦП и основной памяти).скорости работы ЦП и основной памяти).

• I-I-го уровня – го уровня – L1L1• IIII-го уровня – -го уровня – L2L2

3.3. Основная памятьОсновная память (ОЗУ, ПЗУ). (ОЗУ, ПЗУ).

4.4. МассоваяМассовая (внешняя память). (внешняя память).

Page 29: Лекция №4 Организация ЭВМ и систем (продолжение)

Иерархия подсистемы памяти ПКИерархия подсистемы памяти ПК

Регистры

Кэш L1

Кэш L2

Основнаяпамять

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

ПроцессорУвеличение объема

Увеличениебыстродействия

Увеличениестоимости хранения

одного бита

Page 30: Лекция №4 Организация ЭВМ и систем (продолжение)

Иерархия подсистемы памяти ПКИерархия подсистемы памяти ПК

№№Тип ЗУТип ЗУ

1985 г.1985 г. 2000 г.2000 г.

Время Время выборвыборкики

ТипичТипичный ный объемобъем

Цена / Цена / байтбайт

Время Время выборвыборкики

ТипичТипичный ный объемобъем

Цена / Цена / байтбайт

11 СверхоперативСверхоперативные ЗУ ные ЗУ (регистры)(регистры)

0,2 5 0,2 5 нснс

1616//32 32 битбит

$ $ 3 – 3 – 100100

0,01 1 0,01 1 нснс

32/32/6464// 128128 бит бит

$ 0,1 $ 0,1 1010

22 БыстродействуБыстродействующее ющее буферное ЗУ буферное ЗУ (кэш) (кэш)

20 100 20 100 нснс

8Кб – 8Кб – 64Кб64Кб

~ $ 10~ $ 10 0,5 – 2 0,5 – 2 нснс

3232Кб Кб 1Мб1Мб

$ $ 0,0,11 – – 0,0,55

33 Оперативное Оперативное (основное) ЗУ (основное) ЗУ

~~ 0,5 0,5 мсмс

1Мб – 1Мб – 256Мб256Мб

$ 0,02 $ 0,02 11

2 нс 2 нс 220 0 нснс

128Мб 128Мб – 4Гб– 4Гб

$$ 0, 0,0101 0,0,11

44 Внешние ЗУ Внешние ЗУ (массовая (массовая память)память)

10 – 10 – 100 мс100 мс

1Мб – 1Мб – 1Гб1Гб

$ $ 00,,0002 02 – 0,04– 0,04

5 – 5 – 220 0 мсмс

1Гб – 1Гб – 0,5Тб0,5Тб

$ $ 0,001 0,001 – 0,01– 0,01

Page 31: Лекция №4 Организация ЭВМ и систем (продолжение)

Кэш-памятьКэш-память

Кэш-памятьКэш-память представляет собой представляет собой

быстродействующее ЗУбыстродействующее ЗУ, размещенное на одном , размещенное на одном

кристалле с ЦП или внешнее по отношению к ЦП, кристалле с ЦП или внешнее по отношению к ЦП, служит служит

высокоскоростным буфером между ЦП и высокоскоростным буфером между ЦП и

относительно медленной основной памятью.относительно медленной основной памятью.

В основу положен В основу положен принцип временнойпринцип временной и и

пространственной локальности программыпространственной локальности программы. .

Кэш-память представляет собой 2 сверхоперативные Кэш-память представляет собой 2 сверхоперативные

памяти:памяти:память отображения данных.память отображения данных.память тегов.память тегов.

Page 32: Лекция №4 Организация ЭВМ и систем (продолжение)

Для согласования содержимого кэш-памяти и ОП Для согласования содержимого кэш-памяти и ОП используют 3 метода записи:используют 3 метода записи:

1.1.СквознаяСквозная – одновременно с кэш-памятью – одновременно с кэш-памятью обновляется ОП.обновляется ОП.

2.2.Буферизованная сквозная записьБуферизованная сквозная запись – информация – информация задерживается в кэш-буфере перед записью в ОП и задерживается в кэш-буфере перед записью в ОП и переписывается в ОП в те циклы, когда ЦП к ней не переписывается в ОП в те циклы, когда ЦП к ней не обращается.обращается.

3.3.Обратная записьОбратная запись – используется бит изменения в – используется бит изменения в поле тега, и строка переписывается в ОП только в том поле тега, и строка переписывается в ОП только в том случае, если бит изменения равен 1.случае, если бит изменения равен 1.

Page 33: Лекция №4 Организация ЭВМ и систем (продолжение)

Типы кэш-памятиТипы кэш-памяти

1.1.Кэш прямого отображенияКэш прямого отображения: адрес памяти : адрес памяти однозначно определяет строку кэша, в которую будет однозначно определяет строку кэша, в которую будет помещен блок информации.помещен блок информации.

0010 001 100

Тег Строка Смещение

1 4

00

11 22

22

33

44

55

66

77

ТегТег 00 11 22 33 44 55 66 77

2

К ЦП

Данные

Page 34: Лекция №4 Организация ЭВМ и систем (продолжение)

0010001 100

Тег Смещение

4

00 7979

11 6363

22

33 1717

44

55 4545

66

77

ТегТег 00 11 22 33 44 55 66 77

К ЦП

Данные

2.2. Полностью ассоциативный кэшПолностью ассоциативный кэш – любой блок ОЗУ – любой блок ОЗУ может быть отображен на любую строку кэш-памяти, может быть отображен на любую строку кэш-памяти, в буфер должен быть записан полный адрес каждого в буфер должен быть записан полный адрес каждого блока и непосредственно сам блок.блока и непосредственно сам блок.

17

Page 35: Лекция №4 Организация ЭВМ и систем (продолжение)

00100 01 100

Тег Набор Смещение

1

00

11

22 1919

33 44

44

55

66

77

ТегТег 00 11 22 33 44 55 66 77

К ЦП

Данные

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

4 4

0

1

2

3

Page 36: Лекция №4 Организация ЭВМ и систем (продолжение)

Типы кэш-памятиТипы кэш-памяти

Кэш Гарвардской архитектурыКэш Гарвардской архитектуры – раздельные кэш- – раздельные кэш-команд и кэш-данных.команд и кэш-данных.

Кэш Принстонской архитектурыКэш Принстонской архитектуры (Джона фон (Джона фон

Неймана) – смешанные кэш-команд и кэш-данных.Неймана) – смешанные кэш-команд и кэш-данных.

Page 37: Лекция №4 Организация ЭВМ и систем (продолжение)

Характеристики подсистемы Характеристики подсистемы кэш-памяти у ЦП кэш-памяти у ЦП IAIA-32-32

Intel486Intel486 PentiumPentium PentiumPentium  MMXMMX

P6P6 PentiumPentium  44

L1 L1 кэш командкэш команд ТипТип 4-вх. 4-вх.

ассоциат.ассоциат.22-вх. -вх.

ассоциат.ассоциат.4-вх. 4-вх.

ассоциат.ассоциат.4-вх. 4-вх.

ассоциат.ассоциат.8-вх. 8-вх.

ассоциат.ассоциат.Размер Размер строки, байтстроки, байт 1616 3232 3232 3232 --Общий Общий объем, Кбайтобъем, Кбайт 8/168/16 88 1616 8/168/16 12К12КmopsmopsLL1 кэш данных1 кэш данных ТипТип

Общий с Общий с кэш кэш

инструкций инструкций

2-вх. 2-вх. ассоциат.ассоциат.

4-вх. 4-вх. ассоциат.ассоциат.

22//4-вх. 4-вх. ассоциат.ассоциат.

4-вх. 4-вх. ассоциат.ассоциат.

Размер Размер строки, байтстроки, байт 3232 3232 3232 6464Общий Общий объем, Кбайтобъем, Кбайт 88 1616 88//1616 88L2 L2 кэшкэш ТипТип

Внешний Внешний

внешний 4-вх. внешний 4-вх. ассоциат. ассоциат.

4-вх. 4-вх. ассоциат.ассоциат.

8-вх. 8-вх. ассоциат.ассоциат.

Размер Размер строки, байтстроки, байт 3232 3232 6464Общий Общий объем, Кбайтобъем, Кбайт 256/512 256/512 128-2048 128-2048 256/512 256/512

Page 38: Лекция №4 Организация ЭВМ и систем (продолжение)

Кэш-память и внешние соединенияКэш-память и внешние соединенияпроцессора процессора Pentium IIIPentium III

Процессор

Кэшкоманд L1

Кэшданных L1

Блок шинного интерфейса

Кэш L2Основная

памятьВвод-вывод

Шина кэшаСистемная шина

Page 39: Лекция №4 Организация ЭВМ и систем (продолжение)

Устройство кэшей 1-го и 2-го уровняУстройство кэшей 1-го и 2-го уровня

Большинство современных процессоров имеют Большинство современных процессоров имеют отдельные кэши 1-го уровня (L1-кэши) для инструкций отдельные кэши 1-го уровня (L1-кэши) для инструкций и данныхи данных, и , и общий кэш 2-го уровня (L2-кэш) общий кэш 2-го уровня (L2-кэш) увеличенного размераувеличенного размера. .

Кэши инструкций различаются по своей организации: Кэши инструкций различаются по своей организации: в процессорах Intel P-III, P-M, P-M2, P8 и IBM PPC970 в процессорах Intel P-III, P-M, P-M2, P8 и IBM PPC970

в них в них хранятся исходные машинные инструкциихранятся исходные машинные инструкции в в неизменённом виде. неизменённом виде.

В процессорах AMD K8 — В процессорах AMD K8 — исходные инструкции исходные инструкции вместе с информацией об их разметкевместе с информацией об их разметке (предекодировании), (предекодировании),

а в процессоре Intel P-4 — а в процессоре Intel P-4 — полностью полностью декодированные микрооперации (МОПы),декодированные микрооперации (МОПы),

организованные в виде трасс.организованные в виде трасс.

Page 40: Лекция №4 Организация ЭВМ и систем (продолжение)

Механизмы вытеснения блоков из Механизмы вытеснения блоков из кэшейкэшей

Основным отличительным признаком является момент Основным отличительным признаком является момент

времени, когда в кэш следующего уровня переписывается времени, когда в кэш следующего уровня переписывается

вытесняемый модифицированный блок данных — то есть вытесняемый модифицированный блок данных — то есть

такой блок, в который с момента загрузки его в кэш такой блок, в который с момента загрузки его в кэш

произошла запись (и содержимое которого изменилось). произошла запись (и содержимое которого изменилось).

Запись модифицированных данных в кэш более Запись модифицированных данных в кэш более

высокого уровня (L2-кэш) может происходить либо высокого уровня (L2-кэш) может происходить либо

одновременно с их записью в L1-кэш, либо позднее, в одновременно с их записью в L1-кэш, либо позднее, в

момент вытеснения блока из L1-кэша.момент вытеснения блока из L1-кэша.

Page 41: Лекция №4 Организация ЭВМ и систем (продолжение)

На практике встречаются следующие разновидности На практике встречаются следующие разновидности кэшей:кэшей:

Writethrough — со сквозной (немедленной) Writethrough — со сквозной (немедленной) записью модифицированных данных в L2-кэшзаписью модифицированных данных в L2-кэш;;

Writeback — с отложенной записью Writeback — с отложенной записью модифицированных данных из L1-кэша в L2-кэш;модифицированных данных из L1-кэша в L2-кэш;

Exclusive — эксклюзивный, с отложенной записью Exclusive — эксклюзивный, с отложенной записью из L1-кэша в L2-кэш как модифицированных, так и не из L1-кэша в L2-кэш как модифицированных, так и не модифицированных (чистых) данныхмодифицированных (чистых) данных..

В процессорах P-4 и PPC970 используется L1-кэш со В процессорах P-4 и PPC970 используется L1-кэш со сквозной записью, в P-III, P-M, P-M2 и P8 — L1-кэш с сквозной записью, в P-III, P-M, P-M2 и P8 — L1-кэш с отложенной записью, а в K8 — эксклюзивный кэш.отложенной записью, а в K8 — эксклюзивный кэш.

Page 42: Лекция №4 Организация ЭВМ и систем (продолжение)

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

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

Page 43: Лекция №4 Организация ЭВМ и систем (продолжение)

Термин Термин «эксклюзивный»«эксклюзивный» обычно обычно относят к относят к кэшу 2-го уровня,кэшу 2-го уровня, но на самом но на самом деле деле это совместное свойство обоих это совместное свойство обоих кэшей — L1 и L2.кэшей — L1 и L2. При такой организации При такой организации искусственно поддерживается искусственно поддерживается состояние, когда блок данных хранится состояние, когда блок данных хранится только в одном из кэшей — L1 либо L2.только в одном из кэшей — L1 либо L2.

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

кэша в L1-кэш он снова удаляется из L2-кэшакэша в L1-кэш он снова удаляется из L2-кэша..

Page 44: Лекция №4 Организация ЭВМ и систем (продолжение)

«Не-эксклюзивная» организация кэшей L1 и L2 не «Не-эксклюзивная» организация кэшей L1 и L2 не подразумевает их обязательной «инклюзивности» — подразумевает их обязательной «инклюзивности» — блок блок данных или инструкций может быть вытеснен из L2-данных или инструкций может быть вытеснен из L2-кэша и при этом сохраниться в соответствующем L1-кэша и при этом сохраниться в соответствующем L1-кэше.кэше. Таким не-эксклюзивным (но и не инклюзивным) Таким не-эксклюзивным (но и не инклюзивным) способом организованы кэши в процессорах P-III, P-4, P-M, способом организованы кэши в процессорах P-III, P-4, P-M, P-M2 и P8.P-M2 и P8.

В процессоре PPC970 В процессоре PPC970 L1-кэш организован чисто L1-кэш организован чисто инклюзивно по отношении к L2-кэшу.инклюзивно по отношении к L2-кэшу. При вытеснении При вытеснении блока из L2-кэша проверяется, не сохранился ли он в блока из L2-кэша проверяется, не сохранился ли он в L1-кэше — и в этом случае искусственно удаляется L1-кэше — и в этом случае искусственно удаляется оттуда тоже.оттуда тоже. Наряду с использованием механизма Наряду с использованием механизма сквозной записи для вытеснения данных из L1-кэша это сквозной записи для вытеснения данных из L1-кэша это позволяет упростить так называемую проверку позволяет упростить так называемую проверку когерентности кэшей в многопроцессорной (многоядерной) когерентности кэшей в многопроцессорной (многоядерной) системе, когда другой CPU проверяет наличие данных в системе, когда другой CPU проверяет наличие данных в кэшах текущего CPU. кэшах текущего CPU.

Page 45: Лекция №4 Организация ЭВМ и систем (продолжение)

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

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

Page 46: Лекция №4 Организация ЭВМ и систем (продолжение)

Критерий эффективной работы кэшаКритерий эффективной работы кэша

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

TTсрср = (T = (Thithit x R x Rhithit) + (T) + (Tmissmiss x (1 x (1 -- R Rhithit)), )),

где где TThithit – время доступа к кэш-памяти в случае – время доступа к кэш-памяти в случае попадания (включает время на идентификацию промаха попадания (включает время на идентификацию промаха или попадания), или попадания), TTmissmiss – время, необходимое на загрузку – время, необходимое на загрузку блока из основной памяти в строку кэша в случае кэш-блока из основной памяти в строку кэша в случае кэш-промаха и последующую доставку запрошенных данных в промаха и последующую доставку запрошенных данных в процессор, процессор, RRhit hit – частота попаданий.– частота попаданий.

Очевидно, что, чем ближе значение Очевидно, что, чем ближе значение RRhithit к 1, тем ближе к 1, тем ближе значение значение TTср ср к к TThithit. . Частота попаданий определяется в Частота попаданий определяется в основном архитектурой кэш-памяти и объемомосновном архитектурой кэш-памяти и объемом. .

Page 47: Лекция №4 Организация ЭВМ и систем (продолжение)

Размер и эффективность Размер и эффективность кэш-памятикэш-памяти

Размер кэш- Размер кэш- памятипамяти

Попадания, %Попадания, % Выигрыш, %Выигрыш, %

Нет кэш, Нет кэш, DRAM c DRAM c 2 T2 TWW

00 00

16 16 КбКб 8181 3535

32 Кб32 Кб 8686 3838

64 Кб64 Кб 8888 3939

128 Кб128 Кб 8989 3939

Нет кэш, Нет кэш, SRAMSRAM

без без TTWW

100100 4747

Page 48: Лекция №4 Организация ЭВМ и систем (продолжение)

Кэш ЦП МС 68020Кэш ЦП МС 68020

Поле метки Регистр Слово

А31 А8 А7 А2 А1 А0

Кэш-память

24-разрядное поле метки

4-байтовое слово Кэш-строка

Указание кэш-строки

Сра

вни

ваем

ые

пол

я

Бит значимости

Кэш-память с прямым отображением системы МС 68020 Кэш-память с прямым отображением системы МС 68020 ф.ф. Motorola Motorola, со сквозной записью. , со сквозной записью.

Page 49: Лекция №4 Организация ЭВМ и систем (продолжение)

Вопросы повышения эффективности Вопросы повышения эффективности доступа к даннымдоступа к данным

Наиболее важными являются Наиболее важными являются механизмы механизмы предвыборки из памятипредвыборки из памяти. В современных . В современных процессорах реализовано два таких механизма — процессорах реализовано два таких механизма — программная предвыборкапрограммная предвыборка (software prefetch), и (software prefetch), и автоматическая аппаратная предвыборкаавтоматическая аппаратная предвыборка (hardware prefetch).(hardware prefetch).

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

Page 50: Лекция №4 Организация ЭВМ и систем (продолжение)

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

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

Page 51: Лекция №4 Организация ЭВМ и систем (продолжение)

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

Page 52: Лекция №4 Организация ЭВМ и систем (продолжение)

Для самостоятельного изученияДля самостоятельного изучения

Page 53: Лекция №4 Организация ЭВМ и систем (продолжение)

Устройство кэшей 1-го и 2-го уровняУстройство кэшей 1-го и 2-го уровня

Организация кэшей данных 1-го уровня в целом Организация кэшей данных 1-го уровня в целом соответствует организации классического кэша инструкций. соответствует организации классического кэша инструкций. Например, в процессорах P-M, P-M2 и P8 общая структура Например, в процессорах P-M, P-M2 и P8 общая структура кэшей инструкций и данных полностью совпадает: размер кэшей инструкций и данных полностью совпадает: размер составляет 32 Кбайт, уровень ассоциативности — 8, составляет 32 Кбайт, уровень ассоциативности — 8, размер блока — 64 байта. Также совпадает структура размер блока — 64 байта. Также совпадает структура кэшей в процессоре K8: размер — 64 Кбайт, кэшей в процессоре K8: размер — 64 Кбайт,

ассоциативность — 2, блок — 64 байта.ассоциативность — 2, блок — 64 байта. Для всех указанных процессоров Для всех указанных процессоров время доступа к время доступа к

кэшу данных 1-го уровня составляет 3 такта.кэшу данных 1-го уровня составляет 3 такта.В процессоре P-4 кэш данных по своей организации В процессоре P-4 кэш данных по своей организации

несколько отличается от кэшей других процессоров. Он несколько отличается от кэшей других процессоров. Он имеет небольшой размер (8 Кбайт при уровне имеет небольшой размер (8 Кбайт при уровне ассоциативности 4) и очень низкое время доступа — всего ассоциативности 4) и очень низкое время доступа — всего 2 такта.2 такта.

Page 54: Лекция №4 Организация ЭВМ и систем (продолжение)

Столь быстрый доступ к кэшу обеспечивается Столь быстрый доступ к кэшу обеспечивается применением ряда приёмов: применением ряда приёмов:

тесной интеграцией кэша с арифметико-логическим и тесной интеграцией кэша с арифметико-логическим и адресным устройствами, адресным устройствами,

удвоенной частотой работы этих устройств удвоенной частотой работы этих устройств и использованием 16 младших разрядов и использованием 16 младших разрядов

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

Для адресации требуемого набора в кэше Для адресации требуемого набора в кэше используются соответствующие разряды адреса b10-5, а используются соответствующие разряды адреса b10-5, а для «предварительного» нахождения блока в этом наборе для «предварительного» нахождения блока в этом наборе — всего 5 следующих разрядов b15-11 (эти разряды — всего 5 следующих разрядов b15-11 (эти разряды называют мини-тэгом). Окончательная проверка старших называют мини-тэгом). Окончательная проверка старших разрядов адреса (ключа) на соответствие полному тэгу разрядов адреса (ключа) на соответствие полному тэгу вместе с преобразованием программного адреса в вместе с преобразованием программного адреса в

физический производится позднее.физический производится позднее.

Page 55: Лекция №4 Организация ЭВМ и систем (продолжение)

Если при этой проверке выяснится, что данные были Если при этой проверке выяснится, что данные были считаны неправильно, они помечаются как считаны неправильно, они помечаются как недействительные, и производится их считывание из L2-недействительные, и производится их считывание из L2-кэша (как и в случае ненахождения данных в L1-кэше).кэша (как и в случае ненахождения данных в L1-кэше).

Кэши 2-го уровняКэши 2-го уровня в рассматриваемых процессорах в рассматриваемых процессорах имеют примерно одинаковую общую организацию. имеют примерно одинаковую общую организацию. Размер Размер блока L2-кэша в современных процессорах составляет блока L2-кэша в современных процессорах составляет 64 или 128 байт.64 или 128 байт.

Кэш 2-го уровня соединён с L1-кэшами Кэш 2-го уровня соединён с L1-кэшами полночастотной шинойполночастотной шиной, ширина которой может достигать , ширина которой может достигать 32 байта (256 бит), а пропускная способность — 121.6 32 байта (256 бит), а пропускная способность — 121.6 Гбайт/с (для процессора P-4E 3.8 ГГц). В процессоре K8 Гбайт/с (для процессора P-4E 3.8 ГГц). В процессоре K8 шина L2-кэша имеет ширину 16 байтов (128 бит) и шина L2-кэша имеет ширину 16 байтов (128 бит) и пропускную способность 48 Гбайт/с (при частоте пропускную способность 48 Гбайт/с (при частоте процессора 3.0 ГГц).процессора 3.0 ГГц).

Page 56: Лекция №4 Организация ЭВМ и систем (продолжение)

Однако из-за необходимости копировать в L2-кэш Однако из-за необходимости копировать в L2-кэш данные, вытесняемые из L1-кэша (в связи с взаимно данные, вытесняемые из L1-кэша (в связи с взаимно эксклюзивной организацией кэшей в этом процессоре), эксклюзивной организацией кэшей в этом процессоре), эффективный темп считывания из L2-кэша снижается эффективный темп считывания из L2-кэша снижается вдвое. В двухъядерных процессорах P-M2 (Core Duo) и P8 вдвое. В двухъядерных процессорах P-M2 (Core Duo) и P8 (Core) используется L2-кэш, общий для обоих ядер.(Core) используется L2-кэш, общий для обоих ядер.

Размеры L2-кэшей очень сильно варьируются в Размеры L2-кэшей очень сильно варьируются в пределах каждого семейства процессоровпределах каждого семейства процессоров. Приведём . Приведём максимальные размеры и значения уровней максимальные размеры и значения уровней ассоциативности для различных семейств: P-III — 512K (8), ассоциативности для различных семейств: P-III — 512K (8), P-M — 2M (8), P-4 — 512K (8), P8 — 4M (16), K8 — 1M (16). P-M — 2M (8), P-4 — 512K (8), P8 — 4M (16), K8 — 1M (16).

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

Page 57: Лекция №4 Организация ЭВМ и систем (продолжение)

Можно дать следующие Можно дать следующие примерные оценки полного примерные оценки полного времени доступа к данным в L2-кэше в тактахвремени доступа к данным в L2-кэше в тактах (по (по результатам тестирования на сайте iXBT.com): результатам тестирования на сайте iXBT.com): P-III - 8P-III - 8, P-, P-M — 10, M — 10, P-4 — 19 (9),P-4 — 19 (9), P-4E — 29 (22), P-M2 — 14, P8 — 14, P-4E — 29 (22), P-M2 — 14, P8 — 14, K8 — 17 (12). K8 — 17 (12).

Для процессоров P-4, P-4E и K8 в скобках показаны Для процессоров P-4, P-4E и K8 в скобках показаны «минимальные» значения времени доступа, полученные с «минимальные» значения времени доступа, полученные с помощью специальных приёмов тестирования, когда помощью специальных приёмов тестирования, когда производилась «разгрузка» шины L2-кэша. Отметим, что в производилась «разгрузка» шины L2-кэша. Отметим, что в процессорах P-4 и P-4E длина такта меньше, чем в других процессорах P-4 и P-4E длина такта меньше, чем в других процессорах, и время доступа к их кэшам (без «разгрузки» процессорах, и время доступа к их кэшам (без «разгрузки» шины), выраженное в «нормализованных» тактах с учётом шины), выраженное в «нормализованных» тактах с учётом соотношения 1:1.4, составит соответственно 14 и 21 такт.соотношения 1:1.4, составит соответственно 14 и 21 такт.

Page 58: Лекция №4 Организация ЭВМ и систем (продолжение)

Кэш трасс в процессоре Pentium 4Кэш трасс в процессоре Pentium 4

Кэш инструкций в процессоре P-4Кэш инструкций в процессоре P-4 очень сильно очень сильно отличается от I-кэша в процессоре классической отличается от I-кэша в процессоре классической архитектуры. В нём архитектуры. В нём преобразование исходных x86-преобразование исходных x86-инструкций в микрооперации (МОПы) производится инструкций в микрооперации (МОПы) производится перед кэшемперед кэшем, а в кэш помещаются целые трассы, , а в кэш помещаются целые трассы, составленные из этих МОПов. Поэтому такой кэш в составленные из этих МОПов. Поэтому такой кэш в процессоре P-4 называется «кэш трасс» (Trace-cache, Т-процессоре P-4 называется «кэш трасс» (Trace-cache, Т-кэш). Трассы формируются в соответствии с кэш). Трассы формируются в соответствии с предполагаемым динамическим порядком исполнения предполагаемым динамическим порядком исполнения инструкций. инструкций. В момент декодирования производится В момент декодирования производится первичное предсказание переходапервичное предсказание перехода, и если , и если предсказывается совершённый переход, то целевая предсказывается совершённый переход, то целевая инструкция помещается в трассу вслед за инструкцией инструкция помещается в трассу вслед за инструкцией перехода. Трасса может содержать множество таких перехода. Трасса может содержать множество таких «запаянных» переходов.«запаянных» переходов.

Page 59: Лекция №4 Организация ЭВМ и систем (продолжение)

Размещение кэша «после декодера» и хранение в нём Размещение кэша «после декодера» и хранение в нём сформированных МОПов сформированных МОПов позволяет избежать позволяет избежать необходимости параллельно декодировать несколько необходимости параллельно декодировать несколько инструкцийинструкций в условиях повышенной тактовой частоты, а в условиях повышенной тактовой частоты, а также сократить затраты (число этапов конвейера) на также сократить затраты (число этапов конвейера) на обработку операции после её выборки из кэша. обработку операции после её выборки из кэша.

Кроме того, «запаивание» предсказанных переходов в Кроме того, «запаивание» предсказанных переходов в трассу позволяет существенно снизить потери на их трассу позволяет существенно снизить потери на их выполнение — выполнение — теперь в одном такте может быть теперь в одном такте может быть выполнена операция, предшествующая переходувыполнена операция, предшествующая переходу, , сам сам переход и операция, следующая за нимпереход и операция, следующая за ним. .

В классических процессорах такая В классических процессорах такая последовательность могла бы занять три такта.последовательность могла бы занять три такта.

Page 60: Лекция №4 Организация ЭВМ и систем (продолжение)

Принципиальной особенностью Т-кэшаПринципиальной особенностью Т-кэша, которая , которая определяет способ хранения МОПов и механизмы работы определяет способ хранения МОПов и механизмы работы с ними, с ними,

является отсутствие прямолинейного является отсутствие прямолинейного соответствия между адресом исходной инструкции и соответствия между адресом исходной инструкции и местоположением соответствующего МОПа (МОПов) в местоположением соответствующего МОПа (МОПов) в кэшекэше

в связи с тем, что в связи с тем, что x86-инструкция переменной x86-инструкция переменной длины преобразуется в один или несколько МОПов длины преобразуется в один или несколько МОПов фиксированной длины. фиксированной длины.

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

Page 61: Лекция №4 Организация ЭВМ и систем (продолжение)

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

На рисунке показан пример подобного кода и На рисунке показан пример подобного кода и соответствие между исходными инструкциями (в их соответствие между исходными инструкциями (в их естественном размещении) и МОПами в трассе (в естественном размещении) и МОПами в трассе (в предполагаемом порядке исполнения).предполагаемом порядке исполнения).

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

Page 62: Лекция №4 Организация ЭВМ и систем (продолжение)

В этом примере присутствует предсказанный переход В этом примере присутствует предсказанный переход и частичная раскрутка цикла. и частичная раскрутка цикла.

Буквами I и i обозначены обычные инструкции и Буквами I и i обозначены обычные инструкции и МОПы, а буквами J и j — инструкции и МОПы перехода.МОПы, а буквами J и j — инструкции и МОПы перехода.

Page 63: Лекция №4 Организация ЭВМ и систем (продолжение)

Т-кэш состоит из блоков размером в 6 ячеекТ-кэш состоит из блоков размером в 6 ячеек. . Обычно МОП занимает одну ячейку, однако в некоторых Обычно МОП занимает одну ячейку, однако в некоторых случаях может потребоваться дополнительное место для случаях может потребоваться дополнительное место для размещения недостающей информации. размещения недостающей информации. Темп Темп последовательного чтения из Т-кэша составляет 1 последовательного чтения из Т-кэша составляет 1 блок за 2 такта, или 3 МОПа за тактблок за 2 такта, или 3 МОПа за такт — что находится в — что находится в соответствии с темпом обработки и отставки МОПов.соответствии с темпом обработки и отставки МОПов.

Объём Т-кэша составляет 12K ячеек, или 2048 блоков, Объём Т-кэша составляет 12K ячеек, или 2048 блоков, организованных в 256 наборов по 8 блоков. Для организованных в 256 наборов по 8 блоков. Для преобразования программного адреса первой x86-преобразования программного адреса первой x86-инструкции в каждой трассе (как правило, это инструкция, инструкции в каждой трассе (как правило, это инструкция, на которую производится переход) в положение первого на которую производится переход) в положение первого блока трассы в кэше используется комбинированный блока трассы в кэше используется комбинированный алгоритм, сочетающий прямую адресацию по нескольким алгоритм, сочетающий прямую адресацию по нескольким разрядам программного адреса инструкции с разрядам программного адреса инструкции с ассоциативным поиском. Разряды этого адреса b10-3 ассоциативным поиском. Разряды этого адреса b10-3 указывают номер набора, а нахождение требуемого блока указывают номер набора, а нахождение требуемого блока в наборе осуществляется сравнением остальных в наборе осуществляется сравнением остальных разрядов адреса (ключа) с соответствующими разрядами разрядов адреса (ключа) с соответствующими разрядами адреса, хранящимися для каждого блока в наборе адреса, хранящимися для каждого блока в наборе (тэгами).(тэгами).

Page 64: Лекция №4 Организация ЭВМ и систем (продолжение)

Вопросы повышения эффективности Вопросы повышения эффективности доступа к даннымдоступа к данным

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

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

Page 65: Лекция №4 Организация ЭВМ и систем (продолжение)

Существуют Существуют различные варианты инструкций различные варианты инструкций предвыборкипредвыборки — считывание из памяти в L2-кэш, — считывание из памяти в L2-кэш, считывание из памяти или из L2-кэша в L1-кэш, считывание из памяти или из L2-кэша в L1-кэш, считывание блока для его последующей модификации, считывание блока для его последующей модификации, либо для одноразового использования. либо для одноразового использования. В процессоре P-4 В процессоре P-4 реализована предвыборка только в L2-кэшреализована предвыборка только в L2-кэш..

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

Page 66: Лекция №4 Организация ЭВМ и систем (продолжение)

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

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

Page 67: Лекция №4 Организация ЭВМ и систем (продолжение)

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

Page 68: Лекция №4 Организация ЭВМ и систем (продолжение)

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

На практике вероятность конфликтов по адресам На практике вероятность конфликтов по адресам

такого рода обычно невелика.такого рода обычно невелика.

Page 69: Лекция №4 Организация ЭВМ и систем (продолжение)

Платформа ПК: чего ждать в 2011 годуПлатформа ПК: чего ждать в 2011 годуПроцессорные архитектуры, графические чипы, Процессорные архитектуры, графические чипы,

память - всё это продолжает год от года развиваться и память - всё это продолжает год от года развиваться и совершенствоваться. Что покажут гиганты индустрии в совершенствоваться. Что покажут гиганты индустрии в следующем году?следующем году?

http://www.computerra.ru/vision/584071/http://www.computerra.ru/vision/584071/

Page 70: Лекция №4 Организация ЭВМ и систем (продолжение)

Когерентность кэш-памятиКогерентность кэш-памяти

Что такое «протокол поддержания когерентности кэшей»? Что такое «протокол поддержания когерентности кэшей»? Пусть, например, у нас процессор CPU0 произвел какие-то Пусть, например, у нас процессор CPU0 произвел какие-то вычисления и записал полученный результат в оперативную вычисления и записал полученный результат в оперативную память. Поскольку у CPU0, разумеется, есть «своя», память. Поскольку у CPU0, разумеется, есть «своя», персональная кэш-память (хотя бы первого уровня), то запись персональная кэш-память (хотя бы первого уровня), то запись данных производится не в «тормозную» оперативную память, а данных производится не в «тормозную» оперативную память, а в кэш. В случае однопроцессорных систем эта схема в кэш. В случае однопроцессорных систем эта схема замечательно работает… но что будет, если в замечательно работает… но что будет, если в многопроцессорной системе та же самая ячейка памяти, многопроцессорной системе та же самая ячейка памяти, которую изменил процессор CPU0, для каких-то целей которую изменил процессор CPU0, для каких-то целей понадобится и процессору CPU1? В «лучшем» случае CPU1 понадобится и процессору CPU1? В «лучшем» случае CPU1 прочитает эту ячейку из оперативной памяти, куда, если прочитает эту ячейку из оперативной памяти, куда, если повезет, процессор CPU0 уже успеет сохранить её новое повезет, процессор CPU0 уже успеет сохранить её новое значение. В худшем – эта ячейка (с устаревшими данными) значение. В худшем – эта ячейка (с устаревшими данными) окажется в его кэше и CPU1 даже не будет пытаться выяснить, окажется в его кэше и CPU1 даже не будет пытаться выяснить, изменилось ли что-нибудь с тех пор, как он в последний раз эту изменилось ли что-нибудь с тех пор, как он в последний раз эту ячейку из оперативной памяти прочитал. Всё вместе ячейку из оперативной памяти прочитал. Всё вместе называется «проблемой когерентности кэшей», а методы её называется «проблемой когерентности кэшей», а методы её решения – как раз и называют соответствующими решения – как раз и называют соответствующими «протоколами».«протоколами».

Page 71: Лекция №4 Организация ЭВМ и систем (продолжение)
Page 72: Лекция №4 Организация ЭВМ и систем (продолжение)

Как эту проблему решают? Простейший протокол Как эту проблему решают? Простейший протокол поддержания когерентности – это так называемый Write-поддержания когерентности – это так называемый Write-Through, когда любые изменения сразу же записываются Through, когда любые изменения сразу же записываются (write through cache) не только в кэш-память, но и в (write through cache) не только в кэш-память, но и в оперативную память компьютера; причем остальные оперативную память компьютера; причем остальные процессоры как-то об этом знаменательном событии процессоры как-то об этом знаменательном событии информируются. Например, если используется общая информируются. Например, если используется общая шина, то другие процессоры просто «подслушивают» шина, то другие процессоры просто «подслушивают» (snoop), что текущий «владелец» шины по ней пересылает (snoop), что текущий «владелец» шины по ней пересылает и, зарегистрировав, что CPU0 выполняет операцию записи и, зарегистрировав, что CPU0 выполняет операцию записи в память, обновляют «свои» записи в кэше. Обычно, в память, обновляют «свои» записи в кэше. Обычно, чтобы сэкономить время - просто помечают, что чтобы сэкономить время - просто помечают, что соответствующие строки в кэше отныне «неправильные» соответствующие строки в кэше отныне «неправильные» (Invalid) и при обращении к ним данные необходимо брать (Invalid) и при обращении к ним данные необходимо брать не из кэша, а из оперативной памяти. Схема достаточно не из кэша, а из оперативной памяти. Схема достаточно простая... но неэффективная: запись данных в простая... но неэффективная: запись данных в оперативную память – далеко не быстрый процесс. оперативную память – далеко не быстрый процесс.

Page 73: Лекция №4 Организация ЭВМ и систем (продолжение)
Page 74: Лекция №4 Организация ЭВМ и систем (продолжение)

Но зачем разбазаривать зря ресурсы компьютера Но зачем разбазаривать зря ресурсы компьютера (пропускную способность шины и оперативной памяти), (пропускную способность шины и оперативной памяти), сохраняя малейшие изменения в медленной оперативной сохраняя малейшие изменения в медленной оперативной памяти, если вся эта «обновленная» информация может памяти, если вся эта «обновленная» информация может еще десять раз обновиться, прежде чем она понадобится еще десять раз обновиться, прежде чем она понадобится кому-то кроме «владеющего» этой информацией кому-то кроме «владеющего» этой информацией процессора? А ведь если поразмыслить, то работа процессора? А ведь если поразмыслить, то работа нескольких процессоров одновременно с одним и тем же нескольких процессоров одновременно с одним и тем же участком оперативной памяти – явление исключительное: участком оперативной памяти – явление исключительное: в подавляющем большинстве случаев каждый процессор в подавляющем большинстве случаев каждый процессор занимается обработкой «своего» участка и лишь изредка занимается обработкой «своего» участка и лишь изредка – обращается к участку «чужому». Именно эта идея – обращается к участку «чужому». Именно эта идея положена в основу протокола MESI. Использующий его положена в основу протокола MESI. Использующий его процессор, четко различает кэш-строки, которых заведомо процессор, четко различает кэш-строки, которых заведомо нет в кэшах других процессоров (они помечаются как нет в кэшах других процессоров (они помечаются как Exclusive) и «общие», присутствующие более чем в одном Exclusive) и «общие», присутствующие более чем в одном кэше (они помечаются как Shared). кэше (они помечаются как Shared).

Page 75: Лекция №4 Организация ЭВМ и систем (продолжение)

Если изменяется Shared-строка, то «соседям» по Если изменяется Shared-строка, то «соседям» по компьютеру передается сигнал-требование проверить компьютеру передается сигнал-требование проверить свои кэши и, если что, сделать напротив своих записей в свои кэши и, если что, сделать напротив своих записей в кэшах пометку «неправильно» (Invalid); если изменяется кэшах пометку «неправильно» (Invalid); если изменяется Exclusive-строка (а как уже говорилось, вероятность этого Exclusive-строка (а как уже говорилось, вероятность этого события очень велика), то делать эту достаточно события очень велика), то делать эту достаточно трудоемкую операцию нет необходимости. В любом трудоемкую операцию нет необходимости. В любом случае строка помечается как Modified, но попыток эту случае строка помечается как Modified, но попыток эту самую строку немедленно записать в оперативную память самую строку немедленно записать в оперативную память не предпринимается. Зато все процессоры бдительно не предпринимается. Зато все процессоры бдительно наблюдают за всеми операциями чтения данных из наблюдают за всеми операциями чтения данных из памяти и если один из процессоров замечает, что его памяти и если один из процессоров замечает, что его сосед пытается прочитать строчку памяти, которая в его сосед пытается прочитать строчку памяти, которая в его кэше помечена, как «Modified», то он прерывает эту кэше помечена, как «Modified», то он прерывает эту операцию, сохраняет изменения в оперативной памяти, операцию, сохраняет изменения в оперативной памяти, снимает со «своей» кэш-строки «галочку» Modified и снимает со «своей» кэш-строки «галочку» Modified и только после этого разрешает вызвавшему «проблему» только после этого разрешает вызвавшему «проблему» процессору завершить операцию чтения. В итоге процессору завершить операцию чтения. В итоге «типовые» операции с кэш-памятью в MESI происходят «типовые» операции с кэш-памятью в MESI происходят практически с той же скоростью, что и в single-системе. практически с той же скоростью, что и в single-системе.

Page 76: Лекция №4 Организация ЭВМ и систем (продолжение)
Page 77: Лекция №4 Организация ЭВМ и систем (продолжение)

А что же AMD? AMD использует всё тот же MESI, но А что же AMD? AMD использует всё тот же MESI, но только доработанный таким образом, чтобы процессоры только доработанный таким образом, чтобы процессоры могли эффективно использовать данные из кэш-памяти могли эффективно использовать данные из кэш-памяти друг друга. В MESI процессоры почти не используют кэши друг друга. В MESI процессоры почти не используют кэши своих соседей: в лучшем случае, чтение обновленных своих соседей: в лучшем случае, чтение обновленных данных из памяти производится при выгрузке этих данных данных из памяти производится при выгрузке этих данных в память «соседом». В протоколе же MOESI любая в память «соседом». В протоколе же MOESI любая операция чтения сопровождается проверкой кэшей операция чтения сопровождается проверкой кэшей соседей – если нужные данные находятся в одном из них, соседей – если нужные данные находятся в одном из них, то и читаются они прямо оттуда; причем сохранение этих то и читаются они прямо оттуда; причем сохранение этих данных в оперативную память при этом не производится. данных в оперативную память при этом не производится. Просто «владелец» этой памяти делает у себя «зарубку» Просто «владелец» этой памяти делает у себя «зарубку» Owner 3 напротив соответствующей строки кэш-памяти. Owner 3 напротив соответствующей строки кэш-памяти. Мы убиваем двух зайцев одним выстрелом: не Мы убиваем двух зайцев одним выстрелом: не производим ненужных записей в оперативную память и производим ненужных записей в оперативную память и эффективно используем память «соседа». В итоге в эффективно используем память «соседа». В итоге в двухядерных процессорах кэш-память первого и второго двухядерных процессорах кэш-память первого и второго уровней «соседнего ядра» может работать как кэш-память уровней «соседнего ядра» может работать как кэш-память третьего уровня (L3); а кэш-память «чужих» процессоров в третьего уровня (L3); а кэш-память «чужих» процессоров в многопроцессорной системе – как кэши четвертого уровня. многопроцессорной системе – как кэши четвертого уровня.

Page 78: Лекция №4 Организация ЭВМ и систем (продолжение)

Конечно, это не «полноценный» кэш L3/L4 и уж точно – Конечно, это не «полноценный» кэш L3/L4 и уж точно – не полноценный разделяемый L2 (поскольку не полноценный разделяемый L2 (поскольку самостоятельно загрузить «соседа» своими данными ядро самостоятельно загрузить «соседа» своими данными ядро процессора не может – оно может только надеяться, что процессора не может – оно может только надеяться, что «сосед» тоже эти данные будет использовать), однако «сосед» тоже эти данные будет использовать), однако свою прибавку к производительности, безусловно, MOESI свою прибавку к производительности, безусловно, MOESI должен обеспечивать. Только не следует думать, что в должен обеспечивать. Только не следует думать, что в Intel не могут реализовать аналог протокола, Intel не могут реализовать аналог протокола, предложенного еще аж в 1986 году (и определенные предложенного еще аж в 1986 году (и определенные варианты таки присутствует в Itanium-системах и варианты таки присутствует в Itanium-системах и некоторых других ядрах) – просто для систем с общей некоторых других ядрах) – просто для систем с общей системной шиной никаких преимуществ по сравнению с системной шиной никаких преимуществ по сравнению с MESI он не предоставляет. Что просто перебросить по MESI он не предоставляет. Что просто перебросить по этой медленной общей шине данные от одного этой медленной общей шине данные от одного процессора к другому, что эти данные заодно и в процессора к другому, что эти данные заодно и в оперативную память записать – разницы почти никакой. А оперативную память записать – разницы почти никакой. А вот для процессоров AMD, у которых ядра и процессоры вот для процессоров AMD, у которых ядра и процессоры связаны между собой интерфейсами, работающими связаны между собой интерфейсами, работающими гораздо быстрее обычной оперативной памяти, разница гораздо быстрее обычной оперативной памяти, разница есть и порой она становится весьма ощутимой. есть и порой она становится весьма ощутимой.

Page 79: Лекция №4 Организация ЭВМ и систем (продолжение)
Page 80: Лекция №4 Организация ЭВМ и систем (продолжение)

Чтобы всё не выглядело настолько неприглядно для Intel, заметим, что у этой корпорации тоже есть очень сильный козырь в кармане – и называется он Hyper-Threading. Технология виртуальной многопоточности (когда одно физическое ядро изображает из себя несколько «виртуальных») позволяет гораздо эффективнее загрузить исполнительные блоки этих процессоров работой. Мало кто знает, что IPC (количество инструкций, которые можно выполнить за один такт) для этих процессоров в устоявшемся режиме может доходить до четырех. Это не просто много: это очень много даже по современным меркам. Для сравнения, процессоры AMD архитектур K7 и K8 выполняют по 3 (в пике – до 6) инструкций за такт, то есть теоретическая эффективность в пересчете на один мегагерц у Pentium 4 должна быть выше, чем у Athlon 64 и Opteron. Почему КПД архитектуры NetBurst в ряде приложений получается «очень скромным» - вопрос для немаленькой отдельной статьи (да и написано по этому поводу уже очень много), отметим только, что сверхвысокие IPC для Pentium 4 вполне можно увидеть на практике – на тщательно оптимизированных приложениях и тестах типа Linpack-а или Prime 95. Главное – это то, что Hyper-Threading позволяет существующий КПД процессора на 10-25% увеличить: подобная прибавка вполне способна перекрыть и выигрыш от более быстрой подсистемы памяти, и от более быстрой шины и от «более продвинутого» протокола MOESI.

http://www.cyberguru.ru/http://www.cyberguru.ru/

Page 81: Лекция №4 Организация ЭВМ и систем (продолжение)

Вопросы для самоконтроляВопросы для самоконтроля1.1.Какая память в ПК является самой быстрой? Имеет Какая память в ПК является самой быстрой? Имеет

самую большую емкость?самую большую емкость?2.2.Объясните, в чем состоит принцип временной и Объясните, в чем состоит принцип временной и

пространственной локальности программы.пространственной локальности программы.3.3.Какие способы существуют для согласования Какие способы существуют для согласования

содержимого кэш-памяти и основной памяти?содержимого кэш-памяти и основной памяти?4.4.Перечислите типы кэш-памяти.Перечислите типы кэш-памяти.5.5.Как различаются кэши инструкций по своей Как различаются кэши инструкций по своей

организации?организации?6.6.Перечислите и объясните механизмы вытеснения Перечислите и объясните механизмы вытеснения

блоков из кэшей.блоков из кэшей.7.7.Чем отличается эксклюзивная и инклюзивная Чем отличается эксклюзивная и инклюзивная

организация кэшей?организация кэшей?8.8.Особенности кэша трасс в процессоре Pentium 4.Особенности кэша трасс в процессоре Pentium 4.9.9.Какие способы повышения эффективности доступа к Какие способы повышения эффективности доступа к

данным вы знаете?данным вы знаете?

Page 82: Лекция №4 Организация ЭВМ и систем (продолжение)

ЗадачиЗадачи

1.1.Для кэша указанной конфигурации Для кэша указанной конфигурации определите значение и разрядность тега при определите значение и разрядность тега при обращении по заданному адресу.обращении по заданному адресу.

Вариант 1. Вариант 1. Кэш прямого отображения 16 строк по Кэш прямого отображения 16 строк по 8 байт, 12-битный адрес: 348 байт, 12-битный адрес: 34AA..

Вариант 2. Вариант 2. 4-входовый ассоциативный кэш на 4 4-входовый ассоциативный кэш на 4 набора по 8 байт в строке, 12-битный адрес: 6Е4.набора по 8 байт в строке, 12-битный адрес: 6Е4.

Вариант 3. Вариант 3. Полностью ассоциативный кэш 16 Полностью ассоциативный кэш 16 строк по 8 байт, 12-битный адрес: строк по 8 байт, 12-битный адрес: AA33BB. .

Page 83: Лекция №4 Организация ЭВМ и систем (продолжение)

1.1.Вариант 1. 06 (5 бит) Вариант 1. 06 (5 бит)

Вариант 2. 37 (7 бит) Вариант 2. 37 (7 бит)

Вариант 3. 147 (9 бит) Вариант 3. 147 (9 бит)