CN1329819C - 互换地址寄存器所存内容的方法和设备 - Google Patents

互换地址寄存器所存内容的方法和设备 Download PDF

Info

Publication number
CN1329819C
CN1329819C CNB03809763XA CN03809763A CN1329819C CN 1329819 C CN1329819 C CN 1329819C CN B03809763X A CNB03809763X A CN B03809763XA CN 03809763 A CN03809763 A CN 03809763A CN 1329819 C CN1329819 C CN 1329819C
Authority
CN
China
Prior art keywords
address
register
address register
content
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB03809763XA
Other languages
English (en)
Other versions
CN1650257A (zh
Inventor
拉维·普拉塔仆·思恩赫
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.)
Analog Devices Inc
Original Assignee
Analog Devices Inc
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 Analog Devices Inc filed Critical Analog Devices Inc
Publication of CN1650257A publication Critical patent/CN1650257A/zh
Application granted granted Critical
Publication of CN1329819C publication Critical patent/CN1329819C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

本文涉及用于数字信息处理器的方法和设备,这些方法和设备支持数字存储缓冲区。在本发明的某一方面,数字信号处理器接收互换指令,并通过将第一地址寄存器中的内容与第二地址寄存器中的内容进行对换而对互换指令做出响应。在另一方面,数字信号处理器接收互换指令,根据互换指令在未来文件中将第一地址寄存器中的内容与第二地址寄存器中的内容进行对换,并为处于执行流水线下游的结构文件生成一个或多个控制信号,同时根据一个或多个控制信号将结构文件中第一地址寄存器中的内容与第二地址寄存器中的内容进行对换。

Description

互换地址寄存器所存内容的方法和设备
发明领域
本发明与数字信息处理器相关;更具体而言,本发明与用于数字信息量处理器的方法和设备有关,这些方法和设备支持数字存储缓冲区。
发明背景
许多数字信息处理器具有数字存储缓冲区,这些数字存储缓冲区可以暂时存储信息。数字存储缓冲区可由专用的寄存器硬件构成,这些寄存器硬件通过电子线路连接在一起,数字存储缓冲区也可只简单地由一个更大的存储器的某一专用部分构成。
有一种类型的数字存储缓冲区被称为环形缓冲区。在环形缓冲区中,缓冲区的起始位置跟在缓冲区的结束位置之后。这就是说,当对缓冲区的连续位置进行访问时,起始位置自动地跟随在结束位置之后。
人们希望能对存储在环形缓冲区中的信息进行快速的访问。举例而言,数字信息处理器可带有执行流水线,从而提高输入输出总量,然而为了充分利用这一流水线,应该对信息进行快速的访问。因此,存储地址(被用来访问缓冲区的位置)通常通过地址生成器硬件生成。一种类型的环形缓冲区地址生成器硬件对每个环形缓冲区准备着4个寄存器:(1)基础寄存器B,该寄存器在缓冲区中的地址数字最小;(2)索引寄存器I;该寄存器含有下一个要被访问的缓冲区地址;(3)变址寄存器M;该寄存器含有增量(或减量);(4)长度寄存器L,该寄存器含有缓冲区的长度。
图1表明了环形缓冲区和地址寄存器的某一实例,该缓冲区是某一更大存储器的一部分,地址寄存器与存储缓冲区保持在一起。数字最小的地址被称为基础地址,数字最小的地址例如是地址19。基础地址存储在基础寄存器B中。缓冲区中的最高地址,例如地址29被称为终端地址,并以E代表。缓冲区的长度存储在长度寄存器L中。索引寄存器用I表示,该寄存器是指向缓冲区的指针。索引寄存器通常含有下一个要被访问位置的地址,例如含有地址26。在每次访问后,指针便递增或递减到预定的地址数字,从而为环形缓冲区的下一次访问做好准备。指针递增或递减到的地址空间数量是变址量,这一地址空间数量存储在变址寄存器M中。在通常情况下,变址量是一个固定不变的数字,虽然在一些应用中,变址量是可以改变的。
许多数字信息量处理程序使用到了存储缓冲区。这样一种程序通常被称为快速傅立叶变换。傅立叶变换程序使用一系列的“蝴蝶”计算来产生某个结果。一次蝴蝶计算得到的结果被用作下一次蝴蝶计算的输入数据。
大多数傅立叶变换程序的结构会使每次蝴蝶计算的输入数据从某一特定的存储缓冲区(在本文中被称为输入缓冲区)中读取,并且使每次蝴蝶计算得到的结果存储在另一存储缓冲区(在本文中被称为输出缓冲区)中。由于每次蝴蝶计算的结果被用作下一次蝴蝶计算的输入数据,所以在下一次蝴蝶计算开始之前,这些计算结果必须被加载到输入缓冲区中。
有许多种方式可使计算结果加载到输入缓冲区中。一种方式就是简单地将结果从输出缓冲区拷贝到输入缓冲区中。然而,将计算结果从一个缓冲区拷贝到另一缓冲区需要很长的时间,相对来说,这种方式明显加大了一般性费用,并由此降低了傅立叶变换程序的性能。
另一种方式是改变与输入缓冲区相关的地址寄存器的地址,使其指向存储有前次蝴蝶计算结果的输出缓冲区的地址。同时,与输出缓冲区相关的寄存器通常也被改变,从而指向先前被用于输入缓冲区的地址。按照这种方式操作后,已知的蝴蝶计算结果在不覆盖同次蝴蝶计算输入数据的情况下而存储起来。改变与输入缓冲区和输出缓冲区相关的地址寄存器所取得的总体效果与使用输出缓冲区中内容来改变输入缓冲区中内容所达到的效果是相同的。
改变地址寄存器通常按以下过程进行:(1)使用输出缓冲区基础寄存器中的内容替换输入缓冲区基础寄存器中的内容;(2)使用输出缓冲区索引寄存器中的内容替换输入缓冲区索引寄存器中的内容。
图2A表明了在内容改变之前,输入缓冲区及输出缓冲区的基础寄存器及索引寄存器所存储的内容。在这一实例中,在内容改变之前,基础寄存器B0和索引寄存器I0与输入缓冲区相关,这两个寄存器指向1号蝴蝶计算所用的输入数据。基础寄存器B1和索引寄存器I1与输出缓冲区相关,这两个寄存器指向1号蝴蝶计算所生成的计算结果。
图2B表明了在内容改变之后,输入缓冲区及输出缓冲区的基础寄存器及索引寄存器所存储的内容。在内容改变之后,与输入缓冲区相关的基础寄存器B0和索引寄存器I0指向了1号蝴蝶计算的结果,而与输出缓冲区相关的基础寄存器B1和索引寄存器I1指向了1号蝴蝶计算所用的输入数据。
图3表明了某一程序,该程序一般被用来实现输出缓冲区的基础寄存器及索引寄存器所含内容与输入缓冲区的基础寄存器及索引寄存器所含内容的对换。该程序含有6条指令,并使用临时寄存器R0和R1。
尽管目前的数字信息处理器的性能已达到了一定的水平,但仍需要进一步的改善。
发明概述
根据本发明的某一方面,提供了一种用于数字信息处理器的方法,所述方法包括:提供第一地址寄存器,该第一地址寄存器被配置为保持对应于第一存储位置的第一存储器地址;提供第二地址寄存器,该第二地址寄存器被配置为保持对应于第二存储位置的第二存储器地址;提供第三地址寄存器,该第三地址寄存器被配置为保持对应于第三存储位置的第三存储器地址;提供第四地址寄存器,该第四地址寄存器被配置为保持对应于第四存储位置的第四存储器地址;以及通过将第一地址寄存的内容与第二地址寄存器的内容对换以及通过将第三地址寄存的内容与第四地址寄存器的内容对换,而对互换指令做出响应,所述互换指令指定对于明确标识的或隐含标识的地址寄存器的互换操作。
根据本发明的另一方面,提供了一种数字信息处理器,包括:第一地址寄存器,用于存储对应于第一存储位置的第一存储器地址;第二地址寄存器,用于存储对应于第二存储位置的第二存储器地址;第三地址寄存器,用于存储对应于第三存储位置的第三存储器地址;第四地址寄存器,用于存储对应于第四存储位置的第四存储器地址;以及电路,其接收互换指令,并且通过将第一地址寄存的内容与第二地址寄存器的内容对换以及通过将第三地址寄存的内容与第四地址寄存器的内容对换,而对互换指令做出响应,所述互换指令指定对于明确标识的或隐含标识的地址寄存器的互换操作。
根据本发明的另一方面,数字信息处理器包括第一地址寄存器、第二地址寄存器以及对互换第一地址寄存器和第二地址寄存器中内容的互换指令做出响应的方法;其中的互换指令至少指定了两个明确标识或隐含标识的地址寄存器的互换操作。
根据本发明的另一方面,数据地址发生器包括第一地址寄存器、第二地址寄存器以及某一电路。其中第一地址寄存器含有与第一环形缓冲区中地址相对应的第一个地址,第二地址寄存器含有与第二环形缓冲区中地址相对应的第二个第二地址,电路接收代表着互换指令的信号,并通过使第一地址寄存器中的内容与第二地址寄存器中的内容发生互换而对互换指令信号做出响应。
根据这种方式,互换指令可完全不再需要临时寄存器来执行互换过程,这就降低了寄存器的需求压力,并有助于降低由于寄存器需求过度所造的滞后可能性(滞后会降低处理上程序执行的速度及性能)。此外,在这种方式下,如图3所示,互换指令减少了或完全消除了程序中的数据依赖性以及任何相关的等待周期(数据依赖性和等待周期会降低处理上程序执行的速度及性能)。
根据本发明的另一方面,某种用于数字信息处理器的方法包括根据互换指令而在未来文件中将第一地址寄存器中的内容与第二地址寄存器中的内容进行互换;根据互换指令在未来文件中生成一个或多个控制信号,并将控制信号发送到结构文件;根据一个或多个控制信号而将结构文件中第一地址寄存器所含的内容与第二地址寄存器所含的内容进行互换。
人们已经认识到,后来提到的本发明方面并不局限于互换指今,而是一般可以用于具有流水线处理结构的数据处理器,尤其可以用于操作的结果为流水线多个阶段所需要的情况。举例而言,除了在某一阶段执行操作并将操作结果输送给后面的阶段外,流水线处理过程的多个阶段具有实际执行操作的能力。此后,只需向后面的阶段提供控制信号(不是操作结果)。根据这一实施方案,这种方式可减小数据处理器所需的面积和/或耗电量。
尽管本发明一个或多个方面的一个或多个实施方案具有前面所述的各种潜在优势,但应该理解的是,并不绝对需要本发明任何方面的任何实施方案来解决以前技术的缺陷。
图示简介
图1表明了某一环形缓冲区的实例,该缓冲区是某一更大存储器的一部分。
图2A表明的是,在与输入缓冲区和输出缓冲区相关的地址寄存器所含内容发生互换之前,输入缓冲区和输出缓冲区的基础寄存器和索引寄存器中所含的内容。
图2B表明的是,在与输入缓冲区和输出缓冲区相关的地址寄存器所含内容发生互换之后,输入缓冲区和输出缓冲区的基础寄存器和索引寄存器中所含的内容。
图3表明了某一程序,该程序通常被用来使输出缓冲区基础寄存器和索引寄存器中的内容与输入缓冲区基础寄存器和索引寄存器中的内容进行互换。
图4A表明的是本发明某一实施方案中互换指令格式的实例。
图4B表明的是本发明另一实施方案中互换指令格式的实例。
图5表明的是数字信息处理器某一部分的模块图;在本发明的某一实施方案中,数字信息处理器接收并执行互换指令。
图6是图5所示数据地址发生器的某一实施方案的模块图。
图7A是图6所示寄存器单元某一实施方案的部分模块图。
图7B是图6所示寄存器单元另一实施方案的部分模块图。
图8表明的是数字信息处理器流水线处理过程的实例,在本发明的某一实施方案中,该流水线处理过程能够接收并执行互换指令。
图9是数字地址发生器某一实施方案的模块图,该数字地址发生器可被用于图8所示的流水线处理过程。
本发明详细说明
人们已经确定,图3所示的程序存在有几处缺陷。第一个缺陷是,该程序对临时寄存器的需求加大了处理器内对寄存器需求的压力(对临时寄存器需求的水平)。如果对临时寄存器的需求变得过大(与临时寄存器的数量相比),则会出现临时寄存器短缺,从而导致滞后现象出现,而滞后现象将降低处理器上程序的执行速度及性能。对于临时寄存器相对较少的处理器而言,这一问题尤其应加以注意。
第二个缺陷是,在前面的一个或多个指令执行完毕之前,该程序的最后4条指令不能被执行(这种情况在本文中被称为数据依赖)。如果处理器具有很长的流水线处理过程(即流水线处理过程被分成许多阶段),则因为存在有数据依赖而需要加入等待周期(即确保在前面指令完成之前某些指令不能被执行)。因此,即使图3所示的程序只有6条指令,但要完成这一程序可能需要8-10个(甚至更多的)指令周期。在这一段时间内,其他的指令无法输入到流水线处理过程中,这样就降低了通过流水线处理过程的输入输出总量,并降低了处理器上程序的执行速度及性能。
因此,人们不希望使用图3所示的程序。
通过提供互换指令可以实现上面的愿望,这一点已得到证实。
图4A表明的是本发明某一实施方案中互换指令格式100的实例。该指令格式带有运算代码,即SWAP,该运算代码表明该指令是一条互换指令,并在101处进行标明。指令格式还含有两个运算对象区,即地址寄存器id1和地址寄存器id2,这两个运算对象区指定了其内容要进行互换的地址寄存器,并在102、103处表明了这些地址寄存器的名称。
正如本文所使用的,“互换”这一术语是指对内容进行交换。互换操作可以以任何方式加以执行。“地址寄存器”这一术语是指数据地址寄存器,这种数据地址寄存器被定义为任何一种寄存器,只要该寄存器含有访问某一存储位置所用的存储地址或含有生成访问某一存储位置所用存储地址所需的数据。具体的地址寄存器包括基础寄存器B、索引指针寄存器(或简单的索引寄存器)I、变址寄存器M、长度寄存器L以及终端寄存器E。地址寄存器通常与数据地址发生器集成在一起,这一点将在此后做进一步的说明。
使用图4A所示格式的互换指令的一个实例为:SWAP I0,I1;该指令要求索引寄存器I1中的内容与索引寄存器I0中的内容互换。
使用图4A中指令格式的互换指令的另一实例为:SWAP B0,B1;该指令要求基础寄存器B1中的内容与基础寄存器B0中的内容互换。
互换指令的有效性降低了互换地址寄存器所含内容所需的指令数量以及指令周期数量,因此提高了数字信息处理器的运行速度及性能。互换指令还降低了对临时寄存器的需求,这样就缓解了寄存器需求压力,并由此降低了由于寄存器需求过度所引起的滞后现象出现可能性(滞后现象会降低处理器上程序的执行速度及性能)。
应该认识到,本发明并不局限于图4A所示的互换指令格式,其他的互换指令格式也可以使用。
举例而言,在某些实施方案中,地址寄存器不在指令中指定,而是根据运算代码加以暗指。在这些实施方案中,数字信息处理器可设计成在收到互换指令时对某些特定的地址寄存器进行自动互换。另外,数字信息处理器支持多种不同的互换指令,其中每种互换指令具有不同的运算代码。这些不同的运算代码暗指着要被互换的特定地址寄存器。例如,指令:
SWAP01
可要求地址寄存器I1中的内容与地址寄存器I0中的内容进行互换。指令:
SWAP23
可要求用地址寄存器I3中的内容与地址寄存器I2中的内容进行互换。
在某些实施方案中,单独一个互换指令可引起多个互换操作。附加的地址寄存器可被运算代码所暗指(如前面所述)。此外,附加的地址寄存器也可以根据所提供的运算对象加以暗指。举例而言,数字信息处理器可设计为:当在一条互换指令中有两个索引寄存器被指定为运算对象时,则数字信息处理器互换这两个索引寄存器中的内容,并对与这两个索引寄存器相关的基础寄存器中的内容进行互换。举例而言,在某一实施方案中,互换指令:
SWAP I0,I1
(1)可导致寄存器I0中的内容与寄存器I1中的内容发生互换;(2)导致寄存器B0中的内容与寄存器B1中的内容发生互换。下面将结合图7B对这一个实施方案进行说明。
可导致多个互换操作的互换指令的另一种执行方式是提供某种指令格式,这种指令格式包括两个以上的运算对象区。图4B表明了具有两个以上运算对象区的指令格式104。指令格式104含有运算代码,即SWAP,这一运算代码指定这一指令为互换指令,运算代码在105处表明。指令格式有4个运算对象区,即地址寄存器id1、地址寄存器id2、地址寄存器id3、地址寄存器id4,这些运算对象区指定了内容要被互换的地址寄存器,这些地址寄存器在106、107、108、109处被表明。
使用图4B所示指令格式的互换指令实例为:
SWAP I0,I1,B0,B1
该指令要求索引寄存器I0中的内容与索引寄存器I1中的内容进行互换,并要求基础寄存器B1中的内容与基础寄存器B0中的内容进行互换。
使用单独一个互换指令来执行多个互换操作还降低了互换地址寄存器中内容所需的周期数量,因此提高了数字信息处理器的速度和性能。在某些实施方案中,互换地址寄存器中内容所需的指令可以从6条降至1条,指令周期的数量从8(或更多)降至1。
现在对执行互换指令的数字信息处理器进行说明。
图5是数字信息处理器110某一部分的模块图,其中的数字信息处理器根据本发明的某一实施方案接收并执行互换指令。数字信息处理器110包括指令解码器112、数据地址发生器114、指令执行控制单元116以及加载/存储单元118。数字地址发生器114生成将数据加载及存储到存储缓冲区(未在图中表明)所需的地址。数字信息处理器110可设计成单一的单片集成电路,但数字信息处理器并不局限于这种单片集成电路形式。
指令解码器112的输入被连接到线段120所示的母线中。122所示的信号线将指令解码器与数字地址发生器114连接起来。124所示的信号线将指令解码器112与指令执行控制单元116连接起来。126所示的信号线将数字地址发生器114与加载/存储单元118连接起来。128所示的信号线将加载/存储单元118与指令执行控制单元116连接起来。
在操作过程中,指令被取得(即从指令高速缓冲存储器或其他存储器(未在图中画出)中取得),并通过母线120输送给指令解码器112。如果指令是数字地址发生器指令(即指令与数字地址发生器有关),则指令解码器112输出一个经过解码的数字地址发生器指令和/或其他控制信号,经过解码的数字地址发生器指令和其他控制信号通过信号线122输送给数字地址发生器114。如果该指令不是数字地址发生器指令(即该指令与数字地址发生器无关),则指令解码器112输出一个解码指令和/或其他控制信号,解码指令和其他控制信号通过信号124输送给执行/控制单元116。
数据地址发生器114执行数据地址发生器指令,如果合适,数字地址发生器114输出存储缓冲区中被访问数据的地址。这些地址通过信号线126输送给加载/存储单元118,该单元向/从存储缓冲区中的地址加载和/或存储数据。加载/存储单元118通过信号线128向/从指令执行控制单元116传输数据。
应该理解的是,数字地址发生器有多种不同的类型。本发明并不局限于使用任何一类特定类型的数字地址发生器。
图6是数字地址发生器114(图5所示)某一实施方案的模块图。该实施方案包括数字地址发生器控制单元130、数字地址发生器算法逻辑单元132以及数字地址发生器寄存器单元134。数字地址发生器寄存器单元134包括4个寄存器库136-142以及一个或多个互换单元144。这4个寄存器库包括L寄存器136、B寄存器138、I寄存器140以及M寄存器142。其中L寄存器存储着表明每个存储缓冲区长度的数据;B寄存器138存储每个存储缓冲区的基础地址;I寄存器140存储每个存储缓冲区的索引地址;M寄存器142存储增量(或减量)值。举例而言,索引地址表明目前正被访问的地址或下一次将要访问的地址。互换单元144通常以硬件的形式体现,该互换单元将在下面做进一步的说明。
数字地址发生器控制单元130通过信号线122与指令解码器112(图5所示)相连。146所示的信号线将数字地址发生器控制单元130与L,B,I,M寄存器136-142连接起来。148所示的信号线将数字地址发生器控制单元130与互换单元144连接起来。150所示的信号线经及152所示的信号线将数字地址发生器寄存器单元134与数字地址发生器算法逻辑单元132连接起来。在某些实施方案中,L,B,I,M寄存器136-142还与地址和/或数据母线(未在图中表明)相连,从而从存储器中加载数据和/或向存储器中存储数据。
在操作过程中,数字地址发生器控制单元130从指令解码器112(图5所示)接收经过解码的数字地址发生器指令和/或控制信号。根据这些指令和/或控制信号,数字地址发生器控制单元130生成被用来执行数字地址发生器指令的控制信号。在本文中,“根据”一词意指“至少根据”,这样就不排除对一个以上的事物发生响应。例如,数字地址发生器控制单元130生成L、B、I、M寄存器控制信号,这些控制信号被输送给L、B、I、M寄存器136-142。数字地址发生器控制单元130还生成互换控制信号和算法逻辑单元控制信号。互换控制信号被输送给互换单元144。互换单元144根据互换控制信号使相应地址寄存器中的内容发生互换。算法逻辑单元控制信号被输送给数字地址发生器算法逻辑单元132。数字地址发生器寄存器单元134产生输出信号L out、B out、I out、M out;这些输出信号分别表明了L、B、I、M寄存器中的内容。这些信号被输送给数字地址发生器算法逻辑单元132以及加载/存储单元118(图5所示)。数字地址发生器算法逻辑单元132进行运算,从而生产新的地址L in、B in、I in、M in,这些地址被输送给数字地址发生器寄存器单元134,并被分别存储在L、B、I、M寄存器中。
图7A表明的是寄存器单元134某一实施方案中某一部分的模块图。在这一实施方案中,寄存器单元能够互换B寄存器138中的内容,并能够按以下说明的过程互换I寄存器140中的内容。
在这一实施方案中,寄存器单元包括B寄存器库138、B寄存器互换单元160、I寄存器库140以及I寄存器单元162。B寄存器库138含有4个寄存器B0-B3。I寄存器库140含有4个寄存器I0-I3。每个B寄存器和每个I寄存器带有时钟输入,该输入接收来自数字地址发生器控制单元(图6所示)的时钟信号(未在图中表明)。
寄存器单元还包括B out多路转换器166和I out多路转换器170。每个多路转换器都由数字地址发生器控制单元(图6所示)产生的控制信号所控制。信号B in通过信号线150与B寄存器互换单元160的第一组输入(in0)相连。B寄存器互换单元160的输出通过192-188所示的信号线与B寄存器库138的输入相连。B寄存器库138的输出通过信号线与B寄存器互换单元160的第二组输入以及B out多路转换器166的输入相连。B out多路转换器166的输出将B out信号输送到信号线152上。
I in信号通过信号线150输送给I寄存器互换单元162的第一组输入(in0),I寄存器互换单元162的输出通过206-212所示的信号线与I寄存器库140的输入相连。I寄存器库140的输出通过214-220所示的信号线与I寄存器互换单元162的第二组输入和I out多路转换器170的输入相连。I out多路转换器170的输出将I out信号输送到信号线152上。
B寄存器互换单元160的这一实施方案包括B0/B1互换单元222和B2/B3互换单元224。I寄存器互换单元162包括I0/I1互换单元226和I2/I3互换单元228。这4个互换单元222-228是彼此相同的。互换单元带有选择线,从而通过信号线148来接收数字地址发生器控制单元130(图6所示)所产生的互换控制信号。举例而言,在这一实施方案中,来自数字地址发生器控制单元(图6所示)的互换控制信号包括以下4种控制信号:B0/B1互换信号、B2/B3互换信号、I0/I1互换信号以及I2/I3互换信号。B0/B1互换信号被输送给B0/B1互换单元224的选择线。I0/I1互换信号被输送给I0/I1互换单元226的选择线。I2/I3互换信号被输送给I2/I3互换单元228的选择线。
现在结合B0/B1互换单元222对互换单元的操作进行说明。B0/B1互换单元222有两种操作状态,具体而言就是互换状态和非互换状态。在互换状态下,B0/B1互换单元222将B1寄存器中的内容与B0寄存器中的内容进行互换。在非互换状态下,B0/B1互换单元222通过信号线150在B in信号与B寄存器138之间建立透明的连接。
操作状态由B0/B1互换信号的状态所决定,B0/B1互换信号输送给B0/B1互换单元222的选择输入项。在这一实施方案中,如果B0/B1互换信号处于第一种逻辑状态(即高逻辑状态或逻辑值为1的状态),则B0/B1处于互换操作状态。如果B0/B1互换信号处于第二种逻辑状态(即低逻辑状态或逻辑值为0的状态),则B0/B1互换单元处于非互换操作状态。
在互换状态下,互换单元222的多路转换器选择B1寄存器的输出,互换单元222的多路转换器1选择B0寄存器的输出。如果在时钟线上给一个脉冲信号,则B0寄存器存储B1寄存器中的内容,B1寄存器存储B0寄存器中的内容,即B0寄存器中的内容和B1寄存器中的内容发生互换。
在非互换操作状态下,互换单元222的多路转换器0选择信号线150上的  B in信号,互换单元222的多路转换器1选择信号线150上的B in信号。如果在时钟线上向B0寄存器或B1寄存器提供一个脉冲信号,则收到脉冲信号的寄存器存储信号线150上B in信号所提供的地址。
其余互换单元224-228的操作与B0/B1互换单元222的操作相似。因此,B2/B3互换单元224可使B2寄存器中的内容与B3寄存器中的内容进行对换。I0/I1互换单元226可使I0寄存器中的内容与I1寄存器中的内容对换。I2/I3互换单元228可使I2寄存器中的内容与I3寄存器中的内容对换。
如前面所述,在本发明的某些实施方案中,单独一个互换指令可导致多个互换操作被执行。在某些实施方案中,这种操作方式是通过提供含有附加运算对象区的互换指令而实现的。在本发明的其他实施方案中,附加的地址寄存器可以被暗指。
举例而言,在本发明某一实施方案中,互换指令SWAP I0、I1可导致I0寄存器中的内容与I1寄存器中的内容发生互换,并导致B0寄存器中的内容与B1寄存器中的内容发生互换。通过对数字地址发生器控制单元130进行设置可以实现这一点;这样,互换指令SWAP I0、I1使数字地址发生器控制单元130即确认I0/I1互换信号又确认B0/B1互换信号。相类似的是,互换指令SWAP I2,I3可导致I2寄存器中的内容与I3寄存器中的内容进行互换,并导致B2寄存器中的内容与B3寄存器中的内容进行互换。通过对数字地址发生器控制单元130进行设置可以实现这一点;这样,互换指令SWAP I2、I3使数字地址发生器控制单元130即确认I2/I3互换信号又确认B2/B3互换信号。通过对图7A所示实施方案中适当控制信号进行确认就可实现这一点。
图7B表明的是这一实施方案的另一种形式。在图7B所示的实施方案中,除了信号线148上来自于数字地址发生器控制单元130的互换控制信号包括I0/I1/B0/B1和I2/I3/B2/B3这两个控制信号外,其余部分与图7A所示的实施案是相同的。I0/I1/B0/B1互换信号输送给B0/B1互换单元222的选择线以及I0/I1互换单元226的选择线。互换信号I2/I3/B2/B3输送给B2/B3互换单元224的选择线以及I2/I3互换单元228的选择线。
如前面所述,执行互换指令的能力可以减少地址寄存器中内容发生互换所需的指令周期数量,由此提高数字信息处理器的速度和性能(数据信赖性及等待循环会降低处理器上程序的运行速度及性能)。此外,这种执行互换指令的能力还降低了对临时寄存器的需求,这样会减少寄存器的需求压力以及可能出现的由于寄存器需求过度所导致的滞后。(这些滞后会降低在处理上程序的运行速度及性能)。
到目前为止,已经讨论了互换指令以及数字地址发生器,下面将说明具有流水线处理过程的数字信息处理器完成某一互换指令所涉及的某些方面。
应该认识到的是,图7A、7B表明了带有互换单元的数字地址发生器寄存器的不同实施方案。然而,数字地址发生器寄存器以及互换单元并不局限于图7A、7B所示的形式。举例而言,互换单元可以以多种方式体现。使用多路转换器只是其中的一种方式。例如,可以用三态驱动器组来替换多路转换器,其中每个三态驱动器接收不同的启动信号。三态驱动器的启动可根据互换控制信号而定。多路转换器可被组合逻辑电路所替代。因此,本发明并不局限于互换操作的执行方式。
图8表明的是流水线处理过程240的实施方案。该流水线240含水量有一系列的阶段,图8中有7个阶段;即IF1、IF2、DC、AC、LS、EX1、WB阶段。流水线240的操作与数字地址发生器相关,其中数字地址发生器包括两种类型的地址寄存器(即两种L寄存器、两种B寄存器、两种I寄存器和两种M寄存器)。在本文中,如242、244所示,一种类型的寄存器被统称为未来文件,另一种类型的寄存器被统称为结构文件。未来文件242和结构文件244通过数字地址发生器流水线246连接起来。正如下面将要说明的,在生成及修改访问存储缓冲区所用的地址过程中,未来文件242被读取和更新。未来文件242表明地址寄存器的预测状态。另一方面,在互换指令执行完毕时,结构文件244随互换指令而更新。使用这两种类型的地址寄存器可使硬件在预测出现错误的情况下,以较小输入输出量的方式预测性地执行指令。
指令被输入到流水线240中,并经过流水线的某些阶段,直至该指令执行完毕。更具体而言,248所示的指令在IF1阶段被取得。在IF2阶段,指令248被解码为250,并被标记为数字地址发生器指令或非数字地址发生器指令。如果指令248是一条数字地址发生器指令252,则在DC阶段读取未来文件242的I寄存器和M寄存器(254所示)。
在AC阶段,数字地址发生器生成地址256,该地址将被输送给加载/存储单元260。举例而言,数字地址发生器互换指令如前面所述按图4-7B加以执行。在LS阶段,数字地址发生器所产生的地址提供给加载/存储单元260,该加载/存储单元根据该地址加载数据。数字地址发生器所生成的地址存储在未来文件242中。此外,数字地址发生器信息被输入到数字地址发生器流水线246中,如结合图9所述的,该流水线被用来向结构文件244发送数字地址发生器信息。
在EX阶段,执行算法逻辑单元的操作262。在WB阶段,算法逻辑单元操作所产生的结果被存储,指令到此执行完毕。一旦指令完成,数字地址发生器流水线产生的信息被用来更新结构文件244。照此方式,结构文件244表明了在最近一条指令退出流水线240后地址寄存器的状态,但结构文件244并不表明流水线240中当前指令所产生的结果。
在本发明的某些实施方案中,数字地址发生器在任何指令周期中产生的新地址多达两个。这两个新地址提供给结构文件,数字地址发生器流水线地址母线足够宽,可以同时输送两个地址。
应该认识到的是,在任何指令周期中,如果互换指令没有互换两个以上的地址寄存器,则双地址宽的母线足以传输互换指令的结果。然而,如果在任何指令周期中互换指令引发了一个以上的互换操作(比如互换两个以上地址寄予存器中的内容),则情况就复杂了。举例而言,前面结合图7B所说明的互换指令导致了IO寄存器中的内容与I1寄存器中的内容发生对换,并导致BO寄存器中的内容与BI寄存器中的内容发生对换。这样一种互换指令在一次指令周期中改变了四个地址寄存器(IO、IL、BO和BL寄存器)中的内容。
双地址宽的地址母线不足以传输四个地址。为了一次传输四个地址,地址母线的宽度需的寄存器数量加倍,并会导致芯片面积以及耗电量的增加。
图9表明了某一数字地址发生器的实施方案,其中的数字地址发生器适用于在一个指令周期中一条互换指令导致多个互换操作的情况。在该实施方案中,该互换指令所产生的结果不通过数字地址发生器流水流进行传输。更适合的是使用两个互换单元,其中一个互换单元跟在另一互换单元之后。当收到互换指令时,前一个互换单元对未来文件进行互换操作。控制信号(而不是四个新地址)被生成并通过流水线传输到下一个互换单元,控制信号依次对结构文件执行互换操作。该实施方案的总体效果就如同流水线传输了四个新地址一样,但无需将地址母线的宽度增加一倍。
在该实施方案中,数字地址发生器包括前端部分270、数字地址发生器流水线272以及后端部分274。前端部分270包括数字地址发生器控制单元276、数字地址发生器算法逻辑单元278以及寄存器单元280;其中寄存器单元280包括L、B、I、M寄存器282(即未来文件)以及一个或多个互换单元284。数字地址发生器控制单元276、数字地址发生器算法逻辑单元278以及寄存器单元280可分别与前面结合图5-7B所说明的数字地址发生器控制单元130、数字地址发生器算法逻辑单元132以及寄存器单元134相似。
前端部分通过285所示的信号线接收数字地址发生器指令。数字地址发生器算法逻辑单元278进行运算,从而生成新的地址,互换单元284相应地互换地址寄存器中的内容。数字地址发生器控制单元276和互换单元284的设置方式可使单个互换指令在一个指令周期中导致一个以上的互换操作被执行。这种设置意味着在一个指令周期中一条互换指令可改变四个(或更多)地址寄存器中的内容。
后端部分274包括控制单元286以及寄存器单元288,其中寄存器单元包括L、B、I、M寄存器290(即结构文件)以及一个或多个互换单元292,寄存器单元288例如可以与前面结合图6-7B所述的寄存器单元134相似。正如本文下面将要进一步说明的,数字地址发生器后端部分274的寄存器单元28 8如果带有一个或多个互换单元292,则不必将互换指令的执行结果传输给数字地址发生器的后端部分274。
数字地址发生器流水线272将前端部分270与后端部分274连接起来。在该实施方案中,流水线272包括第一、第二和第三分散式数据通道294-298。每个数据通道都包括一系列的分散式寄存器段。第一数据通道包括寄存器段1941-294N。第二数据通道包括寄存器段2961-296N。第三数据通道包括寄存器段2981-298N
通过流水线可将前端部分270产生的结果传输到后端部分274,系统设计者可以降低后端部分274的复杂程度。举例而言,与数字地址发生器前端部分270不同,数字地址发生器的后端部门274并不需要有能力接收数字地址发生器指令、并对该指令做出响应的控制单元。数字地址发生器后端部分274也不需要执行运算从而生成新地址的算法逻辑单元。
第一数据通道294和第二数据通道296被用来传输数字地址发生器算法逻辑单元278所产生的地址。因此,第一数据通道294的寄存器段2941-294N以及第二数据通道的寄存器段2961-296N通常至少与数字地址发生器地址寄存器具有同等的宽度。当数字地址发生器后端部分274中的控制单元收到来自第一和/或第二数据通道294、296的地址时,这些地址被复制到结构文件290中的相应地址寄存器中。
第三数据通道298被用来传输与互换指令相关的信息。正如前面所述的,由于数字地址发生器的前端部分270和后端部分274各带有一个或多个互换单元,所以没有必要将互换指令产生的结果传给数字地址发生器的后端部分274。因此,第三数据通道的寄存器段2981-298N不必具有与第一、二数据通道294、296的寄存器段2941-294N及2961-296N相同的宽度。在本发明的某些实施方案中,第三数据通道298只是传输某一信号,该信号表明了数字地址发生器的前端部分270是否收到了互换指令。在本发明的其他实施方案中,第三数据通道298可用来传送表明地址寄存器的信号,其中的地址寄存器的内容将被互换。当数字地址发生器的后端部分274收到来自第三数据通道298的信号时,控制单元286向后端部分274的寄存器单元288提供控制信号,从而使寄存器单元中相应寄存器的内容发生变更。
因此,如果数字地址发生器后端部分的寄存器单元带有一个或多个互换单元,则不必将互换指令产生的结果传输给数字地址发生器的后端部分。这就有可能在无需一次传输四个地址的情况下完成一条使两个基础寄存器所含内容发生对换以及使两个索引寄存器所含内容发生对换的互换指令。实际上,在这一实施方案中,互换指令是在结构文件中执行的,因为没必要传输任何与互换指令相关的地址。应该注意的是,为了一次传送四个地址,有可能需要另外二条数据通道,但这会增加数字信息处理器的成本、大小和/或耗电量。
应该认识到的是,本发明的各个方面并不局限于互换指令,而是可以用于一般性的传输数字处理器,尤其可用于操作的结果为处理过程多个阶段所需的场合。举例而言,流水线处理过程的多个阶段都有实际执行操作的能力,而不是在某一阶段执行操作,并将操作结果传给以后的阶段。在每个阶段配备一个操作器(即执行单元)就可实现这一功能。此后,只需向这些处理阶段提供控制信号(不是完整的结果)即可;其中控制信号指挥每一阶段中的操作器进行操作。
虽然前面所示的数据地址发生器包括控制单元、算法逻辑单元以及带有四个地址寄存器库的寄存器单元,但应该理解的是,数据地址寄存器并不局限于这种结构。数据地址发生器只需能够生成存储于地址寄存器的地址并改变地址寄存器中的内容即可。此外,应该理解的是,本发明并不局限于与数据地址发生器连同使用。
虽然本文展示和说明了各种实施方案,但本领域技术人员应该理解的是,本发明并不局限这些实施方案,这些实施方案只是以范例的形式呈现出来,在不脱离本发明原理及范围的情况下,可以对本发明做出各种各样的改变及修正。本发明只由本文所附的权利要求及同等条款所限定。

Claims (19)

1.一种用于数字信息处理器的方法,所述方法包括:
提供第一地址寄存器,该第一地址寄存器被配置为保持对应于第一存储位置的第一存储器地址;
提供第二地址寄存器,该第二地址寄存器被配置为保持对应于第二存储位置的第二存储器地址;
提供第三地址寄存器,该第三地址寄存器被配置为保持对应于第三存储位置的第三存储器地址;
提供第四地址寄存器,该第四地址寄存器被配置为保持对应于第四存储位置的第四存储器地址;以及
通过将第一地址寄存器的内容与第二地址寄存器的内容对换以及通过将第三地址寄存器的内容与第四地址寄存器的内容对换,而对互换指令做出响应,所述互换指令指定对于明确标识的或隐含标识的地址寄存器的互换操作。
2.如权利要求1中的方法,其中的响应包括:
对互换指令进行解码,并生成代表互换指令的信号;
通过将第一地址寄存器中的内容与第二地址寄存器中的内容对换而对代表互换指令的信号做出响应。
3.如权利要求2中的方法,其中对信号做出的响应包括将来自第一地址寄存器的第一地址传送给第二地址寄存器,并将来自第二地址寄存器的第二地址传送给第一地址寄存器。
4.如权利要求2中的方法,其中对信号做出的响应包括:
接收代表着互换指令的信号,并至少根据接收的信号生成控制信号;
根据一个或多个控制信号将来自第一地址寄存器的第一地址传送给第二地址寄存器;
根据一个或多个控制信号将来自第二地址寄存器的第二地址传送给第一地址寄存器;
将第一地址存储在第二地址寄存器中,并将第二地址存储在第一地址寄存器中。
5.如权利要求1中的方法,其中第一地址寄存器与第一存储缓冲区相关,第二地址寄存器与第二存储缓冲区相关。
6.如权利要求1中的方法,其中互换指令含有代表互换操作的运算代码,并含有第一运算对象及第二运算对象;其中第一运算对象代表着第一地址寄存器,第二运算对象代表着标识第二地址寄存器。
7.如权利要求5中的方法,其中第一地址寄存器和第二地址寄存器分别包括第一存储缓冲区的基础寄存器和第二存储缓冲区的基础寄存器。
8.如权利要求5中的方法,其中第一地址寄存器和第二地址寄存器分别包括第一存储缓冲区的索引寄存器和第二存储缓冲区的索引寄存器。
9.如权利要求8中的方法,其中对互换指令的响应还包括将第一存储缓冲区的基础寄存器中的内容与第二存储缓冲区的基础寄存器中的内容进行对换。
10.一种数字信息处理器,包括:
第一地址寄存器,用于存储对应于第一存储位置的第一存储器地址;
第二地址寄存器,用于存储对应于第二存储位置的第二存储器地址;
第三地址寄存器,用于存储对应于第三存储位置的第三存储器地址;
第四地址寄存器,用于存储对应于第四存储位置的第四存储器地址;以及
电路,其接收互换指令,并且通过将第一地址寄存的内容与第二地址寄存器的内容对换以及通过将第三地址寄存的内容与第四地址寄存器的内容对换,而对互换指令做出响应,所述互换指令指定对于明确标识的或隐含标识的地址寄存器的互换操作。
11.如权利要求10中的数字信息处理器,其中电路包括:
指令解码器,该指令解码器接收指令并对指令进行解码,并且生成代表互换指令的信号;
数据地址生成器,该数据地址生成器响应于代表着互换指令的信号将第一地址寄存器中的内容与第二地址寄存器中的内容进行对换。
12.如权利要求11中的数字信息处理器,其中数据地址发生器包括互换单元,该互换单元将来自第一地址寄存器的第一地址提供给第二地址寄存器,并将来自第二地址寄存器的第二地址提供给第一地址寄存器。
13.如权利要求11中的数字信息处理器,其中数据地址发生器包括:
控制单元,该控制单元接收代表着互换指令的信号,并至少响应于接收到的信号生成控制信号;
寄存器互换单元,该寄存器互换单元接收来自于第一地址寄存器的第一地址以及接收来自于第二地址寄存器的第二地址,并根据一个或多个控制信号将第一地址提供给第二地址寄存器以及将第二地址提供给第一地址寄存器;
其中第一地址存储在第二地址寄存器中,第二地址存储在第一地址寄存器中。
14.如权利要求10中的数字信息处理器,其中第一地址寄存器与第一存储缓冲区相关,第二地址寄存器与第二存储缓冲区相关。
15.如权利要求10中的数字信息处理器,其中互换指令包括运算代码、第一运算对象以及第二运算对象,其中运算代码代表着互换操作,第一运算对象代表着第一地址寄存器,第二运算对象代表着第二地址寄存器。
16.如权利要求10中的数字信息处理器,其中来自于第一地址寄存器的地址和来自于第二地址寄存器的地址都传送给加载/存储单元。
17.如权利要求14中的数字信息处理器,其中第一地址寄存器和第二地址寄存器分别包括第一存储缓冲区的基础寄存器和第二存储缓冲区的基础寄存器。
18.如权利要求14中的数字信息处理器,其中第一地址寄存器和第二地址寄存器分别包括第一存储缓冲区的索引寄存器和第二存储缓冲区的索引寄存器。
19.如权利要求18中的数字信息处理器,其中数字信息处理器还根据互换指令将第一存储缓冲区的基础寄存器中的内容与第二存储缓冲区的基础寄存器中的内容进行对换。
CNB03809763XA 2002-05-01 2003-04-30 互换地址寄存器所存内容的方法和设备 Expired - Fee Related CN1329819C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/136,051 2002-05-01
US10/136,051 US6670895B2 (en) 2002-05-01 2002-05-01 Method and apparatus for swapping the contents of address registers

Publications (2)

Publication Number Publication Date
CN1650257A CN1650257A (zh) 2005-08-03
CN1329819C true CN1329819C (zh) 2007-08-01

Family

ID=29268868

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB03809763XA Expired - Fee Related CN1329819C (zh) 2002-05-01 2003-04-30 互换地址寄存器所存内容的方法和设备

Country Status (7)

Country Link
US (1) US6670895B2 (zh)
EP (1) EP1499956B1 (zh)
JP (1) JP4110137B2 (zh)
KR (1) KR100974401B1 (zh)
CN (1) CN1329819C (zh)
DE (1) DE60328179D1 (zh)
WO (1) WO2003093978A2 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050251662A1 (en) * 2004-04-22 2005-11-10 Samra Nicholas G Secondary register file mechanism for virtual multithreading
US7873961B2 (en) * 2005-07-29 2011-01-18 International Business Machines Corporation Supervisory operating system for running multiple child operating systems simultaneously and optimizing resource usage
US8250440B2 (en) * 2008-02-25 2012-08-21 International Business Machines Corporation Address generation checking
US8661227B2 (en) * 2010-09-17 2014-02-25 International Business Machines Corporation Multi-level register file supporting multiple threads
US8656139B2 (en) * 2011-03-11 2014-02-18 Telefonaktiebolaget L M Ericsson (Publ) Digital processor for processing long and short pointers and converting each between a common format
US9395992B2 (en) * 2012-11-19 2016-07-19 International Business Machines Corporation Instruction swap for patching problematic instructions in a microprocessor
CN108958801B (zh) 2017-10-30 2021-06-25 上海寒武纪信息科技有限公司 神经网络处理器及使用处理器执行向量最大值指令的方法
US12094456B2 (en) 2018-09-13 2024-09-17 Shanghai Cambricon Information Technology Co., Ltd. Information processing method and system
KR102225838B1 (ko) * 2018-12-20 2021-03-09 한양대학교 에리카산학협력단 안드로이드 앱 보호를 위한 안티 에뮬레이션 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367650A (en) * 1992-07-31 1994-11-22 Intel Corporation Method and apparauts for parallel exchange operation in a pipelined processor

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2229832B (en) * 1989-03-30 1993-04-07 Intel Corp Byte swap instruction for memory format conversion within a microprocessor
US5623621A (en) * 1990-11-02 1997-04-22 Analog Devices, Inc. Apparatus for generating target addresses within a circular buffer including a register for storing position and size of the circular buffer
JP3187539B2 (ja) * 1992-07-28 2001-07-11 株式会社東芝 データ転送装置
US5535365A (en) * 1993-10-22 1996-07-09 Cray Research, Inc. Method and apparatus for locking shared memory locations in multiprocessing systems
JPH09305401A (ja) * 1996-05-13 1997-11-28 Mitsubishi Electric Corp コンピュータ及びコンパイラ
WO1997044739A1 (en) * 1996-05-23 1997-11-27 Advanced Micro Devices, Inc. Apparatus for converting data between different endian formats and system and method employing same
US6128710A (en) * 1997-05-28 2000-10-03 International Business Machines Corporation Method utilizing a set of blocking-symbol resource-manipulation instructions for protecting the integrity of data in noncontiguous data objects of resources in a shared memory of a multiple processor computer system
US5913047A (en) * 1997-10-29 1999-06-15 Advanced Micro Devices, Inc. Pairing floating point exchange instruction with another floating point instruction to reduce dispatch latency
US6145075A (en) * 1998-02-06 2000-11-07 Ip-First, L.L.C. Apparatus and method for executing a single-cycle exchange instruction to exchange contents of two locations in a register file
US5919060A (en) * 1998-07-07 1999-07-06 Lee; Chiu-Shan Safety electric socket adapter
US6205548B1 (en) * 1998-07-31 2001-03-20 Intel Corporation Methods and apparatus for updating a nonvolatile memory
US6272512B1 (en) * 1998-10-12 2001-08-07 Intel Corporation Data manipulation instruction for enhancing value and efficiency of complex arithmetic
US6584514B1 (en) * 1999-09-28 2003-06-24 Texas Instruments Incorporated Apparatus and method for address modification in a direct memory access controller
JP3935678B2 (ja) * 2001-01-31 2007-06-27 富士通株式会社 Simd積和演算方法、積和演算回路、および、半導体集積回路装置
TW513859B (en) * 2001-04-19 2002-12-11 Faraday Tech Corp Modulo address generator circuit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367650A (en) * 1992-07-31 1994-11-22 Intel Corporation Method and apparauts for parallel exchange operation in a pipelined processor

Also Published As

Publication number Publication date
WO2003093978A2 (en) 2003-11-13
CN1650257A (zh) 2005-08-03
JP4110137B2 (ja) 2008-07-02
KR100974401B1 (ko) 2010-08-05
JP2005524169A (ja) 2005-08-11
EP1499956B1 (en) 2009-07-01
WO2003093978A3 (en) 2004-02-19
EP1499956A2 (en) 2005-01-26
US20030208664A1 (en) 2003-11-06
US6670895B2 (en) 2003-12-30
DE60328179D1 (de) 2009-08-13
KR20040111559A (ko) 2004-12-31

Similar Documents

Publication Publication Date Title
US7437534B2 (en) Local and global register partitioning technique
CN100447738C (zh) 含有多级寄存器文件的数字数据处理设备
US6925553B2 (en) Staggering execution of a single packed data instruction using the same circuit
US8195920B2 (en) Active memory command engine and method
CN113050990A (zh) 用于矩阵操作加速器的指令的装置、方法和系统
WO1994003860A1 (en) Massively parallel computer including auxiliary vector processor
JP2001523023A (ja) iVLIWのPE間通信を用いた効率的な同期MIMD動作のための方法および装置
US9021236B2 (en) Methods and apparatus for storing expanded width instructions in a VLIW memory for deferred execution
US7143271B2 (en) Automatic register backup/restore system and method
CN1329819C (zh) 互换地址寄存器所存内容的方法和设备
US5053986A (en) Circuit for preservation of sign information in operations for comparison of the absolute value of operands
US6292845B1 (en) Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
US6026486A (en) General purpose processor having a variable bitwidth
CN109582364B (zh) 基于忆阻器的精简指令集处理器
JP2001523022A (ja) データストリーミングのためのコンピュータのプロセッサ及び方法
US5835746A (en) Method and apparatus for fetching and issuing dual-word or multiple instructions in a data processing system
CN101727435B (zh) 一种超长指令字处理器
US5109497A (en) Arithmetic element controller for controlling data, control and micro store memories
US7143268B2 (en) Circuit and method for instruction compression and dispersal in wide-issue processors
EP0725336B1 (en) Information processor
US20020087848A1 (en) System and method for executing conditional branch instructions in a data processor
JP7567133B2 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
US7404048B2 (en) Inter-cluster communication module using the memory access network
CN117931729B (zh) 向量处理器访存指令处理方法和系统
US6772271B2 (en) Reduction of bank switching instructions in main memory of data processing apparatus having main memory and plural memory

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070801

CF01 Termination of patent right due to non-payment of annual fee