0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于SystemC的存储器模型设计与性能分析

电子设计 来源:郭婷 作者:电子设计 2018-12-05 07:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1 引言

建立芯片模型是在早期进行芯片架构决策的有效方法,通过建模不仅可以对芯片的性能做出分析,还可以在硬件没有完成之前开发软件,不仅提高了产品成功率,而且缩短了研发周期。设计人员早期采用C/C++语言进行硬件建模。但是随着软硬件复杂度的提高,C/C++语言难以再满足要求。OSCI适时推出了SystemC语言来适应新的需求。如今SystemC已经被广泛应用于SoC软硬件建模中。

目前大部分SystemC建模方面是设计芯片整体模型的描述,这种针对特定芯片设计的文献虽然都有参考价值,但是其模型本身借鉴性有限。另一方面,构成SoC硬件的基本组件因为可重用的缘故,其模型设计具有更好的可借鉴性。这方面的研究成果相对较少,而且集中在总线建模方面,也可以看到多核设计方面的建模方法。

除了上述总线、CPU 架构外,片内或片外存储器同样是系统关键模块,对系统性能有着至关重要的影响。文献[6]对SystemClick框架做了扩展,从而通过存储器模型能够分析共享存储器对性能的影响。文献[7]针对多通道DRAM 做了建模,并且分析了不同的配置和使用情况对性能的影响。这两篇文献都对所设计的模型做了详尽的分析,具有很好的参考价值,但是两者的通用性欠佳。本文提出了一个可配置的通用存储器SystemC模型。

2 SystemC

SystemC可被视作C++硬件建模和仿真的扩展库,特别适合集成电路的建模,但它事实上可以用来描述更多的系统。SystemC通过确定仿真核心(simulation kernel)算法定义了处理并行事件和仿真时间的机制。SystemC还定义了模块、端口接口、通道等概念来组成一个复杂SoC的连接关系和层次结构。因此,它解决了标准C++语言用于复杂硬件建模时的难题。

3 存储器的建模

3.1 存储器模型概述

为了能帮助设计人员分析系统性能并选择最合适的存储器构造,存储器模型需要反映出对性能造成影响的关键参数,即带宽、延时和仲裁机制。而这些参数又是由存储器的结构以及其它参数决定的。另一方面,本文希望提出一个通用的存储器模型,因此会有更多的参数用于配置存储器以模拟某种特定类型的存储器特征,比如多端口SRAM

图1给出了所设计的存储器模型的结构。它包括三个部分:一是模型接口;二是端口及bank可配置的存储器;三是由读写通路及仲裁机制构成的存储器控制器。接口部分采用了事务级建模,而内部模块采用了时钟精准的建模,这样在保证时间精度的同时,方便了接口连接以及提高了仿真速度。

基于SystemC的存储器模型设计与性能分析

图1 可配置存储器模型结构

3.2 存储器接口

基于SystemC的存储器模型接口,由SystemC定义的接口基类派生而来。整个存储器模型是一个SystemC模块,由于实现了所定义的存储器模型接口,它成为SystemC概念中的hierarchal channel。因此,该存储器模型将如同其它SystemC定义的通道,比如FIFO,一样作为基本组件来连接其它的模块从而构造出SoC硬件系统。所设计存储器具有如下所述事务级SystemC接口。

阻塞读接口:该接口用来读取给定地址的给定大小的数据,当数据没有读出时,调用这个接口的模块线程将被堵塞,直到数据读出为止。除了地址和数据,该接口还包含调用者的标志信息。

非阻塞读接口:与阻塞读接口不同的是,如果在调用时读指令不能被接受,则返回失败。否则,不等待数据返回便成功退出。这样调用接口的模块线程可以在等待时间做其它事情。调用者通过监听存储器模型广播的当前读出数据多对应调用者标记来在之后读出数据。

阻塞写接口:该接口用来向存储器给定地址写入给定大小的数据。当指令或写数据不能被存储器模型接收时,调用的线程被堵塞直到接受为止。除了地址和数据,该接口还包含调用者的标志信息。

非阻塞写接口:与阻塞写接口不同的是,当指令或数据不能被接受时,返回失败而不等待。否则返回成功。

复位接口:用于复位存储器模型。

为了不强制要求外部提供存储器模型需要的时钟,存储器模型接口中不包含时钟输入。模型内部有一个专门的时钟产生线程。

3.3 存储器实体

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

表1 存储器配置参数

基于SystemC的存储器模型设计与性能分析

3.4 存储器控制器

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

表2 存储器控制器的配置参数

基于SystemC的存储器模型设计与性能分析

3.5 参数配置

存储器模型的众多参数需要在构造函数中配置完成。在运行阶段,不能再更改配置。运行阶段的配置更改将是我们下一步的研究内容,可以用于类似于文献[8]的自演化系统。

4 应用实例

图2所示为一个H.264解码器模块框图。该解码器共包括四个模块以流水线方式工作在宏块级别。其中熵解码产生运动矢量,变换系数等信息。残差恢复模块通过反量化、反变换操作得到残差。宏块预测模块进行帧内或帧间预测并和残差一起重建出宏块数据。去快效应模块实现H.264去块效应滤波。这四个模块通过一个共享的SRAM 来交换数据。RTL设计人员根据设计指标率先完成了各模块微架构的设计,平均解码每个模块所需时间在指标范围内。

基于SystemC的存储器模型设计与性能分析

图2 H.264解码器使用共享存储器在解码模块间交换数据

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

基于SystemC的存储器模型设计与性能分析

图3 不同bank数所对应的单个宏块平均解码时间占允许时间的比例

由于bank的增加可以减少访问存储器的冲突,模型仿真得到的处理时间随bank数量的增加而减少。但是可以看到bank数量对所消耗的时间影响不大,这说明各解码模块访问存储器的时间分布已经比较均匀。由于一个bank的情况已经可以满足要求,所以最后确定bank数为1。RTL全部完成后的仿真结果所消耗的时间比模型所给出的略少一些,原因是RTL设计对访问共享SRAM 的时间安排做了进一步细化的工作。

5 结束语

本文提出了一个通用的存储器SystemC模型,该模型采用统一的事务级接口,和可配置的时钟精准的内部控制逻辑以及存储器构成。通过一系列的参数配置,该模型能够帮助设计人员快速实现系统建模并在存储器设计和选择上做出合理判断。借助其通用性,它还可以帮助保持一致性和减少重复劳动。该模型被应用于视频解码案例中,成功预测了共享SRAM 的bank数对性能的影响,证明了其有效性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    463

    文章

    54379

    浏览量

    469000
  • soc
    soc
    +关注

    关注

    40

    文章

    4619

    浏览量

    230080
  • C++
    C++
    +关注

    关注

    22

    文章

    2126

    浏览量

    77355
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SDRAM工业动态随机存储器在可编程逻辑控制(PLC)的应用

    在工业自动化控制系统中,可编程逻辑控制(PLC)承担着数据采集、逻辑运算与执行控制的核心任务。随着生产现场对实时性和稳定性的要求不断提高,PLC对内部存储器性能也提出了更严苛的需求。其中
    的头像 发表于 04-07 14:10 103次阅读

    Atmel AT88SC1616C:高性能安全存储器的深度解析

    Atmel AT88SC1616C:高性能安全存储器的深度解析 在电子设备的安全存储领域,Atmel的AT88SC1616C是一款备受关注的高性能安全
    的头像 发表于 04-05 16:10 626次阅读

    串行mram磁性随机存储器的工作原理与存储机制

    存储器技术不断演进的今天,MRAM磁性随机存储器凭借其独特的非易失性、高速读写与高耐久性,正成为越来越多高端应用场景的理想选择。尤其是串行MRAM磁性随机存储器,通过精简的接口设计与灵活的集成方式,进一步拓展了MRAM在嵌入式
    的头像 发表于 03-30 16:27 199次阅读
    串行mram磁性随机<b class='flag-5'>存储器</b>的工作原理与<b class='flag-5'>存储</b>机制

    探索FM25V10 1-Mbit Serial (SPI) F-RAM:高性能非易失性存储器解决方案

    探索FM25V10 1-Mbit Serial (SPI) F-RAM:高性能非易失性存储器解决方案 在电子设计领域,选择合适的存储器对于系统的性能和可靠性至关重要。今天,我们将深入探
    的头像 发表于 03-29 14:40 135次阅读

    【案例5.1】存储器选型的考虑要点

    【案例5.1】存储器选型的考虑要点某设计,用户接口数据传输速率为10Gbps,每8个字节的数据对应一次查表需求,数据表存储在由DDR4SDRAM组成的存储器中。工程师需综合考虑各方面要求,进行
    的头像 发表于 03-04 17:20 412次阅读
    【案例5.1】<b class='flag-5'>存储器</b>选型的考虑要点

    FIFO存储器的种类、IP配置及应用

    FIRST IN FIRST OUT (先入先出)。顾名思义,FIFO是一个数据具有先进先出的存储器
    的头像 发表于 01-13 15:15 579次阅读
    FIFO<b class='flag-5'>存储器</b>的种类、IP配置及应用

    性能测试调优实战与探索(存储模型优化+调用链路分析

    分析、流量分析、压测实施和剖解调优等主要环节中,引发对于系统能力底盘夯实和测试策略改进的诸多思考。 在性能测试阶段,剖析系统能力实现及调优方案,探索更优解及性能测试策略的提升空间。 
    的头像 发表于 01-12 14:46 2582次阅读
    <b class='flag-5'>性能</b>测试调优实战与探索(<b class='flag-5'>存储</b><b class='flag-5'>模型</b>优化+调用链路<b class='flag-5'>分析</b>)

    瑞萨RA系列FSP库开发实战指南之常用存储器介绍

    存储器是计算机结构的重要组成部分。存储器是用来存储程序代码和数据的部件,有了存储器计算机才具有记忆功能。基本的存储器种类见图21_1。
    的头像 发表于 01-12 06:21 7381次阅读
    瑞萨RA系列FSP库开发实战指南之常用<b class='flag-5'>存储器</b>介绍

    双口SRAM静态随机存储器存储原理

    在各类存储设备中,SRAM(静态随机存储器)因其高速、低功耗和高可靠性,被广泛应用于高性能计算、通信和嵌入式系统中。其中,双口SRAM静态随机存储器凭借其独特的双端口设计,在高带宽和多
    的头像 发表于 11-25 14:28 762次阅读

    芯源的片上存储器介绍

    片上FLASH 闪存由两部分物理区域组成:主FLASH 存储器和启动程序存储器。 ●● 主 FLASH 存储器,共 64KB,地址空间为 0x0000 0000 - 0x0000 FFFF。该区
    发表于 11-12 07:34

    高速存储器sram,带ECC的异步SRAM系列存储方案

    在要求高性能与高可靠性的电子系统中,存储器的选择往往成为设计成败的关键。Netsol推出的高速异步SRAM系列,凭借其出色的性能表现与独有的错误校正(ECC)能力,为工业控制、通信设备及高精度计算等应用提供了值得信赖的
    的头像 发表于 11-05 16:21 533次阅读

    RISC-V嵌入式开发书里面的存储模型里面的释放和获取

    如下图是胡振波先生的书《RISC-V架构与嵌入式开发快速入门》第344页附录D存储器模型背景介绍中D.3节的内容。请问“无须屏障其之后的操作”和“无须屏障其之前的操作”是什么意思? “无须屏障其之后
    发表于 11-05 07:55

    Everspin存储器8位并行总线MRAM概述

    在需要高速数据写入与极致可靠性的工业与数据中心应用中,Everspin推出的8位位并行接口MRAM树立了性能与耐用性的新标杆。这款Everspin存储器MRAM与SRAM引脚兼容的存储器,以高达35
    的头像 发表于 10-24 16:36 801次阅读

    简单认识高带宽存储器

    HBM(High Bandwidth Memory)即高带宽存储器,是一种基于 3D 堆叠技术的高性能 DRAM(动态随机存取存储器)。其核心设计是通过硅通孔(TSV)和微凸块(Microbump
    的头像 发表于 07-18 14:30 5384次阅读

    MCU存储器层次结构解析

           MCU的存储器层次结构通过整合不同性能与功能的存储单元,优化系统效率并满足多样化场景需求。其核心架构可分为以下层次: 一、寄存层(最高速) 定位‌:集成于CPU内核中,
    的头像 发表于 05-09 10:21 910次阅读