Thumb-ориентированное ядро ARM7TDMI и его развитие
Thumb-ориентированное ядро
ARM7TDMI и его развитие
Впервые
технология Thumb была встроена в ядро ARM7 еще в 1995 году. Адаптированное под
технологию Thumb (Thumb-ориентированное) ядро получило типовое обозначение
ARM7TDMI и за достаточно короткое время было лицензировано большим количеством
фирм-изготовителей всевозможного оборудования, поскольку технология Thumb, явилась
откликом фирмы ARM на стремление разработчиков критичных к стоимости применений,
типа сотовых телефонов, дисководов CD, модемов и пейджеров, получить приборы с
32-разрядной производительностью и 32-разрядным адресным пространством, но без
увеличения стоимости, связываемого с переходом к 32-разрядным системам.
Превосходная плотность кода, достигаемая использованием технологии Thumb, позволяет
уменьшить требуемый объем памяти - обеспечивает 32-разрядную производительность
системы при использовании памяти 16-разрядного формата, что ведет к снижению
стоимости системы.
Необходимо
отметить, что ядро ARM7TDMI используется при создании не только
специализированных ИС, но и при создании микроконтроллеров общего назначения.
Так фирма Atmel в сентябре 1998 года начала поставки микроконтроллеров
семейства AT91, в основу которых положено ядро ARM7TDMI. Информацию по приборам
серии AT91 можно получить на сайте #"464845.files/image001.gif">
Рис.
1. Блок-схема процессора ядра ARM7TDMI
Этот
набор сигналов позволяет ARM7TDMI достаточно просто организовывать интерфейс с
DRAM, SRAM и ROM. Для полного использования страничного режима доступа к DRAM, обеспечивается
информация о том, является доступ к памяти последовательным или нет. Вообще
говоря, интерфейс со статической памятью намного проще чем интерфейс с
динамической памятью.
Поскольку
ядро ARM7TDMI в основе своей имеет ядро ARM7, то ограничимся кратким
напоминанием о его архитектуре и больше внимания уделим особенностям, внесенным
технологией Thumb.
Процессор
ARM7TDMI - 32-разрядный RISC процессор с 3-уровневым конвейером, сформированный
вокруг банка из 37 32-разрядных регистров, в который входят 6 регистров
состояния. Процессор оснащен встроенным умножителем 32x8 и 32-разрядным
многорегистровым циклическим устройством сдвига. Пять независимых встроенных
шин (PC шина, шина инкремента, шина ALU и A- и B-шины) обеспечивают, при
выполнении команд высокую степень параллелизма.
Как
видно из сравнения блок-схем процессоров ARM7 и ARM7TDMI (См. Рис. 1) в блоке
конвейера процессора добавился декомпрессор команд Thumb.
Однако
разработчики фирмы ARM этим не ограничились и, имея в виду встраивание ядра в
приборы с большим уровнем интеграции, расширили ядро ARM7TDMI (см. Рис. 2)
дополнительными аппаратными блоками, обеспечивающими возможность отладки
глубоко встроенного ядра.
Рис.
2. Блок-схема ядра ARM7TDMI
Как
видно из Рис. 2, ядро ARM7TDMI состоит из ядра собственно процессора, показанного
на Рис.1, и расширений отладки: контроллера сканирования TAP (boundary scan) и
внутрисхемного эмулятора (ICEBreaker).
Аппаратные
расширения отладки ARM7TDMI, обеспечивают развернутые возможности отладки, облегчающие
разработку пользовательского прикладного программного обеспечения, операционных
систем, и самих аппаратных средств. Аппаратные расширения отладки позволяют
останавливать ядро или при выборке заданной команды (в контрольной точке) или
при обращении к данным (в точке просмотра), или асинхронно - по запросу
отладки.
В
этих точках, через JTAG последовательный интерфейс, может быть исследовано
внутреннее состояние ядра ARM7TDMI, находящегося в состоянии отладки, и внешние
состояния системы. По завершении исследования состояния ядра и системы могут
быть восстановлены и продолжено выполнение программы.
Режим
отладки ARM7TDMI устанавливается или запросом по одному из сигналов внешнего
интерфейса отладки, или внутренним функциональным блоком ICEBreaker, состоящим
из двух модулей контрольных точек (watchpoint), работающих в реальном масштабе
времени с регистрами состояния и управления ядра, и обеспечивающим поддержку
встроенной отладки ядра ARM7TDMI. ICEBreaker программируется в последовательном
режиме с использованием контроллера TAP - средства управления работой цепочек
сканирования (Scan Chain 0, 1 и 2) через последовательный интерфейс JTAG.
Интерфейс
отладки ARM7TDMI основан на архитектуре, описанной в стандарте IEEE Std.
1149.1-1990 "Standard Test Access Port (TAP) and Boundary-Scan
Architecture".
Как
уже отмечалось выше высокопроизводительное 32-разрядное статическое RISC ядро
ARM7TDMI занимает на кристалле очень малую площадь, малое потребление энергии
ядром позволяет использовать его в критичных к потреблению применениях, технология
Thumb позволяет использовать память 16-разрядного формата меньшей емкости и, соответственно,
меньшей стоимости. Не удивительно, что только в течение года, по окончании
разработки ядра ARM7TDMI, ядро было лицензировано такими фирмами, как NEC, TI, Symbios
Logic, Oki, Atmel, Samsung и VLSI. В дальнейшем лицензии на использование ядра
ARM7TDMI получили такие гранды полупроводниковой и электронной отраслей как IBM,
HP, Epson, Matsushita и многие другие.
Идя
навстречу запросам фирм-разработчиков ASIC и ASSP, разработчиков электронной
аппаратуры фирма ARM расширила номенклатуру функциональных макроядер на основе
ядра ARM7TDMI (будем называть макроядром некоторое ядро, в данном случае
ARM7TDMI, со схемотехнически интегрированными вместе ним дополнительными, расширяющими
его возможности функциональными модулями) и в настоящее время в семейство ARM7
Thumb входят: ядро ARM7TDMI, макроядра ARM710T, ARM720T и ARM740T, и
синтезируемое (с изменяемой конфигурацией) ядро ARM7TDMI-S.
Основные
характеристики четырех первых процессоров приведены в таблице.
Ядро CPU
|
Потребление (mW/MHz)
|
Тактовая частота
|
Производительность
|
Ядро CPU
|
Кэш
|
Управление памятью
|
ARM7TDMI
ARM RISC
ядро с Thumb и
EmbeddedICE
|
1, 0 мм2 при 0, 25мкм
2, 1 мм2 при 0, 35 мкм
4, 8 мм2 при 0, 6 мкм
|
Пиковое: 1, 2
Среднее: 0, 6
Idle: < 100 мкВт, при 3, 3 В, CMOS 0, 35 мкм
|
66 МГц при нормах 0, 35 µ м, CMOS
|
0, 9 MIPS/MHz 59 MIPS при 66 МГц
|
N/A
|
N/A
|
N/A
Кэшированное процессорное макроядро
|
5, 8 мм2 при 0, 25 мкм
11, 7 мм2 при 0, 35 мкм
|
Пиковое: 3, 6
Среднее: 1, 8
Idle: < 100 мкВт при включенном кэш, 3, 3 В, 0, 35мкм
CMOS
|
59 МГц при нормах 0, 35мкм CMOS
|
53 MIPS при 59МГц
|
ARM7TDMI
|
8 Кбайт единый кэш
|
MMU с полной поддержкой виртуальной памяти
|
ARM740T
Кэшированное процессорное макроядро
|
4, 9 мм2 при 0, 25 мкм
9, 8 мм2 при 0, 35 мкм
|
Пиковое: 3, 5
Среднее: 1, 6
Idle: <100 мкВт при включенном кэш, 3, 3 В, 0, 35мкм
CMOS
|
59 МГц при нормах 0, 35мкм CMOS
|
53 MIPS при 59МГц
|
8 Кбайт единый кэш
|
Простая Конфигурация Памяти и Защиты
|
ARM720T
Кэшированное процессорное макроядро с MMU для WindowsCE
|
5, 8 мм2 при 0, 25мкм
11, 7 мм2 при 0, 35 мкм
|
Пиковое: 3, 6
Среднее: 1, 8
Idle: < 100 мкВт при включенном кэш, 3, 3 В, 0, 35мкм
CMOS
|
59 МГц при нормах 0, 35мкм
|
53 MIPS при 59МГц
|
ARM7TDMI
|
8 Кбайт единый кэш
|
MMU с полной поддержкой виртуальной памяти и быстрого
контекстного переключения
|
Необходимо
отметить, что указанные в таблице характеристики (тактовая частота, производительность,
потребление, площадь, занимаемая на кристалле) представлены приведенными к CMOS
технологии с топологическими нормами 0, 35 мкм. Масштабирование топологии к
меньшим топологическим нормам приведет к росту и тактовой частоты и
производительности при соответствующем уменьшении занимаемой на кристалле
площади напряжения питания и потребления. Так фирма TI, использующая в ряде
своих разработок ядро ARM7TDMI, при CMOS технологии GS20 с топологическими
нормами 0, 18 мкм получила тактовую частоту свыше 80 МГц, и готова использовать
его в CMOS технологии GS30 с топологическими нормами 0, 15 мкм.
При
разработке этих макроядер фирма ARM ориентировалась на конкретные области
применения, где особенности каждого макроядра позволят реализовать
дополнительные возможности без существенного прироста стоимости. Добавление к
макроядрам встроенного кэш позволяет минимизировать время доступа к внешней
памяти и, сохраняя максимальную производительность, позволяет использовать
недорогие RAM. Становится возможным использование системной шины и внешней
памяти с быстродействием более низким, чем быстродействие процессора и, следовательно,
уменьшить потребление. Широкая полоса частот системной шины может быть также
использована и для увеличения полной производительности системы - высвобожденную
полосу частот могут использовать другие периферийные устройства, обеспечивая
высокую пропускную способность данных в устройствах типа MPEG декодеров
цифровых TV приставок.
Макроядро
ARM710T, ориентированное на персональные информационные устройства (PDA) и
Internet применения, оснащено встроенным полнофункциональным MMU, обеспечивающим
использование таких операционных систем как pSOS и EPOC32. Возможность
использования виртуальной памяти, обеспеченная MMU, позволяет безопасно
использовать коды выгруженные из сети типа Internet или от независимого
разработчика. Такая возможность позволяет считать ядро процессора ARM710T
идеальным для применения в PDA, интеллектуальных телефонах или Internet
телевидении.
Макроядро
ARM720T, ориентированное на операционную систему WindowsCE, располагает всеми
функциональными возможностями ядра ARM710T плюс специальная поддержка
операционной системы WindowsCE. Невысокая цена, высокая производительность и
малое потребление процессора ARM720T делают его идеальным решением для
перспективных приложений, использующих WindowsCE в PDA, карманных PC, TV и
Internet приставках, интеллектуальных телефонах и автомобильных PC.
Макроядро
ARM740T, ориентированное на высокопроизводительные встраиваемые применения, в
отличие от других макроядер, оснащено кэш который может быть емкостью или 4 или
8 Кбайт и, кроме того, модулем защиты буфера записи и памяти (не
полнофункциональным MMU). Макроядро ARM740T ориентировано на использование в
мультимедиа и встраиваемых применениях типа цифровых TV приставок, Internet
аппаратуры и сетевых устройств, в модемах и системах, для которых
разрабатывается специальное ПО, не требующее управления виртуальной памятью, обеспечиваемой
MMU.
Выигрыш,
который может получить разработчик - более низкая стоимость устройств, малое
потребление, за счет малого размера кристалла и снижения сложности схемы.
Стоимость разработки ПО также снижается за счет более простой структуры
управления памятью.
Рис.
3. Блок-схема макроядра ARM710T
Рисунок
из файла DDI-0086B.pdf (стр. 1-3). Адрес страницы - #"#">http://www.gaw.ru/