Архитектура компьютера

Тег «Виртуальная память»

Виртуальная память UltraSPARC III

UltraSPARC III — это 64-разрядная машина, которая поддерживает виртуальную память со страничной организацией и с 64-разрядными виртуальными адресами. Тем не менее по разным причинам программы не могут использовать 64-разрядное виртуальное адресное пространство целиком. Поддерживается только 44 бита, поэтому программы не могут превышать 1,8 х 1013 байт. Доступная виртуальная память делится на 2 зоны по 243 байт каждая, одна из которых находится в верхней части виртуального адресного пространства, другая — в нижней. Между ними находится свободная область, адреса которой не используются. Попытка обратиться к ним вызовет ошибку отсутствия страницы.

Максимальная физическая память компьютера UltraSPARC III составляет 241 байт (2200 Гбайт). Поддерживается 4 размера страниц: 8, 64 и 512 Кбайт, а также 4 Мбайт. Механизм отображения этих страниц показан на рис. 6.15.
Читать дальше »

Ваш отзыв

Реализация страничной организации памяти

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

Виртуальное адресное пространство разбивается на ряд страниц равного размера, обычно от 512 байт до 64 Кбайт, хотя иногда встречаются страницы по 4 Мбайт. Размер страницы всегда должен быть степенью двойки. Физическое адресное пространство тоже разбивается на части равного размера таким образом, чтобы каждая такая часть основной памяти вмещала ровно одну страницу. Эти части основной памяти называются страничными кадрами. На рис. 6.2 основная память содержит только один страничный кадр. На практике обычно имеются несколько тысяч страничных кадров.
Читать дальше »

Ваш отзыв

Страничная организация памяти

Идею о разделении понятий адресного пространства и адресов памяти выдвинула группа ученых из Манчестера. Рассмотрим в качестве примера типичный компьютер того времени с 16-разрядным полем адреса в командах и 4096 словами памяти. Программа, работающая на таком компьютере, могла обращаться к 65 536 словам памяти (поскольку адреса были 16-разрядными, а 216 = 65 536). Обратите внимание, что число адресуемых слов зависит только от числа битов адреса и никак не связано с числом реально доступных слов в памяти. Адресное пространство такого компьютера состоит из чисел 0, 1,2,65 535, так как это — набор всех возможных адресов. Однако в действительности компьютер мог иметь гораздо меньше слов в памяти.

До изобретения виртуальной памяти приходилось проводить жесткое различие между адресами, меньшими 4096, и адресами, равными или большими 4096. Эти две части рассматривались как полезное адресное пространство и бесполезное адресное пространство соответственно (адреса выше 4095 были бесполезными, поскольку они не соответствовали реальным адресам памяти). Никакого различия между адресным пространством и адресами памяти не проводилось, поскольку между ними подразумевалось взаимно-однозначное соответствие.
Читать дальше »

Ваш отзыв

Виртуальная память

В первых компьютерах память была очень мала по объему и к тому же дорого стоила. IBM-650, ведущий компьютер того времени (конец 50-х годов), содержал всего 2000 слов памяти. Один из первых 60 компиляторов ALGOL был написан для компьютера с объемом памяти всего 1024 слова. Древняя система с разделением времени прекрасно работала на компьютере PDP-1, общий объем памяти которого составлял всего 4096 18-разрядных слов для операционной системы и пользовательских программ. В те времена программисты тратили очень много времени, пытаясь вместить свои программы в крошечную память. Часто приходилось использовать более медленный алгоритм только потому, что более быстрый не удавалось разместить в памяти компьютера.
Читать дальше »

Ваш отзыв