本申请是关于一种存储器装置的改良测试方法,尤其是有关于在以晶片堆叠技术实作而成的计算机系统中测试存储器的方法。
背景技术:
1、在这个年代,人工智能和区块链的应用成为一种新的商机。区块链可以广泛应用于智能合约,数字身份,共享经济等应用。
2、然而一些区块链平台为了各种安全性考量或是漏洞修补,经常会改变区块链的算法。除了增加运算难度之外,也经常刻意为了降低专用集成电路(asic)的运算效率而做出特殊设计,例如增加存储器吞吐量的要求,或是存储装置的容量要求。
3、因此,对于区块链服务器的开发者而言,也随着必须要改变硬件架构,来适应对存储器吞吐量的高标准要求。因此,全新的区块链服务器的硬件架构,是有待开发的。除此之外,适用于新硬件架构的存储器控制方法和存储器测试方法,都需要有对应的改良机制。
技术实现思路
1、传统的存储器测试方法需要在晶片内部配置一个专用的测试模块,才能对存储器进行测试。在基于晶片堆叠架构的计算机系统中,测试全部的存储器单元可能花费巨大的时间。然而针对特定应用而言,有时只需要知道某个区域的存储器的错误率是否小于某一个值。若这个区域的存储器的错误率能满足需求,那这个存储器就可以用,无需知道此区域中所有坏点的位置。因此本申请实施例提出一种快速测试方法,利用运算模块中原生的算法搭配不同的初始值和已知解,即可直接根据运算模块的运算结果来判断存储器装置的可用性。
2、本申请的存储器测试方法,尤其适用于基于晶片堆叠架构的计算机系统中。所谓晶片堆叠架构,即所述计算机系统是由存储器晶体层、逻辑电路层和基底以wafer onwafer技术形成的晶片堆叠。所述存储器晶体层包含至少一个存储器装置。所述逻辑电路层透过多个连接垫与所述存储器装置连接,包含固件,运算模块连接所述固件和所述存储器装置,及判断模块连接所述运算模块。
3、在进行存储器测试时,基本上会将所述存储器装置分为多个存储器子区块,各别进行测试。在测试一个存储器子区块时,首先在所述存储器子区块中建立数据表。接着提供预先准备好的多个不同的初始值,以及每一个初始值对应的已知解。每一个初始值是所述运算模块进行工作量证明运算时所需的值。所述工作量证明运算可对所述数据表进行多次读写而产生对应每一个初始值的多个运算结果。所述判断模块从所述运算模块获取所述等运算结果后,并与对应的已知解比较,就能统计所述受测存储器子区块的错误率。
4、在进一步的实施例中,所述判断模块将所述存储器子区块的错误率和临界值比较,以判断所述存储器子区块的可用性为可用或不可用。之后,所述判断模块根据可用性的判断结果,将所述存储器子区块的编号记录在所述固件中。
5、在具体的实施例中,所述工作量证明运算可以是一种乙太杂凑算法(ethash)。所述数据表是有向无环图(directed acyclic graph;dag)。
6、为了使每一存储器子区块中的存储器单元完整受到测试,可通过运算模块的程控配置,在所述存储器子区块中产生大小与所述存储器子区块一致的有向无环图。
7、在进一步的实施例中,所述预先准备的初始值和对应的已知解,可以是出厂时预存在固件中,或是即时由外部输入的值。在进行测试时,由判断模块从固件中或外部获取已知解,和测试结果比对。
8、本申请也提出上述基于晶片堆叠架构的计算机系统的实施例。
9、综上所述,本申请实施例提出的存储器测试方法,适用于晶片堆叠架构的计算机系统。利用运算模块中原生的算法搭配不同的初始值和已知解,即可直接根据运算模块的运算结果来判断存储器装置的可用性。本方法不需要在计算机系统中另外设计测试逻辑,而且测试的效率也指数提升。
1.一种存储器测试方法,其特征在于,应用于计算机系统中;其中所述计算机系统包含至少一个存储器装置,固件,连接所述固件和所述存储器装置的运算模块,及连接所述运算模块的判断模块;其中所述存储器测试方法包含:
2.根据权利要求1所述的存储器测试方法,其特征在于,进一步包含:
3.根据权利要求2所述的存储器测试方法,其特征在于,进一步包含:
4.根据权利要求1所述的存储器测试方法,其特征在于:
5.根据权利要求4所述的存储器测试方法,其特征在于:
6.一种基于晶片堆叠架构的计算机系统,其特征在于,包含:
7.根据权利要求6所述的基于晶片堆叠架构的计算机系统,其特征在于,所述判断模块将所述存储器子区块的错误率和临界值比较,判断所述存储器子区块的可用性。
8.根据权利要求7所述的基于晶片堆叠架构的计算机系统,其特征在于,所述判断模块根据所述可用性的判断结果,将所述存储器子区块的编号记录在所述固件中。
9.根据权利要求6所述的基于晶片堆叠架构的计算机系统,其特征在于:
10.根据权利要求9所述的基于晶片堆叠架构的计算机系统,其特征在于:
11.根据权利要求6所述的基于晶片堆叠架构的计算机系统,其特征在于,进一步包含存储器晶体层、逻辑电路层和至少一个基底叠合为立体结构;其中: