Курсовая работа: Карманные ПК: введение в тему
В 1991 г. был создан ARM6 (вариантов ARM4 и ARM5 не было по маркетинговым соображениям). ARM 610 стал основой знаменитого Apple Newton MessagePad (до того Apple подумывала также о ЦП AT&T Hobbit). Этот ЦП обеспечивал достаточное быстродействие и был немного сложнее предшественников (35 тыс. транзисторов против 30 тыс. в ARM3), что позволяло удешевить производство на полупроводниковых заводах того времени.
В то же время появилась принятая и сегодня схема обозначений: ARM6 — собственно ядро, ARM60 — целостный ЦП, ARM610 — более развитые модификации ЦП с кэш-памятью, остальные цифры в номере означают наличие той или иной периферии, буквы — те или иные расширения системы команд.
Сегодня ARM предлагает широкую номенклатуру микропроцессорных ядер, архитектурных расширений, инструментальных средств и т. п. Если подходить к вопросу строго, то нужно заметить, что «процессора ARM» как такового не существует. ARM — это название архитектуры. Компания-разработчик продает ядро ЦП, оформленное либо в виде программы на языке Verilog (синтезируемые ядра), либо принципиальной схемы, либо в виде топологической макроячейки. Кроме ЦП предлагается целый ряд других решений, в частности библиотека макроячеек, реализующих стандартную периферию (PowerCell), а также разнообразные дополнительные технологии.
Модельный ряд ядер ARM развивался весьма интенсивно. В номенклатуре ядер ARM место младшего занимает семейство ARM7 Thumb, оно обеспечивает производительность около 130 MIPS, очень компактно (при проектных нормах 180 нм модификация ARM7TDMI занимает всего 0,59 мм2), удельное энергопотребление 0,25 мВт/МГц. Существуют также синтезируемые ядра ARM7TDMI-S и ARM7EJ-S, отличающиеся наличием в системе команд DSP-инструкций и средств акселерации работы виртуальной машины Java (Jazelle). ARM720T оснащается полнофункциональным модулем управления памятью (MMU, размер страницы 4-64 Кбайт), а ARM740T — упрощенным (MPU, без режима трансляции адресов). Оба ЦП имеют кэш-память (8 Кбайт).
В феврале 1996 г. DEC в сотрудничестве с ARM разработала первый ЦП серии StrongARM (SA-110) с пятиступенчатым конвейером, пятипортовым файлом регистров, блоком умножения и т. д., его энергопотребление примерно 1 Вт при тактовой частоте до 233 МГц.
ARM8 — в известной мере переходная модель, разработанная «по следам» совместного с DEC проекта StrongARM, довольно быстро сменившаяся ARM9 (с гарвардской шиной, буфером записи, гибкой схемой защиты памяти). Серия ARM9 Thumb создавалась для портативных устройств со значительными требованиями к быстродействию, производительность ядра достигает 220 MIPS, удельное потребление 0,3 мВт/МГц. В серии имеется несколько модификаций (в том числе ARM920T, ARM922T и ARM940T) с раздельными кэшами команд и данных (16/16, 8/8 и 4/4 Кбайт соответственно). Модификации ARM920T и ARM922T оснащаются MMU. В этой же серии существует семейство ядер ARM9E-S Thumb с DSP-расширениями системы команд и дополнительными средствами, повышающими быстродействие при обработке медиа-кода (в частности, умножитель-накопитель, в ЦП может быть предусмотрен математический сопроцессор VFP9-S, обеспечивающий выполнение операции с плавающей точкой над данными двойной точности). Емкость кэша от 1 Мбайт в ARM946E-S до 4-128 Кбайт в ARM926EJ-S.
Серия ARM10 Thumb ориентирована на 110-нм технологический процесс. Быстродействие ЦП этой серии достигает 700 MIPS при сохранении удельного потребления ARM9. В ядре используются 64-разрядные шины адреса и данных, имеются модули управления памятью команд и данных, в ядро может быть включен математический сопроцессор и т. д.
ARM 11 привнес рост производительности (до 1200 Dhrystone MIPS), еще более мощные средства кодирования и декодирования с акцентом на операции, свойственные MPEG-4, возможность роста тактовых частот за пределы 1 ГГц, улучшенные возможности организации многоядерных конфигураций и т. д.
Кроме процессорных ядер, существует несколько версий самой архитектуры ARM. Об этом следует помнить, поскольку нумерация ядер и архитектур не совпадает (например, в наиболее мощном на сегодня ядре ARM11 реализована система команд ARMv6).
Самая старая из существующих сейчас архитектур — ARMv4, она используется, например, в популярных ЦП StrongARM. ARN\v1 предполагает работу с 32-разрядными операндами в 32-разрядном адресном пространстве. ARMv4T — то же, но с добавлением набора инструкций Thumb (команды Thumb транслируются в их 32-разрядные аналоги). ARMv5 реализована в процессорах Intel XScale. Версия ARMv5TE стала первой, где реализованы DSP-расширения ARM, ARMv5TEJ — то же, но с добавлением команд акселерации Java (Jazelle). ARMv6 была серьезно доработана: появились средства работы с потоковыми данными (SIMD), Thumb-2 TrustZone. Архитектура ARMv7 ввела понятие «процессорных профилей»: «профиль А» определял требования к ЦП для полномасштабных ОС со сложной логикой работы с виртуальной памятью и прикладным ПО, «R» — для систем реального времени, «М» — для микроконтроллеров.
ARM inside
ARM — 32-разрядная, классическая load/store (в качестве операндов могут использоваться только загруженные в регистры процессора значения) RISC-архитектура. Она исключительно эффективна, обеспечивает высокое быстродействие и минимальные требования к питанию и при этом проста с точки зрения технологического процесса изготовления СБИС. В ранних моделях использовалась классическая архитектура фон Неймана (с общей памятью для данных и машинного кода), в современных моделях используется гарвардская архитектура (с раздельной памятью для кода и данных, как минимум на уровне кэша).
ЦП совместимы сверху-вниз, система команд довольно оригинальна, в частности все команды имеют одинаковую длину, выровнены по границе 32-разрядного слова, выполняются за один такт (за некоторыми исключениями). В классических ARM конвейер был короткий, всего три ступени, в современных вариантах доходит до восьми, а также реализуются средства суперконвейерной обработки. Кроме того, все команды условные для минимизации потерь при ветвлении (нередко для фрагментов кода выгоднее пропустить несколько команд, чем заниматься предсказанием ветвлений). Впрочем, в ряде модифицированных архитектур используются и блоки предсказания ветвлений (прежде всего это, конечно, Intel XScale). Имеются команды групповой пересылки, организации взаимодействия с сопроцессором и т. д. Менеджер памяти (MMU) в классической реализации также выполнен в виде отдельного модуля.
В ядре ARM имеется 16 видимых в пользовательском режиме 32-разрядных регистров (R0...R15, всего 31 регистр), счетчик команд (R15), регистр «связи» (R14), указатель стека программ (R13). Процессор может находиться в пяти режимах: привилегированном, пользовательском, прерывания, быстрого прерывания и исключения. При вызове обработчика быстрого прерывания стандартные регистры R8-R14 переименовываются (затеняются), при переходе из нользовательско-го режима в любой из системных переименовываются регистры R13 и R14. Предусматриваются механизмы быстрой обработки прерываний с оригинальной схемой «затенения» регистров (благодаря этому удается избежать такой «тяжелой» операции, как сохранение их содержимого в обработчике прерывания).
В процессорах ARM имеется ряд расширений системы команд, они присутствуют в соответствующим образом помеченных ядрах. Отметим, в частности, наличие специального 16-разрядного подмножества команд Thumb. Оно было разработано в связи с необходимостью повышения компактности кода. Как известно, программный код RISC-ЦП в среднем значительно объемнее, чем для CISC. Хотя ARM и здесь смотрится весьма достойно, тем не менее оставалась возможность оптимизировать этот параметр. Для этого было выбрано некое подмножество команд ЦП, которые были приведены к 16-разрядному виду путем удаления «избыточных» полей в операндах, адресации меньшего количества регистров и т. д. При таком подходе код становится компактнее на 25-35% (в зависимости от особенностей конкретного алгоритма), что важно при организации хранения программных модулей в условиях дефицита памяти. Процессор способен исполнять его с небольшими потерями в скорости, на лету транслируя команды в их 32-разрядные аналоги. Также имеются специальные средства для ускорения работы виртуальной машины Java (Jazelle), безопасности (Trust-Zone), SIMD.
Впрочем, обсуждение архитектуры ARM — это отдельная, весьма интересная тема, за более подробной информацией стоит обратиться к документации на ЦП (в частности, на Web-узле разработчика, www.arm.com).
На сегодня ARM стал стандартом де-факто в мире процессоров для сверхкомпактных устройств. Все три популярные сегодня платформы для КПК, смартфонов и коммуникаторов — Intel PCA (XScale), TI ОМАР/ 0МАР2 и Samsung S3C — основаны именно на ней. Рассмотрим их подробнее.
Intel PCA
По меткому выражению одного из корифеев компьютерной индустрии, «архитектура х86 есть торжество маркетинга над здравым смыслом». Эти ЦП тянут на себе ужасающий груз совместимости, а в жизни инженеров Intel (правда, в основном у технологов) в буквальном смысле есть место подвигу, когда приходится выпускать новые ЦП, сохраняя совместимость с разработками, созданными более двух десятилетий назад. Но в сегменте настольных и мобильных ПК, реализованных на традиционных технологиях, выхода нет — требования совместимости для ноутбуков звучат столь же значимо, как и для настольных ПК. Тем не менее в сегменте карманных компьютеров ситуация несколько иная.
Компания Intel — один из главных участников рынка в секторе ЦП для карманных ПК. Но именно «один из», здесь у нее есть сильные соперники, с которыми приходится бороться не только маркетинговыми, но и технологическими приемами.
В данный момент у Intel имеется три серии микросхем для карманных ПК (одна — для мобильных телефонов) и ряд дополнительных системных решений. История мобильных разработок Intel XScale, в общем, началась с покупки процессорного бизнеса компании Digital Equipment, создавшей микропроцессор StrongARM. Он несколько отличался от существовавших тогда реализаций. Главная задача, которую ставили перед собой разработчики этого ЦП, — создание быстродействующего ЦП с минимальными требованиями к питанию. Позднее, после покупки Intel микропроцессорного подразделения DEC, этот процессор выпускала компания Intel. Она довольно долго не обращала внимания на эту процессорную серию (во многом покупка была обусловлена возможностью разрешить ряд патентных коллизий, а вовсе не интересом к наработкам соперника; тем более что Intel на тот момент акцентировала внимание на RISC-ЦП других серий, таких, как i860 и i960).
Тем не менее Intel наладила производство StrongARM SA-1110 и разработала несколько его модификаций. ЦП (строго говоря, это была высокоинтегрирован-ная СБИС) StrongARM был основан на архитектуре ARMv4, имел трехступенчатый конвейер, 32-разрядную адресацию, аппаратную поддержку виртуальной памяти (двухуровневая таблица страниц), 32-Кбайт кэши команд и данных, 32-Кбайт буфер и был несовместим с режимом Thumb. StrongARM мог функционировать при частота^ 133, а позднее 206 МГц (до того нормой считалось 33—66 МГц).
Intel выпустила также микросхему сопровождения SA-1111, содержавшую контроллер USB, управления питанием, некоторую периферию. Эта микросхема также может быть использована с процессорами серии РХА25х.
Именно на StrongARM был построен первый КПК с Windows СЕ, использующий ЦП с архитектурой ARM — Compaq iPAQ. StrongARM SA-1110 потреблял 0,25 Вт при высокой (большей, чем у ЦП SH3 и MIPS, также применявшихся в КПК с Windows СЕ) производительности. Спустя некоторое время, в немалой степени благодаря успеху и популярности iPAQ, архитектура ARM стала стандартом де-факто в мире КПК, и с анонсом платформы Windows Powered Pocket PC 2000 Microsoft только закрепила это положение и де-юре. Обретя гарантированный рынок сбыта, Intel занялась совершенствованием серии, переименовав ее в XScale (в частности, был добавлен набор инструкций Thumb, улучшены средства управления питанием, расширена система команд и т.д.).
Сегодня комплекс технологий для рынка интеллектуальных мобильных устройств компания именует Intel Personal Internet Client Architecture (PCA). Строго говоря, использовать термин «платформа» в смысле полного, но достаточно жесткого и ограниченного определенными рамками архитектурного решения, в случае с Intel PCA было бы не совсем правомерно. Это скорее воплощение некоего стратегического видении Intel в отношении создания мобильных устройств. РСА специфицирует базовые компоненты, необходимые для решения этой задачи, в то же время оставляя возможность для маневра изготовителям. Не в последнюю очередь она нацелена на создание простой методологии создания мобильного ПО с высокой степенью переносимости или с минимальными требованиями к адаптации.
В рамках РСА существует несколько направлений: ЦП для мобильных и встраиваемых применений, архитектура для DSP-решений, флэш-память. В ряде случаев туда же относится такое направление, как разработка высокоинтегрированных СБИС для сверхминиатюрных устройств (в данном контексте прежде всего мобильных телефонов) и специализированных микросхем, подобных мобильным видеоакселераторам.
ЦП и другие аппаратные компоненты в терминологии Intel относятся к «прикл?