Принципы работы системы IBM/370
Описание логической структуры вычислительных машин Системы 370. Особенности мультипроцессирования. Команды общего назначения и управления системой, обработки десятичных данных и команды с плавающей точкой. Средства обработки машинных ошибок (коррекция).
Рубрика | Программирование, компьютеры и кибернетика |
Вид | книга |
Язык | русский |
Дата добавления | 12.06.2014 |
Размер файла | 658,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ПРИНЦИПЫ РАБОТЫ СИСТЕМЫ IBM/370
Москва, 2001
Аннотация
Это почти точная копия книги “Принципы работы системы IBM/370” (пер. с англ. Под ред. Райкова Л. Д., М., Мир, 1975). Английский оригинал “IBM System/370 principles of operation (Fourth Edition)” был выпущен фирмой IBM в 1973 г. под названием “Принципы работы ЕС ЭВМ”. Без ссылок на американский источник эта книга входила в комплект технической документации, поставляемой вместе с вычислительными машинами Единой Системы.
В настоящем варианте исправлены опечатки и неточности, имевшие место в вышеуказанном печатном издании, а также изменены некоторые предложения в целях повышения удобочитаемости, однако объем внесенных изменений был минимальным. Опущено также приложение 5 “Шестнадцатеричные таблицы”, помогающее вручную быстро переводить шестнадцатеричные числа в десятичные и обратно и выполнять арифметические операции над шестнадцатеричными числами. Приложение 6 “Код EBCDIC” стало приложением 5 “Коды EBCDIC и ДКОИ”.
4.12.2001 г.
Александр Савватеев
pateralex@rambler.ru
вычислительный мультипроцессирование десятичный машинный
Предисловие
Предлагаемая вниманию читателей книга представляет собой перевод справочного руководства фирмы IBM и содержит описание логической структуры вычислительных машины Системы 370. С практической точки зрения она включает информацию об общей организации аппаратных средств системы, знакомство с которой будет способствовать наиболее эффективному использованию аппаратных возможностей моделей этой системы при программировании на языке Ассемблера.
Сказанное, конечно, не означает, что любой программист, приступая к практическому программированию, должен изучить эту книгу “от корки до корки”. Детальное знание приведенного здесь материала в первую очередь необходимо тем, кто собирается совершенствовать и развивать существующие системы путем подключения новых внешних устройств или разработки программ, расширяющих возможности стандартных операционных систем (ОС), а также и тем, кто планирует создание специализированных систем программного обеспечения (ПО), базирующихся на аппаратных средствах Системы 370 или других вычислительных машин, имеющих сходную логическую структуру.
Подробное знакомство с материалом этой книги полезно и программистам, пишущим прикладные программы на языке Ассемблера и использующим лишь стандартные возможности системы. Для них она может служить справочным пособием; тем же, кто программирует на языках высокого уровня, книга может быть рекомендована как дополнительная литература. Книга может быть с успехом использована и в качестве учебного пособия для различных курсов (как вузовских, так и повышения квалификации) по вычислительной технике и программированию.
Система IBM 370 является результатом совершенствования и дальнейшего развития широко известной Системы IBM 360. Будучи наиболее распространенными в настоящее время вычислительными машинами, модели Систем 360 и 370 отражают важнейшие тенденции одного из основных направлений развития вычислительной техники. Поэтому помимо чисто утилитарного значения содержащийся в книге фактический материал помогает критически осмыслить современные тенденции и проблемы вычислительной техники.
Логическая структура Системы 370, а следовательно, и текст книги отражают противоречия, постепенно накапливающиеся в процессе развития средств вычислительной техники, которые строятся на традиционных принципах.
Специалистам, внимательно следящим за эволюцией логической структуры вычислительных систем, возможно, будет интересно познакомиться с тем, как требования увеличения производительности, надежности и гибкости системы приводят к постепенному обострению конфликта между традиционным, так называемым концептуальным, порядком выполнения программ и фактической глубоко асинхронной организацией вычислительного процесса. Чтобы понять, в чем состоит этот конфликт, достаточно упомянуть о таких общепринятых особенностях современных вычислительных машин, как высокая степень совмещения операций в процессорах, наличие многоуровневой основной (оперативной) памяти, работа нескольких процессоров с общем полем основной памяти, средства автоматического повторения команд с аппаратных контрольных точек, страничный доступ и виртуальная организация памяти.
Все это требует чрезвычайно сложных и развитых средств, обеспечивающих при необходимости согласование содержимого памятей разного уровня и синхронизацию событий.
Большой интерес представляет в Системе 370 и более развитая по сравнению с Системой 360 система прерываний. Вызванное практическими требованиями совершенствования системы отладки программ это развитие имеет на самом деле более общее значение, так как может послужить предпосылкой создания более простых и безболезненных методов совершенствования самих операционных систем путем введения управляющих программ более высокого уровня, связь с которыми осуществляется через систему прерываний. Такое многоуровневое построение управляющей программы позволит реализовывать новые функции без каких-либо изменений в уже имеющейся исходной системе.
В заключение следует сказать, что благодаря ясности изложения книга представляет значительный интерес для широкого круга специалистов, работающих в области современной вычислительной техники и программирования, и мы надеемся, что они со вниманием отнесутся к ее появлению.
Перевод выполнили А. П. Гагарин, Г. Н. Староверова и А. Г. Чекалов.
Л. Райков
Глава 1. Система 370
Система 370 была создана на основе опыта разработки, производства и эксплуатации Системы 360. Она совместима с Системой 360 по принципу “снизу вверх”, т.е. переход от Системы 360 к Системе 370 столь же легок, как переход в пределах одной системы от младшей модели к старшей. В то же время средства обработки информации Системы 370 отличаются большим совершенством.
В Системе 370 широко используются последние достижения технологии полупроводниковых приборов и интегральных схем. Кроме того, возможности применения этой вычислительной системы расширены за счет введения новых средств и возможностей: динамического преобразования адресов; косвенной адресации данных в каналах; мультипроцессирования; средств отсчета времени; операций с плавающей точкой, обеспечивающих повышенную точность; средств регистрации программных событий; средств обеспечения мониторных программ; блок-мультиплексного канала. Эти средства и возможности значительно повышают надежность, готовность и доступность вычислительной установки.
Динамическое преобразование адресов (динамическая переадресация) выполняется процессором и исключает необходимость назначать для программ фиксированные области реальной основной памяти, ослабляя, следовательно, ограничения, связанные с адресацией, в системных и прикладных программах, а также обеспечивает большую свободу при составлении программ, что позволяет более эффективно и действенно использовать основную память. Динамическая переадресация при условии применения соответствующей ОС позволяет использовать поле виртуальной памяти размером до 16 777 216 байтов.
Косвенная адресация данных в канале -- сопутствует динамическому преобразованию адресов и помогает осуществлять преобразование адресов при операциях ввода-вывода. Благодаря этой возможности одна команда канала способна управлять передачей данных, которым отведены несмежные области в реальной основной памяти.
Мультипроцессирование обеспечивает взаимосвязь процессоров с целью повышения готовности системы, а также для совместного использования данных и ресурсов. Мультипроцессирование предполагает наличие основной памяти, общей для процессоров, сигнализацию между процессорами по инициативе программы или специальных технических средств, а также наличие программных средств для смещения первых 4096 байтов реальной основной памяти каждого процессора.
Средства отсчета времени -- это часы, компаратор, таймер CPU, а также интервальный таймер, имеющийся и в Системе 360. Часы измеряют истекшее время и могут служить для определения даты и времени суток; их цикл работы составляет приблизительно 143 года, а разрешающая способность такова, что период времени, в течение которого они обновляются, сравним с периодом времени выполнения команды на данной модели. Компаратор вызывает прерывание, как только содержимое часов достигает величины, заданной программно. Таймер CPU - это интервальный таймер с высокой разрешающей способностью, инициирующий прерывание в тот момент, когда его содержимое уменьшается до 0.
Операции с плавающей точкой, обеспечивающие повышенную точность, включают сложение, вычитание и умножение чисел, мантисса которых состоит из 28 шестнадцатеричных цифр. Кроме того, имеется команда для округления чисел, представленных в формате для операций повышенной точности, в числа длинного формата, и чисел длинного формата в числа обычного формата.
Средства регистрации программных событий позволяют выборочно вызывать программные прерывания и предназначены для повышения эффективности процесса отладки.
Средство обеспечения мониторных программ позволяет передавать управление мониторной программе, как только в ходе выполнения программы, выполняемой под контролем этой мониторной программы, встречается специальная команда. Это средство может быть использовано, например, для учета того, какие программы получают управление, как часто и в течение какого времени.
Блок-мультиплексный канал, позволяющий одновременно выполнять несколько программ канала, является эффективным средством управления устройствами ввода-вывода, которые передают данные через интерфейс с высокой скоростью, однако относительно долго простаивают между передачами.
Для использования этих новых функций и средств предусмотрены управляющие регистры, к которым может адресовать программа, и новый режим работы процессора - режим расширенного управления.
В Системе 370 предусмотрена возможность использования ОС, применяемых на моделях Системы 360, а также ОС, разрабатываемых специально для Системы 370 с учетом ее особенностей; при этом прикладные программы и данные остаются без изменений или должны быть изменены незначительно. В то же время в Системе 370 имеется несколько моделей процессора, рассчитанных на различные уровни производительности, что делает многие имеющиеся в Системе 370 новые средства обработки информации доступными как на малых, так и на крупных установках. Таким образом, возможность широкого выбора моделей и их обеспечения наряду с нововведениями и усовершенствованиями делают Систему 370 одной из наиболее гибких современных систем.
1.1 Универсальность
Подобно Системе 360, Система 370 является системой общего назначения, и ее можно легко приспособить для самых различных применений. Основные вычислительные функции реализуются системой с помощью стандартного набора команд, представляющего собой расширение стандартного набора команд Системы 360 и включающего средства защиты памяти. Добавление средств обработки десятичных данных приводит к системе команд для экономических применений, а средств выполнения операций с плавающей точкой - к системе команд для научных применений, к которой в свою очередь могут быть добавлены средства выполнения операций с плавающей точкой с повышенной точностью. Команды обработки десятичных данных и команды с плавающей точкой в сочетании со стандартным набором команд составляют универсальную систему команд. Добавление других средств, например команд условного обмена, позволяет расширить возможности системы в еще большей степени.
Так же, как и в Системе 360, в Системе 370 предусмотрена возможность адресовать в основной памяти до 16 777 216 байтов, а динамическая переадресация в сочетании с соответствующим ПО предоставляет в распоряжение пользователя максимальный диапазон адресов, невзирая на то, что объем имеющейся реальной памяти может быть значительно меньше. Динамическая переадресация в сочетании с ПО позволяет использовать модели Системы 370, оснащенные относительно небольшим объемом основной памяти, для значительно более широкого круга задач, причем во многих случаях, когда требуется очень большой объем основной памяти, использование модели оказывается более экономичным и удобным. Помимо того, во многих моделях Системы 370 скорость обращения к основной памяти повышается благодаря применению буферной памяти, о которой пользователь может не подозревать и которая позволяет получать информацию из основной памяти без задержки, обусловленной самим механизмом обращения к ней.
Другая особенность универсального характера Системы 370 связана с возможностью присоединять к ней большое количество различных устройств ввода-вывода через мультиплексные каналы нескольких типов. Подобно Системе 360, Система 370 имеет байт-мультиплексный канал для присоединения устройств, не имеющих буфера, и значительного количества устройств телеобработки. Кроме того, в Системе 370 предусмотрен блок-мультиплексный канал, который особенно удобен для присоединения устройств с буфером, а также высокоскоростных циклически работающих устройств.
Посредством выбора подходящих компонентов можно построить конкретную систему, наиболее подходящую для данного применения с учетом ее внутренней производительности, функциональных возможностей и используемых устройств ввода-вывода.
1.2 Совместимость
Несмотря на то что модели Системы 370 различны по конструкции и физическим возможностям, логически они совместимы “снизу вверх” и “сверху вниз”. Это означает, что любая программа дает одни и те же результаты на любой модели с учетом ограничений на совместимость, о которых будет сказано ниже. Совместимость позволяет легко наращивать систему, обеспечивает удобство обслуживания и простоту обучения.
Принцип совместимости имеет четыре ограничения.
1. Средства системы, используемые программой, должны быть одинаковыми во всех рассматриваемых случаях. Так, процессоры должны обладать одинаковыми наборами необязательных возможностей, точно так же, как должны быть эквивалентными емкости памяти, количество и типы внешних устройств.
2. Программа не должна зависеть от продолжительности выполнения команд процессора, скорости ввода или вывода данных, времени обращения к памяти, а также абсолютной продолжительности обработки.
3. Программа не должна зависеть от функций, которые определяются как зависящие от модели, результатов, о которых сказано, что их невозможно предсказать, и специальных функций, не рассматриваемых в этой книге.
4. Программа не должна использовать поля, которые впоследствии могут быть закреплены за теми или иными функциями технических средств, или же зависеть от этих полей до тех пор, пока они не будут явным образом предоставлены для использования программами. Кроме того, не следует составлять программу таким образом, чтобы прерывание вызывалось неправильным форматом, например использованием недопустимого кода операции или команды канала.
Система 370 совместима с Системой 360 “снизу вверх”, поэтому, чтобы программы Системы 360 можно было выполнять в Системе 370, кроме перечисленных выше ограничений должны соблюдаться также и следующие:
1. Бит 12 слова состояния программы не должен использоваться в программе как бит, единичное значение которого вызывает выдачу результата в коде ASCII, так как этот код предусмотрен только в Системе 360.
2. Программа не должна зависеть от областей памяти, которые закреплены только в Системе 370, а именно от области, отведенной для кодов прерывания, областей сохранения при сигналах от схем контроля и области расширенной регистрации.
3. В программе, связанной с операциями ввода-вывода, следует учитывать влияние предварительной выборки, производимой каналами, повторения команд, регистрации состояния из-за ошибки в данных канала и особенностей команды ОСТАНОВИТЬ УСТРОЙСТВО.
1.3 Управляющая программа
Система спроектирована для работы с управляющей, или супервизорной, программой, т.е. с программой, которая координирует использование системных ресурсов и выполняет все команды ввода-вывода, обрабатывает особые состояния, осуществляет планирование и выполнение составных программ.
Система 370 может работать с управляющими программами нескольких различных типов. Некоторые из них обеспечивают использование специфических команд Системы 370, средств, повышающих надежность, готовность и доступность вычислительных установок, а также новых возможностей системы ввода-вывода. Кроме того, некоторые из этих управляющих программ создают условия для того, чтобы системные и прикладные программы использовали виртуальную память.
Система 370 может работать в режиме Системы 360, выполняя все управляющие и прикладные программы, составленные для Системы 360 и удовлетворяющие условиям, изложенным в разделе 1.2.
1.4 Готовность
Готовность системы - это способность ее принимать к выполнению и успешно выполнять конкретное задание. Технические средства обеспечивают повышенную готовность Системы 370 по сравнению с Системой 360 за счет того, что 1) позволяют одновременно обрабатывать большее количество более разнообразных заданий, вследствие чего вычислительная установка становится доступнее для выполнения конкретного задания; 2) ограничивают влияние ошибки, а также способствуют более точному нахождению ее причины, в результате чего количество программ, на выполнение которых влияет возникновение ошибки, сводится к минимуму, а исправление этих ошибок становится менее трудоемким делом.
Повышенная готовность определяется следующими фундаментальными особенностями системы.
По мере выполнения программы проверяется корректность команд и данных и индикация ошибок программирования производится отдельно от индикации сбоев технических средств. Подобная система проверки и индикации способствует выявлению неполадок и ограничению их действия.
Средства защиты памяти в сочетании с динамическим преобразованием адресов дают возможность защищать содержимое основной памяти от разрушения или неправильного использования, если программа производит ошибочную или несанкционированную запись в память или выборку. Это позволяет удовлетворить запросы пользователя по обеспечению секретности и одновременно решать задачи, предъявляющие различные требования в этом отношении.
Динамическое преобразование адресов изолирует одну прикладную программу от другой, позволяя им тем не менее разделять между собой общие ресурсы. Это делает возможным реализацию виртуальных вычислительных установок, которые могут одновременно с выполнением прикладных программ служить для разработки и отладки новых ОС. Кроме того, на виртуальных вычислительных установках могут одновременно работать несовместимые ОС.
Мультипроцессирование улучшает использование памяти и процессоров, обеспечивает более эффективную связь между процессорами и позволяет дублировать ресурсы с целью повышения жизнеспособности системы в случае отказа оборудования.
Средство обеспечения мониторных программ, регистрация программных событий и средства отчета времени с высокой разрешающей способностью делают возможной отладку программ без ручного вмешательства одновременно с выполнением других программ; при этом отладка почти не влияет на ход выполнения этих программ.
Эмуляция выполняется под управлением супервизорной программы, благодаря чему создаются возможности одновременно с эмуляцией выполнять другие работы.
На многих моделях для преодоления влияния случайных сбоев технических средств предусмотрены проверка и исправление ошибок основной памяти, а также повторение команд, что снижает общее количество отказов технических средств.
Расширенный механизм обработки сигналов от схем контроля обеспечивает независимую от модели локализацию неисправностей, что сокращает число программ, испытывающих воздействие неисправленных ошибок. Кроме того, от специфики модели не зависит регистрация информации о состоянии машины. Все это приводит к улучшению совместимости моделей в части обработки сигналов от схем контроля, а также увеличивает возможность загрузки и выполнения программы на различных моделях в случае возникновения системных неисправностей.
При основных режимах эксплуатации ручное управление сведено к минимуму и взаимодействие в системе между оператором и вычислительной установкой осуществляется в основном через устройства, действующие как устройства ввода-вывода, что уменьшает возможность случайной ошибки со стороны оператора.
Глава 2. Структура системы
Общая логическая структура Системы 370 предусматривает наличие основной памяти, центрального процессора (CPU), селекторных и мультиплексных каналов и внешних устройств, которые обычно присоединяются к каналам через контроллеры (блоки управления). В различных моделях эти устройства могут быть реализованы по-разному. В состав вычислительной установки могут входить один или несколько процессоров. При этом процессоры можно связать между собой посредством общих внешних устройств, канала или общего поля памяти. На рис. 2.1 изображена логическая структура однопроцессорной (слева) и двухпроцессорной (справа) систем.
+-----------+ +-----------+
¦ ???????? ¦ ¦ ???????? ¦
¦ ?????? +-----T---------T-/ /-T------------+ ?????? +-----------T-/
+-----------+ ¦ ¦ ¦ +-----------+ ¦
¦ ¦ ¦ ¦ +---+ +---+ ¦
¦ ¦ ¦ ¦ ¦ ¦ ¦
+-----------+ ¦ ¦ ¦ +-----------+ +-----------+ ¦
¦ ????????? ¦ ¦ ¦ ¦ ¦ ????????? ¦ ¦ ????????? ¦ ¦
¦ +-----+---------+-/ ¦ +-¦ ¦ ¦ ++ ¦
+-----------+ ¦ ¦ ¦ ¦ ¦ ¦ +-----------+ +-----------+¦ ¦
¦ ¦ ¦ ¦ +---+------+ ¦ ¦ +------+---¦
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+
¦ ????? ¦ ¦ ????? ¦ ¦ ????? ¦ ¦ ????? ¦ ¦ ????? ¦ ¦ ????? ¦
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+
+-----------+ +-----+ +-----+ +-----+ +-----+ +-----+
? ? ? ? ? ? ? ? ? ? ? ? ? ?
Рис. 2.1. Примеры логической структуры Системы 370
2.1 Основная память
Основная память служит для хранения данных и обеспечивает к ним быстрый доступ с прямой адресацией. Прежде чем обрабатывать данные в соответствии с программой, и программа и данные должны быть загружены (с внешних устройств) в основную память.
Основная память может быть физически объединена с процессором в один блок или выделена в самостоятельный блок. Она может состоять из двух частей: накопителя большого объема и буферной памяти с быстрым доступом. Каждый процессор может иметь свой блок буферной памяти. Конструкция памяти и применение в ней различных носителей информации способны влиять только на скорость выполнения программы.
На выборку данных из памяти и запись их в память процессором не влияет производимая одновременно передача данных внешними устройствами или одновременное обращение другого процессора к той же ячейке памяти. В случае одновременного запроса к одной и той же ячейке основной памяти доступ к ней разрешается в соответствии с приоритетами; при этом каналы имеют наивысший приоритет, а процессоры - переменный. Если в результате первого обращения содержимое ячейки изменилось, то любая последующая выборка из нее дает это измененное содержимое.
Основная память может быть как энергозависимой, так и энергонезависимой. При отключении питания в случае энергозависимой памяти ее содержимое не сохраняется. При включении или отключении питания в случае энергонезависимой памяти ее содержимое остается неизменным при условии, что процессор находится в состоянии “стоп” и в момент отключения питания нет обращения к основной памяти со стороны каналов. При отключении питания содержимое ключей защиты памяти в случае использования обоих типов памяти не сохраняется.
Структура информации
Между основной памятью, процессором и каналом информация передается блоками, число битов в которых равно или кратно 8. Восьмибитовый блок называется байтом и является основным элементом всех форматов.
Биты в байте нумеруются последовательно слева направо от 0 до 7. В любом формате в программе или в любом операнде фиксированной длины, состоящем из нескольких байтов, биты, образующие формат, нумеруются последовательно слева направо, начиная с 0. Левые биты иногда называют старшими битами, правые - младшими.
С целью обнаружения ошибок, а в некоторых моделях и с целью их исправления с каждым байтом или группой байтов передается один контрольный бит или несколько таких битов. Контрольные биты генерируются в системе автоматически, и программа не может оказать на них непосредственного влияния. Далее при указании размеров полей данных и регистров контрольные биты не учитываются. Емкость памяти выражается независимо от ширины обращения к памяти.
Байты могут храниться и обрабатываться каждый отдельно или группами (полями), состоящими из нескольких байтов. Полуслово представляет собой группу из двух последовательно расположенных байтов и является основным образующим блоком команд. Слово является группой из четырех последовательно расположенных байтов; двойное слово представляет собой группу из двух последовательно расположенных слов. Положение любого поля или группы байтов определяется адресом самого левого байта.
Длина поля либо определяется кодом операции, которая должна быть выполнена (т.е. задается неявно), либо задается явно как часть команды. Когда длина задана неявно, говорят, что информация имеет фиксированную длину, которая может быть равна 1, 2, 4 или 8 байтам.
Когда длина поля не определяется кодом операции, а задается явно, то говорят, что информация имеет переменную длину. Поля переменной длины отличаются между собой по длине на целое число байтов.
Когда информация заносится в основную память, изменяется содержимое только байтовых ячеек, входящих в поле, адрес и длина которого заданы в команде, хотя ширина обращения к памяти может превосходить размеры этого поля.
Адресация
Ячейки памяти, содержащие байты, нумеруются последовательно слева направо, начиная с нуля. Каждый номер считается адресом соответствующего байта. При адресации группы байтов в памяти указывается адрес самого левого байта этой группы. Число байтов в группе либо подразумевается, либо явно определяется операцией. Для адресации используется 24-битовый адрес, который дает возможность адресоваться самое большее к 16 777 216 байтам.
Адресация в памяти организована циклически: за ячейкой памяти с максимальным адресом 16 777 215 следует ячейка с адресом 0. Информация может быть помещена частично в последние и частично в первые ячейки памяти, причем обработка ее ведется без специальной индикации пересечения границы максимального адреса.
При обращении в основную память можно использовать адреса трех видов: абсолютные, реальные и логические.
Абсолютные адреса относятся к низшему уровню адресов, распознаваемых программой; в данном случае это адреса физических ячеек памяти. На некоторых моделях оператор может изменять соответствие между абсолютными адресами и физическими ячейками памяти. Но в каждый момент одна физическая ячейка памяти соответствует не более чем одному абсолютному адресу.
Если процессор оборудован для мультипроцессирования, то предусматривается механизм преобразования адресов, который позволяет отображать первые 4096 байтов реальной основной памяти каждого процессора на области с различными абсолютными адресами памяти. Этот механизм называется префиксацией. Большинство генерируемых процессором адресов подвержено действию механизма префиксации и преобразуются, если в этом возникает необходимость. Адреса, подлежащие воздействию механизма префиксации, называются реальными. При отсутствии механизма префиксации реальный адрес совпадает с соответствующим абсолютным адресом.
Когда динамическое преобразование адресов включено, адреса, задаваемые программой, обычно преобразуются в реальные адреса до того, как произойдет обращение к основной памяти. Программа задает адрес, называемый логическим адресом. При отсутствии динамического преобразования логический адрес и соответствующий реальный адрес совпадают.
Все процессоры и каналы, имеющие доступ к общей ячейке памяти, имеют также доступ и ко всему блоку объемом 2048 байтов, содержащему эту ячейку, а также к соответствующему ключу памяти. Процессоры и каналы обращаются к общей ячейке основной памяти, используя один и тот же абсолютный адрес.
Память обычно имеет абсолютные адреса, начинающиеся с нуля, и объем ее кратен 2048 байтам. При попытке обращения к основной памяти по абсолютному адресу, которому не соответствует никакая физическая ячейка, распознается особый случай. Обычно это происходит только тогда, когда информация, связанная с абсолютным адресом, действительно требуется для выполнения операции. Если операция может завершиться без использования этой информации, то особый случай не распознается.
Расположение информации
Целочисленные границы
Поля фиксированный длины, такие, как полуслова или двойные слова, должны размещаться в основной памяти, начиная с целочисленной границы для данного блока информации. Граница для некоторого блока информации называется целочисленной, когда ее адрес кратен числу байтов в блоке. Например, слово (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. Примеры для байтов, полуслов, слов и двойных слов
При использовании двоичного кода целочисленные границы для полуслов, слов и двойных слов задаются двоичными адресами, у которых соответственно один, два или три младших бита равны нулю.
Команда должна располагаться на целочисленной границе полуслова; слова команды канала и операнды некоторых привилегированных команд должны располагаться на целочисленной границе.
Допустимость произвольной байтовой границы
На всех моделях Системы 370 допускается расположение операндов большинства непривилегированных операций на произвольной байтовой границе.
Это несправедливо для адресов команд и операндов команд СРАВНЕНИЕ С ОБМЕНОМ и СРАВНЕНИЕ ДВОЙНОЕ С ОБМЕНОМ. Команды должны быть выровнены по границам четных байтов. Младший бит адреса при выполнении перехода должен быть равен нулю, и команда ВЫПОЛНИТЬ должна указывать команду с четным адресом. Команда СРАВНЕНИЕ С ОБМЕНОМ должна указывать операнд на границе слова, а команда СРАВНЕНИЕ ДВОЙНОЕ С ОБМЕНОМ - на границе двойного слова.
Замечания по программированию
Если операнды в памяти не расположены по адресам, кратным их длинам, производительность в большинстве случаев заметно падает. Для обеспечения оптимальной производительности вычислительной установки операнды в памяти должны быть выровнены по целочисленным границам, а операнды, не выровненные по целочисленным границам, следует применять лишь в исключительных случаях.
2.2 Процессор
Процессор - это центр всей системы, управляющий последовательностью и ходом выполнения команд, действиями при прерываниях, работой средств отсчета времени, начальной загрузкой программы, а также другими функциями.
Процессор во всех моделях Системы 370 выполняет одни и те же логические функции, хотя его конструкция может изменяться от модели к модели. Результат выполнения действительной команды будет одинаковым вне зависимости от используемой модели.
Процессор может обрабатывать числа, записанные в двоичном коде, числа с плавающей точкой фиксированный длины, десятичные числа переменной длины и логическую информацию, имеющую фиксированную или переменную длину. Обработка может идти параллельно или последовательно; размеры элементарных блоков информации при обработке, количество одновременных сдвигов и степень совмещения при выполнении арифметических операций могут различаться у разных процессоров, но это не влияет на получаемые логические результаты.
Выполняемые процессором команды образуют пять классов: команды управления системой, общие команды, команды для выполнения действий над десятичными числами, команды для выполнения действий над числами с плавающей точкой и команды ввода-вывода. Команды управления системой и команды ввода-вывода являются привилегированными командами, которые могут выполняться только тогда, когда процессор находится в состоянии “супервизор”. Общие команды применяются при выполнении переходов, логических операций над числами с фиксированной точкой и других операций, связанных с управлением системой и обработкой данных. Десятичные команды обрабатывают данные, имеющие десятичный формат, команды с плавающей точкой - данные, имеющие формат с плавающей точкой.
Для выполнения своих функций процессор помимо основной памяти имеет некоторую внутреннюю память. Программа может задать использование областей этой памяти, например слова состояния программы, регистров с плавающей точкой, управляющих регистров, регистра префикса, а также регистров, связанных со средствами отсчета времени.
В текущем слове состояния программы содержится информация, которая определяет последовательность выполнения команд, а также позволяет фиксировать и производить индикацию состояний системы по отношению к выполняемой в данный момент программе. Регистры, связанные с отсчетом времени, - это часы, компаратор и таймер CPU. Общие регистры, регистры с плавающей точкой и управляющие регистры описаны ниже. Код операции в команде определяет тип регистра, используемого в этой операции.
Общие регистры
Центральный процессор может обращаться за информацией к 16 общим регистрам. Общие регистры могут быть использованы в качестве регистров индекса в операциях над адресами и при индексации, а также как накапливающие регистры в арифметических операциях с фиксированной точкой и логических операциях. В регистр можно поместить одно слово (32 бита). Общие регистры определяются числами от 0 до 15 и задаются в команде с помощью четырехбитового поля R. Некоторые команды имеют по несколько полей R, чтобы обеспечить адресацию нескольких общих регистров.
При выполнении некоторых операций два смежных регистра используются совместно, позволяя работать с двойными словами. В этом случае адресуемый регистр содержит старшие биты операнда и должен иметь четный адрес, тогда как регистр, содержащий младшие биты операнда, имеет следующий по порядку нечетный адрес. Программа в этом случае должна указывать четный регистр, содержащий старшие биты. Следующий регистр с большим номером содержит младшие биты.
Регистры с плавающей точкой
Для операций с плавающей точкой предусмотрено четыре специализированных регистра, названных регистрами с плавающей точкой. Они нумеруются числами 0, 2, 4 и 6. Эти регистры имеют длину 64 бита и могут содержать как короткие (32-битовые), так и длинные (64-битовые) операнды с плавающей точкой. При арифметических операциях с короткими операндами эти операнды занимают старшие биты регистра, в то время как младшие биты регистра игнорируются и их содержимое не изменяется. Для расширенных операндов используются две пары соседних регистров с плавающей точкой: регистры 0, 2 и регистры 4, 6. Каждая из этих пар обеспечивает 128-битовый формат.
Поле Регистра |
Номер регистра |
Общие регистры |
Регистры с плавающей точкой |
Управляющие регистры |
|
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 управляющих регистров по 32 бита каждый (рис. 2.3). Биты регистров закреплены за конкретными средствами, такими, например, как средство регистрации программных событий. Они содержат особую информацию, необходимую для функционирования этих средств, а также разрешают или запрещают определенные действия. Управляющий регистр конкретной модели только в том случае содержит определенный бит, если на этой модели имеется средство, за которым этот бит закреплен.
Управляющие регистры нумеруются от 0 до 15, которые в командах ЗАГРУЗКА УПРАВЛЕНИЯ и ЗАПИСЬ В ПАМЯТЬ УПРАВЛЕНИЯ указываются в четырехбитовом поле R. С помощью этих команд можно обращаться к группе управляющих регистров.
2.3 Ввод и вывод
К операциям ввода-вывода относятся операции передачи информации из основной памяти на внешние устройства и наоборот. Внешние устройства присоединяются к каналам, которые управляют передачей данных между внешними устройствами и основной памятью.
Каналы
Каналы связаны с процессором и основной памятью непосредственно, а через интерфейс ввода-вывода - с контроллерами. Канал освобождает центральный процессор от прямого соединения с внешними устройствами и позволяет обрабатывать данные одновременно с выполнением операции ввода-вывода.
В одних случаях канал может представлять собой независимую единицу оборудования, обладающую всеми необходимыми логическими возможностями и способностью хранить информацию, в других -- функции канала может выполнять процессор, а сам канал физически объединяется с процессором. В обоих случаях функции канала идентичны. Каналы, однако, могут иметь различные возможности передачи данных.
В Системе 370 имеются три типа каналов: байт-мультиплексный, блок-мультиплексный и селекторный.
Интерфейс ввода-вывода
Для большинства внешних устройств обмен информацией между контроллером и каналом осуществляется через интерфейс ввода-вывода, который обеспечивает независимость управляющих сигналов от типа контроллера и канала; интерфейс, таким образом, предоставляет единообразные средства присоединения внешних устройств различного типа и управления ими.
Во внешних устройствах, работающих без интерфейса ввода-вывода, используются тот же формат информации и та же последовательность сигналов управления, что и во внешних устройствах, работающих с интерфейсом.
Внешние устройства и контроллеры
К внешним устройствам относятся устройства чтения перфокарт и перфораторы, лентопротяжные устройства, диски, барабаны, устройства телеобработки и устройства приема информации от датчиков.
Многие внешние устройства работают с такими документами, как перфокарты или магнитные ленты. Некоторые из устройств обрабатывают только электрические сигналы, аналогичные сигналам в цепях управления. В любом случае работа внешнего устройства управляется контроллером. Функции контроллера могут быть возложены на само внешнее устройство, переданы процессору или реализованы отдельной единицей оборудования. Во всех случаях обеспечиваются все логические и буферные возможности, необходимые для работы соответствующего внешнего устройства. С точки зрения программирования большинство функций контроллера неотделимо от функций самого внешнего устройства.
2.4 Пульт управления системой
Пульт управления системой позволяет оператору следить за действиями системы и вмешиваться в них. Пульт управления включает панель управления системой и в большинстве случаев соответствующее пультовое устройство, которое может быть использовано как внешнее устройство для связи с управляющей и прикладными программами. Технические средства и управляющая программа выполнены так, что потребность в ручном управлении со стороны оператора сведена к минимуму.
Пульт управления системой позволяет производить включение и отключение питания, сброс, начальную загрузку программ, останов и пуск, а также индикацию и занесение информации.
Глава 3. Выполнение программы
Обычно процессор выполняет команды последовательно. Слово состояния программы (PSW), содержащее основную, необходимую для выполнения программы информацию, определяет, какая команда должна быть выполнена. Изменение последовательности операций может быть вызвано переходом, загрузкой слова состояния программы, прерыванием или вмешательством оператора.
3.1 Команды
Каждая команда состоит из кода операции, указывающего, какая операция должна выполняться, и кода, задающего операнды.
Операнды
Имеются три класса операндов: регистровые операнды, непосредственные операнды и операнды в основной памяти. Операнды могут быть указаны как явно, так и неявно.
Регистровые операнды могут размещаться в общих регистрах, регистрах с плавающей точкой и в управляющих регистрах, причем тип регистра определяется кодом операции. Четырехбитовое поле R регистра содержит номер (адрес) регистра, хранящего регистровый операнд. Операнды некоторых команд содержатся в неявно заданном регистре, т.е. в этих командах код операции задает (неявно) номер регистра.
Непосредственные операнды располагаются в самой команде; восьмибитовое поле, содержащее непосредственный операнд, называется полем I.
Длина операндов, находящихся в основной памяти, может быть задана либо неявно, либо битовой маской, либо в некоторых случаях содержимым четырех- или восьмибитового поля L команды. Для задания адреса операнда, находящегося в основной памяти, применяется формат, в котором содержимое общего регистра используется как компонент адреса. Это позволяет:
-- сокращенно указывать полный адрес;
-- изменять и анализировать адрес с помощью команд, операнды которых размещаются в общих регистрах;
-- изменять адреса программными средствами, не изменяя при этом самих команд;
-- вести обработку данных независимо от их местоположения, непосредственно используя адреса, полученные от других программ.
Адрес для обращения к основной памяти содержится в регистре, номер которого помещен в поле команды, или вычисляется по базовому адресу, индексу и смещению, обозначаемым в команде соответственно полями B, X и D.
Как правило, при выполнении команды используются два операнда, а результат помещается на место первого. Команды, в название которых входит слово ЗАПИСЬ, являются исключением; результат выполнения таких команд помещается на место второго операнда. За исключением окончательного результата, записываемого в память, содержимое всех регистров и ячеек памяти, участвующих в вычислении адресов и выполнении операции, остается неизменным.
Формат команд
Команда имеет длину в одно, два или три полуслова и должна располагаться в основной памяти на целочисленной границе полуслова. Каждая команда имеет один из шести основных форматов: RR, RX, RS, SI, S и SS, причем последний используется в двух вариантах (рис. 3.1).
Формат некоторых команд несколько отличается от основного формата, а в ряде команд выполняемое действие не подчиняется общим правилам, перечисленным в данном разделе. Все подобные исключения явно оговариваются в описаниях конкретных команд.
Обозначение формата команды выражает в общем виде, операнды каких классов участвуют в операции: RR обозначает операцию типа “регистр--регистр”; RX - операцию “регистр--память”, в которой адрес памяти индексируется; RS - операцию типа “регистр--память” (без индексации); SI - операцию типа “память - непосредственный операнд”; SS - операцию типа “память--память”, S -- операцию, один операнд которой задан неявно, а другой находится в памяти.
?????? RR
+------------------------+
¦ ??? ¦ R1 ¦ R2 ¦
¦ ???????? ¦ ¦ ¦
+------------------------+
0 7 8 11 12 15
?????? RX
+----------------------------------------------+
¦ ??? ¦ R1 ¦ X2 ¦ B2 ¦ D2 ¦
¦ ???????? ¦ ¦ ¦ ¦ ¦
+----------------------------------------------+
0 7 8 11 12 15 16 19 20 31
?????? RS
+----------------------------------------------+
¦ ??? ¦ R1 ¦ R3 ¦ B2 ¦ D2 ¦
¦ ???????? ¦ ¦ ¦ ¦ ¦
+----------------------------------------------+
0 7 8 11 12 15 16 19 20 31
?????? SI
+----------------------------------------------+
¦ ??? ¦ I2 ¦ B2 ¦ D2 ¦
¦ ???????? ¦ ¦ ¦ ¦
+----------------------------------------------+
0 7 8 15 16 19 20 31
?????? S
+----------------------------------------------+
¦ ??? ???????? ¦ B2 ¦ D2 ¦
¦ ¦ ¦ ¦
+----------------------------------------------+
0 15 16 19 20 31
?????? SS ? ????? ????? ?????
+--------------------------------------------------------------------+
¦ ??? ¦ L ¦ B1 ¦ D1 ¦ B2 ¦ D2 ¦
¦ ???????? ¦ ¦ ¦ ¦ ¦ ¦
+--------------------------------------------------------------------+
0 7 8 15 16 19 20 31 32 35 36 47
?????? SS ? ????? ?????? ?????
+--------------------------------------------------------------------+
¦ ??? ¦ L1 ¦ L2 ¦ B1 ¦ D1 ¦ B2 ¦ D2 ¦
¦ ???????? ¦ ¦ ¦ ¦ ¦ ¦ ¦
+--------------------------------------------------------------------+
0 7 8 11 12 15 16 19 20 31 32 35 36 47
Рис. 3.1. Шесть основных форматов команд
Первый байт команды (а в формате S первые два ее байта) содержит код операции (КОП). При выполнении некоторых команд в формате S игнорируется весь второй байт или часть его. Первые два бита КОП следующим образом определяют длину и формат команды:
Биты (0-1) |
Длина команды |
Формат команды |
|
00 |
Одно полуслово |
RR |
|
01 |
Два полуслова |
RX |
|
10 |
Два полуслова |
RS/SI/S/RX |
|
11 |
Три полуслова |
SS |
При изображении формата команды КОП дается в шестнадцатеричном представлении. В этом представлении шестнадцатеричная цифра передает четырехбитовый код, а две цифры - восьмибитовый код, или байт. Цифры с 0 до 9 используются для кодов 0000-1001; буквы A-F (шестнадцатеричные цифры) -- для кодов 1010-1111.
Остальные поля при изображении формата команды обозначаются условным кодом, состоящим из буквы или из буквы и цифры. Цифра обозначает операнд, к которому относится поле.
Регистровые операнды
В форматах RR, RX и RS содержимое регистра, указанного полем R1, называется первым операндом. В формате RR поле R2 указывает регистр, содержащий второй операнд; тот же самый регистр может быть указан для первого и второго операндов. В формате RS поле R3 используется в зависимости от кода команды.
Поле R указывает общий регистр в общих командах и регистр с плавающей точкой в командах с плавающей точкой. В командах ЗАГРУЗКА УПРАВЛЕНИЯ и ЗАПИСЬ В ПАМЯТЬ УПРАВЛЕНИЯ поле R указывает управляющий регистр.
Если в описании команды отсутствует особое указание, то регистровый операнд имеет длину регистра (32 бита в случае общего или управляющего регистра и 64 бита в случае регистра с плавающей точкой); второй операнд имеет ту же длину, что и первый.
Непосредственные операнды
В формате SI в качестве второго операнда непосредственно используется содержимое восьмибитового поля I2 (поля с непосредственными данными). Поля B1 и D1 определяют первый операнд длиной 1 байт.
Операнды в памяти
В форматах SI и SS содержимое общих регистров, указанных полем B1, складывается с содержимым поля D1, образуя адрес первого операнда. В форматах S, RS и SS содержимое общего регистра, указанного полем B2, складывается с содержимым поля D2, образуя адрес второго операнда. В формате RX содержимое общих регистров, указанных полями X2 и B2, складывается с содержимым поля D2, образуя адрес второго операнда.
В формате SS, если заданы два поля длины, L1 обозначает количество байтов операнда, добавленных справа к байту, имеющему адрес первого операнда. Поэтому длина первого операнда в байтах равна 1-16 в соответствии с диапазоном двоичных кодов в поле L1 (0-15). Поле L2 подобным же образом обозначает число дополнительных байтов операнда справа от ячейки, указанной адресом второго операнда. Результаты помещаются на место первого операнда и никогда не записываются вне поля, определенного его адресом и длиной. Если первый операнд длиннее второго, второй операнд дополняется старшими нулями до длины первого операнда. Подобное удлинение не вызывает изменения второго операнда в памяти.
В формате SS с единственным восьмибитовым полем длина L обозначает количество дополнительных байтов операнда справа от байта, указанного адресом первого операнда. Поэтому длина в байтах первого операнда может составлять 1-256, что соответствует диапазону двоичных кодов в поле L (0-255). При записи в память результаты помещаются на место первого операнда и при этом никогда не записываются вне поля, определенного его адресом и длиной. В этом формате второй операнд во всех командах имеет ту же дину, что и первый; исключение составляют следующие команды: ОТРЕДАКТИРОВАТЬ, ОТРЕДАКТИРОВАТЬ И ОТМЕТИТЬ, ПЕРЕКОДИРОВАТЬ, ПЕРЕКОДИРОВАТЬ И ПРОВЕРИТЬ.
Формирование адреса
Адрес обращения к основной памяти содержится в регистре, который указан в поле R команды, или формируется из трех двоичных чисел - базового адреса, индекса и смещения.
Базовый адрес - это 24-битовое число в общем регистре, номер которого задан программой в четырехбитовом поле B команды. Базовый адрес может использоваться как средство независимой адресации каждой области программы или данных. Для массива он может задавать положение массива, а при обработке записей идентифицировать запись. С помощью базового адреса можно адресовать всю основную память. Базовый адрес может также быть использован для индексации.
Индекс представляет собой 24-битовое число в общем регистре, который определяется полем X команды. Индекс входит в состав адреса только для команд формата RX. При употреблении этого формата возможна двойная индексация, т.е. индекс можно использовать для адресации отдельного элемента внутри массива.
Смещение представляет собой 12-битовое число в поле D команды. Смещение позволяет выполнять относительную адресацию в пределах 4095 байтов, следующих за ячейкой, адрес которой равен базовому адресу. При вычислениях с массивами смещение можно использовать для указаний одного или нескольких компонентов, относящихся к элементу массива. При обработке записи смещение может служить для идентификации блоков внутри записи.
Подобные документы
Анализ двоичной, восьмеричной и шестнадцатеричной систем счисления и перевода десятичных чисел. Форматы хранения чисел с плавающей точкой. Программа для преобразования массива констант в формат числа с плавающей точкой на эмуляторе микро-ЭВМ СМ-1800.
курсовая работа [266,9 K], добавлен 24.12.2013Общая характеристика и преимущество использования двоично-десятичных чисел с плавающей точкой. Разработка цифрового автомата. Функциональное назначение выводов корпуса МК51, арифметико-логического устройства, портов. Примеры деления данных чисел.
курсовая работа [719,3 K], добавлен 12.09.2015Сущность и роль бухгалтерской отчетности. Характеристика хозяйственных операции и системы обработки данных в первичные учетные документы. Особенности логической структуры реляционной базы данных. Описание методов работы с информационной системой.
курсовая работа [1,1 M], добавлен 26.04.2015Операции, осуществляемые при реализации алгоритмов цифровой обработки сигналов. Применение процессора ADSP-2106x для операций с фиксированной и плавающей точкой. Исключения при выполнении операций с плавающей точкой, режимы и границы округления.
реферат [35,2 K], добавлен 13.11.2009Основные форматы данных и их представление. Запись чисел в формат с плавающей точкой. Вычитание чисел в формате с плавающей точкой. Регистры операндов и результата, размером формата числа с плавающей точкой, двойной точности. Поля смещённого порядка.
курсовая работа [78,9 K], добавлен 09.09.2014Проектирование блоков устройства контроля по модулю три матричного умножителя с сокращением вычислений для обработки мантисс чисел с плавающей точкой. Методика выполнения арифметических операций, порядок обработки мантисс по n-разрядным операндам.
курсовая работа [125,2 K], добавлен 24.09.2010Периоды применения средств вычислительной техники. Переход к новому поколению электронно-вычислительных машин. Системы, основанные на знаниях. Экспертные системы и искусственный интеллект. Этапы обработки данных на ЭВМ. Иерархическая структура знания.
презентация [170,6 K], добавлен 14.08.2013Общее представление о записи данных. Виды регистров и типов данных с плавающей точкой. Модель выполнения программы SIMD. Формат данных в памяти регистра с плавающей точкой. Состояние и управление потоковым разрешением. Поле управления округлением.
реферат [1,1 M], добавлен 06.01.2011Понятие машинной команды как закодированного по определенным правилам указания микропроцессору на выполнение некоторой операции или действия. Элементы машинных команд (код операции, операнд) и их виды (передачи данных, управления, арифметико-логические).
презентация [120,6 K], добавлен 14.10.2013Арифметические команды языка Assembler в архитектуре x86. Организация ветвлений и циклов в программах. Ввод строк с клавиатуры и команды пакетной обработки (строковые команды). Алгоритм вывода на экран в текстовом режиме с использованием средств BIOS.
контрольная работа [18,0 K], добавлен 05.07.2014