Банк памяти


Банк па́мяти (англ. memory bank) — метод организации компьютерной памяти, при котором общее адресное пространство делится на несколько независимых блоков — банков, которые могут работать параллельно или поочерёдно. Это повышает пропускную способность памяти, снижает задержки и позволяет более эффективно использовать ресурсы памяти, минимизируя конфликты при доступе[1].

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

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

Принцип работы

  • Память разбивается на несколько одинаковых (или схожих по размеру) независимых блоков — банков.
  • Каждый банк имеет свой собственный набор линий адреса, шину данных и сигналы управления.
  • В зависимости от архитектуры, доступ к разным банкам может выполняться одновременно, что повышает общую пропускную способность.
  • Адресация физической памяти разделяется на:
    • номер банка — старшие биты адреса,
    • адрес внутри банка — младшие биты адреса[1].

В системах, использующих одноканальный доступ к памяти, банк памяти — это объём памяти (в битах), равный ширине шины данных центрального процессора. Таким образом, банк — это не фиксированный объём памяти, а величина, зависящая от ширины шины данных центрального процессора. Во всё большем количестве систем используется двухканальный доступ к памяти. В таких системах на банк памяти должны приходиться два одинаковых 64-битных модуля памяти (одинаковых по размеру, скорости и таймингам) вместо одного 64-битного модуля, который используется в одноканальном режиме[2].

Некоторые компьютеры имеют несколько идентичных банков оперативной памяти RAM и используют переключение банков для перехода между ними. Компьютеры с Гарвардской архитектурой имеют (как минимум) два различных банка памяти: один — для хранения программ и другой — для хранения данных.

Типы банков памяти

  • Статический: фиксированный размер, каждый банк обслуживает строго свой диапазон адресов.
  • Динамический: память динамически распределяется между банками, может использоваться в кэш-памяти и многобанковых структурах.
  • Чередующийся (англ. Interleaved banks): чередующаяся память — это метод, который компенсирует относительно низкую скорость динамической памяти с произвольным доступом DRAM (или основной памяти), равномерно распределяя адреса памяти по банкам памяти. Таким образом, последовательные операции чтения и записи в память поочерёдно используют каждый банк памяти, что приводит к повышению пропускной способности памяти за счёт сокращения времени ожидания готовности банков памяти к выполнению операций. Память разбивается на банки с чередованием адресов (например, адреса 0, N, 2N принадлежат разным банкам), что позволяет одновременно обслуживать несколько последовательных запросов[1].

В кэшировании

Банк памяти — это часть кэш-памяти, к которой осуществляется последовательная адресация в общем наборе банков памяти. То есть когда элемент данных a(n) хранится в банке b, элемент данных a(n + 1) хранится в банке b + 1.

Кэш-память делится на банки, чтобы избежать влияния времени цикла банка. Цикл банка памяти (англ. Memory Bank Cycle) — это время полного такта доступа к банку памяти, начиная с открытия и заканчивая закрытием. Это параметр, который характеризует быстродействие микросхемы памяти и определяет отношение интервала, в течение которого строка открыта для переноса данных (tRAS — RAS# Active time), к периоду, в течение которого завершается полный цикл открытия и обновления ряда (tRC — Row Cycle time)[3].

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

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

Применение

Преимущества и недостатки

Преимущества

  • Повышение пропускной способности памяти за счёт параллельного доступа.
  • Снижение задержек (латентности) при чтении/записи.
  • Уменьшение конфликтов при последовательных запросах.
  • Улучшение эффективности кеширования и агрегации данных.
  • Возможность масштабирования памяти с ростом числа банков.

Недостатки

  • Усложнение контроллера памяти — требуется адресация для управление несколькими банками.
  • Возможность конфликтов при одновременном обращении к одному банку.
  • Увеличение площади и энергопотребления из-за дублирования управляющей логики.
  • Неравномерная нагрузка при неправильном распределении адресов.
  • Дополнительные задержки из-за согласования между банками[1].

Примечания

  1. 1 2 3 4 5 Banks (Memory Banks). openxf.org (28 июля 2025). Дата обращения: 16 августа 2025.
  2. Memory Banks. flylib.com. Дата обращения: 16 августа 2025.
  3. Торгашин Р. Г. Память современных МС. https://btpit36.ru/ 11. ГБПОУ ВО "Борисоглебский техникум промышленных и информационных технологий" (2016). Дата обращения: 16 августа 2025.

Литература

Категории