CN113948146A - 固态硬盘的测试方法、装置及电子设备 - Google Patents

固态硬盘的测试方法、装置及电子设备 Download PDF

Info

Publication number
CN113948146A
CN113948146A CN202111233867.8A CN202111233867A CN113948146A CN 113948146 A CN113948146 A CN 113948146A CN 202111233867 A CN202111233867 A CN 202111233867A CN 113948146 A CN113948146 A CN 113948146A
Authority
CN
China
Prior art keywords
solid state
state disk
register
operation command
test operation
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
Application number
CN202111233867.8A
Other languages
English (en)
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.)
Jiangsu Xinsheng Intelligent Technology Co ltd
Original Assignee
Jiangsu Xinsheng Intelligent Technology Co ltd
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 Jiangsu Xinsheng Intelligent Technology Co ltd filed Critical Jiangsu Xinsheng Intelligent Technology Co ltd
Priority to CN202111233867.8A priority Critical patent/CN113948146A/zh
Publication of CN113948146A publication Critical patent/CN113948146A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices

Abstract

本申请实施例提供了一种固态硬盘的测试方法、装置及电子设备,其中方法包括:读取固态硬盘的目标寄存器中存储的控制寄存器的内存地址;向主板申请第一虚拟地址,在第一虚拟地址写入对固态硬盘的测试操作命令;根据预配置物理页文档确定第一虚拟地址对应的第一物理地址,按照预设协议规则将测试操作命令写入第一物理地址中;将第一物理地址写入控制寄存器的内存地址;通过控制寄存器执行测试操作命令,得到测试命令执行结果。这样,避开使用封装的ioctl函数,可以实现linux应用层对固态硬盘发送测试操作命令,提高固态硬盘的测试效果,降低固态硬盘的测试成本。

Description

固态硬盘的测试方法、装置及电子设备
技术领域
本申请涉及存储技术领域,尤其涉及一种固态硬盘的测试方法、装置及电子设备。
背景技术
现有的固态硬盘(Solid State Drive,SSD)在工作过程中需要遵循协议发送命令,对于SSD的测试,必须覆盖协议测试场景。目前,协议测试基本都在linux应用层,常见测试方式主要有两种:第一种测试方式是借助SSD封装的ioctl函数所做的smartctl、haparm等工具发送命令进行测试,此种方式是最简单快速、最常见的测试方式。但这种测试方式中有很多特性被内核修改或拦截。第二种测试方式是开发驱动代替linux应用层封装好的驱动。此种方式可以解决方式一的缺点,但是需要单独购买主板,并开发针对盘片测试的驱动,增加测试成本。综上,现有固态硬盘存在测试效果比较差或者测试成本比较大的问题。
发明内容
为了解决上述技术问题,本申请实施例提供了一种固态硬盘的测试方法、装置及电子设备。
第一方面,本申请实施例提供了一种固态硬盘的测试方法,所述方法包括:
读取所述固态硬盘的目标寄存器中存储的控制寄存器的内存地址;
向所述主板申请第一虚拟地址,在所述第一虚拟地址写入对所述固态硬盘的测试操作命令;
根据预配置物理页文档确定所述第一虚拟地址对应的第一物理地址,按照预设协议规则将所述测试操作命令写入所述第一物理地址中;
将所述第一物理地址写入所述控制寄存器的所述内存地址;
通过所述控制寄存器执行所述测试操作命令,得到测试命令执行结果。
可选的,所述读取所述固态硬盘的目标寄存器中存储的控制寄存器的内存地址之前,所述方法还包括:
读取所述固态硬盘的配置空间的配置信息;
根据所述配置信息确定所述固态硬盘的类型,所述固态硬盘的类型为非易失性固态硬盘类型或串口硬盘类型;
在所述固态硬盘的类型为非易失性固态硬盘类型时,将所述配置空间中的bar1寄存器及bar2寄存器确定为所述目标寄存器;
在所述固态硬盘的类型为串口硬盘类型时,将所述配置空间中的bar5寄存器确定为所述目标寄存器。
可选的,所述向所述主板申请第一虚拟地址之后,所述方法还包括:
向所述主板申请第二虚拟地址;
根据所述预配置物理页文档确定所述第二虚拟地址对应的第二物理地址;
将所述测试命令执行结果写入所述第二物理地址。
可选的,所述测试操作命令为读命令,所述读命令包括待读取数据的数据存储地址,所述通过所述控制寄存器执行所述测试操作命令,得到测试命令执行结果,包括:
通过所述控制寄存器读取所述数据存储地址中存储的数据。
可选的,所述固态硬盘的类型为非易失性固态硬盘类型,所述方法还包括:
读取所述目标寄存器中存储的Doorbell寄存器的内存地址;
对所述Doorbell寄存器的所述内存地址进行配置,以提示所述控制寄存器启动执行所述测试操作命令。
可选的,所述类型为非易失性固态硬盘类型,所述按照预设协议规则将所述测试操作命令写入所述第一物理地址中,包括:
按照非易失性固态硬盘协议规则在所述第一物理地址写入所述测试操作命令。
可选的,所述类型为串口硬盘类型,所述按照预设协议规则将所述测试操作命令写入所述第一物理地址中,包括:
按照串口硬盘协议规则在所述第一物理地址写入所述测试操作命令。
第二方面,本申请实施例提供了一种固态硬盘的测试装置,固态硬盘与主板连接,所述装置包括:
读取模块,用于读取所述固态硬盘的目标寄存器中存储的控制寄存器的内存地址;
处理模块,用于向所述主板申请第一虚拟地址,在所述第一虚拟地址写入对所述固态硬盘的测试操作命令;
确定模块,用于根据预配置物理页文档确定所述第一虚拟地址对应的第一物理地址,按照预设协议规则将所述测试操作命令写入所述第一物理地址中;
写入模块,用于将所述第一物理地址写入所述控制寄存器的所述内存地址;
执行模块,用于通过所述控制寄存器执行所述测试操作命令,得到测试命令执行结果。
第三方面,本申请实施例提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述计算机程序在所述处理器运行时执行第一方面提供的固态硬盘的测试方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行第一方面提供的固态硬盘的测试方法。
上述本申请提供的固态硬盘的测试方法,读取所述固态硬盘的目标寄存器中存储的控制寄存器的内存地址;向所述主板申请第一虚拟地址,在所述第一虚拟地址写入对所述固态硬盘的测试操作命令;根据预配置物理页文档确定所述第一虚拟地址对应的第一物理地址,按照预设协议规则将所述测试操作命令写入所述第一物理地址中;将所述第一物理地址写入所述控制寄存器的所述内存地址;通过所述控制寄存器执行所述测试操作命令,得到测试命令执行结果。这样,避开使用封装的ioctl函数,可以实现linux应用层对固态硬盘发送测试操作命令,提高固态硬盘的测试效果,降低固态硬盘的测试成本。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对本申请保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
图1示出了本申请实施例提供的固态硬盘的测试方法的一流程示意图;
图2示出了本申请实施例提供的固态硬盘的测试方法的另一流程示意图;
图3示出了本申请实施例提供的固态硬盘的测试装置的一结构示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
实施例1
本公开实施例提供了一种固态硬盘的测试方法。
在本实施例中,固态硬盘与主板连接,请参见图1,本公开实施例提供的固态硬盘的测试方法包括:
步骤S101,读取所述固态硬盘的目标寄存器中存储的控制寄存器的内存地址。
在本实施例中,固态硬盘可以为非易失性(Non Volatile Memory Express,NVME)固态硬盘类型或者串口硬盘(Serial Advanced Technology Attachment,SATA)类型。固态硬盘的配置空间存储有配置信息,固态硬盘与主板连接后,可以通过遍历数据总线(bus)、设备(device)、功能(function),使用start_memmap函数读取配置空间的配置信息。配置空间有6个bar寄存器,从0-5编号,分别为bar0寄存器、bar1寄存器、bar2寄存器、bar3寄存器、bar4寄存器、bar5寄存器,不同类型的的固态硬盘的bar0寄存器、bar1寄存器、bar2寄存器、bar3寄存器、bar4寄存器、bar5寄存器存储用于存储不同控制寄存器的地址,对于不同类型的固态硬盘,bar0寄存器、bar1寄存器、bar2寄存器、bar3寄存器、bar4寄存器、bar5寄存器分别存储的控制寄存器的内存地址不同。
举例来说,非易失性固态硬盘类型的固态硬盘的bar1寄存器存储控制寄存器的内存地址,bar2寄存器存储head/tailDoorbell(DB)寄存器的内存地址。串口硬盘类型的固态硬盘的bar5寄存器存储主机总线适配器(Host Bus Adapter,HBA)的内存地址及Port寄存器的内存地址。
以下为读取配置空间的主要代码:
Figure BDA0003317055610000071
Figure BDA0003317055610000081
在本实施例中,请参见图2,本公开实施例提供的固态硬盘的测试方法还包括:
步骤S106,读取所述固态硬盘的配置空间的配置信息;
步骤S107,根据所述配置信息确定所述固态硬盘的类型,所述固态硬盘的类型为非易失性固态硬盘类型或串口硬盘类型;
步骤S108,在所述固态硬盘的类型为非易失性固态硬盘类型时,将所述配置空间中的bar1寄存器及bar2寄存器确定为所述目标寄存器;
步骤S109,在所述固态硬盘的类型为串口硬盘类型时,将所述配置空间中的bar5寄存器确定为所述目标寄存器。
这样,对于不同类型的固态硬盘可以配置空间中确定目标寄存器,从而可以快速获取目标寄存器中存储的控制寄存器的内存地址,提高处理效率。
步骤S102,向所述主板申请第一虚拟地址,在所述第一虚拟地址写入对所述固态硬盘的测试操作命令。
在本实施例中,若固态硬盘为非易失性固态硬盘类型时,使用alloc_pages函数申请第一虚拟地址及第二虚拟地址。
以下为申请虚拟地址的主要代码:
Figure BDA0003317055610000082
Figure BDA0003317055610000091
步骤S103,根据预配置物理页文档确定所述第一虚拟地址对应的第一物理地址,按照预设协议规则将所述测试操作命令写入所述第一物理地址中。
在本实施例中,若固态硬盘为非易失性固态硬盘类型,使用addr_virt2phy函数获取第一虚拟地址对应的第一物理地址、并获取第二虚拟地址对应的第二物理地址。
以下为查找虚拟地址对应的物理地址的主要代码:
Figure BDA0003317055610000101
Figure BDA0003317055610000111
在本实施例中,所述类型为非易失性固态硬盘类型,所述按照预设协议规则将所述测试操作命令写入所述第一物理地址中,包括:
按照非易失性固态硬盘协议规则在所述第一物理地址写入所述测试操作命令。
在本实施例中,如果测试操作命令是IO命令,则需要申请一段数据内存,并将申请的数据内存的物理地址填写到请求队列条目(SQ entry)中的数据指针(data pointer)中。如果测试操作命令是写命令,则需要将要写入固态硬盘的数据写入这段数据内存。
在本实施例中,所述类型为串口硬盘类型,所述按照预设协议规则将所述测试操作命令写入所述第一物理地址中,包括:
按照串口硬盘协议规则在所述第一物理地址写入所述测试操作命令。
步骤S104,将所述第一物理地址写入所述控制寄存器的所述内存地址。
本实施例中,若固态硬盘为非易失性固态硬盘类型,将第一物理地址写入ASQ控制寄存器,将第二物理地址写入ACQ控制寄存器。
本实施例中,若固态硬盘为串口硬盘类型,将第一物理地址写入Port寄存器中的PxCLB寄存器及PxCLBU寄存器中,PxCLB寄存器及PxCLBU寄存器用于存储cmd list,填充cmdlist的每一个cmd header,cmd header包括cmd table地址,向cmd table地址中填充H2Dfis与IO数据地址,并放入需要写的数据。将第二物理地址写入Port寄存器中的PxFB寄存器及PxFBU寄存器中,PxFB寄存器及PxFBU寄存器用于存储recv fis。
步骤S105,通过所述控制寄存器执行所述测试操作命令,得到测试命令执行结果。
在本实施例中,若固态硬盘为非易失性固态硬盘类型,通过ASQ控制寄存器执行所述测试操作命令。
在本实施例中,若固态硬盘为串口硬盘类型,通过操作Port寄存器中的PxCMD寄存器、PxCI寄存器、PxCSACT寄存器发送测试操作命令。
在本实施例中,所述测试操作命令为读命令,所述读命令包括待读取数据的数据存储地址,步骤S105可以包括:
通过所述控制寄存器读取所述数据存储地址中存储的数据。
本实施例中,若固态硬盘为非易失性固态硬盘类型,再通过获取SQ entry中填充的IO数据地址,获取IO读出的数据。
本实施例中,若固态硬盘为串口硬盘类型,再通过获取cmd header中填充的IO数据地址,获取IO读出的数据。
以下为读取物理地址上的数据的主要代码:
Figure BDA0003317055610000131
Figure BDA0003317055610000141
在本实施例中,所述固态硬盘的类型为非易失性固态硬盘类型,所述方法还包括:
读取所述目标寄存器中存储的Doorbell寄存器的内存地址;
对所述Doorbell寄存器的所述内存地址进行配置,以提示所述控制寄存器启动执行所述测试操作命令。
在本实施例中,对于非易失性固态硬盘类型的固态硬盘来说,对Doorbell寄存器的内存地址进行配置,可以提示ASQ控制寄存器启动执行第一物理地址中存储的测试操作命令。例如,可以Doorbell寄存器的内存赋值为1,提示ASQ控制寄存器启动执行第一物理地址中存储的测试操作命令。
在本实施例中,步骤S102之后,固态硬盘的测试方法还包括:
向所述主板申请第二虚拟地址;
根据所述预配置物理页文档确定所述第二虚拟地址对应的第二物理地址;
将所述测试命令执行结果写入所述第二物理地址。
在本实施例中,若固态硬盘为非易失性固态硬盘类型,所述第二物理地址写入ACQ控制寄存器,通过读取ACQ控制寄存器,可以获取第一物理地址中的测试操作命令执行后得到的测试命令执行结果。
在本实施例中,若固态硬盘为串口硬盘类型,recv fis中写入测试命令执行结果,通过读取recv fis的数据,结合PxIS寄存器及PxSERR寄存器,综合判断测试操作命令的综合执行结果。
上述本申请提供的固态硬盘的测试方法,读取所述固态硬盘的目标寄存器中存储的控制寄存器的内存地址;向所述主板申请第一虚拟地址,在所述第一虚拟地址写入对所述固态硬盘的测试操作命令;根据预配置物理页文档确定所述第一虚拟地址对应的第一物理地址,按照预设协议规则将所述测试操作命令写入所述第一物理地址中;将所述第一物理地址写入所述控制寄存器的所述内存地址;通过所述控制寄存器执行所述测试操作命令,得到测试命令执行结果。这样,避开使用封装的ioctl函数,可以实现linux应用层对固态硬盘发送测试操作命令,提高固态硬盘的测试效果,降低固态硬盘的测试成本。
实施例2
本公开实施例提供了一种固态硬盘的测试装置。
具体的,请参见图3,本公开实施例提供的固态硬盘的测试装置300,固态硬盘与主板连接,固态硬盘的测试装置300包括:
读取模块301,用于读取所述固态硬盘的目标寄存器中存储的控制寄存器的内存地址;
处理模块302,用于向所述主板申请第一虚拟地址,在所述第一虚拟地址写入对所述固态硬盘的测试操作命令;
确定模块303,用于根据预配置物理页文档确定所述第一虚拟地址对应的第一物理地址,按照预设协议规则将所述测试操作命令写入所述第一物理地址中;
写入模块304,用于将所述第一物理地址写入所述控制寄存器的所述内存地址;
执行模块305,用于通过所述控制寄存器执行所述测试操作命令,得到测试命令执行结果。
在本实施例中,读取模块301,还用于读取所述固态硬盘的配置空间的配置信息;
根据所述配置信息确定所述固态硬盘的类型,所述固态硬盘的类型为非易失性固态硬盘类型或串口硬盘类型;
在所述固态硬盘的类型为非易失性固态硬盘类型时,将所述配置空间中的bar1寄存器及bar2寄存器确定为所述目标寄存器;
在所述固态硬盘的类型为串口硬盘类型时,将所述配置空间中的bar5寄存器确定为所述目标寄存器。
在本实施例中,处理模块302,还用于向所述主板申请第二虚拟地址;
根据所述预配置物理页文档确定所述第二虚拟地址对应的第二物理地址;
将所述测试命令执行结果写入所述第二物理地址。
在本实施例中,所述测试操作命令为读命令,所述读命令包括待读取数据的数据存储地址,执行模块305,还用于通过所述控制寄存器读取所述数据存储地址中存储的数据。
在本实施例中,所述固态硬盘的类型为非易失性固态硬盘类型,固态硬盘的测试装置300还包括:
配置模块,用于读取所述目标寄存器中存储的Doorbell寄存器的内存地址;
对所述Doorbell寄存器的所述内存地址进行配置,以提示所述控制寄存器启动执行所述测试操作命令。
在本实施例中,所述类型为非易失性固态硬盘类型,确定模块303,还用于按照非易失性固态硬盘协议规则在所述第一物理地址写入所述测试操作命令。
在本实施例中,所述类型为串口硬盘类型,确定模块303,还用于按照串口硬盘协议规则在所述第一物理地址写入所述测试操作命令。
上述本申请提供的固态硬盘的测试装置,读取所述固态硬盘的目标寄存器中存储的控制寄存器的内存地址;向所述主板申请第一虚拟地址,在所述第一虚拟地址写入对所述固态硬盘的测试操作命令;根据预配置物理页文档确定所述第一虚拟地址对应的第一物理地址,按照预设协议规则将所述测试操作命令写入所述第一物理地址中;将所述第一物理地址写入所述控制寄存器的所述内存地址;通过所述控制寄存器执行所述测试操作命令,得到测试命令执行结果。这样,避开使用封装的ioctl函数,可以实现linux应用层对固态硬盘发送测试操作命令,提高固态硬盘的测试效果,降低固态硬盘的测试成本。
实施例3
此外,本公开实施例提供了一种电子设备,包括存储器以及处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行上述实施例1所提供的固态硬盘的测试方法。
需要理解的是,本实施例提供的电子设备可以实现实施例1提供的固态硬盘的测试方法,相关描述可以参见实施例1的内容,为避免重复,在此不做赘述。
实施例4
此外,本公开实施例提供了一种计算机可读存储介质,包括存储器以及处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行上述实施例1所提供的固态硬盘的测试方法。
需要理解的是,本实施例提供的计算机可读存储介质可以实现实施例1提供的固态硬盘的测试方法,相关描述可以参见实施例1的内容,为避免重复,在此不做赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的计算机可读存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种固态硬盘的测试方法,其特征在于,固态硬盘与主板连接,所述方法包括:
读取所述固态硬盘的目标寄存器中存储的控制寄存器的内存地址;
向所述主板申请第一虚拟地址,在所述第一虚拟地址写入对所述固态硬盘的测试操作命令;
根据预配置物理页文档确定所述第一虚拟地址对应的第一物理地址,按照预设协议规则将所述测试操作命令写入所述第一物理地址中;
将所述第一物理地址写入所述控制寄存器的所述内存地址;
通过所述控制寄存器执行所述测试操作命令,得到测试命令执行结果。
2.根据权利要求1所述的方法,其特征在于,所述读取所述固态硬盘的目标寄存器中存储的控制寄存器的内存地址之前,所述方法还包括:
读取所述固态硬盘的配置空间的配置信息;
根据所述配置信息确定所述固态硬盘的类型,所述固态硬盘的类型为非易失性固态硬盘类型或串口硬盘类型;
在所述固态硬盘的类型为非易失性固态硬盘类型时,将所述配置空间中的bar1寄存器及bar2寄存器确定为所述目标寄存器;
在所述固态硬盘的类型为串口硬盘类型时,将所述配置空间中的bar5寄存器确定为所述目标寄存器。
3.根据权利要求1所述的方法,其特征在于,所述向所述主板申请第一虚拟地址之后,所述方法还包括:
向所述主板申请第二虚拟地址;
根据所述预配置物理页文档确定所述第二虚拟地址对应的第二物理地址;
将所述测试命令执行结果写入所述第二物理地址。
4.根据权利要求1所述的方法,其特征在于,所述测试操作命令为读命令,所述读命令包括待读取数据的数据存储地址,所述通过所述控制寄存器执行所述测试操作命令,得到测试命令执行结果,包括:
通过所述控制寄存器读取所述数据存储地址中存储的数据。
5.根据权利要求2所述的方法,其特征在于,所述固态硬盘的类型为非易失性固态硬盘类型,所述方法还包括:
读取所述目标寄存器中存储的Doorbell寄存器的内存地址;
对所述Doorbell寄存器的所述内存地址进行配置,以提示所述控制寄存器启动执行所述测试操作命令。
6.根据权利要求2所述的方法,其特征在于,所述类型为非易失性固态硬盘类型,所述按照预设协议规则将所述测试操作命令写入所述第一物理地址中,包括:
按照非易失性固态硬盘协议规则在所述第一物理地址写入所述测试操作命令。
7.根据权利要求2所述的方法,其特征在于,所述类型为串口硬盘类型,所述按照预设协议规则将所述测试操作命令写入所述第一物理地址中,包括:
按照串口硬盘协议规则在所述第一物理地址写入所述测试操作命令。
8.一种固态硬盘的测试装置,其特征在于,固态硬盘与主板连接,所述装置包括:
读取模块,用于读取所述固态硬盘的目标寄存器中存储的控制寄存器的内存地址;
处理模块,用于向所述主板申请第一虚拟地址,在所述第一虚拟地址写入对所述固态硬盘的测试操作命令;
确定模块,用于根据预配置物理页文档确定所述第一虚拟地址对应的第一物理地址,按照预设协议规则将所述测试操作命令写入所述第一物理地址中;
写入模块,用于将所述第一物理地址写入所述控制寄存器的所述内存地址;
执行模块,用于通过所述控制寄存器执行所述测试操作命令,得到测试命令执行结果。
9.一种电子设备,其特征在于,包括存储器以及处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器运行时执行权利要求1至7中任一项所述的固态硬盘的测试方法。
10.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序在处理器上运行时执行权利要求1至7中任一项所述的固态硬盘的测试方法。
CN202111233867.8A 2021-10-22 2021-10-22 固态硬盘的测试方法、装置及电子设备 Pending CN113948146A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111233867.8A CN113948146A (zh) 2021-10-22 2021-10-22 固态硬盘的测试方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111233867.8A CN113948146A (zh) 2021-10-22 2021-10-22 固态硬盘的测试方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN113948146A true CN113948146A (zh) 2022-01-18

Family

ID=79332288

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111233867.8A Pending CN113948146A (zh) 2021-10-22 2021-10-22 固态硬盘的测试方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN113948146A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115993937A (zh) * 2023-03-21 2023-04-21 苏州浪潮智能科技有限公司 一种多进程固态硬盘仿真环境实现方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115993937A (zh) * 2023-03-21 2023-04-21 苏州浪潮智能科技有限公司 一种多进程固态硬盘仿真环境实现方法和装置

Similar Documents

Publication Publication Date Title
US10853238B2 (en) Unaligned data coalescing
US10282128B2 (en) Data deduplication
CN109313620B (zh) 存储器协议
KR102233400B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US8180930B2 (en) Information processing device, and device initialization method in the information processing device
US20220138096A1 (en) Memory system
EP3336702B1 (en) Metadata recovery method and device
KR20160074025A (ko) 데이터 저장 장치의 동작 방법
CN110504002B (zh) 一种硬盘数据一致性测试方法与装置
CN115756984A (zh) 内存测试方法、装置、设备及存储介质
CN113741798A (zh) 数据存储装置及其操作方法
CN113948146A (zh) 固态硬盘的测试方法、装置及电子设备
KR20180089742A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN111782474A (zh) 日志处理方法、装置、电子设备和介质
US11720276B2 (en) Memory system and controller for managing write status
US20110296119A1 (en) Stored Data Reading Apparatus, Method and Computer Apparatus
CN108874318A (zh) 固态硬盘的数据恢复方法以及固态硬盘
CN109032522B (zh) 固态硬盘的数据读取方法以及固态硬盘
CN110767258B (zh) 数据擦除命令测试方法和相关装置
US10795771B2 (en) Information handling system with reduced data loss in block mode
CN112347524A (zh) 闪存编程方法、装置及电子设备
US8667188B2 (en) Communication between a computer and a data storage device
CN113010107B (zh) 数据存储管理方法、装置、计算机设备及存储介质
US20230350593A1 (en) Method, system, and circuit for deploying file system on embedded memory in programmable computing device
CN107704198B (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