Skip to main content

建模的方法

使用python语法进行module的定义

  1. python语法用来描述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图标

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

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