SoC存储子系统系统级性能优化技术研究
发布时间:2020-11-10 04:56
嵌入式系统经过十几年的迅速发展,从简单的电子表、电子计算器到现在高数据吞吐量和密集计算的个人数字助理、移动式多媒体终端,它所包含的产品出现了显著变化。然而,随着处理器速度与存储器访问延迟的差距不断增大,面向多媒体应用的SoC芯片中存储子系统的访问延迟已经成为系统性能的主要瓶颈之一。因此,如何设计和优化存储子系统,便成了SoC芯片设计过程中必须要解决的一个问题。本文采用MP3解码作为目标应用,以Scratch-Pad存储器、外部存储器接口和片外存储器三者构建的存储子系统作为目标架构,提出了一套在芯片设计阶段进行存储子系统设计和性能优化的方法。 本文基于SystemC语言构建了一套时钟周期级精度的SoC存储子系统性能仿真模型,作为目标应用的软硬件仿真环境和系统级优化技术的性能评估手段。与实际电路仿真结果相比,该模型仿真精度最大误差仅为万分之二,仿真速度超过实际电路仿真的800倍。针对片外存储器的物理结构,本文在外部存储器接口的设计中提出了两套缓存机制,组缓存机制和Cache机制,用于降低片外存储器的平均访问延迟;并使用性能仿真模型进行缓存组织结构的设计空间探索,确定针对目标应用的各种最佳设计参数。基于以往Scratch-Pad存储器内存布局优化技术的分析,本文提出了一套基于关系矩阵的优化技术。它根据控制流图将程序划分成一系列结点,使用性能仿真模型的统计信息计算出各结点对性能的影响,建立关系矩阵描述结点之间的关系,然后根据改进的分配算法选择合适结点放入Scratch-Pad存储器。该技术通过减少程序执行过程中片外存储器的访问次数来缩短程序执行时间,并在Scratch-Pad存储器容量大小和性能优化能力之间建立了联系。在芯片设计阶段,它用于探索在满足性能要求前提下针对目标应用的Scratch-Pad存储器最佳容量。最后,本文分析了Scratch-Pad存储器优化技术和外部存储器接口缓存设计两者之间的性能影响,并总结出两者组合的最佳设计参数。 本文通过上述研究,提出了一套SoC存储子系统高层性能仿真模型,并基于Scratch-Pad存储器优化技术和外部存储器接口缓存设计,探索出针对目标应用的存储子系统最佳设计方案。实验结果表明,当系统时钟为50MHz时,最佳设计方案由两部分组成:外部存储器接口缓存设计采用128行二路组关联映射统一Cache(带4级写操作缓存),Scratch-Pad存储器容量为4096字节。两者总容量为8192字节。该方案有效降低了存储子系统访问延迟对系统性能的影响,目标应用运行速度显著提高,可达原来四倍。最后,对整篇论文的研究内容进行了总结,并指出本课题进一步发展的方向。
【学位单位】:东南大学
【学位级别】:博士
【学位年份】:2006
【中图分类】:TP333
【部分图文】:
图 2-3 基于 ISS 封装实现的系统仿真模型将 ISS 连接到总线封装接口(Bus Wrapper)来实现原理。其中,ISS 完全嵌入 SystemC 的模拟环境,用 ISS 和外部硬件模型之间的信息桥梁,用于将 ISS 输级精度的总线操作,以及将外部硬件模型中返回的信,整个处理器内核被描述成一个模块,它的内部包含出 Wrapper 进程。输入 Wrapper 进程和输出 Wrappe于通道实现)相连。ISS 进程和这两个 Wrapper 进程需要向某存储器地址写数据时,ISS 进程设置存储器访等待状态的输出 Wrapper 进程,输出 Wrapper 进程将,然后通过总线通讯模型经通道发送给相应的硬件模设置一个表示访问完成的信号,激活 ISS 使之继续运er 进程也按照上述过程进行操作,不同的是,它还需 SystemC 模拟环境中的做法避免了进程间通信(IPC ISS 和总线封装接口来构建处理器内核模型,但 ISS件模型的通信必须要通过 IPC 机制来完成,极大降低
这类方法[41-43]通过将 ISS 连接到总线封装接口(Bus Wrapper)来实现处理器内核模型。图了这类方法的基本原理。其中,ISS 完全嵌入 SystemC 的模拟环境,用于实现硬件指令的;总线封装接口是 ISS 和外部硬件模型之间的信息桥梁,用于将 ISS 输出的信息(比如存)转换成时钟周期级精度的总线操作,以及将外部硬件模型中返回的信息传递给 ISS。在具体实现过程中,整个处理器内核被描述成一个模块,它的内部包含三个进程:ISS 进 Wrapper 进程和输出 Wrapper 进程。输入 Wrapper 进程和输出 Wrapper 进程都与外部硬件总线通讯模型(基于通道实现)相连。ISS 进程和这两个 Wrapper 进程之间通过信号传递信ISS 正在解释的指令需要向某存储器地址写数据时,ISS 进程设置存储器访问信号,然后陷入等号将激活一直处于等待状态的输出 Wrapper 进程,输出 Wrapper 进程将这个写操作封装成(Bus Transaction),然后通过总线通讯模型经通道发送给相应的硬件模型。等到该操作完输出 Wrapper 进程设置一个表示访问完成的信号,激活 ISS 使之继续运行。同理,当 ISS 据时,输入 Wrapper 进程也按照上述过程进行操作,不同的是,它还需要将获得的数据传。这种将 ISS 集成到 SystemC 模拟环境中的做法避免了进程间通信(IPC)过多的问题。以往究[44-46]中也是通过 ISS 和总线封装接口来构建处理器内核模型,但 ISS 仍作为一个单独的运行,它和其它硬件模型的通信必须要通过 IPC 机制来完成,极大降低了仿真效率。但是 ISS 为基础构建处理器模型的方法存在着仿真精度的问题。因为,ISS 只能完成指令的功能仿能提供更多的时间信息用于系统性能评估。所以必须对 ISS 进行改进,不能只在指令这一仿真,需要更进一步地模拟组成指令的操作,从而提高整个系统模型的精度。
第二章 存储子系统性能仿真和优化技术综述体系结构描述语言实现这类方法使用体系结构描述语言(Architecture Description Language,ADL)来构建系统级处理器模型。nML[47],ISDL[48],EXPRESSION[49]和 LISA[50, 51]都属于典型的 ADL,其中 LISA 被广泛用于基于 SystemC 的处理器建模[52-56]。如图 2-4 所示,基于 LISA 实现的处理器模型被封装在一个SystemC 模块里,然后通过端口和 SystemC 的 TLM 总线模型连接。为了使 LISA 模型和 SystemC 模型交互运行,必须将 LISA 端口的应用程序接口(API)映射到 SystemC 的 TLM 接口。这种接口映射使得通讯接口的设计更加复杂并且降低了系统模型的仿真速度。为了提高仿真精度,LISA 处理器认为每一条指令都是由一系列微操作组成的,这种细分使得它可以更加精确地模拟指令执行过程中处理器和总线之间的行为。但是,由图 2-4 可见,基于 LISA 实现的处理器模型本身已经非常复杂,内部已经包含了总线和存储器的模型,使得这种方式构建的系统模型结构更加复杂。ARM 公司与 AXYS Design Automation, Inc.(LISA 语言的提出者 Vojin Zivojnovic 是该公司的主席和 CEO)基于 LISA 合作开发了 ARM 系列处理器的模型。这些模型可以封装成 SystemC 接口、融入 SystemC TLM 构建的仿真环境之中。如图 2-5 所示,ARM 公司电子系统级(ESL)设计工具中时钟周期级精度模型(CycleAccurate Model)的性能仿真精度可达 99%左右[57]。本文设计实现的 ARM 处理器模型与基于 LISA 实现的方法类似,通过将指令细分成一系列原子操作,获得时钟周期级的性能仿真精度。两者的区别在于,本文的模型完全使用 SystemC 实现,并没有借助 LISA 环境的支持。这使得整个系统模型的框架结构非常清晰,而且接口简单。实验表明本?
【引证文献】
本文编号:2877502
【学位单位】:东南大学
【学位级别】:博士
【学位年份】:2006
【中图分类】:TP333
【部分图文】:
图 2-3 基于 ISS 封装实现的系统仿真模型将 ISS 连接到总线封装接口(Bus Wrapper)来实现原理。其中,ISS 完全嵌入 SystemC 的模拟环境,用 ISS 和外部硬件模型之间的信息桥梁,用于将 ISS 输级精度的总线操作,以及将外部硬件模型中返回的信,整个处理器内核被描述成一个模块,它的内部包含出 Wrapper 进程。输入 Wrapper 进程和输出 Wrappe于通道实现)相连。ISS 进程和这两个 Wrapper 进程需要向某存储器地址写数据时,ISS 进程设置存储器访等待状态的输出 Wrapper 进程,输出 Wrapper 进程将,然后通过总线通讯模型经通道发送给相应的硬件模设置一个表示访问完成的信号,激活 ISS 使之继续运er 进程也按照上述过程进行操作,不同的是,它还需 SystemC 模拟环境中的做法避免了进程间通信(IPC ISS 和总线封装接口来构建处理器内核模型,但 ISS件模型的通信必须要通过 IPC 机制来完成,极大降低
这类方法[41-43]通过将 ISS 连接到总线封装接口(Bus Wrapper)来实现处理器内核模型。图了这类方法的基本原理。其中,ISS 完全嵌入 SystemC 的模拟环境,用于实现硬件指令的;总线封装接口是 ISS 和外部硬件模型之间的信息桥梁,用于将 ISS 输出的信息(比如存)转换成时钟周期级精度的总线操作,以及将外部硬件模型中返回的信息传递给 ISS。在具体实现过程中,整个处理器内核被描述成一个模块,它的内部包含三个进程:ISS 进 Wrapper 进程和输出 Wrapper 进程。输入 Wrapper 进程和输出 Wrapper 进程都与外部硬件总线通讯模型(基于通道实现)相连。ISS 进程和这两个 Wrapper 进程之间通过信号传递信ISS 正在解释的指令需要向某存储器地址写数据时,ISS 进程设置存储器访问信号,然后陷入等号将激活一直处于等待状态的输出 Wrapper 进程,输出 Wrapper 进程将这个写操作封装成(Bus Transaction),然后通过总线通讯模型经通道发送给相应的硬件模型。等到该操作完输出 Wrapper 进程设置一个表示访问完成的信号,激活 ISS 使之继续运行。同理,当 ISS 据时,输入 Wrapper 进程也按照上述过程进行操作,不同的是,它还需要将获得的数据传。这种将 ISS 集成到 SystemC 模拟环境中的做法避免了进程间通信(IPC)过多的问题。以往究[44-46]中也是通过 ISS 和总线封装接口来构建处理器内核模型,但 ISS 仍作为一个单独的运行,它和其它硬件模型的通信必须要通过 IPC 机制来完成,极大降低了仿真效率。但是 ISS 为基础构建处理器模型的方法存在着仿真精度的问题。因为,ISS 只能完成指令的功能仿能提供更多的时间信息用于系统性能评估。所以必须对 ISS 进行改进,不能只在指令这一仿真,需要更进一步地模拟组成指令的操作,从而提高整个系统模型的精度。
第二章 存储子系统性能仿真和优化技术综述体系结构描述语言实现这类方法使用体系结构描述语言(Architecture Description Language,ADL)来构建系统级处理器模型。nML[47],ISDL[48],EXPRESSION[49]和 LISA[50, 51]都属于典型的 ADL,其中 LISA 被广泛用于基于 SystemC 的处理器建模[52-56]。如图 2-4 所示,基于 LISA 实现的处理器模型被封装在一个SystemC 模块里,然后通过端口和 SystemC 的 TLM 总线模型连接。为了使 LISA 模型和 SystemC 模型交互运行,必须将 LISA 端口的应用程序接口(API)映射到 SystemC 的 TLM 接口。这种接口映射使得通讯接口的设计更加复杂并且降低了系统模型的仿真速度。为了提高仿真精度,LISA 处理器认为每一条指令都是由一系列微操作组成的,这种细分使得它可以更加精确地模拟指令执行过程中处理器和总线之间的行为。但是,由图 2-4 可见,基于 LISA 实现的处理器模型本身已经非常复杂,内部已经包含了总线和存储器的模型,使得这种方式构建的系统模型结构更加复杂。ARM 公司与 AXYS Design Automation, Inc.(LISA 语言的提出者 Vojin Zivojnovic 是该公司的主席和 CEO)基于 LISA 合作开发了 ARM 系列处理器的模型。这些模型可以封装成 SystemC 接口、融入 SystemC TLM 构建的仿真环境之中。如图 2-5 所示,ARM 公司电子系统级(ESL)设计工具中时钟周期级精度模型(CycleAccurate Model)的性能仿真精度可达 99%左右[57]。本文设计实现的 ARM 处理器模型与基于 LISA 实现的方法类似,通过将指令细分成一系列原子操作,获得时钟周期级的性能仿真精度。两者的区别在于,本文的模型完全使用 SystemC 实现,并没有借助 LISA 环境的支持。这使得整个系统模型的框架结构非常清晰,而且接口简单。实验表明本?
【引证文献】
相关博士学位论文 前1条
1 蒋湘涛;编译期SPM管理方法及功耗模型研究[D];中南大学;2009年
本文编号:2877502
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2877502.html