Обзор трансляции адреса
Обзор трансляции адреса
На рисунке 8.3 показана трансляция адреса PowerPC в режиме активных тегов. Аппаратура определяет, является ли 64-разрядный адрес, используемый программой, транслируемым адресом, адресом E = R или адресом E = DS. Для классификации используются старшие 12 разрядов (3 шестнадцатиричные цифры) эффективного адреса. Если эти три старшие цифры равны 800, то это адрес E = R. Некоторые компоненты SLIC, которым нужен доступ ко всем частям памяти, работают с реальными адресами, как и большая часть кода управления памятью. Часть пространства эффективных адресов зарезервирована для адресов E = R. Не случайно именно 252 этих адресов (64 разряда — 12 старших разрядов для 800 = 252) соответствуют диапазону реальных адресов.
Рисунок 8.3. Трансляция адреса в режиме активных тегов
Когда аппаратура обнаруживает адрес E=R, она проверяет разряд проблемного состояния, чтобы определить, может ли процесс, сгенерировавший такой адрес, выполнять привилегированные команды: PowerPC (MSRPR = 0). Если это так, то остальные 52 разряда адреса E=R передаются непосредственно основной памяти как реальный адрес. Если MSRPR = 1, то в зависимости от версии процессора, он будет либо генерировать прерывание, либо рассматривать адрес как транслируемый — разные процессоры PowerPC реагируют по-разному. Если использование адреса E=R допустимо, то накладных расходов при трансляции адреса не возникает. Мы любим говорить, что число 800 — ключ, открывающий бесплатный доступ к памяти.
Для доступа к пространству ввода-вывода, которое мы кратко обсудили в главе 2, в архитектуре PowerPC используется диапазон адресов, называемых адресами прямого сохранения. Это внешнее адресное пространство, которое для процессора выглядит как часть памяти. На самом деле, оно, конечно, таковым не является; эти адреса используются для обозначения подключенных к системе устройств ввода-вывода.
Обычно, устройства в любой системе подключены к шине ввода-вывода. В главе 10 мы расскажем, что устройства AS/400 подключены к процессорам ввода-вывода, которые, в свою очередь, подключены к шинам ввода-вывода. Таким образом, адрес прямого сохранения используется в AS/400 для идентификации как шины ввода-вывода, так и подключенного к ней процессора ввода-вывода.
В архитектурах данного типа, которые часто называют вводом-выводом, отображенным в память, специальный набор команд процессора для работы с устройствами не требуется. Взамен для передачи команд и данных применяют любые команды загрузки или сохранения в это внешнее адресное пространство.
Если старшие три шестнадцатиричные цифры эффективного адреса равны 801, то это адрес E = DS. Обнаружив этот адрес, аппаратура проверяет разряд проблемного состояния, чтобы определить, может ли процесс, сгенерировавший адрес, выполнять привилегированные команды PowerPC (MSRPR= 0). Если это так, то остальные 52 разряда адреса E = DS передаются непосредственно пространству ввода-вывода. Как и адреса E = R, адреса E = DS имеют 228 эффективных сегмента. Если MSRPR = 1, то в зависимости от версии процессора, он будет либо генерировать прерывание, либо рассматривать адрес как транслируемый.
Если три старшие шестнадцатиричные цифры не равны ни 800, ни 801, то это транслируемый адрес. Так как система находится в режиме активных тегов, то эффективный адрес является виртуальным. Для трансляции виртуального адреса в реальный используется таблица страниц.
Рисунок 8.4. Этапы трансляции адреса (режим активных тегов)
На рисунке 8.4 представлены этапы трансляции адреса в режиме активных тегов. Старшие 40 разрядов эффективного адреса называются идентификатором эффективного сегмента (ESID), а младшие 24 — смещением. Как показано на рисунке, смещение подразделяется на страничное и байтовое. Каждое из полей смещения имеет длину 12 разрядов. Страничное смещение задает страницу сегмента, а байтовое — байт страницы.
Первый шаг процесса трансляции — создание идентификатора виртуального сегмента (VSID). В режиме активных тегов это просто ESID. Виртуальный адрес, как и эффективный, имеет размер 64 разряда и включает 24-разрядное смещение. VSID и страничное смещение виртуального адреса составляют номер виртуальной страницы (VPN). На рисунке 8.4 видно, что VPN имеет длину 52 разряда. VPN используется для определения номера реальной страницы (RPN) по таблице страниц. RPN — это номер страничного фрейма в памяти, а не номер страницы на диске. Байтовое смещение всегда передается от эффективного адреса виртуальному и затем реальному без изменений. Оно задает байт на 4-килобайтной странице и никогда не участвует в процессе трансляции.
Для сравнения на рисунке 8.5 показаны этапы трансляции адреса в режиме неактивных тегов. Данный механизм трансляции не используется в AS/400, но все же полезно представлять себе как сходство, так и различие трансляции адреса в AS/400 и в таких ОС, как AIX. В данном случае, ESID используется для обращения к таблице сегментов, из которой извлекается VSID. Обращение к таблице страниц, которое мы скоро рассмотрим, в режимах активных и неактивных тегов выполняется одинаково. Следует также отметить размер полей адреса. В режиме неактивных тегов порции смещения (поля страницы и байта) эффективного и виртуального адреса равны 28 разрядам, в режиме активных тегов — 24. 28 разрядов были выбраны в соответствии с числом разрядов смещения в прежней 32-разрядной архитектуре Power и по-прежнему используются на некоторых процессорах RS/6000.
Рисунок 8.5. Этапы трансляции адреса (режим неактивных тегов)
Мы не станем подробно рассматривать таблицу сегментов и сосредоточим свое внимание на таблице страниц. Ее реализация очень похожа на реализацию таблицы сегментов, где для поиска записи применяется тот же общий подход.
В AS/400 трансляция виртуального адреса в реальный, использующая таблицу страниц, более важна, чем трансляция сегментов, так как большинство эффективных адресов обходят таблицу сегментов.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
17.1.4. Адреса
17.1.4. Адреса Поскольку каждый протокол поддерживает собственное определение сетевого адреса, интерфейс сокетов должен абстрагировать адреса. В качестве базовой формы адреса используется структура struct sockaddr; его содержимое устанавливается по-разному для каждого
Адреса
Адреса Часто на Web-страницах указывают контактные данные их создателей (почтовые и электронные адреса, телефоны, факсы и пр.). Для этого HTML предусматривает особый тег <ADDRESS>. Он ведет себя так же, как тег абзаца <P>, но его содержимое выводится курсивом:<ADDRESS>Я — адрес
Интернет-адреса в WWW
Интернет-адреса в WWW Об интернет-адресах файлов мы говорили еще в главе 1. Однако WWW привносит в них кое-что новое, что нам обязательно нужно знать.Рассмотрим первый пример гиперссылки из предыдущего раздела. Ее интернет-адрес таков: http://www.somesite.ru/pages/page125.html. Он содержит и
Адреса URL
Адреса URL Чтобы гиперссылки могли связать в единую сеть все веб-документы планеты, у каждой страницы в Интернете должен быть свой уникальный адрес. Этот адрес называют URL (Uniform Resource Locator – универсальный указатель ресурса).В URL входят имя домена, названия файла и каталога,
IР-адреса
IР-адреса Вообще, доменные адреса предназначены исключительно для пользователей. Компьютеру же гораздо удобнее работать с цифровыми именами, называемыми IP-адресами. IP-адрес – это тот же адрес домена, но написанный на понятном компьютеру языке. Он состоит из 32-разрядного
Трансляции навстречу читателям
Трансляции навстречу читателям Метки: аудитория, продвижение, RSSКогда я писал книгу, у моего провайдера возникла проблема с серверами, и Blogbook.ru пару дней был недоступен. К счастью, все записи остались целы. Но приходится задумываться о том, как избежать подобных
Адреса
Адреса Часто на Web-страницах указывают контактные данные их создателей (почтовые и электронные адреса, телефоны, факсы и пр.). Для этого HTML предусматривает особый тег <ADDRESS>. Он ведет себя так же, как тег абзаца <P>, но его содержимое выводится курсивом:<ADDRESS>Я — адрес
Используем адреса
Используем адреса В жизни каждого пользователя наступает момент, когда ему надоедает безвольно болтаться по волнам Интернета. Он точно знает, чего именно хочет в жизни и какой интернет-ресурс в данный момент ему необходим. Тогда ему на помощь приходит Великое знание URL
5.8 Адреса
5.8 Адреса В протоколе IP используются IP-адреса, которые идентифицируют хосты и маршрутизаторы для пересылки на них информации. Каждому хосту нужно присвоить уникальный IP-адрес, который и будет использоваться в реальном взаимодействии. Имена хостов транслируются в
12.14 Пример файла трансляции имен в адреса
12.14 Пример файла трансляции имен в адреса Рис. 12.6 демонстрирует файл трансляции имен в адреса для нашего мифического домена fishfood.com. Файл содержит несколько комментариев, которые отмечены символом точки с запятой
22.5.1 Неспецифицированные адреса
22.5.1 Неспецифицированные адреса Адреса со всеми нулями0:0:0:0:0:0:0:0означают "неспецифицированные адреса" (unspecified address). Они иногда используются как адрес источника во время инициализации, когда система еще не знает собственного
22.5.3 Адреса версии 4
22.5.3 Адреса версии 4 В смешанном окружении адресов версий 4 и 6 IP-адреса систем версии 4, которые не поддерживают версию 6, отображаются в адреса версии 6 следующим образом:0:0:0:0:0:FFFF:a.b.c.dгде a.b.c.d — исходный
R.3.7 Адреса
R.3.7 Адреса Любой объект - это некоторая область памяти, адрес - выражение, ссылающееся на объект или функцию. Очевидным примером адреса будет имя объекта. Существуют операции, порождающие адреса, например, если E выражение типа указатель, то *E - адресное выражение,
Альтернативный способ трансляции
Альтернативный способ трансляции В некоторых компиляторах с языка Си, работающих на персональных ЭВМ, реализованы другие способы трансляции. Метод, который только что обсуждался, можно охарактеризовать тем, что в результате мы получаем файл, содержащий объектный код
Системы, построенные на основе трансляции в ассемблерный код
Системы, построенные на основе трансляции в ассемблерный код Некоторые из таких систем позволяют компилировать функции, содержащиеся в нескольких файлах, сразу так же, как в ОС UNIX с помощью команды: сс filel.с file2.cили какого-то ее эквивалента. В некоторых случаях вы
На YouTube появятся «живые» трансляции Михаил Карпов
На YouTube появятся «живые» трансляции Михаил Карпов ОпубликованоМихаил Карпов 14 сентября 2010 года на видеосайте YouTube, принадлежащем Google, начались открытые испытания технологии потокового видео. Канал с «живым» видео, в котором можно посмотреть