3.3 存储器实体
存储器模型中的存储器实体可以由多个bank组成,并构成一个子模块。根据bank的数量和种类,该存储器子模块具有不同数量的只读端口、只写端口和读写端口。为了能尽可能模拟不同的存储器类型,存储器子模块可配置参数如表1所示。
表1 存储器配置参数

3.4 存储器控制器
存储器控制器由指令队列、数据缓存、以及仲裁器构成。这一部分对系模压电感器统的性能有重要影响。读指令队列和写指令队列用来分别缓存读写指令。当它们写满时,新的读写操作将失败或堵塞。指令队列的数量取决于访问存储器模型的模块有几个优先级。相同优先级的指令会被放到同一个队列。读仲裁器和写仲裁器分别根据队列中的读地址和写地址,读写数据缓存器的状态,以及指令优先级来决定发送哪个指令到哪个端口。而如果读指令和写指令指向了相同的读写端口,读写仲裁器将再一次做出仲裁。这里的每个仲裁器除了上述功能外,具体的仲裁机制以虚函数的形式由具体的实现来决定。在该存储器模型中实现了默认的基于优先级的轮询算法。存储器控制器的配置参数如表2所示。
表2 存储器控制器的配置参数

3.5 参数配置
存储器模型的众多参数需要在构造函数中配置完成。在运行阶段,不能再更改配置。运行阶段的配置更改将是我们下一步的研究内容,可以用于类似于文献共模电感[8]的自演化系统。
4 应用实例
图2所示为一个H.26一体成型电感4解码器模块框图。该解码器共包括四个模块以流水线方式工作在宏块级别。其中熵解码产生运动矢量电感器在电路中的作用,变换系数等信息。残差恢复模块通过反量化、反变换操作得到残差。宏块预测模块进行帧内或帧间预测并和残差一起重建出宏块数据。去快效应模块实现H.264去块效应滤波。这四个模块通过一个共享的SRAM 来交换数据。RTL设计人员根据设计指标率先完成了各模块微架构的设计,平均解码每个模块所需时间在指标范围内。

图2 H.264解码器使用共享存储器在解码模块间交换数据
为了确定共享SRAM 引入的性能损失和确定SRAM 的设计,采用本文存储器模型进行分析。存储器的大部分参数已经被确定,需要决定采用几个bank(每个bank是一个单端口SRAM)。另一方面,各模块读写存储器的时间也基本确定从而有了可靠地负载模型。通过改变存储器模型的bank数,得到结果如图3所示。

图3 不同bank数所对应的单个宏块平均解码时间占允许时间的比例
由于bank的增加可以减少访问存储器的冲突,模型仿真得到的处理时间随bank数量的增加而减少。但是可以看到bank数量对所消耗的时间影响不大,这说明各解码模块访问存储器的时