IBM 801
IBM 801 — это экспериментальный 32-битный процессор, разработанный компанией IBM в конце 1970-х — начале 1980-х годов. Он стал одним из первых процессоров, реализовавших принципы RISC (Reduced Instruction Set Computer — вычислитель с сокращённым набором команд), и оказал значительное влияние на архитектуру последующих поколений микропроцессоров, включая семейство IBM POWER и PowerPC.
История
В середине 1970-х годов группа инженеров под руководством Джона Кокка (John Cocke) в исследовательском центре IBM Thomas J. Watson Research Center начала изучать, как повысить производительность процессоров не за счёт усложнения системы команд, а за счёт её упрощения и оптимизации конвейера. Кокк и его коллеги заметили, что в существующих CISC-процессорах (Complex Instruction Set Computer) большинство сложных инструкций используются редко, а основная нагрузка приходится на небольшое подмножество простых команд. Это наблюдение легло в основу концепции RISC.
Проект получил название «801» в честь корпуса 801 исследовательского центра, где велась работа. Разработка началась в 1975 году, а первый прототип процессора был собран к 1978 году. В 1980 году была выпущена экспериментальная машина на базе IBM 801, которая использовалась внутри IBM для тестирования и оптимизации компиляторов.
Хотя IBM 801 так и не был выпущен как коммерческий продукт, его архитектура и идеи легли в основу более поздних проектов IBM, таких как процессоры ROMP (для IBM RT PC) и, в конечном счёте, семейства POWER (Performance Optimization With Enhanced RISC), которое дебютировало в 1990 году.
Архитектура
Основные принципы
IBM 801 был 32-битным процессором с фиксированной длиной команды (32 бита) и архитектурой load-store, то есть операции с памятью выполнялись только через специальные команды загрузки (load) и сохранения (store), а все арифметические и логические операции — над регистрами. Это резко контрастировало с доминировавшими в то время CISC-процессорами, которые позволяли выполнять операции непосредственно над данными в памяти.
Регистровый файл
Процессор имел 32 универсальных регистра общего назначения (по 32 бита каждый), что позволяло компилятору эффективно распределять переменные и временные значения, минимизируя обращения к памяти.
Конвейер
IBM 801 использовал глубокий конвейер, разбивающий выполнение инструкции на несколько этапов (выборка, декодирование, выполнение, запись результата). Это позволяло достигать высокой тактовой частоты и выполнения одной инструкции за такт (IPC ~1) при условии отсутствия конфликтов.
Система команд
Набор команд IBM 801 был очень компактным — всего около 100 инструкций. Все команды имели одинаковую длину (32 бита) и простой формат, что упрощало декодирование и повышало скорость работы. Команды делились на три основные группы:
- Арифметические и логические (сложение, вычитание, AND, OR, XOR, сдвиги).
- Загрузка/сохранение (load word, store word, load byte, store byte).
- Переходы (условные и безусловные, с задержкой перехода — branch delay slot).
Branch delay slot
Одной из ключевых особенностей IBM 801 было использование «слота задержки перехода» (branch delay slot). Поскольку конвейер уже загрузил следующую инструкцию до того, как условие перехода было вычислено, процессор выполнял эту инструкцию в любом случае, даже если переход не состоялся. Компилятор должен был поместить в этот слот либо полезную инструкцию, не зависящую от результата перехода, либо инструкцию NOP (no operation). Этот приём стал стандартным для многих RISC-архитектур.
Реализация
IBM 801 был реализован на основе биполярных логических элементов (технология ECL — эмиттерно-связанная логика) и размещался на нескольких печатных платах. Тактовая частота прототипа составляла около 66 МГц, что было очень высоким показателем для своего времени. Процессор потреблял значительную мощность и требовал активного охлаждения.
Прототипная система на базе IBM 801 включала:
- Процессорный модуль.
- Кэш-память (отдельный кэш команд и кэш данных, каждый объёмом 32 КБ).
- Контроллер памяти.
- Интерфейс ввода-вывода.
Влияние и наследие
IBM 801 стал одним из первых практических доказательств эффективности RISC-подхода. Хотя сам проект остался экспериментальным, его идеи были использованы в нескольких последующих разработках:
- IBM ROMP (Research Office Products Division Microprocessor) — 32-битный процессор, выпущенный в 1986 году для рабочей станции IBM RT PC. ROMP был прямым потомком архитектуры 801.
- IBM POWER — семейство высокопроизводительных RISC-процессоров, дебютировавшее в 1990 году с моделью POWER1. Архитектура POWER унаследовала от 801 принципы load-store, фиксированную длину команды и конвейеризацию, но добавила суперскалярность (выполнение нескольких инструкций за такт).
- PowerPC — совместная разработка IBM, Apple и Motorola (1991), основанная на архитектуре POWER. PowerPC широко использовался в Macintosh (до перехода на Intel), игровых консолях (Nintendo GameCube, Wii, Xbox 360) и встраиваемых системах.
- IBM z/Architecture — в мейнфреймах IBM также прослеживается влияние RISC-идей, хотя их набор команд остаётся CISC-совместимым для обратной совместимости.
Помимо аппаратного влияния, проект 801 стимулировал развитие компиляторных технологий. Джон Кокк и его команда разработали методы оптимизации кода, такие как глобальное распределение регистров, планирование инструкций и устранение мёртвого кода, которые стали стандартом для современных компиляторов.
Критика и ограничения
Несмотря на новаторство, IBM 801 имел ряд недостатков:
- Высокая стоимость и сложность реализации — использование биполярной логики и многоплатная конструкция делали процессор дорогим и малопригодным для массового производства.
- Ограниченная совместимость — отсутствие обратной совместимости с существующим программным обеспечением IBM (например, с System/360) делало его непривлекательным для коммерческого использования.
- Зависимость от компилятора — эффективность RISC-архитектуры сильно зависела от качества компилятора, который должен был заполнять слоты задержки и оптимизировать код. В начале 1980-х годов компиляторы были ещё несовершенны, что снижало реальную производительность.
Интересные факты
- Проект 801 был настолько секретным, что о нём стало известно широкой публике только в 1982 году, когда Джон Кокк опубликовал статью «The 801 Minicomputer» в журнале IBM Journal of Research and Development.
- Джон Кокк за свои работы по RISC-архитектуре и оптимизирующим компиляторам получил премию Тьюринга (1987) и Национальную медаль науки США (1994).
- Термин «RISC» был введён позже, в 1980 году, Дэвидом Паттерсоном (Университет Калифорнии в Беркли) для описания архитектуры процессора RISC-I, который разрабатывался независимо от IBM 801, но на схожих принципах.
Источники
- Cocke, J., Markstein, V. (1982). «The 801 Minicomputer». IBM Journal of Research and Development.
- Patterson, D. A., Ditzel, D. R. (1980). «The Case for the Reduced Instruction Set Computer». ACM SIGARCH Computer Architecture News.
- Hennessy, J. L., Patterson, D. A. (2011). «Computer Architecture: A Quantitative Approach» (5th ed.). Morgan Kaufmann.
- IBM Corporation. (1990). «IBM POWER1 Processor Architecture».
- Smotherman, M. (2017). «A Brief History of RISC». Clemson University.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →