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

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

Функционирование процессора

Исполнение команд

Основной функцией процессора является выборка и исполнение команд, включая выборку и сохранение операндов. Биты 31, 32 текущего PSW определяют разрядность формируемых эффективных адресов: 24, 31 или 64 разряда. Адреса команд задаются из программного счетчика, размещенного в поле слова состояния программы PSW (разряды 64 \div 127 или 33 \div 63). Адрес очередной команды определяется путем увеличения адреса текущей команды в поле PSW на длину выбранной команды, либо из команд переходов. Адреса операндов формируются с использованием различных полей адресных частей команд: R, B, X, D, I, L, M. При формировании адресов обращений в ОП используется 64-разрядный формат, но число используемых разрядов определяется режимом адресации.

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

На практике действительная последовательность выборки команд и операндов может не совпадать с концептуальной. Это связано, в первую очередь, с необходимостью распараллеливания процессов выборки и исполнения команд в каждом процессоре, а также с взаимным влиянием процессоров, работающих с общей памятью.

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

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

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

Выполнение прерывания, сброса процессора или выполнение определенных команд может вызвать исполнение процесса, называемого сериализацией (Serialization). Под сериализацией понимается завершение всех обращений в память, концептуально предшествующих точке сериализации.

Выборка команд из памяти включает чтение 1 \div 3 полуслов по адресу из текущего PSW. Допускается выборка команд как операндов, заданных в адресной части исполняемой команды. Команды выбираются не обязательно в концептуальной последовательности, одни и те же команды могут быть выбраны несколько раз (при сохранении однократности исполнения), а также фрагментами в порядке, который может не совпадать с их расположением в формате команды. Допускается предварительная выборка команд, сброс которых выполняется при сериализации, включении/выключении DAT и в некоторых других случаях.

Исполнение команды может завершиться одним из следующих вариантов:

  • окончание (Completion) обеспечивает выполнение всех функций, предусмотренных в команде, и установку в PSW адреса следующей команды;
  • подавление (Suppression) исполнения команды предусматривает ее исполнение как команды NOP без изменения любых результатов, включая код условия. В PSW устанавливается адрес следующей команды;
  • аннулирование (Nullification) команды выполняется так же, как и подавление, но при выполнении процедуры прерывания в старом PSW сохраняется адрес аннулированной команды;
  • прекращение (Termination) выполнения команды вызывает неопределенное состояние формируемых командой результатов и полей, при этом в старом PSW устанавливается адрес очередной после прерванной команды.

Для большинства команд варианты завершения относятся к команде в целом, так как они состоят из одного этапа (unit of operation). Завершение многоэтапных прерываемых команд может выполняться одним из рассмотренных выше способов после каждого из выделенных этапов исполнения.

Трассировка

Трассировка (tracing) - процесс непрерывной записи в таблицу трассировки информации о наиболее существенных событиях в процессоре. Такие записи позволяют определять причины различных проблемных состояний процессора. Трассировка включает реализацию четырех функций, каждая из которых завершается записью строки таблицы трассировки.

Трассировка переходов реализуется после исполнения определенных команд перехода. В строку таблицы при этом записывается адрес перехода с учетом режима адресации, устанавливаемого после перехода (24-, 31-, 64-разрядный адрес). Примерами команд, вызывающих трассировку ветвлений, являются команды BALR при R2 \ne 0, BASR при R2 \ne 0 и др.

Трассировка ASN предназначена для фиксации событий, связанных со сменой адресных пространств и трансляцией ASN. После исполнения таких команд, как PC, PR, PT и др. в зависимости от исполненной команды в строках таблицы трассировки фиксируются ASN, адрес перехода, адрес возврата, ключ из PSW, PC Number и содержимое полей некоторых регистров GR.

Трассировка режимов используется для записи информации о переключениях режимов адресации из базового (24- или 31-разрядного) в расширенный (64-разрядный) или обратно. После исполнения команд SAM, BASSM, RP и др. в таблице фиксируются адреса переходов с учетом их разрядности.

Представленные выше три типа трассировки относятся к неявной трассировке в отличие от прямой трассировки, выполняемой по специальной команде.

Прямая трассировка производится принудительно при исполнении команд TRACE, TRACG путем занесения в таблицу текущего времени из TOD, операнда, заданного в команде, и содержимого регистров.

Общий формат строки представлен в табл. 2.21.

Таблица 2.21. Обобщенный формат строки таблицы трассировки
1 \div 12 бит 2 \div 142 байт
Идентификатор типа трассировки Поля сохраняемых параметров

Для адресации таблицы трассировки используется реальный адрес текущей строки, находящийся в управляющем регистре CR12. В этом же регистре указываются четыре управляющих бита разрешения перечисленных выше функций трассировки. Трассировка выполняется в процессе реализации соответствующих команд и при наличии разрешения. В текущую адресуемую строку таблицы записываются предписанные параметры трассировки с идентификатором типа трассировки, и адрес строки в CR12 увеличивается на длину записанной строки. Некоторые команды могут вызвать запись более одной строки с разными типами трассировки.