View on GitHub

ITMO-PE

My study notes about Program Engineering at University ITMO

Архитектура компьютера

Лекция 13

Иерархия памяти. Кеширование 内存层次结构。 缓存

Пенской А.В., 2022


План лекции



Устройство памяти с произвольным доступом 随机存取存储器设备

Массив ячеек памяти $4x3$
(4 слова по 3 бита)
存储单元数组 $4x3$
(4 个字,3 位)

_Memory array_


Технология реализации битовых ячеек 位单元实现技术

Существует много вариантов реализации ячейки. 实现单元有多种选择。

Memory Type Transistors*Bit Latency Capacity Cost/GB
flip-flop ~20 20 ps ~1-5KB a lot of $
SRAM 6 1-10 ns ~10KB-10MB ~$1000
DRAM 1 80 ns ~10G ~$10

Notes: https://computationstructures.org/lectures/caches/caches.html


Read Only Memory (ROM) Cell 只读存储器 (ROM) 单元

Память только для чтения.
只读存储器。

Способы реализации:
实施方法:

_ROM_


Static Random Access Memory (SRAM) 静态随机存取存储器 (SRAM)

Хранение данных при помощи состояния группы транзисторов. Особенности:
使用一组晶体管的状态存储数据。 特点:


SRAM Array


SRAM Read


SRAM Write


SRAM Multiport


Dynamic Random Access Memory (DRAM) 动态随机存取存储器 (DRAM)

Динамическая память, состояние хранится в конденсаторе.
动态存储器,状态存储在电容器中。

_DRAM_


DRAM Read/Write


Иерархия памяти. Способ доступа 内存的层次结构。 接入方式


Кеширование 缓存

Кеш 缓存
промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью.
快速访问中间缓冲区,包含最有可能被请求的信息。

Зачем? 为了什么?


Кеши применяются на всех уровнях компьютерных систем, но мы обсуждаем процессоры.
缓存用于计算机系统的各个级别,但我们讨论的是处理器。

Встроенное противоречие:
内在矛盾:

  1. Когда наборы данных очень большие, кеши плохо работают и имеют низкую временную или пространственную локальность.
    当数据集非常大时,缓存性能较差,并且时间或空间局部性较低。
  2. Когда кеши работают хорошо, локальность очень высока, то есть по определению большая часть кеша простаивает большую часть времени.
    当缓存性能良好时,局部性非常高,这意味着根据定义,大部分缓存在大多数时间都是空闲的。

Notes: John L. Hennessy, David A. Patterson Новый золотой век для компьютерной архитектуры


Принцип функционирования кеша 缓存的工作原理

  1. Кеш состоит из набора записей (блоков кеша, кеш-линий).
    缓存由一组条目(缓存块、缓存行)组成
  2. Запись ассоциирована с элементом в медленной памяти.
    该条目与慢速存储器中的元素相关联。
  3. Запись имеет идентификатор (тег), определяющий соответствие.
    该条目具有标识匹配项的标识符(标签)。
  4. Доступ к памяти реализуется прозрачно.
    内存访问是透明实现的。
  5. Память может быть изменена вне зависимости от кеша: DMA, другое ядро.
    无论缓存如何,内存都可以更改:DMA、不同核心。

_Отображение кеша на память_


Чтение данных из кеша 从缓存中读取数据


Запись данных в кеш. Варианты 将数据写入缓存。 选项

  1. Немедленная запись (сквозная, write-through). Изменение вызывает синхронное обновление памяти. Иногда медленнее, чем вообще без кеша, зато предсказуемо.
    立即录音(直写)。 该更改会导致同步内存更新。 有时比完全没有缓存慢,但可以预见。
  2. Отложенная запись (обратная запись, write-back). Обновление памяти при вытеснении данных, периодически или по запросу. Группировка обновлений, сокрытие промежуточных состояний.
    延迟写入(回写)。 当数据被逐出时,定期或按需更新内存。 分组更新,隐藏中间状态。
    • Признак модификации (изменённый или «грязный»).
      修改标志(已更改或“脏”)。
    • Может потребовать два обращения к памяти: для записи вытесняемого, для чтения необходимого.
      可能需要两次访问内存:写入正在替换的内容,以及读取需要的内容。
    • Обратная запись может приводить к не консистентному состоянию кеша и памяти. Для самого процессора незаметна, но при доступе “других” (DMA…) кеш должен быть записан принудительно.
      写回可能会导致缓存和内存不一致的情况。 它对于处理器本身是不可见的,但是当被“其他”(DMA…)访问时,必须强制写入缓存。
  3. Гибридные варианты. Пример: немедленная запись с буферизацией.
    混合选项。 示例:带缓冲的立即录制。

Виды кеш-промахов 缓存未命中的类型


Кеш. Вытеснение / замещение 缓存。 置换/更换

Sequence: A B C D E D F

Access sequence: 访问顺序: A B C D E D F


Pseudo-LRU 伪LRU

Access sequence: A B C D E


Уровни кеширования в процессорах 1 处理器 1 中的缓存级别


Уровни кеширования в процессорах 2 2 个处理器中的高速缓存级别

L0–L3 – SRAM; L4 – DRAM. Зачем столько?
L0–L3——SRAM; L4——DRAM。 为什么这么多?