OSDev
http://osdev.su/

S/360 & co.
http://osdev.su/viewtopic.php?f=18&t=663
Страница 1 из 2

Автор:  418ImATeapot [ 13 дек 2012, 15:14 ]
Заголовок сообщения:  S/360 & co.

SII рекомендовал в качестве одной из модельных архитектур S/360. Я покопался насчет инструментов и доки и нашел:
Доки: http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/. Рекомендую начать с http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/360/princOps/A22-6821-0_360PrincOps.pdf.
Эмулятор: http://www.hercules-390.org/. Довольно удобный, есть гуй, если кто консоль не любит.
Софт: http://www.cbttape.org/. Есть VM, MVS, MVT, etc. И готовые системы и установочные ленты.

Автор:  SII [ 14 дек 2012, 08:20 ]
Заголовок сообщения:  Re: S/360 & co.

На самом деле, стоит найти "Принципы работы Системы 370", а не 360. Хотя первой была именно 360, но там ещё не было поддержки виртуальной памяти -- собственно, именно это и является единственным существенным отличием 360 и 370. Кроме того, в 370 отказались от возможности использования ASCII для двоично-десятичных операций -- оставили только EBCDIC (который в СССР обозвали ДКОИ). Соответственно, в Системе 370 бит PSW (слово состояния процессора), отвечавший в Системе 360 за выбор кодировки, стал использоваться для выбора формата самого PSW: либо базовый (BC), соответствующий Системе 360 (за исключением возможности использования ASCII), либо расширенный (EC), соответствующий Системе 370 и позднейшим расширениям архитектуры. Это, пожалуй, единственная несовместимость на прикладном уровне, которая имеется между мэйнфреймами IBM всех поколений, но на практике она несущественна: на Системе 360 никто ASCII не использовал, и отказ от него никого не затронул.

Автор:  418ImATeapot [ 14 дек 2012, 19:54 ]
Заголовок сообщения:  Re: S/360 & co.

SII писал(а):
На самом деле, стоит найти "Принципы работы Системы 370", а не 360. Хотя первой была именно 360, но там ещё не было поддержки виртуальной памяти -- собственно, именно это и является единственным существенным отличием 360 и 370. Кроме того, в 370 отказались от возможности использования ASCII для двоично-десятичных операций -- оставили только EBCDIC (который в СССР обозвали ДКОИ). Соответственно, в Системе 370 бит PSW (слово состояния процессора), отвечавший в Системе 360 за выбор кодировки, стал использоваться для выбора формата самого PSW: либо базовый (BC), соответствующий Системе 360 (за исключением возможности использования ASCII), либо расширенный (EC), соответствующий Системе 370 и позднейшим расширениям архитектуры. Это, пожалуй, единственная несовместимость на прикладном уровне, которая имеется между мэйнфреймами IBM всех поколений, но на практике она несущественна: на Системе 360 никто ASCII не использовал, и отказ от него никого не затронул.

Спасибо, должен быть на bitsavers - там чего только нет.
П. С. есть.

Автор:  418ImATeapot [ 08 янв 2013, 22:52 ]
Заголовок сообщения:  Re: S/360 & co.

У меня по чтению мануалов возник вопрос:
В refcard-s/370 указано, что какое-то количество памяти зарезервировано для аппаратных нужд. С большинством все понятно, но есть одна проблема: для s-360 указан максимальный размер зарезервированного района в 0x180 (0x80 для разных регистров и 0x100 - непонятный "scan-out area"), а у s/370 "scan-out area" нету, а есть CPU extended logout area (size varies). Какого он размера - непонятно.
Объясните, пожалуйста, сколько памяти реально можно использовать.
Спасибо!

Автор:  SII [ 09 янв 2013, 05:13 ]
Заголовок сообщения:  Re: S/360 & co.

Можно весь документик увидеть? А то я не совсем врубаюсь, о чём там именно речь, ведь под "аппаратными нуждами" можно понимать много что. Например, некоторые самые слабые машины (вроде нашей ЕС-1020) часть физически имеющегося ОЗУ использовали для хранения текущего содержимого регистров -- т.е. физических регистров общего назначения и с плавающей запятой у процессора не было, были лишь зарезервированные ячейки ОЗУ (они располагались в области сохранения регистров при аппаратном сбое, см. ниже). Некоторые другие машины (например, ЕС-1130) использовали часть ОЗУ для обмена данными с каналами ввода-вывода. Но такая память была для программиста полностью недоступна: при попытке обратиться по соответствующим адресам возникало прерывание по обращению к несуществующей памяти. Располагалась она по самым верхним адресам, поэтому с точки зрения программиста всё ОЗУ представляло собой непрерывную область адресного пространства, начиная с нуля.

Что же касается доступной для программ памяти, но зарезервированной под специальные нужды, то в Системе/370 её было 512 байтов, начиная с нулевого адреса. Там располагались области старых и новых PSW (можно считать, векторов прерываний), кой-какая другая системная информация, а также область сохранения состояния процессора при возникновении сбоя. В последней, если аппаратура обнаруживала сбой, который невозможно скорректировать (т.е. если процессор подыхал и нуждался в ремонте), сохранялось содержимое всех регистров общего назначения, с плавающей запятой и управляющих, а также "внутрипроцессорных" средств отсчёта времени. Естественно, сохранялась и информация, описывающая сбой, но она уже зависела от модели процессора. Если эта информация сохранялась корректно (сведения о том, что именно было записано и насколько правильно, тоже размещались в определённых ячейках), была возможность продолжить работу программы с точки сбоя на другом процессоре или на этом же после устранения неисправности. В ориентированных на надёжность мэйнфреймах (современные именно таковыми являются, раньше -- не всякие, ибо сложно и дорого) гарантируется 100% возможность возобновления выполнения программы с точки сбоя даже при полном выходе процессора из строя. Ну а в наиболее примитивных, как уже говорил, не было физических регистров, и соответствующие значения всегда хранились в ОЗУ именно в ячейках, отведённых под область сохранения.

Что же касается CPU extended logout area, то по-русски это было переведено как "область расширенной регистрации при аппаратном контроле". Размер этой области и её содержимое зависели от конкретной модели, а базовый адрес находился в управляющем регистре 15 (по умолчанию он был равен 512, т.е. 0х00000200, но мог быть системой перенесён куда угодно). При генерации ОС (при сборке, если говорить современным языком), помимо прочих параметров, указывалась модель процессора, и в систему включались подпрограммы обработки машинных ошибок именно для этой модели. Исходя из этого же устанавливался и размер данной области.

На практике можно было считать, что программисту полностью доступна память, начиная с 4-го килобайта. Тут дело не столько в области расширенной регистрации (её, во-первых, очень часто вообще не было -- мало какой мэйнфрейм её использовал; как сейчас -- не знаю, надо смотреть доку на конкретные нынешние модели), сколько в том, что защита памяти и переадресация работали со страницами размером 2 и 4 Кбайта, причём в системах с виртуальной памятью был принят именно последний. Кроме того, в многопроцессорных системах работал механизм префиксации, логически перемещающий младшие 4 Кбайта адресного пространства того или иного процессора в другие "общие" адреса, поэтому у каждого процессора как бы имелась своя собственная страница в 4 Кбайта, хотя все они имели доступ в такие страницы друг друга (чтобы, например, один процессор мог возобновить работу программы, прекращённую другим процессором из-за его сбоя). С этим, кстати, и связана разница в терминах "абсолютный адрес" и "реальный адрес": в однопроцессорной системе они всегда совпадают, а в многопроцессорной различаются для нулевой страницы и страницы, выбранной для префиксации ей на замену (две страницы как бы менялись местами).

Автор:  418ImATeapot [ 09 янв 2013, 10:01 ]
Заголовок сообщения:  Re: S/360 & co.

Документ: http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/370/princOps/GA22-7000-4_370_Principles_Of_Operation_Sep75.pdf
Спасибо!

Автор:  SII [ 10 янв 2013, 09:30 ]
Заголовок сообщения:  Re: S/360 & co.

Кстати, а в связи с чем интерес-то к мэйнфреймам? Ведь сейчас их изучение актуально либо для тех, кто имеет шансы с ними работать (а таковых практически нет), либо для создателей новых процессорных архитектур -- для расширения кругозора, так сказать (чтобы ИА-32 не казался единственно правильным подходом :)) ).

Автор:  418ImATeapot [ 10 янв 2013, 14:10 ]
Заголовок сообщения:  Re: S/360 & co.

Пункт второй :) если когда-нибудь.
И потом, я пишу систему исключительно для учебных целей, и мне кажется, что на мэйнфреймах это ГОРАЗДО проще, чем на ИА-32: меньше архитектурных идиотизмов.

Автор:  SII [ 10 янв 2013, 16:13 ]
Заголовок сообщения:  Re: S/360 & co.

Цитата:
И потом, я пишу систему исключительно для учебных целей, и мне кажется, что на мэйнфреймах это ГОРАЗДО проще, чем на ИА-32: меньше архитектурных идиотизмов


Это точно. Я работоспособную систему (ядро плюс минимальная поддержка ввода-вывода -- не совсем драйверы в традиционном смысле, поскольку ввод-вывод в мэйнфреймах принципиально отличается от большинства других архитектур), даже с виртуальной памятью, слепил меньше чем за два года -- на асме, есно :) Ну а архитектурных идиотизмов, там, по большому счёту, нет вообще. Есть какая-то из привилегированных команд, использующая именно регистр 2, но вроде как других подобных вещей нету. (Есть то, что можно назвать недочётами с позиций сегодняшнего дня -- например, отсутствие стека или использование 2-битового признака результата вместо флажков NZVC, то Система 360 анонсирована в 1964-м, а разрабатываться начала, есно, ещё раньше -- опыт был далеко не тот, что во времена появления процессоров Интел).

Автор:  Yoda [ 10 янв 2013, 16:41 ]
Заголовок сообщения:  Re: S/360 & co.

Интересная тема! Поддерживаю обеими руками! Пиши об успехах и о том, что нароешь интересного по ходу работы.
А более современную z/Architecture не думал попробовать изучить?

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/