CN1894677A - 采用对存储在存储器中的数据进行压缩的数据处理装置 - Google Patents

采用对存储在存储器中的数据进行压缩的数据处理装置 Download PDF

Info

Publication number
CN1894677A
CN1894677A CNA2004800100428A CN200480010042A CN1894677A CN 1894677 A CN1894677 A CN 1894677A CN A2004800100428 A CNA2004800100428 A CN A2004800100428A CN 200480010042 A CN200480010042 A CN 200480010042A CN 1894677 A CN1894677 A CN 1894677A
Authority
CN
China
Prior art keywords
data
data block
address
block
storer
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.)
Pending
Application number
CNA2004800100428A
Other languages
English (en)
Inventor
亚伯拉罕·K·里门斯
雷纳图斯·J·范德弗洛坦恩
彼得·范德沃尔夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1894677A publication Critical patent/CN1894677A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Abstract

数据是由与各个数据地址相关的数据项目(像素)构成的,该数据例如图像。将表示该数据的压缩数据块存储在存储器系统中。每个数据块表示与各个数据地址子范围中的数据地址相关的压缩数据项目。每个数据块从用于多地址传送的各个优选开始地址开始。每个数据块的地址子范围具有对应于优选开始地址之间的地址距离的长度,从而由于压缩保留了数据块之间未被特定数据块占用的存储器地址。解压缩器连接在处理元件与存储器系统之间。当该处理元件需要对数据块进行存取时,解压缩器动态地从存储器系统开始所需的一个数据块的多地址存储器传送,从而保留了直接在该数据块之后直到该传送中未传送的下一数据块的存储器地址。解压缩所传送的数据并且将其传递给处理器。

Description

采用对存储在存储器中的数据进行压缩的数据处理装置
本发明涉及采用对存储在存储器中的数据进行数据压缩的数据处理装置。
根据美国专利No.6173381,获知了一种数据处理系统,其具有通过总线相连的处理器和系统存储器。可以按照压缩或者未压缩的形式将数据存储在系统存储器中,该数据例如图像数据。处理器通过集成存储器控制器与系统存储器相连,该控制器在将数据写入系统存储器以及从系统存储器读取数据时压缩和解压缩该压缩数据。美国专利No.6173381教导了如何将压缩用于减少存储器占用和总线带宽,这是因为按照压缩形式存储数据比未压缩形式的相同数据所需的存储器位置更少。
当处理需要寻址数据内的不同位置时,按照压缩形式存储数据会妨碍数据的该处理。因为压缩,特别是可变长度压缩,未压缩数据中的不同项目之间的地址距离没有保存在压缩数据中。美国专利No.6173381通过在处理器与集成存储器控制器之间使用缓冲存储器将解压缩数据存储在该缓冲存储器中而解决了上述问题。因此,缓冲存储器中的处理器利用解压缩数据的虚拟地址可以寻址该解压缩数据。集成存储器控制器必须确保在缓冲存储器获取和回写过程中,在适当的系统存储器地址处读取和写入压缩数据。美国专利No.6173381没有描述如何适当地寻址该压缩数据,但是处理器产生的解压缩数据的虚拟地址可能转变为数据的压缩形式的物理地址,以及将该数据写入这些物理地址或者从这些物理地址读取数据。虚拟地址到物理地址的转变会使处理变慢。
在许多现代数据处理系统中,在总线传送中取出数据,其中可以响应于每个单独的地址在存储器与处理器之间传送具有大量可寻址字(例如达到64或128字节)的数据块。这种传送必须从特定的开始地址(此后称作优选开始地址)开始,例如在128字节数据块边界处典型地相互距离相等的地址(这些地址的多个最低有效位为零),或者如果该传送必须从不是优选开始地址的地址开始,则至少需要额外的开销。可以选择传送的长度。这使得存储器带宽增大。在已知的处理器中,该字的数量与压缩参数不相关。
其中,本发明的目的是提供一种数据处理装置和方法,其中通过压缩减少了存取数据所需的总线带宽,而不会使对于数据的不同可寻址部分的存取复杂化。
其中,本发明的目的是提供一种数据处理装置和方法,其中通过压缩减少了存取图像和/或音频数据所需的总线带宽,而不会使对于数据的不同可寻址部分的存取复杂化。
其中,本发明的目的是提供一种数据处理装置和方法,其中可以动态地改变用于使用解压缩数据的处理的总线带宽。
权利要求1中提出了根据本发明的数据处理装置。该装置处理与数据地址范围中的各个数据地址相关的数据项目,例如具有相关x、y地址的图像中的像素或者与采样常数tn相关的临时数据。使用了分别表示来自数据地址范围的各个子范围的数据项目的压缩数据块。选择子范围的长度使得它们对应于用于多地址存储器传送的优选开始存储地址对之间的距离。优选的是,每个子范围具有相等的长度。将压缩数据块存储在存储器系统中,每个数据块从优选的开始存储地址开始,使得到下一数据块的开始存储地址的地址距离对应于与该数据块中数据项目相关的数据地址的子范围长度。
因此,可以利用在已经传送了数据块时终止的多地址存储器传送来减少用于存储和取回该数据块的存储器存取带宽。因为该数据块的开始地址之间的距离对于未压缩数据而言是相同的,所以可以根据所需未压缩数据项目的数据地址来直接确定传送的开始地址,例如通过获取该数据地址的更高有效位。因此,存储压缩数据块的存储器地址的范围基本上与未压缩数据项目所需的相同。因此,实现了所占用存储器的地址范围没有减少,而仅造成带宽使用的减少。
处理元件对这些数据项目应用处理操作,例如过滤。典型的是,该处理元件利用数据地址(可能会有一些偏移的调节)寻址该数据项目,但是处理器也可以仅仅隐含地使用该数据地址,例如通过要求仅通过表示需要下一数据项目而具有相邻数据地址的数据项目。优选的是,为了这种取出,将用于解压缩数据块内的所有数据地址的解压缩数据存储在缓冲器中,但是可选择的是可以每次仅解压缩数据块内的寻址数据。该存储系统例如为单独的半导体存储器,其具有附加存储器总线,或者协作提供响应于地址的数据的存储器的任意组合。
当为了解压缩而取出了压缩数据的数据块时,根据实际的数据块尺寸选择多地址存储器传送的长度。在存储器传送过程中,当已经传送了来自压缩数据数据块的数据时,在已经传送了直到下一数据块的开始的数据之前,终止传送。因此,可以以最小的总线带宽取出压缩数据的数据块,并且在不需要获知压缩数据的其它数据块的尺寸的情况下寻址该数据块。
其中的数据共同压缩为压缩数据块的地址的子范围的长度优选等于连续的优选开始存储地址对之间的距离。这可以获得更有效的存储器总线利用率,并且可能减少存储器存取等待时间。然而,在不背离本发明的情况下,子范围可以延伸到连续的优选开始存储地址之间的多个距离上。这提供了更高的压缩比,因此存储带宽更小。在这种情况下,可以使用多个多地址存储器传送来传送一个数据块。
优选利用数据块存储压缩数据数据块的长度信息。因此,当传送数据块时可以自动获得这些长度,而无需其它的存储器寻址。在一个实施例中,利用数据块自身存储压缩数据数据块的长度信息。因此,可以根据该数据块自身中的信息生成信号以终止传送。在另一实施例中,利用压缩数据的数据块存储逻辑上的下一压缩数据数据块的长度信息。(逻辑上的下一数据块表示处理元件下次存取的数据块,例如当数据块编码相邻图像区域的图像数据时逻辑上彼此相邻的数据块)。因此,在寻址该数据块之前可以获得长度信息以设定数据块的传送长度。当必须在每次传送开始时设定传送长度时,这是很有效的。
优选的是,使用可缩放的解压缩技术,其中利用更大或更小长度的数据块可以改变解压缩的质量。因此,通过改变来自数据块的数据传送长度,可以以解压缩质量为代价动态地改变带宽使用。
优选的是,使用有损耗压缩,尤其是当需要数据以提供人的感知(例如图像数据或者音频数据)时。在有损耗压缩之后,通常不能通过解压缩精确地重建数据,但是其将相同的感知内容分配到更大或更小的范围,这取决于压缩比。在一个实施例中,根据可动态利用的存储器带宽动态改变压缩比。
在另一实施例中,可以使用不同的压缩选项,其利用不同的越来越少的数据以越来越差的精度重建数据,使得通过尽快终止存储器传送以及可以以更小的精度为代价使用更小的带宽。
使用以下附图描述本发明的这些和其它目的和优势方面。
图1表示了数据处理装置;
图2表示了存储器存取;
图3表示了存储器占用;
图4表示了处理元件;
图5表示了存储器占用。
图1表示了数据处理装置,其具有存储器10和通过总线12互连的多个处理元件14(作为举例仅表示了两个)。该处理元件14包含处理器140、解压缩器142和压缩器144。处理器140通过解压缩器142和压缩器144与总线12相连。在本申请的上下文中,存储器10和总线12为提供对存储器10中的数据进行存取的存储器系统的一部分。
图2表示了在图1的装置工作过程中,包括存储器10通过总线12的存储器传送。例如,图2表示了独立的地址信号20、数据信号22和终止信号24。为了从存储器10读取数据或者将数据写入存储器10,处理元件14首先输出地址信号20中的数据块地址21。随后,为该数据块地址21传送多个数据字23。在读取操作的情况下,该数据字23是来自具有从数据块地址21开始的地址的连续存储位置的数据字。在写入操作的情况下,数据字23是来自必须在具有从数据块地址21开始的地址的连续存储位置写入的处理元件14的数据字。
在传送了多个数据字23之后,该处理元件14生成表示该数据块地址21的存储器传送终止以及总线12对于下一数据块地址27处的下一次存储器传送的可利用性的终止信号25。因此,在时隙26期间发送数据字23,处理元件14控制该时隙的长度。(可以理解,在实际的技术方案中,可以使用不同于地址信号20、数据信号22和/或终止信号24、但表示相同信息的信号类型。例如,可以由传送开始时发送的长度代码表示终止信号)。
图3表示了存储器10中实际的存储器占用30,以及从处理器140来看的虚拟存储器占用32。所示的存储器10包含在数据块300a-d中,数据块300a-d从上到下排列。数据块的长度对应于能够由不同数据块地址21寻址的连续位置之间的字的数量。典型的是,该长度是2的幂,例如每数据块64个字或者128个字。
在一个实施例中,使用了一种存储器10(本质上是已知的),将其构建成多地址存储器传送仅从数据块边界地址开始,例如从分别为128字节或者256字节的地址开始,其中该地址的最后7或8位为零。响应对于多地址存储器传送的请求,该存储器在内部生成实现存储器中连续寻址位置相等的信号,这些位置的地址具有不同的地址较低有效位的值。这种存储器系统的结构设计成为这种从线的开始处进行的存取提供最佳性能(在总线利用率和等待时间方面)。这适用于读取和写入。在本实施例中,该开始地址将称为术语“优选的开始地址”,然而它们对于多地址存储器传送而言实际上仅仅是可能的开始地址。
在另一实施例中,使用了一种存储器(本质上是已知的),将其构建成多地址存储器传送的开始地址的最低有效位可选择地用于选择多地址存储器传送的开始地址,代价至少是额外的存储器时钟周期。在这种情况下,将信号发送到存储器10,不是为了使用该额外的时钟周期,而是为了立刻以最小开支从标准开始地址开始该多地址存储器传送,而没有为改变的开始地址使用一个或多个额外的时钟周期。术语“优选的开始地址”用于指本实施例中的这些标准地址。当然,这两个实施例可以具有其它的实施方式,其中可以通过连续的优选开始地址之间的距离从而强加最大传送长度,使得如果将要传送的数据块延伸超过了一个开始地址,则必须为每个优选开始地址开始新的多地址传送,但是本发明不限于这些其它的实施方式。
优选的是,选择压缩数据块大小,使得连续的未压缩数据数据块之间的地址距离等于多地址存储器传送的一对优选开始地址之间的距离。在许多压缩算法中,可以调整该数据块的大小,或者可将压缩数据块结合成更大的数据块,使得可以实现存储器结构限定的所需数据块的大小。如下所述,可选择的是可以将压缩数据块的大小设置为存储器系统数据块的大小的整数倍。当解压缩来自该数据块的压缩数据时,每个解压缩数据数据块的长度对应于存储器10中一对优选开始地址之间的距离。优选的是,所有解压缩数据数据块具有相同的长度。
阴影区域表示了压缩数据占用的实际存储器占用30中的存储器位置。如实际存储器占用30中所示,当使用可变长度压缩时,存储器传送单元300a-d的变化部分仍未被压缩数据占用。
处理元件14包含解压缩器142和压缩器144。当已经传送了来自寻址数据块的所有压缩数据时,但是在传送整个物理存储器传送的内容之前,解压缩器142通过提供压缩数据数据块的数据块地址21并且生成终止信号25以终止存储器传送,来通过总线12从存储器10取出压缩数据。解压缩器142解压缩从寻址数据块取出的数据,并且向处理器140提供解压缩数据。
类似的是,压缩器144压缩处理器140产生的数据并且通过总线12将压缩数据写到存储器10。在这种情况下,在已经改写了物理存储器传送单元中的所有字之前,压缩器144为压缩数据数据块提供单独的数据块地址21,当已经发送了表示该压缩数据的字数时发送来自压缩数据块的压缩数据字,并且发送终止数据块地址21的传送的信号。
处理器140按照解压缩数据的地址寻址该数据块中的数据。也就是说,该数据地址通常包括解压缩数据块的数据块地址和解压缩数据块内的字地址。该字地址可以假设达到预定解压缩数据块大小的任意值。因此,对于处理器140,如虚拟存储器占用32所示,出现地址空间,其中每个数据块320a-d占用了相同的预定数量的位置。当处理器140发出读取请求时,其向解压缩器142提供数据地址。除非已经缓存了该寻址数据,解压缩器142使用数据地址的数据块地址部分,通过总线12寻址存储器10。随后,解压缩器142从寻址数据块取出表示压缩数据块所需的实际数量的字,一旦已经传送了该实际数量就终止存储器传送,但是通常在已经传送了该数据块的整个预定长度之前终止传送。解压缩器142解压缩取出的数据,选择由来自处理器140的数据地址寻址的数据,并且将选定的数据返回处理器140。
优选的是,解压缩器142包含用于存储所有解压缩数据块数据地址的数据的缓冲存储器(未示出)。当解压缩该数据块时,将解压缩数据写到所有这些位置,并且从这些位置向处理器140提供由处理器140寻址的数据。可选择的是,每次仅可以解压缩来自数据的寻址字,或者解压缩包括寻址字的字的子集。通常,需要一些额外的努力来通过缓冲所有字来解压缩数据块的所有字,而不是仅仅解压缩一个字,存取等待时间平均起来就降低了。然而,应当理解,在一个实施例中,压缩数据块可以由能够彼此相互独立进行解压缩的子数据块构成。在这种情况下,当需要来自一个子数据块的数据时,一个子数据块的解压缩数据可以改写缓冲存储器中来自相同数据块的另一子数据块的数据,而无需从存储器系统10中取回新的数据块。
当处理器140写入数据时,处理器140为写入数据提供被处理器144使用的数据地址。典型的是,压缩器144存储来自完成的未压缩数据块的数据,在数据地址寻址的地址处,使用写入数据来取代该未压缩数据,随后压缩该数据并且利用来自处理器140使用的数据地址的数据块地址将压缩数据写入存储器10。压缩器144在已经传送了该数据块地址的压缩数据时终止传送,通常在已经将预定数量的字传送到对应于连续数据块地址之间的距离的存储器10之前。
因此,当压缩器140大体上寻址全部解压缩数据时,必须通过总线12在处理元件14与存储器10之间传送的字的数量小于解压缩数据中字的总数,从而为其它传送留下了更多的总线和存储器带宽。利用压缩数据通常不会减少压缩数据占用的存储器空间,这是因为存储器10中的每个压缩数据块留下了未占用空间,以允许解压缩数据块中已使用的数据块地址用作取出压缩数据块的数据块地址。
在一个实例中,在存储器中分布的多个连续压缩数据块上存储了压缩视频图像。在解压缩之后,处理器140单独寻址该图像的像素。在这种情况下,压缩图像占用的存储器位置的最小和最大地址之间的距离基本上与存储未压缩图像所需的相同,同样是因为在每个压缩数据块300a-d的末端留下了未使用的存储器位置。在这种情况下,视频显示设备,例如电视监视器可以通过解压缩器和总线12与存储器10相连,或者视频源,例如照相机或者电缆输入可以通过压缩器和总线12与存储器10相连。
压缩器144和解压缩器142优选利用了可变长度压缩,其使得每个压缩数据块中压缩数据的长度适应该数据块中特定的未压缩数据。这就可以使存储器和总线带宽使用最小化。
在图像数据或者其它感觉数据(例如音频数据)的情况下,可以使用有损耗压缩,这种压缩方式以一些信息丢失为代价来压缩数据。这还可以使存储器和总线带宽利用最小化。在一个实施例中,将动态压缩比(从而改变损失的量)改变为适用于动态可用的总线带宽。在这个实施例中,可以将总线监测设备(未示出)与总线12相连,以确定带宽利用。例如当处理元件14设计成向总线监测器发送信号以表示请求的带宽利用时,或者当总线监测器计算每时间单位未使用的总线周期的数量时,可以实现上述方案。将总线监测器与压缩器144相连,以动态地或者响应于来自处理元件14的请求来设定压缩器144中的压缩比,从而开始写入压缩数据。
优选的是,压缩器144在每个压缩数据数据块中包括长度代码,以表示压缩数据数据块中字的数量。该长度代码包含在例如压缩数据块中压缩数据之前的第一个字中。因此数据块的格式是
(数据块的长度代码,压缩数据)
当解压缩器142使用数据块地址来取出压缩数据块时,解压缩器142从该压缩数据块读取长度代码,并且将该长度代码用于向存储器10发信号,在多少个字之后存储器为该数据块地址的传送可以终止。
作为一种可选方式,压缩器144可以设置为将每个特定压缩数据块的长度代码存储在邻接存储器10中特定压缩数据块的在前和/或在后压缩数据块中。
(在前和/或在后数据块的长度代码,压缩数据)在这种情况下,解压缩器142首先必须读取在前或在后的数据块,以确定必须包含在存储器传送中的字的数量。因为这些数据块主要按照它们存储在存储器中的顺序进行传送,所以解压缩器142通常可以通过保留来自压缩数据块的长度代码以控制下次获取的压缩数据块的存储器传送长度,从而避免取出长度代码的附加存储器传送。这就可以在存储器传送开始时提供长度代码。通常,仅在一个寻址方向上存取数据。在这种情况下,足以在每个特定压缩数据块中存储在该一个方向上的相邻数据块的长度代码。在另一个实施例中,包含了两个方向上相邻数据块的长度代码,以避免在每个方向上读取时长度代码的独立读取。当这种连续传送过程开始时,第一数据块的长度是未知的。在这种情况下,可以传送仅为第一次传送产生小损失的整个未压缩长度。
在又一实施例中,可以改变存储器10中特别的压缩数据块和包含长度代码的特定压缩数据块,以达到预期的连续寻址数据块的方式:例如,如果期望跳过每个第二解压缩数据块,每个数据块包含第二个下一压缩数据块的长度代码。在另一实施例中,该数据块包含下一数据块编码,以表示包含长度代码的逻辑上的下一数据块。现在该数据块格式如下
(代码识别逻辑上的下一数据块,逻辑上的下一数据块的长度代码,当前数据块的压缩数据)
在存储了例如压缩图像数据的实施例中,可能希望在存取隔行图像时跳过每两个图像线。相应的是,可以设置在每个图像线末端的长度代码,以描述第二下一图像线开始处的压缩字数量。
图4表示了具有缓冲存储器40和缓冲管理单元42的处理元件的实施例。缓冲存储器40连接在一侧的处理器140与另一侧的压缩器144和解压缩器142之间。在工作过程中,缓冲存储器40存储一个或多个解压缩数据数据块,以及关于缓冲数据块地址的信息。当处理器140寻址来自缓冲数据块的数据时,不需要对总线12进行存取。当处理器140寻址不在缓冲存储器40中的数据时,缓冲管理单元42触发解压缩器142,以取出压缩数据块,在解压缩之后可以从该压缩数据块取出寻址数据。解压缩器142解压缩该取出的数据块,并且将解压缩数据块写到缓冲存储器,从而可以随后对其寻址。
如果必要,缓冲管理单元42通过再使用用于前一未压缩数据数据块的缓冲存储器空间而在缓冲存储器40中生成空间。当处理器140已经更新了该数据块中的数据时,缓冲管理单元首先向压缩器144发信号,以压缩未压缩数据块,以及将压缩数据块写到存储器10(未示出)。可以使用各种常规的缓冲回写策略,例如直写(每次当处理器140更新缓冲存储器40中的数据字时压缩和写入)或者回写(仅当需要新的未压缩数据块的缓冲空间时)。
注意,当压缩数据数据块写到存储器10时,压缩器144通常需要整个解压缩数据数据块,即使处理器140仅更新了一个字。因此,为了写入数据字,可能需要从存储器10取出压缩数据数据块,以解压缩压缩数据数据块(优选使用解压缩器142),从而更新解压缩数据数据块中相关的一个或多个数据字,由此压缩更新的数据块以及回写压缩数据块。然而,通常连续更新未压缩数据块的多个不同数据字。优选的是仅在已经完成了未压缩数据块的处理时出现回写。而且,通常更新解压缩数据块中的所有数据,使得不需要解压缩旧的数据块。
在一个实施例中,压缩和解压缩是可选的。在本实施例中,可以将压缩和解压缩数据块存储在存储器10中。处理器140可以选择是否压缩,例如通过设置压缩控制寄存器(未示出),或者通过在数据地址分别位于预定的地址范围之内和之外时选择压缩与否。在未压缩数据的情况下,例如对于在一个或多个特定地址范围之外的数据地址,有效地旁路了压缩器144和142。可以将来自该数据地址的数据位用于例如表示该地址位于寻址压缩或未压缩数据的范围之内还是之外。
在另一实施例中,解压缩器142设置为使用一系列不同压缩选项之一,这些选项分别能够从相同的压缩数据中获得解压缩信息,而使用了越来越小的解压缩数据子集。在存储器中,对于每个压缩数据数据块,首先放置来自最小子集的数据,随后是完成下一更大的子集所需的附加数据。例如,当按照一系列数字编码该数据块时,可以在存储器中首先放置该数据块中包含较高有效数字的字,随后是包含较低有效位的字,如果应用了,则随后是具有更低有效位的字等等。然而,应当理解存在其它可能性,例如首先放置表示该数据块的子采样子集的数字等。不同的压缩选项读取了越来越大的压缩数据数据块子集,利用该子集,解压缩器能够再生成越来越高质量的解压缩数据。当使用某个解压缩选项时,该解压缩器在已经传送了相关数据子集时终止存储器传送,根据所使用的选项计算传送所需的长度,如果应用了,则根据该数据块的长度代码来计算(例如当使用更高有效位时,将要传送的位数是根据长度(数据块中数字的数量)乘以所使用的更高有效位部分而得出的)。因此,使总线12上的带宽利用最小化。
因此,利用越来越低质量的解压缩可以实现更小的总线12带宽利用。根据处理器14执行的算法的需要,处理器14选择一种解压缩算法,并且命令解压缩器142使用选定的解压缩算法。因此,带宽利用适合处理器14的需要。而且,可以提供总线管理器(未示出),以确定总线12中的总线带宽(可以采用任何已知的确定带宽利用的方法),并且发送信号以根据总线12上可以利用的带宽来选择解压缩算法。
除了数据缓冲存储器40之外,处理元件可以具有对于处理器140的指令缓冲存储器(未示出)。优选的是,该指令缓冲存储器具有与总线12的独立接口。优选在不解压缩的情况下读取指令,从而使等待时间和与解压缩数据管理分离的缓冲存储器最小化。
前面,已经描述了如何在对应于解压缩数据块的开始数据地址之间的距离的地址距离处存储连续的压缩数据块,其中该解压缩数据块对应于压缩数据块。优选的是,该距离对应于一对连续的优选开始地址之间的距离,该距离是由用于响应单独的数据块地址开始通过总线12的多地址存储器传送的存储器系统结构限定的。然而,在另一实施例中,该距离对应于这个距离的整数倍,即由其它优选开始地址分开的一对优选开始地址之间的距离。如果最大的多地址传送长度受到连续的优选开始位置之间距离的限制,则在这种情况下不能由单独的数据块地址21寻址可用于压缩数据块的全部存储空间。这表示,原则上可能需要提供多个数据块地址21以存取压缩数据块。根据压缩比,当传送压缩数据块时可以省略这些数据块地址中的一个或多个,和/或可能不需要传送可以利用所提供的数据块地址存取的最后的数据字数字。
应当认识到,在上下文中,尽管词语“压缩数据数据块”是指在不参考其它数据块的情况下能够解压缩的数据的集合,但是不表示需要来自压缩数据块中的所有数据来解压缩该数据块中的任意字。例如,压缩数据数据块可以包括能够独立解压缩的多个压缩数据子数据块。类似的是,如果使用可变长度代码,例如Huffman编码,则可能需要仅考虑其它字的数据,以确定特定未压缩数据地址的字的开始位置。
图5表示了利用数据块的开始地址之间更大的距离的物理存储器占用50的实例。在本实例中,压缩比为2。因此,可以将需要两个数据块地址进行传送的解压缩数据520a、b作为压缩数据存储在存储器空间500a、b(示为阴影区域)中,其大小为每次能够利用一个数据块地址进行传送。压缩数据没有占用该大小的每个其它存储器空间(示为无阴影区域),并且需要传送其内容。因此,需要提供给存储器10的数据块地址数量将减半。可以理解,对于其它压缩比,其它的存储器空间可以保持开放。
原则上,存储器中间空间可以没有相关数据,其保持开放以促进利用解压缩数据块中的地址进行寻址。然而,在不背离本发明的情况下,可以将其它数据存储在这些中间空间中,以备其它处理使用。而且,可以将从其它数据块复制的压缩数据存储在这些中间空间中。在这种情况下,通过加载来自优选地址之间的全部空间的数据,可以在一些操作中可选择地实现超前。但是,在该中间空间中的这种数据当然不会继续超过下一压缩数据数据块开始的下一优选开始地址。
而且,应当理解部分解压缩数据可以是不取决于压缩数据的空数据。因此,根据压缩数据利用解压缩实际获得的数据字数量实际上可以小于这两个数据块地址之间的数据字数量,其中该压缩数据存储在两个数据块地址之间。而且,尽管压缩数据数据块(可选择地包括长度信息)优选从优选开始地址立刻开始,但可以理解,在不背离本发明的情况下,可以使用偏移。在这种情况下,优选开始仍然是多地址存储器传送的开始地址,但是来自传送开始时的一些传送数据可以保持未使用,以用于解压缩。类似的是,可以在一定程度上偏移多地址传送的结束地址,超过压缩数据块的最后地址。只要在保留一些达到下一优选开始地址的数据未传送的情况下终止传送,就仍然实现了带宽增益。
尽管已经根据明确地提供未压缩数据地址的处理元件以及使用处理元件提供的地址去寻址存储器中的压缩数据块的压缩器和解压缩器,描述了本发明,但是可以理解处理元件可以隐含地寻址数据,例如通过向压缩器或者解压缩器发送“下一个”的信号,以表示地址变为相邻地址(例如右边的像素或者临时信号的新近样本)。本发明是有利的,不仅因为可以将未压缩数据的地址直接转变为压缩数据数据块的存储器地址,而且还因为不需要获取在随机存取的情况下可能删除的不需要的数据块的数据。不需要保存关于不同数据块的开始位置的管理。
尽管本发明优选用于分别表示相同尺寸的未压缩数据地址子范围中的数据的压缩数据块,但是可以理解在不背离本发明的情况下,可以将不同尺寸的子范围用于不同数据块。

Claims (22)

1.一种用于处理分别与数据地址范围中的各个数据地址相关的数据项目的装置,其中将表示该数据项目的压缩数据块存储在存储器系统中,每个数据块占用的存储器地址从该存储器系统的多地址传送的各个优选开始地址开始,每个数据块表示与各个该范围的子范围中的数据地址相关的压缩数据项目,该子范围为连续相邻的,每个特定的子范围具有的长度对应于表示该特定子范围中的数据项目的该特定数据块开始的优选开始地址与下一连续子范围的下一个该数据块开始的优选开始地址之间的地址距离,从而保留了数据块之间未被该特定数据块占用的存储器地址,该装置包括:
-存储器系统,其能够执行仅从该优选开始地址开始的可选长度多地址存储器传送,或者具有比从不同于该优选开始地址的其它地址开始更小的开销;
-处理元件,用于处理该数据项目;
-连接在该处理元件与该存储器系统之间的解压缩器,该解压缩器设置为
-当该处理元件需要对该数据块进行存取时,动态地从该存储器系统开始所需的该数据块之一的多地址存储器传送,从而保留了直接在该数据块之后,直到该传送中未传送的下一数据块的优选开始地址的存储器地址,以及
-在将该数据项目传递到该处理元件之前,解压缩来自该所需的数据块之一的数据项目。
2.根据权利要求1所述的装置,其中该处理元件设置为向该解压缩器表示从一系列不同解压缩选项选择的解压缩选项,这些选项需要从被传送的该所需的数据块之一的优选开始地址开始的连续的越来越小的地址,该解压缩器根据所表示的解压缩选项设定该存储器传送的长度。
3.根据权利要求1所述的装置,其中该解压缩器设置为当已经传送了根据该所需的数据块之一的长度而选择的多个字时,发送信号到该存储器系统,以终止该所需的数据块之一的多地址存储器传送。
4.根据权利要求3所述的装置,其中该解压缩器设置为从该多地址存储器传送中取出表示该所需的数据块之一的长度的信息,该解压缩器根据所述信息生成该信号。
5.根据权利要求1所述的装置,其中该解压缩器设置为
-从该所需的数据块之一之前取出的在前取出数据块的多地址存储器传送中,取出表示所需的数据块之一的长度的信息,以及
-在该所需的数据块之一的该多地址存储器传送开始时,向该存储器系统发送根据该信息获得的传送长度选择信号。
6.根据权利要求1所述的装置,其中该子范围的长度彼此相等并且大于连续的优选开始地址之间的距离,该解压缩器设置为根据该数据块的长度有条件地开始所需的数据块之一的随后的多地址存储器传送。
7.根据权利要求6所述的装置,其中每个数据块包括可以相互独立解压缩的多个子数据块,每个子数据块对应于该数据块的各个大小相等的子范围部分,该解压缩器包括缓冲存储器区域,用于缓冲该多地址存储器传送过程中读取的压缩数据的该子数据块,还包括中间存储器区域,用于存储从该子数据块连续解压缩的数据,该解压缩器将来自于该存储器传送过程中读取的各个子数据块的该解压缩数据相互连续的置于该中间存储器中。
8.根据权利要求1所述的装置,其中该解压缩器设置为应用对应于有损耗数据块压缩的解压缩。
9.根据权利要求1所述的装置,其中该解压缩器设置为应用对应于可变长度数据块压缩的解压缩。
10.根据权利要求1所述的装置,其中该子范围具有彼此相等的长度。
11.根据权利要求1所述的装置,包括压缩器,用于压缩与各个该子范围之一相关的数据项目,该子范围具有与优选开始地址对之间的距离相等的长度,该压缩器将与各个该子范围之一相关的数据项目压缩到各个该数据块之一中去,该压缩器设置为利用各个该数据块之一的各个多地址存储器传送,将该压缩数据块存储在该存储器系统中,每次传送从各个该优选开始地址之一开始,该解压缩器当完成了存储每个数据块时终止该多地址存储器传送,而没有在该数据块不需要时写入直到下一优选开始地址。
12.根据权利要求11所述的装置,其中该处理元件计算用于压缩的该数据项目,且该压缩器设置为从该处理元件接收用于压缩的该数据项目。
13.根据权利要求11所述的装置,其中该压缩器设置为根据动态测得的存取该存储器系统的可利用带宽级别,来改变用于压缩该数据的压缩比。
14.一种处理一组数据项目的方法,其中每个数据项目与数据地址范围中的各个数据地址相关,该方法包括
-提供存储器系统,其具有包括等距优选开始地址子组的存储器地址,从该优选开始地址可以专有地开始多地址存储器传送,或者具有比从不同于该优选开始地址的其它地址开始的更小开销;
-将压缩数据块存储在该存储器系统中,地址用于从各个该优选开始地址之一开始的各个该数据块之一,每个数据块表示与该范围的各个子范围中的数据地址相关的压缩数据项目,该子范围为连续相邻的,每个特定的子范围具有的长度对应于表示该特定子范围中的数据项目的该特定数据块开始的该优选开始地址与下一连续子范围的下一个该数据块开始的该优选开始地址之间的地址距离,从而保留了之间未被该特定数据块占用的存储器地址。
15.根据权利要求14所述的方法,包括
-处理从该数据块获得的解压缩数据项目;
-利用从该优选开始地址开始的多地址存储器传送,从该存储器系统取出用于所述处理的所需的该数据块之一,其中从该优选开始地址开始存储该所需的数据块之一;
-根据该所需的数据块之一的长度,终止用于该所需的数据块之一的该多地址存储器传送,从而保留了直接在用于该所需的未传送数据块之一地址之后的存储器地址的内容。
16.据权利要求14所述的方法,包括利用该存储器系统中该所需的数据块之一存储表示该所需的数据块之一的长度的信息,以用于该多地址存储器传送中的传送。
17.根据权利要求14所述的方法,包括利用逻辑上的前一数据块存储表示该所需的数据块之一的长度的信息,在所述处理该所需的数据块之一的在前数据项目过程中,从该逻辑上的前一数据块正常处理数据项目,以用于该逻辑上的前一数据块的多地址存储器传送中的传送。
18.根据权利要求17所述的方法,包括
从该逻辑上的前一数据块读取该信息
-当用于该所需的数据块之一的该多地址存储器传送开始时,将根据该信息选择的传送长度选择信号发送到该存储器系统。
19.根据权利要求14所述的方法,其中将未压缩数据的有损耗数据块压缩用于生成该数据块。
20.根据权利要求14所述的方法,其中将未压缩数据的可变长度数据块压缩用于生成该数据块。
21.根据权利要求20所述的方法,其中根据用于存取该存储器系统的动态可利用带宽,动态调整该可变长度数据块压缩的压缩比。
22.一种计算机程序产品,包括根据权利要求14至21中任一项所述的方法控制存储器传送和解压缩的机器指令。
CNA2004800100428A 2003-04-16 2004-04-13 采用对存储在存储器中的数据进行压缩的数据处理装置 Pending CN1894677A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03101037.4 2003-04-16
EP03101037 2003-04-16

Publications (1)

Publication Number Publication Date
CN1894677A true CN1894677A (zh) 2007-01-10

Family

ID=33185936

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2004800100428A Pending CN1894677A (zh) 2003-04-16 2004-04-13 采用对存储在存储器中的数据进行压缩的数据处理装置

Country Status (6)

Country Link
US (1) US20060271761A1 (zh)
EP (1) EP1627310A2 (zh)
JP (1) JP2006524858A (zh)
KR (1) KR20060009256A (zh)
CN (1) CN1894677A (zh)
WO (1) WO2004092960A2 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129873A (zh) * 2011-03-29 2011-07-20 西安交通大学 提高计算机末级高速缓存可靠性的数据压缩装置及其方法
CN101383617B (zh) * 2007-09-07 2012-06-13 三星电子株式会社 数据压缩/解压缩设备和方法
CN101383616B (zh) * 2007-09-07 2013-04-10 三星电子株式会社 数据压缩设备和方法
CN103620564A (zh) * 2011-05-10 2014-03-05 马维尔国际贸易有限公司 用于存储器设备的数据压缩和紧缩
CN106980465A (zh) * 2015-11-30 2017-07-25 瑞萨电子株式会社 半导体装置、数据处理系统和半导体装置控制方法
CN109672923A (zh) * 2018-12-17 2019-04-23 龙迅半导体(合肥)股份有限公司 一种数据处理方法和装置
CN113326001A (zh) * 2021-05-20 2021-08-31 锐掣(杭州)科技有限公司 数据处理方法、装置、设备、系统、介质及程序
CN113835872A (zh) * 2020-06-24 2021-12-24 北京小米移动软件有限公司 一种用于减少内存开销的数据处理方法、装置及存储介质
CN114442951A (zh) * 2022-01-24 2022-05-06 珠海泰芯半导体有限公司 传输多路数据的方法、装置、存储介质和电子设备

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473673B2 (en) * 2005-06-24 2013-06-25 Hewlett-Packard Development Company, L.P. Memory controller based (DE)compression
JP2007094639A (ja) * 2005-09-28 2007-04-12 Tdk Corp メモリコントローラ及びフラッシュメモリシステム
WO2007135602A1 (en) * 2006-05-24 2007-11-29 Koninklijke Philips Electronics N.V. Electronic device and method for storing and retrieving data
US8868930B2 (en) 2006-05-31 2014-10-21 International Business Machines Corporation Systems and methods for transformation of logical data objects for storage
JP5431148B2 (ja) 2006-05-31 2014-03-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ストレージ用論理データオブジェクトの変換方法およびシステム
US8718142B2 (en) 2009-03-04 2014-05-06 Entropic Communications, Inc. System and method for frame rate conversion that utilizes motion estimation and motion compensated temporal interpolation employing embedded video compression
JP5526641B2 (ja) * 2009-08-03 2014-06-18 富士通株式会社 メモリコントローラ
GB0918373D0 (en) * 2009-10-20 2009-12-02 Advanced Risc Mach Ltd Memory interface compression
KR101649357B1 (ko) * 2010-05-10 2016-08-19 삼성전자주식회사 데이터 저장 장치, 그것의 동작 방법, 그리고 그것을 포함한 스토리지 서버
KR20110138076A (ko) * 2010-06-18 2011-12-26 삼성전자주식회사 데이터 저장 장치 및 그것의 쓰기 방법
US8510518B2 (en) * 2010-06-22 2013-08-13 Advanced Micro Devices, Inc. Bandwidth adaptive memory compression
JP5855150B2 (ja) 2014-03-06 2016-02-09 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN107250991B (zh) 2015-02-13 2020-08-28 谷歌有限责任公司 透明硬件辅助存储器解压缩
CN104853213B (zh) * 2015-05-05 2018-05-18 福州瑞芯微电子股份有限公司 一种提高视频解码器cache处理效率的方法及其系统
JP7142562B2 (ja) * 2018-12-25 2022-09-27 ルネサスエレクトロニクス株式会社 半導体装置、および、データのアクセスを制御するための方法
KR20210088304A (ko) 2020-01-06 2021-07-14 삼성전자주식회사 이미지 프로세서의 동작 방법, 이미지 처리 장치 및 이미지 처리 장치의 동작 방법
US11243890B2 (en) * 2020-01-14 2022-02-08 EMC IP Holding Company LLC Compressed data verification
US11245415B2 (en) * 2020-03-13 2022-02-08 The University Of British Columbia University-Industry Liaison Office Dynamic clustering-based data compression

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5392417A (en) * 1991-06-05 1995-02-21 Intel Corporation Processor cycle tracking in a controller for two-way set associative cache
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
US5864859A (en) * 1996-02-20 1999-01-26 International Business Machines Corporation System and method of compression and decompression using store addressing
JP3127853B2 (ja) * 1997-04-30 2001-01-29 日本電気株式会社 メモリ集積回路並びにこれを用いた主記憶システム及びグラフィクスメモリシステム
US6175896B1 (en) * 1997-10-06 2001-01-16 Intel Corporation Microprocessor system and method for increasing memory Bandwidth for data transfers between a cache and main memory utilizing data compression
US7188227B2 (en) * 2003-09-30 2007-03-06 International Business Machines Corporation Adaptive memory compression

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101383617B (zh) * 2007-09-07 2012-06-13 三星电子株式会社 数据压缩/解压缩设备和方法
CN101383616B (zh) * 2007-09-07 2013-04-10 三星电子株式会社 数据压缩设备和方法
CN102129873A (zh) * 2011-03-29 2011-07-20 西安交通大学 提高计算机末级高速缓存可靠性的数据压缩装置及其方法
CN102129873B (zh) * 2011-03-29 2012-07-04 西安交通大学 提高计算机末级高速缓存可靠性的数据压缩装置及其方法
CN103620564A (zh) * 2011-05-10 2014-03-05 马维尔国际贸易有限公司 用于存储器设备的数据压缩和紧缩
CN103620564B (zh) * 2011-05-10 2017-03-15 马维尔国际贸易有限公司 用于存储器设备的数据压缩和紧缩
CN106980465A (zh) * 2015-11-30 2017-07-25 瑞萨电子株式会社 半导体装置、数据处理系统和半导体装置控制方法
CN106980465B (zh) * 2015-11-30 2021-06-29 瑞萨电子株式会社 半导体装置、数据处理系统和半导体装置控制方法
CN109672923A (zh) * 2018-12-17 2019-04-23 龙迅半导体(合肥)股份有限公司 一种数据处理方法和装置
CN109672923B (zh) * 2018-12-17 2021-07-02 龙迅半导体(合肥)股份有限公司 一种数据处理方法和装置
CN113835872A (zh) * 2020-06-24 2021-12-24 北京小米移动软件有限公司 一种用于减少内存开销的数据处理方法、装置及存储介质
CN113326001A (zh) * 2021-05-20 2021-08-31 锐掣(杭州)科技有限公司 数据处理方法、装置、设备、系统、介质及程序
CN114442951A (zh) * 2022-01-24 2022-05-06 珠海泰芯半导体有限公司 传输多路数据的方法、装置、存储介质和电子设备

Also Published As

Publication number Publication date
WO2004092960B1 (en) 2006-07-27
US20060271761A1 (en) 2006-11-30
JP2006524858A (ja) 2006-11-02
WO2004092960A3 (en) 2006-06-22
WO2004092960A2 (en) 2004-10-28
KR20060009256A (ko) 2006-01-31
EP1627310A2 (en) 2006-02-22

Similar Documents

Publication Publication Date Title
CN1894677A (zh) 采用对存储在存储器中的数据进行压缩的数据处理装置
US7257264B2 (en) Image processing apparatus and method for compression-encoding image area information
US7460041B2 (en) Arithmetic decoding system and apparatus based on an adaptive content
US6664902B2 (en) Storing coding image data in storage of fixed memory size
JP2949066B2 (ja) 圧縮方法、伸長方法、並列コンテキストモデラー、並列エントロピーコーダー、並列エントロピーデコーダー、画像圧縮装置及び画像伸長装置
CN1137584C (zh) 利用再压缩技术的用于存储器管理系统的图象元素处理器
US11023152B2 (en) Methods and apparatus for storing data in memory in data processing systems
US10225569B2 (en) Data storage control apparatus and data storage control method
US9894371B2 (en) Video decoder memory bandwidth compression
CN101099174A (zh) 针对计算机图形的图像压缩
CN102724500B (zh) 一种视频数据的压缩/解压缩方法及系统
EP2747434A1 (en) Video image compression/decompression device
CN101310291A (zh) 用于视频帧缓冲压缩的系统和方法
JP2003244446A (ja) 画像処理装置及び画像処理方法
CN105578190A (zh) 应用于视频硬解码的无损压缩方法及系统
CN1853170A (zh) 压缩高速缓存内数据的机制
US8674858B2 (en) Method for compression and real-time decompression of executable code
CN103974090B (zh) 图像编码装置
US20220398686A1 (en) Methods of and apparatus for storing data in memory in graphics processing systems
CN1117484C (zh) 存储器要求降低的已压缩视频数据流的解码与编码方法
CN106919514B (zh) 半导体装置、数据处理系统以及半导体装置控制方法
US20140301719A1 (en) Processing cache for multiple bit precisions
CN102055976A (zh) 存储器存取控制设备及其方法
US7733249B2 (en) Method and system of compressing and decompressing data
CN110392259A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication