本发明专利技术提供一种在存取存储器时进行数据错误检查/校正的方法及相关装置。在优选实施例中,本发明专利技术可在同一时钟周期取得多笔数据及多笔检查码,而这多笔数据可视为一整体数据,多笔检查码则可视为一整体的检查数据;利用此一检查数据,就可检查/校正该整体数据,等效上也就是检核原先的多笔数据。举例来说,在存取32位数据架构的双倍数据率存储器时,本发明专利技术就可将同一时钟周期中取得的两笔32位数据视为一笔64位的数据,并沿用64位数据/8位检查码的算法来实现32位架构下的错误检核。
【技术实现步骤摘要】
本专利技术提供一种数据错误检查方法及相关系统,尤指一种在存取高倍数据率的存储器时进行错误检查/校正的方法及相关系统。
技术介绍
在现代信息社会中,电脑系统已经被广泛运用于社会生活的每一方面,除了个人电脑、服务器等一般应用外,像是提款机(ATM)等金融服务的终端机,某些多功能的物品/票证贩售机以及各种信息家电中,也都设有嵌入式架构的电脑系统。在不同的应用下,不同的电脑系统也可能会有不同的系统需求。举例来说,个人电脑/服务器比较讲求高效能与扩充性;相较之下,提款机等金融服务终端机则较为注重数据存取的正确性,不需讲究极致的效能,以换取成本的降低。而要如何满足不同电脑系统的不同需求,也就成为信息厂商的研发重点之一。如本领域技术人员所知,电脑系统中会设有中央处理器、存储器、芯片组,以搭配其他的外围设备(像是非易失性存储的硬盘、光盘、输出入接口、网络存取装置)来实现电脑系统的整体功能。其中,中央处理器主控电脑系统的运行,负责程序执行、数据处理及数据运算,存储器(像是随机存取存储器)则用来储存中央处理器运行期间所需的程序、资料及数据。而设于中央处理器、存储器之间的芯片组,就是用来管理中央处理器(或其他装置)对存储器的数据存取。另外,芯片组中还可实现错误检查/校正(errorchecking/correction)的机制,确保存储器数据存取的正确性。在现行的主流存储器架构(像是个人电脑的存储器架构)下,芯片组可通过一个具有64条并行线的总线来存取存储器中的数据。也就是说,在同一时间内,集合每条并行线所分别传输的一位,芯片组就能通过此总线存取一笔64位的数据。配合64位的数据,现在已经发展出「64位数据/8位错误检查码」的算法,以根据64位的数据算出8位的错误检查码,实现错误检查/校正的机制。换句话说,在此种机制下,存储器/芯片组之间的总线除了要以64条并行线来传输一般的数据外,还要另外设有8条并行线来传输8位的错误检查码。在现有的错误检核机制中,芯片组进行错误检查/校正的运作情形可描述如下。当芯片组要将一笔64位的数据写入(储存)至存储器时,会先利用「64位数据/8位错误检查码」算法,以根据该笔数据的内容计算出一对应的8位错误检查码,再将该笔数据及该错误检查码同时写入存储器中。等芯片组要将该笔64位数据由存储器中读出时,芯片组也会将原先写入存储器中的8位错误检查码一并读出以做一参考的检查码。读出数据后,芯片组会利用相同的错误检核算法,根据读出的64位数据再度算出一笔新的8位错误检查码,并将此一新算出的错误检查码与原先写入/读出的参考检查码进行比较,看看两者是否相符。若两者相符,代表数据存取正确,没有错误发生。相对地,若两者不相符,就代表读出的数据已经损毁而发生数据错误;此时,芯片组就可采取相对的错误管理运行,像是根据参考检查码/错误检查码来判断错误发生的型态(如有几位数据被损毁)、错误的位置(错误发生在哪一位)、甚至进而修正读出的数据,或是将数据错误的情形回报至中央处理器以通知电脑系统的使用者。在个人电脑/服务器的应用中,存储器是由存储器模块组成的;而现行的主流存储器模块中可设有9个存储器颗粒,每个存储器颗粒可在同一时间提供8位的数据,集合9个存储颗粒在同一时间内总共所能提供的72位,现有的错误检核机制就刚好能支持「64位数据/8位错误检查码」算法,在存取8个存储器颗粒所提供的64位数据时,同步地利用另一存储器颗粒所提供的8位错误检查码来进行错误检核。虽然上述现有的错误检核机制已成为信息业界的标准作法,但还是缺乏运用上的适应性,较难普遍适用于嵌入式架构等结构精简的低成本电脑系统。为了要配合「64位数据/8位错误检查码」的算法,现有技术会一次从存储器中读出64位的数据,以配合此64位的数据计算出对应的8位的错误检查码。然而,像在金融服务终端机等应用中,以九个存储颗粒来架构存储器会使得电脑系统的成本偏高;若是以较少的存储颗粒来架构存储器,现有技术就不能在同一时间内取得64位的数据,也就不能沿用「64位数据/8位错误检查码」的算法来实现错误检核。举例来说,在嵌入式架构的低成本电脑系统中,以4个存储颗粒所能同时提供的32位数据是存储器架构合理的选择之一;但在此32位数据架构下,现有技术一次仅能存取32位的数据,就无法以此32位的数据来直接套用「64位数据/8位错误检查码」算法。若是要为32位数据架构设计一套专用的错误检核运算法,则会增加演算机制与电路设计生产的成本。况且,如本领域技术人员所知,32位的数据可能需要6位的错误检查码才能实现错误检核,相较之下,64位数据/8位错误检查码的错误检核就经济多了。因为,在32位数据/6位错误检查码的错误检核架构下,平均每一位的数据需要0.1875个错误检查位;但在64位数据/8位错误检查码的错误检核架构下,平均每一位的数据仅需0.1275个错误检查位。
技术实现思路
因此,本专利技术的主要目的,即在于提供一种能兼顾各种应用的错误检核机制,以克服现有技术的缺点。随着存储器技术的进步,存储器的数据传输效能也越来越好,并出现了高倍数据率的存储器技术,像是双倍数据率(DDR,double-data-rate)的存储器。在同一时钟周期中的上升沿与下降沿,双倍数据率的存储器都能传输数据,使芯片组能在同一时钟周期中取得两笔数据。而在本专利技术的优选实施例中,本专利技术就是利用此特点,让芯片组将同一时钟周期中取得的多笔数据合并视为一整体数据,并利用此一整体数据来计算对应的错误检查数据,实现错误检核机制。举例来说,在运用于低成本电脑系统的32位数据架构时,本专利技术可将同一周期中先后传来的两笔32位数据合并为一个64位的整体数据,并利用「64位数据/8位错误检查码」的算法计算出对应的8位错误检查码。利用此8位错误检查码,就可检查/校正64位的整体数据,等效上也就是对原先的两笔32位数据分别进行检查/校正。配合本专利技术的错误检核机制,电脑系统的存储器中除了以4个8位存储器颗粒提供32位的数据空间外,仅需另设一个4位的存储器颗粒来支持4位的错误检查码。当要将32位的两笔数据以双倍数据率写入存储器时,本专利技术可根据这两笔数据合并为64位数据,沿用「64位数据/8位错误检查码」算法算出一个8位错误检查码,并将此8位错误检查码分解为两笔各4位的检查子数据;再配合同一时钟周期的上升沿与下降沿而分别将两笔32位数据写入存储器的4个8位存储器颗粒时,同时也将这两笔4位检查子数据先后写入4位存储器颗粒。在将数据由存储器中读出时,本专利技术除了在同一周期中先后读出两笔32位数据,也会同时读出两笔对应的4位检查子数据做为参考子数据。两笔32位数据会合并为一64位的整体数据,并利用「64位数据/8位错误检查码」的算法算出一个8位的错误检查码;而两笔被读出的4位检查子数据则会被合并为一个8位的参考检查码。比较8位的错误检查码及参考检查码,就能对64位的整体数据进行错误检查/校正,等效上也就是对原先读出的两笔32位数据进行检核。以此种方法来实现错误检核机制,就能在32位数据架构下沿用「64位数据/8位错误检查码」的算法,不仅能实现较为经济的错误检核机制以减少每个数据位所需的错误检查位,也不需为32位数据架构重新设计/开发新的错误检核算法,降低了本文档来自技高网...
【技术保护点】
一种进行数据错误检查的方法,其包含有: 将累积取得的多笔数据合并为一整体数据; 根据该整体数据进行一错误检查码算法,以计算出对应的一检查数据; 将该检查数据划分为多笔检查子数据,使各笔检查子数据对应于该多笔数据中的一笔数据;以及 当要顺序传输每一笔数据时,同时传输其对应的检查子数据。
【技术特征摘要】
【专利技术属性】
技术研发人员:林景祥,江蕙如,丁杰,
申请(专利权)人:威盛电子股份有限公司,
类型:发明
国别省市:71[中国|台湾]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。