Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

IBM370

.pdf
Скачиваний:
35
Добавлен:
02.06.2015
Размер:
5.21 Mб
Скачать

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

Основная память может быть как энергозависимой, так и энергонезависимой. При отключе-

нии питания в случае энергозависимой памяти ее содержимое не сохраняется. При включении или отключении питания в случае энергонезависимой памяти ее содержимое остается неиз-

менным при условии, что процессор находится в состоянии “стоп” и в момент отключения пита-

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

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

Структура информации

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

новным элементом всех форматов.

Биты в байте нумеруются последовательно слева направо от 0 до 7. В любом формате в программе или в любом операнде фиксированной длины, состоящем из нескольких байтов, би-

ты, образующие формат, нумеруются последовательно слева направо, начиная с 0. Левые би-

ты иногда называют старшими битами, правые – младшими.

С целью обнаружения ошибок, а в некоторых моделях и с целью их исправления с каждым байтом или группой байтов передается один контрольный бит или несколько таких битов. Кон-

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

трольные биты не учитываются. Емкость памяти выражается независимо от ширины обраще-

ния к памяти.

Байты могут храниться и обрабатываться каждый отдельно или группами (полями), состоя-

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

бой группу из двух последовательно расположенных слов. Положение любого поля или группы байтов определяется адресом самого левого байта.

Длина поля либо определяется кодом операции, которая должна быть выполнена (т.е. за-

дается неявно), либо задается явно как часть команды. Когда длина задана неявно, говорят,

что информация имеет фиксированную длину, которая может быть равна 1, 2, 4 или 8 байтам.

Когда длина поля не определяется кодом операции, а задается явно, то говорят, что ин-

формация имеет переменную длину. Поля переменной длины отличаются между собой по длине на целое число байтов.

11

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

Адресация

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

тов в памяти указывается адрес самого левого байта этой группы. Число байтов в группе либо подразумевается, либо явно определяется операцией. Для адресации используется 24-

битовый адрес, который дает возможность адресоваться самое большее к 16 777 216 байтам.

Адресация в памяти организована циклически: за ячейкой памяти с максимальным адресом

16 777 215 следует ячейка с адресом 0. Информация может быть помещена частично в по-

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

При обращении в основную память можно использовать адреса трех видов: абсолютные,

реальные и логические.

Абсолютные адреса относятся к низшему уровню адресов, распознаваемых программой; в

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

ному адресу.

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

ной памяти каждого процессора на области с различными абсолютными адресами памяти.

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

ходимость. Адреса, подлежащие воздействию механизма префиксации, называются реальны-

ми. При отсутствии механизма префиксации реальный адрес совпадает с соответствующим абсолютным адресом.

Когда динамическое преобразование адресов включено, адреса, задаваемые программой,

обычно преобразуются в реальные адреса до того, как произойдет обращение к основной па-

мяти. Программа задает адрес, называемый логическим адресом. При отсутствии динамиче-

ского преобразования логический адрес и соответствующий реальный адрес совпадают.

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

Память обычно имеет абсолютные адреса, начинающиеся с нуля, и объем ее кратен 2048

байтам. При попытке обращения к основной памяти по абсолютному адресу, которому не соот-

12

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

мации, то особый случай не распознается.

Расположение информации

Целочисленные границы

Поля фиксированный длины, такие, как полуслова или двойные слова, должны размещать-

ся в основной памяти, начиная с целочисленной границы для данного блока информации. Гра-

ница для некоторого блока информации называется целочисленной, когда ее адрес кратен числу байтов в блоке. Например, слово (4 байта) размещено на целочисленной границе, если его адрес кратен 4. Полуслово (2 байта) должно быть размещено в памяти так, чтобы его адрес был кратен 2, а двойное слово (8 байтов) должно иметь адрес, кратный 8 (рис. 2.2).

·

 

 

 

 

 

 

· ------

Адреса памяти

 

 

 

 

·

 

 

 

 

 

 

·

 

 

 

 

 

 

+-------------------------------------

 

 

 

 

 

 

?????

 

¦ 0 ¦ 1 ¦ 2 ¦ 3 ¦ 4 ¦ 5 ¦ 6 ¦ 7 ¦ 8 ¦

+-------------------------------------

 

 

 

 

 

 

·

·

·

·

·

 

 

·

·

·

·

·

 

 

·

·

·

·

·

 

 

+-------------------------------------

 

 

 

 

 

 

?????????

¦ 0

¦ 2

¦ 4

¦ 6

¦ 8

+-------------------------------------

 

 

 

 

 

 

·

 

·

 

·

 

 

·

 

·

 

·

 

 

·

 

·

 

·

 

 

+-------------------------------------

 

 

 

 

 

 

?????

 

¦ 0

 

¦ 4

 

¦ 8

+-------------------------------------

 

 

 

 

 

 

·

 

 

 

·

 

 

·

 

 

 

·

 

 

·

 

 

 

·

 

 

+-------------------------------------

 

 

 

 

 

 

??????? ????? ¦ 0

 

 

 

¦ 8

+-------------------------------------

 

 

 

 

 

 

Рис. 2.2. Примеры для байтов, полуслов, слов и двойных слов

13

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

та равны нулю.

Команда должна располагаться на целочисленной границе полуслова; слова команды кана-

ла и операнды некоторых привилегированных команд должны располагаться на целочисленной границе.

Допустимость произвольной байтовой границы

На всех моделях Системы 370 допускается расположение операндов большинства непри-

вилегированных операций на произвольной байтовой границе.

Это несправедливо для адресов команд и операндов команд СРАВНЕНИЕ С ОБМЕНОМ и СРАВНЕНИЕ ДВОЙНОЕ С ОБМЕНОМ. Команды должны быть выровнены по границам четных байтов. Младший бит адреса при выполнении перехода должен быть равен нулю, и команда ВЫПОЛНИТЬ должна указывать команду с четным адресом. Команда СРАВНЕНИЕ С ОБМЕНОМ должна указывать операнд на границе слова, а команда СРАВНЕНИЕ ДВОЙНОЕ С ОБМЕНОМ – на границе двойного слова.

Замечания по программированию

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

ность в большинстве случаев заметно падает. Для обеспечения оптимальной производитель-

ности вычислительной установки операнды в памяти должны быть выровнены по целочислен-

ным границам, а операнды, не выровненные по целочисленным границам, следует применять лишь в исключительных случаях.

2.2.Процессор

Процессор – это центр всей системы, управляющий последовательностью и ходом выпол-

нения команд, действиями при прерываниях, работой средств отсчета времени, начальной за-

грузкой программы, а также другими функциями.

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

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

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

гут различаться у разных процессоров, но это не влияет на получаемые логические результа-

ты.

Выполняемые процессором команды образуют пять классов: команды управления систе-

мой, общие команды, команды для выполнения действий над десятичными числами, команды

14

для выполнения действий над числами с плавающей точкой и команды ввода-вывода. Команды управления системой и команды ввода-вывода являются привилегированными командами, ко-

торые могут выполняться только тогда, когда процессор находится в состоянии “супервизор”.

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

Для выполнения своих функций процессор помимо основной памяти имеет некоторую внут-

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

В текущем слове состояния программы содержится информация, которая определяет по-

следовательность выполнения команд, а также позволяет фиксировать и производить индика-

цию состояний системы по отношению к выполняемой в данный момент программе. Регистры,

связанные с отсчетом времени, – это часы, компаратор и таймер CPU. Общие регистры, реги-

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

Общие регистры

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

рованной точкой и логических операциях. В регистр можно поместить одно слово (32 бита).

Общие регистры определяются числами от 0 до 15 и задаются в команде с помощью четы-

рехбитового поля R. Некоторые команды имеют по несколько полей R, чтобы обеспечить адре-

сацию нескольких общих регистров.

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

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

ром содержит младшие биты.

Регистры с плавающей точкой

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

названных регистрами с плавающей точкой. Они нумеруются числами 0, 2, 4 и 6. Эти регистры имеют длину 64 бита и могут содержать как короткие (32-битовые), так и длинные (64-битовые)

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

ются и их содержимое не изменяется. Для расширенных операндов используются две пары со-

15

седних регистров с плавающей точкой: регистры 0, 2 и регистры 4, 6. Каждая из этих пар обес-

печивает 128-битовый формат.

Управляющие регистры

Процессор может использовать 16 управляющих регистров по 32 бита каждый (рис. 2.3).

Биты регистров закреплены за конкретными средствами, такими, например, как средство реги-

страции программных событий. Они содержат особую информацию, необходимую для функци-

онирования этих средств, а также разрешают или запрещают определенные действия. Управ-

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

Управляющие регистры нумеруются от 0 до 15, которые в командах ЗАГРУЗКА УПРАВЛЕНИЯ и ЗАПИСЬ В ПАМЯТЬ УПРАВЛЕНИЯ указываются в четырехбитовом поле R. С

помощью этих команд можно обращаться к группе управляющих регистров.

2.3.Ввод и вывод

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

Поле

Но-

Общие

Регистры с плавающей точ-

Управляю-

Реги-

мер ре-

регистры

кой

щие регистры

стра

гистра

 

 

 

 

 

 

 

 

0000

0

32 бита

64 бита

32 бита

 

 

 

 

 

0001

1

 

 

 

 

 

 

 

 

0010

2

 

 

 

 

 

 

 

 

0011

3

 

 

 

 

 

 

 

 

0100

4

 

 

 

 

 

 

 

 

0101

5

 

 

 

 

 

 

 

 

0110

6

 

 

 

 

 

 

 

 

0111

7

 

 

 

 

 

 

 

 

1000

8

 

 

 

 

 

 

 

 

1001

9

 

 

 

 

 

 

 

 

1010

10

 

 

 

 

 

 

 

 

1011

11

 

 

 

 

 

 

 

 

1100

12

 

 

 

 

 

 

 

 

1101

13

 

 

 

 

 

 

 

 

1110

14

 

 

 

 

 

 

 

 

1111

15

 

 

 

 

 

 

 

 

Рис. 2.3. Общие регистры, регистры с плавающей точкой

16

и управляющие регистры

Каналы

Каналы связаны с процессором и основной памятью непосредственно, а через интерфейс ввода-вывода – с контроллерами. Канал освобождает центральный процессор от прямого со-

единения с внешними устройствами и позволяет обрабатывать данные одновременно с выпол-

нением операции ввода-вывода.

В одних случаях канал может представлять собой независимую единицу оборудования, об-

ладающую всеми необходимыми логическими возможностями и способностью хранить инфор-

мацию, в других — функции канала может выполнять процессор, а сам канал физически объ-

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

В Системе 370 имеются три типа каналов: байт-мультиплексный, блок-мультиплексный и селекторный.

Интерфейс ввода-вывода

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

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

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

Внешние устройства и контроллеры

К внешним устройствам относятся устройства чтения перфокарт и перфораторы, лентопро-

тяжные устройства, диски, барабаны, устройства телеобработки и устройства приема инфор-

мации от датчиков.

Многие внешние устройства работают с такими документами, как перфокарты или магнит-

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

троллером. Функции контроллера могут быть возложены на само внешнее устройство, переда-

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

чиваются все логические и буферные возможности, необходимые для работы соответствующе-

го внешнего устройства. С точки зрения программирования большинство функций контроллера неотделимо от функций самого внешнего устройства.

2.4.Пульт управления системой

Пульт управления системой позволяет оператору следить за действиями системы и вмеши-

ваться в них. Пульт управления включает панель управления системой и в большинстве случа-

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

17

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

Пульт управления системой позволяет производить включение и отключение питания,

сброс, начальную загрузку программ, останов и пуск, а также индикацию и занесение информа-

ции.

18

Глава 3. Выполнение программы

Обычно процессор выполняет команды последовательно. Слово состояния программы

(PSW), содержащее основную, необходимую для выполнения программы информацию, опре-

деляет, какая команда должна быть выполнена. Изменение последовательности операций мо-

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

тельством оператора.

3.1.Команды

Каждая команда состоит из кода операции, указывающего, какая операция должна выпол-

няться, и кода, задающего операнды.

Операнды

Имеются три класса операндов: регистровые операнды, непосредственные операнды и операнды в основной памяти. Операнды могут быть указаны как явно, так и неявно.

Регистровые операнды могут размещаться в общих регистрах, регистрах с плавающей точ-

кой и в управляющих регистрах, причем тип регистра определяется кодом операции. Четы-

рехбитовое поле R регистра содержит номер (адрес) регистра, хранящего регистровый опе-

ранд. Операнды некоторых команд содержатся в неявно заданном регистре, т.е. в этих коман-

дах код операции задает (неявно) номер регистра.

Непосредственные операнды располагаются в самой команде; восьмибитовое поле, содер-

жащее непосредственный операнд, называется полем I.

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

команды. Для задания адреса операнда, находящегося в основной памяти, применяется фор-

мат, в котором содержимое общего регистра используется как компонент адреса. Это позволя-

ет:

сокращенно указывать полный адрес;

изменять и анализировать адрес с помощью команд, операнды которых размещаются в общих регистрах;

изменять адреса программными средствами, не изменяя при этом самих команд;

вести обработку данных независимо от их местоположения, непосредственно используя адреса, полученные от других программ.

Адрес для обращения к основной памяти содержится в регистре, номер которого помещен в поле команды, или вычисляется по базовому адресу, индексу и смещению, обозначаемым в команде соответственно полями B, X и D.

Как правило, при выполнении команды используются два операнда, а результат помещает-

ся на место первого. Команды, в название которых входит слово ЗАПИСЬ, являются исключе-

нием; результат выполнения таких команд помещается на место второго операнда. За исклю-

чением окончательного результата, записываемого в память, содержимое всех регистров и

19

ячеек памяти, участвующих в вычислении адресов и выполнении операции, остается неизмен-

ным.

Формат команд

Команда имеет длину в одно, два или три полуслова и должна располагаться в основной памяти на целочисленной границе полуслова. Каждая команда имеет один из шести основных форматов: RR, RX, RS, SI, S и SS, причем последний используется в двух вариантах (рис. 3.1).

Формат некоторых команд несколько отличается от основного формата, а в ряде команд выполняемое действие не подчиняется общим правилам, перечисленным в данном разделе.

Все подобные исключения явно оговариваются в описаниях конкретных команд.

Обозначение формата команды выражает в общем виде, операнды каких классов участвуют в операции: RR обозначает операцию типа “регистр—регистр”; RX – операцию “регистр— память”, в которой адрес памяти индексируется; RS – операцию типа “регистр—память” (без индексации); SI – операцию типа “память – непосредственный операнд”; SS – операцию типа

“память—память”, S — операцию, один операнд которой задан неявно, а другой находится в памяти.

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]