CN104025035B - 当执行迭代处理连续数据的程序时减少对存储器io请求的数量 - Google Patents
当执行迭代处理连续数据的程序时减少对存储器io请求的数量 Download PDFInfo
- Publication number
- CN104025035B CN104025035B CN201180076174.0A CN201180076174A CN104025035B CN 104025035 B CN104025035 B CN 104025035B CN 201180076174 A CN201180076174 A CN 201180076174A CN 104025035 B CN104025035 B CN 104025035B
- Authority
- CN
- China
- Prior art keywords
- data element
- group
- register
- data
- program
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 claims abstract description 27
- 238000004422 calculation algorithm Methods 0.000 claims description 14
- 238000001914 filtration Methods 0.000 claims description 5
- 230000010354 integration Effects 0.000 claims 2
- 238000004891 communication Methods 0.000 description 13
- 239000003607 modifier Substances 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 238000012856 packing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 239000000047 product Substances 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000256844 Apis mellifera Species 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005034 decoration Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000005662 electromechanics Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- WABPQHHGFIMREM-UHFFFAOYSA-N lead(0) Chemical compound [Pb] WABPQHHGFIMREM-UHFFFAOYSA-N 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000001259 photo etching Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
Abstract
提供了在执行迭代处理连续数据的程序时减少对存储器IO请求数量的方法和装置。第一组数据元素可被加载至第一寄存器,第二组数据元素可被加载至第二寄存器。在执行迭代处理数据元素的程序期间,可使用第一组数据元素和第二组数据元素。对于每一次迭代,从存储在第一寄存器中的第一组数据元素和存储在第二寄存器中的第二组数据元素中选择在迭代操作执行期间使用的一组对应的数据元素。通过这种方式,在每次迭代期间,相同的数据元素不会从存储器中重复加载。
Description
背景
相对于传统顺序处理,并行处理可被应用在计算机系统中以获得更快的应用程序执行。例如,单指令多数据(SIMD)指令是并行处理的示例,在该并行处理过程中,单个指令同时运行在多个数据上。这样的SIMD指令可以帮助加速应用程序中的数据处理,这些应用程序包括:多媒体、视频、音频的编码与解码、三维(3-D)图形和图像处理。
然而,在支持并行处理的计算机系统中,例如,在信号处理操作(例如图形操作,如过滤或卷积运算)的若干次迭代中可重复使用一些相同的数据元素。例如,为了处理图像或图像的一部分,可将同样的图形指令及输入数据迭代地应用到图像中的多个像素。对于该图形指令的每次迭代,可使用来自先前迭代中的相同像素中的一些。然而,对于每次迭代,可能从存储器中重新加载该图形指令所用的数据元素,这会降低并行处理架构执行该图形指令的效率。
附图简要说明
本领域技术人员通过阅读下面的说明书和所附的权利要求,并通过参考以下附图,将发现本发明实施例的各种优点变得显而易见,其中:
图1是示出根据实施例的示例性计算机系统的框图,该计算机系统用于在执行迭代处理连续数据的程序时减少对存储器IO请求的数量;
图2是示出图1的示例性计算机系统的示例性寄存器的框图;
图3是根据实施例的在执行迭代处理连续数据的程序时减少对存储器IO请求数量的方法的示例的流程图;
图4是示出本发明的示例性系统的框图;以及
图5是示出示例性小形状因数设备的框图,其中图4的系统组件可以被实例化。
具体描述
本发明的各种实现方式提供了在执行迭代处理连续数据的程序时减少对存储器IO请求数量的装置和方法。
图1示出了示例性计算机系统100,用于在执行迭代处理连续数据的程序时减少对存储器IO请求数量。
该系统100可以包括处理器105,该处理器105通过CPU总线120耦合到总线控制器110。总线控制器110可包括存储器控制器115。在一些实施例中,存储器控制器115在总线控制器110的外部。存储器控制器115可以通过存储器总线127将处理器105与系统存储器125连接。在一些实施例中,系统存储器125被描述为系统100中的“主存储器”。
在一些实施例中,系统存储器125可存储要由处理器105执行的信息和指令。系统存储器125可存储数据,该数据将由处理器访问以实现(例如)用于执行图形操作(如过滤或卷积操作)的代码或执行任何其它迭代地应用指令到连续数据元素的程序的代码。系统存储器125可包括动态随机存取存储器(DRAM)模块,该模块可被存储器控制器115访问。在一些实现方式中,系统存储器125还可用于存储将被处理的一个或多个图像帧的部分像素。系统存储器125还可以用于在处理器105执行指令期间存储临时变量或其它中间信息。
计算机系统100还可包括耦合到存储器总线127的只读存储器(ROM)124(和/或其它静态存储设备),用于为处理器105存储静态信息和指令。数据存储设备126(例如,磁盘、光盘和/或其它机器可读介质)也可被耦合到存储器总线127以存储处理器105的信息和指令。例如,数据存储设备126可包括用于执行图形操作(如过滤或卷积操作)或任何其它迭代地应用指令到连续数据元素的程序的代码。
在一些实施例中,处理器105可包括执行单元130、多个寄存器135、高速缓存140和解码器145。
该执行单元130可以执行由处理器105接收的指令,除了识别通常在通用处理器上实现的指令,所示的执行单元130识别在打包指令集150中的指令,该打包指令集在打包数据格式上执行操作。
该执行单元130可耦合到高速缓存140和解码器145。高速缓存140可用于高速缓存来自例如系统存储器125的数据和/或控制信号。解码器145可用于将由处理器105接收的指令解码为控制信号和/或微代码入口点。响应于这些控制信号和/或微代码入口点,所示的执行单元130执行适当的操作。
执行单元130可通过内部总线155耦合到寄存器135。寄存器135可以用于存储信息,该信息包括控制/状态信息、整型数据、浮点数据和打包数据。术语“寄存器”并不限于特定类型的电路。更确切地说,寄存器是能够存储和提供数据并能执行本文所描述功能的任何设备。
在一些实施例中,如图2所示,寄存器135可包括:基本程序执行寄存器205、SIMD寄存器210、浮点寄存器215、状态寄存器216和指令指针寄存器217。为了减少在处理器105执行迭代处理连续数据的程序时对存储器IO请求的数量,寄存器135也可包括源寄存器220、通道移位补充寄存器(LSSR)225、通道移位多路复用器230、以及源操作数寄存器240。在一些实施例中,源寄存器220、LSSR225、通道移位多路复用器230以及源操作数寄存器240都在执行单元130内部。
该基本程序执行寄存器205可以存储与通用指令处理相关的数据。基本程序执行寄存器205可以存储,例如,字节(8位),字(2个字节或16位)和双字(4个字节或32位)的整型数。
该SIMD寄存器210可存储用于执行SIMD操作的数据。SIMD寄存器可存储例如四字、256位数据、128位单精度和双精度浮点数值以及128位打包字节、字、双字和/或四字整型数。
浮点数寄存器215可存储,如,单精度、双精度和双精度扩展浮点值。此外,浮点数寄存器215可存储字、双字、和四字(8字节或64位)整型数以及二进制编码的十进制数。
状态寄存器216可存储信息,该信息指示处理器105的状态。指令指针寄存器217可以存储下个被执行指令的地址。
如上所述,对于操作中的每次迭代,也可使用来自先前迭代的相同数据元素中的一些数据元素。例如,假设(如,“16个元素例子”)在迭代操作中,需使用一个或多个指令执行一个或多个操作以处理数据元素A15、A14、A13、A12、A11、A10、A9、A8、A7、A6、A5、A4、A3、A2、A1和A0。进一步假设每个交互期间i,其中i=1,…,8,需处理数据元素A16-i,A15-i,...,A9-i。因此,例如,对于第一次迭代(即,i=1),数据元素A15、A14、…、A8被处理;对于第二次迭代(即,i=2),数据元素A14、A13、…、A7被处理;对于第三次迭代(即,i=3),数据元素A13、A12、…、A6被处理;对第八次迭代(即,i=8),数据元素A8、A7、…、A1被处理。可以看到,在每次迭代期间,一些来自先前迭代的相同数据元素被使用。在现有的系统中,在每个迭代期间从存储器中重新加载这些数据元素。
下面参照图3进行描述,源寄存器220、LSSR225、通道移位多路复用器230和源操作数寄存器240以及操作数修饰符可用来在每次迭代操作期间避免从存储器中加载这些数据元素。操作数修饰符可导致系统100处理已存储在源寄存器220和LSSR225中的数据,以产生将被存储在源操作数寄存器240的操作数以用于迭代操作。通过这种方式,在每次迭代操作期间,不从存储器中重新加载数据。
图3示出过程300,用于在执行迭代处理连续数据的程序时减少对存储器IO请求的数量。
在阶段305中,在指令的迭代执行期间,将要处理的数据元素存储在源寄存器220和LSSR225中。对于上面讨论的16个元素例子,数据元素A7、A6、A5、A4、A3、A2、A1和A0可被存储到LSSR225,而数据元素A15、A14、A13、A12、A11、A10、A9、A8可被存储到源寄存器220。
在第一次迭代期间,在阶段310中,接收(例如,从高速缓存160或图1的总线120)并解码(例如,通过图1的译码器165)控制信号,以确定要执行的指令以及执行该指令要使用的数据的位置。假设该指令包括具有操作数修饰符的操作,其可以使系统处理存储在源寄存器220和LSSR225中的数据,以产生用于执行在阶段310中已解码操作的操作数。
在阶段315中,基于在阶段310中已解码的指令,将存储在源数据寄存器200和LSSR225中的数据提供给通道移位多路复用器230。此外,将指示通道偏移值235的操作数修饰符提供给通道移位多路复用器230。操作数修饰符可因此指示通道移位多路复用器230关于如何处理存储在源数据寄存器200和LSSR225中的数据以产生操作数,该操作数存储在源操作数寄存器240,以用于执行在阶段310中已解码的操作。
对于上面所讨论的十六个元素的例子,在第一次迭代过程中,为了处理数据元素A15、A14、…、A8,操作数修饰符可以指示通道移位多路复用器230来串接源寄存器220(其中存储A15、A14、A13、A12、A11、A10、A9和A8)和LSSR225(其中存储A7、A6、A5、A4、A3、A2、A1和A0)并将结果左移位0通道。将结果(即数据元素A15、A14、...、A8)存储在源操作数寄存器240中。
在阶段320中,访问源操作数寄存器240(例如通过解码器145)以取回用于执行在阶段310中已解码操作的操作数。
在阶段325中,启用执行单元130以在阶段320中访问的数据上执行在阶段310中已解码的操作。
对于程序的每次迭代,可重复进行阶段310-325。例如,在第二次迭代期间,在步骤310(2)中(表示第二次迭代),接收并解码控制信号,以确定要执行的指令和用于执行指令的数据的位置。再次,假定该指令包括具有操作数修饰符的操作,该操作数修饰符使系统处理存储在源寄存器220和LSSR225中的数据,以产生用于执行在阶段310中已解码的操作的操作数。
在阶段315(2)中,由SR220、LSSR225、通道移位多路复用器230和通道偏移值235生成用于执行在阶段310(2)中已解码操作的操作数并将其存储在源操作数寄存器240。
对于上述十六元素示例,为了在第二次迭代中处理数据元素A14、A13、….、A7,操作数修饰符可指示LSSR230将源寄存器220(其存储A15、A14、A13、A12、A11、A10、A9和A8)和LSSR225(其存储A7、A6、A5、A4、A3、A2、A1和A0)串接起来,并将结果左移1通道。将结果(即数据元素A14、A13、...、A7)存储在源操作数寄存器240中。
在阶段320(2)中,访问源操作数寄存器240(例如,通过解码器145)以取回将用于执行在阶段310(2)中已解码操作的操作数。
在阶段325(2)中,启用执行单元130以在阶段320(2)中访问的数据上执行在阶段310(2)中已解码的操作。
在第8次迭代期间,在阶段310(8)(表示第八次迭代)中,取回并解码控制信号以确定将要执行的指令和用于执行指令的数据的位置。再一次,假设该指令包括具有操作数修饰符的操作,所述操作数修饰符可以使系统处理存储在源寄存器220和LSSR225的数据,以产生用于执行在阶段310中已解码操作的操作数。
在阶段315(8),通过SR220、LSSR225、通道移位多路复用器230和通道偏移值235产生用于执行在阶段310(8)中已解码操作的操作数,并将其存储在源操作数寄存器240中。
对于上述十六元素示例,为了在第八次迭代期间处理数据元素A8、A7、……、A1,操作数修饰符可指示LSSR230将源寄存器220(其存储A15、A14、A13、A12、A11、A10、A9和A8)和LSSR225(其存储A7、A6、A5、A4、A3、A2、A1和A0)串接起来,并将结果左移7通道。可将结果(即数据元素A8、A7、……、A1)存储在源操作数寄存器240中。
在阶段320(8)中,访问源操作数寄存器240(例如,被解码器145)以获得用于执行在阶段310(8)中已解码操作的操作数。
在阶段325(8)中,启用执行单元130以在阶段320(8)中访问的数据上执行在阶段310(2)中已解码的操作。
由上可见,源寄存器220、LSSR225、通道移位多路复用器230和源操作数寄存器240以及操作数修饰符可用于避免在信号处理操作的每次迭代中从存储器中加载相同数据元素。
在一些实现方式中,本文所述的处理单元130、源寄存器220、LSSR225、通道移位多路复用器230和源操作数寄存器240位于图形处理单元(GPU)或视觉处理单元(VPU)中。
本发明范围内考虑的计算设备包括:个人计算机(PC)、笔记本计算机、超笔记本计算机、平板计算机、触摸板、手提计算机、掌上计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、蜂窝电话和PDA结合、电视、智能设备(如智能手机、平板计算机、智能或智能电视)、移动互联网设备(MID)、消息收发设备、数据通信设备等等。
图4展示了本发明系统400实施例的示例,该示例包括平台402、显示器420、内容服务设备430、内容递送设备440和导航控制器450。在实施例中,系统400是媒体系统,尽管系统400并不局限于本文。例如,系统400的各组件可被包括进个人计算机(PC)、膝上型计算机、超膝上型计算机、平板计算机、触摸板、便携式计算机、掌上计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、蜂窝电话和PDA结合、电视、智能设备(如智能手机、平板计算机、智能或智能电视)、移动互联网设备(MID)、消息收发设备、数据通信设备等等。
在实施例中,系统400包括耦合至显示器420的平台402。平台402可接收来自内容设备(如内容服务设备430或内容递送设备440或其它类似的内容源)的内容。导航控制器450(包括一个或多个导航特征)可用于与例如平台402和/或显示器420交互。这些组件的每一个都在下文更细致地描述。
在实施例中,平台402可包括芯片组405、处理器410、存储器412、存储器414、图形子系统415、应用416和/或无线电装置418的任意组合。芯片组405可提供处理器410、存储器412、存储器414、图形子系统415、应用416和/或无线电装置418之间的互通。例如,芯片组405可包括存储器适配器(未显示),该存储器适配器能提供与存储器414的互通。
处理器410可被实现为复杂指令集计算机处理器(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容的处理器、多核或任何其它微处理器或中央处理单元(CPU)。在实施例中,处理器410包括双核处理器、双核移动处理器等等。
存储器412可被实现为易失性存储器设备,例如但不局限于:随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
存储器414可被实现为非易失性存储设备,例如但不局限于:磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附加存储设备、闪存、电池备份的SDRAM(同步DRAM)和/或网络可访问的存储设备。在实施例中,当包括多个硬盘驱动器时,存储器414可包括提高对珍贵数字媒体的存储器性能增强保护的技术。
图形子系统415可运行图像处理,该图像诸如静止图像或视频显示图像。图形子系统415是图形处理单元GPU)或视觉处理单元(VPU),例如或可包括集成处理器图形技术。模拟或数字接口可被用于通信地耦合图形子系统415和显示器420。例如,该接口可以是高清多媒体接口、显示端口(DisplayPort)、无线HDMI和/或无线HD兼容技术中的任一技术。在实施例中,图形子系统415可被集成到处理器410或芯片组405中,在实施例中,图形子系统415可是独立卡,该独立卡通信地耦合至芯片组405。
本文描述的图形和/或视频处理技术可在各种硬件架构中实现。例如,图形和/或视频功能可以在芯片组内集成。替代地,可使用独立图形和/或视频处理器。作为又一实例,图形和/或视频功能可由通用处理器(包括多核处理器)来实现。在更进一步的实施例中,该功能可在消费者电子设备中实现。
无线电装置418可包括一个或多个能够使用各种合适的无线通信技术发射和接收信号的无线电装置。这种技术可涉及跨一个或多个无线网络的通信。典型的无线网络包括(但不限于):无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMANs)、蜂窝网络和卫星网络。在跨这些网络的通信中,无线电装置518可按照一个或多个适用标准的任何版本工作。
在实施例中,显示器420可包括任何电视类型的监视器或显示器。显示器420可包括,例如:计算机的显示屏、触摸显示屏、视频监视器、电视机之类的设备和/或电视。显示器420可以是数字的和/或模拟的。在实施例中,显示器420可以是全息显示。此外,显示器420可以是接收视觉投影的透明表面。这种投影可传达各种形式的信息、图像和/或对象。例如,这样的投影可是用于移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用416的控制下,平台402可在显示器420上显示用户界面422。
在实施例中,内容服务设备430可由任何国家的、国际的和/或独立服务器主控,从而例如通过互联网对平台402可访问。内容服务设备430可被耦合至平台402和/或显示器420。平台402和/或内容服务设备430可被耦合至网络460并向网络460通信媒体信息和通信来自网络460的信息(例如,发送和/或接收)。内容递送设备440也可被耦合至平台402和/或显示器420。
在实施例中,内容服务设备430可包括有线电视盒、个人计算机、网络、电话、启用互联网的设备或能够传输数字信息和/或内容的设备,以及任何其他能够在内容提供者和平台402和/或显示器420之间直接地或经由网络460单向或双向地传送内容的类似设备。这可理解为:内容通过网络460,在系统400中的任一组件和内容提供者间单向和/或双向地来回进行通讯。示例内容可包括任何媒体信息,例如:视频、音乐、医疗和游戏信息等等。
内容服务设备430接收内容,该内容例如有线电视节目(包括媒体信息、数字信息和/或其它内容)。内容提供者的示例可包括任何有线或卫星电视或无线电或互联网内容提供者。所提供的示例并不意味着限制本发明的实施例。
在实施例中,平台402可以从具有一个或多个导航特征的导航控制器450接收控制信号。控制器450的导航特征可用于与例如用户界面422交互。在实施例中,导航控制器550是一个定点设备,该定点设备是计算机的硬件组件(具体而言,人机接口设备),该硬件组件允许用户向计算机中输入空间(例如连续的和多维的)数据。诸如图形用户界面(GUI)、电视和监视器之类的许多系统允许用户利用物理手势来控制并将数据提供给计算机或电视。
控制器450的导航特征的移动可以通过指针、光标、对焦环或在显示器上显示的其他视觉指标的移动反映在在显示器(如显示器420)上。例如,在软件应用程序416的控制下,位于导航控制器450上的导航功能可以被映射到在用户界面422中显示的虚拟导航功能。在实施例中,控制器450不是独立的组件,但集成到平台402和/或显示器420。然而,实施例并不局限于这些元件或在上下文中的描述。
在实施例中,驱动器(未显示)可包括使用户能在初始引导后通过触摸按钮来立即打开和关闭类似于电视机的平台402的技术(例如在启用时)。当平台处于“关闭”时,程序逻辑可允许平台402将内容流传输到媒体适配器或其他内容服务设备430或内容递送设备440。此外,芯片组505可包括,例如,对5.1环绕音频和/或高清7.1环绕音频的硬件和/或软件支持。驱动器可包括集成图形平台的图形驱动器。在实施例中,图形驱动器可包括外围部件互连(PCI)高速图形卡。
在各种实施例中,在系统400中所示的组件中的任何一个或多个可被集成。例如,平台402与内容服务设备430可被集成,或者平台402和内容递送设备440可被集成,或平台402、内容服务设备430和内容递送设备440可被集成。在各种实施例中,平台402和显示器420是集成单元。例如,显示器420和内容服务设备430可被集成,或者显示器420和内容递送装置440可被集成。这些示例并不意味着限制本发明。
在各种实施例中,系统400被实现为无线系统、有线系统或两者的组合。当该系统被实现为无线系统时,系统400可包括适于在无线共享介质(如一个或多个天线、发射机、接收机、收发器、放大器、滤波器、控制逻辑等)上通信的组件和接口。无线共享介质的示例可包括无线频谱的各部分(如RF频谱等)。当该系统被实现为有线系统时,系统400可包括适于在有线通信介质(如输入/输出(I/O)适配器、将I/O适配器与相应有线通信介质进行连接的物理连接器、网络接口卡NIC、盘控制器、视频控制器、音频控制器等等)上通信的组件和接口。有线通信介质的示例可包括:电线、电缆、金属引线、印刷电路板(PCB)、底板、交换结构、半导体材料、双绞线、同轴电缆、光纤等等。
平台402可建立一个或多个逻辑或物理信道以递送信息。该信息可包括媒体信息和控制信息。媒体信息可指任何表示对用户有意义的内容的数据。内容的示例可包括,例如,语音会话、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等中的数据。语音对话中的数据,例如:语音信息、静默期、背景噪声、舒适噪声、音调等等。控制信息可指任何表示对自动化系统有意义的命令、指令或控制字数据。例如,控制信息可通过系统以将媒体信息路由,或指示节点以用预定的方式处理媒体信息。但是,本实施例并不局限于这些元件或上下文或图4的描述。
如上所述,系统400可通过不同的物理样式或形状因数体现。图5展示了小形状因数设备500的实施例,其中系统400的各部件可被实例化。在实施例中,例如,设备500可被实现为具有无线能力的移动计算设备。移动计算设备可指代任何具有处理系统和移动电源(例如一个或多个电池)的设备。
如上所述,移动计算设备的示例包括:个人计算机(PC)、膝上型计算机、超级本、平板、触摸板、便携式计算机、手持式计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、蜂窝电话/PDA的结合体、电视、智能设备(如智能手机,智能平板或智能电视)、移动因特网设备(MID)、消息收发设备、数据通信设备等。
移动计算设备的示例还包括由人佩戴的计算机,诸如:手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋子计算机、衣服计算机以及其他可佩戴的计算机。在实施例中,例如,移动计算设备可被实现为能够执行计算机应用程序以及语音通信和/或数据通信的智能电话。虽然一些实施例可通过举例的方式,用实现为智能电话的移动计算设备进行描述,但是可理解为其它实施例也可使用其它无线移动计算设备实现。本实施例不局限于该上下文。
如该图5所示,设备500可包括外壳502、显示器504、输入/输出(I/0)设备506、以及天线508。该设备500还可包括导航特征512。显示器504可包括任何合适的显示单元,用于显示适合于移动计算设备的信息。I/O设备506可以包括任何适于将信息输入到移动计算设备的I/O设备。对于I/O设备506的示例可包括:字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、摇臂开关、话筒、扬声器、语音识别设备和软件等。信息还可通过话筒将输入到设备500。此类信息可通过语音识别设备数字化。本实施例不局限于该上下文。
各种实施例可以使用硬件元件、软件元件或两者的组合来实现。硬件元件的示例可包括:处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器,等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件元件的示例可包括:软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任意组合。判断实施例是否是使用硬件元件和/或软件元件而实现,这一点根据任意数量的因素而变化,诸如:所需计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源变化、数据总线速度以及其它设计或性能约束。
至少一个实施例的一个或多个方面可由存储在机器可读介质上的典型指令实现,该机器可读介质表示处理器内的各种逻辑,当指令被机器读出时使机器构造逻辑以执行本文所描述的技术。被称为“IP核”的这样的表示可存储在有形的机器可读介质中并被提供给不同的客户或生产设备以加载到制造机器中,该制造机器实际上制作逻辑器或处理器。
实施例因此可包括系统,该系统包括用于存储程序的存储设备,该程序包括用于迭代处理连续数据元素的代码。该系统可进一步包括第一寄存器以存储第一组连续数据元素。第二寄存器以存储第二组连续数据元素,以及多路复用器。该多路复用器用于从第一寄存器接收第一组连续数据元素,从第二寄存器接收第二组连续数据元素,对于每次迭代,选择相对应的将在迭代操作中执行的连续数据元素组,所选择的对应的连续数据元素组将是第一组连续数据元素和第二组连续数据元素串接后的子集。该系统也包括执行单元,用于使用已选择的相对应的连续数据元素集以执行迭代操作。
实施例也包括一种方法,包括从第一寄存器中加载第一组数据元素,以及从第二寄存器中加载第二组数据元素,其中,第一组数据元素和第二组数据元素在程序执行期间被使用以迭代地处理数据元素。对于每次迭代,该方法进一步包括从存储在第一寄存器中的第一组数据元素和存储在第二寄存器中的第二组数据元素中选择对应的数据元素组以在迭代操作期间使用。
实施例也可包括计算机可读介质,该计算机可读介质包括一组指令,该指令一旦被处理器执行,使计算机从第一寄存器中加载第一组数据元素并从第二寄存器中加载第二组数据元素,其中,第一组数据元素和第二组数据元素将在程序执行期间被使用,其中程序包括用于迭代处理连续数据并使计算机执行程序的代码,在该程序中,对于每次迭代,程序的执行包括使用已选择的对应数据元素组的迭代操作的执行,在其中,从存储在第一寄存器中的第一组数据元素和存储在第二寄存器中的第二组数据元素中选择所选择的对应数据元素组。
实施例也包括系统,该系统包括存储第一组数据元素的第一存储器、存储第二组数据元素的第二存储器以及多路复用器,该多路复用器用于接收来自第一寄存器的第一组数据元素和来自第二寄存器的第二组数据元素,以对于算法中的每次迭代,选择将在迭代操作执行期间使用的对应的数据元素组,其中,选择的对应数据元素组将是第一组数据元素和第二组数据元素串接后的子集。
实施例适用于所有类型的半导体集成电路(“IC”)芯片的使用。这些IC芯片的示例包括但不限于:处理器、控制器、芯片组组件、可编程逻辑阵列(PLA)、存储芯片、网络芯片等等。此外,在一些图中,信号导线用线来表示。一些线可能不同,以表示更多构成的信号通路,具有数字标记以表示构成的信号通路的序号,和/或具有在一个或多个端部的箭头以表示主信息流的方向。然而,这不应该被解释为限制性的方式。相反,这种附加的细节可结合一个或多个示例性实施例来使用,从而使电路更容易理解。任何表示的信号线,无论是否有附加信息,都实际上包括一个或多个信号,该信号可在多个方向上行进,并且可以用任何适当类型的信号模式来实现,例如,通过用微分对、光纤线路和/或单端线路来实现的数字或模拟线路。
可能已经给出示例的大小/模型/值/范围,但本发明的实施例并不局限于此。由于制造技术(例如,光刻)随着时间日益成熟,预期更小尺寸的设备可以被制造。此外,公知的电源/接地连接到IC芯片和其它部件可以或可以不在附图中示出,以实现说明和讨论的简单,并以免混淆本发明实施例的某些方面。更进一步,配置可以以框图的形式示出以避免模糊本发明的实施例,并且也鉴于如下事实:关于此类框图配置的实现方式的细节高度依赖于实现该实施例的平台,即,这样的细节应在本领域技术人员的学识范围内。在陈述了具体细节(例如电路)以描述本发明的示例性实施例的场合,应明白,对本领域技术人员而言,本发明的实施例可在没有这些具体细节的情况下或利用这些具体细节的变型来实现。此描述应视为说明性而非限制性。
一些实施例可以如下实现,例如,使用机器或有形的计算机可读介质或制品,在其中可存储指令或指令集,如由机器执行该指令或指令集,可使机器执行根据此实施例的方法和/或操作。这样的机器可包括,例如:任何合适的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器或类似物,并且可以使用任何硬件和/或软件的适当的组合来实现。该机器可读介质或制品可包括,例如:任何合适类型的存储器单元、存储器设备、存储器制品、存储器介质、存储设备、存储制品、存储介质和/或存储单元(例如,存储器、可移动或不可移动介质、可擦除或不可擦除介质、可写或可重写介质、数字或模拟介质、硬盘、软盘、光盘只读存储器(CD-ROM,可记录打包盘(CD-R)、可重写光盘的CD-RW)、光盘、磁介质、磁光介质、可移动存储卡或盘、各种类型的数字通用光盘(DVD的)、磁带、盒式磁带或类似物)。该指令可包括任何合适类型的代码,诸如:源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、加密代码等,可使用任何合适的高级别、低级别、面向对象、可视化、编译的和/或解释的编程语言来实现。
除非特别声明,否则可以理解的是,术语如“处理”,“运算”,“计算”,“确定”,或类似术语是指计算机或计算系统或类似的电子计算设备的操作和/或过程,该操作和过程在计算系统的寄存器和/或存储器内,将被表示为物理量(例如,电子)的数据操控和/或传输为其它相似物理量数据(在计算系统的存储器,寄存器或其他这样的信息存储、传输或显示设备中)。本实例不局限于该上下文。
在本文中使用术语“耦合”以指代所讨论的部件之间的任何类型的关系(直接或间接的),并且可以适用于电气、机械、流体、光、电磁、机电或其他连接。此外,术语“第一”,“第二”等在本文中仅用于便于讨论,并不携带特定时间或时序意义,除非另有说明。
本领域技术人员将会从上面的描述中理解,可经各种形式的广泛的技术方案实现本发明的实施例。因此,虽然已经结合其特定示例描述了本发明的实施例,但本发明的实施例的真正范围不应该那么有限,因为在本领域技术人员研究了附图、说明书和所附权利要求之后,其它的修改将变得显而易见。
Claims (36)
1.一种用于数据处理的系统,包括:
存储设备,用于存储程序,所述程序包括用于迭代处理连续数据元素的代码;
第一寄存器,用于存储第一组连续数据元素;
第二寄存器,用于存储第二组连续数据元素;以及
多路复用器,用于
对于多次迭代中的每次迭代,从所述第一寄存器中接收所述第一组连续数据元素,从所述第二寄存器中接收所述第二组连续数据元素,并且
选择将在迭代操作执行期间使用的对应的连续数据元素组,其中,所选择的对应的连续数据元素组将是所述第一组连续数据元素和所述第二组连续数据元素串接的子集;以及
执行单元,用于利用所选择的对应的连续数据元素组执行迭代操作。
2.如权利要求1所述的系统,其特征在于,所述连续数据元素从图像的诸个像素值中导出。
3.如权利要求1所述的系统,其特征在于,所述用于迭代处理数据元素的代码包括过滤算法。
4.如权利要求1所述的系统,其特征在于,所述用于迭代处理数据元素的代码包括卷积算法。
5.如权利要求1所述的系统,其特征在于,所述第一寄存器和第二寄存器是SIMD寄存器。
6.如权利要求1所述的系统,其特征在于,所述第一寄存器、第二寄存器和多路复用器在所述执行单元内部。
7.如权利要求6所述的系统,其特征在于,所述执行单元是图形处理器的一部分。
8.一种用于数据处理的方法,包括:
加载第一寄存器内的第一组数据元素和第二寄存器内的第二组数据元素,其中,所述第一组数据元素和所述第二组数据元素在程序执行期间被使用以迭代处理数据元素;以及
对于多次迭代中的每一次迭代,从存储在所述第一寄存器内的所述第一组数据元素和存储在所述第二寄存器内的所述第二组数据元素中选择将在迭代操作执行期间使用的对应的数据元素组。
9.如权利要求8所述的方法,其特征在于,对于所述多次迭代中的每一次迭代,选择对应的数据元素组包括:
将所述第一组数据元素和所述第二组数据元素串接起来;以及
基于迭代偏移值,从串接的数据元素选择数据元素组。
10.如权利要求8所述的方法,其特征在于,进一步包括,对于所述多次迭代中的每次迭代,利用所选择的数据元素组执行迭代操作。
11.如权利要求8所述的方法,其特征在于,从图像的诸个像素值中导出所述数据元素。
12.如权利要求8所述的方法,其特征在于,用于迭代处理数据元素的程序包括过滤算法。
13.如权利要求8所述的方法,其特征在于,用于迭代处理数据元素的程序包括卷积算法。
14.一种用于数据处理的设备,包括:
存储器;以及
处理器,耦合至所述存储器,所述处理器用于:
加载第一寄存器内的第一组数据元素和第二寄存器内的第二组数据元素,其中,所述第一组数据元素和所述第二组数据元素将在程序执行期间被使用,其中,所述程序包括用于迭代处理连续数据元素的代码;以及
执行程序,其中对于每一次迭代操作,程序的执行包括利用已选择的对应的数据元素组来执行迭代的操作,其中已选择的对应数据元素组从存储在所述第一寄存器内的所述第一组数据元素和存储在所述第二寄存器内的所述第二组数据元素中选取。
15.如权利要求14所述的设备,其特征在于,所述数据元素从图像的诸个像素值中导出。
16.如权利要求14所述的设备,其特征在于,所述用于迭代处理数据元素的代码包括过滤算法。
17.如权利要求14所述的设备,其特征在于,所述用于迭代处理数据元素的代码包括卷积算法。
18.一种用于数据处理的系统,包括:
第一存储器,用于存储第一组数据元素;
第二存储器,用于存储第二组数据元素;以及
多路复用器,用于:对于算法的多次迭代中的每一次迭代,从第一寄存器中接收所述第一组数据元素并从第二寄存器中接收所述第二组数据元素;以及选择将在迭代操作执行期间使用的对应的数据元素组,其中,所选择的对应的数据元素组将是所述第一组数据元素和所述第二组数据元素串接的子集。
19.如权利要求18所述的系统,其特征在于,进一步包括执行单元,所述执行单元用于利用所选择的对应的数据元素组来执行迭代操作。
20.如权利要求19所述的系统,其特征在于,所述第一存储器、第二存储器和多路复用器在所述执行单元内部。
21.如权利要求19所述的系统,其特征在于,所述执行单元是图形处理器的一部分。
22.如权利要求18所述的系统,其特征在于,所述第一存储器和第二存储器是SIMD寄存器。
23.如权利要求18所述的系统,其特征在于,所述第一组数据元素和第二组数据元素组是连续数据元素。
24.如权利要求23所述的系统,其特征在于,所述连续数据元素从图像的诸个像素值中导出。
25.如权利要求18所述的系统,其特征在于,所述算法包括过滤算法。
26.如权利要求18所述的系统,其特征在于,所述算法包括卷积算法。
27.一种计算机可读介质,包括一组指令,所述指令如果被处理器执行则使计算机:
加载第一寄存器内的第一组数据元素和第二寄存器内的第二组数据元素,其中,所述第一组数据元素和所述第二组数据元素将在程序执行期间被使用,其中,所述程序包括用于迭代处理连续数据元素的代码;以及
执行程序,其中对于每一次迭代操作,程序的执行包括利用已选择的对应的数据元素组来执行迭代的操作,其中已选择的对应数据元素组从存储在所述第一寄存器内的所述第一组数据元素和存储在所述第二寄存器内的所述第二组数据元素中选取。
28.如权利要求27所述的计算机可读介质,其特征在于,所述数据元素从图像的诸个像素值中导出。
29.如权利要求27所述的计算机可读介质,其特征在于,所述用于迭代处理数据元素的代码包括过滤算法。
30.如权利要求27所述的计算机可读介质,其特征在于,所述用于迭代处理数据元素的代码包括卷积算法。
31.一种用于数据处理的设备,包括:
用于加载第一寄存器内的第一组数据元素和第二寄存器内的第二组数据元素的装置,其中,所述第一组数据元素和所述第二组数据元素在程序执行期间被使用以迭代处理数据元素;以及
用于对于多次迭代中的每一次迭代从存储在所述第一寄存器内的所述第一组数据元素和存储在所述第二寄存器内的所述第二组数据元素中选择将在迭代操作执行期间使用的对应的数据元素组的装置。
32.如权利要求31所述的设备,其特征在于,用于对于所述多次迭代中的每一次迭代选择对应的数据元素组的装置包括:
用于将所述第一组数据元素和所述第二组数据元素串接起来的装置;以及
用于基于迭代偏移值从串接的数据元素选择数据元素组的装置。
33.如权利要求31所述的设备,其特征在于,进一步包括,用于对于所述多次迭代中的每次迭代利用所选择的数据元素组执行迭代操作的装置。
34.如权利要求31所述的设备,其特征在于,从图像的诸个像素值中导出所述数据元素。
35.如权利要求31所述的设备,其特征在于,所述用于迭代处理数据元素的程序包括过滤算法。
36.如权利要求31所述的设备,其特征在于,所述用于迭代处理数据元素的程序包括卷积算法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/067462 WO2013100927A1 (en) | 2011-12-28 | 2011-12-28 | Reducing the number of io requests to memory when executing a program that iteratively processes contiguous data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104025035A CN104025035A (zh) | 2014-09-03 |
CN104025035B true CN104025035B (zh) | 2017-10-17 |
Family
ID=48698171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180076174.0A Expired - Fee Related CN104025035B (zh) | 2011-12-28 | 2011-12-28 | 当执行迭代处理连续数据的程序时减少对存储器io请求的数量 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9483810B2 (zh) |
EP (1) | EP2798459B1 (zh) |
CN (1) | CN104025035B (zh) |
WO (1) | WO2013100927A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2798459B1 (en) | 2011-12-28 | 2019-02-27 | Intel Corporation | Reducing the number of io requests to memory when executing a program that iteratively processes contiguous data |
US9977677B2 (en) * | 2016-04-07 | 2018-05-22 | International Business Machines Corporation | Execution slice with supplemental instruction port for an instruction using a source operand from another instruction port |
DE102019117558B4 (de) * | 2019-06-28 | 2022-08-18 | Carl Zeiss Smt Gmbh | Verfahren und Computerprogramm zum Bestimmen einer Qualität einer Maske einer Fotolithographie-Vorrichtung |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1163684A (zh) * | 1994-09-16 | 1997-10-29 | 西尔拉斯逻辑公司 | 多用途纠错计算电路 |
CN101154288A (zh) * | 2006-09-28 | 2008-04-02 | 国际商业机器公司 | 用于执行交叉积指令的处理器和方法 |
US7680988B1 (en) * | 2006-10-30 | 2010-03-16 | Nvidia Corporation | Single interconnect providing read and write access to a memory shared by concurrent threads |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5546343A (en) * | 1990-10-18 | 1996-08-13 | Elliott; Duncan G. | Method and apparatus for a single instruction operating multiple processors on a memory chip |
US5673321A (en) | 1995-06-29 | 1997-09-30 | Hewlett-Packard Company | Efficient selection and mixing of multiple sub-word items packed into two or more computer words |
GB2409065B (en) | 2003-12-09 | 2006-10-25 | Advanced Risc Mach Ltd | Multiplexing operations in SIMD processing |
US7376813B2 (en) | 2004-03-04 | 2008-05-20 | Texas Instruments Incorporated | Register move instruction for section select of source operand |
US7925860B1 (en) * | 2006-05-11 | 2011-04-12 | Nvidia Corporation | Maximized memory throughput using cooperative thread arrays |
US7836116B1 (en) * | 2006-06-15 | 2010-11-16 | Nvidia Corporation | Fast fourier transforms and related transforms using cooperative thread arrays |
US8417922B2 (en) * | 2006-08-02 | 2013-04-09 | Qualcomm Incorporated | Method and system to combine multiple register units within a microprocessor |
US8176265B2 (en) * | 2006-10-30 | 2012-05-08 | Nvidia Corporation | Shared single-access memory with management of multiple parallel requests |
GB2464292A (en) * | 2008-10-08 | 2010-04-14 | Advanced Risc Mach Ltd | SIMD processor circuit for performing iterative SIMD multiply-accumulate operations |
EP2798459B1 (en) | 2011-12-28 | 2019-02-27 | Intel Corporation | Reducing the number of io requests to memory when executing a program that iteratively processes contiguous data |
-
2011
- 2011-12-28 EP EP11878695.3A patent/EP2798459B1/en not_active Not-in-force
- 2011-12-28 CN CN201180076174.0A patent/CN104025035B/zh not_active Expired - Fee Related
- 2011-12-28 US US13/997,053 patent/US9483810B2/en active Active
- 2011-12-28 WO PCT/US2011/067462 patent/WO2013100927A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1163684A (zh) * | 1994-09-16 | 1997-10-29 | 西尔拉斯逻辑公司 | 多用途纠错计算电路 |
CN101154288A (zh) * | 2006-09-28 | 2008-04-02 | 国际商业机器公司 | 用于执行交叉积指令的处理器和方法 |
US7680988B1 (en) * | 2006-10-30 | 2010-03-16 | Nvidia Corporation | Single interconnect providing read and write access to a memory shared by concurrent threads |
Also Published As
Publication number | Publication date |
---|---|
US9483810B2 (en) | 2016-11-01 |
WO2013100927A1 (en) | 2013-07-04 |
EP2798459A1 (en) | 2014-11-05 |
EP2798459B1 (en) | 2019-02-27 |
EP2798459A4 (en) | 2016-08-03 |
US20140327682A1 (en) | 2014-11-06 |
CN104025035A (zh) | 2014-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104025031B (zh) | 减少应用中对共享存储器单元执行的顺序操作的数量 | |
CN104756150B (zh) | 深度缓冲 | |
CN104781845B (zh) | 处理视频内容 | |
CN104951263A (zh) | 避免向显示器发送未改变的区域 | |
CN105229695A (zh) | 图形数据的基于子集的压缩和解压缩 | |
CN105074772B (zh) | 通过使用不可达比特组合而改进的多采样抗锯齿压缩 | |
CN103533286A (zh) | 用于带静态区域排除的时间帧内插的方法和系统 | |
CN104737198B (zh) | 在输入几何对象粒度上记录可见度测试的结果 | |
CN104012072B (zh) | 使用运动估计的目标检测 | |
CN104125480B (zh) | 改进的代码转换管理技术 | |
CN110072033A (zh) | 使用选择性色彩变换的色彩压缩 | |
CN104067318A (zh) | 使用三维光栅化的时间连续碰撞检测 | |
CN104584544B (zh) | 使用一般化平面编码的随机深度缓冲器压缩 | |
CN104113757B (zh) | 颜色缓冲压缩 | |
CN104025035B (zh) | 当执行迭代处理连续数据的程序时减少对存储器io请求的数量 | |
CN104094603A (zh) | 用于在视频编码系统中进行集成元数据插入的系统和方法 | |
CN105103512A (zh) | 分布式图形处理 | |
CN103927223A (zh) | 对图形资源的串行化访问 | |
CN106415655A (zh) | 虚拟存储器支持的压缩控制表面 | |
CN104054049A (zh) | 减少由cpu执行以便复制源数据从而实现对源数据的并行处理的读/写操作的数量 | |
CN104754348B (zh) | 用于自适应深度偏移压缩的方法和设备 | |
CN104952100B (zh) | 延迟着色的流式压缩抗锯齿方法 | |
CN104025013B (zh) | 在线性存储格式和y瓦片化存储格式之间转置图像数据 | |
CN104011789A (zh) | 减少用于在屏幕上显示多个图像的显示控制器中使用的缩放引擎的数量 | |
US10380106B2 (en) | Efficient method and hardware implementation for nearest neighbor search |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171017 Termination date: 20211228 |
|
CF01 | Termination of patent right due to non-payment of annual fee |