Jump to content

Рекурсивно

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

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

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

В 1981 году Тифенбрун нанял несколько программистов для написания версии языка Smalltalk для систем VAX, позаимствовав часть синтаксиса из ALGOL . Система, известная как LINGO, работала, но на платформе VAX работала очень медленно. Тифенбрун пришел к выводу, что решение проблемы производительности заключалось не в улучшении языка VAX, а в создании совершенно нового процессора, специально предназначенного для запуска объектных программ. [1]

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

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

Описание

[ редактировать ]

Основные понятия

[ редактировать ]

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

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

Обработка памяти

[ редактировать ]

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

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

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

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

Микрокод

[ редактировать ]

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

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

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

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

[ редактировать ]

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

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

Примечания

[ редактировать ]
  1. По словам одного человека, работавшего в то время в компании, последней каплей стало то, что грузовик Линна повредил Porsche Харланда, и он перестал приходить в офис. [4]
  2. ^ 33-й бит не упоминается ни в одном из источников и, по-видимому, не используется.
  1. ^ Перейти обратно: а б с Паунтин 1988 , с. 341.
  2. ^ Роуз, Сев (19 апреля 2011 г.). «Рекурсив» . SlideShare.net . Слайдшер . Проверено 27 февраля 2017 г. .
  3. ^ Рекурсивная история Линн - РЕПОСТ
  4. ^ Лотиан 1993 .
  5. ^ Паунтин 1988 , с. 348.
  6. ^ Паунтин 1988 , с. 342.
  7. ^ Pountain 1988 , стр. 348–349.
  8. ^ Паунтин 1988 , с. 346.
  9. ^ Перейти обратно: а б с д Паунтейн 1988 , с. 347.
  10. ^ Перейти обратно: а б с д и Паунтин 1988 , с. 349.

Библиография

[ редактировать ]

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

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4f78d468b9aef715c6f523185951abe4__1696104180
URL1:https://arc.ask3.ru/arc/aa/4f/e4/4f78d468b9aef715c6f523185951abe4.html
Заголовок, (Title) документа по адресу, URL1:
Rekursiv - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)