CN1731346A - 微处理器的整数单元中五级容错流水结构的实现方法 - Google Patents
微处理器的整数单元中五级容错流水结构的实现方法 Download PDFInfo
- Publication number
- CN1731346A CN1731346A CNA2005100431075A CN200510043107A CN1731346A CN 1731346 A CN1731346 A CN 1731346A CN A2005100431075 A CNA2005100431075 A CN A2005100431075A CN 200510043107 A CN200510043107 A CN 200510043107A CN 1731346 A CN1731346 A CN 1731346A
- Authority
- CN
- China
- Prior art keywords
- register
- instruction
- streamline
- trap
- error
- 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
Images
Landscapes
- Advance Control (AREA)
Abstract
本发明公开了微处理器的整数单元中五级容错流水结构的实现方法,流水结构由取指部件、译码部件、执行部件、存储访问部件和寄存器写部件组成,并和一流水线控制及背板寄存器相连通,其中译码部件的输出和存储访问部件之间还连接有一纠检错处理部件;用于完成源操作数的错误检测与纠正,并建立相应的控制信息,每条指令在流水线控制及背板寄存器的控制下,经过五级处理完成;当纠检错处理部件发现单位错时,则进行纠正,并送入寄存器写部件,由寄存器写部件将纠正后的数据回写到背板寄存器中;之后,流水线从PC所指的当前出错指令处和nPC所指的下一条指令处开始重新执行;若纠检错模块发现是多位错,则直接产生陷阱,流水线停止,进入陷阱处理程序。
Description
技术领域
本发明属于计算机技术领域,涉及一种SPARC V8兼容型空间计算机微处理器LSFT32的设计和制造,特别涉及LSFT32微处理器的整数单元(IU)中所采用的五级容错流水结构的实现方法。
背景技术
自1975年IBM公司率先提出精简指令***的思想以来,伴随着微电子和计算机技术的不断发展,精简指令***计算机(reduced instruction setcomputer,简称RISC)已成为当前计算机领域的主流产品。RISC最主要的特点就是微处理器执行的所有操作都是面向寄存器的,其主要优点在于:
(1)从寄存器到寄存器的操作指令充分利用了VLSI工艺所带来的高速片上频宽来进行数据传送,大大提升了指令的执行速度。
(2)由于简化了指令控制逻辑,从而进一步缩小了硬布线逻辑构成的控制部件的芯片面积,使得芯片上可以实现更多的寄存器。
SPARC(Scalable Processor ARChitecture)是一种性能随着工艺技术的改进可成比提高的处理器体系结构。它完全遵循了RISC面向寄存器操作的设计思想,在***中定义了一个大容量的寄存器堆,包括只能由***访问的***寄存器,以及用于通常操作的工作寄存器。SPARC采用“寄存器窗口”的方式对寄存器组进行管理。***将工作寄存器组成若干个窗口,建立起环形结构,利用重叠寄存器窗口技术来加快程序的运转。
RISC***中采用流水线的控制方式使得大多数指令都可在单周期内完成。在LSFT32微处理器中支持五级流水线结构,包括取指阶段、译码阶段、执行阶段、存储阶段和回写段。如果可以保证寄存器中数据的正确性,在不出现相关问题和条件转移指令的情况下,每个节拍都会有一条指令执行完成流出流水线(除去LODE/STORE等多周期指令)。
针对寄存器堆的容错问题,目前的处理方式主要包括以下两种:
①在译码段增加EDAC处理,然后再将数据送入执行段。该方式的优点在于控制简单、易实现,但由于EDAC增加了译码段的时间开销,限制了处理器的频率,大大降低了RISC处理器性能。
②采用两条流水线并行运行,当结果比较一致时,正常进入回写段,否则从出错指令处重启流水线,例如IBM的S/390 G5微处理器。该方式可以检测到寄存器中出现的所有类型的硬件和软件错误,但却极大的增加了芯片面积的开销。因而,该方式仅适用于对性能要求不高的微处理器中。
发明内容
针对上述现有技术存在的缺陷与不足,本发明的目的在于提供一种广泛适用于SPARC结构微处理器的、执行效率高、结构完整的五级容错流水结构。
实现上述发明目的的技术方案是这样的:
一种微处理器的整数单元中五级容错流水结构的实现方法,其特征在于,该流水结构由取指部件、译码部件、执行部件、存储访问部件和寄存器写部件组成,上述流水结构的所有部件依次相连,并与一流水线控制及背板寄存器相连通;其中译码部件的输出和存储访问部件之间还连接有一纠检错处理部件,用于完成源操作数的错误检测与纠正,并建立相应的控制信息,每条指令在流水线控制及背板寄存器的控制下,经过五级处理完成;具体处理过程包括下列步骤:
1)在取指部件取得当前PC所指的指令送往译码部件进行译码;
2)译码部件根据指令的编码格式和内容获得源操作数和目的操作数的地址,将背板寄存器文件中的源操作数送往执行部件,并预置部分陷阱标记;
3)执行部件进行相应的加/减/乘/除算术运算和与/或/非逻辑运算,若运算为多周期时,流水线进入保持等待状态;在存储访问部件从乘法器、除法器运算单元中取得目的操作数,并预置部分陷阱标记;
4)在寄存器写部件完成相应的陷阱处理,并将数据写入背板寄存器文件中;
5)在译码部件将背板寄存器文件中的源操作数送往执行部件的同时,该数据同时被送往纠检错模块进行处理;当纠检错模块发现单位错时,则进行纠正,并传送至寄存器写部件,由寄存器写部件将纠正后的数据回写到背板寄存器中;之后,流水线从PC所指的当前出错指令处和nPC所指的下一条指令处开始重新执行;若纠检错模块发现是多位错,则直接产生陷阱,流水线停止,进入陷阱处理程序。
本发明的五级容错流水结构增加了并行的容错处理,即在EX段增加并行的纠检错处理部件,在将DE段的源操作数送往EX段运算的同时,也将该数据送往纠检错处理部件进行处理。当纠检错处理部件发现单位错时,则进行纠正,并废除当前执行指令的后续指令,后在WR段将纠正后的数据回写到存储器中。之后,流水线从PC所指的当前出错指令处和nPC所指的下一条指令处开始重新执行,若纠检错模块发现是多位错,则直接产生陷阱,流水线停止,进入陷阱处理程序。
本发明的五级容错流水结构,具有以下优点:
(1)该发明采用并行处理的思想设计容错结构,减少了EDAC所带来的时间开销,大大提高了流水线的执行效率;
(2)该发明所采用的EDAC方法支持自动纠正单位错误,并可检测2到8位错误,提高了对寄存器文件中数据的纠错效率;
(3)该发明中为实现容错所增加的纠检错处理(EDAC)部件以及相应的控制电路规模相对较小,节省了芯片面积的开销,易于设计实现;
(4)该发明所涉及的流水线并行容错处理的方式广泛适用于SPARC结构的微处理器,并可推广到其它RISC结构的微处理器中进行应用,对于提高流水线的容错能力是很有效的;
(5)利用该发明所实现的SPARC V8兼容型空间计算机微处理器LSFT32具有很好的容错能力,可实现对于寄存器文件错误的正确处理。
附图说明
图1是五级容错流水线控制结构;
图2是五级容错流水线执行时空图;
图3是指令正常执行时的流水线状态;
图4是产生正常陷阱时的流水线状态;
图5是检测/纠正寄存器文件单位错误时的流水线状态;
图6是背板寄存器文件出现不可纠正错误产生陷阱时的流水线状态。
为了更清楚的理解本发明,以下结合附图对本发明作进一步的详细描述。
具体实施方式
在SPARC V8兼容型微处理器LSFT32中采用五级容错流水结构实现指令的处理,其控制逻辑的硬件电路结构如图1所示,该流水结构由取指部件、译码部件、执行部件、存储访问部件和寄存器写部件组成,上述流水结构的所有部件依次相连,并与一流水线控制及背板寄存器相连通;其中译码部件的输出和存储访问部件之间还连接有一纠检错处理部件,用于完成源操作数的错误检测与纠正,并建立相应的控制信息,每条指令在流水线控制及背板寄存器的控制下,经过五级处理完成;在寄存器中数据正确的情况下,每个节拍完成一条单周期指令的执行,其时空关系如图2所示;在出现可纠正错误的情况下,三到四个节拍即完成流水线的重启。
其五级容错流水结构的工作原理是:在正常情况下,五级流水结构在FE段取得当前PC所指的指令送往DE段进行译码;在DE段根据指令的编码格式和内容获得源操作数和目的操作数的地址,将寄存器文件中的源操作数送往EX,并预置部分陷阱标记,若为LODE指令则需多等一个节拍,才能从存储器中取得数据;在EX段进行相应的加/减/乘/除等算术运算和与/或/非等逻辑运算,若运算为多周期时,流水线进入保持等待状态;在ME段从乘法器、除法器等运算单元中取得目的操作数,并预置部分陷阱标记;在WR段完成相应的陷阱处理,并将数据写入寄存器文件中,若为STORE指令需要两个节拍才能将数据写入存储器单元中。
参见图3,图3是指令在流水线中正常执行时的状态,每个节拍可有一条指令(除去LOAD/STORE等多周期指令)完成操作,流出流水线。在流水线启动后,经过5个节拍INST1执行完成,紧接着第6个、第7个、第8个节拍分别完成INST2、INST3、INST4。若为LOAD/STORE指令,则需要两个节拍才能完成,一个节拍用于计算地址,另一个节拍用于读出/写入数据,此时流水线保持(HOLD)等待。
参见图4,图4是指令INST2在流水线中执行时产生陷阱的状态,在第4个节拍INST2在EX段中执行引起陷阱。在第5个节拍,INST1完成ME段操作流出流水线,而INST2则在ME段进行陷阱预置。在第6个节拍,在WR段中处理INST2所引起的陷阱,同时将流水线中的后续指令INST3、INST4、INST5清空(FLUSH)。在第7个节拍,流水线停止,进入陷阱处理程序。
参见图5,图5是指令INST2在EX段发现操作数单位错进行纠正的流水线状态。第4个节拍,在EX段中INST2执行的同时进行源操作数的错误检查(CHECK),纠正单位错;第5个节拍,在ME段中将一个经过修正的源操作数写入目的操作数地址所指定的寄存器中,完成数据的修正,并将后续指令INST3清除;第6个节拍,在WR段中把目的操作数寄存器中保存的数据回写到寄存器文件中,将出错的源操作数更新为正确的值,同时将PC所指的当前出错的指令和nPC所指的下一条指令送入流水线中,重新开始执行。若当前指令之前执行的是一条跳转指令,则跳转所产生的转移地址是PC所指的当前指令的下一条指令,故必须将当前指令和其下一条指令都重新送入流水线,才能保证流水线正常推进。第7个节拍,INST2的后续指令INST3进入流水线。
参见图6,图6是指令INST2在EX段发现不可修正的错误而引起陷阱时的流水线状态。第4个节拍,在EX段中INST2执行的同时进行源操作数的错误检查,发现有不可修正的错误;第5个节拍,在ME段中将EX段生成的目的操作数标记为错误数据,并预置陷阱标记,同时将后续指令INST3清除;第6个节拍,在WR段中处理INST2所引起的陷阱,同时将流水线中的后续指令INST3、INST4、INST5清空(FLUSH)。在第7个节拍,流水线停止,进入陷阱处理程序。
Claims (1)
1.一种微处理器的整数单元中五级容错流水结构的实现方法,其特征在于,该流水结构由取指部件、译码部件、执行部件、存储访问部件和寄存器写部件组成,上述流水结构的所有部件依次相连,并与一流水线控制及背板寄存器相连通;其中译码部件的输出和存储访问部件之间还连接有一纠检错处理部件,用于完成源操作数的错误检测与纠正,并建立相应的控制信息,每条指令在流水线控制及背板寄存器的控制下,经过五级处理完成;具体处理过程包括下列步骤:
1)在取指部件取得当前PC所指的指令送往译码部件进行译码;
2)译码部件根据指令的编码格式和内容获得源操作数和目的操作数的地址,将背板寄存器文件中的源操作数送往执行部件,并预置部分陷阱标记;
3)执行部件进行相应的加/减/乘/除算术运算和与/或/非逻辑运算,若运算为多周期时,流水线进入保持等待状态;在存储访问部件从乘法器、除法器运算单元中取得目的操作数,并预置部分陷阱标记;
4)在寄存器写部件完成相应的陷阱处理,并将数据写入背板寄存器文件中;
5)在译码部件将背板寄存器文件中的源操作数送往执行部件的同时,该数据同时被送往纠检错模块进行处理;当纠检错模块发现单位错时,则进行纠正,并传送至寄存器写部件,由寄存器写部件将纠正后的数据回写到背板寄存器中;之后,流水线从PC所指的当前出错指令处和nPC所指的下一条指令处开始重新执行;若纠检错模块发现是多位错,则直接产生陷阱,流水线停止,进入陷阱处理程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100431075A CN1333334C (zh) | 2005-08-15 | 2005-08-15 | 微处理器的整数单元中五级容错流水结构的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100431075A CN1333334C (zh) | 2005-08-15 | 2005-08-15 | 微处理器的整数单元中五级容错流水结构的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1731346A true CN1731346A (zh) | 2006-02-08 |
CN1333334C CN1333334C (zh) | 2007-08-22 |
Family
ID=35963708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100431075A Expired - Fee Related CN1333334C (zh) | 2005-08-15 | 2005-08-15 | 微处理器的整数单元中五级容错流水结构的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1333334C (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100476744C (zh) * | 2007-01-30 | 2009-04-08 | 中国科学院计算技术研究所 | 一种基于时间冗余的检验流水线瞬态故障的装置及方法 |
CN102298352A (zh) * | 2010-06-25 | 2011-12-28 | 中国科学院沈阳自动化研究所 | 高性能可编程控制器专用处理器体系结构及其实现方法 |
CN104484256A (zh) * | 2014-12-05 | 2015-04-01 | 北京时代民芯科技有限公司 | 一种验证sparc v8处理器寄存器堆纠检错功能的方法 |
CN104991844A (zh) * | 2015-06-05 | 2015-10-21 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种基于半定制寄存器文件的处理器及其容错方法 |
CN105511984A (zh) * | 2015-11-27 | 2016-04-20 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种基于主动链接备份数据的处理器容错结构及方法 |
WO2021042705A1 (zh) * | 2019-09-02 | 2021-03-11 | 芯创智(北京)微电子有限公司 | 一种指令流水线的预译码***及方法 |
CN112861463A (zh) * | 2021-03-11 | 2021-05-28 | 中国科学院计算技术研究所 | 超导处理器及其输入输出控制模块 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933651A (en) * | 1995-09-29 | 1999-08-03 | Matsushita Electric Works, Ltd. | Programmable controller |
-
2005
- 2005-08-15 CN CNB2005100431075A patent/CN1333334C/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100476744C (zh) * | 2007-01-30 | 2009-04-08 | 中国科学院计算技术研究所 | 一种基于时间冗余的检验流水线瞬态故障的装置及方法 |
CN102298352A (zh) * | 2010-06-25 | 2011-12-28 | 中国科学院沈阳自动化研究所 | 高性能可编程控制器专用处理器体系结构及其实现方法 |
CN102298352B (zh) * | 2010-06-25 | 2012-11-28 | 中国科学院沈阳自动化研究所 | 高性能可编程控制器专用处理器体系结构及其实现方法 |
CN104484256A (zh) * | 2014-12-05 | 2015-04-01 | 北京时代民芯科技有限公司 | 一种验证sparc v8处理器寄存器堆纠检错功能的方法 |
CN104991844A (zh) * | 2015-06-05 | 2015-10-21 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种基于半定制寄存器文件的处理器及其容错方法 |
CN104991844B (zh) * | 2015-06-05 | 2017-04-05 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种基于半定制寄存器文件的处理器及其容错方法 |
CN105511984A (zh) * | 2015-11-27 | 2016-04-20 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种基于主动链接备份数据的处理器容错结构及方法 |
CN105511984B (zh) * | 2015-11-27 | 2018-04-20 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种基于主动链接备份数据的具有容错结构的处理器及容错方法 |
WO2021042705A1 (zh) * | 2019-09-02 | 2021-03-11 | 芯创智(北京)微电子有限公司 | 一种指令流水线的预译码***及方法 |
CN112861463A (zh) * | 2021-03-11 | 2021-05-28 | 中国科学院计算技术研究所 | 超导处理器及其输入输出控制模块 |
CN112861463B (zh) * | 2021-03-11 | 2023-04-25 | 中国科学院计算技术研究所 | 超导处理器及其输入输出控制模块 |
Also Published As
Publication number | Publication date |
---|---|
CN1333334C (zh) | 2007-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI681333B (zh) | 可靠度提升系統、方法和電腦可讀取媒體 | |
Mukherjee et al. | Detailed design and evaluation of redundant multithreading alternatives | |
CN107810483B (zh) | 验证处理器中的跳转目标的装置、存储设备和方法 | |
CN1731346A (zh) | 微处理器的整数单元中五级容错流水结构的实现方法 | |
JP2597811B2 (ja) | データ処理システム | |
US20070168768A1 (en) | ECC coding for high speed implementation | |
US20080244354A1 (en) | Apparatus and method for redundant multi-threading with recovery | |
US8935678B2 (en) | Methods and apparatus to form a resilient objective instruction construct | |
CN1629799A (zh) | 用于超前执行下的结果推测的方法和装置 | |
CA2367793A1 (en) | Method and apparatus for computer system reliability | |
CN1885269A (zh) | 在微处理器恢复单元中进行写队列读数据的方法和装置 | |
CN101933002A (zh) | 包含用于逻辑错误保护的混合冗余的处理器 | |
CN101031887A (zh) | 在冗余多线程环境中执行检验指令 | |
CN105320579B (zh) | 面向sparc v8处理器的自修复双冗余流水线及容错方法 | |
US7363477B2 (en) | Method and apparatus to reduce misprediction penalty by exploiting exact convergence | |
JP5436033B2 (ja) | プロセッサ | |
CN108694094B (zh) | 用于处理存储器访问操作的装置和方法 | |
CN1534462A (zh) | 流水线处理一系列处理指令的方法和设备 | |
CN1099631C (zh) | 双执行部件处理器的反回逻辑线路 | |
US20050108509A1 (en) | Error detection method and system for processors that employs lockstepped concurrent threads | |
US9594648B2 (en) | Controlling non-redundant execution in a redundant multithreading (RMT) processor | |
CN102890624B (zh) | 用于管理无序毫码控制操作的方法和*** | |
US20090172367A1 (en) | Processing unit | |
CN1280713C (zh) | 双栈返回地址预测器设计方法 | |
CN1993678A (zh) | 错误登记方法及相应的寄存器 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070822 Termination date: 20160815 |