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

Single-Level Storage

Single-Level Storage (SLS, одноуровневая память) — это архитектурная концепция организации вычислительных систем, при которой все данные (как оперативная память, так и постоянное хранилище) представляются процессору и операционной системе в виде единого, непрерывного адресного пространства, доступного для прямого чтения и записи без явного управления перемещением данных между уровнями иерархии памяти. В отличие от традиционной модели, где процессор обращается к оперативной памяти (ОЗУ) по одним адресам, а к диску — по другим (через файловую систему), SLS стирает это различие, делая все хранилище адресуемым на уровне байтов.

История

Идея одноуровневой памяти восходит к ранним работам в области вычислительной техники 1960-х годов. Одним из первых проектов, реализовавших эту концепцию, стала система IBM System/38, анонсированная в 1978 году и выпущенная в 1979 году. В System/38 использовалась технология Single-Level Storage, разработанная под руководством Фрэнка Солтиса. В этой системе все данные — код, переменные, файлы, объекты — хранились в едином 64-битном адресном пространстве, а управление перемещением данных между ОЗУ и диском осуществлялось аппаратно-программным комплексом, прозрачно для прикладного программиста. System/38 стала коммерчески успешной и заложила основу для более поздних систем IBM, таких как AS/400 (ныне IBM i).

В 1980-х годах концепция SLS развивалась в рамках исследовательских проектов, в частности, в Кембриджском университете (система CAP) и в Стэнфордском университете (система V). Однако широкого распространения в массовых компьютерах она не получила из-за сложности аппаратной реализации и высокой стоимости.

В 1990-х годах с развитием технологий флеш-памяти (NAND) и твердотельных накопителей (SSD) интерес к SLS возродился. В 2010-х годах компания Intel представила технологию Optane Memory (на базе 3D XPoint), которая обеспечивала скорость, близкую к ОЗУ, и сохраняла данные при отключении питания. Это позволило реализовать SLS в коммерческих продуктах, например, в системе Intel Optane Persistent Memory (2019 год), где часть адресного пространства процессора отображалась непосредственно на энергонезависимую память.

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

В традиционной архитектуре (фон Неймана) существует четкая иерархия памяти:

  1. Регистры процессора — сверхбыстрая, малого объема.
  2. Кэш-память (L1, L2, L3) — быстрая, среднего объема.
  3. Оперативная память (ОЗУ) — энергозависимая, быстрая, относительно большого объема.
  4. Постоянное хранилище (диск, SSD) — энергонезависимое, медленное, очень большого объема.

Прикладная программа оперирует виртуальными адресами, которые через страничную таблицу преобразуются в физические адреса ОЗУ. Если данные отсутствуют в ОЗУ (страничный промах), операционная система (ОС) загружает их с диска в ОЗУ, вытесняя при необходимости другие данные. Этот процесс (свопинг) требует явного управления со стороны ОС и приложения (например, вызовов read()/write()).

В архитектуре Single-Level Storage этот процесс автоматизирован и скрыт. Ключевые элементы:

  • Единое адресное пространство. Все данные (и временные, и постоянные) имеют уникальные виртуальные адреса в одном пространстве. Файловая система, если она существует, работает поверх этого пространства, а не независимо.
  • Аппаратный менеджер памяти. Специализированный блок (часто в составе процессора или чипсета) управляет перемещением данных между ОЗУ и энергонезависимым хранилищем. Он использует таблицы отображения, которые связывают виртуальные адреса с физическими блоками на диске или в ОЗУ.
  • Прозрачность. Прикладная программа не знает, где физически находятся данные — в ОЗУ или на диске. Она просто обращается к адресу, и аппаратура либо находит данные в ОЗУ (попадание), либо загружает их с диска (промах), приостанавливая программу на время загрузки. Для программы это выглядит как обычное чтение из памяти.
  • Энергонезависимость. Все данные, однажды записанные в это пространство, сохраняются при выключении питания. Это достигается за счет того, что часть адресного пространства отображается на энергонезависимое хранилище (например, SSD или флеш-память).

Классификация реализаций

Реализации SLS можно разделить на два основных подхода:

Аппаратная реализация (Hardware SLS)

В этом случае вся логика управления памятью встроена в аппаратное обеспечение (процессор, контроллер памяти). Примеры:

  • IBM System/38 и AS/400: использовали специализированный процессор (IMP — Integrated Memory Processor) для управления SLS.
  • Intel Optane Persistent Memory: модули памяти, которые подключаются к шине памяти (DDR-T), и процессор может адресовать их напрямую. Аппаратура сама решает, какие данные хранить в DRAM (быстрый кэш), а какие — в Optane (медленное, но энергонезависимое хранилище).

Программная реализация (Software SLS)

Здесь концепция реализуется на уровне операционной системы или гипервизора. Аппаратура предоставляет стандартную память и диски, а ОС эмулирует единое адресное пространство, управляя перемещением данных. Примеры:

  • IBM i (операционная система для AS/400): полностью построена на концепции SLS, но на современных аппаратных платформах (Power) часть работы выполняется программно.
  • Системы управления базами данных (СУБД): некоторые СУБД, такие как SAP HANA, используют подход «in-memory computing», где все данные хранятся в ОЗУ, а на диск сбрасываются только для сохранения. Это можно рассматривать как частный случай SLS, хотя и не полный.

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

  • Упрощение разработки. Программисту не нужно заботиться о ручном управлении памятью и диском (вызовы malloc, free, read, write). Он просто работает с указателями.
  • Повышение производительности. Устраняются накладные расходы на системные вызовы для операций ввода-вывода (I/O). Данные перемещаются между уровнями памяти автоматически, часто с использованием предвыборки (prefetching), что снижает задержки.
  • Надежность и целостность. Единое адресное пространство упрощает реализацию механизмов защиты памяти и транзакций. В IBM i это привело к высокой устойчивости системы к сбоям.
  • Эффективное использование ресурсов. Память и диск используются как единый пул, что позволяет избежать фрагментации и неэффективного распределения, характерного для традиционных систем.

Недостатки

  • Сложность реализации. Требует сложного аппаратного и программного обеспечения, что увеличивает стоимость и время разработки.
  • Зависимость от аппаратуры. Для полноценной реализации SLS необходима специализированная аппаратура (например, процессоры с поддержкой больших адресных пространств и быстрых таблиц отображения).
  • Проблемы с производительностью при большом объеме данных. Если объем данных значительно превышает объем ОЗУ, частые промахи (загрузка с диска) могут привести к резкому падению производительности (thrashing).
  • Сложность отладки. Ошибки в управлении памятью (например, утечки) могут быть труднее обнаружимы, так как они скрыты за прозрачным слоем SLS.

Применение

  • Мейнфреймы и серверы высокой надежности. Системы IBM i (AS/400) широко используются в банковской сфере, на транспорте и в других отраслях, где требуется высокая отказоустойчивость и простота администрирования.
  • Системы реального времени. В некоторых авиационных и промышленных контроллерах SLS позволяет гарантировать время доступа к данным.
  • Базы данных и аналитика. СУБД, работающие с большими объемами данных, могут выиграть от SLS, так как она устраняет задержки на дисковый ввод-вывод.
  • Облачные вычисления. Гипервизоры, такие как VMware ESXi, используют концепцию «единого пула памяти» (memory overcommitment), которая является частичной программной реализацией SLS.

Примеры систем

  • IBM System/38 (1979) — первая коммерческая система с полноценной SLS.
  • IBM AS/400 (1988) — преемник System/38, сохранивший архитектуру SLS. Современная версия — IBM Power Systems с ОС IBM i.
  • Intel Optane Persistent Memory (2019) — аппаратная реализация SLS на базе памяти 3D XPoint.
  • HP NonStop — система с архитектурой, близкой к SLS, ориентированная на отказоустойчивость.
  • Microsoft Windows (частично) — функция Memory-Mapped Files позволяет отображать файлы в адресное пространство процесса, что является программной реализацией SLS на уровне приложения.

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

  • Термин «Single-Level Storage» был введен компанией IBM в 1970-х годах. Внутри IBM его также называли «Storage Hierarchy» или «Object Storage».
  • В системе IBM i все объекты (программы, файлы, очереди сообщений) имеют уникальные идентификаторы, которые являются частью единого адресного пространства. Это позволяет системе автоматически управлять зависимостями между объектами.
  • Концепция SLS оказала влияние на разработку современных технологий, таких как NVM Express (NVMe) и Compute Express Link (CXL), которые стремятся к унификации доступа к памяти и хранилищу.

Источники

  • Солтис, Ф. «Проектирование и реализация System/38». IBM Systems Journal, 1979.
  • IBM. «Single-Level Storage: An Overview». IBM Redbooks, 1990.
  • Intel. «Intel Optane Persistent Memory: Architecture and Performance». Intel Corporation, 2019.
  • Таненбаум, Э. «Современные операционные системы». 4-е издание, 2015.
  • «IBM i: A Technical Introduction». IBM Corporation, 2020.

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

На главную BFOmetr →