CN1158613C - 用于执行重排指令的方法、处理器、设备和系统 - Google Patents
用于执行重排指令的方法、处理器、设备和系统 Download PDFInfo
- Publication number
- CN1158613C CN1158613C CNB991060970A CN99106097A CN1158613C CN 1158613 C CN1158613 C CN 1158613C CN B991060970 A CNB991060970 A CN B991060970A CN 99106097 A CN99106097 A CN 99106097A CN 1158613 C CN1158613 C CN 1158613C
- Authority
- CN
- China
- Prior art keywords
- data
- bit
- operand
- register
- packed data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000008707 rearrangement Effects 0.000 title claims description 44
- 230000005055 memory storage Effects 0.000 claims description 40
- 230000006835 compression Effects 0.000 claims description 35
- 238000007906 compression Methods 0.000 claims description 35
- 230000004044 response Effects 0.000 claims description 23
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000033228 biological regulation Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 3
- 241001269238 Data Species 0.000 claims 6
- 238000001914 filtration Methods 0.000 description 12
- 238000003860 storage Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 230000014759 maintenance of location Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000007634 remodeling Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7885—Runtime interface, e.g. data exchange, runtime control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Abstract
一种利用由计算机实行的步骤对压缩数据执行重排操作的装置和方法。在一个实施例中,存取一具有至少两个数据元的第一压缩数据操作数。存取一具有至少两个数据元的第二压缩数据操作数。将在第一压缩数据操作数中的其中一个数据元移动到目的寄存器中的较低目的区,以及将在第二压缩数据操作数中的其中一个数据元移动到目的寄存器中的较高目的区。
Description
技术领域
本发明一般涉及计算机系统领域,更具体地说涉及一种根据移动重排操作实现多维计算的装置和方法。
背景技术
为了提高多媒体应用和具有相似特征的其它应用的效率,一种单指令多数据(SIMD)体系结构已经在计算机系统中实现以便能够用一个指令同时运算几个数据而不是一个数据。特别是,SIMD体系结构具有对在一个寄存器或存储器存储单元内部的很多数据元组合的优点。由于并行的硬件执行,可以按照一个指令实现多个操作,从而明显改进性能。
虽然目前很多应用场合在应用中具有称之为统管操作的这些操作的优点,但仍有一些重要的应用场合,需要在可以实行统管操作之前重排各数据元,以便能保证实现应用。这些重要的应用的实例包含通常用在3D图形和信号处理应用场合中的点积和矩阵乘法运算。
关于在寄存器或存储器字内部的数据元重新排列次序的一个问题是用于指示应怎样重新排列数据的机制。通常使用掩码或控制字。控制字必须包含足够的位以指示源数据区中的哪一些必须移入每一目的数据区中。例如若一源操作数具有八个数据区,需要3位来指定任何特定的数据区,以及目的寄存器具有4个数据区,对于控制字需要(3×4)或12位。然而,按照其中对于控制寄存器可用的位(数)小于12位时的处理器实施方案,不能支持完全的移动重排。
因此,需要一种方法来识别在对于一控制寄存器可使用的位数小于完全位数的情况下的数据元的次序。
发明内容
本发明提供一种装置和方法,用于对压缩数据利用以计算机实施的步骤实现移动操作。在一个实施例中,存取具有至少两个数据元的第一压缩数据操作数。存取具有至少两个数据元的第二压缩数据操作数。将在第一压缩的数据操作数中的其中一个数据元,移动到一目的寄存器的较低目的区,以及将在第二压缩数据操作数中的其中一个数据元移动到该目的寄存器的较高目的区。
根据本发明的一个方面,一种计算机系统,包含:
硬件装置,用于向另一个计算机或显示器发送表示图形的数据;
处理器,连接到硬件装置;以及
存储装置,连接到处理器,其中存储有指令,当由处理器执行时,该指令使处理器至少能:
估计控制字的一组比特;
存取一至少具有两个数据元的第一压缩数据操作数;
存取一至少具有两个数据元的第二压缩数据操作数;
根据控制字的该组比特,从所述第一压缩数据操作数中选择第一组数据元;
根据控制字的该组比特,将所述第一组中的每个数据元复制到位于目的操作数的下半部分的特定数据区;
根据控制字的该组比特,从所述第二压缩数据操作数中选择第二组数据元;以及
根据控制字的该组比特,将所述第二组中的每个数据元复制到位于目的操作数的上半部分的特定数据区。
根据本发明的另一个方面,一种方法,包含下列由计算机实行的步骤:
存取表示第一三维图像的数据;
利用三维几何图形变换数据,以便产生第二三维图像,该变换步骤至少包含:
估计控制字的一组比特;
存取一具有至少两个数据元的第一压缩数据操作数;
存取一具有至少两个数据元的第二压缩数据操作数;
根据控制字的该组比特,从所述第一压缩数据操作数中选择第一组数据元;
将所述第一组中的每个数据元复制到位于控制字的该组比特所规定的目的操作数的下半部分的特定数据区;
根据控制字的该组比特,从所述第二压缩数据操作数中选择第二组数据元;以及
将所述第二组中的每个数据元复制到位于控制字的该组比特所规定的目的操作数的上半部分的特定数据区;以及
显示第二三维图像。
根据本发明的又一个方面,一种方法,包含下列由计算机实行的步骤:
存取表示第一三维图像的数据;
利用三维几何图形变换数据,以便产生第二三维图像,该变换步骤至少包含:
估计控制字的一组比特;
存取一具有至少两个数据元的第一压缩数据操作数;
根据控制字的该组比特的数值,从所述第一压缩数据操作数中选择第一组数据元;
将所述第一组中的每个数据元复制到控制字的该组比特所指定的位于目的操作数的特定数据区;以及
显示第二三维图像。
根据本发明的再一个方面,一种用以响应移动指令执行移动操作的处理器,包括:
一个对规定第一和第二源操作数以及控制字的比特区的一单指令进行解码的解码器;以及
一个响应于所述控制字的比特区,产生由来自所述第一和第二源操作数的压缩数据元所组成的合成压缩数据操作数的执行单元,
其中将所述控制字的比特限制于规定来自所述第一和第二源操作数的数据元分别用于所述合成压缩数据操作数的上下半部分。
根据本发明的还有一个方面,一种设备,包括:
一个解码装置,用于把重排指令解码为控制信号,所述重排指令包括第一操作数、第二操作数和第三操作数;
所述第一操作数,用于识别第一寄存器以保存至少两个压缩数据元;
所述第二操作数,用于识别第二所寄存器以保存至少两个压缩数据元;
所述第三操作数,提供控制字的比特以指示要选择所述第一操作数和所述第二操作数中的哪些所述压缩数据元并复制到合成寄存器;以及
执行器,连接到所述解码装置,所述执行器响应于所述控制信号和所述控制字的比特,用以从所述第一寄存器中选择第一组数据元和用以把所述第一组数据元复制到所述合成寄存器,所述执行器还响应于所述控制信号和所述控制字的比特,用以从所述第二寄存器中选择第二组数据元和用以把所述第二组数据元复制到所述合成寄存器。
根据本发明的还有一个方面,一种设备,包括:
一个解码装置,用于把重排指令解码为控制信号,所述重排指令包括第一操作数、第二操作数和第三操作数;
所述第一操作数,用于识别第一寄存器以保存至少两个压缩数据元;
所述第二操作数,用于识别存储器存储单元以保存至少两个压缩数据元;
所述第三操作数,用以提供控制字的比特以指示要选择所述第一操作数和所述第二操作数中的哪些所述压缩数据元并复制到合成寄存器;以及、
执行器,连接到所述解码装置,所述执行器响应于所述控制信号和所述控制字的比特,用以从所述第一寄存器中选择第一组数据元和用以把所述第一组数据元复制到所述合成寄存器,所述执行器还响应于所述控制信号和所述控制字的比特,用以从所述存储器存储单元中选择第二组数据元和用以把所述第二组数据元复制到所述合成寄存器。
根据本发明的还有一个方面,一种设备,包括:
指令解码器,用以接收和解码重排指令,所述重排指令用作包括含有两组或控制字的多组比特的直接操作数;
第一源寄存器,用以保存第一压缩数据,所述第一压缩数据由第一数据元和第二数据元组成;
第二源寄存器,用以保存第二压缩数据,所述第二压缩数据由第三数据元和第四数据元组成;
目的寄存器,用以保存第三压缩数据;
执行器,连接到所述第一源寄存器以接收所述第一压缩数据,并且连接到所述第二源寄存器以接收所述第二压缩数据;以及
其中,所述执行器还连接到所述指令解码器以接收所述控制字的两组或多组比特,所述执行器用以在响应控制字的所述两组或多组比特中的第一组下从所述第一源寄存器选择所述第一和第二数据元至少之一,并把所述选择数据元从所述第一源寄存器复制到所述目的寄存器的下半部分中的第一数据区,还有,所述执行器用以在响应控制字的所述两组或多组比特中的第二组下从所述第二源寄存器选择所述第三和第四数据元至少之一,并把所述选择数据元从所述第二源寄存器复制到所述目的寄存器的上半部分中的第二数据区。
根据本发明的还有一个方面,一种计算机系统,包括:
存储器,用以保存软件,所述软件用以提供执行用的重排指令,所述重排指令包括控制字的多个比特;以及
处理器,连接到所述存储器,用以接收和解码所述重排指令,所述处理器还包括:
第一存储器存储单元,用以保存第一块压缩数据;
第二存储器存储单元,用以保存第二块压缩数据;
第三存储器存储单元,用以保存第三块压缩数据;以及
一个执行器,用来根据所述重排指令的控制字的众多比特中的第一个或多个比特从所述第一块压缩数据选择第一数据元,并用来把所述第一数据元复制到所述第三存储器存储单元中的第一数据区,所述执行器还用来根据控制字的所述众多比特中的第二个或多个比特从所述第二块压缩数据选择第二数据元,并且来把所述第二数据元复制到所述第三存储器存储单元中的第二数据区。
根据本发明的还有一个方面,一种处理器实施方法,用来从第一和第二源操作数中移动压缩数据元,包括:
对指定第一和第二源操作数的一单指令和一直接值进行解码;以及
响应于所述直接值,产生由来自所述第一和第二源操作数的压缩数据元组成的合成压缩操作数,
其中,所述直接值之内的比特用来指定哪些来自所述第一和第二源操作数的数据元压缩以填满合成压缩数据操作数。
根据本发明的还有一个方面,一个处理器,用于根据重排指令执行重排操作,包括:
解码器,对指定第一与第二源操作数的单指令和控制字的比特区进行解码;以及
执行器,响应于所述控制比特区,产生由来自所述第一和第二源操作数的数据元组成的合成压缩数据操作数,其中,所述控制字的比特用来指定哪些来自所述第一和第二源操作数的数据元以填满所述合成压缩数据操作数的上半部分和下半部分。
根据本发明的还有一个方面,一种设备,它包括:
一个执行单元,用于接收至少包括一个第一和第二数据元的第一压缩数据,至少包括一个第三和第四数据元的第二压缩数据,和控制字的一组比特,执行单元还用于输出包括第一和第二部分的结果,
其中,根据所述控制字的比特,所述执行单元用于从所述第一压缩数据中选择所述第一和第二数据元至少其中之一并将其复制到所述结果的第一部分,并且从所述第二压缩数据中选择所述第三和第四数据元至少其中之一并将其复制到所述结果的第二部分。
根据本发明的还有一个方面,一种设备,它包括:
一个解码单元,用于解码一个指令,以操作含有至少两个数据元的第一压缩数据操作数,含有至少两个数据元的第二压缩数据操作数,和含有控制字的一组比特的第三操作数;和
一个执行单元,耦合到所述节解码单元,所述执行单元输出至少有第一和第二部分的结果,所述执行单元根据所述控制字的比特从所述第一压缩数据操作数中选择第一数据元并将其复制到所述结果的第一部分,所述执行单元还根据所述控制字的比特从所述第二压缩数据操作数中选择第二数据元并将其复制到所述结果的第二部分。
根据本发明的还有一个方面,一种方法,该方法包括以下步骤:
接收至少包括第一和第二数据元的第一压缩数据,至少包括第三和第四数据元的第二压缩数据,和控制字的一组比特;和
根据控制字的所述组比特,从所述第一压缩数据中选择所述第一和第二数据元至少其中之一并将其复制到所述结果的第一部分,并且从所述第二压缩数据中选择所述第三和第四数据元至少其中之一并将其复制到所述结果的第二部分。
附图说明
以举例的方式介绍本发明,通过结合附图参照如下介绍可以更好地理解本发明,在附图中,相似的标号表示相似的元件,及其中:
图1表示根据本发明的一个实施例的示范性的计算机系统;
图2表示根据本发明的一个实施例的移动指令的操作;
图3表示根据本发明的一个实施例的重排指令的操作;
图4表示根据本发明的一个实施例的内部附加指令的操作;
图5表示根据本发明的一个实施例的重排指令的操作;
图6a和6b表示根据本发明的一个实施的重排指令的操作;
图7是表示根据本发明的一个实施例的一实现重排操作的,用于对TV广播信号滤波的数字滤波器的总体方块图;
图8是表示在使图形目的物变得生动时所用的重排操作的总体方块图。
具体实施方式
在如下的介绍中,介绍很多具体的细节,以保证透彻地理解本发明。然而,本技术领域的普通技术人员应理解,本发明可以不按这些具体细节来实现。为了不使本发明模糊不清,在另外一些例子中,没有详细表示公知的电路、结构和技术。
本发明提供一种在其中控制寄存器可使用的位数小于完全位数的情况下,识别各数据元的次序的方法。根据本发明的一个方面,提供用于移动在数据包操作数中的数据元(重排操作)的一种方法和装置。这种重排操作使一定规模的数据能重排成由两个源寄存器或存储器构成的任意组合或移动到目的寄存器中。目的寄存器可以与源寄存器相同。重排指令常用于数据识别和将数据移动到寄存器中的不同存储单元,以便例如能为了定标操作而额外存储,或者为了便于在各数据格式之间变换例如由压缩整数变换为压缩浮点或者相反。
术语“寄存器”这里所用含义是指该机载处理器存储单元(位置),其用作识别操作的宏指令的一部分。换句话说,这里所指的寄存器是由处理器的外侧(由程序员的观点)可看到的。然而,这里所述的寄存器可以利用很多不同的技术例如专用的物理意义上的寄存器,在利用寄存器重新命名的动态分配的物理上的寄存器和动态分配的物理上的寄存器等的处理器内的电路装置来实施。
计算机系统
图1表示实现本发明原理的计算机系统的一个实施例。该计算机系统100包含:处理器105、存储装置110和总线115。处理器105利用总线115连接到存储装置110上。此外,一些用户输入/输出装置例如键盘120和显示器125连接到总线115。处理器105代表任何结构类型的中央处理单元,例如CISC、RISC、VLIW或混合结构。此外,处理器105可以在一或多个芯片上实现。存储装置110代表一或多种用于存储数据的机构。例如,存储装置110可以包含:只读存储器(ROM),随机存取存储器(RAM),磁盘类存储媒体,光盘类存储媒体,闪速存储器装置,和/或其它机器可读的媒体。总线115代表一或多种总线(例如,AGP、PCI、ISA、X-Bus,VESA等)以及一些桥接器(也称为总线控制器)。虽然,这一实施例是针对单一的处理器计算机系统介绍的,但本发明可以按照多处理器计算机系统实现。此外,虽然这里所介绍的这一实施例是针对64位计算机系统的,但本发明不局限于64位计算机系统。
除了这些装置之外,一或多个网络130、TV广播信号接收器131、传真/调制解调器132、数字化装置133,音响装置134和图形装置135以可选择的方式可连接到总线115上。网络130和传真调制解调器132代表一或多个用于发送机器可读的媒体(例如为载波)传输数据的网络连接器件。数字化装置133代表一或多个用于将图像数字化的装置(即扫描器,摄像机等),音响装置134代表一或多个用于输入和/或输出声音的装置(例如麦克风、扬声器、磁存储装置,光存储装置等)。图形装置135代表一或多个用于产生3D图像的装置(例如图形卡)。
图1还表示存储装置110其中已存储有数据135和软件136。数据135代表存储如在这里所述的一个或多个格式存储的数据。软件136代表为了实施该参照图3-6中所介绍的技术中某一些和/或全部所需的编码。本技术领域的普通技术人员会认识到,该存储装置110最好包含有对于理解本发明不是必备的另外的软件(未表示)。
图1还另外表示出处理器105包含解码器140、一组寄存器141、执行器142和用于执行指令的内部总线143。本技术领域的普通技术人员会认识到,处理器105可包含对于理解本发明不是必备的辅加电路装置。解码器140、寄存器141和执行器142由内部总线143连接在一起。解码器140用于将由处理器105接收的指令解码成为控制信号和/或微代码输入点。响应于这些控制信号和/或微代码输入点,执行器142执行相应的操作。解码器140可以利用一些不同机制实现(例如,查询表,硬件实施方案,PLA等)。虽然这里是利用一系列的如果/则的叙述方式表示各种指令的解码,但应理解指令的执行不需要对这些如果/则的表述语句进行一系列的处理过程。相反,任何逻辑上能实现这种如果/则的逻辑处理的机制都会被认为处在实现本发明的范围内。
所示解码器140包含压缩数据指令集145,用于对压缩数据进行运算。在一个实施例中,压缩数据指令集145包含如下的指令:移动指令150、重排指令155、相加指令(例如ADDPS)160以及乘法指令165。MOVAPS、SHUFPS和ADDPS指令可适用于压缩浮点数据,其中将在具有预定位数的两组数字以间的运算结果存储在具有相同预定位数的寄存器中,即操作数的规模或结构与该结果寄存器的对应部分相同。这里进一步介绍关于这些指令中的每一个指令的操作。虽然,所介绍的一个实施例其中压缩数据指令对于浮点数据操作,但另外的实施例可以按照另外的方式具有对于整数数据操作的相似的指令。
除了压缩数据指令以外,处理器105可以包含新的指令和/或与在已有通用处理器中可找到的相似或者相同的指令。例如,在一个实施例中,处理器105支持与由已有的处理器例如PentiumRII型处理器使用的IntelR Architecture指令集。本发明的另外一些实施例可以包含或多或少的以及不同的压缩数据指令以及仍然利用本发明的论述方案。
在处理器105上的寄存器141(代表一般存储装置)用于存储包含控制/状态信息、整数数据、浮点数据和压缩数据的信息。本技术领域的普通技术人员会理解,本发明的一个方面是用于对压缩数据进行运算的所述指令集。根据本发明的这一方面,用于存储该压缩数据的存储区不是关键的。这里使用的术语“数据处理系统”是指用于处理数据的任何机器,包含参阅图1介绍的计算机系统。
虽然所介绍的本发明的一个实施例其中对128位压缩数据操作数(包含4个32位单一精确度的浮点值)执行压缩数据指令操作,可以对按几种不同的压缩数据格式的压缩数据进行操作。例如在一个实施例中,对压缩数据可以按照三种格式:“压缩字节”格式(例如PADDb),“压缩字”格式(例如PADDW)或者“压缩双字”(dword)格式(例如PADDd)中的一种格式进行操作。该压缩字节格式包含8个独立的8位数据元;压缩字格式包含4个独立的16位数据元;压缩双字格式包含两个独立的32位数据元。虽然下面参照一或两种压缩数据格式讨论某一些指令,该指令可以按相似的方式适用于本发明的其它压缩数据格式。
本发明的重排指令是一族按照SIMD体系结构操作的很多不同指令中的一部分。例如,图2表示根据本发明的一个实施例的移动指令150的操作。在这一实例中,移动指令150(MOVAPS)将数据位从一个寄存器向另一个寄存器或者从一个存储器存储单元向另一个移动。在一个实施例中,64位代表由一个存储器存储单元到另一个存储单元或者由一个寄存器到另一个寄存器的4个压缩字。
图3表示根据本发明的一个实施例的重排指令155的操作。在一个实施例中,重排指令155(SHUFPS)能够将多个(例如4个)单浮点(FP)数字中任何一个由第一运算数310移动到目的寄存器330中的较低两个目的区;通过多个(例如4个)单纯FP数字中的任一个由第二操作数320移动产生较高两个目的区。
图4表示根据本发明一个实施例的压缩统管加法指令160的操作。在一个实施例中,该压缩统管操作是一加法指令(ADDPS)160,其对第一操作数410和第二操作数420中的数据元进行操作。具体是将第一操作数410中的数据元添加到第二操作数420中对应的压缩数据元,用于产生一结果430。例如将第一操作数410中的数据元0添加到第二操作数420中的数据元0,并将其结果存储作为结果430中的数据元0。压缩乘法指令与压缩加法指令按类似的方式作用,除了执行乘法运算以外。
重排操作
图5表示根据本发明一个实施例的对两个数字进行重排操作的技术。在这种应用中,数据用一些椭圆表示,而指令用矩形表示。由起始状态开始,操作过程S500进行到处理步骤S510,其中将数字X0、X1、X2和X3作为数据元存储在压缩数据项515中。为了便于讨论,每个数据元为16位宽,并且按照如下的次序存储在寄存器X0中:
|X3|X2|X1|X0|
然后处理过程S500进行到处理步骤S520,在其中数字Y0、Y1、Y2和Y3作为数据元存储在压缩数据项525中。为了便于讨论,每个数据元为16位宽,并且按照如下的次序存储在寄存器X1中:
|Y3|Y2|Y1|Y0|
然后处理过程S500进行到处理步骤S530,在其中对寄存器X0(数据项515)中和寄存器X1(数据项525)的存储值执行重排指令,以便将4个数据元的其中任一个由第一数据项515移动到目的寄存器535中的较低两个区,以及将4个数据元的其中任一个由第二数据项525移动到目的寄存器535中的较高两个区。所形成的数据项535如下:
|{Y3,Y2,Y1,Y0}|{Y3,Y2,Y1,Y0}|{X3,X2,X1,X0}|{X3,X2,X1,X0}|
因此,进行了重排操作。虽然,图5按照具有4个数据元的数据操作数表示重排操作的一个实例,但按具有至少两个数据元的数据操作数也可实现本发明的原理。
一个8位中间值用作控制字,以指示数据元应怎样移动。控制字中位0,1指示在第一操作数中的四个数据元中的哪一个移动到目的寄存器中的第一或最低数据元。控制字中的位2、3指示在第一操作数中的四个数据元中的哪一个移动到目的寄存器中的第二数据元。控制字中位4,5指示在第二操作数中的四个数据元中的哪一个移动到目的寄存器中的第三数据元。控制字中位6、7指示在第二操作数中的四个数据元的哪一个移动到目的寄存器中的第四数据元。例如,按照如下的次序存储的四个数据元给定第一数据操作数:
|D|C|B|A|
以及还按照如下的次序存储的四个数据元给定第二数据操作数:
|H|G|F|E|
以及还给定一为10001111的重排控制字,重排的结果如下
|G|E|D|D|
本技术领域的普通技术人员会认识到,重排控制字的大小可以根据利用本发明不会丧失兼容性的原则,根据在源数据操作数中的数据元的数字和在目的寄存器中的区数变化。
图6a表示根据本发明的一个实施例的用于对两个数字进行重排操作的示意图。装置600读出第一原压缩数据操作数605和第二原压缩数据操作数610的存储值。一个四对一的数据多路切换器615将数据元{D,C,B,A}中的任何一个由某一个数据操作数(605、610)移动到目的数据项625中较低的区中。一个四对一的数据多路切换器620将数据元{D,C,B,A}中的任何一个由某一个数据操作数(605,610)移动到目的数据项625中较高区。
图6b表示根据本发明的一个实施例的用于对两个数字进行重排操作的示意图,装置630读取第一原压缩数据操作数635的存储值。将数据元{D,C,B,A}中的任何一个移动到目的数据项645中较低的两个区。然后装置630读取第二原压缩数据操作数640的存储值。将数据元{H,G,F,E}中的任何一个由数据操作数640移动到目的数据项645中的较高两个区。第一原数据操作数635可以与第二原数据操作数640相同。这种重排方法可以仅用一个八位的控制字来实施。
因此,执行了重排操作。虽然图6a和6b是按照具有两个数据元的数据操作数介绍重排操作的实例的,但本发明的原理也可以按照具有两个以上数据元的数据操作数来实现。
本发明的重排指令可以用作很多不同应用的一部分。例如,图7是一表示数字滤波器使用的总体方块图,该滤波器利用重排操作,用以根据本发明的一个实施例对TV广播信号进行滤波。图7表示代表由计算机系统700中的接收装置706接收的电视广播的TV广播信号703。接收装置706接收TV广播信号703并将它们转换为数字数据709。数字滤波器715利用一组系数712对数字数据709进行数字滤波(例如FIR,IIR等)。因此,数字滤波器装置715产生代表经滤波的模拟TV广播信号的滤波数据(也称为“滤波数据项”。在进行滤波操作中,实现重排操作。由视频解码器721接收该滤波数据718,用以变换为音频和视频数据724。利用视频解码器721实现的技术是公知的(见由Jack,Smith,keith,“NTSC/PAL Digital Decoder”,
Video Demy stified,High Text Publication,Inc.,1993)。该音频和视频数据可用于各种目的(例如在屏幕上显示)。
在一个实施例中,如图1中所示的计算机系统100用来实现图7中的计算机系统。在这一实施例中,TV广播信号接收机131用作接收装置706,可以包含TV调谐器、模数变换器和DMA频道。由TV调谐器接收的TV广播信号703由模数变换器变换为数字数据,然后通过DMA频道存储在存储装置110中。本技术领域的普通技术人员会认识到,由TV广播信号接收机131存储的数字数据可以按照很多的格式存储。例如,TV广播信号接收机131可以在主存储器中按一或多种这里所介绍的格式存储数据—存储该数据中的每一组成部分的两种表达,这样就可读取按照所述格式的压缩数据项。于是这一数据就可以按照压缩数据存取并复制到在处理器105中的寄存器。由于按照所公开的格式存储数据,处理器105可以容易和有效地进行参照图5和图6所述的操作。本技术领域的普通技术人员会认识到,接收装置706可以包含附加的硬件、软件,和/或在TV广播信号接收机131中的固件或者在处理器105中执行的软件。例如,为了在进行数字滤波之前进一步处理,可以将另外的软件存储在存储装置110中。
在这一实施例中,利用处理器105和软件136实现数字滤波装置718,以便进行数字滤波。在这一实施例中,执行软件136的处理器105利用重排操作实现数字滤波,并将滤波数据718存储在存储装置110中。按照这种方式,利用计算机系统中的主处理器而不是TV广播信号接收机131来实现数字滤波器。因此,降低了TV广播信号接收机131的复杂性。在这一实施例中,视频解码器721可以按照硬件、软件和/或固件的不同组合方式实现。音频和视频数据724然后分别存储,和/或显示在显示器125以及作用于音响装置134。
图8是表示根据本发明一个实施例的为了使图形目的物生动的重排操作的总体方块图。图8表示包含表示三维(3D)图形的数字数据755的计算机系统800。数字数据810可以存储在CDROM或者其它类型的存储装置,以便后来使用。在某些情况下,变换装置706利用3D几何图形实现数据变更,其包含利用重排操作以便操纵(例如改比例、旋转等)3D目的物以使之生动。然后将形成的图形目的物830显示在显示器屏幕840上。所形成的图形目的物还可以传输到一记录装置(例如磁存储装置,例如磁带)。
在一个实施例中,图1中所示的计算机系统100用于实行图8中的3D图形操作800。在这一实施例中,来自图8的数字数据是代表3D图形的在存储装置110中存储的数据。在一个实施例中,图8中的变换装置820利用处理器105和软件136来实现,以便利用3D几何图形变换数据。这种数据变换的实例包含实现3D转换。在这一实施例中,执行软件136的处理器105实现该转换,并将经转换的数据830存储在存储装置110中和/或将经转换的数据提供到图形装置135。按照这种方式,由计算机系统中的主处理器实行的3D操纵是以增速实现的。因此,本发明还便于通过使用可使用的指令序列来执行重排操作。
虽然,已介绍的几个实例是采用重排操作的,但本技术领域的普通技术人员会理解,本发明不局限于这些应用。此外,虽然是按照几个实施例对本发明进行介绍的,但本技术领域的普通技术人员会认识到本发明不局限于所述的实施例。在所提出的权利要求的构思和范围内通过改型和替换可以实施本发明的方法和装置。因此,所作介绍只应看作是说明性而不是对本发明的限定。
Claims (114)
1.一种计算机系统,包含:
硬件装置,用于向另一个计算机或显示器发送表示图形的数据;
处理器,连接到硬件装置;以及
存储装置,连接到处理器,其中存储有指令,当由处理器执行时,该指令使处理器至少能:
估计控制字的一组比特;
存取一至少具有两个数据元的第一压缩数据操作数;
存取一至少具有两个数据元的第二压缩数据操作数;
根据控制字的该组比特,从所述第一压缩数据操作数中选择第一组数据元;
根据控制字的该组比特,将所述第一组中的每个数据元复制到位于目的操作数的下半部分的特定数据区;
根据控制字的该组比特,从所述第二压缩数据操作数中选择第二组数据元;以及
根据控制字的该组比特,将所述第二组中的每个数据元复制到位于目的操作数的上半部分的特定数据区。
2.如权利要求1所述的计算机系统,其特征在于该存储装置还包含一个压缩装置,用于将浮点数据压缩为数据元。
3.如权利要求1所述的计算机系统,其特征在于该存储装置还包含一个压缩装置,用于将整数数据压缩为数据元。
4.如权利要求1所述的计算机系统,其特征在于所述第一和第二压缩数据操作数是相同的操作数。
5.一种方法,包含下列由计算机实施的步骤:
对一单指令解码;
响应于对该单指令的解码步骤,
估计控制字的一组比特;
存取一具有至少两个数据元的第一压缩数据操作数;
存取一具有至少两个数据元的第二压缩数据操作数;
根据控制字的该组比特,从所述第一压缩数据操作数中选择第一组数据元;
将所述第一组中的每个数据元复制到位于目的操作数的下半部分的特定数据区;
根据控制字的该组比特,从所述第二压缩数据操作数中选择第二组数据元;以及
将所述第二组中的每个数据元复制到位于目的操作数的上半部分的特定数据区。
6.如权利要求5所述的方法,其特征在于还包含的步骤有将浮点数据压缩为数据元。
7.如权利要求5所述的方法,其特征在于还包含的步骤有将整数数据压缩为数据元。
8.如权利要求5所述的方法,其特征在于所述第一和第二压缩数据操作数是相同的操作数。
9.一种方法,包含下列由计算机实行的步骤:
存取表示第一三维图像的数据;
利用三维几何图形变换数据,以便产生第二三维图像,该变换步骤至少包含:
估计控制字的一组比特;
存取一具有至少两个数据元的第一压缩数据操作数;
存取一具有至少两个数据元的第二压缩数据操作数;
根据控制字的该组比特,从所述第一压缩数据操作数中选择第一组数据元;
将所述第一组中的每个数据元复制到位于控制字的该组比特所规定的目的操作数的下半部分的特定数据区;
根据控制字的该组比特,从所述第二压缩数据操作数中选择第二组数据元;以及
将所述第二组中的每个数据元复制到位于控制字的该组比特所规定的目的操作数的上半部分的特定数据区;以及
显示第二三维图像。
10.如权利要求9所述的方法,其特征在于变换步骤包含执行三维转换。
11.如权利要求9所述的方法,其特征在于变换步骤包含将浮点数据压缩为数据元的步骤。
12.如权利要求9所述的方法,其特征在于变换步骤包含将整数数据压缩成数据元的步骤。
13.如权利要求9所述的方法,其特征在于所述第一和第二压缩数据操作数是相同的操作数。
14.一种方法,包含下列由计算机实行的步骤:
存取表示第一三维图像的数据;
利用三维几何图形变换数据,以便产生第二三维图像,该变换步骤至少包含:
估计控制字的一组比特;
存取一具有至少两个数据元的第一压缩数据操作数;
根据控制字的该组比特的数值,从所述第一压缩数据操作数中选择第一组数据元;
将所述第一组中的每个数据元复制到控制字的该组比特所指定的位于目的操作数的特定数据区;以及
显示第二三维图像。
15.如权利要求14所述的方法,其特征在于变换步骤包含执行三维转换。
16.如权利要求14所述的方法,其特征在于变换步骤包含将浮点数据压缩为数据元的步骤。
17.如权利要求14所述的方法,其特征在于变换步骤包含将整数数据压缩成数据元的步骤。
18.如权利要求所述的方法,其特征在于所述第一和第二压缩数据操作数是相同的操作数。
19.一种处理器执行的方法,用以减少从第一和第二源操作数移动压缩的数据元所需的控制字的比特数,所述方法包含下列步骤:
对规定第一和第二源操作数以及控制比特区的一单指令解码;以及
响应于所述控制字的比特区,产生由来自所述第一和第二源操作数的压缩数据元所组成的合成压缩数据操作数,
其中将所述控制字的比特限制于规定来自所述第一和第二源操作数的数据元分别用于所述合成压缩数据操作数的上下半部分。
20.如权利要求19所述的方法,其特征在于:
所述第一和第二压缩数据源操作数和所述合成压缩数据操作数是由四个压缩数据元所组成的,所述控制字的比特区是8比特区。
21.如权利要求19所述的方法,其特征在于所述第一和第二压缩数据源操作数是相同的操作数。
22.如权利要求19所述的方法,其特征在于所述第一和第二压缩数据源操作数用浮点数进行压缩。
23.如权利要求19所述的方法,其特征在于所述第一和第二压缩数据源操作数和所述合成压缩数据操作数各自由至少两个压缩数据元组成。
24.如权利要求19所述的方法,其特征在于所述控制字的比特区是8比特区。
25.如权利要求24所述的方法,其特征在于直接填满控制字的比特区的8-比特用所述单指令被解码。
26.一种用以响应移动指令执行移动操作的处理器,包括:
一个对规定第一和第二源操作数以及控制字的比特区的一单指令进行解码的解码器;以及
一个响应于所述控制字的比特区,产生由来自所述第一和第二源操作数的压缩数据元所组成的合成压缩数据操作数的执行单元,
其中将所述控制字的比特限制于规定来自所述第一和第二源操作数的数据元分别用于所述合成压缩数据操作数的上下半部分。
27.如权利要求26所述的处理器,其特征在于所述第一和第二源操作数是相同的操作数。
28.如权利要求26所述的处理器,其特征在于所述控制字的比特区由8-比特直接值组成。
29.如权利要求26所述的处理器,其特征在于所述控制字的比特区由8-比特组成。
30.如权利要求29所述的处理器,其特征在于所述第一和第二源操作数由双精确度浮点值组成。
31.如权利要求29所述的处理器,其特征在于所述第一和第二源操作数由单精确度浮点值组成。
32.如权利要求29所述的处理器,其特征在于所述压缩数据元由压缩双字组成。
33.如权利要求29所述的处理器,其特征在于所述压缩数据元由压缩字组成。
34.如权利要求29所述的处理器,其特征在于所述压缩数据元由压缩字节组成。
35.如权利要求29所述的处理器,其特征在于所述第一和所述源操作数由压缩数据中的128-比特组成。
36.一种设备,包括:
一个解码装置,用于把重排指令解码为控制信号,所述重排指令包括第一操作数、第二操作数和第三操作数;
所述第一操作数,用于识别第一寄存器以保存至少两个压缩数据元;
所述第二操作数,用于识别第二所寄存器以保存至少两个压缩数据元;
所述第三操作数,提供控制字的比特以指示要选择所述第一操作数和所述第二操作数中的哪些所述压缩数据元并复制到合成寄存器;以及
执行器,连接到所述解码装置,所述执行器响应于所述控制信号和所述控制字的比特,用以从所述第一寄存器中选择第一组数据元和用以把所述第一组数据元复制到所述合成寄存器,所述执行器还响应于所述控制信号和所述控制字的比特,用以从所述第二寄存器中选择第二组数据元和用以把所述第二组数据元复制到所述合成寄存器。
37.如权利要求36所述的设备,其特征在于所述执行器是用于把所述第一组数据元复制到所述合成寄存器中的一个或多个较低目的区。
38.如权利要求37所述的设备,其特征在于所述执行器是用于把所述第二组数据元复制到所述合成寄存器中的一个或多个较高目的区。
39.如权利要求38所述的设备,其特征在于所述第三操作数由8-比特直接值组成。
40.如权利要求39所述的设备,其特征在于所述第一寄存器和所述第二寄存器中的所述数据元由双精确度浮点值组成。
41.如权利要求39所述的设备,其特征在于所述第一寄存器和所述第二寄存器中的所述数据元由单精确度浮点值组成。
42.如权利要求39所述的设备,其特征在于所述压缩数据元由压缩双字组成。
43.如权利要求39所述的设备,其特征在于所述压缩数据元由压缩字组成。
44.如权利要求39所述的设备,其特征在于所述压缩数据元由压缩字节组成。
45.如权利要求36所述的设备,其特征在于所述设备由机器可读的媒体上的机器可读数据确定。
46.如权利要求36所述的设备,其特征在于所述第一寄存器也是所述合成寄存器。
47.如权利要求46所述的设备,其特征在于所述第一操作数与所述第二操作数相同。
48.如权利要求46所述的设备,其特征在于所述第一寄存器和所述第二寄存器保存压缩数据中的128-比特。
49.一种设备,包括:
一个解码装置,用于把重排指令解码为控制信号,所述重排指令包括第一操作数、第二操作数和第三操作数;
所述第一操作数,用于识别第一寄存器以保存至少两个压缩数据元;
所述第二操作数,用于识别存储器存储单元以保存至少两个压缩数据元;
所述第三操作数,用以提供控制字的比特以指示要选择所述第一操作数和所述第二操作数中的哪些所述压缩数据元并复制到合成寄存器;以及、
执行器,连接到所述解码装置,所述执行器响应于所述控制信号和所述控制字的比特,用以从所述第一寄存器中选择第一组数据元和用以把所述第一组数据元复制到所述合成寄存器,所述执行器还响应于所述控制信号和所述控制字的比特,用以从所述存储器存储单元中选择第二组数据元和用以把所述第二组数据元复制到所述合成寄存器。
50.如权利要求49所述的设备,其特征在于所述执行器是用于把所述第一组数据元复制到所述合成寄存器中的一个或多个较低目的区。
51.如权利要求50所述的设备,其特征在于所述执行器是用于把所述第二组数据元复制到所述合成寄存器中的一个或多个较高目的区。
52.如权利要求51所述的设备,其特征在于所述第三操作数由8-比特直接值组成。
53.如权利要求52所述的设备,其特征在于所述第一寄存器和所述第二寄存器中的所述数据元由双精确度浮点值组成。
54.如权利要求52所述的设备,其特征在于所述第一寄存器和所述第二寄存器中的所述数据元由单精确度浮点值组成。
55.如权利要求49所述的设备,其特征在于所述压缩数据元由压缩双字组成。
56.如权利要求49所述的设备,其特征在于所述压缩数据元由压缩字组成。
57.如权利要求49所述的设备,其特征在于所述压缩数据元由压缩字节组成。
58.如权利要求49所述的设备,其特征在于所述第一寄存器也是所述合成寄存器。
59.一种设备,包括:
指令解码器,用以接收和解码重排指令,所述重排指令用作包括含有两组或控制字的多组比特的直接操作数;
第一源寄存器,用以保存第一压缩数据,所述第一压缩数据由第一数据元和第二数据元组成;
第二源寄存器,用以保存第二压缩数据,所述第二压缩数据由第三数据元和第四数据元组成;
目的寄存器,用以保存第三压缩数据;
执行器,连接到所述第一源寄存器以接收所述第一压缩数据,并且连接到所述第二源寄存器以接收所述第二压缩数据;以及
其中,所述执行器还连接到所述指令解码器以接收所述控制字的两组或多组比特,所述执行器用以在响应控制字的所述两组或多组比特中的第一组下从所述第一源寄存器选择所述第一和第二数据元至少之一,并把所述选择数据元从所述第一源寄存器复制到所述目的寄存器的下半部分中的第一数据区,还有,所述执行器用以在响应控制字的所述两组或多组比特中的第二组下从所述第二源寄存器选择所述第三和第四数据元至少之一,并把所述选择数据元从所述第二源寄存器复制到所述目的寄存器的上半部分中的第二数据区。
60.如权利要求59所述的设备,其特征在于所述直接操作数是8-比特直接操作数。
61.如权利要求59所述的设备,其特征在于所述第一源寄存器和所述第二源寄存器的所述数据元由双精确度浮点值组成。
62.如权利要求59所述的设备,其特征在于所述第一源寄存器和所述第二源寄存器的所述数据元由单精确度浮点值组成。
63.如权利要求59所述的设备,其特征在于所述压缩数据由压缩双字组成。
64.如权利要求59所述的设备,其特征在于所述压缩数据由压缩字组成。
65.如权利要求59所述的设备,其特征在于所述压缩数据由压缩字节组成。
66.如权利要求59所述的设备,其特征在于所述设备由机器可读的媒体上的机器可读数据来确定。
67.如权利要求59所述的设备,其特征在于所述第一源寄存器也是所述目的寄存器。
68.如权利要求59所述的设备,其特征在于所述第一源寄存器与所述第二源寄存器相同。
69.如权利要求59所述的设备,其特征在于所述两组或多组控制比特包含直接操作数中的比特0和1。
70.如权利要求60所述的设备,其特征在于所述8-比特直接操作数包含比特0和1,用以从所述第一源寄存器选择哪个数据元被复制到所述目的寄存器的下半部分中的最低数据区,并且包含比特4和5,用以从所述第二源寄存器选择哪个数据元被复制到所述目的寄存器的上半部分中的最低数据区。
71.如权利要求60所述的设备,其特征在于所述8-比特直接操作数包含比特0到3,用以从所述第一源寄存器选择哪些数据元被复制到所述目的寄存器的下半部分中,并且包含比特4到7,用以从所述第二源寄存器选择哪些数据元被复制到所述目的寄存器的上半部分中。
72.如权利要求71所述的设备,其特征在于所述8-比特直接操作数包含比特2和3,用以从所述第一源寄存器选择哪个数据元被复制到所述目的寄存器的下半部分中的最高数据区,并且包含比特6和7,用以从所述第二源寄存器选择哪个数据元被复制到所述目的寄存器的上半部分中的最高数据区。
73.一种计算机系统,包括:
存储器,用以保存软件,所述软件用以提供执行用的重排指令,所述重排指令包括控制字的多个比特;以及
处理器,连接到所述存储器,用以接收和解码所述重排指令,所述处理器还包括:
第一存储器存储单元,用以保存第一块压缩数据;
第二存储器存储单元,用以保存第二块压缩数据;
第三存储器存储单元,用以保存第三块压缩数据;以及
一个执行器,用来根据所述重排指令的控制字的众多比特中的第一个或多个比特从所述第一块压缩数据选择第一数据元,并用来把所述第一数据元复制到所述第三存储器存储单元中的第一数据区,所述执行器还用来根据控制字的所述众多比特中的第二个或多个比特从所述第二块压缩数据选择第二数据元,并且来把所述第二数据元复制到所述第三存储器存储单元中的第二数据区。
74.如权利要求73所述的计算机系统,其特征在于所述第一存储器存储单元是寄存器。
75.如权利要求74所述的计算机系统,其特征在于所述第三存储器存储单元是寄存器。
76.如权利要求75所述的计算机系统,其特征在于所述第一存储器存储单元与所述第三存储器存储单元都是相同的寄存器。
77.如权利要求73所述的计算机系统,其特征在于所述第一数据区是所述第三存储器存储单元中的较低区。
78.如权利要求77所述的计算机系统,其特征在于所述第二数据区是所述第三存储器存储单元中的较高区。
79.如权利要求78所述的计算机系统,其特征在于所述第三块压缩数据区由所述第一数据元和所述第二数据元一起压缩组成。
80.一种处理器实施方法,用来从第一和第二源操作数中移动压缩数据元,包括:
对指定第一和第二源操作数的一单指令和一直接值进行解码;以及
响应于所述直接值,产生由来自所述第一和第二源操作数的压缩数据元组成的合成压缩操作数,
其中,所述直接值之内的比特用来指定哪些来自所述第一和第二源操作数的数据元压缩以填满合成压缩数据操作数。
81.如权利要求80所述的处理器实施方法,其特征在于所述比特用来把来自所述第一和第二源操作数的数据元分别指定给所述合成压缩操作数的上半部分和下半部分。
82.如权利要求80所述的处理器实施方法,其特征在于所述第一与第二压缩数据源操作数和所述合成压缩数据操作数均各自由至少两个压缩数据元组成。
83.如权利要求82所述的处理器实施方法,其特征在于所述直接值由8-比特值组成。
84.如权利要求83所述的处理器实施方法,其特征在于所述第一和第二源操作数由单精确度浮点值组成。
85.如权利要求83所述的处理器实施方法,其特征在于所述压缩数据元由压缩字组成。
86.如权利要求83所述的处理器实施方法,其特征在于所述第一和第二源操作数由压缩数据中的128-比特组成。
87.一个处理器,用于根据重排指令执行重排操作,包括:
解码器,对指定第一与第二源操作数的单指令和控制字的比特区进行解码;以及
执行器,响应于所述控制比特区,产生由来自所述第一和第二源操作数的数据元组成的合成压缩数据操作数,其中,所述控制字的比特用来指定哪些来自所述第一和第二源操作数的数据元以填满所述合成压缩数据操作数的上半部分和下半部分。
88.如权利要求87所述的处理器,其特征在于各所述第一与第二源操作数和所述合成操作数的压缩数据由至少两个压缩数据元组成。
89.如权利要求87所述的处理器,其特征在于所述控制字的比特区由8-比特值组成。
90.如权利要求87所述的处理器,其特征在于所述第一和第二源操作数由单精确度浮点值组成。
91.如权利要求88所述的处理器,其特征在于所述压缩数据元由压缩字组成。
92.如权利要求87所述的处理器,其特征在于所述第一和第二源操作数由压缩数据中的128-比特组成。
93.如权利要求87所述的处理器,其特征在于所述第一和第二源操作数是相同的操作数。
94.一种设备,它包括:
一个执行单元,用于接收至少包括一个第一和第二数据元的第一压缩数据,至少包括一个第三和第四数据元的第二压缩数据,和控制字的一组比特,执行单元还用于输出包括第一和第二部分的结果,
其中,根据所述控制字的比特,所述执行单元用于从所述第一压缩数据中选择所述第一和第二数据元至少其中之一并将其复制到所述结果的第一部分,并且从所述第二压缩数据中选择所述第三和第四数据元至少其中之一并将其复制到所述结果的第二部分。
95.如权利要求94所述的设备,其特征在于所述第一和第二压缩数据包括压缩字。
96.如权利要求94所述的设备,其特征在于所述第一和第二压缩数据包括压缩字节。
97.如权利要求94所述的设备,其特征在于所述结果和所述第一和第二压缩数据包括1 28比特压缩数据。
98.如权利要求94所述的设备,其特征在于所述结果和所述第一和第二数据包括单精确度浮点值。
99.如权利要求94所述的设备,其特征在于该组控制比特包括8个比特。
100.如权利要求99所述的设备,其特征在于所述第一压缩数据与所述第二压缩数据相同。
101.如权利要求94所述的设备,其特征在于所述设备是由机器可读媒体上的机器可读数据确定的。
102.一种设备,它包括:
一个解码单元,用于解码一个指令,以操作含有至少两个数据元的第一压缩数据操作数,含有至少两个数据元的第二压缩数据操作数,和含有控制字的一组比特的第三操作数;和
一个执行单元,耦合到所述节解码单元,所述执行单元输出至少有第一和第二部分的结果,所述执行单元根据所述控制字的比特从所述第一压缩数据操作数中选择第一数据元并将其复制到所述结果的第一部分,所述执行单元还根据所述控制字的比特从所述第二压缩数据操作数中选择第二数据元并将其复制到所述结果的第二部分。
103.如权利要求102所述的设备,其特征在于该组控制字的比特包括8个比特。
104.如权利要求103所述的设备,其特征在于所述设备是由机器可读媒体上的机器可读数据确定的。
105.如权利要求104所述的设备,其特征在于所述第一和第二压缩数据操作数包括压缩字。
106.如权利要求104所述的设备,其特征在于所述第一和第二压缩数据操作数包括压缩字节。
107.如权利要求104所述的设备,其特征在于所述结果和所述第一和第二压缩数据操作数包括单精确度浮点值。
108.如权利要求104所述的设备,其特征在于所述结果和所述第一和第二压缩数据操作数包括128比特压缩数据。
109.如权利要求104所述的设备,其特征在于所述第一压缩数据操作数与所述第二压缩数据操作数相同。
110.一种方法,该方法包括以下步骤:
接收至少包括第一和第二数据元的第一压缩数据,至少包括第三和第四数据元的第二压缩数据,和控制字的一组比特;和
根据控制字的所述组比特,从所述第一压缩数据中选择所述第一和第二数据元至少其中之一并将其复制到所述结果的第一部分,并且从所述第二压缩数据中选择所述第三和第四数据元至少其中之一并将其复制到所述结果的第二部分。
111.如权利要求110所述的方法,其特征在于控制字的该组比特包括8个比特。
112.如权利要求111所述的方法,其特征在于所述第一和第二压缩数据包括压缩字节。
113.如权利要求112所述的方法,其特征在于所述结果和所述第一和第二压缩数据包括128比特压缩数据。
114.如权利要求113所述的方法,其特征在于所述第一压缩数据与所述第二压缩数据相同。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/052,996 US6041404A (en) | 1998-03-31 | 1998-03-31 | Dual function system and method for shuffling packed data elements |
US09/052996 | 1998-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1234560A CN1234560A (zh) | 1999-11-10 |
CN1158613C true CN1158613C (zh) | 2004-07-21 |
Family
ID=21981242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB991060970A Expired - Lifetime CN1158613C (zh) | 1998-03-31 | 1999-03-31 | 用于执行重排指令的方法、处理器、设备和系统 |
Country Status (6)
Country | Link |
---|---|
US (2) | US6041404A (zh) |
EP (1) | EP0947918A3 (zh) |
CN (1) | CN1158613C (zh) |
BR (1) | BR9901145A (zh) |
SG (1) | SG77228A1 (zh) |
TW (1) | TW452735B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104011646A (zh) * | 2011-12-22 | 2014-08-27 | 英特尔公司 | 用于产生按照数值顺序的连续整数的序列的处理器、方法、系统和指令 |
US10223111B2 (en) | 2011-12-22 | 2019-03-05 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in which integers in consecutive positions differ by a constant integer stride and where a smallest integer is offset from zero by an integer offset |
US10866807B2 (en) | 2011-12-22 | 2020-12-15 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in numerical order that differ by a constant stride |
US11250108B2 (en) | 2018-08-06 | 2022-02-15 | Huawei Technologies Co., Ltd. | Matrix processing method and apparatus, and logic circuit |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6295599B1 (en) * | 1995-08-16 | 2001-09-25 | Microunity Systems Engineering | System and method for providing a wide operand architecture |
US5953241A (en) | 1995-08-16 | 1999-09-14 | Microunity Engeering Systems, Inc. | Multiplier array processing system with enhanced utilization at lower precision for group multiply and sum instruction |
US6643765B1 (en) * | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
US7301541B2 (en) | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
US7392275B2 (en) * | 1998-03-31 | 2008-06-24 | Intel Corporation | Method and apparatus for performing efficient transformations with horizontal addition and subtraction |
US7395302B2 (en) | 1998-03-31 | 2008-07-01 | Intel Corporation | Method and apparatus for performing horizontal addition and subtraction |
US7133040B1 (en) * | 1998-03-31 | 2006-11-07 | Intel Corporation | System and method for performing an insert-extract instruction |
US6418529B1 (en) * | 1998-03-31 | 2002-07-09 | Intel Corporation | Apparatus and method for performing intra-add operation |
US6041404A (en) | 1998-03-31 | 2000-03-21 | Intel Corporation | Dual function system and method for shuffling packed data elements |
ATE467171T1 (de) | 1998-08-24 | 2010-05-15 | Microunity Systems Eng | System mit breiter operandenarchitektur und verfahren |
US7932911B2 (en) * | 1998-08-24 | 2011-04-26 | Microunity Systems Engineering, Inc. | Processor for executing switch and translate instructions requiring wide operands |
US7155601B2 (en) * | 2001-02-14 | 2006-12-26 | Intel Corporation | Multi-element operand sub-portion shuffle instruction execution |
US7631025B2 (en) * | 2001-10-29 | 2009-12-08 | Intel Corporation | Method and apparatus for rearranging data between multiple registers |
US20040054877A1 (en) * | 2001-10-29 | 2004-03-18 | Macy William W. | Method and apparatus for shuffling data |
US7739319B2 (en) * | 2001-10-29 | 2010-06-15 | Intel Corporation | Method and apparatus for parallel table lookup using SIMD instructions |
US7818356B2 (en) | 2001-10-29 | 2010-10-19 | Intel Corporation | Bitstream buffer manipulation with a SIMD merge instruction |
US7685212B2 (en) * | 2001-10-29 | 2010-03-23 | Intel Corporation | Fast full search motion estimation with SIMD merge instruction |
US7725521B2 (en) * | 2001-10-29 | 2010-05-25 | Intel Corporation | Method and apparatus for computing matrix transformations |
US7624138B2 (en) | 2001-10-29 | 2009-11-24 | Intel Corporation | Method and apparatus for efficient integer transform |
US7853778B2 (en) * | 2001-12-20 | 2010-12-14 | Intel Corporation | Load/move and duplicate instructions for a processor |
US7047383B2 (en) * | 2002-07-11 | 2006-05-16 | Intel Corporation | Byte swap operation for a 64 bit operand |
ATE493703T1 (de) * | 2004-11-03 | 2011-01-15 | Koninkl Philips Electronics Nv | Programmierbare datenverarbeitungsschaltung, die simd-befehle unterstützt |
CN101059865B (zh) * | 2006-04-18 | 2010-05-12 | 太极控股有限公司 | 指令摺叠处理单元及其方法以及使用该摺叠处理单元及该方法之像素处理系统 |
US7761694B2 (en) * | 2006-06-30 | 2010-07-20 | Intel Corporation | Execution unit for performing shuffle and other operations |
US8417922B2 (en) * | 2006-08-02 | 2013-04-09 | Qualcomm Incorporated | Method and system to combine multiple register units within a microprocessor |
US8289324B1 (en) | 2007-12-17 | 2012-10-16 | Nvidia Corporation | System, method, and computer program product for spatial hierarchy traversal |
US8502819B1 (en) | 2007-12-17 | 2013-08-06 | Nvidia Corporation | System and method for performing ray tracing node traversal in image rendering |
US8909901B2 (en) | 2007-12-28 | 2014-12-09 | Intel Corporation | Permute operations with flexible zero control |
US8078836B2 (en) | 2007-12-30 | 2011-12-13 | Intel Corporation | Vector shuffle instructions operating on multiple lanes each having a plurality of data elements using a common set of per-lane control bits |
US8423983B2 (en) * | 2008-10-14 | 2013-04-16 | International Business Machines Corporation | Generating and executing programs for a floating point single instruction multiple data instruction set architecture |
US8327344B2 (en) * | 2008-10-14 | 2012-12-04 | International Business Machines Corporation | Array reference safety analysis in the presence of loops with conditional control flow |
US9652231B2 (en) * | 2008-10-14 | 2017-05-16 | International Business Machines Corporation | All-to-all permutation of vector elements based on a permutation pattern encoded in mantissa and exponent bits in a floating-point SIMD architecture |
US9086872B2 (en) | 2009-06-30 | 2015-07-21 | Intel Corporation | Unpacking packed data in multiple lanes |
US8555036B1 (en) | 2010-05-17 | 2013-10-08 | Nvidia Corporation | System and method for performing predicated selection of an output register |
US8564589B1 (en) | 2010-05-17 | 2013-10-22 | Nvidia Corporation | System and method for accelerated ray-box intersection testing |
CN102109978A (zh) * | 2011-02-28 | 2011-06-29 | 孙瑞琛 | 一种数据的重排方法及重排装置 |
WO2013089749A1 (en) * | 2011-12-15 | 2013-06-20 | Intel Corporation | Methods to optimize a program loop via vector instructions using a shuffle table and a mask store table |
WO2013095620A1 (en) | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method of improved insert instructions |
WO2013095637A1 (en) | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method of improved permute instructions |
CN104115114B (zh) | 2011-12-23 | 2018-06-12 | 英特尔公司 | 经改进的提取指令的装置和方法 |
US9946540B2 (en) | 2011-12-23 | 2018-04-17 | Intel Corporation | Apparatus and method of improved permute instructions with multiple granularities |
US9632980B2 (en) | 2011-12-23 | 2017-04-25 | Intel Corporation | Apparatus and method of mask permute instructions |
US9395988B2 (en) | 2013-03-08 | 2016-07-19 | Samsung Electronics Co., Ltd. | Micro-ops including packed source and destination fields |
US9766888B2 (en) | 2014-03-28 | 2017-09-19 | Intel Corporation | Processor instruction to store indexes of source data elements in positions representing a sorted order of the source data elements |
US9785565B2 (en) | 2014-06-30 | 2017-10-10 | Microunity Systems Engineering, Inc. | System and methods for expandably wide processor instructions |
EP3001307B1 (en) | 2014-09-25 | 2019-11-13 | Intel Corporation | Bit shuffle processors, methods, systems, and instructions |
CN105511838B (zh) * | 2014-09-29 | 2018-06-29 | 上海兆芯集成电路有限公司 | 处理器及其执行方法 |
US9898286B2 (en) * | 2015-05-05 | 2018-02-20 | Intel Corporation | Packed finite impulse response (FIR) filter processors, methods, systems, and instructions |
US10503502B2 (en) | 2015-09-25 | 2019-12-10 | Intel Corporation | Data element rearrangement, processors, methods, systems, and instructions |
US10678545B2 (en) * | 2016-07-07 | 2020-06-09 | Texas Instruments Incorporated | Data processing apparatus having streaming engine with read and read/advance operand coding |
US9959247B1 (en) | 2017-02-17 | 2018-05-01 | Google Llc | Permuting in a matrix-vector processor |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3711692A (en) | 1971-03-15 | 1973-01-16 | Goodyear Aerospace Corp | Determination of number of ones in a data field by addition |
US3723715A (en) | 1971-08-25 | 1973-03-27 | Ibm | Fast modulo threshold operator binary adder for multi-number additions |
US4139899A (en) | 1976-10-18 | 1979-02-13 | Burroughs Corporation | Shift network having a mask generator and a rotator |
US4161784A (en) | 1978-01-05 | 1979-07-17 | Honeywell Information Systems, Inc. | Microprogrammable floating point arithmetic unit capable of performing arithmetic operations on long and short operands |
US4418383A (en) | 1980-06-30 | 1983-11-29 | International Business Machines Corporation | Data flow component for processor and microprocessor systems |
US4393468A (en) | 1981-03-26 | 1983-07-12 | Advanced Micro Devices, Inc. | Bit slice microprogrammable processor for signal processing applications |
US4498177A (en) | 1982-08-30 | 1985-02-05 | Sperry Corporation | M Out of N code checker circuit |
US4707800A (en) | 1985-03-04 | 1987-11-17 | Raytheon Company | Adder/substractor for variable length numbers |
JPS6297060A (ja) | 1985-10-23 | 1987-05-06 | Mitsubishi Electric Corp | デイジタルシグナルプロセツサ |
JP2613223B2 (ja) * | 1987-09-10 | 1997-05-21 | 株式会社日立製作所 | 演算装置 |
US4989168A (en) | 1987-11-30 | 1991-01-29 | Fujitsu Limited | Multiplying unit in a computer system, capable of population counting |
US5019968A (en) * | 1988-03-29 | 1991-05-28 | Yulan Wang | Three-dimensional vector processor |
US4903228A (en) | 1988-11-09 | 1990-02-20 | International Business Machines Corporation | Single cycle merge/logic unit |
KR920007505B1 (ko) | 1989-02-02 | 1992-09-04 | 정호선 | 신경회로망을 이용한 곱셈기 |
US5081698A (en) | 1989-02-14 | 1992-01-14 | Intel Corporation | Method and apparatus for graphics display data manipulation |
US5497497A (en) * | 1989-11-03 | 1996-03-05 | Compaq Computer Corp. | Method and apparatus for resetting multiple processors using a common ROM |
US5168571A (en) | 1990-01-24 | 1992-12-01 | International Business Machines Corporation | System for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data |
US5268995A (en) | 1990-11-21 | 1993-12-07 | Motorola, Inc. | Method for executing graphics Z-compare and pixel merge instructions in a data processor |
US5680161A (en) | 1991-04-03 | 1997-10-21 | Radius Inc. | Method and apparatus for high speed graphics data compression |
US5187679A (en) | 1991-06-05 | 1993-02-16 | International Business Machines Corporation | Generalized 7/3 counters |
US5321810A (en) * | 1991-08-21 | 1994-06-14 | Digital Equipment Corporation | Address method for computer graphics system |
US5423010A (en) | 1992-01-24 | 1995-06-06 | C-Cube Microsystems | Structure and method for packing and unpacking a stream of N-bit data to and from a stream of N-bit data words |
US5426783A (en) | 1992-11-02 | 1995-06-20 | Amdahl Corporation | System for processing eight bytes or less by the move, pack and unpack instruction of the ESA/390 instruction set |
US5408670A (en) | 1992-12-18 | 1995-04-18 | Xerox Corporation | Performing arithmetic in parallel on composite operands with packed multi-bit components |
US5465374A (en) | 1993-01-12 | 1995-11-07 | International Business Machines Corporation | Processor for processing data string by byte-by-byte |
US5625374A (en) | 1993-09-07 | 1997-04-29 | Apple Computer, Inc. | Method for parallel interpolation of images |
US5390135A (en) | 1993-11-29 | 1995-02-14 | Hewlett-Packard | Parallel shift and add circuit and method |
US5487159A (en) * | 1993-12-23 | 1996-01-23 | Unisys Corporation | System for processing shift, mask, and merge operations in one instruction |
US5781457A (en) | 1994-03-08 | 1998-07-14 | Exponential Technology, Inc. | Merge/mask, rotate/shift, and boolean operations from two instruction sets executed in a vectored mux on a dual-ALU |
US5931945A (en) * | 1994-04-29 | 1999-08-03 | Sun Microsystems, Inc. | Graphic system for masking multiple non-contiguous bytes having decode logic to selectively activate each of the control lines based on the mask register bits |
US5594437A (en) | 1994-08-01 | 1997-01-14 | Motorola, Inc. | Circuit and method of unpacking a serial bitstream |
US5579253A (en) * | 1994-09-02 | 1996-11-26 | Lee; Ruby B. | Computer multiply instruction with a subresult selection option |
EP1265132A3 (en) | 1994-12-02 | 2005-02-09 | Intel Corporation | Microprocessor with packing operation of composite operands |
US6381690B1 (en) * | 1995-08-01 | 2002-04-30 | Hewlett-Packard Company | Processor for performing subword permutations and combinations |
US5742840A (en) * | 1995-08-16 | 1998-04-21 | Microunity Systems Engineering, Inc. | General purpose, multiple precision parallel operation, programmable media processor |
DE69625790T2 (de) * | 1995-09-01 | 2003-11-20 | Philips Electronics Na | Verfahren und vorrichtung für anpassbare operationen durch einen prozessor |
US5819117A (en) * | 1995-10-10 | 1998-10-06 | Microunity Systems Engineering, Inc. | Method and system for facilitating byte ordering interfacing of a computer system |
US6009191A (en) * | 1996-02-15 | 1999-12-28 | Intel Corporation | Computer implemented method for compressing 48-bit pixels to 16-bit pixels |
US6058465A (en) * | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
GB2317467B (en) * | 1996-09-23 | 2000-11-01 | Advanced Risc Mach Ltd | Input operand control in data processing systems |
US5909572A (en) * | 1996-12-02 | 1999-06-01 | Compaq Computer Corp. | System and method for conditionally moving an operand from a source register to a destination register |
GB2326253A (en) * | 1997-06-10 | 1998-12-16 | Advanced Risc Mach Ltd | Coprocessor data access control |
US5933650A (en) * | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US6223277B1 (en) * | 1997-11-21 | 2001-04-24 | Texas Instruments Incorporated | Data processing circuit with packed data structure capability |
US6041404A (en) | 1998-03-31 | 2000-03-21 | Intel Corporation | Dual function system and method for shuffling packed data elements |
US6115812A (en) | 1998-04-01 | 2000-09-05 | Intel Corporation | Method and apparatus for efficient vertical SIMD computations |
US6243808B1 (en) | 1999-03-08 | 2001-06-05 | Chameleon Systems, Inc. | Digital data bit order conversion using universal switch matrix comprising rows of bit swapping selector groups |
-
1998
- 1998-03-31 US US09/052,996 patent/US6041404A/en not_active Expired - Lifetime
-
1999
- 1999-03-11 SG SG1999001342A patent/SG77228A1/en unknown
- 1999-03-26 EP EP99302378A patent/EP0947918A3/en not_active Withdrawn
- 1999-03-31 CN CNB991060970A patent/CN1158613C/zh not_active Expired - Lifetime
- 1999-03-31 BR BR9901145-0A patent/BR9901145A/pt not_active Application Discontinuation
- 1999-06-21 TW TW088105136A patent/TW452735B/zh not_active IP Right Cessation
-
2002
- 2002-03-21 US US10/104,205 patent/USRE45458E1/en not_active Expired - Lifetime
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104011646A (zh) * | 2011-12-22 | 2014-08-27 | 英特尔公司 | 用于产生按照数值顺序的连续整数的序列的处理器、方法、系统和指令 |
CN104011646B (zh) * | 2011-12-22 | 2018-03-27 | 英特尔公司 | 用于产生按照数值顺序的连续整数的序列的处理器、方法、系统和指令 |
US10223111B2 (en) | 2011-12-22 | 2019-03-05 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in which integers in consecutive positions differ by a constant integer stride and where a smallest integer is offset from zero by an integer offset |
US10223112B2 (en) | 2011-12-22 | 2019-03-05 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in which integers in consecutive positions differ by a constant integer stride and where a smallest integer is offset from zero by an integer offset |
US10565283B2 (en) | 2011-12-22 | 2020-02-18 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of consecutive integers in numerical order |
US10732970B2 (en) | 2011-12-22 | 2020-08-04 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in which integers in consecutive positions differ by a constant integer stride and where a smallest integer is offset from zero by an integer offset |
US10866807B2 (en) | 2011-12-22 | 2020-12-15 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in numerical order that differ by a constant stride |
US11650820B2 (en) | 2011-12-22 | 2023-05-16 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in numerical order that differ by a constant stride |
US11250108B2 (en) | 2018-08-06 | 2022-02-15 | Huawei Technologies Co., Ltd. | Matrix processing method and apparatus, and logic circuit |
US11734386B2 (en) | 2018-08-06 | 2023-08-22 | Huawei Technologies Co., Ltd. | Matrix processing method and apparatus, and logic circuit |
Also Published As
Publication number | Publication date |
---|---|
EP0947918A2 (en) | 1999-10-06 |
CN1234560A (zh) | 1999-11-10 |
USRE45458E1 (en) | 2015-04-07 |
US6041404A (en) | 2000-03-21 |
SG77228A1 (en) | 2000-12-19 |
BR9901145A (pt) | 1999-12-21 |
EP0947918A3 (en) | 2000-04-26 |
TW452735B (en) | 2001-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1158613C (zh) | 用于执行重排指令的方法、处理器、设备和系统 | |
CN1218313C (zh) | 用用户反馈回放有视频和图形项的记录载体的设备和方法 | |
CN1285216C (zh) | 图像编码方法和装置、图像译码方法和装置 | |
CN1164120C (zh) | 图像编码装置和图像解码装置 | |
CN1136517C (zh) | 图象数据处理方法、图象数据处理装置 | |
CN1189654A (zh) | 发送图像数据和处理图像的方法和装置及其记录介质 | |
CN1501717A (zh) | 数字视频信号块间预测编码/解码装置及编码/解码方法 | |
CN1620803A (zh) | 图像处理设备 | |
CN1147306A (zh) | 多指令集映射 | |
CN1519684A (zh) | 数据传送方法和数据传送设备 | |
CN1744684A (zh) | 视频显示控制设备和视频显示控制方法 | |
CN1256848C (zh) | 用于译码可变长度编码的装置和方法 | |
CN1217489C (zh) | 快速解码的方法及其装置 | |
CN1181679C (zh) | 图象解码装置和方法以及图象重放装置 | |
CN1339221A (zh) | 数字信号处理设备及其系统和扩充功能提供方法 | |
CN1949858A (zh) | 图像处理设备、图像拍摄设备以及图像处理方法 | |
CN1395795A (zh) | 图象记录装置与方法、图象再现装置与方法、以及上面记录有图象处理程序的记录介质 | |
CN1959630A (zh) | 微处理器 | |
CN1271523C (zh) | 具有扩展指令的中央处理器 | |
CN1535028A (zh) | 图像编码设备、方法及程序,和图像解码设备、方法及程序 | |
CN1783992A (zh) | 再现设备、数据处理系统、再现方法、程序及存储介质 | |
CN101051263A (zh) | 处理器、图像处理系统和处理方法 | |
CN1857007A (zh) | 压缩数据的方法 | |
CN1281063C (zh) | 动画快速压缩及解压方法 | |
CN1236456A (zh) | 数字信号变换方法和装置、变换矩阵产生方法和装置及提供介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20040721 |