MPORT
Данный документ содержит рекомендации по применению порта внешней памяти общего назначения (MPORT) процессоров серии «Мультикор» и предназначен для случаев, когда к порту внешней памяти подключается аппаратура, отличающаяся от микросхем памяти со стандартными интерфейсами (такими, как SRAM, SDRAM, NAND-флеш, etc).
Детальное описание порта внешней памяти находится в руководстве пользователя на конкретный процессор. Реализация MPORT в конкретном процессоре может иметь отличия от описанной в данном документе. Для уточнения всех возникающих вопросов необходимо связаться со службой технической поддержки – support@elvees.com.
📄️ Работа с энергонезависимой памятью
Чтение и запись из параллельной, SPI и NAND флеш-память
📄️ Работа с памятью. Преобразование адресов
Работа с памятью. Физические и виртуальные адреса
Состояния выводов MPORT
После окончания обращения во внешнюю память MPORT переводит выходы в следующие состояния:
Таблица 1
Группа выводов | Состояние |
---|---|
A[31:0] | Остается неизменным до следующего обращения к внешней памяти |
D[31:0] | При записи: остается неизменным до следующего обращения во внешнюю память При чтении: переключается в режим выхода через один такт после снятия сигнала nRD и удерживает уровни, соответствующие считанному слову. |
nRD | Неактивное (логическая 1) |
nWE, SWE, nWR[3:0], nBE[3:0], DQM[3:0] | Неактивное (логическая 1) |
nCS[4:0] (тот nCS, по которому происходило обращение; остальные – в неактивном состоянии) | Остается в активном состоянии (логический “0”) до тех пор, пока не последует обращение к внешней памяти, адресуемой другим выводом nCS. Только тогда перейдет в неактивное состояние (логическая “1”) |
В состоянии активного сброса (активный ноль на входе nRST микросхемы) линии шины адреса находятся в нулевом состоянии, линии шин данных – в третьем состоянии.
Сигналы байтовой выборки
В зависимости от конкретного процессора, порт внешней памяти может иметь сигналы байтовой записи nWR[3:0] или сигналы байтовой выборки nBE[3:0]. Кроме того, каждый процессор имеет сигналы байтовой выборки SDRAM – DQM[3:0]. Если в процессоре есть выводы nBE[3:0] – сигналы DQM[3:0] не будут активизироваться до того, как будет инициализирована SDRAM.
Важно: сигналы DQM переходят в единицу в случае, если они активны. Однако, так как изначально эти маскирующие сигналы, байты, которым соответствует активный уровень сигнала DQM (то есть, единица), не участвуют в процедуре обмена данными (не записываются и не считываются). Это позволяет использовать их как сигналы байтовой выборки и для статической памяти. Поведение сигналов байтовой выборки при чтении и записи указано в таблице 3.1.
Таблица 2
Группа выводов | Состояние при записи | Состояние при чтен ии |
---|---|---|
DQM[3:0] | Запись целого слова (инструкция SW, DMA-обмен, выборка инструкции) – 0000b. Запись полуслова (инструкция SH) – 0011b или 1100b, в зависимости от адреса. Запись байта (инструкция SB) – 1110b, 1101b, 1011b или 0111b, в зависимости от адреса | Неактивное (0000b) |
nBE[3:0] | Аналогично DQM[3:0] | Активное (0000b) |
nWR[3:0] | Аналогично DQM[3:0] | Неактивное (1111b) |
Чтение и запись данных
Одиночные чтения/записи
Происходят в случае, когда между инструкциями чтения из одного блока памяти проходит время большее, чем необходимо порту внешней памяти на это чтение. В случае, если несколько чтений из одного блока памяти происходит несколько одиночных чтений подряд (например, несколько инструкций LW подряд) – они могут объединяться портом внешней памяти в одно чтение пачкой. Если необходимо обеспечить одиночное чтение – гарантированно это можно сделать, лишь вставив обращения к другим блокам памяти (на других выводах nCS) между обращениями к требуемому блоку памяти. В случае одиночных обращений к памяти выводы MPORT между чтением/записью каждого слова переходят в состояния, указанные в таблице 2.
Чтения/записи пачками
Возникают в следующих случаях:
- промах кэш (в этом случае вычитывается область памяти, соответствующая по размерам строке кэш);
- вычитка инструкции для исполнения (с выключенным кэшированием);
- DMA-обмен;
- одиночные инструкции чтения/записи также могут «склеиваться» в пачку.
В случае чтения/записи пачки слов в SDRAM обращение происходит в режиме burst, как это обозначено в спецификации протокола SDRAM. В случае чтения/записи пачки слов в статическую память все задействованные стробы (nCS, nRD, nWE, байтовые стробы) устанавливаются в активное состояние. При записи/чтении каждого слова переключается только шина адреса и шина данных.