Project

General

Profile

Actions

Task #5345

closed

[arch] Notes to the existing architecture models and templates

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

Status:
Closed
Priority:
Normal
Assignee:
Andrei Tatarnikov
Category:
-
Target version:
Start date:
10/14/2014
Due date:
% Done:

100%

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

Description

Замечания по моделям:

  1. Переименовать simple_vliw в vliw-demo (вместо подчеркивания лучше использовать минус).
  2. Переименовать demo в cpu-demo.
  3. Переместить все другие архитектуры в microtesk-internals (не только для планируемой поставки; в основном проекте должны быть только отлаженные и задокументированные модели).
  4. В модели cpu-demo переименовать Add в ADD и т.д.
  5. В модели cpu-demo написать коментарии.
  6. В коментариях для модели vliw-demo вместо "operation" использовать "instruction" (это касается и других моделей; не нужно терминологию языка nML распространять на все вокруг).
  7. Какие параметры передаются в float? Если разрядность мантиссы и порядка, то для SINGLE нужно передавать 23 и 8 (не помешал бы комментарий).
  8. В модели vliw-demo закомментирован вызов SignalException - нужно раскомментировать (без поддержки исключений инструмент мало кому нужен).
  9. Нет комментариев для многих инструкций (MUL, SLL и др.) - либо комментарии есть у всех инструкций, либо их нет ни у одной инструкции (если комментарии повторяют код на nML, смысла в них нет).
  10. Заводятся, но нигде не используются алиасы PC и SP - нужен ли SP?
  11. Название константы REGS неадекватно - лучше использовать что-то вроде REG_INDEX_SIZE (размер индекса регистра в битах).
  12. Спецификацию SW лучше записать через конкатенацию в левой части присваивания.
  13. Не хватает комментариев для "тонких" моментов: BRANCH = 1, JMPADDR = ..., GPR[0] = 0.
  14. Вместо числа 8 в CIA = CIA + 8 лучше написать 2 * INSTRUCTION_SIZE, где INSTRUCTION_SIZE - размер кода инструкции в байтах.
  15. Комментарии-разделители должны иметь размер 80, а не 79.
  16. Синтаксис syntax = format("%s, %s;", c1.syntax, c2.syntax) не соответствует тому, что пишется в шаблонах. Названия инструкций для записи в шаблонах берутся из op или format?
  17. В модель cpu-demo добавить простейшие инструкции с плавающей точкой.

Замечания по шаблонам:

  1. Предлагаю придерживаться конвенций Google: class VLIWDemo -> class VliwDemo.
  2. Представляется неправильным то, что классы всех шаблонов названы одинаково (VLIWDemo, ArmDemo и т.д.) - названия шаблонов должны быть разными и отражать их содержание.
  3. Думаю, имеет смысл для каждой архитектуры выделить базовый шаблон (VliwDemoTemplate, CpuDemoTemplate, ArmTemplate и т.д.).
  4. Нужно избавиться от странного метода initialize.
  5. В шаблонах (для cpu-demo и vliw-demo) не хватает комментариев (label, trace, location и т.д.).
  6. Отсутствуют "комбинаторные" шаблоны.
  7. Отсутствуют шаблоны на исключения.
Actions

Also available in: Atom PDF