CN100533403C - 高速缓冲存储器管理系统和方法 - Google Patents

高速缓冲存储器管理系统和方法 Download PDF

Info

Publication number
CN100533403C
CN100533403C CNB2004800427711A CN200480042771A CN100533403C CN 100533403 C CN100533403 C CN 100533403C CN B2004800427711 A CNB2004800427711 A CN B2004800427711A CN 200480042771 A CN200480042771 A CN 200480042771A CN 100533403 C CN100533403 C CN 100533403C
Authority
CN
China
Prior art keywords
data
cache memory
group
storage
processor unit
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.)
Expired - Fee Related
Application number
CNB2004800427711A
Other languages
English (en)
Other versions
CN1961295A (zh
Inventor
弗雷德里克·克里斯多佛·坎德勒
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.)
Qualcomm Inc
Original Assignee
Silicon Optix Inc USA
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 Silicon Optix Inc USA filed Critical Silicon Optix Inc USA
Publication of CN1961295A publication Critical patent/CN1961295A/zh
Application granted granted Critical
Publication of CN100533403C publication Critical patent/CN100533403C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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
    • G06F12/0877Cache access modes
    • G06F12/0879Burst mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种用于二维数据处理特别是同时进行坐标转换的二维图像处理的高速缓冲存储器方法及其对应的系统。所述方法使用宽且快速的主高速缓冲存储器(PCM)和深度较深的次高速缓冲存储器(SCM),每个高速缓冲存储器具有多个储存组以同时访问数据。在从外部处理器系统(PU1)获得控制参数后,专用的预取逻辑用于从外部存储器获得象素数据,并基于第二控制队列将该数据存储于PCM内。所述数据随后准备为特定的块大小和特定的格式,并基于大小优化后的预取主控制队列存储于PCM中。准备的数据随后由另一个外部处理器系统(PU2)读取以进行处理。所述高速缓冲处理器控制逻辑确保在PU2的输入处数据和控制参数的相干性。

Description

高速缓冲存储器管理系统和方法
技术领域
本发明涉及数字数据处理中的高速缓冲存储器结构和管理,更具体地说,涉及数字图像数据处理中的高速缓冲存储器结构和管理。
背景技术
由于新计算机系统的发明,总是存在着更快的处理器和更快的系统的竞争。更快的处理器的时钟速率以指数的形式增长。自然地,数据和指令的量也在快速增加。在计算机系统中,有存储设备例如ROM(只读存储器)和基于突发的存储设备例如DRAM,具有较高的容量以存储数据和指令。从结构上说,大容量存储器空间深度很深,可使处理器访问存储器中的数据和指令的速度变缓。这个问题产生对更有效的存储器管理以及建立高速缓冲存储器和高速缓冲存储器结构的需求。高速缓冲存储器通常是处理器内部或接近处理器的浅且宽的存储设备,使得处理器能够访问数据并改变数据内容。高速缓冲存储器管理的原理是在可最快访问的存储器设备中保存常用数据和指令的副本,或者最可能被处理器使用的数据和指令的副本。这使得处理器访问数据和指令的速度比访问外部存储器快很多倍。然而,需要注意的是,在这些操作中,高速缓冲存储器和外部存储器内内容的改变应该要一致。这些问题及其硬件和软件特征建立了现有的高速缓冲存储器结构和管理技术。
如上所述,高速缓冲存储器保存将来最有可能由处理器访问的数据和地址指针的副本。外部存储器一般在电容中保存数据,并需要刷新周期以补充电容中的电荷以防止数据丢失。然而,典型的高速缓冲存储器使用8个晶体管表示1个比特,并因此而不需要刷新周期。高速缓冲存储器因此具有较外部存储器小的每单位存储空间。因此,高速缓冲存储器包含的数据大大的小于外部存储器。因此,必须谨慎地选择数据和指令以优化高速缓冲存储器的运行。
已有各种不同的规范和协议用于优化高速缓冲存储器的运行。最常见的是直接映射、全相联和组相联。这些协议为本领域技术人员熟知。这些协议对计算服务,包括数据处理、网页应用等。Pomerene的美国专利4,295,193提出了一种同时执行编译为多指令码字的指令的计算机。该专利是最早提及高速缓冲存储器、地址生成器、指令寄存器和流水线操作的专利。Matsuo的美国专利4,796,175提出了可从主存储器和指令高速缓冲存储器预取指令的具有指令队列的微处理器。Stiles的美国专利6,067,616提出了一种具有混合高速缓冲存储器结构的分支预测高速缓冲存储器(BCP)方案、全相联浅且宽的第一级BCP、具有部分预测信息的直接映射深且窄的第二级BCP。Frank的美国专利6,654,856提出了一种计算机系统中的高速缓冲存储器管理系统,其中描述了高速缓冲存储器的智能地址循环结构。
Liao的美国专利6,681,296提出了一种具有控制单位和高速缓冲存储器的微处理器,可选择性地设置为单一的或分割为锁定且正常的几部分。Arimilli的美国专利6,721,856提出了具有相干状态和系统控制器信息、每个存储行具有不同子条目以用于包含处理器访问序列的不同处理器的高速缓冲存储器。美国专利6,629,188公开了一种具有第一和第二多个存储空间的高速缓冲存储器。美国专利6,295,582公开了一种具有数据一致性并使用顺序的读写命令避免死锁的高速缓冲存储器系统。美国专利6,339,428公开了一种视频图像高速缓冲存储器设备,其中压缩后的纹理信息被接收并解压缩用于纹理运算(texture operation)。美国专利6,353,438公开了一种具有多个纹理图像数据的碎片并将数据直接映射至高速缓冲存储器的高速缓冲存储器结构。
上述每个发明都具有各自的优点。高效率的高速缓冲存储器结构和策略主要依赖于实际应用。在数字视频应用中,实时且高质量的数字图像处理是本领域的一个难题,特别是需要同时执行非线性坐标转换和详细的二维图像处理。因此需要一种专用的特殊系统,具有独特的优点,可在保持数据一致性的同时提供快速访问。因此,需要针对该实际应用优化高速缓冲存储器结构和高速缓冲存储器管理策略。
发明内容
本发明的一方面提供一种用于数字数据处理中高速缓冲存储器结构和管理的方法,用于包括以下部分的装置中:
(a)用于存储将被访问和处理的数据的外部存储器;
(b)用于发出控制命令并生成控制参数和所述外部存储器中将被处理的数据的存储器地址的第一组多个处理器单元;
(c)用于处理所述数据的第二组多个处理器单元;
所述方法使用包括如下部分的高速缓冲存储器:
(i)较深且具有较大存储容量的次高速缓冲存储器,所述次高速缓冲存储器具有多个储存组并且每个储存组具有多个存储行,以从所述外部存储器读取所述将被处理的数据;
(ii)具有较小存储容量、较快且较宽的主高速缓冲存储器,所述主高速缓冲存储器具有多个储存组并且每个储存组具有多个存储行,其内的数据由所述第二组多个处理器单元读取;
(iii)包含控制级和控制队列的控制逻辑,提供预取和高速缓冲存储器相干性;
基于从所述第一组多个处理器单元接收到的地址序列和控制参数,映射来自所述外部存储器的所述将被处理的数据,以及准备可由所述第二组多个处理器单元快速访问和处理的数据,其中,所述方法通过以下步骤获得高速缓冲存储器相干性并隐藏存储器读取滞后:
(a)基于所述第二组多个处理器单元中处理操作的布局和结构识别所述外部存储器中将被处理的数据块;
(b)基于步骤(a)的结果产生足够大的次高速缓冲存储器控制队列,并确定所述将被处理的数据块的数据是否在主高速缓冲存储器中出现,以便次高速缓冲存储器在所述数据将被所述第二组多个处理器单元处理前及时从所述外部存储器读入所述数据;
(c)在预设的时钟周期数内同时从所述次高速缓冲存储器的多个储存组中读取输入的所述将被处理的数据块,并通过解压缩和重新格式化所述数据块的数据生成可被所述第二组多个处理器单元使用的格式的数据块,从而隐藏外部存储器数据结构以加速所述第二组多个处理器单元中的数据处理;
(d)基于步骤(a)和(b)的结果产生足够大的主高速缓冲存储器控制队列,以在所述第二组多个处理器单元读取所述数据之前,将生成的数据块的数据存储在主高速缓冲存储器中;
(e)同步所述第二组多个处理器单元中所述将被处理的数据和控制参数的到达以实现高速缓冲存储器的相干性。
其中,所述方法进一步包括:基于来自所述外部存储器的输入块数据结构和读取格式以及要求的吞吐量优化所述次高速缓冲存储器结构,包括次高速缓冲存储器存储组的数量、每个次高速缓冲存储器存储组内存储行的数量以及次高速缓冲存储器存储行的大小。
其中,所述方法进一步包括:基于输出数据结构和格式以及要求的吞吐量优化所述主高速缓冲存储器结构,包括主高速缓冲存储器存储组的数量、每个主高速缓冲存储器存储组内存储行的数量以及主高速缓冲存储器存储行的大小。
其中,映射来自所述外部存储器的所述将被处理的数据为基于地址序列的直接映射。
其中,映射来自所述外部存储器的所述将被处理的数据由以下两个步骤完成:
(a)基于地址序列直接映射;以及
(b)基于距离的替换策略,其中,与离正在被处理的数据块最远的输入块相关的数据被替换。
其中,映射来自所述外部存储器的所述将被处理的数据由下面两个步骤完成:
(a)基于地址序列直接映射;以及
(b)基于最近最少使用的替换策略,其中,与最近最少使用的输入块相关的数据被替换。
其中,所述方法进一步基于将被访问的数据的量调整所述主高速缓冲存储器的大小。
其中,所述方法进一步基于将被访问的数据的量调整所述次高速缓冲存储器的大小。
其中,所述方法进一步基于高速缓冲存储器更新频率调整所述主高速缓冲存储器存储行的大小。
其中,所述方法进一步基于重新读取的因子调整所述次高速缓冲存储器的大小。
其中,所述方法进一步分割所述输入数据块为子模块,并按顺序高速缓冲存储来自每个子块的数据以便在所述第二组多个处理器单元中处理。
其中,所述方法进一步调整所述控制队列和所述将被处理的数据的深度以优化吞吐量。
其中,所述方法进一步基于所述第二组多个处理器单元的吞吐量要求调整所述主高速缓冲存储器的输出宽度和存储组的数量。
其中,所述方法进一步基于所述输入数据块的大小调整所述主高速缓冲存储器存储行的大小。
其中,所述方法进一步基于所述外部存储器突发串的大小调整所述次高速缓冲存储器存储行的大小。
其中,所述方法进一步基于所要求的所述主高速缓冲存储器的更新速率调整所述次高速缓冲存储器存储组的数量。
其中,所述方法进一步基于输入数据块的存储器地址的最低有效位将数据分配到所述主高速缓冲存储器和所述次高速缓冲存储器中。
另一方面,本发明基于上述方法提供一种用于数字数据处理的高速缓冲存储器系统,用于包括如下部分的装置中:
(a)用于存储将被访问和处理的数据的外部存储器;
(b)用于发出控制命令并生成控制参数和所述外部存储器中将被处理的数据的存储器地址的第一组多个处理器单元;
(c)用于处理所述数据的第二组多个处理器单元;
所述系统进一步包括:
(i)较深且具有较大存储容量的次高速缓冲存储器,所述次高速缓冲存储器具有多个储存组并且每个储存组具有多个存储行,以从所述外部存储器读取所述将被处理的数据;
(ii)具有较小存储容量、较快且较宽的主高速缓冲存储器,所述主高速缓冲存储器具有多个储存组并且每个储存组具有多个存储行,其内的数据由所述第二组多个处理器单元读取;
(iii)包含控制级和控制队列的控制逻辑,提供预取和高速缓冲存储器相干性;
所述系统基于从所述第一组处理器单元接收到的地址序列和控制参数映射来自所述外部存储器的所述将被处理的数据,以及准备可由所述第二组多个处理器单元快速访问和处理的数据,其中,所述系统进一步包括控制逻辑模块以获得高速缓冲存储器相干性并隐藏存储器读取滞后,所述控制逻辑模块包括:
(a)第一模块,基于所述第二组多个处理器单元中处理操作的布局和结构识别所述外部存储器中将被处理的数据块;
(b)第二模块,基于第一模块的结果产生足够大的次高速缓冲存储器控制队列,并确定所述将被处理的数据块的数据是否在主高速缓冲存储器中出现,以便次高速缓冲存储器在所述数据将被所述第二组多个处理器单元处理前及时从所述外部存储器读入所述数据;
(c)第三模块,在预设的时钟周期数内同时从所述次高速缓冲存储器的多个储存组中读取输入的数据将被处理的数据块,并通过解压缩和重新格式化所述数据块的数据生成可被所述第二组多个处理器单元使用的格式的数据块,从而隐藏外部存储器数据结构以加速所述第二组多个处理器单元中的数据处理;
(d)第四模块,基于第一模块和第二模块的结果产生足够大的主高速缓冲存储器控制队列,以在所述第二组多个处理器单元读取所述数据之前,将生成的数据块的数据存储在主高速缓冲存储器中;
(e)同步所述第二组多个处理器单元中所述将被处理的数据和控制参数的到达以实现高速缓冲存储器的相干性。
其中,所述系统进一步包括基于来自所述外部存储器的输入块数据结构和读取格式以及要求的吞吐量优化所述次高速缓冲存储器结构的模块,所述优化包括优化次高速缓冲存储器存储组的数量、每个次高速缓冲存储器存储组内存储行的数量以及次高速缓冲存储器存储行的大小。
其中,所述系统进一步包括基于输出数据结构和格式以及要求的吞吐量优化所述主高速缓冲存储器结构的模块,所述优化包括优化主高速缓冲存储器存储组的数量、每个主高速缓冲存储器存储组内存储行的数量以及主高速缓冲存储器存储行的大小。
其中,所述高速缓冲存储器系统映射来自所述外部存储器的所述将被处理的数据为基于地址序列的直接映射。
其中,所述高速缓冲存储器系统通过以下两个步骤完成来自所述外部存储器的所述将被处理的数据的映射:
(a)基于地址序列直接映射;以及
(b)基于距离的替换策略,其中,与离正在被处理的数据块最远的输入块相关的数据被替换。
其中,所述高速缓冲存储器系统通过下面两个步骤完成来自所述外部存储器的所述将被处理的数据的映射:
(a)基于地址序列直接映射;以及
(b)基于最近最少使用的替换策略,其中,与最近最少使用的输入块相关的数据被替换。
其中,所述系统进一步包括基于将被访问的数据的量调整所述主高速缓冲存储器的大小的模块。
其中,所述系统进一步包括基于将被访问的数据的量调整所述次高速缓冲存储器的大小的模块。
其中,所述系统进一步包括基于高速缓冲存储器更新频率调整所述主高速缓冲存储器存储行的大小的模块。
其中,所述系统进一步包括基于重新读取的因子调整所述次高速缓冲存储器的大小的模块。
其中,所述系统进一步包括分割所述输入数据块为子模块并按顺序高速缓冲存储来自每个子块的数据以便在所述第二组多个处理器单元中处理的模块。
其中,所述系统进一步包括调整所述控制队列和所述将被处理的数据的深度以优化吞吐量的模块。
其中,所述系统进一步包括基于所述第二组多个处理器单元吞吐量要求调整所述主高速缓冲存储器的输出宽度和存储组的数量的模块。
其中,所述系统进一步包括基于所述输入数据块的大小调整所述主高速缓冲存储器存储行的大小的模块。
其中,所述系统进一步包括基于所述外部存储器突发串的大小调整所述次高速缓冲存储器存储行的大小的模块。
其中,所述系统进一步包括基于所要求的所述主高速缓冲存储器的更新速率调整所述次高速缓冲存储器存储组的数量的模块。
其中,所述系统进一步包括基于输入数据块的存储器地址的最低有效位将数据分配到所述主高速缓冲存储器和所述次高速缓冲存储器中的模块。
本发明实施例的各方面及其优点的详细内容将在以下结合附图进行描述。
附图说明
附图中:
图1是依据本发明的高速缓冲存储器系统的总体结构示意图;
图2是依据本发明的高速缓冲存储器的细节结构示意图;
图3是将被高速缓冲存储的输入数据的块结构示意图;
图4是依据本发明的主高速缓冲存储器系统的结构示意图;
图5是依据本发明的次高速缓冲存储器系统的结构示意图;
图6是依据本发明的高速缓冲存储器系统的逻辑流程图。
具体实施方式
下面将结合附图和实施例对本发明进行详细描述。本发明涉及高速缓冲存储器结构和管理。在本说明书中,给定的实施例是图像处理的同时进行坐标转换。然而,本领域技术人员能够理解本发明的范围不限于此实施例。本发明涉及任何类型的数字数据处理,其中多个处理器尝试从外部存储器和其他具有任意格式的处理器获取数据和控制参数。特别来说,例如,该申请中介绍的二维(2D)图像转换可以用任何2D数据转换来代替而不脱离本发明的范围。因此,在接下来的描述中,本说明书所涉及的数据称为图像象素数据。本说明书将发出关于输入数据的结构和布局的控制参数的多个处理器称作几何引擎。此外,本说明书将多个访问用于操作的数据的处理器称作滤波器引擎,及其对应的操作为滤波操作。
图1所示为依据本发明计算设备内的高速缓冲存储器系统100的设置的示意图,设计为用于数字图像数据处理以及同步的坐标转换。高速缓冲存储器系统100与两组处理器连接。在本实施例中,第一组多个处理器组成几何引擎300,第二组多个处理器组成滤波引擎500。除了这两个引擎外,高速缓冲存储器系统100与外部存储器700连接,该外部存储器可以是具有访问延迟(access latency)的任何存储器。高速缓冲存储器100从几何引擎300接收控制参数,包括坐标转换以及滤波器覆盖区域(footprint)参数。同时高速缓冲存储器100从外部存储器700接收象素数据。高速缓冲存储器系统100以使用滤波器引擎500的最小延迟优化滤波处理的方式将这些数据提供给滤波器引擎500。
在二维数据处理中,特别是数字图像数据处理中,需要全面的滤波或采样功能。在下面,我们举特定的2D图像处理为例;因此“象素”用作任意2D数据的特定情况。在2D数字图像处理中,每个输出象素基于来自多个输入象素的信息组成。首先,输出象素坐标映射在输入象素坐标上。这就是坐标转换,通常通过图像卷曲(image warping)技术完成。一旦中心输入象素被确定,需要使用滤波或采样函数来产生输出象素规范,即颜色成分的亮度以及其他信息,例如采样格式和混合函数。包含所述中心输入象素周围的所有象素的区域称作滤波器覆盖区域,采样在其上执行。本领域技术人员熟知的是,滤波器覆盖区域的大小和形状影响输出图像的质量。
高速缓冲存储器系统100的功能是使用专有结构和预取逻辑以提供足够的随即访问象素数据和控制参数给滤波器引擎500,以便滤波器引擎500在任何给定时钟速率使用最小延迟(stalling)来处理数据。通过使用最优大小的读请求队列,高速缓冲存储器系统100能够隐藏获取象素数据的外部存储器700中固有的大多数存储器读滞后。存储器读取滞后的隐藏对滤波器性能来说是非常重要的。如果滞后没有正确的隐藏,滤波器引擎500将不能达到最大吞吐量。允许的最大量的延迟是设计的参数。需要调整不同的参数以与硬件成本折中后达到所要求的吞吐量。
此外,高速缓冲存储器系统100为从几何引擎300读取的坐标转换和滤波器覆盖区域参数提供控制路径。高速缓冲存储器系统100一方面确保来自外部存储器700的象素数据,另一方面确保来自几何引擎300的控制参数,两者在到达滤波器引擎500的输入处时同步。
在本说明书中,采用斜体字表示数量(例如,64字节)以区别于引用标号(例如,滤波器引擎500)。
图2是本发明高速缓冲存储器系统100的细节结构示意。对于每个输出象素,高速缓冲存储器系统100从几何引擎300接收特定的控制参数。这些参数包括被映射的输入象素的坐标U和V,以及附加的控制参数,包括那些定义滤波器覆盖区域的形状、旋转和大小的参数。同时,高速缓冲存储器系统100为包括在滤波器覆盖区域中的每个象素从外部存储器700接收象素数据。这些数据包括色彩空间中色彩成分的亮度级别,例如RGB或YCrCb,采样格式,例如4:4:4或4:2:2,以及混合函数,即使用α或不使用α。
高速缓冲存储器系统100的结构涉及将输入图像分割成大小为m×n个象素的块。图3展示了输入图像象素块结构的特定实施例,其中n=8,m=4。输入图像330包括特定数量的象素,例如1024×1024,被分成块。每个输入象素块332包含m×n个输入象素334。块的结构通常是不同滤波方案中覆盖区域形状和大小的函数。
高速缓冲存储器系统100获取关于m×n个输入象素块332的数据,并产生滤波器引擎500可使用的数据块。以此,系统需要确定哪些块在覆盖区域内,以及这些块中必须包括哪些象素以进行滤波。高速缓冲存储器系统100的结构是可缩放的以匹配输入块数据结构。需要注意的是,通常高速缓冲存储器系统100的结构是滤波器引擎500的操作的特性和结构的函数。在图像处理的特殊情况中,该操作的结构和拓扑部分地由滤波器覆盖区域来定义。
参照图2的实施例,高速缓冲存储器系统100包括浅且宽并具有较小的容量的主高速缓冲存储器110、深且容量较大的次高速缓冲存储器120、块包含级150、块数据生成级130、主高速缓冲存储器控制级170和次高速缓冲存储器控制级190。还有多个队列,将在本说明书后面部分进行描述。象素数据首先从外部存储器700读入次高速缓冲存储器120。随后这些数据被块生成级130重新格式化并解压缩以供滤波器引擎500使用。这些重新格式化的数据放入队列以在恰当的时间放入主高速缓冲存储器110中,在此这些重新格式化的数据已经准备好被滤波器引擎500访问。下面将分别解释数据路径和控制逻辑结构。
参照图5所示的实施例,次高速缓冲存储器120是从外部存储器700读取原始数据的较大容量的存储设备。外部存储器700的象素数据以任意格式存储,通常不适合在滤波器引擎500中处理,例如,在特定的例子中,数据以扫描行(scan-line)的顺序顺序地存储。次高速缓冲存储器120设计为有效地读取这些数据而具有最小的中断。
次高速缓冲存储器内的每个存储行(line)用于容纳来自外部存储器700的b2字节的数据突发串。因此,次高速缓冲存储器120的每行依据外部存储器700的结构和读取要求来定义大小。用于存储数据的次高速缓冲存储器120的行数也是一个优化的设计参数,用以降低次高速缓冲存储器的错误计数。另外,次高速缓冲存储器120被分组以允许有足够的读取吞吐量以更新主高速缓冲存储器110,最小化滤波器引擎500的延迟。为了存储足够的数据用于滤波器引擎500进行象素处理,这些设计参数是至关紧要的,因为取样中心输入象素需要许多相邻的象素。
因此,次高速缓冲存储器120设计为具有特定数量的多个存储组(bank),每个存储组具有独立的访问行以同时从外部存储器700读取数据。如图5的实施例所示,次高速缓冲存储器120有多个存储组122,每个组具有特定数量的行124。每个次高速缓冲存储器存储行包含来自从外部存储器700读取的一个数据突发串的数据。这些数据最终需要由滤波器引擎500读取。因此,次高速缓冲存储器的组数设计为数据吞吐量的函数。对于m×n输入块结构和所需的时钟周期数Nc,为读取数据,次高速缓冲存储器120中需要n/Nc个组。为了将数据分配在次高速缓冲存储器的各组中,在一个特定的实施例中,使用U和V最低有效位(LSB)的组合。这降低了解码逻辑的复杂性,节省面积并使更新更快。为了将每个组分割为2i个部分,使用i个最低有效位。如果每个次高速缓冲存储器存储组122有2j行,这使得次高速缓冲存储器结构2j/2i组相联。这一设计以及次高速缓冲存储器120的恰当的替换策略(稍后将结合高速缓冲存储器逻辑进行描述),获得一种简单且高效的分割以在整个次高速缓冲存储器120中分配数据。
当数据从外部存储器700读入次高速缓冲存储器120后,这些数据需要被转换成可被滤波器引擎500使用的格式。块生成级130读取次高速缓冲存储器120中的数据,并将这些数据分配在可包含来自一个m×n输入象素块的所有数据的块中。如上所述,块生成级130每个时钟周期读取次高速缓冲存储器120的n/Nc行。这确保在每Nc个时钟周期内,所有关于一个输入象素块的数据被同时读取。依据数据的打包格式和吞吐量要求,需要从次高速缓冲存储器120读取多次以生成该输入象素块。除了读取这些数据外,块生成级130重新格式化和解压缩这些数据为滤波器引擎500可用的格式。块生成级130因此隐藏原始象素数据格式,该原始象素数据格式可使用各种压缩方案压缩。这使滤波器引擎500免于识别外部存储器700中的象素数据的格式以及解包该原始格式化的数据为用于滤波的块。这些块数据最终存储于主高速缓冲存储器110内,由滤波器引擎500从中读取。
参照图4的实施例所示,主高速缓冲存储器110设计为能优化滤波器引擎500中数据访问率的形式。因此,它具有浅但宽的结构,用于多行访问。主高速缓冲存储器110被分割为特定数量的多个存储组,每个主高速缓冲存储器存储组112由滤波器引擎500独立且同时读取。主高速缓冲存储器中存储组的数量根据优化滤波性能的经验数据和仿真来确定。每个主高速缓冲处理器存储组112包含特定数量的主高速缓冲存储器存储行。每个主高速缓冲存储器存储行114包含来自输入数据的一个m×n数据块的所有数据。因此,对于b1个主高速缓冲存储器存储组,滤波器引擎500每个周期以恰当的格式读取包含b1个输入块的数据。这一点是极为重要的,因为在采样时需要某一输入象素周围的许多输入块,并且如果它们未提供给滤波器引擎500就会产生延迟。延迟的数量和频率决定吞吐量性能。
为了在不同的主高速缓冲存储器存储组中分配数据,使用输入象素坐标U和V的最低有效位。主高速缓冲存储器110中的每个主存储组112也被分割为特定数量的多个部分。如上所述,使用特定数量的最低有效位来在不同的主高速缓冲存储器存储组中分配数据。在输入象素U和V地址的剩余比特中,再次使用额外的最低有效位以在每个主高速缓冲存储器存储组112中分配数据。对于每个主高速缓冲存储器存储组包括2f行,使用g个最低有效位来划分每个存储组,这一划分产生2f/2g组相联结构。
为了达到最优的吞吐量,这一设计再次与恰当的替换策略一起用于主高速缓冲存储器110,稍后将作详细描述。因为对于较大的输入数据量,U和V地址内有更多的比特可用,这个结构可以简单和自然的方法进行缩放。
为了确保数据在滤波器引擎500需要时以可使用的格式出现,设计有预取逻辑结构。图6展示了高速缓冲存储器控制逻辑400。这个逻辑结构控制次高速缓冲存储器120从外部存储器700读取数据,控制在块生成级130内读取和重新格式化数据,以及控制主高速缓冲存储器110内数据块的存储。
步骤402,基于从几何引擎300接收的控制参数确定哪些数据块的数据需要采样。一旦数据被确认,步骤410中,确定这些数据是否在主高速缓冲存储器中出现。如果出现,在步骤412将一个条目写入主控制队列,并且在步骤414将这些数据的地址发送至滤波器引擎。如果这些数据没有出现在主高速缓冲存储器,步骤415中,根据稍后描述的采用的替换策略,确定替换哪个主高速缓冲存储器存储行。随后,在步骤416,将该主高速缓冲存储器存储行的地址写入主控制队列,并且在步骤418发送至滤波器引擎。然后在步骤420,确定这些数据是否出现在次高速缓冲存储器中。如果这些数据也没有出现在此,步骤422中,决定替换哪个次高速缓冲存储器存储行。随后发送读请求至外部存储器以读取稍后将在步骤426中读入次高速缓冲存储器的数据。如果数据出现在次高速缓冲存储器,步骤428中将一个条目写入次高速缓冲存储器控制队列。
数据从外部存储器取出后次高速缓冲存储器命中(hit)或缺失(miss)两种情况下,均在步骤440中将次高速缓冲存储器数据读出以用于块生成。此处,数据从多个次高速缓冲存储器存储组中读取,并且在步骤442中重新格式化和解压缩。在这一级,步骤450中,将合适格式的输入数据块发送至队列中以存储在主高速缓冲存储器中。步骤452,将这些数据存储在主高速缓冲存储器存储组中。
主高速缓冲存储器110的更新发生在相关的控制数据从主控制队列212和象素控制队列218中读出时。这确保主高速缓冲存储器100中的高速缓冲存储器相干性得到保持。这样,在步骤510,来自主高速缓冲存储器的数据与控制参数一起到达滤波器引擎输入处。
预取逻辑设计为用于隐藏滤波器引擎500中的读取延迟。在没有这个控制逻辑结构的情况下,数据吞吐量不是最优化的,并且滤波器引擎500将具有较高的延迟。使用足够大小的队列、最优的存储容量、数据准备和智能替换策略,高速缓冲存储器系统100通过早于滤波器引擎500运行能隐藏大部分的读延迟。
参照图2,现在解释高速缓冲存储器控制逻辑400的硬件实现。块包含级150是控制逻辑的起点。对于每个输出象素,其从几何引擎300接收控制参数,包括映射的输入象素的坐标和滤波器覆盖区域的形状。基于输入象素坐标U和V、覆盖区域形状和其他控制参数,该块包含逻辑确定需要哪个输入块用于处理每个输出象素,以及需要每个块中的哪个象素用于采样。
在本发明的一个实施例中,块包含级150比较临近块的坐标位置与覆盖区域的几何以包含需要采样的象素块。块包含逻辑每个时钟周期产生k个块,其中每个块在其块地址内至少有1个U或1个V最小有效位不同。这确保k个最低有效位的组合将出现在块包含逻辑产生的每组块中。这个约束用于将上述块分配在主高速缓冲存储器存储组中。每个时钟周期产生的块的数量k是覆盖区域大小的函数,并且块的布局是覆盖区域形状的函数。在设计用于滤波器引擎500中数据处理的高速缓冲存储器系统110时应该通过仔细的仿真和实验考虑这些参数。由块包含级150产生的象素控制队列218,在允许滤波器引擎500产生实际象素数据前的缩放参数之前被发送给滤波器引擎500。
主高速缓冲存储器控制级170为主高速缓冲存储器110中数据的处理提供控制逻辑。对于由块包含级150确定的每个输入块,主高速缓冲存储器控制170检查以确定该块是否出现在主高速缓冲存储器110中。如果数据出现在其中,这被称作高速缓冲存储器命中。否则高速缓冲存储器被登记为缺失,并将缺失标记发送至次高速缓冲存储器控制级190。主高速缓冲存储器控制级170将一条目写入主控制队列212,指出主高速缓冲存储器110中该数据的地址,以及是否有主高速缓冲存储器命中或缺失。主控制队列212由滤波器引擎500基于FIFO读取。如果一个条目中出现高速缓冲存储器缺失标记,滤波器引擎500发送读请求至块队列214,更新主高速缓冲存储器110。
主高速缓冲存储器缺失的情况,发生在数据块没有出现在主高速缓冲存储器110时,U或V任一地址不匹配被检查的任何块时,或者相关的有效位未被设定时,这种情况被称作主高速缓冲存储器缺失。接收到主高速缓冲存储器缺失的标记后,次高速缓冲存储器控制级190的控制逻辑将确定选择哪个步骤生成将被写入主高速缓冲存储器的该m×n块。次高速缓冲存储器控制级190首先确定数据是否存在于次高速缓冲存储器120中。这将出现次高速缓冲存储器命中或缺失。如果次高速缓冲存储器出现缺失,次高速缓冲存储器控制级190发送读取请求至外部存储器700以从外部存储器700获取该缺失的信息写入次高速缓冲存储器120,并将一个条目写入次控制队列216。如果次高速缓冲存储器命中,次高速缓冲存储器控制级190不发送读请求,并仅将一个条目写入次控制队列216,该次控制队列中的条目由块生成级130基于FIFO读取。
接收到每个队列条目后,块生成级130从次高速缓冲存储器120中读取关于整个输入块的原始数据。然后这些数据在块生成级130中被重新格式化为可被滤波器引擎500使用的格式。依据数据打包模式,需要有多个次高速缓冲存储器存储行来产生主高速缓冲存储器存储行114。在获得所有关于一个输入块的数据并重新格式化这些数据后,块生成级130将一个条目写入块队列214。每个块队列条目因此包含有恰当格式的来自整个输入块的所有数据。块队列条目随后由主高速缓冲存储器110接收并存储其中,以供滤波器引擎500访问。因此,块队列214允许次高速缓冲存储器120在滤波器引擎500前运行。
需要注意的是,高速缓冲存储器系统100的功能是基于象素数据和控制参数的相干性以及专用的预取逻辑的。在没有来自次高速缓冲存储器控制级190的请求的情况下,次高速缓冲存储器120不会读取数据。一旦数据在次高速缓冲存储器中的情况下,只有次控制队列216的条目确定这些数据是否需要在块生成级130中进行块生成。一旦一个数据块生成后,仅基于来自滤波器引擎500的读请求将其放入将存储在主高速缓冲存储器110内的队列中,而滤波器引擎500的读请求由主控制队列212中的一个条目促成。此外,在处理该数据前,滤波器引擎等待象素数据和控制参数从两个独立的队列到达。
依据滤波器覆盖区域的相对大小和高速缓冲存储器的存储空间,可能需要将该覆盖区域划分为多个子区域,并顺序地在每个子区域内处理数据。这个量在高速缓冲存储器系统100的设计中可进行预测以动态地调整覆盖区域的大小。当关于每个子区域的数据被高速缓存后,滤波器引擎将按顺序处理这些数据。
为了理解数据预取以允许高速缓冲存储器系统100隐藏存储器读取滞后的效果,在本发明的一个实施例中,设置的基准点是读取滞后大约是128个时钟周期。通过提供足够大的队列,几乎所有的滞后都被隐藏。本发明中队列的大小可进行调整以匹配系统中看到的存储器读取滞后,并因此是基于系统规范的可调设计参数。
一旦高速缓冲存储器逻辑结构确定特定数据块应该被次高速缓冲存储器120读取,或应该准备存储于主高速缓冲存储器110中时,便需要替换策略。一个现有的主高速缓冲存储器存储行114或多个次高速缓冲存储器存储行124将被替换。在本发明的一个实施例中,高速缓冲存储器替换策略是以距离为基础。根据U和V输入块地址,主高速缓冲存储器控制级170和次高速缓冲存储器控制级190将中心输入象素U和V坐标与高速缓冲存储器存储行中现有的数据块的坐标进行对比。离中心输入象素距离最大的条目随后被替换。这个策略源于离中心象素的距离越近需要进行采样计算的可能性越高的事实。
在本发明的另一个实施例中,高速缓冲存储器替换策略以最近最少使用(LRU)为基础。在这个实施例中,主高速缓冲存储器控制级170和次高速缓冲存储器控制级190选择替换最近最少使用的高速缓冲存储器存储行。
高速缓冲存储器系统100的设计有几个量可以使该系统可调。次高速缓冲存储器存储行的大小可针对来自外部存储器700的存储器读取的大小例如突发串的大小以及块生成速率进行调整。次高速缓冲存储器存储行的数量基于要求的高速缓冲存储器效率进行调整。次高速缓冲存储器存储组的数量基于输入块数据结构和每个次高速缓冲存储器外部访问的时钟周期的数量进行调整。次高速缓冲存储器120的调整基于大小的要求和高速缓冲存储器系统效率(即将被重新读取的输入数字数据的量)作出。
块包含级150内每个时钟周期产生的块数基于滤波器算法、覆盖区域大小和要求的吞吐量进行调整。基于U和V输入象素的最低有效位进行的主高速缓冲存储器110和次高速缓冲存储器120的划分与高速缓冲存储器的大小相适应。这通过特定划分所使用的比特数来实现。主高速缓冲存储器存储行的大小基于输入块的大小进行调整。主高速缓冲存储器存储组的数量基于滤波器吞吐量进行调整。不同队列的大小也是可调整的参数,取决于存储器滞后与要求的吞吐量的比。这些大小基于仿真和试验数据确定。
所有的这些设计参数必须结合成本和性能之间的折中仔细地考虑。因此需要对本发明的特定实现进行仔细的仿真和试验为特定的情况优化高速缓冲存储器方案。
以上结合实施例介绍了本发明的特征,因此各种修改、替换、变更和等同已为本领域普通技术人员所知悉。因此,应该理解的是,本申请的权利要求书覆盖了落入本发明范围内的所有修改和变更。

Claims (34)

1、一种用于数字数据处理中高速缓冲存储器结构和管理的方法,用于包括以下部分的装置中:
(a)用于存储将被访问和处理的数据的外部存储器;
(b)用于发出控制命令并生成控制参数和所述外部存储器中将被处理的数据的存储器地址的第一组多个处理器单元;
(c)用于处理所述数据的第二组多个处理器单元;
其特征在于,所述方法使用包括如下部分的高速缓冲存储器:
(i)较深且具有较大存储容量的次高速缓冲存储器,所述次高速缓冲存储器具有多个储存组并且每个储存组具有多个存储行,以从所述外部存储器读取所述将被处理的数据;
(ii)具有较小存储容量、较快且较宽的主高速缓冲存储器,所述主高速缓冲存储器具有多个储存组并且每个储存组具有多个存储行,其内的数据由所述第二组多个处理器单元读取;
(iii)包含控制级和控制队列的控制逻辑,提供预取和高速缓冲存储器相干性;
基于从所述第一组多个处理器单元接收到的地址序列和控制参数,映射来自所述外部存储器的所述将被处理的数据,以及准备可由所述第二组多个处理器单元快速访问和处理的数据,其中,所述方法通过以下步骤获得高速缓冲存储器相干性并隐藏存储器读取滞后:
(a)基于所述第二组多个处理器单元中处理操作的布局和结构识别所述外部存储器中将被处理的数据块;
(b)基于步骤(a)的结果产生足够大的次高速缓冲存储器控制队列,并确定所述将被处理的数据块的数据是否在主高速缓冲存储器中出现,以便次高速缓冲存储器在所述数据将被所述第二组多个处理器单元处理前及时从所述外部存储器读入所述数据;
(c)在预设的时钟周期数内同时从所述次高速缓冲存储器的多个储存组中读取输入的所述将被处理的数据块,并通过解压缩和重新格式化所述数据块的数据生成可被所述第二组多个处理器单元使用的格式的数据块,从而隐藏外部存储器数据结构以加速所述第二组多个处理器单元中的数据处理;
(d)基于步骤(a)和(b)的结果产生足够大的主高速缓冲存储器控制队列,以在所述第二组多个处理器单元读取所述数据之前,将生成的数据块的数据存储在主高速缓冲存储器中;
(e)同步所述第二组多个处理器单元中所述将被处理的数据和控制参数的到达以实现高速缓冲存储器的相干性。
2、根据权利要求1所述的方法,其特征在于,进一步包括:基于来自所述外部存储器的输入块数据结构和读取格式以及要求的吞吐量优化所述次高速缓冲存储器结构,包括次高速缓冲存储器存储组的数量、每个次高速缓冲存储器存储组内存储行的数量以及次高速缓冲存储器存储行的大小。
3、根据权利要求2所述的方法,其特征在于,进一步包括:基于输出数据结构和格式以及要求的吞吐量优化所述主高速缓冲存储器结构,包括主高速缓冲存储器存储组的数量、每个主高速缓冲存储器存储组内存储行的数量以及主高速缓冲存储器存储行的大小。
4、根据权利要求3所述的方法,其特征在于,映射来自所述外部存储器的所述将被处理的数据为基于地址序列的直接映射。
5、根据权利要求3所述的方法,其特征在于,映射来自所述外部存储器的所述将被处理的数据由以下两个步骤完成:
(a)基于地址序列直接映射;以及
(b)基于距离的替换策略,其中,与离正在被处理的数据块最远的输入块相关的数据被替换。
6、根据权利要求3所述的方法,其特征在于,映射来自所述外部存储器的所述将被处理的数据由下面两个步骤完成:
(a)基于地址序列直接映射;以及
(b)基于最近最少使用的替换策略,其中,与最近最少使用的输入块相关的数据被替换。
7、根据权利要求3所述的方法,其特征在于,进一步基于将被访问的数据的量调整所述主高速缓冲存储器的大小。
8、根据权利要求3所述的方法,其特征在于,进一步基于将被访问的数据的量调整所述次高速缓冲存储器的大小。
9、根据权利要求3所述的方法,其特征在于,进一步基于高速缓冲存储器更新频率调整所述主高速缓冲存储器存储行的大小。
10、根据权利要求3所述的方法,其特征在于,进一步基于重新读取的因子调整所述次高速缓冲存储器的大小。
11、根据权利要求3所述的方法,其特征在于,进一步分割所述输入数据块为子模块,并按顺序高速缓冲存储来自每个子块的数据以便在所述第二组多个处理器单元中处理。
12、根据权利要求3所述的方法,其特征在于,进一步调整所述控制队列和所述将被处理的数据的深度以优化吞吐量。
13、根据权利要求3所述的方法,其特征在于,进一步基于所述第二组多个处理器单元的吞吐量要求调整所述主高速缓冲存储器的输出宽度和存储组的数量。
14、根据权利要求3所述的方法,其特征在于,进一步基于所述输入数据块的大小调整所述主高速缓冲存储器存储行的大小。
15、根据权利要求3所述的方法,其特征在于,进一步基于所述外部存储器突发串的大小调整所述次高速缓冲存储器存储行的大小。
16、根据权利要求3所述的方法,其特征在于,进一步基于所要求的所述主高速缓冲存储器的更新速率调整所述次高速缓冲存储器存储组的数量。
17、根据权利要求3所述的方法,其特征在于,进一步基于输入数据块的存储器地址的最低有效位将数据分配到所述主高速缓冲存储器和所述次高速缓冲存储器中。
18、一种用于数字数据处理的高速缓冲存储器系统,用于包括如下部分的装置中:
(a)用于存储将被访问和处理的数据的外部存储器;
(b)用于发出控制命令并生成控制参数和所述外部存储器中将被处理的数据的存储器地址的第一组多个处理器单元;
(c)用于处理所述数据的第二组多个处理器单元;
其特征在于,所述系统进一步包括:
(i)较深且具有较大存储容量的次高速缓冲存储器,所述次高速缓冲存储器具有多个储存组并且每个储存组具有多个存储行,以从所述外部存储器读取所述将被处理的数据;
(ii)具有较小存储容量、较快且较宽的主高速缓冲存储器,所述主高速缓冲存储器具有多个储存组并且每个储存组具有多个存储行,其内的数据由所述第二组多个处理器单元读取;
(iii)包含控制级和控制队列的控制逻辑,提供预取和高速缓冲存储器相干性;
所述系统基于从所述第一组处理器单元接收到的地址序列和控制参数映射来自所述外部存储器的所述将被处理的数据,以及准备可由所述第二组多个处理器单元快速访问和处理的数据,其中,所述系统进一步包括控制逻辑模块以获得高速缓冲存储器相干性并隐藏存储器读取滞后,所述控制逻辑模块包括:
(a)第一模块,基于所述第二组多个处理器单元中处理操作的布局和结构识别所述外部存储器中将被处理的数据块;
(b)第二模块,基于第一模块的结果产生足够大的次高速缓冲存储器控制队列,并确定所述将被处理的数据块的数据是否在主高速缓冲存储器中出现,以便次高速缓冲存储器在所述数据将被所述第二组多个处理器单元处理前及时从所述外部存储器读入所述数据;
(c)第三模块,在预设的时钟周期数内同时从所述次高速缓冲存储器的多个储存组中读取输入的数据将被处理的数据块,并通过解压缩和重新格式化所述数据块的数据生成可被所述第二组多个处理器单元使用的格式的数据块,从而隐藏外部存储器数据结构以加速所述第二组多个处理器单元中的数据处理;
(d)第四模块,基于第一模块和第二模块的结果产生足够大的主高速缓冲存储器控制队列,以在所述第二组多个处理器单元读取所述数据之前,将生成的数据块的数据存储在主高速缓冲存储器中;
(e)同步所述第二组多个处理器单元中所述将被处理的数据和控制参数的到达以实现高速缓冲存储器的相干性。
19、根据权利要求18所述的系统,其特征在于,所述系统进一步包括基于来自所述外部存储器的输入块数据结构和读取格式以及要求的吞吐量优化所述次高速缓冲存储器结构的模块,所述优化包括优化次高速缓冲存储器存储组的数量、每个次高速缓冲存储器存储组内存储行的数量以及次高速缓冲存储器存储行的大小。
20、根据权利要求19所述的系统,其特征在于,所述系统进一步包括基于输出数据结构和格式以及要求的吞吐量优化所述主高速缓冲存储器结构的模块,所述优化包括优化主高速缓冲存储器存储组的数量、每个主高速缓冲存储器存储组内存储行的数量以及主高速缓冲存储器存储行的大小。
21、根据权利要求20所述的系统,其特征在于,所述高速缓冲存储器系统映射来自所述外部存储器的所述将被处理的数据为基于地址序列的直接映射。
22、根据权利要求20所述的系统,其特征在于,所述高速缓冲存储器系统通过以下两个步骤完成来自所述外部存储器的所述将被处理的数据的映射:
(a)基于地址序列直接映射;以及
(b)基于距离的替换策略,其中,与离正在被处理的数据块最远的输入块相关的数据被替换。
23、根据权利要求20所述的系统,其特征在于,所述高速缓冲存储器系统通过下面两个步骤完成来自所述外部存储器的所述将被处理的数据的映射:
(a)基于地址序列直接映射;以及
(b)基于最近最少使用的替换策略,其中,与最近最少使用的输入块相关的数据被替换。
24、根据权利要求20所述的系统,其特征在于,所述系统进一步包括基于将被访问的数据的量调整所述主高速缓冲存储器的大小的模块。
25、根据权利要求20所述的系统,其特征在于,所述系统进一步包括基于将被访问的数据的量调整所述次高速缓冲存储器的大小的模块。
26、根据权利要求20所述的系统,其特征在于,所述系统进一步包括基于高速缓冲存储器更新频率调整所述主高速缓冲存储器存储行的大小的模块。
27、根据权利要求20所述的系统,其特征在于,所述系统进一步包括基于重新读取的因子调整所述次高速缓冲存储器的大小的模块。
28、根据权利要求20所述的系统,其特征在于,所述系统进一步包括分割所述输入数据块为子模块并按顺序高速缓冲存储来自每个子块的数据以便在所述第二组多个处理器单元中处理的模块。
29、根据权利要求20所述的系统,其特征在于,所述系统进一步包括调整所述控制队列和所述将被处理的数据的深度以优化吞吐量的模块。
30、根据权利要求20所述的系统,其特征在于,所述系统进一步包括基于所述第二组多个处理器单元吞吐量要求调整所述主高速缓冲存储器的输出宽度和存储组的数量的模块。
31、根据权利要求20所述的系统,其特征在于,所述系统进一步包括基于所述输入数据块的大小调整所述主高速缓冲存储器存储行的大小的模块。
32、根据权利要求20所述的系统,其特征在于,所述系统进一步包括基于所述外部存储器突发串的大小调整所述次高速缓冲存储器存储行的大小的模块。
33、根据权利要求20所述的系统,其特征在于,所述系统进一步包括基于所要求的所述主高速缓冲存储器的更新速率调整所述次高速缓冲存储器存储组的数量的模块。
34、根据权利要求20所述的系统,其特征在于,所述系统进一步包括基于输入数据块的存储器地址的最低有效位将数据分配到所述主高速缓冲存储器和所述次高速缓冲存储器中的模块。
CNB2004800427711A 2004-07-14 2004-07-14 高速缓冲存储器管理系统和方法 Expired - Fee Related CN100533403C (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2004/022878 WO2006019374A1 (en) 2004-07-14 2004-07-14 Cache memory management system and method

Publications (2)

Publication Number Publication Date
CN1961295A CN1961295A (zh) 2007-05-09
CN100533403C true CN100533403C (zh) 2009-08-26

Family

ID=35907684

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800427711A Expired - Fee Related CN100533403C (zh) 2004-07-14 2004-07-14 高速缓冲存储器管理系统和方法

Country Status (5)

Country Link
EP (1) EP1769360A4 (zh)
JP (1) JP5071977B2 (zh)
KR (1) KR101158949B1 (zh)
CN (1) CN100533403C (zh)
WO (1) WO2006019374A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103430162A (zh) * 2011-03-04 2013-12-04 美光科技公司 与从第一接口到第二接口的操作性转变相关联的设备、电子装置和方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9001138B2 (en) * 2011-08-29 2015-04-07 Intel Corporation 2-D gather instruction and a 2-D cache
EP2959715B1 (en) * 2013-02-22 2016-10-05 Telefonaktiebolaget LM Ericsson (publ) Media distribution network with media burst transmission capabilities
US10181176B2 (en) * 2016-03-04 2019-01-15 Samsung Electronics Co., Ltd. Efficient low-power texture cache architecture
CN107153617B (zh) * 2016-03-04 2023-04-07 三星电子株式会社 用于利用缓冲器高效访问纹理数据的高速缓存体系结构
US11042962B2 (en) 2016-04-18 2021-06-22 Avago Technologies International Sales Pte. Limited Hardware optimisation for generating 360° images
US10209887B2 (en) * 2016-12-20 2019-02-19 Texas Instruments Incorporated Streaming engine with fetch ahead hysteresis
JP2020004247A (ja) * 2018-06-29 2020-01-09 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
CN110569204B (zh) * 2019-07-23 2023-01-20 广东工业大学 基于fpga和ddr3 sdram的可配置图像数据缓存系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410649A (en) 1989-11-17 1995-04-25 Texas Instruments Incorporated Imaging computer system and network
JPH1083347A (ja) * 1996-09-06 1998-03-31 Fujitsu Ltd キャッシュメモリ装置
JPH10116191A (ja) * 1996-10-14 1998-05-06 Hitachi Ltd 圧縮命令用バッファを備えたプロセッサ
JP3104643B2 (ja) * 1997-05-07 2000-10-30 株式会社セガ・エンタープライゼス 画像処理装置及び画像処理方法
DE69815482T2 (de) * 1997-12-24 2004-04-29 Texas Instruments Inc., Dallas Computer Anordnung mit Prozessor und Speicher-Hierarchie und sein Betriebsverfahren
JP3365293B2 (ja) * 1998-02-12 2003-01-08 株式会社日立製作所 Dram,ロジック混載lsiを使ったキャッシュメモリ及びそれを用いたグラフィックスシステム
US6560674B1 (en) * 1998-10-14 2003-05-06 Hitachi, Ltd. Data cache system
US6825848B1 (en) * 1999-09-17 2004-11-30 S3 Graphics Co., Ltd. Synchronized two-level graphics processing cache
US6812929B2 (en) * 2002-03-11 2004-11-02 Sun Microsystems, Inc. System and method for prefetching data from a frame buffer
US6957305B2 (en) * 2002-08-29 2005-10-18 International Business Machines Corporation Data streaming mechanism in a microprocessor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103430162A (zh) * 2011-03-04 2013-12-04 美光科技公司 与从第一接口到第二接口的操作性转变相关联的设备、电子装置和方法
CN103430162B (zh) * 2011-03-04 2016-08-31 美光科技公司 与从第一接口到第二接口的操作性转变相关联的设备、电子装置和方法
US9529736B2 (en) 2011-03-04 2016-12-27 Micron Technology, Inc. Apparatus, electronic devices and methods associated with an operative transition from a first interface to a second interface

Also Published As

Publication number Publication date
WO2006019374A1 (en) 2006-02-23
EP1769360A1 (en) 2007-04-04
JP2008507028A (ja) 2008-03-06
CN1961295A (zh) 2007-05-09
KR101158949B1 (ko) 2012-07-06
EP1769360A4 (en) 2008-08-06
KR20070038955A (ko) 2007-04-11
JP5071977B2 (ja) 2012-11-14

Similar Documents

Publication Publication Date Title
US10181176B2 (en) Efficient low-power texture cache architecture
US7102646B1 (en) Demand-based memory system for graphics applications
US8724914B2 (en) Image file generation device, image processing device, image file generation method, image processing method, and data structure for image files
US6492991B1 (en) Method and apparatus for controlling compressed Z information in a video graphics system
EP2113103B1 (en) Dynamic configurable texture cache for multi-texturing
JP4076502B2 (ja) ゾーン・レンダリングのための効率的なグラフィックス状態管理
JP2008276798A (ja) タイルリニアホストテクスチャストレージ
US7580042B2 (en) Systems and methods for storing and fetching texture data using bank interleaving
CN100533403C (zh) 高速缓冲存储器管理系统和方法
WO2003050759A1 (fr) Appareil de traitement d'images et procede associe
US7725623B2 (en) Command transfer controlling apparatus and command transfer controlling method
US7170512B2 (en) Index processor
CN107153617B (zh) 用于利用缓冲器高效访问纹理数据的高速缓存体系结构
CN110276444A (zh) 基于卷积神经网络的图像处理方法及装置
US20180004443A1 (en) Accessing encoded blocks of data in memory
KR20060116916A (ko) 텍스쳐 캐쉬 및 이를 구비한 3차원 그래픽 시스템, 그리고그것의 제어 방법
US7589738B2 (en) Cache memory management system and method
JP2003323339A (ja) メモリアクセス装置、半導体デバイス、メモリアクセス制御方法、コンピュータプログラム及び記録媒体
US10706607B1 (en) Graphics texture mapping
JPH09259041A (ja) キャッシュメモリ制御方式
GB2613177A (en) Cache arrangements in data processing systems
JP2003016438A (ja) 画像生成装置
JP2000276588A (ja) キャッシュメモリ装置及びプロセッサ
AU3139101A (en) Image cache system and method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: IDT CO.,LTD.

Free format text: FORMER OWNER: AOPUTIX CRYSTAL SILICON CO., LTD.

Effective date: 20091016

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20091016

Address after: San Jose, California, USA

Patentee after: IDT company

Address before: california

Patentee before: Silicon Optix Co., Ltd.

ASS Succession or assignment of patent right

Owner name: QUALCOMM INC.

Free format text: FORMER OWNER: INTEGRATED DEVICE TECHNOLOGY, INC.

Effective date: 20130109

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20130109

Address after: American California

Patentee after: Qualcomm Inc.

Address before: San Jose, California, USA

Patentee before: IDT company

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090826

Termination date: 20180714

CF01 Termination of patent right due to non-payment of annual fee