CN102915769B - 一种处理器纠错检错edac电路实现优化方法 - Google Patents
一种处理器纠错检错edac电路实现优化方法 Download PDFInfo
- Publication number
- CN102915769B CN102915769B CN201210378141.8A CN201210378141A CN102915769B CN 102915769 B CN102915769 B CN 102915769B CN 201210378141 A CN201210378141 A CN 201210378141A CN 102915769 B CN102915769 B CN 102915769B
- Authority
- CN
- China
- Prior art keywords
- edac
- data
- circleplus
- group
- circuit
- 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
Landscapes
- Detection And Correction Of Errors (AREA)
Abstract
本发明涉及一种处理器纠错检错EDAC电路实现优化方法,采用异或树实现纠错检错EDAC电路,使用二输入异或门实现异或树,通过分析纠错检错EDAC算法,选择可进行算法调度的单元,并进行算法调度,实现纠错检错EDAC编码模块,本发明针对异或树实现的EDAC电路的方式,提出的硬件实现优化方法,从EDAC算法入手分析异或门资源,进行算法调度,能够有效地减少纠错检错EDAC电路的异或门资源,从而有效地减少了EDAC电路的面积和功耗,节省电路实现资源,校验位越多的EDAC电路,优化的效果越明显。
Description
技术领域
本发明涉及一种处理器纠错检错EDAC电路实现优化方法,特别是使用二输入异或门实现的纠错检错EDAC电路优化方法。
背景技术
EDAC电路的工作主要包括编码和译码操作。在向存储器的写过程中完成数据的编码操作,从存储器读出数据时,完成数据的译码操作。目前,用于辐射加固的存储器、处理器采用的纠错检错EDAC电路,多通过线性分组码实现EDAC电路。采用线性分组码实现的纠错检错EDAC电路,在编码过程中,生成待编码信息数据的校验位,校验位与数据一同存储在存储器中。译码过程中,将重新对信息数据产生校验位,并与编码时产生的数据校验位进行异或运算得到校正子,利用校正子定位信息数据的错误,并对可纠正的错误进行纠正。由于EDAC电路中的生成校验位模块,在EDAC的编码和译码过程中两次被使用到,因此该模块对纠错检错EDAC电路的延时和面积有着重要的影响。目前,大多数纠错检错EDAC电路保护的处理器或是专用电路,多采用已有的纠错检错EDAC电路IP,而这种IP中使用通用的纠错检错码实现EDAC电路,并不考虑使用的编码算法是不是最优化的,硬件实现的资源是不是最少的,延时是否最短,功耗是否最小,但当纠错检错EDAC电路成为处理器或专用电路的关键路径时,就会影响到整个系统的性能。
发明内容
本发明的目的在于克服现有技术的上述不足,提供一种处理器纠错检错EDAC电路实现优化方法,该方法通过算法调度实现电路优化,节省电路实现资源,优化EDAC电路的时序和面积。
本发明的上述目的主要是通过如下技术方案予以实现的:
一种处理器纠错检错EDAC电路实现优化方法,包括如下步骤:
(1)根据纠错检错EDAC算法,用硬件语言描述实现EDAC电路的编码方程组;
(2)分析所述编码方程组中生成校验位的各数据元素Mi,根据数据元素Mi在方程组中出现次数的多少,对各数据元素进行由高到低排序,形成排序表1;
(3)根据步骤(2)得到的结果,对纠错检错EDAC电路实现进行算法调度,具体方法如下:
(a)采用两两数据异或的方法,在排序表1中按照由高到低的次序,以每两个数据为一组,形成一个新的数据单元Mij,新的数据单元作为二输入门的输入数据,所有新的数据单元形成数据单元集合1;
(b)分析步骤(1)中的编码方程组,若存在任意两个方程中同时使用到数据单元集合1中两个相同的数据单元时,则将这两个数据单元作为二输入异或门的输入,形成一个新的数据单元Mijkl,添加到单元集合1中,形成单元集合2;
(c)使用单元集合2中的数据单元实现步骤(1)中的编码方程组,若存在任意两个方程中同时使用到数据单元集合2中两个相同的数据单元时,则将这两个数据单元作为二输入异或门的输入,形成一个新的数据单元M’ijkl,添加到单元集合2中,形成单元集合3......,依次类推,直至使用形成的单元集合n中的数据单元实现步骤(1)中的编码方程组时,不存在任意两个方程中同时使用到两个相同的数据单元时,进入步骤(4);
(4)采用步骤(3)得到单元集合n中的数据单元实现EDAC电路的编码方程组,进而由编码方程组实现纠错检错EDAC电路;
其中:n为正整数,n≥1;i、j、k、l取值为正整数或0。
在上述处理器纠错检错EDAC电路实现优化方法中,纠错检错EDAC电路实现方式是异或树,所述异或树中的异或门为二输入异或门。
本发明与现有技术相比的优点在于:
(1)本发明方法针对异或树实现的EDAC电路的方式,提出的硬件实现优化方法,从EDAC算法入手分析异或门资源,进行算法调度,能够有效地减少纠错检错EDAC电路的异或门资源,从而有效地减少了EDAC电路的面积和功耗,校验位越多的EDAC电路,优化的效果越明显;
(2)本发明方法从EDAC算法入手分析异或门资源,对EDAC电路的编码方程组进行分析,实现EDAC电路的算法调度,从而对电路进行了优化,不仅节省电路实现资源,而且该优化方法容易实施,简单易行;
(3)本发明方法通过合理调度能够有效地减小EDAC电路的延时,对于EDAC操作为关键路径的处理器,可以有效地改善处理器的时序。
附图说明
图1为本发明处理器纠错检错EDAC电路硬件实现优化方法的原理框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细的描述:
如图1所示为本发明处理器纠错检错EDAC电路硬件实现优化方法的原理框图,本发明处理器纠错检错EDAC电路实现优化方法,具体包括如下步骤:
(1)根据纠错检错EDAC算法,用硬件语言描述实现EDAC电路的编码方程组;
(2)分析所述编码方程组中生成校验位的各数据元素Mi,根据数据元素在方程组中出现次数的多少,对各数据元素进行由高到低排序,形成排序表1;
(3)根据步骤(2)得到的结果,对纠错检错EDAC电路实现进行算法调度,具体方法如下:
(a)采用两两数据异或的方法,在排序表1中按照由高到低的次序,以每两个数据为一组,形成一个新的数据单元Mij,新的数据单元作为二输入门的输入数据,所有新的数据单元形成数据单元集合1。
(b)分析步骤(1)中的编码方程组,若存在任意两个方程中同时使用到数据单元集合1中两个相同的数据单元时,则将这两个数据单元作为二输入异或门的输入,形成一个新的数据单元Mijkl,添加到单元集合1中,形成单元集合2。
(c)使用单元集合2中的数据单元实现步骤(1)中的编码方程组,若存在任意两个方程中同时使用到数据单元集合2中两个相同的数据单元时,则将这两个数据单元作为二输入异或门的输入,形成一个新的数据单元M’ijkl,添加到单元集合2中,形成单元集合3......,依次类推,直至使用形成的单元集合n中的数据单元实现步骤(1)中的编码方程组时,不存在任意两个方程中同时使用到两个相同的数据单元时,进入步骤(4);
(4)采用步骤(3)得到单元集合n中的数据单元实现EDAC电路的编码方程组,进而由编码方程组实现纠错检错EDAC电路。
本发明纠错检错EDAC电路实现方式是异或树,并且该异或树中的异或门为二输入异或门。
实施例1
(1)若采用的纠错检错EDAC编码算法,用硬件语言描述的方程组为:
(2)分析上述编码方程组中生成校验位的各数据元素,根据数据元素在方程组中出现次数的多少,对数据元素进行由高到低排序,形成排序表1,如下表1所示:
表1数据元素使用次数排序表1
数据元素(单元) | 使用次数 | 数据元素(单元) | 使用次数 |
m[0] | 3 | m[16] | 3 |
m[1] | 3 | m[17] | 3 |
m[2 | 3 | m[18] | 3 |
m[3] | 3 | m[19] | 3 |
m[4] | 3 | m[20] | 3 |
m[5] | 3 | m[21] | 3 |
m[6] | 3 | m[22] | 3 |
m[7] | 3 | m[23] | 3 |
m[8] | 3 | m[24] | 3 |
m[9] | 3 | m[25] | 3 |
m[10] | 3 | m[26] | 3 |
m[11] | 3 | m[27 | 3 |
m[12] | 3 | m[28] | 3 |
m[13] | 3 | m[29] | 3 |
m[14] | 3 | m[30] | 3 |
m[15] | 3 | m[31] | 3 |
本实施例中包含m[0]~m[31]共32个数据元素,每个数据元素在编码方程组中均出现了三次。
(3)根据步骤(2)得到的结果,对纠错检错EDAC电路实现进行算法调度,具体步骤如下:
(a)、采用两两数据异或的方法,在排序表1中按照由高到低的次序,以每两个数据为一组,形成一个新的数据单元Mij,即由高到低选择相邻两个数据作为二输入门的输入数据,每个数据只使用一次,所有新的数据单元形成数据单元集合1,形成的单元集合1如表2所示:
表2二输入异或门单元集合1
(b)、使用的二输入异或门单元集合1中的单元,实现步骤(1)中描述的纠错检错编码算法方程组时,有重复使用的单元。即分析步骤(1)中的编码方程组,若存在任意两个方程中同时使用到数据单元集合1中两个相同的数据单元时,则将这两个数据单元作为二输入异或门的输入,形成一个新的数据单元Mijkl,添加到单元集合1中,形成单元集合2,单元集合2如下表3所示:
表3二输入异或门单元集合2
本实施例中,方程c[1]与c[6]中同时使用了单元集合1(如表2)中的 m89与m1011形成一个新的数据单元h0,并将h0添加到单元集合1中;方程c[2]与c[5]中同时使用了单元集合1中的 m1617与m1819形成一个新的数据单元h1,并将h1添加到单元结合1中;方程c[2]与c[4]中同时使用了单元集合1中的 m2021与m2223形成一个新的数据单元h2,并将h2添加到单元结合1中,形成单元集合2,如表3所示,表3中 为形成的新的数据单元。
(c)、使用单元集合2中的单元实现步骤(1)中描述的纠错检错编码方程组时,已经不存在任意两个方程中同时使用到两个相同的数据单元,进入步骤(4);
(4)采用步骤(3)得到单元集合2中的数据单元实现EDAC电路的编码方程组,进而由编码方程组实现纠错检错EDAC电路。
如图1所示,本发明在使用单元集合中的二输入异或单元实现编码算法方程组时,判断是否存在任意两个方程中同时使用两个数据单元的情况,若否,则使用单元集合中的单元实现纠错检错EDAC编码电路模块,若是,则将这两个数据单元作为二输入异或门的输入,形成新的单元,添加到单元集合中,再次进行判断,直至不存在任意两个方程中同时使用两个数据单元的情况。
本发明方法针对异或树实现的EDAC电路的方式,提出的硬件实现优化方法,从EDAC算法入手分析异或门资源,进行算法调度,能够有效地减少纠错检错EDAC电路的异或门资源,从而有效地减少了EDAC电路的面积和功耗,校验位越多的EDAC电路,优化的效果越明显。
以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
Claims (2)
1.一种处理器纠错检错EDAC电路实现优化方法,其特征在于:包括如下步骤:
(1)根据纠错检错EDAC算法,用硬件语言描述实现EDAC电路的编码方程组;
(2)分析所述编码方程组中生成校验位的各数据元素Mi,根据数据元素Mi在方程组中出现次数的多少,对各数据元素进行由高到低排序,形成排序表1;
(3)根据步骤(2)得到的结果,对纠错检错EDAC电路进行算法调度,具体方法如下:
(a)采用两两数据异或的方法,在排序表1中按照由高到低的次序,以每两个数据为一组,形成一个新的数据单元Mij,新的数据单元作为二输入门的输入数据,所有新的数据单元形成数据单元集合1;
(b)分析步骤(1)中的编码方程组,若存在任意两个方程中同时使用到数据单元集合1中两个相同的数据单元时,则将这两个数据单元作为二输入异或门的输入,形成一个新的数据单元Mijkl,添加到单元集合1中,形成单元集合2;
(c)使用单元集合2中的数据单元实现步骤(1)中的编码方程组,若存在任意两个方程中同时使用到数据单元集合2中两个相同的数据单元时,则将这两个数据单元作为二输入异或门的输入,形成一个新的数据单元M’ijkl,添加到单元集合2中,形成单元集合3......,依次类推,直至使用形成的单元集合n中的数据单元实现步骤(1)中的编码方程组时,不存在任意两个方程中同时使用到两个相同的数据单元时,进入步骤(4);
(4)采用步骤(3)得到单元集合n中的数据单元实现EDAC电路的编码方程组,进而由编码方程组实现纠错检错EDAC电路;
其中n为正整数,n≥1;i、j、k、l取值为正整数或0。
2.根据权利要求1所述的一种处理器纠错检错EDAC电路实现优化方法,其特征在于:所述的纠错检错EDAC电路实现方式是异或树,所述异或树中的异或门为二输入异或门。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210378141.8A CN102915769B (zh) | 2012-09-29 | 2012-09-29 | 一种处理器纠错检错edac电路实现优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210378141.8A CN102915769B (zh) | 2012-09-29 | 2012-09-29 | 一种处理器纠错检错edac电路实现优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102915769A CN102915769A (zh) | 2013-02-06 |
CN102915769B true CN102915769B (zh) | 2015-05-06 |
Family
ID=47614102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210378141.8A Active CN102915769B (zh) | 2012-09-29 | 2012-09-29 | 一种处理器纠错检错edac电路实现优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102915769B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103529382B (zh) * | 2013-09-24 | 2017-02-15 | 电子科技大学 | 检测红外焦平面阵列读出电路的行控制电路的电路和方法 |
CN108242973B (zh) * | 2016-12-26 | 2020-10-27 | 北京邮电大学 | 一种数据纠错方法及装置 |
CN111047033B (zh) * | 2019-11-11 | 2023-04-18 | 东南大学 | 一种面向宽电压的在线时序检错纠错电路 |
CN112000511A (zh) * | 2020-07-28 | 2020-11-27 | 京微齐力(北京)科技有限公司 | 一种基于汉明码的ecc电路优化方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751740A (en) * | 1995-12-14 | 1998-05-12 | Gorca Memory Systems | Error detection and correction system for use with address translation memory controller |
US6847554B2 (en) * | 2002-08-02 | 2005-01-25 | Sony Corporation | Nonvolatile semiconductor memory device with error detection and correction circuit |
CN101980339A (zh) * | 2010-11-04 | 2011-02-23 | 浙江大学 | 一种用于dram缓存的纠错编码方法 |
-
2012
- 2012-09-29 CN CN201210378141.8A patent/CN102915769B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751740A (en) * | 1995-12-14 | 1998-05-12 | Gorca Memory Systems | Error detection and correction system for use with address translation memory controller |
US6847554B2 (en) * | 2002-08-02 | 2005-01-25 | Sony Corporation | Nonvolatile semiconductor memory device with error detection and correction circuit |
CN101980339A (zh) * | 2010-11-04 | 2011-02-23 | 浙江大学 | 一种用于dram缓存的纠错编码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102915769A (zh) | 2013-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ozfatura et al. | Distributed gradient descent with coded partial gradient computations | |
CN102915769B (zh) | 一种处理器纠错检错edac电路实现优化方法 | |
CN101656541B (zh) | Rs码的译码方法和装置 | |
CN102543209B (zh) | 多通道闪存控制器的纠错装置、方法及多通道闪存控制器 | |
WO2010136930A3 (en) | Iterative decoding of ldpc codes with iteration scheduling | |
CN103208995B (zh) | 一种低密度奇偶校验码译码的提前终止方法 | |
US8429482B1 (en) | Multi-stage forward error correction decoding | |
CN102624403A (zh) | 用于对级联纠错码的有效解码的方法和系统 | |
US9645886B2 (en) | Digital error correction | |
CN107689801A (zh) | Ldpc码admm迭代译码的早停止方法 | |
CN105356891A (zh) | 一种高资源利用率的极性译码批处理方法 | |
WO2018146552A1 (en) | Crc aided decoding of polar codes | |
CN103346858A (zh) | 基于叠加度的系统lt码编译方法 | |
CN103838649A (zh) | 一种降低二进制编码存储系统中计算量的方法 | |
CN103986557A (zh) | 低路径延迟的LTE Turbo码并行分块译码方法 | |
CN102354535A (zh) | 逻辑单元复用系统 | |
CN106537787A (zh) | 译码方法和译码器 | |
CN102045073B (zh) | 一种bch码译码方法和装置 | |
CN103220007B (zh) | 一种自适应调整子码不可靠位数的tpc迭代译码算法 | |
WO2012092902A3 (zh) | 一种译码方法和译码装置 | |
Silva et al. | An efficient, low-cost ECC approach for critical-application memories | |
Zhang et al. | High‐Throughput Fast‐SSC Polar Decoder for Wireless Communications | |
Briffa | A GPU implementation of a MAP decoder for synchronization error correcting codes | |
CN103475378B (zh) | 一种适用于光通信的高吞吐率ldpc译码器 | |
CN103595424A (zh) | 分量译码方法、译码器及Turbo译码方法、装置 |
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 |