本申請實施例涉及存儲,尤其涉及一種固態(tài)硬盤的測試設備及測試系統(tǒng)。
背景技術:
1、非易失性內存標準(non-volatile?memory?express,nvme)管理接口(managementinterface,mi)協(xié)議定義了用于nvme固態(tài)硬盤(solid?state?drive,ssd)帶外和帶內管理的架構和命令集。nvme?ssd的帶外管理是通過硬件接口連接盤片,從而基于nvmemi協(xié)議實現(xiàn)測試主機與盤片之間的通信。在nvme?ssd的量產(chǎn)階段,需要測試nvmemi協(xié)議的帶外管理功能。然而,由于nvmemi協(xié)議的測試需要測試主機支持系統(tǒng)管理總線(system?managementbus,smbus)接口或內部集成電路(inter-integrated?circuit,i2c)接口,通常需要購置昂貴的mi專業(yè)測試工具或服務器才能對固態(tài)硬盤的nvmemi協(xié)議進行完備地測試。
技術實現(xiàn)思路
1、有鑒于此,本申請實施例提供一種固態(tài)硬盤的測試設備及測試系統(tǒng),旨在解決固態(tài)硬盤的nvme?mi協(xié)議測試成本較高的問題。
2、本申請實施例第一方面提供一種固態(tài)硬盤的測試設備,用于測試固態(tài)硬盤的nvme-mi協(xié)議,測試設備包括接入模塊、處理模塊和至少兩個i2c模塊,至少兩個i2c模塊包括第一i2c模塊和第二i2c模塊。接入模塊用于與電子設備通信。至少兩個i2c模塊用于通過nvme-mi協(xié)議與固態(tài)硬盤通信。其中,第一i2c模塊用于向固態(tài)硬盤發(fā)送第一mctp包,第二i2c模塊用于從固態(tài)硬盤接收第二mctp包。處理模塊電連接接入模塊和至少兩個i2c模塊,處理模塊用于將接入模塊接收的測試指令轉換成第一mctp包,以及將第二i2c模塊接收的第二mctp包轉換成測試數(shù)據(jù)。
3、在本實施例中,通用的電子設備中主板的外設組件互連標準(peripheralcomponent?interconnect?express,pcie)接口不支持轉接smbus接口,因此不能使用通用的電子設備作為測試主機直接對固態(tài)硬盤進行測試。本實施例提供的測試設備可作為電子設備與固態(tài)硬盤之間的轉接器,通過接入模塊與電子設備通信,并通過處理模塊實現(xiàn)協(xié)議轉換,以及通過第一i2c模塊實現(xiàn)主機發(fā)送功能,通過第二i2c模塊實現(xiàn)從機接收功能,由此實現(xiàn)與固態(tài)硬盤的全雙工通信,不僅能夠對固態(tài)硬盤的nvmemi協(xié)議進行完備地測試,還能基于與固態(tài)硬盤的全雙工通信提高測試效率。
4、在一種實施例中,測試設備還包括第一緩存模塊,第一緩存模塊連接在接入模塊和第一i2c模塊之間,第一緩存模塊用于緩存測試指令或第一mctp包。
5、在本實施例中,由于測試設備與電子設備之間的數(shù)據(jù)傳輸速率較高,而測試設備與固態(tài)硬盤之間的數(shù)據(jù)傳輸速率較低,因此在一段時間后測試設備容易發(fā)生擁塞,導致測試效率較低。本實施例提供的測試設備通過第一緩存模塊實現(xiàn)緩存機制,將來自電子設備的數(shù)據(jù)進行緩存,由此有利于避免發(fā)生擁塞,從而提高測試效率。
6、在另一種實施例中,第一緩存模塊用于校驗測試指令,并緩存校驗成功的測試指令;或者,校驗第一mctp包,并緩存校驗成功的第一mctp包。
7、在本實施例中,第一緩存模塊具有校驗功能,能夠減少無效數(shù)據(jù)的傳輸,從而減少數(shù)據(jù)傳輸時延。
8、在另一種實施例中,測試設備還包括第二緩存模塊,第二緩存模塊連接在接入模塊和第二i2c模塊之間,第二緩存模塊用于緩存第二mctp包或測試數(shù)據(jù)。
9、在另一種實施例中,測試設備還包括監(jiān)測模塊,監(jiān)測模塊電連接接入模塊、處理模塊和至少兩個i2c模塊。監(jiān)測模塊用于監(jiān)測接入模塊、處理模塊和至少兩個i2c模塊發(fā)送和/或接收的信息,并在信息出現(xiàn)異常時生成對應的錯誤碼,以及通過接入模塊向電子設備發(fā)送錯誤碼。
10、在本實施例中,測試設備通過監(jiān)測模塊實現(xiàn)流程自檢功能,通過監(jiān)測各個模塊發(fā)送和/或接收的信息是否出現(xiàn)異常,能夠實現(xiàn)對異常流程的準確定位,有利于調試和錯誤分析。
11、在另一種實施例中,錯誤碼包括第一錯誤碼、第二錯誤碼、第三錯誤碼及第四錯誤碼。其中,第一錯誤碼用于指示在接入模塊和處理模塊之間傳輸?shù)臏y試指令出現(xiàn)異常。第二錯誤碼用于指示在處理模塊和第一i2c模塊之間傳輸?shù)牡谝籱ctp包出現(xiàn)異常。第三錯誤碼用于指示在處理模塊和第二i2c模塊之間傳輸?shù)牡诙ctp包出現(xiàn)異常。第四錯誤碼用于指示在接入模塊和處理模塊之間傳輸?shù)臏y試數(shù)據(jù)出現(xiàn)異常。
12、在另一種實施例中,處理模塊包括私有協(xié)議單元,私有協(xié)議單元用于存儲私有協(xié)議,私有協(xié)議與nvme-mi協(xié)議相對應,處理模塊用于根據(jù)私有協(xié)議與nvme-mi協(xié)議的對應關系,將測試指令轉換成第一mctp包,以及將第二mctp包轉換成測試數(shù)據(jù)。
13、在另一種實施例中,接入模塊包括usb模塊,usb模塊包括usb接口和usb?cdc協(xié)議單元。usb接口用于與電子設備通信。usbcdc協(xié)議單元用于生成虛擬串口,虛擬串口用于將usb接口接收的測試指令發(fā)送至處理模塊,以及接收來自處理模塊的測試數(shù)據(jù)。
14、在本實施例中,測試設備通過usb模塊模擬串口通信,利用usb接口容易擴展的特點,能夠實現(xiàn)對固態(tài)硬盤的批量測試。
15、在另一種實施例中,至少兩個i2c模塊包括至少兩個i2c接口,至少兩個i2c接口通過io接口模擬得到。
16、本申請實施例第二方面提供一種固態(tài)硬盤的測試系統(tǒng),用于測試固態(tài)硬盤的nvme-mi協(xié)議,測試系統(tǒng)包括電子設備、固態(tài)硬盤及本申請實施例的測試設備,測試設備電連接電子設備和固態(tài)硬盤。
1.一種固態(tài)硬盤的測試設備,用于測試所述固態(tài)硬盤的nvme-mi協(xié)議,其特征在于,所述測試設備包括接入模塊、處理模塊和至少兩個i2c模塊,所述至少兩個i2c模塊包括第一i2c模塊和第二i2c模塊;
2.如權利要求1所述的固態(tài)硬盤的測試設備,其特征在于,所述測試設備還包括第一緩存模塊,所述第一緩存模塊連接在所述接入模塊和所述第一i2c模塊之間,所述第一緩存模塊用于緩存所述測試指令或所述第一mctp包。
3.如權利要求2所述的固態(tài)硬盤的測試設備,其特征在于,所述第一緩存模塊用于校驗所述測試指令,并緩存校驗成功的所述測試指令;或者,校驗所述第一mctp包,并緩存校驗成功的所述第一mctp包。
4.如權利要求1所述的固態(tài)硬盤的測試設備,其特征在于,所述測試設備還包括第二緩存模塊,所述第二緩存模塊連接在所述接入模塊和所述第二i2c模塊之間,所述第二緩存模塊用于緩存所述第二mctp包或所述測試數(shù)據(jù)。
5.如權利要求1所述的固態(tài)硬盤的測試設備,其特征在于,所述測試設備還包括監(jiān)測模塊,所述監(jiān)測模塊電連接所述接入模塊、所述處理模塊和所述至少兩個i2c模塊;
6.如權利要求5所述的固態(tài)硬盤的測試設備,其特征在于,所述錯誤碼包括第一錯誤碼、第二錯誤碼、第三錯誤碼及第四錯誤碼,其中,
7.如權利要求1所述的固態(tài)硬盤的測試設備,其特征在于,所述處理模塊包括私有協(xié)議單元,所述私有協(xié)議單元用于存儲私有協(xié)議,所述私有協(xié)議與所述nvme-mi協(xié)議相對應,所述處理模塊用于根據(jù)所述私有協(xié)議與所述nvme-mi協(xié)議的對應關系,將所述測試指令轉換成所述第一mctp包,以及將所述第二mctp包轉換成所述測試數(shù)據(jù)。
8.如權利要求1所述的固態(tài)硬盤的測試設備,其特征在于,所述接入模塊包括usb模塊,所述usb模塊包括usb接口和usb?cdc協(xié)議單元;
9.如權利要求1所述的固態(tài)硬盤的測試設備,其特征在于,所述至少兩個i2c模塊包括至少兩個i2c接口,所述至少兩個i2c接口通過io接口模擬得到。
10.一種固態(tài)硬盤的測試系統(tǒng),用于測試所述固態(tài)硬盤的nvme-mi協(xié)議,其特征在于,所述測試系統(tǒng)包括電子設備、所述固態(tài)硬盤及如權利要求1至9中任一項所述的測試設備,所述測試設備電連接所述電子設備和所述固態(tài)硬盤。