Линейный адрес представляет собой 32-битовый адрес в однородном, несегментированном адресном пространстве. Это адресное пространство может являться большим физическим адресным пространством (т.е. адресным пространством, состоящим из 4 гигабайт оперативной памяти), либо может использоваться средство подкачки страниц, моделирующее это адресное пространство при помощи небольшой области оперативной памяти и некоторого количесства дисковой памяти. При использовании подкачки страниц линейный адрес транслируется в соответствующий физический адрес, либо генерируется исключение. Это исключение дает операционной системе возможность прочитать страницу с диска (возможно, вытеснив на диск другую страницу), а затем перезапустить команду, вызвавшую данное исключение.
Механизм подкачки отличается от механизма сегментации тем, что в данном случае используются небольшие, имеющие фиксированный размер страницы. В отличие от сегментов, которые обычно имеют размер, равный размеру содержащихся в них структур данных, страницы процессора i486 всегда имеют размер 4К. Если сегментация является единственной используемой формой трансляции адреса, структура данных, находящаяся в физической памяти, будет иметь в памяти все свои компоненты одновременно. При использовании механизма подкачки страниц структура данных может частично находиться в оперативной памяти, и частично в дисковой памяти.
Информация, обеспечивающая отображение линейных адресов в физические адреса и отвечающая за генерацию исключений в случае несоответствий, хранится в структурах данных оперативной памяти, которые называются таблицами страниц. Как и в случае сегментации, эта информация кешируется в регистрах процессора с тем, чтобы минимизировать число циклов шины, требуемое для трансляции адреса. В отличие от механизма сегментации, эти регистры процессора полностью невидимы для прикладных программ. (Для целей тестирования эти регистры видны программам, выполняемым с максимальным уровнем привилегированности: подробности см. в Главе 10).
Механизм подкачки страниц рассматривает 32-разрядный линейный адрес как состоящий из трех частей, а именно двух 10-разрядных индексов страничных таблиц и 12-заррядное смещение в таблице, адресуемой страничными таблицами. Поскольку как виртуальные страницы в линейном адресном пространстве, так и физические страницы памяти выравнены по 4Кбайтной границе страниц, модифицировать младшие 12 битов адреса нет необходимости. Эти 12 битов напрямую передаются аппаратному обеспечению, работающему с подкачкой страниц, независимо от того, разрешена ли подкачка в текущий момент, или запрещена. Отметим, что в этом состоит отличие от сегментации, поскольку сегменты могут начинаться с любого адреса байта. Старшие 20 битов адреса используется для индексации страничных таблиц. Если все страницы линейного адресного пространства отображались бы в одной таблице страниц в оперативной памяти, то для этого потребовалось бы 4Мб памяти. Делается это не так. Для экономии памяти используются страничные таблицы двух уровней. Страничная таблица верхнего уровня называется страничным каталогом. В нем отображаются старшие 10 битов линейного адреса табличных страниц второго уровня. Во втором уровне страничных таблиц отображаются средние 10 битов линейного адреса, задающего базовый адрес страницы в физической памяти (который называется адресом страничного блока). На базе содержимого таблицы страниц или каталога страниц может генерироваться исключение. Оно дает операционной системе возможность подкачать отсутствующую таблицу страниц с диска. Благодаря тому, что страничные таблицы второго уровня могут находиться на диске, механизм подкачки страниц может поддерживать отображение всего линейного адресного пространства при помощи всего нескольких страниц памяти. Регистр CR3 содержит адрес страничного блока каталога страниц. Поэтому он называется базовым регистром каталога страниц, или PDBR. Старшие 10 битов линейного адреса умножаются на масштабный коэффициент четыре (число байтов каждого элемента таблицы страниц) и складывается со значением регистра PDBR для получения физического адреса элемента в каталоге страниц. Поскольку адрес страничного блока всегда имеет незаполненными младшие 12 бит, то такое сложение выполняется методом конкатенации (замещения младших 12 битов масштабированным индексом). При доступе к элементу каталога страниц выполняется несколько проверок: исключения могут генерироваться, если страница защищена или отсутствует в памяти. Если особая ситуация не генерировалась, то старшие 20 битов элемента таблицы страниц используются в качестве адреса страничного блока таблицы страниц второго уровня. Средние 10 битов линейного адреса масштабируются коэффициентом четыре (снова это число равно размеру элемента таблицы страниц) и конкатенируются с адресом страничного блока для получения физического адреса элемента в таблице страниц второго уровня. И опять, выполняются проверки доступа, в результате которых возможна генерация исключений. Если же исключений не возникло, то старшие 20 битов элемента таблицы страниц второго уровня конкатенируются с младшими 12 битами линейного адреса, образуя физический адрес операнда (данных) в оперативной памяти. Хотя такой процесс и может показаться сложным, затраты процессорного сремени на него невелики. Процессор имеет кеш элементов таблицы страниц, который называется ассоциативным буфером трансляции адреса (TBL). TBL удовлетворяет большинство запросов чтения страничных таблиц. дополнительные циклы шины затрачиваются только при доступе к новым страницам памяти. Размер страницы (4К) достаточно велик, поэтому по сравнению с числом циклов шины, затрачиваемых на выполнение команд и обращение к данным, число циклов для доступа к таблицам страниц относительно невелико. Одновременно с этим размер страницы достаточно мал, чтобы память использовалась наиболее эффективно. (Независимо от фактической величины структуры данных, она занимает не меньше одной страницы памяти).