Управление памятью в микропроцессорах семейства Х86, страница 9

Рис.III.15. Общая схема формирования физического адреса при включенной страничной организации памяти.

Отметим здесь следующее. По 32 разрядной шине данных могут передаваться как отдельные байты, так и слова, а также двойные слова. Выбор размерности операнда, при этом, определяется двумя младшими битами адреса: А1 и А0, которые дешифрируются в самом процессоре и выдаются в оперативную память в виде управляющих сигналов разрешения байт BE3#, BE2#, BE1# и BE0#, (знак # определяет активный сигнал низкого уровня). Таким образом, код на выводах А31…А2 указывает 4-х байтный фрагмент памяти, а управляющие сигналы на выводах BE3, BE2, BE1 и BE0 определяют байты, участвующие в операциях обмена. При этом:

·  активный сигнал на выводе BE0 адресует байт D7…D0;

·  активный сигнал на выводе BE1 адресует байт D15…D8;

·  активный сигнал на выводе BE2 адресует байт D23…D16;

·  активный сигнал на выводе BE3 адресует байт D31…D24.

Иллюстрация адресации байт, слов и двойных слов приведена на рисунке IV.16.

Отметим также, что передачи по полной 32-битной шине данных процессора считаются выровненными, если данные не перекрывают границ двойных слов (и, следовательно, они могут быть считанными за одно обращение к памяти). Слово выровнено, если его можно считать в любой из трех возможных позиций в пространстве двойного слова (см. рисунок III.17).

  Рис.III.16. Адресация байт, слов и двойных слов в МП х86.

Отметим также, что передачи по полной 32-битной шине данных процессора считаются выровненными, если данные не перекрывают границ двойных слов (и, следовательно, они могут быть считанными за одно обращение к памяти). Слово выровнено, если его можно считать в любой из трех возможных позиций в пространстве двойного слова (см. рисунок III.17).

Рис.III.17. Выравнивание данных на 32 – битной шине данных

Заметим, что, начиная с процессоров 5-го поколения (с процессоров Pentium), шина данных расширена до 64 разрядов (хотя внутренняя структура процессоров осталась той же, предназначенной для операций с 32 разрядными операндами). Следовательно, эти процессоры могут обмениваться с памятью не только двойными словами, но и квадрословами (учетверенными словами). Поэтому у них сразу декодируются сразу 3 младших разряда адреса A[2…0] и формируются уже 8 сигналов разрешения выдачи байтов BE[7…0].

                                 Структура страниц.

При разрешенном страничном преобразовании адреса линейное адресное пространство объемом 4Гбайт, получающееся после модуля сегментного преобразования, (при линейном адресе – 32 разряда) можно представить разделенным на 1М страниц по 4Кбайт каждая. Физическая оперативная память также представляется разделенной на страницы с тем же размером 4Кбайта (смотри рисунок III.18). Эти страницы физической памяти иногда называют страничными кадрами (Page frame).

Поскольку, даже в современных персональных компьютерах физическая память обычно не превышает 1 Гбайт, возможное виртуальное адресное пространство, равное  4Гбайт, существенно больше. Следовательно, в любой момент времени только часть всех страниц возможной виртуальной памяти  может присутствовать в физической оперативной памяти. Отсутствующие в физической памяти страницы обычно хранятся во внешней памяти, которой чаще всего служат накопители на жестких магнитных дисках. Фиксированный размер всех страниц позволяет загрузить любую нужную виртуальную страницу в любую физическую страницу (в любой страничный кадр).

  

Рис. III.18. Страничная память: а) виртуальная;

                                                      б) физическая.

К понятию страниц в адресном пространстве памяти компьютера.

00000000        00110000        01100000        10010000        11000000            11110000

00000001        00110001        01100001        10010001        11000001            11110001

00000010        00110010        01100010        10010010        11000010            11110010

00000011        00110011        01100011        10010011        11000011            11110011

00000100        00110100        01100100        10010100        11000100            11110100

00000101        00110101        01100101        10010101        11000101            11110101

00000110        00110110        01100110        10010110        11000110            11110110

00000111        00110111        01100111        10010111        11000111            11110111

00001000        00111000        01101000        10011000        11001000            11111000

00001001        00111001        01101001        10011001        11001001            11111001

00001010        00111010        01101010        10011010        11001010            11111010

00001011        00111011        01101011        10011011        11001011            11111011

00001100        00111100        01101100        10011100        11001100            11111100

00001101        00111101        01101101        10011101        11001101            11111101

00001110        00111110        01101110        10011110        11001110            11111110       

00001111        00111111        01101111        10011111        11001111            11111111

00010000        01000000        01110000        10100000        11010000      100000000

00010001        01000001        01110001        10100001        11010001      100000001

00010010        01000010        01110010        10100010        11010010      100000010     

00010011        01000011        01110011        10100011        11010011      100000011

00010100        01000100        01110100        10100100        11010100      100000100

00010101        01000101        01110101        10100101        11010101      100000101