CN104025013B - 在线性存储格式和y瓦片化存储格式之间转置图像数据 - Google Patents
在线性存储格式和y瓦片化存储格式之间转置图像数据 Download PDFInfo
- Publication number
- CN104025013B CN104025013B CN201180076156.2A CN201180076156A CN104025013B CN 104025013 B CN104025013 B CN 104025013B CN 201180076156 A CN201180076156 A CN 201180076156A CN 104025013 B CN104025013 B CN 104025013B
- Authority
- CN
- China
- Prior art keywords
- memory
- destination
- source
- view data
- data
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/395—Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
- G09G5/397—Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2354/00—Aspects of interface with display user
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/12—Use of DVI or HDMI protocol in interfaces along the display data pipeline
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
描述了包括用于在线性型存储格式和Y瓦片化型存储格式之间转置图像数据的操作的系统、装置、制品和方法。
Description
背景
当前存在两种在系统存储器中的线性存储和视频存储器中的Y瓦片化(Y-tiled)二维(2D)表面存储之间进行复制的典型方法。第一种方法使用中央处理单元(CPU)来进行复制,这通常偏好线性存储次序。第二种方法使用图形处理单元(GPU)来进行复制,这通常偏好Y瓦片化存储次序。
例如,图形硬件常常可以在视频存储器中使用Y瓦片化2D表面存储格式以便实现快速GPU访问。可以在系统存储器和视频存储中的Y瓦片化表面之间复制图像数据。
附图简述
在附图中作为示例而非限制阐释在此描述的材料。出于阐释的简单和清晰起见,并不必定按比例绘制各图中所阐释的元素。例如,为清晰起见,相对于其他元素,可以放大一些元素的尺寸。进一步,在认为合适时,在各图当中已经重复引用标签以指示相应的或类似的元素。附图中:
图1是示例图形处理系统的示意图;
图2是示例转置(transpose)过程的示意图;
图3是另一示例转置过程的示意图;
图4是进一步的示例转置过程的示意图;
图5是阐释示例转置过程的流程图;
图6是操作中的示例图形处理系统的示意图;
图7是示例系统的示意图;以及
图8是均根据本公开内容的至少一些实现布置的示例系统的示意图。
详细描述
现在参考附图描述一个或多个实施例或实现。尽管讨论了特定的配置和布置,但应理解,仅出于说明性目的而这样做。相关领域中的技术人员将认识到,可以在不偏离本描述的精神和范围的前提下采用其他配置和布置。相关领域中的技术人员将明显看出,在不同于在此描述的各种其他系统和应用中也可以采用在此描述的技术和/或布置。
虽然下面的描述中阐述了可以在诸如例如片上系统(SoC)体系结构的体系结构中表现各种实现,但本文所描述的技术和/或布置的实现并不限于特定的结构和/或计算系统,并且可以由用于类似目的的任何结构和/或计算系统实现。举例来说,采用例如多个集成电路(IC)芯片和/或封装和/或诸如机顶盒、智能电话等等的各种计算设备和/或消费性电子(CE)设备的各种体系结构,可以实现在此描述的技术和/或布置。进一步,尽管下列的描述可以陈述众多特定的细节,例如逻辑实现、系统组件的类型和相互关系、逻辑划分/集成选择等等,但无需这样的特定细节就可以实践所要求保护的本主题。在其他实例中,可以不详细示出诸如例如控制结构和完全软件指令序列等的一些材料,以便不模糊在此公开的材料。
在此公开的材料可以以硬件、固件、软件或其任何组合实现。在此公开的材料也可以被实现为存储在机器可读介质上的可以由一个或多个处理器读取和执行的指令。机器可读介质可以包括用于存储或传输以机器(例如,计算设备)可读的形式的信息的任何介质和/或机制。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪速存储器设备;电、光、声或其他形式的所传播的信号(例如,载波、红外信号、数字信号等等)以及其他。
本说明书中对“一个实现”、“一种实现”、“一个示例实现”等等的引用指示所描述的实现可以包括具体的特征、结构或特性,但每一实现并不必定包括该具体的特征、结构或特性。此外,这样的短语并不必定指代相同的实现。进一步,在结合一种实现描述具体的特征、结构或特性时,应当认为,无论在此是否明确描述,这是在本领域的技术人员结合其他实现来实施这样的特征、结构或特性的知识范围内。
如下面更详细地描述的,一些示例实现可以包括在线性型(1inear-type)存储格式和Y瓦片化型(Y-tiled-type)存储格式之间转置图像数据的操作。另外,从源存储器读取图像数据可以是以适用于与源存储器相关联的具体存储格式的模式进行的。类似地,把图像数据写入到目的地可以是以适用于与目的地存储器相关联的具体存储格式的模式进行的。
图1是根据本公开内容的至少一些实现布置的图形处理系统100的示意图。在所阐释的实现中,图形处理系统100可以包括中央处理单元(CPU)102、图形处理单元(GPU)102、系统存储器112、视频存储器114和/或转置模块120。
在一些示例中,图形处理系统100可以包括出于清晰起见在图1中没有示出的附加项。例如,图形处理系统100可以包括射频型(RF)收发器和/或天线。进一步,图形处理系统100可以包括出于清晰起见在图1中没有示出的诸如扬声器、显示器、加速度计、存储器、路由器、网络接口逻辑等等的附加项。
在一些示例中,系统存储器112可以被配置为以线性型存储格式把图像数据存储为存储器块(memory chunk)113。这样的线性型存储格式可以适于由CPU102使用。类似地,视频存储器114可以被配置为以Y瓦片化型存储格式把图像数据存储为Y瓦片化表面115。这样的Y瓦片化型存储格式可以适于由GPU104使用。
在一些示例中,转置模块120可以包括矩阵模块122和矢量模块124。在操作中,CPU102和GPU104中的一个可以操作用于从视频存储器114读取图像数据并把图像数据写入到系统存储器112。这样的读取可以包括经由矩阵模块124(例如,经由适用于视频存储器114的矩阵模式)以Y瓦片化型存储格式读取图像数据。类似地,这样的把图像数据写入到系统存储器112可以包括经由矢量模块122(例如,经由适用于系统存储器112的矢量模式)以线性型存储格式写入图像数据。另外或替代地,可以与从系统存储器112读取图像数据并把图像数据写入到视频存储器114相反地执行相似操作。
正如所阐释的,图像130可以以Y瓦片化型存储格式或线性型存储格式存储。图1中的OWORD132的次序表示具体格式的存储次序(例如,由“Y”字表示的Y瓦片化型存储格式,或者由“L”字表示的线性型存储格式)。例如,相同的图像数据可以与相同的网格位置相关联而不用管格式化,然而,Y瓦片化型存储格式需要一种访问次序,而线性型存储格式需要另一种访问次序。举例来说,按列次序组织Y瓦片化型存储格式OWORD(例如,YOW0、YOW1、YOW2、YOW3等等),而按行次序组织线性型存储格式OWORD(例如,LOW0、LOW1、LOW2、LOW3等等)。
例如,在Y瓦片化表面存储格式中,瓦片(tile)可以具有固定的4KB尺寸,且可以对准物理动态随机存取存储器(DRAM)页面边界。4KB瓦片可以被分成用于Y优先瓦片(Y-MaiorTile)的32高×8宽OWORD阵列。对于Y瓦片化型存储格式,可以按按行优先次序把4KB瓦片顺序地存储在存储器中。
图2是根据本公开内容的至少一些实现布置的示例转置过程200的示意图。在所阐释的实现中,经由CPU(未示出),过程200可能在没有转置操作的情况下从Y瓦片化复制到线性存储格式。虚线203指示用于源存储器202的复制的CPU访问次序。类似地,虚线205指示用于写入到目的地存储器204的CPU访问次序。
在操作中,过程200可以针对源存储器202中的高速缓存线(YOW0、YOW1、YOW2、YOW3)以Y瓦片化型存储格式来操作。类似地,过程200可以执行8次总共64字节高速缓存线访问206,例如,高速缓存线(YOW0、YOW1、YOW2、YOW3)、高速缓存线(YOW32、YOW33、YOW34、YOW35),直至且包括高速缓存线(YOW224、YOW225、YOW226、YOW227)。此时,过程200可以以线性型存储格式针对高速缓存线(LOW0、LOW1、LOW2、LOW3)访问相同的图像数据,以便传输到目的地存储器204。类似地,过程200可以执行2次总共64字节高速缓存线访问208,例如,高速缓存线(LOW0、LOW1、LOW2、LOW3)和高速缓存线(LOW4、LOW5、LOW6、LOW7)。
在这样的实现中,过程200可以操作以使得在源侧不使用每一高速缓存线206的部分210,引起大量浪费(例如,浪费了百分之七十五,且仅使用百分之二十五)。
图3是根据本公开内容的至少一些实现布置的另一示例转置过程300的示意图。在所阐释的实现中,经由GPU(未示出),过程300可能在没有转置操作的情况下从Y瓦片化复制到线性存储格式。虚线303指示用于源存储器302的复制的GPU访问次序。类似地,虚线305指示用于写入到目的地存储器304的GPU访问次序。
在操作中,在操作中,过程300可以针对源存储器302中的高速缓存线(YOW0、YOW1、YOW2、YOW3)以Y瓦片化型存储格式来操作。类似地,过程300可以执行4次总共64字节高速缓存线访问306,例如,高速缓存线(YOW0、YOW1、YOW2、YOW3)、高速缓存线(YOW4、YOW5、YOW6、YOW7),直至且包括高速缓存线(YOW36、YOW37、YOW38、YOW39)。此时,过程300可以以线性型存储格式针对高速缓存线(LOW0、LOW1、LOW2、LOW3)访问的相同的图像数据,以便传输到目的地存储器304。类似地,过程300可以执行8次总共64字节高速缓存线访问308,例如,高速缓存线(LOW0、LOW1、LOW2、LOW3)、高速缓存线(LOW8、LOW9、LOW10、LOW11),直至且包括高速缓存线(LOW56、LOW57、LOW58、LOW59),每个两次。
在这样的实现中,过程300可以操作以使得在源侧不使用每一高速缓存线308的部分310,引起大量浪费(例如,浪费了百分之七十五,且仅使用百分之二十五)。
图4是根据本公开内容的至少一些实现布置的进一步的示例转置过程400的示意图。在所阐释的实现中,过程400可以包括从源存储器402读取图像数据以及把图像数据写入到目的地存储器404。这样的读取可以包括经由适用于源存储器402(例如参见图1的视频存储器114)的矩阵模式403以Y瓦片化型存储格式读取图像数据。这样的把图像数据写入到目的地存储器404(例如参见图1的系统存储器112)可以包括经由适用于目的地存储器的矢量模式405以线性型存储格式写入图像数据。
在这样的实现中,从源存储器402读取图像数据可以包括把图像数据从源存储器402的四个相邻数据块读取到高速缓存406的十六个高速缓存线。例如,每一数据块可以包括八行三十二字节的图像数据且与矩阵模式403相关联。另外,转置可以包括把矩阵模式403转置成适用于目的地存储器404的矢量模式405。进一步,把图像数据写入到目的地存储器404可以包括把图像数据从高速缓存406的十六条高速缓存线写入到目的地存储器404的八条相邻数据线,其中每一数据线可以包括一行一百二十八字节的图像数据且与矢量模式405相关联。
在所阐释的示例中,通过使用转置过程400,GPU(未示出)可以从Y瓦片化复制到线性存储格式。虚线403指示用于源存储器402的复制的GPU访问次序。类似地,虚线405指示用于写入到目的地存储器404的GPU访问次序。
在操作中,过程400可以针对源存储器402中的高速缓存线(YOW0、YOW1、YOW2、YOW3)以Y瓦片化型存储格式来操作。类似地,过程400可以执行16次总共64字节高速缓存线访问406,例如,高速缓存线(YOW0、YOW1、YOW2、YOW3)、高速缓存线(YOW4、YOW5、YOW6、YOW7),直至且包括高速缓存线(YOW228、YOW229、YOW230、YOW231)。此时,可以应用转置操作。在转置之后,过程400可以经由线性型存储格式针对高速缓存线(LOW0、LOW1、LOW2、LOW3)访问相同的图像数据,以便传输到目的地存储器404。类似地,过程400可以执行16次总共64字节高速缓存线访问408,例如,高速缓存线(LOW0、LOW1、LOW2、LOW3),高速缓存线(LOW8、LOW9、LOW10、LOW11),直至且包括高速缓存线(OW60、OW61、OW62、OW63)。在这样的实现中,过程400可以操作以使得在源侧和目的地侧两者使用每一高速缓存线中的百分之百,从而导致零浪费。
在一个示例中,过程400可以把四个CM型(C用于介质(C-for-Media))矩阵(例如,其中每一矩阵大小为8*32字节)转置成八个CM型矢量(例如,其中每一矢量大小为128字节)。在这样的示例中,视频存储器中的每一瓦片可以被分割成16个数据块(例如,其中每一数据块大小为8*32字节),且通过使用CM介质分块读取可以把每一数据块读取到CM型矩阵(例如,大小为8*32字节)中的一个。一行中的四个数据块(例如,四个CM型矩阵)大小可以是8*128字节,且可以被表示为八个CM矢量)(例如,大小为128字节)。通过使用CM OWORD分块写入,可以把这八个矢量写入到高速缓存(例如,经由CmBufferUP)。最终,第一行中的四个数据块(例如,四个CM型矩阵)可以被转置成八个CM矢量)(例如,大小为128字节)。
下面是这样的转置算法的一个示例。由于CM矩阵和CM矢量可以被存储在寄存器中,因此在它们之间转置可以非常快:
//第一矢量的第一批32字节(例如,LOW0和LOW1)等于第一矩阵的第一行(例如,YOW0和YOW32);第一矢量的第二批32字节(例如,LOW2和LOW3)等于第二矩阵的第一行(例如,YOW64和YOW96);第一矢量的第三批32字节(例如,LOW4和LOW5)等于第三矩阵的第一行(例如,YOW128和YOW160);第一矢量的第四批32字节(例如,LOW6和LOW7)等于第四矩阵的第一行(例如,YOW192和YOW224):Vector0[0…31]=Matrix0[0];Vector0[32…63]=Matrixl[0];Vector0[64…95]=Matrix2[0];Vector0[96…127]=Matrix3[0];…
//第二矢量的第一批32字节(例如,LOW8和LOW9)等于第一矩阵的第二行(例如,YOW1和YOW33);第二矢量的第二批32字节(例如,LOW10和LOW11)等于第二矩阵的第二行(例如,YOW65和YOW97);第二矢量的第三批32字节(例如,LOW12和LOW13)等于第三矩阵的第二行(例如,YOW129和YOW161);第二矢量的第四批32字节(例如,LOW14和LOW15)等于第四矩阵的第二行(例如,YOW193和YOW225):Vectorl[0…31]=Matrix0[1];Vectorl[32…63]=Matrixl[1];Vectorl[64…95]=Matrix2[1];Vectorl[96…127]=Matrix3[1];…
//第七矢量的第一批32字节(例如,LOW56和LOW57)等于第一矩阵的第七行(例如,YOW7和YOW39);第七矢量的第二批32字节(例如,LOW58和LOW59)等于第二矩阵的第七行(例如,YOW71和YOW103);第七矢量的第三批32字节(例如,LOW60和LOW61)等于第三矩阵的第七行(例如,YOW135和YOW167);第七矢量的第四批32字节(例如,LOW62和LOW63)等于第四矩阵的第七行(例如,YOW199和YOW231):Vector7[0…31]=Matrix0[7];Vector7[32…63]=Matrixl[7];Vector7[64…95]=Matrix2[7];Vector7[96…127]=Matrix3[7];等等。
在操作中,在视频存储器侧上,需要使得每一OWORD(例如,“Y”OWORD)进入到高速缓存一次。例如,在视频存储器侧中,可以使用一个介质块读取来把大小为8*32字节的数据块从源(例如,CmSurface2D)读取到矩阵(例如,大小为8*32字节的CM矩阵)。使用左上角的数据块410作为示例,要读取的数据是用于第一矩阵410的YOW0、YOW1…YOW7,YOW32、YOW33…YOW39。由于在这里的次序是存储次序,因此这些数据精确地适合四个64字节高速缓存线406。结果,四个数据块精确地适合16条高速缓存线406。
关于系统存储器侧,一个OWORD块写入可以被用来把矢量(例如,大小为128字节的CM矢量)写入到目的地(例如,CmBufferUP)。使用顶部矢量412作为示例,要写入的数据是LOW0、LOW1、LOW2…LOW7。由于在这里次序是存储次序,这些数据精确地适合两个64字节高速缓存线408。结果,八个矢量精确地适合16条高速缓存线408。
执行比较过程200(例如参见图2)、过程300(例如参见图3)和过程400的实验。如以上所描述的,过程400在从复制源读取的数据和写入到复制目的地的数据之间引入转置操作。源和目的地可以具有不同的数据存储格式(例如,一种是Y瓦片化且另一种是线性)。偏好一个存储格式的访问模式可能不偏好另一存储格式。结果,没有转置的直接复制(例如,正如过程200(例如参见图2)和/或过程300(例如参见图3)所阐释的)可以引起冗余数据访问。对于过程400,源和目的地两者中的数据访问可以适合高速缓存线,从而消除了冗余数据访问。
比较下列设置:流送SIMD扩展(SSE)加速的CPU复制执行图2的过程200,没有转置的普通GPU复制执行图3的过程300,以及Sandy Bridge(沙桥)GT1型处理器执行图4的过程400,均复制1920*1290*RGBA(红绿蓝α)格式的高清图像。在实验中,过程400达成双向的8.5GB每秒的传输率(例如,由于每次复制涉及读和写两者,因而实现17GB每秒带宽),这非常接近大约20GB每秒(例如,对于1333Mhz双倍数据率类型的三同步动态随机存取存储器(DDR3)双通道存储器)的存储器带宽极限。相反地,过程200达成2.4GB每秒的传输率。类似地,过程300实现2.4GB每秒的传输率。
在另一种实现中(未例示),从源存储器读取图像数据可以包括经由适用于源存储器的矢量模式以线性型存储格式读取图像数据,而把图像数据写入到目的地存储器可以包括经由适用于目的地存储器的矩阵模式以Y瓦片化型存储格式写入图像数据。在这样的实现中,从源存储器读取图像数据可以包括把图像数据从源存储器的八条相邻数据线读取到高速缓存406的十六条高速缓存线,其中每一数据线可以包括一行一百二十八字节的图像数据且与矢量模式相关联。另外,转置可以包括把矢量模式转置成适用于目的地存储器的矩阵模式。进一步,把图像数据写入到目的地存储器包括把图像数据从高速缓存的十六条高速缓存线写入到目的地存储器的四个相邻数据块,其中每一数据块包括八行三十二字节的图像数据且与矩阵模式相关联。可以从以上在图4中所描述的操作导出用于这一相反方向(例如,从线性型存储格式到Y瓦片化型存储格式)的复制的转置过程400。由于在系统存储器侧和视频存储器侧两者中所有数据访问都适合于高速缓存线,因此避免了冗余访问。
在操作中,过程400可以操作以使得可以在从源存储器402读取图像数据期间执行对高速缓存406的多次高速缓存线源访问。在这样的示例中,在把图像数据写入到目的地存储器404期间可以利用与高速缓存线源访问相关联的所有空间。另外或替代地,过程400可以操作以使得可以在把图像数据写入到目的地存储器404期间执行对高速缓存406的多次高速缓存线目的地访问。在这样的示例中,在把图像数据写入到目的地存储器404期间可以利用与高速缓存线目的地访问相关联的所有空间。
在下面参照图5和/或图6更详细地讨论的实现的一个或多个示例中,可以阐释与过程400相关的一些附加的和/或替代的细节。
图5是阐释根据本公开内容的至少一些实现布置的示例转置过程500的流程图。在所阐释的实现中,过程500可以包括正如由框502、504和/或506中的一个或多个所阐释的一种或多种操作、功能或动作。作为非限制性示例,在此将参考图1的示例图形处理系统100描述过程500。
过程500可以在框502开始,“以源存储格式读取图像数据”,其中可以以源存储格式读取图像数据。例如,可以从源存储器读取图像数据,其中源存储器具有源存储格式。在一些实现中,源存储器可以具有线性型存储格式。在其他实现中,源存储器可以具有Y瓦片化型存储格式。如下面将更详细地描述的,源存储器的读取可以是以适用于源存储器的模式进行的。
处理可以从操作502继续到操作504,“把图像数据从源存储格式转置成目的地存储格式”,其中可以把图像数据从源存储格式转置成目的地存储格式。例如,可以把图像数据从源存储格式转置成不同于源存储格式的目的地存储格式。在一些实现中,源存储格式和目的地存储格式中的一个可以具有线性型存储格式,而源存储格式和目的地存储格式中的另一个可以具有Y瓦片化型存储格式。
处理可以从操作504继续到操作506,“以目的地存储格式写入图像数据”,其中可以把图像数据写入到目的地存储器。例如,可以把图像数据写入到目的地存储器,其中目的地存储器可以具有目的地存储格式。如下面将更详细地描述的,对目的地存储器的写入可以是以适用于目的地存储器的格式进行的。
在下面参照或图6更详细地讨论的实现的一个或多个示例中,可以阐释与过程500相关的一些附加的和/或替代的细节。
图6是根据本公开内容的至少一些实现布置的在操作中的示例图形处理系统100和转置过程600的示意图。在所阐释的实现中,过程600可以包括正如由动作610、612、614、616和/或618中的一个或多个所例示的一个或多个操作、功能或动作。作为非限制性示例,过程600在此将参考图1的示例图形处理系统100描述。
在所阐释的示例中,图形处理系统100可以包括GPU104、转置模块120、源存储器402(例如参见图1的系统存储器112或视频存储器114)、目的地存储器404(例如参见图1的系统存储器112或视频存储器114)、高速缓存406和/或类似物。正如所例示的,GPU104能够与源存储器402、目的地存储器404和/或高速缓存406通信。尽管如图6中所示出的图形处理系统100可以包括与具体模块相关联的一组具体的框或动作,但这些框或动作可以与不同于在这里例示的具体模块的模块相关联。
过程600可以在框610开始。“读取图像数据”,其中可以以源存储格式读取图像数据。例如,可以经由GPU104从源存储器402读取图像数据,其中源存储器402可以具有源存储格式。在一些实现中,源存储器402可以具有线性型存储格式。在其他实现中,源存储器402可以具有Y瓦片化型存储格式。如下面将更详细地描述的,对源存储器402的读取可以是以适用于源存储器402的模式进行的。
在一种实现中,从源存储器402读取图像数据可以包括经由适用于源存储器402的矩阵模式以Y瓦片化型存储格式读取图像数据。
在另一种实现中,从源存储器402读取图像数据可以包括经由适用于源存储器402的矢量模式以线性型存储格式读取图像数据。
处理可以从操作610继续到操作612,“高速缓存的源访问”,其中可以访问高速缓存406。例如,GPU104可以访问高速缓存406以便存储从源存储器402读取的图像数据。
在一种实现中,从源存储器402读取图像数据可以包括据经由适用于源存储器402的矩阵模式以Y瓦片化型存储格式读取图像数。在这样的实现中,从源存储器402读取图像数据可以包括把图像数据从源存储器402的四个相邻数据块读取到高速缓存406的十六条高速缓存线,其中每一数据块可以包括八行三十二字节的图像数据且与矩阵模式相关联。
在另一种实现中,从源存储器402读取图像数据可以包括经由适用于源存储器402的矢量模式以线性型存储格式读取图像数据。在这样的实现中,从源存储器402读取图像数据可以包括把图像数据从源存储器402的八个相邻数据线读取到高速缓存406的十六条高速缓存线,其中每一数据线可以包括一行一百二十八字节的图像数据且与矢量模式相关联。
处理可以从操作612继续到操作614,“转置”,其中可以把图像数据从源存储格式转置成目的地存储格式。例如,经由转置模块120,可以把图像数据从源存储格式转置成不同于源存储格式的目的地存储格式。在一些实现中,源存储格式和目的地存储格式中的一个可以具有线性型存储格式,而源存储格式和目的地存储格式中的另一个可以具有Y瓦片化型存储格式。
在一种实现中,从源存储器402读取图像数据可以包括经由适用于源存储器402的矩阵模式以Y瓦片化型存储格式读取图像数据,而把图像数据写入到目的地存储器404可以包括以线性型存储格式写入图像数据。在这样的实现中,转置可以包括把矩阵模式转置成适用于目的地存储器404的矢量模式。
在另一种实现中,从源存储器402读取图像数据可以包括经由适用于源存储器402的矢量模式以线性型存储格式读取图像数据。在这样的实现中,转置可以包括把矢量模式转置成适用于目的地存储器的矩阵模式404。
处理可以从操作614继续到操作616,“高速缓存的目的地访问”,其中可以访问高速缓存406。例如,GPU104可以访问高速缓存406以便从高速缓存406检索图像数据,用于写入到目的地存储器404。
在一种实现中,从源存储器402读取图像数据可以包括经由适用于源存储器402的矩阵模式以Y瓦片化型存储格式读取图像数据,而把图像数据写入到目的地存储器404可以包括经由适用于目的地存储器的矢量模式以线性型存储格式写入图像数据。在这样的实现中,把图像数据写入到目的地存储器404可以包括把图像数据从高速缓存406的十六条高速缓存线写入到目的地存储器404的八条相邻数据线,其中每一数据线可以包括一行一百二十八字节的图像数据且与矢量模式相关联。
在另一种实现中,从源存储器402读取图像数据可以包括经由适用于源存储器402的矢量模式以线性型存储格式读取图像数据,而把图像数据写入到目的地存储器404可以包括经由适用于目的地存储器404的矩阵模式以Y瓦片化型存储格式写入图像数据。在这样的实现中,把图像数据写入到目的地存储器404包括把图像数据从高速缓存406的十六条高速缓存线写入到目的地存储器404的四个相邻数据块,其中,每一数据块包括八行三十二字节的图像数据且与矩阵模式相关联。
处理可以从操作616继续到操作618,“写入图像数据”,其中可以把图像数据写入到目的地存储器404。例如,可以经由GPU104把图像数据写入到目的地存储器404,其中目的地存储器404可以具有目的地存储格式。如下面将更详细地描述的,对目的地存储器404的写入可以是以适用于目的地存储器404的模式进行的。
在一种实现中,从源存储器402读取图像数据可以包括经由适用于源存储器402的矩阵模式以Y瓦片化型存储格式读取图像数据,而把图像数据写入到目的地存储器404可以包括经由适用于目的地存储器404的矢量模式以线性型存储格式写入图像数据。
在另一种实现中,从源存储器402读取图像数据可以包括经由适用于源存储器402的矢量模式以线性型存储格式读取图像数据,而把图像数据写入到目的地存储器404可以包括经由适用于目的地存储器404的矩阵模式以Y瓦片化型存储格式写入图像数据。
在一些示例实现中,源存储器402和目的地存储器404可以共享相同的物理存储设备。
在操作中,过程600(和/或过程500或过程400)可以操作以使得可以在从源存储器402读取图像数据期间执行对高速缓存406的多次高速缓存线源访问。在这样的示例中,在把图像数据写入到目的地存储器404期间可以利用与高速缓存线源访问相关联的所有空间。另外或替代地,过程600(和/或过程500)可以操作以使得可以在把图像数据写入到目的地存储器404期间执行对高速缓存406的多次高速缓存线目的地访问。在这样的示例中,在把图像数据写入到目的地存储器404期间可以利用与高速缓存线目的地访问相关联的所有空间。在上面的图4的讨论中可以找到关于这样的操作的附加细节。
在一些实现中,可以利用CM(C用于介质)执行框架来实现过程600(和/或过程500或过程400)。CM应用可以具有两个组件:内核和主控(host)程序。内核可以由CM编译器离线编译以便产生中间表示(IR)二进制。主控程序可以调用CM运行时应用编程接口(API)来创建内核的输入/输出面,调用准实时(Just-In-Time)编译器来获得Gen(例如,英特尔品牌GPU)二进制,并通过CM运行时把它连同由应用指定的内核自变量传送给驱动器。驱动器可以准备命令缓冲器和分批缓冲器(batch buffer),并提交命令缓冲器和分批缓冲器以供GPU执行。
这样的CM内核函数通常可以从一个或多个输入表面读取并向一个或多个输出表面写入。例如,CM通常支持视频存储器中的2D型表面(CmSurface2D),其是Y瓦片化存储格式的。CM内核可以通过表面索引并使用介质块读取/写入来访问CmSurface2D。CM也可以支持视频存储器中的缓冲器表面(CmBuffer),其可以是线性存储格式的。CM内核可以通过表面索引并使用OWORD块读取/写入和DWORD分散(scatter)读取/写入来自访问CmBuffer。
鉴于视频存储器和系统存储器共享图形硬件中的相同的物理内存的事实,CM也可以支持可以根据用户提供的系统存储器创建的另一类型的缓冲器表面(CmBufferUP)。CmBufferUP和相应的系统存储器实际上可以是指相同的物理存储器。可以由CM内核通过表面索引和使用OWORD块读取/写入以及DWORD分散读取/写入来访问CmBufferUP。可以由主控程序通过存储器指针来访问相应的系统存储器。鉴于这些两种类型的表面,使用GPU来在CmSuface2D和CmBufferUP之间复制,可以实现在Y瓦片化2D表面和系统存储器之间的复制。在一些示例中,过程600(和/或过程500或过程400)可以利用GPU104复制内核,其可以利用CM转置函数来免除对图像数据的冗余访问。为了复制整个表面,这样的GPU复制内核可以仅需要访问每个OWORD一次。
尽管正如图5和图6中所阐释的示例过程500和600的实现可以包括采取按所阐释的次序示出的所有框,但本公开内容不限于此,并且在各种示例中,过程500和600的实现可以包括仅采用所示出的框的子集和/或按照不同于所阐释的次序。
另外,可以响应于由一个或多个计算机程序产品提供的指令采取图5和图6中的各框中的任何一个或多个。这样的程序产品可以包括提供指令的信号承载介质,当指令例如由处理器执行时,可以提供在此描述的功能性。可以以任何形式的计算机可读介质提供计算机程序产品。因而,例如,响应于由计算机可读介质传输给处理器的指令,包括一个或多个处理器核心的处理器可以采取图7和图8中所示出的各框中的一个或多个。
如在此描述的任何实现中所使用的,术语“模块”是指被配置为提供在此描述的功能性的软件、固件和/或硬件的任何组合。软件可以被实现为软件包、代码和/或指令集或指令,并且,在此描述的任何实现中所使用的“硬件”可以包括例如分别包括或者以任何组合包括硬布线电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。各模块可以共同地或个体地被实现为形成更大系统的部分的电路,例如,集成电路(IC)、片上系统(SoC)等等。
图7阐释根据本公开内容的示例系统700。在各种实现中,系统700可以是媒体系统,但系统700不限于这种上下文。例如,系统700可以被合并到个人计算机(PC)、膝上型计算机、超膝上型计算机(ultra-laptop computer)、平板、触控板、便携式计算机、手持式计算机、掌上计算机、个人数字助理(PDA)、蜂窝式电话、组合蜂窝式电话/PDA、电视、智能设备(例如、智能电话、智能平板或智能电视)、移动因特网设备(MID)、消息接发设备、数据通信设备等等。
在各种实现中,系统700包括耦合到显示器720的平台702。平台702可以接收来自诸如内容服务设备730或内容传输设备740或其他类似内容源等的内容设备的内容。包括一个或多个导航部件的导航控制器750可以被用来与例如平台702和/或显示器720交互。下面更详细地描述这些组件中的每一种。
在各种实现中,平台702可以包括芯片组705、处理器710、存储器712、存储714、图形子系统715、应用716和/或无线电718的任何组合。芯片组705可以提供在处理器710、存储器712、存储714、图形子系统715、应用716和/或无线电718当中的相互通信。例如,芯片组705可以包括能够提供与存储714的相互通信的存储适配器(未描绘)。
处理器710可以被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器;兼容x86指令集的处理器、多核心或任何其他微处理器或中央处理单元(CPU)。在各种实现中,处理器710可以是双核处理器、双核心移动处理器等等。
存储器712可以被实现为易失性存储器设备,例如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
存储714可以被实现为非易失性存储设备,例如但不限于磁盘驱动器、光盘驱动器、磁带驱动、内部存储设备、附加存储设备、闪速存储器、电池供电的SDRAM(同步DRAM)和/或网络可访问存储设备。在各种实现中,例如在包括多个硬盘驱动器时,存储714可以包括增加对有价值的数字媒体的存储性能增强的保护的技术。
图形子系统715可以执行例如用于显示静态或视频的图像的处理。例如,图形子系统715可以是图形处理单元(GPU)、协同处理单元(SPU)或视觉处理单元(VPU)。模拟接口或数字接口可以被用来通信上耦合图形子系统715和显示器520。例如,该接口可以是高清多媒体接口、DisplayPort(显示端口)、无线HDMI和/或兼容无线HD的技术中的任何。图形子系统715可以被集成到处理器710或芯片组705中。在一些实现中,图形子系统715可以是通信耦合到芯片组705的独立卡。
可以在各种硬件体系结构中实现在此描述的图形和/或视频处理技术。例如,图形和/或视频功能性可以被集成在芯片组内。替代地,可以使用分离的图形和/或视频处理器。作为再一种实现,可以由包括多核心处理器的通用处理器提供图形和/或视频功能。在进一步的实施例中,可以在消费性电子设备中实现各功能。
无线电718可以包括能够使用各种合适的无线通信技术传送和接收信号的一个或多个无线电。这样的技术可以涉及跨越一个或多个无线网络通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝式网络和卫星网络。在跨越这样的网络通信时,无线电718可以根据任何版本的一种或多种适用标准操作。
在各种实现中,显示器720可以包括任何电视型监视器或显示器。显示器720可以包括例如计算机显示器屏幕、触摸屏幕显示器、视频监视器、类似电视的设备和/或电视。显示器720可以是数字显示器和/或模拟显示器。在各种实现中,显示器720可以是全息显示器。而且,显示器720可以是可以接收可视投影的透明表面。这样的投影可以表达各种形式的信息、图像和/或对象。例如,这样的投影可以是移动增强现实(MAR)应用的可视覆盖。在个或多个软件应用716的控制下,平台702可以在显示器720上显示用户界面722。
在各种实现中,内容服务设备730可以由任何国家、国际和/或独立的服务主存,且因而可由平台702例如经由因特网访问。内容服务设备730可以耦合到平台702和/或显示器720。平台702和/或内容服务设备730可以耦合到网络760,以便向网络760或从其传输(例如,发送和/或接收)媒体信息。内容传输设备740也可以耦合到平台702和/或显示器720。
在各种实现中,内容服务设备730可以包括有线电视盒、个人计算机、网络、电话、因特网启用的设备或能够传输数字信息和/或内容的电器,以及能够经由网络760或直接地在内容提供商和平台702和/显示器720之间单向地或双向地传输内容的任何其他类似设备。应明白,经由网络760,可以单向地或双向地向系统700中的组件中的任何一个和内容提供商或者从其传输内容。内容的示例可以包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等等。
内容服务设备730可以接收诸如有线电视节目等的内容,包括媒体信息、数字信息和/或其他内容。内容提供商的示例可以包括任何有线或卫星电视或无线电或因特网内容提供商。所提供的示例不预期以任何方式限制根据本公开内容的实现。
在各种实现中,平台702可以接收来自具有一个或多个导航部件的导航控制器750的控制信号。例如,控制器750的导航部件可以被用来与用户界面722交互。在各实施例中,导航控制器750可以是指点设备,指点设备可以是允许用户向计算机输入空间(例如,持续和多维的)数据的计算机硬件组件(具体地,人机界面设备)。诸如图形用户界面(GUI)和电视以及监视器等的多种系统允许用户使用物理手势来控制计算机或电视并向其提供数据。
通过在显示器上显示的指针、光标、聚焦环或其他可视指示符的移动,可以在显示器(例如,显示器720)上复制控制器750的导航部件的移动。例如,在软件应用716的控制下,位于导航控制器750上的导航部件可以被映射到例如在用户界面722上显示的虚拟导航部件。在各实施例中,控制器750可以不是分离的组件,而是可以被集成到平台702和/或显示器720。然而,本公开内容不限于在此示出或描述的元素或上下文。
在各种实现中,驱动器(未示出)可以包括允许用户借助于在初始引导之后触摸按钮(例如在启用时)立即开启和关闭平台702例如电视的技术。程序逻辑可以允许平台702即使在“关闭”平台时也把内容传输给介质适配器或(多个)其他内容服务设备730或(多个)内容传输设备740。另外,芯片组705可以包括例如对(5.1)环绕声音频和/或高清(7.1)环绕声音频的硬件和/或软件支持。驱动器可以包括用于集成图形平台的图形驱动器。在各实施例中,图形驱动器可以包括高速外围组件互连(PCI)图形卡。
在各种实现中,可以集成系统700中所示出的组件中的任何一个或多个。例如,可以集成平台702和内容服务设备730,或者可以集成平台702和内容传输设备740,或者例如可以集成平台702、内容服务设备730和内容传输设备740。在各种实施例中,平台702和显示器720可以是集成的单元。可以集成显示器720和内容服务设备730,或者例如可以集成显示器720和内容传输设备740。这些示例不预期限制本公开内容。
在各种实施例中,系统700可以被实现为无线系统、有线系统或两者的组合。在被实现为无线系统时,系统700可以包括适于在无线共享介质上通信的组件和接口,例如一个或多个天线、发射机、接收机、收发器、放大器、滤波器、控制逻辑等等。无线共享介质的示例可以包括无线频谱的各部分,例如RF谱等等。在实现为有线系统时,系统700可以包括适于在有线通信介质上通信的组件和接口,例如输入/输出(I/O)适配器、把I/O适配器与相应的有线通信介质连接起来的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可以包括电线、电缆、金属引线、印刷电路板(PCB)、底板、交换织物、半导体材料、双绞线、同轴电缆、光纤等等。
平台702可以建立一个或多个逻辑或物理信道以便传输信息。信息可以包括媒体信息和控制信息。媒体信息可以是指表示预期送给用户的内容的任何数据。内容示例可以包括,例如,来自语音会话、视频会议、流媒体视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等的数据。来自语音会话的数据可以是例如语音信息、静音期、舒适的背景噪声、乐音等等。控制信息可以是指表示预期送给自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以被用来通过系统路由媒体信息,或者指示节点以预先确定的方式处理媒体信息。然而,各实施例不限于图7中示出或描述的元素或上下文。
如上所述,可以在不同物理样式或形状因子中实现系统700。图8阐释其中可以实现系统700的小形状因子设备800的实现。在各实施例中,例如,设备800可以被实现为具有无线能力的移动计算设备。移动计算设备可以是指具有处理系统和诸如例如一个或多个电池等的移动电源或电力供应的任何设备。
如上所述,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超膝上型计算机、平板、触控板、便携式计算机、手持式计算机、掌上计算机、个人数字助理(PDA)、蜂窝式电话、组合蜂窝式电话/PDA、电视、智能设备(例如,智能电话、智能平板或智能电视)、移动因特网设备(MID)、消息接发设备、数据通信设备等等。
移动计算设备的示例也可以包括被配置为由个人穿戴的计算机例如腕式计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋式(shoe)计算机、服装(clothing)计算机和其他可穿戴计算机。在各种实施例中,例如,移动计算设备可以被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管可以作为示例借助于被实现为智能电话的移动计算设备来描述一些实施例,但应明白,也可以使用其他无线移动计算设备来实现其他实施例。各实施例不限于这一上下文。
如图8中所示出,设备800可以包括机壳802、显示器804、输入/输出(I/O)设备806和天线808。设备800也可以包括导航部件812。显示器804可以包括用于显示适用于移动计算设备的信息的任何合适的显示单元。I/O设备806可以包括用于把信息输入到移动计算设备的任何合适的I/O设备。I/O设备806的示例可以包括字母数字键盘、数字键区、触控板、输入键、按钮、开关、翘板开关、话筒、扬声器、语音识别设备和软件等等。也可以通过话筒(未示出)把信息输入到设备800中。这样的信息可以由语音识别设备(未示出)数字化。各实施例不限于这一上下文。
可以使用硬件元件、软件元件或两者的组合来实现各种实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码片段、计算机代码片段、字、值、符号或其任何组合。判断是否使用硬件元件和/或软件元件实现实施例可以根据任何数量的因素改变,这些因素例如所期望的计算速度、功率级、热容差、处理循环预算、输入数据率、输出数据率、存储器资源、数据总线速度和其他设计或性能约束。
至少一种实施例的一个或多个方面可以由被存储在机器可读介质上的表示性指令实现,表示性指令表示在处理器内各种逻辑,在由机器读取时,这些逻辑引起机器构造执行在此描述的技术的逻辑。被称为“IP核”的这样的表示可以被存储在有形机器可读介质上,且被提供给各种消费者或制造设施,以便加载到实际上制造逻辑或处理器的制造机器。
尽管已经参考各种实现描述了在此陈述的特定特征,但不预期以限制性意义来解释本描述。因此,在此描述的实现以及本公开内容所属于的领域中的技术人员将明显看出的其他实现的各种修改被视为落在本公开内容的精神和范围内。
Claims (23)
1.一种计算机实现的方法,包括:
从源存储器读取图像数据,其中所述源存储器具有源存储格式,其中对所述源存储器的读取是以适用于所述源存储器的模式进行的;
把所述图像数据从所述源存储格式转置成不同于所述源存储格式的目的地存储格式,其中所述源存储格式和所述目的地存储格式中的一个具有线性型存储格式,而所述源存储格式和所述目的地存储格式中的另一个具有Y瓦片化型存储格式;以及
把图像数据写入到目的地存储器,其中所述目的地存储器具有所述目的地存储格式,其中对所述目的地存储器的读取是以适用于所述目的地存储器的格式进行的,
其中在从所述源存储器读取图像数据期间执行多次高速缓存线源访问,其中在把图像数据写入到所述目的地存储器期间利用与所述高速缓存线源访问相关联的所有空间,以及
其中在把图像数据写入到所述目的地存储器期间执行多次高速缓存线目的地访问,且其中在把图像数据写入到所述目的地存储器期间利用与所述高速缓存线目的地访问相关联的所有空间。
2.如权利要求1所述的方法,其特征在于,从所述源存储器读取图像数据包括经由适用于所述源存储器的矩阵模式以所述Y瓦片化型存储格式读取图像数据,
其中所述转置包括把所述矩阵模式转置成适用于所述目的地存储器的矢量模式,以及
其中把图像数据写入到所述目的地存储器包括以所述线性型存储格式写入图像数据。
3.如权利要求1所述的方法,其特征在于,从所述源存储器读取图像数据包括经由适用于所述源存储器的矢量模式以线性型存储格式读取图像数据,
其中所述转置包括把所述矢量模式转置成适用于所述目的地存储器的矩阵模式,以及
其中把图像数据写入到所述目的地存储器包括以所述Y瓦片化型存储格式写入图像数据。
4.如权利要求1所述的方法,其特征在于,从所述源存储器读取图像数据包括把图像数据从所述源存储器的四个相邻数据块读取到十六条高速缓存线,其中每一数据块包括八行三十二字节的图像数据且与矩阵模式相关联,以及
其中把图像数据写入到所述目的地存储器包括把图像数据从所述十六条高速缓存线写入到所述目的地存储器的八条相邻数据线,其中每一数据线包括一行一百二十八字节的图像数据且与矢量模式相关联。
5.如权利要求1所述的方法,其特征在于,从所述源存储器读取图像数据包括把图像数据从所述源存储器的八条相邻数据线读取到十六条高速缓存线,其中每一数据线包括一行一百二十八字节的图像数据且与矢量模式相关联,以及
其中把图像数据写入到所述目的地存储器包括把图像数据从所述十六条高速缓存线写入到所述目的地存储器的四个相邻数据块,其中每一数据块包括八行三十二字节的图像数据且与矩阵模式相关联。
6.如权利要求1所述的方法,其特征在于,所述源存储器和所述目的地存储器可以共享相同的物理存储设备。
7.如权利要求1所述的方法,其特征在于,从所述源存储器读取图像数据包括经由适用于所述源存储器的矩阵模式以所述Y瓦片化型存储格式读取图像数据,
其中所述转置包括把所述矩阵模式转置成适用于所述目的地存储器的矢量模式,
其中把图像数据写入到所述目的地存储器包括以所述线性型存储格式写入图像数据,
其中从所述源存储器读取图像数据包括把图像数据从所述源存储器的四个相邻数据块读取到十六条高速缓存线,其中每一数据块包括八行三十二字节的图像数据且与所述矩阵模式相关联,以及
其中把图像数据写入到所述目的地存储器包括把图像数据从所述十六条高速缓存线写入到所述目的地存储器的八条相邻数据线,其中每一数据线包括一行一百二十八字节的图像数据且与所述矢量模式相关联,
其中所述源存储器和所述目的地存储器可以共享相同的物理存储设备,
其中在从所述源存储器读取图像数据期间执行多次高速缓存线源访问,其中在把图像数据写入到所述目的地存储器期间利用与所述高速缓存线源访问相关联的所有空间,以及
其中在把图像数据写入到所述目的地存储器期间执行多次高速缓存线目的地访问,且其中在把图像数据写入到所述目的地存储器期间利用与所述高速缓存线目的地访问相关联的所有空间。
8.如权利要求1所述的方法,其特征在于,从所述源存储器读取图像数据包括经由适用于所述源存储器的矢量模式以线性型存储格式读取图像数据,
其中所述转置包括把所述矢量模式转置成适用于所述目的地存储器的矩阵模式,
其中把图像数据写入到所述目的地存储器包括以所述Y瓦片化型存储格式写入图像数据,
其中从所述源存储器读取图像数据包括把图像数据从所述源存储器的八条相邻数据线读取到十六条高速缓存线,其中每一数据线包括一行一百二十八字节的图像数据且与所述矢量模式相关联,
其中把图像数据写入到所述目的地存储器包括把图像数据从所述十六条高速缓存线写入到所述目的地存储器的四个相邻数据块,其中,每一数据块包括八行三十二字节的图像数据且与矩阵模式相关联,
其中所述源存储器和所述目的地存储器可以共享相同的物理存储设备,
其中在从所述源存储器读取图像数据期间执行多次高速缓存线源访问,其中在把图像数据写入到所述目的地存储器期间利用与所述高速缓存线源访问相关联的所有空间,以及
其中在把图像数据写入到所述目的地存储器期间执行多次高速缓存线目的地访问,且其中在把图像数据写入到所述目的地存储器期间利用与所述高速缓存线目的地访问相关联的所有空间。
9.一种用于在线性存储格式和Y瓦片化存储格式之间转置图像数据的设备,包括:
用于从源存储器读取图像数据的装置,其中所述源存储器具有源存储格式,其中对所述源存储器的读取是以适用于所述源存储器的模式进行的;
用于把所述图像数据从所述源存储格式转置成不同于所述源存储格式的目的地存储格式的装置,其中所述源存储格式和所述目的地存储格式中的一个具有线性型存储格式,而所述源存储格式和所述目的地存储格式中的另一个具有Y瓦片化型存储格式;以及用于把图像数据写入到目的地存储器的装置,其中所述目的地存储器具有所述目的地存储格式,其中对所述目的地存储器的写入是以适用于所述目的地存储器的格式进行的,
其中在从所述源存储器读取图像数据期间执行多次高速缓存线源访问,其中在把图像数据写入到所述目的地存储器期间利用与所述高速缓存线源访问相关联的所有空间,以及
其中在把图像数据写入到所述目的地存储器期间执行多次高速缓存线目的地访问,其中在把图像数据写入到所述目的地存储器期间利用与所述高速缓存线目的地访问相关联的所有空间。
10.如权利要求9所述的设备,其特征在于,所述用于从所述源存储器读取图像数据的装置包括用于经由适用于所述源存储器的矩阵模式以所述Y瓦片化型存储格式读取图像数据的装置,
其中所述用于转置的装置包括用于把所述矩阵模式转置成适用于所述目的地存储器的矢量模式的装置,以及
其中所述用于把图像数据写入到所述目的地存储器的装置包括用于以所述线性型存储格式写入图像数据的装置。
11.如权利要求9所述的设备,其特征在于,所述用于从所述源存储器读取图像数据的装置包括用于经由适用于所述源存储器的矢量模式以线性型存储格式读取图像数据的装置,
其中所述用于转置的装置包括用于把所述矢量模式转置成适用于所述目的地存储器的矩阵模式的装置,以及
其中所述用于把图像数据写入到所述目的地存储器的装置包括用于以所述Y瓦片化型存储格式写入图像数据的装置。
12.如权利要求9所述的设备,其特征在于,所述用于从所述源存储器读取图像数据的装置包括用于把图像数据从所述源存储器的四个相邻数据块读取到十六条高速缓存线的装置,其中每一数据块包括八行三十二字节的图像数据且与矩阵模式相关联,以及
其中所述用于把图像数据写入到所述目的地存储器的装置包括用于把图像数据从所述十六条高速缓存线写入到所述目的地存储器的八条相邻数据线的装置,其中每一数据线包括一行一百二十八字节的图像数据且与矢量模式相关联。
13.如权利要求9所述的设备,其特征在于,所述用于从所述源存储器读取图像数据的装置包括用于把图像数据从所述源存储器的八条相邻数据线读取到十六条高速缓存线的装置,其中每一数据线包括一行一百二十八字节的图像数据且与矢量模式相关联,以及
其中所述用于把图像数据写入到所述目的地存储器的装置包括用于把图像数据从所述十六条高速缓存线写入到所述目的地存储器的四个相邻数据块的装置,其中每一数据块包括八行三十二字节的图像数据且与矩阵模式相关联。
14.一种用于在线性存储格式和Y瓦片化存储格式之间转置图像数据的装置,包括:
一种处理器,其被配置为:
从源存储器读取图像数据,其中所述源存储器具有源存储格式,其中对所述源存储器的读取是以适用于所述源存储器的模式进行的;
把所述图像数据从所述源存储格式转置成不同于所述源存储格式的目的地存储格式,其中所述源存储格式和所述目的地存储格式中的一个具有线性型存储格式,而所述源存储格式和所述目的地存储格式中的另一个具有Y瓦片化型存储格式;以及
把图像数据写入到目的地存储器,其中所述目的地存储器具有所述目的地存储格式,其中对所述目的地存储器的写入是以适用于所述目的地存储器的格式进行的,
其中在从所述源存储器读取图像数据期间执行多次高速缓存线源访问,其中在把图像数据写入到所述目的地存储器期间利用与所述高速缓存线源访问相关联的所有空间,以及
其中在把图像数据写入到所述目的地存储器期间执行多次高速缓存线目的地访问,且其中在把图像数据写入到所述目的地存储器期间利用与所述高速缓存线目的地访问相关联的所有空间。
15.如权利要求14所述的装置,其特征在于,从所述源存储器读取图像数据包括经由适用于所述源存储器的矩阵模式以所述Y瓦片化型存储格式读取图像数据,
其中所述转置包括把所述矩阵模式转置成适用于所述目的地存储器的矢量模式,以及
其中把图像数据写入到所述目的地存储器包括以所述线性型存储格式写入图像数据。
16.如权利要求14所述的装置,其特征在于,从所述源存储器读取图像数据包括经由适用于所述源存储器的矢量模式以线性型存储格式读取图像数据,
其中所述转置包括把所述矢量模式转置成适用于所述目的地存储器的矩阵模式,以及
其中把图像数据写入到所述目的地存储器包括以所述Y瓦片化型存储格式写入图像数据。
17.如权利要求14所述的装置,其特征在于,从所述源存储器读取图像数据包括把图像数据从所述源存储器的四个相邻数据块读取到十六条高速缓存线,其中每一数据块包括八行三十二字节的图像数据且与矩阵模式相关联,以及
其中把图像数据写入到所述目的地存储器包括把图像数据从所述十六条高速缓存线写入到所述目的地存储器的八条相邻数据线,其中每一数据线包括一行一百二十八字节的图像数据且与矢量模式相关联。
18.如权利要求14所述的装置,其特征在于,从所述源存储器读取图像数据包括把图像数据从所述源存储器的八条相邻数据线读取到十六条高速缓存线,其中每一数据线包括一行一百二十八字节的图像数据且与矢量模式相关联,以及
其中把图像数据写入到所述目的地存储器包括把图像数据从所述十六条高速缓存线写入到所述目的地存储器的四个相邻数据块,其中每一数据块包括八行三十二字节的图像数据且与矩阵模式相关联。
19.一种用于在线性存储格式和Y瓦片化存储格式之间转置图像数据的系统,包括:
显示器;
处理器,其中所述处理器通信地耦合到所述显示器,其中所述处理器被配置为:
从源存储器读取图像数据,其中所述源存储器具有源存储格式,其中对所述源存储器的读取是以适用于所述源存储器的模式进行的;
把所述图像数据从所述源存储格式转置成不同于所述源存储格式的目的地存储格式,其中所述源存储格式和所述目的地存储格式中的一个具有线性型存储格式,而所述源存储格式和所述目的地存储格式中的另一个具有Y瓦片化型存储格式;以及
把图像数据写入到目的地存储器,其中所述目的地存储器具有所述目的地存储格式,其中对所述目的地存储器的写入是以适用于所述目的地存储器的格式进行的,
其中在从所述源存储器读取图像数据期间执行多次高速缓存线源访问,其中在把图像数据写入到所述目的地存储器期间利用与所述高速缓存线源访问相关联的所有空间;以及
其中在把图像数据写入到所述目的地存储器期间执行多次高速缓存线目的地访问,其中在把图像数据写入到所述目的地存储器期间利用与所述高速缓存线目的地访问相关联的所有空间。
20.如权利要求19所述的系统,其特征在于,从所述源存储器读取图像数据包括经由适用于所述源存储器的矩阵模式以所述Y瓦片化型存储格式读取图像数据,
其中所述转置包括把所述矩阵模式转置成适用于所述目的地存储器的矢量模式,以及
其中把图像数据写入到所述目的地存储器包括以所述线性型存储格式写入图像数据。
21.如权利要求19所述的所述系统,其特征在于,从所述源存储器读取图像数据包括经由适用于所述源存储器的矢量模式以线性型存储格式读取图像数据,
其中所述转置包括把所述矢量模式转置成适用于所述目的地存储器的矩阵模式,以及
其中把图像数据写入到所述目的地存储器包括以所述Y瓦片化型存储格式写入图像数据。
22.如权利要求19所述的所述系统,其特征在于,从所述源存储器读取图像数据包括把图像数据从所述源存储器的四个相邻数据块读取到十六条高速缓存线,其中每一数据块包括八行三十二字节的图像数据且与矩阵模式相关联,以及
其中把图像数据写入到所述目的地存储器包括把图像数据从所述十六条高速缓存线写入到所述目的地存储器的八条相邻数据线,其中每一数据线包括一行一百二十八字节的图像数据且与矢量模式相关联。
23.如权利要求19所述的所述系统,其特征在于,从所述源存储器读取图像数据包括把图像数据从所述源存储器的八条相邻数据线读取到十六条高速缓存线,其中每一数据线包括一行一百二十八字节的图像数据且与矢量模式相关联,以及
其中把图像数据写入到所述目的地存储器包括把图像数据从所述十六条高速缓存线写入到所述目的地存储器的四个相邻数据块,其中每一数据块包括八行三十二字节的图像数据且与矩阵模式相关联。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/084898 WO2013097137A1 (en) | 2011-12-29 | 2011-12-29 | Transpose of image data between a linear and a y-tiled storage format |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104025013A CN104025013A (zh) | 2014-09-03 |
CN104025013B true CN104025013B (zh) | 2017-08-08 |
Family
ID=48696219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180076156.2A Active CN104025013B (zh) | 2011-12-29 | 2011-12-29 | 在线性存储格式和y瓦片化存储格式之间转置图像数据 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9659343B2 (zh) |
CN (1) | CN104025013B (zh) |
WO (1) | WO2013097137A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013097137A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Transpose of image data between a linear and a y-tiled storage format |
US8954672B2 (en) * | 2012-03-12 | 2015-02-10 | Advanced Micro Devices, Inc. | System and method for cache organization in row-based memories |
US20160239706A1 (en) * | 2015-02-13 | 2016-08-18 | Qualcomm Incorporated | Convolution matrix multiply with callback for deep tiling for deep convolutional neural networks |
US11216722B2 (en) * | 2016-12-31 | 2022-01-04 | Intel Corporation | Hardware accelerator template and design framework for implementing recurrent neural networks |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5990912A (en) * | 1997-06-27 | 1999-11-23 | S3 Incorporated | Virtual address access to tiled surfaces |
US6732067B1 (en) * | 1999-05-12 | 2004-05-04 | Unisys Corporation | System and adapter card for remote console emulation |
CN1955968A (zh) * | 2005-07-01 | 2007-05-02 | 索尼株式会社 | 记录控制设备,记录控制方法及整合有照相机的记录设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828382A (en) * | 1996-08-02 | 1998-10-27 | Cirrus Logic, Inc. | Apparatus for dynamic XY tiled texture caching |
US6018332A (en) * | 1997-11-21 | 2000-01-25 | Ark Interface Ii, Inc. | Overscan user interface |
US6667745B1 (en) | 1999-12-22 | 2003-12-23 | Microsoft Corporation | System and method for linearly mapping a tiled image buffer |
US6847370B2 (en) * | 2001-02-20 | 2005-01-25 | 3D Labs, Inc., Ltd. | Planar byte memory organization with linear access |
JP2003084751A (ja) * | 2001-07-02 | 2003-03-19 | Hitachi Ltd | 表示制御装置およびマイクロコンピュータならびにグラフィックシステム |
US6891543B2 (en) * | 2002-05-08 | 2005-05-10 | Intel Corporation | Method and system for optimally sharing memory between a host processor and graphics processor |
US20040231000A1 (en) * | 2003-02-18 | 2004-11-18 | Gossalia Anuj B. | Video aperture management |
US8593474B2 (en) * | 2005-12-30 | 2013-11-26 | Intel Corporation | Method and system for symmetric allocation for a shared L2 mapping cache |
CN100492368C (zh) | 2007-10-17 | 2009-05-27 | 北京逍遥掌信息技术有限公司 | 移动终端设备电子文件存储和管理方法 |
US8786625B2 (en) * | 2010-09-30 | 2014-07-22 | Apple Inc. | System and method for processing image data using an image signal processor having back-end processing logic |
WO2013097137A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Transpose of image data between a linear and a y-tiled storage format |
-
2011
- 2011-12-29 WO PCT/CN2011/084898 patent/WO2013097137A1/en active Application Filing
- 2011-12-29 US US13/977,200 patent/US9659343B2/en active Active
- 2011-12-29 CN CN201180076156.2A patent/CN104025013B/zh active Active
-
2017
- 2017-04-14 US US15/487,815 patent/US10373288B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5990912A (en) * | 1997-06-27 | 1999-11-23 | S3 Incorporated | Virtual address access to tiled surfaces |
US6732067B1 (en) * | 1999-05-12 | 2004-05-04 | Unisys Corporation | System and adapter card for remote console emulation |
CN1955968A (zh) * | 2005-07-01 | 2007-05-02 | 索尼株式会社 | 记录控制设备,记录控制方法及整合有照相机的记录设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104025013A (zh) | 2014-09-03 |
US9659343B2 (en) | 2017-05-23 |
US20140253575A1 (en) | 2014-09-11 |
US20170221178A1 (en) | 2017-08-03 |
WO2013097137A1 (en) | 2013-07-04 |
US10373288B2 (en) | 2019-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106294214A (zh) | 通过统一存储器架构的存储器共享 | |
TWI605342B (zh) | 共享虛擬記憶體的技術 | |
CN108734634A (zh) | 用于图形的顺序独立异步计算和流传送 | |
CN107408311A (zh) | 混合2d/3d图形呈现 | |
CN108694033A (zh) | 在面板显示器的不同区域中支持多个刷新率 | |
CN108737722A (zh) | 基于块的相机更新和异步显示 | |
US10581645B1 (en) | Dual-rail transceiver with improved signal-to-noise ratio for differential high-speed links | |
CN108694684A (zh) | 共享本地存储器分块机制 | |
CN104025013B (zh) | 在线性存储格式和y瓦片化存储格式之间转置图像数据 | |
CN108734647A (zh) | 增强现实虚拟现实声线追踪感觉加强系统、设备和方法 | |
CN108765257A (zh) | 粗糙粒度一致性 | |
CN108734633A (zh) | 具有附加上下文的图形系统 | |
CN104951263A (zh) | 避免向显示器发送未改变的区域 | |
CN108734630A (zh) | 线程串行化、分布式并行编程、和运行时间扩展 | |
CN108694685A (zh) | 改进的图形处理器微架构内的多分辨率图像平面渲染 | |
CN107580722A (zh) | 具有对应于各个数据流的直接存储器存取引擎的高斯混合模型加速器 | |
US10748323B2 (en) | GPU based shader constant folding | |
CN104346224B (zh) | 使用组页面错误描述符来处理上下文切换和进程终止 | |
US10916252B2 (en) | Accelerated data transfer for latency reduction and real-time processing | |
CN108734626A (zh) | 通过标记对象来编码3d渲染图像 | |
CN106662999A (zh) | 用于simd结构化分支的方法和装置 | |
US20170169537A1 (en) | Accelerated touch processing in computing environments | |
CN108734641A (zh) | 利用粗糙z缓冲器的仅位置着色流水线(posh)几何数据处理 | |
CN108711181A (zh) | 拓扑着色器技术 | |
US20210149811A1 (en) | Parallel decompression mechanism |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |