Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / РБПО Лекция 1.pptx
Скачиваний:
6
Добавлен:
22.03.2023
Размер:
2.69 Mб
Скачать

Локальность данных

Временная локальность

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

Следует сохранить прочитанные данные в кеш

14/

44

Пространственная локальность

Если мы обратились к некоторой области памяти, то, скорее всего, обратимся к данным в ближайшей окрестности.

Следует сохранить в кеш чуть больше данных, чем нужно в данный момент времени

Москва, осень 2021 г.

Разработка безопасного программного обеспечения | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

15/

44

Перемещение данных между кешем и ОЗУ

Между ОЗУ и кешем данные перемещаются блоками, которые называются строками кеша.

Размер строки кеша фиксирован и в подавляющем большинстве современных компьютеров составляет 64 байта

Передача данных между процессором и DRAM производится блоками по 64 бита (8 байт), поэтому для заполнения строки кеша необходимо восемь передач

Москва, осень 2021 г.

Разработка безопасного программного обеспечения | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

16/

44

Выравнивание данных в памяти

Большинство процессорных

 

архитектур спроектировано

 

с расчетом на то, что данные

 

в памяти правильно выровнены.

Это означает, что начальный адрес

 

данных кратен некоторому

 

количеству байтов.

Для каждого типа определено свое

 

выравнивание, а выравнивание

 

структуры данных зависит от

 

выравнивания ее полей.

 

Обращение к невыровненным

 

данным может оказаться

 

в несколько раз медленнее, чем

 

к выровненным.

Разработка безопасного программного обеспечения | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

Москва, осень 2021 г.

17/

44

Влияние кэша на выравнивание данных

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

Москва, осень 2021 г.

Разработка безопасного программного обеспечения | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

18/

44

Пример. Доступ к массиву размера 5000x5000

  По строкам По столбцам

int[,] tab = new int[n, m]; for (int i = 0; i < n; ++i)

{for (int j = 0; j < m; ++j)

{

=1;tab[i, j]

} }

int[,] tab = new int[n, m]; for (int i = 0; i < n; ++i)

{for (int j = 0; j < m; ++j)

{

=1;tab[j, i]

} }

Москва, осень 2021 г.

Разработка безопасного программного обеспечения | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

19/

44

Результаты доступа к массивам по строкам и по столбцам

Доступ

По

По

строкам

столбцам

 

ПК

52 мс

401 мс

Ноутбук

127 мс

413 мс

Rasberry PI

918 мс

2001 мс

2

 

 

Москва, осень 2021 г.

Разработка безопасного программного обеспечения | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

20/

44

Иерархический кеш

Операция

Задержка

Кеш L1

< 2,0 нс

Кеш L2

4,8 нс

Кеш L3

14,4 нс

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

71,4 нс

Жесткий диск

150 000 нс

Москва, осень 2021 г.

Разработка безопасного программного обеспечения | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

21/

44

Процессорный кеш в многоядерных процессорах

Москва, осень 2021 г.

Разработка безопасного программного обеспечения | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

Память

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

ОЗУ – оперативное запоминающее устройство. Это энергозависимая память с произвольным доступом: RAM – Random Access Memory.

22/

44

Москва, осень 2021 г.

Разработка безопасного программного обеспечения | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

 

23/

 

44

Память

 

Статическое оперативное

Динамические оперативные

запоминающее устройство (SRAM)

запоминающие устройства (DRAM)

Обеспечивает самый быстрый доступ,

конструкция ячейки очень проста

но весьма сложно и насчитывает от

(гораздо меньше, чем в SRAM) и

4 до 6 транзисторов на каждую

состоит из одного транзистора и

ячейку (для хранения одного бита).

одного конденсатора.

Данные в них сохраняются до тех

Из-за утечки конденсатора ячейка

пор, пока подается электропитание,

нуждается в периодическом

обновление не требуется. Из-за

обновлении. Операции чтения и

высокого быстродействия

записи занимают время и нелинейны

используется преимущественно

из-за задержек конденсатора.

в процессорных кешах.

 

Москва, осень 2021 г.

Разработка безопасного программного обеспечения | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

24/

44

Внутреннее

устройство SDRAM, DDR, DDR2, DDR3, DDR4

Москва, осень 2021 г.

Разработка безопасного программного обеспечения | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

25/

44

Выравнивание данных

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

Москва, осень 2021 г.

Разработка безопасного программного обеспечения | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

26/

44

Машинное слово

Пара подряд идущих байтов называется машинным словом (word). Слово располагается так, чтобы минимальный из адресов байтов был четным (это называется выравниванием – слово выравнивается на четный адрес).

Один из байтов старший, а другой младший.

Где расположен младший байт? В разных компьютерах по- разному. Если впереди, то говорят, что компьютер мелкоконечный (little-endian – этот термин ввел Джонатан Свифт в «Путешествие Гулливера»). Если сзади, то компьютер крупноконечный (big-endian).

Наши персональные компьютеры – мелкоконечные, и когда вы находите в памяти целое число, занимающее два байта, например, 515 = 020316, то в первом байте пишется 03, а во втором – 02.

Москва, осень 2021 г.

Разработка безопасного программного обеспечения | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

 

 

27/

Порядок следования байтов

44

 

big-endian (от старшего к

little-endian (от младшего к

 

младшему)

старшему)

 

Старшие разряды хранятся в

Старшие разряды хранятся в старших

младших байтах

байтах

 

Москва, осень 2021 г.

Разработка безопасного программного обеспечения | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

Соседние файлы в папке Лекции