用于数据解码的设备和方法与流程

文档序号:17794988发布日期:2019-05-31 20:41阅读:134来源:国知局
用于数据解码的设备和方法与流程

技术领域

实施例涉及一种用于降低带宽的数据解码设备和方法。



背景技术:

通常,在解码期间,包括在解码设备中的处理器块和硬件块针对外部存储器发送或接收数据。

当处理器块与存储器之间的数据量增加时,由于直接存储器存取(DMA)设置等待时间(latency)和访问等待时间,导致数据传输率降低,从而劣化系统性能。

当至少两个处理器块和硬件块同时向存储器请求数据传输时,可能不会根据最佳编码顺序来执行数据传输。因此,会延迟解码。

使用多个处理器块和硬件块的通用解码设备可使用在每个处理器块和每个硬件块中提供的DMA控制器来访问存储器。由于通用解码设备通常以矩形形式来传输数据,所以在一个水平行的数据被传输后,开销被产生,直到下一行数据的传输,相应地,增加了数据传输时间。

当在通用解码设备中,至少两个处理器块或硬件块向存储器请求传输时,由于解码设备与存储器之间的通信未被定义,因此仅根据由DMA控制器设置的顺序来执行数据传输。



技术实现要素:

根据一个或多个实施例的一方面,提供一种数据解码设备,其包括:至少一个处理器块、至少一个硬件块、以及存储器处理单元,其中,所述存储器处理单元控制所述至少一个处理器块或所述至少一个硬件块访问存储器并以最小的延迟读取或写数据。

根据一个或多个实施例的一方面,提供一种数据解码设备,包括:至少一个处理器块、至少一个硬件块、以及存储器处理单元,其中,所述存储器处理单元用于控制所述至少一个处理器块或所述至少一个硬件块访问存储器并以最小的延迟读取或写数据。

所述存储器处理单元可控制并行地将数据写入DRAM以及从DRAM读取数据。

所述存储器处理单元可包括:仲裁单元,用于从所述至少一个处理器块或所述至少一个硬件块选择用于写数据的块;存储器控制单元,用于将所选择的至少一个处理器块的数据或所选择的至少一个硬件块的数据传输到内部缓冲器;以及分片单元,用于对所选择的至少一个处理器块的数据或所选择的至少一个硬件块的数据进行分片(tile),使得从所述至少一个处理器块或所述至少一个硬件块传输到内部缓冲器的数据段(data piece)的数量被最大化。存储器控制单元可将分片数据存储在存储器中。

所述存储器处理单元可包括:仲裁单元,用于从所述至少一个处理器块或所述至少一个硬件块选择用于读取数据的块;存储器控制单元,用于将要被所选择的处理器块或硬件块读取的分片数据存储在内部缓冲器或高速缓冲存储器中;去分片单元,用于对分片数据进行去分片(untile),使得传输到所述至少一个处理器块或所述至少一个硬件块的数据段的数量被最大化。存储器控制单元可将去分片数据传输到所选择的处理器块或硬件块。

存储器控制单元可对去分片数据进行填充(pad)并将填充后的数据传输到所选择的处理器块或硬件块。

仲裁单元可在考虑所述至少一个处理器块和所述至少一个硬件块的数据传输顺序的情况下,选择用于读取或写数据的块。

所述至少一个处理器块中的每一个或所述至少一个硬件块中的每一个可包括存储器读取级别寄存器和存储器写入级别寄存器。

当针对所述至少一个处理器块或所述至少一个硬件块的数据读命令被接收时,仲裁单元可增加接收所述数据读命令的块的存储器读取级别寄存器值。

仲裁单元可从所述至少一个处理器块或所述至少一个硬件块中选择具有最大存储器读取级别寄存器值的块。

当针对所述至少一个处理器块或所述至少一个硬件块的数据写命令被接收时,仲裁单元可增加接收所述数据写命令的块的存储器写入级别寄存器值。

仲裁单元可从所述至少一个处理器块或所述至少一个硬件块中选择具有最大写入级别寄存器值的块。

根据一个或多个实施例的一方面,提供一种数据解码方法,其包括:维持至少一个处理器块,维持至少一个硬件块,以及使用专用存储器处理单元控制所述至少一个处理器块或所述至少一个硬件块访问存储器并以最小的延迟读取或写数据。

根据一个或多个实施例的一方面,提供一种数据解码方法,其包括:读取至少一个处理器块中的每一个或至少一个硬件块中的每一个的存储器写入级别寄存器值,通过比较所述至少一个处理器块中的每一个或所述至少一个硬件块中的每一个的存储器写入级别寄存器值,选择具有最大存储器写入级别寄存器值的块,将所选择的块的数据写入存储器中。

根据一个或多个实施例的一方面,提供一种数据解码方法,其包括:读取至少一个处理器块中的每一个或至少一个硬件块中的每一个的存储器读取级别寄存器值,通过比较所述至少一个处理器块中的每一个或所述至少一个硬件块中的每一个的存储器读取级别寄存器值,选择具有最大存储器读取级别寄存器值的块,从存储器读取数据并将读取的数据传输到所选择的块。

根据一个或多个实施例的另一方面,提供至少一个非暂态计算机可读介质,其存储计算机可读指令以实现一个或多个实施例的方法。

附图说明

通过以下结合附图对实施例的描述,这些和/或其它方面将变得清楚并且更容易理解,其中:

图1示出根据实施例的数据解码设备;

图2详细示出根据实施例的存储器处理单元的结构;

图3示出根据实施例的通过分片或去分片进行的数据转换的例子;

图4示出根据实施例的仲裁单元;

图5示出根据实施例的仲裁单元的存储器写入方法;以及

图6示出根据实施例的仲裁单元的存储器读取方法。

具体实施方式

现在详细参考各实施例,其例子在附图中示出,其中,相同的附图标记始终指示相同的元件。

在各实施例中,如果确定相关的公开技术或配置的详细描述不必要地使得实施例的主题变得模糊,那么将省略所述详细描述。下面将使用的术语是基于它们在本发明中的功能来定义的,并且可根据用户、用户的意图或实践进行改变。因此,术语的定义应当基于整个说明书来确定。

图1示出根据实施例的数据解码设备。

参考图1,数据解码设备包括:至少一个处理器块110、至少一个硬件块120以及存储器处理单元(存储器处理器)130,其中,所述存储器处理单元(存储器处理器)130用于控制至少一个处理器块110或至少一个硬件块120访问存储器并以最小的延迟读取或写数据。图1还示出动态随机存取存储器(DRAM)控制单元(DRAM控制器)125,其可通过总线接口(I/F)135与至少一个处理器块110、至少一个硬件块120和存储器处理单元130进行通信。I/F表示接口。

在根据实施例的数据解码设备中,对存储器的访问完全是通过存储器处理单元30来执行的,而不是至少一个处理器块110或至少一个硬件块120直接访问存储器。

数据解码设备可通过存储器处理单元130以最小延迟传输存储器的数据,并且监视至少一个处理器块110和至少一个硬件块120的当前数据传输状态。因此,存储器的数据可按照最佳顺序被传输。

图2示出根据实施例的存储器处理单元130的详细结构。

参考图2,存储器处理单元(存储器处理器)130可控制并行地将数据写入DRAM以及从DRAM读取数据。

在下文中,将描述使用存储器处理单元130从至少一个处理器块或至少一个硬件块210读取数据和将数据写入存储器的处理。

存储器处理单元130可使用仲裁单元(调解单元、调解器或仲裁器)220从至少一个处理器块和至少一个硬件块210选择用于写数据的块。

当将数据写入存储器时,存储器处理单元130可将由仲裁单元220选择的块(块读取212)的数据传输到内部缓冲器。

存储器处理单元130可使用存储器控制单元(存储器控制器)230将所选择的处理器块或硬件块的数据传输到内部缓冲器。

存储器处理单元130可对所选择的处理器块或硬件块210的数据进行分片,使得从至少一个处理器块或至少一个硬件块210传输到内部缓冲器的数据段的数量被最大化。

存储器处理单元130可通过分片单元(分片器)240来链接数据,从而最大化将一次传输的数据段的数量。

存储器处理单元130可使用存储器控制单元230来将分片数据存储在存储器(存储器写入214)中。

在下文中,将描述使用存储器处理单元130从存储器读取数据并将数据写入至少一个处理器块或至少一个硬件块210的处理。

存储器处理单元130可使用仲裁单元220从至少一个处理器块或至少一个硬件块210选择用于读取数据的块。

存储器处理单元130可使用存储器控制单元230将要被所选择的处理器块或硬件块读取的分片数据存储在内部缓冲器或高速缓冲存储器260中。

例如,当读取存储器(存储器读取216)时,存储器处理单元130可读取存储器的数据,并将读取的数据存储在内部缓冲器或高速缓冲存储器中,其中,所述数据是由仲裁单元220所选择的处理器块或硬件块所需的。这里,存储器的数据可被分片和存储。

存储器处理单元130可使用去分片单元(去分片器)250对分片数据进行去分片,使得将传输到至少一个处理器块或者至少一个硬件块210的数据段的数量被最大化。

存储器处理单元130可使用存储器控制单元230将去分片数据传输到所选择的处理器块或硬件块210。

存储器处理单元130可使用填充单元(填充器)270对去分片数据进行填充,并使用存储器控制单元230将填充后的数据传输到所选择的处理器块或硬件块210。

也就是说,分片数据可通过去分片功能被转换为原始的形式。可根据需要添加填充功能,使得数据可被发送到至少一个处理器块和至少一个硬件块210。

参考图2,动态随机存取存储器(DRAM)控制单元(DRAM控制器)225可通过主I/F235的方式与存储器处理单元130进行通信。存储器处理单元130可通过总线I/F135的方式与至少一个处理器块或至少一个硬件块210进行通信。I/F表示接口。

图3示出根据实施例的通过分片或去分片进行的数据转换的例子。

参考图3,根据实施例的数据解码设备可链接分开的数据Y、U和V,从而产生分片数据或去分片数据。

图4示出根据实施例的可与至少一个处理器块和至少一个硬件块410进行通信的存储器处理单元130的仲裁单元(仲裁器)420。

参考图4,在考虑数据传输顺序的情况下,仲裁单元420可从至少一个处理器块和至少一个硬件块410选择用于读取或写数据的块。

至少一个处理器块中的每一个和至少一个硬件块410中的每一个可包括存储器读取级别寄存器和存储器写入级别寄存器。

仲裁单元420可包括存储器读取级别检测单元440。当针对至少一个处理器块或至少一个硬件块410的数据读命令被接收时,存储器读取级别检测单元440可增加接收数据读命令的块的存储器读取级别寄存器值。

仲裁单元420可从至少一个处理器块和至少一个硬件块410选择具有最大存储器读取级别寄存器值的块。

仲裁单元420可包括存储器写入级别检测单元450。当针对至少一个处理器块或至少一个硬件块410的数据写命令被接收时,存储器写入级别检测单元450可增加接收数据写命令的块的存储器写入级别寄存器值。

仲裁单元420可从至少一个处理器块和至少一个硬件块410选择具有最大存储器写入级别寄存器值的块。

例如,当特定硬件块410的一个块的数据将要被写入存储器中时,仲裁单元420可将存储器写入级别寄存器值加1。

当将要被传输的块被另外产生时,仲裁单元420可连续地增加存储器写入级别寄存器值。当由存储器处理单元130完成一个块的传输时,仲裁单元420可将存储器写入级别寄存器值减1。

根据实施例,特定处理器块或硬件块410的数据在不被传输的情况下没有被累积,使得数据解码设备的整体性能提高。因此,存储器处理单元130可监视所有处理器块和硬件块410的存储器写入级别寄存器或存储器读取级别寄存器,并对保持有最大值的块赋予优先级。

参考图4,动态随机存取存储器(DRAM)控制单元(DRAM控制器)425可通过主I/F435的方式与存储器处理单元130的仲裁单元420进行通信。存储器处理单元130可通过总线I/F415的方式与至少一个处理器块或至少一个硬件块410进行通信。I/F表示接口。

在下文中,将描述仲裁单元420的存储器写入方法。

图5示出根据实施例的仲裁单元420的存储器写入方法。

参考图5,在操作510中,仲裁单元420可读取至少一个处理器块中的每一个或至少一个硬件块410中的每一个的存储器写入级别寄存器值。

在操作520中,仲裁单元420可监视所有的存储器写入级别寄存器值。

在操作530中,通过比较所有的存储器写入级别寄存器值,仲裁单元420可选择具有最大存储器写入级别寄存器值的块。

在操作540中,仲裁单元420可将所选择的块的数据写入存储器中。

在操作550中,仲裁单元420可比较各存储器写入级别寄存器值,并且,当存储器写入级别寄存器值不全是零时,重复前述操作。

在下文中,将描述仲裁单元的存储器读取方法。

图6示出根据实施例的仲裁单元420的存储器读取方法。

参考图6,在操作610中,仲裁单元420可读取至少一个处理器块中的每一个或至少一个硬件块410中的每一个的存储器读取级别寄存器值。

在操作620中,仲裁单元420可监视所有的存储器读取级别寄存器值。

在操作630中,通过比较所有的存储器读取级别寄存器值,仲裁单元420可选择具有最大存储器读取级别寄存器值的块。

在操作640中,仲裁单元420可从存储器读取数据并将读取的数据传输到所选择的块。

在操作650中,仲裁单元420可比较各存储器读取级别寄存器值,并且,当存储器读取级别寄存器值不全是零时,重复前述操作。

存储器处理单元130可通过在数据传输期间降低不必要的开销来减小存储器带宽,并且可在至少一个处理器块和至少一个硬件块中设置最优顺序。因此,可提高解码效率。

例如,当根据实施例的存储器处理单元130被应用于包括H.264/AVC的多编解码器系统时,在系统总线与至少一个处理器块和硬件块之间的差别很大的环境中,可减少解码时间。AVC表示高级视频解码。

根据实施例,在存储器传输期间,存储器带宽可被最小化。

另外,通过首先将数据传输到最急切地需要所述数据的处理器块或硬件块,可提高数据解码设备的整体性能。

本文中描述的设备中的处理、功能、方法和/或软件可被记录、存储或固化在(计算机可读记录介质)中,其中,所述一个或多个非暂态计算机可读存储介质包括将由计算机实现的程序指令(计算机可读指令),以使一个或多个处理器运行或执行所述程序指令。所述介质还可包括单独的或与所述程序指令结合的数据文件、数据结构等。记录在介质上的程序指令可是出于实施例的目的特别设计和构建的,或者可以是计算机软件领域的技术人员众所周知并可用的类型。非暂态计算机可读存储介质的例子包括:诸如硬盘、软盘和磁带的磁介质;诸如CD ROM盘和DVD的光介质;诸如光盘的磁光介质;特别配置用来存储和执行程序指令的硬件装置,诸如只读存储器(ROM)、随机存取存储器(RAM)、闪存等。程序指令的例子既包括诸如由编译器产生的机器代码,也包括包含可由计算机使用解释器运行的高级代码的文件。为了执行上述的操作和方法,所描述的硬件装置可被配置用来充当记录、存储或固化在一个或多个计算机可读存储介质中的一个或多个软件模块,反之亦然。另外,非暂态计算机可读存储介质可分布于通过网络连接的计算机系统中,并且计算机可读代码或程序指令可以分散的方式被存储和运行。另外,计算机可读存储介质还可在至少一个专用集成电路(ASIC)或现场可编程门阵列(FPGA)中实现。

尽管已经示出并描述了实施例,但是,本领域的技术人员将会认识到,在不脱离本公开的原理和精神的情况下可在这些实施例中进行改变,其中,本公开的范围由权利要求或其等同物限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1