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

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

Управление работой процессора

Состояния процессора

Процессор z/Architecture может находиться в одном из четырех взаимоисключающих состояний:

  • СТОП - команды и прерывания (кроме прерывания для рестарта) не выполняются.
  • РАБОТА - команды и прерывания исполняются в соответствии с управляющими кодами в слове состояния программы, управляющих регистрах и режимом, заданным оператором.
  • ЗАГРУЗКА - состояние устанавливается в процессе первоначальной загрузки в соответствии с ESA/390.
  • СБОЙ - переход в это состояние вызывается машинными сбоями, выявленными в процессе функционирования процессора.

Таймер процессора функционирует в состояниях РАБОТА и ЗАГРУЗКА, а работа часов TOD не зависит от состояния процессора. Состояние процессора не отражается и не контролируется битами в PSW, а индицируется операторными средствами. Переходы из одного состояния в другое могут быть вызваны определенными событиями, по команде SIGNAL PROCESSOR с адресом данного процессора или по командам с пульта оператора. Условия переходов из одного состояния в другое приведены в таблице 2.13.

Слово состояния программы PSW

Текущее слово состояния программы PSW, как и управляющие регистры, содержит информацию, необходимую для управления процессом исполнения команд программы. Форматы PSW для z/Architecture (128 бит) и предшествующей ей архитектуры ESA/390 (64 бита) приведены на табл. 2.14.

Основными полями PSW, определяющими последовательность исполнения команд, являются поля адреса команды и кода условия. Поле адреса команды реализует функции программного счетчика, то есть формирует адрес очередной исполняемой команды. В зависимости от режима адресации, определяемого битами EA, BA в PSW, разрядность адреса может быть равна 64, 32 или 24. Двухразрядный код условия СС формируется по результатам исполнения большинства команд и используется в качестве признака перехода в командах ветвления [2.1]. Другие поля PSW используются в различных архитектурных механизмах, реализуемых процессором (прерывания, динамическое преобразование адреса, защита памяти и др.). Смена значений всего PSW или отдельных его полей выполняется либо программно при выполнении некоторых команд, например, LOAD PSW, BRANCH и SET PROGRAM MASK, либо автоматически при смене состояний различных процессов (прерывания, смена состояния процессора и т. п.).

Таблица 2.13. Состояния процессора и условия переходов
Следующее состояние ЗАГРУЗКА СТОП РАБОТА СБОЙ
Исходное состояние        
ЗАГРУЗКА     Пошаговый режим Непрерывный режим Сбой оборудования
СТОП   Переключатели загрузки   Переключатель рестарта, приказ запуска в команде SYGNAL PROCESSOR
РАБОТА   Переключатели сброса процессора, приказ "Стоп" в команде SYGNAL PROCESSOR, завершение шага в пошаговом режиме работы, останов по совпадению адресов  
СБОЙ   - Сброс -  

Внешнее управление

Предусмотрено пять инициируемых извне функций процессора (таблица 2.15):

  • сброс процессора;
  • начальный сброс процессора;
  • сброс подсистемы;
  • сброс с очисткой;
  • сброс по питанию.

Сброс процессора обеспечивает очистку указателей сбоев оборудования и устраняет неопределенность состояния процессора, возникающую в результате таких сбоев, в том числе путем сохранения состояния для последующего анализа и восстановления. Сброс процессора обеспечивает:

  • прекращение выполнения текущей команды или других действий, например прерываний;
  • сброс всех условий прерываний, кроме внешних плавающих прерываний;
  • все предварительно выбранные команды и операнды, а также подготовленные для записи в память результаты сбрасываются;
  • очищаются строки буферов ALB, TLB;
  • если сброс вызван переключателем "загрузка - нормальная" любого из процессоров конфигурации, устанавливается режим архитектуры ESA/390, текущее PSW трансформируется в формат ESA/390, сохраняется для последующего восстановления режима z/Architecture по команде SIGNAL PROCESSOR.
Таблица 2.14. Слово состояния программы PSW
а) z/Architecture
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 R 0 0 0 T IO EX Key 0 M W P AS CC Program mask 0 0 0 0 0 0 0 EA
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
BA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
Адрес команды
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
Адрес команды (продолжение)
б) ESA/390
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 R 0 0 0 T IO EX Key 1 M W P AS CC Program mask 0 0 0 0 0 0 0 EA
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
BA Адрес команды

R - бит разрешения прерывания для записи программных событий.

T - бит управления динамическим преобразованием адреса (DAT). При Т=0 преобразование не выполняется и адреса команд и операндов трактуются как реальные.

IO - бит разрешения прерываний по вводу-выводу.

ЕХ - бит разрешения внешних прерываний.

Key - ключ защиты памяти, используемой процессором при обращении в ОП.

М - бит разрешения прерываний по сбоям.

W - бит включения режима ожидания, при котором команды не выполняются, но прерыванияя обрабатываются.

Р - бит задания режима супервизор/задача, при Р=0 задан режим супервизора, в котором допустимо исполнение всех команд, при Р=1 в режиме задачи допустимо исполнение непривилегированных команд, а также полупривилегированных команд при наличии особых условий.

AS - код управления режимом адресации, используется совместно с битом Т.

СС - код условия, устанавливаемый по результатам выполнения команд, служит признаком для команд условных переходов.

Program mask - маска программы для запрета/разрешения прерываний в особых случаях, возникающих в процессе исполнения программы: бит 20 - переполнение в операциях с фиксированной точкой, бит 21 - переполнение в операциях с десятичными числами, бит 22 - потеря значимости порядка в операциях с плавающей точкой в формате HFP, бит 23 - потеря значимости в операциях с HFP-числами.

ЕВ, ВА - биты управления разрядностью эффективного адреса: 00 - 24 разряда, 01 - 31 разряд, 10 - недопустимая комбинация, 11 - 64 разряда.

Адрес команды - поле адреса очередной исполняемой в процессоре команды, используемое число разрядов определяется битами ЕА, ВА.

Таблица 2.15. Функции внешнего управления
Активируемые переключатели Уровни воздействия
  Процессор, к которому относится переключатель Другие процессоры в конфигурации Остальная часть конфигурации
Системный сброс - нормальный сброс процессора сброс процессора сброс подсистемы
Системный сброс - с очисткой сброс с очисткой сброс с очисткой сброс с очисткой
Загрузка - нормальная начальный сброс процессора с последующей IPL сброс процессора сброс подсистемы
Загрузка - с очисткой сброс с очисткой с последующей IPL сброс с очисткой сброс с очисткой

После выполнения перечисленных действий процессор переходит в состояние СТОП. Если после сброса следует процедура начальной загрузки IPL (initial program load), процессор переходит в состояние ЗАГРУЗКА.

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

  • если сброс вызван переключателем "загрузка - нормальная", в данном процессоре и во всех процессорах конфигурации устанавливается режим архитектуры ESA/390;
  • содержимое текущего PSW, старого PSW, регистров префикса, таймера CP, компаратора времени, программируемого регистра TOD и регистра управления операциями с ПТ устанавливается в 0;
  • в управляющих регистрах устанавливаются начальные состояния, соответствующие режиму z/Architecture.

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

  • в канальной подсистеме выполняется сброс системы ввода-вывода, включая сброс прерываний ввода-вывода и передачу системного сброса в устройства ввода-вывода;
  • сбрасываются плавающие прерывания в конфигурации.

Сброс с очисткой объединяет операции начального сброса процессора со следующими операциями инициализации:

  • во всех процессорах конфигурации устанавливается режим архитектуры ESA/390;
  • регистры общего назначения, регистры с плавающей точкой, регистры доступа устанавливаются в 0;
  • содержимое основной памяти в конфигурации и соответствующие ключи памяти обнуляются;
  • блокировки, применяемые в любом процессоре конфигурации при исполнении команды PERFORM LOCKED OPERATION, отменяются;
  • выполняется сброс подсистемы.

Сброс по питанию выполняется при включении питания. Сброс CP включает сброс регистров GR, FPR, AR в нулевое состояние и установку режима ESA/390 в случае сброса для конфигурирования или режима, в котором находятся другие процессоры. Сброс CP может сопровождаться сбросом TOD часов, основной и расширенной памяти и канальной подсистемы.

Средства временной синхронизации (Timing)

Для отсчета времени и взаимной синхронизации процессоров в z/Architecture предусмотрены три возможности:

  • часы для отсчета реального времени и ведения даты и времени суток (TOD сlock); в системе предусматривается использование одних часов TOD для всех процессоров и в каждом процессоре имеется программируемый регистр TOD, связанный с часами;
  • компаратор времени, имеющийся у каждого процессора и предназначенный для выработки прерывания, когда показания часов TOD превышают установленное программой значение;
  • процессорный таймер (CPU Timer), обеспечивающий измерение прошедшего времени и выработку прерывания в случае истечения заданного интервала времени; каждый процессор имеет собственный таймер.

Часы TOD представляют собой 104-разрядный двоичный счетчик, который инкрементируется в типовом варианте каждую микросекунду добавлением +1 в разряд 51 (табл. 2.16).

Таблица 2.16. Формат счетчика часов TOD
0 51 103
1 микросекунда

В зависимости от модели инкремент TOD может осуществляться в другие разряды, но с частотой, соответствующей периоду переключения 1 мкс в разряде 51. Это позволяет менять разрешающую способность TOD с целью ее согласования со временем исполнения команд. Работа часов TOD не зависит от состояния процессоров, и часы могут иметь отдельный источник питания.

Часы могут находиться в одном из следующих состояний: выставлены, не выставлены, остановлены, неисправны или отключены. Переходы из одного состояния в другое задаются специальными командами или процедурами. Часы могут быть отключены при отсутствии питания или для технического обслуживания. После подачи питания часы обнуляются и переходят в невыставленное состояние. Переход в выставленное состояние осуществляется только из остановленного состояния. Часы останавливаются по команде SET CLOCK, загружающей новое значение показаний, если включено ручное управление TOD или установлен бит TOD-clock control override в CR14. Переход из остановленного состояния в выставленное выполняется в зависимости от значения бита управления часами в CR0 (TOD-clock-sync-control bit) в процессоре, выполнившем команду SET CLOCK: автоматически при сброшенном состоянии бита или с задержкой до сброса этого бита. В выставленном или невыставленном состояниях часы идут, то есть инкрементируются. Неисправное состояние часов устанавливается средствами контроля, зависящими от модели, при выявлении сбоев в их работе с последующим прерыванием процессора от схем контроля.

Установка показаний в часах выполняется командой SET CLOCK при наличии разрешающих условий. При этом в счетчик часов в инкрементируемые разряды загружается операнд команды, а остальные биты обнуляются. В многопроцессорных конфигурациях одновременное выполнение команд SET CLOCK в разных процессорах блокируется. Считывание показаний часов выполняется командами STORE CLOCK, STORE CLOCK EXTENDED путем занесения, соответственно, разрядов 0 \div 63 или 0 \div 103 счетчика часов в 8- или 16-байтный операнд в памяти. Формат показаний часов для команды STORE CLOCK EXTENDED показан на табл. 2.17, где поле Programmable Field загружается из программируемого регистра TOD. Выполнение двух последовательных команд чтения в одном или разных процессорах приводит к разным показаниям часов. Выполнение команд чтения часов в отключенном или неисправном состоянии приводит к записи нулевых показаний.

Таблица 2.17. Формат показаний часов TOD
0 8
112 		128
00000000 TOD clock Programmable Field

Каждый процессор системы содержит 32-разрядный программируемый регистр TOD, младшие 16 бит которого содержат поле Programmable Field, загружаемое в память вместе с показаниями часов командой STORE CLOCK EXTENDED. Это позволяет идентифицировать показания часов для разных конфигураций.

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

  • часы идут и уставка в компараторе меньше показаний часов в сравниваемых разрядах;
  • часы в неисправном или отключенном состоянии.

Загрузка уставки в регистр компаратора выполняется командой SET CLOCK COMPARATOR, а чтение - командой STORE CLOCK COMPARATOR. Загрузка компаратора или установка часов, приводящие к превышению уставки по отношению к показаниям часов, сбрасывают ранее установленный запрос прерывания.

Процессорный таймер является двоичным счетчиком в формате, соответствующем старшим 64-м разрядам счетчика часов, исключая старший бит 0, рассматриваемый как знаковый. Таймер декрементируется вычитанием 1 из разряда 51 каждую микросекунду. В моделях с большей или меньшей разрешающей способностью таймера для декремента может быть выбран другой разряд таймера с сохранением периода переключения 1 мкс в 51 разряде. Прерывание от таймера вырабатывается при достижении отрицательного значения, то есть при установке 1 в разряде 0. При загрузке в таймер положительной величины прерывание не сохраняется. В некоторых моделях для более точного измерения фактического времени исполнения программы таймер приостанавливается во время других операций, например, интенсивных операциях ввода-вывода. Загрузка в таймер выполняется командой SET CPU TIMER, а чтение - командой STORE CPU TIMER.