Skip to main content

建模的方法

使用python语法进行module的定义

  1. toml用来描述module之间的关系和
  2. 定义latch的存储器
  3. 定义module的算法和输入输出
  4. 配置一些固定的规格参数

针对throughput和latency的建模

  1. 传递的标准信息都是 inst
  2. 定义一个通用的TL(throughput latency)的Module
    1. 支持配置 thread 通道数量
    2. 处理inst的latency
    3. 处理inst的throughput:输入的通道的数量,输出的通道数量
    4. 内部stand-by的容量
  3. TL可以被递归的进行组合
  4. TL可以通过简单的python脚本定义输入和输出inst的转换规则
  5. 激励是一种特殊的Module
  6. TL可以支持自动的生成统计信息和time line图标

基于生产和消费的硬件模型抽象

    定义资源,生产,消费的抽象 内置抽象功能的仿真:容量带宽throughput规格延迟latency功耗 支持建立资源的依赖关系 内置的调度算法支持:轮询、贪心、自动调度探索的算法 用于仿真评估的现成运行库、工具库 定义
      对象的生产 对象的缓存、处理、转换、调度、流转 对象的消费 flow plan,Place and router 规划
        完全抽象后是可以求解一个方案,但是把所有的因素都考虑进去很慢 建模抽象,不能只是一个计算器,而是要能做到抽象的抽象,怎么快速得对问题进行分析?? 建模过程:
          定义工厂,生产和消费的产品以及速度,每个工厂就是一个硬件模块,并行工作 定义产品,产品可以分大小,工厂消费不同大小的产品 总线1:工厂「生产一个数据,消费一个数据」 总线2:工厂「生产一个数据,消费一个数据」 总线3:工厂「生产一个总线1,消费一个总线2」

          微架构建模

          1. 延迟模型
            1. 发送请求,固定延迟,返回请求
          2. 硬件资源竞争
            1. 存储器的深度/credit/valid
            2. 地址相关的bank,读写口竞争,structure harzd
            3. RAW、WAW等 Data harzd
            4. 数据流模拟:cache line
            5. 优先级
          3. 算法
            1. 调度算法

          数字电路仿真的抽象要素Logicsim

          1. 状态 Latch
          2. 并行 Launch
          3. 指令 Status
            1. ISA/UISA 作为module之间传递信息的抽象
            2. 记录各种状态的信息,状态信息的移动