CN105431831A - 数据存取方法和利用相同方法的数据存取装置 - Google Patents
数据存取方法和利用相同方法的数据存取装置 Download PDFInfo
- Publication number
- CN105431831A CN105431831A CN201580001309.5A CN201580001309A CN105431831A CN 105431831 A CN105431831 A CN 105431831A CN 201580001309 A CN201580001309 A CN 201580001309A CN 105431831 A CN105431831 A CN 105431831A
- Authority
- CN
- China
- Prior art keywords
- data
- array
- data cell
- memory
- length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3066—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40622—Partial refresh of memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供一种数据存取方法。方法包含:获取分成多个区域的数组;以及对于每个区域,将表示区域的多个数据单元写入存储器装置的片段,并记录对应于区域的长度信息和数据安排信息,其中在表示区域的数据单元上执行的突发存取的突发长度是根据长度信息定义的。
Description
【交叉参考相关引用】
本申请要求2014年2月17日提交的序列号为61/940,695的美国申请的优先权,上述申请参考并入本文。
【技术领域】
本发明涉及数据存储,且特别地,涉及数据存取方法和利用相同方法的数据存取装置。
【背景技术】
同步动态随机存取存储器(SynchronousDynamicRandomAccessMemroy,SDRAM)是与计算机***的***总线同步的动态随机存取存储器(DRAM)。市场上有SDRAM的若干类型或家族,包含低功率DDR(LPDDR)(即,移动DDR)和双数据率同步动态随机存取存储器(DDRSDRAM)。不同类型的SDRAM在某些方面不同于彼此(例如,速度、功耗和价格等)。
在数据存取(例如,图像存取或程序存取)中,数组通常分割为多个数据块用于数据存取。数据块的数据大小通常不同。另外,每个数据块可以以预定或顺序或随机顺序从SDRAM存取。在一些应用中,数据块可以不仅存取一次而是很多次。在一些应用中,数据块可以由第一处理引擎以第一优选存取行为写入,由第二处理引擎以第二优选存取行为读取。存取行为的示例是视频编解码和GPU处理的基于块的存取。存取行为的示例是显示处理的光栅扫描。因此,需要一种从SDRAM存取数据的数据存取方法。
【发明内容】
下文的实施例参考附图给出详细描述。
描述一种数据存取方法的实施例,包含:获取分成多个区域的数组;以及对于每个区域,将表示区域的多个数据单元写入存储器装置的片段,并记录对应于区域的长度信息和数据安排信息,其中在表示区域的数据单元上执行的突发存取的突发长度是根据长度信息定义的。
提供数据存取方法的另一实施例,包含:获取分成多个区域的数组;以及对于多个区域的每个,将表示区域的多个数据单元写入存储器装置的片段,其中对于至少一个数据单元的写入处理可开始地址是基于对应数据单元的长度信息生成的。
揭示一种在具有存储器数据处理***中存取数据的方法的另一实施例,包含根据第一存储器引脚、表示第一数组的多个区域的多个数据单元,通过存取在存储器装置上执行存取操作;根据第二存储器引脚,表示第二数组的多个区域的多个数据单元,通过存取在存储器装置上执行存取操作;以及根据数据单元的长度信息执行存取操作。
【附图说明】
通过阅读后续详细描述和参考附图的示例,可以更全面的理解本发明,其中:
图1是根据本发明的实施例的数据存取***1的框图;
图2是数据存取装置存储器布局示意图;
图3A、3B和3C图示根据本发明的若干实施例的数组的任何区域中的不同的数据类型的布局;
图4A和4B显示根据本发明的实施例的由2数据类型分割的图像数组上的图像对象;
图5是根据本发明的实施例的数据存取方法5的存储器布局示意图;
图6A和6B是根据本发明的另一实施例的数据存取方法6的存储器布局示意图;
图7A和7B是根据本发明的另一实施例的数据存取方法7A和7B的存储器布局示意图;
图8A、8B和8C是根据本发明的另一实施例的数据存取方法8的存储器布局示意图;
图9是根据本发明的实施例的图示数据存取方法9的存储器片段的存储器布局示意图;
图10是根据本发明另一实施例的图示数据存取方法10的存储器片段的存储器布局示意图;
图11是根据本发明另一实施例的图示数据存取方法11的存储器片段的存储器布局示意图;
图12是根据本发明另一实施例的图示数据存取方法12的存储器片段的存储器布局示意图;
图13是根据本发明的实施例的数据存取方法13的流程图;
图14是根据本发明的实施例的地址生成方法14的流程图;
图15是根据本发明的另一实施例的数据存取方法15的流程图;
图16是根据本发明的实施例的数据存取装置的写入电路的地址生成电路16的框图;
图17A和17B是根据本发明的实施例的数据存取装置的写入电路的长度缓存17A和17B的框图;
图18是根据本发明的实施例的数据存取装置的读取电路的地址生成电路18的框图;
图19是根据本发明的实施例的数据存取装置的读取电路的长度缓存19的框图;
图20A、20B和20C分别是一组未压缩数据、压缩数据和长度信息;
图21是根据本发明的实施例的图示数据存取方法的存储器布局示意图21;以及
图22是根据本发明另一实施例的图示数据存取方法的存储器布局示意图22。
【具体实施方式】
下文的描述是实施本发明的最佳模式。此描述是为了说明本发明的一般原理,不能被认为是限制。本发明的范围最好参考所附的权利要求来确定。
如本文所使用的,术语“芯片”还可被称作操作于个人计算机、小型计算机(例如,移动电话、MP3播放器以及手持游戏控制台)、或移动计算机(例如,膝上计算机)、或嵌入式计算机(例如,工厂控制器、机动车辆控制器和玩具)的集成电路。为了简单和一致,我们将在全文使用术语计算机。
图1根据本发明的实施例的数据存取***1的框图。数据存取***1可以包含于计算机、游戏***、智能电话、平板电脑、电视***、多媒体播放***或交互式视频***。数据存取***1包含芯片10、相机传感器12、显示器装置14(例如,液晶体显示器(LCD))以及芯片外存储器16(例如,硬盘驱动)。芯片10连接到相机传感器12以处理图像数据,连接到显示器装置14以显示视觉图像,以及连接到芯片外存储器16以存取外部数据。需意识到图1中的总线连接仅仅描述了一种可能的实现,并不打算用作限制本发明。
在本实施例中,芯片10包含多个数据存取装置,例如,中央处理单元(CPU)100、视频编码器102、视频解码器104、图形处理单元(GPU)106、图像信号处理或(ISP)110、显示控制器112以及数字信号处理器(DSP)114。另外,芯片10包含芯片上存储器108和管理芯片外存储器16的操作的芯片外存储器控制器116。然而,其他电路和组件可以出现在芯片10中。数据存取装置可根据本申请揭示的数据存取方法存取数据到芯片上存储器108和芯片外存储器16,或从芯片上存储器108和芯片外存储器16存取数据。
如图1所示,每个数据存取装置包含数据的代理(例如,DA1000、DA1020、DA1040、DA1060、DA1100、DA1120和DA1140)用于提供直接存储器存取(DMA)。在一些实施例中,数据代理可以包含或可以不包含数据压缩和/或解压缩的功能。此外,每个数据存取装置包含地址生成电路(例如,AG10000、AG10200、AG10402、AG10602、AG11000、AG11202和AG11402)用于根据数据存取行为生成地址数据。一些数据存取装置包含长度缓存(例如,LC10400、LC10600、LC11200和LC11400),其中长度缓存可以是缓存存储器或长度缓冲器。例如,显示控制器112以非常常规和可预测的方式存取图像数据,因此LC11200可以是长度缓冲器。在另一示例中,视频解码器104和GPU106以非常规和非可预测的方式存取图像数据,因此,LC10400和LC10600可以是缓存存储器。
CPU100控制芯片10中的所有组分的操作。芯片上存储器108暂时存储由CPU100执行的部分操作***(OS)程序或应用软件程序(在下文中被称作应用)。此外,芯片上存储器108储存由CPU100和/或芯片10中的其他组分要求的各种数据。芯片上存储器108和芯片外存储器16可以是动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双数据率(DDR)SDRAM(例如,DDR1、DDR2、DDR3、DDR4、低功率DDR(DDR))、其它类型的SDRAM或同步图形RAM(SGRAM)。
在一些实施例中,每个数据存取装置的每个读取端口(未示出)和/或写入端口(未示出)包含数据代理。在数据通过量很低的其它实施例中,两个或者更多的读取端口(未示出)和/或写入端口(未示出)可共享相同的数据代理或部分数据代理。例如,数据存取装置的读取端口和写入端口可共享公共地址生成电路,但使用单独的长度缓存。
芯片上存储器108和芯片外存储器16的存取的数据可具有固定的长度或可变长度。例如,为了减少传送的数据带宽,数据在写入芯片外存储器16之前被压缩,导致其数据长度可变。
芯片外存储器16的数据存取性能是由存取数据所要求的处理的数目、每个处理的突发长度和芯片外存储器16的存取的数据的存储位置来确定。一般而言,数据存取性能随着一个突发转移的总数据处理的数目降低而增加。突发长度应该是(2的次方),例如1、2、4、8、16字,或其他预定长度的数据字。对于2数据字的突发长度,首先存取请求的字,紧接着存取对齐的数据块中的第二字。当转移大量数据时,总处理的数目可通过增加突发长度和允许单个处理以跨越(span)多于一个数据字来减小。而且,当突发转移可以在单个处理而不是两个或者更多处理中完成时,数据存取性能也将增加。
另外,由于数据是由突发转移来发送,且每个数据突发总是存取开始于多个突发长度的连续字的突发长度的地址对齐的块,当数据突发从芯片外存储器16的地址对齐的块的开始处存取时,数据存取性能增加。例如,对于64字节的数据块,如果数据突发的开始地址是64字节对齐的,则数据处理将涉及整个64字节的块,然而,如果数据突发的开始地址不是64字节对齐的,则芯片外存储器16将要求扩展的时间以提供请求的数据。结果,当数据突发开始于对齐的块时,存取性能增加。
当写入数据到芯片外存储器16时,数据存取装置可根据预定义的存储器引脚安排数据进入芯片外存储器16且保持数据安排信息,这样以后,数据可以根据预定义的存储器引脚和/或数据安排信息从芯片外存储器16读出,导致减小数量的总数据处理以及减少的存取时间,由此增加存储器利用率和数据存取性能。
数据安排信息可指示被写入到芯片外存储器16的预定义的片段的数据的写入顺序,或由数据采用的存储器引脚,在能够识别数据以后,允许数据存取装置以随机顺序写入数据到芯片外存储器16。芯片外存储器16的存储器引脚表示区域的数据的开始位置和写入方向,以及定义区域的数据在存储器片段中将被写入的区域,允许数据存取装置以随机顺序多次从预定义的存储器片段存取数据,其中每个数据可具有不同的长度。由数据存取装置采用的使用数据安排信息用于从芯片外存储器16存取数据的数据存取方法详细描述于图5、6A、6B和15。由数据存取装置采用的使用预定存储器安排用于从芯片外存储器16外存取数据的数据存取方法详细描述于图7A、7B、8A、8B、8C、9、10、11、12、13、14和15。
具体地,实施例中的数据存取方法寻址可以获取并分到多个区域的数组,且对应地,多个存储器片段分配在芯片外存储器16,每个存储器片段分配到对应区域。对于每个区域,数据存取装置可将表示区域的数据单元写入到芯片外存储器16的对应片段,且记录对应于区域的长度信息和数据安排信息。在表示区域的数据上执行的突发存取的突发长度是根据长度信息来定义的。在一些实施例中,多个区域大小基本相等,且多个片段大小基本也相等。在其它实施例中,多个区域是大小不同的,且多个片段大小不同。数据安排信息指示数组的相同区域中的数据的写入顺序和/或存储器引脚。
尽管数据存取方法可应用于本申请实施例的芯片外存储器16,申请不限于芯片外存储器16。然而,数据存取方法还可应用到芯片上存储器108,特别地当芯片上存储器108是嵌入的DRAM或其它类型的DRAM装置。
图2是根据本发明实施例的存储器装置的存储器布局图表。存储器装置可以是图1中的芯片外存储器16,包含多个字大小为128比特或16字节的存储器字,其中每8个字分组到一个存储器片段用于保持区域数据。例如,具有地址从A到(A+7)的存储器字形成存储器片段用于存取数据单元。为了提供增加的数据存取性能,数据存取装置配置为从每个存储片段的基本地址A存取数据单元,而不是非基础地址(例如,(A+1))。
具体而言,芯片外存储器16的数据存取性能由要求用于存取数据单元的处理的数目、每个处理的突发长度以及芯片外存储器16中存取的数据单元的存储位置来确定。对于2数据字的突发长度,请求的字首先被存取,紧接着存取对齐的数据块中的的第二字。当转移大量数据时,总处理的数目可通过增加突发长度并允许单个处理以跳过多于一个数据字而减小。而且,当数据转移可以在单个处理而不是两个或更多处理中完成时,数据存取性能也将增加。
另外,因为数据单元由突发转移发送,且每个数据突发总是存取开始于多个突发长度的连续字的突发长度的地址对齐的块,当数据突发从芯片外存储器16的地址对齐的块开始存取时,数据存取性能增加。例如,对于64字节的数据块,如果数据突发的开始地址是64字节对齐的,则数据处理将设计整个64字节块,然而如果数据突发的开始地址不是64字节对齐的,则芯片外存储器16将要求扩展的时间以提供请求的数据。结果,当数据突发从对齐的块开始时,存取性能增加。
参考图3A、3B和3C,根据本发明的若干实施例图示一组数据(在下文中,被称作“数组”)的多个区域中的两个不同的数据单元T1和T2的布局。在存取数组之前,数组如在图3A、3B或3C中所描述的分成多个区域。每个区域包含在芯片外存储器16的对应存储器片段中将存取的数据单元。其结果是,数据存取装置将存储器片段分配为大小相同或超过对应区域的大小。在一些实施例中,区域的数据大小,以及区域中数据单元T1和T2的数据大小可以由数据存取装置调整的。例如,数据单元的大小可以从1到512比特变化。假设存储器片段中的每个存储器条目具有128比特,则130比特的数据单元可占据两个存储器条目。
在图3A,数组3A分成多个区域,其中每个区域还垂直地分为两个相等的子区域,左边子区域包含数据单元T1以及右边子区域包含数据单元T2。相同区域中的数据单元T1和T2将在一个或多个突发转移中的对应存储器片段中被存取。例如,每个区域可包含四字未压缩的数据单元T1和四字未压缩的数据单元T2,其可以从在图2中从地址A到地址(A+7)寻址的存储器片段存取。在一些实施例中,数据单元在写入到对应存储器片段之前压缩。结果,数据单元可具有固定的或可变数据长度。
在图3B中,数组3B分成多个区域,其中每个区域还水平地分成两个相等子区域,上边子区域包含数据单元T1以及下边子区域包含数据单元T2。相同区域中的数据单元T1和T2将在一个或多个突发转移中从相同存储器片段存取。
在图3C中,2维数组3C变平坦为1维数组,并分为多个相同大小的子区域,其中每对相邻的子区域还群组为区域。对于每个区域,左边子区域包含数据单元T1以及右边子区域包含数据单元T2。相同区域中的数据单元T1和T2将在一个或多个突发转移中从相同存储器片段存取。尽管图3A、3B和3C中的实施例显示区域包含仅仅两个数据单元,本领域技术人员将意识到两个或者更多的数据单元可用于识别数组的每个区域中的两个或者更多子区域。
在某些实施例中,数据存取方法可以由GPU106采用,在其中图像数组的区域可以以随机顺序重复地被读取、修改以及写回到芯片外存储器16。如图4A所示,四个对象绘制在显示器上。具体地,方形44、矩形46、圆形42和三角形40绘制在序列中。GPU106可能需要存取区域的数据单元若干次以更新图像数组。例如,GPU106存取包含重叠的对象或部分的对象的区域(例如,包含圆形42和三角形40的部分的区域)多次,以响应于由重叠对象做出的修改,即,增加三角形40。
以图4B作为示例,其根据本发明的实施例图示了三角形40和圆形42由两个数据单元分割。圆形42的部分首先绘制在子区域(1、4),(2、4),(1、5),(2、5),(3、5),(1、6),(2、6),(3、6),然后三角形40的部分绘制在子区域(2、4)、(2、5)、(3、5)。GPU106将表示子区域(1、4),(2、4),(1、5),(2、5),(3、5),(1、6),(2、6),(3、6)上的圆形42的数据单元写入到芯片外存储器16的对应片段,然后从芯片外存储器16的对应片段读取子区域(2、4),(2、5),(3、5)的数据单元,修改读取的子区域,且写回到芯片外存储器16的对应片段。换句话说,子区域(2、4),(2、5),(3、5)由GPU106两次修改并写入到芯片外存储器16。结果,子区域(2、4),(2、5),(3、5)的数据单元的值和大小最有可能改变。在另一实施例中,缓存与GPU106集成在一起。在本实施例中,子区域(2、4),(2、5),(3、5)可以为圆形42和三角形40更新两次,在缓存中的而不是芯片外存储器16中。缓存中的子区域(2、4),(2、5),(3、5)然后由于缓存替代机制被替代并被写入到芯片外存储器16,或由于由应用软件的需求被冲洗(flush)并写入到芯片外存储器16。下面段落中揭示的数据存取方法可以采用以处理在图4A和4B中描述示例的多次存取、随机存取以及可变长度数据处理。
图5是根据本发明的实施例数据存取方法5的存储器布局示意图。数据存取方法5通过采用数据安排信息以识别储存在芯片外存储器16的存储器片段中的数据单元的写入顺序,允许随机数据存取和可变数据长度数据存储。
图5中的存储器布局示意图描绘了芯片外存储器16的5个存储器片段,每个存储器片段是8字长,且分配用于数组的对应区域中的2个数据单元。2个数据单元分别由斜线和反斜线阴影区域表示。在存取芯片外存储器16之前,数据存取装置已经为数组的5个区域分配芯片外存储器16的5个存储器片段。因为数据存取方法5可以采用用于随机以及连续的数据存取,其可允许第一或第二数据单元在第一位置被写入到存储器片段。其结果是,数据存取方法5引入数据安排信息以指示数据单元是否已经被写入存储器片段,以及哪个数据单元首先被写入到存储器片段,在一些实施例中,当第一数据单元在第一位置写入对应存储器片段时,数据安排信息指示参数Leading=0,然而,当第二数据单元写入到第一位置的对应存储器片段时,数据安排信息指示参数Leading=1。在另一实施例中,缓存或数据输出缓冲器可使用。数据长度为2(DL=2)的第一数据单元写入片段1,然后,数据长度为1(DL=1)的第一和第二数据单元写入片段1。这两个数据单元以数据安排信息Leading=0写入缓存或数据输出缓冲器。缓存或数据输出缓冲器中的这两个数据单元然后由于缓存替代机制或输出数据缓冲器控制机制写入芯片外存储器16。通过此方法,数据单元可以以更长的突发长度写入芯片外存储器16或从芯片外存储器16读出。因此,存储器存取性能增强。
对于第一区域,数据存取装置记录第一数据单元,然后记录第二数据单元到第一存储器片段。在将第一数据单元写入第一存储器片段之前,数据存取装置可确定由于没有数据安排信息或无效的数据安排信息,没有数据单元写入第一存储器片段。当数据存取装置将第一区域的第一数据单元写入第一存储器片段时,其也记录数据安排信息Leading=0和长度信息,数据安排信息指示第一数据单元已经首先写入第一存储器片段,长度信息指示第一数据单元具有2字的数据长度。数据存取装置可在本地寄存器、缓冲器、缓存或以有限状态机、计数器或旗标的形式的存储器装置中记录数据安排信息和长度信息。在数据存取装置将第一区域的第二数据单元写入第一存储器片段之前,其可以从本地寄存器、缓冲器、缓存或存储器装置获取数据安排信息,并确定第一数据单元已经出现。作为响应,数据存取装置将第一区域的第二数据单元写入接着第一数据单元的第一存储器片段的空的空间,并储存指示第二数据单元具有1字的数据长度的长度信息。在一些实施例中,仅仅储存第一和第二数据单元的总数据长度。例如,数据单元被压缩然后储存在芯片外存储器16。当从芯片外存储器16读取压缩后的数据单元时,仅仅要求数据单元的总长度以便最小化存取突发长度。然后执行解压缩以提取数据单元。数据单元的顺序由数据安排信息确定。通过类似操作,数据存取装置将第一和第二数据单元写入数组的剩余四个区域的每个。如图5所示,剩余四个区域的每个的数据安排信息Leading将会是1、0、0和1。
在一些实施例中,除了利用数据安排信息,数据存取装置可使用指示特定数据单元的数据长度的长度信息,且如果数据单元的数据长度都是零,或不可用,则数据存取装置可确定没有数据单元被写入到存储器片段。在其它实施例中,数据存取装置记录首先写入到存储器片段的数据单元的第一数据长度,并当另一数据单元写入到存储器片段时,记录第一和第二数据单元的总长度。
数据存取方法5为数组的每个区域分配专属存储器片段,并采用数据安排信息以识别储存在芯片外存储器16的存储器片段的数据单元的写入顺序或数据单元的存储器布局,由此允许区域的数据单元的随机存取,特别是对于数据单元的可变数据长度。
图6A和6B是根据本发明的另一实施例的数据存取方法6的存储器布局示意图,结合图1中的数据存取***1。数据存取方法6通过利用数据安排信息,将数组的区域的四个数据单元写入存储器片段1,并采用数据存取方法6用于连续的或随机数据存取的数据处理和可变数据长度。
在一些实施例中,数据安排信息表示特定区域的数据单元的安排布局。例如,图6A中的实施例显示四个数据单元以以下顺序布局:第一数据单元具有2字的数据长度,第二数据单元具有1字的数据长度,第三数据单元具有1字的数据长度,以及第四数据单元具有1字的数据长度。数据安排信息Leading设置为1以指示存储器片段1的此安排布局情况。在如在图6B中的实施例所图示的另一示例中,四个数据单元以以下顺序布局:第三数据单元具有1字的数据长度,第二数据单元具有1字的数据长度,第四数据单元具有1字的数据长度,以及第一数据单元具有2字的数据长度。数据安排信息Leading设置为2以指示存储器片段1的此安排布局情况。以后,在读取操作中,四个数据单元可以以突发长度等于所有数据长度的总和在单个数据处理中被读出。可选地,当四个数据单元的总数据长度长于具体阈值时,四个数据单元可由多于一个突发存取读出。然而,突发存取仍然可以在单个处理中完成。例如,在单个处理中,可以有突发长度分别为8、8和3的三个突发存取。
在其它实施例中,数据安排信息表示以开始位置的形式的存储器片段1中的四个数据单元的存储器引脚。在写入操作中,数据存取装置储存表示写入到存储器片段1的每个数据单元的开始位置的数据安排信息,以及对应于储存的数据单元的长度信息。例如,片段1中的储存的数据单元的总数据长度将会与每个数据单元的开始位置一起储存。可选地,每个储存的数据单元的数据长度将会与数据单元的开始位置一起储存。以后,在读取操作中,四个数据单元可以以突发长度等于所有数据长度加在一起在单个数据处理中,或在两个或者更多数据处理中根据开始位置数据长度被读取。可选地,当储存的数据单元的总数据长度太长时,储存的数据单元将由多于一个突发存取读出。然而,突发存取将在单个处理中完成。
例如,图6A中的实施例显示第一数据单元开始于位置字0并具有2字的数据长度,第二数据单元开始于位置字2并具有1字的数据长度,第三数据单元开始于位置字3并具有1字的数据长度,以及第四数据单元开始于位置字4并具有1字的数据长度。数据安排信息还可包含参数Leading为1,指示第一数据单元储存于存储器片段1的开始位置。因此,存储器引脚可包含所有储存的数据单元的开始位置信息。可选地,储存的数据单元的开始位置信息可以单独地储存于本地寄存器、缓冲器、缓存或存储器装置(例如,芯片外存储器16)。在后面的情况,数据安排信息可以在储存于芯片外存储器16的数据单元存取之前获取。在由图6B中的实施例所图示的另一示例中,显示第一数据单元开始于位置字3且具有2字的数据长度,第二数据单元开始于位置字1并具有1字的数据长度,第三数据单元开始于位置字0并具有1字的数据长度,且第四数据单元开始于位置字2并具有1字的数据长度。数据安排信息还可包含参数Leading为2,指示第三数据单元储存于存储器片段1的开始位置。
突发存取还可将地址包在存储器片段的边界。例如,对于请求的地址开始于第五字的8字的突发长度,字将以5-6-7-0-1-2-3-4的顺序来存取。在一些实现中,存储器片段可以以降低地址顺序来存取,当到达开始处时,环绕数据块的末端。在此情况中,对于请求的列地址开始于第五字的8字突发长度,字将以5-4-3-2-1-0-7-6的顺序来存取。
图7A和7B是根据本发明的另一实施例的数据存取方法7A和7B的存储器布局示意图,结合图1中的数据存取***1。数据存取方法7A和7B通过利用预定义的存储器引脚将数组的区域的两个数据单元写入芯片外存储器16的存储器片段,并可被采用用于连续的或随机数据存取的数据处理、多个数据存取和可变数据长度传送。参考图7A,图示预定义的存储器引脚,在其中每个数据单元相继地位于存储器片段的一端,提供随机接入、多存取和可变长度数据存取的灵活性。属于一个区域的数据单元可以在一个单个处理中被读取,因为在连续的突发模式中他们在逻辑上彼此相邻。预定义的存储器引脚表示区域的数据单元的开始位置,并定义区域的数据单元将被写入的存储器片段中的空间。
对于属于数组的一个区域的第一和第二数据单元,在对应的存储器片段中,第一数据单元采用第一存储器引脚,第二数据单元采用第二存储器引脚,其中第一存储器引脚从存储器片段的开始端或左端朝着中心部分放置数据单元,且第二存储器引脚存储器的从尾端或右端朝着中心部分放置数据单元。例如,在存储器片段1中,第一数据单元占据存储器片段1的前两个字,第二数据单元占据存储器片段1的最后字;在存储器片段2中,第一数据单元占据存储器片段2的最开始的三个字,第二数据单元占据存储器片段2的最后两个字;在存储器片段3,第一数据单元占据存储器片段3的前两个字,第二数据单元占据存储器片段3的最后的字。
回到图7B,图示另一预定义的存储器引脚,在其中每个数据单元从存储器片段的中心部分相继放置,为每个数据单元的数据存取提供随机数据存取、多数据存取和可变数据长度传送的灵活性。属于一个区域的数据单元可以在一个单个处理中读出,因为他们在连续的突发模式中物理上和在逻辑上彼此相邻。
对于属于数组的一个区域的第一和第二数据单元,在对应存储器片段中,第一数据单元采用第一存储器引脚,第二数据单元采用第二存储器引脚,其中第一存储器引脚从存储器片段的中心部分朝着开始端或左端放置数据单元,以及第二存储器引脚从存储器片段的中心部分朝着尾端或右端放置数据单元。例如,在存储器片段1中,第一数据单元占据从存储器片段1的中心向左的两个字,第二数据单元占据存储器片段1的中心向右的字;在存储器片段2中,第一数据单元占据存储器片段2的中心向左的三个字,第二数据单元占据存储器片段2中心向右的两个字;在存储器片段3中,第一数据单元占据存储器片段3的中心向左的两个字,第二数据单元占据存储器片段3的中心向右的字。
在一些实施例中,第一和第二数据单元以随机和单独的顺序写入到分配的存储器片段。在其它实施例中,当数据单元可用时,第一和第二数据单元以连续的顺序在一个处理中写入到分配的存储器片段。在其他实施例中,第一和第二数据单元在一个处理中以连续的顺序从分配的存储器片段读出。例如,在图7A的存储器片段1中,第一和第二数据单元可以在一个处理中以顺序7-0-1写入到存储器片段1或从存储器片段1读取。
图8A、8B和8C是根据本发明的另一实施例的数据存取方法8的存储器布局的示意图,结合图1的数据存取***1。利用数据存取方法8,当数据单元包含奇数的数据字时性能可改善。
具体而言,芯片外存储器16可以是但不限于一种DDRSDRAM,其可在时钟信号的上升和下降缘传输数据。当一对存储器字仅仅包含奇数的数据字时,上升和下降缘的一个将不能产生有效的数据字。当大量奇数数据字出现在芯片外存储器16,结果对每个奇数数据字浪费一个时钟缘时,数据存取性能显著地下降。此可由图8A图示,其中两个数据单元根据数据存取方法7A安排于存储器片段1,且每个数据单元包含位于存储器片段1的每端的一个数据字。其结果是,浪费两个时钟缘以存取存储器片段1中的所有数据单元。
因此,当数据存取装置确定两个数据单元中的一个已经写入到存储器片段1并包含奇数数据字时,其可增加或添加其它的数据单元到部分占据存储器字对的空闲空间,如在图8B和8C中的实施例所描绘的,以增强数据存取性能。如果数据长度为1字的第一数据单元已经决定储存进片段1的字0,则数据存取装置可安排数据长度为1字的第二数据单元储存进片段1的字1,如在图8B中所示。另一方面,如果数据长度为1字的第二数据单元已经决定储存进片段1的字7,则数据存取装置可安排数据长度为1字的第二数据单元储存进片段1的字6,如图8C所示。辅助信息(例如,数据安排信息)还可用于区别所使用的情况。在另一实施例中,缓存或数据输出缓冲器可使用。第一和第二数据单元和数据安排信息一起被写入到缓存或数据输出缓冲器。这两个数据单元然后由于缓存替换机制或输出数据缓冲器控制机制被写入到芯片外存储器16。数据安排信息可以储存在本地缓冲器或在芯片外存储器16。
在下文的实施例中,一个存储器片段可以分成2个存储器部分。储存在存储器片段的上部分的数据单元确定为第一数据类型,储存在存储器片段的下部分的数据单元确定为第二数据类型。数据单元的数据类型可以基于其位置信息来识别。一旦识别数据类型,在写入数据单元时,确定开始地址的方式可以决定。
如图9所示,假设数据单元从存储器片段的中心朝着开端写入。存储器片段分成2个存储器部分,例如,从地址A变化到(A+3)的上部分以及从地址(A+4)变化到(A+7)的下部分。在图9中,确定为第一数据类型的数据单元储存在地址(A+2)和(A+3),数据存取装置可以增加的地址顺序90或减少的地址顺序92以2数据字的突发长度存取(包含读取和写入)数据单元。数据存取装置可基于对应数据单元的位置信息,生成对应于每个数据单元突发传输的开始地址。位置信息可以是数据单元的索引号、存储器片段的存储器部分的索引号或储存在其中的数据单元的存储器部分的地址。例如,对于区域包含具有索引号T1和T2的两个数据单元,位置信息可以是T1或T2。在另一示例中,对于存储器片段包含具有索引号P1和P2的两个存储器部分,位置信息可以是P1或P2。在增加的顺序90的情况下,数据存取装置可通过A+(4–DL)生成开始地址,其中A是存储器片段的基地址,DL是数据单元的数据长度,以及4是数据单元的最大数据长度。数据存取装置可从存储器片段的地址(A+2)到(A+3)存取数据单元。在减少的顺序92的情况下,数据存取装置可通过A+(M–1)生成开始地址,其中A是存储器片段的基地址,M是存储器片段的一半的数据长度。在图9的情况下,M是4。数据存取装置可从存储器片段的地址(A+3)到(A+2)存取数据单元。
在另一实施例中,如图10所示,数据存取装置可生成开始地址用于从存储器片段存取数据单元。在本实施例中,数据单元从存储器片段的中心朝着尾端写入。存储器片段分成2个存储器部分,例如,在地址A和(A+3)之间变化的上部分以及在地址(A+4)和(A+7)之间变化的下部分。确定为第二数据类型的数据单元储存于地址(A+4)、(A+5)和(A+6)。数据存取装置可以增加的地址顺序1000或减少的地址顺序1002以3数据字的突发长度存取(包含读取和写入)数据单元。数据存取装置可通过(A+4)或(A+M)生成开始地址,其中A是存储器片段的基地址,且M是存储器片段的一半的数据长度(在本实施例中是4)。数据存取装置可从存储器片段的地址(A+4)到(A+6)存取第二数据类型。在减少的顺序1002的情况下,数据存取装置可通过(A+4)+(DL–1)生成开始地址,其中A是存储器片段的基地址,且DL是第二数据类型的数据长度。数据存取装置可从存储器片段的地址(A+6)到(A+4)存取第二数据类型。
在图11中,假设第一数据类型的数据单元储存于地址(A+2)和(A+3),且第二数据类型的数据单元储存于地址(A+4)、(A+5)和(A+6)。数据存取装置可从存储器片段的地址(A+2)到(A+6)存取相同区域中的所有数据单元。具体而言,突发读取可以是增加的地址顺序1100或减少的地址顺序1102中,而突发长度是数据单元的数据长度的总合。对于增加的地址顺序1100,开始地址是A+(4-DL1)。对于减少的地址顺序1102,开始地址是A+(4+DL2-1)。其中,A是存储器片段的基地址,DL1是第一数据类型的数据单元的数据长度,DL2是第二数据类型的数据单元的数据长度,且4是存储器片段的一半的数据长度。
在图12示出的实施例中,假设第一数据类型的数据单元储存于地址A到(A+1),而第二数据类型的数据单元储存于地址(A+5)到(A+7)。数据存取装置可以增加的包装顺序(wrappingorder)1200或减少的包装顺序1202以数据字(DL1+DL2)的突发长度存取所有的数据单元,其中DL1是第一数据类型的数据单元的数据长度,以及DL2是第二数据类型的数据单元的数据长度。对于增加的包装顺序1200,开始地址是A+(4+DL2-1),且数据存取装置可从地址(A+5)到(A+7)存取相同区域中的数据单元,围绕着开端,然后从存储器片段的地址A到(A+1)。对于减少的包装顺序1202,数据存取装置可通过A+(DL1-1)生成开始地址,且数据存取装置可从地址(A+1)到A存取相同区域中的所有数据单元,围绕尾端,且然后从存储器片段的地址(A+7)到(A+5)。在其中,A是存储器片段的基地址,且4是存储器片段的一半的数据长度。
图13是根据本发明的实施例的数据存取方法13的流程图,结合图1中的数据存取***1。数据存取方法13,通过利用数据安排信息将数字的区域中的两个或者更多数据单元写入存储器片段,并被采用用于连续的或随机数据存取和可变数据长度的数据处理。连续的数据存取可具有预定顺序(例如,光栅扫描的顺)。一旦启动,数据存取装置初始化用于从芯片外存储器16存取数据(S1300)。数据存取装置用于获取数组并将数组分成多个区域(S1302)。数组可以是图像数组、视频数组、多媒体数组、可执行数组或应用数组。每个区域大小可以相同或不同。数据单元可以水平、垂直或以图3A到3C中所示的连续顺序布置。芯片外存储器16可以是帧缓冲器。
数据存取装置也用于从芯片外存储器16存取多个存储器片段,其中分配每个存储器片段用于存取数组的对应区域的数据单元。对应每个区域,数组的区域的数据单元然后写入芯片外存储器16中的对应存储器片段(S1304),对应于区域的长度信息和数据安排信息也由数据存取装置记录(S1306)。
相同区域中的数据单元可以由一个或多个写入处理写入到对应存储器片段。在将区域的所有数据单元写入到存储器片段后,数据存取装置可基于长度信息和数据安排信息,以单个读取处理在相同的区域读取至少两个数据单元。例如,相同区域中的所有数据单元可由单个处理读出。在其他示例中,每次数据存取装置执行数据读取操作时,只有一个区域被读取。在一些情况中,仅仅一个数据安排信息对应于一帧。
在一些实施例中(例如,图5),数据安排信息指示区域中的哪个数据单元位于对应存储器片段的开始。在另一实施例中(例如,图6A/B),数据安排信息指示对应存储器片段中的相同区域的数据单元的顺序或引脚。在另一实施例中(例如,图6A/B),数据安排信息指示对应存储器片段中的相同区域的数据单元的开始位置。在另一实施例中(例如,图8B/C),数据安排信息指示储存于对应存储器片段的端(开端或尾端)的相同区域的数据单元。在另一实施例中,数据安排信息可包含前述实施例的结合使用。
在一些实施例中,相同数组的相同区域的数据单元(例如,相同的视频帧)随机写入到存储器片段。例如,相同数组中的相同区域的数据单元在第一时间段以第一顺序写入存储器片段,并在第二时间段以第二顺序写入存储器片段。
在其它实施例中,数据存取装置可在不同的时间段将两个数组的对应区域的数据单元写入相同的存储器片段,其中两个数组可以是两个视频帧。即,第一数组的特定区域中的数据单元在第一时间段以第一顺序写入存储器装置,第二数组的相同的特定区域的数据单元在第二时间段以第二顺序写入存储器装置。例如,在第一时间段写入存储器装置的数据单元位于第一视频帧的区域,在第二时间段写入存储器装置的数据单元位于对应于第一视频帧的第二视频帧中的相同的区域(同位区域)。在上文的实施例中,第一顺序和第二顺序的每个可以是非预测顺序,或由用于写入数据的装置已知的顺序并可根据数据安排信息由装置识别用于读取数据。
图14是根据本发明的实施例的地址生成方法14的流程图,参考图1中的数据存取***1。一开始,数据存取装置初始化用于从芯片外存储器16存取数据(S1400)。数据存取装置用于获取数组并将数组分成多个区域(S1402)。数组可以是图像数组、视频数组、多媒体数组、可执行数组或应用数组。每个区域可以大小相等或不等。相同区域的数据单元可以水平、垂直或由图3A到3C所示的连续顺布置。芯片外存储器16可以是帧缓冲器。
数据存取装置也用于从芯片外存储器16分配多个存储器片段,其中分配每个存储器片段用于存取数组的对应区域的数据单元。数组的相同区域中的数据单元然后根据由写入数组的长度信息确定的开始地址写入到芯片外存储器16的对应存储器片段(S1404)。在一个实施例中,至少一个数据单元的开始地址基于其长度信息生成。在另一实施例中,每个数据单元的开始地址基于其长度信息来生成。在又一实施例中,至少一个数据单元的开始地址不需要对应长度信息而生成。
相同区域中的数据单元可以通过一个或多个写处理写入到对应存储器片段。在讲区域的所有数据单元写入到存储器片段后,数据存取装置可基于对应数据单元的长度信息在单个处理中同时读取相同区域中的至少两个数据单元。
图15是根据本发明的另一实施例的数据存取方法15的流程图,参考图1中的数据存取***1。一开始,初始化数据存取装置用于将数据单元写入到芯片外存储器16或从芯片外存储器16读取数据单元(S1500)。数据存取装置用于获取第一和第二数组并将第一和第二数组分别分成多个区域。第一和第二数组可以是以压缩或未压缩的格式的图像数组、视频数组、多媒体数组或稀疏数组。第一和第二数组还可是以压缩或未压缩的格式的程序代码或指令代码。每个区域可以是大小相等或不等。区域中的数据单元可以水平、垂直、或由图3A到3C中图示的连续的顺序布置。应意识到两个数组的每个的区域的大小可以不同,以适应不同的处理特征和/或不同格式的数组。例如,第一数组的每个区域可以是一维区域(例如,64x1区域)用于ISP引擎,而第二数组的每个区域可以是二维区域(例如,8x8区域)用于视频解码器引擎。此外,第一数组的区域中的数据单元的数量和第二数组的区域中的数据单元的数量可以是不同的。芯片外存储器16可以是帧缓冲器。数据存取装置也用于从芯片外存储器16存取多个存储器片段,其中每个存储器片段分配用于第一和第二数组中的对应区域的数据单元。第一和第二数组可以属于两个视频或帧数据。第一和第二数组可具有相同的或不同的数据格式。例如,数据格式可以是比特深度(例如,8、10、12比特数据),或颜色组分(YUV、RGB、ARGB)等。
在步骤S1502,数据存取装置根据第一存储器引脚对多个数据单元执行第一存取操作,多个数据单元表示第一数组的多个区域。在步骤S1504中,数据存取装置根据第二存储器引脚对多个数据单元执行第二存取操作,多个数据单元表示第二数组的多个区域。第一和第二存取操作的每个可以是数据写入操作或数据读取操作。在一个示例中,第一存取操作是读取第一数组,第二存取操作是将数据写入到第二数组。在另一示例,第一存取操作是读取第一和第二数组,第二存取操作是将数据写入第二数组。
有关于表示第一数组的区域的数据单元的存取操作和有关于表示第二数组的区域的数据单元的存取操作同时执行。可选地,这两个存取操作可以在不同时间执行。
在一些实施例中,第一数组和第二数组由不同的数据存取装置写入芯片外存储器16的相同的或不同的存储器片段。可选地,第一数组和第二数组可被写入不同的存储器装置,例如,不同的帧缓冲器。另一方面,第一数组和第二数组由不同的数据存取装置从芯片外存储器16的相同的或不同的存储器片段读取。或者,第一数组和第二数组可以从不同的存储器装置读取,例如,不同的帧缓冲器。
在一些实施例中,第一存储器引脚和第二存储器引脚分别根据第一数组的地址范围和第二数组的地址范围来确定。可选地,第一存储器引脚和第二存储器引脚分别根据预定配置来确定。例如,数据存取装置的控制寄存器设计为以指示哪种存储器引脚用于存取数组。数据存取装置可具有若干控制寄存器,每个指示数组的存储器引脚。在另一实施例中,第一存储器引脚和第二存储器引脚分别根据读/写操作来确定。在另一实施例中,第一存储器引脚和第二存储器引脚分别根据数组的数据格式来确定。
当存取操作是数据写入操作时,数据存取装置用于记录关于对应于芯片外存储器16中的第一数组和第二数组的数据单元的长度信息(S1506)。在一些实施例中,数据存取装置用于使用公共长度缓存用于将数据单元写进第一和第二数组。应意识到数据存取装置用于生成开始地址用于由公共地址生成电路写入第一和第二数组的数据单元。在一个实施例中,对应第一数组和第二数组的每个数据单元在写入芯片外存储器16之前压缩。
当存取操作是数据读取操作时,数据存取装置用于获取、使用或处理长度信息以从芯片外存储器16的存储器片段存取区域的数据单元(S1507)。在读处理中,数据存取装置用于获取并使用储存数据的长度信息以计算、运算或确定开始地址和突发长度用于从芯片外存储器16读取数据。在一些实施例中,数据存取装置用于从公共长度缓存获取第一和第二数组的对应区域的数据单元的长度信息。在其它实施例中,数据存取装置用于由公共地址生成电路生成开始地址用于读取第一和第二数组的数据单元。
数据存取方法15允许数据存取装置通过两个预定义的存储器引脚从芯片外存储器16存取数据多次,由此允许相同的区域的数据在一个处理或连续处理中被存取,导致增加的数据存取性能。
在一实施例中,当存取操作是数据写入操作时,压缩第一数组的第一比特范围的数据单元以及压缩第二数组的第二比特范围的数据单元。当存取操作是数据读取操作时,解压缩第一数组的第一比特范围的数据单元以及解压缩第二数组的第二比特范围的数据单元。
在另一实施例中,当存取操作是数据写入操作时,第一数组的第一数目的颜色组分组将分组到第一数据单元,并压缩第一数据单元。此外,第二数组的第二数目的颜色组分将分组到第二数据单元,并压缩第二数据单元。对应地,当存取操作是数据读取操作时,解压缩第一数组的第一数据单元,并从解压缩后的第一数据单元提取第一数目的颜色组分。解压缩第二数组的第二数据单元,并从解压缩后的第二数据单元提取第二数目的颜色组分。
在又一实施例中,当存取操作是数据写入操作时,压缩第一数组的第一数目的颜色组分以及压缩第二数组的第二数目的颜色组分。当存取操作是数据读取操作时,解压缩第一数组的第一数目的颜色组分以及解压缩第二数组的第二数目的颜色组分。
具体而言,数据存取方法15通过根据数据单元特征,例如,写顺序行为或数据单元大小,能够用多格式(由于不同数据源)来调整执行数据写入和读取操作的执行方式,以处理数据。应该注意到,数据存取方法15可应用于任何可执行数据写入操作和数据读取操作的至少一个的数据存取装置。对于仅仅执行数据写入操作的数据存取装置,图15中的步骤S1507可忽略。另一方面,仅仅执行数据读取操作的数据存取装置,图15中的步骤S1506可忽略。
图16是根据本发明的实施例的数据存取装置的写入电路的地址生成电路16的框图。地址生成电路16可以并入为图1中的芯片10的写入电路的地址生成器AG,生成开始地址用于将数组写入芯片外存储器16。
具体地,地址生成电路16可接收长度信息、数据安排信息以及数据单元信息,并输出开始地址和突发长度用于将数据写入芯片外存储器16。长度信息是写入数据的长度,数据安排信息可以是写入顺序和/或存储器引脚,以及数据单元信息定义数据单元的索引用于从芯片外存储器16读取或写入到芯片外存储器16。突发长度是数据突发的长度,大小为2的次方,例如1、2、4、8、16字。在一些实现中,突发长度还可以是其他预定长度的数据字。开始地址是芯片外存储器16的存储器地址,其中数据从开始地址写入。
地址生成电路16包含突发长度翻译电路160、基地址翻译电路162和开始地址翻译164。突发长度翻译电路160可接收长度信息以生成写处理的突发长度。更具体地,突发长度翻译电路160可基于写入数据的数据大小和用于存取芯片外存储器16的存取单元,计算写处理的突发长度。即,突发长度是用压缩/未压缩的数据大小除以存取单元来计算的。在一个示例中,存取单元是16字节,未压缩的数据大小是4字或64字节,且压缩后的数据大小可以是,例如,120比特或15字节,因此,突发长度可以计算为1(=15字节/16字节,算到最近的整数)。在另一示例中,压缩的数据大小可以是122比特或15.25字节,以及突发长度可以计算为1(=15.25字节/16字节,算到最近的整数)。在又一示例中,压缩的数据大小可以是136比特或17字节,且突发长度可以计算为2(=17字节/16字节,算到最近的整数)。
基地址翻译电路162可接收数据单元信息,以为每个数据单元生成基地址。开始地址翻译164可基于来自基地址翻译电路162的基地址和数据安排信息,生成开始地址。在一些实现中,开始地址翻译164可仅由基地址生成开始地址。
图17A和17B是根据本发明的实施例数据存取装置的写电路的长度缓存170A和170B的框图。长度缓存170A或170B可以并入为图1中的芯片10中的写电路的长度缓存LC,储存写入到芯片外存储器16的数据的长度信息。当长度缓存的大小不足以保存所有的长度信息,或长度信息在另一装置中使用时,长度缓存170B可以使用。例如,储存在视频解码器104的长度缓存的长度信息将进一步指向显示器112。在其他情况中,当长度信息仅仅在数据存取装置中的本地使用时,本地长度缓存170A可以使用。例如,图1中的DSP114可缓冲本地长度缓存中的长度信息,并不将长度信息传给另一装置。除了从数据存取装置生成,长度信息可以从装置、电路或引擎生成。例如,在图1中,视频解码器104或GPU106可生成长度信息,且显示器112可从视频解码器104或GPU106获取长度信息以准确地读取帧数据。
在一些上文的实施例中,当数据存取装置执行数据写入操作时,对应于第一数组和第二数组的数据安排信息将被记录。
图18是根据本发明的实施例数据存取装置的读取电路的地址生成电路18的框图。地址生成电路18可以并入为图1中的芯片10的读取电路的地址生成器AG,生成开始地址用于从芯片外存储器16读取数据。
地址生成电路18包含突发长度翻译电路180、基地址翻译电路182和开始地址翻译184。突发长度翻译电路180可接收长度信息,以生成读取处理的突发长度。更具体地,突发长度翻译电路180可基于读取数据的数据大小和用于存取芯片上存储器108或芯片外存储器18的存取单元,计算读取处理的突发长度。即,突发长度由将压缩/未压缩的数据大小除以存取单元来计算。基地址翻译电路182可接收数据单元信息,以为每个数据单元生成基地址。开始地址翻译184可基于来自基地址翻译电路182的基地址和数据安排信息生成开始地址。在一些实现中,开始地址翻译184可仅由基地址生成开始地址。
图19是根据本发明实施例的数据存取装置的读取电路的长度缓存19的框图。长度缓存19可以并入为图1中的芯片10中的读取电路的长度缓存LC,储存从芯片外存储器16读取的数据的长度信息。
当数据单元的数量很大时,数据单元的所有长度信息的大小可能太大以致于不是所有的长度信息可以载入本地缓冲器,例如,长度缓存17A、17B或19。在此条件中,仅仅部分数据单元的长度信息载入本地缓冲器。当存取顺序固定或数据存取装置已知时,本地缓冲器的数据刷新可以是提前安排的。否则,可以定义缓存替代策略以为特定应用提供最佳性能。本领域的技术人员应该意识到缓存替换策略已经开发并可以应用到本申请。本地缓冲器可具有提前安排的替换机制或预取机制,以载入储存在大容量存储(例如,芯片外存储器16)的长度信息。此外,必要时,所有的长度信息仍然可以储存在本地缓冲器。
有可能同时读取两个或者更多数据单元的长度信息。例如,为了在单个读取处理中读取压缩的数据单元(1,1)和数据单元(1,2),数据单元(1,1)(2字数据大小)和数据单元(1,2)(3字数据大小)的长度信息将被获取以计算5字(=2字+3字)的突发长度。
在读取电路中,在从芯片外存储器16读取压缩的数据之前,数据安排信息与长度信息一起载入相同的本地缓冲器。可选地,用于储存数据安排信息的单独的本地缓冲器可实现。数据安排信息的替代策略可以与长度信息的替代策略相同。数据安排信息的大小可以远小于长度信息的大小。
当长度和数据安排信息由第一处理引擎生成时,例如,图1中的GPU106或ISP110,并由第二处理引擎要求时,例如,图1中的显示器112和显示器14,这两种类型的信息将从第一处理引擎传递到第二处理引擎。信息传递可以通过,例如,DRAM。
具体地,第一处理引擎(在下文中被称作数据生成器)可生成压缩数据,以及第二处理引擎(在下文中被称作数据消耗器)可以读取压缩数据并对其执行信号处理。在一些实施例中,单个处理引擎,例如,CPU100可用作数据生成器和数据消耗器。
在写入电路中,长度缓存可接收数据安排信息用于两种使用。第一使用是用于储存数据安排信息和长度信息。第二使用是用于首先输出特定区域的数据安排信息。
在一个示例中,两个数据单元P和Q可以从存储器的同居片段(cohabitationsegment)存取。如果读取数据安排信息指示没有数据单元写入到此同居片段(例如,leading位=0),则数据存取装置中的数据代理DA可生成数据单元P的写入地址,通过例如,设置leading位为1来更新同居片段的数据安排信息,并储存数据单元P的数据长度DLp到对应长度缓存。相反,如果读取数据安排信息指示数据单元Q已经写入到同居片段(例如,leading位=1),则数据存取装置中的数据代理DA可生成此数据单元P的写入地址,通过例如保持leading位为1来更新此同居片段的数据安排信息,并储存数据单元P的数据长度DLp到对应长度缓存。可选地,数据单元P和Q的总长度可以保存。
在一些实施例中,获取对应于第一数组和第二数组的每个数据单元的长度信息,对应于第一数组和第二数组的每个数据单元的有效数据通过获取的对应数据单元的长度信息来指示,且获取对应于第一数组和第二数组的每个区域的数据安排信息以便读出对应于第一数组和第二数组的每个数据单元。
请参考图20A、20B和20C,分别显示一数组的未压缩的数据、压缩的数据和其长度信息。在leading位和存储器引脚实施的示例中,显示***可需要处理由图1中的ISP110、GPU106和视频解码器104生成的帧。在此示例中,RGB由ISP使用作为帧格式。图20A中的数组包含表示预定义区域的多个数据单元,且每个数据单元是,例如,1-D64x1颜色组分块(例如,R、G或B颜色组分,像素包含R、G、B颜色组分)。压缩数据已经对齐到16、32、48、64字节的数据网格,如在图20B中的压缩数据表所指示的,且每个数据单元的长度信息表在图20C中提供。长度信息中的数字对应于压缩数据大小,对齐到DRAM字大小。数据单元(1、1)的压缩数据大小是,例如,140比特(17.5字节),且将占据2个DRAM字,且数据单元(2、1)的压缩数据大小是,例如,3个DRAM字,其中每个DRAM字具有16字节大小。
在另一示例中,具有存储器引脚且不具有leading位信息的数据存取操作如图7B所示实施。存储器引脚可以是以下的一个,存储器的基地址由十六进制数字索引每次增加‘h0004。例如,基地址可以是‘h0000、‘h0004、‘h0008、‘h000C、‘h1000等。
基于此实施,图20A的压缩数据的存储器引脚将是图21,且一些存取示例可以是:
以‘h0002的开始地址以及2字的突发长度写入压缩数据单元(1,1);
以‘h0004的开始地址以及3字的突发长度写入压缩数据单元(2,1);
读取以‘h0002的开始地址以及2字的突发长度写入压缩数据单元(1,1);
在单个读取处理中,以‘h0000的开始地址和7字(=4字+3字)的突发长度,读取压缩数据单元(1,1)和数据单元(2,1);或
在单个写入处理中,以‘h0000的开始地址和7字(=4字+3字)的突发长度,写入压缩数据单元(1,1)和数据单元(2,1)。
如果输出本地缓冲器足够大,相同区域的所有数据单元可以在单个写处理中由合适的突发长度设置被写出。在一些实施例中,当即将发送的数据单元的大小很大时,数据处理可以分成两个或者更多个数据突发。例如,如果即将发送的数据单元的大小是12字,由于示范性DRAM协议中的长度的最大突发长度是8字,数据处理可分成8字数据突发和4字数据突发。
现在参考图21,显示根据本发明的实施例的数据存取方法的存储器布局示意图21。相同区域中的水平相邻数据单元储存在连续的存储器空间。特别地,彼此水平相邻的数据单元由图21中的不同的阴影图案来指代。
在一个示例中,如图21所示,以增加地址顺序来存取压缩数据单元(1,1)的开始地址由以下式子获得:
基地址+(M-长度)=‘h0000+(‘h4-‘h2)=‘h0002,其中M=4。
可选地,以增加地址顺序来存取数据单元(1,1)的开始地址可以是:
基地址+(M-1)=‘h0000+(‘h4-‘h1)=‘h0003。
在另一示例中,如图10所示,以增加地址顺序来存取压缩数据单元(2,1)的开始地址由以下式子获得:
计算基地址+(4)=‘h0000+(‘h4)=‘h0004;或
计算基地址+(M)=‘h0000+(‘h4)=‘h0004;或
在查找表中为组(2,1)定义基地址为‘h0004。
在一些实现中,图16中的地址翻译电路162和图18中的地址翻译电路182可包含查找表,并可以包含或可以不包含加法器。
可选地,以减少地址顺序来存取数据单元(2,1)的开始地址可以是:
基地址+4+(长度-1)=基地址+3+长度=‘h0000+‘h3+‘h3=‘h0006;或
基地址+长度=‘h0003+‘h3=‘h0006。
在上文的示例中,基地址可以是‘h0000或‘h0003。
通过将相同区域中的水平相邻数据单元储存进连续的存储器空间,用于存取数据单元的数据缓冲器的大小可以减少,特别当数据单元以光栅扫描顺序被存取或处理时。
现在参考图22,显示根据本发明的实施例的数据存取方法的存储器布局示意图22。相同区域中的垂直相邻的数据单元储存于连续的存储器空间。特别地,垂直彼此相邻的数据单元由图22中的相同的阴影图案指代。
在图22中,用于写操作的存储器引脚可以是以下当中的一个:
以‘h0002的开始位置和2字的突发长度写入压缩数据单元(1,1);
以‘h0004的开始位置和4字的突发长度写入压缩数据单元(1,2);
以‘h0002的开始位置和2字的突发长度读取压缩数据单元(1,1);
在单个读取处理中,以‘h0002的开始位置和6字(=2字+4字)的突发长度读取压缩数据单元(1,1)和数据单元(1,2);以及
在单个写入处理中,以‘h0002的开始位置和6字(=2字+4字)的突发长度写入压缩数据单元(1,1)和数据单元(1,2)。
即,写入压缩数据单元(1,1)的开始地址与之前的描述相同。
在图22中,以增加地址顺序的用于存取压缩数据单元(1,2)的开始地址由以下式子获得:
计算基地址+(4)=‘h0000+(‘h4)=‘h0004;或
计算基地址+(M)=‘h0000+(‘h4)=‘h0004;或
在查找表中为组(1,2)定义基地址为‘h0004。
可选地,以减少地址顺序来存取压缩数据单元(1,2)的开始地址由以下式子获得:
基地址+4+(长度-1)=基地址+3+长度=‘h0000+‘h3+‘h4=‘h0007;或
基地址+长度=‘h0003+‘h4=‘h0007。
通过将相同区域中的垂直相邻数据单元储存进连续的存储器空间,用于存取数据单元的数据缓冲器的大小可以减少,特别当数据单元以垂直扫描顺序被存取或处理时。
在一些实施例中,数据存取可以用不同条件下不同组大小来执行。在一个实现中,存储器条目是长度为128比特的DRAM字,且颜色组分(例如,RGB的R或YUV的Y)可以由8比特、10比特、12比特数据表示。具有64组分大小的数据单元(例如,64单元的Y)可以由一维的64x1数组表示或二维的8x8数组表示。在8比特颜色组分的情况下,组的原始数据大小是64x8(比特)=4x128(比特),且可以储存在4存储器条目。类似地,在10比特和12比特颜色组分的情况下,组的原始数据大小分别是5x128和6x128比特。如果支持8比特颜色组分,长度信息可以由2比特表示用于表示具有大小为1、2、3或4DRAM字的压缩数据单元。指示4的长度信息可指示未压缩数据单元已经储存。如果支持10比特或甚至12比特颜色组分,长度信息可以由3比特表示用于具有数据大小为1、2、3、4、5或6DRAM字的压缩数据单元。
可选设计是使2比特长度信息具有不同的表示。以10比特颜色组分作为示例。10比特数据的2比特可以保持未压缩。然后,64组分将要求128比特(=64x2比特)未压缩数据,其又导致要求至少一个128比特DRAM字用于这些未压缩比特。储存在长度缓存的1的值指示对应数据单元的数据长度是2。类似地,储存于长度缓存的值2、3或4分别指示对应数据单元的数据长度是3、4或5。请参考以下表格用于前述条件的概括:
表1
图16和18中的突发长度翻译电路需要根据组分的类型(例如,8、10、12比特)以生成正确的突发长度。在一些实施例中,储存在长度缓存中的精确值还可以用不同数字格式表示。例如,2比特2’b00、2’01、2’b10、2’b11可分别用于表示值1、2、3、4,用于进一步减少储存长度信息的这些值的成本。
在另一实施例中,可以支持不同的数据单元大小用于不同的应用。以YUV420帧为例,对于Y平面,数据单元具有64组分大小,对于U平面,数据单元具有16组分大小。当采用8比特颜色组分时,U的数据单元的原始大小是16字节。可选地,可采用用于U平面的数据单元具有64组分的大小。在此情况下,U平面的数据单元的总数将会是Y平面的数据单元总数的1/4。当支持不同的格式时,突发长度和开始地址生成相应地被调整。
在另一实施例中,两个颜色组分分别压缩,且压缩数据包装为单个数据单元。例如,压缩U平面的区域的32组分,压缩且V平面的同位区域的32组分。U和V的相同区域的数据长度可仍然被表示为1~4。
在另一实施例中,两个颜色组分可以首先包装然后压缩。例如,U平面的区域的32组分和V平面的同位区域的32组分被包装和压缩。U和V的相同区域的数据长度可仍然被表示为1~4。
在一些应用中,不同数量的颜色组分表示一个像素,例如,RGB3颜色组分或ARGB4颜色组分。每个颜色组分平面可分成多个区域;且每个区域具有多个数据单元。不同颜色组分的数据单元单独压缩。然后地址生成、突发长度生成、长度缓存和数据安排信息(如果有)被要求以单独地处理不同的颜色组分。
在另一实施例中,两个或者更多颜色组分可以首先包装然后在分成多个区域;且每个区域具有多个数据单元。在此情况下,每个数据单元具有多于一个颜色组分。然后要求地址生成、突发长度生成、长度缓存和数据安排信息(如果有)以处理不同的数据分区方法。
在另一实施例中,两个或者更多颜色组分可以首先压缩然后包装为单个数据单元。在此情况下,每个数据单元具有多于一个颜色组分。然后地址生成、突发长度生成、长度缓存和数据安排信息(如果有)被要求以处理不同的数据分区方法。
如本文所使用的,词语“确定”包含计算、运算、处理、派生、调查、查找(例如,在表格中查找、数据库或另一数据结构)、确定等。而且,“确定”可包含解析、选择、挑选、建立等。
与本公开一起描述的各种说明性的逻辑块、模块和电路可以以通用处理或数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列信号(FPGA)或另一可编程逻辑装置、离散门或晶体管逻辑、离散硬件组分或设计执行本文描述的功能的任何其组合来实施和执行。通用处理器可以是微处理器,但是在替换实施例中,处理器可以是商用处理器、控制器、微控制器或状态机。
本文描述的各种逻辑块、单元、模块、电路和***的的操作和功能可以由但不限于硬件、固件、软件、执行中的软件及其结合来实施。
尽管本发明已经以示例的方式和在优选实施例方面进行描述,要理解,本发明不限于所公开的实施例。相反,其旨在覆盖各种修改和类似布置(如本领域技术人员熟知的)。因此,所附的权利要求的范围应该符合最广解释以便包含所有的修改和类似安排。
Claims (30)
1.一种数据存取方法,其特征在于,包含:
获取分成多个区域的数组;以及
对于每个区域,将表示所述区域的多个数据单元写入存储器装置的片段,并记录对应于所述区域的长度信息和数据安排信息,其中在表示所述区域的所述数据单元上执行的突发存取的突发长度是根据所述长度信息定义的。
2.根据权利要求1所述的方法,其特征在于,所述数据安排信息指示所述数组的相同区域中的所述数据单元的写入顺序和存储器引脚的至少一个。
3.根据权利要求1所述的方法,其特征在于,所述相同数组的相同区域的所述数据单元在第一时间段以第一顺序写入所述存储器装置,以及在第二时间段以第二顺序写入所述存储器装置。
4.根据权利要求1所述的方法,其特征在于,所述数组的特定区域中的所述数据单元在第一时间段以第一顺序写入所述存储器装置,另一数组的相同特定区域的多个数据单元在第二时间段以第二顺序写入所述存储器装置。
5.根据权利要求1所述的方法,其特征在于,所述存储器装置的相同片段中的至少两个数据单元由单个读取处理读出。
6.根据权利要求1所述的方法,其特征在于,相同区域中的所述数据单元彼此水平相邻。
7.根据权利要求1所述的方法,其特征在于,相同区域中的所述数据单元彼此垂直相邻。
8.根据权利要求1所述的方法,其特征在于,还包括:
从所述片段的基地址开始,将相同区域中的所述数据单元根据所述数据单元的写入顺序写入到所述片段。
9.一种数据存取方法,其特征在于,包含:
获取分成多个区域的数组;以及
对于每个区域,将表示所述区域的多个数据单元写入存储器装置的片段,其中对于至少一个所述数据单元的写入处理的开始地址是基于对应数据单元的长度信息生成的。
10.根据权利要求9所述的方法,其特征在于,至少另一数据单元的所述写入处理的开始地址的生成不需要所述对应长度信息。
11.根据权利要求9所述的方法,其特征在于,对应于所述数据单元的每个的所述写入处理的所述开始地址是基于所述对应数据单元的位置信息生成的。
12.根据权利要求9所述的方法,其特征在于,相同的数组的相同区域的数据单元在第一时间段以第一顺序写入所述存储器装置,并在第二时间段以第二顺序写入所述存储器装置。
13.根据权利要求9所述的方法,其特征在于,所述数组的特定区域中的所述数据单元在第一时间段以第一顺序写入所述存储器装置,另一数组的相同的特定区域中的多个数据单元在第二时间段以第二顺序写入所述存储器装置。
14.根据权利要求9所述的方法,其特征在于,所述存储器装置的相同片段中的至少两个数据单元由单个读取处理读出。
15.根据权利要求9所述的方法,其特征在于,相同区域中的所述数据单元彼此水平相邻。
16.根据权利要求9所述的方法,相同区域中的所述数据单元彼此垂直相邻。
17.一种在具有存储器的数据处理***中存取数据的方法,其特征在于,包含:
根据第一存储器引脚,通过存取表示第一数组的多个区域的多个数据单元,在所述存储器装置上执行存取操作;
根据第二存储器引脚,通过存取表示第二数组的多个区域的多个数据单元,在所述存储器装置上执行所述存取操作;以及
根据数据单元的长度信息执行所述存取操作。
18.根据权利要求17所述的方法,其特征在于,所述存取操作是数据写入操作,所述方法还包括:
在写入所述存储器装置之前,压缩对应于所述第一数组和所述第二数组的每个数据单元。
19.根据权利要求17所述的方法,其特征在于,所述存取操作是数据写入操作,所述方法还包括:
记录对应于所述第一数组和所述第二数组的数据安排信息。
20.根据权利要求17所述的方法,其特征在于,所述存取操作是数据写入操作,所述方法还包括:
压缩所述第一数组的第一比特范围的数据单元;以及
压缩所述第二数组的第二比特范围的数据单元。
21.根据权利要求17所述的方法,其特征在于,所述存取操作是数据读取操作,所述方法还包括:
解压缩所述第一数组的第一比特范围的数据单元;以及
解压缩所述第二数组的第二比特范围的数据单元。
22.根据权利要求17所述的方法,其特征在于,所述存取操作是数据写入操作,所述方法还包括:
将所述第一数组的第一数目的颜色组分分进第一数据单元;
压缩所述第一数据单元;
将所述第二数组的第二数目的颜色组分分进第二数据单元;以及
压缩所述第二数据单元。
23.根据权利要求17所述的方法,其特征在于,所述存取操作是数据读取操作,所述方法还包括:
解压缩所述第一数组的第一数据单元;
从解压缩后的第一数据单元提取第一数目的颜色组分;
解压缩所述第二数组的第二数据单元;以及
从解压缩后的第二数据单元提取第二数目的颜色组分。
24.根据权利要求17所述的方法,其特征在于,所述存取操作是数据写入操作,所述方法还包括:
压缩所述第一数组的第一数目的颜色组分;以及
压缩所述第二数组的第二数目的颜色组分。
25.根据权利要求17所述的方法,其特征在于,所述存取操作是数据读取操作,所述方法还包括:
解压缩所述第一数组的第一数目的颜色组分;以及
解压缩所述第二数组的第二数目的颜色组分。
26.根据权利要求17所述的方法,其特征在于,所述存取操作是数据读取操作,所述方法还包括:
通过获取对应于所述第一数组和所述第二数组的每个数据单元的所述长度信息,处理所述长度信息;
由所述对应数据单元的获取的长度信息,指示对应于所述第一数组和所述第二数组的每个数据单元的有效数据;以及
获取对应于所述第一数组和第二数组的每个区域的数据安排信息,以便读出对应于所述第一数组和所述第二数组的每个数据单元。
27.根据权利要求17所述的方法,其特征在于,所述第一存储器引脚和所示第二存储器引脚是根据预定配置分别确定的。
28.根据权利要求17所述的方法,其特征在于,所述第一存储器引脚和所述第二存储器引脚是根据所述第一数组的地址范围和所述第二数组的地址范围确定的。
29.根据权利要求17所述的方法,其特征在于,还包括:
通过使用公共地址生成电路,根据所述第一存储器引脚存取所述第一数组中的所述数据单元,以及根据所述第二存储器引脚存取所述第二数组中的所述数据单元。
30.根据权利要求17所述的方法,其特征在于,还包括:
通过使用公共长度缓存,根据所述第一存储器引脚存取所述第一数组中的所述数据单元,以及根据所述第二存储器引脚存取所述第二数组中的所述数据单元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461940695P | 2014-02-17 | 2014-02-17 | |
US61/940,695 | 2014-02-17 | ||
PCT/CN2015/073234 WO2015120825A1 (en) | 2014-02-17 | 2015-02-17 | Data access methods and data access devices utilizing the same |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105431831A true CN105431831A (zh) | 2016-03-23 |
CN105431831B CN105431831B (zh) | 2018-10-02 |
Family
ID=53799613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580001309.5A Expired - Fee Related CN105431831B (zh) | 2014-02-17 | 2015-02-17 | 数据存取方法和利用相同方法的数据存取装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160218739A1 (zh) |
CN (1) | CN105431831B (zh) |
WO (1) | WO2015120825A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107145333A (zh) * | 2017-04-21 | 2017-09-08 | 建荣半导体(深圳)有限公司 | 数据操作方法及其装置、应用、单片机及嵌入式*** |
CN108257582A (zh) * | 2018-01-30 | 2018-07-06 | 广东中星微电子有限公司 | 一种图像的显示缓冲方法和装置 |
CN109144957A (zh) * | 2017-06-28 | 2019-01-04 | 北京嘀嘀无限科技发展有限公司 | 网格数据压缩方法和网格数据压缩装置 |
CN111149166A (zh) * | 2017-07-30 | 2020-05-12 | 纽罗布拉德有限公司 | 基于存储器的分布式处理器架构 |
CN111276175A (zh) * | 2018-12-05 | 2020-06-12 | 华邦电子股份有限公司 | 一种内存装置以及虚拟静态随机存取内存的刷新方法 |
CN111290698A (zh) * | 2018-12-07 | 2020-06-16 | 上海寒武纪信息科技有限公司 | 数据存取方法、数据处理方法、数据存取电路和运算装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843775B (zh) * | 2016-04-06 | 2018-12-04 | 中国科学院计算技术研究所 | 片上数据划分读写方法、***及其装置 |
CN109992234B (zh) * | 2017-12-29 | 2020-11-17 | 浙江宇视科技有限公司 | 图像数据读取方法、装置、电子设备及可读存储介质 |
US10762946B2 (en) * | 2018-12-31 | 2020-09-01 | Micron Technology, Inc. | Memory with partial array refresh |
GB2585260B (en) * | 2019-12-27 | 2021-08-04 | Imagination Tech Ltd | Methods and systems for storing variable length data blocks in memory |
KR20220020143A (ko) * | 2020-08-11 | 2022-02-18 | 삼성전자주식회사 | 오버라이트 처리를 수행하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작 방법 |
CN116612806A (zh) * | 2022-02-08 | 2023-08-18 | 长鑫存储技术有限公司 | 数据校验方法、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040010783A1 (en) * | 2002-07-09 | 2004-01-15 | Moritz Csaba Andras | Reducing processor energy consumption using compile-time information |
TW575809B (en) * | 2002-07-19 | 2004-02-11 | Rdc Semiconductor Co Ltd | Method and system for calculating dynamic burst length |
US20040033178A1 (en) * | 2000-12-21 | 2004-02-19 | Francis Autin | Device for catalyctic treatment of smells and filtering hood equipped therewith |
US20040155883A1 (en) * | 2002-09-27 | 2004-08-12 | Media Tek Inc. | Memory access method for video decoding |
US20060181951A1 (en) * | 2005-02-11 | 2006-08-17 | International Business Machines Corporation | Method and apparatus for address generation |
CN1828773A (zh) * | 2005-03-04 | 2006-09-06 | 中国科学院计算技术研究所 | 多维数组在动态随机存取存储器上的快速读写方法及装置 |
US7765378B1 (en) * | 2001-06-01 | 2010-07-27 | Sanbolic, Inc. | Utilization of memory storage |
US20100322597A1 (en) * | 2009-06-22 | 2010-12-23 | Sony Corporation | Method of compression of graphics images and videos |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7127559B2 (en) * | 2001-07-10 | 2006-10-24 | Micron Technology, Inc. | Caching of dynamic arrays |
US6816946B2 (en) * | 2002-07-01 | 2004-11-09 | Sony Computer Entertainment, Inc. | Methods and apparatus for controlling a cache memory |
US20080301717A1 (en) * | 2007-05-31 | 2008-12-04 | Microsoft Corporation | Visualizing a memory footprint of an application program |
JP5035412B2 (ja) * | 2008-03-18 | 2012-09-26 | 富士通株式会社 | メモリコントローラ及びそれを使用したメモリシステム |
JP2011175563A (ja) * | 2010-02-25 | 2011-09-08 | Elpida Memory Inc | データ処理システム及びその制御方法 |
US9361215B2 (en) * | 2013-05-31 | 2016-06-07 | Apple Inc. | Memory allocation improvements |
US9959072B2 (en) * | 2013-12-20 | 2018-05-01 | Sandisk Technologies Llc | Systems and methods of compressing data |
-
2015
- 2015-02-17 WO PCT/CN2015/073234 patent/WO2015120825A1/en active Application Filing
- 2015-02-17 US US14/916,175 patent/US20160218739A1/en not_active Abandoned
- 2015-02-17 CN CN201580001309.5A patent/CN105431831B/zh not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040033178A1 (en) * | 2000-12-21 | 2004-02-19 | Francis Autin | Device for catalyctic treatment of smells and filtering hood equipped therewith |
US7765378B1 (en) * | 2001-06-01 | 2010-07-27 | Sanbolic, Inc. | Utilization of memory storage |
US20040010783A1 (en) * | 2002-07-09 | 2004-01-15 | Moritz Csaba Andras | Reducing processor energy consumption using compile-time information |
TW575809B (en) * | 2002-07-19 | 2004-02-11 | Rdc Semiconductor Co Ltd | Method and system for calculating dynamic burst length |
US20040155883A1 (en) * | 2002-09-27 | 2004-08-12 | Media Tek Inc. | Memory access method for video decoding |
US20060181951A1 (en) * | 2005-02-11 | 2006-08-17 | International Business Machines Corporation | Method and apparatus for address generation |
CN1828773A (zh) * | 2005-03-04 | 2006-09-06 | 中国科学院计算技术研究所 | 多维数组在动态随机存取存储器上的快速读写方法及装置 |
US20100322597A1 (en) * | 2009-06-22 | 2010-12-23 | Sony Corporation | Method of compression of graphics images and videos |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107145333A (zh) * | 2017-04-21 | 2017-09-08 | 建荣半导体(深圳)有限公司 | 数据操作方法及其装置、应用、单片机及嵌入式*** |
CN107145333B (zh) * | 2017-04-21 | 2020-04-14 | 建荣半导体(深圳)有限公司 | 数据操作方法及其装置、应用、单片机及嵌入式*** |
CN109144957A (zh) * | 2017-06-28 | 2019-01-04 | 北京嘀嘀无限科技发展有限公司 | 网格数据压缩方法和网格数据压缩装置 |
CN109144957B (zh) * | 2017-06-28 | 2020-12-08 | 北京嘀嘀无限科技发展有限公司 | 网格数据压缩方法和网格数据压缩装置 |
CN111149166A (zh) * | 2017-07-30 | 2020-05-12 | 纽罗布拉德有限公司 | 基于存储器的分布式处理器架构 |
CN111149166B (zh) * | 2017-07-30 | 2024-01-09 | 纽罗布拉德有限公司 | 基于存储器的分布式处理器架构 |
CN108257582A (zh) * | 2018-01-30 | 2018-07-06 | 广东中星微电子有限公司 | 一种图像的显示缓冲方法和装置 |
CN111276175A (zh) * | 2018-12-05 | 2020-06-12 | 华邦电子股份有限公司 | 一种内存装置以及虚拟静态随机存取内存的刷新方法 |
CN111290698A (zh) * | 2018-12-07 | 2020-06-16 | 上海寒武纪信息科技有限公司 | 数据存取方法、数据处理方法、数据存取电路和运算装置 |
CN111290698B (zh) * | 2018-12-07 | 2022-05-03 | 上海寒武纪信息科技有限公司 | 数据存取方法、数据处理方法、数据存取电路和运算装置 |
Also Published As
Publication number | Publication date |
---|---|
US20160218739A1 (en) | 2016-07-28 |
CN105431831B (zh) | 2018-10-02 |
WO2015120825A1 (en) | 2015-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105431831A (zh) | 数据存取方法和利用相同方法的数据存取装置 | |
US7620793B1 (en) | Mapping memory partitions to virtual memory pages | |
US7872657B1 (en) | Memory addressing scheme using partition strides | |
US8704840B2 (en) | Memory system having multiple address allocation formats and method for use thereof | |
US10163180B2 (en) | Adaptive memory address scanning based on surface format for graphics processing | |
US7196961B2 (en) | Memory control device | |
KR100817057B1 (ko) | 동일한 픽셀 데이터 그룹에 포함되는 픽셀 데이터들을메모리의 동일한 뱅크 어드레스로 매핑하는 매핑 방법 및비디오 시스템 | |
US9304933B2 (en) | Techniques to request stored data from a memory | |
US8639891B2 (en) | Method of operating data storage device and device thereof | |
WO2007149979A3 (en) | Unified virtual addressed register file | |
CN116010299B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
US10884657B2 (en) | Computing device within memory processing and narrow data ports | |
CN103760525A (zh) | 一种补齐式原地矩阵转置方法 | |
CN101212680B (zh) | 图像数据的存储器存取方法及*** | |
EP2092759A1 (en) | System for interleaved storage of video data | |
US11341045B2 (en) | Memory apparatus and method for processing data using the same | |
CN202758397U (zh) | 图形处理装置及芯片 | |
CN101729903A (zh) | 一种读取参考帧数据的方法、***和多媒体处理器 | |
US8799598B2 (en) | Redundancy loading efficiency | |
CN105551456A (zh) | 一种基于图像旋转显示的ddr2分块存储方法 | |
CN108804508B (zh) | 一种存储输入图像的方法及*** | |
US20200051532A1 (en) | Image combination device and display system comprising the same | |
TW201349167A (zh) | 顯卡裝置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181002 Termination date: 20200217 |
|
CF01 | Termination of patent right due to non-payment of annual fee |