主权项 |
提高计算机主存可靠性的数据压缩的方法,基于包括压缩数据装置和数据解压缩装置的如下装置:该压缩数据装置的数据输入口(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)发送到解压缩数据装置的解压数据输出口(12),解压缩数据装置对校验后的压缩数据进行解压缩,进行解压缩后的数据经由解压数据输出口(12)发送到解压仲裁器的解压数据输入口(14),解压仲裁器将解压缩后的数据通过读取数据输出口(17)发送到总线接口部件BIU,最后解压缩后的数据由总线接口部件BIU转存至高速缓存结构中;如果校验结果有错误位,则放弃该带有48位前缀和后缀的压缩数据,另外如果所述的状态信息为未压缩,控制器驱动计算机主存系统通过主存寻址方式将对应主存地址的未压缩数据直接发送至解压仲裁器的读取未压缩数据输入口(16),解压仲裁器将解压缩后的数据通过读取数据输出口(17)发送到总线接口部件BIU,最后解压缩后的数据由总线接口部件BIU转存至高速缓存结构中,其中所述的扩展旁路转换缓冲器TLB为在旁路转换缓冲TLB的每一个表项中加入64位压缩状态信息位,该64位压缩状态信息位是指在4KB大小的一页中共包含64个缓存块,每个缓存块的大小为64B,其中每一位压缩状态信息位依次对应一个缓存块。 |