CN102129873B - 提高计算机末级高速缓存可靠性的数据压缩装置及其方法 - Google Patents

提高计算机末级高速缓存可靠性的数据压缩装置及其方法 Download PDF

Info

Publication number
CN102129873B
CN102129873B CN2011100772107A CN201110077210A CN102129873B CN 102129873 B CN102129873 B CN 102129873B CN 2011100772107 A CN2011100772107 A CN 2011100772107A CN 201110077210 A CN201110077210 A CN 201110077210A CN 102129873 B CN102129873 B CN 102129873B
Authority
CN
China
Prior art keywords
data
packed data
level cache
compression
moderator
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.)
Expired - Fee Related
Application number
CN2011100772107A
Other languages
English (en)
Other versions
CN102129873A (zh
Inventor
孙宏滨
徐敏超
郑南宁
刘传银
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN2011100772107A priority Critical patent/CN102129873B/zh
Publication of CN102129873A publication Critical patent/CN102129873A/zh
Application granted granted Critical
Publication of CN102129873B publication Critical patent/CN102129873B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种提高计算机末级高速缓存可靠性的压缩数据装置及其方法,通过数据压缩装置、压缩仲裁器、扩展标记、生成可变ECC码装置、缓存数据错误校验装置以及解压仲裁器相互连接,且其解压缩方法运用数据压缩装置和数据解压缩装置对一级缓存与末级高速缓存存储的数据进行解压缩,将获得的空间用于存储错误校验码,从而降低纠错校验技术的硬件耗费。增加末级高速缓存的存储空间可支持纠错能力更强的错误校验码,并可根据该存储空间的大小调整数据保护单元的粒度以存储更多的错误校验码,另外通过数据压缩提高错误校验能力,可显著提高计算机末级高速缓存的可靠性。

Description

提高计算机末级高速缓存可靠性的数据压缩装置及其方法
技术领域
本发明属于计算机系统中末级高速缓存数据压缩和差错检查与纠正技术领域,具体涉及一种提高计算机末级高速缓存可靠性的压缩数据装置及其方法。
背景技术
在SRAM器件工艺不断提升的同时,缓存系统的可靠性受到越来越严重的威胁。其中软错误是威胁计算机缓存系统可靠性的最主要因素之一。软错误是指由Alpha粒子或者宇宙射线诱发的不可预测的随机存储错误,容易引起计算机系统的崩溃和数据丢失。特别是对于应用于恶劣环境的计算机对容忍软错误的能力要求更高。对于计算机缓存,传统避免软错误发生的保护策略主要采用冗余或者错误校验码技术。其中,错误校验码技术是保护计算机缓存最有效的技术,被工业界所广泛采用。但是,由于错误校验码需要存储冗余位,这使得在缓存芯片上必须增加额外的存储资源,其硬件耗费很高,从而成为提高可靠性预防软错误的瓶颈。
数据压缩技术是一种被广泛应用于数据通信与数据保存的技术,它通过减少数据中的冗余信息来减少数据通信和保存的开销,增加缓存有效存储空间。数据压缩与解压带来的附加延时影响计算机运行性能,好的数据压缩方法成为数据压缩的关键。常见的方法有:基于文本串字典匹配的压缩方法、基于值局部性字典的压缩方法、基于符号位冗余消除的压缩方法。本发明采用的数据压缩算法,是基于符号位冗余消除的压缩算法开发出的频用模板压缩算法。该算法将所有的存储数据字分成8种模式,当压缩时,如果访问的字匹配某种模式,则为该字生成模式前缀编码,然后串接去掉冗余位后该字的值,形成该字的压缩编码。每个字根据模式不同可分别占用更少的空间,因此该算法可以实现较高的压缩率,而且压缩延时也较短,更适合作为本发明中的缓存压缩算法。
但是,传统的数据压缩方法仅用于提高缓存容量,压缩后大小不一的数据块给缓存管理带来较大的困难,容易产生碎片,增加管理调度的延迟和耗费。而本发明利用末级高速缓存数据压缩的空间增加错误校验码的冗余位存储,提高错误校验码的纠错能力,从而提高整个缓存系统的可靠性。
发明内容
为了克服上述现有技术存在的不足,本发明的目的在于提供一种提高计算机末级高速缓存可靠性的压缩数据装置及其方法,通过数据压缩装置、压缩仲裁器、扩展标记、生成可变ECC码装置、缓存数据错误校验装置以及解压仲裁器相互连接,且其解压缩方法运用数据压缩装置和数据解压缩装置对一级缓存与末级高速缓存存储的数据进行解压缩,将获得的空间用于存储错误校验码,从而降低纠错校验技术的硬件耗费。增加末级高速缓存的存储空间可支持纠错能力更强的错误校验码,并可根据该存储空间的大小调整数据保护单元的粒度以存储更多的错误校验码,另外通过数据压缩提高错误校验能力,可显著提高计算机末级高速缓存的可靠性。
为了达到上述目的,本发明所采用的技术方案是:
一种提高计算机末级高速缓存可靠性的压缩数据装置,包括数据压缩装置和数据解压缩装置,该数据压缩装置的数据输入口1同对应的一级缓存相通信连接,数据压缩装置的预压缩信号输出口2和压缩数据输出口4分别同该提高计算机末级高速缓存可靠性的压缩数据装置的压缩仲裁器的预压缩信号输入口3和生成可变ECC码装置的压缩数据输入口5相通信连接,该压缩仲裁器的数据输出口6、状态信息输出口7、未压缩数据输入口8以及压缩数据输入口9分别和对应的末级高速缓存、设置在末级高速缓存内的属于该提高计算机末级高速缓存可靠性的压缩数据装置的扩展标记、一级缓存以及生成可变ECC码装置的压缩数据输出口10相通信连接。而所述的数据解压缩装置的校验后读取压缩数据输入口11和解压数据输出口12分别同该提高计算机末级高速缓存可靠性的压缩数据装置的缓存数据错误校验装置的校验后读取压缩数据输出口13和解压仲裁器的解压数据输入口14相通信连接,缓存数据错误校验装置的读取压缩数据输入口15和解压仲裁器的读取未压缩数据输入口16同末级高速缓存相通信连接,解压仲裁器的读取数据输出口17和状态信息输入口18分别同一级缓存和末级缓存的扩展标记相通信连接。
所述的提高计算机末级高速缓存可靠性的压缩数据装置的方法,当控制器需要将一级缓存的数据写入末级高速缓存时,控制器将该一级缓存的512位缓存数据块先传送到数据压缩装置进行预压缩。预压缩的过程为将该数据块的数据先编码为48位前缀和压缩数据,并根据该48位前缀获取压缩数据的大小,随即数据压缩装置对48位前缀、压缩数据的大小以及预设的11位ECC冗余位进行累加,得到的累加和同每个数据块的数据大小位数即512位进行比较。如果累加和大于512,得到未压缩的状态信息,并通过预压缩信号输出口2经由预压缩信号输入口3发送到压缩仲裁器,压缩仲裁器通过状态信息输出口7将该未压缩的状态信息发送到扩展标记中,这时控制器将该数据块的数据通过一级缓存直接发送到压缩仲裁器中,然后由压缩仲裁器的数据输出口6发送到末级高速缓存。如果累加和小于512,得到压缩的状态信息,并通过预压缩信号输出口2经由预压缩信号输入口3发送到压缩仲裁器,压缩仲裁器通过状态信息输出口7将该压缩的状态信息发送到扩展标记中,这时将48位前缀和压缩数据合并为带有48位前缀的压缩数据并将其存放在数据压缩装置中,随后通过压缩数据输出口4将带有48位前缀的压缩数据传送到生成可变ECC码装置的压缩数据输入口5。根据压缩数据的大小,利用扩展HAMMING码的方法生成数据保护单元的粒度并根据生成数据保护单元的粒度从而生成相应的ECC码,将该ECC码作为带有48位前缀的压缩数据的后缀,最后将带有48位前缀和后缀的压缩数据通过压缩数据输出口10传送到压缩仲裁器的压缩数据输入口9,并通过压缩仲裁器的数据输出口6存入末级高速缓存。当所述的控制器需要从末级高速缓存读取数据时,先通过控制器获取扩展标记中对应的状态信息位,将该压缩的状态信息位的状态信息发送到解压仲裁器进行仲裁。如果该状态信息为压缩,控制器驱动末级高速缓存通过末级高速缓存寻址方式将对应末级高速缓存地址的带有48位前缀和后缀的压缩数据发送到缓存数据错误校验装置的读取压缩数据输入口15,随后经过缓存数据错误校验装置来对该带有48位前缀和后缀的压缩数据实施校验。如果校验结果无错误位,则将该带有48位前缀和后缀的压缩数据通过校验后读取压缩数据输出口13发送到数据解压缩装置的校验后读取压缩数据输入口11,数据解压缩装置对校验后的压缩数据进行解压缩,进行解压缩后的数据经由解压数据输出口12发送到解压仲裁器的解压数据输入口14,解压仲裁器将解压缩后的数据通过读取数据输出口17发送到一级缓存。如果校验结果有错误位,则放弃该带有48位前缀和后缀的压缩数据,另外如果所述的状态信息为未压缩,控制器驱动末级高速缓存通过末级高速缓存寻址方式将对应末级高速缓存地址的未压缩数据直接发送至解压仲裁器的解压仲裁器的读取未压缩数据输入口16,解压仲裁器将解压缩后的数据通过读取数据输出口17发送到一级缓存。
所述的根据生成数据保护单元的粒度从而生成相应的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位寄存器中,最后通过并行模式译码器和相应的前缀共同对压缩数据进行译码得到解压缩后的数据。
所述的扩展标记为在其页表的每一个表项中加入64位压缩状态信息位,该64位压缩状态信息位是指在4KB大小的一页中共包含64个缓存块,每个缓存块的大小为64B,其中每一位压缩状态信息位依次对应一个缓存块。
通过数据压缩装置、压缩仲裁器、扩展标记、生成可变ECC码装置、缓存数据错误校验装置以及解压仲裁器相互连接,且其解压缩方法运用数据压缩装置和数据解压缩装置对计算机一级缓存系统数据进行解压缩,将获得的空间用于存储错误校验码,从而降低纠错校验技术的硬件耗费。增加的存储空间可支持纠错能力更强的错误校验码,并可根据存储空间的大小调整数据保护单元的粒度以存储更多的错误校验码,另外通过数据压缩提高错误校验能力,可显著提高计算机末级高速缓存系统的可靠性。实现起来简单易用,加上不需用增加传统的查询压缩翻译表,仅通过在扩展标记中增加1位压缩状态信息位即可实现虚拟地址到物理地址的转换,并且外存不用增加额外的ECC冗余位,这使得在普通的末级高速缓存芯片中就可实现ECC缓存的效果,由于本发明的可变ECC技术可使末级高速缓存的可靠性更高。
附图说明
图1是本发明的提高计算机末级高速缓存可靠性的压缩数据装置的结构示意图。
图2是本发明的提高计算机末级高速缓存可靠性的压缩数据装置的方法的工作原理结构示意图。
图3是本发明的数据压缩装置的内部结构示意图。
图4是本发明的生成可变ECC码装置的内部结构示意图。
图5是本发明的缓存数据错误校验装置的内部结构示意图。
图6是本发明的数据解压缩装置的内部结构示意图。
具体实施方式
下面结合附图对本发明作更详细的说明。
如图1所示,提高计算机末级高速缓存可靠性的压缩数据装置,包括数据压缩装置和数据解压缩装置,该数据压缩装置的数据输入口1同对应的一级缓存相通信连接,数据压缩装置的预压缩信号输出口2和压缩数据输出口4分别同该提高计算机末级高速缓存可靠性的压缩数据装置的压缩仲裁器的预压缩信号输入口3和生成可变ECC码装置的压缩数据输入口5相通信连接,该压缩仲裁器的数据输出口6、状态信息输出口7、未压缩数据输入口8以及压缩数据输入口9分别和对应的末级高速缓存、设置在末级高速缓存内的属于该提高计算机末级高速缓存可靠性的压缩数据装置的扩展标记、一级缓存以及生成可变ECC码装置的压缩数据输出口10相通信连接。而所述的数据解压缩装置的校验后读取压缩数据输入口11和解压数据输出口12分别同该提高计算机末级高速缓存可靠性的压缩数据装置的缓存数据错误校验装置的校验后读取压缩数据输出口13和解压仲裁器的解压数据输入口14相通信连接,缓存数据错误校验装置的读取压缩数据输入口15和解压仲裁器的读取未压缩数据输入口16同末级高速缓存相通信连接,解压仲裁器的读取数据输出口17和状态信息输入口18分别同一级缓存和末级缓存的扩展标记相通信连接。
如图2所示,所述的提高计算机末级高速缓存可靠性的压缩数据装置的方法,当控制器需要将一级缓存的数据写入末级高速缓存时,控制器将该一级缓存的512位缓存数据块先传送到数据压缩装置进行预压缩。预压缩的过程为将该数据块的数据先编码为48位前缀和压缩数据,并根据该48位前缀获取压缩数据的大小,随即数据压缩装置对48位前缀、压缩数据的大小以及预设的11位ECC冗余位进行累加,得到的累加和同每个数据块的数据大小位数即512位进行比较。如果累加和大于512,得到未压缩的状态信息,并通过预压缩信号输出口2经由预压缩信号输入口3发送到压缩仲裁器,压缩仲裁器通过状态信息输出口7将该未压缩的状态信息发送到扩展标记中,这时控制器将该数据块的数据通过一级缓存直接发送到压缩仲裁器中,然后由压缩仲裁器的数据输出口6发送到末级高速缓存。如果累加和小于512,得到压缩的状态信息,并通过预压缩信号输出口2经由预压缩信号输入口3发送到压缩仲裁器,压缩仲裁器通过状态信息输出口7将该压缩的状态信息发送到扩展标记中,这时将48位前缀和压缩数据合并为带有48位前缀的压缩数据并将其存放在数据压缩装置中,随后通过压缩数据输出口4将带有48位前缀的压缩数据传送到生成可变ECC码装置的压缩数据输入口5。根据压缩数据的大小,利用扩展HAMMING码的方法生成数据保护单元的粒度并根据生成数据保护单元的粒度从而生成相应的ECC码,将该ECC码作为带有48位前缀的压缩数据的后缀,最后将带有48位前缀和后缀的压缩数据通过压缩数据输出口10传送到压缩仲裁器的压缩数据输入口9,并通过压缩仲裁器的数据输出口6存入末级高速缓存。当所述的控制器需要从末级高速缓存读取数据时,先通过控制器获取扩展标记中对应的状态信息位,将该压缩的状态信息位的状态信息发送到解压仲裁器进行仲裁。如果该状态信息为压缩,控制器驱动末级高速缓存通过末级高速缓存寻址方式将对应末级高速缓存地址的带有48位前缀和后缀的压缩数据发送到缓存数据错误校验装置的读取压缩数据输入口15,随后经过缓存数据错误校验装置来对该带有48位前缀和后缀的压缩数据实施校验。如果校验结果无错误位,则将该带有48位前缀和后缀的压缩数据通过校验后读取压缩数据输出口13发送到数据解压缩装置的校验后读取压缩数据输入口11,数据解压缩装置对校验后的压缩数据进行解压缩,进行解压缩后的数据经由解压数据输出口12发送到解压仲裁器的解压数据输入口14,解压仲裁器将解压缩后的数据通过读取数据输出口17发送到一级缓存。如果校验结果有错误位,则放弃该带有48位前缀和后缀的压缩数据,另外如果所述的状态信息为未压缩,控制器驱动末级高速缓存通过末级高速缓存寻址方式将对应末级高速缓存地址的未压缩数据直接发送至解压仲裁器的解压仲裁器的读取未压缩数据输入口16,解压仲裁器将解压缩后的数据通过读取数据输出口17发送到一级缓存。
所述的根据生成数据保护单元的粒度从而生成相应的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位寄存器中,最后通过并行模式译码器和相应的前缀共同对压缩数据进行译码得到解压缩后的数据。
所述的扩展标记为在缓存的tag中增加一位压缩状态信息位,用来标识缓存块的压缩状态信息。
通过数据压缩装置、压缩仲裁器、扩展标记、生成可变ECC码装置、缓存数据错误校验装置以及解压仲裁器相互连接,且其解压缩方法运用数据压缩装置和数据解压缩装置对计算机一级缓存系统数据进行解压缩,将获得的空间用于存储错误校验码,从而降低纠错校验技术的硬件耗费。增加的存储空间可支持纠错能力更强的错误校验码,并可根据存储空间的大小调整数据保护单元的粒度以存储更多的错误校验码,另外通过数据压缩提高错误校验能力,可显著提高计算机末级高速缓存系统的可靠性。实现起来简单易用,加上不需用增加传统的查询压缩翻译表,仅通过在扩展标记中增加1位压缩状态信息位即可实现虚拟地址到物理地址的转换,并且外存不用增加额外的ECC冗余位,这使得在普通的末级高速缓存芯片中就可实现ECC缓存的效果,由于本发明的可变ECC技术可使末级高速缓存的可靠性更高。

Claims (7)

1.一种提高计算机末级高速缓存可靠性的压缩数据装置,包括数据压缩装置和数据解压缩装置,其特征在于:该数据压缩装置的数据输入口(1)同对应的一级缓存相通信连接,数据压缩装置的预压缩信号输出口(2)和压缩数据输出口(4)分别同该提高计算机末级高速缓存可靠性的压缩数据装置的压缩仲裁器的预压缩信号输入口(3)和生成可变ECC码装置的压缩数据输入口(5)相通信连接,该压缩仲裁器的数据输出口(6)、状态信息输出口(7)、未压缩数据输入口(8)以及压缩数据输入口(9)分别和对应的末级高速缓存、设置在末级高速缓存内的属于该提高计算机末级高速缓存可靠性的压缩数据装置的扩展标记、一级缓存以及生成可变ECC码装置的压缩数据输出口(10)相通信连接,所述的数据解压缩装置的校验后读取压缩数据输入口(11)和解压数据输出口(12)分别同该提高计算机末级高速缓存可靠性的压缩数据装置的缓存数据错误校验装置的校验后读取压缩数据输出口(13)和解压仲裁器的解压数据输入口(14)相通信连接,缓存数据错误校验装置的读取压缩数据输入口(15)和解压仲裁器的读取未压缩数据输入口(16)同末级高速缓存相通信连接,解压仲裁器的读取数据输出口(17)和状态信息输入口(18)分别同一级缓存和末级缓存的扩展标记相通信连接。
2.一种利用权利要求1所述的提高计算机末级高速缓存可靠性的压缩数据装置来提高计算机末级高速缓存可靠性的方法,其特征在于:当控制器需要将一级缓存的数据写入末级高速缓存时,控制器将该一级缓存的512位缓存数据块先传送到数据压缩装置进行预压缩,预压缩的过程为将该数据块的数据先编码为48位前缀和压缩数据,并根据该48位前缀获取压缩数据的大小,随即数据压缩装置对48位前缀、压缩数据的大小以及预设的11位ECC冗余位进行累加,得到的累加和同每个数据块的数据大小位数即512位进行比较,如果累加和大于512,得到未压缩的状态信息,并通过预压缩信号输出口(2)经由预压缩信号输入口(3)发送到压缩仲裁器,压缩仲裁器通过状态信息输出口(7)将该未压缩的状态信息发送到扩展标记中,这时控制器将该数据块的数据通过一级缓存直接发送到压缩仲裁器中,然后由压缩仲裁器的数据输出口(6)发送到末级高速缓存,如果累加和小于512,得到压缩的状态信息,并通过预压缩信号输出口(2)经由预压缩信号输入口(3)发送到压缩仲裁器,压缩仲裁器通过状态信息输出口(7)将该压缩的状态信息发送到扩展标记中,这时将48位前缀和压缩数据合并为带有48位前缀的压缩数据并将其存放在数据压缩装置中,随后通过压缩数据输出口(4)将带有48位前缀的压缩数据传送到生成可变ECC码装置的压缩数据输入口(5),根据压缩数据的大小,利用扩展HAMMING码的方法生成数据保护单元的粒度并根据生成数据保护单元的粒度从而生成相应的ECC码,将该ECC码作为带有48位前缀的压缩数据的后缀,最后将带有48位前缀和后缀的压缩数据通过压缩数据输出口(10)传送到压缩仲裁器的压缩数据输入口(9),并通过压缩仲裁器的数据输出口(6)存入末级高速缓存,当所述的控制器需要向末级高速缓存读取数据时,先通过控制器获取扩展标记中对应需要读取的数据的状态信息组,将该压缩的状态信息组的状态信息逐一按顺序发送到解压仲裁器进行仲裁,如果该状态信息为压缩,控制器驱动末级高速缓存通过末级高速缓存寻址方式将对应末级高速缓存地址的带有48位前缀和后缀的压缩数据发送到缓存数据错误校验装置的读取压缩数据输入口(15),随后经过缓存数据校验装置来对该带有48位前缀和后缀的压缩数据实施校验,如果校验结果无错误位,则将该带有48位前缀和后缀的压缩数据通过校验后读取压缩数据输出口(13)发送到数据解压缩装置的校验后读取压缩数据输入口(11),数据解压缩装置对校验后的压缩数据进行解压缩,进行解压缩后的数据经由解压数据输出口(12)发送到解压仲裁器的解压数据输入口(14),解压仲裁器将解压缩后的数据通过读取数据输出口(17)发送到一级缓存;如果校验结果有错误位,则放弃该带有48位前缀和后缀的压缩数据,另外如果所述的状态信息为未压缩,控制器驱动末级高速缓存通过末级高速缓存寻址方式将对应末级高速缓存地址的未压缩数据直接发送至解压仲裁器的解压仲裁器的读取未压缩数据输入口(16),解压仲裁器将解压缩后的数据通过读取数据输出口(17)发送到一级缓存。
3.根据权利要求2所述的提高计算机末级高速缓存可靠性的方法,其特征在于:所述的根据生成数据保护单元的粒度从而生成相应的ECC码的规则为64位的生成数据保护单元粒度生成8个8位的冗余位,128位的生成数据保护单元粒度生成4个9位的冗余位,256位的生成数据保护单元粒度生成2个10位的冗余位,512位的生成数据保护单元粒度生成一个11位的冗余位。
4.根据权利要求2或权利要求3所述的提高计算机末级高速缓存可靠性的方法,其特征在于:所述的生成可变ECC码装置包括数据保护单元粒度划分模块以及可变ECC生成模块,所述的数据保护单元粒度划分模块执行生成数据保护单元的粒度,可变ECC生成模块执行生成相应的ECC码并将该ECC码作为带有48位前缀的压缩数据的后缀的操作。
5.根据权利要求2或权利要求3所述的提高计算机末级高速缓存可靠性的方法,其特征在于:所述的缓存数据错误校验装置包括并行前缀译码模块、带有比较器的可变ECC粒度译码模块以及ECC检测校验模块,所述的并行前缀译码模块执行导出压缩数据的大小并将该压缩数据的大小送入带有比较器的可变ECC粒度译码模块的操作;可变ECC粒度译码模块通过其比较器比较压缩数据的大小和预先设置的数据值组即可导出对应的保护单元粒度并送入ECC检测校验模块;ECC检测校验模块根据该保护单元粒度从压缩数据中取出ECC校验码,同时根据数据保护单元粒度划分ECC校验码和压缩数据,将压缩数据划分为两个以上的数据保护单元,相应的ECC校验码也划分为相同数量的单元,之后相应的ECC校验码对相对应的数据保护单元做错误检测与纠错,得到校验结果。
6.根据权利要求2或权利要求3所述的提高计算机末级高速缓存可靠性的方法,其特征在于:所述的数据解压缩装置包括带有查找表的并行前缀译码器,并行移位寄存器,压缩字偏移计算加法器阵列,16X32位寄存器以及并行模式译码器,所述的并行前缀译码器将带有48位前缀和后缀的压缩数据的前缀经过其查找表得到每个压缩数据的偏移量,并将该偏移量输出到压缩字偏移计算加法器阵列,压缩字偏移计算加法器阵列依次对每个压缩数据的偏移量进行累加而得到累加和,并将对应的累加和输入并行移位寄存器中,从而对压缩数据进行移位,结果放在16X32位寄存器中,最后通过并行模式译码器和相应的前缀共同对压缩数据进行译码得到解压缩后的数据。
7.根据权利要求2或权利要求3所述的提高计算机末级高速缓存可靠性的方法,其特征在于:所述的扩展标记为在缓存的tag中增加一位压缩状态信息位,用来标识缓存块的压缩状态信息。
CN2011100772107A 2011-03-29 2011-03-29 提高计算机末级高速缓存可靠性的数据压缩装置及其方法 Expired - Fee Related CN102129873B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011100772107A CN102129873B (zh) 2011-03-29 2011-03-29 提高计算机末级高速缓存可靠性的数据压缩装置及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011100772107A CN102129873B (zh) 2011-03-29 2011-03-29 提高计算机末级高速缓存可靠性的数据压缩装置及其方法

Publications (2)

Publication Number Publication Date
CN102129873A CN102129873A (zh) 2011-07-20
CN102129873B true CN102129873B (zh) 2012-07-04

Family

ID=44267924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100772107A Expired - Fee Related CN102129873B (zh) 2011-03-29 2011-03-29 提高计算机末级高速缓存可靠性的数据压缩装置及其方法

Country Status (1)

Country Link
CN (1) CN102129873B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9355038B2 (en) * 2014-09-11 2016-05-31 Qualcomm Incorporated Cache bank spreading for compression algorithms
US20160092361A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Caching technologies employing data compression
US9864541B2 (en) * 2015-02-13 2018-01-09 Google Llc Transparent hardware-assisted memory decompression
CN105930492A (zh) * 2016-05-05 2016-09-07 北京思特奇信息技术股份有限公司 一种将关系表数据载入缓存的系统和方法
CN106648955B (zh) * 2016-11-15 2020-01-31 杭州华为数字技术有限公司 压缩方法及相关装置
CN108665939B (zh) * 2017-03-31 2021-01-05 厦门旌存半导体技术有限公司 为存储器提供ecc的方法与装置
CN108182125B (zh) * 2017-12-27 2021-05-18 武汉理工大学 近阈值电压下高速缓存多位硬错误的检测及容错装置与方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263413B1 (en) * 1997-04-30 2001-07-17 Nec Corporation Memory integrated circuit and main memory and graphics memory systems applying the above
CN1894677A (zh) * 2003-04-16 2007-01-10 皇家飞利浦电子股份有限公司 采用对存储在存储器中的数据进行压缩的数据处理装置
CN101794623A (zh) * 2009-06-01 2010-08-04 深圳市朗科科技股份有限公司 存储设备的纠错装置及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263413B1 (en) * 1997-04-30 2001-07-17 Nec Corporation Memory integrated circuit and main memory and graphics memory systems applying the above
CN1894677A (zh) * 2003-04-16 2007-01-10 皇家飞利浦电子股份有限公司 采用对存储在存储器中的数据进行压缩的数据处理装置
CN101794623A (zh) * 2009-06-01 2010-08-04 深圳市朗科科技股份有限公司 存储设备的纠错装置及方法

Also Published As

Publication number Publication date
CN102129873A (zh) 2011-07-20

Similar Documents

Publication Publication Date Title
CN102122959B (zh) 提高计算机主存可靠性的数据压缩装置及其方法
CN102129873B (zh) 提高计算机末级高速缓存可靠性的数据压缩装置及其方法
TWI609263B (zh) 可變大小快閃轉變層
KR101759658B1 (ko) 메모리 장치 및 메모리 시스템
US9495288B2 (en) Variable-size flash translation layer
US8407378B2 (en) High-speed inline data compression inline with an eight byte data path
US8495464B2 (en) Reliability support in memory systems without error correcting code support
CN102799495B (zh) 用于生成校验和的装置
US11955995B2 (en) Apparatus and method for two-stage lossless data compression, and two-stage lossless data decompression
CN101489135B (zh) 一种方便ldpc长码在fpga实现的编码器及编码方法
CN108182125B (zh) 近阈值电压下高速缓存多位硬错误的检测及容错装置与方法
CN106874140B (zh) 数据存储方法及装置
US10860419B2 (en) Minimal aliasing bit-error correction code
CN113297001B (zh) 一种raid编解码方法及编解码电路
CN111684433A (zh) 存储器模块数据对象处理系统和方法
CN103078646B (zh) 字典查询压缩、解压缩方法及其装置
US10498865B2 (en) Security-oriented compression
CN116302670A (zh) 编解码方法、编解码器、芯片、硬盘、通讯系统
US8239737B2 (en) Data line storage and transmission utilizing both error correcting code and synchronization information
CN110209598B (zh) 一种高速缓冲存储器、一种数据读写控制方法及系统
CN112000509B (zh) 一种基于向量指令的纠删码编码方法、系统及装置
JP7358279B2 (ja) メモリシステム
CN106877975B (zh) 可锯齿解码的分布式存储中硬判决联合译码的方法
US20240289216A1 (en) Balanced error correction code including explicit quantized knuth index
CN114610523A (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

Granted publication date: 20120704

Termination date: 20150329

EXPY Termination of patent right or utility model