Организация памяти вычислительной системы
Организация подсистемы памяти в ПК
Запоминающие устройства (ЗУ) подсистемы памяти ПК можно выстроить в следующую иерархию (табл. 9.1):
№ | Тип ЗУ | 1985 г. | 2000 г. | ||||
---|---|---|---|---|---|---|---|
Время выборки | Типичный объем | Цена / байт | Время выборки | Типичный объем | Цена / байт | ||
1 | Сверхоперативные ЗУ (регистры) | 0,2 5 нс | 16/32 бит | $ 3 - 100 | 0,01 1 нс | 32/64/128 бит | $ 0,1 10 |
2 | Быстродействующее буферное ЗУ (кэш) | 20 100 нс | 8Кб - 64Кб | ~ $ 10 | 0,5 - 2 нс | 32Кб 1Мб | $ 0,1 - 0,5 |
3 | Оперативное (основное) ЗУ | ~ 0,5 мс | 1Мб - 256Мб | $ 0,02 1 | 2 нс 20 нс | 128Мб - 4Гб | $ 0,01 0,1 |
4 | Внешние ЗУ (массовая память) | 10 - 100 мс | 1Мб - 1Гб | $ 0,002 - 0,04 | 5 - 20 мс | 1Гб - 0,5Тб | $ 0,001 - 0,01 |
Регистры процессора составляют его контекст и хранят данные, используемые исполняющимися в конкретный момент командами процессора. Обращение к регистрам процессора происходит, как правило, по их мнемоническим обозначениям в командах процессора.
Кэш используется для согласования скорости работы ЦП и основной памяти. В вычислительных системах используют многоуровневый кэш: кэш I уровня (L1), кэш II уровня (L2) и т.д. В настольных системах обычно используется двухуровневый кэш, в серверных - трехуровневый. Кэш хранит команды или данные, которые с большой вероятностью в ближайшее время поступят процессору на обработку. Работа кэш-памяти прозрачна для программного обеспечения, поэтому кэш-память обычно программно недоступна.
Оперативная память хранит, как правило, функционально-законченные программные модули (ядро операционной системы, исполняющиеся программы и их библиотеки, драйверы используемых устройств и т.п.) и их данные, непосредственно участвующие в работе программ, а также используется для сохранения результатов вычислений или иной обработки данных перед пересылкой их во внешнее ЗУ, на устройство вывода данных или коммуникационные интерфейсы.
Каждой ячейке оперативной памяти присвоен уникальный адрес. Организационные методы распределения памяти предоставляют программистам возможность эффективного использования всей компьютерной системы. К таким методам относят сплошную ("плоскую") модель памяти и сегментированную модель памяти. При использовании сплошной модели (flat model) памяти программа оперирует единым непрерывным адресным пространством линейным адресным пространством, в котором ячейки памяти нумеруются последовательно и непрерывно от 0 до 2n-1, где n - разрядность ЦП по адресу. При использовании сегментированной модели (segmented model) для программы память представляется группой независимых адресных блоков, называемых сегментами. Для адресации байта памяти программа должна использовать логический адрес, состоящий из селектора сегмента и смещения. Селектор сегмента выбирает определенный сегмент, а смещение указывает на конкретную ячейку в адресном пространстве выбранного сегмента.
Организационные методы распределения памяти позволяют организовать вычислительную систему, в которой рабочее адресное пространство программы превышает размер фактически имеющейся в системе оперативной памяти, при этом недостаток оперативной памяти заполняется за счет внешней более медленной или более дешевой памяти (винчестер, флэш-память и т.п.) Такую концепцию называют виртуальной памятью. При этом линейное адресное пространство может быть отображено на пространство физических адресов либо непосредственно (линейный адрес есть физический адрес), либо при помощи механизма страничной трансляции. Во втором случае линейное адресное пространство делится на страницы одинакового размера, которые составляют виртуальную память. Страничная трансляция обеспечивает отображение требуемых страниц виртуальной памяти в физическое адресное пространство.
Кроме реализации системы виртуальной памяти внешние ЗУ используются для долговременного хранения программ и данных в виде файлов.