CN1468397A - 寄存器移动操作 - Google Patents

寄存器移动操作 Download PDF

Info

Publication number
CN1468397A
CN1468397A CNA018170110A CN01817011A CN1468397A CN 1468397 A CN1468397 A CN 1468397A CN A018170110 A CNA018170110 A CN A018170110A CN 01817011 A CN01817011 A CN 01817011A CN 1468397 A CN1468397 A CN 1468397A
Authority
CN
China
Prior art keywords
data
register
streamline
pointer register
stage
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
CNA018170110A
Other languages
English (en)
Other versions
CN1269026C (zh
Inventor
Cp
C·P·洛斯
R·P·辛格
¸
G·A·奥弗坎普
R·伊诺
Original Assignee
Analog Devices Inc
Intel 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 Analog Devices Inc, Intel Corp filed Critical Analog Devices Inc
Publication of CN1468397A publication Critical patent/CN1468397A/zh
Application granted granted Critical
Publication of CN1269026C publication Critical patent/CN1269026C/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
    • 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

Landscapes

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

Abstract

在一个实施例中,可编程处理器适应于响应单条机器指令而有条件地在指针寄存器和数据寄存器之间移动数据。处理器具有多条流水线。响应该机器指令,控制单元控制流水线经过流水线而传送数据,以便在寄存器之间移动数据。

Description

寄存器移动操作
                              背景
本发明涉及计算机的寄存器移动操作。
诸如数字信号处理器(DSP)之类的许多传统的可编程处理器包括在处理数据时使用的各种内部寄存器。称为数据寄存器的一类寄存器主要用于存储当前操作的结果并将结果提供给后续操作。数据寄存器常组合成称为寄存器堆的一组寄存器。
第二类寄存器是通常用于存储地址的指针寄存器。不同于由数据寄存器存储并直接提供给处理器内的执行单元的数据,由指针寄存器存储的地址主要用于从存储器系统中检索数据。一组指针寄存器组常包括堆栈指针,帧指针和若干通用指针寄存器。
                              附图说明
图1是示出根据本发明的流水线可编程处理器的例子的框图。
图2是示出用于可编程处理器的流水线的例子的框图。
图3和图4是说明根据本发明的寄存器移动指令的示例性实施的流程图。
                              描述
图1是示出具有一个或多个流水线4和一控制单元6的可编程处理器2。如下详述的处理器2支持用于在指针寄存器和数据寄存器之间移动数据的机器指令。尤其是,处理器2支持称之为CC MOVE指令的机器指令,它在指针寄存器和数据寄存器之间移动数据。
流水线4包括具有若干硬件流水线,它们具有若干用于处理指令的阶段。阶段能与其它阶段同时进行处理,并按照时钟周期将结果传到下一阶段。指令的结果以很快的顺序出现在最后的流水线4。
控制单元6可以控制经过流水线4的各阶段的指令流和数据流。例如,在处理指令期间,控制单元6可控制流水线的各部分取出并解码指令,完成相应的操作并将结果写回到存储器或局部寄存器。
图2示出流水线处理器的例子,该流水线处理器具有根据本发明的一个实施例安排的数据地址生成(DAG)流水线12,执行单元(EU)流水线14和加载/存储(L/S)流水线16。例如,每条流水线具有5个阶段:取指令(IF),解码(DEC),地址计算和取数据(AC),执行(EX)和写回(WB)。
在DAG流水线12中,在IF阶段期间由取数单元21从存储器或指令高速缓冲存储器取出指令,并在DEC阶段解码。此外,DAG流水线12的DEC阶段可包括用于存放存储器地址的一组指针寄存器22。在下一时钟周期,经解码的指令和由该指令使用的任何指针地址可传送到AC阶段,经DAG流水线12送到数据地址产生器(DAG)23。DAG 23可计算完成操作所必须的附加的存储器地址。这些地址沿DAG流水线12传送,以被写回到指针寄存器22。作为替代,指令也能经路径15传送到EU流水线14,为执行单元25所用,或经路径17送到L/S流水线16,用于从存储器18加载数据。在一个实施例中,DAG 23可包括环形缓冲器寻址寄存器,用作指针寄存器,如变址寄存器,基址寄存器和长度寄存器。
在EX阶段期间,执行单元25可完成指定的操作,如加或乘两个数。执行单元25可包含用于执行操作的专门硬件,如包括一个或多个算术逻辑单元(ALU),浮点单元(FPU),和桶形移位器。数据寄存器24位于流水线4的EX阶段之内,并可直接向执行单元25提供本地存储的数据。此外,根据由DAG23产生的存储器地址或根据存在指针寄存器22中的地址,从数据存储器18检索数据,并将数据传送到WB阶段。在WB阶段期间,操作的结果被写到目的地。WB阶段有两条路径用于存储结果。当结果被写到数据存储器18或写到数据寄存器24时,可使能输出26。当结果被写到指针寄存器22时,可使能输出27。
由处理器2支持的CC MOVE指令使软件应用程序能直接在指针寄存器和数据寄存器之间移动数据。此外,CC MOVE指令使处理器能根据条件标记(CC_FLAG) 29的状态来移动数据,该状态通常由诸如比较指令(CMP)之类的前一指令、其他逻辑操作置位,或由直接置位CC_FLAG 29的操作置位。CC_FLAG 29可以在如状态寄存器或触发器之类的存储器电路中按单个数据位存储,并可以在如CMP指令退出EX阶段时得到置位。
图3是说明按照一个实施例的示例性过程30的流程图,借助此过程控制单元6在源寄存器是指针寄存器22而目标寄存器是数据寄存器24的情况下实施CC MOVE机器指令。参考以CC_FLAG 29的置位为条件的移动指令来说明过程30;然而移动指令可以CC_FLAG 29的清除为条件而进行,虽然本发明的范围并不限于这方面。
因为在先前的指令退出EX阶段时CC_FLAG 29常常被置位,因此在写CC_FLAG之前流水线4能部分地处理CC MOVE指令。具体来说,当CC MOVE指令在DEC阶段,控制单元6可推测移动可能发生,并使能指针寄存器22的输出,并将存储的地址在下一个时钟周期传送到AC阶段(31)。
在AC阶段期间,控制单元6可控制DAG 23将地址传送到EX阶段而不加修改(32)。作为替代,对DAG 23中的指针寄存器(未显示),控制单元6可在AC阶段使能它们的输出。
在EX阶段期间,地址可经路径15传送到执行单元25。控制单元可控制执行单元25将地址传送到WB阶段而不加修改(33)。
在WB阶段中,控制单元6可以在执行单元25中判断CC_FLAG 29的状态并根据该状态决定使能或禁止对数据寄存器24的写入。若CC_FLAG被置位,则控制单元6选择合适的数据寄存器24并经过输出26写此地址(34)。这样,响应于CC MOVE指令,可从指针寄存器22复制地址到寄存器24。值得注意的是,为了从指针寄存器22移动数据到数据寄存器24,地址能传送通过流水线4。具体来说,地址可以从第一流水线,即DAG流水线12传送到第二流水线,即EU流水线,若条件标记置位,则在EU流水线14中把地址写到数据寄存器24。因为各流水线在处理器内可以物理上分开,当数据从一个流水线传送到另一个时可能有延时。因此,为了减少地址被正确地写到数据寄存器24的危险,地址在WB阶段之前从DAG流水线12传送到EU流水线14。
图4是按照一个实施例示出的示例性过程40的流程图,借此过程控制单元6在源寄存器是数据寄存器24而目标寄存器是指针寄存器的情况下可实现CC MOVE机器指令。
在EX阶段期间,控制单元6可以使能数据寄存器24的输出,使存储的数据能经过路径19从EU流水线14传送到DAG流水线12(41)。在WB阶段期间,控制单元6可以在EU流水线14的执行单元25中判断CC_FLAG 29的状态(42)。根据CC_FLAG的状态,控制单元6可经输出27将数据写到适当的指针寄存器22(43)。如上所述,为了使地址能写到指针寄存器22,数据可在WB阶段之前从EU流水线14传送到DAG流水线12。在一个实施例中,EX阶段能包括三个子阶段,以在WB阶段提供数据。
下述例子示出调用CC MOVE机器指令的语法,虽然本发明的范围不限于这方面:
if CC p1=r1;从数据寄存器移动到指针寄存器
if!CC r0=p1;当CC假时,从指针寄存器移动到数据寄存器
在典型应用中,程序员开发软件应用程序或子程序,它调用涉及指针寄存器和数据寄存器的寄存器移动操作,如上述CC MOVE指令。程序员能以如上例所示的汇编语言编写软件应用程序,或以高级软件语言编写。通常调用编译器来处理高级软件应用程序,并产生用于处理器2的适当的机器指令,包括用于在指针寄存器和数据寄存器之间有条件地移动数据的CC MOVE机器指令。
已经描述了本发明的各种实施例。例如,已经描述了在指针寄存器和数据寄存器之间有条件地移动数据的单条机器指令。该处理器能在各种系统中实现,包括通用计算系统,数字处理系统,膝上型计算机,个人数字助理(PDA)和蜂窝电话。在这类系统中,处理器能连接到存储设备,如闪存设备或静态随机存取存储器(SRAM),它存储操作系统和其他软件应用程序。这些和其他实施例将落入下面的权利要求的范围之中。

Claims (37)

1.一种方法,其特征在于包括:
接收一条机器指令;以及
响应该条机器指令,根据条件标记的状态在指针寄存器和数据寄存器之间移动数据。
2.如权利要求1的方法,其特征在于移动数据包括从指针寄存器复制存储器地址到数据寄存器。
3.如权利要求1的方法,其特征在于移动数据包括从数据寄存器复制数据到指针寄存器。
4.如权利要求1的方法,其特征在于指针寄存器和数据寄存器位于处理器的不同流水线单元的不同阶段之中。
5.如权利要求1的方法,其特征在于还包括当指针寄存器是数据源时选第一路径,而当数据寄存器是数据源时选第二路径。
6.如权利要求1的方法,其特征在于还包括传送数据通过执行单元而不加修改。
7.一种方法,其特征在于包括:
接收一条机器指令;
使能由该机器指令指定的指针寄存器的输出,其中指针寄存器适应于存放存储器地址;
传送存储器地址通过执行单元而不加修改;
判断条件标记的状态;和
根据该状态将存储器地址写到数据寄存器。
8.如权利要求7的方法,其特征在于还包括从第一流水线到第二流水线传送地址。
9.如权利要求7的方法,其特征在于还包括在前一指令执行期间设置条件标记。
10.一种在具有多条流水线的处理器内移动数据的方法,其特征在于包括:
使能第一流水线中的数据寄存器的输出;
在第一流水线的写回阶段之前从数据寄存器传送数据到第二流水线;以及
把该数据写到位于第二流水线内的指针寄存器。
11.如权利要求10的方法,其特征在于还包括:
判断条件标记的状态;以及
根据该状态把数据写到指针寄存器。
12.如权利要求10的方法,其特征在于该指针寄存器和数据寄存器占据第一和第二流水线的不同阶段。
13.一种在具有多条流水线的处理器中移动数据的方法,每条流水线具有写回阶段,其特征在于该方法包括:
使能第一流水线中的指针寄存器的输出;
在第一流水线的写回阶段之前从第一流水线移动一地址到第二流水线;以及
把该地址写到位于第二流水线内的数据寄存器。
14.如权利要求13的方法,其特征在于还包括:
判断条件标记的状态;以及
根据该状态把数据写到指针寄存器。
15.如权利要求13的方法,其特征在于指针寄存器和数据寄存器占据第一和第二流水线的不同阶段。
16.如权利要求13的方法,其特征在于指针寄存器位于数据寄存器之前的一个阶段中。
17.一种装置,其特征在于包括:
指针寄存器;
数据寄存器;以及
适应于响应单条机器指令,在数据寄存器和指针寄存器之间有条件地移动数据的控制单元。
18.如权利要求17的装置,其特征在于指针寄存器位于第一流水线中,而数据寄存器位于第二流水线中。
19.如权利要求18的装置,其特征在于第一和第二流水线具有多个阶段,进一步,指针寄存器和数据寄存器位于各自流水线的不同阶段。
20.如权利要求18的装置,其特征在于还包括连接第一和第二流水线的路径,以将地址从第一流水线的指针寄存器传送到第二流水线的数据寄存器。
21.如权利要求18的装置,其特征在于还包括连接第一和第二流水线的路径,以将数据从第二流水线的数据寄存器送到第一流水线的地址寄存器。
22.如权利要求20的装置,其特征在于每条流水线包括写回阶段,进一步,在写回阶段以前,所述路径将地址传送到第二流水线。
23.如权利要求21的装置,其特征在于每条流水线包括写回阶段,进一步,在写回阶段以前,所述路径将数据传送到第一流水线。
24.如权利要求17的装置,其特征在于还包括适应于将数据从指针寄存器传送到写回阶段而不加修改的执行单元。
25.一种包含具有用于编译软件程序的计算机可执行指令的媒体的产品,所述指令存储于该媒体上,其特征在于计算机可执行指令适应于产生单条机器指令,以是可编程处理器在指针寄存器和数据寄存器之间有条件地移动数据,其中该指令引起可编程处理器从第一流水线传送数据到第二流水线。
26.如权利要求25的产品,其特征在于该指令引起可编程处理从数据寄存器移动数据到指针寄存器。
27.如权利要求25的产品,其特征在于处理器包括一流水线,机器指令使处理器在指针寄存器是数据源时选择通过该流水线的第一路径,而在数据寄存器是数据源时选择通过该流水线的第二路径。
28.一种系统,包括:
存储器设备;以及
连接存储器设备的处理器,其特征在于,处理器包括指针寄存器,数据寄存器,和适应于响应单条机器指令而在数据寄存器和指针寄存器之间有条件地移动数据的控制单元。
29.如权利要求28的系统,其其特征在于指针寄存器位于第一流水线而数据寄存器位于第二流水线。
30.如权利要求29的系统,其特征在于第一和第二流水线具有多个阶段,进一步,其中指针寄存器和数据寄存器位于各自流水线的不同阶段。
31.如权利要求29的系统,其特征在于还包括连接第一和第二流水线的路径,以将一地址从第一流水线的指针寄存器传送到第二流水线的数据寄存器。
32.如权利要求29的系统,其特征在于还包括连接第一和第二流水线的路径,以将数据从第二流水线的数据寄存器送到第一流水线的地址寄存器。
33.如权利要求31的系统,其特征在于每条流水线包括写回阶段,进一步,在写回阶段以前所述路径将地址传送到第二流水线。
34.如权利要求32的系统,其特征在于每条流水线包括写回阶段,进一步,在写回阶段以前所述路径将数据送到第一流水线。
35.如权利要求28的系统,其特征在于还包括适应于将数据从指针寄存器传送到写回阶段而不加以修改的执行单元。
36.如权利要求28的系统,其特征在于存储器设备包括静态随机存取存储器。
37.如权利要求28的系统,其特征在于存储器设备包括闪存存储器。
CNB018170110A 2000-10-06 2001-10-05 寄存器移动操作 Expired - Fee Related CN1269026C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/680,894 US6728870B1 (en) 2000-10-06 2000-10-06 Register move operations
US09/680,894 2000-10-06

Publications (2)

Publication Number Publication Date
CN1468397A true CN1468397A (zh) 2004-01-14
CN1269026C CN1269026C (zh) 2006-08-09

Family

ID=24732957

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018170110A Expired - Fee Related CN1269026C (zh) 2000-10-06 2001-10-05 寄存器移动操作

Country Status (6)

Country Link
US (1) US6728870B1 (zh)
JP (1) JP3670646B2 (zh)
KR (1) KR100512655B1 (zh)
CN (1) CN1269026C (zh)
TW (1) TWI238352B (zh)
WO (1) WO2002029554A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102780616A (zh) * 2012-07-19 2012-11-14 北京星网锐捷网络技术有限公司 基于多核处理器的报文处理方法、装置和网络设备
CN105009073A (zh) * 2013-03-14 2015-10-28 高通股份有限公司 用于使用常量高速缓冲存储器将字面数产生的数据更高效地转发到依赖指令的方法和设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7594094B2 (en) * 2006-05-19 2009-09-22 International Business Machines Corporation Move data facility with optional specifications
US9008464B2 (en) * 2009-06-16 2015-04-14 University-Industry Cooperation Group Of Kyung Hee University Media data customization
CN102736895B (zh) * 2011-04-07 2015-06-10 中兴通讯股份有限公司 一种实现寄存器文件间的数据传输方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04367936A (ja) 1991-06-17 1992-12-21 Mitsubishi Electric Corp スーパースカラープロセッサ
US5509129A (en) 1993-11-30 1996-04-16 Guttag; Karl M. Long instruction word controlling plural independent processor operations
TW470915B (en) * 1996-03-12 2002-01-01 Matsushita Electric Ind Co Ltd Optimization apparatus which removes transfer instructions by a global analysis of equivalence relations
US5889984A (en) 1996-08-19 1999-03-30 Intel Corporation Floating point and integer condition compatibility for conditional branches and conditional moves
US6009512A (en) * 1997-10-27 1999-12-28 Advanced Micro Devices, Inc. Mechanism for forwarding operands based on predicated instructions

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102780616A (zh) * 2012-07-19 2012-11-14 北京星网锐捷网络技术有限公司 基于多核处理器的报文处理方法、装置和网络设备
CN102780616B (zh) * 2012-07-19 2015-06-17 北京星网锐捷网络技术有限公司 基于多核处理器的报文处理方法、装置和网络设备
CN105009073A (zh) * 2013-03-14 2015-10-28 高通股份有限公司 用于使用常量高速缓冲存储器将字面数产生的数据更高效地转发到依赖指令的方法和设备
CN105009073B (zh) * 2013-03-14 2019-01-15 高通股份有限公司 用于将数据更高效地转发到依赖指令的方法和设备

Also Published As

Publication number Publication date
WO2002029554A3 (en) 2002-08-01
KR20040005829A (ko) 2004-01-16
TWI238352B (en) 2005-08-21
JP3670646B2 (ja) 2005-07-13
KR100512655B1 (ko) 2005-09-07
CN1269026C (zh) 2006-08-09
US6728870B1 (en) 2004-04-27
WO2002029554A2 (en) 2002-04-11
JP2004511040A (ja) 2004-04-08

Similar Documents

Publication Publication Date Title
EP1023659B1 (en) Efficient processing of clustered branch instructions
US6378041B2 (en) Shared instruction cache for multiple processors
JP4987882B2 (ja) スレッドに最適化されたマルチプロセッサアーキテクチャ
CN1161689C (zh) 在超标量处理器中处理装入指令的方法和电路
US6654871B1 (en) Device and a method for performing stack operations in a processing system
KR960035259A (ko) 감소된 판독 및/또는 기록 포트 대역폭을 갖는 레지스터 파일을 포함하는 컴퓨터 프로세서
TWI764966B (zh) 用於控制矢量記憶體存取之資料處理裝置及方法
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
JP2005182659A (ja) Vliw型dsp,及びその動作方法
US7774583B1 (en) Processing bypass register file system and method
CN1269026C (zh) 寄存器移动操作
US20010016899A1 (en) Data-processing device
EP1499956B1 (en) Method and apparatus for swapping the contents of address registers
US7363475B2 (en) Managing registers in a processor to emulate a portion of a stack
JPS62151940A (ja) レジスタ退避/復帰方式
US6321319B2 (en) Computer system for allowing a two word jump instruction to be executed in the same number of cycles as a single word jump instruction
WO2001006355A1 (en) A processor architecture
WO1994015280A2 (en) Computer architecture for parallel data transfer in declarative computer languages
JPH01211126A (ja) データ駆動型データ処理装置
US20050188183A1 (en) Digital signal processor having data address generator with speculative register file
US20020111985A1 (en) Data processing method
JPH0863357A (ja) 長語命令生成方法および命令処理装置
JPH05189233A (ja) 分岐命令制御回路
JPH01211127A (ja) データ駆動型データ処理装置
JPH07105098A (ja) 命令キャッシュのリプレース装置

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
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20081226

Address after: Massachusetts, USA

Patentee after: ANALOG DEVICES, Inc.

Address before: California, USA

Co-patentee before: ANALOG DEVICES, Inc.

Patentee before: INTEL Corp.

ASS Succession or assignment of patent right

Owner name: ANALOG DEVICES, INC.

Free format text: FORMER OWNER: INTEL CORP

Effective date: 20081226

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

Granted publication date: 20060809

Termination date: 20201005

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