Московский государственный университет путей сообщения
Опубликован: 11.04.2006 | Доступ: свободный | Студентов: 1241 / 258 | Оценка: 4.39 / 4.00 | Длительность: 17:21:00
ISBN: 978-5-9556-0036-1
Специальности: Разработчик аппаратуры
Лекция 2:

Архитектура zSeries

Организация адресных пространств внутренней памяти

Уровни внутренней памяти

Внутренняя или процессорная память имеет многоуровневую структуру, включающую до трех уровней буферной памяти, называемой КЭШ-памятью (Cache), основную память MS и дополнительный уровень расширенной памяти ES. Уровни КЭШ-памяти предназначены для увеличения быстродействия основной памяти и "прозрачны" для процессора, то есть программно недоступны. Расширенная память программно доступна и допускает операции чтения-записи страниц с использованием специальных процессорных команд управления PAGE IN, PAGE OUT. Расширенная память размещается в физическом адресном пространстве за границей 231 байт и в последних моделях z/Architecture может не использоваться. Основная память является многоабонентной и допускает одновременные обращения как всех центральных процессоров, так и процессоров канальной подсистемы. При этом очередность доступа определяется системой в зависимости от приоритетов абонентов.

Типы адресных пространств основной памяти и их взаимосвязь

Адреса формируются в CP, канальной подсистеме и в общем случае проходят до трех стадий преобразования в процессе обращения к памяти (рис. 2.4). Различают три базовых типа адресных пространств (Address Space - AS) и соответствующих им адресов: абсолютные, реальные и виртуальные.

Типы адресов и их преобразование

Рис. 2.4. Типы адресов и их преобразование

Абсолютный (absolute) адрес непосредственно без каких-либо преобразований определяет ячейку физической памяти. Каждой ячейке физической памяти соответствует не более чем один абсолютный адрес.

Реальный (real) адрес используется в многопроцессорных конфигурациях и определяет адрес ячейки реальной памяти, преобразуемый в абсолютный путем префиксации. Основная цель префиксации - отображение начальной области реальной памяти (8KB) каждого процессора на одну из областей физической памяти с различными абсолютными адресами. Это необходимо для уменьшения числа конфликтов при обращении различных процессоров в процессе обработки прерываний.

Виртуальные (virtual) адреса формируются процессором при исполнении программ и транслируются в реальные посредством динамического преобразования адресов (Dynamic Address Translation - DAT). Адресное пространство, образуемое виртуальными адресами, называется виртуальным адресным пространством. В архитектуре zSeries предусмотрены следующие типы виртуальных адресов:

  • главный (Primary Virtual Address);
  • вторичный (Secondary Virtual Address);
  • AR-определяемый (AR-specified Virtual Address);
  • базовый (Home Virtual Address).

Тип виртуального адреса определяется режимом виртуальной адресации, используемым в процессоре. Процессор может находиться в одном из четырех режимов адресации, соответствующих перечисленным типам виртуальных адресов:

  • режим главного AS (Primary-space mode);
  • режим вторичного AS (Secondary-space mode);
  • режим с AR-определяемым AS (Access-register mode);
  • режим базового AS (Home-space mode).

В режимах главного или базового AS процессору доступны, соответственно, только главное или базовое виртуальные адресные пространства. В режиме вторичного AS процессор может транслировать адреса и главного, и вторичного AS. В режиме с AR-определяемым AS процессор оперирует в главном и пятнадцати пространствах, определяемых регистрами доступа AR1 \div AR15.

Адрес, формируемый процессором до выполнения процессов DAT или префиксации, принято называть эффективным. Эффективный адрес либо задается ссылкой на регистр, в котором он был сформирован ранее, либо вычисляется с использованием адресной арифметики. Различают следующие типы эффективных адресов, трансляция которых зависит от режима работы процессора и типа исполняемых команд (рис. 2.5):

Виртуальные адресные пространства в различных режимах адресации

Рис. 2.5. Виртуальные адресные пространства в различных режимах адресации
  • Логический адрес (Logical Address - L) является адресом операнда для большинства команд и может быть реальным в реальном режиме или виртуальным четырех типов в зависимости от режима адресации.
  • Адрес команды (Instruction Address - I) используется для выборки команд и может быть реальным в реальном режиме, главным виртуальным адресом в режимах главного, вторичного и AR-определяемого AS, а также базовым в режиме базового AS.

Задание адресных пространств

В z/Architecture применяется два варианта задания адресных пространств. Первый вариант предусматривает использование до 216 адресных пространств, задаваемых уникальным 16-разрядным номером адресного пространства (Address Space Number - ASN). Формат ASN включает два индекса, необходимые для его трансляции: первый индекс AFX и второй индекс ASX . Второй вариант задания адресного пространства предполагает использование регистров доступа, в каждый из которых может быть загружен код, определяющий адресное пространство.

Смена адресных пространств в процессоре выполняется путем загрузки ASN в соответствующие управляющие регистры привилегированными и полупривилегированными командами или загрузки кодов ALET (Access List Entry Token), в регистры доступа непривилегированными командами. Далее код ASN или ALET транслируется в код управления адресным пространством ASCE (Address Space Control Element), определяющий параметры процесса динамического преобразования адреса в данном адресном пространстве. Принцип трансляции ASN и ALET в коды ASCE пояснен на рис. 2.6.

Трансляция номера адресного пространства и ALET из регистров доступа

увеличить изображение
Рис. 2.6. Трансляция номера адресного пространства и ALET из регистров доступа

Запуск трансляции ASN осуществляется при смене адресных пространств, задаваемой в некоторых командах (PROGRAM TRANSFER, SET SECONDARY ASN и др.). Полученный код ASCE размещается в одном из управляющих регистров в зависимости от типа адресного пространства:

  • для Primary Virtual Address в CR1;
  • для Secondary Virtual Address в CR7;
  • для Home Virtual Address в CR13.

Преобразование ASN в код ASCE, необходимый для активизации адресного пространства в процессоре, выполняется с использованием двух таблиц:

  • первичная ASN-таблица (ASN-first-table - AFT);
  • вторичная ASN-таблица (ASN-second-table - AST).

Первым выполняется обращение в строку таблицы AFT по адресу, формируемому путем сложения базового адреса AFTO (AFT origin) из управляющего регистра CR14 и первого индекса AFX из кода ASN. В строке AFT задан базовый адрес ASTO (AST origin), который суммируется со вторым индексом ASX из кода ASN для формирования адреса строки ASTE (AST entry), содержащей код ASCE.

Трансляция кодов ALET из регистров доступа AR в коды ASCE выполняется разными способами в зависимости от значений полей ALET. Номер регистра доступа, из которого берется ALET, определяется кодом B или R в командах, исполняемых в режиме адресации с AR-определяемым AS (рис. 2.7). Если в команде задан нулевой номер AR, это соответствует не AR0, а нулевому содержимому AR, то есть трансляция не выполняется, и ASCE находится по умолчанию в CR1 (Primary Virtual Address).

Использование регистров доступа в режиме с AR-определяемым AS AR-specified Virtual Address

Рис. 2.7. Использование регистров доступа в режиме с AR-определяемым AS AR-specified Virtual Address

Если в AR 1 \div 15 задан код, равный 0 или 1, трансляция не выполняется и ASCE по умолчанию находится, соответственно, в CR1 (Primary Virtual Address) или в CR7 (Secondary Virtual Address). Все остальные значения кодов AR интерпретируются для получения адреса строки таблицы AST, содержащей код ASCE. При этом базовый адрес таблицы AST, содержащей код ASCE, задается в одной из двух таблиц доступа: Primary-space access list или Dispatchable-unit-access list, а индекс - в регистре доступа.

Формат ALET включает следующие поля (см. рис. 2.5):

  • Бит Р определяет один из двух способов интерпретации ALET. При Р=1 используется таблица доступа Primary-space access list, а при Р=0 - таблица доступа Dispatchable-unit-access list.
  • Поле ALEN задает индекс для обращения в AST.
  • Поле ALESN используется для контроля допустимости обращения к таблице доступа.

При Р=1 преобразование выполняется с использованием таблицы доступа Primary-space access list. Текущее значение адреса строки для Primary Virtual Address (PASTEO) из регистра CR5 используется для чтения строки AST (Primary ASTE), в которой задан код ALD, содержащий базовый адрес и длину таблицы доступа Primary-space access list. Базовый адрес суммируется с индексом ALEN из регистра доступа для обращения к строке таблицы доступа Primary-space access list, откуда читается адрес строки AST, содержащей ASCE для AR-specified Virtual Address.

При Р=0 преобразование выполняется с использованием таблицы доступа Dispatchable-unit-access list. В этом случае по коду DUCTO из управляющего регистра CR2 осуществляется обращение в таблицу доступа Dispatchable-unit-control-table, откуда считывается базовый адрес таблицы доступа DUALD, используемый с индексом ALEN для чтения ASCE из таблицы AST.

Поскольку в режиме адресации с AR-определяемым AS трансляция ALET выполняется при каждом обращении за операндом, для ускорения этого процесса используется буфер ALB, в котором запоминаются значения параметров, полученных в процессе трансляции. При последующих обращениях с теми же параметрами код ASCE считывается из ALB без обращений в другие таблицы.

Андрей Скурихин
Андрей Скурихин
Россия, Санкт-Петербург, Санкт-Петербургский государственный электротехнический университет (ЛЭТИ), 1997