Skip to content

一个微架构设计引发的思考

看了一个对于PMA的寄存器的设计,由此引发了一些思考和感悟

设计

简要描述一下这个设计,重点在寄存器号部分,它将PMA这个模块设计成了若干个组,每个组实现了三个寄存器, 属性寄存器,起始地址寄存器,结束地址寄存器,还有一个保留寄存器,大概的寄存器号分配如下

属性寄存器号 起始地址寄存器号 结束地址寄存器号 保留寄存器号
0 3C0 3C1 3C2 3C3
1 3C4 3C5 3C6 3C7
2 3C8 3C9 3CA 3CB

相比大家应该看明白了,每个组都是一样的,分了若干个组

思考

乍看起来这没啥问题,似乎很合理。但又去看了同类型的PMP的寄存器设计,以及hpm的设计,发现同类型的寄存器都是顺序排列的,没有分组。 那如果我是微架构设计者,我会怎么选择呢?是在寄存器上明确的划分组还是像PMP一样,同类型的顺序排列? 目前,在这方面我还见的太少,也没有机会能够跟这方面的专家讨论,希望后续,随着在这个领域的学习,能够有自己的见解。

无论如何,在为架构设计方面,任何一点儿设计都能体现出是否经验充足。