Project

General

Profile

Actions

Task #3566

closed

Синтаксис описания подсистемы управления памятью

Added by Alexander Kamkin over 11 years ago. Updated about 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Andrei Tatarnikov
Category:
MMU Plugin
Target version:
Start date:
10/10/2012
Due date:
% Done:

100%

Estimated time:
Detected in build:
svn
Published in build:
150324

Description

Предложить синтаксис описания подсистемы управления памятью (MMU). В качестве основы взять примеры из статьи Reconfigurable Model-Based Test Program Generator for Microprocessors.

Описание состоит из двух частей:

  1. Описание буферов (TLU, L1, L2, ...).
  2. Описание общей схемы доступа к памяти (функции load/store).

Нужно разобраться как с первой, так и со второй частями. Приоритет у первой. Вторую часть нужно согласовать с Андреем. Мне представляется, что вторая часть будет писаться на Sim-nML с использованием небольшого расширения (это нужно обсудить).

Результатом работы является описание грамматики (лексика, синтаксис) на ANTLR, текстовое описание с примерами (это описание в дальнейшем перенесется в пользовательский мануал), пример описания подсистемы памяти для MIPS и/или ARM (перенесется в генератор для соответствующей архитектуры).

Обсуждение промежуточных результатов в среду 17 октября.

P.S. Генерация кода (модели MMU) в эту задачу не входит.

Actions #1

Updated by Alexander Kamkin about 11 years ago

Есть следующие замечания:

  1. формат строки буфера может включать произвольные поля (tag и data - это пример, грамматика должна быть общей).
  2. вместо двух чисел, характеризующих разрядность полей, нужно использовать одно (собственно, разрядность)

Пример:

line(g:1, v:1, asid:8, pfn: 24, ...)
Actions #2

Updated by Taya Sergeeva about 11 years ago

1. Нужно знать, какие еще параметры включены в строку буфера, чтобы захардкодить их в лексер.
2. В поле line так и сделано: line (tag:30 data:256).

Actions #3

Updated by Taya Sergeeva about 11 years ago

  • Status changed from New to Resolved
Actions #4

Updated by Alexander Kamkin about 11 years ago

В том то и дело, что параметры могут быть называться по-разному и их число может быть любым.

Actions #5

Updated by Taya Sergeeva about 11 years ago

Revision 985.

Actions #6

Updated by Alexander Kamkin about 11 years ago

  • Subject changed from Синтаксис описания подсистемы управления памятью to [mmu] Синтаксис описания подсистемы управления памятью
  • Status changed from Resolved to Open
  1. Вместо конструкции <m**n> для доступа к битовым полям нужно использовать <m..n>.
  2. Добавить запятые между полями строки буфера.
Actions #7

Updated by Alexander Kamkin about 11 years ago

Еще, как человеку, привыкшему к C/C++/Java и т.п., мне не хватает ';' после каждого определения параметра.

Как вариант, ';' можно сделать необязательным символом.

Actions #8

Updated by Taya Sergeeva about 11 years ago

Revisions r1023, r1026.

Actions #9

Updated by Alexander Kamkin about 11 years ago

Таня, а порядок описания атрибутов буфера зафиксирован? Можно ли сначала описать политику, а затем ассоциативность?

Нужно сделать так, чтобы допускался произвольный порядок.

Actions #10

Updated by Taya Sergeeva about 11 years ago

Done, r1031.

Actions #11

Updated by Alexander Kamkin about 11 years ago

Нужно начинать думать о части 2 этой задачи - общая схема доступа (функция LoadMemory() см. статью AMOST-2011).

Actions #12

Updated by Taya Sergeeva about 11 years ago

Это хотелось бы обсудить.

Actions #13

Updated by Alexander Kamkin about 11 years ago

  • Нужно понять, как использовать синтаксис Sim-nML для спецификации функций доступа к памяти. Думаю, что такие функции нужно описывать в форме операций Sim-nML, одним из параметров которых является адрес.
  • Главная сложность - возможность доступа внутри функций к описанным буферам. Например,
if hit<L1>(phys_address)
then
  ...
end

нужно предложить грамматику.

  • Интеграция с симулятором. Интерфейсы нужно обсуждать с Андреем.

Я готов обсудить, вопрос - что обсуждать? Сначала грамматика - потом обсуждение.

Actions #14

Updated by Alexander Kamkin about 11 years ago

Нужно изменить sets на associativity, а lines на sets. В грамматике, внутреннем представлении и документации.

Actions #15

Updated by Taya Sergeeva about 11 years ago

Updates were made, r1163.

Actions #16

Updated by Alexander Kamkin about 10 years ago

  • Target version set to 2.3
Actions #17

Updated by Andrei Tatarnikov about 9 years ago

  • Status changed from Open to Resolved
  • Assignee changed from Taya Sergeeva to Andrei Tatarnikov
  • % Done changed from 0 to 100
Actions #18

Updated by Alexander Kamkin about 9 years ago

  • Subject changed from [mmu] Синтаксис описания подсистемы управления памятью to Синтаксис описания подсистемы управления памятью
  • Category set to 47
Actions #19

Updated by Andrei Tatarnikov about 9 years ago

  • Status changed from Resolved to Closed
  • Published in build set to 150324
Actions

Also available in: Atom PDF