Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по типам > Микроконтроллеры > ARM > ARM7TDMI |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Интерфейс памятиВ данном разделе описывается интерфейс памяти процессора ARM7TDMI в следующей последовательности:
1. Краткое описание интерфейса памяти Процессор ARM7TDMI использует фон-неймановскую архитектуру с одной 32-разрядной шиной данных, по которой передаются, как инструкции, так и данные. Доступ к памяти могут осуществлять только инструкции чтения, записи и обмена. 2. Сигналы шинного интерфейса Сигналы шинного интерфейса процессора ARM7TDMI можно сгруппировать в четыре категории:
К сигналам синхронизации и управления синхронизации относятся:
Сигналы адресного класса:
Сигналы запроса памяти:
Сигналы, синхронизированные с данными:
Процессор ARM7TDMI использует, как нарастающие, так и спадающие фронты MCLK. Шинные циклы можно продлить с помощью сигнала nWAIT. Данный сигнал описывается в параграфе "Продление времен доступа". Во всех остальных параграфах данного раздела описывается простая система, когда nWAIT имеет постоянный высокий уровень. 3. Типы шинного цикла Шинный интерфейс процессора ARM7TDMI является конвейеризованным. За счет этого предоставляется максимум времени для дешифрации адреса в цикле памяти и формирования отклика на запрос доступа:
Один цикл памяти показан на рисунке 3.1.
Шинный интерфейс процессора ARM7TDMI поддерживает 4 различных типа шинных циклов:
Типы шинных циклов кодируются сигналами nMREQ и SEQ, которые представлены в таблице 3.1. Таблица 3.1. Типы шинных циклов
Контроллер памяти процессора ARM7TDMI должен совершать доступ к памяти только с помощью циклов N или S. 3.1 Непоследовательные циклы Непоследовательный цикл - самая простая форма шинного цикла, которая возникает, когда процессор запрашивает передачу в одном из направлений по адресу, который не связан с адресом, использовавшимся в предыдущем цикле. Контроллер памяти должен инициировать доступ к памяти для удовлетворения данного запроса. Адресный класс и сигналы (nMREQ и SEQ), которые составляют N-цикл, передаются по шине. По завершении следующего шинного цикла данные передаются между ЦПУ и памятью. Данное не распространяется на системы памяти, которые требуют более длительные времена доступа (расширение цикла синхронизации) применительно к непоследовательным доступам. Этим обеспечивается достаточное время для полной дешифрации адреса или для фиксации строк и столбцов адреса в DRAM. Данный процесс иллюстрируется на рисунке 3.2. Прим.: на рисунке 3.2 выделены сигналы nMREQ и SEQ в месте, где они указывают на действительность N-цикла.
Процессор ARM7TDMI может выполнять смежные непоследовательные циклы доступа. Это происходит, например, когда выполняется инструкция STR. Если вы разрабатываете контроллер памяти для ядра ARM7TDMI и ваша система памяти не может учесть данную ситуацию, то необходимо использовать сигнал nWAIT для расширения шинного цикла и тем самым получения корректных циклов для системы памяти. См. "Продление времен доступа". 3.2 Последовательные циклы Последовательные циклы используются для выполнения пакетной передачи по шине. Данная информация может использоваться для оптимизации разработки вашего контроллера памяти, который подключается к памяти с поддержкой пакетного режима передачи, например, DRAM. В ходе последовательного цикла процессор ARM7TDMI запрашивает положение в памяти, которое является частью последовательного пакета. В первом цикле пакета может использоваться тот же адрес, что и в предыдущем внутреннем цикле. Во всех остальных случаях каждый последующий цикл выполняется инкрементирование адреса:
Пакетная передача байт невозможна. Пакет всегда начинается с N-цикла или объединенного IS-цикла (см. "Непоследовательные циклы"), а затем продолжается S-циклами. Пакет составляет передача одного и того же типа. Сигналы A[31:0] инкрементируются в процессе передачи пакета. Прочие сигналы адресного класса не затрагиваются при передаче пакета. Возможные типы пакетов представлены в таблице 3.2. Таблица 3.2. Типы пакетов
Все доступы внутри пакета должны иметь одинаковую разрядность данных, направление передачи и тип защиты. См. более детально в "Сигналы адресации". Системы памяти, зачастую, могут более быстро реагировать на последовательный доступ и требуют более короткие времена доступа по сравнению с непоследовательным доступом. Пример пакетного доступа показан на рисунке 3.3.
3.3 Внутренние циклы В течение внутреннего цикла процессор ARM7TDMI не требует доступа к памяти, т.к. выполняется внутренняя функция и нет смысла в это же время выполнять предварительную выборку. Для того, чтобы была возможность начать дешифрацию процессор ARM7TDMI передает адрес для следующего доступа, но контроллер памяти не должен совершать доступ к памяти. Это демонстрируется на рисунке 3.4, а дальнейшее описание может быть найдено в параграфе "Непоследовательный цикл памяти".
3.4 Объединенные IS-циклы Процессор ARM7TDMI там, где возможно, выполняет оптимизацию на шине, чтобы предоставить достаточное время для дешифрации памяти. Когда это происходит, адрес следующего цикла памяти передается по этой шине в течение внутреннего цикла. Это позволяет контроллеру памяти дешифрировать адрес, но он не должен инициировать доступ к памяти в течение этого цикла. В объединенном IS-цикле следующим циклом является последовательный цикл, использующий то же положение в памяти. В нем совершается доступ и контроллер памяти должен инициировать доступ к памяти. Данный процесс показан на рисунке 3.5.
Прим.: При разработке контроллера памяти необходимо также гарантировать возможность работы I-цикла, следующего за N-циклом, с другим адресом. Данная последовательность может возникнуть при возникновении исключительных ситуаций или в процессе записи счетчика программы (PC). Важно, чтобы контроллер памяти не выполнял цикл памяти в течение I-цикла. 3.5 Циклы передачи регистра сопроцессора В течение цикла передачи регистра сопроцессора, процессор ARM7TDMI использует шины данных для передачи данных в сопроцессор и обратно. Цикл памяти в данном случае не требуется и контроллер памяти не инициирует транзакцию. Система памяти не должна управлять шиной данных в процессе цикла передачи регистра сопроцессора. Интерфейс сопроцессора описывается в разделе 4 "Интерфейс сопроцессора". Цикл передачи регистра сопроцессора показан на рисунке 3.6.
3.6 Итоговая информация по временной диаграмме цикла памяти ARM Итоговая временная диаграмма цикла памяти процессора ARM7TDMI показана на рисунке 3.7..
4. Адресные сигналы К сигналам адресного класса относятся:
4.1 Сигналы A[31:0] A[31:0] - 32-разрядная шина адреса, которая определяет адрес для передачи. Все адреса являются байтными адресами, следовательно, каждый цикл доступа при передаче пакета слов шина адреса инкрементируется на 4. Шина адреса охватывает 4 Гбайта линейного адресного пространства. Когда сигнализируется доступ со словным форматом данных, необходимо игнорировать нижние два бита адреса A[1:0], а при доступе с полусловным форматом данных необходимо игнорировать младший бит адреса A[0]. Все значения данных должны быть выровнены к их естественным границам. Все слова должны быть со словным выравниванием. 4.2 nRW nRW определяет направление передачи. Если nRW имеет высокий уровень, то этим процессор ARM7TDMI сигнализирует цикл записи, если низкий - цикл чтения. Пакет S-циклов всегда является или пакетным чтением или пакетной записью. Направление не может изменяться внутри пакета. 4.3 Сигналы MAS[1:0] Шина MAS[1:0] кодирует размер передачи. Процессор ARM7TDMI может передавать слова, полуслова и байты. Вся записываемая память в системе на основе процессора ARM7TDMI должна поддерживать запись индивидуальных байт или полуслов, чтобы была возможность использовать C-компилятор и отладочные средства для процессоров ARM, например, Multi-ICE. Адрес, сгенерированный процессором, всегда является адресом байта. Однако, система памяти должна игнорировать нижние избыточные биты адреса. Значащие адресные биты представлены в таблице 3.3. Таблица 3.3. Значащие адресные биты
Размер передачи не изменяется в течение пакетных S-циклов. Процессор ARM7TDMI не может генерировать пакеты байтных передач. Прим.: В ходе доступа к инструкциям избыточные адресные биты являются неопределенными. Система памяти должна игнорировать данные избыточные биты. Записываемая система памяти для процессора ARM7TDMI должна иметь раздельное разрешение записи байт. Си-компилятор и отладочные средства для процессоров ARM, например, Multi-ICE, полагают, что возможна запись произвольных байт в памяти. Если возможность записи индивидуального байта не обеспечивается, тогда у вас не будет возможности использовать любое из указанных инструментальных средств без повреждения данных. 4.4 nOPC Выход nOPC передает информацию о передачи. Блок управления памятью (MMU) может использовать данный сигнал для определения, является ли доступ выборкой кода операции или передачи данных. Данный сигнал может использоваться совместно с nTRANS для реализации схемы разрешения доступа. Назначение nOPC представлено в таблице 3.4. Таблица 3.4. nOPC
4.5. nTRANS Выход nTRANS передает информацию о передаче. Блок управления памятью MMU может использовать данный сигнал для определения, выполняется ли доступ в привилегированном режиме или пользовательском режиме. Данный сигнал может использоваться совместно с nOPC для реализации схемы разрешения доступа. Назначение nTRANS показано в таблице 3.5.. Таблица 3.5. Назначение nTRANS
Более подробная информация по сигналу nTRANS и защите приведена в параграфе "Доступ в привилегированном режиме". 4.6 LOCK Сигнал LOCK используется для индикации арбитру, что на шине выполняется элементарная операция. LOCK в нормальном состоянии имеет низкий уровень. Если же он имеет высокий уровень, то это означает выполнение инструкции SWP или SWPB. Данные инструкции выполняют элементарные операции чтения/записи, а также могут использоваться для реализации семафоров. 4.7 TBIT Сигнал TBIT используется для индикации рабочего состояния процессора ARM7TDMI. Если процессор находится в состоянии ARM, то сигнал TBIT имеет низкий уровень. Если же TBIT имеет высокий уровень, то процессор находится в состоянии Thumb. Прим.: система памяти обычно не требует использования TBIT, т.к. MAS[1:0] индицируют размер инструкции. 5. Временная диаграмма адресных сигналов Шина адреса процессора ARM7TDMI может работать в двух конфигурациях:
Прим. Компания ARM Limited настоятельно рекомендует использовать в новых разработках только конвейеризованную конфигурацию шины адреса для поддержания оптимальной системной производительности. Также ARM Limited рекомендует установить высокий уровень на ALE и не использовать его в новых разработках. Деконвейеризованная конфигурация шины адреса управляется входным сигналом APE или ALE. Данная конфигурация обеспечивает простоту разработки систем на основе процессора ARM7TDMI с использованием SRAM и DRAM. APE оказывает влияние на шина адресу A[31:0], а также на сигналы nRW, MAS[1:0], LOCK, nOPC и nTRANS. В большинстве систем, особенно в системах на основе DRAM, желательно как можно раньше получить адрес от процессора ARM7TDMI. Когда APE имеет высокий уровень, адрес процессора ARM7TDMI становится действительным после нарастающего фронта MCLK перед циклом памяти, к которому он относится. Такая временная диаграмма обеспечивает достаточно большое время для дешифрации адреса и генерации сигналов управления DRAM. На рисунке 3.8 демонстрируется влияние высокого уровня APE на временную диаграмму.
Статические ОЗУ и ПЗУ требуют, чтобы адрес удерживался стабильным в течение цикла памяти. В системе, содержащей только статическое ОЗУ и ПЗУ сигнал APE может иметь постоянный низкий уровень для генерации необходимой временной диаграммы адреса. В этой конфигурации адрес становится действительным после падающего фронта MCLK, как показано на рисунке 3.9. Прим.: технические требования AMBA для усовершенствованной высокопроизводительной шины AHB и усовершенствованной системной шины (ASB) требуют конвейеризации шины адреса. Это означает, что APE должен иметь высокий уровень.
Многие системы содержат смесь DRAM, статического ОЗУ и ПЗУ. Для удовлетворения различным требованиям к временной диаграмме сигнал APE может безопасно изменяться, когда MCLK имеет низкий уровень. Обычно, APE устанавливается к высокому уровню, когда выполняется пакет последовательных доступов к одному типу памяти. Когда возникает непоследовательный доступ, то временная диаграмма большинства систем предусматривает введение состояний ожидания для обеспечения возможности дешифрация адреса. Как результат дешифрации адреса APE может принимать корректное значение для доступа к специфическому банку памяти. Значение APE может удерживаться до того момента, когда сигналы управления памятью укажут на другой последовательный доступ. Предшествующие процессоры ARM содержали сигнал ALE, поэтому, поддержка данного сигнала сохранена для обеспечения обратной совместимости. Данный сигнал также позволяет модифицировать временную диаграмму шины адреса для достижения того же результата, что и с помощью APE, но динамически. Для поддержания чистоты шины адреса во время существования низких уровней синхронизации MCLK необходимо на ALE устанавливать высокий уровень одновременно с появлением падающего фронта MCLK и низкий уровень при появлении нарастающего фронта MCLK. ALE можно формировать простым инвертированием MCLK, но задержка от MCLK к ALE должна тщательно управляться, чтобы выполнить ограничение к временной диаграмме Tald. На рисунке 3.10 показывается, как можно использовать ALE для получения временной диаграммы, совместимой со статическим ОЗУ. Более подробно о точных значениях ограничений к временной диаграмме см. в разделе 7 "Статические и динамические характеристики".
Прим.: Если ALE используется для изменения временной диаграммы шины адреса, то необходимо установить на входе APE высокий уровень. Аналогично, если используется APE, то высокий уровень необходимо подать на вход ALE. Достичь более лучшей системной производительности можно, используя конвейеризованную конфигурацию с высоким уровнем на входе APE. Этим обеспечивается большее время для дешифрации адреса. 6. Сигналы, синхронизированные с данными В данном параграфе описываются:
6.1. D[31:0], DOUT[31:0] и DIN[31:0] Процессор ARM7TDMI поддерживает как однонаправленные шины данных DIN[31:0], DOUT[31:0], так и двунаправленную шину данных D[31:0]. Вход конфигурации BUSEN используется для выбора активной шины. На рисунке 3.11 демонстрируется организация шин данных и логика разделения шин.
При использовании двунаправленной шины необходимо отключить однонаправленные шины путем установки низкого уровня на входе BUSEN. Временная диаграмма трех циклов шины чтения-запись-чтение показана на рисунке 3.12.
Однонаправленная шина данных Когда BUSEN имеет высокий уровень, все инструкции ввода данных выполняются на шине ввода данных DIN[31:0]. Временная диаграмма ввода данных аналогична двунаправленной шине в режиме ввода. Данные должны устанавливаться и удерживаться относительно падающего фронта MCLK. Точные требования к временной диаграмме приведены в разделе 7 "Статические и динамические характеристики". В этой конфигурации выводимые данные присутствуют на DOUT[31:0]. Состояние данной шины изменяется только при выполнении процессором цикла записи. Временная диаграмма также аналогична двунаправленной шине данных. Значение DOUT[31:0] изменяется после падающего фронта MCLK. Временная диаграмма шины с сочетанием циклов чтение-запись-чтение показана на рисунке 3.13.
При использовании однонаправленных шин данных на вход BUSEN необходимо подать высокий уровень, а при использовании двунаправленной шины D[31:0] его необходимо оставить неподключенным. Однонаправленные шины данных обычно используются внутренне в специализированных интегральных схемах. Для подключения к внешней памяти большинство систем требуют двунаправленной шины данных. На рисунке 3.14 демонстрируется подключение однонаправленных шин к выводам специализированной интегральной схемы для подключения к внешней двунаправленной шине.
Двунаправленная шина данных Когда BUSEN имеет низкий уровень, отключается буфер между DIN[31:0] и D[31:0]. Игнорируются любые данные, присутствующие на DIN[31:0]. Кроме того, когда на вход BUSEN подан низкий уровень, на выходах DOUT[31:0] устанавливается значение 0x00000000. Когда процессор ARM7TDMI считывает из памяти, DIN[31:0] функционируют как входы. В течение циклов записи ядро ARM7TDMI должно выводить данные. В течение фазы предыдущего цикла сигнал nRW принимает высокий уровень для сигнализации цикла записи. В течение фактического цикла nENOUT принимает низкий уровень для сигнализации вывода данных процессором на линиях D[31:0]. Рисунок 3.15 демонстрирует временную диаграмму шины с разрешенной шиной данных. На рисунке 3.16 показана схема, которая используется в процессоре для точного управления, когда внешняя шина настроена на вывод.
Макроячейка содержит дополнительный сигнал управлений шиной nENIN, который позволяет внешней системе установить третье состояние на шине. В самых простых системах на nENIN устанавливается низкий уровень, а nENOUT можно игнорировать. Во многих применениях, когда внешняя шина данных является общеиспользуемым ресурсом, требуется большее управление. В данной ситуации nENIN может использоваться для задержки во время управления внешней шиной. Прим: для обратной совместимости предусмотрен сигнал DBE. На уровне макроячейки DBE и nENIN функционируют практически идентично и в большинстве приложений один из них может использоваться для разрешения работы шины данных. Процессор содержит другой сигнал управления выводом - TBE. Данный сигнал обычно используется при тестировании и должен быть подключен к высокому уровню в остальных случаях. При подаче на вход TBE низкого уровня все тристабильные выходы переходят в высокоимпедансное состояние так, как если бы на оба входа DBE и ABE были поданы низкие уровни, вызывая переход шины данных, шины адреса и других сигналов, обычно управляемых ABE, в высокоимпедансное состояние. Прим.: На TBE нет ячейки сканирования. Поэтому, TBE полностью не зависит от сканирования данных и может использоваться для перевода выходов в высокоимпедансное состояние при выполнении тестирующего сканирования. В таблице 3.6 показаны сигналы, которые управляют тристабильностью процессорных выходов. Таблица 3.6. Управление тристабильностью процессорных выходов
Пример построения тестового кристалла на основе ядра ARM7TDMI Подключение шины данных процессора ARM7TDMI D[31:0] к внешней общеиспользуемой шине требует применения дополнительной логики, которая варьируется между применениями, как и в случае тестового кристалла. В данном применении необходимо уделить внимание предотвращению столкновения на шине данных D[31:0] при изменении направления шины данных. Временная диаграмма nENIN и сигналы управления необходимо организовать таким образом, чтобы во время инициации вывода ядром управление выводами D[31:0] было отключено до то того момента, когда ядро начнет управление. Аналогично, когда шина обратно переключается на ввод, ядро должно приостановить управление до активизации выводов. Схема тестового кристалла на основе процессора ARM7TDMI показана на рисунке 3.17.
Прим.: на уровне ядра TBE и DBE - неактивны, привязаны к высокому уровню, т.к. в упакованном исполнении вы не можете вручную переводить внутренние шины в высокоимпедансное состояние. На уровне выводов, сигнал тестового кристалла EDBE используется логикой управления шины для представления возможности контроллеру внешней памяти выполнять арбитрирование шины и, при необходимости, асинхронного отключения тестового кристалла с ядром ARM7TDMI. 6.2 ABORT Сигнал ABORT индицирует, что операция с памятью не смогла завершиться успешно. ABORT опрашивается по окончании шинного цикла в течение S-циклов и N-циклов. Если ABORT устанавливается во время доступа к данным, то он вызывает выполнение процессором обработки события Аварийных данных. Если он устанавливается при выборке кода операции, то аварийная инструкция передается по конвейеру и при ее выполнении возникает событие Аварийная предварительная выборка. ABORT может использоваться системой управления памятью для реализации, например, базовой схемы защиты памяти или системы виртуальной памяти с подкачкой страниц по требованию. 6.3 Разрешение фиксации байта Для простоты подключения ядра ARM7TDMI к системам памяти, использующих подсловные форматы, ввод данных и инструкций необходимо выполнить на побайтной основе. Это достигается за счет использования сигналов BL[3:0] следующим образом:
Прим.: рекомендуется, чтобы в новых разработках на входы BL[3:0] подавались высокие уровни и чтобы значения слов из узких систем памяти фиксировались во внешних регистрах по отношению к ядру ARM7TDMI. В системе памяти, которая поддерживает только память со словным форматом, на входы BL[3:0] можно подать высокие уровни. В системах памяти с подсловным форматом сигналы BL[3:0] используются для фиксации данных при считывании из памяти. Например, словный доступ к памяти с полусловным форматом должен выполняться в течение двух циклов памяти:
На рисунке 3.18 словный доступ из полусловной системы памяти выполняется за два цикла:
Поскольку требуется два цикла памяти, то nWAIT используется для продления внутренней синхронизации процессора. nWAIT не оказывает влияния на работу регистров фиксации данных. При использовании этого метода данные могут считываться из памяти в виде слов, полуслов или байт, а также имеется возможность вставки любого требуемого количества состояний ожидания. При многоцикловых доступах к памяти nWAIT должен удерживаться в низком состоянии до фиксации последней части. В примере, показанном на рисунке 3.18, сигналы BL[3:0] принимают значение 0x3 в первом цикле, чтобы были открыты только регистры на D[15:0]. Если подать на BL[3:0] значение 0xF, то все регистры будут открыты. Это не оказывает влияние на работу ядра, т.к. регистры на линиях D[31:16] записываются корректным значением в ходе второго цикла. Прим.: BL[3:0] должны иметь высокий уровень в течение циклов записи.
На рисунке 3.19 демонстрирует чтение полуслова из памяти с байтным форматом и одним состоянием ожидания. На рисунке каждый доступ к памяти выполняется два цикла:
Байтный и полусловный доступы Процессор индицирует размер передачи за счет использования сигналов MAS[1:0] в соответствии с описанием в параграфе Сигналы MAS[1:0]. Байтный, полусловный и словный доступы описываются в параграфах "Чтение" и "Запись". Чтение Если выполняется чтение полуслов или байт, то 32-разрядная система памяти может вернуть полное 32-разрядное слово, а процессор извлечет из него действительное полусловное или байтное поле. Извлекаемые поля зависят от состояния сигнала BIGEND, который определяет конфигурацию порядка следования данных в системе. См. также Форматы памяти. Считанное слово из 32-разрядной памяти представляет собой значение слова на всей шине данных, как показано в таблице 3.7. При подключении к процессору 8-16-разрядной системы памяти необходимо гарантировать, чтобы данные были представлены на корректных линиях данных, как показано в таблице 3.7. Таблица 3.7. Доступы чтения
Прим.: при чтении подслов значение, расположенное в младших битах регистра ARM, независимо от положения байтных линий, используется для чтения данных. Например, при чтении байта с A[1:0] = 01 в системе с прямым порядком означает, что байт считывается с линий D[15:8], но размещается в разрядах [7:0] регистра ARM. Запись Когда процессор ARM7TDMI выполняет запись байта или полуслова, то записываемые данные передаются по шине данных, как показано на рисунке 3.20. Записываемая система памяти должна быть способна выполнять запись в любой один байт в системе памяти. Данная возможность требуется при использовании ARM Си-компилятора и отладочных средств.
7. Продление времен доступа Процессор ARM7TDMI не содержит динамической логики, которая для поддержания внутреннего состояния требует подачи регулярной синхронизации. Следовательно, нет ограничений по максимальному периоду, в течение которого MCLK может затягиваться т или nWAIT удерживаться в низком состоянии. Существует два метода продления времен доступа:
Прим.: если вы желаете использовать встроенную макроячейку трассировки (ETM) для получения информации о трассируемой инструкции и данных в порте трассировки, то вы можете использовать сигнал nWAIT для продления времен доступа. 7.1 Модуляция MCLK Временная диаграмма памяти полностью определяется MCLK и длинные времена доступа можно получить путем продления этой синхронизации. Как правило, продлевают низкий полупериод MCLK, т.к. это позволяет менеджеру памяти прервать операцию, если в конечном счете доступ претерпевает неудачу. MCLK может продлеваться перед подачей к процессору; вход nWAIT также может использоваться вместе с исходным тактовым сигналом MCLK. Подача низкого уровня на вход nWAIT оказывает такой же эффект, что и продление низкого полупериода MCLK. 7.2 Использование nWAIT для управления шинными циклами Использование конвейеризации в шинном интерфейсе процессора означает, что между циклами синхронизации и шинными циклами имеются различия. nWAIT может использоваться для продления шинного цикла, следовательно, он может длиться множество циклов синхронизации. Вход nWAIT позволяет расширить временную диаграмму шинных циклов с инкрементами полных циклов MCLK:
nWAIT должен изменятся только при существовании низкого уровня на MCLK. Сигналы адресного класса и сигналы запроса памяти на конвейере опережают передачу данных на один шинный цикл. В системе, использующей nWAIT, это может происходить более одного цикла MCLK. Данный процесс иллюстрируется на рисунке 3.21, где демонстрируется использование nWAIT для расширения непоследовательного цикла. В примере первый N-цикл следует на 5 циклов позже любого N-цикла относительно несвязанных адресов, а адрес для второго доступа передается перед завершением первого доступа.
Прим.: При разработке контроллера памяти рекомендуется считывать значения nMREQ, SEQ, а также сигналов адресного класса только когда nWAIT имеет высокий уровень. Этим гарантируется, что состояние контроллера памяти не случайно обновляется в процессе расширенного шинного цикла. 8. Действие ядра ARM7TDMI в режиме отладки Когда ядро ARM7TDMI находится в состоянии отладки, сигналы nMREQ и SEQ сигнализируют о внутренних циклах. Это позволяет оставшейся части системы памяти игнорировать процессор и функционировать обычным образом. Поскольку оставшаяся часть системы продолжает функционировать, то ядро игнорирует аварии и прерывания при работе в состоянии отладки. Сигнал BIGEND не должен изменяться системой в процессе отладки. Если BIGEND изменит свое состояние, то возникнут не только проблемы с синхронизацией, но и с изменениями процессора, независимо от отладчика. Сигнал nRESET должен поддерживаться в стабильном состоянии в процессе отладки. Если nRESET принимает низкий уровень, то состояние процессора изменяется без уведомления отладчика. Если инструкции выполняются в состоянии отладки, то все выходы шинного интерфейса, кроме nMREQ и SEQ, изменяются асинхронно к системе памяти. Например, адресная шина изменяется при каждом помещении новой инструкции на конвейер. Несмотря на асинхронность, данный процесс не оказывает влияния на систему, т.к. nMREQ и SEQ предназначены для индикации внутренних циклов, независимо от того, что делает остальная часть процессора. Схемой контроллера памяти должно гарантироваться, что асинхронная работа не оказывает влияния на остальную систему. 9. Доступ в привилегированном режиме Компания ARM Limited рекомендует использовать вывод ядра nTRANS, если доступ к системе памяти необходимо осуществлять только в привилегированном режиме. Данный сигнал различается между доступами в пользовательском и привилегированном режимах. Причиной такой рекомендации является ситуация, когда операционная система (ОС) осуществляет доступ к памяти от имени текущего приложения, когда она должна выполнять данные доступы в пользовательском режиме. Это достигается с помощью инструкций LDRT и STRT, которые соответствующим образом устанавливают сигналы nTRANS. Данная мера позволяет избежать возможности хакеру сознательно ввести в ОС неверный указатель и предоставить ОС привилегированный доступ к данной памяти. Данный способ в противном случае может быть использован хакером для предоставления приложению пользователя доступа к любой области памяти, например, области ввода-вывода. Младшие значащие биты CPSR являются также выходными инвертированными сигналами ядра nM[4:0]. Они индицируют о текущем режиме процессора в соответствии с таблицей 3.8. Таблица 3.8. Использование nM[4:0] для индикации текущего процессорного режима
Прим.: Сигналы nM[4:0] необходимо использовать только для диагностики и отладки. 10. Последовательность сброса после подачи питания Сброс статического устройства после подачи питания является хорошим способом устранения любых неопределенных состояний, которые могут привести к увеличению потребляемого тока. Большинство систем для сброса используют простую RC-цепь на входе сброса. В процессе сброса сигналы nMREQ и SEQ показывают внутренние циклы, в течение которых адресная шина продолжает инкрементирование на 2 или на 4 байта. Начальный адрес и инкрементируемое значение зависит от состояния ядра, в котором был активизирован вход сброса nRESET. Они имеют неопределенное состояние после подачи питания. После установления высокого уровня на входе nRESET ядро ARM выполняет еще два внутренних цикла перед выборкой первой инструкции по вектору сброса (адрес 0x00000000). Затем перед выполнением первой инструкции потребуется еще три цикла MCLK для продвижения инструкции по ступеням выборка-дешифрация-исполнение конвейера инструкций ARM. Это показано на рисунке 3.22. Прим.: для полного сброса ядра необходимо удерживать вход nRESET в активном состоянии как минимум два цикла MCLK. Также необходимо сбросить логику EmbeddedICE и TAP-контроллер, независимо от того используется функция отладки или нет. Это выполняется путем удержания входа nTRST в низком состоянии в течение времени не менее Tbsr, но дольше, чем на входе nRESET. На рисунке 3.22 x, y и z - значения инкрементируемого адреса.
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|