Task #3566
closedСинтаксис описания подсистемы управления памятью
100%
Description
Предложить синтаксис описания подсистемы управления памятью (MMU). В качестве основы взять примеры из статьи Reconfigurable Model-Based Test Program Generator for Microprocessors.
Описание состоит из двух частей:
- Описание буферов (TLU, L1, L2, ...).
- Описание общей схемы доступа к памяти (функции load/store).
Нужно разобраться как с первой, так и со второй частями. Приоритет у первой. Вторую часть нужно согласовать с Андреем. Мне представляется, что вторая часть будет писаться на Sim-nML с использованием небольшого расширения (это нужно обсудить).
Результатом работы является описание грамматики (лексика, синтаксис) на ANTLR, текстовое описание с примерами (это описание в дальнейшем перенесется в пользовательский мануал), пример описания подсистемы памяти для MIPS и/или ARM (перенесется в генератор для соответствующей архитектуры).
Обсуждение промежуточных результатов в среду 17 октября.
P.S. Генерация кода (модели MMU) в эту задачу не входит.
Updated by Alexander Kamkin almost 12 years ago
Есть следующие замечания:
- формат строки буфера может включать произвольные поля (tag и data - это пример, грамматика должна быть общей).
- вместо двух чисел, характеризующих разрядность полей, нужно использовать одно (собственно, разрядность)
Пример:
line(g:1, v:1, asid:8, pfn: 24, ...)
Updated by Taya Sergeeva almost 12 years ago
1. Нужно знать, какие еще параметры включены в строку буфера, чтобы захардкодить их в лексер.
2. В поле line так и сделано: line (tag:30 data:256).
Updated by Taya Sergeeva almost 12 years ago
- Status changed from New to Resolved
Updated by Alexander Kamkin almost 12 years ago
В том то и дело, что параметры могут быть называться по-разному и их число может быть любым.
Updated by Alexander Kamkin almost 12 years ago
- Subject changed from Синтаксис описания подсистемы управления памятью to [mmu] Синтаксис описания подсистемы управления памятью
- Status changed from Resolved to Open
- Вместо конструкции <m**n> для доступа к битовым полям нужно использовать <m..n>.
- Добавить запятые между полями строки буфера.
Updated by Alexander Kamkin almost 12 years ago
Еще, как человеку, привыкшему к C/C++/Java и т.п., мне не хватает ';' после каждого определения параметра.
Как вариант, ';' можно сделать необязательным символом.
Updated by Alexander Kamkin almost 12 years ago
Таня, а порядок описания атрибутов буфера зафиксирован? Можно ли сначала описать политику, а затем ассоциативность?
Нужно сделать так, чтобы допускался произвольный порядок.
Updated by Alexander Kamkin almost 12 years ago
Нужно начинать думать о части 2 этой задачи - общая схема доступа (функция LoadMemory() см. статью AMOST-2011).
Updated by Alexander Kamkin almost 12 years ago
- Нужно понять, как использовать синтаксис Sim-nML для спецификации функций доступа к памяти. Думаю, что такие функции нужно описывать в форме операций Sim-nML, одним из параметров которых является адрес.
- Главная сложность - возможность доступа внутри функций к описанным буферам. Например,
if hit<L1>(phys_address) then ... end
нужно предложить грамматику.
- Интеграция с симулятором. Интерфейсы нужно обсуждать с Андреем.
Я готов обсудить, вопрос - что обсуждать? Сначала грамматика - потом обсуждение.
Updated by Alexander Kamkin over 11 years ago
Нужно изменить sets на associativity, а lines на sets. В грамматике, внутреннем представлении и документации.
Updated by Andrei Tatarnikov almost 10 years ago
- Status changed from Open to Resolved
- Assignee changed from Taya Sergeeva to Andrei Tatarnikov
- % Done changed from 0 to 100
Updated by Alexander Kamkin over 9 years ago
- Subject changed from [mmu] Синтаксис описания подсистемы управления памятью to Синтаксис описания подсистемы управления памятью
- Category set to 47
Updated by Andrei Tatarnikov over 9 years ago
- Status changed from Resolved to Closed
- Published in build set to 150324