Кэш-память.-память небольшого объема с высокой скоростью работы

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

Память это тот компонент компьютера, в котором хранятся программы и данные. Основной единицей хранения данных в памяти является двоичный разряд, который называется битом. Бит – наименьшая единица памяти, может принимать значения 0 или 1.

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

Машинное слово - упорядоченный набор цифр, букв и других символов, хранящихся в памяти ЭВМ и воспринимаемых при обработке устройствами машины как единое слово, команда. Это машиннозависимая и платформозависимая величина, измеряемая в битах или байтах, равная разрядности регистров процессора и/или разрядности шины данных. Количество основных символов в машинном слове называется длиной слова; обычно машинное слово содержит целое число байтов.

Адреса памяти.

Память состоит из ячеек, каждая из которых может хранить некоторую порцию информации. Каждая ячейка имеет номер, который называется адресом. По этому адресу программы могут ссылаться на определенную ячейку. Если память содержит n ячеек, они будут иметь адреса от 0 до Кэш-память.-память небольшого объема с высокой скоростью работы - student2.ru . Все ячейки памяти содержат одинаковое число бит. Если ячейка состоит из k бит, она может содержать любую из Кэш-память.-память небольшого объема с высокой скоростью работы - student2.ru комбинаций. Ячейка - минимальная единица памяти, к которой можно обращаться.

Виды памяти.

По доступным операциям с данными память в компьютере можно разделить на следующие категории:

 ROM (read-only memory) - память только для чтения;

 RAM (random-access memory) - память для чтения/записи.

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

 Энергонезависимая память (nonvolatile storage) память, реализованная запоминающими устройствами (ЗУ), записи в которых не стираются при снятии электропитания. Энергонезависимая память в основном применяется для хранения неизменяемой (или редко изменяемой) информации - системного программного обеспечения BIOS (Basic Input-Output System), памяти конфигурации устройств (ESCD - Extended System Conguration Data), (EEPROM - Electrically Erasable ProgrammableRead-Only Memory) адаптеров.

 Энергозависимая память(volatile storage) память, реализованная ЗУ, записи в которых стираются при снятии электропитания. К этому типу памяти относятся память на оперативных запоминающих устройствах (ОЗУ), кэш-память.

Энергозависимую память также можно разделить на две категории:

 Статическая память SRAM (Static Random Access Memory) способна хранить информацию в статическом режиме - то есть сколь угодно долго при отсутствии обращений (но при наличии питающего напряжения). Ячейки статической памяти реализуются на триггерах - элементах с двумя устойчивыми состояниями (0 или 1). По сравнению с динамической памятью эти ячейки более сложные и занимают больше места в кристалле, однако они проще в управлении и не требуют регенерации.

 Динамическая память DRAM (Dynamic Random Access Memory) получила свое название от принципа действия ее запоминающих ячеек, которые выполнены в виде конденсаторов, образованных элементами полупроводниковых микросхем. При записи логической единицы в ячейку конденсатор заряжается, при записи нуля - разряжается. Благодаря относительной простоте ячейки динамической памяти на одном кристалле удается размещать миллионы ячеек и получать дешевую полупроводниковую память достаточно высокого быстродействия с умеренным энергопотреблением, используемую в качестве основной памяти компьютера.

По назначению память можно разделить на следующие категории:

 Буферная память - память, предназначенная для временного хранения данных при обмене ими между различными устройствами или программами.

 Временная память (temporary memory) - память для хранения промежуточных результатов обработки.

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

 Разделяемая память или память коллективного доступа (shared memory или shared access memory) - память, доступная одновременно нескольким пользователям, процессам или процессорам.

Кэш-память.-память небольшого объема с высокой скоростью работы.

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

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

Кэш-память.-память небольшого объема с высокой скоростью работы - student2.ru

Кэш-память должна находиться между процессором и основной памятью

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

Пусть c время доступа к кэш-памяти, t время доступа к основной памяти и h коэффициент кэш-попаданий (hit ratio), который показывает соотношение числа обращений к кэш-памяти и общего числа всех обращений к памяти Кэш-память.-память небольшого объема с высокой скоростью работы - student2.ru .

Коэффициент кэш-промахов (miss ratio), равен 1-h

Таким образом, среднее время доступа можно вычислить по следующей формуле:

среднее время доступа =c + (1-h)t.

Если h 1, то есть все обращения делаются только к кэш-памяти, то время доступа стремится к c. С другой стороны, если h0, то есть каждый раз нужно обращаться к основной памяти, то время доступа стремится к c + t: сначала требуется время c для проверки кэш-памяти (в данном случае безуспешной), а затем - время t для обращения к основной памяти.

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

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

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

1. Объем кэш-памяти - чем больше объем, тем более эффективно она работает, но тем дороже стоит.

2. Размер строки кэша - кэш-память объемом 16 Кбайт можно разделить на 1024 строки по 16 байт, 2048 строк по 8 байт и т. д.

3. Проблема выбора слов, которые необходимо помещать в кэш-память.

4. Нахождение команд и данных в общей кэш-памяти. В объединенной кэш-памяти (unied cache) хранятся и данные и команды. В настоящее время существует тенденция к использованию разделенной кэш-памяти (split cache), когда команды хранятся в одной кэш-памяти, а данные - в другой (Гарвардская архитектура). Разделенная кэш-память позволяет осуществлять параллельный доступ, а общая - нет.

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

В зависимости от способа определения взаимного соответствия строки кэша и области основной памяти различают три архитектуры кэш-памяти: кэш прямого отображения (direct-mapped cache), полностью ассоциативный кэш (fully associative cache) и их комбинация - частично-ассоциативный или наборно-ассоциативный кэш (set-associative cache).

Наши рекомендации