CN101371233B - 含控制用于视频处理的向量组件的标量组件的视频处理器 - Google Patents
含控制用于视频处理的向量组件的标量组件的视频处理器 Download PDFInfo
- Publication number
- CN101371233B CN101371233B CN2005800374812A CN200580037481A CN101371233B CN 101371233 B CN101371233 B CN 101371233B CN 2005800374812 A CN2005800374812 A CN 2005800374812A CN 200580037481 A CN200580037481 A CN 200580037481A CN 101371233 B CN101371233 B CN 101371233B
- Authority
- CN
- China
- Prior art keywords
- performance element
- scalar
- vectorial
- data
- video processor
- 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
- 239000013598 vector Substances 0.000 title claims abstract description 134
- 238000012545 processing Methods 0.000 title claims abstract description 72
- 230000015654 memory Effects 0.000 claims description 131
- 238000000034 method Methods 0.000 claims description 44
- 239000000872 buffer Substances 0.000 claims description 31
- 230000006870 function Effects 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 5
- 238000000926 separation method Methods 0.000 claims description 2
- 239000011159 matrix material Substances 0.000 description 13
- 238000013500 data storage Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000003672 processing method Methods 0.000 description 4
- 229910052710 silicon Inorganic materials 0.000 description 4
- 239000010703 silicon Substances 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 150000001875 compounds Chemical class 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000011068 loading method Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101100355582 Arabidopsis thaliana ARAC1 gene Proteins 0.000 description 1
- 101100523502 Arabidopsis thaliana ARAC5 gene Proteins 0.000 description 1
- 235000017060 Arachis glabrata Nutrition 0.000 description 1
- 241001553178 Arachis glabrata Species 0.000 description 1
- 235000010777 Arachis hypogaea Nutrition 0.000 description 1
- 235000018262 Arachis monticola Nutrition 0.000 description 1
- 101100523501 Oryza sativa subsp. japonica RAC4 gene Proteins 0.000 description 1
- 101100198869 Toxoplasma gondii ROP4 gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000004567 concrete Substances 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000011049 filling Methods 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 235000020232 peanut Nutrition 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
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
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- 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
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3888—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- 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
-
- 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/37—Details of the operation on graphic patterns
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Image Processing (AREA)
Abstract
本发明描述一种用于执行视频处理操作的延迟容许系统。还描述视频处理器中的一种流处理,所述视频处理器具有标量和向量组件;和在视频处理器中的多维数据路径处理。
Description
本申请案主张基于Gadre等人的于2004年11月15日申请的题为“A METHOD ANDSYSTEM FOR VIDEO PROCESSING”的第60/628,414号美国临时申请案在35U.S.C.第119条(e)规定下的优先权,所述申请案的全文并入本文中。
技术领域
本发明的领域涉及数字电子计算机系统。更明确地说,本发明涉及在计算机系统上有效地处理视信息的系统。一方面描述了用于执行视频处理操作的延迟容许系统。另一方面描述了视频处理器中的流处理。另外描述了视频处理器中的多维数据路径处理。还描述了具有标量和向量组件的视频处理器。
背景技术
近年来,图像和全运动视频的显示是电子行业中取得很大进步的领域。高质量视频(尤其是高清晰度数字视频)的显示和再现是现代视频技术应用和装置的主要目标。视频技术用于各种产品,其范围涵盖蜂窝式电话、个人视频录像机、数字视频投影仪、高清晰度电视等。能够产生和显示高清晰度视频的装置的出现和日渐增多的使用是电子行业中历经较大程度的创新和进展的领域。
在许多消费电子产品型装置和专业级装置中使用的视频技术依赖于一个或一个以上视频处理器来格式化和/或增强视频信号以进行显示。这对于数字视频应用来说尤其如此。例如,一个或一个以上视频处理器并入典型机顶盒中,且用于将HDTV广播信号转换成显示器可用的视频信号。此种转换涉及(例如)进行缩放,其中视频信号从非16×9视频图像进行转换以用于在真正的16×9(例如,宽屏幕)显示器上正确显示。一个或一个以上视频处理器可用于执行扫描转换,其中将视频信号从隔行格式转换成逐行格式,其中,在隔行格式下奇数和偶数扫描线分离显示,在逐行格式下在单次扫描中提取整个帧。
视频处理器应用的额外实例包含(例如)信号解压缩,其中视频信号以压缩格式(如,MPEG-2)接收且经解压缩和格式化以进行显示。另一实例是重新进行隔行扫描转换,这涉及将进入的数字视频信号从DVI(数字视觉接口)格式转换成复合视频格式,所述复 合视频格式与市面上安装的大量旧电视显示器兼容。
较高级的用户需要较高级的视频处理器功能,例如(举例来说)回路内/回路外解块滤波、高级的运动自适应去隔行、用于编码操作的输入噪声滤波、多相缩放/重新取样、子图片复合和处理器-放大器操作(例如色空间转换、调整、像素点操作(如,锐化、直方图调整等)和各种视频表面(video surface)格式转换支持操作)。
关于提供此高级视频处理器功能的问题是:具有足以实施此功能的强大架构的视频处理器要并入到许多类型的装置中可能是非常昂贵的。视频处理功能越高级,实施这类功能所需要的集成电路装置在硅片(silicon die)面积、晶体管数、存储器速度要求等方面就越昂贵。
因此,现有技术系统的设计者被迫在视频处理器性能和成本方面作出折中。广泛认为具有可接受的成本/性能比的现有技术视频处理器在延迟约束(如,为避免使视频出现停顿或以其它方式使视频处理程序停止)和计算密度(如,每平方毫米电路小片的处理器操作数目)方面通常很难满足。此外,现有技术视频处理器通常不适于线性缩放性能要求,例如,在期望视频装置处理多个视频流的情况下(如,同时处理多个进入流和外出显示流)。
因此,需要克服现有技术上的限制的新视频处理器系统。新的视频处理器系统应该可调整且具有较高的计算密度,以处理日益高级的用户所期望的高级视频处理器功能。
发明内容
本发明的实施例提供一种新视频处理器系统,其支持高级的视频处理功能,同时有效利用集成电路硅片面积、晶体管数、存储器速度要求等。本发明的实施例保持高计算密度,并易于调整以处理多个视频流。
在一个实施例中,实施一种用于在视频处理器中执行视频处理操作的等待容许系统。所述系统包含:主机接口,其用于实施视频处理器与主机CPU之间的通信;标量执行单元,其耦接到主机接口并经配置以执行标量视频处理操作;和向量执行单元,其耦接到主机接口并经配置以执行向量视频处理操作。包含命令FIFO以使向量执行单元能够在需求驱动基础(demand driven basis)上通过存取存储器命令FIFO来操作。包含存储器接口以在视频处理器与帧缓冲存储器之间实施通信。在存储器接口中建立DMA引擎以在多个不同存储器位置之间实施DMA传递,并向数据存储存储器和指令高速缓冲存储器中加载用于向量执行单元的数据和指令。
在一个实施例中,向量执行单元经配置通过存取命令FIFO而相对于标量执行单元异步地操作以在需求驱动基础上操作。需求驱动基础可经配置以隐藏从不同存储器位置(如,帧缓冲存储器、系统存储器、高速缓冲存储器等)到向量执行单元的命令FIFO的数据传递的延迟。命令FIFO可为管线FIFO以防止向量执行单元停止。
在一个实施例中,将本发明实施为用于执行视频处理操作的视频处理器。所述视频处理器包含主机接口,其用于在视频处理器与主机CPU之间实施通信。所述视频处理器包含存储器接口,其用于在视频处理器与帧缓冲存储器之间执行通信。标量执行单元耦接到主机接口和存储器接口,且经配置以执行标量视频处理操作。向量执行单元耦接到主机接口和存储器接口,且经配置以执行向量视频处理操作。视频处理器可为独立视频处理器集成电路或可为集成到GPU集成电路的组件。
在一个实施例中,标量执行单元充当视频处理器的控制器并控制向量执行单元的操作。标量执行单元可经配置以执行应用程序的流量控制算法,且向量执行单元可经配置以执行应用程序的像素处理操作。向量接口单元可包含在视频处理器中,以介接标量执行单元与向量执行单元。在一个实施例中,标量执行单元和向量执行单元经配置以异步操作。标量执行单元可以第一时钟频率执行且向量执行单元可以不同时钟频率(如,较快、较慢等)执行。向量执行单元可在需求驱动基础上在标量执行单元的控制下操作。
在一个实施例中,本发明实施为视频处理器的多维数据路径处理系统以用于执行视频处理操作。所述视频处理器包含标量执行单元,其经配置以执行标量视频处理操作;和向量执行单元,其经配置以执行向量视频处理操作。包含数据存储存储器以存储向量执行单元的数据。数据存储存储器包含多个瓷砖片(tile),所述砖片具有以阵列形式布置的对称库数据结构。所述库数据结构经配置以支持对每个库的不同瓷砖片的存取。
根据特定配置的要求,每个库数据结构可包括多个瓷砖片(如,4×4、8×8、8×16、16×24等)。在一个实施例中,所述库可经配置以支持对每个库的不同瓷砖片的存取。这允许单个存取以从两个相邻的库中检索瓷砖片的行或列。在一个实施例中,使用交叉矩阵(crossbar)来选择用于存取多个库数据结构(如,行、列、块等)的瓷砖片的配置。可包含采集器以用于接收交叉矩阵所存取的库的瓷砖片,并以每时钟为基础向向量数据路径的前端提供瓷砖片。
在一个实施例中,本发明实施为视频处理器的基于流的存储器存取系统。所述视频处理器包含标量执行单元,其经配置以执行标量视频处理操作;和向量执行单元,其经配置以执行向量视频处理操作。包含帧缓冲存储器以用于存储标量执行单元和向量执行 单元的数据。包含存储器接口以在标量执行单元和向量执行单元与帧缓冲存储器之间执行通信。帧缓冲存储器包括多个瓷砖片。存储器接口针对标量执行单元实施瓷砖片的第一顺序存取的第一流,且针对向量执行单元实施瓷砖片的第二顺序存取的第二流。
在一个实施例中,第一流和第二流包括一系列顺序预取的瓷砖片,所述瓷砖片是以隐藏来自起始存储器位置(如,帧缓冲存储器、系统存储器等)的存取延迟的方式预取的。在一个实施例中,存储器接口经配置以管理来自多个不同起始位置且到达多个不同终止位置的多个不同流。在一个实施例中,使用建立在存储器接口中的DMA引擎来实施多次存储器读取和多次存储器写入以支持多个流。
概括地说,本发明揭示至少如下四种方法。
A)在此描述内容中概括地讲述的方法是视频处理器中的多维数据路径处理系统执行视频处理操作的方法,所述方法包括:通过使用标量执行单元来执行标量视频处理操作;通过使用向量执行单元来执行向量视频处理操作;通过使用数据存储存储器来存储向量执行单元的数据,其中数据存储存储器包括多个瓷砖片,所述瓷砖片包括以阵列形式布置的对称库数据结构,且其中库数据结构经配置以支持对每个库的不同瓷砖片的存取。另外,上述方法A包括包含以4×4图案布置的多个瓷砖片的各个库数据结构。并且,上述方法A包括包含以8×8、8×16或16×24图案布置的多个瓷砖片的各个库数据结构。另外,上述方法A包括经配置以支持对每个库数据结构的不同瓷砖片的存取的库数据结构,其中至少一个存取是存取包括两个库数据结构的瓷砖片的行的两个相邻库数据结构。上述方法A还涉及瓷砖片经配置以支持对每个库数据结构的不同瓷砖片的存取,其中至少一个存取是存取包括两个相邻库数据结构的瓷砖片的列的两个相邻库数据结构。此外,上述方法A包括通过使用耦接到数据存储器的交叉矩阵来选择用于存取多个库数据结构的瓷砖片的配置。在此选择步骤中,交叉矩阵存取多个库数据结构的瓷砖片从而以每时钟为基础向向量数据路径供应数据。并且,此处涉及通过使用采集器来接收交叉矩阵所存取的多个库数据结构的瓷砖片;并以每时钟为基础向向量数据路径的前端提供瓷砖片。
B)在此描述内容中概括地讲述的方法也是用于执行视频处理操作的方法,所述方法使用执行计算机可读代码的计算机系统的视频处理器来实施,其包括:通过使用主机接口在视频处理器与主机CPU之间建立通信;通过使用存储器接口在视频处理器与帧缓冲存储器之间建立通信;通过使用耦接到主机接口和存储器接口的标量执行单元来执行标量视频处理操作;和通过使用耦接到主机接口和存储器接口的向量执行单元来执行向量视频处理操作。上述方法B进一步包括充当视频处理器的控制器并控制向量执行单元的 操作的标量执行单元。上述方法B还包括用于介接标量执行单元与向量执行单元的向量接口单元。上述方法B还包括经配置以异步操作的标量执行单元和向量执行单元。并且,标量执行单元以第一时钟频率执行且向量执行单元以第二时钟频率执行。上述方法B包括经配置以执行应用程序的流量控制算法的标量执行单元和经配置以执行应用程序的像素处理操作的向量执行单元。另外,向量执行单元经配置以在需求驱动基础上在标量执行单元的控制下操作。另外,标量执行单元经配置以使用存储器命令FIFO向向量执行单元发送函数调用,向量执行单元在需求驱动基础上通过存取存储器命令FIFO来操作。并且,视频处理器的异步操作经配置以支持应用程序的向量子程序或标量子程序的分离的独立更新。最后,上述方法B包括标量执行单元经配置以使用VLIW(超长指令字)代码进行操作。
C)此处描述的方法也概括地讲述了一种在视频处理器中基于流的存储器存取执行视频处理操作的方法,所述方法包括:通过使用标量执行单元来执行标量视频处理操作;通过使用向量执行单元来执行向量视频处理操作;通过使用帧缓冲存储器来存储标量执行单元和向量执行单元的数据;和通过使用存储器接口而在标量执行单元和向量执行单元与帧缓冲存储器之间实施通信,其中所述帧缓冲存储器包括多个瓷砖片,且其中所述存储器接口针对向量执行单元或标量执行单元实施包括瓷砖片的第一顺序存取的第一流和包括瓷砖片的第二顺序存取的第二流。上述方法C还使第一流和第二流包含至少一个预取瓷砖片。上述方法C进一步包括源自帧缓冲存储器中的第一位置的第一流,和源自帧缓冲存储器中的第二位置的第二流。上述方法C还包括存储器接口经配置以管理来自多个不同起始位置并到达多个不同终止位置的多个不同流。在这个方面,所述起始位置中的至少一者或所述终止位置中的至少一者是系统存储器。上述方法C还包括通过使用建立在存储器接口中的DMA引擎以实施多次存储器读取以支持第一流和第二流;并实施多次存储器写入以支持第一流和第二流。另外,方法C包括第一流经历比第二流高的延迟量,其中第一流为对瓷砖片进行存储并入的缓冲器数量大于第二流。方法C还包括存储器接口经配置以预取第一流或第二流的可调节数目的瓷砖片从而补偿第一流或第二流的延迟。
D)此处描述的方法还概括地包含一种用于延迟容许视频处理操作的方法,所述方法包括:通过使用主机接口而在视频处理器与主机CPU之间建立通信;通过使用耦接到主机接口的标量执行单元来执行标量视频处理操作;通过使用耦接到主机接口的向量执行单元来执行向量视频处理操作;使向量执行单元能够在需求驱动基础上通过存取存储器 命令FIFO而操作;通过使用存储器接口而在视频处理器与帧缓冲存储器之间实施通信;和通过使用DMA引擎而在多个不同存储器位置之间实施DMA传递,所述DMA引擎建立在存储器接口中并经配置以向数据存储存储器和指令高速缓冲存储器中加载用于向量执行单元的数据和指令。上述方法D进一步包括向量执行单元经配置以通过存取命令FIFO来操作从而相对于标量执行单元异步操作以在需求驱动基础上操作。上述方法D还包括需求驱动基础经配置以隐藏从不同存储器位置到向量执行单元的命令FIFO的数据传递的延迟。此外,上述方法D还包括标量执行单元经配置以实施算法流量控制处理,且其中向量执行单元经配置以实施大多数的视频处理工作负载。在这种情况下,标量执行单元经配置以预计算向量执行单元的工作参数来隐藏数据传递延迟。上述方法D包括向量执行单元经配置以经由DMA引擎来调度存储器读取以预取用于随后执行向量子程序的命令。此处,存储器读取经调度以在由标量执行单元对向量子程序进行的调用之前预取用于执行向量子程序的命令。
附图说明
在附图的图式中,以举例方式且不以限制方式说明本发明,且其中相同参考数字表示类似元件,在附图中:
图1展示根据本发明一个实施例的计算机系统的基本组件的概览图。
图2展示描绘根据本发明一个实施例的视频处理器单元的内部组件的图。
图3展示根据本发明一个实施例的视频处理器的示范性软件程序的图。
图4展示使用视频处理器且根据本发明一个实施例将视频与子图片混合的实例。
图5展示描绘根据本发明一个实施例的向量执行的内部组件的图。
图6展示描绘根据本发明一个实施例具有对称的瓷砖片阵列的数据存储存储器的布局的图。
具体实施方式
现在将详细参考本发明的优选实施例,其实例在附图中说明。虽然将结合优选实施例描述本发明,但将理解,优选实施例并不意图将本发明限制于这些实施例。相反,本发明旨在涵盖可能包含在由所附权利要求书所界定的本发明的精神和范畴内的替代、修改和等效物。此外,在本发明实施例的下列详细描述中,陈述了许多特定细节以提供对本发明的透彻理解。然而,所属领域的技术人员将认识到,可在没有这些特定细节的情 况下实践本发明。在其它情况下,为了避免混淆本发明实施例的方面,不再详细描述众所周知的方法、程序、组件和电路。
符号和命名
下文详细描述的某些部分是在对计算机存储器内的数据位进行的操作的程序、步骤、逻辑块、处理和其它符号表示方面呈现的。这些描述和表示是数据处理领域的技术人员用来最有效地向所属领域的其他技术人员传达其工作的内容的手段。程序、计算机执行的步骤、逻辑块、处理等在此处且大体上设想成达到所要结果的自相一致的步骤或指令序列。所述步骤是那些需要对物理量进行物理操纵的步骤。通常,尽管并非必要,这些量采用能够在计算机系统中存储、传递、组合、比较和以其它方式操纵的电或磁信号的形式。事实证明,将这些信号表示为位、值、元素、符号、字符、术语、数字等有时候比较方便,主要是因为普遍使用的缘故。
然而,应了解,所有这些和类似术语均与适当的物理量相关,且仅仅是应用于这些量的方便的标记。除非通过以下论述显然另有具体规定,否则应了解,贯穿整个发明,使用例如“处理”或“存取”或“执行”或“存储”或“呈现”等的术语的论述是指计算机系统(如,图1的计算机系统100)或类似的电子计算装置的动作和处理,其将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操纵并变换成其它类似地表示为计算机系统存储器或寄存器或其它此类信息存储、传输或显示装置内的物理量的数据。
计算机系统平台:
图1展示根根本发明一个实施例的计算机系统100。计算机系统100描绘根据本发明实施例的基本计算机系统的组件,其为特定基于硬件的和基于软件的功能提供执行平台。通常,计算机系统100包括至少一个CPU 101、系统存储器115以及至少一个图形处理器单元(GPU)110和一个视频处理器单元(VPU)111。CPU 101可经由桥接组件105耦接到系统存储器115,或可经由CPU 101内部的存储器控制器(未图示)直接耦接到系统存储器115。桥接组件105(如,北桥)可支持连接各种I/O装置(如,一个或一个以上硬盘驱动器、以太网适配器、CD ROM、DVD等)的扩展总线。GPU 110和视频处理器单元111耦接到显示器112。一个或一个以上额外GPU可视情况耦接到系统100以进一步增加其计算能力。GPU 110和视频处理器单元111经由桥接组件105耦接到CPU101和系统存储器115。系统100可实施为(举例来说)具有耦接到专用图形渲染GPU 110的强大的通用CPU 101的台式计算机系统或服务器计算机系统。在此实施例中,可包含 添加外围总线、专门图形存储器和系统存储器、IO装置等的组件。同样,系统100可实施为手持装置(如,手机等)或机顶盒视频游戏控制台装置,例如(举例来说)从华盛顿州雷蒙德市的Microsoft Corporation购得的 或从日本东京的Sony ComputerEntertainment Corporation购得的
应了解,GPU 110可实施为分立组件、经设计以经由连接器(如,AGP槽、PCI-Express槽等)耦接到计算机系统100的分立图形卡、分立集成电路电路小片(如,直接安装在母板上)或为包含在计算机系统芯片组组件的集成电路电路小片内的集成GPU(如,集成在桥芯片105内)。另外,可包含本地图形存储器以用于GPU 110进行高带宽图形数据存储。另外,应了解,GPU 110和视频处理器单元111可集成在同一集成电路电路小片上(如,作为组件120),或可为以其它方式连接到计算机系统100的母板或安装到母板上的单独的分立集成电路组件。
本发明的实施例
图2展示描绘根据本发明一个实施例的视频处理器单元111的内部组件的图。如图2所说明,视频处理器单元111包含标量执行单元201、向量执行单元202、存储器接口203和主机接口204。
在图2实施例中,视频处理器单元(下文简称视频处理器)111包含用于执行视频处理操作的功能组件。视频处理器111使用主机接口204来经由桥接器105在视频处理器111与主机CPU 101之间建立通信。视频处理器111使用存储器接口203在视频处理器111与帧缓冲存储器205之间建立通信(如,用于耦接的显示器112,未图示)。标量执行单元201耦接到主机接口204和存储器接口203,且经配置以执行标量视频处理操作。向量执行单元耦接到主机接口204和存储器接口203,且经配置以执行向量视频处理操作。
图2实施例说明所述视频处理器111将其执行功能划分成标量操作和向量操作的方式。标量操作由标量执行单元201实施。向量操作由向量执行单元202实施。
在一个实施例中,向量执行单元202经配置以充当所述标量执行单元201的从协处理器。在此实施例中,标量执行单元管理通过将控制流馈入到向量执行单元202并管理向量执行单元202的数据输入/输出来管理所述向量执行单元202的工作负载。控制流通常包括函数参数、子程序自变量等等。在典型视频处理应用程序中,将在标量执行单元201上执行应用程序的处理算法的控制流,而将在向量执行单元202实施实际像素/数据处理操作。
仍参看图2,标量执行单元201可实施为并入有基于RISC的执行技术的RISC型标量执行单元。向量执行单元202可实施为SIMD机器,其具有(例如)一个或一个以上SIMD管线。在2SIMD管线实施例中,例如,每个SIMD管线可以16个像素宽度数据路径(或更宽)来实施,并因此向向量执行单元202提供原始计算能力以形成每时钟高达32个像素的结果数据输出。在一个实施例中,标量执行单元201包含经配置以使用VLIW(超长指令字)软件代码来操作的硬件,从而以每时钟为基础优化标量操作的并行执行。
在图2实施例中,标量执行单元201包含耦接到标量处理器210的指令高速缓冲存储器211和数据高速缓冲存储器212。高速缓冲存储器211-212与存储器接口203介接以用于存取外部存储器,例如(举例来说)帧缓冲器205。标量执行单元201进一步包含向量接口单元213以与向量执行单元202建立通信。在一个实施例中,向量接口单元213可包含一个或一个以上同步信箱区(mailbox)214,所述信箱区214经配置以实现标量执行单元201与向量执行单元202之间的异步通信。
在图2实施例中,向量执行单元202包含向量控制单元220,其经配置以控制向量执行数据路径、向量数据路径221的操作。向量控制单元220包含命令FIFO 225以从标量执行单元201接收指令和数据。指令高速缓冲存储器222经耦接以向向量控制单元220提供指令。数据存储存储器223经耦接以向向量数据路径221提供输入数据,并从向量数据路径221接收结果数据。数据存储器223充当用于向量数据路径221的指令高速缓冲存储器和数据RAM。指令高速缓冲存储器222和数据存储器223耦接到存储器接口203,以用于存取外部存储器,例如,帧缓冲器205。图2实施例还展示第二向量数据路径231和相应的第二数据存储器223(如,虚线轮廓)。应理解,展示第二向量数据路径231和第二数据存储器223以说明向量执行单元202具有两个向量执行管线(如,双SIMD管线配置)的情况。本发明的实施例适于具有较大数目的向量执行管线(如,四个、八个、十六个等)的向量执行单元。
标量执行单元201为向量执行单元202提供数据和命令输入。在一个实施例中,标量执行单元201使用存储器映射命令FIFO 225来向向量执行单元202发送函数调用。向量执行单元202命令在此命令FIFO 225中排队。
命令FIFO 225的使用会有效地将标量执行单元210与向量执行单元202去耦。标量执行单元201可根据其自身的相应时钟运作,从而以其自身的相应时钟频率来操作,所述时钟频率可与向量执行单元202的时钟频率不同,且与向量执行单元202的时钟频率 分离地控制。
命令FIFO 225使向量执行单元202能够作为需求驱动单元来操作。例如,可将工作从标量执行单元201转交给命令FIFO 225,且接着由向量执行单元202存取,从而以去耦异步方式进行处理。因此,向量执行单元202将按照标量执行单元201的需要或需求处理其工作负载。当不需要最大性能时,此功能将允许向量执行单元202保存功率(如,通过减少/停止一个或一个以上内部时钟)。
将视频处理功能划分成标量部分(如,由标量执行单元201执行)和向量部分(如,由向量执行单元202执行)允许将为视频处理器111建立的视频处理程序编译成单独的标量软件代码和向量软件代码。标量软件代码和向量软件代码可单独编译且随后链接到一起以形成连贯的应用程序。
所述划分允许向量软件代码函数被单独写入,且与标量软件代码函数不同。例如,向量函数可被单独写入(如,在不同时间,通过不同的工程师团队等)且可作为一个或一个以上子程序或库函数而提供,以供通过/利用标量函数(如,标量线程、处理等)使用。这允许标量软件代码和/或向量软件代码的单独独立更新。例如,向量子程序可与标量子程序相独立地更新(如,通过更新先前分配的程序,添加新特征以增加分配的程序的功能等),或反之亦然。通过标量处理器210与向量控制单元220及向量数据路径221的单独各自的高速缓冲存储器来促进所述划分,例如,标量处理器210的高速缓冲存储器为高速缓冲存储器211-212,向量控制单元220及向量数据路径221的高速缓冲存储器为高速缓冲存储器222-223。如上所述,标量执行单元201和向量执行单元202经由命令FIFO 225来通信。
图3展示根据本发明一个实施例的视频处理器111的示范性软件程序300的图。如图3所描绘,软件程序300说明视频处理器111的编程模型的属性,藉此由视频处理器111结合向量数据线程302来执行标量控制线程301。
图3实施例的软件程序300的实例说明视频处理器111的编程模型,藉此标量执行单元201上的标量控制程序(如,标量控制线程301)对向量执行单元202执行子程序调用(如,向量数据线程302)。软件程序300的实例展示编译器或软件编程者将视频处理应用程序分解成标量部分(如,第一线程)和向量部分(如,第二线程)的情况。
如图3所示,在标量执行单元201上运行的标量控制线程301提前计算工作参数,并将这些参数馈入到向量执行单元202,所述向量执行单元执行大多数处理工作。如上文所述,用于两个线程301和302的软件代码可单独写入和编译。
标量线程负责如下:
1.与主机单元204介接并实施分类介接(class interface);
2.向量执行单元202的初始化、设置和配置;及
3.以回路形式在工作单元、程序块(chunk)或工作组中执行算法,使得通过每次迭代:
a.计算用于当前工作组的参数;
b.启动将输入数据传递到向量执行单元中的传递;和
c.启动来自向量执行单元的输出数据的传递。
标量线程的典型执行模型是“即发即弃(fire-and-forget)”。术语“即发即弃”是指这样一种属性:其中,针对视频基带处理应用程序的典型模型,将命令和数据从标量执行单元201发送到向量执行单元202(如,经由命令FIFO 225)且没有从向量执行单元202返回的数据,直到算法完成为止。
在图3的程序300的实例中,标量执行单元201将一直为向量执行单元202调度工作,直到命令FIFO 225中不存在任何空间(如,!end_of_alg&!cmd_fifo_full)为止。由标量执行单元201调度的工作计算参数并将这些参数发送到向量子程序,且随后调用向量子程序以执行所述工作。向量执行单元202对子程序(如,vector_funcB)的执行在时间上被延迟,主要用于隐藏来自主存储器(如,系统存储器115)的延迟。因此,视频处理器111的架构在向量执行单元202侧为指令和数据通信两者提供延迟补偿机构。将在下文更详细地描述这些延迟补偿机构。
应注意,软件程序300的实例在存在两个或两个以上向量执行管线(如,图2的向量数据路径221和第二向量数据路径231)的情况下将会更复杂。同样地,软件程序300的实例在程序300被写入用于具有两个向量执行管线的计算机系统但仍保持可在具有单个向量执行管线上执行的能力的那些情形下将会更复杂。
因此,如上文图2和图3的论述中所描述,标量执行单元201负责在向量执行单元202上启动计算。在一个实施例中,从标量执行单元201传递到向量执行单元202的命令的主要类型如下:
1.读取命令(如,memRd),其由标量执行单元201启动以将当前工作组数据从存储器传递到向量执行单元202的数据RAM;
2.从标量执行单元201传递到向量执行单元202的参数;
3.执行命令,其呈待执行的向量子程序的PC(如,程序计数)的形式;和
4.写入命令(如,memWr),其由标量执行单元201启动以将向量计算的结果复制到存储器中。
在一个实施例中,一接收到这些命令,向量执行单元202就立即将memRd命令调度到存储器接口203(如,以从帧缓冲器205读取所请求的数据)。向量执行单元202还检查所述执行命令并预取待执行的向量子程序(如果未存在于高速缓冲存储器222中)。
在此情形下向量执行单元202的目标是在向量执行单元202致力于当前的执行时,提前调度接下来的一些新的执行的指令和数据流。提前调度特征会有效地隐藏从指令/数据的存储器位置取指令/数据时涉及的延迟。为了提前进行这些读取请求,通过使用高速优化的硬件来实施向量执行单元202、数据存储器(如,数据存储器223)和指令高速缓冲存储器(如,高速缓冲存储器222)。
如上文所述,数据存储器(如,数据存储器223)充当向量执行单元202的工作RAM。标量执行单元201感知数据存储器,并与其相互作用,仿佛它是FIFO的集合一样。FIFO包括“流”,视频处理器111通过所述“流”进行操作。在一个实施例中,流通常是标量执行单元201启动传递(如,向向量执行单元202)所进入的输入/输出FIFO。如上所描述,标量执行单元201和向量执行单元202的操作被去耦。
一旦输入/输出流满了,向量控制单元220内的DMA引擎就停止处理命令FIFO 225。这很快导致命令FIFO 225满。当命令FIFO 225满时,标量执行单元201停止向向量执行单元202发布额外工作。
在一个实施例中,向量执行单元202除了输入和输出流之外可能还需要中间流。因此,可将整个数据存储器223看作是关于与标量执行单元201进行相互作用的流的集合。
图4展示使用根据本发明一个实施例的视频处理器将视频与子图片混合的实例。图4展示视频表面与子图片进行混合且接着转换成ARGB表面的示范性情况。包括所述表面的数据作为亮度参数412和色度参数413驻留于帧缓冲存储器205中。子图片像素元件414也如所示驻留于帧缓冲存储器205中。向量子程序指令和参数411如所示例示于存储器205中。
在一个实施例中,每个流包括称作“瓷砖片”的数据的工作2D程序块的FIFO。在此实施例中,向量执行单元202为每个流维持读取瓷砖片指针和写入瓷砖片指针。例如,对于输入流而言,当执行向量子程序时,向量子程序可从当前(读取)瓷砖片中进行消耗或读取。在后台中,数据通过memRd命令传递到当前(写入)瓷砖片。向量执行单元还可为输出流产生输出瓷砖片。接着,这些瓷砖片通过在执行命令之后的memWr()命令 移动到存储器。这有效地预取瓷砖片且使其做好准备以对其进行操作,从而有效地隐藏延迟。
在图4的子图片混合实例中,向量数据路径221通过向量子程序指令和参数411的例示性情形(如,&v_subp_blend)来配置。这由线421展示。标量执行单元201在表面的程序块(如,瓷砖片)中读取,并使用DMA引擎401(如,在存储器接口203内)将其加载到数据存储器223中。加载操作由线422、线423和线424展示。
仍参看图4,因为存在多个输入表面,所以需要维持多个输入流。每个流均具有相应的FIFO。每个流可具有不同数目的瓷砖片。图4的实例展示以下情况:子图片表面处于系统存储器115(如,子图片像素元件414)中,且因此将具有额外的缓冲(如,n、n+1、n+2、n+3等),而视频流(如,亮度412、色度413等)可具有较小数目的瓷砖片。可根据流所经历的延迟的程度来调节缓冲器/FIFO的数目。
如上文所述,存储器223利用先行预取(look ahead prefetch)法来隐藏延迟。由于此,随着针对适当的向量数据路径执行硬件预取数据,流可具有两个或两个以上瓷砖片的数据(例如,如FIFO n、n+1、n+2等所描绘)。
一旦加载数据存储器,就通过向量数据路径硬件221存取FIFO,并通过向量子程序(如,子程序430)对其进行操作。向量数据路径操作的结果包括输出流403。这个输出流由标量执行单元201经由DMA引擎401复制回到帧缓冲存储器205中(如,ARGB_OUT415)。这由线425展示。
因此,本发明的实施例利用流处理的重要方面,所述重要方面是数据存储装置和存储器被抽象化为多个存储器瓷砖片。因此,流可被视为顺序存取的瓷砖片的集合。使用流来预取数据。此数据是瓷砖片的形式。预取所述瓷砖片以隐藏来自特定存储器源的延迟,所述数据源自所述特定存储器源(如,系统存储器、帧缓冲存储器等)。同样,可将所述流指定到不同位置(如,向量执行单元的高速缓冲存储器、标量执行单元的高速缓冲存储器、帧缓冲存储器、系统存储器等)。流的另一特征是其通常以先行预取模式存取瓷砖片。如上文所述,延迟越高,预取就越深且每流所用的缓冲就越多(例如,如图4所描绘)。
图5展示根据本发明一个实施例的向量执行单元的内部组件的图表。图5的图表展示从编程角度来看各种功能单元和向量执行单元202的寄存器/SRAM资源的布置。
在图5的实施例中,向量执行单元202包括经优化以用于实施视频基带处理和执行各种编解码(压缩解压缩算法)的VLIW数字信号处理器。因此,向量执行单元202具 有许多针对于增加视频处理/编解码执行的效率的属性。
在图5的实施例中,所述属性包括:
1.通过提供用于合并多个向量执行管线的选择的可调整的性能;
2.每个管分配2个数据地址产生器(DAG);
3.存储器/寄存器操作数;
4.2D(x、y)指针/迭代程序;
5.较深管线(如,11-12)级;
6.标量(整数)/分支单元;
7.可变指令宽度(长/短指令);
8.用于操作数提取的数据对准程序(aligner);
9.典型操作数和结果的2D数据路径(4×4)形状;和
10.标量执行单元的从向量执行单元,其执行远程程序调用。
通常,编程者将向量执行单元202看作具有2个DAG 503的SIMD数据路径。指令以VLIW方式发布(如,同时为向量数据路径504和地址产生器503发布指令)且通过指令解码器501解码并分派到适当的执行单元。所述指令具有可变长度,其中多数普遍使用的指令以短形式编码。全指令集可具有长形式,如VLIW型指令。
图例502展示具有三个此种VLIW指令的时钟循回路。根据图例510,最上的VLIW指令502包括两个地址指令(如,用于2个DSG 503)和一个用于向量数据路径504的指令。中间VLIW指令包括一个整数指令(如,用于整数单元505)、一个地址指令和一个向量指令。最下的VLIW指令包括分支指令(如,用于分支单元506)、一个地址指令和一个向量指令。
向量执行单元可经配置以具有单个数据管或多个数据管。每个数据管由本地RAM(如,数据存储器511)、交叉矩阵516、2个DAG 503和SIMD执行单元(如,向量数据路径504)组成。图5展示说明性目的的基本配置,其中仅例示1个数据管。当例示2个数据管时,其可作为独立线程或作为协作线程运行。
可经由地址寄存器文件单元515存取六个不同端口(如,4个读取和2个写入)。这些寄存器接收来自标量执行单元的参数或者整数单元505或地址单元503的结果。DAG503还充当集合控制器并管理寄存器的分配以处理数据存储器511的内容(如,RA0、RA1、RA2、RA3、WA0和WA1)。交叉矩阵516经耦接以将输出数据端口R0、R1、R2、R3按任何次序/组合分配到向量数据路径504中,以实施给定指令。向量数据路径504的输 出可如所示被馈入回到数据存储器511中(如,W0)。常量RAM 517用于从整数单元505向向量数据路径504和数据存储器511提供经常使用的操作数。
图6展示描绘根据本发明一个实施例的存储器600的多个库601-604和具有瓷砖片610的对称阵列的数据存储器的布局。如图6中所描绘,为了说明性目的,仅展示数据存储器610的一部分。数据存储器610逻辑上包括瓷砖片的阵列。每个瓷砖片是4×4形状的子瓷砖片阵列。物理上,如存储器600所示,数据存储器610存储在存储器的“N”个物理库(如,库601-604)的阵列中。
另外,数据存储器610视觉上描绘流中的逻辑瓷砖片。在图6的实施例中,这个瓷砖片是16个字节高且16个字节宽。这个瓷砖片是子瓷砖片的阵列(在此实例中为4×4)。每个瓷砖片存储在物理库中。这在图6中在存在8个物理存储器库(如,库0到7)的情况下,由每个4×4子瓷砖片内的数字所示。用使得在2×2的子瓷砖片配置中不存在普通库的方式在库中进行子瓷砖片的组织。这使得任何未对准的存取(如,在X和Y两个方向上)成为可能,而不会有任何库的冲突。
库601-604可经配置以支持对每个库的不同瓷砖片的存取。例如,在一种情况下,交叉矩阵516可从库601中存取瓷砖片的2×4组(如,库601的前两行)。在另一种情况下,交叉矩阵516可从两个相邻库中存取瓷砖片的1×8组。类似地,在另一情况下,交叉矩阵516可从两个相邻库中存取瓷砖片的8×1组。在每种情况下,DAG/控制器503可在交叉矩阵516存取所述库时接收所述瓷砖片,并以每时钟为基础向向量数据路径504的前端提供那些瓷砖片。
以此方式,本发明的实施例提供一种新的视频处理器架构,所述架构在有效地利用集成电路硅片面积、晶体管数、存储器速度要求等等的同时支持高级的视频处理功能。本发明的实施例维持高计算密度,并可容易地调整以处理多个视频流。本发明的实施例可提供许多高级的视频处理操作,例如(举例来说),MPEG-2/WMV9/H.264编码辅助(如,回路内解码器)、MPEG-2/WMV9/H.264解码(如,后熵解码(post entropy decoding))和回路内/回路外解块滤波器。
本发明的实施例提供的额外的视频处理操作包含(例如)高级的运动自适应去隔行、用于编码的输入噪声滤波、多相缩放/重新取样和子图片复合。本发明的视频处理器架构还可用于特定视频处理器-放大器(procamp)应用,例如(举例来说)色空间转换、色空间调节、像素点操作(如,锐化、直方图调整等)和各种视频表面格式转换。
概括而言且不作为限制,本发明揭示如下内容。描述了一种用于执行视频处理操作 的延迟容许系统。所述系统包含主机接口,其用于在视频处理器与主机CPU之间实施通信;标量执行单元,其耦接到主机接口且经配置以执行标量视频处理操作;和向量执行单元,其耦接到主机接口且经配置以执行向量视频处理操作。包含命令FIFO以使向量执行单元能够通过存取存储器命令FIFO而在需求驱动基础上操作。包含存储器接口以用于在视频处理器与帧缓冲存储器之间实施通信。在存储器接口中建立DMA引擎,以用于在多个不同的存储器位置之间实施DMA传递,并向命令FIFO中加载用于向量执行单元的数据和指令。描述了一种用于执行视频处理操作的视频处理器。视频处理器包含主机接口,以用于在视频处理器与主机CPU之间实施通信。包含存储器接口以用于在视频处理器与帧缓冲存储器之间实施通信。标量执行单元耦接到主机接口和存储器接口,并经配置以执行标量视频处理操作。向量执行单元耦接到主机接口和存储器接口并经配置以执行向量视频处理操作。描述了一种用于执行视频处理操作的用于视频处理器的多维数据路径处理系统。所述视频处理器包含经配置以执行标量视频处理操作的标量执行单元和经配置以执行向量视频处理操作的向量执行单元。包含数据存储存储器以用于存储向量执行单元的数据。数据存储存储器包含多个瓷砖片,所述瓷砖片具有以阵列形式布置的对称库数据结构。库数据结构经配置以支持对每个库的不同瓷砖片的存取。描述了一种用于执行视频操作的用于视频处理器的基于流的存储器存取系统。所述视频处理器包含经配置以执行标量视频处理操作的标量执行单元和经配置以执行向量视频处理操作的向量执行单元。包含帧缓冲存储器以用于存储标量执行单元和向量执行单元的数据。包含存储器接口,以在标量执行单元和向量执行单元与帧缓冲存储器之间建立通信。帧缓冲存储器包括多个瓷砖片。存储器接口实施瓷砖片的第一顺序存取并实施包括用于向量执行单元或标量执行单元的瓷砖片的第二顺序存取的第二流。
出于说明和描述的目的,已经提供对本发明的特定实施例的上文描述。上文描述不希望为排他的或将本发明限制于所揭示的精确形式,且根据上文的教示许多修改和变化都是可能的。选择并描述所述实施例以最好的解释本发明的原理和其实际应用,以藉此使所属领域的其它技术人员能够最好地用适于所预期的特定使用的各种修改来利用本发明和各种实施例。希望本发明的范围由所附的权利要求书和其等效物界定。
1综述
VP2是耦接到标量控制处理器的VLIW SIMD视频DSP。其主要关注于视频编解码和视频基带处理。
1.1VP2.0的精髓
效率:VP2.0在perf/mm2和perf/mW方面将是视频应用的计算效率较高的机器。
可编程性:其将会是高度可编程、易兼容且编程更安全的机器。
可调整性:VP2.0的设计/架构应当可调整以匹配多个应用领域的性能要求。
1.2设计目标
·计算密度
о提供显著优于VP1.0的perf/mm2优点。
о有效实施新应用领域,如H.264。
·HW中的延迟容许解除了SW开发工程师的负担
о通过将存储器存取和计算重新排序来隐藏数据获取延迟。
о指令流的自动预取。
·隐藏数据路径延迟
о中间结果的选择性转发。
о流计算模型。
·可调整性:
о架构上VP2向量单元可将其数据路径向上调整2×且向下调整1/2×。
о可通过选择性重设管线来实现频率改进。
1.3应用对象
VP2.0的设计和指令集将被优化从而非常有效地执行下列应用。
·mpeg2/wmv9/H.264编码辅助(回路内解码器)
·mpeg2/wmv9/H.264解码(后熵解码)
·回路内/回路外解块滤波器。
·高级的运动自适应去隔行
·用于编码的输入噪声滤波
·多相缩放/重新取样
·子图片复合
·处理放大(procamp)、色空间转换、调整、像素点操作(例如,锐化、直方图调整等)。
·各种视频表面格式转换支持
架构上VP2.0可在下列领域有效
·2D图元、块图像传输(blit)、旋转等。
·基于精细化的软件运动估计算法。
·16/32位MAC应用。
2顶层架构
VP2.0机器划分成标量和向量处理器。向量处理器充当标量处理器的从协处理器。标量处理器负责向向量处理器馈入控制流(参数、子程序自变量)并且还管理到达向量处理器中的数据I/O。将在标量机器上执行算法的所有控制流,而将在向量处理器上执行实际的像素/数据处理操作。
标量处理器将是典型的RISC型标量器且向量协处理器是SIMD机器,其具有1或2个SIMD管(每个SIMD管具有16个像素数据路径)。因此,向量协处理器可产生高达32个结果像素作为原始计算能力。
标量处理器使用存储器映射命令FIFO向向量协处理器发送函数调用。协处理器命令在此FIFO中排队。标量处理器使用此FIFO与向量处理器完全去耦。标量处理器可根据其自身的时钟运行。向量处理器作为需求驱动单元操作。
VP2.0的顶层图表给定如下。
VP2.0程序可被编译成单独的标量代码和向量代码,且接着可随后链接在一起。分别地,向量函数可被单独地写入且可被提供为标量线程的子程序或库函数。标量处理器 具有其自身的指令和数据高速缓冲存储器。向量单元也具有指令高速缓冲存储器和数据RAM(称为数据存储器)。这两个引擎被去耦,并通过FIFO进行通信。
3.简单编程模型
VP2.0的最简单编程模型是对向量从协处理器执行子程序调用的标量控制程序。此处存在固有的假设,即编程者将所述问题分解成这2个线程。在标量处理器上运行的线程运行在提前计算工作参数并将其馈入到作为主要设备的向量处理器。期望这两个线程的程序被单独写入和编辑。
标量线程负责如下。
1.与主机单元介接并实施分类介接。
2.向量单元的初始化、设置和配置。
3.以回路形式在工作单元、程序块或工作组中执行算法,使得通过每次迭代:
a.计算用于当前工作组的参数;
b.启动将输入数据传递到向量处理器中的传递;和
c.启动来自向量处理器的输出数据的传递。
标量线程的典型执行模型是“即发即弃(fire-and-forget)”。期望此为视频基带处理的典型模型,其中没有从向量协处理器返回的数据。标量处理器将一直为向量处理器调度工作,直到在命令FIFO中存在空间为止。向量处理器对子程序的执行在时间上被延迟,主要是因为来自主存储器的延迟。因此,在向量侧提供延迟补偿机构很重要。在VP2.0中,向量处理器为指令和数据通信两者提供延迟补偿。在下文章节中概述所述机构。
典型的VP程序看起来如下
更复杂的编程模型是当我们具有2个数据管时。或当我们想要为2个数据管写入代 码,且使其在1个数据管机器上执行时。在章节6中研究所述编程模型。
4.流模型。
如同前面所概述的,标量引擎负责在向量处理器上启动计算。从标量引擎传递到向量引擎的命令的主要类型如下:
1.读取命令(memRd),其由标量启动以将当前工作组数据从存储器传递到向量引擎的数据RAM。
2.从标量传递到向量的参数。
3.执行命令,其呈待执行的向量子程序的PC的形式。
4.写入命令(memWr),其由标量启动以将向量计算的结果复制到存储器中。
一接收到这些命令,向量处理器就立即将memRd命令调度到帧缓冲器(FB)接口。其还检查所述执行命令并预取待执行的向量子程序(如果未存在于高速缓冲存储器中)。一个目标是当向量引擎致力于当前执行的同时,提前调度接下来的若干新的执行的指令和数据流。为了提前进行这些读取请求,向量引擎在硬件中管理数据存储器和指令高速缓冲存储器。
数据存储器是向量处理器的工作RAM。标量处理器将此数据存储器看作是FIFO的集合或流。流基本上是标量启动传递所进入的输入/输出FIFO。一旦输入/输出流满,那么向量DMA引擎就停止处理来自标量的命令FIFO,很快使得其变满。因此,标量停止向向量引擎发布更多的工作。除了输入与输出流之外,向量可能还需要中间流。因此,整个数据存储器可看作是来自标量侧的流的集合。每个流是称作瓷砖片的工作的2D程序块的FIFO。向量处理器为每个流维持读取瓷砖片指针和写入瓷砖片指针。对于输入流而言,当执行向量子程序时,向量子程序可从当前(读取)瓷砖片中进行消耗或读取。在后台中,数据通过memRd命令传递到当前(写入)瓷砖片。向量处理器还可为输出流产生输出瓷砖片。接着,这些瓷砖片通过在执行命令之后的memWr()命令移动到存储器。
通过将视频与子图片混合的实例来说明此模型。例如,考虑视频表面(如,NV12格式)与子图片混合且接着被转换成ARGB表面的简单化的实例。这些表面驻留于存储器中。标量处理器读取这些表面的程序块(瓷砖片)并将其加载到数据存储器中。因为存在多个输入表面,所以我们不得不维持多个输入流。每个流可具有不同数目的瓷砖片(如,在此实例中,我们可假定子图片表面处于系统存储器中,因此我们应对其进行更多缓冲),而视频流可具有较少数目的瓷砖片。
5.向量协处理器
VP2的向量协处理器是经设计而用于视频基带处理和编解码的VLIM DSP。此处理器的一些重要设计属性包括:
1.可调整性能,1或2个数据管。
2.每个管具有2个数据地址产生器(DAG)
3.存储器/寄存器操作数
4.2D(x、y)指针/迭代程序
5.较深管线(11-12)级
6.标量(整数)/分支单元
7.可变指令宽度(长/短指令)
8.用于操作数提取的数据对准程序(aligner)
9.典型操作数和结果的2D数据路径(4×4)形状
10.标量处理器的从处理器,其执行远程程序调用。
在最简单的方面,编程者将向量协处理器看作是具有2个DAG的SIMD数据路径。指令以VLIW方式发布(即,同时为向量数据路径和地址产生器发布指令)。所述指令具有可变长度,其中多数普遍使用的指令以短形式编码。全指令集可具有长形式。例如从编程者的角度来看,各种功能单元和寄存器/SRAM资源的布置如下所示。
向量单元例示单数据管或双数据管。每个数据管由本地RAM(数据存储器)、2个DAG和SIMD执行单元组成。在基本配置中,仅存在1个数据管。当存在两个数据管时,其可作为独立的线程或作为协作的线程而运行。下文描述向量处理器的完整的管线图表。此处是具有2个数据管的完整配置。
6高级编程模型
在章节3中,介绍RPC模型以说明所述基本架构。在此章节中,介绍了更高级的概念。
6.1双数据管配置
在双管配置中,共享处理器的下列资源。
·标量控制器
·向量协处理器中的向量控制单元
·用于指令/数据获取的DMA引擎
·指令高速缓冲存储器(可为双端口的)
复制下列资源
·数据管(地址/分支/向量执行单元)
·数据存储器
·寄存器文件
应注意:
1.在仅有1个管的实例上,程序可被写入以用于2个管。向量控制单元将在同一物理管上映射每个管的执行。然而,因为两个管的流仅存在于一个数据存储器中,所以要调节数据存储器的大小。简单的方法是将流中的瓷砖片的瓷砖片大小或数目分两半。这将在配置时间通过标量线程来完成。存在如全局寄存器的复制和流映射这样的需要在微架构级解决的问题。
2.写入以用于1个管的程序可在具有2个管的实例上运行。然而,这个代码将仅在一个管上运行且不使用另一个。机器将会半空闲。
3.程序可被写入以用于2个管,每个管运行2个完全不同的线程。这不一定是优选的,因为我们仅具有非多线程的单个标量。因为我们仅支持一个标量执行线程,所以这可能不是优选的,然而,还是可以支持这个模型。
4.程序可被写入以用于2个管,每个管运行相同线程。这是典型的希望用于可并行化算法(例如,大多数视频基带处理)的模型。这允许使用相同指令流对两个视频条或两个半个视频条等进行操作。每个数据管具有其自身的执行单元和数据存储器。标量控制器必须馈入2个数据管。然而,所述参数、读取和写入命令彼此相关(补偿(offset)),因此标量性能要求并不是正好两倍。这个模型的实例展示如下。
5.可有在2个协作线程的情况下写入程序。这是期望用于编解码的模型,其中我们具有单个标量控制线程,但可能需要多个函数向量功能块连接在一起。这类似功能块的direct-show引脚模型(pin model)。此应用的实例展示如下。因为我们仅具有2个数据管,所以这个模型仅被限制用于两个协作线程。另一警告是应在两个线程之间平衡线程。否则,存在性能损耗。在这些约束内,这个模型将在2个数据管上工作,且可调整回单个管。
6.两个数据管可彼此同步。用于同步的基本方法是数据驱动。当数据可用于处理时,执行向量函数。通过从存储器进行读取或从其他数据管进行写入来填充所述流。一旦数据可用,向量控制单元将激活执行并运行它。所述流还可用作计数信号标(semaphore)。标量控制器和向量数据管均可递增并递减所述瓷砖片指针并使用流描述符作为计数信号标,甚至当不存在数据传递时也是如此。
补充综述:
通常,本发明的实施例执行如下:
1.将媒体算法分解成标量和向量部分。
现货供应的标量设计,且其还向我们提供基于标量和向量部分的能力和性能要求而以不同时钟速度运行标量和向量部分的能力。
2.流处理。
3.2D数据路径处理。
4.延迟隐藏(针对数据和命令获取两者)
应用领域:
加密:
操作码隐藏
加密程序可仅位于芯片上。标量/控制器块仅请求执行特定操作,且加密引擎将获取所述指令等。因为标量甚至都不能看到什么算法在运行,所以其非常安全。其提供用于对用户隐藏加密算法的机构。
2D
VP2指令集架构支持用于2D处理的指令。这些指令包括在许多GUI/window系统中使用的ROP3和ROP4支持。这允许媒体处理器在媒体处理器上运行2D操作。此处的固有优点是节省功率。
ISA
作为指令槽的条件代码:
针对条件代码操作,我们具有单独的发布槽(issue slot)(在我们的多个发布指令束中)。现有技术是人们使用SIMD指令,所述SIMD指令也可影响条件代码/断言寄存器。但是通过在VP2中所采用的方法,数据处理和断言寄存器处理可独立地进行调度,所以会导致较高性能。
存储器I/O
微码DMA引擎:
DMA引擎可经编程(或可具有自身较小的微码)来执行各种操作,如,用于流的数据预取、对数据格式进行格式化、边缘填充等。通常,可编程DMA引擎且非接线功能。因此存储器I/O处理器与媒体处理核心的结合增加了总体的系统层性能。媒体处理器核心不再必须进行数据I/O处理。
存储器阶层架构:
在VP2架构中,优化存储器阶层以最小化存储器BW并提供延迟补偿。提供许多不同方案,例如
-流数据存储器的第一层,其作为擦除随机存取存储器对于向量核心来说是可见的。由HW管理以先行进入由标量处理器产生的请求流。这个存储器视情况可由L2高速缓冲存储器支持,以用于数据再利用。L2高速缓冲存储器可以流为基础划分成各区段。
-L1高速缓冲存储器,其由流数据存储器支持。数据存储器预取下一个相关数据组。
-使用流指针作为数据标记的高速缓冲存储器。
-使用标量产生的流地址来预取/高速缓存L1数据存储器和L2高速缓冲存储器。
优化的标量-向量通信链路:
MemRd/Wr格式:
压缩来自标量的命令以用于将系统存储器读取并写入到本地存储器中。节省管理DMA引擎需要的控制流带宽。同时,不限制所支持的事务的类型。
针对向量L2推测标量2向量:
参数压缩支持减少通信带宽的参数修改程序和迭代程序。
管线高速缓冲存储器:
管线指令高速缓冲存储器。支持多种方案,例如
-通过追踪在向量与标量处理器之间运行的执行来管理每个高速缓冲存储器线的生存周期。这允许指令在向量处理器开始执行之前准备就绪。如果指令不是已经存在于高速缓冲存储器中,那么对其进行预取。
-对于较小延迟配置而言,通过使指令变成小FIFO来将指令高速缓冲存储器最小化。已经存在于FIFO中的执行可被再利用,否则,其可被再次获取。
整体架构:
可在各种处理元件之间共享数据存储器。这些通过流进行通信,且可彼此馈入。这一架构可具有一组异类的功能单元,如SIMD向量核心、DMA引擎、通过流连接的固定功能单元。
计算/DP
任意/灵活的形状/半个管:
数据路径以可变形状操作。数据路径的形状可经配置以匹配问题组(problem set)。通常人们使用1D数据路径。VP2可处理可为可变大小4×4、8×4、16×1等的形状来匹配算法。
可调整性:
VP2数据路径架构使用指令护送技术(注意,我们具有16路SIMD管,其中每个操作数为1个字节宽。我们可具有8路SIMD管(使2个管为一组)且具有较宽的SIMD数据路径,其中每个操作数为2个字节,且同样地,我们可具有4路SIMD管(使4个管为一组)且具有较宽的SIMD数据路径,其中每个操作数为4个字节。)以在较窄的数据路径上通过多个循回路来执行较宽的SIMD指令,从而节省面积。
如,VP2可将数据路径从16路SIMD调整为8路SIMD。
耦接字节通道。
耦接SIMD路以增加操作数宽度。例如,当前16路SIMD具有8位操作数。对于8路SIMD,可将其增加到16位操作数,且对于4路SIMD,可将其增加到32位操作数。
SIMD地址产生器
用于SIMD管的每个路的单独的流地址产生器。
VP2可使用SIMD地址产生器,它的请求可结合到对数据存储器的最小存取中。
使用交叉矩阵和采集器的数据扩展
有能力使用交叉矩阵来产生更多的数据操作数。减少读取端口压力并节省功率。
X2指令:
不是所有的指令都可在数据路径中使用所有的HW元件(加法器/乘法器)。所以对于简单的指令(如,add/sub),我们可比复杂的指令处理更宽的数据形状。所以代替将性能限制到最小共同大小,VP2使用灵活的指令集,只要读取端口可维持所述操作带宽,其就寻求机会来试图以较宽形状操作。
多线程/多核心媒体处理。
VP2架构支持各种多线程选项,例如
-多线程标量处理器在通过流连接的多个向量单元上调度程序调用。
-多个线程根据指令/通过指令或者通过执行线程切换在单个向量引擎上运行。
使用不同向量/标量进行功率管理
通过去耦的标量和向量部分,你可基于功率和性能要求以不同速度运行这2个块。
上下文切换:
这个媒体处理器由于其不具有寄存器的架构而具有支持非常快的上下文切换的能力。存在HW支持,用以追踪标量2向量命令队列和将其保存并重放以实现上下文切换。同样可在页面故障时启动上下文切换。
这使得媒体处理器能够维持实时处理任务,如输入/输出显示处理,同时能够支持非实时任务(如2D加速或准时视频增强)以馈入显示管线。
这个上下文切换能力连同其指令集允许VP2为统一的像素/编解码处理。
数据存储器组织:
VP2使用具有下列管线的数据存储器组织
每个方向上有高达16个像素可被存取,而不存在库冲突。完成上述动作的同时可保持跨距请求最小。
数据存储器组织允许数据形状的有效调换。
2D寻址是所支持的内部数据存储器,在大多数媒体处理应用(如,视频)中消除了线性地址的SW计算。
应用
架构
编程模型
Claims (11)
1.一种用于执行视频处理操作的视频处理器,其包括:
主机接口,其用于在所述视频处理器与主机CPU之间实施通信;
存储器接口,其用于在所述视频处理器与帧缓冲存储器之间实施通信;
标量执行单元,其耦接到所述主机接口和所述存储器接口,且经配置以执行标量视频处理操作;
向量执行单元,其耦接到所述主机接口和所述存储器接口,且经配置以执行向量视频处理操作;和
与所述向量执行单元相关联的命令FIFO,其中所述标量执行单元经配置以通过所述命令FIFO向所述向量执行单元发送函数调用直到所述命令FIFO被填满为止,且其中所述向量执行单元在需求驱动基础上通过存取存储器命令FIFO来操作,其中所述向量执行单元可操作用于响应每个所述函数调用来执行多个指令。
2.一种用于执行视频处理操作的系统,其包括:
母板;
主机CPU,其耦接到所述母板;
根据权利要求1所述的所述视频处理器,其耦接到所述母板且耦接到所述CPU。
3.根据权利要求1所述的视频处理器,其中所述标量执行单元充当所述视频处理器的控制器并控制所述向量执行单元的操作。
4.根据权利要求1所述的视频处理器,其进一步包括向量接口单元,所述向量接口单元用于介接所述标量执行单元与所述向量执行单元。
5.根据权利要求1所述的视频处理器,其中所述标量执行单元和所述向量执行单元经配置以异步操作。
6.根据权利要求5所述的视频处理器或根据权利要求2所述的系统,其中所述标量执行单元以第一时钟频率执行,且所述向量执行单元以第二时钟频率执行。
7.根据权利要求1所述的视频处理器或根据权利要求2所述的系统,其中所述标量执行单元经配置以执行应用程序的流量控制算法,且所述向量执行单元经配置以执行所述应用程序的像素处理操作。
8.根据权利要求7所述的视频处理器或系统,其中所述向量执行单元经配置以在需求驱动基础上在所述标量执行单元的控制下操作。
9.根据权利要求7所述的视频处理器或系统,其中所述标量执行单元经配置以使用命令FIFO向所述向量执行单元发送函数调用,且其中所述向量执行单元在需求驱动基础上通过存取所述命令FIFO来操作。
10.根据权利要求5所述的视频处理器,其中所述视频处理器的所述异步操作经配置以支持应用程序的向量子程序或标量子程序的分离的独立更新。
11.根据权利要求1所述的视频处理器,其中所述标量执行单元经配置以使用VLIW(超长指令字)代码来操作。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62841404P | 2004-11-15 | 2004-11-15 | |
US60/628,414 | 2004-11-15 | ||
US11/267,700 US8698817B2 (en) | 2004-11-15 | 2005-11-04 | Video processor having scalar and vector components |
US11/267,638 US8493396B2 (en) | 2004-11-15 | 2005-11-04 | Multidimensional datapath processing in a video processor |
US11/267,700 | 2005-11-04 | ||
US11/267,638 | 2005-11-04 | ||
US11/267,875 | 2005-11-04 | ||
US11/267,875 US8687008B2 (en) | 2004-11-15 | 2005-11-04 | Latency tolerant system for executing video processing operations |
US11/267,599 US8416251B2 (en) | 2004-11-15 | 2005-11-04 | Stream processing in a video processor |
US11/267,599 | 2005-11-04 | ||
PCT/US2005/041329 WO2006055546A2 (en) | 2004-11-15 | 2005-11-14 | A video processor having a scalar component controlling a vector component to implement video processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101371233A CN101371233A (zh) | 2009-02-18 |
CN101371233B true CN101371233B (zh) | 2012-10-17 |
Family
ID=40414018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800374812A Active CN101371233B (zh) | 2004-11-15 | 2005-11-14 | 含控制用于视频处理的向量组件的标量组件的视频处理器 |
Country Status (3)
Country | Link |
---|---|
US (11) | US8424012B1 (zh) |
KR (1) | KR101061345B1 (zh) |
CN (1) | CN101371233B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI628618B (zh) * | 2016-02-26 | 2018-07-01 | Google Llc | 用於影像處理器之編譯器管理記憶體 |
Families Citing this family (135)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9849372B2 (en) * | 2012-09-28 | 2017-12-26 | Sony Interactive Entertainment Inc. | Method and apparatus for improving efficiency without increasing latency in emulation of a legacy application title |
US6925357B2 (en) | 2002-07-25 | 2005-08-02 | Intouch Health, Inc. | Medical tele-robotic system |
US20040162637A1 (en) | 2002-07-25 | 2004-08-19 | Yulun Wang | Medical tele-robotic system with a master remote station with an arbitrator |
US7813836B2 (en) | 2003-12-09 | 2010-10-12 | Intouch Technologies, Inc. | Protocol for a remotely controlled videoconferencing robot |
US20050204438A1 (en) | 2004-02-26 | 2005-09-15 | Yulun Wang | Graphical interface for a remote presence system |
US8427490B1 (en) | 2004-05-14 | 2013-04-23 | Nvidia Corporation | Validating a graphics pipeline using pre-determined schedules |
US8077963B2 (en) | 2004-07-13 | 2011-12-13 | Yulun Wang | Mobile robot with a head-based movement mapping scheme |
US8624906B2 (en) * | 2004-09-29 | 2014-01-07 | Nvidia Corporation | Method and system for non stalling pipeline instruction fetching from memory |
US8424012B1 (en) * | 2004-11-15 | 2013-04-16 | Nvidia Corporation | Context switching on a video processor having a scalar execution unit and a vector execution unit |
US9041744B2 (en) * | 2005-07-14 | 2015-05-26 | Telecommunication Systems, Inc. | Tiled map display on a wireless device |
US9198728B2 (en) | 2005-09-30 | 2015-12-01 | Intouch Technologies, Inc. | Multi-camera mobile teleconferencing platform |
US9092170B1 (en) | 2005-10-18 | 2015-07-28 | Nvidia Corporation | Method and system for implementing fragment operation processing across a graphics bus interconnect |
US7483032B1 (en) * | 2005-10-18 | 2009-01-27 | Nvidia Corporation | Zero frame buffer |
US7949054B2 (en) * | 2006-06-01 | 2011-05-24 | Microsoft Corporation | Flexible data organization for images |
US8849679B2 (en) | 2006-06-15 | 2014-09-30 | Intouch Technologies, Inc. | Remote controlled robot system that provides medical images |
EP1873627B1 (en) * | 2006-06-28 | 2009-05-27 | STMicroelectronics S.r.l. | A clustered SIMD processor architecture |
US8265793B2 (en) | 2007-03-20 | 2012-09-11 | Irobot Corporation | Mobile robot for telecommunication |
US9160783B2 (en) | 2007-05-09 | 2015-10-13 | Intouch Technologies, Inc. | Robot system that operates through a network firewall |
US20080298473A1 (en) * | 2007-06-01 | 2008-12-04 | Augusta Technology, Inc. | Methods for Parallel Deblocking of Macroblocks of a Compressed Media Frame |
US8725504B1 (en) | 2007-06-06 | 2014-05-13 | Nvidia Corporation | Inverse quantization in audio decoding |
US8683126B2 (en) | 2007-07-30 | 2014-03-25 | Nvidia Corporation | Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory |
US8698819B1 (en) | 2007-08-15 | 2014-04-15 | Nvidia Corporation | Software assisted shader merging |
US8411096B1 (en) | 2007-08-15 | 2013-04-02 | Nvidia Corporation | Shader program instruction fetch |
US9024957B1 (en) | 2007-08-15 | 2015-05-05 | Nvidia Corporation | Address independent shader program loading |
US8659601B1 (en) | 2007-08-15 | 2014-02-25 | Nvidia Corporation | Program sequencer for generating indeterminant length shader programs for a graphics processor |
US8019979B2 (en) * | 2007-09-12 | 2011-09-13 | Sigma Designs, Inc. | Efficient implementation of branch intensive algorithms in VLIW and superscalar processors |
US8495602B2 (en) * | 2007-09-28 | 2013-07-23 | Qualcomm Incorporated | Shader compile system and method |
US8687875B2 (en) * | 2007-12-03 | 2014-04-01 | Nvidia Corporation | Comparator based acceleration for media quantization |
US8704834B2 (en) * | 2007-12-03 | 2014-04-22 | Nvidia Corporation | Synchronization of video input data streams and video output data streams |
US8934539B2 (en) * | 2007-12-03 | 2015-01-13 | Nvidia Corporation | Vector processor acceleration for media quantization |
US8780123B2 (en) | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US9064333B2 (en) * | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US10875182B2 (en) | 2008-03-20 | 2020-12-29 | Teladoc Health, Inc. | Remote presence system mounted to operating room hardware |
US8179418B2 (en) | 2008-04-14 | 2012-05-15 | Intouch Technologies, Inc. | Robotic based health care system |
US8170241B2 (en) | 2008-04-17 | 2012-05-01 | Intouch Technologies, Inc. | Mobile tele-presence system with a microphone system |
US8923385B2 (en) | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
US8681861B2 (en) | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US7873938B2 (en) * | 2008-06-27 | 2011-01-18 | Transwitch Corporation | Method for constructing a variable bitwidth video processor |
US9193065B2 (en) | 2008-07-10 | 2015-11-24 | Intouch Technologies, Inc. | Docking system for a tele-presence robot |
US9842192B2 (en) | 2008-07-11 | 2017-12-12 | Intouch Technologies, Inc. | Tele-presence robot system with multi-cast features |
US8340819B2 (en) | 2008-09-18 | 2012-12-25 | Intouch Technologies, Inc. | Mobile videoconferencing robot system with network adaptive driving |
US8996165B2 (en) * | 2008-10-21 | 2015-03-31 | Intouch Technologies, Inc. | Telepresence robot with a camera boom |
US9138891B2 (en) * | 2008-11-25 | 2015-09-22 | Intouch Technologies, Inc. | Server connectivity control for tele-presence robot |
US8463435B2 (en) | 2008-11-25 | 2013-06-11 | Intouch Technologies, Inc. | Server connectivity control for tele-presence robot |
US8489851B2 (en) | 2008-12-11 | 2013-07-16 | Nvidia Corporation | Processing of read requests in a memory controller using pre-fetch mechanism |
US8849680B2 (en) | 2009-01-29 | 2014-09-30 | Intouch Technologies, Inc. | Documentation through a remote presence robot |
US8897920B2 (en) | 2009-04-17 | 2014-11-25 | Intouch Technologies, Inc. | Tele-presence robot system with software modularity, projector and laser pointer |
US8384755B2 (en) | 2009-08-26 | 2013-02-26 | Intouch Technologies, Inc. | Portable remote presence robot |
US11399153B2 (en) | 2009-08-26 | 2022-07-26 | Teladoc Health, Inc. | Portable telepresence apparatus |
US9390539B2 (en) * | 2009-11-04 | 2016-07-12 | Intel Corporation | Performing parallel shading operations |
US8923405B1 (en) * | 2010-01-25 | 2014-12-30 | Ambarella, Inc. | Memory access ordering for a transformation |
US11154981B2 (en) | 2010-02-04 | 2021-10-26 | Teladoc Health, Inc. | Robot user interface for telepresence robot system |
US8670017B2 (en) | 2010-03-04 | 2014-03-11 | Intouch Technologies, Inc. | Remote presence system including a cart that supports a robot face and an overhead camera |
US20110249744A1 (en) * | 2010-04-12 | 2011-10-13 | Neil Bailey | Method and System for Video Processing Utilizing N Scalar Cores and a Single Vector Core |
US8918213B2 (en) | 2010-05-20 | 2014-12-23 | Irobot Corporation | Mobile human interface robot |
US9014848B2 (en) | 2010-05-20 | 2015-04-21 | Irobot Corporation | Mobile robot system |
US8935005B2 (en) | 2010-05-20 | 2015-01-13 | Irobot Corporation | Operating a mobile robot |
US10343283B2 (en) | 2010-05-24 | 2019-07-09 | Intouch Technologies, Inc. | Telepresence robot system that can be accessed by a cellular phone |
US10808882B2 (en) | 2010-05-26 | 2020-10-20 | Intouch Technologies, Inc. | Tele-robotic system with a robot face placed on a chair |
US9529574B2 (en) | 2010-09-23 | 2016-12-27 | Apple Inc. | Auto multi-threading in macroscalar compilers |
US8621448B2 (en) | 2010-09-23 | 2013-12-31 | Apple Inc. | Systems and methods for compiler-based vectorization of non-leaf code |
US8949808B2 (en) * | 2010-09-23 | 2015-02-03 | Apple Inc. | Systems and methods for compiler-based full-function vectorization |
GB2484906A (en) * | 2010-10-21 | 2012-05-02 | Bluwireless Tech Ltd | Data processing unit with scalar processor and vector processor array |
WO2012052774A2 (en) | 2010-10-21 | 2012-04-26 | Bluwireless Technology Limited | Data processing units |
US9264664B2 (en) | 2010-12-03 | 2016-02-16 | Intouch Technologies, Inc. | Systems and methods for dynamic bandwidth allocation |
US20120194526A1 (en) * | 2010-12-15 | 2012-08-02 | Benjamin Thomas Sander | Task Scheduling |
US8930019B2 (en) | 2010-12-30 | 2015-01-06 | Irobot Corporation | Mobile human interface robot |
US12093036B2 (en) | 2011-01-21 | 2024-09-17 | Teladoc Health, Inc. | Telerobotic system with a dual application screen presentation |
CN102611899B (zh) * | 2011-01-25 | 2014-11-05 | 上海渐华科技发展有限公司 | 基于opengles平台的3d视频游戏信息处理方法及装置 |
US9323250B2 (en) | 2011-01-28 | 2016-04-26 | Intouch Technologies, Inc. | Time-dependent navigation of telepresence robots |
CN104898652B (zh) | 2011-01-28 | 2018-03-13 | 英塔茨科技公司 | 与一个可移动的远程机器人相互交流 |
US10769739B2 (en) | 2011-04-25 | 2020-09-08 | Intouch Technologies, Inc. | Systems and methods for management of information among medical providers and facilities |
US20140139616A1 (en) | 2012-01-27 | 2014-05-22 | Intouch Technologies, Inc. | Enhanced Diagnostics for a Telepresence Robot |
US9098611B2 (en) | 2012-11-26 | 2015-08-04 | Intouch Technologies, Inc. | Enhanced video interaction for a user interface of a telepresence network |
US8832412B2 (en) * | 2011-07-20 | 2014-09-09 | Broadcom Corporation | Scalable processing unit |
US8836751B2 (en) | 2011-11-08 | 2014-09-16 | Intouch Technologies, Inc. | Tele-presence system with a user interface that displays different communication links |
US20130135327A1 (en) * | 2011-11-29 | 2013-05-30 | Advanced Micro Devices, Inc. | Saving and Restoring Non-Shader State Using a Command Processor |
US20130145202A1 (en) * | 2011-12-06 | 2013-06-06 | Advanced Micro Devices, Inc. | Handling Virtual-to-Physical Address Translation Failures |
US20130159665A1 (en) * | 2011-12-15 | 2013-06-20 | Verisilicon Holdings Co., Ltd. | Specialized vector instruction and datapath for matrix multiplication |
WO2013095599A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Systems, apparatuses, and methods for performing a double blocked sum of absolute differences |
GB2502047B (en) * | 2012-04-04 | 2019-06-05 | Snell Advanced Media Ltd | Video sequence processing |
US8902278B2 (en) | 2012-04-11 | 2014-12-02 | Intouch Technologies, Inc. | Systems and methods for visualizing and managing telepresence devices in healthcare networks |
US9251313B2 (en) | 2012-04-11 | 2016-02-02 | Intouch Technologies, Inc. | Systems and methods for visualizing and managing telepresence devices in healthcare networks |
WO2013176758A1 (en) | 2012-05-22 | 2013-11-28 | Intouch Technologies, Inc. | Clinical workflows utilizing autonomous and semi-autonomous telemedicine devices |
US9361021B2 (en) | 2012-05-22 | 2016-06-07 | Irobot Corporation | Graphical user interfaces including touchpad driving interfaces for telemedicine devices |
US9378572B2 (en) * | 2012-08-17 | 2016-06-28 | Intel Corporation | Shared virtual memory |
US8823426B2 (en) * | 2012-10-24 | 2014-09-02 | SK Hynix Inc. | Deserializers |
US9930082B2 (en) | 2012-11-20 | 2018-03-27 | Nvidia Corporation | Method and system for network driven automatic adaptive rendering impedance |
US9407920B2 (en) * | 2013-01-22 | 2016-08-02 | Vixs Systems, Inc. | Video processor with reduced memory bandwidth and methods for use therewith |
US10796617B2 (en) * | 2013-06-12 | 2020-10-06 | Infineon Technologies Ag | Device, method and system for processing an image data stream |
US9819604B2 (en) | 2013-07-31 | 2017-11-14 | Nvidia Corporation | Real time network adaptive low latency transport stream muxing of audio/video streams for miracast |
JP6657096B2 (ja) | 2013-09-05 | 2020-03-04 | アイデックス ラボラトリーズ インコーポレイテッドIDEXX Laboratories, Inc. | 腎疾患の検出方法 |
CN105431819A (zh) | 2013-09-06 | 2016-03-23 | 华为技术有限公司 | 异步处理器消除亚稳态的方法和装置 |
US10185604B2 (en) * | 2013-10-31 | 2019-01-22 | Advanced Micro Devices, Inc. | Methods and apparatus for software chaining of co-processor commands before submission to a command queue |
US9411600B2 (en) * | 2013-12-08 | 2016-08-09 | Intel Corporation | Instructions and logic to provide memory access key protection functionality |
US9619214B2 (en) | 2014-08-13 | 2017-04-11 | International Business Machines Corporation | Compiler optimizations for vector instructions |
US9934146B2 (en) * | 2014-09-26 | 2018-04-03 | Intel Corporation | Hardware apparatuses and methods to control cache line coherency |
WO2016054780A1 (zh) | 2014-10-09 | 2016-04-14 | 华为技术有限公司 | 异步指令执行装置和方法 |
US9588746B2 (en) | 2014-12-19 | 2017-03-07 | International Business Machines Corporation | Compiler method for generating instructions for vector operations on a multi-endian processor |
US10169014B2 (en) | 2014-12-19 | 2019-01-01 | International Business Machines Corporation | Compiler method for generating instructions for vector operations in a multi-endian instruction set |
US10310998B2 (en) | 2015-06-30 | 2019-06-04 | Microsoft Technology Licensing, Llc | Direct memory access with filtering |
KR102395541B1 (ko) * | 2015-07-09 | 2022-05-11 | 에스케이하이닉스 주식회사 | 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치 |
US9880821B2 (en) | 2015-08-17 | 2018-01-30 | International Business Machines Corporation | Compiler optimizations for vector operations that are reformatting-resistant |
US9594668B1 (en) | 2015-09-04 | 2017-03-14 | International Business Machines Corporation | Debugger display of vector register contents after compiler optimizations for vector instructions |
US10115175B2 (en) * | 2016-02-19 | 2018-10-30 | Qualcomm Incorporated | Uniform predicates in shaders for graphics processing units |
US10521390B2 (en) * | 2016-11-17 | 2019-12-31 | The United States Of America As Represented By The Secretary Of The Air Force | Systems and method for mapping FIFOs to processor address space |
US10275391B2 (en) * | 2017-01-23 | 2019-04-30 | International Business Machines Corporation | Combining of several execution units to compute a single wide scalar result |
US11150943B2 (en) * | 2017-04-10 | 2021-10-19 | Intel Corporation | Enabling a single context hardware system to operate as a multi-context system |
US11862302B2 (en) | 2017-04-24 | 2024-01-02 | Teladoc Health, Inc. | Automated transcription and documentation of tele-health encounters |
US11010659B2 (en) * | 2017-04-24 | 2021-05-18 | Intel Corporation | Dynamic precision for neural network compute operations |
CN107182083B (zh) * | 2017-05-27 | 2021-08-10 | 努比亚技术有限公司 | 移动终端及数据包传输方法 |
US10483007B2 (en) | 2017-07-25 | 2019-11-19 | Intouch Technologies, Inc. | Modular telehealth cart with thermal imaging and touch screen user interface |
US11636944B2 (en) | 2017-08-25 | 2023-04-25 | Teladoc Health, Inc. | Connectivity infrastructure for a telehealth platform |
US10366001B1 (en) * | 2017-09-15 | 2019-07-30 | Xilinx, Inc. | Partitioning memory blocks for reducing dynamic power consumption |
US10567504B2 (en) * | 2017-11-29 | 2020-02-18 | International Business Machines Corporation | Protecting in-flight transaction requests |
US10579557B2 (en) | 2018-01-16 | 2020-03-03 | Advanced Micro Devices, Inc. | Near-memory hardened compute blocks for configurable computing substrates |
US10617299B2 (en) | 2018-04-27 | 2020-04-14 | Intouch Technologies, Inc. | Telehealth cart that supports a removable tablet with seamless audio/video switching |
CN117827390A (zh) | 2018-05-29 | 2024-04-05 | 华为技术有限公司 | 数据处理方法以及计算机设备 |
US11277455B2 (en) | 2018-06-07 | 2022-03-15 | Mellanox Technologies, Ltd. | Streaming system |
CN110851073B (zh) * | 2018-08-20 | 2023-06-02 | 慧荣科技股份有限公司 | 储存装置及巨集指令的执行方法 |
CN109558170B (zh) * | 2018-11-06 | 2021-05-04 | 极芯通讯技术(南京)有限公司 | 一种支持数据级并行和多指令融合的二维数据通路架构 |
US11625393B2 (en) * | 2019-02-19 | 2023-04-11 | Mellanox Technologies, Ltd. | High performance computing system |
EP3699770A1 (en) | 2019-02-25 | 2020-08-26 | Mellanox Technologies TLV Ltd. | Collective communication system and methods |
CN110119375B (zh) * | 2019-05-16 | 2020-08-25 | 湖南毂梁微电子有限公司 | 一种将多个标量核链接为单核向量处理阵列的控制方法 |
CN110345090B (zh) * | 2019-05-20 | 2020-04-14 | 重庆大学 | 热力发电热源管理系统 |
US11269651B2 (en) * | 2019-09-10 | 2022-03-08 | International Business Machines Corporation | Reusing adjacent SIMD unit for fast wide result generation |
US10922781B1 (en) | 2019-12-05 | 2021-02-16 | Nxp Usa, Inc. | System for processing images from multiple image sensors |
US11750699B2 (en) | 2020-01-15 | 2023-09-05 | Mellanox Technologies, Ltd. | Small message aggregation |
US11252027B2 (en) | 2020-01-23 | 2022-02-15 | Mellanox Technologies, Ltd. | Network element supporting flexible data reduction operations |
US10999497B1 (en) | 2020-03-31 | 2021-05-04 | Nxp Usa, Inc. | System for parallelly processing image lines from multiple image sensors |
US12111789B2 (en) * | 2020-04-22 | 2024-10-08 | Micron Technology, Inc. | Distributed graphics processor unit architecture |
US11876885B2 (en) | 2020-07-02 | 2024-01-16 | Mellanox Technologies, Ltd. | Clock queue with arming and/or self-arming features |
CN114626540A (zh) * | 2020-12-11 | 2022-06-14 | 上海阵量智能科技有限公司 | 处理器和相关产品 |
US11556378B2 (en) | 2020-12-14 | 2023-01-17 | Mellanox Technologies, Ltd. | Offloading execution of a multi-task parameter-dependent operation to a network device |
US11922237B1 (en) | 2022-09-12 | 2024-03-05 | Mellanox Technologies, Ltd. | Single-step collective operations |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3614710A (en) * | 1969-07-07 | 1971-10-19 | Berkey Colortran Mfg Inc | Bipost socket for luminaires |
US4985848A (en) * | 1987-09-14 | 1991-01-15 | Visual Information Technologies, Inc. | High speed image processing system using separate data processor and address generator |
US5517666A (en) * | 1993-01-22 | 1996-05-14 | Matsushita Electric Industrial Co., Ltd. | Program controlled processor wherein vector distributor and vector coupler operate independently of sequencer |
US6239810B1 (en) * | 1995-11-22 | 2001-05-29 | Nintendo Co., Ltd. | High performance low cost video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing |
US20020144061A1 (en) * | 1998-12-31 | 2002-10-03 | Cray Inc. | Vector and scalar data cache for a vector multiprocessor |
Family Cites Families (250)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3091657A (en) * | 1962-11-14 | 1963-05-28 | Flexiflor Electrical Systems I | Wiring ducts |
US3614740A (en) | 1970-03-23 | 1971-10-19 | Digital Equipment Corp | Data processing system with circuits for transferring between operating routines, interruption routines and subroutines |
US3987291A (en) | 1975-05-01 | 1976-10-19 | International Business Machines Corporation | Parallel digital arithmetic device having a variable number of independent arithmetic zones of variable width and location |
US4101960A (en) | 1977-03-29 | 1978-07-18 | Burroughs Corporation | Scientific processor |
US4541046A (en) | 1981-03-25 | 1985-09-10 | Hitachi, Ltd. | Data processing system including scalar data processor and vector data processor |
US4566005A (en) | 1983-03-07 | 1986-01-21 | International Business Machines Corporation | Data management for plasma display |
US4748585A (en) * | 1985-12-26 | 1988-05-31 | Chiarulli Donald M | Processor utilizing reconfigurable process segments to accomodate data word length |
US4965751A (en) | 1987-08-18 | 1990-10-23 | Hewlett-Packard Company | Graphics system with programmable tile size and multiplexed pixel data and partial pixel addresses based on tile size |
US5047975A (en) | 1987-11-16 | 1991-09-10 | Intel Corporation | Dual mode adder circuitry with overflow detection and substitution enabled for a particular mode |
US4965716A (en) | 1988-03-11 | 1990-10-23 | International Business Machines Corporation | Fast access priority queue for managing multiple messages at a communications node or managing multiple programs in a multiprogrammed data processor |
US4897717A (en) * | 1988-03-30 | 1990-01-30 | Starsignal, Inc. | Computer-based video compression system |
US4958303A (en) * | 1988-05-12 | 1990-09-18 | Digital Equipment Corporation | Apparatus for exchanging pixel data among pixel processors |
US5210834A (en) | 1988-06-01 | 1993-05-11 | Digital Equipment Corporation | High speed transfer of instructions from a master to a slave processor |
US4897779A (en) | 1988-07-20 | 1990-01-30 | Digital Equipment Corporation | Method and apparatus for optimizing inter-processor instruction transfers |
US5040109A (en) * | 1988-07-20 | 1991-08-13 | Digital Equipment Corporation | Efficient protocol for communicating between asychronous devices |
US5175828A (en) * | 1989-02-13 | 1992-12-29 | Hewlett-Packard Company | Method and apparatus for dynamically linking subprogram to main program using tabled procedure name comparison |
JPH0795766B2 (ja) | 1989-06-30 | 1995-10-11 | 株式会社日立製作所 | デジタル・データ通信装置及びそれに使用するデータ通信アダプタ |
US5179530A (en) | 1989-11-03 | 1993-01-12 | Zoran Corporation | Architecture for integrated concurrent vector signal processor |
US5197130A (en) * | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
JPH07101885B2 (ja) | 1990-02-15 | 1995-11-01 | 日立電線株式会社 | ネットワークを相互接続するブリッジ回路 |
JP3218567B2 (ja) | 1990-09-28 | 2001-10-15 | クロームアロイ・ガス・タービン・コーポレイション | 高強力ニッケル基超合金類の溶接 |
US5123456A (en) * | 1990-10-05 | 1992-06-23 | Band-It-Idex, Inc. | Banding tool with including clamping plunger |
JPH0799508B2 (ja) | 1990-10-15 | 1995-10-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム |
US5263136A (en) | 1991-04-30 | 1993-11-16 | Optigraphics Corporation | System for managing tiled images using multiple resolutions |
US5596746A (en) * | 1991-10-21 | 1997-01-21 | General Electric Company | Method for transforming relational data base schemas into object models using ideal table meta models |
US5522080A (en) | 1991-10-24 | 1996-05-28 | Intel Corporation | Centralized control SIMD processor having different priority levels set for each data transfer request type and successively repeating the servicing of data transfer request in a predetermined order |
US5659723A (en) * | 1991-12-20 | 1997-08-19 | International Business Machines Corporation | Entity/relationship to object oriented logical model conversion method |
US5418973A (en) * | 1992-06-22 | 1995-05-23 | Digital Equipment Corporation | Digital computer system with cache controller coordinating both vector and scalar operations |
US6735685B1 (en) | 1992-09-29 | 2004-05-11 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
US5430841A (en) * | 1992-10-29 | 1995-07-04 | International Business Machines Corporation | Context management in a graphics system |
US5388206A (en) | 1992-11-13 | 1995-02-07 | The University Of North Carolina | Architecture and apparatus for image generation |
US5375223A (en) | 1993-01-07 | 1994-12-20 | International Business Machines Corporation | Single register arbiter circuit |
US5682554A (en) | 1993-01-15 | 1997-10-28 | Silicon Graphics, Inc. | Apparatus and method for handling data transfer between a general purpose computer and a cooperating processor |
US5327369A (en) * | 1993-03-31 | 1994-07-05 | Intel Corporation | Digital adder and method for adding 64-bit, 16-bit and 8-bit words |
US5388245A (en) | 1993-06-01 | 1995-02-07 | Intel Corporation | Memory arbitration method and apparatus for multiple-cycle memory coprocessors employing a data cache unit and stack RAM |
JP3248992B2 (ja) * | 1993-07-13 | 2002-01-21 | 富士通株式会社 | マルチプロセッサ |
WO1995003586A1 (en) * | 1993-07-21 | 1995-02-02 | Persistence Software, Inc. | Method and apparatus for generation of code for mapping relational data to objects |
US6073158A (en) | 1993-07-29 | 2000-06-06 | Cirrus Logic, Inc. | System and method for processing multiple received signal sources |
US5574944A (en) | 1993-12-15 | 1996-11-12 | Convex Computer Corporation | System for accessing distributed memory by breaking each accepted access request into series of instructions by using sets of parameters defined as logical channel context |
US5802574A (en) | 1993-12-28 | 1998-09-01 | Intel Corporation | Method and apparatus for quickly modifying cache state |
US5761476A (en) * | 1993-12-30 | 1998-06-02 | Intel Corporation | Non-clocked early read for back-to-back scheduling of instructions |
US5809524A (en) | 1994-01-04 | 1998-09-15 | Intel Corporation | Method and apparatus for cache memory replacement line identification |
JPH0877347A (ja) | 1994-03-08 | 1996-03-22 | Texas Instr Inc <Ti> | 画像/グラフィックス処理用のデータ処理装置およびその操作方法 |
US5560030A (en) | 1994-03-08 | 1996-09-24 | Texas Instruments Incorporated | Transfer processor with transparency |
US5706478A (en) | 1994-05-23 | 1998-01-06 | Cirrus Logic, Inc. | Display list processor for operating in processor and coprocessor modes |
US5784590A (en) | 1994-06-29 | 1998-07-21 | Exponential Technology, Inc. | Slave cache having sub-line valid bits updated by a master cache |
JPH0877002A (ja) * | 1994-08-31 | 1996-03-22 | Sony Corp | 並列プロセッサ装置 |
US5542078A (en) * | 1994-09-29 | 1996-07-30 | Ontos, Inc. | Object oriented data store integration environment for integration of object oriented databases and non-object oriented data facilities |
US6009454A (en) | 1994-09-30 | 1999-12-28 | Allen-Bradley Company, Llc | Multi-tasking operation system for industrial controller |
GB2293668B (en) | 1994-09-30 | 1999-09-29 | Advanced Risc Mach Ltd | Accessing data memories |
US5768564A (en) * | 1994-10-07 | 1998-06-16 | Tandem Computers Incorporated | Method and apparatus for translating source code from one high-level computer language to another |
US5920352A (en) | 1994-10-28 | 1999-07-06 | Matsushita Electric Industrial Co., Ltd. | Image memory storage system and method for a block oriented image processing system |
JPH08153032A (ja) | 1994-11-29 | 1996-06-11 | Matsushita Electric Ind Co Ltd | ネットワーク経由データ先読みバッファ方法 |
JP3619565B2 (ja) | 1995-04-26 | 2005-02-09 | 株式会社ルネサステクノロジ | データ処理装置、及びそれを用いたシステム |
US5649173A (en) * | 1995-03-06 | 1997-07-15 | Seiko Epson Corporation | Hardware architecture for image generation and manipulation |
US5764243A (en) | 1995-03-24 | 1998-06-09 | 3Dlabs Inc. Ltd. | Rendering architecture with selectable processing of multi-pixel spans |
EP0735487B1 (en) * | 1995-03-31 | 2001-10-31 | Sun Microsystems, Inc. | A fast, dual ported cache controller for data processors in a packet switched cache coherent multiprocessor system |
EP0823092A1 (en) * | 1995-04-24 | 1998-02-11 | Aspect Development, Inc. | Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon |
US6112019A (en) | 1995-06-12 | 2000-08-29 | Georgia Tech Research Corp. | Distributed instruction queue |
US5754191A (en) | 1995-06-23 | 1998-05-19 | Cirrus Logic, Inc. | Method and apparatus for optimizing pixel data write operations to a tile based frame buffer |
US5917730A (en) * | 1995-08-17 | 1999-06-29 | Gse Process Solutions, Inc. | Computer implemented object oriented visualization system and method |
US5987561A (en) | 1995-08-31 | 1999-11-16 | Advanced Micro Devices, Inc. | Superscalar microprocessor employing a data cache capable of performing store accesses in a single clock cycle |
US6016474A (en) * | 1995-09-11 | 2000-01-18 | Compaq Computer Corporation | Tool and method for diagnosing and correcting errors in a computer program |
US5796974A (en) | 1995-11-07 | 1998-08-18 | Advanced Micro Devices, Inc. | Microcode patching apparatus and method |
US5812850A (en) * | 1995-11-13 | 1998-09-22 | Object Technology Licensing Corp. | Object-oriented symbolic debugger using a compiler driven database and state modeling to control program execution |
US20020116595A1 (en) | 1996-01-11 | 2002-08-22 | Morton Steven G. | Digital signal processor integrated circuit |
US6317819B1 (en) * | 1996-01-11 | 2001-11-13 | Steven G. Morton | Digital signal processor containing scalar processor and a plurality of vector processors operating from a single instruction |
US6128771A (en) * | 1996-02-09 | 2000-10-03 | Sun Microsystems, Inc. | System and method for automatically modifying database access methods to insert database object handling instructions |
US6236674B1 (en) | 1996-02-23 | 2001-05-22 | Teletransactions, Inc. | Transceiver control with sleep mode operation |
US5950012A (en) | 1996-03-08 | 1999-09-07 | Texas Instruments Incorporated | Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes |
US6049672A (en) | 1996-03-08 | 2000-04-11 | Texas Instruments Incorporated | Microprocessor with circuits, systems, and methods for operating with patch micro-operation codes and patch microinstruction codes stored in multi-purpose memory structure |
US5784640A (en) | 1996-03-18 | 1998-07-21 | Advanced Micro Devices, Inc. | CPU with DSP function preprocessor having look-up table for translating instruction sequences intended to perform DSP function into DSP macros |
DE29606102U1 (de) | 1996-04-02 | 1996-06-05 | Hermann Kleinhuis GmbH & Co KG, 58507 Lüdenscheid | Kabelkanal |
US6092094A (en) | 1996-04-17 | 2000-07-18 | Advanced Micro Devices, Inc. | Execute unit configured to selectably interpret an operand as multiple operands or as a single operand |
JPH09287217A (ja) | 1996-04-19 | 1997-11-04 | Ohbayashi Corp | 高遮音特性を有するプレキャストコンクリート板 |
US6131152A (en) | 1996-05-15 | 2000-10-10 | Philips Electronics North America Corporation | Planar cache layout and instruction stream therefor |
US5848254A (en) * | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Multiprocessing system using an access to a second memory space to initiate software controlled data prefetch into a first address space |
JP3442225B2 (ja) * | 1996-07-11 | 2003-09-02 | 株式会社日立製作所 | 演算処理装置 |
US6222552B1 (en) | 1996-07-26 | 2001-04-24 | International Business Machines Corporation | Systems and methods for caching depth information of three-dimensional images |
US6192073B1 (en) | 1996-08-19 | 2001-02-20 | Samsung Electronics Co., Ltd. | Methods and apparatus for processing video data |
KR100262453B1 (ko) | 1996-08-19 | 2000-08-01 | 윤종용 | 비디오데이터처리방법및장치 |
US6058465A (en) | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
US5835788A (en) * | 1996-09-18 | 1998-11-10 | Electronics For Imaging | System for transferring input/output data independently through an input/output bus interface in response to programmable instructions stored in a program memory |
US5812147A (en) * | 1996-09-20 | 1998-09-22 | Silicon Graphics, Inc. | Instruction methods for performing data formatting while moving data between memory and a vector register file |
US5678904A (en) * | 1996-10-15 | 1997-10-21 | Hung; Tzu-Wen | Detachable wardrobe |
US5893066A (en) | 1996-10-15 | 1999-04-06 | Samsung Electronics Co. Ltd. | Fast requantization apparatus and method for MPEG audio decoding |
US5949410A (en) * | 1996-10-18 | 1999-09-07 | Samsung Electronics Company, Ltd. | Apparatus and method for synchronizing audio and video frames in an MPEG presentation system |
US5925124A (en) | 1997-02-27 | 1999-07-20 | International Business Machines Corporation | Dynamic conversion between different instruction codes by recombination of instruction elements |
US6141740A (en) | 1997-03-03 | 2000-10-31 | Advanced Micro Devices, Inc. | Apparatus and method for microcode patching for generating a next address |
US5940090A (en) | 1997-05-07 | 1999-08-17 | Cirrus Logic, Inc. | Method and apparatus for internally caching the minimum and maximum XY pixel address values in a graphics subsystem |
US5940858A (en) | 1997-05-30 | 1999-08-17 | National Semiconductor Corporation | Cache circuit with programmable sizing and method of operation |
US6269475B1 (en) * | 1997-06-02 | 2001-07-31 | Webgain, Inc. | Interface for object oriented programming language |
US6658447B2 (en) | 1997-07-08 | 2003-12-02 | Intel Corporation | Priority based simultaneous multi-threading |
KR100243100B1 (ko) | 1997-08-12 | 2000-02-01 | 정선종 | 다수의 주프로세서 및 보조 프로세서를 갖는 프로세서의구조 및 보조 프로세서 공유 방법 |
US6163781A (en) * | 1997-09-11 | 2000-12-19 | Physician Weblink Technology Services, Inc. | Object-to-relational data converter mapping attributes to object instance into relational tables |
US5983020A (en) * | 1997-10-02 | 1999-11-09 | International Business Machines Corporation | Rule-based engine for transformation of class hierarchy of an object-oriented program |
US5999199A (en) * | 1997-11-12 | 1999-12-07 | Cirrus Logic, Inc. | Non-sequential fetch and store of XY pixel data in a graphics processor |
US6301600B1 (en) | 1997-11-18 | 2001-10-09 | Intrinsity, Inc. | Method and apparatus for dynamic partitionable saturating adder/subtractor |
US6115646A (en) * | 1997-12-18 | 2000-09-05 | Nortel Networks Limited | Dynamic and generic process automation system |
US6247094B1 (en) | 1997-12-22 | 2001-06-12 | Intel Corporation | Cache memory architecture with on-chip tag array and off-chip data array |
JPH11190447A (ja) | 1997-12-26 | 1999-07-13 | Matsushita Electric Ind Co Ltd | ガス遮断装置 |
US6480927B1 (en) | 1997-12-31 | 2002-11-12 | Unisys Corporation | High-performance modular memory system with crossbar connections |
US6314493B1 (en) | 1998-02-03 | 2001-11-06 | International Business Machines Corporation | Branch history cache |
US6542937B1 (en) * | 1998-02-27 | 2003-04-01 | Amada Company, Limited | Apparatus and method for transferring and editing sheet metal part data |
US6192458B1 (en) * | 1998-03-23 | 2001-02-20 | International Business Machines Corporation | High performance cache directory addressing scheme for variable cache sizes utilizing associativity |
US6631423B1 (en) | 1998-03-31 | 2003-10-07 | Hewlett-Packard Development Company, L.P. | System and method for assessing performance optimizations in a graphics system |
US6144392A (en) | 1998-04-30 | 2000-11-07 | Ati Technologies, Inc. | Method and apparatus for formatting a texture in a frame buffer |
US6150610A (en) | 1998-05-26 | 2000-11-21 | The Wiremold Company | Tamper-resistant surface mounted raceway cover |
US6282634B1 (en) | 1998-05-27 | 2001-08-28 | Arm Limited | Apparatus and method for processing data having a mixed vector/scalar register file |
US6252610B1 (en) | 1998-05-29 | 2001-06-26 | Silicon Graphics, Inc. | Method and apparatus for efficiently switching state in a graphics pipeline |
US6208361B1 (en) | 1998-06-15 | 2001-03-27 | Silicon Graphics, Inc. | Method and system for efficient context switching in a computer graphics system |
US6611272B1 (en) | 1998-07-02 | 2003-08-26 | Microsoft Corporation | Method and apparatus for rasterizing in a hierarchical tile order |
US6490654B2 (en) | 1998-07-31 | 2002-12-03 | Hewlett-Packard Company | Method and apparatus for replacing cache lines in a cache memory |
WO2000011603A2 (en) | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | Graphics processor with pipeline state storage and retrieval |
US6292886B1 (en) | 1998-10-12 | 2001-09-18 | Intel Corporation | Scalar hardware for performing SIMD operations |
US6636222B1 (en) | 1999-11-09 | 2003-10-21 | Broadcom Corporation | Video and graphics system with an MPEG video decoder for concurrent multi-row decoding |
EP1145218B1 (en) | 1998-11-09 | 2004-05-19 | Broadcom Corporation | Display system for blending graphics and video data |
US6768774B1 (en) | 1998-11-09 | 2004-07-27 | Broadcom Corporation | Video and graphics system with video scaling |
US6798420B1 (en) | 1998-11-09 | 2004-09-28 | Broadcom Corporation | Video and graphics system with a single-port RAM |
JP3983394B2 (ja) | 1998-11-09 | 2007-09-26 | 株式会社ルネサステクノロジ | 幾何学処理プロセッサ |
TW442734B (en) | 1998-11-23 | 2001-06-23 | Winbond Electronics Corp | Protocol transformation circuit and data transmission method for direct memory access to universal serial bus |
US6601161B2 (en) | 1998-12-30 | 2003-07-29 | Intel Corporation | Method and system for branch target prediction using path information |
US6298354B1 (en) * | 1999-02-19 | 2001-10-02 | Sun Microsystems, Inc. | Mechanism and process to transform a grammar-derived intermediate form to an object-oriented configuration database |
US6437789B1 (en) * | 1999-02-19 | 2002-08-20 | Evans & Sutherland Computer Corporation | Multi-level cache controller |
US6209078B1 (en) * | 1999-03-25 | 2001-03-27 | Lsi Logic Corporation | Accelerated multimedia processor |
CA2267482C (en) * | 1999-03-30 | 2004-08-10 | Ibm Canada Limited-Ibm Canada Limitee | Report program language source code translation to object-oriented language source code which emulates report program language behaviour |
US7031330B1 (en) | 1999-04-15 | 2006-04-18 | Marconi Intellectual Property (Ringfence), Inc. | Very wide memory TDM switching system |
US6351808B1 (en) | 1999-05-11 | 2002-02-26 | Sun Microsystems, Inc. | Vertically and horizontally threaded processor with multidimensional storage for storing thread data |
JP3639464B2 (ja) | 1999-07-05 | 2005-04-20 | 株式会社ルネサステクノロジ | 情報処理システム |
US6915385B1 (en) | 1999-07-30 | 2005-07-05 | International Business Machines Corporation | Apparatus for unaligned cache reads and methods therefor |
US6880126B1 (en) * | 1999-08-03 | 2005-04-12 | International Business Machines Corporation | Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data |
US6529201B1 (en) | 1999-08-19 | 2003-03-04 | International Business Machines Corporation | Method and apparatus for storing and accessing texture maps |
US6657635B1 (en) | 1999-09-03 | 2003-12-02 | Nvidia Corporation | Binning flush in graphics data processing |
US6825848B1 (en) | 1999-09-17 | 2004-11-30 | S3 Graphics Co., Ltd. | Synchronized two-level graphics processing cache |
US6381600B1 (en) * | 1999-09-22 | 2002-04-30 | International Business Machines Corporation | Exporting and importing of data in object-relational databases |
US6438664B1 (en) | 1999-10-27 | 2002-08-20 | Advanced Micro Devices, Inc. | Microcode patch device and method for patching microcode using match registers and patch routines |
US6631463B1 (en) | 1999-11-08 | 2003-10-07 | International Business Machines Corporation | Method and apparatus for patching problematic instructions in a microprocessor using software interrupts |
US6975324B1 (en) | 1999-11-09 | 2005-12-13 | Broadcom Corporation | Video and graphics system with a video transport processor |
US6754670B1 (en) * | 1999-12-17 | 2004-06-22 | International Business Machines Corporation | Mapping relational tables to object oriented classes |
US6597357B1 (en) | 1999-12-20 | 2003-07-22 | Microsoft Corporation | Method and system for efficiently implementing two sided vertex lighting in hardware |
US6499090B1 (en) | 1999-12-28 | 2002-12-24 | Intel Corporation | Prioritized bus request scheduling mechanism for processing devices |
AU2001227857A1 (en) * | 2000-01-14 | 2001-07-24 | Saba Software, Inc. | Method and apparatus for a business applications management system platform |
US6978457B1 (en) | 2000-01-31 | 2005-12-20 | Agilent Technologies, Inc. | Method and system increasing performance substituting finite state machine control with hardware-implemented data structure manipulation |
US6715035B1 (en) | 2000-02-17 | 2004-03-30 | International Business Machines Corporation | Cache for processing data in a memory controller and a method of use thereof to reduce first transfer latency |
JP3474173B2 (ja) * | 2000-02-25 | 2003-12-08 | 株式会社ソニー・コンピュータエンタテインメント | 画像出力装置に応じた画像データを作成する情報処理装置およびそのための記録媒体 |
US6370617B1 (en) | 2000-04-10 | 2002-04-09 | Silicon Integrated Systems Corp. | Non-stalling pipeline tag controller |
US6624818B1 (en) | 2000-04-21 | 2003-09-23 | Ati International, Srl | Method and apparatus for shared microcode in a multi-thread computation engine |
US7003781B1 (en) * | 2000-05-05 | 2006-02-21 | Bristol Technology Inc. | Method and apparatus for correlation of events in a distributed multi-system computing environment |
US6859217B2 (en) * | 2000-07-19 | 2005-02-22 | Microsoft Corporation | System and method to display and manage data within hierarchies and polyarchies of information |
US6674841B1 (en) | 2000-09-14 | 2004-01-06 | International Business Machines Corporation | Method and apparatus in a data processing system for an asynchronous context switching mechanism |
US6668370B1 (en) * | 2000-09-21 | 2003-12-23 | International Business Machines Corporation | Synchronous execution of object-oriented scripts and procedural code from within an interactive test facility |
US6560685B1 (en) | 2000-09-27 | 2003-05-06 | Sony Corporation | System and method to improve speed and reduce memory allocation for set top box boot-up |
US6629188B1 (en) | 2000-11-13 | 2003-09-30 | Nvidia Corporation | Circuit and method for prefetching data for a texture cache |
US6957230B2 (en) * | 2000-11-30 | 2005-10-18 | Microsoft Corporation | Dynamically generating multiple hierarchies of inter-object relationships based on object attribute values |
US7296070B2 (en) * | 2000-12-22 | 2007-11-13 | Tier-3 Pty. Ltd. | Integrated monitoring system |
US7047524B1 (en) * | 2000-12-30 | 2006-05-16 | Hyperformix | Object oriented ADN and method of converting a non-object oriented computer language to an object oriented computer language |
US6788303B2 (en) * | 2001-02-27 | 2004-09-07 | 3Dlabs Inc., Ltd | Vector instruction set |
US7093104B2 (en) | 2001-03-22 | 2006-08-15 | Sony Computer Entertainment Inc. | Processing modules for computer architecture for broadband networks |
US6772172B2 (en) * | 2001-04-27 | 2004-08-03 | Sun Microsystems, Inc. | Method, system, program, and computer readable medium for indexing object oriented objects in an object oriented database |
US6940503B2 (en) | 2001-05-10 | 2005-09-06 | Ati International Srl | Method and apparatus for processing non-planar video graphics primitives |
TWI242725B (en) * | 2001-06-11 | 2005-11-01 | Oce Tech Bv | A method for executing a hot migrate operation through an incremental roll-over process that uses migration plug-in means for conversion during an upgrade transition, and a multiprocessing system and a system arranged for implementing such method |
US7191281B2 (en) | 2001-06-13 | 2007-03-13 | Intel Corporation | Mobile computer system having a navigation mode to optimize system performance and power management for mobile applications |
KR100395756B1 (ko) | 2001-06-16 | 2003-08-21 | 삼성전자주식회사 | 캐쉬 메모리 및 이를 이용하는 마이크로 프로세서 |
JP3835207B2 (ja) | 2001-06-27 | 2006-10-18 | ソニー株式会社 | 試着画像提供システム及び試着画像提供方法、試着画像生成装置及び試着画像生成方法 |
US6965982B2 (en) | 2001-06-29 | 2005-11-15 | International Business Machines Corporation | Multithreaded processor efficiency by pre-fetching instructions for a scheduled thread |
US6885374B2 (en) | 2001-06-29 | 2005-04-26 | Intel Corporation | Apparatus, method and system with a graphics-rendering engine having a time allocator |
US6922716B2 (en) | 2001-07-13 | 2005-07-26 | Motorola, Inc. | Method and apparatus for vector processing |
US7564460B2 (en) | 2001-07-16 | 2009-07-21 | Microsoft Corporation | Systems and methods for providing intermediate targets in a graphics system |
US7016418B2 (en) | 2001-08-07 | 2006-03-21 | Ati Technologies, Inc. | Tiled memory configuration for mapping video data and method thereof |
US20030037473A1 (en) | 2001-08-21 | 2003-02-27 | Pifer Jeffrey C. | Apparatus for displaying a transparency |
US6784888B2 (en) | 2001-10-03 | 2004-08-31 | Ati Technologies, Inc. | Method and apparatus for executing a predefined instruction set |
JP3840966B2 (ja) | 2001-12-12 | 2006-11-01 | ソニー株式会社 | 画像処理装置およびその方法 |
US7305540B1 (en) | 2001-12-31 | 2007-12-04 | Apple Inc. | Method and apparatus for data processing |
US20040073773A1 (en) | 2002-02-06 | 2004-04-15 | Victor Demjanenko | Vector processor architecture and methods performed therein |
US7159212B2 (en) | 2002-03-08 | 2007-01-02 | Electronic Arts Inc. | Systems and methods for implementing shader-driven compilation of rendering assets |
US6983408B2 (en) * | 2002-03-08 | 2006-01-03 | Microsoft Corporation | Managing error/status information generated during video processing |
US6812929B2 (en) | 2002-03-11 | 2004-11-02 | Sun Microsystems, Inc. | System and method for prefetching data from a frame buffer |
US7015909B1 (en) | 2002-03-19 | 2006-03-21 | Aechelon Technology, Inc. | Efficient use of user-defined shaders to implement graphics operations |
US6732242B2 (en) | 2002-03-28 | 2004-05-04 | Intel Corporation | External bus transaction scheduling system |
US7146468B2 (en) | 2002-04-24 | 2006-12-05 | Ip-First, Llc. | Cache memory and method for handling effects of external snoops colliding with in-flight operations internally to the cache |
US6785772B2 (en) * | 2002-04-26 | 2004-08-31 | Freescale Semiconductor, Inc. | Data prefetching apparatus in a data processing system and method therefor |
US6891543B2 (en) | 2002-05-08 | 2005-05-10 | Intel Corporation | Method and system for optimally sharing memory between a host processor and graphics processor |
US7035979B2 (en) | 2002-05-22 | 2006-04-25 | International Business Machines Corporation | Method and apparatus for optimizing cache hit ratio in non L1 caches |
US7027059B2 (en) | 2002-05-30 | 2006-04-11 | Intel Corporation | Dynamically constructed rasterizers |
US6990656B2 (en) * | 2002-06-27 | 2006-01-24 | Microsoft Corporation | Dynamic metabase store |
US6952214B2 (en) | 2002-07-12 | 2005-10-04 | Sun Microsystems, Inc. | Method for context switching a graphics accelerator comprising multiple rendering pipelines |
US6825843B2 (en) | 2002-07-18 | 2004-11-30 | Nvidia Corporation | Method and apparatus for loop and branch instructions in a programmable graphics pipeline |
US6809732B2 (en) | 2002-07-18 | 2004-10-26 | Nvidia Corporation | Method and apparatus for generation of programmable shader configuration information from state-based control information and program instructions |
US7434229B2 (en) * | 2002-07-31 | 2008-10-07 | Genesys Telecommunications Laboratories, Inc. | Method for improving temporal consistency and snapshot recency in a monitored real-time software-reporting-application architecture |
US7099887B2 (en) * | 2002-08-08 | 2006-08-29 | International Business Machines Corporation | Hierarchical environments supporting relational schemas |
KR100702746B1 (ko) | 2002-08-20 | 2007-04-03 | 엘지전자 주식회사 | 컴퓨터 시스템에서의 무선 랜 모듈 전원 관리방법 및 그장치 |
US6944744B2 (en) | 2002-08-27 | 2005-09-13 | Advanced Micro Devices, Inc. | Apparatus and method for independently schedulable functional units with issue lock mechanism in a processor |
US7249350B2 (en) | 2002-09-30 | 2007-07-24 | Intel Corporation | Optimized translation of scalar type SIMD instructions into non-scalar SIMD instructions |
US7480893B2 (en) * | 2002-10-04 | 2009-01-20 | Siemens Corporate Research, Inc. | Rule-based system and method for checking compliance of architectural analysis and design models |
US6957317B2 (en) | 2002-10-10 | 2005-10-18 | Intel Corporation | Apparatus and method for facilitating memory data access with generic read/write patterns |
JP3986950B2 (ja) | 2002-11-22 | 2007-10-03 | シャープ株式会社 | Cpuおよびこれを備えた情報処理装置、cpuの制御方法 |
US6981106B1 (en) | 2002-11-26 | 2005-12-27 | Unisys Corporation | System and method for accelerating ownership within a directory-based memory system |
JP2004220070A (ja) | 2003-01-09 | 2004-08-05 | Japan Science & Technology Agency | コンテキスト切り替え方法及び装置、中央演算装置、コンテキスト切り替えプログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体 |
US6839062B2 (en) | 2003-02-24 | 2005-01-04 | Microsoft Corporation | Usage semantics |
US6976126B2 (en) | 2003-03-11 | 2005-12-13 | Arm Limited | Accessing data values in a cache |
US20040205326A1 (en) | 2003-03-12 | 2004-10-14 | Sindagi Vijay K.G. | Early predicate evaluation to reduce power in very long instruction word processors employing predicate execution |
US20040193837A1 (en) | 2003-03-31 | 2004-09-30 | Patrick Devaney | CPU datapaths and local memory that executes either vector or superscalar instructions |
US7148888B2 (en) | 2003-04-04 | 2006-12-12 | Via Technologies, Inc. | Head/data request in 3D graphics |
US7032097B2 (en) | 2003-04-24 | 2006-04-18 | International Business Machines Corporation | Zero cycle penalty in selecting instructions in prefetch buffer in the event of a miss in the instruction cache |
US6993628B2 (en) | 2003-04-28 | 2006-01-31 | International Business Machines Corporation | Cache allocation mechanism for saving elected unworthy member via substitute victimization and imputed worthiness of substitute victim member |
US20040221117A1 (en) | 2003-05-02 | 2004-11-04 | Shelor Charles F. | Logic and method for reading data from cache |
US7151544B2 (en) | 2003-05-16 | 2006-12-19 | Sun Microsystems, Inc. | Method for improving texture cache access by removing redundant requests |
US6862027B2 (en) | 2003-06-30 | 2005-03-01 | Microsoft Corp. | System and method for parallel execution of data generation tasks |
US7260677B1 (en) | 2003-07-16 | 2007-08-21 | Unisys Corporation | Programmable system and method for accessing a shared memory |
US7334110B1 (en) | 2003-08-18 | 2008-02-19 | Cray Inc. | Decoupled scalar/vector computer architecture system and method |
US7369815B2 (en) | 2003-09-19 | 2008-05-06 | Qualcomm Incorporated | Power collapse for a wireless terminal |
GB2406404C (en) | 2003-09-26 | 2011-11-02 | Advanced Risc Mach Ltd | Data processing apparatus and method for handling corrupted data values |
US7202872B2 (en) | 2003-10-29 | 2007-04-10 | Via Technologies, Inc. | Apparatus for compressing data in a bit stream or bit pattern |
US20080074431A1 (en) | 2003-11-19 | 2008-03-27 | Reuven Bakalash | Computing system capable of parallelizing the operation of multiple graphics processing units (GPUS) supported on external graphics cards |
US6897871B1 (en) | 2003-11-20 | 2005-05-24 | Ati Technologies Inc. | Graphics processing architecture employing a unified shader |
US7406698B2 (en) | 2003-12-30 | 2008-07-29 | Microsoft Corporation | Driver framework component for synchronizing interactions between a multi-threaded environment and a driver operating in a less-threaded software environment |
US6985151B1 (en) | 2004-01-06 | 2006-01-10 | Nvidia Corporation | Shader pixel storage in a graphics memory |
US7702757B2 (en) * | 2004-04-07 | 2010-04-20 | Xiotech Corporation | Method, apparatus and program storage device for providing control to a networked storage architecture |
US7154500B2 (en) | 2004-04-20 | 2006-12-26 | The Chinese University Of Hong Kong | Block-based fragment filtration with feasible multi-GPU acceleration for real-time volume rendering on conventional personal computer |
US20050239518A1 (en) | 2004-04-21 | 2005-10-27 | D Agostino Anthony | Systems and methods that provide enhanced state machine power management |
US7724263B2 (en) | 2004-05-14 | 2010-05-25 | Nvidia Corporation | System and method for a universal data write unit in a 3-D graphics pipeline including generic cache memories |
US7091982B2 (en) | 2004-05-14 | 2006-08-15 | Nvidia Corporation | Low power programmable processor |
US8427490B1 (en) | 2004-05-14 | 2013-04-23 | Nvidia Corporation | Validating a graphics pipeline using pre-determined schedules |
US7185178B1 (en) | 2004-06-30 | 2007-02-27 | Sun Microsystems, Inc. | Fetch speculation in a multithreaded processor |
US7328359B2 (en) | 2004-07-21 | 2008-02-05 | Intel Corporation | Technique to create link determinism |
JP4520790B2 (ja) | 2004-07-30 | 2010-08-11 | 富士通株式会社 | 情報処理装置およびソフトウェアプリフェッチ制御方法 |
US20060064517A1 (en) | 2004-09-23 | 2006-03-23 | Honeywell International Inc. | Event-driven DMA controller |
US7669009B2 (en) | 2004-09-23 | 2010-02-23 | Intel Corporation | Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches |
US7852341B1 (en) | 2004-10-05 | 2010-12-14 | Nvidia Corporation | Method and system for patching instructions in a shader for a 3-D graphics pipeline |
US8424012B1 (en) | 2004-11-15 | 2013-04-16 | Nvidia Corporation | Context switching on a video processor having a scalar execution unit and a vector execution unit |
US20060106626A1 (en) * | 2004-11-16 | 2006-05-18 | Jun-Jang Jeng | Method and apparatus of model driven business solution monitoring and control |
US7680805B2 (en) * | 2004-12-30 | 2010-03-16 | Sap Ag | Synchronization method for an object oriented information system (IS) model |
US7869835B1 (en) | 2005-03-02 | 2011-01-11 | Nvidia Corporation | Method and system for pre-loading and executing computer instructions within the cache memory |
US20060293940A1 (en) * | 2005-04-22 | 2006-12-28 | Igor Tsyganskiy | Methods and systems for applying intelligent filters and identifying life cycle events for data elements during business application debugging |
US20060293934A1 (en) * | 2005-04-22 | 2006-12-28 | Igor Tsyganskiy | Methods and systems for providing an integrated business application configuration environment |
US7958486B2 (en) * | 2005-04-22 | 2011-06-07 | Sap Ag | Methods and systems for data-focused debugging and tracing capabilities |
US20060293935A1 (en) * | 2005-04-22 | 2006-12-28 | Igor Tsyganskiy | Methods and systems for incrementally exposing business application errors using an integrated display |
DE102005020688B4 (de) * | 2005-05-03 | 2008-01-03 | Siemens Ag | Mobiltelefon |
US7486290B1 (en) | 2005-06-10 | 2009-02-03 | Nvidia Corporation | Graphical shader by using delay |
US7450131B2 (en) | 2005-09-30 | 2008-11-11 | Intel Corporation | Memory layout for re-ordering instructions using pointers |
US7451293B2 (en) | 2005-10-21 | 2008-11-11 | Brightscale Inc. | Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing |
US7412570B2 (en) | 2005-11-15 | 2008-08-12 | Sun Microsystems, Inc. | Small and power-efficient cache that can provide data for background DNA devices while the processor is in a low-power state |
US7545381B2 (en) | 2005-11-10 | 2009-06-09 | Via Technologies, Inc. | Interruptible GPU and method for context saving and restoring |
US7725687B2 (en) | 2006-06-27 | 2010-05-25 | Texas Instruments Incorporated | Register file bypass with optional results storage and separate predication register file in a VLIW processor |
US7493452B2 (en) | 2006-08-18 | 2009-02-17 | International Business Machines Corporation | Method to efficiently prefetch and batch compiler-assisted software cache accesses |
US7750913B1 (en) | 2006-10-24 | 2010-07-06 | Adobe Systems Incorporated | System and method for implementing graphics processing unit shader programs using snippets |
US8269782B2 (en) | 2006-11-10 | 2012-09-18 | Sony Computer Entertainment Inc. | Graphics processing apparatus |
US7959261B2 (en) | 2007-05-08 | 2011-06-14 | Lexmark International, Inc. | Micro-fluid ejection devices having reduced input/output addressable heaters |
US8990543B2 (en) | 2008-03-11 | 2015-03-24 | Qualcomm Incorporated | System and method for generating and using predicates within a single instruction packet |
CA2716464A1 (en) | 2009-12-24 | 2011-06-24 | Mcmaster University | Bit-width allocation for scientific computations |
-
2005
- 2005-11-04 US US11/267,778 patent/US8424012B1/en active Active
- 2005-11-04 US US11/267,700 patent/US8698817B2/en active Active
- 2005-11-04 US US11/267,119 patent/US8493397B1/en active Active
- 2005-11-04 US US11/267,638 patent/US8493396B2/en active Active
- 2005-11-04 US US11/267,875 patent/US8687008B2/en active Active
- 2005-11-04 US US11/267,640 patent/US8738891B1/en active Active
- 2005-11-04 US US11/267,599 patent/US8416251B2/en active Active
- 2005-11-04 US US11/267,777 patent/US8736623B1/en active Active
- 2005-11-04 US US11/267,780 patent/US8683184B1/en active Active
- 2005-11-04 US US11/267,606 patent/US9111368B1/en active Active
- 2005-11-04 US US11/267,393 patent/US8725990B1/en active Active
- 2005-11-14 CN CN2005800374812A patent/CN101371233B/zh active Active
- 2005-11-14 KR KR1020097015040A patent/KR101061345B1/ko active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3614710A (en) * | 1969-07-07 | 1971-10-19 | Berkey Colortran Mfg Inc | Bipost socket for luminaires |
US4985848A (en) * | 1987-09-14 | 1991-01-15 | Visual Information Technologies, Inc. | High speed image processing system using separate data processor and address generator |
US5517666A (en) * | 1993-01-22 | 1996-05-14 | Matsushita Electric Industrial Co., Ltd. | Program controlled processor wherein vector distributor and vector coupler operate independently of sequencer |
US6239810B1 (en) * | 1995-11-22 | 2001-05-29 | Nintendo Co., Ltd. | High performance low cost video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing |
US20020144061A1 (en) * | 1998-12-31 | 2002-10-03 | Cray Inc. | Vector and scalar data cache for a vector multiprocessor |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI628618B (zh) * | 2016-02-26 | 2018-07-01 | Google Llc | 用於影像處理器之編譯器管理記憶體 |
US10204396B2 (en) | 2016-02-26 | 2019-02-12 | Google Llc | Compiler managed memory for image processor |
US10304156B2 (en) | 2016-02-26 | 2019-05-28 | Google Llc | Compiler managed memory for image processor |
Also Published As
Publication number | Publication date |
---|---|
US8493396B2 (en) | 2013-07-23 |
US20060152520A1 (en) | 2006-07-13 |
US8687008B2 (en) | 2014-04-01 |
CN101371233A (zh) | 2009-02-18 |
KR20090092840A (ko) | 2009-09-01 |
US8424012B1 (en) | 2013-04-16 |
US8683184B1 (en) | 2014-03-25 |
US20060176308A1 (en) | 2006-08-10 |
US20060103659A1 (en) | 2006-05-18 |
US8698817B2 (en) | 2014-04-15 |
US20060176309A1 (en) | 2006-08-10 |
KR101061345B1 (ko) | 2011-08-31 |
US8736623B1 (en) | 2014-05-27 |
US8493397B1 (en) | 2013-07-23 |
US8416251B2 (en) | 2013-04-09 |
US9111368B1 (en) | 2015-08-18 |
US8738891B1 (en) | 2014-05-27 |
US8725990B1 (en) | 2014-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101371233B (zh) | 含控制用于视频处理的向量组件的标量组件的视频处理器 | |
US9405586B2 (en) | Method of dynamic load-balancing within a PC-based computing system employing a multiple GPU-based graphics pipeline architecture supporting multiple modes of GPU parallelization | |
KR102520330B1 (ko) | 디스플레이 제어기 | |
JP4906734B2 (ja) | ビデオ処理 | |
Li et al. | Architecture and bus-arbitration schemes for MPEG-2 video decoder | |
Hinrichs et al. | A 1.3-GOPS parallel DSP for high-performance image-processing applications | |
US20040190625A1 (en) | Programmable video encoding accelerator method and apparatus | |
US20190026243A1 (en) | Display controller | |
TWI327434B (en) | Video processing | |
Gove | Architectures for single-chip image computing | |
Pirsch et al. | Processor architectures for multimedia applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |