CN102508641A - 低成本的程序计数器数据传输装置 - Google Patents

低成本的程序计数器数据传输装置 Download PDF

Info

Publication number
CN102508641A
CN102508641A CN2011103467159A CN201110346715A CN102508641A CN 102508641 A CN102508641 A CN 102508641A CN 2011103467159 A CN2011103467159 A CN 2011103467159A CN 201110346715 A CN201110346715 A CN 201110346715A CN 102508641 A CN102508641 A CN 102508641A
Authority
CN
China
Prior art keywords
instruction
program counter
counter
unit
prediction
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.)
Pending
Application number
CN2011103467159A
Other languages
English (en)
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.)
Hangzhou C Sky Microsystems Co Ltd
Original Assignee
Hangzhou C Sky Microsystems Co Ltd
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 Hangzhou C Sky Microsystems Co Ltd filed Critical Hangzhou C Sky Microsystems Co Ltd
Priority to CN2011103467159A priority Critical patent/CN102508641A/zh
Publication of CN102508641A publication Critical patent/CN102508641A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

一种低成本的程序计数器数据传输装置,指令预取单元、预解码单元、分支预测单元和分支指令处理单元依次采用流水线处理方式;数据传输装置还包括:程序计数器缓存单元,程序计数器指令处理单元,用于将与程序计数器相关指令的程序计数器信息传送到程序计数器缓存单元输入端口,分支预测单元产生预测目标指令程序计数器,将预测目标指令程序计数器和当前指令程序计数器传送到程序计数器缓存单元,分支指令和与程序计数器相关指令在分支指令处理单元执行时,从程序计数器缓存单元的输出端口读取程序计数器信息。本发明提供一种能够有效降低程序计数器在传递过程中的硬件成本的低成本的程序计数器数据传输装置。

Description

低成本的程序计数器数据传输装置
技术领域
本发明关于一种低成本的程序计数器传输数据装置,通过缓存分支指令的当前程序计数器和预测目标程序计数器,与程序计数器相关指令的当前程序计数器,使其不随流水线寄存器传输,从而减小硬件开销,适用于多级流水线结构的处理器。
背景技术
程序计数器用于存放下一条指令所在内存单元的地址,保证程序能够连续地执行下去。在程序开始执行前,将它的起始地址,即程序的一条指令所在的内存单元地址送入程序计数器,因此程序计数器的内容即是从内存提取的第一条指令的地址。当执行指令时,处理器将自动修改程序计数器的内容,即每执行一条指令,程序计数器增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。当执行分支指令时,分支指令执行的最终结果就是改变程序计数器的值,以此实现分支跳转。
在近几年,分支预测被广泛用于嵌入式处理器以及高性能通用处理器,以提高处理器性能。分支指令的类型可以分为条件分支指令和无条件分支指令,由于分支指令目标地址的不同,无条件分支又可以进一步分为立即分支指令,间接分支指令和返回分支指令。其中立即分支跳转可以采用BTB(Branch Target Buffer,分支预测缓冲区)这种方式预测精确,返回型跳转可以采用返回地址栈(RAS)精确预测。经过预测的分支指令会携带预测跳转信息和预测跳转地址,以及自身的程序计数器。而分支预测一般是在取指阶段进行,在指令执行阶段才能用到这些预测信息,期间这些信息会经过取指级与译码级之间、译码级与执行级之间的寄存器,以及一些指令缓存装置,硬件消耗明显。
发明内容
为了克服现有的分支预测处理过程中程序计数器在传递过程中的硬件成本较高的不足,本发明提供一种能够有效降低程序计数器在传递过程中的硬件成本的低成本的程序计数器数据传输装置。
为实现上述目的,本发明的技术方案是:
一种低成本的程序计数器数据传输装置,所述数据传输装置包括:
指令预取单元,用于负责指令的预取;
预解码单元,用于对所取指令进行预解码,解码出分支指令,以及与程序计数器相关的指令;
分支预测单元,用于对分支指令进行分支预测,产生预测目标程序计数器;
分支指令处理单元,用于负责分支指令和与程序计数器相关指令的执行,将程序计数器缓存单元的数据读取并经行计算;
所述指令预取单元、预解码单元、分支预测单元和分支指令处理单元依次采用流水线处理方式;
程序计数器缓存单元,用于缓存分支指令的当前程序计数器和预测目标程序计数器,缓存与程序计数器有关指令的当前程序计数器和目标程序计数器;
程序计数器指令处理单元,用于将与程序计数器相关指令的程序计数器信息传送到程序计数器缓存单元输入端口,分支预测单元产生预测目标指令程序计数器,将预测目标指令程序计数器和当前指令程序计数器传送到程序计数器缓存单元,分支指令和与程序计数器相关指令在分支指令处理单元执行时,从程序计数器缓存单元的输出端口读取程序计数器信息。
进一步,分支指令的当前程序计数器和预测目标程序计数器、与程序计数器相关指令的当前程序计数器和目标程序计数器被创建进程序计数器缓存单元,在流水线执行级,当分支指令处理单元需要指令程序计数器信息时,程序计数器缓存单元的输出端口输出所需指令程序计数器信息,该指令的程序计数器信息未经过流水线取指级与译码级之间,以及译码级与执行级之间的寄存器。
再进一步,所述程序计数器缓存单元采用先进先出机制,依次创建和清空单元。
更进一步,当出现全局清空信号时,程序计数器缓存单元缓存的程序计数器信息被清空。
本发明中,通过缓存分支指令的当前程序计数器和预测目标程序计数器,与程序计数器相关指令的当前程序计数器和目标程序计数器,使其不随流水线寄存器传输,从而降低硬件成本。
本发明的有益效果为:通过避免分支指令、与程序计数器相关指令的程序计数器信息在取指级、译码级以及执行级流水线寄存器之前的传递,大大降低了流水线寄存器的硬件成本。
附图说明
图1是一种低成本的程序计数器数据传输装置的基本架构。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1,一种低成本的程序计数器数据传输装置,包括:指令预取单元,用于负责指令的预取;预解码单元,用于对所取指令进行预解码,解码出分支指令,以及与程序计数器相关的指令;分支预测单元,用于对分支指令进行分支预测,产生预测目标程序计数器;分支指令处理单元,用于负责分支指令和与程序计数器相关指令的执行,将程序计数器缓存单元的数据读取并经行计算;所述指令预取单元、预解码单元、分支预测单元和分支指令处理单元依次采用流水线处理方式;程序计数器缓存单元,用于缓存分支指令的当前程序计数器和预测目标程序计数器,缓存与程序计数器有关指令的当前程序计数器和目标程序计数器;程序计数器指令处理单元,用于将与程序计数器相关指令的程序计数器信息传送到程序计数器缓存单元输入端口,分支预测单元产生预测目标指令程序计数器,将预测目标指令程序计数器和当前指令程序计数器传送到程序计数器缓存单元,分支指令和与程序计数器相关指令在分支指令处理单元执行时,从程序计数器缓存单元的输出端口读取程序计数器信息。
指令预取单元将取到的指令传送到预解码单元的输入端口,预解码单元解码出分支指令和与程序计数器相关指令,将分支指令传送到分支预测单元输入端口,将与程序计数器相关指令的程序计数器信息传送到程序计数器缓存单元输入端口,分支预测单元产生预测目标指令程序计数器,将预测目标指令程序计数器和当前指令程序计数器传送到程序计数器缓存单元,分支指令和与程序计数器相关指令在处理单元执行时,从程序计数器缓存单元的输出端口读取程序计数器信息。
若在流水线取指级取到一条分支指令,如进位为1分支指令,指令编码通过指令预取单元传输到预解码单元输入端口,经过预解码单元的预解码,解码出该条指令为分支指令。预解码单元将该分支指令的预解码信息传送到分支预测单元的输入端口,分支预测单元根据自身的预测机制,预测进位是否为1,以及跳转的目标程序计数器。分支预测单元将预测产生的预测目标程序计数器,以及当前指令的程序计数器信息传送到程序计数器缓存单元输入端口。程序计数器缓存单元根据先进先出机制,创建缓存单元,缓存分支指令的当前程序计数器和预测目标程序计数器。该条分支指令的预解码信息同时通过取指级和译码级之间的流水线寄存器传送到译码级的指令解码单元,解码出完整的指令信息。该完整的指令解码信息通过译码级和执行级之间的流水线寄存器传送到分支指令处理单元,分支指令处理单元在执行该分支指令时,需要分支指令的当前程序计数器和预测目标程序计数器,程序计数器缓存单元将分支指令处理单元需要的信息传送到分支指令处理单元的输入端口,分支指令处理单元根据这些程序计数器信息执行该条分支指令。
若在流水线取指级取到一条与程序计数器相关的指令,如存储器读入指令,指令编码通过指令预取单元传输到预解码单元输入端口,经过预解码单元的预解码,解码出该条指令为存储器读入指令。预解码单元将存储器读入指令的当前程序计数器和目标程序计数器信息传送到程序计数器缓存单元输入端口。程序计数器缓存单元根据先进先出机制,创建缓存单元,缓存分支指令的当前程序计数器和目标程序计数器。该条存储器读入指令的预解码信息(不包括当前程序计数器和目标程序计数器)同时通过取指级和译码级之间的流水线寄存器传送到译码级的指令解码单元,解码出完整的指令信息。该完整的指令解码信息通过译码级和执行级之间的流水线寄存器传送到分支指令处理单元,分支指令处理单元在执行该存储器读入指令时,需要存储器读入指令的当前程序计数器和目标程序计数器,程序计数器缓存单元将分支指令处理单元需要的信息传送到分支指令处理单元的输入端口,分支指令处理单元根据这些程序计数器信息执行该条存储器读入指令。
综上所述,在流水线取指级,分支指令的当前程序计数器和预测目标程序计数器、与程序计数器相关指令的当前程序计数器和目标程序计数器被创建进程序计数器缓存单元,在流水线执行级,当分支指令处理单元需要指令程序计数器信息时,程序计数器缓存单元的输出端口输出所需指令程序计数器信息,该指令的程序计数器信息未经过流水线取指级与译码级之间,以及译码级与执行级之间的寄存器,降低了流水线寄存器的硬件成本。

Claims (4)

1.一种低成本的程序计数器数据传输装置,所述数据传输装置包括:
指令预取单元,用于负责指令的预取;
预解码单元,用于对所取指令进行预解码,解码出分支指令,以及与程序计数器相关的指令;
分支预测单元,用于对分支指令进行分支预测,产生预测目标程序计数器;
分支指令处理单元,用于负责分支指令和与程序计数器相关指令的执行,将程序计数器缓存单元的数据读取并经行计算;
所述指令预取单元、预解码单元、分支预测单元和分支指令处理单元依次采用流水线处理方式;
其特征在于:所述数据传输装置还包括:
程序计数器缓存单元,用于缓存分支指令的当前程序计数器和预测目标程序计数器,缓存与程序计数器有关指令的当前程序计数器和目标程序计数器;
程序计数器指令处理单元,用于将与程序计数器相关指令的程序计数器信息传送到程序计数器缓存单元输入端口,分支预测单元产生预测目标指令程序计数器,将预测目标指令程序计数器和当前指令程序计数器传送到程序计数器缓存单元,分支指令和与程序计数器相关指令在分支指令处理单元执行时,从程序计数器缓存单元的输出端口读取程序计数器信息。
2.如权利要求1所述的低成本程序计数器传输装置,其特征在于:分支指令的当前程序计数器和预测目标程序计数器、与程序计数器相关指令的当前程序计数器和目标程序计数器被创建进程序计数器缓存单元,在流水线执行级,当分支指令处理单元需要指令程序计数器信息时,程序计数器缓存单元的输出端口输出所需指令程序计数器信息,该指令的程序计数器信息未经过流水线取指级与译码级之间,以及译码级与执行级之间的寄存器。
3.如权利要求1或2所述的低成本程序计数器传输装置,其特征在于:所述程序计数器缓存单元采用先进先出机制,依次创建和清空单元。
4.如权利要求1或2所述的低成本程序计数器传输装置,其特征在于:当出现全局清空信号时,程序计数器缓存单元缓存的程序计数器信息被清空。
CN2011103467159A 2011-11-04 2011-11-04 低成本的程序计数器数据传输装置 Pending CN102508641A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011103467159A CN102508641A (zh) 2011-11-04 2011-11-04 低成本的程序计数器数据传输装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011103467159A CN102508641A (zh) 2011-11-04 2011-11-04 低成本的程序计数器数据传输装置

Publications (1)

Publication Number Publication Date
CN102508641A true CN102508641A (zh) 2012-06-20

Family

ID=46220735

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011103467159A Pending CN102508641A (zh) 2011-11-04 2011-11-04 低成本的程序计数器数据传输装置

Country Status (1)

Country Link
CN (1) CN102508641A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016101473A1 (zh) * 2014-12-26 2016-06-30 中兴通讯股份有限公司 计数处理方法及装置
CN113254082A (zh) * 2021-06-23 2021-08-13 北京智芯微电子科技有限公司 条件分支指令处理方法及系统、cpu、芯片

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442756A (en) * 1992-07-31 1995-08-15 Intel Corporation Branch prediction and resolution apparatus for a superscalar computer processor
CN1222985A (zh) * 1996-05-03 1999-07-14 艾利森电话股份有限公司 在多级流水线结构中处理条件跳转的方法
CN101111819A (zh) * 2004-12-02 2008-01-23 高通股份有限公司 用于页内程序计数器相对或绝对地址转移指令的转换后备缓冲器(tlb)访问抑制
US20080162907A1 (en) * 2006-02-03 2008-07-03 Luick David A Structure for self prefetching l2 cache mechanism for instruction lines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442756A (en) * 1992-07-31 1995-08-15 Intel Corporation Branch prediction and resolution apparatus for a superscalar computer processor
CN1222985A (zh) * 1996-05-03 1999-07-14 艾利森电话股份有限公司 在多级流水线结构中处理条件跳转的方法
CN101111819A (zh) * 2004-12-02 2008-01-23 高通股份有限公司 用于页内程序计数器相对或绝对地址转移指令的转换后备缓冲器(tlb)访问抑制
US20080162907A1 (en) * 2006-02-03 2008-07-03 Luick David A Structure for self prefetching l2 cache mechanism for instruction lines

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016101473A1 (zh) * 2014-12-26 2016-06-30 中兴通讯股份有限公司 计数处理方法及装置
CN105786718A (zh) * 2014-12-26 2016-07-20 中兴通讯股份有限公司 计数处理方法及装置
CN113254082A (zh) * 2021-06-23 2021-08-13 北京智芯微电子科技有限公司 条件分支指令处理方法及系统、cpu、芯片
CN113254082B (zh) * 2021-06-23 2021-10-08 北京智芯微电子科技有限公司 条件分支指令处理方法及系统、cpu、芯片

Similar Documents

Publication Publication Date Title
JP5917616B2 (ja) 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置
TWI506552B (zh) 迴圈預測器指導的迴圈緩衝器
JP5722396B2 (ja) 明示的サブルーチンコールの分岐予測動作をエミュレートするための方法および装置
EP2864868B1 (en) Methods and apparatus to extend software branch target hints
US20060277397A1 (en) Method and apparatus for predicting branch instructions
TWI512626B (zh) 微處理器中存取及管理程式碼轉譯
US11579885B2 (en) Method for replenishing a thread queue with a target instruction of a jump instruction
US9547358B2 (en) Branch prediction power reduction
US9552032B2 (en) Branch prediction power reduction
US11231933B2 (en) Processor with variable pre-fetch threshold
US20170115988A1 (en) Branch look-ahead system apparatus and method for branch look-ahead microprocessors
KR101026978B1 (ko) 리턴 스택을 운용하는 방법 및 장치
RU2602335C2 (ru) Способ и устройство для предсказания ветвлений
JP5012084B2 (ja) 情報処理装置
CN102508641A (zh) 低成本的程序计数器数据传输装置
US11055099B2 (en) Branch look-ahead instruction disassembling, assembling, and delivering system apparatus and method for microprocessor system
CN103744642A (zh) 用于改进处理器中直接跳转的方法及系统
CN113986354A (zh) 基于risc-v指令集的六级流水线cpu
CN102087634A (zh) 用于提高缓存命中率的装置及方法
US20160147538A1 (en) Processor with multiple execution pipelines
JP2007193433A (ja) 情報処理装置
US6842846B2 (en) Instruction pre-fetch amount control with reading amount register flag set based on pre-detection of conditional branch-select instruction
US20140344551A1 (en) Dual-mode instruction fetching apparatus and method
US20140372735A1 (en) Software controlled instruction prefetch buffering

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120620