Actions
Task #5345
closed[arch] Notes to the existing architecture models and templates
Start date:
10/14/2014
Due date:
% Done:
100%
Estimated time:
Detected in build:
svn
Published in build:
141018
Description
Замечания по моделям:
- Переименовать
simple_vliw
вvliw-demo
(вместо подчеркивания лучше использовать минус). - Переименовать
demo
вcpu-demo
. - Переместить все другие архитектуры в microtesk-internals (не только для планируемой поставки; в основном проекте должны быть только отлаженные и задокументированные модели).
- В модели
cpu-demo
переименоватьAdd
вADD
и т.д. - В модели
cpu-demo
написать коментарии. - В коментариях для модели
vliw-demo
вместо "operation" использовать "instruction" (это касается и других моделей; не нужно терминологию языка nML распространять на все вокруг). - Какие параметры передаются в
float
? Если разрядность мантиссы и порядка, то дляSINGLE
нужно передавать 23 и 8 (не помешал бы комментарий). - В модели
vliw-demo
закомментирован вызовSignalException
- нужно раскомментировать (без поддержки исключений инструмент мало кому нужен). - Нет комментариев для многих инструкций (
MUL
,SLL
и др.) - либо комментарии есть у всех инструкций, либо их нет ни у одной инструкции (если комментарии повторяют код на nML, смысла в них нет). - Заводятся, но нигде не используются алиасы
PC
иSP
- нужен лиSP
? - Название константы
REGS
неадекватно - лучше использовать что-то вродеREG_INDEX_SIZE
(размер индекса регистра в битах). - Спецификацию
SW
лучше записать через конкатенацию в левой части присваивания. - Не хватает комментариев для "тонких" моментов:
BRANCH = 1
,JMPADDR = ...
,GPR[0] = 0
. - Вместо числа
8
вCIA = CIA + 8
лучше написать2 * INSTRUCTION_SIZE
, гдеINSTRUCTION_SIZE
- размер кода инструкции в байтах. - Комментарии-разделители должны иметь размер 80, а не 79.
- Синтаксис
syntax = format("%s, %s;", c1.syntax, c2.syntax)
не соответствует тому, что пишется в шаблонах. Названия инструкций для записи в шаблонах берутся изop
илиformat
? - В модель
cpu-demo
добавить простейшие инструкции с плавающей точкой.
Замечания по шаблонам:
- Предлагаю придерживаться конвенций Google:
class VLIWDemo
->class VliwDemo
. - Представляется неправильным то, что классы всех шаблонов названы одинаково (
VLIWDemo
,ArmDemo
и т.д.) - названия шаблонов должны быть разными и отражать их содержание. - Думаю, имеет смысл для каждой архитектуры выделить базовый шаблон (
VliwDemoTemplate
,CpuDemoTemplate
,ArmTemplate
и т.д.). - Нужно избавиться от странного метода
initialize
. - В шаблонах (для
cpu-demo
иvliw-demo
) не хватает комментариев (label
,trace
,location
и т.д.). - Отсутствуют "комбинаторные" шаблоны.
- Отсутствуют шаблоны на исключения.
Actions