CN106844281A - 一种适用于PowerPC处理器的高可靠指令Cache - Google Patents
一种适用于PowerPC处理器的高可靠指令Cache Download PDFInfo
- Publication number
- CN106844281A CN106844281A CN201611045933.8A CN201611045933A CN106844281A CN 106844281 A CN106844281 A CN 106844281A CN 201611045933 A CN201611045933 A CN 201611045933A CN 106844281 A CN106844281 A CN 106844281A
- Authority
- CN
- China
- Prior art keywords
- instruction
- check code
- cache
- instruction cache
- processor
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F2015/761—Indexing scheme relating to architectures of general purpose stored programme computers
- G06F2015/765—Cache
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种适用于PowerPC处理器的高可靠指令Cache,包括AXI总线接口单元、指令Cache块缓存器、指令Cache控制器、指令Cache的数据存储体、命中检查器、指令寄存器、指令校验电路、指令校验码读出寄存器、校验码生成逻、校验码缓存器、检验码存储体,克服了现有的Cache不适用于航天、军事、工业控制等工作环境较恶劣领域,容易导致存储数据出现错误的问题,通过指令Cache的检错纠错功能增强了PowerPC处理器在恶劣工作环境的适应性,提高PowerPC处理器的可靠性,通过扩展ECC+Parity校验码数据通路,提高了指令Cache的可靠性,具有较好的使用价值。
Description
技术领域
本发明涉及数字计算机技术领域,特别是一种适用于PowerPC处理器的高可靠指令Cache。
背景技术
通常情况下,计算机程序是放在内存中的,处理器从内存读取指令并执行。但内存的访问速度较慢,对于目前的流水线处理器,执行一条指令的时间是1个处理器时钟周期,而访问内存的时间是30-100个处理器时间周期。为了解决内存访问速度慢的问题,最常用的方法是在处理器和内存之间设置一个容量较小,但访问速度快的高速存储器,即Cache。
对于PowerPC等RISC处理器,存储体系结构一般采用哈佛结构,即程序的指令存储和数据存储分开,因此在处理器的取指单元和内存之间设置指令Cache,在处理器的数据载入/存储单元与内存之间设置数据Cache,两者独立。对于PowerPC处理器,因其指令长度固定,而数据长度可以在字节和四字之间变化,指令Cache和数据Cache的设计存在一定的差异。
在一些应用场合,如航天应用场合,因外太空辐射的影响,Cache的存储体可能在辐射作用下出现翻转,即Cache存储体中的值因单粒子事件出错,导致程序执行出现错误,因此需要一种高可靠的Cache。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了一种适用于PowerPC处理器的高可靠指令Cache,克服了现有的Cache不适用于航天、军事、工业控制等工作环境较恶劣领域,容易导致存储数据出现错误的问题。
本发明的技术解决方案是:一种适用于PowerPC处理器的高可靠指令Cache,包括AXI总线接口单元、指令Cache块缓存器、指令Cache控制器、指令Cache的数据存储体、命中检查器、指令寄存器、指令校验电路、指令校验码读出寄存器、校验码生成逻、校验码缓存器、检验码存储体,其中
AXI总线接口单元,从外部PowerPC处理器的内存中读取指令后送至指令Cache块缓存器、校验码生成逻辑;
指令Cache块缓存器,当命中检查为否时,接收指令后进行缓存,然后将指令送至指令寄存器,同时将当前指令对应的新标签添加至标签存储CAM,进而更新标签存储CAM中的标签,将当前指令送至指令Cache的数据存储体中新标签对应的地址存储;所述的指令均与唯一的标签对应,标签包括指令在指令Cache的数据存储体中的存储地址、校验码;
指令Cache控制器,控制命中检查器进行命中检查,如果命中检查为是,则读取指令Cache的数据存储体中的指令送至指令寄存器,如果命中检查为否,则控制AXI总线接口单元从PowerPC处理器的内存中读取指令后送至指令Cache块缓存器、校验码生成逻辑;
指令Cache的数据存储体,存储指令;
命中检查器,读取外部PowerPC处理器中地址生成器生成的地址,然后取外部PowerPC处理器中标签存储CAM中的标签进行比对,如果比对一致,则输出命中检查为是,否则输出命中检查为否;
指令寄存器,接收指令后进行存储;
指令校验电路,读取指令寄存器存储的指令,同时读取指令校验码读出寄存器存储的校验码,然后进行ECC+Parity校验,将校验通过的指令送至PowerPC处理器使用;
指令校验码读出寄存器,接收校验码并存储;
校验码生成逻辑,接收指令后使用ECC+Parity生成校验码,并送至校验码缓存器存储;
校验码缓存器,接收校验码生成逻辑发送的校验码,将校验码依次送至检验码存储体存储;
检验码存储体,当命中检查为是时,将当前命中检查标签对应的校验码送至指令校验码读出寄存器,当命中检查为否时,读取校验码缓存器中的校验码并送至指令校验码读出寄存器。
本发明与现有技术相比的优点在于:
(1)本发明指令Cache装置,克服了现有的Cache不适用于航天、军事、工业控制等工作环境较恶劣领域,容易导致存储数据出现错误的问题,通过指令Cache的检错纠错功能增强了PowerPC处理器在恶劣工作环境的适应性,提高PowerPC处理器的可靠性;
(2)本发明指令Cache装置通过扩展ECC+Parity校验码数据通路,提高了指令Cache的可靠性,另外,本发明指令Cache装置中ECC+Parity校验码的生成在写指令Cache之前生成,校验码的检查在指令寄存器之后进行,不会影响指令Cache的访问时间,在提高PowerPC处理器可靠性的同时,不会降低PowerPC处理器的性能。
附图说明
图1为本发明一种适用于PowerPC处理器的高可靠指令Cache结构图;
图2为本发明Cache中指令Cache数据存储体的访问时序图;
图3为本发明一种适用于PowerPC处理器的高可靠指令Cache信息流程图。
具体实施方式
本发明针对现有技术的不足,提出一种适用于PowerPC处理器的高可靠指令Cache,克服了现有的Cache不适用于航天、军事、工业控制等工作环境较恶劣领域,容易导致存储数据出现错误的问题,通过指令Cache的检错纠错功能增强了PowerPC处理器在恶劣工作环境的适应性,提高PowerPC处理器的可靠性,另外本发明指令Cache装置通过扩展ECC+Parity校验码数据通路,提高了指令Cache的可靠性,而且ECC+Parity校验码的生成在写指令Cache之前生成,校验码的检查在指令寄存器之后进行,不会影响指令Cache的访问时间,在提高PowerPC处理器可靠性的同时,不会降低PowerPC处理器的性能,下面结合附图对本发明进行详细说明。
如图1为本发明一种适用于PowerPC处理器的高可靠指令Cache结构图,包括指令单元的取指地址生成器1.1、指令寄存器1.3、指令校验码读出寄存器1.4、指令校验逻辑1.2、指令Cache控制器2.1、指令Cache存储体中的标签存储体CAM3.1、命中检查器3.2、指令Cache的数据存储RAM3.3、指令Cache块缓存器3.4、校验码生成逻辑3.5、校验码缓存器3.6、校验码存储器RAM3.7、AXI总线接口单元4,其中
1.1是指令单元的取指地址生成器,计算下一条指令的取指地址,并寄存输出给指令Cache控制器和指令Cache存储体。
2.1是指令Cache控制器,根据取指地址、Cache存储器反馈的命中情况,控制是否需要将取指地址输出给总线接口单元,请求总线接口单元从内存读取Cache块,以及控制Cache存储体的替换策略。
3.1是指令Cache存储体中的标签存储体CAM,CAM按多路组相联的组织结构保存Cache块的标签信息,包括Cache块的有效性、Cache块地址等,标签存储体CAM根据取指地址进行索引,产生多路命中信号。
3.2是命中检查逻辑,检查标签存储体CAM输出的命中信号,是否有命中,以及是否有多路命中等情况。
3.3是指令Cache的数据存储RAM,也是本发明进行可靠性设计的保护对象,指令Cache的数据存储RAM以Cache块为单元进行组织管理,数据RAM的组织结构与CAM的组织结构完全一致,每个Cache块为32字节。在根据取指地址索引查找CAM时,也会索引查找数据存储RAM,然后根据CAM的命中情况选择一路Cache块数据输出。
当Cache不命中时
4.1是总线接口单元,负责从内存读数据,并寄存输出给指令Cache存储体的写指令Cache块缓存器;
3.4是指令Cache存储器的写指令Cache块缓存器,暂存将写入指令Cache存储体的指令数据,由于Cache块通常为32字节,而总线接口单元的总线宽度为64位或128位,因此总线接口单元需要4次或2次传输将能将完整的Cache块写入指令Cache块缓存器;
3.5是校验码生成逻辑,根据总线接口单元输出给指令Cache块缓存器的指令数据,计算ECC+PARITY校验码,校验码生成逻辑位于总线接口单元的输出寄存器和校验码缓存器寄存器之间,不需要数据通路花额外的时间来计算校验码;
3.6是校验码缓存器,与3.4指令Cache块缓存器对应,即指令Cache块缓存器中的每一条32位指令,对应有8位ECC+PARITY校验码;
3.7是校验码存储器RAM,其组织结构与数据RAM一致,根据指令Cach控制器的替换控制信号,指令Cache块缓存器和校验码缓存器的内容同时写入指令Cache的数据RAM和校验码RAM中。
为了减小Cache不命中情况下的取指访问延时,写指令Cache块缓存器中的指令可以旁路数据RAM,指令Cache控制器根据命中情况选择数据RAM还是指令Cache块缓存器旁路的数据输出给指令寄存器。
1.2指令校验逻辑,根据从指令Cache存储体读出的指令和校验码执行校验计算,如果指令Cache存储体因单粒子事件等原因,导致读出的指令有1位错误,指令校验逻辑可以自动纠正这位错误,如果有2位或2位以上的错误,则指令校验逻辑直接产生校验错误,并作为触发Maching Check异常条件之一,产生Maching Check异常,由异常处理程序进行错误处理。
1.3是指令单元的指令寄存器,暂存从指令Cache存储体读出的指令数据。
1.4是指令校验码读出寄存器,与指令寄存器按相同的时序暂存指令Cache存储体输出的指令和指令校验码,如图2所示为指令Cache数据存储体的访问时序;
1.5是指令寄存器,同时也是流水线译码级寄存器,暂存从指令Cache读出的指令,指令寄存器暂存的指令数一般与指令发射宽度一致,即对于双发射处理器,指令寄存器暂存2条指令。
1.6~1.10是扩展的ECC+Parity校验码数据通路,其中,
1.6是校验码生成逻辑,对于32位指令,校验码生成逻辑生成7位ECC校验码和1位奇偶校验码,共8位校验码。
1.7是校验码寄存器,暂存将写入校验码存储体的数据。校验码寄存器与指令Cache块缓存器是一一对应的,即Cache块缓存器的[0:31]位对应校验码寄存器的[0:7]位,依次类推。校验码寄存器的载入控制信号也与Cache块缓存器的载入控制信号一一对应。
1.8是检验码存储体,校验码存储器的逻辑组织结构与数据存储器的逻辑组织结构相同。
1.9是指令校验码读出寄存器,暂存从校验码存储体读出的校验码信息。指令校验码读出寄存器的载入信号与指令寄存器的载入信号一致,故指令校验码读出寄存器中的校验码与指令寄存器中的指令存在对应关系。
1.10是指令校验电路,检查从指令Cache的数据存储器是否出现了数据错误。如果有1位错误,则纠正该位错误,如果有2位或多位错误,则产生中断,由中断处理程序进行错误处理。
本发明Cache中32位指令的ECC校验码按海明码的编码规则进行编码,在1.10指令校验电路按下面的规则进行纠错和检错,如果奇偶校验位没有错误,且ECC校验码也没有错误,则从指令Cache的数据存储器读出的数据没有错误,校验电路输出指令,同时输出的校验结果驱动为0;如果奇偶校验位错误,但ECC校验码无误,则认为数据没有出现错误,校验电路输出指令,同时输出的校验结果驱动为0;如果奇偶校验位错误,且ECC校验码也检出1位错误,则纠正对应的错误数据位,输出纠正后的指令,同时输出的校验结果驱动为0;如果ECC校验码检出2位或多位错误,则输出NOP指令,同时输出的校验结果驱动为1;指令校验电路输出的校验结果反馈给处理器的异常处理逻辑,异常处理逻辑将产生机器检查异常。指令检验码的生成发生在写指令Cache数据存储器的前一级寄存器,指令校验发生在读指令Cache数据存储器的后一级寄存器,检验码的生成和检查不会对Cache存储器的访问延时造成影响。也就是说,指令检验码对流水线取指级不会产生影响。在现在的处理器中,取指级通常是流水线中的关键路径。指令检验会影响流水线译码级处理的延时路径,但通过指令预译码处理等,可以化解译码级处理增加的路径延时。
在对指令Cache扩展校验码进行可靠性设计时,校验码的生成和校验都是在访问Cache的流水级之外执行,因此不会对指令Cache的访问时序产生负面影响。通常情况下,Cache访问时序路径是处理器设计的关键时序路径,因此本发明实现了在不影响处理器时序特性的情况下,提高了指令Cache的可靠性。
如图3所示为一种适用于PowerPC处理器的高可靠指令Cache信息流程图,PowerPC处理器的接口总线是128位,Cache块大小为32字节,指令单元每个周期从指令Cache取2条指令,AXI总线接口单元从内存读取128位数据,并寄存输出给指令Cache。在写入256位的指令Cache块缓存寄存器的同时,128位数据以32位为一组,分别产生8位校验码,其中校验码的最高位是奇偶校验码,余下的7位是海明码编码的ECC校验码。每个Cache块为32字节,即8条指令,故每个Cache块对应的校验码为64位。从指令Cache读指令时,每次从指令Cache读出一个Cache块的数据,然后从Cache块中选择2条指令输出,并保存在指令寄存器中。指令寄存器中的指令在进行译码前,先执行检错纠错计算,如果出现错误位多余一位,则产生校验错误,并报告处理器内部的异常处理电路,产生机器检查异常,有异常处理程序决定刷新指令Cache或停机。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (1)
1.一种适用于PowerPC处理器的高可靠指令Cache,其特征在于包括AXI总线接口单元、指令Cache块缓存器、指令Cache控制器、指令Cache的数据存储体、命中检查器、指令寄存器、指令校验电路、指令校验码读出寄存器、校验码生成逻、校验码缓存器、检验码存储体,其中
AXI总线接口单元,从外部PowerPC处理器的内存中读取指令后送至指令Cache块缓存器、校验码生成逻辑;
指令Cache块缓存器,当命中检查为否时,接收指令后进行缓存,然后将指令送至指令寄存器,同时将当前指令对应的新标签添加至标签存储CAM,进而更新标签存储CAM中的标签,将当前指令送至指令Cache的数据存储体中新标签对应的地址存储;所述的指令均与唯一的标签对应,标签包括指令在指令Cache的数据存储体中的存储地址、校验码;
指令Cache控制器,控制命中检查器进行命中检查,如果命中检查为是,则读取指令Cache的数据存储体中的指令送至指令寄存器,如果命中检查为否,则控制AXI总线接口单元从PowerPC处理器的内存中读取指令后送至指令Cache块缓存器、校验码生成逻辑;
指令Cache的数据存储体,存储指令;
命中检查器,读取外部PowerPC处理器中地址生成器生成的地址,然后取外部PowerPC处理器中标签存储CAM中的标签进行比对,如果比对一致,则输出命中检查为是,否则输出命中检查为否;
指令寄存器,接收指令后进行存储;
指令校验电路,读取指令寄存器存储的指令,同时读取指令校验码读出寄存器存储的校验码,然后进行ECC+Parity校验,将校验通过的指令送至PowerPC处理器使用;
指令校验码读出寄存器,接收校验码并存储;
校验码生成逻辑,接收指令后使用ECC+Parity生成校验码,并送至校验码缓存器存储;
校验码缓存器,接收校验码生成逻辑发送的校验码,将校验码依次送至检验码存储体存储;
检验码存储体,当命中检查为是时,将当前命中检查标签对应的校验码送至指令校验码读出寄存器,当命中检查为否时,读取校验码缓存器中的校验码并送至指令校验码读出寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611045933.8A CN106844281A (zh) | 2016-11-22 | 2016-11-22 | 一种适用于PowerPC处理器的高可靠指令Cache |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611045933.8A CN106844281A (zh) | 2016-11-22 | 2016-11-22 | 一种适用于PowerPC处理器的高可靠指令Cache |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106844281A true CN106844281A (zh) | 2017-06-13 |
Family
ID=59146131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611045933.8A Pending CN106844281A (zh) | 2016-11-22 | 2016-11-22 | 一种适用于PowerPC处理器的高可靠指令Cache |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106844281A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256463A (zh) * | 2020-09-30 | 2021-01-22 | 北京控制工程研究所 | 保证Cache与片外存储器内容一致性的单粒子软错误处理方法 |
CN113917879A (zh) * | 2021-10-29 | 2022-01-11 | 西安微电子技术研究所 | 一种基于PowerPC的小型化、高可靠测发控系统及工作方法 |
CN116991479A (zh) * | 2023-09-28 | 2023-11-03 | 中国人民解放军国防科技大学 | 超长指令字缓存标签体的前瞻执行-旁路纠错方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2437172A1 (en) * | 2010-10-01 | 2012-04-04 | Hamilton Sundstrand Corporation | RAM single event upset (SEU) method to correct errors |
CN105138412A (zh) * | 2015-08-19 | 2015-12-09 | 首都师范大学 | 嵌入式微处理器高速缓存的混合纠错装置与方法 |
CN105740168A (zh) * | 2016-01-23 | 2016-07-06 | 中国人民解放军国防科学技术大学 | 一种容错目录高速缓存控制器 |
CN105760250A (zh) * | 2016-02-04 | 2016-07-13 | 北京时代民芯科技有限公司 | 一种具有码流纠检错功能的单粒子加固fpga配置电路 |
-
2016
- 2016-11-22 CN CN201611045933.8A patent/CN106844281A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2437172A1 (en) * | 2010-10-01 | 2012-04-04 | Hamilton Sundstrand Corporation | RAM single event upset (SEU) method to correct errors |
CN105138412A (zh) * | 2015-08-19 | 2015-12-09 | 首都师范大学 | 嵌入式微处理器高速缓存的混合纠错装置与方法 |
CN105740168A (zh) * | 2016-01-23 | 2016-07-06 | 中国人民解放军国防科学技术大学 | 一种容错目录高速缓存控制器 |
CN105760250A (zh) * | 2016-02-04 | 2016-07-13 | 北京时代民芯科技有限公司 | 一种具有码流纠检错功能的单粒子加固fpga配置电路 |
Non-Patent Citations (1)
Title |
---|
辛明瑞: "面向空间应用的容错RISC处理器体系结构研究", 《中国博士学位论文全文数据库信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256463A (zh) * | 2020-09-30 | 2021-01-22 | 北京控制工程研究所 | 保证Cache与片外存储器内容一致性的单粒子软错误处理方法 |
CN112256463B (zh) * | 2020-09-30 | 2023-07-14 | 北京控制工程研究所 | 保证Cache与片外存储器内容一致性的单粒子软错误处理方法 |
CN113917879A (zh) * | 2021-10-29 | 2022-01-11 | 西安微电子技术研究所 | 一种基于PowerPC的小型化、高可靠测发控系统及工作方法 |
CN113917879B (zh) * | 2021-10-29 | 2023-05-16 | 西安微电子技术研究所 | 一种基于PowerPC的小型化、高可靠测发控系统及工作方法 |
CN116991479A (zh) * | 2023-09-28 | 2023-11-03 | 中国人民解放军国防科技大学 | 超长指令字缓存标签体的前瞻执行-旁路纠错方法及装置 |
CN116991479B (zh) * | 2023-09-28 | 2023-12-12 | 中国人民解放军国防科技大学 | 超长指令字缓存标签体的前瞻执行-旁路纠错方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7447948B2 (en) | ECC coding for high speed implementation | |
CN101551764B (zh) | 基于同步冗余线程与编码技术的抗单粒子效应系统及方法 | |
US8051337B2 (en) | System and method for fast cache-hit detection | |
US11487616B2 (en) | Write control for read-modify-write operations in cache memory | |
Conti et al. | Structural aspects of the system/360 model 85, i: General organization | |
US20130283123A1 (en) | Combined group ecc protection and subgroup parity protection | |
US8499123B1 (en) | Multi-stage pipeline for cache access | |
CN107992376B (zh) | Dsp处理器数据存储器主动容错方法和装置 | |
CN105320579B (zh) | 面向sparc v8处理器的自修复双冗余流水线及容错方法 | |
CN103984630A (zh) | 一种基于at697处理器的单粒子翻转故障处理方法 | |
GB2451668A (en) | Error correction in a set associative cache | |
CN111149094B (zh) | 处理缓冲器中的错误 | |
CN106844281A (zh) | 一种适用于PowerPC处理器的高可靠指令Cache | |
CN105260256B (zh) | 一种双模冗余流水线的故障检测及回退方法 | |
US10303566B2 (en) | Apparatus and method for checking output data during redundant execution of instructions | |
CN105320575B (zh) | 一种双模冗余流水线的自校验及恢复装置与方法 | |
US5854943A (en) | Speed efficient cache output selector circuitry based on tag compare and data organization | |
US6701484B1 (en) | Register file with delayed parity check | |
CN1310132C (zh) | 用寄存器文件中的冗余字代替故障字的方法和计算机系统 | |
CN205193785U (zh) | 一种双模冗余流水线的自校验及恢复装置 | |
CN205193787U (zh) | 一种双模冗余流水线的故障检测及回退装置 | |
US20040078544A1 (en) | Memory address remapping method | |
CN105511984B (zh) | 一种基于主动链接备份数据的具有容错结构的处理器及容错方法 | |
CN103645964B (zh) | 嵌入式处理器的高速缓存容错机制 | |
US8656214B2 (en) | Dual ported replicated data cache |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170613 |
|
RJ01 | Rejection of invention patent application after publication |