Исследование работы Кэш-памяти центрального...

32
Исследование работы Кэш-памяти центрального процессора Чёрная команда Санкт-Петербургский политехнический университет Петра Великого Антон Абрамов <[email protected]> Владислав Бусаров <[email protected]> Сергей Дедков <[email protected]> Семён Мартынов <[email protected]> Николай Патраков <[email protected]> 23 ноября 2015 г. Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 1 / 32

Upload: semen-martynov

Post on 14-Jan-2017

235 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Исследование работы Кэш-памяти центрального процессора

Исследование работы Кэш-памятицентрального процессора

Чёрная команда

Санкт-Петербургский политехнический университет Петра Великого

Антон Абрамов <[email protected]>Владислав Бусаров <[email protected]>

Сергей Дедков <[email protected]>Семён Мартынов <[email protected]>

Николай Патраков <[email protected]>

23 ноября 2015 г.

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 1 / 32

Page 2: Исследование работы Кэш-памяти центрального процессора

Содержание

1 Назначение кэш памяти

2 Принцип работы кэша процессора

3 Организация кэша

4 Понятие ассоциативности кэша

5 Эксперимент

6 Заключение

7 Источники

8 Вопросы

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 2 / 32

Page 3: Исследование работы Кэш-памяти центрального процессора

Понятие кэш-памяти

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

Понятие предложено в 1967 году Лайлом Джонсоном (редакторомжурнала "IBM Systems Journal") как замена термину "высокоскоростнойбуфер"при описании памяти в разрабатываемой модели 85 из серииIBM System/360.

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 3 / 32

Page 4: Исследование работы Кэш-памяти центрального процессора

Нужна ли кэш-память в современных системах?

Оперативная память представляет собой динамическую память спроизвольным доступом (Dynamic Random Access Memory, DRAM), акэш процессора выполняется на базе статической оперативной памяти(Static Random Access Memory, SRAM).

Рассмотрим память DDR3-1600 9-9-9-27 (tCL-tRCD-tRP-tRAS):эффективная частота составляет 1600 МГц, это скорость с которойданные поступают на внешнюю шину в пакетном режиме доступа, ареальная частота ядра памяти составляет всего 200 МГц.

С момента активации нужной строки памяти и до появления данных нашине пройдет промежуток времени, равный tCL+tRCD, то есть 18тактов. С учетом того что частота работы ядра памяти DDR3-1600составляет 200 МГц, это время равно 90 нс. Если частота работыпроцессора составляет 3 ГГц, то это означает, что процессор долженбудет дожидаться нужных данных (простаивать) минимум 270 тактов!

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 4 / 32

Page 5: Исследование работы Кэш-памяти центрального процессора

Почему DRAM-память не заменить SRAM-памятью?

Каждая ячейка DRAM-памяти состоит из одного полевого транзистораи одного конденсатора, ячейка SRAM-памяти – как минимум из шестиполевых транзисторов (есть варианты с числом транзисторов 8 и 12).Об этом рассказывал проф. Мелехин.

В результате:

Модули SRAM-памяти были бы меньшего объема в сравнении смодулями DRAM-памяти

Их цена (даже при равном объёме) была бы выше

Существенно возросла бы проблема кэширования периферийныхустройств

Пришлось бы перерабатывать систему кэширования, которая наданный момент работает достаточно хорошо =)

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 5 / 32

Page 6: Исследование работы Кэш-памяти центрального процессора

Принцип работы кэша процессора

Рис. 1: Структура кэш-памяти процессора

Кэш-контроллер перехватывает запросы к оперативной памяти иопределяет, имеется ли копия затребованных данных в кэше. Если есть(cache hit), то данные извлекаются из кэша, если нет (cache miss) –тогда запрос переадресуется к оперативной памяти.

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 6 / 32

Page 7: Исследование работы Кэш-памяти центрального процессора

Стратегии кэширования

Кэш-контроллер должен уметь предсказывать какие данныепотребуются процессору в будущем и загружать их в кэш(упреждающая загрузка данных)

On demand – обращение к оперативной памяти происходит только вслучае кэш-промаха

Look Ahead – алгоритмы упреждающей спекулятивной загрузкиданных в кэш основанные на предположении, что данные изоперативной памяти обрабатываются последовательно, в порядкевозрастания адресов

Look Through – загрузка данных из памяти может либо начинатьсяпосле фиксации кэш-промаха

Look Aside – загрузка осуществляться параллельно с проверкойналичия соответствующей копии данных и до кэш-попадания (оченьэффективна, но увеличивается энергопотребление процессора)

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 7 / 32

Page 8: Исследование работы Кэш-памяти центрального процессора

Политики замещения данных в кэш-памяти

Кэш всегда полон; новые данные можно занести только путемзамещения каких-либо старых.

Rnd (Random) замещаемые данные выбираются случайным образом

LFU (Least Frequently Used) – в первую очередь замещаются данные, укоторых самая низкая частота обращений (требует наличиясчетчика удачных запросов в каждой строке кэша)

LRU (Least Recently Used) – замещаются те данные, к которым дольшевсего не обращались

LRR (Least Recently Replaced) – замещаются те данные, которые былизагружены раньше всех

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 8 / 32

Page 9: Исследование работы Кэш-памяти центрального процессора

Организация кэша

Из чего формируется кэш-строка (cache-line):

Счетчик возраста строк, для реализации политики замещения наоснове алгоритма LRU

32-разрядный (четырехбайтный) адрес памяти, используемыйконтроллером для проверки промахов/попаданий. Адрессохраняемого слова принято называть тегом (tag)

Блок данных фиксированного размера (степени двойки – 2, 4, 8, 16и т.д.), идущих подряд в оперативной памяти. Он называетсяразмером кэш строки.

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 9 / 32

Page 10: Исследование работы Кэш-памяти центрального процессора

Организация кэша

Рис. 2: Пример кэш-строки размером 16 байт

Размер кэш строки всегда равен степени двойки, а данные непересекаются. Тогда размер тега (в битах) равен 32 − log2S , где S –размер кэш строки в байтах.

Если размер кэш строки равен 16 байт – то размер тега адреса 28 бита.Для строки из 32 байт – 27 бит адреса, 64 бай адресуются 26 битами.

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 10 / 32

Page 11: Исследование работы Кэш-памяти центрального процессора

Организация кэша

Объём кэша можно рассматривать как полный, и как полезный.

Пусть имеется кэш размером 32 Кбайт и длина строки составляет 128байт. Такой кэш будет содержать 256 строк (32 Кбайт/128 байт).Каждая строка имеет тег размером 25 бит (32 – log2 128). Кроме того,добавим счетчик старения, содержащий 8 бит (log2 256). То есть ккаждой строке добавляется еще 33 служебных бита. А всего такихслужебных бит будет 8’448 или 1’056 байт. Соответственно полныйобъем кэша составит чуть более 33 Кбайт.

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

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 11 / 32

Page 12: Исследование работы Кэш-памяти центрального процессора

Полностью ассоциативная кэш-память (Fully associative)

Рис. 3: Структура полностью ассоциативной кэш-памяти

Чтобы определить, имеются ли запрошенные процессором данные вкэш-памяти, нужно перебрать все кэш строки.

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 12 / 32

Page 13: Исследование работы Кэш-памяти центрального процессора

Кэш-память с прямым отображением (Direct mapping)

Рис. 4: Структура кэш-памяти с прямым отображением

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

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 13 / 32

Page 14: Исследование работы Кэш-памяти центрального процессора

Кэш-память с прямым отображением (Direct mapping)

Соотношение между номерами строк оперативной памяти и номерамикэш-строк:

Ncache = (Nmemory )mod(Nmax_cache)

Где:

Ncache номер кэш строки

Nmemory номер строки оперативной памяти

Nmax_cache количество строк кэш-памяти

mod функция получения остатка от деления

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 14 / 32

Page 15: Исследование работы Кэш-памяти центрального процессора

Кэш-память с прямым отображением (Direct mapping)

Перейдём от строк оперативной памяти к адресному пространству.

Nmemory = (ADDR)div(CACHE_LINE_SIZE )

Где:

ADDR адрес элемента в оперативной памяти

CACHE_LINE_SIZE размер кэш-строки

div функция целочисленного деления

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

Nmax_cache = (CACHE_SIZE )div(CACHE_LINE_SIZE )

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 15 / 32

Page 16: Исследование работы Кэш-памяти центрального процессора

Кэш-память с прямым отображением (Direct mapping)

Тогда выражение, определяющее номер строки кэш-памяти, в которуюпопадет элемент оперативной памяти с адресом ADDR , запишется ввиде:

Ncache =[(ADDR)div(CACHE_LINE_SIZE )]

mod [(CACHE_SIZE )div(CACHE_LINE_SIZE )]

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 16 / 32

Page 17: Исследование работы Кэш-памяти центрального процессора

Наборно-ассоциативный кэш (N-way cache)

Рис. 5: Структура наборно-ассоциативного кэша

Кэш состоит из нескольких независимых банков (сегментов), каждый изкоторых представляет собой кэш с прямым отображением, а сами банкиполностью ассоциативны по отношению к оперативной памяти.

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 17 / 32

Page 18: Исследование работы Кэш-памяти центрального процессора

Наборно-ассоциативный кэш (N-way cache)

Количество банков кэша называется его степенью ассоциативности иликанальностью (way). То есть может быть 2-канальный (2-way),4-канальный (4-way), 8-канальный (8-way) и т.д.

Поскольку каждый банк кэш-памяти является сегментом памяти спрямым отображением, в нем действует то же правило, что и длякэш-памяти с прямым отображением, то есть:

Nbank_cache = (Nmemory )mod(Nmax_bank_cache)

Где:

Nbank_cache номер кэш строки в банке памяти

Nmax_bank_cache количество строк кэш-памяти в банке

Nmemory номер строки оперативной памяти

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 18 / 32

Page 19: Исследование работы Кэш-памяти центрального процессора

Наборно-ассоциативный кэш (N-way cache)

Количество строк кэш-памяти в банке определяется соотношением:

Nmax_bank_cache =Nmax_cache

N

Где:

Nmax_cache количество строк в кэш-памяти

N степень ассоциативности (количество банков или каналов).

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 19 / 32

Page 20: Исследование работы Кэш-памяти центрального процессора

Постановка задачи

Исследовать характеристики обращение к памяти для программ избенчмарка Ливерморские циклы, ядра 1-9.

Используя результаты исследования, определить оптимальную для этойвычислительной нагрузки конфигурацию кэш-памяти общим объемом0,5 Мбайт;

Параметры:

m – число строк

n – число слов в строке

k – коэффициент ассоциативности

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 20 / 32

Page 21: Исследование работы Кэш-памяти центрального процессора

Ливерморские циклы

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

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

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 21 / 32

Page 22: Исследование работы Кэш-памяти центрального процессора

Ливерморские циклы

1 Hydro fragment

2 ICCG excerpt (Incomplete Cholesky Conjugate Gradient)

3 Inner product

4 Banded linear equations

5 Tri-diagonal elimination, below diagonal

6 General linear recurrence equations

7 Equation of state fragment

8 ADI integration

9 Integrate predictors

Исходный код:https://github.com/SemenMartynov/SPbPU_ComputingSystems/blob/master/lab2/livermorec/livermorec.c

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 22 / 32

Page 23: Исследование работы Кэш-памяти центрального процессора

Порядок решения

Для решения задачи было принято решение использовать средстводинамического анализа Intel Pin:

1 На 32-битной системе мы запустили pintool (для оптимизированнойи не оптимизированной версии Ливерморских циклов),генерирующий журнал обращений к памяти

2 На С++ реализовали модель работы кэш-памяти 32-битногопроцессора. Использовалась стратегии кэширования On demand, иалгоритм LRU для замещения (перед этим мы использовали LFU,но он обнаружил свои очевидные недостатки).

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

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 23 / 32

Page 24: Исследование работы Кэш-памяти центрального процессора

Сборка с использованием gcc 4.6.3.

Компиляция с максимальной оптимизацией$ gcc livermorec.c -o livermorec-mxopt -O3$ /opt/pin/pin -t /opt/pin/source/tools/SimpleExamples/obj-ia32/pinatrace.so -- ./livermorec-mxopt$ mv pinatrace.out livermorec-mxopt.out

Реальное время работы программы с оснасткой 0m13.114s

Компиляция без оптимизации$ gcc livermorec.c -o livermorec-noopt -O0$ /opt/pin/pin -t /opt/pin/source/tools/SimpleExamples/obj-ia32/pinatrace.so -- ./livermorec-noopt$ mv pinatrace.out livermorec-no/opt.out

Реальное время работы программы с оснасткой 0m13.442s

результаты компиляции (журналы отличаются)$ du -hsBk livermorec*20K livermorec.c8K livermorec-mxopt1756K livermorec-mxopt.out12K livermorec-noopt1764K livermorec-noopt.out

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 24 / 32

Page 25: Исследование работы Кэш-памяти центрального процессора

Особенности модели кэша

При разработке модели кэша мы заложили следующие особенности:

1 Проверка на размер. Общий объём кэша вычисляется взависимости от переданных параметров и составляет 512 Кбайт (вдействительности ± 16 Кбайт)

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

3 Модель ориентирована на вычисление промахов и попаданий, а нена эффективное хранение адресов (тегов). Очевидно, что послеопределения строки поиск нужного банка производится перебором,за линейную сложность.

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 25 / 32

Page 26: Исследование работы Кэш-памяти центрального процессора

Результаты эмуляции

Далее будут приведены результаты эмуляции для оптимизированной ине оптимизированной версии программы, с кэшем в 512 (± 16) Кбайт.

В таблице используются следующие обозначения:

C.Lines – количество кэш-линий

Words – количество 32-битных слов в каждой линии

Assoc. – коэффициент ассоциативности

Total size – общий объём кэша

Miss ctr – количество кэш-попаданий

Hit ctr – количество кэш-промахов

Rate – коэффициент кэш-попаданий

LongHit – максимальное количество кэш-попаданий подряд

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 26 / 32

Page 27: Исследование работы Кэш-памяти центрального процессора

Результаты эмуляции

Результат для оптимизированной версии/=====================================================================================\| C.Lines | Words | Assoc. | Total size || Miss ctr | Hit ctr | Rate || LongHit ||---------|---------|---------|------------||----------|----------|--------||---------|| 14564 | 8 | 2 | 512 KB || 1568 | 44490 | 96.6% || 2670 || 14564 | 8 | 4 | 512 KB || 1569 | 44489 | 96.6% || 2670 || 26052 | 4 | 4 | 512 KB || 2643 | 43415 | 94.3% || 2454 || 42800 | 2 | 8 | 512 KB || 4403 | 41655 | 90.4% || 2439 || 62600 | 1 | 8 | 512 KB || 7795 | 38263 | 83.1% || 2406 || 42800 | 2 | 16 | 512 KB || 4414 | 41644 | 90.4% || 2439 |\=====================================================================================/

Результат для не оптимизированной версии/=====================================================================================\| C.Lines | Words | Assoc. | Total size || Miss ctr | Hit ctr | Rate || LongHit ||---------|---------|---------|------------||----------|----------|--------||---------|| 14564 | 8 | 2 | 512 KB || 1573 | 44677 | 96.6% || 2670 || 14564 | 8 | 4 | 512 KB || 1573 | 44677 | 96.6% || 2670 || 26052 | 4 | 4 | 512 KB || 2649 | 43601 | 94.3% || 2454 || 42800 | 2 | 8 | 512 KB || 4419 | 41831 | 90.4% || 2439 || 62600 | 1 | 8 | 512 KB || 7802 | 38448 | 83.1% || 2406 || 42800 | 2 | 16 | 512 KB || 4422 | 41828 | 90.4% || 2439 |\=====================================================================================/

Время работы на Intel Core2 Quad CPU Q8300 @ 2.50GHz – 33m23.979sЧёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 27 / 32

Page 28: Исследование работы Кэш-памяти центрального процессора

Результаты эмуляции на маленьком кэше

Результат для оптимизированной версии/=====================================================================================\| C.Lines | Words | Assoc. | Total size || Miss ctr | Hit ctr | Rate || LongHit ||---------|---------|---------|------------||----------|----------|--------||---------|| 256 | 64 | 16 | 64.9 KB || 443 | 45615 | 99.0% || 3572 || 128 | 64 | 8 | 32.5 KB || 505 | 45553 | 98.9% || 3572 || 128 | 64 | 16 | 32.5 KB || 510 | 45548 | 98.9% || 3572 || 64 | 64 | 8 | 16.2 KB || 675 | 45383 | 98.5% || 3572 || 64 | 64 | 4 | 16.2 KB || 696 | 45362 | 98.5% || 3572 || 64 | 64 | 16 | 16.2 KB || 704 | 45354 | 98.5% || 3572 |\=====================================================================================/

Результат для не оптимизированной версии/=====================================================================================\| C.Lines | Words | Assoc. | Total size || Miss ctr | Hit ctr | Rate || LongHit ||---------|---------|---------|------------||----------|----------|--------||---------|| 256 | 64 | 16 | 64.9 KB || 430 | 45820 | 99.1% || 3572 || 128 | 64 | 8 | 32.5 KB || 502 | 45748 | 98.9% || 3572 || 128 | 64 | 16 | 32.5 KB || 512 | 45738 | 98.9% || 3572 || 64 | 64 | 8 | 16.2 KB || 680 | 45570 | 98.5% || 3572 || 64 | 64 | 16 | 16.2 KB || 695 | 45555 | 98.5% || 3572 || 256 | 32 | 16 | 32.9 KB || 716 | 45534 | 98.5% || 3572 |\=====================================================================================/

Результат оказался лучше при меньшем объёме кэша!Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 28 / 32

Page 29: Исследование работы Кэш-памяти центрального процессора

Результаты эмуляции утилиты ls

Сгенерируем журнал (на 32-битной системе) и проведём эмуляцию дляутилиты ls – полученный журнал около 12 Мбайт.

Результат для большого кэша/=====================================================================================\| C.Lines | Words | Assoc. | Total size || Miss ctr | Hit ctr | Rate || LongHit ||---------|---------|---------|------------||----------|----------|--------||---------|| 14564 | 8 | 2 | 512 KB || 4190 | 167372 | 97.6% || 2670 || 14564 | 8 | 4 | 512 KB || 4190 | 167372 | 97.6% || 2670 || 26052 | 4 | 4 | 512 KB || 7765 | 163797 | 95.5% || 2454 || 42800 | 2 | 8 | 512 KB || 14463 | 157099 | 91.6% || 2439 || 62600 | 1 | 8 | 512 KB || 23570 | 147992 | 86.3% || 2406 || 42800 | 2 | 16 | 512 KB || 14464 | 157098 | 91.6% || 2439 |\=====================================================================================/

Результат для маленького кэша/=====================================================================================\| C.Lines | Words | Assoc. | Total size || Miss ctr | Hit ctr | Rate || LongHit ||---------|---------|---------|------------||----------|----------|--------||---------|| 256 | 64 | 16 | 64.9 KB || 1199 | 170363 | 99.3% || 5710 || 128 | 64 | 8 | 32.5 KB || 1657 | 169905 | 99.0% || 5710 || 128 | 64 | 16 | 32.5 KB || 1667 | 169895 | 99.0% || 5710 || 256 | 32 | 16 | 32.9 KB || 2092 | 169470 | 98.8% || 3572 || 128 | 32 | 16 | 16.5 KB || 2806 | 168756 | 98.4% || 3572 || 64 | 64 | 16 | 16.2 KB || 3061 | 168501 | 98.2% || 5710 |\=====================================================================================/

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 29 / 32

Page 30: Исследование работы Кэш-памяти центрального процессора

Заключение

В ходе анализа результатов, нами были сделаны следующие выводы:

Объём кэша влияет на эффективность работы (коэффициенткэш-попаданий) меньше, чем его организация. Оптимальноезначение находится в районе 32 Кбайт.

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

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

Исходные коды, журналы и полные версии таблиц доступны по адресу:https://github.com/SemenMartynov/SPbPU_ComputingSystems

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 30 / 32

Page 31: Исследование работы Кэш-памяти центрального процессора

Источники

Крис КасперскийТехника оптимизации программ. Эффективное использование памятиБХВ-Петербург - ISBN 5-94157-232-8; 2003 г.

Корныхин Е. В.Генерация тестовых данных для тестирования механизмов кэширования итрансляции адресов микропроцессоровПрограммирование, 2010,N N 1.-С.40-49

Сергей ПахомовЧто такое кэш процессора, и как он работаетКомпьютер Пресс. - 2013. - № 1. - С. 48-54

Ulrich DrepperMemory part 2: CPU cacheshttp://lwn.net/Articles/252125/

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 31 / 32

Page 32: Исследование работы Кэш-памяти центрального процессора

Вопросы?

Чёрная команда (СПбПУ) Кэш-память 23 ноября 2015 г. 32 / 32