Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactoring file & namespace #103

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

marvintau
Copy link

当前版本中包含了几类修改:

文件切分与移动:

  1. 对于front-end部分,所有包含"embedded" (小核), "inorder" (in-order / sequential execution,顺序执行), "ooo" (out-of-order / dynamic execution,乱序执行) 等多种类型Module的文件,都按照其类型将Module分别保存至独立的文件,并移至新创建的文件夹下。如果有 "dummy" 或 "fake" 类的,也均保存至独立的文件。

例如: 分支预测单元之前保存在一个单独的BPU.scala文件中,现在在其所属目录下创建了一个新目录branch_predict,将文件移入后分割,产生了五个文件,分别为BranchPredictDynamic.scala (乱序版本),BranchPredictEmbedded.scala(小核版本),BranchPredictSequential.scala(顺序版本),此外还有BranchPredictDummy.scala (用于multi-cycle预测的)和BranchPredictLegacy.scala(目前未使用且被注释掉的),以及一个BranchPredictCommons.scala(包含了几种不同版本BPU均使用的Bundle和类型)

  1. 对其他文件,如包含明显独立于当前文件内逻辑的模块,也均被移出原文件,另创建新文件。

例如: IDU中的Decoder,Cache和TLB中的Exec部分等。

受到影响的文件:
/src/main/scala/nutcore/frontend/*
/src/main/scala/nutcore/backend/ooo/Backend.scala
/src/main/scala/nutcore/mem/*


文件/目录/部分模块的命名及重命名

  1. 考虑命名模块应尽可能使用略写(abbreviation)而非缩写(acronym)及表意准确,一部分文件名、目录名与模块名以一定规则重命名。

例如: BP被扩写为BranchPredict,IF被扩写为InstrFetch;同时“小核”/“顺序核”/“乱序核”分别对应后缀"Embedded"/"Sequential"/"Dynamic",文件与模块命名均服从此规则,目录名按snake case写为branch_predict或instr_fetch

  1. Cache的3个stage从原先的阿拉伯数字改为按其功能

例如: CacheStage3 -> CacheStageWriteBack

受到影响的文件仅包括被切分和移动的文件


改写namespace

原先nutcore部分中所有的文件都在同一个namespace即nutcore下,此版本经改动后,文件的namespace按照scala的命名规范与其目录结构一致。

例如: 原先的BPU.scala中为package nutcore,现变为package nutcore.frontend.instr_fetch.branch_predict。由于namespace发生了变化,import的内容也需要相应地改变

受到影响的文件包括被切分和移动的文件,以及引用了这些文件内代码的文件


暂时移除所有sealed关键字

由于注为sealedclasstrait不能跨文件引用,因在重构过程中仍会有文件的创建/切分/移动的可能,故暂时移除所有sealed关键字,待代码结构稳定后视情况补齐。


未被切分和移动的文件,以及被切分和移动文件所包含的模块内部在此次提交中均未受改动

@@ -0,0 +1,6 @@
#FileLock
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

看起来 .metals 中的文件在修改 gitignore 之前被仓库跟踪了?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oops,我只是删除了本地的但没有revert回去,我改一下再push

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants