Архитектура платформ IBM eServer zSeries

Микроархитектура zSeries

Показывать лекцию целиком

Структурная организация серверов zSeries

Структурная организация серверов zSeries основана на использовании вычислительных узлов с SMP-архитектурой (рис. 2.17). Такой узел включает P процессоров PU 0 $$\div$$ PU P-1, симметрично подключенных к памяти через двухуровневую КЭШ (L1, L2). КЭШ первого уровня L1 реализует стандарт сквозной записи и состоит из P блоков, каждый из которых используется локально одним процессором. КЭШ второго уровня L2 построена по стандарту с обратной записью и в зависимости от модели сервера может быть разбита на L блоков, используемых группами по P / L процессоров. Кроме этого на втором уровне КЭШ поддерживается протокол выравнивания содержимого блоков КЭШ обоих уровней.

(рис 2.17) Структура узла системы

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

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

Для обмена информацией между памятью и подсистемой ввода-вывода используется блок сопряжения, включающий B адаптеров памяти MBA (Memory Bus Adapter), подключенных к КЭШ L2.

Блок системного контроля SC подключен ко всем блокам узла для управления их согласованной работой.

Сервер zSeries в общем случае может включать R узлов (рис. 2.18). Для объединения узлов в кластер используются многоразрядные шины обмена информацией и управления, подключаемые к устройствам буферизации, коммутации и управления (блоки L2, SC, MBA). При этом память всех узлов объединяется в общее адресное пространство, доступное всем процессорам кластера, и в КЭШ L1, L2 всех узлов поддерживается когерентность содержимого. Такой кластер может рассматриваться как RxP-процессорный SMP-узел и использоваться для построения кластеров следующего, более высокого, уровня.

(рис 2.18) Система с R узлами

Различные модели и генерации серверов отличаются качественными и количественными характеристиками компонентов объединяемых узлов. Модели, состоящие из одного узла (R=1), использовались в архитектурах, предшествующих z/Architecture, и назывались односторонними (singleside) серверами. В зависимости от числа используемых процессоров модели определялись как uniprocessor models (P=1), dyadic processor models (P=2) и т.д.

(рис 2.19) Сервер с бинодальной структурой

Наибольшее распространение, в том числе и в z/Architecture (z900), получили модели с бинодальной структурой при R=2 (рис. 2.19). Такие модели, как и модели с R>2, принято называть N-way серверами, где N= RxP - суммарное число процессоров всех объединяемых узлов. В последних моделях z/Architecture (z990, z890) число используемых узлов может меняться от 1 до 4 R=1 $$\div$$ 4. В таблице 2.32 приведены основные параметры моделей серверов z/Architecture.

Параметры кластеров z/Architecture
Модель P M L B R
z900 1-10 (до 8 СP) 2 1 2 2
z800 1-5 (до 4 СP) 2 1 1 1
z990 1-12 (до 8 СP) 4 1 3 1-4
z890 1-5 (до 4 СP) 4 1 2 1

Структурная организация сервера zSeries z/900 приведена на рис. 2.20 [2.12 - 2.14]. Основу сервера составляют два узла, образующие бинодальную симметричную структуру, реализованную в одном многочиповом модуле MCM (Multi Chip Module). Модуль MCM подключен к четырем картам памяти через контроллеры памяти MSC (Memory Storage Controller), а также к подсистеме ввода-вывода через самосинхронизирующиеся интерфейсы STI (Self-Timed Interface).

(рис 2.20) Архитектура сервера z900

В состав сервера входят 20 процессоров (PU), каждый из которых реализован в отдельном чипе вместе с КЭШ первого уровня L1 емкостью 512 KB. Группа из 10 процессоров, объединенных в одном узле, подключается к отдельному фрагменту КЭШ второго уровня L2 на базе четырех модулей (чипов) SD. Каждый из процессоров подключен к модулям КЭШ L2 с использованием двунаправленной 16-байтной шины. Один модуль КЭШ L2 имеет объем 4 MB, что обеспечивает суммарный объем КЭШ второго уровня 16MB на узел или 32MB на весь модуль MCM. КЭШ L2 каждого из узлов доступна для процессоров другого узла, для чего каждая пара модулей SD одного узла соединена двумя 8-байтными шинами обмена с аналогичной парой модулей SD другого узла.

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

Память сервера реализована на четырех картах card 0 $$\div$$ card 3, каждая из которых имеет собственный контроллер памяти MSC (Memory Storage Controller). Для связи памяти с модулем MCM контроллер MSC подключен к одной из пар модулей КЭШ L2 двумя 8-байтными двунаправленными шинами.

Обмен информацией между памятью и подсистемой ввода-вывода выполняется через КЭШ L2, для чего в модуле MCM используются четыре адаптера памяти MBA по два на каждый из узлов. Адаптер MBA подключается к модулям КЭШ L2 посредством 8-байтных двунаправленных шин, а к подсистеме ввода-вывода - через самосинхронизирующийся интерфейс STI (Self-Timed Interface). Каждый такой интерфейс функционирует на скорости 1GB/s, что обеспечивает в дуплексном режиме работы суммарную пропускную способность 2GB/s. В подсистеме ввода-вывода STI-интерфейсы соединяются с каскадированными мультиплексорами-демультиплексорами (M/D) для выхода на вторичные (secondary) интерфейсы с меньшей пропускной способностью (333 МВ/s, 500 МВ/s). Вторичные интерфейсы подключаются к картам ввода-вывода (I/O card), обеспечивающим требуемую пропускную способность и управление для типовых каналов ввода-вывода, таких как ESCON, FICON и др. Для связи периферийных устройств D с типовыми интерфейсами используются контроллеры CU, а также коммутаторы (Director, Switch), необходимые для создания различных путей доступа к устройствам.

Блок системного контроля SC предназначен для управления согласованной работой всех блоков узла и подключен посредством управляющих сигналов ко всем блокам узла (процессоры, КЭШ L2, MBA) и блоку SC соседнего узла. Блок SC реализован на одном чипе с большим числом выводов (более 1600). Для взаимной синхронизации всех устройств в модуле MCM используется отдельный блок синхронизации CLK.

Структурная организация сервера zSeries z990 приведена на рис. 2.21 [2.8 - 2.10, 2.15]. Основу сервера составляют от одного до четырех узлов, называемых книгами (book) и соединенных между собой замкнутыми кольцевыми шинами для взаимного доступа к ресурсам каждого из узлов. Для подключения в кольцевую структуру в узле предусмотрены два порта, каждый из которых имеет входную и выходную шины, что позволяет создать две кольцевых шины с противоположными направлениями обмена. При отсутствии одного из узлов, например при замене, в соединенных с ним соседних узлах две кольцевых шины объединяются, образуя одно кольцо для обмена информацией. Отсутствующий на постоянной основе узел может быть заменен заглушкой, обеспечивающей трансляцию сигналов с сохранением двух кольцевых шин. Такая структура связей между узлами обеспечивает повышенную надежность и упрощает процедуры модернизации и ремонта "на лету".

(рис 2.21) Архитектура IBM z990

Основу узла сервера (рис. 2.22) составляет многочиповый (16 чипов) модуль MCM, в состав которого включены 12 процессоров PU0 - PU11, КЭШ L2 на базе четырех модулей SD, блок системного контроля SC и два контроллера памяти модуля MSC. Помимо МСМ в узле используются две карты памяти и три модуля MBA для связи с подсистемой ввода-вывода.

(рис 2.22) Архитектура IBM z990

Процессоры узла реализованы на чипах CMOS 9SG с циклом 0,83 нс и имеют дублированную структуру с зеркальным исполнением команд в двух процессорных каналах. КЭШ L1 размещена на одном чипе с процессором, имеет объем 512 KB (по 256 KB для данных и команд) и построена на основе протокола со сквозной записью. КЭШ L2 узла построена на четырех блоках SD общим объемом 32 MB. В состав блоков SD помимо запоминающего массива включен контроллер MCC для поддержки когерентности памяти всех узлов в соответствии с расширенным протоколом MESI. Все обмены между процессорами, блоками MSC, MBA и с другими узлами выполняются через КЭШ L2 и системный контроллер SC.

Каждая карта памяти может иметь емкость 8 GB, 16 GB или 32 GB, что обеспечивает емкость памяти до 64 GB в одном узле и до 256 GB - во всем сервере. Интерфейс между КЭШ L2 и основной памятью реализуется двумя модулями MSC, каждый из которых имеет четыре высокоскоростных шины, подключенные через контроллеры памяти SMI (Synchronous Memory Interface) к картам памяти. Для хранения ключей защиты памяти используются отдельные блоки памяти ключей защиты (ПКЗ).

К подсистеме ввода-вывода узел подключен через три модуля MBA, каждый из которых обеспечивает управление четырьмя интерфейсами STI 2 GB/s. C учетом дуплексного режима STI это обеспечивает для одного узла пропускную способность ввода-вывода до 48 GB/s и для всего сервера - до 192 GB/s.

Микроархитектура процессоров

Микроархитектура процессоров моделей z9ХХ, z8XX eServer zSeries [2.17, 2.18] является дальнейшим развитием микроархитектуры процессоров S390 четвертой генерации G4 [2.16]. Процессоры G4 имели 32-разрядную организацию, объединенную КЭШ команд и данных, шестиуровневый конвейер и допускали объединение в многочиповом модуле МСМ по схеме (10+2)-way (10 центральных и 2 вспомогательных процессора). В последующих моделях S390 были добавлены новые архитектурные решения, такие, как операции с плавающей точкой в формате по стандарту IEEE-754 Binary Floating Point -BFP (G5), увеличение числа процессоров в МСМ по схеме (12+2)-way и др. В моделях z9ХХ, z8XX с z/Architecture основными дополнениями являются:

  • 64-разрядная организация, включая 64-разрядные регистры общего назначения, 64-разрядные управляющие регистры, 64-разрядную виртуальную и реальную адресацию;
  • область префиксации расширена с 4 КB до 8 КB;
  • раздельные КЭШ команд и данных;
  • 173 новые команды, в том числе 34 команды для режимов ESA/390 и 139 для z/Architecture;
  • число процессоров в МСМ увеличено до 20 по схеме (16+4)-way;
  • расширение формата слова состояния программы PSW до 128 разрядов и др.
  • Процессоры серверов z/Architecture имеют дублированную структуру с зеркальным исполнением команд в двух процессорных каналах. Каждый такой канал (рис. 2.23) состоит из последовательно включенных блоков команд (I-unit) и операций (E-unit). Блок команд предназначен для выборки и дешифрации команд из КЭШ команд первого уровня (L1-I), вычисления адресов операндов и запуска процессов их выборки из КЭШ данных первого уровня (L1-D), формирования очереди команд для исполнения в блоке E. Блок Е выполняет операции, заданные в командах, над операндами из регистров или памяти и запись результатов в регистры или память. Дополнительные тракты обработки реализованы в сопроцессоре COP.

    (рис 2.23) Структура дублированного процессора

    КЭШ-память первого уровня реализована в одном чипе с процессорными каналами и в моделях z/Architecture разделена на две независимые КЭШ команд и данных. В предшествующих архитектурах использовалась объединенная КЭШ команд и данных. Обе КЭШ и их контроллеры сосредоточены в блоке управления BCE (buffer control element).

    Основные и промежуточные результаты и адреса, формируемые в процессорных каналах, передаются в блок восстановления R (Recovery Unit) для сохранения в дополнительной регистровой памяти - области точек контроля (checkpoint array). Все данные, формируемые блоками I, E каналов, перед записью в регистры или память сравниваются для контроля правильности выполнения операций и обнаружения ошибок в работе каналов. Сохраняемая в регистрах блока R информация может использоваться для восстановления работы каналов в случае сбоев. Для уменьшения вероятности одинаковых ошибок в каналах используется ассиметричное исполнение команд в основном и зеркальном каналах путем временного сдвига на целое число тактов.

    Каждый из процессорных каналов имеет конвейерную организацию (рис. 2.24) с оптимальным срабатыванием уровней за один такт. При исполнении сложных команд или в случае конвейерных сбоев отдельные уровни срабатывают за большее число тактов. Основные функции первых трех уровней конвейера реализуются в блоке команд I. Первый уровень (IF) реализует выборку команд за несколько тактов и иногда рассматривается как отдельный блок, а не как уровень конвейера. Выбранные из КЭШ L1-I (КЭШ L2 или основной памяти) команды помещаются в буфер команд, из которого передаются во второй уровень (D) для распаковки и дешифрации. На этой стадии из заданных в адресной части регистров считываются компоненты адреса (база, индекс) операнда, и команда передается в очередь команд для исполнения в блоке обработки. Следующий уровень конвейера (AGEN) используется для вычисления логического адреса операнда путем сложения базы, индекса и смещения. Конвейер оптимизирован для двухадресных команд формата RX с размещением одного операнда в регистре, а второго - в памяти. Вычисленный адрес передается в блок BCE для обращения в память.

    (рис 2.24) Конвейерная организация процессора

    В блоке BCE реализуются два уровня конвейера, связанных с выборкой операндов из КЭШ L1-D (КЭШ L2 или основной памяти). Первый из этих уровней запускает одновременные процессы обращения в директорию КЭШ и буфер преобразования адреса TLB, а второй выполняет чтение операнда и размещение его в буфере операндов в блоке обработки E с подстыковкой к ранее считанным операндам.

    В блоке обработки Е выполняются операции команд, считываемых из очереди команд, над операндами, находящимися в программно-доступных регистрах и буфере операндов. Для этого используются два уровня, первый из которых (E1) реализует выполнение операции в АЛУ, а второй (WR) - сохранение результата в регистре или памяти. Выполнение большинства операций в АЛУ с фиксированной точкой занимает один такт, а в АЛУ с плавающей точкой - три такта, для сложных операций число тактов может достигать 100 и более. Для ускорения операций в АЛУ используется внутренний конвейер. Запись результата операций осуществляется в регистры или КЭШ-память.

    Структурная схема процессора приведена на рис. 2.25.

    (рис 2.25) Структурная схема процессора

    Блок команд I процессора z/Architecture расширен для поддержки трех режимов адресации (24, 31, 64 бит). Буфер команд I-buffer предназначен для хранения последовательных участков исполняемых программ и состоит из нескольких фрагментов, каждый из которых содержит одну строку из КЭШ команд. Каждая из строк в буфере распаковывается и передается покомандно в регистр команд. После завершения распаковки очередной строки запускается чтение новой строки из КЭШ команд. Чтение из КЭШ выполняется с использованием буфера адресов переходов BTB (branch target buffer) емкостью 8К строк для ускорения формирования адресов в командах условного перехода путем их предсказания. BTB представляет собой таблицу, каждая строка которой содержит информацию, занесенную при выполнении команды ветвления: адрес команды ветвления, фактически использованный адрес перехода и другую вспомогательную информацию. При выполнении очередной команды ветвления по адресу этой команды осуществляется поиск в таблице, и при успешном поиске из соответствующей строки BTB считывается предсказываемый адрес перехода. Далее запускается выборка из КЭШ соответствующей ветви программы до момента фактического вычисления адреса ветвления и его сравнения с предсказанным.При совпадении конвейер процессора продолжает функционировать без задержки, в противном случае выполняется восстановление работы конвейера, требующее нескольких дополнительных тактов. Для команд ветвления, завершающих циклические участки программ, вероятность успешного предсказания перехода высока и определяется 1-2 неправильными предсказаниями на все число повторений цикла. Отключение BTB исключает "лишние" обращения в КЭШ и может использоваться для разгрузки КЭШ в пользу других абонентов.

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

    Блок обработки E включает регистровую память и два АЛУ для выполнения операций с фиксированной и плавающей точкой. В качестве источников операндов АЛУ используются программно доступные регистры общего назначения GR и регистры с плавающей точкой FPR, регистры доступа AR, а также буфер операндов, считанных из памяти. Результаты операций могут быть сохранены в регистрах GR, FPR или в памяти.

    Основное АЛУ для операций с фиксированной точкой включает три входных 64-разрядных регистра A-reg, B-reg, E-reg, выходной регистр C-reg и следующие тракты обработки:

  • 64-разрядный двоичный сумматор с возможность побайтового изменения разрядности и инвертирования входных операндов;
  • 64-разрядный блок для выполнения поразрядных логических операций и операций сдвига;
  • 64-разрядный десятичный сумматор для выполнения операций над двоично-десятичными числами, включая деление и умножение;
  • блок двоично-десятичных преобразований для перехода от одной формы представления к другой.
  • АЛУ для операций с плавающей точкой (FPU) включает 2 входных A-reg, B-reg и выходной C-reg 64-разрядные регистры с конвейеризированным трактом обработки чисел в форматах HFP, BFP. Конвейер FPU состоит из 5 уровней и выполняет большинство операций с пропускной способностью одна операция за один такт.

    Ускорение операций в АЛУ достигается введением конвейерной обработки, дополнительные уровни которой ( E-1, E0 на рис. 2.24) размещены в уровнях основного конвейера, предшествующих выполнению операций в АЛУ. Уровень E-1 формирует многоразрядное управляющее слово для выборки операндов из регистровой памяти и формирования маски. Уровень E0 используется для чтения операндов.

    Блок управления обращениями в память BCE включает две независимые КЭШ команд и данных, а также интерфейс с КЭШ второго уровня L2. Обе КЭШ имеют одинаковый объем 256 KB, сходные схемы управления и относятся к частично-ассоциативным (four-way-set-associative) КЭШ с размером строки 256 байт. Разрядность выборки из КЭШ команд - четыре слова (16 байт). КЭШ данных допускает сквозную (write-through) запись и расслоена на два блока, допускающих одновременные обращения двойными словами, например, для выполнения чтения из одного и записи в другой блок. Обмен данными между КЭШ команд и данных, например для записи из КЭШ данных в КЭШ команд, может выполняться через КЭШ L2, допускающую обратную (write-back) запись и реализующую протокол поддержки когерентности содержимого КЭШ команд и данных всех процессоров системы.

    Поскольку КЭШ функционирует в абсолютном адресном пространстве, а блок команд формирует логические адреса (LA), необходимо преобразование адреса с использованием в общем случае таблиц из буферов ALB, TLB, региональных, сегментных и страничных таблиц. Уменьшение времени трансляции адреса достигается за счет ее конвейеризации (см. этапы C0, C1, C2 на рис. 2.24). Кроме этого в КЭШ данных предусмотрена таблица AAHT (Absolute Address History Table), содержащая ранее использованные абсолютные адреса (AA) и компоненты соответствующих им логических адресов. При обращении на этапе C0 в блоке команд по содержимому регистров, содержащих компоненты адреса, формируется индекс для поиска в таблице AAHT для предсказания части разрядов абсолютного адреса. При попадании в AAHT на этапе C1 выполняется обращение в директорию и запоминающий массив КЭШ. При промахе на этапе C1 таблица AAHT модифицируется и осуществляется обращение в буфер преобразования адреса TLB с использованием соответствующего кода управления адресным пространством ASCE, получаемого из таблицы ALB на этапе C0 или соответствующим преобразованием. Если поиск в TLB не дает положительного результата, в сопроцессоре COP в блоке транслятора (translator) запускается полное преобразование адреса с использованием соответствующих таблиц в памяти.

    В КЭШ команд абсолютные адреса формируются аналогично, однако абсолютные адреса могут быть предсказаны не по таблице AAHT, а из буфера BTB в блоке выборки команд.

    При попадании в КЭШ первого уровня обмен данными выполняется за один такт, в противном случае запускается цикл обращения в КЭШ второго уровня L2.

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

  • блок сжатия, предназначенный для упаковки/распаковки данных и преобразования символьной информации;
  • блок транслятора, реализующий преобразование виртуальных адресов в реальные с использованием таблиц, размещенных в памяти.
  • Упаковка/распаковка информации в блоке сжатия осуществляется по команде CMPSC, задающей исходную область памяти, с которой выполняется операция, область размещения результата, адрес словаря, используемого в операции, и дополнительные управляющие биты, уточняющие выполняемую операцию. Для упаковки используется метод Lempel-Ziv 2 (LZ2) со статическими словарями.

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

    Входные данные для блока поступают в сопроцессор с выходной шины блока обработки E, а результат выдается в блок R с последующей записью в память. В блоке предусмотрены входной и выходной буферы по 256 байт. Кроме этого блок имеет интерфейс с памятью через КЭШ команд для чтения из памяти словарей и таблиц, необходимых для выполнения преобразований. При упаковке/распаковке словарь может достигать объема 64 КВ и считывается построчно. Таблица для команд символьных преобразования имеет объем 256 байт и полностью считывается в имеющийся в блоке дополнительный буфер.

    Блок транслятора реализует функции динамического преобразования виртуальных адресов в реальные с использованием трех региональных, сегментной и страничной таблиц. Каждое преобразование запускается в случае промаха при поиске в таблице TLB в блоке BCE и может потребовать до пяти обращений в память. Вместе с виртуальным адресом из блока BCE передается тип адресного пространства, код ASCE и другие параметры, необходимые для формирования базового адреса первой из используемых таблиц преобразования. Выборка строк таблиц из памяти выполняется через КЭШ команд с использованием общего с блоком сжатия интерфейса. Блок транслятора позволяет ускорить преобразования адресов, что особенно важно в случае использования режимов виртуальных ЭВМ, когда одновременно функционируют host-система и несколько guest-систем. В этом случае реальный адрес, полученный в системе более низкого уровня (guest-системе), рассматривается как виртуальный в системе более высокого уровня (host-системе или guest-системе), что может потребовать большого числа обращений в память для каждого преобразования. Например, при двухуровневом преобразовании при каждом обращении guest-системы в одну из пяти таблиц может потребоваться до пяти обращений в таблицы host-системы, что приводит к необходимости выполнять до 25 обращений в память при полном преобразовании.

    Блок восстановления R входит в состав двухканального процессора для реализации функций контроля правильности функционирования путем сравнения информации, формируемой процессорными каналами, а также для накопления информации о состояниях процессора в точках контроля с целью восстановления работы процессора в случае сбоев. Для этого в блоке предусмотрена регистровая память, в которую заносятся управляющие коды различных режимов, коды прерываний, адреса и операнды, используемые командах, содержимое всех программно доступных регистров (GR, AR, FPR, CR). Перед записью информация от двух каналов сравнивается, и при обнаружении ошибок под управлением блока R выполняется следующая последовательность мер по восстановлению:

  • завершаются все записи в КЭШ L2, инициированные исполненными командами;
  • в блоках I, E, BCE выполняется сброс;
  • буферы TLB, ALB, директория и массив КЭШ очищаются;
  • запоминается прерывание по восстановлению, которое будет исполнено после завершения процесса восстановления;
  • все записи из регистровой памяти блока R проверяются на правильность по контрольным кодам и восстанавливаются во всех блоках, откуда они поступили, при наличии неустраняемых ошибок процессор переводится в состояние СБОЙ;
  • осуществляется запуск выполнения команды в соответствии с восстановленным состоянием, если в ближайшее после запуска время сбой повторяется, процессор переводится в состояние СБОЙ, иначе продолжается нормальная работа процессора.
  • Поскольку блоки R, BCE не дублируются, их контроль осуществляется путем использования избыточного кодирования для обнаружения и коррекции ошибок.

    Отличительной особенностью процессоров zSeries является использование комбинированного аппаратно-программного способа для реализации многих процессорных функций, в том числе части наиболее сложных команд. Для этого в процессоре введен дополнительный уровень управления, реализующий подмножество команд, называемое милликодом (millicode) [2.19]. Милликод включает часть простейших команд, входящих в базовую систему команд z/Architecture, и вспомогательные команды для прямого управления функциями и аппаратными средствами процессора. В систему команд милликода включены команды адресного чтения-записи для обращения в регистровую память блока R, что делает возможным доступ к кодам состояний процессора и их изменение, тем самым создается эффективный механизм управления процессором. Милликод используется также для обработки прерываний путем приостановки выполнения текущего потока команд и перехода к программе милликода по фиксированному адресу.

    Для исполнения команд милликода используются те же аппаратные средства, что и для основных команд. Высокая скорость исполнения обеспечивается ускорением перехода к милликоду и возврата к основной программе, а также оптимизацией аппаратных средств для быстрого выполнения команд милликода. С этой целью в процессоре введен особый режим исполнения команд милликода с использованием дополнительного набора теневых регистров MGR (Millicode General-Purpose Register), адресуемых командами милликода. Для возможности обращения к основным регистрам в состав милликода введены специальные команды. Запуск подпрограммы милликода, реализующей функции команды базовой системы, выполняется как безусловный переход по фиксированному адресу, определяемому кодом операции команды. Такой переход занимает несколько тактов, что обеспечивает высокую скорость перехода. Возврат из милликода также выполняется как безусловный переход к команде по адресу из модифицированного программного счетчика. Все программы милликода размещаются в системной области памяти HSA и при обращении переносятся в КЭШ команд.

    Самосинхронизирующийся интерфейс

    Интерфейс STI используется в серверах zSeries для связи адаптеров MBA, относящихся к процессорному ядру, с аппаратурой ввода-вывода [2.20 - 2.22]. В серверах S390 (генерации G3 - G6) STI обеспечивает обмен на скорости 333 MB/s, а в серверах z900, z990 - соответственно 1GB/s и 2GB/s. Интерфейс функционирует в дуплексном режиме, обеспечивая суммарную пропускную способность до 4 GB/s. Такая пропускная способность позволяет задействовать данный интерфейс в качестве межмашинных связей ICB-2, ICB-3, ICB-4 при построении кластерных структур. Кроме того, STI используется для обеспечения соединений длинной до 10 м в объединительных конструктивах аппаратуры системы ввода-вывода серверов.

    (рис 2.26) Применение STI в серверах z900

    Общая схема применения STI в серверах z900 приведена на рис. 2.26. Основное назначение STI 1GB/s - обеспечение связи MBA c подсистемой ввода-вывода (мультиплексорами/демультиплексорами М/D), а также для прямого подключения к другим серверам по стандарту кластерной шины ICB-3. Вторичные интерфейсы STI 333 MB/s применяются для подключения М/D к модулям ввода-вывода через объединительные конструктивы и могут быть использованы для объединения серверов в параллельный сисплекс по стандарту ICB-2, используемому в серверах S390 (G3-G6). В серверах серии z900 применяются четыре блока MBA, каждый из которых имеет 6 STI, что обеспечивает суммарную пропускную способность на стыке процессорное ядро - система ввода-вывода до 24 x 2 GB/s или 48 GB/s. Через вторичный STI может быть подключен модуль расширения, позволяющий создавать PCI-соединения для технологий FICON, ATM, Ethernet, Token Ring, а также подключать криптографические процессоры.

    Логическая организация STI для z900 приведена на рис. 2.27. Интерфейс состоит из двух одинаковых частей для побайтного обмена в двух направлениях между MBA и M/D (рис. 2.27). Каждая из частей включает:

    (рис 2.27) Логическая организация STI

    1. На передающей стороне:

  • буфер данных источника для формирования передаваемых четырехбайтных слов с одним контрольным разрядом по четности на каждый байт;
  • мультиплексор данных, принимающий слова с интервалом в 4 нс и передающий их побайтно с контрольным разрядом и синхросигналом (500 Мгц) с интервалом 1 нс, что обеспечивает скорость обмена 1 GB/s;
  • дифференциальный усилитель для формирования сигналов в линиях интерфейсов.
  • 2. На принимающей стороне:

  • дифференциальный приемник сигналов из линий интерфейса с учетом принятого синхросигнала;
  • демультиплексор, осуществляющий побайтный прием с контрольным разрядом и формирование 36-разрядных слов, передаваемых в буфер приемника;
  • буфер данных приемника.
  • Кабель STI ограничен по длине до 10 м и включает по 10 пар линий в каждом направлении, восемь из которых используются для параллельной передачи байта информации, а два - для контрольного бита по четности и синхросигнала 500 МГц. Для обмена информацией используется синхронный способ, причем передача информации осуществляется по каждому фронту синхросигнала, что обеспечивает скорость обмена 1GB/s в каждом направлении. При такой скорости время передачи одной посылки составляет 1 нс, что значительно меньше времени T распространения посылки в линиях интерфейса длиной до 10 м. Вследствие разного времени прихода сигналов одной посылки в разных линиях интерфейса из-за разброса их параметров на приемной стороне возникает "перекос" сигналов DТ. Классический способ исключения неправильного приема заключается в задержке выдачи сигнала синхронизации на передающей стороне так, чтобы к моменту его приема в приемнике сигналы во всех линиях интерфейса имели правильные значения с учетом наихудших условий перекоса. Однако такой способ не годится в тех случаях, когда время передачи одной посылки сопоставимо со временем перекоса.

    В STI применен метод побитовой синхронизации, основанный на индивидуальной подстройке момента приема сигнала в каждой линии интерфейса. С этой целью в приемнике принятый сигнал в каждой линии подается на цепочку задержек (рис. 2.28). На выходах каждого из элементов линии задержки формируется принимаемый сигнал, находящийся в определенной фазе с синхросигналом. Для увеличения надежности прием сигнала осуществляется с выхода элемента задержки, для которого момент приема (на рис. 2.28 задний фронт принятого СИ) попадает на середину сигнала (выход элемента задержки n2). С этой целью в приемном тракте каждого бита используется следящая система, формирующая окно приема. Такое окно заключено между элементами n1, n3, на выходах которых начальный и конечный фронты переключения сигнала совпадают с фронтом СИ, определяющим момент приема. При этом номер элемента n2, на выходе которого моменты переключения сигнала равноудалены от момента приема по синхросигналу, может быть определен как среднее арифметическое номеров элементов n1, n3.

    (рис 2.29) Побитовая синхронизация приема в STI(рис 2.28) Разрядная схема приема сигналов STI

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

    Схема функционирует в двух режимах: настроечном и рабочем. В настроечном режиме на вход схемы подается контрольная посылка и осуществляется подстройка и фиксация предварительной задержки входного сигнала для размещения окна приема сигналов приблизительно в центр каскадной линии задержки, состоящей из 32 элементов. Кроме этого схемами выделения начального и конечного элементов окна определяются номера граничных элементов n1, n3 и заносятся в соответствующие регистры адресов начала и конца окна. Содержимое регистров подается на схему формирования адреса данных (номера n2), сохраняемого в регистре и используемого в схеме выборки данных для приема значения бита с выхода элемента n2.

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

  • элементы 0 $$\div$$ 15 предназначены для определения начала окна;
  • элементы 16 $$\div$$ 31 предназначены для определения конца окна;
  • элементы 8 $$\div$$ 23 применяются для выборки бит с использованием выделенного окна приема.
  • Схемы выделения начального и конечного элементов окна постоянно отслеживают совпадение фронтов принимаемого сигнала и синхросигнала. При их смещении изменяется содержимое регистров адресов начала и конца окна и, тем самым, схема подстраивается для правильного приема.

    Вернуться к учебному плану