Soc芯片系统及实现Soc芯片中可配置缓冲器的方法技术方案

技术编号:7476089 阅读:198 留言:0更新日期:2012-07-04 19:59
本发明专利技术提供一种可灵活调整系统带宽的Soc芯片系统,包括:若干硬件引擎;一个或多个CPU模块;片内缓冲器:设置于Soc芯片内部,所述硬件引擎和CPU模块共享所述片内缓冲器;片外存储器:设置于Soc芯片外部;以及BDAM引擎:所述硬件引擎通过所述BDMA引擎在片内缓冲器和片外存储器之间交换数据;其中,所述片外缓冲器和片外存储器可被择一地用于存储所述硬件引擎中相邻上方块的相关信息,以适应系统不同带宽要求。本发明专利技术根据所需系统的应用需求和性能,通过特定软件来选择将硬件引擎中所需的上方块信息储存于片内缓冲器或者片外存储器中,以实现灵活地调整系统带宽,进而大大增强了系统的灵活性。

【技术实现步骤摘要】

本专利技术涉及Soc芯片技术,尤其涉及一种Soc芯片中硬件引擎与其它模块共享内部缓冲器的情况下,通过不同的配置方式调整其缓冲器的使用量及DRAM带宽的方法。
技术介绍
Soc芯片一般包括一颗或多颗嵌入式处理器(CPU)及若干硬件引擎。通常,对同一个应用,基于CPU的软件方式能提供最大的灵活性,但难以满足高性能的需求。因此,基于硬件引擎的实现方式由于在功耗,面积和速度等方面的优势在某些嵌入式Soc方案中成为主流,而CPU也被解放出来运行复杂的操作系统和软件。硬件引擎从实现上看可以分成两大类第一类,硬件引擎被实现为纯硬件模块的方式,通过标准的总线协议(如AMBA总线)与系统的其它部分进行通讯和数据交换,CPU对硬件引擎干预较少,灵活性也较小,硬件引擎和其它模块基本不能共享资源。第二类,硬件引擎和CPU较为紧密地耦合在一起,部分工作由运行在CPU之上的软件实现,例如硬件引擎被实现为CPU的协处理器。这类实现具有较高的软件灵活度,并且和其它模块可以共享一部分硬件资源。然而,现有技术中必须提前决定所需片内缓冲器的大小,从而导致了系统必须由硬件引擎以独占的方式使用这些片内缓冲器的局限性。
技术实现思路
为解决上述技术问题,本专利技术的目的在于提供一种实现Soc芯片中可配置缓冲器的方法,根据所需系统的应用需求和性能,灵活地调整系统带宽,增强了系统的灵活性。相应与所述方法,本专利技术的目的还在于提供一种可灵活调整系统带宽的Soc芯片系统。为实现上述专利技术目的之一,本专利技术的一种可灵活调整系统带宽的Soc芯片系统, 包括若干硬件引擎;一个或多个CPU模块;片内缓冲器设置于Soc芯片内部,所述硬件引擎和CPU模块共享所述片内缓冲器; 片外存储器设置于Soc芯片外部;以及BDAM引擎所述硬件引擎通过所述BDMA引擎在片内缓冲器和片外存储器之间交换数据;其中,所述片外缓冲器和片外存储器可被择一地用于存储所述硬件引擎中相邻上方块的相关信息,以适应系统不同带宽要求。作为本专利技术的进一步改进,所述硬件引擎和CPU模块通过交叉开关矩阵与所述片内缓冲器相连接。作为本专利技术的进一步改进,所述片内缓冲器可为SRAM (Static Random AccessMemory);所述片外存储器可为 DRAM (Dynamic Random Access Memory) 为实现本专利技术的另一专利技术目的,一种实现Soc芯片中的可配置缓冲器的方法,包括如下步骤51、判断当前系统的应用需求;52、若系统应用需求为提高软件性能,则将所述硬件引擎中至少多数上方块信息存储于片外存储器中;53、若系统应用需求为减小系统带宽,则将所述硬件引擎中至少多数上方块信息存储于片内缓冲器中。作为本专利技术的进一步改进,所述步骤SI具体为通过特定软件识别当前系统的需求,并相应地调整片内缓冲器的分配方式。作为本专利技术的进一步改进,所述步骤S2具体包括以下步骤由CPU模块或硬件引擎控制从片存储器中读入运行所需数据至所述片内缓冲器中; 运行硬件引擎,消耗片内缓冲器中的数据;由CPU模块或硬件引擎控制从所述片内缓冲器中将需要存储的数据存储至片外存储器中。作为本专利技术的进一步改进,所述上方块信息包括上方块的像素值、或者运动矢量。与现有技术相比,本专利技术的有益效果是本专利技术根据所需系统的应用需求和性能, 通过特定软件来选择将硬件引擎中所需的上方块信息储存于片内缓冲器或者片外存储器中,以实现灵活地调整系统带宽,进而大大增强了系统的灵活性。附图说明图I是本专利技术一实施方式中Soc芯片系统的硬件架构图2和图3是本专利技术一实施方式中采用片内缓冲器处理相邻两个块时系统的工作原理示意图4是本专利技术一实施方式中采用片外存储器处理相邻两个块时系统的工作原理示意图5是本专利技术一实施方式中实现Soc芯片中的可配置缓冲器的方法的工作流程图6是图5所式的实施方式中步骤S2的具体步骤流程图。具体实施例方式以下将结合附图所示的具体实施方式对本专利技术进行详细描述。但这些实施方式并不限制本专利技术,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本专利技术的保护范围内。考虑利用硬件引擎按块进行数据处理的情况,例如在多媒体应用领域的Soc中, 往往按块(或宏块)来组织数据。我们以视频编解码器为例进行讨论,但本方案也适用于其他按块处理数据的应用。现代的视频编解码标准如H. 264,VC-I, AVS等都依赖于相邻块或宏块的信息(如像素值,运动矢量,量化参数等)。在编解码过程中,需要在当前块(宏块)编解码时将其上方块(宏块)的相关信息读入编解码引擎。请参照图I所示,在本专利技术一实施方式中,一种可灵活调整系统带宽的Soc芯片系统,包括若干硬件引擎102;一个或多个CPU模块101 ;片内缓冲器(Buffer) 104:设置于Soc芯片内部,硬件引擎和CPU模块共享片内缓冲器;优选地,在本实施方式中,硬件引擎和CPU模块通过交叉开关矩阵105 (Crossbar)与所述片内缓冲器相连接,实现读写操作,并在软件的协助下共享片内缓冲器(Buffer)内存储的数据。硬件引擎从buffer中读取数据不消耗片外存储器的带宽;对于CPU而言,利用 buffer来存储常用数据可以避免出现cache miss,有助于提高软件性能,并且使软件的性能更容易预期。片外存储器(未图示)设置于Soc芯片外部;在本专利技术优选的实施方式中,所述片内缓冲器可为SRAM (Static Random Access Memory);所述片外存储器可为DRAM (Dynamic Random Access Memory)。BDAM引擎(Buffer DMA引擎(简称BDMA)) 103 :硬件引擎通过BDMA引擎在片内缓冲器和片外存储器之间交换数据;其中,所述片外缓冲器和片外存储器可被择一地用于存储所述硬件引擎中相邻上方块的相关信息,以适应系统不同带宽要求。存储相邻上方块(宏块)的信息有两种方式第一种将整行的相关信息以line buffer的方式存储在硬件视频编解码器中(即存储于片内缓冲器中)。这种方式完全节省了 DRAM带宽,但所需的存储空间最大,并且必须提前确定所支持的最大视频分辨率;第二种方式将所有的相邻上方块(宏块)相关信息存储在片外存储器(如DRAM)中,在对当前块 (宏块)编解码时,提前将所需信息读入硬件引擎,这种方式消除了对视频分辨率的限制,但所需DRAM带宽较大。所以针对上述的问题,本专利技术就必须根据系统的实际需求来选择将数据存储于片内缓冲器中或者片外存储器中。BDMA引擎可由CPU或硬件引擎控制,在片内缓冲器 (Buffer)和片外存储器之间进行数据的交互。例如硬件视频编解码器中存在多种相邻上方块(宏块)的数据,根据需要,这些数据可通过BDMA的方式在片外存储器DRAM和片内缓冲器 (Buffer)之间传输。对于需要提高软件性能的应用,系统将把尽可能多的buffer分配给CPU。同时,大多数甚至全部硬件引擎所需的line buffer信息都被存储在片外存储器中,并在CPU或硬件引擎的控制之下,在被使用之前由BDMA引擎读入片内buffer。SOC内部buffer中按照 ring buffer的方式来进行管理。图2和图3描绘了处理相邻两个块时各部分的关系。值得一提本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:余红斌袁宏骏妙维杨峰松
申请(专利权)人:苏州希图视鼎微电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术