CN102122959A - 提高计算机主存可靠性的数据压缩装置及其方法 - Google Patents
提高计算机主存可靠性的数据压缩装置及其方法 Download PDFInfo
- Publication number
- CN102122959A CN102122959A CN2011100762529A CN201110076252A CN102122959A CN 102122959 A CN102122959 A CN 102122959A CN 2011100762529 A CN2011100762529 A CN 2011100762529A CN 201110076252 A CN201110076252 A CN 201110076252A CN 102122959 A CN102122959 A CN 102122959A
- Authority
- CN
- China
- Prior art keywords
- data
- packed data
- compression
- packed
- prefixes
- 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
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种提高计算机主存可靠性的数据压缩装置及其方法,通过压缩数据装置、压缩仲裁器、扩展旁路转换缓冲TLB、生成可变ECC码装置、内存数据错误校验装置以及解压仲裁器相互连接,且其解压缩方法运用压缩数据装置和解压缩数据装置对计算机主存系统数据进行解压缩,将获得的空间用于存储错误校验码冗余位,从而降低纠错校验技术的硬件耗费。增加的存储空间可支持纠错能力更强的错误校验码,并可根据存储空间的大小调整数据保护单元的粒度以存储更多的错误校验码。通过数据压缩,提高了主存系统数据的错误容忍力,从而显著提高计算机主存系统的可靠性。
Description
技术领域
本发明属于计算机系统中动态随机存储器主存性能和可靠性设计技术领域,具体涉及一种提高计算机主存可靠性的数据压缩装置及其方法。
背景技术
在DRAM器件工艺不断提升的同时,主存系统的可靠性受到越来越严重的威胁。其中软错误是威胁计算机主存系统可靠性的最主要因素之一。软错误是指由Alpha粒子或者宇宙射线诱发的不可预测的随机存储错误,容易引起计算机系统的崩溃和数据丢失。特别是对于应用于恶劣环境的计算机对容忍软错误的能力要求更高。对于计算机主存,传统避免软错误发生的保护策略主要采用冗余或者错误校验码技术。其中,错误校验码技术是保护计算机主存最有效的技术,被工业界所广泛采用。但是,由于错误校验码需要存储冗余位,这使得在主存芯片上必须增加额外的存储资源,其硬件耗费很高,从而成为提高可靠性预防软错误的瓶颈。
数据压缩技术是一种被广泛应用于数据通信与数据保存的技术,它通过减少数据中的冗余信息来减少数据通信和保存的开销,增加主存有效存储空间。数据压缩与解压带来的附加延时影响计算机运行性能,好的数据压缩方法成为数据压缩的关键。常见的方法有:基于文本串字典匹配的压缩方法、基于值局部性字典的压缩方法、基于符号位冗余消除的压缩方法。本发明采用的数据压缩算法,是基于符号位冗余消除的压缩算法开发出的频用模板压缩算法。该算法将所有的存储数据字分成8种模式,当压缩时,如果访问的字匹配某种模式,则为该字生成模式前缀编码,然后串接去掉冗余位后该字的值,形成该字的压缩编码。每个字根据模式不同可分别占用更少的空间,因此该算法可以实现较高的压缩率,而且压缩延时也较短,更适合作为本发明中的主存压缩算法。
但是,传统的数据压缩方法仅用于提高主存容量,压缩后大小不一的数据块给内存管理带来较大的困难,容易产生碎片,增加管理调度的延迟和耗费。而本发明利用主存数据压缩的空间增加错误校验码的冗余位存储,提高错误校验码的纠错能力,从而提高整个主存系统的可靠性。
发明内容
为了克服上述现有技术存在的不足,本发明的目的在于提供一种提高计算机主存可靠性的数据压缩装置及其方法,通过压缩数据装置、压缩仲裁器、扩展旁路转换缓冲TLB、生成可变ECC码装置、内存数据错误校验装置以及解压仲裁器相互连接,且其解压缩方法运用压缩数据装置和解压缩数据装置对计算机主存系统数据进行解压缩,将获得的空间用于存储错误校验码冗余位,从而降低纠错校验技术的硬件耗费。增加的存储空间可支持纠错能力更强的错误校验码,并可根据存储空间的大小调整数据保护单元的粒度以存储更多的错误校验码。通过数据压缩,提高了主存系统数据的错误容忍力,从而显著提高计算机主存系统的可靠性。
为了达到上述目的,本发明所采用的技术方案是:
一种提高计算机主存可靠性的数据压缩装置,包括压缩数据装置和解压缩数据装置。该压缩数据装置的数据输入口1同对应的带有处理器核组的控制器的连接高速缓存结构的总线接口部件BIU相通信连接,压缩数据装置的预压缩信号输出口2和压缩数据输出口4分别同该数据压缩装置的压缩仲裁器的预压缩信号输入口3和生成可变ECC码装置的压缩数据输入口5相通信连接,该压缩仲裁器的数据输出口6、状态信息输出口7、未压缩数据输入口8以及压缩数据输入口9分别和对应的计算机主存系统、设置在控制器内的属于数据压缩装置的扩展旁路转换缓冲TLB、总线接口部件BIU以及生成可变ECC码装置的压缩数据输出口10相通信连接。而所述的解压缩数据装置的校验后读取压缩数据输入口11和解压数据输出口12分别同该数据压缩装置的内存数据错误校验装置的校验后读取压缩数据输出口13和解压仲裁器的解压数据输入口14相通信连接,内存数据错误校验装置的读取压缩数据输入口15和解压仲裁器的读取未压缩数据输入口16同计算机主存系统相通信连接,解压仲裁器的读取数据输出口17和状态信息输入口18分别同总线接口部件BIU和扩展旁路转换缓冲TLB相通信连接。
所述的提高计算机主存可靠性的数据解压缩装置的方法,当所述的控制器需要向计算机主存系统写入数据时,数据先通过控制器的处理核组中的处理核将要写入的数据发送到高速缓存结构中,并将该要写入的数据按先后顺序移入缓存块数据组内存放且缓存块数据组中每个缓存块数据大小为512位,通过总线接口部件BIU逐一将每个缓存块数据传送到压缩数据装置进行预压缩。预压缩的过程为将该缓存块数据先编码为48位前缀和压缩数据,并根据该48位前缀获取压缩数据的大小,随即压缩数据装置对48位前缀、压缩数据的大小以及预设的11位ECC冗余位进行累加,最后将得到的累加和同每个缓存块数据大小位数即512位进行比较。如果累加和大于512,得到未压缩的状态信息,并通过预压缩信号输出口2经由预压缩信号输入口3发送到压缩仲裁器,压缩仲裁器通过状态信息输出口7将该未压缩的状态信息发送到扩展旁路转换缓冲TLB中,这时控制器的处理核组中所述的处理核将该缓存块数据通过总线接口部件BIU直接发送到压缩仲裁器中,然后由压缩仲裁器的数据输出口6发送到计算机主存系统。如果累加和小于512,得到压缩的状态信息,并通过预压缩信号输出口2经由预压缩信号输入口3发送到压缩仲裁器,压缩仲裁器通过状态信息输出口7将该压缩的状态信息发送到扩展旁路转换缓冲TLB中,这时将48位前缀和压缩数据合并为带有48位前缀的压缩数据并将其存放在数据压缩装置中,随后通过压缩数据输出口4将带有48位前缀的压缩数据传送到生成可变ECC码装置的压缩数据输入口5。根据压缩数据的大小,利用扩展HAMMING码的方法生成数据保护单元的粒度并根据生成数据保护单元的粒度从而生成相应的ECC码,将该ECC码作为带有48位前缀的压缩数据的后缀,最后将带有48位前缀和后缀的压缩数据通过压缩数据输出口10传送到压缩仲裁器的压缩数据输入口9,并通过压缩仲裁器的数据输出口6存入计算机主存系统。当所述的控制器需要从计算机主存系统读取数据时,先通过控制器的处理核组中的处理核获取扩展旁路转换缓冲TLB中对应需要读取的数据的状态信息组,并将该压缩的状态信息组的状态信息逐一按顺序发送到解压仲裁器进行仲裁。如果该状态信息为压缩,控制器驱动计算机主存系统通过主存寻址方式将对应主存地址的带有48位前缀和后缀的压缩数据发送到内存数据错误校验装置的读取压缩数据输入口15,随后经过内存数据校验装置来对该带有48位前缀和后缀的压缩数据实施校验。如果校验结果无错误位,则将该带有48位前缀和后缀的压缩数据通过校验后读取压缩数据输出口13发送到解压缩数据装置的校验后读取压缩数据输入口11,解压缩数据装置对校验后的压缩数据进行解压缩,进行解压缩后的数据经由解压数据输出口12发送到解压仲裁器的解压数据输入口14,解压仲裁器将解压缩后的数据通过读取数据输出口17发送到总线接口部件BIU,最后解压缩后的数据由总线接口部件BIU转存至高速缓存结构中;如果校验结果有错误位,则放弃该带有48位前缀和后缀的压缩数据。如果所述的状态信息为未压缩,控制器驱动计算机主存系统通过主存寻址方式将对应主存地址的未压缩数据直接发送至解压仲裁器的解压仲裁器的读取未压缩数据输入口16,解压仲裁器将解压缩后的数据通过读取数据输出口17发送到总线接口部件BIU,最后解压缩后的数据由总线接口部件BIU转存至高速缓存结构中。
所述的根据生成数据保护单元的粒度从而生成相应的ECC码的规则为64位的生成数据保护单元粒度生成8个8位的冗余位,128位的生成数据保护单元粒度生成4个9位的冗余位,256位的生成数据保护单元粒度生成2个10位的冗余位,512位的生成数据保护单元粒度生成一个11位的冗余位。
所述的压缩数据装置内部包括并行模式编码器、压缩数据累加器、并行前缀移位寄存器、8X64寄存器、压缩字偏移计算加法器阵列以及并行移位寄存器。
所述的并行模式编码器执行将所述的缓存块数据编码为48位前缀和压缩数据的操作并根据该48位前缀获取压缩数据的大小的操作;而压缩数据累加器执行所述的将48位前缀、压缩数据的大小以及预设的11位ECC冗余位进行累加的操作;将所述的48位前缀送入并行前缀移位寄存器和压缩字偏移计算加法器阵列,将压缩数据送入并行移位寄存器并执行将48位前缀和压缩数据合并为带有48位前缀的压缩数据的操作;8X64寄存器执行将带有48位前缀的压缩数据存放在压缩数据装置中的操作。
所述的生成可变ECC码装置包括数据保护单元粒度划分模块以及可变ECC生成模块。
所述的数据保护单元粒度划分模块执行生成数据保护单元的粒度,可变ECC生成模块执行生成相应的ECC码并将该ECC码作为带有48位前缀的压缩数据的后缀的操作。
所述的内存数据错误校验装置包括并行前缀译码模块、带有比较器的可变ECC粒度译码模块以及ECC检测校验模块。
所述的并行前缀译码模块执行导出压缩数据的大小并将该压缩数据的大小送入带有比较器的可变ECC粒度译码模块的操作;可变ECC粒度译码模块通过其比较器比较压缩数据的大小和预先设置的数据值组即可导出对应的保护单元粒度并送入ECC检测校验模块;ECC检测校验模块根据该保护单元粒度从压缩数据中取出ECC校验码,同时根据数据保护单元粒度划分ECC校验码和压缩数据,将压缩数据划分为两个以上的数据保护单元,相应的ECC校验码也划分为相同数量的单元,之后相应的ECC校验码对相对应的数据保护单元做错误检测与纠错,得到校验结果。
所述的解压缩数据装置包括带有查找表的并行前缀译码器,并行移位寄存器,压缩字偏移计算加法器阵列,16X32位寄存器以及并行模式译码器。
所述的并行前缀译码器将带有48位前缀和后缀的压缩数据的前缀经过其查找表得到每个压缩数据的偏移量,并将该偏移量输出到压缩字偏移计算加法器阵列,压缩字偏移计算加法器阵列依次对每个压缩数据的偏移量进行累加而得到累加和,并将对应的累加和输入并行移位寄存器中,从而对压缩数据进行移位,结果放在16X32位寄存器中,最后通过并行模式译码器和相应的前缀共同对压缩数据进行译码得到解压缩后的数据。
所述的扩展旁路转换缓冲TLB为在旁路转换缓冲TLB的每一个表项中加入64位压缩状态信息位,该64位压缩状态信息位是指在4KB大小的一页中共包含64个缓存块,每个缓存块的大小为64B,其中每一位压缩状态信息位依次对应一个缓存块。
通过压缩数据装置、压缩仲裁器、扩展旁路转换缓冲TLB、生成可变ECC码装置、内存数据错误校验装置以及解压仲裁器相互连接,且其解压缩方法运用压缩数据装置和解压缩数据装置对计算机主存系统数据进行解压缩,将获得的空间用于存储错误校验码,从而降低纠错校验技术的硬件耗费。增加的存储空间可支持纠错能力更强的错误校验码,并可根据存储空间的大小调整数据保护单元的粒度以存储更多的错误校验码,另外通过数据压缩提高错误校验能力,可显著提高计算机主存系统的可靠性。实现起来简单易用,加上不需用增加传统的查询压缩翻译表,仅通过在旁路转换缓冲TLB中的每一个表项中增加64位压缩状态信息位即可实现虚拟地址到物理地址的转换,并且计算机主存系统不用增加额外的ECC冗余位,这使得在普通的内存芯片中就可实现ECC内存的效果,由于本发明的可变ECC技术可使内存的可靠性更高。
附图说明
图1是本发明的提高计算机主存可靠性的数据压缩装置的结构示意图。
图2是本发明的提高计算机主存可靠性的数据压缩装置的方法的工作原理结构示意图。
图3是本发明的压缩数据装置的内部结构示意图。
图4是本发明的生成可变ECC码装置的内部结构示意图。
图5是本发明的内存数据错误校验装置的内部结构示意图。
图6是本发明的解压缩数据装置的内部结构示意图。
具体实施方式
下面结合附图对本发明作更详细的说明。
如图1所示,提高计算机主存可靠性的数据压缩装置,包括压缩数据装置和解压缩数据装置。该压缩数据装置的数据输入口1同对应的带有处理器核组的控制器的连接高速缓存结构的总线接口部件BIU相通信连接,压缩数据装置的预压缩信号输出口2和压缩数据输出口4分别同该数据压缩装置的压缩仲裁器的预压缩信号输入口3和生成可变ECC码装置的压缩数据输入口5相通信连接,该压缩仲裁器的数据输出口6、状态信息输出口7、未压缩数据输入口8以及压缩数据输入口9分别和对应的计算机主存系统、设置在控制器内的属于数据压缩装置的扩展旁路转换缓冲TLB、总线接口部件BIU以及生成可变ECC码装置的压缩数据输出口10相通信连接。而所述的解压缩数据装置的校验后读取压缩数据输入口11和解压数据输出口12分别同该数据压缩装置的内存数据错误校验装置的校验后读取压缩数据输出口13和解压仲裁器的解压数据输入口14相通信连接,内存数据错误校验装置的读取压缩数据输入口15和解压仲裁器的读取未压缩数据输入口16同计算机主存系统相通信连接,解压仲裁器的读取数据输出口17和状态信息输入口18分别同总线接口部件BIU和扩展旁路转换缓冲TLB相通信连接。
如图2所示,所述的提高计算机主存可靠性的数据解压缩装置的方法,当所述的控制器需要向计算机主存系统写入数据时,数据先通过控制器的处理核组中的处理核将要写入的数据发送到高速缓存结构中,并将该要写入的数据按先后顺序移入缓存块数据组内存放且缓存块数据组中每个缓存块数据大小为512位,通过总线接口部件BIU逐一将每个缓存块数据传送到压缩数据装置进行预压缩。预压缩的过程为将该缓存块数据先编码为48位前缀和压缩数据,并根据该48位前缀获取压缩数据的大小,随即压缩数据装置对48位前缀、压缩数据的大小以及预设的11位ECC冗余位进行累加,最后将得到的累加和同每个缓存块数据大小位数即512位进行比较。如果累加和大于512,得到未压缩的状态信息,并通过预压缩信号输出口2经由预压缩信号输入口3发送到压缩仲裁器,压缩仲裁器通过状态信息输出口7将该未压缩的状态信息发送到扩展旁路转换缓冲TLB中,这时控制器的处理核组中所述的处理核将该缓存块数据通过总线接口部件BIU直接发送到压缩仲裁器中,然后由压缩仲裁器的数据输出口6发送到计算机主存系统。如果累加和小于512,得到压缩的状态信息,并通过预压缩信号输出口2经由预压缩信号输入口3发送到压缩仲裁器,压缩仲裁器通过状态信息输出口7将该压缩的状态信息发送到扩展旁路转换缓冲TLB中,这时将48位前缀和压缩数据合并为带有48位前缀的压缩数据并将其存放在数据压缩装置中,随后通过压缩数据输出口4将带有48位前缀的压缩数据传送到生成可变ECC码装置的压缩数据输入口5。根据压缩数据的大小,利用扩展HAMMING码的方法生成数据保护单元的粒度并根据生成数据保护单元的粒度从而生成相应的ECC码,将该ECC码作为带有48位前缀的压缩数据的后缀,最后将带有48位前缀和后缀的压缩数据通过压缩数据输出口10传送到压缩仲裁器的压缩数据输入口9,并通过压缩仲裁器的数据输出口6存入计算机主存系统。当所述的控制器需要向计算机主存系统读取数据时,先通过控制器的处理核组中的处理核获取扩展旁路转换缓冲TLB中对应需要读取的数据的状态信息组,并将该压缩的状态信息组的状态信息逐一按顺序发送到解压仲裁器进行仲裁。如果该状态信息为压缩,控制器驱动计算机主存系统通过主存寻址方式将对应主存地址的带有48位前缀和后缀的压缩数据发送到内存数据错误校验装置的读取压缩数据输入口15,随后经过内存数据校验装置来对该带有48位前缀和后缀的压缩数据实施校验。如果校验结果无错误位,则将该带有48位前缀和后缀的压缩数据通过校验后读取压缩数据输出口13发送到解压缩数据装置的校验后读取压缩数据输入口11,解压缩数据装置对校验后的压缩数据进行解压缩,进行解压缩后的数据经由解压数据输出口12发送到解压仲裁器的解压数据输入口14,解压仲裁器将解压缩后的数据通过读取数据输出口17发送到总线接口部件BIU,最后解压缩后的数据由总线接口部件BIU转存至高速缓存结构中;如果校验结果有错误位,则放弃该带有48位前缀和后缀的压缩数据。如果所述的状态信息为未压缩,控制器驱动计算机主存系统通过主存寻址方式将对应主存地址的未压缩数据直接发送至解压仲裁器的解压仲裁器的读取未压缩数据输入口16,解压仲裁器将解压缩后的数据通过读取数据输出口17发送到总线接口部件BIU,最后解压缩后的数据由总线接口部件BIU转存至高速缓存结构中。
所述的根据生成数据保护单元的粒度从而生成相应的ECC码的规则为64位的生成数据保护单元粒度生成8个8位的冗余位,128位的生成数据保护单元粒度生成4个9位的冗余位,256位的生成数据保护单元粒度生成2个10位的冗余位,512位的生成数据保护单元粒度生成一个11位的冗余位。
如图3所示,所述的压缩数据装置内部包括并行模式编码器、压缩数据累加器、并行前缀移位寄存器、8X64寄存器、压缩字偏移计算加法器阵列以及并行移位寄存器。
所述的并行模式编码器执行将所述的缓存块数据编码为48位前缀和压缩数据的操作并根据该48位前缀获取压缩数据的大小的操作;而压缩数据累加器执行所述的将48位前缀、压缩数据的大小以及预设的11位ECC冗余位进行累加的操作;将所述的48位前缀送入并行前缀移位寄存器和压缩字偏移计算加法器阵列,将压缩数据送入并行移位寄存器并执行将48位前缀和压缩数据合并为带有48位前缀的压缩数据的操作;8X64寄存器执行将带有48位前缀的压缩数据存放在压缩数据装置中的操作。
如图4所示,所述的生成可变ECC码装置包括数据保护单元粒度划分模块以及可变ECC生成模块。
所述的数据保护单元粒度划分模块执行生成数据保护单元的粒度,可变ECC生成模块执行生成相应的ECC码并将该ECC码作为带有48位前缀的压缩数据的后缀的操作。
如图5所示,所述的内存数据错误校验装置包括并行前缀译码模块、带有比较器的可变ECC粒度译码模块以及ECC检测校验模块。
所述的并行前缀译码模块执行导出压缩数据的大小并将该压缩数据的大小送入带有比较器的可变ECC粒度译码模块的操作;可变ECC粒度译码模块通过其比较器比较压缩数据的大小和预先设置的数据值组即可导出对应的保护单元粒度并送入ECC检测校验模块;ECC检测校验模块根据该保护单元粒度从压缩数据中取出ECC校验码,同时根据数据保护单元粒度划分ECC校验码和压缩数据,将压缩数据划分为两个以上的数据保护单元,相应的ECC校验码也划分为相同数量的单元,之后相应的ECC校验码对相对应的数据保护单元做错误检测与纠错,得到校验结果。
如图6所示,所述的解压缩数据装置包括带有查找表的并行前缀译码器,并行移位寄存器,压缩字偏移计算加法器阵列,16X32位寄存器以及并行模式译码器。
所述的并行前缀译码器将带有48位前缀和后缀的压缩数据的前缀经过其查找表得到每个压缩数据的偏移量,并将该偏移量输出到压缩字偏移计算加法器阵列,压缩字偏移计算加法器阵列依次对每个压缩数据的偏移量进行累加而得到累加和,并将对应的累加和输入并行移位寄存器中,从而对压缩数据进行移位,结果放在16X32位寄存器中,最后通过并行模式译码器和相应的前缀共同对压缩数据进行译码得到解压缩后的数据。
所述的扩展旁路转换缓冲TLB为在旁路转换缓冲TLB的每一个表项中加入64位压缩状态信息位,该64位压缩状态信息位是指在4KB大小的一页中共包含64个缓存块,每个缓存块的大小为64B,其中每一位压缩状态信息位依次对应一个缓存块。
通过压缩数据装置、压缩仲裁器、扩展旁路转换缓冲TLB、生成可变ECC码装置、内存数据错误校验装置以及解压仲裁器相互连接,且其解压缩方法运用压缩数据装置和解压缩数据装置对计算机主存系统数据进行解压缩,将获得的空间用于存储错误校验码,从而降低纠错校验技术的硬件耗费。增加的存储空间可支持纠错能力更强的错误校验码,并可根据存储空间的大小调整数据保护单元的粒度以存储更多的错误校验码,另外通过数据压缩提高错误校验能力,可显著提高计算机主存系统的可靠性。实现起来简单易用,加上不需用增加传统的查询压缩翻译表,仅通过在旁路转换缓冲TLB中的每一个表项中增加64为压缩状态信息位即可实现虚拟地址到物理地址的转换,并且计算机主存系统不用增加额外的ECC冗余位,这使得在普通的内存芯片中就可实现ECC内存的效果,由于本发明的可变ECC技术可使内存的可靠性更高。
Claims (10)
1.一种提高计算机主存可靠性的数据压缩装置,包括压缩数据装置和数据解压缩装置,其特征在于:该压缩数据装置的数据输入口(1)同对应的带有处理器核组的控制器的连接高速缓存结构的总线接口部件BIU相通信连接,压缩数据装置的预压缩信号输出口(2)和压缩数据输出口(4)分别同该数据压缩装置的压缩仲裁器的预压缩信号输入口(3)和生成可变ECC码装置的压缩数据输入口(5)相通信连接,该压缩仲裁器的数据输出口(6)、状态信息输出口(7)、未压缩数据输入口(8)以及压缩数据输入口(9)分别和对应的计算机主存系统、设置在控制器内的属于数据压缩装置的扩展旁路转换缓冲TLB、总线接口部件BIU以及生成可变ECC码装置的压缩数据输出口(10)相通信连接。所述的解压缩数据装置的校验后读取压缩数据输入口(11)和解压数据输出口(12)分别同该数据压缩装置的内存数据错误校验装置的校验后读取压缩数据输出口(13)和解压仲裁器的解压数据输入口(14)相通信连接,内存数据错误校验装置的读取压缩数据输入口(15)和解压仲裁器的读取未压缩数据输入口(16)同计算机主存系统相通信连接,解压仲裁器的读取数据输出口(17)和状态信息输入口(18)分别同总线接口部件BIU和扩展旁路转换缓冲TLB相通信连接。
2.根据权利要求1所述的提高计算机主存可靠性的数据压缩装置的方法,其特征在于:当所述的控制器需要向计算机主存系统写入数据时,数据先通过控制器的处理核组中的处理核将要写入的数据发送到高速缓存结构中,并将该要写入的数据按先后顺序移入缓存块数据组内存放且缓存块数据组中每个缓存块数据大小为512位,通过总线接口部件BIU逐一将每个缓存块数据传送到压缩数据装置进行预压缩。预压缩的过程为将该缓存块数据先编码为48位前缀和压缩数据,并根据该48位前缀获取压缩数据的大小,随即压缩数据装置对48位前缀、压缩数据的大小以及预设的11位ECC冗余位进行累加,最后得到的累加和同每个缓存块数据大小位数即512位进行比较。如果累加和大于512,得到未压缩的状态信息,并通过预压缩信号输出口(2)经由预压缩信号输入口(3)发送到压缩仲裁器,压缩仲裁器通过状态信息输出口(7)将该未压缩的状态信息发送到扩展旁路转换缓冲TLB中,这时控制器的处理核组中所述的处理核将该缓存块数据通过总线接口部件BIU直接发送到压缩仲裁器中,然后由压缩仲裁器的数据输出口(6)发送到计算机主存系统。如果累加和小于512,得到压缩的状态信息,并通过预压缩信号输出口(2)经由预压缩信号输入口(3)发送到压缩仲裁器,压缩仲裁器通过状态信息输出口(7)将该压缩的状态信息发送到扩展旁路转换缓冲TLB中,这时将48位前缀和压缩数据合并为带有48位前缀的压缩数据并将其存放在压缩数据装置中,随后通过压缩数据输出口(4)将带有48位前缀的压缩数据传送到生成可变ECC码装置的压缩数据输入口(5)。根据压缩数据的大小,利用扩展HAMMING码的方法生成数据保护单元的粒度并根据生成数据保护单元的粒度从而生成相应的ECC码,将该ECC码作为带有48位前缀的压缩数据的后缀,最后将带有48位前缀和后缀的压缩数据通过压缩数据输出口(10)传送到压缩仲裁器的压缩数据输入口(9),并通过压缩仲裁器的数据输出口(6)存入计算机主存系统。当所述的控制器需要向计算机主存系统读取数据时,先通过控制器的处理核组中的处理核获取扩展旁路转换缓冲TLB中对应需要读取的数据的状态信息组,将该压缩的状态信息组的状态信息逐一按顺序发送到解压仲裁器进行仲裁。如果该状态信息为压缩,控制器驱动计算机主存系统通过主存寻址方式将对应主存地址的带有48位前缀和后缀的压缩数据发送到内存数据错误校验装置的读取压缩数据输入口(15),随后经过内存数据校验装置来对该带有48位前缀和后缀的压缩数据实施校验。如果校验结果无错误位,则将该带有48位前缀和后缀的压缩数据通过校验后读取压缩数据输出口(13)发送到解压缩数据装置的解压数据输出口(12),解压缩数据装置对校验后的压缩数据进行解压缩,进行解压缩后的数据经由解压数据输出口(12)发送到解压仲裁器的解压数据输入口(14),解压仲裁器将解压缩后的数据通过读取数据输出口(17)发送到总线接口部件BIU,最后解压缩后的数据由总线接口部件BIU转存至高速缓存结构中;如果校验结果有错误位,则放弃该带有48位前缀和后缀的压缩数据。另外如果所述的状态信息为未压缩,控制器驱动计算机主存系统通过主存寻址方式将对应主存地址的未压缩数据直接发送至解压仲裁器的解压仲裁器的读取未压缩数据输入口(16),解压仲裁器将解压缩后的数据通过读取数据输出口(17)发送到总线接口部件BIU,最后解压缩后的数据由总线接口部件BIU转存至高速缓存结构中。
3.根据权利要求2所述的提高计算机主存可靠性的数据解压缩装置的方法,其特征在于:所述的根据生成数据保护单元的粒度从而生成相应的ECC码的规则为64位的生成数据保护单元粒度生成8个8位的冗余位,128位的生成数据保护单元粒度生成4个9位的冗余位,256位的生成数据保护单元粒度生成2个10位的冗余位,512位的生成数据保护单元粒度生成一个11位的冗余位。
4.根据权利要求2或权利要求3所述的提高计算机主存可靠性的数据压缩装置的方法,其特征在于:所述的压缩数据装置内部包括并行模式编码器、压缩数据累加器、并行前缀移位寄存器、8X64寄存器、压缩字偏移计算加法器阵列以及并行移位寄存器。
5.根据权利要求4所述的提高计算机主存可靠性的数据压缩装置的方法,其特征在于:所述的并行模式编码器执行将所述的缓存块数据编码为48位前缀和压缩数据的操作并根据该48位前缀获取压缩数据的大小的操作;而压缩数据累加器执行所述的将48位前缀、压缩数据的大小以及预设的11位ECC冗余位进行累加的操作;将所述的48位前缀送入并行前缀移位寄存器和压缩字偏移计算加法器阵列,将压缩数据送入并行移位寄存器并执行将48位前缀和压缩数据合并为带有48位前缀的压缩数据的操作;8X64寄存器执行将带有48位前缀的压缩数据存放在数据压缩装置中的操作。
6.根据权利要求2或权利要求3所述的提高计算机主存可靠性的数据压缩装置的方法,其特征在于:所述的生成可变ECC码装置包括数据保护单元粒度划分模块以及可变ECC生成模块。
7.根据权利要求6所述的提高计算机主存可靠性的数据压缩装置的方法,其特征在于:所述的数据保护单元粒度划分模块执行生成数据保护单元的粒度,可变ECC生成模块执行生成相应的ECC码并将该ECC码作为带有48位前缀的压缩数据的后缀的操作。
8.根据权利要求2或权利要求3所述的提高计算机主存可靠性的数据压缩装置的方法,其特征在于:所述的内存数据错误校验装置包括并行前缀译码模块、带有比较器的可变ECC粒度译码模块以及ECC检测校验模块,所述的并行前缀译码模块执行导出压缩数据的大小并将该压缩数据的大小送入带有比较器的可变ECC粒度译码模块的操作;可变ECC粒度译码模块通过其比较器比较压缩数据的大小和预先设置的数据值组即可导出对应的保护单元粒度并送入ECC检测校验模块;ECC检测校验模块根据该保护单元粒度从压缩数据中取出ECC校验码,同时根据数据保护单元粒度划分ECC校验码和压缩数据,将压缩数据划分为两个以上的数据保护单元,相应的ECC校验码也划分为相同数量的单元,之后相应的ECC校验码对相对应的数据保护单元做错误检测与纠错,得到校验结果。
9.根据权利要求2或权利要求3所述的提高计算机主存可靠性的数据压缩装置的方法,其特征在于:所述的解压缩数据装置包括带有查找表的并行前缀译码器,并行移位寄存器,压缩字偏移计算加法器阵列,16X32位寄存器以及并行模式译码器。所述的并行前缀译码器将带有48位前缀和后缀的压缩数据的前缀经过其查找表得到每个压缩数据的偏移量,并将该偏移量输出到压缩字偏移计算加法器阵列,压缩字偏移计算加法器阵列依次对每个压缩数据的偏移量进行累加而得到累加和,并将对应的累加和输入并行移位寄存器中,从而对压缩数据进行移位,结果放在16X32位寄存器中,最后通过并行模式译码器和相应的前缀共同对压缩数据进行译码得到解压缩后的数据。
10.根据权利要求2或权利要求3所述的提高计算机主存可靠性的数据解压缩装置的方法,其特征在于:所述的扩展旁路转换缓冲TLB为在旁路转换缓冲TLB的每一个表项中加入64位压缩状态信息位,该64位压缩状态信息位是指在4KB大小的一页中共包含64个缓存块,每个缓存块的大小为64B,其中每一位压缩状态信息位依次对应一个缓存块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100762529A CN102122959B (zh) | 2011-03-29 | 2011-03-29 | 提高计算机主存可靠性的数据压缩装置及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100762529A CN102122959B (zh) | 2011-03-29 | 2011-03-29 | 提高计算机主存可靠性的数据压缩装置及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102122959A true CN102122959A (zh) | 2011-07-13 |
CN102122959B CN102122959B (zh) | 2013-12-04 |
Family
ID=44251429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100762529A Expired - Fee Related CN102122959B (zh) | 2011-03-29 | 2011-03-29 | 提高计算机主存可靠性的数据压缩装置及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102122959B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102684827A (zh) * | 2012-03-02 | 2012-09-19 | 华为技术有限公司 | 数据处理方法及数据处理设备 |
CN102984753A (zh) * | 2011-09-05 | 2013-03-20 | 普天信息技术研究院有限公司 | 一种提高无线通信数据传输效率的方法 |
CN104503740A (zh) * | 2014-12-01 | 2015-04-08 | 小米科技有限责任公司 | 内存管理方法和装置 |
CN105005510A (zh) * | 2015-07-02 | 2015-10-28 | 西安交通大学 | 应用于固态硬盘阻变存储器缓存的纠错保护架构及方法 |
WO2015180245A1 (zh) * | 2014-05-28 | 2015-12-03 | 中兴通讯股份有限公司 | 一种内存配置方法和装置 |
CN105302915A (zh) * | 2015-12-23 | 2016-02-03 | 西安美林数据技术股份有限公司 | 基于内存计算的高性能数据处理系统 |
CN106227506A (zh) * | 2015-06-02 | 2016-12-14 | 福州瑞芯微电子股份有限公司 | 一种内存压缩系统中的多通道并行压缩解压系统及方法 |
CN110209598A (zh) * | 2019-05-28 | 2019-09-06 | 首都师范大学 | 一种高速缓冲存储器、一种数据读写控制方法及系统 |
CN111625568A (zh) * | 2020-05-22 | 2020-09-04 | 珠海玖零科技有限公司 | 一种大数据统计归集算法 |
CN113360314A (zh) * | 2020-03-02 | 2021-09-07 | 芯原微电子(成都)有限公司 | 数据的处理方法、系统、设备及计算机可读存储介质 |
WO2023151142A1 (zh) * | 2022-02-08 | 2023-08-17 | 长鑫存储技术有限公司 | 数据校验方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002132454A (ja) * | 2000-10-19 | 2002-05-10 | Xaxon R & D Corp | 圧縮伸張装置を備えた半導体ディスク装置 |
CN1126106C (zh) * | 1997-04-30 | 2003-10-29 | 日本电气株式会社 | 存储器集成电路及应用它的主存储器系统和图形存储器系统 |
US20090228761A1 (en) * | 2008-03-07 | 2009-09-10 | Anobit Technologies Ltd | Efficient readout from analog memory cells using data compression |
-
2011
- 2011-03-29 CN CN2011100762529A patent/CN102122959B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1126106C (zh) * | 1997-04-30 | 2003-10-29 | 日本电气株式会社 | 存储器集成电路及应用它的主存储器系统和图形存储器系统 |
JP2002132454A (ja) * | 2000-10-19 | 2002-05-10 | Xaxon R & D Corp | 圧縮伸張装置を備えた半導体ディスク装置 |
US20090228761A1 (en) * | 2008-03-07 | 2009-09-10 | Anobit Technologies Ltd | Efficient readout from analog memory cells using data compression |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102984753A (zh) * | 2011-09-05 | 2013-03-20 | 普天信息技术研究院有限公司 | 一种提高无线通信数据传输效率的方法 |
US9514209B2 (en) | 2012-03-02 | 2016-12-06 | Huawei Technologies Co., Ltd. | Data processing method and data processing device |
CN102684827B (zh) * | 2012-03-02 | 2015-07-29 | 华为技术有限公司 | 数据处理方法及数据处理设备 |
CN102684827A (zh) * | 2012-03-02 | 2012-09-19 | 华为技术有限公司 | 数据处理方法及数据处理设备 |
WO2015180245A1 (zh) * | 2014-05-28 | 2015-12-03 | 中兴通讯股份有限公司 | 一种内存配置方法和装置 |
CN104503740A (zh) * | 2014-12-01 | 2015-04-08 | 小米科技有限责任公司 | 内存管理方法和装置 |
CN106227506A (zh) * | 2015-06-02 | 2016-12-14 | 福州瑞芯微电子股份有限公司 | 一种内存压缩系统中的多通道并行压缩解压系统及方法 |
CN105005510A (zh) * | 2015-07-02 | 2015-10-28 | 西安交通大学 | 应用于固态硬盘阻变存储器缓存的纠错保护架构及方法 |
CN105005510B (zh) * | 2015-07-02 | 2018-07-17 | 西安交通大学 | 应用于固态硬盘阻变存储器缓存的纠错保护架构及方法 |
CN105302915A (zh) * | 2015-12-23 | 2016-02-03 | 西安美林数据技术股份有限公司 | 基于内存计算的高性能数据处理系统 |
CN105302915B (zh) * | 2015-12-23 | 2019-04-09 | 美林数据技术股份有限公司 | 基于内存计算的高性能数据处理系统 |
CN110209598A (zh) * | 2019-05-28 | 2019-09-06 | 首都师范大学 | 一种高速缓冲存储器、一种数据读写控制方法及系统 |
CN110209598B (zh) * | 2019-05-28 | 2021-05-18 | 首都师范大学 | 一种高速缓冲存储器、一种数据读写控制方法及系统 |
CN113360314A (zh) * | 2020-03-02 | 2021-09-07 | 芯原微电子(成都)有限公司 | 数据的处理方法、系统、设备及计算机可读存储介质 |
CN113360314B (zh) * | 2020-03-02 | 2023-07-18 | 芯原微电子(成都)有限公司 | 数据的处理方法、系统、设备及计算机可读存储介质 |
CN111625568A (zh) * | 2020-05-22 | 2020-09-04 | 珠海玖零科技有限公司 | 一种大数据统计归集算法 |
CN111625568B (zh) * | 2020-05-22 | 2022-04-01 | 广东玖零科技有限公司 | 一种大数据统计归集算法 |
WO2023151142A1 (zh) * | 2022-02-08 | 2023-08-17 | 长鑫存储技术有限公司 | 数据校验方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102122959B (zh) | 2013-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102122959B (zh) | 提高计算机主存可靠性的数据压缩装置及其方法 | |
US10664347B2 (en) | Using parity data for concurrent data authentication, correction, compression, and encryption | |
CN102129873B (zh) | 提高计算机末级高速缓存可靠性的数据压缩装置及其方法 | |
TWI609263B (zh) | 可變大小快閃轉變層 | |
US20070268905A1 (en) | Non-volatile memory error correction system and method | |
KR20160054395A (ko) | 메모리 데이터 에러 정정 방법 | |
US8495464B2 (en) | Reliability support in memory systems without error correcting code support | |
CN101489135B (zh) | 一种方便ldpc长码在fpga实现的编码器及编码方法 | |
CN111684433A (zh) | 存储器模块数据对象处理系统和方法 | |
US11775382B2 (en) | Modified parity data using a poison data unit | |
US8239737B2 (en) | Data line storage and transmission utilizing both error correcting code and synchronization information | |
US20190319787A1 (en) | Hardware acceleration of bike for post-quantum public key cryptography | |
CN108665940B (zh) | Ecc编码电路、解码电路以及存储器控制器 | |
US20230089702A1 (en) | Syndrome calculation for error detection and error correction | |
CN112000509B (zh) | 一种基于向量指令的纠删码编码方法、系统及装置 | |
TWI684856B (zh) | 解碼方法及相關的快閃記憶體控制器與電子裝置 | |
CN1688110A (zh) | 基于可寻址存储器的里德·索罗门译码器 | |
RU175054U1 (ru) | Устройство хранения и передачи данных с обнаружением одиночных и двойных ошибок | |
CN115934409A (zh) | 一种寄存器友好的高效异或纠删码编码方法 | |
Wu et al. | ECC TECHNIQUES FOR ENABLING DRAM CACHES WITH OFF-CHIP TAG ARRAYS. | |
Venkatesh et al. | Implementation of Modified Decimal Matrix Code for Single Upsets |
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 |
Granted publication date: 20131204 Termination date: 20160329 |
|
CF01 | Termination of patent right due to non-payment of annual fee |