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 год), где часть адресного пространства процессора отображалась непосредственно на энергонезависимую память.
Принцип работы
В традиционной архитектуре (фон Неймана) существует четкая иерархия памяти:
- Регистры процессора — сверхбыстрая, малого объема.
- Кэш-память (L1, L2, L3) — быстрая, среднего объема.
- Оперативная память (ОЗУ) — энергозависимая, быстрая, относительно большого объема.
- Постоянное хранилище (диск, 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 →