TWI743703B - 使用基於記憶體之通訊協定進行模擬裝置測試之系統及方法 - Google Patents

使用基於記憶體之通訊協定進行模擬裝置測試之系統及方法 Download PDF

Info

Publication number
TWI743703B
TWI743703B TW109108241A TW109108241A TWI743703B TW I743703 B TWI743703 B TW I743703B TW 109108241 A TW109108241 A TW 109108241A TW 109108241 A TW109108241 A TW 109108241A TW I743703 B TWI743703 B TW I743703B
Authority
TW
Taiwan
Prior art keywords
data
program
memory
command
shared memory
Prior art date
Application number
TW109108241A
Other languages
English (en)
Other versions
TW202105376A (zh
Inventor
唐納德 歐根
小法蘭克 劉
Original Assignee
日商愛德萬測試股份有限公司
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 日商愛德萬測試股份有限公司 filed Critical 日商愛德萬測試股份有限公司
Publication of TW202105376A publication Critical patent/TW202105376A/zh
Application granted granted Critical
Publication of TWI743703B publication Critical patent/TWI743703B/zh

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/38Response verification devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G01R31/318357Simulation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31722Addressing or selecting of test units, e.g. transmission protocols for selecting test units
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318314Tools, e.g. program interfaces, test suite, test bench, simulation hardware, test compiler, test program languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本發明的實施例提供一種模擬用於測試一模擬裝置之基於記憶體之通訊協定的方法。該方法包括把資料儲存在一主機資料緩衝區的一已知位置中,其中該主機資料緩衝區被實現在一共享記憶體空間中;執行一第一程式的指令以使用包括有一索引、一ID、以及一記憶體位置的一種資料結構把一命令儲存在該共享記憶體空間中;執行一第二程式的指令以從該主機資料緩衝區讀取該命令,存取在該共享記憶體空間中的該資料以使用該資料執行由該ID所定義的一操作,其中該資料的一位置係由該索引指出,並在該操作完成之後把一完成指示符發送給該第一程式。

Description

使用基於記憶體之通訊協定進行模擬裝置測試之系統及方法
發明領域
本發明的實施例一般係涉及裝置測試的領域。更具體地說,本發明的實施例涉及在測試期間用於模擬一待測裝置(DUT)的方法及系統。
發明背景
通常一待測裝置(DUT)或設備在其被出售之前會對其進行測試以確定該裝置的性能及一致性。可以使用很多種的測試用例對該裝置進行測試,而該等測試用例的該結果會與一預期的輸出結果進行比較。當一測試用例的該結果與該預期的輸出值不匹配時,將執行除錯以嘗試識別並更正由該裝置所導致之任何的缺陷。
一DUT通常藉由一自動或自動化的測試設備(ATE)來進行測試,其可被使用來執行使用軟體及自動化之複雜的測試以提高測試的效率。該DUT可以是一記憶體裝置或組件,其被預期將被整合到一最終產品之中,諸如一電腦或其他的電子裝置。在NAND快閃裝置開發過程中所使用之現有的系統級測試軟體特別要求在該DUT的開發接近完成之後軟體要被測試及除錯。即使在一緊急的情況下,該測試程式及該軟體產品通常也要等待由該客戶所提供之該記憶體裝置以準備好要進行開發及除錯,並因此該測試軟體開發的該生產率受到該裝置已被完成到何種程度的限制,其可能會導致錯過期限並且必須會在被全面地測試之前就發布產品。
此外,現有的DUT測試方法只能在一給定的時間點上修改DUT的特定屬性,並且某些變化只能被單獨地進行測試。所需要的是一種用於執行DUT測試的方法,該方法不依賴於該裝置的該開發完成度,而是可以在該實際DUT可用之前藉由測試及除錯測試軟體來提高生產開發的效率,並且可被客製化來測試大量的變量以增強該測試的穩健性及可擴展性。
發明概要
本發明的實施例提供了用於執行DUT測試之系統及方法,該系統及方法不依賴於該裝置的該開發的完成於否,其可在該實際DUT可用之前藉由對在軟體中模擬的該裝置進行測試及除錯來提高生產開發的效率,並且可被客製化來測試大量的變量以增強該測試的穩健性及可擴展性。可以根據該DUT的規格在該API層級上執行該測試。藉由在該開發過程的早期進行測試及除錯,當該實際裝置可用於測試時,所需要的除錯及重新設計就可減少,從而使得該裝置的交貨日期可以更早。
根據一個實施例,一種模擬用於測試一模擬裝置之一基於記憶體之通訊協定的方法被揭露。該方法包括把資料儲存在一主機資料緩衝區中,其中該主機係一測試器系統,並且其中該主機資料緩衝區被實現在一共享記憶體空間中;執行一測試器系統程式的指令以使用包括有一索引、一ID、以及一記憶體位置之一資料結構把一命令儲存在該共享記憶體空間中;執行一DUT模擬的指令以從該共享記憶體空間讀取該命令;存取該共享記憶體空間的一區塊以執行由該ID所定義的一操作,其中共享記憶體空間之該區塊的一位置係由該索引指出,並在該操作完成之後把一完成指示符發送給該測試器系統程式。
根據一些實施例,該ID指出該命令包括一程式操作,其中該存取正在讀取該區塊以獲得用於寫入到該記憶體位置的資料,其中該操作包括執行該程式操作,並且更包括有回應於該命令該DUT模擬把該資料寫入到一磁碟檔案。
根據一些實施例,該ID指出該命令包括一讀取操作,其中該存取正在儲存從該記憶體位置所讀取出的資料,其中該操作包括執行該讀取操作,並更包括有執行該DUT模擬的指令以存取一或多個磁碟檔案來讀取在該記憶體位置處的資料並把其儲存到在共享記憶體之該區塊中的該主機資料緩衝區。
根據一些實施例,該測試器系統程式的該等指令及該DUT模擬的該等指令被執行為由一基於Linux之作業系統所管理之分開程序。
根據一些實施例,該方法包括在該操作之後驗證該資料以在該程式操作之後探測該模擬裝置的錯誤。
根據一些實施例,該驗證包括把該資料與一預期結果進行比較。
根據一些實施例,該命令被儲存在該模擬裝置的一基底位址暫存器中。
根據一些實施例,該測試器系統程式的該等指令及該DUT模擬的該等指令係由同一處理器來執行。
根據一些實施例,該共享記憶體空間包括模擬實體記憶體之記憶體映射的檔案。
根據一些實施例,該等記憶體映射的檔案包括使用mmap所映射的檔案。
根據一些實施例,該共享記憶體空間包括模擬NAND快閃記憶體之記憶體映射的檔案。
根據一些實施例,該基於記憶體之通訊協定利用一PCIe通訊匯流排協定。
根據另一個實施例,一種模擬用於測試一模擬裝置之程式操作之一基於記憶體通訊協定的方法被揭露。該方法包括把資料儲存在一主機資料緩衝區中,其中該主機資料緩衝區被實現在一共享記憶體空間中;執行一測試器系統程式的指令以使用包括有一第一索引、該程式操作之一ID、以及一記憶體位置的一資料結構把一程式操作儲存在該共享記憶體空間中;並執行一DUT模擬的指令用以:存取在該共享記憶體空間中的該程式操作、從由該第一索引所定義的共享記憶體空間之一區塊讀取資料、把該資料寫入到在該記憶體位置處之一或多個磁碟檔案、以及在把該資料寫到該記憶體位置後之向該測試器系統程式發送一第一完成指示符。該方法更包括執行該測試器系統程式的指令以使用包括有一第二索引、指出該讀取操作的一ID、以及該記憶體位置的一資料結構把一讀取操作儲存在該共享記憶體空間中;並執行該DUT模擬的指令用以從該記憶體位置讀取該資料、根據該第二索引把該資料寫到該主機資料緩衝區的一區塊、並在把資料寫入到由該第二索引所定義的該區塊後向該測試器系統程式發送一第二完成指示符。
根據一些實施例,該方法包括在該讀取操作之後對資料進行驗證以探測該模擬裝置的錯誤,其中該驗證包括把該資料與一預期的結果進行比較。
根據一些實施例,該第一完成指示符被儲存在由該測試器系統程式所管理的一佇列中。
根據一些實施例,該記憶體位置參考一磁碟的一記憶體位置,並且其中該記憶體位置被實現為一磁碟檔案以模擬快閃記憶體。
根據一不同的實施例,一種用於模擬一待測裝置的系統被揭露。該系統包括執行一基於Linux之作業系統的一處理器以及與該處理器進行通訊的一記憶體,該記憶體為一測試器系統程式及一DUT模擬程式提供一共享記憶體空間。該測試器系統程式及該DUT模擬程式的指令由該處理器來執行,並且該處理器執行一種方法,該方法模擬用於測試該待測裝置之一模擬的一種基於記憶體之通訊協定。該方法包括把資料儲存在一主機資料緩衝區中,其中該主機係一測試器系統,並且其中該主機資料緩衝區被實現在一共享記憶體空間中;執行該測試器系統程式的指令以使用包括有一索引、一ID、以及一記憶體位置的一資料結構把一命令儲存在該共享記憶體空間中;並執行該DUT模擬的指令以從該共享記憶體空間讀取該命令;存取該共享記憶體空間的一區塊以執行由該ID所定義的一操作,其中共享記憶體空間之該區塊的一位置係由該索引來指出,並在該操作完成之後把一完成指示符發送給該測試器系統程式。
根據一些實施例,該方法包括在該操作之後對資料進行驗證以測試該模擬裝置,並且其中該驗證包括把該資料與在該操作後之一預期的結果進行比較。
根據一些實施例,該ID指出該命令包括一程式操作,其中該操作包括執行該程式操作,並且其中回應於該命令該DUT模擬程式把來自由該索引所定義之該共享記憶體一區塊的資料寫入到一磁碟檔案。
根據一些實施例,該ID指出該命令包括一讀取操作,其中該操作包括執行該讀取操作,並更包括有執行該DUT模擬程式的指令以存存一或多個磁碟檔案以讀取資料並把來自該磁碟檔案的該資料寫入到在由該索引所定義之一位置處的該主機資料緩衝區。
根據一些實施例,該測試器系統程式的該等指令及該DUT模擬程式的該等指令被執行為分開的程序並且其中該等分開的程序係由該基於Linux之作業系統來管理。
根據一些實施例,該基於記憶體之通訊協定係一PCIe通訊匯流排協定。
根據一不同的實施例,一種用於與一模擬裝置執行基於記憶體之通訊的系統被揭露。該系統包括一處理器、耦合到該處理器的一記憶體、以及由該處理器來執行之一測試器系統程序,其中該測試器系統程序被分配包括有一主機資料緩衝區之一共享記憶體位址空間,並且其中該測試器系統程序把資料儲存在該主機資料緩衝區中並藉由把命令儲存到該共享記憶體位址空間來向一裝置程序發布命令。該裝置程序由該處理器執行用以模擬一裝置,並且其中該裝置程序包括一控制器,該控制器可操作來從磁碟檔案讀取資料、把資料寫到該等磁碟檔案、從該共享記憶體位址空間讀取命令、以及根據該等命令執行操作。該等命令包括以下操作:一程序操作從該主機資料緩衝區讀取被索引的資料然後把該被索引的資料寫到該等磁碟檔案、一讀取操作從該等磁碟檔案讀取資料然後根據一索引值把該資料寫到該主機資料緩衝區、以及一抹除操作來抹除該等磁碟檔案的一或多個。
根據一些實施例,該測試器系統程序模擬一測試器系統,並且該裝置程序模擬一待測裝置。
根據一些實施例,該共享記憶體位址空間模擬在該測試器系統與該待測裝置之間的一PCIe匯流排。
較佳實施例之詳細說明
現在將詳細地參考幾個實施例。儘管將結合該等替代實施例來描述本技術主題,但應被理解的是,它們並不旨在把該要求保護的技術主題侷限於這些實施例。相反的是,該要求保護的技術主題旨在涵蓋替代、修改、以及等同物,其可被包括在由所附請求項所限定之該要求保護技術主題的精神及範圍內。
此外,在以下詳細描述中闡述了許多具體的細節,以對該要求保護的技術主題提供一透徹的理解。然而,本領域的習知技藝者將體認識的是,可以在沒有這些具體細節或其等同物的情況下實踐實施例。在其他的實例中,公知的方法、程序、組件、以及電路並沒被詳細地描述以避免不必要地模糊該技術主題的方面及特徵。
以下將以一方法的方式來呈現及討論該詳細描述的部分。儘管本文在描述該方法操作的一附圖(例如,圖6及7)中公開了其步驟及順序,但是這些步驟及順序係示例性的。實施例非常地適合執行在本文附圖之流程圖中所列舉的各種其他的步驟或該等步驟的變型,並且可以以不同於本文所描繪及描述的順序來執行。
該詳細描述之某些部分的呈現係根據可在電腦記憶體上被執行之在資料位元上操作的程序、步驟、邏輯區塊、處理、以及其他的符號表示。這些描述及表示係在資料處理領域的習知技藝者用來把其工作之該本質最有效地傳達給本領域其他習知技藝者的手段。此處,通常把一程序、電腦執行的步驟、邏輯區塊、處理、等等視為導致出一所欲結果之步驟或指令的一自洽序列。這些步驟係需要對實體量進行實體操縱的步驟。通常,雖然不是必須的,這些量採取能夠在一電腦系統中被儲存、傳輸、組合、比較、以及以其他方式被操縱之電或磁信號的形式。主要係出於通用的原因,有時已經證明把這些信號稱為位元、數值、元素、符號、字元、項目、數字、等等係方便的。
然而,應當牢記的是,所有這些及類似術語均應與適當的實體量相關聯,並且僅係被套用到這些量上之方便的標籤。除非另有明確的說明否則都可從以下討論被明顯地看出,應被體認的是,在整個討論中,使用諸如「存取」、「寫入」、「包括有」、「儲存」、「傳輸」、「關聯」、「識別」、「編碼」、等等用語係指一電腦系統或類似電子運算裝置的該操作及處理,該操作及處理把被表示在該電腦系統暫存器及記憶體中實體(電子)量的資料操作及轉換為在該電腦系統暫存器或記憶體或其他此類資訊儲存、傳輸或顯示裝置中被類似表示為實體量的其他資料。 用於模擬一基於記憶體之協定的系統及方法
本發明的實施例提供了用於執行DUT測試的系統及方法,該系統及方法不依賴於該待測裝置的該開發完成度,可以在該實際DUT可用之前藉由在軟體模擬的一裝置上測試及除錯該測試軟體來提高測試開發的效率,並且可以對其進行客製化來測試大量的變量,以增強該測試的穩健性及可擴展性。根據該DUT的該規格,可以在該API層級上執行該測試。藉由在該開發過程的早期進行測試及除錯,當該實際裝置可用於測試時,該測試軟體所需要的除錯及重新設計就更少了,從而使得該裝置的交貨日期可以提早。
本發明的實施例執行一測試程式及軟體模擬器,用於模擬使用一PCIe(高速周邊組件互連)資料匯流排與一主機裝置(該測試器)進行通訊的一NAND記憶體待測裝置。PCIe係一串列匯流排,其通常包括被使用來從一連接的裝置執行讀取及寫入事務的多個通道。使用PCIe所執行的該等操作被封包化,並且該等封包通常包含一位址及可選擇性之將被寫入的資料。該封包被串列地轉發到該目標裝置,該目標裝置對該寫入順序進行封包拆解,並對該包含的資料執行寫入操作。讀取操作讀取儲存在該DUT中的資料。對於一讀取操作,一封包轉發到一目標裝置,然後該目標裝置藉由創建一個包含該資料有效荷載被稱為CplD(資料完成)封包的一特殊事務層封包來執行該讀取操作,並且一請求者ID被使用來把該資料有效荷載路徑安排回到發出該讀取操作的該請求者。該測試器還經常發出程式操作及抹除操作。
基於記憶體之通訊協定映射共享記憶體位置,該等共享記憶體位置可被附連的裝置(例如,DUT)存取用於發布命令及在裝置之間傳輸資料,並且該基於記憶體之通訊協定可以使用基於封包的協定,諸如PCIe協定,來被實現。該PCIe協定包括基於記憶體的功能,並且基於現有PCIe通訊匯流排所構建之基於記憶體的通訊協定可能特別難以測試,因為該DUT的該等底層操作在測試過程中通常並不明顯。在某些情況下,可以定義該協定以使得記憶體的不同部分被使用來執行不同類型的功能或記憶體操作,並且該DUT被期望要基於由該主機裝置所發出的命令來執行一操作。本發明的實施例可以使用諸如基於Linux之作業系統所實現之mmap共享記憶體技術之類的共享記憶體技術來模擬一記憶體裝置(例如,NAND快閃裝置),以模擬諸如PCIe之類的一封包化的通訊協定,或基於現有PCIe體系架構所建構的一協定,用於測試該記憶體裝置。在這種情況下,將對該DUT及該PCIe協定進行模擬,以促進測試器軟體的開發。
該PCIe匯流排的一個重要設計方面係PCIe裝置通常對該主機而言顯示為記憶體映射的裝置。因此,儘管該裝置可以從該主機接收封包化的資料,但是該主機藉由對特定的記憶體位址進行讀取及寫入來與該裝置互動。因此,一模擬裝置可以存取該主機也可以存取的記憶體。本發明的實施例的一方面涉及模擬一基於PCIe的協定用於測試使用共享記憶體存取的一模擬DUT。
可以使用一基於Linux的作業系統來實現本發明的實施例,其中該測試程式及該模擬裝置駐留為由該作業系統所控制之分開的程序。這兩個程序都可以存取該共享記憶體位址空間。此外,可以把多個裝置模擬為分開的程序,並且可以執行多個測試程式(例如,每個模擬裝置一個)以提高該測試環境的速度及穩健性。
本文所描述的一些實施例包括方法或步驟用於驗證由一DUT所執行的操作以判定該DUT是否已經根據該裝置的該等規格來執行該操作來產生一預期的結果。例如,根據一些實施例,該DUT把資料寫入到一記憶體位置(一程式操作),並且把該資料從該記憶體位置讀回到(一讀取操作)主機記憶體,並且該測試程式判定該資料是否被成功地寫入及/或讀取。這可以藉由把由該DUT所讀取到的資料與根據該裝置之該等規格的一預期結果進行比較來實現。此外,可藉由確認將由一抹除操作來抹除的該資料不再儲存在記憶體中來驗證該抹除操作。可以使用諸如探針之類的測試設備來驗證其他的操作,以檢測及量化該DUT的活動性以及在其中儲存的資料。該驗證可被執行作為用於檢測及/或校正該DUT缺陷之測試或除錯過程的一部分。
關於圖1,根據本發明的實施例描繪了一示例性裝置測試系統100,該系統100包括一示例性主機裝置105(測試器系統),其被組配成使用一PCIe資料匯流排145來測試一實體裝置180(例如,一DUT)。該主機裝置105可以根據該裝置的該等特定要求執行被設計來用於測試該裝置180的一測試程式。該PCI資料匯流排145被該裝置的該控制器150使用來根據主機裝置105所發出的命令或操作從主機資料緩衝區120讀取資料並把資料寫入主機資料緩衝區120。例如,該裝置180可以藉由使用控制器150向主機105發出PCIe取讀請求來存取在主機資料緩衝區120中的資料(程式操作),並且該裝置180可以藉由使用控制器150向主機105發出PCIe寫入請求來把資料寫入主機資料緩衝區120(一讀取操作)。該主機裝置105可以藉由把該命令儲存在被映射到內儲在該控制器150中記憶體之一實體位置的一共享記憶體位址空間中來向裝置180的該控制器150發出命令。例如,該控制器150可以從內儲在該控制器150之實體記憶體中(例如,在PCIe位址空間中)的一基底位址暫存器(BAR)讀取命令,該控制器150之實體記憶體被映射到在共享位址空間115中的一位置。
資料被儲存在共享記憶體空間115之主機資料緩衝區120的區塊中,並且根據索引值125對該等資料區塊進行索引。該資料可以包括專門被組配來測試裝置180之已知的資料模式。源自於該主機105的命令通常包含一索引值以識別出在該命令中所使用的一記憶體區塊。該索引值由裝置180的控制器150來讀取,以判定資料在該主機記憶體緩衝區120中的一位置。當該控制器正在執行一主機命令時,它將使用由該索引值所識別出的該資料區塊(不是從該區塊獲取資料就是把資料儲存到該區塊)。當該控制器150完成與由該主機裝置105所發出之一命令相對應的一操作時,該控制器150把一完成指示符發送到主機裝置105,其被儲存在完成佇列130中。該等命令被儲存或被排隊成為在BAR2空間(命令佇列)140B中的一資料結構,並且該資料結構可以包括一ID值、一索引值、一記憶體位置、以及其他的引數。當主機裝置105讀取針對一程式命令的一完成指示符時,可以清除儲存在該主機資料緩衝區120中之該相應的索引,並將其重新用於新資料。對於一讀取命令,該完成指示符告訴該主機105該資料已可供該主機來處理了。
該主機資料緩衝區120、該索引125、以及該完成佇列130被儲存在該主機裝置的實體記憶體中,並且可由控制器150作為記憶體映射資料115進行存取。雖然該裝置180可以從該主機接收封包化的資料,該主機可以藉由讀取或寫入特定記憶體位址來與該裝置進行互動。因此,該裝置180可以存取該主機也可以存取的記憶體。
根據一些實施例,該控制器150存取一或多個用於儲存某些資料的BAR,諸如位址轉換及映射,以及由主機裝置105所發布的命令。該等基底位址暫存器(例如,BAR0 135A及BAR2 140A)被實體地儲存在控制器150中,並從可由控制器150存取的該PCIe位址空間被映射到在該主機裝置上的共享記憶體位址空間115。例如,BAR0空間135B可以儲存在該PCIe位址空間中的實體記憶體位址,並被映射到在該控制器150上的BAR0 135A。當控制器150接收到一程式命令時,該控制器從BAR0空間135B讀取與該命令之該索引相關聯的該實體記憶體位址,以從PCIe位址空間寫入主機記憶體。BAR2空間140B可被使用作為命令佇列用於儲存由該主機裝置105所發出的命令,在該等命令被控制器150執行之前。在BAR2 140A中的該資料被實體地儲存在PCIe位址空間中裝置180之控制器150上,並被映射到在BAR2 140A中在該主機裝置上的該共享記憶體位址空間115。
應被理解的是,在命令被執行之前,該控制器150可以從主機裝置105接收命令並將其儲存(排隊)在BAR2空間140B的一命令佇列中,並且通常可以以任何的順序來執行該等命令。換句話說,該等命令並不被預期以與它們由主機裝置105所發布或由控制器150所讀取之順序相同的順序來執行,並且該控制器150可判定用於執行該等命令的一有效的順序。因此,數個命令可被儲存在一命令佇列中,並且該控制器150可以判定接下來要執行哪個命令。
該控制器150分別通過通訊通道165及170與NAND晶粒175及195進行通訊。該等通訊通道165及170可操作以與該各別的晶粒同時通訊。該NAND晶粒把資料儲存在該晶粒175及195的平面、區塊、分頁、及扇區中。
根據一些實施例,在資料由控制器150被寫入到一晶粒之前,每個NAND晶粒175及195與用於儲存該資料之一各別的佇列進行通訊。例如,將通過通訊通道165被寫入到NAND晶粒175的資料可被儲存在佇列185中,並且將通過通訊通道170被寫入到NAND晶粒195的資料可被儲存在佇列190中。將被寫入到該NAND晶粒175及195的資料可由該控制器150通過PCIe匯流排145從主機記憶體120被讀取,並且從NAND晶粒175及195讀取的資料可以在該資料被寫入到主機記憶體120之前被儲存在佇列185及190中。
當一程式命令被發出以把資料寫入到一快閃記憶體位置(例如,晶粒175或195)時,該主機105載入資料並把該資料寫入到一空閒索引位置中。然後,該主機105發出包括該索引位置及一記憶體位置的一程式命令。該DUT 180處理該命令,從該索引(例如,索引125)讀取該資料,並把資料儲存在該記憶體位置中。
當該主機105發出一讀取命令以讀取儲存在一DUT 1801中的資料時,該讀取命令包括一索引(例如,索引125)及一記憶體位置。該資料從該記憶體位置被讀取並由該DUT寫入到該索引。
當由該主機發出一抹除操作時,該DUT 180在該抹除命令中所指出的記憶體位置處抹除資料(例如,一或多個磁碟檔案)。一長度或大小欄位可被使用來指出將要抹除多少資料(例如,多少個檔案)。
有關於圖2,根據本發明的實施例描繪了一示例性裝置測試系統200,該系統200包括有一示例性測試程式215,該示例性測試程式215被組配成使用一基於記憶體的通訊協定(例如,PCIe或使用PCIe所實現的一通訊協定)來測試一模擬裝置280(例如,一模擬的DUT),而該基於記憶體的通訊協定也被模擬。該測試程式215通常執行與主機裝置105相同的功能,並且該模擬裝置280可以被組配成模擬裝置180的該功能(參見圖1)。在圖2中,該測試器系統及該模擬DUT 280均在同一個基於Linux的電腦系統205的不同部分上被實現。
不是使用一實體資料匯流排(例如,PCIe)在該測試程式215與該模擬裝置280之間傳輸資料,而是共享記憶體位址空間被利用在該測試程式215與該模擬裝置280之間來共享資料以有效地模擬該PCIe匯流排。此外,該模擬裝置280可以使用磁碟檔案275及295來模擬用於儲存由控制器250所管理資料的NAND晶粒。該控制器250從該共享記憶體空間讀取主機命令並執行相應的操作。例如,該控制器可以從在共享記憶體空間220中的命令佇列245(包括一識別的索引)存取一讀取命令,從磁碟檔案275及/或280中讀取對應的資料,並把該資料寫入到主機資料緩衝區225到由該索引所識別出的該區塊。程式命令及抹除命令也可以被模擬。以這種方式,在該實際裝置已經被完全開發或被原型化之前,模擬裝置280可以使用測試程式215來被測試以測試及除錯一DUT(例如,在圖1中的裝置180)。根據一些實施例,模擬裝置280藉由向測試程式215發出一PCIe讀取請求從測試程式215的共享記憶體位址空間220讀取資料(來自程式命令),並且模擬裝置295藉由向測試程式215發出一PCIe寫入請求把資料(來自讀取命令)寫入到測試程式215的共享記憶體位址空間220。
可被理解的是,該測試程式215及該模擬裝置280係由CPU 205使用一基於Linux的作業系統210來執行的。一PCIe資料匯流排在軟體中被模擬用於使用映射檔案(例如,使用mmap映射的檔案)在該測試程式215與該模擬裝置280之間傳輸資料及命令。該等映射的檔案充當共享的實體記憶體,並且在該測試程式215及該模擬裝置280兩者的該記憶體空間中都可用。完成佇列235、索引230、主機資料緩衝區225、以及任何的BAR都可使用映射的檔案被實現為共享的實體記憶體。以這種方式,該測試程式215及該模擬裝置280都可以存取在共享記憶體空間220中的該資料。例如,藉由把一命令寫入在共享記憶體位址空間220中的BAR2 245A,測試程式215可以發出一命令,其中BAR2 245A的該記憶體空間被映射到PCIe位址空間並實體地被儲存BAR2空間245B中的該控制器上,並且該控制器250從BAR2空間245B讀取該命令以執行一相應的操作。
該裝置的該控制器250存取共享記憶體位址空間220,以根據測試程式215所發出的命令來從主機資料緩衝區225讀取資料(程式命令)並且把資料寫入到主機資料緩衝區225(讀取命令)。資料被儲存在共享記憶體位址空間220的主機資料緩衝區225中,並且該資料根據索引值230被索引。該索引值由裝置280的控制器250讀取,以判定與最後一個命令相關聯之在主機記憶體緩衝區225中的一資料位置。當該控制器250完成與由測試程式215所發出之一命令相對應的一操作時,該控制器250把一完成指示符發送給測試程式215,其被儲存在完成佇列235中。該完成指示符識別出與其相關聯的該命令。由該測試程式215所發出的該等命令被儲存成為一種資料結構在共享記憶體位址空間220中(例如,在一基底位址暫存器中),並且該資料結構可以包括一ID值、一索引值、一記憶體位置、以及其他引數(例如,長度,大小、等等)。當測試程式215讀取一完成指示符時,如果該命令係一程式命令的話,則可以清除儲存在該主機資料緩衝區225中對應的索引,並把其重新用於新的資料。如果該命令係一讀取命令,則該主機能夠在接收到該完成指示符時存取該資料。
根據一些實施例,該控制器250存取一或多個基底位址暫存器(BAR)用以存取特定的資料,諸如位址轉換及映射、以及由測試程式215所發出的命令。該等基底位址暫存器(例如BAR0空間240B及BAR2空間245B)被映射到測試程式215的一共享記憶體位址空間並且被實體地儲存在控制器250中與讀取命令相關的PCIe位址空間中。如果該命令係一程式命令,則該控制器將使用該索引值來判定要從中讀取資料的該記憶體位址。
BAR0空間240B可以儲存被映射到控制器250之該PCIe位址空間的實體記憶體位址,用以存取在主機資料緩衝區225中的資料。當控制器250接收到一程式命令時,該控制器讀取與來自BAR0空間240B之該命令的索引相關聯的該實體記憶體位址以判定要寫入到主機記憶體的該實體記憶體位址。
BAR2 245A可被使用作為一命令佇列用於在控制器250執行由測試程式215發出的命令之前儲存該等命令。將被理解的是,該控制器250可以接收來自測試程式215的命令並在執行該等命令之前把該等命令儲存在BAR2空間245B的一命令佇列中,並且可以以任何順序來執行該等命令。換句話說,該等命令並不期望要以與它們由測試程式215發出或由該控制器250讀取之順序相同的一順序來執行,並且該控制器250可以判定命令要被執行的該順序。
該控制器250使用磁碟檔案275及295來儲存資料以模擬NAND晶粒(例如,在圖1中的NAND晶粒175及195)。可以以一種模擬NAND快閃區塊的方式來寫入該等磁碟檔案,其中每一個檔案都與一個特定的區塊相關聯,並包含資料的分頁及扇區。代表區塊的該等檔案也可以與一各別NAND晶粒的一平面相關聯。當測試程式215發出一命令時,儲存在磁碟檔案275或295中資料的一記憶體位置可被包括在該命令的該等引數中,以指示該控制器250在回應於該命令時應存取(讀取或寫入)哪些資料。以這種方式,在能夠使用傳統的方式實體地生產及測試一DUT本身之前,該模擬裝置280可以模擬該DUT讀取(或寫入)NAND快閃。
根據一些實施例,將被寫入到磁碟檔案275的資料被儲存在佇列265中,並且將被寫入到磁碟檔案295的資料被儲存在佇列270中。將被寫入到該等磁碟檔案275及295的該資料可由該控制器250從主機記憶體225讀取並且一開始先被寫入到該等佇列265及270。此外,在資料被寫入到主機記憶體225之前,由控制器250從磁碟檔案275及295所讀取的該資料可被儲存在佇列265及270中。使用該模擬的DUT 280並且也經由上述的該記憶體映射技術來模擬該PCIe匯流排,本發明允許了在該實際的實體DUT可用之前可以開發及除錯該測試程式215的一環境。
關於圖3,根據本發明的實施例描繪了用於同時測試多個模擬裝置的一示例性測試環境300。一測試工作站305執行一測試套件310,該套件提供一使用者介面、軟體功能、以及用於介接系統測試模組315的一控制API。該系統測試模組315具有多個嵌入式處理器,並且每個處理器執行一基於Linux的作業系統以提供用於測試模擬裝置的測試站點。
每一個測試站點都分配有獨一無二的記憶體映射區域(例如,記憶體映射的記憶體)用於模擬基於記憶體之通訊協定以測試該等DUT。例如,測試站點320可以執行多個測試程式以同時測試多達8個模擬DUT(例如Dut1–Dut8),其中每一個測試程式及每一個模擬DUT被當作為分開的程序由該基於Linux的作業系統來執行。測試站點325還可以同時執行8個模擬DUT(例如,DUT9–DUT16)及對應的測試程式。在本發明的實施例的範圍內,該系統測試模組315可以包括更多或更少的嵌入式處理器。例如,該系統測試模組315可以包括多達96個執行基於Linux之作業系統的嵌入式處理器,以同時測試多達768個DUT。該等測試站點320及325可以執行例如在圖2中所描繪之該測試程式215及該模擬裝置280的多個實例。
該測試套件310可以包括改變參數及組配的功能用於測試該等DUT來模擬不同的操作條件。例如,可以使用一種組配來測試一組DUT,可以使用另一不同的組配來測試另一組DUT,然後來自該等DUT的該等結果可被比較以判定該等組配如何產生不同的結果。此外,每一個各別的DUT可被組配成模擬不同的工作條件用以快速地檢測錯誤並執行快速的除錯。
根據一些實施例,該測試套件310可以引入隨機或偽隨機延遲(例如,讀取或寫入延遲)以執行對該模擬裝置的壓力測試。
關於圖4,針對如在圖1中所示的該系統描繪了一資料流程圖400,該流程圖描繪用於測試一實體待測裝置465之一示例性軟體層級結構或堆疊。該層級結構包括一測試程式405,該測試程式405由一主機系統執行並被組配來執行用於一特定裝置(DUT)465的裝置測試。該測試程式405通常係由該裝置465的該製造商根據用於測試該裝置465之該等特定的需求來提供。該API函式庫410包括一存取函式庫,其為測試程式405提供被使用來控制該裝置465之該硬體的函式。API函式庫410的該等函式由該測試程式405呼叫並經由軟體介面415來執行。該軟體介面415係一裝置協定,其可操作來與該裝置465的一通訊介面(例如,PCIe)進行通訊,並且包括一機器專用裝置庫420、一核心介面425、以及一Linux裝置驅動程式(核心模組)430。該軟體介面415經由裝置驅動程式440在介面435上進行通訊,並且一根複雜裝置445把該主機系統的該處理器及記憶體子系統連接至該裝置465之該PCIe組件450的該PCIe交換結構455。一記憶體管理單元460有助於通過介面435在該主機系統的該主記憶體與該裝置465之間進行記憶體存取。
關於圖5,針對如在圖2中所示的該系統,根據本發明的實施例一資料流程圖500描繪了一示例性軟體層級結構或堆疊用於模擬一基於記憶體的通訊協定以測試一模擬裝置540。與資料流程圖400類似,API函式庫510的該等函式由該測試程式505呼叫並經由軟體介面515來執行。該軟體介面515介接模擬裝置540,並且包括一機器專用裝置庫520及一核心介面525。該核心介面525與一模擬的通訊協定530互動,該模擬的通訊協定530可以模擬諸如PCIe之一基於記憶體的通訊協定,或者建構在PCIe上之一基於記憶體的協定。
藉由一基於Linux之作業系統的共享記憶體技術,諸如使用mmap所實現的共享記憶體535,可以促進在該模擬的協定530與該模擬裝置540之間的互動。使用共享記憶體535,執行測試程式505的該主機裝置藉由使用特定記憶體位址讀取及寫入資料來與該模擬裝置540互動。因此,本發明的實施例提供了在該裝置的該開發完成之前用於測試一模擬裝置的資料流程500,從而可以開發及除錯該測試器軟體。藉由在該實體裝置可用之前對在軟體中模擬的該裝置進行測試及除錯,可以提高該測試器軟體的生產開發效率,並且可以客製化該測試器軟體勇以測試大量變量以增強該測試的穩健性及可擴展性。
關於圖6,根據本發明的實施例描繪了用於測試一模擬裝置之電腦實施步驟600的一示例性序列。可以使用基於一Linux的作業系統來執行該等電腦實施的步驟600,其中一測試程式及該模擬的裝置程式駐留作為由該作業系統控制之分開的程式或程序。這兩個程序都可以存取一共享記憶體位址空間。此外,可以將多個裝置模擬為分開的程序,並且可以執行多個測試程式(例如,每個模擬裝置一個)以提高該測試環境的該速度及穩健性。
在步驟605,一已知的資料模式被儲存在該共享記憶體空間中主機記憶體的特定位置(例如,一主機資料緩衝區)中,該共享記憶體空間可被一模擬裝置及執行指令以測試該模擬裝置的一測試程式兩者來存取。在步驟610,該測試程式把命令儲存在該共享記憶體空間中。該命令被儲存成一種資料結構,該資料結構包括欄位用於一索引、一ID,一記憶體位置、以及可選擇性的其他引數諸如一資料長度或大小。根據一些實施例,該命令被儲存在一BAR中,該BAR被記憶體映射以供該測試程式及該模擬裝置存取用於排隊命令以由該模擬裝置的一控制器來執行,並且該等被排隊的命令可以以任何的順序來執行。
在步驟615,該模擬裝置從在該共享記憶體空間中的該資料結構存取該命令。存取該命令可以包括從該資料結構中讀取該索引、該ID、該記憶體位置、以及其他的引數。
在步驟620,該模擬裝置執行由該命令ID所定義的一操作並使用由該索引所指定的該記憶體位置。步驟620通常包括存取在該共享記憶體位址空間中的資料。步驟620更可包括該模擬裝置存取一共享記憶體位置(例如,一BAR)以查找一實體的位址映射,該實體的位址映射把由該索引所指出的該資料位置映射到主機記憶體的一實體記憶體位置。如在下面更全面描述的,該操作可以包括一程式操作、一讀取操作、一抹除操作、等等。例如,該操作可以包括以一種模擬對一或多個快閃記憶體晶粒(例如,NAND快閃)進行讀取及寫入的方式來對磁碟檔案做資料讀取或寫入。該操作更可包括在把資料寫入到該等磁碟檔案之前把該資料寫入到一或多個佇列。
對於一主機發出的程式操作,在該資料結構中的該ID指出該操作包括使用預先儲存在由該資料結構之該索引所指出之一主機記憶體位置中的資料來執行一程式操作,並且步驟620更包括該模擬裝置的該控制器根據由該索引所指出的一記憶體位置向在主機記憶體中的資料發出一讀取請求(例如,一PCIe讀取請求)。該模擬裝置的該控制器從主機記憶體中獲取該資料,並把該資料寫入到一或多個磁碟檔案中的某個位置上,而該位置也係由在該資料結構中的該記憶體位置所指出。在該資料結構中之一長度或大小欄位可以指出有多少資料將要從主機記憶體讀取並把其寫入到該等磁碟檔案。根據一些實施例,要寫入該資料的該位置係由該索引來指出,並且根據定義了該共享記憶體空間(例如,一BAR)的一記體映射會把該位置轉換為在PCIe位址空間中的一實體記憶體位置。根據一些實施例,將被寫入到該等磁碟檔案該的資料在被寫入到該等磁碟檔案之前首先被寫入到一佇列。在該程式命令完成時,該DUT發出一完成指示符,以便該主機可以釋放該資料塊。
對於一讀取操作,在該資料結構中的該ID指出該操作包括執行一讀取操作以獲得儲存在該裝置之一或多個磁碟檔案中的資料,並且步驟620更包括該模擬裝置的該控制器從在該資料結構中該記憶體位置所指出之一位置處的一或多個磁碟檔案中獲取資料,然後,根據該所提供的索引把該資料寫入(例如,發出一PCIe寫入請求)到在主機記憶體中的一位置。在該資料結構中之一長度或大小欄位可以指出有多少資料將要從該等磁碟檔案讀取並把其寫入到主機記憶體。根據一些實施例,根據在共該享記憶體空間中(例如,在一BAR中)定義的一記憶體映射,由該索引指出用於寫入該資料的該記憶體位置被轉換為在PCIe位址空間中的一實體記憶體位置。在該讀取操作完成時,一完成指示符通知該主機指出該資料係可用於在該識別的區塊處。
對於一抹除操作,在該資料結構中的該ID指出該操作包括執行一抹除操作以抹除資料,並且步驟620更包括該模擬裝置的該控制器抹除由在該資料結構中之該記憶體位置所指出位置處的一或多個磁碟檔案。在該資料結構中的一長度或大小欄位可以指出要抹除多少資料(例如,多少個檔案)。根據一些實施例,每一個磁碟檔案代表一個NAND快閃記憶體的一區塊,並且該抹除操作係在一種逐一區塊(逐一檔案)的基礎上被執行的。根據一些實施例,該抹除操作包括從記憶體中刪除一或多個磁碟檔案。
在步驟625,該模擬裝置把一完成指示符發送給該測試程式,以指出該操作已完成。可以把該完成指示符儲存一完成佇列中,該完成佇列被實現在一共享記憶體空間的一BAR中。此外,對於程式命令,步驟625可以包括在該命令已經完成之後釋放該對應的索引位置。對於讀取命令,該完成指示符會通知主機指出該資料已準備好被讀取。
關於圖7,根據本發明的實施例描繪了用於測試一模擬裝置之電腦實施步驟700的一示例性序列。可以使用基於一Linux的作業系統來執行該等電腦實施的步驟700,其中一測試程式及該模擬的裝置程式駐留作為由該作業系統控制之分開的程式或程序。這兩個程序都可以存取一共享的記憶體位址空間。此外,可以將多個裝置模擬為分開的程序,並且可以執行多個測試程式(例如,每個模擬裝置一個)以提高該測試環境的該速度及穩健性。
在步驟705,已知的資料模式被儲存在該共享記憶體空間中主機記憶體的特定位置(例如,一主機資料緩衝區)中,該共享記憶體空間可被該模擬裝置及執行指令以測試該模擬裝置的一測試程式兩者來存取。
在步驟710,該主機把資料儲存到將被規劃到該DUT之一記憶體區塊中,並且該測試程式把一程式命令儲存在該共享記憶體空間中。該命令被儲存成有一種資料結構,該資料結構包括的欄位有一索引、一ID,一記憶體位置、以及可選擇性的其他引數諸如一資料長度或大小。根據一些實施例,該命令被儲存在可由該測試程式及該模擬裝置兩者來存取的一BAR中用以在被該模擬裝置的一控制器執行之前儲存命令,並且該等儲存的命令可以以任何的順序來執行。
在步驟715,該模擬裝置從在該共享記憶體空間存取該程式命令。存取該命令可以包括從在該共享記憶體空間中的該資料結構中讀取該索引、該ID、該記憶體位置、以及其他的引數。
在步驟720,該模擬裝置的該控制器從該共享記憶體空間讀取資料,其係在步驟710被儲存在其中的。由該模擬裝置所讀取的資料的該位置係由該索引來指出。例如,該控制器可以藉由向該測試程式發出一PCIe讀取請求來從主機記憶體中獲取該資料。步驟720更可包括該模擬裝置存取一共享記憶體位置(例如,一BAR)以查找一實體的位址映射,該實體的位址映射把由該索引所指出的該資料位置映射到主機記憶體的一實體記憶體位置。
在步驟725,該模擬裝置把在步驟720中所讀取的資料寫入到一或多個磁碟檔案,該等檔案的位置係由儲存在該資料結構中的該記憶體位置所指出。根據一些實施例,將被寫入到該等磁碟檔案的該資料在被寫入到該等磁碟檔案之前首先會被寫入到一佇列。
在步驟730,該模擬裝置把一完成指示符發送給該測試程式,以指出該程式操作已完成。可以把該完成指示符儲存在一完成佇列中,該完成佇列被實現在一共享記憶體空間的一BAR中。此外,步驟730可以包括在該程式命令已經完成之後釋放該對應的索引位置。
步驟735-750可被可選擇性地執行以讀回被寫入到該模擬裝置的該資料,並驗證是否無誤地執行了該程式操作。
在步驟735,該測試程式使用一種資料結構來把一讀取命令儲存在該共享記憶體空間中,該資料結構具有一索引、指出該命令包括一讀取操作的一ID、以及在步驟725中該資料被寫入的該記憶體位置。
在步驟740,該模擬裝置從該共享記憶體空間存取該讀取命令。存取該命令可以包括從在該共享記憶體空間中的該資料結構讀取該索引、該ID、該記憶體位置、以及其他的引數。
在步驟745,該模擬裝置回應於該讀取命令從該記憶體位置讀取該資料。
在步驟750,該模擬裝置根據該索引把該資料寫入到在該主機資料緩衝區中的一第二位置。例如,該模擬裝置可以發出一PCIe寫入請求,以把該資料寫到該主機資料緩衝區。根據一些實施例,該要被寫入的位置係由該索引來指出,並且該位置係根據一記憶體映射被轉換為在PCIe位址空間中的一實體記憶體位置,該記憶體映射係被定義於儲存在該共享記憶體空間中的一BAR中。
在步驟755,該模擬裝置把一完成指示符發送給該測試程式,以指出該寫入操作已完成。可以把該完成指示符儲存在實現在一共享記憶體空間之一BAR中的一完成佇列中。而且,步驟755可以包括在該讀取命令已被完成之後釋放該相應的索引位置。
關於圖8,根據本發明的實施例描繪出一方塊圖及資料流程圖800用於模擬一示例性基於記憶體的通訊協定以測試一模擬裝置840。測試程式810及裝置模擬840係由CPU 805執行在一基於Linux的作業系統之中。測試程式810及裝置模擬840可以由CPU 805作為分開的程式或程序來執行,並且兩者都可以存取包括有主機資料緩衝區815的一共享記憶體位址空間820。裝置模擬840回應於一讀取命令可以把資料855發送到測試程式810,並且裝置模擬840回應於一程式命令可以把從主機資料緩衝區815所獲得的資料855寫入到一或多個磁碟檔案850。在一操作完成之後,該裝置模擬840發送一完成指示符865,並且可以把該完成指示符儲存在完成佇列825中。
該裝置模擬840回應於由該測試程式810所發出的命令860執行操作(例如,程式、讀取、抹除)。這些命令可被儲存在該測試程式810及該裝置模擬840都可存取的一共享或映射的記憶體空間中,諸如基底位址暫存器830。基底位址暫存器855係在PCIe位址空間中裝置模擬840的該記憶體中被實現的,並且被映射到測試程式810的該記憶體空間(基底位址暫存器830)。這些命令可被儲存成為一種資料結構,其包括有用於一ID、一索引、一記憶體位置、以及其他引數的欄位。由該測試程式810所發出的命令可被儲存在命令佇列845中,並且該裝置模擬840可以以任何順序來執行該等命令。 示例性電腦系統
本發明的實施例涉及用於執行模擬DUT測試的電子系統,該電子系統不依賴於該裝置開發的完成與否,可以提高在該實際DUT可用之前開發測試及除錯軟體的效率,並且可被客製化來測試大量的變量以增強該測試的穩健性及可擴展性。一些實施例執行一測試程式及一軟體模擬器用於模擬與使用一PCIe(快速周邊組件互連)資料匯流排之一主機裝置進行通訊的一NAND記憶體裝置。以下討論描述了可被使用來實現本發明實施例之一平台的一種如此的示例性電子系統或電腦系統。
在圖9的該實例中,該示例性電腦系統912(例如,一代理系統或主管系統)包括一中央處理單元(CPU)901用於運行軟體應用程式以及可選擇性的一作業系統(例如,一Linux或一基於Linux的作業系統)。隨機存取記憶體902及唯讀記憶體903儲存供該CPU 901使用的應用程式及資料。此外,電腦系統912的記憶體空間(例如,隨機存取記憶體902的記憶體空間)可被使用來映射出可由附接裝置(例如,DUT)存取的共享記憶體位置用於發布命令並在裝置之間傳輸資料,並且可以使用基於封包的協定,諸如PCIe,來被實現。在某些情況下,該協定可被定義以使得記憶體的不同部分被使用來執行不同類型的函式或記憶體操作,並且該DUT被期望要基於該主機裝置所發出的命令來執行一操作。以此種方式,本發明的實施例可以使用共享記憶體技術來模擬一記憶體裝置(例如,NAND快閃裝置)用以模擬用於測試記憶體裝置的一封包化的通訊協定。
資料儲存裝置904為應用程式及資料提供非依電性的儲存,並且可以包括固定式磁碟機、可移除式磁碟機、快閃記憶體裝置、以及CD-ROM、DVD-ROM或其他光學儲存裝置。該可選擇性的使用者輸入906及907包含把來自一或多位使用者的輸入傳送給該電腦系統912的裝置(例如,滑鼠、搖桿、相機、觸控螢幕、及/或麥克風)。
一通訊或網路介面908允許該電腦系統912經由一電子通訊網路與其他的電腦系統、裝置、網路、或裝置進行通訊,包括有線及/或無線通訊諸如USB或藍牙,並且包括一企業內部網路或網際網路(例如802.11無線標準)。該可選擇性的顯示器裝置910可以是能夠回應於來自該電腦系統912的一信號而顯示出視覺資訊的任何裝置,並且例如可以包括一平板觸控顯示器。可以經由一或多個資料匯流排900來耦合該電腦系統912的該等組件,包括有CPU 901、記憶體902/903、資料儲存904、使用者輸入裝置906、以及圖形子系統905。
在圖9的該等實施例中,一可選擇性的圖形子系統905可以與資料匯流排及該電腦系統912的該等組件耦合。該圖形系統可以包含一實體圖形處理單元(GPU)905及圖形/視訊記憶體。圖形子系統905把顯示資料輸出到可選擇性的顯示器裝置910。該顯示器裝置910可以使用HDMI、DVI、DisplayPort、VGA、等等被通訊地耦合到該圖形子系統905。
一些實施例可在可由一或多個電腦或其他裝置來執行之一般電腦可執行指令的環境中來描述,諸如程式模組。通常,程式模組包括執行特定任務或實現特定抽象資料類型的例程、程式、物件、組件、資料結構、等等。通常,在各種實施例中,該等程式模組的該功能可以根據需要進行組合或散佈。
因此,本發明的實施例被描述了。儘管本文已經在特定的實施例中描述了本發明,但是應當理解的是,本發明不應被解讀為受限於如此的實施例,而是應根據以下的請求項來解釋。
100,200:裝置測試系統 105:主機 110,205,805:CPU 115,220,820:共享記憶體空間 120,225:主機資料緩衝區/主機記憶體緩衝區/主機記憶體 125,230:索引 130,235,825:完成佇列 135A,240A:BAR0 135B,240B:BAR0空間 140A,245A:BAR2 140B,245B:BAR2空間 145:PCIe資料匯流排 150,250:控制器 165,170:通訊通道 175,195:NAND晶粒 180:裝置 185,190,265,270:佇列 210:Linux 215,810:測試程式 275,295:磁碟檔案 280:模擬裝置 300:測試環境 305:測試工作站 310:測試套件 315:系統測試模組 320,325:測試站點 400,500:資料流程圖 405,505:測試程式 410,510:API函式庫 415,515:軟體介面 420,520:裝置庫 425,525:核心介面 430:核心模組 435:PCIe 440:PCIe驅動程式 445:根複雜(HW) 450:PCIe組件 455:交換結構 460:MMU 465:DUT 530:模擬的協定 535:共享記憶體 540:模擬裝置 600,700:步驟 605,610,615,620,625,705,710,715,720,725,730,735,740,745,750,755:方塊 800:方塊圖 815:主機資料緩衝區 830,855:基底位址暫存器 840:裝置模擬 845:命令佇列 850:磁碟檔案 855:資料 860:命令 865:完成 900:資料匯流排 901:處理器 902:RAM(依電的) 903:ROM(非依電的) 904:資料儲存裝置 905:圖形子系統 906:使用者輸入 907:游標控制 908:通訊/網路介面 910:顯示器裝置
該等附圖,其被併入在本說明書中並構成本說明書之一部分,圖示出了本發明的實施例,並且該等附圖與本說明書一起用於解釋本發明的該等原理:
圖1根據本發明之實施例描繪出一示例性裝置測試系統的方塊圖,該系統包括有一示例性主機裝置,該示例性主機裝置被組配成使用之一PCIe資料匯流排來測試一裝置(例如一DUT)。
圖2係一示例性裝置測試系統的方塊圖,該系統包括有一示例性測試程式,該測試程式被組配成使用一基於記憶體的通訊協定(例如,PCIe或使用PCIe所實現的一通訊協定)來測試一模擬裝置,其係根據本發明的實施例來被模擬。
圖3根據本發明之實施例描繪出用於同時測試多個模擬裝置之一示例性測試環境的方塊圖。
圖4係根據本發明之實施例的一資料流程圖,其描繪出用於測試一實體DUT之一示例性軟體層級結構。
圖5根據本發明之實施例描繪出一資料流程圖,其描繪了一示例性軟體層級結構用於模擬用來測試一模擬裝置之一基於記憶體之通訊協定。
圖6根據本發明的實施例描繪出用於執行一操作以測試一模擬裝置之電腦實施步驟的一示例性順序的流程圖。
圖7根據本發明的實施例描繪出用於執行一程式操作及一讀取操作以測試一模擬裝置之電腦實施步驟的一示例性順序的流程圖。
圖8根據本發明的實施例描繪出用於模擬一示例性基於記憶體之通訊協定以測試一模擬裝置的一方塊圖及一資料流程圖。
圖9描繪出可以在其上實現本發明之實施例的一示例性電腦平台。
600:步驟
605,610,615,620,625:方塊

Claims (25)

  1. 一種模擬用於測試模擬裝置之基於記憶體之通訊協定的方法,該方法包含有:把資料儲存在一主機資料緩衝區中,其中該主機係一測試器系統,並且其中該主機資料緩衝區被實現在一共享記憶體空間中;執行一測試器系統程式的指令,以使用包含有一索引、一ID、以及一記憶體位置之一資料結構把一命令儲存在該共享記憶體空間中;執行一待測裝置(DUT)模擬的指令,用以:從該共享記憶體空間讀取該命令;存取該共享記憶體空間的一區塊以執行由該ID所定義的一操作,其中共享記憶體之該區塊的一位置係由該索引指出;以及在該操作完成之後把一完成指示符發送給該測試器系統程式。
  2. 如請求項1之方法,其中該ID指出該命令包含一程式操作,其中該存取係讀取該區塊以獲得用於寫入到該記憶體位置的資料,其中該操作包含執行該程式操作,並更包含有回應於該命令,該DUT模擬把該資料寫入到一磁碟檔案。
  3. 如請求項1之方法,其中該ID指出該命令包含一讀取操作,其中該存取係儲存從該記憶體位置所讀取的資料,其中該操作包含執行該讀取操作,並且更包含有執行該DUT模擬的指令以存取一或多個磁碟檔案來讀取在該記憶體位置處的資料並把其儲存到在該共享記憶體之該區塊中的該主機資料緩衝區。
  4. 如請求項1之方法,其中該測試器系統程式的該等指令及該DUT模擬的該等指令係作為由一基於Linux之作業系統所管理之分開的程序執行。
  5. 如請求項2之方法,其更包含有在該操作之後驗證該資料以在該程式操作之後探測該模擬裝置的錯誤。
  6. 如請求項5之方法,其中該驗證包含把該資料與一預期結果進行比較。
  7. 如請求項1之方法,其中該命令被儲存在該模擬裝置的一基底位址暫存器中。
  8. 如請求項4之方法,其中測試器程式的該等指令及該DUT模擬的該等指令係由同一處理器執行。
  9. 如請求項1之方法,其中該共享記憶體空間包含模擬實體記憶體之記憶體映射的檔案。
  10. 如請求項9之方法,其中該等記憶體映射的檔案包含使用mmap所映射的檔案。
  11. 如請求項1之方法,其中該共享記憶體空間包含模擬NAND快閃記憶體之記憶體映射的檔案。
  12. 如請求項1之方法,其中該基於記憶體之通訊協定利用一PCIe通訊匯流排協定。
  13. 一種模擬用於模擬裝置之測試程式操作之基於記憶體之通訊協定的方法,該方法包含有:把資料儲存在一主機資料緩衝區中,其中該主機資料緩衝區被實現在一共享記憶體空間中;執行一測試器系統程式的指令,以使用包含有一第一索引、該程式操作之一ID、以及一記憶體位置的一資料結構把一程式操作儲存在該共享記憶體空間中;執行一DUT模擬的指令以: 存取在該共享記憶體空間中的該程式操作;從由該第一索引所定義之該共享記憶體空間的一區塊讀取資料;把該資料寫入到在該記憶體位置處之一或多個磁碟檔案;並且在把該資料寫入到該記憶體位置之後向該測試器系統程式發送一第一完成指示符;執行該測試器系統程式的指令以使用包含有一第二索引、指出該讀取操作的一ID、以及該儲存位置之一資料結構把一讀取操作儲存在該共享記憶體空間中;以及執行該DUT模擬的指令以:從該記憶體位置讀取該資料;根據該第二索引把該資料寫入到該主機資料緩衝區的一區塊;以及在把該資料寫入到由該第二索引所定義的該區塊之後向該測試器系統程式發送一第二完成指示符。
  14. 如請求項13之方法,其更包含有在該讀取操作之後對該資料進行驗證以探測該模擬裝置的錯誤,其中該驗證包含把該資料與一預期的結果進行比較。
  15. 如請求項13之方法,其中該第一完成指示符被儲存在由該測試器系統程式所管理的一佇列中。
  16. 如請求項13之方法,其中該記憶體位置參考一磁碟的一記憶體位置,並且其中該記憶體位置被實現為一磁碟檔案以模擬快閃記憶體。
  17. 一種用於模擬待測裝置的系統,該系統包含有:執行一基於Linux之作業系統的一處理器;以及與該處理器進行通訊的一記憶體,該記憶體為一測試器系統程式及一DUT模擬程式提供一共享記憶體空間,其中該測試器系統程式及該DUT模擬程式的 指令由該處理器來執行,並且其中該處理器執行一種方法,該方法模擬用於測試該待測裝置之一模擬之一基於記憶體的通訊協定,該方法包含有:把資料儲存在一主機資料緩衝區中,其中該主機係一測試器系統,並且其中該主機資料緩衝區被實現在一共享記憶體空間中;執行該測試器系統程式的指令,以使用包含有一索引、一ID、以及一記憶體位置之一資料結構把一命令儲存在該共享記憶體空間中;並且執行該DUT模擬程式的指令以:從該共享記憶體空間讀取該命令;存取該共享記憶體空間的一區塊以執行由該ID所定義的一操作,其中該共享記憶體之該區塊的一位置係由該索引指出;以及在該操作完成之後把一完成指示符發送給該測試器系統程式。
  18. 如請求項17之系統,其中該方法更包含在該操作之後對該資料進行驗證以測試該模擬裝置,並且其中該驗證包含把該資料與在該操作後之一預期的結果進行比較。
  19. 如請求項17之系統,其中該ID指出該命令包含一程式操作,其中該操作包含執行該程式操作,並且其中回應於該命令,該DUT模擬程式把來自由該索引所定義之該共享記憶體之一區塊的該資料寫入到一磁碟檔案。
  20. 如請求項17之系統,其中該ID指出該命令包含一讀取操作,其中該操作包含執行該讀取操作,並更包含有執行該DUT模擬程式的指令以存存一或多個磁碟檔案以讀取資料並把來自該磁碟檔案的該資料寫入到由該索引所定義之一位置處的該主機資料緩衝區。
  21. 如請求項17之系統,其中該測試器系統程式的該等指令及該DUT模擬程式的該等指令作為分開的程序被執行,並且其中該等分開的程序係由該基於Linux之作業系統管理。
  22. 如請求項17之系統,其中該基於記憶體之通訊協定係一PCIe通訊匯流排協定。
  23. 一種用於執行與模擬裝置之基於記憶體之通訊的系統,該系統包含有:一處理器;耦合到該處理器的一記憶體;以及由該處理器執行之一測試器系統程序,其中該測試器系統程序被分配有包括有一主機資料緩衝區之一共享記憶體位址空間,並且其中該測試器系統程序把資料儲存在該主機資料緩衝區中並藉由把命令儲存到該共享記憶體位址空間來向一裝置程序發布命令,其中該裝置程序係由該處理器執行用於模擬一裝置,並且其中該裝置程序包含一控制器,該控制器可操作以:從磁碟檔案讀取資料;把資料寫入到該等磁碟檔案;從該共享記憶體位址空間讀取該等命令;根據該等命令執行操作,其中該等命令包含:一程式操作,其從該主機資料緩衝區讀取被索引的資料並把該被索引的資料寫入到該等磁碟檔案;一讀取操作,其從該等磁碟檔案讀取資料並根據一索引值把該資料寫入到該主機資料緩衝區;以及一抹除操作,其抹除該等磁碟檔案的一或多者。
  24. 如請求項23之系統,其中該測試器系統程序模擬一測試器系統並且該裝置程序模擬一待測裝置。
  25. 如請求項24之系統,其中該共享記憶體位址空間模擬在該測 試器系統與該待測裝置之間的一PCIe匯流排。
TW109108241A 2019-06-03 2020-03-12 使用基於記憶體之通訊協定進行模擬裝置測試之系統及方法 TWI743703B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/430,284 US11302412B2 (en) 2019-06-03 2019-06-03 Systems and methods for simulated device testing using a memory-based communication protocol
US16/430,284 2019-06-03

Publications (2)

Publication Number Publication Date
TW202105376A TW202105376A (zh) 2021-02-01
TWI743703B true TWI743703B (zh) 2021-10-21

Family

ID=73550359

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109108241A TWI743703B (zh) 2019-06-03 2020-03-12 使用基於記憶體之通訊協定進行模擬裝置測試之系統及方法

Country Status (5)

Country Link
US (1) US11302412B2 (zh)
JP (1) JP6916340B2 (zh)
KR (1) KR102243791B1 (zh)
CN (1) CN112035299B (zh)
TW (1) TWI743703B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11069420B2 (en) * 2019-07-25 2021-07-20 Micron Technology, Inc. In-system test of a memory device
CN112711442B (zh) * 2020-12-29 2024-09-03 北京浪潮数据技术有限公司 一种主机命令写入方法、设备、系统及可读存储介质
CN113191114B (zh) * 2021-04-30 2023-11-10 北京百度网讯科技有限公司 用于验证系统的方法和装置
US20220382668A1 (en) * 2021-05-28 2022-12-01 Advantest Corporation Systems and methods for concurrent and automated testing of zoned namespace solid state drives
TWI772189B (zh) * 2021-09-24 2022-07-21 英業達股份有限公司 硬碟模擬裝置及應用該裝置的測試系統及其測試方法
CN117806892B (zh) * 2024-02-29 2024-06-14 山东云海国创云计算装备产业创新中心有限公司 存储芯片模型测试方法、装置、通信设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920490A (en) * 1996-12-26 1999-07-06 Adaptec, Inc. Integrated circuit test stimulus verification and vector extraction system
TW200428200A (en) * 2003-03-31 2004-12-16 Advantest Corp Test emulator, test module emulator, and record medium storing program therein
CN101201387A (zh) * 2006-07-31 2008-06-18 马韦尔半导体以色列有限公司 对自动测试装置中电压降的补偿
JP2009116876A (ja) * 2007-11-05 2009-05-28 Advantest Corp 試験装置のシミュレーションシステム、方法、及びプログラム製品
TW201504647A (zh) * 2013-07-24 2015-02-01 愛德萬測試股份有限公司 測試片與托盤間之高速測試儀通訊界面
US20150301108A1 (en) * 2014-04-18 2015-10-22 Breker Verification Systems Scheduling of scenario models for execution within different computer threads and scheduling of memory regions for use with the scenario models

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0561935A (ja) * 1991-08-30 1993-03-12 Hitachi Ltd 論理シミユレーシヨン方式
JPH06194415A (ja) * 1992-09-30 1994-07-15 American Teleph & Telegr Co <Att> 論理回路の試験方法とその装置
US6076179A (en) * 1997-01-29 2000-06-13 Altera Corporation Method and apparatus of increasing the vector rate of a digital test system
US6493811B1 (en) * 1998-01-26 2002-12-10 Computer Associated Think, Inc. Intelligent controller accessed through addressable virtual space
US6185707B1 (en) * 1998-11-13 2001-02-06 Knights Technology, Inc. IC test software system for mapping logical functional test data of logic integrated circuits to physical representation
JP2001134469A (ja) * 1999-08-16 2001-05-18 Advantest Corp 半導体試験用プログラムデバッグ装置
US7184917B2 (en) * 2003-02-14 2007-02-27 Advantest America R&D Center, Inc. Method and system for controlling interchangeable components in a modular test system
US7155379B2 (en) * 2003-02-25 2006-12-26 Microsoft Corporation Simulation of a PCI device's memory-mapped I/O registers
JP2005032191A (ja) * 2003-07-11 2005-02-03 Sharp Corp 仮想テスタ、テスト装置、半導体集積回路用テストシステム、及び半導体集積回路用テストプログラムの検証方法
JP3774848B2 (ja) * 2003-07-15 2006-05-17 忠義 須藤 ドアガードのロック機構と掛かり防止機構
US20050251766A1 (en) 2004-05-07 2005-11-10 Shah Gaurav R Circuit design interface
US7210087B2 (en) * 2004-05-22 2007-04-24 Advantest America R&D Center, Inc. Method and system for simulating a modular test system
KR20080015691A (ko) * 2006-08-16 2008-02-20 삼성전자주식회사 시스템 온 칩 모델 검증 방법 및 장치
US8229727B2 (en) * 2007-01-09 2012-07-24 International Business Machines Corporation System and method for incorporating design behavior and external stimulus in microprocessor emulation model feedback using a shared memory
US8719649B2 (en) * 2009-03-04 2014-05-06 Alcatel Lucent Method and apparatus for deferred scheduling for JTAG systems
US8386867B2 (en) * 2009-07-02 2013-02-26 Silicon Image, Inc. Computer memory test structure
JP2012027688A (ja) * 2010-07-23 2012-02-09 Panasonic Corp シミュレーション装置
US9043665B2 (en) * 2011-03-09 2015-05-26 Intel Corporation Functional fabric based test wrapper for circuit testing of IP blocks
US20140236527A1 (en) * 2013-02-21 2014-08-21 Advantest Corporation Cloud based infrastructure for supporting protocol reconfigurations in protocol independent device testing systems
WO2015081308A2 (en) 2013-11-26 2015-06-04 Dynavisor, Inc. Dynamic i/o virtualization
US9454636B1 (en) 2015-04-02 2016-09-27 Esilicon Corporation Integrated circuit design optimization
US9678150B2 (en) * 2015-10-27 2017-06-13 Xilinx, Inc. Methods and circuits for debugging circuit designs
US10073932B2 (en) * 2016-03-04 2018-09-11 Synopsys, Inc. Capturing time-slice of emulation data for offline embedded software debug
US10719644B2 (en) * 2017-06-30 2020-07-21 Synopsys, Inc. Method and framework to dynamically split a testbench into concurrent simulatable multi-processes and attachment to parallel processes of an accelerated platform
US10295596B1 (en) * 2017-08-09 2019-05-21 Cadence Design Systems, Inc. Method and system for generating validation tests
GB2576493B (en) * 2018-07-23 2022-01-05 Advanced Risc Mach Ltd Data Processing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920490A (en) * 1996-12-26 1999-07-06 Adaptec, Inc. Integrated circuit test stimulus verification and vector extraction system
TW200428200A (en) * 2003-03-31 2004-12-16 Advantest Corp Test emulator, test module emulator, and record medium storing program therein
CN101201387A (zh) * 2006-07-31 2008-06-18 马韦尔半导体以色列有限公司 对自动测试装置中电压降的补偿
JP2009116876A (ja) * 2007-11-05 2009-05-28 Advantest Corp 試験装置のシミュレーションシステム、方法、及びプログラム製品
TW201504647A (zh) * 2013-07-24 2015-02-01 愛德萬測試股份有限公司 測試片與托盤間之高速測試儀通訊界面
US20150301108A1 (en) * 2014-04-18 2015-10-22 Breker Verification Systems Scheduling of scenario models for execution within different computer threads and scheduling of memory regions for use with the scenario models

Also Published As

Publication number Publication date
JP6916340B2 (ja) 2021-08-11
CN112035299B (zh) 2024-03-19
CN112035299A (zh) 2020-12-04
US11302412B2 (en) 2022-04-12
TW202105376A (zh) 2021-02-01
KR20200139083A (ko) 2020-12-11
US20200381071A1 (en) 2020-12-03
JP2020198087A (ja) 2020-12-10
KR102243791B1 (ko) 2021-04-22

Similar Documents

Publication Publication Date Title
TWI743703B (zh) 使用基於記憶體之通訊協定進行模擬裝置測試之系統及方法
US7917348B2 (en) Method of switching external models in an automated system-on-chip integrated circuit design verification system
US10409632B2 (en) Emulation of hardware components based on interrupt design
TW201933110A (zh) 用於測試固態儲存裝置之韌體的方法與系統以及電子設備
US9262299B1 (en) Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
US9262305B1 (en) Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
CN105893234A (zh) 用于软件测试的方法和计算设备
WO2024046362A1 (zh) 验证系统、验证方法、电子设备以及存储介质
CN111123736A (zh) 用于使用硬件抽象软件层的系统的通用虚拟化平台
CN113868039A (zh) 一种测试方法、装置及相关设备
KR20220161200A (ko) 구역화된 네임스페이스 솔리드 스테이트 드라이브의 동시 및 자동 테스트 시스템 및 방법
CN109271231B (zh) 测试物理硬件装置的方法和仿真物理硬件装置的系统
CN116306392A (zh) 芯片仿真装置、方法、电子设备和存储介质
US10650174B1 (en) System and method for visualizing event sequences for expressions using both hardware and software state information
US20120191444A1 (en) Simulation device, simulation method, and computer program therefor
US10339229B1 (en) Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
TWI855321B (zh) 用於經分區之名稱空間固態驅動機之同時及自動化測試的系統及方法
JP2013020425A (ja) オープンソースソフトウェアを利用したハードウェア・ソフトウェア協調検証方法
JP2005353020A (ja) コンピュータプログラムのシミュレーション方式
US20240175916A1 (en) Systems and methods for testing virtual functions of a device under test
Devi et al. Efficient implementation of memory controllers and memories and virtual platform
Frolov Approach to test program development for multilevel verification
US20190385691A1 (en) Method and system for analyzing traffic data
Koerner et al. IBM System z10 firmware simulation
KR20240009773A (ko) 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 포트 가상화 장치 및 방법