
В 1983 году небольшая британская компания Acorn Computers переживала свой звездный час. Успех был обусловлен контрактом с вещательной корпорацией BBC на производство компьютера BBC Micro. Машина создавалась для национального телевизионного шоу, посвященного компьютерной грамотности, и ее популярность превзошла все ожидания. Прогнозируемые объемы продаж превысили 1,2 млн экземпляров, а сам BBC Micro на долгие годы стал доминирующей силой в образовательном секторе Великобритании.
Однако на фоне этого триумфа рынок персональных компьютеров стремительно менялся. Сегмент 8-битных машин, где блистал BBC Micro, оказался перенасыщен. Из Соединенных Штатов надвигались новые, куда более мощные конкуренты — IBM PC и готовящийся к выходу Apple Macintosh. Эти устройства задавали совершенно иной стандарт производительности и возможностей…
Руководство Acorn осознавало экзистенциальную угрозу. Компании было необходимо конкурировать с американскими технологическими гигантами, но для этого не хватало главного — значительных средств на исследования и разработку. Таким образом, история ARM началась не с технологического озарения, а с классического кризиса.
Давление рынка и острая нехватка ресурсов заставили Acorn искать асимметричный ответ. Вместо того чтобы пытаться догнать конкурентов в их же игре с большими бюджетами, компания была вынуждена пойти на радикальный шаг — создать нечто принципиально новое и более эффективное. Именно эти ограничения стали не препятствием, а катализатором, заложившим философскую основу будущего процессора — делать большее с меньшими затратами.
Используйте навигацию, если не хотите читать текст целиком:
→ Рождение идеи
→ Принятие RISC
→ Разработка и триумф
→ Неожиданное преимущество — сверхнизкое энергопотребление
→ ARM’ируя новый компьютер
→ Кризис операционной системы
→ Наследие и взгляд в будущее
Рождение идеи
Софи Уилсон, одна из ключевых разработчиц BBC Micro, предвидела надвигающиеся проблемы. Проявляя незаурядную дальновидность, она встроила в материнскую плату компьютера специальный разъем расширения под названием «Tube». Этот интерфейс был спроектирован для подключения более мощного внешнего центрального процессора (ЦП). Идея заключалась в том, чтобы новый ЦП брал на себя основные вычисления, в то время как штатный чип 6502 занимался бы задачами ввода-вывода.
Вместе со своим коллегой Стивом Фербером Уилсон начала изучать доступные на рынке 16-битные процессоры. Они рассмотрели Intel 80286, National Semiconductor 32016 и Motorola 68000. Ни один из вариантов их не устроил. В более позднем интервью для Музея истории компьютеров Уилсон объясняла, что, по ее мнению, эти чипы были медленными, неэффективно использовали оперативную память и оказались на удивление сложными для программирования на языках высокого уровня для достижения желаемой производительности.

Процессоры 286, 32016 и 68000. Масштаб примерно равный. Источник: Wikipedia.
Мысль о том, чтобы Acorn создала собственный процессор с нуля, поначалу казалась пугающей. Сомнения лишь укрепились после визита на завод National Semiconductor в Израиле. Там Уилсон и Фербер увидели сотни инженеров и дорогостоящее оборудование, задействованное в производстве чипа 32016.
Переломный момент наступил во время поездки в Western Design Center в городе Меса, штат Аризона. Эта компания занималась производством процессора 6502 и разработкой его 16-битной версии 65C618. К своему удивлению, инженеры Acorn обнаружили не гигантский завод, а небольшую контору в «бунгало на окраине».

Western Design Center в 2022 году. Возможно, это то самое бунгало.
Над новым процессором трудилась горстка инженеров и студентов, используя самые базовые инструменты. Этот визит изменил их восприятие. Стало очевидно, что создание собственного ЦП — задача выполнимая, особенно для их небольшой, но очень компетентной команды, уже имевшей опыт разработки заказных микросхем для BBC Micro.
Их инициативу поддержал сооснователь Acorn Герман Хаузер, обладатель докторской степени по физике. Он не только одобрил проект, но и предоставил команде исследовательские работы IBM, посвященные новому типу процессорной архитектуры — RISC. Так, благодаря разочарованию в существующих решениях и преодолению психологического барьера, смутная идея превратилась в конкретный план действий.

Принятие RISC
Чтобы понять суть революции, предложенной Acorn, стоит кратко рассмотреть принципы работы ЦП. В их основе лежат транзисторы — микроскопические управляемые переключатели. Объединяясь, они формируют логические вентили (например, «И» и «ИЛИ»), которые позволяют компьютеру делать выбор. Все вычисления производятся в двоичной системе счисления, используя единицы и нули, называемые битами. «Битность» процессора, например 8-битный или 32-битный, определяет, какой объем данных он может обрабатывать одновременно.

Упрощенная анимация транзистора. Автор иллюстрации: Джереми Реймер.
Каждый процессор обладает набором инструкций — списком команд для перемещения данных, вычислений, сравнений и управления потоком программы. Доминировавшая в то время архитектура CISC (Complex Instruction Set Computing) стремилась сделать этот набор как можно богаче и сложнее. Идея заключалась в том, чтобы одна сложная инструкция могла выполнять многошаговую операцию. Такой подход позволял экономить дорогую в те годы оперативную память, поэтому у чипов вроде Intel 8080, 8088 и 80286 было так много команд.

Упрощенные вентили И и ИЛИ с использованием транзисторов. Автор иллюстрации: Джереми Реймер.
Центральная идея RISC (Reduced Instruction Set Computing) — прямо противоположная. Она заключается в радикальном сокращении набора команд для максимального упрощения внутренней логики процессора. Например, у чипа Intel 80286 было 357 уникальных инструкций. Новый процессор Софи Уилсон должен был иметь всего 45.

Полная схема сумматора, сделанная из вентилей И и ИЛИ. Автор иллюстрации: Джереми Реймер. Интерактивная версия Чарльза Петцольда.
Для этого Уилсон реализовала архитектуру «load and store» (загрузка и сохранение). В такой системе все арифметические и логические операции выполняются исключительно над данными, находящимися во внутренних ячейках процессора — регистрах. Обмен данными между регистрами и внешней оперативной памятью вынесен в отдельные, специализированные команды.

Сравнение набора инструкций Intel 80286 и ARM V1. Каждый вариант инструкции имеет отдельный числовой код. (Таблица составлена автором.)
Программы, написанные для RISC-процессора, требуют большего количества инструкций для выполнения той же задачи. Однако они могут исполняться значительно быстрее. Упрощенная конструкция чипа позволяет достигать более высоких тактовых частот и, что важнее, выполнять большинство команд за один такт. Это, в свою очередь, идеально подходит для конвейеризации (pipelining) — метода, при котором несколько инструкций обрабатываются одновременно на разных стадиях (выборка, декодирование, исполнение).

Сравнение ассемблера для универсальных CISC‑ и RISC‑процессоров. Второй должен загрузить значения памяти в регистры перед тем, как работать с ними.
Главным недостатком подхода был больший размер программ, требовавший больше оперативной памяти. Но команда Acorn сделала верную стратегическую ставку. Они предположили, что цены на память будут падать стремительно, и со временем этот недостаток нивелируется.

Конвейер ARM V1. Каждый этап занимает одинаковое время. Источник.
Чтобы обеспечить задел на будущее, было принято еще одно смелое решение — пропустить 16-битную стадию и сразу перейти к 32-битной архитектуре. Парадоксально, но это упрощало внутреннюю структуру чипа и реализацию прямого доступа ко всему адресному пространству памяти. Новый процессор получил название Acorn RISC Machine, или сокращенно — ARM.
Разработка и триумф
Процесс разработки занял 18 месяцев. В условиях жесткой экономии у команды не было права на ошибку, так как каждая новая произведенная партия кремниевых пластин стоила бы целое состояние. Основной упор был сделан на исчерпывающее тестирование дизайна именно до момента его отправки на фабрику.
Стив Фербер написал программный эмулятор процессора ARM на интерпретируемом языке BASIC для компьютера BBC Micro. Несмотря на то, что эмулятор работал крайне медленно, он позволил проверить и подтвердить корректность логики и набора инструкций будущего чипа. Позже команда под руководством Софи Уилсон создала более продвинутый эмулятор, способный выполнять сотни тысяч инструкций ARM в секунду. Укреплялась уверенность в правильности выбранного пути.
Наконец, дизайн был отправлен на производство в компанию VLSI Technology Inc, и 26 апреля 1985 года инженеры Acorn получили первую партию готовых кристаллов. Софи Уилсон немедленно приступила к тестированию. Она установила чип в разъем Tube на плате BBC Micro, загрузила интерпретатор BBC BASIC и ввела простую команду PRINT. Процессор ответил сообщением: «Hello World, I am ARM».

Один из самых первых чипов ARM. Источник.
Это был феноменальный триумф. Команда, состоявшая из менее чем десяти человек, создала сложнейший 32-битный RISC-процессор, который заработал безупречно с первой же попытки. Для сравнения, 32-битный чип 32016 от National Semiconductor к тому моменту прошел уже десять ревизий и все еще содержал ошибки.

Чип ARM V1 и его структурная схема.Источник.
Первая версия, ARM V1, была по современным меркам очень простой, что хорошо видно на интерактивной странице. Она содержала всего 27 000 транзисторов — против 134 000 у Intel 80286 — и производилась по техпроцессу 3 мкм. Чип работал на тактовой частоте 6 МГц. В нем отсутствовали кэш-память, аппаратные блоки для выполнения операций умножения и деления, а также модуль для вычислений с плавающей запятой, вместо которого использовалось устройство быстрого сдвига (barrel shifter).
Тем не менее, тесты производительности показали, что ARM V1 был примерно в 10 раз быстрее, чем Intel 80286 на аналогичной тактовой частоте, и сопоставим по мощности с 32-битным Motorola 68020, работающим на частоте 17 МГц. Ограничения породили более совершенный и дисциплинированный процесс разработки, который сам по себе стал конкурентным преимуществом.
Неожиданное преимущество — сверхнизкое энергопотребление
Одна из самых важных и определяющих характеристик архитектуры ARM — ее феноменальная энергоэффективность — возникла практически случайно. Изначально инженеры стремились к низкому энергопотреблению (целевой показатель — менее 1 Вт) по сугубо утилитарной причине. Они хотели использовать дешевый пластиковый корпус для компьютера вместо дорогого керамического, который требовался для чипов с высоким тепловыделением.
В середине 1980-х годов инструменты для оценки будущего энергопотребления чипа были весьма примитивными. Из-за этой неопределенности команда действовала с большим запасом, придерживаясь крайне консервативных показателей при проектировании. Инженеры перестраховались, чтобы гарантированно уложиться в заданный тепловой пакет.
Результат превзошел все ожидания. Реальное энергопотребление готового кристалла составило всего 0,1 Вт — в десять раз меньше целевого показателя. Сама Софи Уилсон позже назвала этот итог «чистой случайностью». Однако именно это непреднамеренное открытие предопределило будущее архитектуры. Спустя десятилетия, когда начнется эра мобильных устройств, именно сверхнизкое энергопотребление станет главным конкурентным преимуществом ARM и ключом к ее мировому господству.
ARM’ируя новый компьютер
К 1985 году продажи BBC Micro начали падать, теснимые дешевыми Sinclair Spectrums с одной стороны и клонами IBM PC с другой. В итоге Acorn, испытывая финансовые трудности, продала контрольный пакет акций итальянской компании Olivetti. Новый процессор ARM был настоящим инженерным чудом, но для демонстрации его мощи требовался полноценный компьютер. Acorn продавала платы для разработчиков с чипом ARM, но этого было недостаточно для выхода на массовый рынок.
В 1986 году увидела свет вторая версия процессора — ARM V2. В ней появилась поддержка сопроцессоров (например, для вычислений с плавающей запятой) и встроенные аппаратные схемы для операций умножения. Чип производился по более совершенному техпроцессу 2 мкм, что позволило поднять тактовую частоту до 8 МГц без увеличения энергопотребления. Одновременно команда разработала три вспомогательные микросхемы: графический контроллер, контроллер ввода-вывода и контроллер памяти.
К 1987 году все четыре чипа, включая ARM V2, были готовы. Вместе с ними был собран и прототип нового компьютера — Acorn Archimedes.

Одна из первых моделей Acorn Archimedes. Источник: Wikipedia.
Кризис операционной системы
В 1987 году от любого персонального компьютера уже ожидали наличия графического пользовательского интерфейса, подобного тем, что были у Amiga, Atari ST и Macintosh. Удаленная команда разработчиков Acorn в Пало-Альто (США) работала в штаб‑квартире Xerox PARK над операционной системой нового поколения под названием ARX. Проект сильно задерживался и продвигался крайне медленно.
Компания оказалась в кризисной ситуации. Руководство Acorn обратилось к Полу Феллоузу, главе программного подразделения Acornsoft, с почти невыполнимой задачей: сможет ли его команда написать и выпустить операционную систему для Archimedes всего за пять месяцев? Феллоуз согласился.
Так в авральном режиме появился «Project Arthur» — операционная система, названная, возможно, в честь известного британского ученого Артура Нормана или же просто как сокращение от «ARm by THURsday!» («ARM к четвергу!»). Она, по сути, представляла собой расширение языка BBC BASIC. Из-за нехватки времени ее даже не записывали на дискеты, а «зашивали» прямо в микросхемы постоянного запоминающего устройства (ПЗУ) первых компьютеров.

Скриншот операционной системы Arthur. Источник.
Первые модели Acorn Archimedes поступили в продажу в июне 1987 года. Они были невероятно быстрыми и конкурентоспособными по цене — около 800 фунтов стерлингов (примерно 1 300 долларов США) по сравнению с Macintosh II, который стоил 5 500 долларов США при сопоставимой мощности. Однако у Archimedes был фатальный недостаток — практически полное отсутствие программного обеспечения. В то время как для Macintosh уже существовали PageMaker, Microsoft Word и Excel, а также множество других полезных программ, для новой платформы Acorn их почти не было. Мир компьютеров стремительно двигался к доминированию IBM PC-совместимых машин и Macintosh (и, на несколько лет, Amiga), вытесняя всех остальных.
Несмотря на восторженные отзывы в британской прессе и преданную базу поклонников, за первые несколько лет было продано менее 100 000 систем Archimedes. Этот коммерческий провал, вызванный слабостью программной экосистемы, стал для компании суровым уроком. Он наглядно продемонстрировал, что даже самое передовое «железо» обречено на неудачу без поддержки со стороны ПО. Именно эта неудача подтолкнула Acorn к смене бизнес-модели, которая в будущем принесет ARM Ltd. мировой успех.
Наследие и взгляд в будущее
В Acorn быстро извлекли уроки из провала. Команда исправила ошибки в «Project Arthur» и уже в 1989 году выпустила полноценную, многозадачную операционную систему с оконным интерфейсом — RISC OS. Вслед за ней последовала и новая ревизия процессора, ARM V3. Этот чип производился по техпроцессу 1,5 мкм, что позволило разместить на кристалле 4 Кб быстрой кэш-памяти первого уровня. Тактовая частота возросла до 25 МГц.
Инженеры, включая Софи Уилсон, видели огромный потенциал для дальнейшего развития архитектуры. Однако финансовые ресурсы Acorn были на исходе. Для реализации амбициозных планов был необходим внешний инвестор.
Именно в этот момент на пороге Acorn, как гласит история, «появился представитель другой компьютерной компании, названной в честь популярного фрукта». Этим представителем была Apple. Для своего революционного проекта карманного компьютера Newton компания отчаянно нуждалась в процессоре с уникальным сочетанием высокой производительности и сверхнизкого энергопотребления — именно тем, что создала Acorn. Ключевую роль в этом сыграл вице-президент Apple Ларри Теслер, который и убедил руководство инвестировать в технологию.
Их интересы совпали идеально. Apple нашла готовую технологию, а Acorn — инвестора, который был готов не просто вложить деньги, но и стать первым крупным клиентом. В ноябре 1990 года было основано совместное предприятие Advanced RISC Machines Ltd., или ARM. Компания Apple инвестировала тогда от 1,5 до 3 млн долларов, получив 43% акций. Acorn предоставила 12 своих лучших инженеров и всю интеллектуальную собственность. Третьим партнером стала VLSI Technology, обеспечившая производственные инструменты. Первым генеральным директором новой компании стал Робин Саксби, которого нанял Ларри Теслер.
По настоянию Apple, которая не хотела видеть имя компании-конкурента в названии своего поставщика, расшифровка аббревиатуры была изменена с «Acorn RISC Machine» на «Advanced RISC Machines». Этот шаг превратил ARM из внутреннего исследовательского отдела Acorn в независимую компанию с уникальной бизнес-моделью. Так был заложен фундамент для ее будущего доминирования в мире мобильных технологий и за его пределами.
Комментарии (19)
MagisterAlexandr
05.07.2025 12:24За счёт чего у ARM низкое энергопотребление?
oneastok Автор
05.07.2025 12:24За счет простоты и вмешательства случая.
Первый ARM появился в эпоху 286‑х. Тогда у ARM было 27 тыс. транзисторов, у Intel — 134 тыс.
Инженеры ARM ориентировались на дешевый пластик для корпуса и отталкивались от задачи тепловыделения меньше ватта. Поскольку точно рассчитать выделяемое тепло в то время еще не могли, то создатели подстраховались и получили… 0,1 Вт — в 10 раз меньше. Сама Уилсон назвала это «чистой случайностью».
MagisterAlexandr
05.07.2025 12:24А у процессоров Apple? Чисто за счёт техпроцесса?
vanxant
05.07.2025 12:24Болевая точка системы команд х86 - большой и сложный декодер, который работает всегда и по сути выполняет трансляцию сложных команд в микроинструкции (микрокод был начиная с первого 8086). В RISC-архитектурах, не только ARM, но и всех остальных, микрокода нет, т.к. сами инструкции простые. В итоге декодер на порядки проще, и, соответственно, имеет на порядки меньше транзисторов, которые жрут существенно меньше энергии.
MagisterAlexandr
05.07.2025 12:24Но зато x86+декодер позволяют ставить рекорды в однопоточных задачах?
SIISII
05.07.2025 12:24Классическое микропрограммное управление никакого отношения к "трансляции сложных команд" не имеет, и декодирование у 8086 достаточно простое -- поскольку последовательное, байт за байтом, а не параллельное, да ещё для нескольких команд сразу, как в современных процессорах. На параллельное декодирование, учитывая бредовость интеловского кодирования команд, тогда банально не было ресурсов (транзисторов).
vanxant
05.07.2025 12:24Классическое микропрограммное управление никакого отношения к "трансляции сложных команд" не имеет
Классическое может и не имеет, а REP MOVSB в 8086 очень даже
oneastok Автор
05.07.2025 12:24На этот вопрос наверняка бы лучше ответили @SIISII и @vanxant, которые выше в комментариях оставили экспертные дополнения.
Насколько я себе представляю, главные причины их низкого тепловыделения:
• очень плотный тех.процесс (3 и 5 нм);
• интеграция различных компонентов в одном чипе.
Сокращаются физические расстояния, которые надо преодолевать данным.
SIISII
05.07.2025 12:24В 1980-е -- за счёт простоты процессора (грубо говоря, транзисторов меньше), что проистекало из примитивной системы команд (вдобавок, если сравнивать конкретно с Интелами, то у них система команд не особо-то эффективна -- в т.ч. из-за ужасного кодирования).
Сейчас -- из-за очень сложного декодера, о чём выше было сказано, но в сравнении есть определённое лукавство. Если будем сравнивать потребление энергии на выполнение какой-то элементарной команды (скажем, сложение), то при прочих равных у ARM оно будет сильно ниже. А вот если какое-нибудь шифрование нескольких килобайт данных... Современный AMD64/Intel 64 делает это, насколько помню, одной командой (IBMовские мэйнфреймы -- точно одно командой), на ARM же придётся шифровать программно, и кто меньше сожрёт в таких условиях -- уже большой вопрос, а если учесть ещё и потребное время на такую операцию...
Пы.Сы. А нанометры нынешние -- это маркетинг, к реальным размерам транзисторов они давно уже (где-то с рубежа 40 нм) отношения не имеют вообще.
oneastok Автор
05.07.2025 12:24Ага, спасибо! Про техпроцесс интересно, не знал. А что за нанометры тогда там теперь указывают?
SIISII
05.07.2025 12:24Вроде бы, какие размеры должен иметь транзистор с такими параметрами, как современный, если его делать по образу и подобию более ранних, где нанометры ещё обозначали реальные размеры. Но утверждать не берусь -- я не специалист по микроэлектронному производству, да ещё суперпередовому :)
SIISII
Довольно много неточностей и искажений -- явно из-за любви автора описываемому продукту. Вот несколько штук навскидку.
Некорректно, если не добавить важное уточнение: с точки зрения программиста. Разрядность внутренних блоков, путей данных и т.д. и т.п. может быть любой. Скажем, сверхпопулярный в своё время Z80 имеет 4-разрядное АЛУ, хотя для программиста это 8-разрядный процессор. ЕС-1020, ЕС-1022, ЕС-1030 и ЕС-1050 реализуют одну и ту же архитектуру (32-разрядную IBM System/360), но у первой АЛУ 8-разрядное, у второй -- 16-разрядное, у третьей вообще дикая смесь всего (скажем, сумматор комбинация из 32- и 4-разрядного), а у четвёртой -- 64-разрядное, ну и так далее.
Ничего парадоксального: либо ты сразу формируешь широкий адрес (кстати, у ранних АРМов он был, насколько помню, 26-разрядным), либо должен городить какую-то дополнительную аппаратуру для преобразования логических (виртуальных) адресов в физические. Правда, в конце концов всё равно городить пришлось, чтоб обеспечить поддержку виртуальной памяти, но это произошло намного позже (вроде, только в ARMv5).
Он не сложнейший, он простейший. Проще почти что некуда -- собственно, это и стало одной из причин, почему удалось сходу сделать правильно. Плюс, конечно, нормально тестировали в процессе разработки (а вот Интел на это традиционно забивала, из-за чего, скажем, в 8086 команда инверсии не меняет флаги -- а должна была, как это делают все остальные команды обработки данных, ну а дальше уже приходится тащить сию "багофичу" из-за совместимости).
Аппаратное умножение отсутствовало даже в некоторых вариантах ARMv4, а деление появилось вообще лишь в ARMv7-M (а у микропроцессоров -- линейки -A -- оно отсутствует до сих пор; считается, что достаточно иметь FPU, который у -A есть, кажется, всегда).
И, кстати говоря, "устройство быстрого сдвига" никак не заменяет модуль для вычислений с плавающей запятой -- он лишь позволяет быстро производить многоразрядный сдвиг. Скажем, если команда требует сдвинуть значение на 5 разрядов, не надо пять раз выполнять однобитный сдвиг -- сразу будет выполнен требуемый. Вместе с некоторыми алгоритмическими трюками это позволяет ускорить подпрограммы, реализующие команды вещественной арифметики, но конкурировать с настоящим FPU всё равно не позволяет -- недаром его (FPU) в конце концов завезли даже в микроконтроллеры.
oneastok Автор
Искренне благодарю за такой экспертный и подробнейший фидбек!
vanxant
это не баг, а именно фича. Технически NEG это "инвертировать все биты и добавить 1". А поскольку инверсные значения битов уже есть (у триггеров в регистрах есть и прямой, и инверсный выход), то NEG сводится к инструкции INC, применённой к инверсному выходу регистра аргумента.
Так вот, INC и DEC специально, by design, не устанавливают флаги (так что насчёт "все остальные команды" вы несколько погорячились). Во-первых, они используются в циклах, где их флаги мешали бы условию повторения цикла. А так вы можете вычислить любое сложное условие с данными по указателю и только потом увеличить указатель - флаги сохранятся.
Во-вторых, они неявно используются в микрокоде строковых инструкций (с префиксом REP). И здесь флаги от INC и DEC опять же мешали бы реализовать вещи типа REP CMPS, которая, например, реализует в одну инструкцию сишный strlen.
В-третьих, сама идея, что NEG именно обязан менять флаги, достаточно сомнительна. Вы всегда можете использовать обратные флаги до NEG.
не заменяет, но значительно ускоряет программную эмуляцию. Прям в разы. Скажем, сложение и вычитание это именно сдвиги — перед, собственно, целочисленным сложением мантисс их нужно выровнять друг относительно друга (чтобы совпадала "точка").
И что самое смешное, barrel shifter позволяет реализовать целочисленное деление быстрее, чем его выполняли аппаратные делители 80-ых годов. В частности, борландовские компиляторы для х86 вместо инструкций деления использовали деление сдвигами.
oneastok Автор
Благодарю за такое обстоятельное дополнение!
SIISII
NEG -- это изменение знака, а не инверсия, а инверсия -- это NOT:
Так что это не фича, а именно что баг (собственно, Интел где-то это признала, насколько помню).
В разы ускоряется только операция выравнивания порядков перед сложением/вычитанием -- и то лишь если нужен очень длинный сдвиг, т. е. когда порядки отличаются очень значительно. Для умножения с делением выравнивание не требуется. А вот нормализация, которая может потребоваться после всех операций, требует предварительного определения положения крайнего левого единичного разряда -- а такой команды на тот момент не было, и его поиск сожрёт довольно много времени (ну или просто тупо сдвигать по одному биту, что при малом потребном числе сдвигов окажется даже быстрей). Ну и, естественно, само умножение-деление мантисс будет медленным, поскольку его придётся выполнять программно за отсутствием команд целочисленного умножения и деления.
В итоге, хотя операции и ускоряются по сравнению с процессорами, не способными сдвигать на много разрядов на один такт, но не так уж и сильно -- и в любом случае это намного медленнее, чем железный FPU.
Неверное понимание. Деление (как и умножение) за счёт сдвигов выполняется быстрее лишь в одном случае -- если делить надо на степень двойки -- но тогда и без быстрого сдвигателя сдвиг окажется быстрей, если степень не очень большая. Если делить надо на константу, не являющуюся степенью двойки, то иногда можно ускорить операцию, заменив деление на умножение, сложение-вычитание и сдвиги -- современные компиляторы это делать умеют. А вот если делить надо на произвольную величину -- тогда всё, только полноценное деление, и быстрый сдвигатель в этом случае никак не поможет.
vanxant
Прежде чем писать простыни, почитайте, пожалуйста, с чем вы спорите. NOT это NOT (инверсия битов), а NEG (инверсия знака) вычисляется как 1 + NOT
Ну и по остальным пунктам вы спорите непонятно с кем и с чем