Введение

ROMP — это микропроцессор с упрощенным набором команд (RISC), разработанный компанией IBM в конце 1970-х годов. Он также известен как исследовательский минипроцессор OPD (от названий двух подразделений IBM, сотрудничавших при его создании: IBM Research и Office Products Division (OPD)) и 032. ROMP изначально разрабатывался для офисной техники и небольших компьютеров, как преемник микропроцессора IBM OPD Mini Processor середины 1970-х годов, который использовался в системе обработки текстов IBM Office System/6. Первые образцы стали доступны в 1981 году, а впервые коммерчески он был применен в IBM RT PC, представленном в январе 1986 года. В течение некоторого времени RT PC планировался как персональный компьютер, где ROMP должен был заменить Intel 8088, использовавшийся в IBM Personal Computer. Однако впоследствии RT PC был переориентирован на инженерную и научную рабочую станцию. Более поздняя КМОП-версия ROMP впервые была использована в сопроцессорной плате для IBM 6152 Academic System, представленной в 1988 году, и затем появилась в некоторых моделях RT PC.

История

Архитектурные работы над ROMP начались в конце весны 1977 года как побочный продукт разработки 801 RISC процессора IBM Research (отсюда и "Research" в аббревиатуре). Большинство архитектурных изменений были направлены на снижение стоимости, например, добавление 16-битных инструкций для повышения эффективности работы с байтами. Изначально ROMP имел 24-битную архитектуру, но через несколько лет разработки набор инструкций был расширен до 32 бит. Первые чипы были готовы в начале 1981 года, что сделало ROMP первым промышленным RISC-процессором. Процессор был представлен на Международной конференции по твердотельным схемам в 1984 году.

Архитектура

Архитектура ROMP была основана на оригинальной версии миникомпьютера IBM Research 801. Основными отличиями были больший размер слова (32 бита вместо 24) и поддержка виртуальной памяти. Архитектура поддерживала 8-, 16- и 32-битные целые числа, 32-битное адресное пространство и 40-битное виртуальное адресное пространство. Она имела регистр указателя команд и шестнадцать 32-битных регистров общего назначения. Микропроцессор управлялся 118 простыми 16- и 32-битными инструкциями. Виртуальная память ROMP имела сегментированное 40-битное (1 ТБ) адресное пространство, состоящее из 4096 сегментов по 256 МБ. 40-битный виртуальный адрес формируется в блоке управления памятью (MMU) путем конкатенации 12-битного идентификатора сегмента с 28 младшими битами 32-битного виртуального адреса, вычисленного ROMP. Идентификатор сегмента извлекается из набора из 16 идентификаторов сегментов, хранящихся в MMU, адресуемых четырьмя старшими битами 32-битного виртуального адреса, вычисленного ROMP.

Реализация

ROMP — это скалярный процессор с трехступенчатым конвейером. ROMP имел сопутствующую интегральную схему, разработанную IBM, которая во время разработки носила кодовое имя Rosetta. Rosetta являлась блоком управления памятью (MMU) и обеспечивала ROMP средствами трансляции адресов, буфером просмотра трансляций (TLB) и буфером записи. ROMP состоит из 45 000 транзисторов и имеет размеры 7,65 × 7,65 мм (58,52 мм²), в то время как Rosetta состоит из 61 500 транзисторов и имеет размеры 9,02 × 9,02 мм (81,36 мм²). Оба чипа упакованы в 135-выводные керамические корпуса с контактной сеткой. Позднее была разработана CMOS-версия ROMP и Rosetta (под названием ROMP C и Rosetta C).