基于fpga的非安裝型存儲器測試裝置制造方法
【專利摘要】本發明涉及一種基于FPGA的非安裝型存儲器測試裝置,包括:處理器部,執行列舉和構形,制作場景,設定設備驅動部;設備驅動部,與主機總線適配器進行通訊;數據引擎部,生成模式數據,從系統存儲器訪問用戶存儲的數據,進行測試;系統內存接口部,接收進程所需的數據,并存儲測試結果;監控部,監控PCIe處理層的數據包并儲存;直接內存存取驅動/地址轉換部,若所述設備驅動部對場景進行譯碼,向主機總線適配器傳達命令,則所有數據流執行直接內存存取動作,向根聯合體發送內存讀取請求;信息輸入輸出部,向數據引擎部和設備驅動部傳達;PCIe IP部,為PCI Express邏輯的SW IP;開關部;被測設備部;內存部。
【專利說明】基于FPGA的非安裝型存儲器測試裝置
【技術領域】
[0001] 本發明涉及一種運用基于PCI Express(PCIe)的固態硬盤測試(SSD TEST)設備 的驅動機制,更加詳細而言,涉及一種基于現場可編程門陣列(field-programmable gate array,FPGA),而非基于PC的非安裝型測試裝置。
【背景技術】
[0002] 現在,高速存儲器(High Speed Storage)中固態硬盤(Solid State Drive ;SSD) 備受關注。其中,基于PCI Express的固態硬盤與SAS SATA相比擁有大量的通訊處理能力, 因此不僅擴大到如數據中心的企業用服務器,還擴大到個人固態硬盤市場。
[0003] 另一方面,有關測試存儲器的裝置,除韓國公開專利10-2010-011469號(以下稱 為"現有技術文獻")以外,還有多個被申請和公開。
[0004] 所述現有技術,包括:存儲器接口部,其維持與存儲器(storage)的連接;用戶接 口部,其從用戶接收用于所述存儲測試的測試條件;測試模式生成部,其生成與從所述用戶 接收的所述測試條件對應的用于所述存儲器測試的測試模式(test pattern);以及測試控 制部,其通過所述測試模式控制所述存儲器的測試。
[0005] 但是,包括現有技術文獻的現有測試裝置,為了檢測出閃存陣列的不良(Fail)邏 輯塊地址(Logic Block Address :LBA),執行向固態硬盤裝置(SSD Device)寫入特定模式 的數據,重新讀取,來比較數據是否有效。這種裝置中,將模式數據生成器和從模式生成器 生成的數據存儲于緩沖器(期望數據緩沖器,expected data buffer)。該存儲數據從固態 硬盤裝置重新讀取數據,與該數據緩沖器中的內容進行比較,來判斷是否不良。這種方式存 在緩沖器可用容量受限的問題。
[0006] 現今固態硬盤的容量達到數百千兆。為了測試這種裝置而擴展期望數據緩沖器的 大小,會引起多種制約事項。例如,如果制定過小,則以小的數據模塊進行數據讀取/寫入 (dataRead/Write),因此整體測試時間延長。如果制定過大,雖然性能提高,但要求從系統 的觀點來說無法容納的存儲容量。
[0007] 并且,在基于安裝的測試環境的情況下,與基于安裝的測試環境相比,存在對測試 設備驅動程序的命令處理的響應時間和測試時間延長的問題。
【發明內容】
[0008] (一)要解決的技術問題
[0009] 本發明涉及一種運用基于PCI-Express的固態硬盤測試裝置的驅動機制,更加詳 細而言,涉及一種基于FPGA而非基于PC的非安裝型存儲器測試裝置硬件驅動機制。
[0010] 具體地,其目的在于,提供一種與安裝系統不同,以固態硬盤運用為目的,將所有 系統的資源構成硬件,因此與基于安裝的測試環境相比,在測試設備驅動的命令處理時,能 夠確保更快的響應時間和更快的測試時間,在同一時間內能夠測試大量固態硬盤的裝置。 [0011](二)技術方案
[0012] 為了實現上述技術問題的本發明涉及一種基于FPGA的非安裝型存儲器測試裝 置,包括:處理器部,其作為在FPGA內部構成的微處理器,執行對根聯合體(Root complex : RC)以下 PCIe 總線樹(bus tree)的裝置的列舉(Enumeration)和構形(Configuration), 制作用于測試的場景(scenario),設定設備驅動部(Device Driver),以便進行測試;設 備驅動部,其作為基于所述處理器部制作的測試場景,生成用于存儲裝置的高級技術附件 (Advanced Technology Attachment, ΑΤΑ)命令的模塊,與包括管理存儲裝置的高級主控 接口(Advanced Host Controller Interface :AHCI)的主機總線適配器(Host Bridge Adapter,HBA)進行通訊;數據引擎部,其生成用于測試的模式數據,從系統存儲器訪問用 戶存儲的數據,來進行測試;系統內存接口部,其接收進程所需的數據,以便所述處理器部 和數據引擎部訪問內存部而能夠進行測試,并存儲測試結果;監控部,其在測試不良發生 時,監控PCIe處理層的數據包(Packet)并儲存;直接內存存取驅動/地址轉換部,若所述 設備驅動部對場景進行譯碼,并通過PCIe總線向主機總線適配器傳達命令,則所有數據流 執行成為主機總線適配器主令(Master)的直接內存存取動作,向包括設備驅動部的根聯 合體發送內存讀取請求(Memory Read RequeSt,Mrd);信息輸入輸出部,所述直接內存存取 驅動/地址轉換部的解讀結果,在傳達至Bus ConRC的TLP為信息的情況下,將其傳達給 數據引擎部和設備驅動部;PCIe IP部,其為PCI Express邏輯的SW IP ;開關部,其與所述 PCIe IP部連接,構成被測設備(DUT)部;被測設備部,其作為被測裝置,是包括主機總線適 配器,與PCIe直接連接的存儲器;內存部,其存儲用于測試的數據,存儲測試期間生成的記 錄。
[0013] 并且,本發明的基于FPGA的非安裝型存儲器測試裝置的特征為,所述處理器部在 測試結束的情況下,從所述設備驅動部接收關于是否出錯及成功的結果;在發生錯誤的情 況下,訪問(access)PCIe的TLP和設備錯誤信息。
[0014] 并且,本發明的基于FPGA的非安裝型存儲器測試裝置的特征為,所述設備驅動部 的命令包括:用于讀取/寫入(Read/Write)的數據緩沖器(Data Buffer)的基地址(base address)和尺寸(size),存儲裝置(固態硬盤)的邏輯塊地址信息。
[0015] 并且,本發明的基于FPGA的非安裝型存儲器測試裝置的特征為,所述制作場景的 信息,包括測試順序所需的信息和制定命令所需的信息中的至少一個,所述測試順序所需 的信息包括執行整個測試場景的的時間、邏輯塊地址模式(順次模式或隨機訪問模式)、數 據模式(Data pattern)、命令隊列深度(Command Queued Depth),所述制定命令所需的信 息分別為制定用于基于高級主控接口的PCIe存儲器(固態硬盤)的高級技術附件命令和 用于基于小型計算機系統接口(Small Computer System Interface, SCSI)的PCIe存儲器 (固態硬盤)的命令所需的信息。
[0016] 并且,本發明的基于FPGA的非安裝型存儲器測試裝置的特征為,所述數據引 擎部包括:模式數據生成模塊,其生成寫入固態硬盤所需的數據,在執行讀取和比較 (Read&compare)動作時,生成期望數據(Expected Data);比較模塊,其在執行讀取和比較 動作時,比較通過模式數據生成模塊生成的期望數據與作為主機總線適配器內存寫入請求 (Memory Write Request,Mwr)的數據的從固態硬盤讀取的數據,來判斷相應邏輯塊地址的 數據是否相同;不良記錄存儲模塊,其在所述比較部的判斷結果為不同的情況下,存儲不良 信息;以及系統內存輸入模塊,其接收用戶通過所述系統內存接口部存儲的數據。
[0017] 并且,本發明的基于FPGA的非安裝型存儲器測試裝置的特征為,所述直接內存存 取驅動/地址轉換部接收關于主機總線適配器的結束點(EndPoint,EP)向根聯合體發送的 請求的信息,向所述設備驅動部和數據引擎部傳達。
[0018] 并且,本發明的基于FPGA的非安裝型存儲器測試裝置的特征為,所述直接內存 存取驅動/地址轉換部在所述設備驅動部向主機總線適配器的緩存器(Register)傳達 用于訪問的內存寫入請求(Memory Write Request, Mwr)數據包傳達標記(flag)時,對 該標記進行譯碼,使根聯合體完成向主機總線適配器的緩存器的寫入,若為了請求命令頭 (Co_and header)信息,所述主機總線適配器向根聯合體傳輸內存讀取請求數據包,將該 數據包連接于所述設備驅動部,所述設備驅動部解讀并連接數據包,以便能夠將相應信息 傳輸至 Cpld(Completion with Data)數據包。
[0019] 并且,本發明的基于FPGA的非安裝型存儲器測試裝置的特征為,所述開關部在構 成于根聯合體的帶寬(Bandwidth)內的情況下,利用多個開關,來擴展PARA數(碑科午)。
[0020] (三)有益效果
[0021] 根據如上所述的本發明,與安裝系統不同,以固態硬盤運用為目的,所有系統的資 源構成硬件,因此與基于安裝的測試環境相比,在測試設備驅動的命令處理時,具有能夠確 保更快的響應時間和更快的測試時間,以相同時間為基準能夠測試大量的固態硬盤的效 果。
【專利附圖】
【附圖說明】
[0022] 圖1是示意地表示本發明的基于FPGA的非安裝型存儲器測試裝置的整體結構圖。
[0023] 圖2是表示本發明的處理器部制作的場景信息的例示圖。
[0024] 圖3是表示在本發明的處理器部訪問處理層數據包日志(packet log)的記錄的 例示圖。
[0025] 圖4是表示利用本發明的開關與被測設備部連接的方式的例示圖。
[0026] 圖5是表示利用本發明的多個開關來擴展法拉的方式的例示圖。
[0027] 附圖標記說明
[0028] 100 :處理器部 200 :設備驅動部
[0029] 300:數據引擎部 400:系統內存接口部
[0030] 500 :監控部 600 :直接內存存取驅動/地址轉換部
[0031] 700 :信息輸入輸出部800 :PCIe IP部
[0032] 900 :開關部 1000 :被測設備部
[0033] 1100:內存部
【具體實施方式】
[0034] 通過以下參照附圖的詳細的說明,更明確本發明的具體特征及優點。在此之前,需 注意當判斷有關本發明的公知技術及其組成的具體的說明,可能對本發明的主旨造成不必 要的混淆的情況下,省略其具體說明。
[0035] 以下,參照附圖,對本發明進行詳細的說明。
[0036] 如下所述,參照圖1至圖5,對本發明的基于FPGA的非安裝型存儲器測試裝置進行 說明。
[0037] 圖1作為示意地表示本發明的基于FPGA的非安裝型存儲器測試裝置的整體結構 圖,如圖所示,由處理器部100、設備驅動部200、數據引擎部300、系統內存接口部400、監控 部500、直接內存存取驅動/地址轉換部600、信息輸入輸出部700、PCIe IP部800、開關部 900、被測設備部1000以及內存部1100構成。
[0038] 處理器部100作為在FPGA內部構成的微處理器(Embedded Processor Unit : ETO),執行對根聯合體以下PCIe總線樹的裝置的列舉和構形,制作用于測試的場景,設定 設備驅動部200,以便進行測試。
[0039] 在測試結束的情況下,從所述設備驅動部200接收關于是否出錯及成功的結果, 在發生錯誤的情況下,訪問PCIe的TLP和設備錯誤信息。
[0040] 設備驅動部200作為基于處理器部100制作的測試場景,生成用于存儲裝置(固 態硬盤,硬盤)的高級技術附件命令的模塊,與管理存儲裝置的如高級主控接口的主機總 線適配器進行通訊。
[0041] 這種命令包括用于讀取/寫入的數據緩沖器的基地址和尺寸,存儲裝置(固態硬 盤)的邏輯塊地址信息。利用該信息,主機總線適配器執行用于讀取或寫入存儲裝置(固 態硬盤)的直接內存訪問(Direct Memory Access :直接內存存取)動作。
[0042] 圖2中的1表示處理器部100制作的場景的信息,一個場景由N個DW緩存器構 成。存在0?N個這種場景插槽(旮癸),并存在出發點(Start Point)和截止點(Stop Point)〇
[0043] 通過這種結構,能夠制作多種測試場景。
[0044] 制作場景的信息(參照圖2中的1)存儲測試順序所需的信息和制定命令所需的 信息,所述測試順序所需的信息包括執行整體測試場景的時間、邏輯塊地址模式(順次模 式或隨機訪問模式)、數據模式、命令隊列深度等,所述制定命令所需的信息分別為制定用 于基于高級主控接口的PCIe存儲器(固態硬盤)的高級技術附件命令和用于基于小型計 算機系統接口的PCIe存儲器(固態硬盤)的命令所需的信息。若開始測試,則執行從出發 點到結束點的測試場景。
[0045] 數據引擎部300執行生成用于測試的模式數據,從系統內存訪問用戶存儲的數 據,來進行測試的功能,如上述圖1所示,包括模式數據生成模塊310、比較模塊320、不良記 錄存儲模塊330以及系統存儲輸入模塊340。
[0046] 具體地,模式數據生成模塊310生成寫入固態硬盤所需的數據,在執行讀取和比 較動作時,生成期望數據。
[0047] 此時,模式數據生成模塊310通過利用向邏輯塊地址和直接內存存取驅動/地址 轉換部600請求的內存地址生成的種子(Seed)值生成隨機數據。
[0048] 更具體地,模式數據生成模塊310生成寫入固態硬盤所需的數據,在執行讀取和 比較動作時,生成期望數據。并且,執行寫入動作時,通過直接內存存取驅動/地址轉換部 600接收內存讀取請求(request)。
[0049] 在該數據包中積累請求數據量,請求數據量積累至1-扇區(sector)時,合并請求 的地址和命令的邏輯塊地址,生成種子(叫三),將邏輯復位。
[0050] 此時,只要種子因子(Seed Factor)相同,相應邏輯塊地址存儲始終以相同種子值 生成的隨機數據,因此與隨機、順次邏輯塊地址無關,存儲相同的數據。
[0051] 因此,無需用于存儲期望數據的另設的內存。在此,種子因子(入1三碑詞)是指 相加基本種子值,避免邏輯塊地址始終存儲相同的模式數據的變數。
[0052] 比較模塊320將執行讀取和比較動作時,比較通過模式數據生成模塊310生成的 期望數據與主機總線適配器內存寫入請求的數據即在固態硬盤讀取的數據,來判斷相應邏 輯塊地址的數據是否相同,在不相同的情況下,將不良信息存儲于不良記錄存儲模塊330 中。即,不良記錄存儲模塊330中存儲發生不良的邏輯塊地址和期望數據以及讀取數據等。
[0053] 系統內存輸入模塊340接收用戶通過系統內存接口部400存儲的數據。
[0054] 系統內存接口部400接收進程所需的數據,以便所述處理器部100和數據引擎部 300訪問內存部1100而能夠進行測試,并存儲測試結果。
[0055] 監控部500在發生測試不良時,監控并存儲PCIe處理層的數據包,能夠在處理器 部100進行訪問。圖3是表示處理器部100訪問處理層數據包日志的記錄的例示圖。
[0056] 直接內存存取驅動/地址轉換部600中,若所述設備驅動部200對場景進行譯碼, 并通過PCIe總線向主機總線適配器傳達命令,則所有數據流執行成為主機總線適配器主 令的直接內存存取動作,向包括設備驅動部200的根聯合體發送內存讀取請求。此時,數據 引擎部300對主機總線適配器請求的地址進行數據傳達。
[0057] 并且,直接內存存取驅動/地址轉換部600接收主機總線適配器的結束點向根聯 合體發送的請求的信息,向所述設備驅動部200和數據引擎部300傳達。
[0058] 例如,設備驅動部300傳達用于訪問主機總線適配器的緩存器的內存寫入請求數 據包傳達標記時,對該標記進行譯碼,使根聯合體完成向主機總線適配器的緩存器寫入。
[0059] 之后,主機總線適配器為了請求命令頭(Command Header)信息,向根聯合體傳輸 內存讀取請求數據包,將該數據包連接于設備驅動部200,所述設備驅動部200解讀并連接 數據包,以便能夠將相應信息傳輸至Cpld(Completion with Data)數據包。
[0060] 信息輸入輸出部700中直接內存存取驅動/地址轉換部600的解讀結果為在傳達 至Bus ConRC的TLP為信息的情況下,將其傳達給數據引擎部300和設備驅動部200。并且, 信息輸入輸出部700將在處理器部100中執行的用于總線構成(Configuration)的cfg-tlp 進行連接。
[0061] PCIe IP 部 800 為 PCI Express 邏輯的 SW IP。
[0062] 開關部900與所述PCIe IP部800連接,構成被測設備部1000。
[0063] 圖4是表示利用本發明的開關與被測設備部連接的方式的例示圖,圖5是表示利 用本發明的多個開關來擴展法拉的方式的例示圖。
[0064] 此時,能夠在根聯合體的帶寬內構成的情況下(參照圖4),可以為利用多個開關, 來擴展法拉(PARA,能夠一次全部測試的存儲數量)的結構(參照圖5)。
[0065] 被測設備部1000作為被測裝置(Device Under Test :DUT),是包括主機總線適配 器,與PCIe直接連接的存儲器。
[0066] 內存部1100存儲用于測試的數據,存儲測試期間產生的記錄。
[0067] 另一方面,簡單查看利用如上所述的測試裝置的測試過程如下。首先,處理器部 100執行PCIe總線樹的裝置的列舉和構形,制作用于測試的場景,設定設備驅動部200,進 行測試。在測試結束的情況下,接收測試是否出錯,并存儲錯誤信息,在沒有發生錯誤的情 況下,存儲測試完成信息。
[0068] 以上針對用于例舉說明本發明的技術思想的優選實施例進行了說明和圖示,但本 發明并不局限于如上進行圖示說明的完全不變的構成及作用,所屬領域的技術人員可以理 解為在不脫離技術思想主旨范圍內能夠對本發明進行多種變更及修改。因此,所有這種適 當的變更及修改和等價物,也應視為屬于本發明的范圍。
【權利要求】
1. 一種基于FPGA的非安裝型存儲器測試裝置,其包括: 處理器部(100),其作為在FPGA內部構成的微處理器,執行對根聯合體以下PCIe總線 樹的裝置的列舉和構形,制作用于測試的場景,設定設備驅動部(200),以便進行測試; 設備驅動部(200),其作為基于所述處理器部(100)制作的測試場景,生成用于存儲裝 置的高級技術附件命令的模塊,與包括管理存儲裝置的高級主控接口的主機總線適配器進 行通訊; 數據引擎部(300),其生成用于測試的模式數據,從系統存儲器訪問用戶存儲的數據, 來進行測試; 系統內存接口部(400),其接收進程所需的數據,以便所述處理器部(100)和數據引擎 部(300)訪問內存部(1100)而能夠進行測試,并存儲測試結果; 監控部(500),其在發生測試不良時,監控PCIe處理層的數據包并儲存; 直接內存存取驅動/地址轉換部(600),若所述設備驅動部(200)對場景進行譯碼,并 通過PCIe總線向主機總線適配器傳達命令,則所有數據流執行成為主機總線適配器主令 的直接內存存取動作,向包括設備驅動部(200)的根聯合體發送內存讀取請求; 信息輸入輸出部(700),所述直接內存存取驅動/地址轉換部(600)的解讀結果,在 傳達至BusConRC的TLP為信息的情況下,將其傳達給數據引擎部(300)和設備驅動部 (200); PCIeIP部(800),其為PCIExpress邏輯的SWIP; 開關部(900),其與所述PCIeIP部(800)連接,構成被測設備部(1000); 被測設備部(1000),其作為被測裝置,是包括主機總線適配器,與PCIe直接連接的存 儲器; 內存部(1100),其存儲用于測試的數據,存儲測試期間生成的記錄。
2. 根據權利要求1所述的基于FPGA的非安裝型存儲器測試裝置,其特征在于,所述處 理器部(100)在測試結束的情況下,從所述設備驅動部(200)接收關于是否出錯及成功的 結果,在發生錯誤的情況下,訪問PCIe的TLP和設備錯誤信息。
3. 根據權利要求1所述的基于FPGA的非安裝型存儲器測試裝置,其特征在于,所述設 備驅動部(200)的命令包括:用于讀取/寫入的數據緩沖器的基地址和尺寸,存儲裝置即固 態硬盤的邏輯塊地址信息。
4. 根據權利要求1所述的基于FPGA的非安裝型存儲器測試裝置,其特征在于,所述制 作場景的信息,包括測試順序所需的信息和制定命令所需的信息中的至少一個,所述測試 順序所需的信息包括執行整個測試場景的時間、邏輯塊地址模式即順次模式或隨機訪問模 式、數據模式、命令隊列深度,所述制定命令所需的信息分別為制定用于基于高級主控接口 的PCIe存儲器即固態硬盤的高級技術附件命令和用于基于小型計算機系統接口的PCIe存 儲器即固態硬盤的命令所需的信息。
5. 根據權利要求1所述的基于FPGA的非安裝型存儲器測試裝置,其特征在于,所述數 據引擎部(300)包括: 模式數據生成模塊(310),其生成寫入固態硬盤所需的數據,在執行讀取和比較動作 時,生成期望數據; 比較模塊(320),其在執行讀取和比較動作時,比較通過模式數據生成模塊(310)生成 的期望數據與從作為主機總線適配器內存寫入請求的數據的從固態硬盤讀取的數據,來判 斷相應邏輯塊地址的數據是否相同; 不良記錄存儲模塊(330),其在所述比較部(320)的判斷結果為不同的情況下,存儲不 良信息; 系統內存輸入模塊(340),其接收從所述系統內存接口部(400)接收用戶存儲的數據。
6. 根據權利要求1所述的基于FPGA的非安裝型存儲器測試裝置,其特征在于,所述直 接內存存取驅動/地址轉換部(600)接收關于主機總線適配器的結束點向根聯合體發送的 請求的信息,向所述設備驅動部(200)和數據引擎部(300)傳達。
7. 根據權利要求1所述的基于FPGA的非安裝型存儲器測試裝置,其特征在于,所述直 接內存存取驅動/地址轉換部(600)在所述設備驅動部(200)向主機總線適配器的緩存 器傳達用于訪問的內存寫入請求數據包傳達標記時,對該標記進行譯碼,使根聯合體完成 向主機總線適配器的緩存器的寫入,若為了請求命令頭信息,所述主機總線適配器向根聯 合體傳輸內存讀取請求數據包,將該數據包連接于所述設備驅動部(200),所述設備驅動部 (200)解讀并連接數據包,以便能夠將相應信息傳輸至Cpld數據包。
8. 根據權利要求1所述的基于FPGA的非安裝型存儲器測試裝置,其特征在于,所述開 關部(900)在構成于根聯合體的帶寬內的情況下,利用多個開關,來擴展PARA數。
【文檔編號】G06F13/38GK104516843SQ201410340524
【公開日】2015年4月15日 申請日期:2014年7月17日 優先權日:2013年9月30日
【發明者】韓永勉 申請人:韓商聯測股份有限公司