CN101371233A - 含控制用于视频处理的向量组件的标量组件的视频处理器 - Google Patents

含控制用于视频处理的向量组件的标量组件的视频处理器 Download PDF

Info

Publication number
CN101371233A
CN101371233A CNA2005800374812A CN200580037481A CN101371233A CN 101371233 A CN101371233 A CN 101371233A CN A2005800374812 A CNA2005800374812 A CN A2005800374812A CN 200580037481 A CN200580037481 A CN 200580037481A CN 101371233 A CN101371233 A CN 101371233A
Authority
CN
China
Prior art keywords
performance element
scalar
vectorial
tile
vector
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.)
Granted
Application number
CNA2005800374812A
Other languages
English (en)
Other versions
CN101371233B (zh
Inventor
希里什·加德雷
阿希什·卡兰迪卡尔
斯蒂芬·卢
克里斯托弗·T·程
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Priority claimed from PCT/US2005/041329 external-priority patent/WO2006055546A2/en
Publication of CN101371233A publication Critical patent/CN101371233A/zh
Application granted granted Critical
Publication of CN101371233B publication Critical patent/CN101371233B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/37Details of the operation on graphic patterns
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/39Control of the bit-mapped memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/423Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/436Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods 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

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购得的
Figure A200580037481D00151
或从日本东京的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管线。在2 SIMD管线实施例中,例如,每个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经由命令FIFO225来通信。
图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)。常量RAM517用于从整数单元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设计目标
·计算密度
o提供显著优于VP1.0的perf/mm2优点。
o有效实施新应用领域,如H.264。
·HW中的延迟容许解除了SW开发工程师的负担
o通过将存储器存取和计算重新排序来隐藏数据获取延迟。
o指令流的自动预取。
·隐藏数据路径延迟
o中间结果的选择性转发。
o流计算模型。
·可调整性:
o架构上VP2向量单元可将其数据路径向上调整2×且向下调整1/2×。
o可通过选择性重设管线来实现频率改进。
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的顶层图表给定如下。
Figure A200580037481D00251
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表面的简单化的实例。这些表面驻留于存储器中。标量处理器读取这些表面的程序块(瓷砖片)并将其加载到数据存储器中。因为存在多个输入表面,所以我们不得不维持多个输入流。每个流可具有不同数目的瓷砖片(如,在此实例中,我们可假定子图片表面处于系统存储器中,因此我们应对其进行更多缓冲),而视频流可具有较少数目的瓷砖片。
Figure A200580037481D00281
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个数据管的完整配置。
Figure A200580037481D00301
6高级编程模型
在章节3中,介绍RPC模型以说明所述基本架构。在此章节中,介绍了更高级的概念。
6.1双数据管配置
在双管配置中,共享处理器的下列资源。
·标量控制器
·向量协处理器中的向量控制单元
·用于指令/数据获取的DMA引擎
·指令高速缓冲存储器(可为双端口的)
复制下列资源
·数据管(地址/分支/向量执行单元)
·数据存储器
·寄存器文件
应注意:
1.在仅有1个管的实例上,程序可被写入以用于2个管。向量控制单元将在同一物理管上映射每个管的执行。然而,因为两个管的流仅存在于一个数据存储器中,所以要调节数据存储器的大小。简单的方法是将流中的瓷砖片的瓷砖片大小或数目分两半。这将在配置时间通过标量线程来完成。存在如全局寄存器的复制和流映射这样的需要在微架构级解决的问题。
2.写入以用于1个管的程序可在具有2个管的实例上运行。然而,这个代码将仅在一个管上运行且不使用另一个。机器将会半空闲。
3.程序可被写入以用于2个管,每个管运行2个完全不同的线程。这不一定是优选的,因为我们仅具有非多线程的单个标量。因为我们仅支持一个标量执行线程,所以这可能不是优选的,然而,还是可以支持这个模型。
4.程序可被写入以用于2个管,每个管运行相同线程。这是典型的希望用于可并行化算法(例如,大多数视频基带处理)的模型。这允许使用相同指令流对两个视频条或两个半个视频条等进行操作。每个数据管具有其自身的执行单元和数据存储器。标量控制器必须馈入2个数据管。然而,所述参数、读取和写入命令彼此相关(补偿(offset)),因此标量性能要求并不是正好两倍。这个模型的实例展示如下。
Figure A200580037481D00321
5.可有在2个协作线程的情况下写入程序。这是期望用于编解码的模型,其中我们具有单个标量控制线程,但可能需要多个函数向量功能块连接在一起。这类似功能块的direct-show引脚模型(pin model)。此应用的实例展示如下。因为我们仅具有2个数据管,所以这个模型仅被限制用于两个协作线程。另一警告是应在两个线程之间平衡线程。否则,存在性能损耗。在这些约束内,这个模型将在2个数据管上工作,且可调整回单个管。
Figure A200580037481D00331
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计算。
Figure A200580037481D00371
应用
Figure A200580037481D00381
Figure A200580037481D00391
架构
Figure A200580037481D00421
Figure A200580037481D00441
Figure A200580037481D00451
Figure A200580037481D00461
编程模型
Figure A200580037481D00491

Claims (40)

1.一种系统,其包括:
标量执行单元,其经配置以执行标量视频处理操作;
向量执行单元,其经配置以执行向量视频处理操作;
数据存储存储器,其用于存储所述向量执行单元的数据,其中所述数据存储存储器包括多个瓷砖片,所述瓷砖片包括以阵列形式布置的对称的库数据结构,且其中所述库数据结构经配置以支持对每个库的不同瓷砖片的存取。
2.根据权利要求1所述的系统,其中所述系统是所述视频处理器的多维数据路径处理系统,其用于执行视频处理操作。
3.一种用于进行多维数据路径处理以支持视频处理操作的系统,其包括:
母板;
主机CPU,其耦接到所述母板;
视频处理器,其耦接到所述母板且耦接到所述CPU并包括根据权利要求1所述的系统。
4.根据权利要求1、2或3所述的系统,其中所述库数据结构的每一者均包含以4×4图案布置的多个瓷砖片。
5.根据权利要求1、2或3所述的系统,其中所述库数据结构的每一者均包含以8×8、8×16或16×24图案布置的多个瓷砖片。
6.根据权利要求1、2或3所述的系统,其中所述库数据结构经配置以支持对每个库数据结构的不同瓷砖片的存取,且其中至少一个存取是针对包括两个相邻库数据结构的瓷砖片的行的所述两个相邻库数据结构。
7.根据权利要求1、2或3所述的系统,其中所述瓷砖片经配置以支持对每个库数据结构的不同瓷砖片的存取,且其中至少一个存取是针对包括两个相邻库数据结构的瓷砖片的列的所述两个相邻库数据结构。
8.根据权利要求1、2或3所述的系统,其进一步包括:
交叉矩阵,其耦接到所述数据存储器并用于选择用于存取所述多个库数据结构的瓷砖片的配置。
9.根据权利要求8所述的系统,其中所述交叉矩阵存取所述多个库数据结构的瓷砖片,以便以每时钟为基础向向量数据路径供应数据。
10.根据权利要求9所述的系统,其进一步包括采集器,所述采集器用于接收由所述交叉矩阵存取的所述多个库数据结构的瓷砖片,并以每时钟为基础向所述向量数据路径的前端提供所述瓷砖片。
11.一种用于执行视频处理操作的视频处理器,其包括:
主机接口,其用于在所述视频处理器与主机CPU之间实施通信;
存储器接口,其用于在所述视频处理器与帧缓冲存储器之间实施通信;
标量执行单元,其耦接到所述主机接口和所述存储器接口,且经配置以执行标量视频处理操作;和
向量执行单元,其耦接到所述主机接口和所述存储器接口,且经配置以执行向量视频处理操作。
12.一种用于执行视频处理操作的系统,其包括:
母板;
主机CPU,其耦接到所述母板;
根据权利要求11所述的所述视频处理器,其耦接到所述母板且耦接到所述CPU。
13.根据权利要求11所述的视频处理器,其中所述标量执行单元充当所述视频处理器的控制器并控制所述向量执行单元的操作。
14.根据权利要求11所述的视频处理器,其进一步包括向量接口单元,所述向量接口单元用于介接所述标量执行单元与所述向量执行单元。
15.根据权利要求11所述的视频处理器,其中所述标量执行单元和所述向量执行单元经配置以异步操作。
16.根据权利要求15所述的视频处理器或根据权利要求12所述的系统,其中所述标量执行单元以第一时钟频率执行,且所述向量执行单元以第二时钟频率执行。
17.根据权利要求11所述的视频处理器或根据权利要求12所述的系统,其中所述标量执行单元经配置以执行应用程序的流量控制算法,且所述向量执行单元经配置以执行所述应用程序的像素处理操作。
18.根据权利要求17所述的视频处理器,其中所述向量执行单元经配置以在需求驱动基础上在所述标量执行单元的控制下操作。
19.根据权利要求17所述的视频处理器或系统,其中所述标量执行单元经配置以使用命令FIFO向所述向量执行单元发送函数调用,且其中所述向量执行单元在需求驱动基础上通过存取所述命令FIFO来操作。
20.根据权利要求17所述的视频处理器或系统,其中所述视频处理器的异步操作经配置以支持所述应用程序的向量子程序或标量子程序的分离的独立更新。
21.根据权利要求11所述的视频处理器,其中所述标量执行单元经配置以使用VLIW(超长指令字)代码来操作。
22.一种用于视频处理器的基于流的存储器存取系统,其用于执行视频处理操作,所述系统包括:
标量执行单元,其经配置以执行标量视频处理操作;
向量执行单元,其经配置以执行向量视频处理操作;
帧缓冲存储器,其用于存储所述标量执行单元和所述向量执行单元的数据;和
存储器接口,其用于在所述标量执行单元和所述向量执行单元与所述帧缓冲存储器之间实施通信,其中所述帧缓冲存储器包括多个瓷砖片,且其中所述存储器接口针对所述向量执行单元或所述标量执行单元实施包括瓷砖片的第一顺序存取的第一流和实施包括瓷砖片的第二顺序存取的第二流。
23.一种用于执行基于流的存储器存取以支持视频处理操作的系统,其包括:
母板;
主机CPU,其耦接到所述母板;
视频处理器,其耦接到所述母板且耦接到所述CPU,所述视频处理器包括:
主机接口,其用于在所述视频处理器与所述主机CPU之间建立通信;
标量执行单元,其耦接到所述主机接口且经配置以执行标量视频处理操作;
向量执行单元,其耦接到所述主机接口且经配置以执行向量视频处理操作;和存储器接口,其耦接到所述标量执行单元和所述向量执行单元,且用于在所述标量执行单元和所述向量执行单元与帧缓冲存储器之间建立基于流的通信,其中所述帧缓冲存储器包括多个瓷砖片,且其中所述存储器接口针对所述向量执行单元或所述标量执行单元实施包括瓷砖片的第一顺序存取的第一流和实施包括瓷砖片的第二顺序存取的第二流。
24.根据权利要求22所述的系统,其中所述第一流和所述第二流包括至少一个预取瓷砖片。
25.根据权利要求22所述的系统,其中所述第一流源自所述帧缓冲存储器中的第一位置,且所述第二流源自所述帧缓冲存储器中的第二位置。
26.根据权利要求22或23所述的系统,其中所述存储器接口经配置以管理来自多个不同起始位置并到达多个不同终止位置的多个流。
27.根据权利要求26所述的系统,其中所述起始位置中的至少一者或所述终止位置中的至少一者是在系统存储器中。
28.根据权利要求22或23所述的系统,其进一步包括:
DMA引擎,其建立到所述存储器接口中且经配置以实施多次存储器读取以支持所述第一流和所述第二流,且实施多次存储器写入以支持所述第一流和所述第二流。
29.根据权利要求22或23所述的系统,其中所述第一流经历比所述第二流高的延迟量,且其中所述第一流为对瓷砖片进行存储并入的缓冲器数量大于所述第二流。
30.根据权利要求22或23所述的系统,其中所述存储器接口经配置以预取所述第一流或所述第二流的可调节数目的瓷砖片,以补偿所述第一流或所述第二流的延迟。
31.一种系统,其包括:
主机接口,其用于在所述视频处理器与所述主机CPU之间实施通信;
标量执行单元,其耦接到所述主机接口且经配置以执行标量视频处理操作;
向量执行单元,其耦接到所述主机接口且经配置以执行向量视频处理操作;
命令FIFO,其使所述向量执行单元能够在需求驱动基础上通过存取所述存储器命令FIFO来操作;
存储器接口,其用于在所述视频处理器与帧缓冲存储器之间实施通信;和
DMA引擎,其建立到所述存储器接口中,以用于在多个不同存储器位置之间实施DMA传递,并用于向数据存储存储器和指令高速缓冲存储器中加载用于所述向量执行单元的数据和指令。
32.根据权利要求31所述的系统,其中所述系统是用于执行视频处理操作的延迟容许系统。
33.根据权利要求32所述的系统,其进一步包括:
母板;
主机CPU,其耦接到所述母板;
视频处理器,其耦接到所述母板且耦接到所述CPU。
34.根据权利要求31、32或33所述的系统,其中所述向量执行单元经配置以通过存取所述命令FIFO以在所述需求驱动基础上操作而相对于所述标量执行单元异步地操作。
35.根据权利要求31、32或33所述的系统,其中所述需求驱动基础经配置以隐藏从所述不同存储器位置到所述向量执行单元的命令FIFO的数据传递的延迟。
36.根据权利要求31、32或33所述的系统,其中所述标量执行单元经配置以实施算法流量控制处理,且其中所述向量执行单元经配置以实施大多数视频处理工作负载。
37.根据权利要求36所述的系统,其中所述标量执行单元经配置以预计算所述向量执行单元的工作参数以隐藏数据传递延迟。
38.根据权利要求31所述的系统,其中所述向量执行单元经配置以经由所述DMA引擎调度存储器读取以预取用于随后执行向量子程序的命令。
39.根据权利要求38所述的系统,其中所述存储器读取经调度以在由所述标量执行单元对所述向量子程序进行调用之前预取用于执行所述向量子程序的命令。
40.根据权利要求33所述的系统,其中所述向量处理单元经配置以经由所述DMA引擎调度存储器读取以预取用于随后执行向量子程序的命令,且其中所述存储器读取经调度以在由所述标量执行单元对所述向量子程序进行调用之前预取用于执行所述向量子程序的命令。
CN2005800374812A 2004-11-15 2005-11-14 含控制用于视频处理的向量组件的标量组件的视频处理器 Active CN101371233B (zh)

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,875 US8687008B2 (en) 2004-11-15 2005-11-04 Latency tolerant system for executing video processing operations
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,599 2005-11-04
US11/267,599 US8416251B2 (en) 2004-11-15 2005-11-04 Stream processing in a video processor
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 true CN101371233A (zh) 2009-02-18
CN101371233B 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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102611899A (zh) * 2011-01-25 2012-07-25 上海渐华科技发展有限公司 基于opengles平台的3d视频游戏信息处理方法及装置
WO2016054780A1 (zh) * 2014-10-09 2016-04-14 华为技术有限公司 异步指令执行装置和方法
CN106339178A (zh) * 2015-07-09 2017-01-18 爱思开海力士有限公司 存储器控制单元及包括该存储器控制单元的数据存储设备
CN107025183A (zh) * 2012-08-17 2017-08-08 英特尔公司 共享虚拟存储器
CN108196823A (zh) * 2011-12-23 2018-06-22 英特尔公司 用于执行双块绝对差求和的系统、装置和方法
US10685422B2 (en) 2016-02-26 2020-06-16 Google Llc Compiler managed memory for image processor
WO2022121275A1 (zh) * 2020-12-11 2022-06-16 上海阵量智能科技有限公司 处理器、多线程处理方法、电子设备以及存储介质

Families Citing this family (128)

* Cited by examiner, † Cited by third party
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
US7483032B1 (en) * 2005-10-18 2009-01-27 Nvidia Corporation Zero frame buffer
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
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
DE602006006990D1 (de) * 2006-06-28 2009-07-09 St Microelectronics Nv SIMD-Prozessorarchitektur mit gruppierten Verarbeitungseinheiten
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
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
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
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
US8704834B2 (en) * 2007-12-03 2014-04-22 Nvidia Corporation Synchronization of video input data streams and video output data streams
US8687875B2 (en) * 2007-12-03 2014-04-01 Nvidia Corporation Comparator based acceleration for media quantization
US8934539B2 (en) * 2007-12-03 2015-01-13 Nvidia Corporation Vector processor acceleration for media quantization
US9064333B2 (en) * 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) 2007-12-17 2014-07-15 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
US8463435B2 (en) 2008-11-25 2013-06-11 Intouch Technologies, Inc. Server connectivity control for tele-presence robot
US9138891B2 (en) * 2008-11-25 2015-09-22 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
US8935005B2 (en) 2010-05-20 2015-01-13 Irobot Corporation Operating a mobile robot
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
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
JP5905031B2 (ja) 2011-01-28 2016-04-20 インタッチ テクノロジーズ インコーポレイテッド モバイルテレプレゼンスロボットとのインタフェーシング
US9323250B2 (en) 2011-01-28 2016-04-26 Intouch Technologies, Inc. Time-dependent navigation of telepresence robots
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
GB2502047B (en) * 2012-04-04 2019-06-05 Snell Advanced Media Ltd Video sequence processing
US9251313B2 (en) 2012-04-11 2016-02-02 Intouch Technologies, Inc. Systems and methods for visualizing and managing telepresence devices in healthcare networks
US8902278B2 (en) 2012-04-11 2014-12-02 Intouch Technologies, Inc. Systems and methods for visualizing and managing telepresence devices in healthcare networks
EP2852475A4 (en) 2012-05-22 2016-01-20 Intouch Technologies Inc SOCIAL BEHAVIOR OF A MEDICAL TELEPRESCENT ROBOT
US9361021B2 (en) 2012-05-22 2016-06-07 Irobot Corporation Graphical user interfaces including touchpad driving interfaces for telemedicine devices
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
PL3041576T3 (pl) 2013-09-05 2019-12-31 Idexx Laboratories, Inc. Sposoby wykrywania choroby nerek
EP3014468A4 (en) 2013-09-06 2017-06-21 Huawei Technologies Co., Ltd. Method and apparatus for asynchronous processor with auxiliary asynchronous vector processor
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
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
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
CN110543351B (zh) 2018-05-29 2023-11-17 华为技术有限公司 数据处理方法以及计算机设备
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
US20210334234A1 (en) * 2020-04-22 2021-10-28 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
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

Family Cites Families (255)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3091657A (en) 1962-11-14 1963-05-28 Flexiflor Electrical Systems I Wiring ducts
US3614710A (en) 1969-07-07 1971-10-19 Berkey Colortran Mfg Inc Bipost socket for luminaires
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
US4985848A (en) * 1987-09-14 1991-01-15 Visual Information Technologies, Inc. High speed image processing system using separate data processor and address generator
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
US5040109A (en) 1988-07-20 1991-08-13 Digital Equipment Corporation Efficient protocol for communicating between asychronous devices
US4897779A (en) 1988-07-20 1990-01-30 Digital Equipment Corporation Method and apparatus for optimizing inter-processor instruction transfers
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
DE69421103T2 (de) 1993-01-22 2000-06-08 Matsushita Electric Ind Co Ltd Programmgesteuertes Prozessor
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
GB2293668B (en) 1994-09-30 1999-09-29 Advanced Risc Mach Ltd Accessing data memories
US6009454A (en) * 1994-09-30 1999-12-28 Allen-Bradley Company, Llc Multi-tasking operation system for industrial controller
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
US6331856B1 (en) 1995-11-22 2001-12-18 Nintendo Co., Ltd. Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
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 Kleinhuis Hermann Gmbh 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
US6058465A (en) 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
KR100262453B1 (ko) 1996-08-19 2000-08-01 윤종용 비디오데이터처리방법및장치
US6192073B1 (en) 1996-08-19 2001-02-20 Samsung Electronics Co., Ltd. Methods and apparatus for processing video data
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
US6850893B2 (en) * 2000-01-14 2005-02-01 Saba Software, Inc. Method and apparatus for an improved security system mechanism in a business applications management system platform
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
WO2000011607A1 (en) 1998-08-20 2000-03-02 Apple Computer, Inc. Deferred shading graphics pipeline processor
US6292886B1 (en) 1998-10-12 2001-09-18 Intel Corporation Scalar hardware for performing SIMD operations
US6768774B1 (en) 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
JP3983394B2 (ja) 1998-11-09 2007-09-26 株式会社ルネサステクノロジ 幾何学処理プロセッサ
US6798420B1 (en) 1998-11-09 2004-09-28 Broadcom Corporation Video and graphics system with a single-port RAM
EP1145218B1 (en) 1998-11-09 2004-05-19 Broadcom Corporation Display system for blending graphics and video data
US6636222B1 (en) 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
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
US6496902B1 (en) 1998-12-31 2002-12-17 Cray Inc. Vector and scalar data cache for a vector multiprocessor
US6437789B1 (en) 1999-02-19 2002-08-20 Evans & Sutherland Computer Corporation Multi-level cache controller
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
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
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
US6983408B2 (en) 2002-03-08 2006-01-03 Microsoft Corporation Managing error/status information generated during video processing
US7159212B2 (en) 2002-03-08 2007-01-02 Electronic Arts Inc. Systems and methods for implementing shader-driven compilation of rendering assets
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
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
US6825843B2 (en) 2002-07-18 2004-11-30 Nvidia Corporation Method and apparatus for loop and branch instructions in a programmable graphics pipeline
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
US20080074429A1 (en) 2003-11-19 2008-03-27 Reuven Bakalash Multi-mode parallel graphics rendering system (MMPGRS) supporting real-time transition between multiple states of parallel rendering operation in response to the automatic detection of predetermined operating conditions
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
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US7091982B2 (en) 2004-05-14 2006-08-15 Nvidia Corporation Low power programmable processor
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
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 富士通株式会社 情報処理装置およびソフトウェアプリフェッチ制御方法
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
US20060064517A1 (en) 2004-09-23 2006-03-23 Honeywell International Inc. Event-driven DMA controller
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
US20060293935A1 (en) * 2005-04-22 2006-12-28 Igor Tsyganskiy Methods and systems for incrementally exposing business application errors using an integrated display
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
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
US8645439B2 (en) 2009-12-24 2014-02-04 Mcmaster University Bit-width allocation for scientific computations

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102611899A (zh) * 2011-01-25 2012-07-25 上海渐华科技发展有限公司 基于opengles平台的3d视频游戏信息处理方法及装置
CN102611899B (zh) * 2011-01-25 2014-11-05 上海渐华科技发展有限公司 基于opengles平台的3d视频游戏信息处理方法及装置
CN108196823A (zh) * 2011-12-23 2018-06-22 英特尔公司 用于执行双块绝对差求和的系统、装置和方法
CN107025183A (zh) * 2012-08-17 2017-08-08 英特尔公司 共享虚拟存储器
CN107025183B (zh) * 2012-08-17 2021-01-15 英特尔公司 共享虚拟存储器
WO2016054780A1 (zh) * 2014-10-09 2016-04-14 华为技术有限公司 异步指令执行装置和方法
US10338921B2 (en) 2014-10-09 2019-07-02 Huawei Technologies Co., Ltd. Asynchronous instruction execution apparatus with execution modules invoking external calculation resources
CN106339178A (zh) * 2015-07-09 2017-01-18 爱思开海力士有限公司 存储器控制单元及包括该存储器控制单元的数据存储设备
CN106339178B (zh) * 2015-07-09 2020-07-31 爱思开海力士有限公司 存储器控制单元及包括该存储器控制单元的数据存储设备
US10685422B2 (en) 2016-02-26 2020-06-16 Google Llc Compiler managed memory for image processor
WO2022121275A1 (zh) * 2020-12-11 2022-06-16 上海阵量智能科技有限公司 处理器、多线程处理方法、电子设备以及存储介质

Also Published As

Publication number Publication date
US20060152520A1 (en) 2006-07-13
KR101061345B1 (ko) 2011-08-31
US8698817B2 (en) 2014-04-15
US8738891B1 (en) 2014-05-27
US20060103659A1 (en) 2006-05-18
US8683184B1 (en) 2014-03-25
US8736623B1 (en) 2014-05-27
US9111368B1 (en) 2015-08-18
US20060176309A1 (en) 2006-08-10
US8687008B2 (en) 2014-04-01
US8416251B2 (en) 2013-04-09
US20060176308A1 (en) 2006-08-10
US8493397B1 (en) 2013-07-23
KR20090092840A (ko) 2009-09-01
US8493396B2 (en) 2013-07-23
CN101371233B (zh) 2012-10-17
US8424012B1 (en) 2013-04-16
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) 디스플레이 제어기
US6847365B1 (en) Systems and methods for efficient processing of multimedia data
CN103026402B (zh) 显示压缩超级切片图像
JP4906734B2 (ja) ビデオ処理
Li et al. Architecture and bus-arbitration schemes for MPEG-2 video decoder
TWI327434B (en) Video processing
US6621490B1 (en) Method and apparatus for motion compensation using hardware-assisted abstraction layer
Gove Architectures for single-chip image computing
DE102020132172A1 (de) Kachelsequentialisierungsmechanismus

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