仿真建模 建模的方法 使用python语法进行module的定义 python语法用来描述module之间的关系和 定义latch的存储器 定义module的算法和输入输出 配置一些固定的规格参数 针对throughput和latency的建模 传递的标准信息都是 inst 定义一个通用的TL(throughput latency)的Module 支持配置 thread 通道数量 处理inst的latency 处理inst的throughput:输入的通道的数量,输出的通道数量 内部stand-by的容量 TL可以被递归的进行组合 TL可以通过简单的python脚本定义输入和输出inst的转换规则 激励是一种特殊的Module TL可以支持自动的生成统计信息和time line图标 基于生产和消费的硬件模型抽象 定义资源,生产,消费的抽象 内置抽象功能的仿真: 容量 , 带宽throughput , 规格 , 延迟latency , 功耗 支持建立资源的依赖关系 内置的调度算法支持:轮询、贪心、自动调度探索的算法 用于仿真评估的现成运行库、工具库 定义 对象的生产 对象的缓存、处理、转换、调度、流转 对象的消费 flow plan,Place and router 规划 完全抽象后是可以求解一个方案,但是把所有的因素都考虑进去很慢 建模抽象,不能只是一个计算器,而是要能做到抽象的抽象,怎么快速得对问题进行分析?? 建模过程: 定义工厂,生产和消费的产品以及速度,每个工厂就是一个硬件模块,并行工作 定义产品,产品可以分大小,工厂消费不同大小的产品 总线1:工厂「生产一个数据,消费一个数据」 总线2:工厂「生产一个数据,消费一个数据」 总线3:工厂「生产一个总线1,消费一个总线2」 微架构建模 延迟模型 发送请求,固定延迟,返回请求 硬件资源竞争 存储器的深度/credit/valid 地址相关的bank,读写口竞争,structure harzd RAW、WAW等 Data harzd 数据流模拟:cache line 优先级 算法 调度算法 数字电路仿真的抽象要素Logicsim 状态 Latch 并行 Launch 指令 Status ISA/UISA 作为module之间传递信息的抽象 记录各种状态的信息,状态信息的移动