CN103971327A - 像素高速缓存、其操作方法和包括像素高速缓存的图像处理装置 - Google Patents

像素高速缓存、其操作方法和包括像素高速缓存的图像处理装置 Download PDF

Info

Publication number
CN103971327A
CN103971327A CN201410032809.2A CN201410032809A CN103971327A CN 103971327 A CN103971327 A CN 103971327A CN 201410032809 A CN201410032809 A CN 201410032809A CN 103971327 A CN103971327 A CN 103971327A
Authority
CN
China
Prior art keywords
data
delineation
plane
row
request
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
CN201410032809.2A
Other languages
English (en)
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN103971327A publication Critical patent/CN103971327A/zh
Pending legal-status Critical Current

Links

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
    • 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
    • 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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/302In image processor or graphics adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image or video data

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)
  • Image Processing (AREA)

Abstract

本发明涉及一种像素高速缓存、操作像素高速缓存的方法和包括像素高速缓存的图像处理装置。所述像素高速缓存具有多个行填充单元并且配置成获取存储在主存储器中的图像,所述方法包括:从图像处理装置接收针对一个或更多图像平面的数据的请求;以及如果针对至少一个图像平面的所述请求被确定为“命中”,则输出所述至少一个图像平面的所请求的数据,并且从主存储器获取被确定为未“命中”的至少一个其他图像平面的所请求的数据。对于所述一个或更多图像平面中的每一个,基于该图像平面的数据是否存储在所述多个行填充单元的其中之一来确定“命中”。所述图像平面可以包括至少两行和至少两列的像素,并且具有与所述行填充单元的容量实质上相同的尺寸。

Description

像素高速缓存、其操作方法和包括像素高速缓存的图像处理装置
相关申请的交叉引用
本申请要求2013年1月24日在韩国知识产权局提交的韩国专利申请No.10-2013-0008117的优先权,其内容被全文合并在此以作参考。
技术领域
本公开的各实施例针对一种半导体设备,更具体来说针对一种像素高速缓存、一种操作像素高速缓存的方法以及一种包括像素高速缓存的图像处理装置。
背景技术
图像处理装置可以对从摄影机获得的图像执行各种操作。关于所获得的图像,图像处理装置可以执行例如噪声减少、稳定化、运动跟踪、运动补偿等操作。随着图像处理装置开始执行更多更加复杂的操作,对于这些图像处理操作的支持已经成为研究的课题。
涉及对于图像处理操作的支持的一个研究方向针对的是像素高速缓存。像素高速缓存可以是嵌入在图像处理装置中的存储器。像素高速缓存可以对存储在主存储器中的图像的数据进行获取和存储。如果一幅图像所需的数据存储在像素高速缓存中,则图像处理装置可以访问像素高速缓存以获得数据而无须访问主存储器。
发明内容
本公开的各实施例提供针对图像数据管理进行优化的一种像素高速缓存、一种操作像素高速缓存的方法以及一种包括像素高速缓存的图像处理装置。
本发明构思的各实施例提供了一种用于操作像素高速缓存的方法,所述像素高速缓存包括多个行填充(linefill)单元并且配置成获取存储在主存储器中的图像,所述方法包括步骤:从图像处理装置接收针对一个或更多图像平面的数据的请求;以及如果针对至少一个图像平面的所述请求被确定为“命中”,则输出所述至少一个图像平面的所请求的数据,并且从所述主存储器获取被确定为未“命中”的至少一个其他图像平面的所请求的数据。对于所述一个或更多图像平面中的每一个图像平面,基于该图像平面的数据是否存储在所述多个行填充单元中的一个行填充单元中来确定“命中”。所述图像平面可以包括至少两行和至少两列的像素,并且具有与所述行填充单元的容量实质上相同的尺寸。
在一些实施例中,存储在所述主存储器中的图像的一个图像平面的数据可以被存储在所述多个行填充单元中的一个行填充单元中。存储在所述行填充单元中的图像平面的数据被输出到所述图像处理装置,并且所述行填充单元是在所述像素高速缓存中一次存储或输出的数据单位。
在一些实施例中,可以从所述主存储器的至少两个部分将图像平面的数据获取到所述行填充单元,所述主存储器中的所述至少两个部分的地址可以是不连续的,并且所述至少两个部分中的每一个部分可以具有所述主存储器中的至少两个连续地址。
在一些实施例中,所述方法可以包括步骤:输出所述至少一个其他图像平面的所获取的数据。
在一些实施例中,所述方法可以包括步骤:从所述图像处理装置接收针对两个或更多图像平面的数据的请求。
在一些实施例中,所述请求可以包括与所述两个或更多图像平面有关的基准点的地址以及与所述基准点相距的水平宽度。
在一些实施例中,所述请求可以包括与所述两个或更多图像平面有关的基准点的地址以及与所述基准点相距的垂直长度。
在一些实施例中,所述请求可以包括与所述两个或更多图像平面有关的基准点的地址以及与所述基准点相距的水平宽度和垂直长度。
在一些实施例中,所述请求可以包括与所述两个或更多图像平面有关的第一基准点和第二基准点的地址。
在一些实施例中,所述两个或更多所请求的图像平面在图像中可以是相邻的。
在一些实施例中,所述方法还可以包括步骤:在存储数据的步骤之前,调节所述行填充单元的容量。
在一些实施例中,所述方法还可以包括步骤:在存储数据的步骤之前,把所述多个行填充单元划分成第一行填充分组和第二行填充分组。
在一些实施例中,存储数据的步骤可以包括:把第一图像的第一图像平面的数据存储到所述第一行填充分组的第一行填充单元中,并且把不同于所述第一图像的第二图像的第二图像平面的数据存储到所述第二行填充分组的第二行填充单元中。把数据存储到所述第一行填充单元中和把数据存储到所述第二行填充单元中可以被同时执行。
在一些实施例中,如果针对第一图像平面的数据的请求被确定为未“命中”,则从所述主存储器获取所述第一图像平面的所请求的数据,并且同时从所述图像处理装置接收针对第二图像平面的数据的请求。
在本发明构思的一些实施例中提供了一种像素高速缓存,其包括:数据存储器,其包括多个帧,每一个帧包括存储数据的多个行填充单元;标签存储器,其包括分别对应于所述多个帧的多个标签帧,每一个标签帧包括分别与每一个帧的多个行填充单元对应的多个标签行;以及未命中控制单元,其用于请求存储在外部主存储器中的图像的一个图像平面的数据。从所述主存储器接收的图像平面的数据可以被存储在所述数据存储器的行填充单元中。从所述主存储器接收的图像平面的数据的地址信息可以被存储在所述标签存储器的标签行中。所述行填充单元的容量可以对应于在所述像素高速缓存中一次存储或输出的图像数据的尺寸。所述图像平面可以包括至少两行和至少两列的像素,并且具有与所述行填充单元的容量实质上相同的尺寸。
在一些实施例中,所述像素高速缓存可以包括寄存器,其用于存储关于所述行填充单元的容量的信息。可以根据存储在所述寄存器中的信息来调节所述行填充单元的容量。
在一些实施例中,如果将要增大所述行填充单元的容量,则可以对来自所述标签存储器的至少两个不同帧的至少两个行填充单元进行组合,以形成一个组合的行填充单元。
在一些实施例中,所述像素高速缓存还可以包括寄存器,其用于存储关于同时处理的图像的数目的信息。所述未命中控制单元可以从所述主存储器同时请求多个图像平面的数据,所述多个图像平面的数目与所述同时处理的图像的数目相对应。
在一些实施例中,所述像素高速缓存还可以包括:命中和未命中确定单元,其用于从图像处理装置接收针对第一图像平面的数据的请求,并且用于通过搜索所述标签存储器来确定所述第一图像平面的所请求的数据是否存在于所述数据存储器中;以及寄存器,其存储被所述命中和未命中确定单元确定为“未命中”请求的请求。所述未命中控制单元可以根据存储在所述寄存器中的未命中请求从所述主存储器请求第二图像平面的数据。在把所述未命中请求存储在所述寄存器中之后,所述命中和未命中确定单元可以接收针对下一个图像平面的数据的请求,并且确定所述下一个图像平面的所请求的数据是否存在于所述数据存储器中。
在一些实施例中,所述像素高速缓存还可以包括第二寄存器,其用于在所述未命中控制单元向所述主存储器请求所述第二图像平面的数据的同时存储被所述命中和未命中确定单元确定为“命中”请求的请求。
在本发明构思的其他实施例中,可以提供一种图像处理装置,其包括:像素高速缓存;以及处理单元,其用于从所述像素高速缓存请求一个图像平面的数据并且用于对从所述像素高速缓存接收的所述图像平面的数据执行图像处理。所述像素高速缓存可以包括:数据存储器,其包括多个帧,每一个帧包括用于存储数据的多个行填充单元;标签存储器,其包括分别对应于所述多个帧的多个标签帧,每一个标签帧包括分别与每一个帧的多个行填充单元对应的多个标签行;以及未命中控制单元,其用于根据来自所述处理单元的请求从外部主存储器请求所述图像平面的数据。从所述主存储器接收的所述图像平面的数据可以被存储在所述数据存储器的行填充单元中,并且从所述外部主存储器接收的所述图像平面的数据的地址信息被存储在所述标签存储器的标签行中。所述行填充单元的容量可以对应于在所述像素高速缓存中一次存储或输出的图像数据的尺寸。所述图像平面可以包括至少两行和至少两列的像素,并且具有与所述行填充单元的容量实质上相同的尺寸。
附图说明
图1是根据本发明构思的一个实施例的移动设备的框图。
图2是根据本发明构思的一个实施例的操作像素高速缓存的方法的流程图。
图3示出了其中像素高速缓存获取存储在主存储器中的图像数据的一个实例。
图4示出了其中像素高速缓存获取存储在主存储器中的图像数据的另一个实例。
图5是根据本发明构思的一个实施例的像素高速缓存的框图。
图6是操作图5中所示的像素高速缓存的方法的一个实例的流程图。
图7示出了图像平面和所请求的数据的一个实例。
图8是操作图5中所示的像素高速缓存的方法的另一个实例的流程图。
图9示出了关于像素高速缓存如何接收针对两个或更多图像平面的数据的请求的一个实例。
图10示出了关于像素高速缓存如何响应于图9中所示的请求而输出所请求的数据的一个实例。
图11示出了关于像素高速缓存如何接收针对两个或更多图像平面的数据的请求的另一个实例。
图12示出了关于像素高速缓存如何接收针对两个或更多图像平面的数据的请求的另一个实例。
图13示出了关于像素高速缓存如何响应于图12中所示的请求而输出所请求的数据的一个实例。
图14示出了关于像素高速缓存如何接收针对两个或更多图像平面的数据的请求的另一个实例。
图15示出了关于像素高速缓存如何接收针对两个或更多图像平面的数据的请求的另一个实例。
图16示出了关于像素高速缓存如何响应于图15中所示的请求而输出所请求的数据的一个实例。
图17示出了关于像素高速缓存如何接收针对两个或更多图像平面的数据的请求的另一个实例。
图18示出了关于像素高速缓存如何接收针对两个或更多图像平面的数据的请求的另一个实例。
图19示出了关于像素高速缓存如何接收针对两个或更多图像平面的数据的请求的另一个实例。
图20是根据本发明构思的另一个实施例的像素高速缓存的框图。
图21是操作图20中所示的像素高速缓存的方法的流程图。
图22示出了其中连同对于行填充单元的尺寸的控制一起管理数据存储器的一个实例。
图23示出了描述主设备的处理单元尺寸和行填充单元的尺寸的表。
图24是根据本发明构思的另一个实施例的像素高速缓存的框图。
图25是操作图24中所示的像素高速缓存的方法的流程图。
图26是根据本发明构思的另一个实施例的像素高速缓存的框图。
图27是操作图26中所示的像素高速缓存的方法的流程图。
图28是更加详细地示出了操作图26中所示的像素高速缓存的方法的流程图。
图29是根据本发明构思的另一个实施例的像素高速缓存的框图。
图30是根据本发明构思的另一个实施例的像素高速缓存的框图。
具体实施方式
下面将参照附图更加详细地描述本发明构思的示例性实施例。但是本发明构思的实施例可以通过不同形式来具体实现,而不应当被理解为受限于这里所阐述的实施例。
图1是根据本发明构思的一个实施例的移动设备的框图。参照图1,移动设备1000包括系统总线1100、应用处理器1200、主存储器1300、调制解调器1400、用户接口1500和存储装置1600。
系统总线1100提供对移动设备1000的各个元件的连接。
应用处理器1200可以是移动设备1000的主处理器。应用处理器1200可以控制移动设备1000的各个元件,运行操作系统程序和应用程序,并且执行逻辑操作。应用处理器1200可以是片上系统(SOC)。
应用处理器1200包括内部总线1210、核心处理器1220、数字信号处理器(DSP)1230、直接存取存储器(DMA)1240、存储器控制器1250和图像处理装置1260。
内部总线1210提供对应用处理器1200的各个元件的连接。
核心处理器1220可以控制应用处理器1200的各个元件并且执行各种逻辑操作。
DSP1230可以执行预定的高速操作并且帮助核心处理器1220。
DMA1240可以在核心处理器1220的控制下通过存储器控制器1250来访问主存储器1300。
存储器控制器1250为应用处理器1200提供用以访问主存储器1300或存储装置1600的接口。
图像处理装置1260可以关于图像数据执行操作并且帮助核心处理器1220。图像处理装置1260包括运动估计单元(MEU)1261、运动补偿单元(MCU)1263和像素高速缓存1265。
MEU1261可以基于至少两幅连续图像的图像数据来测量图像中的目标对象的运动。MEU1261可以从像素高速缓存1265请求对于运动测量来说必要的图像数据。
MCU1263可以基于由MEU1261测量的运动来补偿图像。举例来说,MCU1263可以使用所测得的运动来补偿图像噪声、模糊等等。MCU1263可以从像素高速缓存1265请求图像数据以用于运动补偿。
像素高速缓存1265可以从主存储器1300获取图像数据。如果由MEU1261或MCU1263请求的图像数据存储在像素高速缓存1265中,则像素高速缓存1265输出所存储的数据。如果由MEU1261或MCU1263请求的图像数据没有存储在像素高速缓存1265中,则像素高速缓存1265可以从主存储器1300获取所请求的数据并且输出所获取的数据。
像素高速缓存1265可以配置成获取并输出由应用处理器1200的除图像处理装置1260之外的其他元件所请求的图像数据。像素高速缓存1265的位置不限于作为图像处理装置1260的一部分,并且可以提供为应用处理装置1200的其他元件的一部分或者与应用处理装置1200的其他元件分开。
主存储器1300可以是移动设备1000的操作存储器。主存储器1300可以包括下列随机存取存储器中的至少一种:例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变随机存取存储器(PRAM)、磁阻式随机存取存储器(MRAM)、阻式随机存取存储器(RRAM)、铁电随机存取存储器(FRAM)等。
调制解调器1400可以通过有线或无线信道与外部器件通信。调制解调器1400可以利用多种通信技术与外部器件通信,比如长期演进(LTE)、码分多址(CDMA)、全球移动通信系统(GSM)、无线保真(WiFi)、全球互通微波存取(WiMAX)、近场通信(NFC)、Bluetooth、射频标识(RFID)等等。
用户接口1500可以与用户交换信号。用户接口1500可以包括用户输入接口,比如摄像机、麦克风、键盘、鼠标、触摸板、触摸面板、触摸屏、按钮、开关等等。用户接口1500可以包括用户输出接口,比如显示器件、扬声器、灯、电动机等等。显示器件可以包括液晶显示器(LCD)、有源矩阵有机发光二级管(AMOLED)显示器、投影仪等等。
存储装置1600可以在移动设备1000中执行对于数据的长期存储。存储装置1600可以包括至少一个非易失性存储器,比如闪存、MRAM、PRAM、RRAM、FRAM、硬盘驱动器等等。
图2是根据本发明构思的一个实施例的操作像素高速缓存的方法的流程图。参照图1和图2,在操作S10处,将图像平面的数据存储在像素高速缓存1265的行填充单元中。
在操作S20处,输出存储在行填充单元中的图像平面的数据。图像平面的数据可以被输出到图像处理装置1260或者输出到应用处理器1200的其他元件。
图像平面可以是存储在主存储器1300中的图像的一部分。图像平面的数据可以是包括至少两行和至少两列的像素的二维(2D)数据。
行填充单元可以是在像素高速缓存1265中一次存储数据或者从像素高速缓存1265一次输出数据的数据处理单位。
例如MEU1261或MCU1263的图像处理单元对2D图像执行操作。根据本发明构思的一个实施例,像素高速缓存1265存储或输出存储在主存储器1300中的图像的一部分。所述图像部分是包括至少两行和至少两列像素的2D数据。存储在像素高速缓存1265的行填充单元中的数据与由MEU1261或MCU1263使用的2D图像匹配,从而可以减少对像素高速缓存访问的次数。
图3示出了其中像素高速缓存1265获取存储在主存储器1300中的图像数据的一个实例。在图1和图3中提供了图像、存储该图像的主存储器1300以及对存储在主存储器1300中的图像的一部分进行存储的像素高速缓存1265。
所述图像可以包括多个像素。所述多个像素可以分别包括相应的数据D01到D32。在图3中示出了图像的一个实例。所述图像的尺寸不限于任何特定尺寸。
利用存储器地址MA来标识主存储器1300的各个存储区域。主存储器1300可以把像素数据存储在各个存储区域中,每一个存储区域具有在所述图像中示出的箭头方向上增大的相应的存储器地址。在一个实施例中,主存储器1300的各个存储区域可以存储:所述图像的第一行数据D01到D08,其对应于存储器地址0000到存储器地址0007;所述图像的第二行数据D09到D16,其对应于存储器地址0008到存储器地址000F;所述图像的第三行数据D17到D24,其对应于存储器地址0010到存储器地址0017;以及所述图像的第四行数据D25到D32,其对应于存储器地址0018到存储器地址001F。存储在主存储器1300中的图像是线性可寻址的。
主存储器1300可以被划分成多个分组。每一个分组可以包括具有顺序地址的多个存储区域,所述多个存储区域具有顺序的地址。为所述多个分组分别指定不同的标签T。举例来说,具有存储器地址0000到000F的存储区域构成一个分组,为该分组指定标签T00。具有存储器地址0010到001F的存储区域构成另一个分组,为该分组指定标签T01。主存储器1300的分组数目不限于任何特定数目。
主存储器1300的每一个分组被划分成多个子分组。每一个子分组可以包括具有顺序地址的多个存储区域。为每一个分组的各个子分组分别指定不同的行索引LI。举例来说,在存储器地址0000到000F的分组中,可以把行索引00指定给存储器地址0000到0003的子分组,可以把行索引01指定给存储器地址0004到0007的子分组,可以把行索引02指定给存储器地址0008到000B的子分组,并且可以把行索引03指定给存储器地址000C到000F的子分组。此外,在存储器地址0010到001F的分组中,可以把行索引00指定给存储器地址0010到0013的子分组,可以把行索引01指定给存储器地址0014到0017的子分组,可以把行索引02指定给存储器地址0018到001B的子分组,并且可以把行索引03指定给存储器地址001C到001F的子分组。主存储器1300的每一个分组的子分组的数目不限于任何特定数目。
一个行索引LI可以对应于像素高速缓存1265的一个数据I/O单元。也就是说,像素高速缓存1265可以一次从主存储器1300获取具有相同行索引的数据。此外,像素高速缓存1265可以一次输出具有相同行索引LI的数据。
像素高速缓存1265可以包括多个帧(frame)W1和W2。每一个帧可以对应于主存储器1300的每一个分组。每一个帧包括多个行填充单元。所述行填充单元可以分别对应于主存储器1300的每一个分组的各个子分组。
可以基于标签T和行索引LI把存储在主存储器1300中的图像数据获取到像素高速缓存1265。在一个实施例中,像素高速缓存1265可以参考所选数据的行索引LI以便选择将要在其中存储所选数据的帧。像素高速缓存1265可以选择这样的帧,其具有与所选数据的行索引LI相对应的空的行填充单元。所选数据可以存储在所选帧中的与所选数据的行索引LI相对应的位置。在这种情况下,所选数据的标签T也可以被存储在像素高速缓存1265中。
在一个实施例中,可以为图像的数据D01到D04指定标签00和行索引00。数据D01到D04可以存储在帧W1的对应于行索引00的高速缓存位置处,即第一行填充单元。可以为图像的数据D05到D08指定标签00和行索引01。数据D05到D08可以存储在帧W1的第二行填充单元中。
可以为图像的数据D17到D20指定标签01和行索引00。数据D17到D20可以存储在帧W2的对应于行索引00的高速缓存位置处,即第一行填充单元。可以为图像的数据D21到D24指定标签01和行索引01。数据D21到D24可以存储在帧W2的第二行填充单元中。
响应于针对图像数据的请求,像素高速缓存1265可以从主存储器1300的地址提取出标签T和行索引LI。如果对应于所提取出的标签T和行索引LI的数据已存储,则像素高速缓存1265确定“命中”并且输出所请求的数据。如果对应于所提取出的标签T和行索引LI的数据未存储,则像素高速缓存1265确定“未命中”并且从主存储器1300获取所请求的数据。所获取的数据可以存储在像素高速缓存1265中,并且根据请求而输出。
如图3中所示,像素高速缓存1265的一个行填充单元可以存储图像的一行数据或一行数据的一部分。
图4示出了其中像素高速缓存1265获取存储在主存储器1300中的图像数据的第二实例。在图1和图4中,提供了图像、存储图像的主存储器1300以及对存储在主存储器1300中的图像的一部分进行存储的像素高速缓存1265。
与图3相比,在图4中,主存储器1300的每一个子分组可以包括不连续地址。在一个实施例中,在具有存储器地址0000到000F的分组中,可以为具有存储器地址0000、0001、0008和0009的子分组指定行索引00,可以为具有存储器地址0002、0003、000A和000B的子分组指定行索引01,可以为具有存储器地址0004、0005、000C和000D的子分组指定行索引02,并且可以为具有存储器地址0006、0007、000E和000F的子分组指定行索引03。此外,在具有存储器地址0010到001F的分组中,可以为具有存储器地址0010、0011、0018和0019的子分组指定行索引00,可以为具有存储器地址0012、0013、001A和001B的子分组指定行索引01,可以为具有存储器地址0014、0015、001C和001D的子分组指定行索引02,并且可以为具有存储器地址0016、0017、001E和001F的子分组指定行索引03。
图像的数据D01、D02、D09和D10具有标签00和行索引00。数据D01、D02、D09和D10可以存储在帧W1的对应于行索引00的高速缓存位置处,即第一行填充单元。图像的数据D03、D04、D11和D12具有标签00和行索引01。数据D03、D04、D11和D12可以存储在帧W1的第二行填充单元中。
图像的数据D17、D18、D25和D26具有标签01和行索引00。数据D17、D18、D25和D26可以存储在帧W2的对应于行索引00的高速缓存位置处,即第一行填充单元。图像的数据D19、D20、D27和D28具有标签01和行索引01。数据D19、D20、D27和D28可以存储在帧W2的第二行填充单元中。
如图4中所示,像素高速缓存1265的单个行填充单元可以存储包括至少两行和至少两列像素的数据。存储在像素高速缓存1265的单个行填充单元中的2D图像数据可以定义一个图像平面的数据。
图像处理装置1260可以对存储在像素高速缓存1265中的数据执行各种计算。图像处理装置1260的计算可以在空间上被局部化。举例来说,在图像处理装置1260中对2D图像执行计算。图像处理装置1260可以在所接收到的图像内或者在各个顺序接收到的图像之间比较各个2D区域。如图3中所示,如果像素高速缓存1265存储一行或一部分行的图像数据,则图像处理装置1260需要访问像素高速缓存1265若干次以执行计算。相应地,像素高速缓存1265可以访问主存储器1300若干次。
另一方面,如图4中所示,如果像素高速缓存1265存储一个图像平面的数据,则可以减少为了执行计算而由图像处理装置1260对像素高速缓存1265进行访问的次数。具体来说,如果存储在像素高速缓存1265中的图像平面的数据与图像处理装置1260所要求的2D图像数据匹配,则图像处理装置1260可以运行一次像素高速缓存访问以执行计算。根据本发明构思的一个实施例,像素高速缓存1265可以在单个行填充单元中存储一个图像平面的数据。因此提供了可以对空间上被局部化的图像的数据管理进行优化的像素高速缓存、操作像素高速缓存的方法以及包括像素高速缓存的图像处理装置。
图5示出了根据本发明构思的一个实施例的像素高速缓存1265的框图。参照图1、图4和图5,像素高速缓存1265包括数据存储器DM、标签存储器TM、多路复用器单元MU1到MU4、比较单元CU、命中和未命中确定单元HDMU、替换单元RMU、状态机SM、未命中控制单元MCU、行填充控制单元LCU和行填充缓冲器LB。
像素高速缓存1265可以从主装置接收请求REQ1。所述主装置例如可以是图像处理装置1260或外部应用处理器。响应于请求REQ1,像素高速缓存1265可以把数据D1输出到主装置。像素高速缓存1265可以输出作为信号S1的表明数据D1的有效性的信息,例如表明数据D1的有效信号部分或时钟的选通信号。
响应于请求REQ1,像素高速缓存1265可以向主存储器1300传送请求REQ2。像素高速缓存1265可以从主存储器1300接收数据D2以及与数据D2有关的信号S2。信号S2可以是表明数据D2的有效性的信息,例如表明数据D2的有效信号部分或时钟的选通信号。
数据存储器DM包括多个帧W1到Wn。每一个帧包括多个行填充单元。单个行填充单元可以存储单个图像平面的数据。
标签存储器TM包括多个标签帧TW1到TWn。多个标签帧TW1到TWn分别对应于多个帧W1到Wn。每一个标签帧包括多个标签行。单个标签帧可以对存储在数据存储器DM的相应行填充单元中的数据的标签T进行存储。单个标签帧还可以存储有效性信息V,其表明存储在数据存储器DM的相应行填充单元中的数据是否有效。
多路复用器单元MU1包括多个多路复用器M1到Mn。多个多路复用器M1到Mn分别对应于多个标签帧TW1到TWn。响应于来自主装置的请求REQ1,多路复用器单元MU1可以从多个标签帧TW1到TWn当中选择标签行。在一个实施例中,当请求REQ1表明特定行索引LI时,多个多路复用器M1到Mn中的每一个可以从其相应的标签帧选择所请求的行索引LI。举例来说,如果请求REQ1表明行索引00,则多路复用器M1到Mn可以分别输出对应于行索引00的位置的标签帧TW1到TWn的标签。
比较单元CU包括多个比较器CP1到CPn。多个比较器CP1到CPn分别对应于多个多路复用器M1到Mn。比较器CP1到CPn可以从多个多路复用器M1到Mn接收标签。比较器CP1到CPn可以把由请求REQ1所表明的标签T与从多路复用器M1到Mn输出的标签进行比较。
命中和未命中确定单元HDMU可以从比较单元CU接收比较结果。基于比较结果,命中和未命中确定单元HDMU输出命中和未命中信息HMI。如果确定由请求REQ1所表明的标签存储在标签存储器TM中,则命中和未命中确定单元HDMU可以输出表明“命中”的命中和未命中信息HMI。如果确定由请求REQ1所表明的标签未存储在标签存储器TM中,则命中和未命中确定单元HDMU可以输出表明“未命中”的命中和未命中信息HMI。也就是说,如果对应于请求REQ1的图像平面的数据存储在像素高速缓存1265中,则命中和未命中确定单元HDMU可以确定“命中”。如果对应于请求REQ1的图像平面的数据未存储在像素高速缓存1265中,则命中和未命中确定单元HDMU可以确定“未命中”。命中和未命中信息HMI可以包括关于其中发生“命中”的标签帧的信息。
替换单元RMU可以管理标签存储器TM。替换单元RMU可以管理存储在标签存储器TM中的有效性信息V,并且基于有效性信息V管理标签存储器TM。在一个实施例中,替换单元RMU可以删除被有效性信息V表明为无效的标签行。在另一个实施例中,替换单元RMU可以基于最近最少使用(LRU)算法删除被有效性信息V表明为有效的标签行。
多路复用器MU2可以基于命中和未命中信息HMI进行操作。如果命中和未命中信息HMI表明“命中”,则MU2可以把包括在请求REQ1中的行索引LI传送到数据存储器DM。多路复用器MU2可以把包括在命中和未命中信息HMI中的帧信息传送到数据存储器DM。基于从多路复用器MU2传送的行索引LI和帧信息,可以读出存储在数据存储器DM的行填充单元中的图像平面的数据。可以把从数据存储器DM读出的图像平面的数据输出到多路复用器MU4。
状态机SM可以控制像素高速缓存1265的各种操作。状态机SM可以基于比如请求REQ1以及命中和未命中信息HMI之类的各种信号来控制像素高速缓存1265的操作。在输出从数据存储器DM读取的图像平面的数据时,状态机SM可以输出表明从数据存储器DM读取的图像平面的数据的有效性的信息。该有效性信息可以输出到多路复用器MU3。
未命中控制单元MCU可以基于命中和未命中信息HMI进行操作。当命中和未命中信息HMI表明“未命中”时,未命中控制单元MCU可以根据包括在请求REQ1中的地址把请求REQ1传送到主存储器1300以作为请求REQ2。未命中控制单元MCU可以从主存储器1300请求由请求REQ1所请求的图像平面的数据。未命中控制单元MCU可以从主存储器1300接收信号S2,并且基于信号S2控制行填充控制单元LCU或行填充缓冲器LB以便存储该图像平面的数据。
行填充控制单元LCU可以控制行填充缓冲器LB的操作。行填充控制单元LCU可以控制行填充缓冲器LB以便存储从主存储器1300接收的图像平面数据D2。行填充控制单元LCU可以控制行填充缓冲器LB以便把存储在行填充缓冲器LB中的图像平面的数据输出到数据存储器DM。传送到数据存储器DM的图像平面的数据可以存储在数据存储器DM的单个行填充单元中。在这种情况下,可以根据包括在请求REQ1中的标签T和行索引LI来更新标签存储器TM。在一个实施例中,标签T可以存储在与数据存储器DM的、存储了图像平面的数据的行填充单元相对应的标签行中。
行填充控制单元LCU可以控制行填充缓冲器LB,从而把存储在行填充缓冲器LB中的图像平面的数据输出到多路复用器MU4。行填充控制单元LCU可以把行填充缓冲器LB输出的图像平面的数据的有效性信息输出到多路复用器MU3。
多路复用器MU3可以从状态机SM或行填充控制单元LCU接收有效性信息。当“命中”发生时,多路复用器MU3可以选择从状态机SM接收的有效性信息。当“未命中”发生时,多路复用器MU3可以选择从行填充控制单元LCU接收的有效性信息。多路复用器MU3可以输出所选信息以作为信号S1。虽然在图5中为了解释简便起见没有示出,但是多路复用器MU3可以响应于命中和未命中信息HMI来进行操作。
多路复用器MU4可以从数据存储器DM或行填充缓冲器LB接收图像平面的数据。当“命中”发生时,多路复用器MU4可以选择从数据存储器DM接收的图像平面的数据。当“未命中”发生时,多路复用器MU4可以选择从行填充缓冲器LB接收的图像平面的数据。多路复用器MU4可以输出所选图像平面的数据以作为数据D1。虽然在图5中为了解释简单起见没有示出,但是多路复用器MU4可以响应于命中和未命中信息HMI来进行操作。
像素高速缓存1265把一个图像平面的数据存储在单个行填充单元中。图像平面包括至少两行和至少两列的像素。当所请求的图像平面的数据存储在数据存储器DM中时,像素高速缓存1265输出存储在数据存储器DM中的图像平面的数据。当所请求的图像平面的数据未存储在数据存储器DM中时,像素高速缓存1265从主存储器1300请求该图像平面的数据并且获取该图像平面的数据。像素高速缓存1265把所获取的图像平面的数据存储在数据存储器DM中,并且输出所获取的图像平面的数据。存储和输出所获取的图像平面的数据可以同时执行。
图6是操作图5中所示的像素高速缓存1265的方法的一个实例的流程图。参照图1、图4、图5和图6,在操作S110处,接收请求REQ1。请求REQ1可以包括关于图像平面的数据的信息,比如地址。可以从所接收到的地址提取出标签T和行索引LI。
在操作S120处,确定是否发生“命中”。命中和未命中确定单元HDMU可以基于包括在请求REQ1中的标签T和行索引LI确定所请求的图像平面的数据是否存储在数据存储器DM中。如果存储了所请求的图像平面的数据,则确定“命中”发生。如果未存储所请求的图像平面的数据,则确定“未命中”发生。
如果确定“命中”发生,在操作S130处,输出所请求的图像平面的数据。如果确定“未命中”发生,在操作S140处,从主存储器1300获取所请求的图像平面的数据。在操作S150处,把所获取的图像平面的数据存储在行填充单元中并输出所获取的图像平面的数据。
图7示出了图像平面IP和所请求数据RD的实例。如图7中所示,所请求数据RD可以包括在单个图像平面IP的数据中。像素高速缓存1265可以接收针对包括所请求数据的图像平面IP的请求,并且输出图像平面IP的数据。像素高速缓存1265可以接收针对所请求数据RD的请求,并且输出图像平面IP的数据。像素高速缓存1265可以接收针对所请求数据RD的请求,并且从图像平面IP的数据输出与所请求数据RD相对应的部分。
图8是操作图5中所示的像素高速缓存1265的方法的另一个实例的流程图。参照图1、图4、图5和图8,在操作S210处,接收请求REQ1。请求REQ1可以包括关于两个或更多图像平面的数据的信息,比如地址。可以从所接收到的地址提取出标签T和行索引LI。
在操作S220处,选择第一个图像平面。在操作S230处,确定是否发生“命中”。如果“命中”发生,则在操作S240处输出所请求的图像平面的数据。
如果“命中”没有发生,则在操作S250处从主存储器1300获取所请求的图像平面的数据。在操作S260处,把所获取的图像平面的数据存储在数据存储器DM中并且输出所获取的图像平面的数据。
在操作S270处,确定所输出的图像平面的数据是否为最后一个图像平面的数据。如果所输出的图像平面的数据是最后一个图像平面的数据,则处理结束。如果所输出的图像平面的数据不是最后一个图像平面的数据,则在操作S280处,选择下一个图像平面并且处理返回操作S230。
参照图8,根据本发明构思的一个实施例,把图像平面的数据存储在行填充单元中的像素高速缓存1265可以一次接收针对两个或更多图像平面的数据的请求,并且根据所接收到的请求顺序地输出所述两个或更多图像平面的数据。
图9示出了关于像素高速缓存1265如何接收针对两个或更多图像平面的数据的请求的一个实例。参照图5和图9,提供一幅图像,其包括设置在1到4行和a到h列上的各图像平面IP。所请求数据RD对应于设置在1到3行和b到e列上的各图像平面的数据。
去到像素高速缓存1265的请求REQ1可以包括关于所请求数据RD的基准点RP的地址以及所请求数据RD的宽度OFF_X的信息。基准点RP可以对应于所请求数据RD地址中的最低地址的位置。基准点RP可以是所请求数据RD的左上角位置。
图10示出了关于像素高速缓存1265如何响应于图9中的请求输出所请求数据RD的一个实例。参照图5、图9和图10,像素高速缓存1265可以通过至少两种不同方式输出所请求数据RD。
在本发明构思的一个实例中,像素高速缓存1265可以基于各行图像平面来输出各图像平面的数据。像素高速缓存1265可以输出在单一行中的各第一图像平面的数据,并且随后输出后续各行中的各后续图像平面的数据。在一个实施例中,像素高速缓存1265可以顺序地输出第一行中的各图像平面IP_1b到IP_1e的数据,第二行中的各图像平面IP_2b到IP_2e的数据,第三行中的各图像平面IP_3b到IP_3e的数据,以及第四行中的各图像平面IP_4b到IP_4e的数据。
在本发明构思的另一个实例中,像素高速缓存1265可以基于各列图像平面来输出各图像平面的数据。像素高速缓存1265可以输出在单一列中的各第一图像平面的数据,并且随后输出后续各列中的各后续图像平面的数据。举例来说,像素高速缓存1265可以顺序地输出第一列中的各图像平面IP_1b到IP_4b的数据,第二列中的各图像平面IP_1c到IP_4c的数据,第三列中的各图像平面IP_1d到IP_4d的数据,以及第四列中的各图像平面IP_1e到IP_4e的数据。
如果请求REQ1包括基准点RP的地址和宽度OFF_X,则将从像素高速缓存1265输出的数据CD可以不只包括所请求数据RD,而且还包括没有包括在所请求数据RD中的各图像平面的数据。传送请求REQ1的主装置(例如图1中所示的图像处理装置1260或应用处理器1200的其他元件)可以从接收自像素高速缓存1265的各图像平面IP的数据当中仅选择将对其执行计算的与所请求数据RD相对应的部分。
在本发明构思的另一个实施例中,响应于请求REQ1,像素高速缓存1265可以仅输出对应于所请求数据RD的数据。举例来说,在第一行中的各图像平面1b到1e当中,可以只输出对应于所请求数据RD的部分而不是全部数据。同样地,在第四行中的各图像平面4b到4e当中,在第一列中的各图像平面1b到4b当中,以及在第四列中的各图像平面1e到4e当中,可以只输出对应于所请求数据RD的部分而不是全部数据。
处理图像的主装置可以基于空间位置来请求2D图像数据。在使用根据本发明构思的实施例的像素高速缓存1265时,可以通过单一请求REQ1来请求对应于像素高速缓存1265的多个行填充单元的多个图像平面的数据。因此可以减少像素高速缓存1265访问的次数,并且可以增强图像处理装置1260或应用处理器1200(二者都包括像素高速缓存1265)的性能。
关于图9和图10所说明的请求的实施例不限于请求多个图像平面的数据。举例来说,正如关于图7所说明的那样,如果所请求数据RD包括在单个图像平面内,则请求REQ1可以包括基准点RP的地址和宽度OFF_X。不管所请求数据RD的尺寸如何都可以应用关于图9和图10所说明的请求的实施例。因此,即使由主装置要求的所请求数据RD的尺寸发生改变,仍然可以按照相同的方式传送所述请求。
图11示出了关于像素高速缓存1265如何接收针对两个或更多图像平面的数据的请求的另一个实例。参照图5和图11,提供一幅图像,其包括设置在1到4行和a到h列中的各图像平面IP。所请求数据RD对应于设置在1到3行和b到e列中的各图像平面的数据。
不同于图9中所示的实施例,在图11所示的实施例中,请求REQ1可以包括关于图像平面IP_1b的地址的信息,其中包括基准点RP和宽度OFF_X。宽度OFF_X可以包括其中包括了所请求数据RD的各图像平面的宽度。
包括基准点RP的图像平面IP_1b的地址可以是图像平面IP_1b地址中的最低地址。包括基准点RP的图像平面IP_1b的地址可以是包括基准点RP的图像平面IP_1b的左上角位置。
如果根据图11中所示的实施例传送请求REQ1,则像素高速缓存1265可以根据图10中所示的实施例输出图像平面的数据。
图12示出了关于像素高速缓存1265如何接收针对两个或更多图像平面的数据的请求的另一个实例。参照图5和图12,提供一幅图像,其包括设置在1到4行和a到h列中的各图像平面IP。所请求数据RD对应于设置在1到3行和b到e列中的各图像平面的数据。
去到像素高速缓存1265的请求REQ1可以包括关于所请求数据RD的基准点RP的地址以及所请求数据RD的垂直长度OFF_Y的信息。基准点RP可以对应于所请求数据RD地址中的最低地址的位置。基准点RP可以是所请求数据RD的左上角位置。
图13示出了关于像素高速缓存1265如何响应于图12中的请求而输出所请求数据RD的一个实例。参照图5、图12和图13,像素高速缓存1265可以通过至少两种不同方式输出所请求数据RD。
在本发明构思的一个实例中,像素高速缓存1265可以基于各行来输出各图像平面的数据。像素高速缓存1265可以输出在单一行中的各第一图像平面的数据,并且随后输出后续各行中的各后续图像平面的数据。举例来说,像素高速缓存1265可以顺序地输出第一行中的各图像平面1b到1h的数据,第二行中的各图像平面2b到2h的数据,第三行中的各图像平面3b到3h的数据,以及第四行中的各图像平面4b到4h的数据。
在本发明构思的另一个实例中,像素高速缓存1265可以基于各列来输出各图像平面的数据。像素高速缓存1265可以输出在单一列中的各第一图像平面的数据,并且随后输出后续各列中的各后续图像平面的数据。举例来说,像素高速缓存1265可以顺序地输出第一列中的各图像平面1b到3b的数据,第二列中的各图像平面1c到3c的数据,第三列中的各图像平面1d到3d的数据,第四列中的各图像平面1e到3e的数据,第五列中的各图像平面1f到3f的数据,第六列中的各图像平面1g到3g的数据,以及第七列中的各图像平面1h到3h的数据。
如果请求REQ1包括基准点RP的地址和垂直长度OFF_Y,则将从像素高速缓存1265输出的数据CD可以不只包括所请求数据RD,而且还包括没有包括在所请求数据RD中的各图像平面的数据。传送请求REQ1的主装置(例如图1中所示的图像处理装置1260或应用处理器1200的其他元件)可以从接收自像素高速缓存1265的各图像平面IP的数据当中仅选择将对其执行计算的与所请求数据RD相对应的部分。
在本发明构思的另一个实施例中,响应于请求REQ1,像素高速缓存1265可以仅输出对应于所请求数据RD的数据。举例来说,在第一行中的各图像平面1b到1h当中,可以只输出对应于所请求数据RD的部分而不是全部数据。同样地,在第三行中的各图像平面3b到3h当中,在第一列中的各图像平面1b到3b当中,以及在第七列中的各图像平面1h到3h当中,可以只输出对应于所请求数据RD的部分而不是全部数据。
处理图像的主装置可以基于空间位置请求2D图像数据。在使用根据本发明构思的实施例的像素高速缓存1265时,可以通过单一请求REQ1来请求对应于像素高速缓存1265的多个行填充单元的多个图像平面的数据。因此可以减少像素高速缓存1265访问的次数,并且可以增强图像处理装置1260或应用处理器1200(二者都包括像素高速缓存1265)的性能。
关于图12和图13所说明的请求的实施例不限于请求多个图像平面的数据。举例来说,正如已关于图7所说明的那样,如果所请求数据RD包括在单个图像平面内,则请求REQ1可以包括基准点RP的地址和垂直长度OFF_Y。不管所请求数据RD的尺寸如何都可以应用关于图12和图13所说明的请求的实施例。因此,如果由主装置要求的所请求数据RD的尺寸发生改变,仍然可以按照相同的方式传送所述请求。
图14示出了关于像素高速缓存1265如何接收针对两个或更多图像平面的数据的请求的另一个实例。参照图5和图14,提供一幅图像,其包括设置在1到4行和a到h列中的各图像平面IP。所请求数据RD对应于设置在1到3行和b到e列中的各图像平面的数据。
根据本发明构思的一个实施例,在图14中,请求REQ1可以包括关于图像平面IP_1b的地址的信息,其中包括基准点RP和垂直长度OFF_Y。垂直长度OFF_Y可以包括其中包括了所请求数据RD的各图像平面的垂直长度。
包括基准点RP的图像平面IP_1b的地址可以是图像平面IP_1b地址中的最低地址。包括基准点RP的图像平面IP_1b的地址可以是包括基准点RP的图像平面IP_1b的左上角位置。
如果根据图14中所示的实施例传送请求REQ1,则像素高速缓存1265可以根据图13中所示的实施例输出图像平面的数据。
图15示出了关于像素高速缓存1265如何接收针对两个或更多图像平面的数据的请求的另一个实例。参照图5和图15,提供一幅图像,其包括设置在1到4行和a到h列中的各图像平面IP。所请求数据RD对应于设置在1到3行和b到e列中的各图像平面的数据。
去到像素高速缓存1265的请求REQ1可以包括关于所请求数据RD的基准点RP的地址、所请求数据RD与基准点RP相距的水平宽度OFF_X以及所请求数据RD与基准点RP相距的垂直长度OFF_Y的信息。基准点RP可以对应于所请求数据RD地址中的最低地址的位置。基准点RP可以是所请求数据RD的左上角位置。
图16示出了关于像素高速缓存1265如何响应于图15中的请求而输出所请求数据RD的一个实例。参照图5、图15和图16,像素高速缓存1265可以通过至少两种不同方式输出所请求数据RD。
在本发明构思的一个实例中,像素高速缓存1265可以基于各行图像平面来输出各图像平面的数据。像素高速缓存1265可以输出在第一行中的各第一图像平面的数据,并且随后输出后续各行中的各后续图像平面的数据。举例来说,像素高速缓存1265可以顺序地输出第一行中的各图像平面1b到1d的数据,第二行中的各图像平面2b到2d的数据,以及第三行中的各图像平面3b到3d的数据。
在本发明构思的另一个实例中,像素高速缓存1265可以基于各列图像平面来输出各图像平面的数据。像素高速缓存1265可以输出在第一列中的各第一图像平面的数据,并且随后输出后续各列中的各后续图像平面的数据。举例来说,像素高速缓存1265可以顺序地输出第一列中的各图像平面1b到3b的数据,第二列中的各图像平面1c到3c的数据,以及第三列中的各图像平面1d到3d的数据。
如果请求REQ1包括基准点RP的地址、水平宽度OFF_X和垂直长度OFF_Y,则将从像素高速缓存1265输出的数据CD可以包括与所请求数据RD对应的图像平面的数据。传送请求REQ1的主装置(例如图1中所示的图像处理装置1260或应用处理器1200的其他元件)可以从接收自像素高速缓存1265的各图像平面IP的数据当中仅选择将对其执行计算的与所请求数据RD对应的部分。
在本发明构思的另一个实施例中,响应于请求REQ1,像素高速缓存1265可以仅输出对应于所请求数据RD的数据。举例来说,在第一行中的各图像平面1b到1d当中,可以只输出对应于所请求数据RD的部分而不是全部数据。同样地,在第三行中的各图像平面3b到3c当中,在第一列中的各图像平面1b到3b当中,以及在第四列中的各图像平面1e到3e当中,可以只输出对应于所请求数据RD的部分而不是全部数据。
处理图像的主装置可以基于空间位置请求2D图像数据。在使用根据本发明构思的实施例的像素高速缓存1265时,可以通过单一请求REQ1来请求对应于像素高速缓存1265的多个行填充单元的多个图像平面的数据。因此可以减少像素高速缓存1265访问的次数,并且可以增强图像处理装置1260或应用处理器1200(二者都包括像素高速缓存1265)的性能。
关于图15和图16所说明的请求的实施例不限于请求多个图像平面的数据。举例来说,正如已关于图7所说明的那样,即使所请求数据RD包括在单个图像平面内,请求REQ1也可以包括基准点RP的地址、水平宽度OFF_X和垂直长度OFF_Y。不管所请求数据RD的尺寸如何都可以应用关于图15和图16所说明的请求的实施例。因此,即使所请求数据RD的尺寸发生改变,仍然可以按照相同的方式传送所述请求。
图17示出了关于像素高速缓存1265如何接收针对两个或更多图像平面的数据的请求的另一个实例。参照图5和图17,提供一幅图像,其包括设置在1到4行和a到h列中的各图像平面IP。所请求数据RD对应于设置在1到3行和b到e列中的各图像平面的数据。
根据本发明构思的一个实施例,在图17中,请求REQ1可以包括关于图像平面IP_1b的地址的信息,其中包括基准点RP、水平长度OFF_X和垂直长度OFF_Y。水平长度OFF_X可以包括图像平面的长度,其中所述图像平面包括所请求数据RD。垂直长度OFF_Y可以包括图像平面的垂直长度,其中所述图像平面包括所请求数据RD。
包括基准点RP的图像平面IP_1b的地址可以是图像平面IP_1b地址中的最低地址。包括基准点RP的图像平面IP_1b的地址可以是包括基准点RP的图像平面IP_1b的左上角位置。
如果根据图17中所示的实施例传送请求REQ1,则像素高速缓存1265可以根据图15中所示的实施例输出图像平面的数据。
图18示出了关于像素高速缓存1265如何接收针对两个或更多图像平面的数据的请求的另一个实例。参照图5和图18,提供一幅图像,其包括设置在1到4行和a到h列中的各图像平面IP。所请求数据RD对应于设置在1到3行和b到e列中的各图像平面的数据。
去到像素高速缓存1265的请求REQ1可以包括关于所请求数据RD的第一基准点RP1的地址以及第二基准点RP2的地址。第一基准点RP1可以对应于所请求数据RD地址中的最低地址的位置。第一基准点RP1可以是所请求数据RD的左上角位置。第二基准点RP2可以对应于所请求数据RD地址中的最高地址的位置。第二基准点RP2可以是所请求数据RD的右下角位置。
如果根据图18中所示的实施例传送请求REQ1,则像素高速缓存1265可以根据图15中所示的实施例输出图像平面的数据。
如果请求REQ1包括第一基准点RP1的地址和第二基准点RP2的地址,则将从像素高速缓存1265输出的数据CD可以包括与所请求数据RD对应的图像平面的数据。传送请求REQ1的主装置(例如图1中所示的图像处理装置1260或应用处理器1200的其他元件)可以从接收自像素高速缓存1265的各图像平面IP的数据当中仅选择将对其执行计算的对应于所请求数据RD的部分。
在本发明构思的另一个实施例中,响应于请求REQ1,像素高速缓存1265可以仅输出对应于所请求数据RD的数据。举例来说,在第一行中的各图像平面1b到1d当中,可以只输出对应于所请求数据RD的部分而不是全部数据。同样地,在第三行中的各图像平面3b到3c当中,在第一列中的各图像平面1b到3b当中,以及在第四列中的各图像平面1e到3e当中,可以只输出对应于所请求数据RD的部分而不是全部数据。
处理图像的主装置可以基于空间位置请求2D图像数据。在使用根据本发明构思的实施例的像素高速缓存1265时,可以通过单一请求REQ1来请求对应于像素高速缓存1265的多个行填充单元的多个图像平面的数据。因此可以减少像素高速缓存1265访问的次数,并且可以增强图像处理装置1260或应用处理器1200(二者都包括像素高速缓存1265)的性能。
关于图18所说明的请求的实施例不限于请求多个图像平面的数据。举例来说,正如已关于图7所说明的那样,如果所请求数据RD包括在一个图像平面内,则请求REQ1可以包括第一基准点RP1的地址和第二基准点RP2的地址。不管所请求数据RD的尺寸如何都可以应用关于图18所说明的请求的实施例。因此,如果所请求数据RD的尺寸发生改变,仍然可以按照相同的方式传送所述请求。
图19示出了关于像素高速缓存1265如何接收针对两个或更多图像平面的数据的请求的另一个实例。参照图5和图19,提供一幅图像,其包括设置在1到4行和a到h列中的各图像平面IP。所请求数据RD对应于设置在1到3行和b到e列中的各图像平面的数据。
根据本发明构思的一个实施例,在图19中,请求REQ1可以包括关于包括第一基准点RP1的图像平面IP_1b的地址以及包括第二基准点RP2的图像平面IP_3e的地址的信息。包括第一基准点RP1的图像平面IP_1b的地址可以是图像平面IP_1b地址中的最低地址。包括第一基准点RP1的图像平面IP_1b的地址可以是包括第一基准点RP1的图像平面IP_1b的左上角位置。包括第二基准点RP2的图像平面IP_3e的地址可以是图像平面IP_3e地址中的最低地址。包括第二基准点RP2的图像平面IP_3e的地址可以是包括第二基准点RP2的图像平面IP_3e的右下角位置。
如果根据图19中所示的实施例传送请求REQ1,则像素高速缓存1265可以根据图15中所示的实施例输出图像平面的数据。
前面关于图9到图19说明了由像素高速缓存1265接收的请求的各个实施例。像素高速缓存1265可以根据如在图9到图19中说明的任一个实施例接收来自主装置的请求。像素高速缓存1265的主装置(例如图像处理装置1260或应用处理器1200的其他元件的至少其中之一)可以根据关于图9到图19说明的实施例向像素高速缓存1265传送请求。在本发明构思的另一个实施例中,可以在应用处理器1200、图像处理装置1260或像素高速缓存1265中提供变换单元。所述变换单元可以对从主装置到像素高速缓存1265的请求进行变换,从而使得所述请求对应于关于图9到图19所说明的实施例。
图20是根据本发明构思的另一个实施例的像素高速缓存1265a的框图。参照图1、图4和图20,像素高速缓存1265a包括数据存储器DM、标签存储器TM、多路复用器单元MU1到MU4、比较单元CU、命中和未命中确定单元HDMU、替换单元RMU、状态机SM、未命中控制单元MCU、行填充控制单元LCU、行填充缓冲器LB以及特殊功能寄存器SFR。与图5中所示的像素高速缓存1265的实施例相比,像素高速缓存1265a还包括特殊功能寄存器SFR。
特殊功能寄存器SFR可以存储由像素高速缓存1265a的操作所使用的各种信息。特殊功能寄存器SFR可以由外部器件或者由像素高速缓存1265a的用户设定。特殊功能寄存器SFR可以存储尺寸信息SI。
尺寸信息SI可以是关于像素高速缓存1265a的行填充单元的尺寸的信息。像素高速缓存1265a可以控制行填充单元的尺寸,从而使得行填充单元的尺寸可以对应于尺寸信息SI。
举例来说,状态机SM可以从特殊功能寄存器SFR接收尺寸信息SI,并且基于所接收到的尺寸信息SI控制像素高速缓存1265a。状态机SM可以控制数据存储器DM以存储具有与尺寸信息SI相对应的尺寸的图像平面数据。状态机SM可以控制标签存储器TM以存储具有与尺寸信息SI相对应的尺寸的图像平面的标签信息。状态机SM可以控制像素高速缓存1265a的各个元件以获取及输出具有与尺寸信息SI相对应的尺寸的图像平面的数据。
未命中控制单元MCU可以从主存储器请求具有与尺寸信息SI相对应的尺寸的图像平面的数据。
行填充控制单元LCU可以控制行填充缓冲器LB以存储具有与尺寸信息SI相对应的尺寸的图像平面的数据。
图21是示出了操作图20中所示的像素高速缓存1265a的方法的流程图。参照图20和图21,在操作S310处,接收针对调节尺寸的请求。举例来说,像素高速缓存1265a可以认识到尺寸信息SI存储在特殊功能寄存器SFR中。在一个实施例中,当为包括像素高速缓存1265a的片上系统或移动设备供电时,访问像素高速缓存1265a的主设备可以把尺寸信息SI传送到像素高速缓存1265a。主设备可以传送图像平面的尺寸以作为尺寸信息SI。
在操作S320处,调节行填充单元的尺寸。像素高速缓存1265a可以基于存储在特殊功能寄存器SFR中的尺寸信息SI来调节行填充单元的尺寸。
在操作S330处,基于行填充单元的经过调节的尺寸来获取数据。像素高速缓存1265a可以基于行填充单元的经过调节的尺寸从主存储器1300获取数据。像素高速缓存1265a可以输出所获取的数据。
图22示出了其中连同对于行填充单元尺寸的控制一起管理数据存储器的一个实例。在本发明构思的一个实施例中,在图22中,行填充单元的尺寸增大到两倍。参照图20和图22,通过把数据存储器DM的至少两个帧分组在一起而形成单个虚拟帧。在一个实施例中,帧W1和W2形成虚拟帧VW1,并且帧W3和W4形成另一个虚拟帧VW2。可以把帧W1的单个行填充单元和帧W2的单个行填充单元作为单个组合的行填充单元来对待,其中W1和W2形成虚拟帧VW1。
虽然图22仅仅示出了改变行填充单元的尺寸的一个实例,但是也可以通过其他方式来改变行填充单元的尺寸。举例来说,可以对每一个帧各自的行填充单元进行划分并且将其作为至少两个分开的行填充单元来对待。
图23示出了描述主设备的处理单元尺寸和行填充单元的尺寸的表。参照图23,当访问像素高速缓存1265a的主设备的处理单元尺寸是16×16时,像素高速缓存1265a的行填充单元的尺寸可以是16×4。在这种情况下,主设备向像素高速缓存1265a传送四次访问请求以执行一次计算。突发(burst)长度可以是1个行填充单元的尺寸。
如果主设备的处理单元尺寸是32×32,则像素高速缓存1265a的行填充单元的尺寸可以调节到32×4。在这种情况下,主设备向像素高速缓存1265a传送四次访问请求以执行一次计算。突发长度可以是2个行填充单元的尺寸。
如果主设备的处理单元尺寸是64x64,则像素高速缓存1265a的行填充单元的尺寸可以被调节到64x4。在这种情况下,主设备向像素高速缓存1265a传送四次访问请求以执行一次计算。突发长度可以是4个行填充单元的尺寸。
如前所述,即使主设备的处理单元尺寸发生改变,由于像素高速缓存1265a的行填充单元的尺寸根据主设备的处理单元尺寸变化,因此主设备对像素高速缓存1265a的访问次数不会增加。因此,可以增强包括像素高速缓存1265a的移动设备的性能。
图24是根据本发明构思的第三实施例的像素高速缓存1265b的框图。像素高速缓存1265b包括数据存储器DM、标签存储器TM、多路复用器单元MU1到MU4、比较单元CU、命中和未命中确定单元HDMU、替换单元RMU、状态机SM、未命中控制单元MCU、行填充控制单元LCU、行填充缓冲器LB以及特殊功能寄存器SFR。与图5中所示的像素高速缓存1265相比,像素高速缓存1265b还包括特殊功能寄存器SFR。
特殊功能寄存器SFR可以存储由像素高速缓存1265b的操作所使用的各种信息。特殊功能寄存器SFR可以由外部器件或者由像素高速缓存1265b的用户设定。特殊功能寄存器SFR可以存储多重信息MI。
多重信息MI可以是能够由像素高速缓存1265b同时处理的图像平面的数目。多重信息MI可以是能够由像素高速缓存1265b同时处理的请求REQ的数目。图24示出了根据本发明构思的一个实施例的能够同时处理两个请求REQ1a和REQ1b的像素高速缓存1265b。
像素高速缓存1265b的对应元件可以被划分,以便分开处理第一请求REQ1a和第二请求REQ1b。在一个实施例中,标签存储器TM的标签帧TW1a到TWna、多路复用器单元MU1的多路复用器M1a到Mna、比较单元CU的比较器CP1a到CPna、命中和未命中确定单元HDMUa、替换单元RMUa、多路复用器单元MU2a、多路复用器单元MU3a、多路复用器单元MU4a、状态机SMa、未命中控制单元MCUa、行填充控制单元LCUa以及行填充缓冲器LBa可以响应于第一请求REQ1a操作。这些元件可以响应于第一请求REQ1a生成命中和未命中信号HMIa,向主存储器1300传送请求REQ2a,从主存储器1300接收数据D2a和信号S2a,并且输出数据D1a和信号S1a。
此外,标签存储器TM的标签帧TW1b到TWnb、多路复用器单元MU1的多路复用器M1b到Mnb、比较单元CU的比较器CP1b到CPnb、命中和未命中确定单元HDMUb、替换单元RMUb、多路复用器单元MU2b、多路复用器单元MU3b、多路复用器单元MU4b、状态机SMb、未命中控制单元MCUb、行填充控制单元LCUb以及行填充缓冲器LBb可以响应于第二请求REQ1b操作。这些元件可以响应于第二请求REQ1b生成命中和未命中信号HMIb,向主存储器1300传送请求REQ2b,从主存储器1300接收数据D2b和信号S2b,并且输出数据D1b和信号S1b。
可以基于多重信息MI将数据存储器DM划分成多个分组。每一个分组可以存储对应于一个请求的图像平面的数据。在一个实施例中,如图22中所示,数据存储器DM的多个帧W1到Wn可以形成多个分组。数据存储器DM的对应帧可以被划分以形成多个分组。数据存储器DM的对应行填充单元可以被划分以形成多个分组。
在本发明构思的一个实施例中,类似于数据存储器DM,可以响应于多重信息MI来对标签存储器TM、多路复用器单元MU1和比较器单元CU进行划分以处理多个请求。在本发明构思的另一个实施例中,可以响应于多重信息MI来激活或停用标签存储器TM的标签帧TW1b到TWnb、多路复用器单元MU1的多路复用器M1b到Mnb、比较单元CU的比较器CP1b到CPnb。
此外,可以响应于多重信息MI来激活或停用命中和未命中确定单元HMDUb、替换单元RMUb、多路复用器单元MU2b、多路复用器单元MU3b、多路复用器单元MU4b、状态机SMb、未命中控制单元MCUb、行填充控制单元LCUb以及行填充缓冲器LBb。
图25是操作图24中所示的像素高速缓存1265b的方法的流程图。参照图24和图25,在操作S410处,接收用于划分像素高速缓存1265b的请求。该划分请求可以表明如何基于需要同时处理的请求数目来划分像素高速缓存1265b。举例来说,像素高速缓存1265b可以认识到多重信息MI存储在特殊功能寄存器SFR中。在一个实施例中,当为包括像素高速缓存1265b的片上系统或移动设备供电时,访问像素高速缓存1265b的主设备可以把多重信息MI传送到像素高速缓存1265b。
在操作S420处,根据划分请求分配至少两个高速缓存区域。像素高速缓存1265b可以基于多重信息MI把数据存储器DM划分成至少两个区域。
在操作S430处,根据所划分的高速缓存区域同时获取至少两个图像平面的数据。
图26是根据本发明构思的另一个实施例的像素高速缓存1265c的框图。参照图1、图4和图26,像素高速缓存1265c包括数据存储器DM、标签存储器TM、多路复用器单元MU1到MU4、比较单元CU、命中和未命中确定单元HDMU、替换单元RMU、状态机SM、未命中控制单元MCU、行填充控制单元LCU、行填充缓冲器LB、未命中比较器MCP、未命中寄存器MFF以及未命中下命中寄存器HUMFF。与图5中所示的像素高速缓存1265相比,像素高速缓存1265c还包括未命中比较器MCP、未命中寄存器MFF以及未命中下命中寄存器HUMFF。
未命中寄存器MFF可以存储包括在响应于命中和未命中信息HMI的请求REQ1中的地址。举例来说,如果命中和未命中信息HMI表明“未命中”,则未命中寄存器MFF可以存储包括在请求REQ1中的地址。未命中寄存器MFF可以包括多个触发器。
响应于命中和未命中信息HMI,未命中比较器MCP可以把包括在请求REQ1中的地址与存储在未命中寄存器MFF中的地址进行比较。在一个实施例中,当命中和未命中信息HMI表明“未命中”时,未命中比较器MCP可以执行比较。
响应于命中和未命中信息HMI,未命中下命中寄存器HUMFF可以存储包括在请求REQ1中的地址。在一个实施例中,当像素高速缓存1265c获取一个图像平面的数据,或者未命中寄存器MFF存储地址并且命中和未命中信息HMI表明“命中”时,未命中下命中寄存器HUMFF可以存储包括在请求REQ1中的地址。未命中下命中寄存器HUMFF可以包括多个触发器。
像素高速缓存1265c可以是非阻塞式高速缓存。如果请求REQ1被确定为“未命中”,则包括在请求REQ1中的地址可以存储在未命中寄存器MFF中。在地址存储在未命中寄存器MFF中之后,像素高速缓存1265c获取对应于所述地址的图像平面的数据并且同时接收下一个请求REQ1。在一个实施例中,未命中控制单元MCU可以基于存储在未命中寄存器MFF中的地址输出请求REQ2。
在由未命中控制单元MCU获取图像平面的数据的同时,可以处理下一个请求REQ1。如果下一个请求REQ1为“命中”,则包括在下一个请求REQ1中的地址可以存储在未命中下命中寄存器HUMFF中。如果下一个请求REQ1为“未命中”,则包括在下一个请求REQ1中的地址可以存储在未命中寄存器MFF中。可以由未命中控制单元MCU获取对应于存储在未命中寄存器MFF中的地址的图像平面的数据。可以从数据存储器DM输出与存储在未命中下命中寄存器HUMFF中的地址对应的图像平面的数据。
如果被确定为“未命中”的地址已经存储在未命中寄存器MFF中,则可以不另外把该地址再存储在未命中寄存器MFF中。可以由未命中比较器MCP来执行这样的确定。
图27是示出了操作图26中所示的像素高速缓存1265c的方法的流程图。参照图26和图27,在操作S510处,像素高速缓存1265c可以接收请求REQ1。
在操作S520处,确定请求REQ1是否为“命中”。如果所接收到的请求REQ1为“命中”,则在操作S540处,输出所请求的数据。如果所接收到的请求REQ1为“未命中”,则在操作S530处,获取所请求的数据并且接收下一个请求REQ1。可以同时执行获取所请求数据的操作和接收下一个请求REQ1的操作。
图28是更加详细地示出了操作图26中所示的像素高速缓存1265c的方法的流程图。参照图26和图28,在操作S620处,接收请求REQ1。
在操作S620处,确定请求REQ1是否为“命中”。如果请求REQ1为“未命中”,则在操作S625处,把所接收到的请求REQ1存储在未命中寄存器MFF中。随后执行操作S650。如果所接收到的请求REQ1为“命中”,则执行操作S630。
在操作S630处,确定“未命中下”条件是否存在。举例来说,确定在由先前的“未命中”导致的数据获取期间是否发生了“命中”。如果“未命中下”条件不存在,也就是说如果在未命中寄存器MFF中没有存储请求并且在没有获取图像平面的数据的情况下发生“命中”,则执行操作S635。在操作S635处,输出所请求的图像平面的数据。可以从数据存储器DM输出所请求的数据。举例来说,可以通过多路复用器单元MU2把请求REQ1传送到数据存储器DM,并且可以从数据存储器DM输出所请求的图像平面的数据。
如果“未命中下”条件存在,也就是说如果在未命中寄存器MFF中已存储了请求并且在获取图像平面的数据的同时发生“命中”,则在操作S640处把所接收到的请求REQ1存储在未命中下命中寄存器HUMFF中。
在操作S650处,确定是否正在获取图像平面的数据。如果正在获取图像平面的数据,则可以根据存储在未命中寄存器MFF或未命中下命中寄存器HUMFF中的请求来执行所述获取。因此,在不参照未命中寄存器MFF或未命中下命中寄存器HUMFF的情况下,在操作S610处执行下一个请求REQ1。
如果没有正在获取图像平面的数据,则可以根据存储在未命中寄存器MFF或未命中下命中寄存器HUMFF中的请求来执行所述获取。在操作S660处,确定所存储的请求序列是否存在。所述请求序列可以是已接收并且存储在未命中寄存器MFF或未命中下命中寄存器HUMFF中的请求的序列。所述请求序列可以包括关于所存储的请求的顺序的信息。所述请求序列可以由状态机SM管理。
如果所存储的请求序列不存在,则在未命中寄存器MFF或未命中下命中寄存器HUMFF中没有存储请求。因此,在不参照未命中寄存器MFF或未命中下命中寄存器HUMFF的情况下,在操作S610处对下一个请求REQ1进行处理。
如果所存储的请求序列存在,则在操作S670处确定当前请求序列是否对应于未命中下命中寄存器HUMFF。如果当前请求序列对应于未命中下命中寄存器HUMFF,则在操作S635处输出所请求的图像平面的数据。随后在操作S610处,对下一个请求进行处理。
如果当前请求序列不对应于未命中下命中寄存器HUMFF,则在操作S680处根据存储在未命中寄存器MFF中的请求开始获取。
只要像素高速缓存1265c被供电,就可以连续执行操作S610到S680。
可以通过操作S610到S640对所接收到的请求REQ1进行处理。“未命中”请求REQ1存储在未命中寄存器MFF中。“未命中下命中”请求REQ1存储在未命中下命中寄存器HUMFF中。“命中”请求REQ1导致输出图像平面的数据。即使接收到“未命中”请求REQ1,像素高速缓存1265c也可以把所接收到的请求REQ1存储在未命中寄存器MFF中,并且继续处理下一个请求。
通过操作S650到S680,对“未命中下”条件进行处理。当没有正在获取图像平面的数据时,将根据存储在未命中寄存器MFF或未命中下命中寄存器HUMFF中的请求序列来获取图像平面的数据。当对于单个图像平面的数据的获取完成时,执行对应于所述序列的下一个请求的图像平面的数据的获取。
也就是说,通过操作S610到S640,或者输出图像平面的数据,或者把请求REQ1存储在未命中寄存器MFF或未命中下命中寄存器HUMFF中。操作S610到S640可以对应于在使用未命中寄存器MFF或未命中下命中寄存器HUMFF作为缓冲器的同时实时地接收请求REQ1。
通过操作S650到S680,根据存储在未命中寄存器MFF或未命中下命中寄存器HUMFF中的请求获取图像平面的数据。输出所获取的图像平面的数据,并且从未命中寄存器MFF或未命中下命中寄存器HUMFF中删除与所获取的图像平面的数据相对应的请求。可以执行操作S650到S680以处理存储在未命中寄存器MFF或未命中下命中寄存器HUMFF中的请求,并且清空未命中寄存器MFF或未命中下命中寄存器HUMFF。
在图28中,操作S610到S680被作为单个方法执行。但是本发明构思的实施例不限于单一方法。在本发明构思的一个实施例中,操作S610到S640可以是处理所接收到的请求REQ1的一个方法,而操作S650到S680则可以是处理存储在寄存器中的请求的另一方法。这些方法可以被彼此独立地执行。
图29是根据本发明构思的另一个实施例的像素高速缓存1265d的框图。在一个实施例中,像素高速缓存1265d可以提供为分别在图5、图20、图24和图26中示出的像素高速缓存1265、1265a、1265b和1265c的组合。像素高速缓存1265d可以把图像平面的数据存储在行填充单元中。可以根据存储在特殊功能寄存器SFR中的尺寸信息SI来调节图像平面或行填充单元的尺寸。像素高速缓存1265d可以基于多重信息MI同时处理多个请求REQ1a和REQ1b。像素高速缓存1265d可以是非阻塞式高速缓存。
如图29中所示,可以组合分别在图5、图20、图24和图26中示出的像素高速缓存1265、1265a、1265b和1265c中的至少两个像素高速缓存。
在一个实施例中,如果像素高速缓存1265d设定为同时处理至少两个请求REQ1a和REQ1b,则图像平面或行填充单元的尺寸对于每一个请求可以是不同的。
图30是根据本发明构思的另一个实施例的像素高速缓存1265e的框图。与图29中的像素高速缓存1265d相比,像素高速缓存1265e还包括多路复用器单元MU5和MU6。多路复用器单元MU5和MU6可以响应于多重信息MI操作。
多重信息MI可以用来确定是否要激活未命中比较器MCP1b到MCPkb和未命中寄存器MFFb,以及是否要激活数据存储器DMb。在一个实施例中,如果停用数据存储器DMb,则可以把数据存储器DMb作为数据存储器DMa的一部分来管理。
尺寸控制单元SCU可以基于尺寸信息SI来管理像素高速缓存1265e的行填充单元的尺寸。在一个实施例中,可以把尺寸信息SI和多重信息MI提供到像素高速缓存1265e。存储尺寸信息SI和多重信息MI的特殊功能寄存器SFR可以处在像素高速缓存1265e的外部。
每一个未命中控制单元MCUa和MCUb包括与外部信道、读取状态机和多重运行控制单元通信的接口。读取状态机可以把读取请求REQ2a和REQ2b传送到图1中所示的主存储器1300。多重运行控制单元可以控制图像平面数据获取的周期。在一个实施例中,如果发生多次“未命中”,则可能需要多次图像平面数据获取。当在一个较短时间周期期间执行许多次图像平面数据获取时,在主存储器1300中会出现瓶颈效应。通过调节图像平面数据获取的周期或频率,多重运行控制单元允许主存储器1300避免所述瓶颈效应。
根据本发明构思的实施例,像素高速缓存利用包括至少两行和至少两列像素的图像平面来获取数据。因此提供了对空间上被局部化的图像的数据管理进行了优化的像素高速缓存、操作像素高速缓存的方法以及包括像素高速缓存的图像处理装置。
参照图像处理装置描述了本申请的发明构思。根据本发明构思的图像处理装置可以包括诸如图形处理单元GPU、视频编解码器、显示控制器、图像信号处理器ISP等各种图像处理硬件中的至少一种。即,根据本发明构思的像素高速缓存可以被提供为如GPU、视频编解码器、显示控制器、图像信号处理器ISP等各种图像处理硬件中的至少一种的一个元件。
前面公开的主题应被视为说明性而非限制性,并且所附权利要求书意图涵盖落在本发明构思的实质精神和范围内的所有此类修改、增强和其他实施例。因此,在法律所允许的最大程度上,本发明构思的范围应当由所附权利要求书及其等效表述的可允许的最广泛解释来决定,而不应当受到前面的详细描述的约束或限制。

Claims (21)

1.一种操作像素高速缓存的方法,所述像素高速缓存包括多个行填充单元并且配置成获取存储在主存储器中的图像,所述方法包括步骤:
从图像处理装置接收针对一个或更多图像平面的数据的请求;以及
如果针对至少一个图像平面的所述请求被确定为“命中”,则输出所述至少一个图像平面的所请求的数据,并且从所述主存储器获取被确定为未“命中”的至少一个其他图像平面的所请求的数据,
其中,对于所述一个或更多图像平面中的每一个图像平面,基于该图像平面的数据是否存储在所述多个行填充单元中的一个行填充单元中来确定“命中”,并且
其中,所述图像平面包括至少两行和至少两列的像素,并且具有与所述行填充单元的容量实质上相同的尺寸。
2.如权利要求1所述的操作像素高速缓存的方法,还包括步骤:
在接收所述请求之前,把存储在所述主存储器中的图像的一个图像平面的数据存储在所述多个行填充单元中的一个行填充单元中,
其中,存储在所述行填充单元中的图像平面的数据被输出到所述图像处理装置,
其中,所述行填充单元是在所述像素高速缓存中一次存储或输出的数据单位。
3.如权利要求1所述的操作像素高速缓存的方法,其中,存储在所述行填充单元中的图像平面的数据是从所述主存储器的至少两个部分获取的,所述主存储器中的所述至少两个部分的地址是不连续的,并且所述至少两个部分中的每一个部分具有所述主存储器中的至少两个连续地址。
4.如权利要求1所述的操作像素高速缓存的方法,还包括步骤:
输出所述至少一个其他图像平面的所获取的数据。
5.如权利要求1所述的操作像素高速缓存的方法,其中,接收所述请求的步骤包括从所述图像处理装置接收针对两个或更多图像平面的数据的请求。
6.如权利要求5所述的操作像素高速缓存的方法,
其中,所述请求包括与所述两个或更多图像平面有关的基准点的地址以及与所述基准点相距的水平宽度。
7.如权利要求5所述的操作像素高速缓存的方法,
其中,所述请求包括与所述两个或更多图像平面有关的基准点的地址以及与所述基准点相距的垂直长度。
8.如权利要求5所述的操作像素高速缓存的方法,
其中,所述请求包括与所述两个或更多图像平面有关的基准点的地址以及与所述基准点相距的水平宽度和垂直长度。
9.如权利要求5所述的操作像素高速缓存的方法,
其中,所述请求包括与所述两个或更多图像平面有关的第一基准点和第二基准点的地址。
10.如权利要求5所述的操作像素高速缓存的方法,其中,所述两个或更多所请求的图像平面在图像中是相邻的。
11.如权利要求2所述的操作像素高速缓存的方法,还包括步骤:
在存储所述数据的步骤之前,调节所述行填充单元的容量。
12.如权利要求2所述的操作像素高速缓存的方法,还包括步骤:
在存储所述数据的步骤之前,把所述多个行填充单元划分成第一行填充分组和第二行填充分组。
13.如权利要求12所述的操作像素高速缓存的方法,其中,存储所述数据的步骤包括:
把第一图像的第一图像平面的第一数据存储到所述第一行填充分组的第一行填充单元中;以及
把不同于所述第一图像的第二图像的第二图像平面的第二数据存储到所述第二行填充分组的第二行填充单元中,
其中,把所述第一数据存储到所述第一行填充单元中和把所述第二数据存储到所述第二行填充单元中被同时执行。
14.如权利要求1所述的操作像素高速缓存的方法,其中,如果针对第一图像平面的数据的请求被确定为未“命中”,则从所述主存储器获取所述第一图像平面的所请求的数据,并且同时从所述图像处理装置接收针对第二图像平面的数据的请求。
15.一种像素高速缓存,其包括:
数据存储器,其包括多个帧,每一个帧包括被配置成存储数据的多个行填充单元;
标签存储器,其包括分别对应于所述多个帧的多个标签帧,每一个标签帧包括分别与每一个帧的多个行填充单元对应的多个标签行;以及
未命中控制单元,其配置成请求存储在处于所述像素高速缓存外部的主存储器中的图像的一个图像平面的数据,
其中,从所述主存储器接收的图像平面的数据被存储在所述数据存储器的行填充单元中,从所述主存储器接收的图像平面的数据的地址信息被存储在所述标签存储器的标签行中,
所述行填充单元的容量对应于在所述像素高速缓存中一次存储或输出的图像数据的尺寸,并且
所述图像平面包括至少两行和至少两列的像素,并且具有与所述行填充单元的容量实质上相同的尺寸。
16.如权利要求15所述的像素高速缓存,还包括:
寄存器,其配置成存储关于所述行填充单元的容量的信息,其中,根据存储在所述寄存器中的信息来调节所述行填充单元的容量。
17.如权利要求16所述的像素高速缓存,
其中,如果将要增大所述行填充单元的容量,则对来自所述标签存储器的至少两个不同帧的至少两个行填充单元进行组合,以形成一个组合的行填充单元。
18.如权利要求15所述的像素高速缓存,还包括:
寄存器,其配置成存储关于同时处理的图像的数目的信息,
其中,所述未命中控制单元配置成从所述主存储器同时请求多个图像平面的数据,所述多个图像平面的数目与所述同时处理的图像的数目相对应。
19.如权利要求15所述的像素高速缓存,还包括:
命中和未命中确定单元,其配置成从图像处理装置接收针对第一图像平面的数据的请求,并且配置成通过搜索所述标签存储器来确定所述第一图像平面的所请求的数据是否存在于所述数据存储器中;以及
寄存器,其配置成存储被所述命中和未命中确定单元确定为“未命中”请求的请求,
其中,所述未命中控制单元配置成根据存储在所述寄存器中的未命中请求从所述主存储器请求第二图像平面的数据,并且
在把所述未命中请求存储在所述寄存器中之后,所述命中和未命中确定单元配置成接收针对下一个图像平面的数据的请求,并且确定所述下一个图像平面的所请求的数据是否存在于所述数据存储器中。
20.如权利要求19所述的像素高速缓存,还包括第二寄存器,其配置成在所述未命中控制单元向所述主存储器请求所述第二图像平面的数据的同时存储被所述命中和未命中确定单元确定为“命中”请求的请求。
21.一种图像处理装置,其包括:
像素高速缓存;以及
处理单元,其配置成从所述像素高速缓存请求一个图像平面的数据并且配置成对从所述像素高速缓存接收的所述图像平面的数据执行图像处理,
其中,所述像素高速缓存包括:
数据存储器,其包括多个帧,每一个帧包括被配置成存储数据的多个行填充单元;
标签存储器,其包括分别对应于所述多个帧的多个标签帧,每一个标签帧包括分别与每一个帧的多个行填充单元对应的多个标签行;以及
未命中控制单元,其配置成根据来自所述处理单元的请求从外部主存储器请求所述图像平面的数据,
其中,从所述主存储器接收的图像平面数据被存储在所述数据存储器的行填充单元中,并且从所述主存储器接收的所述图像平面的数据的地址信息被存储在所述标签存储器的标签行中,
所述行填充单元的容量对应于在所述像素高速缓存中一次存储或输出的图像数据的尺寸,并且
所述图像平面包括至少两行和至少两列的像素,并且具有与所述行填充单元的容量实质上相同的尺寸。
CN201410032809.2A 2013-01-24 2014-01-23 像素高速缓存、其操作方法和包括像素高速缓存的图像处理装置 Pending CN103971327A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2013-0008117 2013-01-24
KR1020130008117A KR20140095296A (ko) 2013-01-24 2013-01-24 픽셀 캐시 및 픽셀 캐시의 동작 방법

Publications (1)

Publication Number Publication Date
CN103971327A true CN103971327A (zh) 2014-08-06

Family

ID=50287493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410032809.2A Pending CN103971327A (zh) 2013-01-24 2014-01-23 像素高速缓存、其操作方法和包括像素高速缓存的图像处理装置

Country Status (5)

Country Link
US (1) US20140204108A1 (zh)
JP (1) JP2014142938A (zh)
KR (1) KR20140095296A (zh)
CN (1) CN103971327A (zh)
GB (1) GB2513216A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106997324A (zh) * 2015-12-14 2017-08-01 三星电子株式会社 非易失性存储器模块、具有其的计算系统及其操作方法
CN107154012A (zh) * 2016-03-04 2017-09-12 三星电子株式会社 图形处理器及其操作方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11170463B2 (en) * 2017-05-19 2021-11-09 Movidius Limited Methods, systems and apparatus to reduce memory latency when fetching pixel kernels
KR101952827B1 (ko) * 2018-06-29 2019-02-27 주식회사 맴레이 메모리 제어 장치 및 이를 포함하는 메모리 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999053402A1 (en) * 1998-04-09 1999-10-21 S3 Incorporated Non-stalled requesting texture cache system and method
US7050063B1 (en) * 1999-02-11 2006-05-23 Intel Corporation 3-D rendering texture caching scheme
CN101228513A (zh) * 2005-06-28 2008-07-23 微软公司 从慢检索存储装置中检索图形
US20090157963A1 (en) * 2007-12-17 2009-06-18 Toksvig Michael J M Contiguously packed data
CN101681502A (zh) * 2006-11-09 2010-03-24 高通股份有限公司 用于三维图形电路的像素高速媛冲存储器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999053402A1 (en) * 1998-04-09 1999-10-21 S3 Incorporated Non-stalled requesting texture cache system and method
US7050063B1 (en) * 1999-02-11 2006-05-23 Intel Corporation 3-D rendering texture caching scheme
CN101228513A (zh) * 2005-06-28 2008-07-23 微软公司 从慢检索存储装置中检索图形
CN101681502A (zh) * 2006-11-09 2010-03-24 高通股份有限公司 用于三维图形电路的像素高速媛冲存储器
US20090157963A1 (en) * 2007-12-17 2009-06-18 Toksvig Michael J M Contiguously packed data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106997324A (zh) * 2015-12-14 2017-08-01 三星电子株式会社 非易失性存储器模块、具有其的计算系统及其操作方法
CN107154012A (zh) * 2016-03-04 2017-09-12 三星电子株式会社 图形处理器及其操作方法

Also Published As

Publication number Publication date
US20140204108A1 (en) 2014-07-24
KR20140095296A (ko) 2014-08-01
JP2014142938A (ja) 2014-08-07
GB2513216A (en) 2014-10-22
GB201401195D0 (en) 2014-03-12

Similar Documents

Publication Publication Date Title
CN102870089B (zh) 将数据存储到虚拟高速存储系统中的系统和方法
US20140282520A1 (en) Provisioning virtual machines on a physical infrastructure
KR102147356B1 (ko) 캐시 메모리 시스템 및 그 동작방법
CN103971327A (zh) 像素高速缓存、其操作方法和包括像素高速缓存的图像处理装置
CN105320608A (zh) 用于控制存储器设备处理访问请求的存储器控制器和方法
US20120075333A1 (en) Method and system for improving application sharing by dynamic partitioning
KR20180087925A (ko) 논리 어드레스와 물리 어드레스 사이에서 해싱 기반 변환을 수행하는 스토리지 장치
KR20110077894A (ko) 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법
US8872839B2 (en) Real-time atlasing of graphics data
CN104160420A (zh) 在图形处理单元上执行图形和非图形应用
US10180803B2 (en) Intelligent memory architecture for increased efficiency
US20130047004A1 (en) Task scheduling method of a semiconductor device
CN106293953B9 (zh) 一种访问共享显示数据的方法及系统
CN103760525A (zh) 一种补齐式原地矩阵转置方法
CN109558250A (zh) 一种基于fpga的通信方法、设备、主机及异构加速系统
CN107250980A (zh) 具有图形和系统存储器冲突检查的计算方法和设备
US10754547B2 (en) Apparatus for managing disaggregated memory and method thereof
CN105874431A (zh) 减少数据交换负载的计算系统以及相关的数据交换方法
JP4683384B2 (ja) メモリ制御方法、グラフィックプロセッサおよび情報処理装置
CN113988306A (zh) 样例数据的处理方法、装置、设备和存储介质
CN103874988A (zh) 对高速缓存进行可编程分区
CN104050100B (zh) 一种适用于大数据环境的数据流存储管理方法及系统
CN102541808A (zh) Soc芯片系统及实现Soc芯片中可配置缓冲器的方法
CN116723317A (zh) Avs3模式决策电路、方法、设备及存储介质
CN105765536B (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140806