Открыть сервис

Буферная память

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

Назначение и принцип работы

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

Механизм работы буфера базируется на циклическом (кольцевом) буфере или очереди типа FIFO (First In, First Out — первым пришёл, первым ушёл). При заполнении или опустошении буфера система управления инициирует приостановку или возобновление передачи (управление потоком). Объём буферной памяти определяет, насколько большие всплески данных может сгладить система без потерь.

Классификация и виды

По расположению

По типу использования

Применение в компьютерных системах

В накопителях данных

В жёстких дисках (HDD) и твердотельных накопителях (SSD) буферная память (кэш-память диска) объёмом 16–256 МБ используется для ускорения доступа к часто запрашиваемым данным, упорядочивания запросов в порядке их физического расположения на носителе (алгоритмы NCQ / TCQ) и кэширования записи. В NVMe-накопителях буфер встроен в контроллер и обменивается данными с DRAM чипа.

В процессорах

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

В звуковых и видеокартах

В системах ввода-вывода

Буферизация применяется в драйверах периферийных устройств. Буферы клавиатуры и мыши накапливают нажатия и движения, когда система занята обработкой других задач, предотвращая потерю данных при быстром вводе. Буферы последовательных портов (RS-232, USB) обеспечивают выравнивание скорости передачи между микроконтроллером и хост-компьютером.

В сетях и телекоммуникациях

В цифровой обработке сигналов

В АЦП и ЦАП буферная память (FIFO, кольцевой буфер) позволяет накапливать выборки сигнала для последующей цифровой обработки или для сглаживания прерывистого потока данных между разными тактовыми частотами.

Программная буферизация

В операционных системах буферизация реализуется на уровне ядра и приложений:

Интересные факты

Критика и ограничения

Источники

  1. Таненбаум Э. — Архитектура компьютера (6-е издание, 2013).
  2. Харрис Д., Харрис С. — Цифровая схемотехника и архитектура компьютера (перевод, 2021).
  3. Stallings W. — Computer Organization and Architecture (10th ed., 2016).
  4. Specification AT Attachment (ATA) Version 8 (T13).
  5. USB 3.2 Specification (USB Implementers Forum, 2021).
  6. RFC 5681 — TCP Congestion Control (IETF).
  7. Материалы документации ОС Linux: Documentation/filesystems/buffer.txt, Documentation/input/input.txt.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →