Архитектура системы серии Unisys 2200

редактировать
OS 2200 Architecture.jpg

На рисунке показана высокоуровневая архитектура системы OS 2200 с указанием основных аппаратных средств и программного обеспечения составные части. Большая часть программного обеспечения Unisys включена в область подсистем и приложений модели. Например, менеджеры баз данных - это подсистемы, а компиляторы - это приложения.

Содержание
  • 1 Основные сведения о системе
  • 2 Память и адресация
    • 2.1 Уровень
      • 2.1.1 Действие
      • 2.1.2 Программы
      • 2.1.3 Подсистемы
      • 2.1.4 ОС
    • 2.2 Индекс дескриптора банка (BDI)
  • 3 Механизмы защиты
  • 4 Процессора команд
  • 5 Процессоры ввода-вывода
  • 6 Ссылки
Основы системы
OS 2200 System Basics.jpg

Подробная информация об архитектуре системы описаны в публикации Unisys 3850 7802 Справочное руководство по программированию командного процессора. См. Также UNIVAC 1100/2200 series.

С 1962 года серия 1100 использует 36-битное слово с 6-битными символами. Это слово и размер символа были Министерством обороны (DoD) требование. Поскольку военным нужно было рассчитывать точные траектории, проектировать мосты и выполнять другие инженерные и научные расчеты, им требовалось более 32 бит точности. 32-битное число с плавающей запятой обеспечивало только около 6 цифр точности, в то время как 36-битное число обеспечивало 8 цифр точности, которые были приняты в качестве минимального требования. Поскольку память и дисковое пространство и затраты были движущей силой системы, переход на 64-битную версию в целом был просто неприемлем. В этих системах используется арифметика с дополнением единиц, что не было необычным в то время. Почти все производители компьютеров того времени поставляли 36-битные системы с 6-битными символами, включая IBM, DEC, General Electric и Sylvania <202.>6-битный набор символов, используемый в серии 1100, также является обязательным набором DoD. Он был определен армейским корпусом связи и назывался Fieldata (данные, полученные с поля). 1108 предоставил 9-битный формат символов для поддержки ASCII и более поздних наборов ISO 8-битных, но они не использовались широко до 1980-х годов. опять же из-за нехватки места.

Архитектура серии 2200 предоставляет множество регистров. Базовые регистры логически содержат виртуальный адрес, который указывает на слово в коде или банке данных (сегменте). Они могут указывать на начало банка или на любое слово в банке. Индексные регистры используются командами для изменения смещения указанного или предполагаемого базового регистра. Простая арифметика (сложение, вычитание) может выполняться для всех индексных регистров. Кроме того, индексные регистры состоят из нижней части смещения и верхней части приращения. Инструкция может как использовать значение смещения в индексном регистре как часть адреса, так и указывать, что приращение должно быть добавлено к смещению. Это позволяет выполнять циклы с меньшим количеством инструкций, поскольку увеличение индекса на размер шага может быть выполнено без отдельной инструкции. Арифметические регистры позволяют использовать полный набор вычислительных инструкций, включая все операции с плавающей запятой. Некоторые из этих инструкций работают с соседними парами регистров для выполнения операций с двойной точностью. Нет четных-нечетных ограничений. Любые два регистра могут использоваться как значение двойной точности. Четыре из арифметических регистров также являются индексными регистрами (наборов перекрывается - индексный регистр X12 является арифметическим регистром A0). Это позволяет выполнять полный спектр вычислений с индексами без необходимости перемещать результаты. Остальные регистры, известные как регистры R, используются как быстрое временное хранилище и для некоторых специальных функций. R1 содержит счетчик повторов для тех инструкций, которые могут повторяться (передача блока, повторное выполнение и т. Д.). R2 содержит битовую маску для нескольких инструкций, которые выполняют побитовую логическую операцию в дополнение к некоторым другим функциям (например, верхняя маскированная загрузка)

Есть два полных набора регистров (A, X, R и B). Один набор, регистры пользователя, используется всеми приложениями и большинством частей операционной системы. Он сохраняется и восстанавливается как часть состояния активности (потока). Другой набор, регистры Exec, используется подпрограммами обработки прерываний и некоторыми другими частями операционной системы, которые хотят избежать необходимости сохранять и восстанавливать регистры пользователей. Регистры Exec не доступны для записи пользовательскими приложениями, хотя некоторый пользовательский код может их читать. В результате Exec тщательно разработан, чтобы никогда не оставлять личную, безопасную или конфиденциальную информацию в реестрах. Интерпретация инструкций выбирает соответствующий набор регистров для использования на основе бита в регистре состояний процессора. Этот бит всегда устанавливается (изменяется на привилегированный) при прерывании. Все регистры также видны в адресном пространстве, но часть Exec защищена, и ссылка непривилегированным кодом приведет к прерыванию по ошибке.

Серия 2200 использует 36-битное сегментированное виртуальное адресное пространство. Позже мы рассмотрим архитектуру адресации.

Серия 2200 - это система с архитектурой CISC. Мало того, что существует большое количество инструкций (текущее количество около 245), но многие из них имеют варианты адресации. Некоторые из вариантов кодируются непосредственно в формате инструкции (частичные ссылки на слова), а некоторые зависят от настроек регистра состояния процессора. Многие инструкции также выполняют очень сложные функции, такие как та, которая реализует большую часть команды COBOL EDIT.

Техническая архитектура серии OS 2200.jpg

На приведенном выше рисунке показаны некоторые строительные блоки архитектуры. «Данные» и «COMM» - два основных примера программных подсистем, которые находятся в защитном кольце между пользовательским приложением и Exec. Есть много других таких подсистем, и пользователи пишут свои собственные.

Память и адресация
Уровень виртуального адреса ОС 2200. jpg

Уровень

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

Виртуальный адрес состоит из трех частей. Старшие 3 бита определяют уровень совместного использования. Это сердце всей схемы адресации и защиты. Каждый поток имеет восемь таблиц дескрипторов банков (таблиц дескрипторов сегментов в отрасли) на основе B16-B23. Таблицы индексируются по уровням - уровень 0 относится к таблице дескрипторов банка (BDT) на основе B16, уровень 2 - к BDT на основе B18 и т. Д. BDT уровня 0 и уровня 2 являются общими для всех потоков в системе. Каждый запуск (процесс) имеет свой собственный BDT уровня 4, и этот BDT является общим для всех потоков в запуске. Каждый пользовательский поток имеет свой собственный неразделенный BDT уровня 6.

Действие

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

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

Действия могут создавать дополнительные сегменты до предела доступного адресного пространства (2 слова = 8 ГВт или около 36 ГБ). Это удобный способ для многопоточных приложений получить большой объем памяти, зная, что он полностью потокобезопасен и что они не занимают места для остальной части того, что доступно программе. Каждое действие в программе имеет собственное независимое пространство, что означает, что приложение с, скажем, 100 действиями может использовать более 800 ГВт (>3 ТБ) виртуального пространства.

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

Программы

OS 2200 не реализует программы точно так же, как UNIX, Linux и Windows. процессов, но это ближайшая аналогия. Наиболее очевидное различие заключается в том, что OS 2200 позволяет выполнять только одну программу за один запуск (задание, сеанс) за раз. Программа может иметь сотни потоков, но не может порождать другие программы для одновременного запуска.

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

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

Таким образом, каждая программа имеет собственное адресное пространство, отличное от всех других программ в системе. Никакие действия программы не могут изменить содержимое памяти любой другой программы. ОС и разделяемые подсистемы защищены другими механизмами, которые будут рассмотрены позже. Почти во всех случаях из кода программы запрещен даже доступ для чтения к памяти ОС и подсистемы. Можно создать общую подсистему, которая обычно доступна для чтения или записи для нескольких программ, но она должна быть явно установлена ​​таким образом привилегированным системным администратором. Изначально программы создаются с использованием только банков, указанных в объектном файле, и с одним действием. Они могут использовать системные вызовы для создания дополнительных банков в рамках своего собственного программного уровня и дополнительных действий.

Подсистемы

Ближайшим аналогом разделяемой подсистемы является .dll. Подсистема во многом похожа на программу, за исключением того, что с ней не связаны никакие действия. Вместо этого к нему обращаются другие программы и подсистемы, как правило, через инструкцию CALL. Фактически программа - это подсистема плюс одно или несколько действий. Каждое действие принадлежит «домашней» подсистеме, то есть программе, которая его создала. Эта концепция подсистемы важна как инкапсуляция прав доступа и привилегий. Внутри своей домашней подсистемы действия обычно имеют общие права доступа к банкам кода и данных. Банки кода в исходной подсистеме обычно доступны только для чтения или даже только для выполнения, если они не содержат постоянных данных, но все действия будут иметь право выполнять их.

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

ОС

Уровень ОС содержит банки Exec. Эти банки никогда не доступны напрямую ни программам, ни глобальным подсистемам. Все точки входа в ОС обрабатываются так же, как и защищенная подсистема. Вызовы в ОС всегда осуществляются через «шлюзы», инструкции, которые существуют для этой цели (ER = Executive Request), или через прерывания.

Индекс дескриптора банка (BDI)

Виртуальный адрес ОС 2200 BDI.jpg

Следующая часть виртуального адреса - это BDI или индекс дескриптора банка. В поле «Уровень» выбран конкретный базовый регистр таблицы дескрипторов банка (B16-B23). Базовые регистры B16-B23 являются частью состояния активности и обслуживаются Exec без прямого доступа для активности. Таблицы дескрипторов банка для уровней программы и активности существуют в банках уровня программы, принадлежащих операционной системе.

BDI - это просто индекс в таблице дескрипторов банка. Каждая запись в таблице содержит информацию о банке. Каждая такая запись описывает до 1 МБ (256 кВт) виртуального адресного пространства. Когда требуется большее непрерывное пространство, последовательные записи логически объединяются для создания большего банка, содержащего максимум 2 слова.

Запись в таблице дескрипторов банка (дескриптор банка - BD) дает размер банка (малый = до 256 кВт, большой = до 16 МВт, очень большой = до 1 ГВт). Небольшой банк всегда представлен одной BD. Крупные банки представлены до 64 последовательных BD, а очень большой банк - до 4096 BD. Большим и очень большим банкам не обязательно использовать все 64 или 4096 последовательных BD. Они используют ровно столько, сколько необходимо для обеспечения необходимого виртуального адресного пространства. Запись также содержит верхний и нижний пределы допустимых зачетов внутри банка. Виртуальные адреса, выходящие за установленные пределы, создают прерывание при ошибке. Это позволяет небольшим банкам, например, содержащим сообщение, иметь только виртуальное пространство, зарезервированное для него, которое им действительно нужно, и обеспечивает отладочную проверку на неверные указатели и индексы.

BD также содержит поля значения ключа и управления доступом. Поля указывают, предоставлено ли разрешение на чтение, запись или выполнение процессору команд (3 бита). Специальные разрешения доступа (SAP) применяются только к действиям, выполняемым в подсистеме-владельце (на самом деле только к тем, у которых есть совпадающее значение ключа). Общие разрешения доступа (GAP) применяются ко всем остальным и обычно равны нулю (нет доступа). Exec устанавливает значение ключа в состоянии каждого действия, которое может быть изменено переходами шлюза и прерывания.

Механизмы защиты
OS 2200 Access Control.jpg OS 2200 Protection Domains.jpg

Архитектура защиты серии 2200 использует три части состояния активности, которые отражаются в состоянии оборудования. Это привилегия процессора (PP), кольцо и домен.

Привилегия процессора контролирует возможность выполнения привилегированных инструкций и доступа к защищенным регистрам и другому состоянию. PP = 0 используется Exec и дает полный доступ ко всем инструкциям и привилегированному состоянию. Действия Exec и действия пользователя, которые использовали шлюз для доступа к Exec API, выполняются с PP = 0.

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

PP = 2 - это обычный пользовательский режим и состояние, в котором выполняется весь остальной код. Это еще одно ограничение PP = 1.

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

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

Кольцо позволяет переопределить механизм защиты домена. Пользовательские приложения работают с Ring = 3. Защищенные подсистемы работают с Ring = 2. Это дает им доступ к их собственным данным, в то же время позволяя им получать доступ к параметрам и данным в пространстве вызывающего пользователя. Обратите внимание, что поток по-прежнему не может вызвать защищенную подсистему для доступа к пространству другого пользователя, поскольку используются только таблицы дескрипторов банка этого потока. Ring = 0 используется ОС и позволяет ей получать доступ к собственным данным, сохраняя при этом доступ к параметрам, переданным либо из пользовательских программ, либо из защищенных подсистем.

Ворота - еще одна часть механизма защиты. Шлюз - это структура данных, которая контролирует переходы между доменами. Шлюз находится в банке шлюзов, и оборудование требует, чтобы все ссылки на шлюзы были на адреса с правильным смещением (кратным размеру ворот) в банке ворот. Шлюз содержит целевой адрес, новые значения для PP, Ring и Domain, а также может содержать скрытый параметр, который нужно передать цели. Защищенные подсистемы не доступны напрямую другим подсистемам. Вместо этого подсистема должна запросить создание шлюза в ее банке ворот для доступа к этой подсистеме. Это позволяет операционной системе выполнять любые проверки контроля доступа. Система связывания затем найдет адрес шлюза, связанный с точкой входа. Фактически, весь механизм обычно прозрачно обрабатывается в системе связывания. Параметр hidden позволяет, например, шлюзу ввода-вывода файла содержать адрес или дескриптор блока управления файлом. Поскольку это гарантированно верно, поскольку оно было создано ОС, когда пользователь открыл файл, многие проверки ошибок могут быть исключены из длины пути для выполнения операций ввода-вывода.

Процессоры команд
Регистры OS 2200 в адресном пространстве.jpg

OS 2200 предназначена для обработки до 32 процессоров команд (или процессоров ). За прошедшие годы было сделано много разработок, направленных на оптимизацию этой среды. Например, OS 2200 почти не использует критические секции в своей конструкции. Слишком высока вероятность того, что один и тот же код выполнят несколько процессоров. Вместо этого он использует блокировку данных с максимально возможной степенью детализации. Обычно блокировки имеют дело с одним экземпляром объекта данных (например, структурой управления действиями или блоком управления файлом) и содержатся в структуре данных объекта. Это сводит к минимуму вероятность конфликтов. Когда необходимо установить больше глобальных блокировок, например, при обновлении списка объектов, блокировка устанавливается только на время, необходимое для обновления ссылок в списке. Даже диспетчеризация выполняется с отдельными блокировками для разных уровней приоритета. Можно проверить наличие пустого уровня приоритета без установки блокировки. Блокировку нужно устанавливать только при добавлении или удалении элемента из очереди.

Набор регистров находится в видимом адресном пространстве. Регистры, кажется, существуют в первых 128 словах (200 8) текущего банка команд (B0), когда на них ссылаются как на элемент данных. Это накладывает ограничение на компиляторы, чтобы они не помещали какие-либо константы данных в первые 128 слов банка кода. Результатом этого является расширение набора команд без необходимости использования дополнительных кодов операций. Операции «регистр-регистр» выполняются с помощью кодов операций хранения регистров.

OS 2200 Instruction Format.jpg

Типичные инструкции содержат код функции, целевой (или исходный) регистр, индексный регистр, базовый регистр и поле смещения. Когда код функции с ее квалификатором указывает непосредственные данные, поля смещения, основания, i и h объединяются, чтобы сформировать одно 18-битное непосредственное значение. Это позволяет загружать, складывать, умножать и т. Д. На небольшие константы, чтобы исключить обращение к памяти и соответствующее хранилище.

Состояние процессора ОС 2200.jpg

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

OS 2200 Basic Mode.jpg

Базовый режим - это еще одна целая форма форматов команд и адресации. Базовый режим обеспечивает совместимость с предыдущими системами вплоть до 1108. Для всех практических целей архитектура оборудования определяет правила, по которым адреса и инструкции преобразуются в указанные выше формы. Наиболее очевидное различие в базовом режиме - отсутствие явных регистров B в инструкциях. Вместо этого используются четыре неявно используемых регистра B (B12-B15). Существует сложный алгоритм, использующий пределы банков, представленных этими регистрами B, адресом операнда и регистром B, в котором находится текущая инструкция.

OS 2200 Интересные инструкции.jpg

Самыми интересными инструкциями в репертуаре 2200 являются инструкции блокировки и синхронизации. Условная замена знакома и очень похожа на Compare and Swap в архитектуре Intel. Эти инструкции всегда получают исключительное использование строки памяти / кэша, содержащей указанное слово. TS и TSS немного проверяют указанное слово. Если бит сброшен, они устанавливают его и продолжают (TS) или пропускают (TSS). Если бит установлен, они либо прерывают (TS), либо переходят к следующей инструкции (TSS). При прерывании TS ОС выполняет одно из нескольких действий в зависимости от последовательности команд и приоритета активности. Действия в реальном времени и Exec просто получают контроль, чтобы разрешить повторную попытку, если только не ожидается еще более приоритетное действие. Предполагается, что блокировка установлена ​​на другом процессоре и скоро будет снята. Если это действие пользователя, не выполняющееся с приоритетом в реальном времени, его приоритет может быть временно снижен и он будет снова помещен в очереди отправки.

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

Результатом этих механизмов является очень высокая эффективность, низкие накладные расходы, синхронизация действий.

OS 2200 Queuing Architecture.jpg

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

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

Процессоры ввода-вывода

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

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

ОС принимает очень общие вызовы от программ и генерирует пакеты команд с реальной памятью и адресами устройств, которые затем передаются процессору ввода-вывода. Микропрограммное обеспечение в процессоре ввода-вывода фактически создает пакеты для конкретного устройства (например, SCSI ), устанавливает DMA, выполняет ввод-вывод и обслуживает прерывания.

Ссылки
  1. ^Уоттс С. Хамфри, "MOBIDIC и Fieldata", IEEE Annals of the History of Computing, vol. 9, вып. 2, pp. 137-182, апрель-июнь 1987 г., doi : 10.1109 / MAHC.1987.10018. http://doi.ieeecomputersociety.org/10.1109/MAHC.1987.10018
  2. ^Unisys Corporation (2013). Справочное руководство по программированию исполнительных запросов программного обеспечения Exec. (Публикация Unisys 7830 7899). Розвилл, Миннесота. http://public.support.unisys.com/2200/docs/cp14.0/pdf/78307899-022.pdf
  3. ^Unisys Corporation (2012). Связывание системных подсистем. Руководство по программированию. (Публикация Unisys 7830 7451). Розвилл, Миннесота. http://public.support.unisys.com/2200/docs/cp14.0/pdf/78307451-015.pdf
  4. ^Unisys Corporation (2012). ClearPath Dorado 300/400/700/800/4000/4100/4200 Server I / O Planning Guide. (Публикация Unisys 3839 6586). Розвилл, Миннесота. http://public.support.unisys.com/2200/docs/cp14.0/pdf/38396586-010.pdf
Последняя правка сделана 2021-06-20 11:24:40
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте