CN108845832A - 一种提高处理器主频的流水线细分装置 - Google Patents
一种提高处理器主频的流水线细分装置 Download PDFInfo
- Publication number
- CN108845832A CN108845832A CN201810530629.5A CN201810530629A CN108845832A CN 108845832 A CN108845832 A CN 108845832A CN 201810530629 A CN201810530629 A CN 201810530629A CN 108845832 A CN108845832 A CN 108845832A
- Authority
- CN
- China
- Prior art keywords
- grade
- cache
- data
- access
- instruction cache
- 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
Links
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 abstract description 7
- 238000000034 method Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种提高处理器主频的流水线细分装置,其连接顺序依次为指令Cache访问级、指令Cache选择级、译码级、寄存器访问级、执行级、数据Cache访问级、数据Cache选择级、异常处理级和数据写回级。通过降低片上一级Cache的访问延迟从而提高处理器主频的流水细分,从而满足在不增加Cache容量时能够提高处理器主频、或者在增加Cache容量后不损失处理器主频的实际应用需求。
Description
技术领域
本发明属于处理器主频技术领域;具体涉及一种提高处理器主频的流水线细分装置。
背景技术
为了提高微处理器的主频,目前主要有两大技术途径:选用先进的制造工艺和改进微处理器的体系结构。(1)在制造工艺技术上,工艺尺寸越小,晶体管速度越快,由此带来的处理器主频也就越高,典型的成熟商用半导体制造工艺包括65纳米、40纳米、28纳米等各种尺寸。然而,采用更小更先进的制造工艺,所产生的流片费用也更高;其次,随着制造工艺尺寸进一步缩小,需要突破的技术难度也越来越大,几乎达到了工艺尺寸的最小极限。(2)在微处理器体系结构上,通过流水线细分结构设计来提高处理器主频是最主要最有效的技术手段。由于处理器的主频取决于流水线中延迟最大的那个流水段,因此如何实现流水线中各段延迟的均衡性,是整个流水线细分设计的关键所在。然而,流水线细分技术在本质上会增加流水级数,一旦遇到分支预测错误,整个流水线就必须被清空并重新建立起来,这时处理器效率反而会下降,因此流水线也不宜太长。
随着现代嵌入式微处理器对性能需求的不断增长,片上Cache的容量也在逐步扩大,而其访问延迟也相应变大,越来越难以满足处理器的主频指标要求。为了降低Cache访问延迟、提高处理器主频,目前业界也提出了一些流水线细分的方法。例如文献“一种降低流水化指令缓冲存储器泄露功耗的设计方法”《北京大学学报(自然科学版)》和文献“一种面向超标量处理器的低功耗指令Cache设计”《微电子学与计算机》就提出将指令Cache访问阶段划分为四个更细的流水级。这种流水化Cache结构虽然在提高处理器主频、降低Cache功耗上占有很大优势,但原本一个指令Cache访问周期就被细分成四个流水段,如果采用同样的方法,数据Cache访问也将由一个周期变成四个周期,再加上基本的译码段、寄存器访问段、执行段、异常处理段和数据写回段,整个指令流水线将增加到十三级,这么长的流水线在遇到分支预测错误时其处理效率将大打折扣,并且在指令相关性控制方面也将变得异常复杂。
总体而言,现有的流水线细分技术几乎都是对原始流水线进行的一次全新设计修改,其实现的技术难度、需要进行指令回归性验证的工作量,以及由于细分程度深使得分支预测错误时流水线的恢复开销较大。经检索相关专利和文献资料,在面对Cache容量增加导致处理器主频损失的问题上,尚没有一种控制简单的流水线细分方法。
发明内容
本发明提供了一种提高处理器主频的流水线细分装置;通过降低片上一级Cache的访问延迟从而提高处理器主频的流水细分,从而满足在不增加Cache容量时能够提高处理器主频、或者在增加Cache容量后不损失处理器主频的实际应用需求。
本发明的技术方案是:一种提高处理器主频的流水线细分装置,其连接顺序依次为指令Cache访问级、指令Cache选择级、译码级、寄存器访问级、执行级、数据Cache访问级、数据Cache选择级、存储器访问级、异常处理级和数据写回级;其中指令Cache访问级完成对指令Cache的TAG-SRAM和DATA-SRAM的访问,并且将访问结果及其对应的地址寄存到级间寄存器中;指令Cache选择级根据上述级间寄存器中的内容完成指令Cache命中判断和目标指令的选择;其中数据Cache访问级完成对数据Cache的TAG-SRAM和DATA-SRAM的访问,并且将访问结果及其对应的地址寄存到级间寄存器中;数据Cache选择级根据上述级间寄存器中的内容完成数据Cache命中判断和目标数据的选择。
更进一步的,本发明的特点还在于:
其中指令Cache访问级实现NPC生成逻辑。
其中数据Cache访问级和数据Cache选择级分别生成各自的寄存结果,并得到相应的数据旁路逻辑。
其中指令Cache访问级设置指令Cache存储阵列访问,并且将指令Cache的命中判断与选择设置在指令Cache选择级,指令Cache访问级访问得到的存储器阵列值和访问地址锁存在指令Cache访问级和指令Cache选择级之间的级间寄存器中。
其中数据Cache访问级设置数据Cache存储阵列访问,并且将数据Cache的命中判断与选择设置在数据Cache选择级,数据Cache访问级访问得到的存储器阵列值和访问地址锁存在数据Cache访问级和数据Cache选择级之间的级间寄存器中。
该装置能够对RISC处理器进行处理。
与现有技术相比,本发明的有益效果是:该装置通过对流水线中指令Cache和数据Cache的访问过程进行细分,减小了作为关键路径上的Cache访问延迟。当Cache容量不变时有利于进一步提高处理器的主频;当因性能增长需求需要增大Cache容量时,可以避免处理器的主频遭受损失。相比于现有的流水线细分技术其分支开销更小。目前的流水线细分技术将Cache访问分成了多达四个流水周期,这样整个流水线将至少增长六级,而本发明只细分两级,在遇到分支预测错误时流水线恢复开销更小。相比于现有的流水线细分技术其设计复杂度更低。目前的流水化Cache结构是基于存储阵列的地址译码、字线/位线导通、敏感放大输出等微操作的划分,而本发明则将存储器阵列的访问当成一个整体,设计更简单。
更进一步的,该结构清晰,控制成本低,易于实施。整个流水线设计只是将原始的指令Cache和数据Cache访问一分为二,并且除了局部修改NPC生成逻辑和数据旁路逻辑之外,其它流水结构都无需更改,适用性强。
附图说明
图1为本发明的处理器九级流水线结构;
图2为本发明的指令Cache或数据Cache的访问结构;
图3为本发明的NPC生成逻辑结构图;
图4为本发明的数据旁路逻辑图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进一步说明。
本发明提供了一种提高处理器主频的流水线细分装置,如图1所示,其为九级流水线结构,按照其连接顺序依次为:指令Cache访问级(F1)、指令Cache选择级(F2)、译码级(D)、寄存器访问级(A)、执行级(E)、数据Cache访问级(M1)、数据Cache选择级(M2)、异常处理级(X)和数据写回级(W)。与现有的七级流水线相比,本发明将原有的取指级(F)分为指令Cache访问级(F1)和指令Cache选择级(F2),将原有的存储器访问级(M)分为数据Cache访问级(M1)和数据Cache选择级(M2)。
具体的,在本发明中指令Cache访问级(F1)完成对指令Cache的TAG-SRAM和DATA-SRAM的访问,并且将访问结果(tag值和data值)以及其对应的取指地址(addr)寄存在级间寄存器中;指令Cache选择级(F2)根据级间寄存器中寄存的tag值、data值和addr,完整指令Cache命中判断和目标指令的选择。
具体的,在本发明中数据Cache访问级(M1)完成对数据Cache的TAG-SRAM和DATA-SRAM的访问,并且将访问结果(tag值和data值)以及其对应的数据地址(addr)寄存在级间寄存器中;数据Cache选择级(M2)根据级间寄存器中寄存的tag值、data值和addr,完整数据Cache命中判断和目标数据的选择。
如图1所示,本发明中寄存器文件分别在寄存器访问级A进行读操作和在数据写回级W进行写操作;NPC生成逻辑则是对改变程序取指地址的各种来源进行仲裁判断,并选择优先级最高的取指地址在下个周期去访问指令Cache,这里的取指地址可能来自于指令Cache访问级(F1)的分支预测地址(bp_addr)或顺序执行取指地址(PC+4)、译码级D得到的相对PC跳转地址(br_addr);执行级E得到的寄存器间接跳转地址(jp_addr);异常处理级X得到的异常或中断入口地址(xc_addr);数据旁路逻辑则是对当前指令的源操作数的来源进行优先级判断和选择,并在下个周期进入执行级E对操作数进行处理,这里的旁路路径可能来自于执行级E的运算结果(e_result)、数据Cache访问级(M1)和数据Cache选择级(M2)的寄存结果(m1_result)和(m2_result)、异常处理级X的寄存结果(x_result)、数据写回级W的寄存结果(w_result)。
如图2所示,本发明的指令Cache的访问结构为:指令Cache访问级F1设置指令Cache存储阵列访问,并且将指令Cache的命中判断与选择设置在指令Cache选择级F2,指令Cache访问级F1访问得到的存储器阵列值和访问地址锁存在指令Cache访问级F1和指令Cache选择级F2之间的级间寄存器中。数据Cache的访问结构为:数据Cache访问级M1设置数据Cache存储阵列访问,并且将数据Cache的命中判断与选择设置在数据Cache选择级M2,数据Cache访问级M1访问得到的存储器阵列值和访问地址锁存在数据Cache访问级M1和数据Cache选择级M2之间的级间寄存器中。
如图3所示,本发明的NPC生成逻辑结构中指令Cache访问级F1产生分支预测地址(bp_addr)或顺序执行取指地址(PC+4)。
如图4所示,数据旁路中增加数据Cache访问级(M1)生成的结果(m1_result)和数据Cache选择级(M2)生成的结果(m2_result)。
本发明的装置能够应用于多款基于SPARC V8处理器架构的系统芯片(SoC)服务级芯片中。根据用户对处理器性能的需求,片上Cache容量的配置不断增大,应用该流水线细分技术后,SPARC V8处理器可以获得更高的工作主频指标。图4为该装置应用于RISC处理器中。
Claims (6)
1.一种提高处理器主频的流水线细分装置,其特征在于,其连接顺序依次为指令Cache访问级、指令Cache选择级、译码级、寄存器访问级、执行级、数据Cache访问级、数据Cache选择级、异常处理级和数据写回级;
其中指令Cache访问级完成对指令Cache的TAG-SRAM和DATA-SRAM的访问,并且将访问结果及其对应的地址寄存到级间寄存器中;指令Cache选择级根据上述级间寄存器中的内容完成指令Cache命中判断和目标指令的选择;
其中数据Cache访问级完成对数据Cache的TAG-SRAM和DATA-SRAM的访问,并且将访问结果及其对应的地址寄存到级间寄存器中;数据Cache选择级根据上述级间寄存器中的内容完成数据Cache命中判断和目标数据的选择。
2.根据权利要求1所述的提高处理器主频的流水线细分装置,其特征在于,所述指令Cache访问级实现NPC生成逻辑。
3.根据权利要求1所述的提高处理器主频的流水线细分装置,其特征在于,所述数据Cache访问级和数据Cache选择级分别生成各自的寄存结果,并得到相应的数据旁路逻辑。
4.根据权利要求1所述的提高处理器主频的流水线细分装置,其特征在于,所述指令Cache访问级设置指令Cache存储阵列访问,并且将指令Cache的命中判断与选择设置在指令Cache选择级,指令Cache访问级访问得到的存储器阵列值和访问地址锁存在指令Cache访问级和指令Cache选择级之间的级间寄存器中。
5.根据权利要求1所述的提高处理器主频的流水线细分装置,其特征在于,所述数据Cache访问级设置数据Cache存储阵列访问,并且将数据Cache的命中判断与选择设置在数据Cache选择级,数据Cache访问级访问得到的存储器阵列值和访问地址锁存在数据Cache访问级和数据Cache选择级之间的级间寄存器中。
6.根据权利要求1所述的提高处理器主频的流水线细分装置,其特征在于,该装置能够对RISC处理器进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810530629.5A CN108845832B (zh) | 2018-05-29 | 2018-05-29 | 一种提高处理器主频的流水线细分装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810530629.5A CN108845832B (zh) | 2018-05-29 | 2018-05-29 | 一种提高处理器主频的流水线细分装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108845832A true CN108845832A (zh) | 2018-11-20 |
CN108845832B CN108845832B (zh) | 2023-05-30 |
Family
ID=64211077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810530629.5A Active CN108845832B (zh) | 2018-05-29 | 2018-05-29 | 一种提高处理器主频的流水线细分装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108845832B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778526A (zh) * | 2021-11-12 | 2021-12-10 | 北京微核芯科技有限公司 | 一种基于Cache的流水线的执行方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1107110A2 (en) * | 1999-11-30 | 2001-06-13 | Texas Instruments Incorporated | Instruction loop buffer |
US20090006812A1 (en) * | 2007-06-28 | 2009-01-01 | David Arnold Luick | Method and Apparatus for Accessing a Cache With an Effective Address |
CN203164952U (zh) * | 2013-03-28 | 2013-08-28 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种单发射流水线处理器 |
CN104461758A (zh) * | 2014-11-10 | 2015-03-25 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种容忍cache缺失快速清空流水线的异常处理方法及其处理结构 |
CN107870780A (zh) * | 2016-09-28 | 2018-04-03 | 华为技术有限公司 | 数据处理装置和方法 |
CN107885611A (zh) * | 2017-11-24 | 2018-04-06 | 西安微电子技术研究所 | 可主动回写的分级指令存储器结构容错方法和装置 |
CN107992376A (zh) * | 2017-11-24 | 2018-05-04 | 西安微电子技术研究所 | Dsp处理器数据存储器主动容错方法和装置 |
-
2018
- 2018-05-29 CN CN201810530629.5A patent/CN108845832B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1107110A2 (en) * | 1999-11-30 | 2001-06-13 | Texas Instruments Incorporated | Instruction loop buffer |
US20090006812A1 (en) * | 2007-06-28 | 2009-01-01 | David Arnold Luick | Method and Apparatus for Accessing a Cache With an Effective Address |
CN203164952U (zh) * | 2013-03-28 | 2013-08-28 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种单发射流水线处理器 |
CN104461758A (zh) * | 2014-11-10 | 2015-03-25 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种容忍cache缺失快速清空流水线的异常处理方法及其处理结构 |
CN107870780A (zh) * | 2016-09-28 | 2018-04-03 | 华为技术有限公司 | 数据处理装置和方法 |
CN107885611A (zh) * | 2017-11-24 | 2018-04-06 | 西安微电子技术研究所 | 可主动回写的分级指令存储器结构容错方法和装置 |
CN107992376A (zh) * | 2017-11-24 | 2018-05-04 | 西安微电子技术研究所 | Dsp处理器数据存储器主动容错方法和装置 |
Non-Patent Citations (3)
Title |
---|
刘览;郑步生;施慧彬;: "基于FPGA的32位RISC微处理器设计", 数据采集与处理 * |
徐苏: "《计算机组织与结构》", 31 May 2008 * |
解正瑞: "《微型计算机系统及应用》", 30 June 1995 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778526A (zh) * | 2021-11-12 | 2021-12-10 | 北京微核芯科技有限公司 | 一种基于Cache的流水线的执行方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108845832B (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11467740B2 (en) | Method, apparatus, and system for energy efficiency and energy conservation including autonomous hardware-based deep power down in devices | |
Fang et al. | swdnn: A library for accelerating deep learning applications on sunway taihulight | |
Dai et al. | FPGP: Graph processing framework on FPGA a case study of breadth-first search | |
US10162687B2 (en) | Selective migration of workloads between heterogeneous compute elements based on evaluation of migration performance benefit and available energy and thermal budgets | |
US8589665B2 (en) | Instruction set architecture extensions for performing power versus performance tradeoffs | |
CN102750133B (zh) | 支持simd的32位三发射的数字信号处理器 | |
US8799577B2 (en) | Gather and scatter operations in multi-level memory hierarchy | |
US8954775B2 (en) | Power gating functional units of a processor | |
US20140189302A1 (en) | Optimal logical processor count and type selection for a given workload based on platform thermals and power budgeting constraints | |
US8879346B2 (en) | Mechanisms for enabling power management of embedded dynamic random access memory on a semiconductor integrated circuit package | |
US8611170B2 (en) | Mechanisms for utilizing efficiency metrics to control embedded dynamic random access memory power states on a semiconductor integrated circuit package | |
Esfeden et al. | BOW: Breathing operand windows to exploit bypassing in GPUs | |
CN108845832A (zh) | 一种提高处理器主频的流水线细分装置 | |
Goel et al. | Power reduction in VLIW processor with compiler driven bypass network | |
Srinivasan | Improving cache utilisation | |
Yazdanpanah et al. | EREER: Energy-aware register file and execution unit using exploiting redundancy in GPGPUs | |
Wang et al. | Energy-efficient dnn computing on gpus through register file management | |
Marino et al. | Last level cache size heterogeneity in embedded systems | |
Wang et al. | Packing narrow-width operands to improve energy efficiency of general-purpose GPU computing | |
Ramírez et al. | Direct instruction wakeup for out-of-order processors | |
US20050223203A1 (en) | Segmented branch predictor | |
Atoofian | Reducing static and dynamic power of l1 data caches in gpgpus | |
CN116821008B (zh) | 具有提高的高速缓存命中率的处理装置及其高速缓存设备 | |
CN117950645B (zh) | 一种基于硬件特征的算子调度方案自动搜索方法与系统 | |
Wang et al. | Build Energy-Efficient GPU Computing Environment for Machine Learning Algorithms with Register File Packing Technique |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |