Оглавление
- 1 Большие системы Берроуза
- 1.1 История и развитие Burroughs Large Systems
- 1.2 Архитектура и особенности B5000
- 1.3 B5500 и B5700
- 1.4 B6500 и его преемники
- 1.5 B8500 и его судьба
- 1.6 Влияние и наследие
- 1.7 История и развитие компьютеров Burroughs
- 1.8 Эволюция архитектуры
- 1.9 Основные линейки аппаратного обеспечения
- 1.10 Языки программирования
- 1.11 Системы управления сообщениями
- 1.12 Системы MCS и MCSS
- 1.13 Реализация TCP/IP и OSI
- 1.14 DMALGOL и базы данных
- 1.15 Архитектура стека
- 1.16 Скорость и производительность стека
- 1.17 Как программы отображаются в стеке
- 1.18 Синхронизация и взаимоисключение
- 1.19 Многопроцессорная обработка
- 1.20 Тип вызова Run
- 1.21 Встроенные процедуры
- 1.22 Асинхронные вызовы
- 1.23 Регистры отображения
- 1.24 Кросс-стековые вызовы
- 1.25 Объектно-ориентированная реализация
- 1.26 Адресация и защита памяти
- 1.27 Особенности массивов в ALGOL
- 1.28 Эквивалентность массивов
- 1.29 Преимущества стековой структуры
- 1.30 Архитектура с тегами
- 1.31 Архитектура, основанная на дескрипторах
- 1.32 Полиморфные операторы и базовый набор
- 1.33 Слоги вызова и операторы
- 1.34 Линейка B5000 и несколько процессоров
- 1.35 Синхронизация и блокировки
- 1.36 Влияние B5000
- 1.37 Архитектура и безопасность
- 1.38 Полный текст статьи:
- 2 Большие системы Берроуза
Большие системы Берроуза
-
История и развитие Burroughs Large Systems
- Burroughs Large Systems Group выпустила семейство 48-разрядных мэйнфреймов с стековыми машинными командами.
- Первая машина B5000 была выпущена в 1961 году и оптимизирована для компиляции на ALGOL 60.
- B5000 эволюционировала в B5500 и B5700, а также в B6500/B6700 и B8500.
-
Архитектура и особенности B5000
- B5000 имела необычную архитектуру, вдохновленную B6500.
- Аппаратное обеспечение было разработано для поддержки языков высокого уровня, таких как ALGOL 60 и COBOL.
- B5000 использовала стековую машину и частично управляемый данными дизайн.
-
B5500 и B5700
- B5500 использовала диски вместо фотобарабанов.
- B5700 позволяла использовать несколько процессоров, сгруппированных вокруг общего диска.
-
B6500 и его преемники
- B6500 имел инструкции переменной длины и 51-битное слово.
- B6500 использовал симметричную многопроцессорную обработку и стек Saguaro.
- B6700 и B7700 были разработаны на основе B6500, но с улучшенной архитектурой.
-
B8500 и его судьба
- B8500 была производной от D825 и не имела коммерческого успеха.
- Проект был отменен после 1970 года.
-
Влияние и наследие
- B5000 и B6500 оказали значительное влияние на развитие компьютерных систем.
- B5000 вдохновила последующие модели, такие как B6500 и B8500.
-
История и развитие компьютеров Burroughs
- Разработан в 1961 году, использовал дискретную транзисторную логику и память на магнитных сердечниках
- B5500 и B5700 последовали за B5000
- B6500 и B7500 стали первыми машинами, пришедшими на смену B5000
-
Эволюция архитектуры
- B6500, B7500, B6700, B7700, B6800, B7800, B5900, B7900 и Burroughs серии A
- После слияния с Sperry Corporation, разработка новых машин на базе MCP CMOS ASIC
- Модели Libra 100, Libra 500 и Libra 590
-
Основные линейки аппаратного обеспечения
- Проектирование и производство разделены между двумя подразделениями в Калифорнии и Филадельфии
- B5000 и B5500 разрабатывались в Пасадене, B6500 в Сити-оф-Индастри
- B6x00 разрабатывались в Мишн-Вьехо, B7x00 в Тредиффрине
-
Языки программирования
- B5000 использовал стековую архитектуру на основе ALGOL
- ESPOL и NEWP для написания MCP и системного ПО
- DCALGOL и DMALGOL для специфических расширений
-
Системы управления сообщениями
- DCP для обработки ввода и вывода сообщений
- ICP для подключения мэйнфреймов по локальной сети
- MCS как промежуточное ПО для обработки сообщений
- Примеры MCS: CANDE, SCREAM/6700, COMS, TPMCS
-
Системы MCS и MCSS
- MCS поддерживали доставку данных и отправку ответов удаленным пользователям.
- MCSS управляют сеансами пользователей и отслеживают их состояние.
- Балансировка нагрузки достигается на уровне MCS.
-
Реализация TCP/IP и OSI
- В 1988 году разработана реализация TCP/IP для США.
- В 1990-х годах реализована реализация стеков протоколов OSI.
- Внедрены приложения, определенные стандартом OSI.
-
DMALGOL и базы данных
- DMALGOL используется для компиляции программного обеспечения базы данных DMSII.
- DMALGOL генерирует код для обработки таблиц и индексов.
- В 1970-х годах DMALGOL широко использовался для сокращения объема кода.
-
Архитектура стека
- B5000 спроектирован как стековая машина, все данные хранятся в стеке.
- Многозадачность эффективна благодаря специальным инструкциям.
- Переключение процессов происходит через очередь готовности.
-
Скорость и производительность стека
- Производительность стека считалась низкой по сравнению с регистрами.
- В B5000 данные хранятся ближе к процессору, что повышает быстродействие.
- Современные системы используют регистры и кэширование для повышения производительности.
-
Как программы отображаются в стеке
- Каждый кадр стека соответствует лексическому уровню.
- Лексическая вложенность статическая, не связанная с выполнением.
- Процедуры могут быть вызваны обычным, call, process и run способами.
-
Синхронизация и взаимоисключение
- События позволяют синхронизировать взаимоисключение с помощью функций “ЗАКУПИТЬ” и “ОСВОБОДИТЬ”
- Дочерние задачи завершаются автоматически при завершении родительского процесса
-
Многопроцессорная обработка
- На компьютере с несколькими процессорами процессы могут выполняться одновременно
- Механизм событий является основным средством многопроцессорной обработки
-
Тип вызова Run
- Процедура запускается как независимая задача, которая может быть продолжена после завершения исходного процесса
- Дочерний процесс не может получить доступ к переменным в родительской среде
-
Встроенные процедуры
- Процедура может быть объявлена встроенной, что экономит накладные расходы на вызов
- Встроенные функции аналогичны параметризованным макросам
-
Асинхронные вызовы
- При асинхронных вызовах для каждого процесса инициируется отдельный стек
- Процессы совместно используют данные, но выполняются асинхронно
-
Регистры отображения
- Аппаратная оптимизация стека с помощью общих регистров
- Регистры указывают на начало каждого вызываемого стекового фрейма
- Доступ к объектам во внешней и глобальной среде так же эффективен, как и к локальным переменным
-
Кросс-стековые вызовы
- Вызывающий код и вызываемый код могут быть из разных программ и компиляторов
- Среды D[1] и D[0] не встречаются в стеке текущего процесса
-
Объектно-ориентированная реализация
- Возможность привязать структуру данных к области отображения адреса регистра
- Аппаратная схема адреса, состоящая из двух частей, реализована с помощью программного обеспечения
-
Адресация и защита памяти
- Переменные располагались со смещением вверх от основания стека уровней
- Массивы не хранились в памяти, а имели свое собственное адресное пространство
- Аппаратная проверка на соответствие известным границам индексов массива предотвращала ошибочное индексирование
-
Особенности массивов в ALGOL
- Массивы не проверялись по отдельности, что позволяло изменять размер массива.
- Массивы могли быть “рваными”, что позволяло изменять размер строк.
- Массивы размером более 1024 слов сегментировались, что уменьшало нагрузку на память.
-
Эквивалентность массивов
- Объявление массива требовало выделения 48-битных слов данных.
- Поддерживалась эквивалентность массивов для различных типов данных.
- Дескрипторы данных указывали на тип данных массива.
-
Преимущества стековой структуры
- Стековая структура позволяла создавать дампы стека для отладки.
- Программы были неявно рекурсивными, что улучшало проверку ошибок.
- Burroughs FORTRAN лучше проверял ошибки, чем другие реализации.
-
Архитектура с тегами
- B5000 использовал теги для идентификации управляющих слов.
- В B6500 теги были расширены до трех битов.
- Четные теги указывали на пользовательские данные, нечетные – на системные.
-
Архитектура, основанная на дескрипторах
- Архитектура Burroughs была аппаратной архитектурой для объектно-ориентированного программирования.
- Программы состояли из 12- или 8-битных слогов, в зависимости от модели.
- Архитектура не предусматривала прямой адресации к регистрам или хранилищу.
-
Полиморфные операторы и базовый набор
- Многие операторы полиморфны в зависимости от типа данных.
- Базовый набор операторов составляет около 120, без учета мощных операторов.
- Операторы, зарезервированные для ОС, такие как MVST и HALT, не используются программами пользовательского уровня.
-
Слоги вызова и операторы
- Слоги вызова имени и значения содержат пары адресов.
- Слоги оператора либо не используют адреса, либо используют управляющие слова и дескрипторы в стеке.
-
Линейка B5000 и несколько процессоров
- B5000 использовала два процессора, соединенных высокоскоростной шиной.
- B6000, B7000 и B8000 имели симметричные процессоры.
- B7000 могла содержать до восьми процессоров.
-
Синхронизация и блокировки
- RDLK (чтение с блокировкой) — низкоуровневый способ синхронизации.
- СОБЫТИЯ — механизм более высокого уровня, используемый пользовательскими программами.
- Блокировки Dahm использовали инструкцию READLOCK для генерации RDLK.
-
Влияние B5000
- B5000 повлияла на линейку мэйнфреймов Unisys ClearPath.
- Архитектура B5000 вдохновила Чака Мура на создание языка Forth.
- B5000 повлияла на советскую серию мэйнфреймов “Эльбрус”.
- HP 3000 и калькуляторы HP также испытали влияние B5000.
- Системы NonStop и Tandem Computers также испытали влияние B5000.
-
Архитектура и безопасность
- B5000 была защищенной архитектурой, работающей на оборудовании.
- Этот метод повлиял на современные виртуальные машины, такие как Java JVM.
- Intel iAPX 432 могла бы обеспечить эквивалентную физическую основу.