Беллмак 32
Bellmac 32 — это микропроцессор, разработанный Bell Labs в процессорным подразделением 1980 году, реализованный с использованием технологии CMOS и ставший первым микропроцессором, который мог перемещать 32 бита за один такт. Микропроцессор содержит 150 000 транзисторов и улучшен по скорости проектирования КМОП за счет использования «схем домино». Он был разработан с языка программирования C. учетом После его создания была выпущена улучшенная версия под названием Bellmac 32A , которая затем была отменена вместе с ее преемником, «Хоббит» процессором с сокращенным набором инструкций на языке C (CRISP).
История
[ редактировать ]Процессор Bellmac 32 был разработан инженерами AT&T в трех разных лабораториях Bell Labs : Индиан-Хилл , Холмдел и Мюррей-Хилл . [1]
Поскольку у проектировщиков не было средств автоматизации, каждому разработчику микросхем приходилось использовать цветные карандаши для завершения первоначального проекта. [1] Позже Стив Лоу разработал компьютерную программу, которая помогла оцифровать первоначальные проекты.
Разработка Bellmac 32 привела к появлению новой технологии проектирования схем под названием «логика домино» , которая считается прорывом в производстве микропроцессоров. Испытания, проведенные во время производства, показали, что возможна тактовая частота даже выше целевой скорости 4 МГц. Однако реализация логики управления оказалась неожиданно сложной. Эти сложности ограничили окончательную скорость, когда весь чип был закончен и протестирован, до 2 МГц. [1] Команда сочла это прогрессом, но не столь успешным, поскольку оно не могло достичь первоначальных целей проектирования AT&T.
Последующие встречи по проектированию привели к созданию проекта Bellmac 32A как второго поколения микропроцессора Bellmac. В проекте снова была выбрана технология КМОП и зафиксирована целевая тактовая частота на уровне 6,2 МГц. Корректировки, направленные на максимизацию размера транзисторов и резисторов и минимизацию межсоединений, имели основополагающее значение для соответствия спецификациям. Инженеры разместили на полу большой комнаты инженерный чертеж схемы микросхемы размером 20 на 20 футов. [2] Тестирование микросхем, изготовленных по готовой схеме, превысило проектную скорость и достигло тактовых частот 7, 8 и даже 9 МГц. [1]
После распада AT&T Bell Labs стала частью Western Electric . Благодаря этому изменению Bellmac 32 был переименован в WE 32000 . Обновленные версии чипа включали WE 32100 , анонсированный в июне 1984 года. [3] и МЫ 32200 .
Архитектура
[ редактировать ]Bellmac 32 имеет конвейерную архитектуру с блоком выборки инструкций, который служит для управления доступом к основной памяти, и исполнительным блоком, который служит для мониторинга процесса и манипулирования данными.
Очередь инструкций заполняется инструкциями, полученными из памяти. Блок адресной арифметики служит для вычислений адреса.
Поддержка языков программирования
[ редактировать ]Архитектура Bellmac 32 предоставляет множество удобств разработчикам языков программирования. Вызов процедуры включает в себя манипулирование четырьмя регистрами — программным счетчиком, указателем стека, указателем кадра и указателем аргумента — для передачи управления между программными процедурами, а также использование программного стека для сохранения содержимого регистров и передачи аргументов и возвращаемых значений. Для поддержки такого «связывания процедур» предлагаются четыре инструкции: вызов сохраняет адрес возврата и указатель аргумента в стек, сохранение сохраняет выбранные регистры в диапазоне от R3 до R8 включительно, восстановление восстанавливает все ранее сохраненные регистры, а возврат получает кадр стека. перед вызовом и возвращает управление по сохраненному обратному адресу. Предусмотрены режимы адресации, обеспечивающие доступ к стеку относительно указателя аргумента и указателя кадра. [4]
Управление процессами
[ редактировать ]Архитектура поддерживает особую модель управления процессами, где процесс использует один стек выполнения, а блок управления процессом (PCB) сохраняет контекст выполнения каждого процесса, храня копии значений регистров процесса вместе с данными «перемещения блока». описание конфигурации виртуальной памяти процесса. Для удобства разработчиков операционных систем архитектурная поддержка переключения процессов включает две специальные инструкции, аналогичные традиционным инструкциям перехода к подпрограмме и возврата из подпрограммы. Инструкция вызова процесса сохраняет пользовательские и управляющие регистры на плате данного процесса через привилегированный регистр указателя блока управления процессом (PCBP), тем самым фиксируя состояние выполнения текущего процесса и позволяя его приостановить с последующей загрузкой таких регистров. из платы другого процесса, восстанавливая таким образом состояние выполнения данного процесса. Между тем, команда возврата в процесс просто загружает состояние процесса из данной платы. Выполняя «перемещение блоков», инструкции переключения процесса могут автоматически переконфигурировать структуру активной виртуальной памяти без дальнейшего вмешательства со стороны операционной системы, а в сочетании с этой реконфигурацией с обновлениями регистров процессора эти инструкции позволяют среде выполнения процесса быть измененной. удобно отреставрировать. [4]
Обработка прерываний
[ редактировать ]Наряду с регистром PCBP регистр указателя стека прерываний (ISP) используется для ссылки на позицию в общем стеке прерываний, используемом для записи указателей печатной платы, ссылающихся на сохраненное состояние прерванных процессов. При доставке прерывания специальная инструкция процесса вызова используется для приостановки текущего процесса, адрес платы которого хранится в стеке прерываний, и для переключения на обработчик прерывания, выбранный из таблицы. Прерывания ведут себя как отдельные процессы и поэтому имеют собственный стек выполнения. После завершения обработки прерывания команда возврата в процесс используется для возобновления приостановленного процесса. Выбор подходящего обработчика прерываний включает таблицу указателей печатной платы в фиксированной ячейке виртуальной памяти. [4]
Привилегии, системные вызовы и обработка исключений
[ редактировать ]Архитектура Bellmac 32 поддерживает четыре уровня привилегий. Для переключения между уровнями привилегий предусмотрен механизм «контролируемой передачи», основанный на двухуровневой иерархии таблиц для определения уровня привилегий с использованием регистра слова состояния процессора (PSW) и местоположения каждой процедуры или обработчика, вызываемого «контролируемый вызов», тем самым обеспечивая механизм системного вызова. Обработка исключений использует этот механизм контролируемого вызова для направления выполнения соответствующему обработчику, который для «нормального» исключения находится через определенную таблицу второго уровня, каждая запись которой соответствует определенному коду внутреннего состояния (ISC), определенному в регистре PSW. . Для функционирования функций Bellmac 32, связанных с исключениями, также ожидается, что ядро операционной системы будет находиться в виртуальном адресном пространстве каждого процесса, поскольку исключение, основанное на контролируемой передаче, не будет изменять конфигурацию виртуальной памяти. [4]
Инструкции, поддерживающие язык C
[ редактировать ]Хотя различные операции, предоставляемые архитектурой Bellmac 32, в целом поддерживают языки высокого уровня, предусмотрены специальные инструкции, поддерживающие соглашения языка C, в частности, инструкции копирования строки и завершения строки , которые основаны на представлении языка C завершающих строк символов нулевым байтом. Также предусмотрена общая операция копирования блоков, которая использует явный параметр длины блока для определения объема данных, подлежащих копированию между местоположениями. [4]
Регистры
[ редактировать ]
|
Bellmac 32 имеет шестнадцать 32-битных регистров. Три из них (ISP, PCBP, PSW) являются привилегированными, используются для поддержки операционной системы и могут быть записаны только тогда, когда микропроцессор находится в режиме ядра. Есть еще три регистра (SP, AP, FP), которые используются некоторыми инструкциями в качестве указателей стека. Уровень выполнения, заданный в слове состояния процессора, может находиться в одном из четырех состояний: «Ядро», «Исполнительный», «Супервизор», «Пользователь». [5]
В WE 32200 имеется еще шестнадцать регистров. [6] они разделены на две группы по восемь регистров: от R16 до R23 — пользовательские регистры, доступные для чтения и записи в любом режиме процессора, предназначенные для хранения глобальных переменных и временного хранения; R24–R31 — это регистры ядра или привилегированные регистры, которые доступны для записи только в режиме ядра и доступны для чтения в любом другом режиме. Эти дополнительные регистры были введены, чтобы позволить компиляторам языков высокого уровня генерировать код, который мог бы использовать их для хранения часто используемых данных, тем самым улучшая производительность выполнения таких языков. [7]
Слово состояния процессора
[ редактировать ]
|
Слово состояния процесса является частью файла регистров и имеет псевдоним R11.
Биты | Значение |
---|---|
31:26 | Неиспользованный |
25 | Отключить очистку кэша |
24 | Включение быстрого прерывания |
23 | Отключить кэш |
22 | Включить ловушку переполнения |
21 | Отрицательный |
20 | Ноль |
19 | Переполнение |
18 | Нести |
17 | Включить трассировку |
16:13 | Уровень приоритета прерывания |
12:11 | Текущий уровень выполнения |
10:9 | Предыдущий уровень выполнения |
8:7 | Регистр-начальный контекст |
6:3 | Внутренний Государственный Кодекс |
2 | Трассирующая маска |
1:0 | Тип исключения |
Инструкции
[ редактировать ]Этот микропроцессор имеет 169 инструкций, оптимизированных для выполнения программ, написанных на языке программирования C. Соответственно, формат строк символов адаптируется, например, к спецификациям языка C.
Инструкции могут иметь до трех операндов. Процессор не имеет инструкций для операций с плавающей запятой или десятичных арифметических операций, которые позже были предоставлены сопроцессорами WE 32106 и WE 32206.
Память
[ редактировать ]Bellmac 32 реализует несколько типов адресации памяти, такие как линейная, немедленная 8, 16 или 32 бита, регистрация, косвенная регистровая адресация, короткий сдвиг, абсолютное и косвенное смещение 8, 16 или 32 бита.
Использование
[ редактировать ]Процессоры WE 32x00 использовались в компьютерах серии 3B компании AT&T Computer Systems , которые были представлены как коммерчески доступные продукты в линейках 3B2, 3B5 и 3B20 на выставке Comdex весной 1984 года . [8] В середине 1985 года AT&T начала предлагать WE 32100 и связанный с ним набор микросхем, а также системы оценки «на уровне платы» другим производителям. [9]
Поддержка чипов
[ редактировать ]У AT&T была линейка WE 32x00, поддерживающая чипы и периферийные устройства. [6] включая:
- WE 32101/32201 Блок управления памятью
- WE 32102 Часы (10, 14, 18 или 24 МГц)
- WE 32103 Контроллер DRAM
- Контроллер DMA WE 32104/32204
- WE 32106/32206 Блок ускорения математики
- Одноплатный компьютер WE 321SB VMEbus
- Оценочная плата WE 321EB
Ссылки
[ редактировать ]- ^ Jump up to: а б с д Доктор Сунг Мо (Стив) Кан (13 января 2015 г.). «Из первых рук: разработка микропроцессора AT&T BELLMAC-32» . Wiki по истории техники и технологий .
- ^ «О BELLMAC-32 и, возможно, самом большом в мире рисунке плоттером - greg.org» . 09.12.2011 . Проверено 28 марта 2024 г.
- ^ «Новости 32-битных микропроцессоров» . Микросистемы . Июнь 1984 г. с. 12 . Проверено 25 марта 2023 г.
- ^ Jump up to: а б с д и Беренбаум, Алан Д.; Кондри, Майкл В.; Лу, Присцилла М. (март 1982 г.). «Операционная система и особенности языковой поддержки микропроцессора BELLMAC-32» . Материалы симпозиума по архитектурной поддержке языков программирования и операционных систем . Ассоциация вычислительной техники: 30–38 . Проверено 24 марта 2023 г.
- ^ «Информационное руководство по микропроцессору WE 32100» (PDF) . АТ&Т. Январь 1985 года.
- ^ Jump up to: а б «32-битные микропроцессоры и периферийные устройства AT&T WE» (PDF) . АТ&Т. Август 1987 года.
- ^ Хуанг, Виктор К.Л.; Сири, Джеймс В.; Ву, Уильям С.; Альтабет, Саул К.; Киллиан, Майкл Дж.; Аймелоглу, Симеон; Габара, Таддеус Дж.; Фишер, Аарон Л.; Хван, Инсок С.; Томпсон, Дэвид В. (апрель 1989 г.). «Конкурс дизайна AT&T WE32200» . IEEE микро . стр. 14–25 . Проверено 19 марта 2023 г.
- ^ Хантер, Брюс (июнь 1984 г.). «AT&T выходит на рынок микро/мини» . Микросистемы . стр. 114–116, 118 . Проверено 25 марта 2023 г.
- ^ «AT&T предлагает 32-битные процессоры другим компаниям» . Байт . Июль 1985 г. с. 9 . Проверено 25 марта 2023 г.
Внешние ссылки
[ редактировать ]- Из первых рук: Разработка микропроцессора AT&T BELLMAC-32. http://www.ieeeghn.org/wiki/index.php/First-Hand:The_AT%26T_BELLMAC-32_Microprocessor_Development
- Персональные компьютеры. Навстречу миру вычислительных машин. Приложение Б: О микропроцессорах. Автор: Фернандо Саес Коровы. http://www.quadernsdigitals.net/datos_web/biblioteca/l_516/enLinea/8.pdf
- Архив канала AT&T Tech: Микропроцессор в эпоху информации (видео)