Рекурсив - Rekursiv

Рекурсив был компьютерный процессор разработано Дэвид М. Харланд в середине 1980-х на подразделении Hi-Fi производитель Линн Продукты. Это был один из немногих компьютерные архитектуры предназначен для реализации объектно-ориентированный концепции непосредственно в оборудовании, форма архитектура компьютера на языке высокого уровня. Rekursiv работал непосредственно с объектами, а не с битами, полубайтами, байтами и словами. Виртуальная память использовался как постоянное хранилище объектов, и, что необычно, набор команд процессора поддерживал рекурсия (отсюда и название).

К тому времени, когда проект представил свою первую реализацию, новые процессоры, такие как Sun SPARC и Intel 486 превзошла свои характеристики, и разработка была прекращена в 1988 году.

История

Проект Рекурсив начался как попытка улучшить сборочная линия контроль на фабриках Linn в Глазго, Шотландия. Их линии были автоматизированы с использованием набора VAX-11 системы, но они были медленными и очень сложными для программирования с гибкостью, которую основатель Линн, Ивор Тифенбрун, желанный. К началу 1980-х Тифенбрун убедился, что объектно-ориентированного программирования предложит решения этих проблем.[1]

В 1981 году Тифенбрун нанял несколько программистов, чтобы они написали версию основополагающего Болтовня язык для систем VAX, заимствуя некоторый синтаксис из АЛГОЛ. Система, известная как LINGO, работала, но очень медленно работала на платформе VAX. Тифенбрун пришел к выводу, что решение проблемы производительности заключалось не в улучшении языка VAX, а в создании полностью нового ЦП, специально предназначенного для выполнения объектных программ.[1]

В 1984 году Тифенбрун основал дочернюю компанию Linn Smart Computing под руководством Стратклайдский университет профессор Дэвид Харланд и проект «Рекурсив». Первая версия системы появилась в 1988 году.[1] Небольшое количество прототипов VMEbus доски, называемые Аид, состоящих из этих четырех микросхем плюс 80 МБ оперативной памяти. Они были предназначены для установки в хост-системе, такой как Вс-3 рабочая станция. Хотя Рекурсив так и не был полностью разработан и не имел коммерческого успеха, несколько досок Hades использовались в академических исследовательских проектах в Великобритания. Последняя известная копия компьютера «Рекурсив» оказалась внизу страницы. Канал Форт и Клайд в Глазго.[2]

Согласно сообщению исследователя из Университета Стратклайда, в то время как система Rekursiv находилась в стадии разработки, новая версия языка LINGO была написана для Sun SPARC система, которая возникла примерно в это время. Он работал в два раза быстрее, чем оборудование Rekursiv, что делало усилия бессмысленными.[3] Спустя некоторое время компания была закрыта.[а]

Описание

Базовые концепты

Основная концепция платформы «Рекурсив» заключалась в предоставлении аппаратного обеспечения постоянное хранилище объектов, постоянно и незаметно записывает состояние памяти на диск без вмешательства со стороны Операционная система или программа пользователя. Один рецензент описал его как «механизм объектной базы данных для создания постоянных объектов и управления ими».[5]

Чтобы такая система работала с разумной производительностью при выполнении сложных программ, Rekursiv был разработан, чтобы позволить программисту писать свои собственные архитектура набора команд (ISA), посвященный используемому ими языку. В микрокод набор инструкций хранился в статическая RAM.[6] Не было ISA по умолчанию, хотя Linn предоставил один для запуска программ в Язык программирования C.[7]

Работа с памятью

Система не предоставляла аналог адреса памяти программам, работающим в ней, вместо этого объектам давался 40-битный идентификатор, который чип Objekt хешировал и использовал в качестве указателя на физическую память.[8] Objekt также обработал отображение объектной памяти на жесткий диск для постоянного хранения, реализуя виртуальная память система. Обрабатывать вывоз мусора, Objekt разделил предоставленные динамическое ОЗУ (основная память) на две половины, используя одну для создания нового объекта и оставив другую неиспользуемой. Когда для нового объекта требовалось больше памяти, чем было свободно в используемой части, Objekt приостанавливал систему, копировал любой объект с действительным указателем на него в неиспользуемую половину памяти, а затем переключался, чтобы сделать ранее неиспользуемую половину активной частью. В случаях крайне ограниченного объема памяти Objekt сначала попытается разместить некоторые объекты на диске, а если это не сможет освободить достаточно места, будет использовать обе половины памяти.[9]

Объекты представляют собой составные структуры с несколькими значениями внутри них, которые в большинстве систем реализованы в виде серии указателей на ячейки памяти, в которых хранятся значения. В Rekursiv адреса заменяются 40-битными идентификаторами объектов, указывающими на раздел памяти, выделенный Objekt. В старший бит (MSB) 40-битного указателя был установлен в 1, если значение было идентификатором объекта, или 0, если это было нетипизированное двоичное значение. Последний использовался для хранения больших неформатированных данных, таких как данные для цифрового изображения, и мог использоваться только внутри объектов.[9]

В случае полного объекта было доступно дополнительное упрощение для хранения коротких полей как значений внутри самого указателя. На это указывает также установка второго MSB на 0. В этом случае следующие пять битов указывают тип, определенный ISA программы, который может быть «целым числом» или «фрагментом строки». Фактическое значение этого «компактного объекта» помещалось в младшие 32 бита указателя. Это позволило немедленно передать такие простые значения процессору без необходимости следовать указателю на физическое местоположение, что позволило сэкономить память и повысить производительность.[9][b]

Поскольку два верхних бита 40-битного указателя использовались для флагов состояния, Objekt мог идентифицировать только 238 всего объектов. Поскольку объекты постоянно собирались сборщиком мусора, многие из этих значений могут указывать на несуществующие объекты, а это означает, что в системе могут закончиться идентификаторы при практическом использовании. Чтобы решить эту проблему, весь образ системы периодически записывался на диск, в течение этого времени все указатели были перенумерованы, чтобы они были последовательными.[9]

Микрокод

Набор команд процессора хранился в специальной области статической ОЗУ, известной как «хранилище управления». Доступ к нему осуществлялся через выделенную 16-битную шину, состоящую из 16 384 слов по 128 бит каждое. Отдельный раздел SRAM «карта хранилища управления» содержит пронумерованную таблицу точек входа в микрокодированные процедуры, отображающие 10-битную код операции на одну из 2048 сущностей. В обычном процессоре отображение обычно реализуется в виде аппаратной логики в декодере кода операции.[10]

Коды операций могут быть частями объектов и храниться так же, как любые другие данные, использующие Objekt. По соображениям производительности в отдельном банке памяти, известном как NAM (и NAMARG), зарезервировано 524 288 40-битных слов, в которых хранятся 10-битные коды операций и 30-битные аргументы. NAM подключается непосредственно к процессору через его собственную шину, что делает его более похожим на кэш в современных архитектурах.[10]

На практике разработчик языка программирования сначала обрисовывает язык ассемблера они хотели, чтобы это был базовый синтаксис языка с до 2048 инструкциями. Часто используемые процедуры, например, stdlib в C, затем будет закодирован с использованием этого языка ассемблера и записан в NAM. Моделирование показало, что Лисп подпрограммы, написанные с использованием этого стиля, работали примерно в 20 раз быстрее, чем Символика Лисп-машина. Компания также произвела аналогичные системы микрокода для Smalltalk и Prolog, которые позже сократили сложную операцию унификации Prolog до единственного кода операции.[10]

Физическая упаковка

Процессор Рекурсив состоял из четырех ворота чипы по имени Numerik (32-битный ALU ), Логик (секвенсор инструкций), Объект (объектно-ориентированный блок управления памятью ) и Klock (частота процессора и логика поддержки). Оригинальные версии работали на частоте 10 МГц.[10]

Linn намеревалась продавать чипсет Rekursiv поставщикам, а также производить свои собственные рабочая станция используй это. Первоначально единственным продуктом был «HADES», «Аппаратный ускоритель для динамических экспертных систем», который состоял из VMEbus карту, которую можно было подключить к Вс-3 или Вс-4 рабочая станция. HADES включала четыре основных чипа, 2 МБ SRAM 45 наносекунд (22 МГц) и 5 ​​МБ DRAM 100 нс (10 МГц). Доступ к диску осуществлялся программой, работающей в базовой системе Sun, что значительно снижало производительность.[10]

Примечания

  1. ^ По словам одного человека, который в то время работал в компании, последней каплей стало то, что грузовик Linn повредил Porsche Харланда, и он перестал приходить в офис.[4]
  2. ^ 33-й бит не упоминается ни в одном из источников и, похоже, не используется.

Рекомендации

Цитаты

  1. ^ а б c Фонтан 1988, п. 341.
  2. ^ Роза, Себ (19 апреля 2011 г.). «Рекурсив». slideshare.net. Slideshare. Получено 27 февраля 2017.
  3. ^ История Линн Рекурсив - ОТПРАВИТЬ
  4. ^ Лотиан 1993.
  5. ^ Фонтан 1988, п. 348.
  6. ^ Фонтан 1988, п. 342.
  7. ^ Фонтан 1988, стр. 348-349.
  8. ^ Фонтан 1988, п. 346.
  9. ^ а б c d Фонтан 1988, п. 347.
  10. ^ а б c d е Фонтан 1988, п. 349.

Список используемой литературы

дальнейшее чтение