CN109634667B - 一种基于时钟的双速流水线架构微处理器及其实现方法 - Google Patents
一种基于时钟的双速流水线架构微处理器及其实现方法 Download PDFInfo
- Publication number
- CN109634667B CN109634667B CN201811508771.6A CN201811508771A CN109634667B CN 109634667 B CN109634667 B CN 109634667B CN 201811508771 A CN201811508771 A CN 201811508771A CN 109634667 B CN109634667 B CN 109634667B
- Authority
- CN
- China
- Prior art keywords
- instruction
- speed
- stage
- low
- pipeline
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000004519 manufacturing process Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 3
- 230000009977 dual effect Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
Images
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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明涉及一种基于时钟的双速流水线架构微处理器及其实现方法,根据指令标识的要求,选择高速流水线或者低速流水线执行指令。利用单个处理器资源,设计实现一种工作在不同速度下的双速流水线架构。高速流水线处理的高性能与低速流水线处理的低功耗相结合,可以在提高微处理器系统处理能力的同时,最大程度的降低系统功耗。满足嵌入式微处理器应用领域的高性能与低功耗的要求,同时双速流水线架构的微处理器在功耗方面的表现较大小端双核微处理器系统会更加优秀。
Description
技术领域
本发明属于嵌入式微处理器领域,提出了一种可以工作在双时钟速度下的微处理器流水线架构设计。
背景技术
随着消费电子、汽车电子、工业控制等领域的发展,高性能嵌入式微处理器的应用越来越广泛,对其处理能力的要求也越来越高。同时,嵌入式微处理器的应用领域多为便携设备,消费电子和现场控制设备,对其功耗的要求又十分严格,要求其尽量减小功耗。因此,为了满足嵌入式微处理器应用需求,必须在提高其处理能力的同时,尽量减小其功耗。
现有的嵌入式处理器提高性能的手段是采用多核处理器架构,同时,为了降低功耗,现有的多核架构多采用的是处理能力高的大核与处理能力低一些但是功耗相对较低的小核来共同组成大小端架构的多核系统。这种架构尽管提高了处理能力,也在一定程度上控制了系统功耗,但是处理器所有资源包括流水线架构全部都是双份,并不能很好的在提高处理能力的同时更大程度的降低系统功耗。因此,设计一种双速流水线架构微处理器,利用单个处理器资源,实现流水线的高速处理与低速处理相结合,可以在提高系统处理能力的同时,最大程度的降低系统功耗。
发明内容
本发明目的是设计一种高性能、低功耗的嵌入式微处理器流水线架构,以改善上述多核处理器架构的不足之处。利用单个处理器资源,设计实现一种工作在不同速度下的双速流水线架构。高速流水线处理的高性能与低速流水线处理的低功耗相结合,可以在提高微处理器系统处理能力的同时,最大程度的降低系统功耗。满足嵌入式微处理器应用领域的高性能与低功耗的要求,同时双速流水线架构的微处理器在功耗方面的表现较大小端双核微处理器系统会更加优秀。
本发明为实现上述目的所采用的技术方案是:一种基于时钟的双速流水线架构微处理器实现方法,根据指令标识的要求,选择高速流水线或者低速流水线执行指令,包括以下步骤:
取指级通过向外部程序存储器取指后,将取到的指令送至译码级;
译码级接收到指令后对指令进行译码,同时将译码后的指令发送至发射极;
发射级对指令进行判断,判断当前的指令是高速处理指令还是低速处理指令;如是高速处理指令,则发射到高速流水线;若是低速处理指令,则发射到低速流水线,同时发射级将指令信息发送至时钟分频模块;
时钟分频模块根据指令信息将高速时钟进行分频,得到低速时钟作为低速流水线的工作时钟。
所述发射级对指令进行判断具体为:根据当前指令的速度标志位进行判断,若速度标志位为设定值,则为高速指令,否则,为低速指令。
所述指令信息包括指令的速度标志位及对应的操作码。
所述时钟分频模块将高速时钟按照速度标志位级响应的倍频系数进行分频,得到低速时钟,输出至低速流水线模块。
所述高速流水线或低速流水线接收指令后,取出需要的数据执行,并将执行的结果回写。
所述高速时钟根据需要设定;高速时钟频率大于低速时钟频率。
一种双速流水线架构微处理器,包括:
公用流水线,用于通过向外部程序存储器取指后,将取到的指令进行译码,并判断当前的指令是高速处理指令还是低速处理指令;如是高速处理指令,则发射到高速流水线;若是低速处理指令,则发射到低速流水线,同时发射级将指令信息发送至时钟分频模块;
时钟分频模块,用于接收高速时钟,并根据指令信息进行分频,得到低速时钟发送至低速流水线;
高速流水线,用于接收指令后取出需要的数据,在高速时钟频率下,按照指令规定的操作内容执行指令,并回写;
低速流水线,用于接收指令后取出需要的数据,在低速时钟频率下,按照指令规定的操作内容执行指令,并回写。
所述公用流水线包括顺序连接的取指级、译码级、发射级;所述取指级、译码级、发射级工作在高速时钟频率下;
所述取指级,用于通过向外部程序存储器取指后,将取到的指令送至译码级;
所述译码级,用于对接收到的指令进行译码后,发送至发射极;
所述发射级,用于对指令的速度标志位进行判断,判断当前的指令是高速处理指令还是低速处理指令;如是高速处理指令,则发射到高速流水线;若是低速处理指令,则发射到低速流水线,同时发射级将指令信息发送至时钟分频模块。
所述高速流水线或低速流水线包括顺序连接的读取数据级、执行级、回写保存级;所述读取数据级、执行级、回写保存级工作在低速时钟频率下;
所述读取数据级,用于将指令中需要的数据从指定位置取出,并将取出的数据与指令发送到执行级;
所述执行级,用于将数据按照指令进行操作后,得到指令执行结果,同时将指令执行结果发送至回写级;
所述回写级,用于将指令执行结果存放在指令指定的位置。
本发明具有以下有益效果及优点:
1.本发明采用单核嵌入式微处理器,设计双速流水线架构,取代现有的大小端双核架构,在减少系统资源的同时,实现更低的功耗。
2.本发明采用单核嵌入式微处理器,实现现有的大小端双核嵌入式微处理器架构,简化以嵌入式微处理器为核心的SoC系统设计,减少了多核系统设计逻辑。
3.本发明采用单核嵌入式微处理器,设计双速流水线架构,取代现有的大小端双核嵌入式微处理器架构设计,避免了由于大小端双核架构对各自的高速缓存(Cache)进行写操作后造成的Cache一致性的问题。
4.本发明采用单核嵌入式微处理器,设计双速流水线架构,取代现有的大小端双核嵌入式微处理器架构设计,在实现了大小端双核嵌入式微处理器同等性能的同时,设计面积更小,实现成本更低。
附图说明
图1本发明的双速流水线架构图。
具体实施方式
下面根据附图对本发明进行详细说明。
双速流水线的设计思想是如图1所示,其中,1为流水线的取指级,2为流水线的译码级,3为流水线的发射级,F4为高速流水线的读取数据级,F5为高速流水线的指令执行级,F6为高速流水线的指令执行结果的回写保存级,L4为低速流水线的读取数据级,L5为低速流水线的指令执行级,L6为低速流水线的指令执行结果的回写保存级;F0为时钟倍频模块。双速流水线的取指级、译码级、发射级是共用流水线,工作在高速时钟下。后三级中的高速流水线,工作在高速时钟下,负责完成高速指令的执行。后三级中的低速流水线,工作在低速时钟下,负责完成低速指令的执行,低速时钟是将高速时钟按照速度速度标志位及相应的操作码分频得到的。
取指级通过向外部程序存储器取指后,将取到的指令送至译码级。
译码级接收到取指级发送的指令后,对接收到的指令进行译码,同时将指令译码结果发送至发射极。
发射级对接收到的译码指令的指令速度标志位进行判断,判断当前的指令是高速处理指令还是低速处理指令,并将高速处理指令发射到指令指定的高速流水线,将低速处理指令发射到指令指定的低速流水线。同时发射级将译码指令的速度标志位及对应的操作码发送至时钟分频模块。译码后的指令格式如表1所示。
时钟分频模块将高速时钟按照速度标志位级响应的倍频系数进行分频,得到低速时钟,低速时钟作为低速流水线模块的工作时钟。
本发明中,译码得到的指令模式与时钟分频模块的分频方法很多,具体实施例中设计了一种译码后的指令模式及对应的一种高速时钟分频模式,但本发明所涉及的方法不限于此中实施例。表一为具体实施例中一种译码后的指令格式,当发射模块对速度标志位进行判断后,若速度标志位为1则为高速指令,对应的将指令发射至高速流水线取数级,若速度标志位为0则为低速指令,对应的将指令发射至低速流水线取数级。同时,当指令为低速指令时,发射级将指令的速度标志位及对应的操作码,发射至时钟分频模块,将高速时钟进行分频,分频模块的一种分频方式为表2所示。
表1一种译码后的指令格式
表2高速时钟分频
操作码 | F<sub>f</sub>高速时钟(MHz) | F<sub>l</sub>低速时钟(MHz) |
00 | a | a/2 |
01 | a | a/4 |
10 | a | a/8 |
11 | a | a/16 |
双速流水线中的取数级(包括高速流水线取数级F4与低速流水线取数级L4)负责将指令中需要的数据从指定位置取出,并将取出的数据与指令发送到执行级。其中高速流水线取数级F4取出的数据与接收到的指令直接发送到执行级F5;低速流水线取数级L4取出的数据与接收到的指令直接发送到执行级L5。
高速流水线执行级F5将得到的数据按照得到的指令进行规定的相应操作后,得到指令执行结果,同时将指令执行结果发送至高速流水线回写级F6;低速流水线执行级L5将得到的数据按照得到的指令进行规定的相应操作后,得到指令执行结果,同时将指令执行结果发送至低速流水线回写级L6。
高速流水线回写级F6与低速流水线回写级L6将高速流水线执行级F5与低速流水线执行级L5的指令执行结果按照接收到的指令内容存放在指令指定的位置。
至此一条指令执行结束。
在嵌入式微处理器系统中,通常会有多个待处理的进程。有些进程的处理需要高效快速执行,这类进程的指令就可以标识为高速指令,由该设计中的高速流水线执行完成;有些进程的处理相对要求处理速度不高,此类进程便可以标识为低功耗指令,由该设计中的低速流水线执行完成。通过双速流水线的配合操作,实现嵌入式微处理器设计的等同于大小端双核的高处理性能与更低功耗的要求。
Claims (8)
1.一种基于时钟的双速流水线架构微处理器实现方法,其特征在于:根据指令标识的要求,选择高速流水线或者低速流水线执行指令,包括以下步骤:
取指级通过向外部程序存储器取指后,将取到的指令送至译码级;
译码级接收到指令后对指令进行译码,同时将译码后的指令发送至发射极;
发射级对指令进行判断,判断当前的指令是高速处理指令还是低速处理指令;如是高速处理指令,则发射到高速流水线;若是低速处理指令,则发射到低速流水线,同时发射级将指令信息发送至时钟分频模块;
时钟分频模块根据指令信息将高速时钟进行分频,得到低速时钟作为低速流水线的工作时钟;
所述发射级对指令进行判断具体为:根据当前指令的速度标志位进行判断,若速度标志位为设定值,则为高速指令,否则,为低速指令。
2.根据权利要求1所述一种基于时钟的双速流水线架构微处理器实现方法,其特征在于,所述指令信息包括指令的速度标志位及对应的操作码。
3.根据权利要求1所述一种基于时钟的双速流水线架构微处理器实现方法,其特征在于,所述时钟分频模块将高速时钟按照速度标志位级响应的倍频系数进行分频,得到低速时钟,输出至低速流水线模块。
4.根据权利要求1所述一种基于时钟的双速流水线架构微处理器实现方法,其特征在于,所述高速流水线或低速流水线接收指令后,取出需要的数据执行,并将执行的结果回写。
5.根据权利要求3所述一种基于时钟的双速流水线架构微处理器实现方法,其特征在于,所述高速时钟根据需要设定;高速时钟频率大于低速时钟频率。
6.一种双速流水线架构微处理器,其特征在于,包括:
公用流水线,用于通过向外部程序存储器取指后,将取到的指令进行译码,并判断当前的指令是高速处理指令还是低速处理指令;如是高速处理指令,则发射到高速流水线;若是低速处理指令,则发射到低速流水线,同时发射级将指令信息发送至时钟分频模块;
时钟分频模块,用于接收高速时钟,并根据指令信息进行分频,得到低速时钟发送至低速流水线;
高速流水线,用于接收指令后取出需要的数据,在高速时钟频率下,按照指令规定的操作内容执行指令,并回写;
低速流水线,用于接收指令后取出需要的数据,在低速时钟频率下,按照指令规定的操作内容执行指令,并回写。
7.根据权利要求6所述的一种双速流水线架构微处理器,其特征在于,所述公用流水线包括顺序连接的取指级、译码级、发射级;所述取指级、译码级、发射级工作在高速时钟频率下;
所述取指级,用于通过向外部程序存储器取指后,将取到的指令送至译码级;
所述译码级,用于对接收到的指令进行译码后,发送至发射极;
所述发射级,用于对指令的速度标志位进行判断,判断当前的指令是高速处理指令还是低速处理指令;如是高速处理指令,则发射到高速流水线;若是低速处理指令,则发射到低速流水线,同时发射级将指令信息发送至时钟分频模块;
对指令进行判断具体为:根据当前指令的速度标志位进行判断,若速度标志位为设定值,则为高速指令,否则,为低速指令。
8.根据权利要求6所述的一种双速流水线架构微处理器,其特征在于,所述高速流水线或低速流水线包括顺序连接的读取数据级、执行级、回写保存级;所述读取数据级、执行级、回写保存级工作在低速时钟频率下;
所述读取数据级,用于将指令中需要的数据从指定位置取出,并将取出的数据与指令发送到执行级;
所述执行级,用于将数据按照指令进行操作后,得到指令执行结果,同时将指令执行结果发送至回写级;
所述回写级,用于将指令执行结果存放在指令指定的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811508771.6A CN109634667B (zh) | 2018-12-11 | 2018-12-11 | 一种基于时钟的双速流水线架构微处理器及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811508771.6A CN109634667B (zh) | 2018-12-11 | 2018-12-11 | 一种基于时钟的双速流水线架构微处理器及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109634667A CN109634667A (zh) | 2019-04-16 |
CN109634667B true CN109634667B (zh) | 2023-03-14 |
Family
ID=66072633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811508771.6A Active CN109634667B (zh) | 2018-12-11 | 2018-12-11 | 一种基于时钟的双速流水线架构微处理器及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109634667B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0798633B1 (en) * | 1996-03-29 | 2005-06-08 | Matsushita Electric Industrial Co., Ltd. | Data processor having a variable number of pipeline stages |
JP3541623B2 (ja) * | 1997-06-27 | 2004-07-14 | 松下電器産業株式会社 | データ処理装置 |
JP2001236221A (ja) * | 2000-02-21 | 2001-08-31 | Keisuke Shindo | マルチスレッドを利用するパイプライン並列プロセッサ |
GB2458487B (en) * | 2008-03-19 | 2011-01-19 | Imagination Tech Ltd | Pipeline processors |
-
2018
- 2018-12-11 CN CN201811508771.6A patent/CN109634667B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109634667A (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101710116B1 (ko) | 프로세서, 메모리 관리 장치 및 방법 | |
US9870226B2 (en) | Control of switching between executed mechanisms | |
CN101164040B (zh) | 用于可变长度指令的功率节省方法和设备 | |
US11550731B2 (en) | Processing method and apparatus for translation lookaside buffer flush instruction | |
WO2016210020A1 (en) | Explicit instruction scheduler state information for a processor | |
US11900120B2 (en) | Issuing instructions based on resource conflict constraints in microprocessor | |
US20210089306A1 (en) | Instruction processing method and apparatus | |
JP2014182817A (ja) | 条件付きショート前方分岐の計算的に等価な述語付き命令への変換 | |
CN109634667B (zh) | 一种基于时钟的双速流水线架构微处理器及其实现方法 | |
WO2016210023A1 (en) | Decoding information about a group of instructions including a size of the group of instructions | |
US8555097B2 (en) | Reconfigurable processor with pointers to configuration information and entry in NOP register at respective cycle to deactivate configuration memory for reduced power consumption | |
US20210089305A1 (en) | Instruction executing method and apparatus | |
WO2020210624A1 (en) | Data loading and storage instruction processing method and device | |
US9135011B2 (en) | Next branch table for use with a branch predictor | |
CN115629806A (zh) | 一种处理指令的方法、系统、设备和存储介质 | |
CN112540789B (zh) | 一种指令处理装置、处理器及其处理方法 | |
CN111857830B (zh) | 一种提前转发指令数据的通路设计方法、系统及存储介质 | |
CN108845832B (zh) | 一种提高处理器主频的流水线细分装置 | |
CN114253606A (zh) | 用于早期流水线重定向的指令集架构和微架构 | |
CN111813447B (zh) | 一种数据拼接指令的处理方法和处理装置 | |
CN111913746A (zh) | 一种低开销嵌入式处理器设计方法 | |
CN111722876A (zh) | 利用超标量流水线执行程序的方法、装置、系统及介质 | |
CN117472840B (zh) | 多核系统以及用于多核系统的数据处理的方法 | |
CN114174985A (zh) | 在基于块的指令集架构中高扇出通信的高效编码 | |
Park et al. | Low-power embedded processor design using branch direction |
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 |