ARMv1
ARMv1 — это первая версия архитектуры набора команд (ISA) семейства ARM, разработанная британской компанией Acorn Computers в 1985 году. Представляет собой 32-битную RISC-архитектуру (Reduced Instruction Set Computer, вычислительная система с сокращённым набором команд), реализованную в первом коммерческом процессоре ARM1. ARMv1 заложила основы для последующих поколений ARM-процессоров, которые в XXI веке стали доминирующей архитектурой для мобильных устройств и встроенных систем.
История
Разработка в Acorn Computers
В начале 1980-х годов компания Acorn Computers, производившая микрокомпьютеры BBC Micro и Acorn Electron, столкнулась с ограничениями доступных процессоров. Используемые микропроцессоры 6502 от MOS Technology имели 8-битную архитектуру и не обеспечивали достаточной производительности для более сложных задач. Руководство Acorn рассматривало возможность перехода на 16-битные процессоры, такие как Motorola 68000 или National Semiconductor 32016, но сочло их либо слишком дорогими, либо недостаточно производительными для своих целей.
В 1983 году инженеры Acorn Computers Софи Уилсон и Стив Фербер начали проект по разработке собственного процессора, вдохновляясь идеями RISC-архитектуры, которые в то время активно продвигались в Калифорнийском университете в Беркли (проект RISC-I) и Стэнфордском университете (проект MIPS). В отличие от сложных CISC-архитектур (Complex Instruction Set Computer, вычислительная система с полным набором команд), RISC-подход предполагал минимальный набор простых и быстрых команд, выполняемых за один такт.
Проект получил название ARM — Acorn RISC Machine. Разработка велась на основе языка описания аппаратуры, а прототип процессора был изготовлен на фабрике VLSI Technology (Сан-Хосе, Калифорния). Первый образец ARM1 был получен 26 апреля 1985 года и успешно запущен, выполнив простую программу. В том же году была выпущена спецификация архитектуры ARMv1.
Первое применение
Процессор ARM1 на базе ARMv1 был впервые использован в качестве второго процессора в компьютерах Acorn BBC Micro, где он обеспечивал значительный прирост производительности по сравнению с основным 8-битным процессором 6502. Позднее ARMv1 легла в основу процессора ARM2, который стал основой для компьютеров Acorn Archimedes (1987 год) — первых массовых компьютеров на RISC-архитектуре.
Архитектура ARMv1
Основные характеристики
ARMv1 является 32-битной RISC-архитектурой с фиксированной длиной команд (32 бита). Ключевые особенности:
- Регистровый файл: 16 регистров общего назначения (R0–R15), каждый разрядностью 32 бита. Регистр R15 выполняет роль счётчика команд (PC, Program Counter). Регистры R13 и R14 зарезервированы для указателя стека (SP, Stack Pointer) и регистра связи (LR, Link Register) при вызове подпрограмм.
- Набор команд: 45 основных инструкций, включая арифметические, логические, пересылки данных, ветвления и обращения к памяти. Все команды могут выполняться условно — это уникальная особенность ARM, сохранившаяся во всех последующих версиях. Условное выполнение позволяет избежать многих условных переходов, повышая производительность.
- Режимы адресации: поддержка регистровой, непосредственной, косвенной и индексной адресации. Обращение к памяти возможно только через команды загрузки (LDR) и сохранения (STR) — принцип load/store, характерный для RISC.
- Размер слова: 32 бита, но поддержка работы с байтами (8 бит), полусловами (16 бит) и словами (32 бита) через специальные команды.
- Тактовая частота: в процессоре ARM1 — 6 МГц (в поздних реализациях ARM2 — до 12 МГц).
Отсутствие кэша и MMU
ARMv1 не предусматривала встроенного кэша команд или данных, а также блока управления памятью (MMU, Memory Management Unit). Это было типично для ранних RISC-процессоров, ориентированных на простоту и низкую стоимость. Вся память адресовалась напрямую, а управление кэшированием и защитой памяти возлагалось на внешние схемы.
Команды и их формат
Каждая команда ARMv1 имеет фиксированный 32-битный формат. Поле кода операции (opcode) занимает 4 бита, поле условий (cond) — 4 бита, остальные биты распределяются под операнды и модификаторы. Например, команда ADD (сложение) имеет вид: cond 00 I opcode S Rn Rd Operand2, где:
cond— условие выполнения (например, EQ — равно, NE — не равно);I— флаг непосредственного операнда;opcode— код арифметической операции;S— флаг установки флагов состояния;Rn— первый регистр-источник;Rd— регистр-приёмник;Operand2— второй операнд (регистр, сдвинутое значение или непосредственная константа).
Режимы процессора
ARMv1 поддерживала два режима работы:
- Пользовательский режим (User mode) — основной режим для выполнения прикладных программ.
- Супервизорный режим (Supervisor mode) — привилегированный режим для обработки прерываний и исключений. Переключение между режимами осуществлялось через механизм прерываний и специальные команды (SWI — Software Interrupt).
Реализация: процессор ARM1
Технические параметры
Процессор ARM1, реализующий ARMv1, изготавливался по 3-микронной КМОП-технологии (CMOS). Он содержал около 25 000 транзисторов. Площадь кристалла составляла примерно 50 мм². Частота — 6 МГц, производительность — около 4 MIPS (миллионов инструкций в секунду). Потребляемая мощность — менее 0,5 Вт, что было очень низким показателем для того времени.
Особенности
ARM1 не имел аппаратного умножителя — операция умножения реализовывалась программно через последовательность сложений и сдвигов. Также отсутствовала поддержка плавающей запятой (FPU). Всего было выпущено несколько сотен образцов ARM1, использовавшихся в основном для тестирования и в качестве второго процессора в BBC Micro.
Значение и влияние
Основа для будущих поколений
ARMv1 стала фундаментом для всей линейки ARM-архитектур. Её ключевые принципы — регистровая модель, условное выполнение команд, фиксированная длина инструкций и load/store-архитектура — сохранились во всех последующих версиях, включая ARMv2 (1986), ARMv3 (1989), ARMv4 (1992) и далее. Даже современные 64-битные архитектуры ARMv8-A и ARMv9-A наследуют базовые концепции ARMv1.
Коммерческий успех
Хотя ARMv1 не принесла Acorn Computers прямой коммерческой выгоды, она продемонстрировала жизнеспособность RISC-подхода в микропроцессорах. В 1990 году Acorn выделила подразделение ARM в отдельную компанию — Advanced RISC Machines Ltd. (ARM Holdings), которая начала лицензировать архитектуру другим производителям. Это привело к массовому распространению ARM-процессоров в мобильных телефонах, планшетах, встраиваемых системах и, позднее, в серверах.
Сравнение с современными архитектурами
По современным меркам ARMv1 крайне проста: она не поддерживает многопоточность, виртуализацию, кэш-память, спекулятивное выполнение или SIMD-инструкции. Однако её минимализм и энергоэффективность стали основой для разработки ARM-архитектур, которые в настоящее время доминируют на рынке мобильных и IoT-устройств (Интернет вещей).
Интересные факты
- Первый ARM-процессор (ARM1) был разработан всего за 18 месяцев двумя инженерами.
- Название ARM изначально расшифровывалось как Acorn RISC Machine, но после основания ARM Holdings стало означать Advanced RISC Machines.
- ARMv1 не имела никаких средств защиты памяти или многозадачности — это был чисто однопользовательский процессор.
- Процессор ARM1 мог быть протестирован с помощью эмулятора на BBC Micro до получения реального чипа.
Источники
- Furber, S. (2000). ARM System-on-Chip Architecture. Addison-Wesley.
- Acorn Computers Ltd. (1985). ARM1 Technical Reference Manual.
- Patterson, D. A., & Hennessy, J. L. (2017). Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann.
- ARM Holdings plc. (2023). ARM Architecture Reference Manual ARMv8-A (наследие ARMv1).
- Wikipedia (англ.). ARM architecture family.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →