仓库源文

.. Kenneth Lee 版权所有 2022

:Authors: Kenneth Lee :Version: 0.1 :Date: 2022-04-27 :Status: Draft

一个架构设计模糊精确的例子


最近做了一个设计,写完后我发现它是一个架构设计是“模糊精确”的很典型的例子,但那 个是个保密的设计,我不可能直接写这个设计本身,所以我在这里形容一下它的特征,以 便未来举这种例子可以根据这些特征来举例子。

这个设计涉及到用指令控制加速器的和一些行为,CPU发出一个指令,加速器会完成一系列 的行为,会改变CPU的状态,我们推理的是加速器可以改变CPU的哪些状态,以及这些改变 和CPU的流水线在时间上的配合关系。

这个方案可以用在很多的CPU上,我们也不肯定用于什么类型的CPU上,我们也没有限定加 速器的功能,所以,对于加速器会改变GPR还是CPU的特权级,我们都没有精确的指向,但 我们需要一个方案,在没有这些精确的定义中,保证CPU和加速器的设计在一定的约束范围 中,从而达成“降低CPU和加速器关系复杂度”这个目的。

所以我们的定义包含这些要素:

  1. CPU通过指令改变加速器的行为,这些指令称为A指令

  2. A指令在CPU流水线中调度,每条指令有确切的修改的寄存器的定义,这些寄存器在流水线 中的依赖关系,必须完全符合对应CPU在流水线寄存器定义

  3. A指令在程序顺序上的后续指令,,无论通过MMIO还是系统寄存器访问加速器的状态, 这个状态都是唯一的。

这个定义是模糊的,很多东西都不定,但这个定义是精确的,因为你的架构是否满足它的 定义,是确切的。架构设计通常都具有这样的特征。