Открыть сервис

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 →