CN117577164A - 存储器控制器测试方法及装置 - Google Patents
存储器控制器测试方法及装置 Download PDFInfo
- Publication number
- CN117577164A CN117577164A CN202311361417.6A CN202311361417A CN117577164A CN 117577164 A CN117577164 A CN 117577164A CN 202311361417 A CN202311361417 A CN 202311361417A CN 117577164 A CN117577164 A CN 117577164A
- Authority
- CN
- China
- Prior art keywords
- memory controller
- cache
- command
- data
- module
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 376
- 238000012360 testing method Methods 0.000 title claims abstract description 174
- 238000012545 processing Methods 0.000 claims abstract description 54
- 238000000034 method Methods 0.000 claims abstract description 53
- 230000002093 peripheral effect Effects 0.000 claims abstract description 35
- 230000003993 interaction Effects 0.000 claims abstract description 28
- 238000013500 data storage Methods 0.000 claims abstract description 22
- 230000009471 action Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 description 26
- 239000007787 solid Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 239000000306 component Substances 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
- G11C29/56008—Error analysis, representation of errors
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开一种存储器控制器测试方法及装置,方法包括:通过接口信号处理模块接收存储器控制器发出的主控信号,并确定主控信号的数据流向类型,以及根据从存储器控制器的主控接口接收到的管脚信号,来区分接收到的主控信号中包含的地址、命令和数据;将命令输入命令解码模块以确认命令正确及有效后,将命令和地址存入分选缓存模块,以及将地址存入缓存控制模块;基于缓存控制模块分配的数据存放地址,将数据存入第一缓存;基于缓存访问模块实现第一缓存与第二缓存之间的数据交互;通过处理器访问状态存储器以获取存储器控制器的运行状态信息,并基于外设接口将运行状态信息发送至测试端,提高存储器控制器测试的效率和准确性。
Description
技术领域
本申请涉及存储器控制器测试技术领域,具体涉及一种存储器控制器测试方法及装置。
背景技术
固态硬盘(SSD)是一种使用闪存(Flash)芯片作为存储介质的存储设备,存储器控制器是SSD的核心部件之一,它负责控制闪存芯片进行数据读取、写入等操作,并负责与主机进行数据交换和通信。因此,存储器控制器的性能和稳定性直接影响到SSD的整体性能和稳定性。
在设计和生产SSD时,对存储器控制器的测试是一个非常重要的环节。然而,目前在测试存储器控制器时,难以直观地观察和记录存储器控制器与闪存交互的命令、地址、闪存状态、读写数据等信息,这使得当存储器控制器存在问题时,定位错误流程变得非常复杂。
目前,存储器控制器与闪存之间的交互过程通常通过硬件或者固件来进行调试和故障排除。这种方法需要大量的时间和人力投入,而且不能准确地记录和展示整个交互过程,使得故障定位非常困难。
发明内容
本申请实施例提供一种存储器控制器测试方法及装置,可以在测试存储器控制器时能够直观地观察和记录存储器控制器与用于模拟闪存的存储器控制器测试装置的交互过程中存储器控制器的运行状态信息,简化存储器控制器测试流程,提升故障定位的准确性,提高了存储器控制器测试的效率和准确性。
一方面,本申请实施例提供一种存储器控制器测试方法,应用于存储器控制器测试装置,所述存储器控制器测试装置包括接口信号处理模块、命令解码模块、分选缓存模块、缓存控制模块、缓存访问模块、第一缓存、第二缓存、状态存储器和处理器,所述方法包括:
通过所述接口信号处理模块接收存储器控制器发出的主控信号,并确定所述主控信号的数据流向类型;
根据从所述存储器控制器的主控接口接收到的管脚信号,来区分接收到的所述主控信号中包含的地址、命令和数据;
将所述命令输入所述命令解码模块以确认所述命令正确及有效后,将所述命令和所述地址存入所述分选缓存模块,以及将所述地址存入所述缓存控制模块;
基于所述缓存控制模块分配的数据存放地址,将所述数据存入所述第一缓存;
基于所述缓存访问模块实现所述第一缓存与所述第二缓存之间的数据交互;
通过所述处理器访问所述状态存储器以获取所述存储器控制器的运行状态信息,并基于外设接口将所述运行状态信息发送至测试端。
另一方面,本申请实施例提供一种存储器控制器测试装置,所述装置包括接口信号处理模块、命令解码模块、分选缓存模块、缓存控制模块、缓存访问模块、第一缓存、第二缓存、状态存储器和处理器,其中:
所述接口信号处理模块,用于接收存储器控制器发出的主控信号,并确定所述主控信号的数据流向类型,以及根据从所述存储器控制器的主控接口接收到的管脚信号,来区分接收到的所述主控信号中包含的地址、命令和数据;
所述命令解码模块,用于输入所述命令并确认所述命令是否正确及有效;
所述分选缓存模块,用于在确认所述命令正确及有效后存储所述命令和所述地址;
所述缓存控制模块,用于在确认所述命令正确及有效后存储所述地址,并对所述数据分配数据存放地址;
所述第一缓存,用于基于所述数据存放地址存储所述数据;
所述缓存访问模块,用于实现所述第二缓存与所述第一缓存之间的数据交互;
所述处理器,用于访问所述状态存储器以获取所述存储器控制器的运行状态信息,并基于外设接口将所述运行状态信息发送至测试端。
本申请实施例通过接口信号处理模块接收存储器控制器发出的主控信号,并确定主控信号的数据流向类型,以及根据从存储器控制器的主控接口接收到的管脚信号,来区分接收到的主控信号中包含的地址、命令和数据;然后将命令输入命令解码模块以确认命令正确及有效后,将命令和地址存入分选缓存模块,以及将地址存入缓存控制模块;基于缓存控制模块分配的数据存放地址,将数据存入第一缓存;基于缓存访问模块实现第一缓存与第二缓存之间的数据交互;通过处理器访问状态存储器以获取存储器控制器的运行状态信息,并基于外设接口将运行状态信息发送至测试端。本申请实施例通过存储器控制器与用于模拟闪存的存储器控制器测试装置之间进行数据交互和测试,在测试存储器控制器时能够直观地观察和记录存储器控制器与存储器控制器测试装置的交互过程中存储器控制器的运行状态信息,简化存储器控制器测试流程,提升故障定位的准确性,提高了存储器控制器测试的效率和准确性,进而有效提高闪存存储器控制器的开发效率。
附图说明
图1为本申请实施例提供的存储器控制器测试系统的结构示意图。
图2为本申请实施例提供的存储器控制器测试装置的结构示意图。
图3为本申请实施例提供的存储器控制器测试方法的流程示意图。
图4为本申请实施例提供的存储器控制器测试方法的第一应用场景示意图。
图5为本申请实施例提供的存储器控制器测试方法的第二应用场景示意图。
图6为本申请实施例提供的存储器控制器测试方法的第三应用场景示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优先顺序的限定。
请参考图1,图1为本申请实施例提供的存储器控制器测试系统的结构示意图。该存储器控制器测试系统包括存储器控制器100、存储器控制器测试装置200和测试端300,以及与存储器控制器100连接的SSD主机40等;存储器控制器100和存储器控制器测试装置200之间、以及存储器控制器测试装置200和测试端300之间通过网络连接,比如,通过有线或无线网络连接等。
其中,存储器控制器100,为待测的存储器控制器设备,可以为闪存存储器控制器制器(Flash Master Controler),通过于闪存(Flash芯片管脚与存储器控制器测试装置200通信。
存储器控制器测试装置200,可以为闪存模拟器(Flash Emulator),可以基于现场可编程逻辑门阵列(FPGA)模拟闪存(Flash)芯片,可用于闪存存储器控制器测试。存储器控制器测试装置200通过Flash芯片管脚与存储器控制器100相连,模拟Flash芯片行为,并可将命令、地址、闪存状态、读写数据等信息储存在缓存中。实现对存储器控制器100的测试。
测试端300可以为一台测试计算机,比如测试计算机A,测试端300用于获取存储器控制器100的运行状态信息。测试端300还可以用于根据期望模拟的闪存型号,初始化存储器控制器测试装置200。测试端300还可以用于记录储存在存储器控制器测试装置200缓存中的存储器控制器100发送的命令地址等信息。测试端300还可以用于读出并储存存储器控制器测试装置200缓存中储存的所模拟的闪存芯片中储存的数据。测试端300还可以用于显示存储器控制器测试装置200检查到的存储器控制器运行错误信息。
在实际中进行测试时,可以使用一台计算机作为SSD主机40(比如测试计算机B)连接存储器控制器100,以向存储器控制器100发送读写LBA(Logic Block Address,逻辑块地址)等操作固态硬盘的命令,并进行数据的传输。其中,SSD主机40与存储器控制器100之间可以通过硬盘接口进行连接,比如,该硬盘接口可以包括SATA接口、NVME接口与USB接口等接口中的任一种。
其中,待测的存储器控制器100与存储器控制器测试装置200共同构成一个模拟的固态硬盘。因此,SSD主机40操作的设备(存储器控制器100与存储器控制器测试装置200共同构成的模拟固态硬盘)和普通固态硬盘并无差异。响应于SSD主机40(测试计算机B)的测试命令,存储器控制器100向存储器控制器测试装置200(闪存模拟器)发送携带读写指令的主控信号,存储器控制器测试装置200(闪存模拟器)在这个测试过程中通过对主控信号的解析与存储器控制器100(闪存主控制器)进行数据交互,并发确定存储器控制器100(闪存主控制器)的运行过程是否存在错误,测试端300(测试计算机A)通过外设接口连接存储器控制器测试装置200(闪存模拟器)用于获取此测试过程中存储器控制器100的运行状态信息,在存储器控制器100出现错误时可以通过分析运行状态信息中的存储器控制器运行错误信息来快速的定位故障原因。
本申请实施例提供一种存储器控制器测试装置。请参阅图2,图2为本申请实施例提供的存储器控制器测试装置的结构示意图。该存储器控制器测试装置200可以包括:接口信号处理模块1(Interface Process)、命令解码模块2(CMD Decoder)、分选缓存模块3(Sorting Hat Buffer)、缓存控制模块4(Cache Buffer Ctrl)、缓存访问模块5(DirectMemory Access Controller,DMAC)、第一缓存6(Data Cache)、第二缓存7、状态存储器8(D-MEM)、处理器9(CPU)、外设接口10和控制寄存器11(EFIP Ctrl Reg)。
其中,该存储器控制器测试装置200可以为闪存模拟器(Flash Emulator)。
接口处理模块1(Interface Process),可以用于负责存储器控制器100与存储器控制器测试装置200之间的闪存芯片管脚的IO接口的控制。其中,该存储器控制器100可以为闪存主控制器(Flash Master Controler)通过于闪存芯片管脚与存储器控制器测试装置200通信。接口处理模块1接收来自存储器控制器100的主控信号,并根据预设的延迟时间进行输入信号的延迟处理,并对输入信号进行采样。同时,接口处理模块1还将从缓存控制模块4(Cache Buffer Ctrl)接收到的数据发送到存储器控制器100,实现输出信号的延迟处理。其中,该主控信号可以为输入信号,也可以为输出信号,该接口信号处理模块1,用于在接收存储器控制器100发出的主控信号时,开始判断该主控信号的数据流向类型是数据输入还是数据输出。若数据流向类型为数据输入,则进行输入信号的延迟和采样。若数据流向类型为数据输出,则进行输出信号的延迟。接口处理模块1(Interface Process)还可以自动识别并处理多种类型的接口,如USB、PCIe、SATA等接口。
命令解码模块2(CMD Decoder),可以用于负责处理接口处理模块1(InterfaceProcess)采样到的命令信息。命令解码模块2(CMD Decoder)将采样到的命令与预先配置好的命令集进行对比,解析命令含义,从而控制存储器控制器测试装置200的行为。
分选缓存模块3(Sorting Hat Buffer),用于负责暂时储存由处理接口处理模块1(Interface Process)采样到的地址与命令信息。只有在命令解码模块2(CMD Decoder)确认命令正确、有效后,才会将这些信息存储在分选缓存模块3(Sorting Hat Buffer)中。分选缓存模块3(Sorting Hat Buffer)可以提高存储器控制器测试装置200的数据处理能力和效率,减少数据传输延迟。
缓存控制模块4(Cache Buffer Ctrl),可以用于处理由接口处理模块1采样到的地址信息。根据这些地址信息,缓存控制模块4(Cache Buffer Ctrl)为从存储器控制器100输入的数据分配存储在第一缓存6(Data Cache)中的地址,并控制从第一缓存6(DataCache)输出到存储器控制器100的数据的地址。缓存控制模块4(Cache Buffer Ctrl)还可以根据地址信息进行数据调度,确保数据的准确传输。
第一缓存6(Data Cache),可以用于负责暂时存储存储器控制器100输入到存储器控制器测试装置200的信息以及准备输出到存储器控制器100的信息。第一缓存6(DataCache)根据缓存控制模块4(Cache Buffer Ctrl)的指示,进行数据存储和数据检索。第一缓存6(Data Cache)可采用高速缓存算法,实现数据的快速查找和调度。
缓存访问模块5(Direct Memory Access Controller,DMAC),可以用于负责处理第二缓存7与第一缓存6(Data Cache)之间的数据交互。缓存访问模块5(DMAC)根据接口处理模块1(Interface Process)的指令,将第一缓存6(Data Cache)中的数据搬运至第二缓存7,实现数据的快速、直接访问。缓存访问模块5可以使用高效的直接内存访问(DirectMemory Access,DMA)引擎,实现数据的快速搬运,提高整体的数据传输速率。
第二缓存7,可以为双倍速率同步动态随机存储器(DDR),可以用于负责存储存储器控制器100输入到存储器控制器测试装置200的信息以及准备输出到存储器控制器100的信息。第二缓存7可以通过缓存访问模块5(DMAC)接收和存储数据,为存储器控制器100提供数据支持。第二缓存7可采用高速的随机存取存储器(Random Access Memory,RAM)芯片,以提供快速的存储和读取功能。
状态存储器8(D-MEM),用于存储程序中使用的变量、中间结果和临时数据。
处理器9,为存储器控制器测试装置200中集成的中央处理器(CentralProcessing Unit,CPU)。该处理器9,可以用于与存储器控制器测试装置200中的各个模块进行交互。处理器9内可以设置有固件(Firmware),该固件可以为存储在处理器9中的执行程序。其中,该处理器9内的固件可以负责以下功能:
用于配置控制寄存器11(EFIP Ctrl Reg);
用于通过分选缓存模块3(Sorting Hat Buffer)来获取存储器控制器测试装置200运行时收到的命令地址等信息;
用于控制缓存访问模块5(DMAC)将第一缓存6(Data Cache)中信息搬运至第二缓存7;以及
用于生成任务队列,使得测试端300可以通过外设接口10(比如PCIE)直接访问CPU的状态存储器8来获取存储器控制器100运行的各种运行状态信息。
该处理器9内的固件具有高度的可配置性和可扩展性,可以满足不同存储器控制器测试需求。
外设接口10,用于负责测试端300与存储器控制器测试装置200之间的信息交互。例如,该外设接口10可采用SATA接口、mSATA接口、NGFF接口、PCIE接口、ATA接口、SCSI接口等。比如,该,该外设接口10以总线接口(PCIE)为例,通过PCIE总线接口,测试端300可以向存储器控制器测试装置200发送指令,同时也可以直接访问存储器控制器测试装置200的内存和寄存器。
控制寄存器11(EFIP Ctrl Reg),用于通过修改该控制寄存器11(EFIP Ctrl Reg)的闪存状态寄存器的内容,以配置该存储器控制器测试装置200模拟不同型号的闪存。控制寄存器11(EFIP Ctrl Reg)内的配置信息由处理器9内的固件生成,并通过命令解码模块2(CMD Decoder)执行。控制寄存器11(EFIP Ctrl Reg)可提供一种灵活的配置方式,使得存储器控制器测试装置200可以适应多种不同型号的闪存。
其中,在进行存储器控制器测试过程中,为了简化存储器控制器测试流程,提升故障定位的准确性,提高存储器控制器测试的效率和准确性,在本申请实施例中,存储器控制器测试装置200中的各个器件可以实现如下功能:
其中,该接口信号处理模块1(Interface Process),用于接收存储器控制器100发出的主控信号,并确定该主控信号的数据流向类型,以及根据从该存储器控制器100的主控接口接收到的管脚信号,来区分接收到的该主控信号中包含的地址、命令和数据;
命令解码模块2(CMD Decoder),用于输入命令并确认该命令是否正确及有效;
该分选缓存模块3(Sorting Hat Buffer),用于在确认该命令正确及有效后存储该命令和该地址;
该缓存控制模块4(Cache Buffer Ctrl),用于在确认该命令正确及有效后存储该地址,并对该数据分配数据存放地址;
该第一缓存6(Data Cache),用于基于该数据存放地址存储该数据;
该缓存访问模块5(DMAC),用于实现第一缓存6(Data Cache)与第二缓存7(DDR)之间的数据交互;
该处理器9,用于访问该状态存储器8(D-MEM)以获取该存储器控制器100的运行状态信息,并基于该外设接口10将该运行状态信息发送至测试端300。
在一些实施例中,该接口信号处理模块1,还用于:
根据该管脚信号中的地址信号(ALE)、命令信号(CLE)和写使能信号(WE),来区分接收到的该主控信号中包含的地址、命令和数据。
在一些实施例中,该存储器控制器测试装置200还包括:控制寄存器11(EFIP CtrlReg),用于修改该控制寄存器11的闪存状态寄存器的内容,以配置该存储器控制器测试装置200模拟不同型号的闪存。
在一些实施例中,若该数据流向类型为数据输入,该处理器9,还用于:
根据该分选缓存模块3中存储的命令和地址,操作该缓存访问模块5将该第一缓存6中存储的第一数据搬移至该第二缓存7中;以及
基于该外设接口10处理该状态存储器8中的命令队列(SQ)和命令反馈队列(CQ)、并与外接处理器(AP)进行沟通,并通过该外接处理器(AP)读取该第二缓存7中的第一数据并将该第一数据存入外接存储器中。
在一些实施例中,若该数据流向类型为数据输出,该处理器9,还用于:
根据该分选缓存模块3中存储的命令和地址,基于该外设接口10处理该状态存储器8中的命令队列(SQ)和命令反馈队列(CQ)、并与外接处理器(AP)进行沟通,并通过该外接处理器(AP)将该外接存储器中该主控信号指示的期望读取的第二数据存入该第二缓存7中;以及
通过操作该缓存访问模块5将该第二缓存7中的第二数据搬移至该第一缓存6中。
在一些实施例中,该处理器9还用于:
响应于该数据流向类型为数据输出的主控信号,将该第一缓存6中的该第二数据输出至该存储器控制器100。
在一些实施例中,该处理器9,还用于:
在该缓存访问模块5每次进行搬移操作时,判断该缓存访问模块5是否还在进行复制动作;
若确定该复制动作未结束,则设置该闪存状态寄存器的值为闪存阵列繁忙状态,或者,若确定该复制动作已结束,则设置该闪存状态寄存器的值为完成状态;
在收到该存储器控制器100发送读取闪存状态寄存器命令时,向该存储器控制器100回复该闪存状态寄存器的值。
例如,在模拟闪存存储操作时,存储器控制器测试装置200的中的各个器件的交互过程如下:
首先,接口信号处理模块1接收存储器控制器100发出的主控信号,并确定主控信号的数据流向类型为数据输入,并对基于主控信号输入的信息进行采样。
然后,接口信号处理模块1根据从存储器控制器100的主控接口接收到的管脚信号,来区分接收到的主控信号中包含的地址、命令和数据。比如,当主控信号的数据流向类型为数据输入时,基于主控信号输入的信息中的数据为第一数据。
然后,将命令输入命令解码模块2,以此控制后续第一缓存6以及分选缓存模块3的行为。比如,将命令输入命令解码模块2以确认命令正确及有效后,将命令和地址存入分选缓存模块3,以及将地址存入缓存控制模块4。缓存控制模块4根据处理器9内的固件在控制寄存器11中配置的储存空间与地址信息,来决定后续需输入的第一数据在第一缓存6中的数据存放地址。然后基于缓存控制模块4分配的数据存放地址,将第一数据存入第一缓存6。
其中,一组命令结束之后,命令解码模块2判断命令是否合法,如果命令合法会将采样到的命令和地址依格式存入分选缓存模块3。
然后,处理器9内的固件根据分选缓存模块3中存储的命令和地址,操作缓存访问模块5将第一缓存6中存储的第一数据搬移至第二缓存7中。其中,在缓存访问模块5每次进行搬移操作时,处理器9内的固件会判断DMAC7是否还在进行复制动作;若确定复制动作未结束,则处理器9内的固件设置闪存状态寄存器的值为闪存阵列繁忙状态(Flash arraybusy),或者,然后等待搬移操作完成并确定复制动作已结束时,则处理器9内的固件设置闪存状态寄存器的值为完成状态(ready);然后在存储器控制器测试装置200收到存储器控制器100发送读取闪存状态寄存器命令时,存储器控制器测试装置200向存储器控制器100回复闪存状态寄存器的值。
然后,处理器9内的固件基于外设接口10处理状态存储器8中的命令队列(SQ)和命令反馈队列(CQ)、并与外接处理器(AP)进行沟通,并通过该外接处理器(AP)读取第二缓存7中的第一数据并将第一数据存入外接存储器中。例如,该外接存储器为外接硬盘。
例如,主机往命令队列(SQ)中写入命令,并通知固态硬盘(SSD)来获取命令;固态硬盘(SSD)收到命令队列(SQ)后,从命令队列(SQ)中获取命令,且执行命令,命令执行完成后,固态硬盘(SSD)往命令反馈队列(CQ)中写入命令执行结果,固态硬盘(SSD)发送中断信号至主机以通知主机命令执行完成,主机收到中断信号后,处理命令反馈队列(CQ),以查看命令的完成状态;主机处理完命令反馈队列(CQ)中的命令执行结果后,向固态硬盘(SSD)反馈命令执行结果已处理的消息。
例如,外接处理器(AP)是外接存储器的处理器,外接处理器(AP)可以根据命令队列(SQ)和命令反馈队列(CQ)中的命令进行数据搬移。
例如,在模拟闪存读取操作时,存储器控制器测试装置200的中的各个器件的交互过程如下:
首先,接口信号处理模块1接收存储器控制器100发出的主控信号,并确定主控信号的数据流向类型为数据输出。首先对输入的命令和地址进行采样,后续可以基于DQS信号输出数据。
例如,第二缓存7以DDR为例,在DDR中,DQS信号主要作用是用来在一个时钟周期内准确的区分出每个数据传输周期,从而便于接收方准确接收数据。DQS信号是双向的,在写入DDR时它用来传送由主设备发来的DQS信号,读取DDR时则由DDR生成DQS向主设备发送,所以DQS其实就是数据的同步信号。
然后,接口信号处理模块1根据从存储器控制器100的主控接口接收到的管脚信号,来区分接收到的主控信号中包含的地址、命令和数据。比如,当主控信号的数据流向类型为数据输出时,基于主控信号输出的数据为第二数据。其中,接口信号处理模块1根据管脚信号中的地址信号(ALE)、命令信号(CLE)和写使能信号(WE),来区分接收到的主控信号中包含的地址、命令和数据。
然后,将命令输入命令解码模块2,以此控制后续第一缓存6以及分选缓存模块3的行为。比如,将命令输入命令解码模块2以确认命令正确及有效后,将命令和地址存入分选缓存模块3,以及将地址存入缓存控制模块4。缓存控制模块4根据处理器9内的固件在控制寄存器11中配置的储存空间与地址信息,来决定后续需输出的第二数据在第一缓存6中的数据存放地址。然后基于缓存控制模块4分配的数据存放地址,将第二数据存入第一缓存6。
其中,一组命令结束之后,命令解码模块2判断命令是否合法,如果命令合法会将采样到的命令和地址依格式存入分选缓存模块3。
然后,处理器9内的固件根据分选缓存模块3中存储的命令和地址,基于外设接口10处理状态存储器8中的命令队列(SQ)和命令反馈队列(CQ)、并与外接处理器(AP)进行沟通,并通过该外接处理器(AP)将外接存储器中主控信号指示的期望读取的相应页面(Page)的第二数据存入第二缓存7中。
其次,处理器9内的固件通过操作缓存访问模块5将第二缓存7中的第二数据搬移至第一缓存6中。其中,在缓存访问模块5每次进行搬移操作时,处理器9内的固件会判断缓存访问模块5是否还在进行复制动作;若确定复制动作未结束,则处理器9内的固件设置闪存状态寄存器的值为闪存阵列繁忙状态(Flash array busy),或者,然后等待搬移操作完成并确定复制动作已结束时,则处理器9内的固件设置闪存状态寄存器的值为完成状态(ready);然后在收到存储器控制器100发送读取闪存状态寄存器命令时,存储器控制器测试装置200向存储器控制器100回复闪存状态寄存器的值。之后在存储器控制器100读取数据时,存储器控制器测试装置200响应于数据流向类型为数据输出的主控信号,将第一缓存6中的第二数据输出至存储器控制器100。
在一些实施例中,该处理器9,还用于:
若该运行状态信息包括存储器控制器运行错误信息,则基于外设接口10将该存储器控制器运行错误信息发送至测试端300,以使该测试端300根据该存储器控制器运行错误信息分析该存储器控制器100发生运行错误的原因。
存储器控制器测试装置200通过各个模块之间的协同工作,完成了对存储器控制器100的全面测试。这种工作方法具有效率高、可靠性好、灵活性强的优点。
本申请实施例提供的存储器控制器测试装置200,包括接口信号处理模块1、命令解码模块2、分选缓存模块3、缓存控制模块4、缓存访问模块5、第一缓存6、第二缓存7、状态存储器8和处理器9,其中:接口信号处理模块1,用于接收存储器控制器发出的主控信号,并确定主控信号的数据流向类型,以及根据从存储器控制器的主控接口接收到的管脚信号,来区分接收到的主控信号中包含的地址、命令和数据;命令解码模块2,用于输入命令并确认命令是否正确及有效;分选缓存模块3,用于在确认命令正确及有效后存储命令和地址;缓存控制模块4,用于在确认命令正确及有效后存储地址,并对数据分配数据存放地址;第一缓存6,用于基于数据存放地址存储数据;缓存访问模块5,用于实现第一缓存6与第二缓存7之间的数据交互;处理器9,用于访问状态存储器8以获取存储器控制器的运行状态信息,并基于外设接口10将运行状态信息发送至测试端。本申请实施例通过存储器控制器100与用于模拟闪存的存储器控制器测试装置200之间进行数据交互和测试,在测试存储器控制器100时能够直观地观察和记录存储器控制器100与存储器控制器测试装置200的交互过程中存储器控制器100的运行状态信息,简化存储器控制器测试流程,提升故障定位的准确性,提高了存储器控制器测试的效率和准确性,进而有效提高闪存存储器控制器的开发效率。
上述存储器控制器测试装置中的各个单元或模块可全部或部分通过软件、硬件及其组合来实现。上述各个单元或模块可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行上述各个单元或模块对应的操作。
存储器控制器测试装置200,可以集成在具备储存器并安装有处理器而具有运算能力的终端或服务器中,或者该存储器控制器测试装置200为该终端或服务器。
请参阅图3至图6,图3为本申请实施例提供的存储器控制器测试方法的流程示意图,图4至图6为本申请实施例提供的存储器控制器测试方法的应用场景示意图。该方法可以应用于图2所示的存储器控制器测试装置200,该存储器控制器测试装置200包括接口信号处理模块、命令解码模块、分选缓存模块、缓存控制模块、缓存访问模块、第一缓存、第二缓存、状态存储器和处理器,该方法可以包括以下步骤110至步骤160:
步骤110,通过所述接口信号处理模块接收存储器控制器发出的主控信号,并确定所述主控信号的数据流向类型。
例如,该数据流向类型包括数据输入和数据输出,通过接口信号处理模块接收存储器控制器发出的主控信号,并通过特定的算法判断该主控信号是数据输入还是数据输出,进而确定主控信号的数据流向类型。这一步可以有效地保证后续处理的准确性。
在一些实施例中,所述存储器控制器测试装置还包括控制寄存器,在步骤110之前,所述方法还包括:
通过配置所述控制寄存器来修改所述控制寄存器的闪存状态寄存器的内容,以配置所述存储器控制器测试装置模拟不同型号的闪存。
其中,处理器内的固件可以用于配置控制寄存器。可以通过处理器内的固件配置控制寄存器来修改控制寄存器的闪存状态寄存器的内容,以配置存储器控制器测试装置模拟不同型号的闪存。通过配置控制寄存器来提供一种灵活的配置方式,使得存储器控制器测试装置可以适应多种不同型号的闪存。
步骤120,根据从所述存储器控制器的主控接口接收到的管脚信号,来区分接收到的所述主控信号中包含的地址、命令和数据。
这一步可以准确地分离出主控信号中不同类型的信号,从而为接下来的处理提供了基础。
在一些实施例中,可以根据所述管脚信号中的地址信号(ALE)、命令信号(CLE)和写使能信号(WE),来区分接收到的所述主控信号中包含的地址、命令和数据。
步骤130,将所述命令输入所述命令解码模块以确认所述命令正确及有效后,将所述命令和所述地址存入所述分选缓存模块,以及将所述地址存入所述缓存控制模块。
这一步可以确保存储器控制器测试装置对命令的有效性和准确性进行准确的验证,并可以根据命令和地址信息进行快速的数据查找和调度。
步骤140,基于所述缓存控制模块分配的数据存放地址,将所述数据存入所述第一缓存。
这一步可以实现数据的精准存储。
步骤150,基于所述缓存访问模块实现所述第一缓存与所述第二缓存之间的数据交互。
这一步可以实现数据的快速、直接访问,并可以有效地提高整体的数据传输速率。
在一些实施例中,若所述数据流向类型为数据输入,则所述基于所述缓存访问模块实现所述第一缓存与所述第二缓存之间的数据交互,包括:
根据所述分选缓存模块中存储的命令和地址,操作所述缓存访问模块将所述第一缓存中存储的第一数据搬移至所述第二缓存中;
基于所述外设接口处理所述状态存储器中的命令队列和命令反馈队列、并与外接处理器进行沟通,并通过所述外接处理器读取所述第二缓存中的第一数据并将所述第一数据存入外接存储器中。
在一些实施例中,若所述数据流向类型为数据输出,则所述基于所述缓存访问模块实现所述第一缓存与所述第二缓存之间的数据交互,包括:
根据所述分选缓存模块中存储的命令和地址,基于所述外设接口处理所述状态存储器中的命令队列和命令反馈队列、并与外接处理器进行沟通,并通过所述外接处理器将外接存储器中所述主控信号指示的期望读取的第二数据存入所述第二缓存中;
通过操作所述缓存访问模块将所述第二缓存中的第二数据搬移至所述第一缓存中。
在一些实施例中,在通过操作所述缓存访问模块将所述第二缓存中的第二数据搬移至所述第一缓存中的步骤之后,所述方法还包括:
响应于所述数据流向类型为数据输出的主控信号,将所述第一缓存中的所述第二数据输出至所述存储器控制器。
在一些实施例中,所述方法还包括:
在所述缓存访问模块每次进行搬移操作时,判断所述缓存访问模块是否还在进行复制动作;
若确定所述复制动作未结束,则设置所述闪存状态寄存器的值为闪存阵列繁忙状态,或者,若确定所述复制动作已结束,则设置所述闪存状态寄存器的值为完成状态;
在收到所述存储器控制器发送读取闪存状态寄存器命令时,向所述存储器控制器回复所述闪存状态寄存器的值。
例如,在模拟闪存存储操作时,存储器控制器测试装置的工作流程如下:
(1.1)在步骤110中,通过接口信号处理模块接收存储器控制器发出的主控信号,并确定主控信号的数据流向类型为数据输入。并对基于主控信号输入的信息进行采样。
(1.2)在步骤120中,根据从存储器控制器的主控接口接收到的管脚信号,来区分接收到的主控信号中包含的地址、命令和数据。比如,当主控信号的数据流向类型为数据输入时,基于主控信号输入的信息中的数据为第一数据。
(1.3)在步骤130与步骤140中,将命令输入命令解码模块,以此控制后续第一缓存以及分选缓存模块的行为。比如,将命令输入命令解码模块以确认命令正确及有效后,将命令和地址存入分选缓存模块,以及将地址存入缓存控制模块。缓存控制模块根据处理器内的固件在控制寄存器中配置的储存空间与地址信息,来决定后续需输入的第一数据在第一缓存中的数据存放地址。然后基于缓存控制模块分配的数据存放地址,将第一数据存入第一缓存。
其中,一组命令结束之后,命令解码模块判断命令是否合法,如果命令合法会将采样到的命令和地址依格式存入分选缓存模块。
(1.4)在步骤150中,首先,根据分选缓存模块中存储的命令和地址,操作缓存访问模块将第一缓存中存储的第一数据搬移至第二缓存中。其中,在缓存访问模块每次进行搬移操作时,会判断缓存访问模块是否还在进行复制动作;若确定复制动作未结束,则设置闪存状态寄存器的值为闪存阵列繁忙状态(Flash array busy),或者,然后等待搬移操作完成并确定复制动作已结束时,则设置闪存状态寄存器的值为完成状态(ready);然后在收到存储器控制器发送读取闪存状态寄存器命令时,存储器控制器测试装置向存储器控制器回复闪存状态寄存器的值。
其次,基于外设接口处理状态存储器中的命令队列(SQ)和命令反馈队列(CQ)、并与外接处理器(AP)进行沟通,并通过该外接处理器(AP)读取第二缓存中的第一数据并将第一数据存入外接存储器中。
例如,在模拟闪存读取操作时,存储器控制器测试装置的工作流程如下:
(2.1)在步骤110中,通过接口信号处理模块接收存储器控制器发出的主控信号,并确定主控信号的数据流向类型为数据输出。首先对输入的命令和地址进行采样,后续可以基于DQS信号输出数据。
例如,第二缓存以DDR为例,在DDR中,DQS信号主要作用是用来在一个时钟周期内准确的区分出每个数据传输周期,从而便于接收方准确接收数据。DQS信号是双向的,在写入DDR时它用来传送由主设备发来的DQS信号,读取DDR时则由DDR生成DQS向主设备发送,所以DQS其实就是数据的同步信号。
(2.2)在步骤120中,根据从存储器控制器的主控接口接收到的管脚信号,来区分接收到的主控信号中包含的地址、命令和数据。比如,当主控信号的数据流向类型为数据输出时,基于主控信号输出的数据为第二数据。其中,根据管脚信号中的地址信号(ALE)、命令信号(CLE)和写使能信号(WE),来区分接收到的主控信号中包含的地址、命令和数据。
(2.3)在步骤130与步骤140中,将命令输入命令解码模块,以此控制后续第一缓存以及分选缓存模块的行为。比如,将命令输入命令解码模块以确认命令正确及有效后,将命令和地址存入分选缓存模块,以及将地址存入缓存控制模块。缓存控制模块根据处理器内的固件在控制寄存器中配置的储存空间与地址信息,来决定后续需输出的第二数据在第一缓存中的数据存放地址。然后基于缓存控制模块分配的数据存放地址,将第二数据存入第一缓存。
其中,一组命令结束之后,命令解码模块判断命令是否合法,如果命令合法会将采样到的命令和地址依格式存入分选缓存模块。
(2.4)在步骤150中,首先,根据分选缓存模块中存储的命令和地址,基于外设接口处理状态存储器中的命令队列(SQ)和命令反馈队列(CQ)、并与外接处理器(AP)进行沟通,并通过该外接处理器(AP)将外接存储器中主控信号指示的期望读取的相应页(Page)的第二数据存入第二缓存中。
其次,通过操作缓存访问模块将第二缓存中的第二数据搬移至第一缓存中。其中,在缓存访问模块每次进行搬移操作时,会判断缓存访问模块是否还在进行复制动作;若确定复制动作未结束,则设置闪存状态寄存器的值为闪存阵列繁忙状态(Flash arraybusy),或者,然后等待搬移操作完成并确定复制动作已结束时,则设置闪存状态寄存器的值为完成状态(ready);然后在收到存储器控制器发送读取闪存状态寄存器命令时,存储器控制器测试装置向存储器控制器回复闪存状态寄存器的值。之后在存储器控制器读取数据时,响应于数据流向类型为数据输出的主控信号,将第一缓存中的第二数据输出至存储器控制器。
步骤160,通过所述处理器访问所述状态存储器以获取所述存储器控制器的运行状态信息,并基于外设接口将所述运行状态信息发送至测试端。
在一些实施例中,所述基于外设接口将所述运行状态信息发送至测试端,包括:
若所述运行状态信息包括存储器控制器运行错误信息,则基于所述外设接口将所述存储器控制器运行错误信息发送至测试端,以使所述测试端根据所述存储器控制器运行错误信息分析所述存储器控制器发生运行错误的原因。
例如,当存储器控制器发生运行错误时,存储器控制器测试装置内的硬件会检测到存储器控制器运行错误信息,并通过改变控制寄存器中的闪存状态寄存器的内容,以通知处理器发生存储器控制器运行错误。处理器在检测到该存储器控制器运行错误后会通过外设接口(如PCIE)通知测试端,测试端记录存储器控制器运行时发生的错误的存储器控制器运行错误信息。
例如,存储器控制器运行错误信息为Illegal command in busy,Illegalcommand in busy表示在繁忙时出现的非法指令。
如图4所示,正常状况下R/B=0(busy)时,即R/B信号为低时,存储器控制器不应向存储器控制器测试装置发送命令或者地址信息,如4所示的38h指令中并未发送任何命令和或地址信息。
如图5所示,R/B=0时,存储器控制器下发39h指令,但是此时39h指令中发送了三个地址:R1、R2、R3,在正常情况下R/B=0时,存储器控制器不应向存储器控制器测试装置发送命令或者地址信息,因此图5中的39h指令不会生效,并且不会将39h指令中的地址存入分选缓存模块(Sorting Hat Buffer)。存储器控制器测试装置内的硬件会将控制寄存器(EFIP Ctrl Reg)中Illegal command in busy对应的闪存状态寄存器的值置为1。处理器读到这个闪存状态寄存器的值置为1后会通知测试端存储器控制器发生的错误类型为Illegal command in busy。
其中,图4和图5中,tCRST表示时间段,存储器控制器测试装置在tCRST的时间段处理完了刚才接到的存储器控制器指令。比如,图4中,在tCRST的时间段处理完38h指令;图5中,在tCRST的时间段处理完39h指令。图中的椭圆形表示指令,方形表示地址。DQ引脚用于输入命令、地址和数据,并在读取操作时输出数据。
例如,存储器控制器运行错误信息为DMA count error,DMA count error表示DMA计数错误。在正常操作闪存(FLASH)芯片的一次写入时,只能在一个页面(Page)内进行数据写入,比如,页面(Page)的页面尺寸(Page Size)常见大小为4k、8k或者16k。
如图6所示,写入数据的数据大小为写入数据地址在一个页空间内的地址偏移501(Column)与写入数据的长度502(DMA Length)之和,一个页空间为页面尺寸503(PageSize),当一次写入命令后,写入数据超出一个页空间时(Column+DMA Length>Page Size,写入数据超出一个页空间的数据长度如图5中所示的区块A),控制寄存器(EFIP Ctrl Reg)中DMA count error对应的闪存状态寄存器的值置为1。处理器读到这个闪存状态寄存器的值置为1后会通知测试端存储器控制器发生的错误类型为DMA count error。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例提供的存储器控制器测试方法,通过接口信号处理模块接收存储器控制器发出的主控信号,并确定主控信号的数据流向类型,以及根据从存储器控制器的主控接口接收到的管脚信号,来区分接收到的主控信号中包含的地址、命令和数据;然后将命令输入命令解码模块以确认命令正确及有效后,将命令和地址存入分选缓存模块,以及将地址存入缓存控制模块;基于缓存控制模块分配的数据存放地址,将数据存入第一缓存;基于缓存访问模块实现第一缓存与第二缓存之间的数据交互;通过处理器访问状态存储器以获取存储器控制器的运行状态信息,并基于外设接口将运行状态信息发送至测试端。本申请实施例通过存储器控制器与用于模拟闪存的存储器控制器测试装置之间进行数据交互和测试,在测试存储器控制器时能够直观地观察和记录存储器控制器与存储器控制器测试装置的交互过程中存储器控制器的运行状态信息,简化存储器控制器测试流程,提升故障定位的准确性,提高了存储器控制器测试的效率和准确性,进而有效提高闪存存储器控制器的开发效率。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (16)
1.一种存储器控制器测试方法,其特征在于,应用于存储器控制器测试装置,所述存储器控制器测试装置包括接口信号处理模块、命令解码模块、分选缓存模块、缓存控制模块、缓存访问模块、第一缓存、第二缓存、状态存储器和处理器,所述方法包括:
通过所述接口信号处理模块接收存储器控制器发出的主控信号,并确定所述主控信号的数据流向类型;
根据从所述存储器控制器的主控接口接收到的管脚信号,来区分接收到的所述主控信号中包含的地址、命令和数据;
将所述命令输入所述命令解码模块以确认所述命令正确及有效后,将所述命令和所述地址存入所述分选缓存模块,以及将所述地址存入所述缓存控制模块;
基于所述缓存控制模块分配的数据存放地址,将所述数据存入所述第一缓存;
基于所述缓存访问模块实现所述第一缓存与所述第二缓存之间的数据交互;
通过所述处理器访问所述状态存储器以获取所述存储器控制器的运行状态信息,并基于外设接口将所述运行状态信息发送至测试端。
2.如权利要求1所述的存储器控制器测试方法,其特征在于,所述存储器控制器测试装置还包括控制寄存器,所述方法还包括:
通过配置所述控制寄存器来修改所述控制寄存器的闪存状态寄存器的内容,以配置所述存储器控制器测试装置模拟不同型号的闪存。
3.如权利要求2所述的存储器控制器测试方法,其特征在于,若所述数据流向类型为数据输入,则所述基于所述缓存访问模块实现所述第一缓存与所述第二缓存之间的数据交互,包括:
根据所述分选缓存模块中存储的命令和地址,操作所述缓存访问模块将所述第一缓存中存储的第一数据搬移至所述第二缓存中;
基于所述外设接口处理所述状态存储器中的命令队列和命令反馈队列、并与外接处理器进行沟通,并通过所述外接处理器读取所述第二缓存中的第一数据并将所述第一数据存入外接存储器中。
4.如权利要求2所述的存储器控制器测试方法,其特征在于,若所述数据流向类型为数据输出,则所述基于所述缓存访问模块实现所述第一缓存与所述第二缓存之间的数据交互,包括:
根据所述分选缓存模块中存储的命令和地址,基于所述外设接口处理所述状态存储器中的命令队列和命令反馈队列、并与外接处理器进行沟通,并通过所述外接处理器将外接存储器中所述主控信号指示的期望读取的第二数据存入所述第二缓存中;
通过操作所述缓存访问模块将所述第二缓存中的第二数据搬移至所述第一缓存中。
5.如权利要求4所述的存储器控制器测试方法,其特征在于,所述方法还包括:
响应于所述数据流向类型为数据输出的主控信号,将所述第一缓存中的所述第二数据输出至所述存储器控制器。
6.如权利要求3或4所述的存储器控制器测试方法,其特征在于,所述方法还包括:
在所述缓存访问模块每次进行搬移操作时,判断所述缓存访问模块是否还在进行复制动作;
若确定所述复制动作未结束,则设置所述闪存状态寄存器的值为闪存阵列繁忙状态,或者,若确定所述复制动作已结束,则设置所述闪存状态寄存器的值为完成状态;
在收到所述存储器控制器发送读取闪存状态寄存器命令时,向所述存储器控制器回复所述闪存状态寄存器的值。
7.如权利要求1-5任一项所述的存储器控制器测试方法,其特征在于,所述基于外设接口将所述运行状态信息发送至测试端,包括:
若所述运行状态信息包括存储器控制器运行错误信息,则基于所述外设接口将所述存储器控制器运行错误信息发送至测试端,以使所述测试端根据所述存储器控制器运行错误信息分析所述存储器控制器发生运行错误的原因。
8.如权利要求1-5任一项所述的存储器控制器测试方法,其特征在于,所述根据从所述存储器控制器的主控接口接收到的管脚信号,来区分接收到的所述主控信号中包含的地址、命令和数据,包括:
根据所述管脚信号中的地址信号、命令信号和写使能信号,来区分接收到的所述主控信号中包含的地址、命令和数据。
9.一种存储器控制器测试装置,其特征在于,所述装置包括接口信号处理模块、命令解码模块、分选缓存模块、缓存控制模块、缓存访问模块、第一缓存、第二缓存、状态存储器和处理器,其中:
所述接口信号处理模块,用于接收存储器控制器发出的主控信号,并确定所述主控信号的数据流向类型,以及根据从所述存储器控制器的主控接口接收到的管脚信号,来区分接收到的所述主控信号中包含的地址、命令和数据;
所述命令解码模块,用于输入所述命令并确认所述命令是否正确及有效;
所述分选缓存模块,用于在确认所述命令正确及有效后存储所述命令和所述地址;
所述缓存控制模块,用于在确认所述命令正确及有效后存储所述地址,并对所述数据分配数据存放地址;
所述第一缓存,用于基于所述数据存放地址存储所述数据;
所述缓存访问模块,用于实现所述第一缓存与所述第二缓存之间的数据交互;
所述处理器,用于访问所述状态存储器以获取所述存储器控制器的运行状态信息,并基于外设接口将所述运行状态信息发送至测试端。
10.如权利要求9所述的存储器控制器测试装置,其特征在于,所述装置还包括:
控制寄存器,用于修改所述控制寄存器的闪存状态寄存器的内容,以配置所述存储器控制器测试装置模拟不同型号的闪存。
11.如权利要求10所述的存储器控制器测试装置,其特征在于,若所述数据流向类型为数据输入,所述处理器,还用于:
根据所述分选缓存模块中存储的命令和地址,操作所述缓存访问模块将所述第一缓存中存储的第一数据搬移至所述第二缓存中;以及
基于所述外设接口处理所述状态存储器中的命令队列和命令反馈队列、并与外接处理器进行沟通,并通过所述外接处理器读取所述第二缓存中的第一数据并将所述第一数据存入外接存储器中。
12.如权利要求10所述的存储器控制器测试装置,其特征在于,若所述数据流向类型为数据输出,所述处理器,还用于:
根据所述分选缓存模块中存储的命令和地址,基于所述外设接口处理所述状态存储器中的命令队列和命令反馈队列、并与外接处理器进行沟通,并通过所述外接处理器将所述外接存储器中所述主控信号指示的期望读取的第二数据存入所述第二缓存中;以及
通过操作所述缓存访问模块将所述第二缓存中的第二数据搬移至所述第一缓存中。
13.如权利要求12所述的存储器控制器测试装置,其特征在于,所述处理器还用于:
响应于所述数据流向类型为数据输出的主控信号,将所述第一缓存中的所述第二数据输出至所述存储器控制器。
14.如权利要求11或12所述的存储器控制器测试装置,其特征在于,所述处理器,还用于:
在所述缓存访问模块每次进行搬移操作时,判断所述缓存访问模块是否还在进行复制动作;
若确定所述复制动作未结束,则设置所述闪存状态寄存器的值为闪存阵列繁忙状态,或者,若确定所述复制动作已结束,则设置所述闪存状态寄存器的值为完成状态;
在收到所述存储器控制器发送读取闪存状态寄存器命令时,向所述存储器控制器回复所述闪存状态寄存器的值。
15.如权利要求9-13任一项所述的存储器控制器测试装置,其特征在于,所述处理器,还用于:
若所述运行状态信息包括存储器控制器运行错误信息,则基于所述外设接口将所述存储器控制器运行错误信息发送至测试端,以使所述测试端根据所述存储器控制器运行错误信息分析所述存储器控制器发生运行错误的原因。
16.如权利要求9-13任一项所述的存储器控制器测试装置,其特征在于,所述接口信号处理模块,还用于:
根据所述管脚信号中的地址信号、命令信号和写使能信号,来区分接收到的所述主控信号中包含的地址、命令和数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311361417.6A CN117577164A (zh) | 2023-10-19 | 2023-10-19 | 存储器控制器测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311361417.6A CN117577164A (zh) | 2023-10-19 | 2023-10-19 | 存储器控制器测试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117577164A true CN117577164A (zh) | 2024-02-20 |
Family
ID=89883286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311361417.6A Pending CN117577164A (zh) | 2023-10-19 | 2023-10-19 | 存储器控制器测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117577164A (zh) |
-
2023
- 2023-10-19 CN CN202311361417.6A patent/CN117577164A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10288681B2 (en) | Test architecture with a small form factor test board for rapid prototyping | |
US8086919B2 (en) | Controller having flash memory testing functions, and storage system and testing method thereof | |
KR101561854B1 (ko) | Fpga 기반의 비실장형 스토리지 테스트 장치 | |
KR101522293B1 (ko) | 복수개의 스토리지를 개별 제어 가능한 테스트 장치 | |
TWI436204B (zh) | 測試系統及測試方法 | |
US9607120B2 (en) | Implementing system irritator accelerator FPGA unit (AFU) residing behind a coherent attached processors interface (CAPI) unit | |
KR102243791B1 (ko) | 메모리 기반 통신 프로토콜을 사용하여 시뮬레이션된 장치를 테스트하기 위한 시스템 및 방법 | |
KR101240633B1 (ko) | 솔리드 스테이트 드라이브 테스트장치 | |
CN113868039A (zh) | 一种测试方法、装置及相关设备 | |
US10496422B2 (en) | Serial device emulator using two memory levels with dynamic and configurable response | |
CN117076337B (zh) | 一种数据传输方法、装置、电子设备及可读存储介质 | |
CN112417802B (zh) | 一种模拟存储芯片的方法、系统、设备及存储介质 | |
CN108804272B (zh) | 一种高速的闪存模拟器及其模拟方法 | |
CN114417761B (zh) | 一种芯片验证方法、装置、系统、控制服务器及介质 | |
CN114817093B (zh) | 一种数据传输方法、系统、装置及存储介质 | |
CN117577164A (zh) | 存储器控制器测试方法及装置 | |
CN103150262B (zh) | 管道式串行接口闪存访问装置 | |
CN112885403B (zh) | 一种Flash控制器的功能测试方法、装置及设备 | |
CN117672339A (zh) | 固态硬盘主控测试方法、装置及计算机可读存储介质 | |
CN117292739A (zh) | 存储介质模拟器及存储介质模拟方法 | |
CN117292738A (zh) | 验证微指令序列的系统及方法 | |
TWI793774B (zh) | 固態硬碟裝置的除錯方法及裝置以及電腦程式產品 | |
CN112732176B (zh) | 基于fpga的ssd访问方法及装置、存储系统及存储介质 | |
CN110968537B (zh) | 一种基于pcie ssd的fpga搜索匹配方法 | |
CN108122583B (zh) | 执行储存型快闪记忆体命令的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |