Composable Building Blocks to Open up Processor Design

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shuiliusheng/article/details/82968417

Composable Building Blocks to Open up Processor Design

  1. 摘要:
    • Composable Modular Design (CMD) :简化OOO处理器的设计
    • 模块的接口方法提供了即时访问和对模块内的状态进行原子更新的操作
    • 每个接口方法都被保护,即除非准备就绪,否则无法使用
    • 模块由原子规则组成,原子规则调用不同模块的接口方法,原子规则要么成功更新所有被调用模块的状态,要么什么都不做。
    • CMD设计被编译成RTL,可以在FPGAs上运行或使用标准ASIC设计流进行综合
    • 论文的实验:构建参数化乱序RISC-V处理器,并且在FPGA上以25MHz-40MHz的频率启动了linux
  2. 介绍:
    • 设计模块化的两个主要挑战:
      • 如何组合模块
      • 当模块被选择性地细化时,如何确保模块可以在性能调优阶段正确组合
    • latency-insensitivity(延迟不敏感):为请求生成答案所需的时间不会影响总体设计的正确性
    • 如果可以将模块设计为只有 对延迟不敏感的类似FIFO 的接口,那么它们就可以轻松地组合起来并单独进行细化。
    • atomicity property(原子性):微体系结构时间可能需要跨过多个模块同时读写状态,因此需要接口具有原子性属性。接口的原子性属性控制着多个方法的并发执行
  3. Composable Modular Design (CMD) 是一个框架,在CMD中,设计是模块的集合,相互之间使用一组原子规则进行交互:
    • 模块中的接口方法提供了组合的访问操作,同时能够以原子操作的方式更新模块内部的元素状态
    • 每个接口方法都是受保护的,即除非准备就绪,否则无法使用
    • 模块都规则或者“事务”组成,这些事务调用不同模块的接口方法。规则要么成功的更新所有被调用模块的状态,要么什么都不做
  4. Bluespec System Verilog (BSV):
    • 全球领先的行为级综合EDA供应商BlueSpec
    • BSV (BlueSpec System Verilog)是业界唯一100%可直接综合到Verilog HDL代码的电子系统级(ESL)语言;
      • 其综合建模工具可以帮助用户更早的进行SOC系统建模、算法设计、仿真与定型;
      • 可以帮助用户在性能、功耗、面积等架构层面进行取舍平衡;
      • 可以帮助用户在算法阶段就开始软件开发,大幅提前Firmware和Software的开发工作;
      • 可以自动综合生成高质量的Verilog HDL代码;
      • 可以提供独立的可综合的Test Bench;
      • 可以提供高于RTL级仿真器20倍速度的仿真;
      • 通过FPGA加速器的协同仿真可以提供高于RTL级仿真器1000倍以上的仿真速度体验。
  5. 论文的工作:
    • 提出了一种新的框架,用于实现复杂真实的微体系结构
    • 一条完整的参数化模块,用于实现乱序的RISC-V处理器。模块包括ROB,IQ,LSU和缓存一致性协议的内存系统
    • 使用CMD构建的OOO处理器,可以引导linux,并且在FPGA上以高达40MHz的速度运行
    • 使用SPEC CINT2006和PARSEC进行了性能评估
  6. 论文希望在每个模块的接口中封装足够的属性,以便在不了解内部细节的情况下进行模块组合,从而简化开发的复杂程度,加快升级和修改
  7. Store Queue以program order保存着正在执行中的stores;Store Buffer存放着已经提交的stores,但是这些stores还没有被写入L1 Dcache。
  8. 在CMD硬件模型中,我们假设在每个方法上都有一个隐式的保护(就绪信号),在方法被调用(启用)之前必须为真。当一个动作调用多个方法时,它的效果是原子的;这就好像所有的方法都成功地应用了或者没有一个被应用。因此,如果一个动作有效果,根据定义,它所有方法调用的guards 必须为真
  9. latency-insensitive(延迟不敏感):使用者不需要直到需要等待多长时间才能够得到结果
  10. CM(Conflict Matrix):记录方法之间是否可以并行,同时并行调用时真实的执行顺序。每一对方法有四种可能性:C(conflict,无法并行)、</>(f1</>f2,f1应该在f2之前/之后执行),CF(conflict free,无冲突)
  • BSV编译器自动为每个模块的实现和每一对规则生成CM。如果同时调用冲突的方法,它还声明一个规则或方法是非法的
  • CM提供的信息能够用于解决并发访问的问题,同时不需要了解每个模块内具体的实现
  1. 论文的实验结论:我们使用CMD设计的参数化OOO处理器能够在不出错的情况下完成数万亿条指令的基准测试。它可以很容易地胜过顺序处理器(如Rocket),并能与最先进的学术OOO处理器(如BOOM)相媲美,尽管不如高度优化的商业处理器好

猜你喜欢

转载自blog.csdn.net/shuiliusheng/article/details/82968417
今日推荐