TWI829307B - 半導體積體電路以及記憶體系統 - Google Patents
半導體積體電路以及記憶體系統 Download PDFInfo
- Publication number
- TWI829307B TWI829307B TW111132202A TW111132202A TWI829307B TW I829307 B TWI829307 B TW I829307B TW 111132202 A TW111132202 A TW 111132202A TW 111132202 A TW111132202 A TW 111132202A TW I829307 B TWI829307 B TW I829307B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- read
- test
- address
- semiconductor integrated
- Prior art date
Links
- 239000004065 semiconductor Substances 0.000 title claims abstract description 55
- 238000012360 testing method Methods 0.000 claims abstract description 115
- 230000004044 response Effects 0.000 claims description 30
- 238000012546 transfer Methods 0.000 claims description 25
- 230000005540 biological transmission Effects 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 41
- 230000006870 function Effects 0.000 description 9
- 238000000034 method Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 239000007943 implant Substances 0.000 description 3
- 238000002513 implantation Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 230000011514 reflex Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
-
- 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
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/36—Data generation devices, e.g. data inverters
-
- 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
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
-
- 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/56004—Pattern generation
-
- 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
- G11C2029/0401—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
-
- 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
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/1206—Location of test circuitry on chip or wafer
-
- 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
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/36—Data generation devices, e.g. data inverters
- G11C2029/3602—Pattern generator
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
實施例提供用於對目標裝置進行測試的一種低成本半導體積體電路以及一種記憶體系統。半導體積體電路包括寫入測試電路及讀取測試電路。寫入測試電路產生測試資料且將所產生的測試資料傳送至外部記憶體裝置,而不將測試資料儲存於本地記憶體裝置中。讀取測試電路自外部記憶體裝置接收外部記憶體裝置已藉由對測試資料進行讀取而獲得的讀取資料,且將所接收的讀取資料與預期值進行比較,而不將讀取資料或預期值儲存於本地記憶體裝置中。
Description
本文中闡述的實施例是有關於用於對目標裝置進行測試的一種技術、一種半導體積體裝置以及一種記憶體系統。
包括非揮發性記憶體(nonvolatile memory,NVM)的記憶體系統是已知的。此種記憶體系統的實例是固態硬碟(solid state drive,SSD)。SSD的開發及製造需要各種測試。
由於SSD因應於來自主機的命令而進行操作,因此為了對SSD進行測試,測試裝置需要具有向SSD發送命令、接收對命令的響應以及檢查響應是否正確的主機功能。具有主機功能的裝置的實例是個人電腦。在許多情形中,個人電腦不支援正在開發的SSD的最新介面協定。具有主機功能的裝置的另一實例是昂貴的鍛煉器。具有主機功能的裝置的又一實例是專用測試裝置。專用測試裝置的開發成本是高的。
實施例提供用於對目標裝置進行測試的一種低成本半導體積體電路以及一種記憶體系統。
大體而言,根據一個實施例,半導體積體電路包括寫入測試電路及讀取測試電路。寫入測試電路產生測試資料且將所產生的測試資料傳送至外部記憶體裝置,而不將測試資料儲存於本地記憶體裝置中。讀取測試電路自外部記憶體裝置接收外部記憶體裝置已藉由對測試資料進行讀取而獲得的讀取資料,且將所接收的讀取資料與預期值進行比較,而不將讀取資料或預期值儲存於本地記憶體裝置中。
在下文中,將參照圖式闡述實施例。以下說明提供用於實施實施例的技術思想的裝置及方法的實例,且實施例的技術思想並不限於以下闡述的元件的結構、形狀、佈置、材料及類似物。熟習此項技術者可容易想到的修改自然處於本揭露的範圍內。為了使說明清晰,在圖式中,每一組件的大小、厚度、平面尺寸、形狀及類似物可被改變且被示意性地表示而非實際的大小、厚度、平面尺寸、形狀及類似物。在多個圖式中,組件可被繪示成具有不同的尺寸關係及比率。在多個圖式中,可賦予對應的組件相同的參考編號以省略重複的說明。儘管一些組件可被賦予多個名稱,但該些名稱僅為例示性的,且所述組件可被賦予其他名稱。應注意,在以下說明中,「連接」不僅意指直接連接,亦意指經由其他組件進行的連接。
(第一實施例)
在下文中,將參照圖式詳細闡述本實施例。由根據實施例的半導體積體電路測試其操作的目標裝置可為任何裝置,且以下將SSD作為實例進行闡述。
圖1是示出根據第一實施例的包括半導體積體電路1的測試裝置10的實例的方塊圖。測試裝置10連接至作為測試目標的SSD 12。測試裝置10包括半導體積體電路1。測試裝置10可更包括動態隨機存取記憶體(dynamic random access memory,DRAM)14。半導體積體電路1可由例如系統單晶片(system-on-a chip,SoC)等電路形成。半導體積體電路1的每一部分的功能可藉由專用硬體、執行程式(韌體)的處理器或其組合來實施。
半導體積體電路1包括中央處理單元(central processing unit,CPU)20、唯讀記憶體(read only memory,ROM)22、靜態隨機存取記憶體(static random access memory,SRAM)24、快速NVM(NVM Express,NVMe®)控制器26、快速周邊組件互連(peripheral component interconnect,PCI)(PCI Express,PCIe®)控制器28、主機模式模組30、DRAM介面(DRAM interface,DRAM I/F)電路34及反及介面(反及I/F)電路38。
CPU 20、ROM 22、SRAM 24、NVMe控制器26、PCIe控制器28、主機模式模組30、DRAM I/F電路34及反及I/F電路38連接至匯流排線36。PCIe控制器28連接至SSD 12。DRAM I/F電路34連接至DRAM 14。反及I/F電路38可連接至非揮發性記憶體(未示出)。非揮發性記憶體的實例是反及快閃記憶體(在下文中被簡稱為反及記憶體)。
CPU 20藉由執行韌體來控制半導體積體電路1的每一部分。ROM 22儲存韌體。SRAM 24被用作CPU 20的工作區域。CPU 20根據NVMe標準而發出命令。PCIe控制器28是用於將半導體積體電路1連接至SSD 12的介面電路。主機模式模組30產生欲被傳送至作為測試目標的SSD 12的資料。此外,主機模式模組30產生自作為測試目標的SSD 12接收的資料的預期值。DRAM I/F電路34控制對DRAM 14的存取。反及I/F電路38控制對非揮發性記憶體的存取。反及I/F電路38可具有對自非揮發性記憶體讀取的資料中所包括的誤差進行校正的功能。
圖2是示出SSD 12的實例的方塊圖。當連接至主機裝置(在下文中被簡稱為主機)時,使用SSD 12。主機是對SSD 12進行存取的資訊處理裝置。然而,在測試期間,SSD 12連接至測試裝置10而非主機,如圖2中所示。SSD 12是外部記憶體裝置的實例。
SSD 12是被配置成因應於來自主機或測試裝置10的命令而向非揮發性記憶體寫入資料或自非揮發性記憶體讀取資料的儲存器裝置。在本實施例的說明中,非揮發性記憶體是反及記憶體。
SSD 12包括反及記憶體102、控制器104及DRAM 106。
控制器104用作被配置成對反及記憶體102進行控制的記憶體控制器。控制器104可由例如SoC等電路形成。控制器104根據來自主機或測試裝置10的命令將資料寫入反及記憶體102或自反及記憶體102讀取資料。
DRAM 106可設置於控制器104內部。SSD 12可包括SRAM而非DRAM 106。
反及記憶體102可包括多個快閃記憶體晶片。反及記憶體102包括記憶體胞元陣列。記憶體胞元陣列包括被佈置成矩陣的多個記憶體胞元。反及記憶體102可具有二維結構或三維結構。
控制器104包括CPU 112、PCIe控制器114、反及介面(反及I/F)電路116及DRAM介面(DRAM I/F)電路118。
CPU 112、PCIe控制器114、反及I/F電路116及DRAM I/F電路118連接至匯流排線120。CPU 112執行儲存於反及記憶體102中的韌體且實施各種功能。
PCIe控制器114電性連接至測試裝置10。PCIe控制器114是將SSD 12連接至測試裝置10的介面電路。反及I/F電路116電性連接至反及記憶體102。反及I/F電路116控制對反及記憶體102的存取。DRAM I/F電路118電性連接至DRAM 106。DRAM I/F電路118控制對DRAM 106的存取。
圖3是示出根據第一實施例的半導體積體電路1的主機模式模組30的實例的方塊圖。主機模式模組30包括用於實行寫入測試及讀取測試的電路系統,例如寫入資料產生單元62、保護資訊(protection information,PI)添加單元64、讀取資料比較單元66、預期值產生單元68、PI檢查單元70及暫存器單元72。主機模式模組30使用寫入資料產生單元62及PI添加單元64實行寫入測試,且使用讀取資料比較單元66、預期值產生單元68及PI檢查單元70實行讀取測試。因此,如本文中所使用,寫入測試電路包括寫入資料產生單元62及PI添加單元64,且讀取測試電路包括讀取資料比較單元66、預期值產生單元68及PI檢查單元70。
測試裝置10可向SSD 12發出寫入命令及讀取命令。寫入命令規定主機(此處是測試裝置10)中的實體記憶體的其中儲存欲被傳送至SSD 12的資料的位址、以及與欲被傳送的資料相關聯的邏輯位址。邏輯位址的實例是邏輯區塊位址(logical block address,LBA)。一旦接收到寫入命令,SSD 12便傳送根據PCIe標準定義的記憶體讀取請求MRd。記憶體讀取請求MRd處於事務層封包(transaction layer packet,TLP)的形式。記憶體讀取請求MRd請求主機將儲存於主機的實體記憶體中的資料傳送至SSD 12。記憶體讀取請求MRd包括實體記憶體的其中儲存欲被傳送至SSD 12的資料的位址raddr。位址raddr與由寫入命令規定的位址對應。
一旦接收到記憶體讀取請求MRd,寫入資料產生單元62便根據包括於記憶體讀取請求MRd中的位址raddr而產生寫入資料。PI添加單元64然後將PI添加至寫入資料。PI是用於檢查資料是否被無誤地傳送及接收的資料。舉例而言,PI包括用於對資料中的誤差進行偵測的循環冗餘檢查(cyclic redundancy check,CRC)碼。作為對記憶體讀取請求MRd的響應而將包括寫入資料及PI的封包傳送至SSD 12,且將所述封包儲存於SSD 12(更具體而言,反及記憶體102)中。
讀取命令規定主機(此處是測試裝置10)的實體記憶體的其中應儲存欲自SSD 12傳送的資料的位址、以及與欲被傳送的資料相關聯的邏輯位址。邏輯位址的實例是LBA。一旦接收到讀取命令,SSD 12便傳送根據PCIe標準定義的記憶體寫入請求MWr。記憶體寫入請求MWr處於TLP的形式。記憶體寫入請求MWr包括自SSD 12(更具體而言,反及記憶體102)讀取的讀取資料、以及實體記憶體的被傳送讀取資料的位址waddr。位址waddr與由讀取命令規定的位址對應。記憶體寫入請求MWr可更包括自SSD 12讀取的PI。
一旦接收到記憶體寫入請求MWr,預期值產生單元68便根據包括於記憶體寫入請求MWr中的位址waddr而產生讀取資料的預期值。預期值產生單元68以與寫入資料產生單元62產生寫入資料相同的方式而根據位址waddr產生讀取資料的預期值。預期值產生單元68亦基於其產生的讀取資料的預期值來產生PI的預期值。預期值產生單元68將所產生的預期值傳送至讀取資料比較單元66,且將所產生的PI的預期值傳送至PI檢查單元70。
一旦接收到記憶體寫入請求MWr,讀取資料比較單元66便將包括於記憶體寫入請求MWr中的讀取資料與由預期值產生單元68產生的預期值進行比較。當寫入資料被正確地寫入SSD 12且被正確地自SSD 12讀取時,所讀取的資料與預期值匹配。
PI檢查單元70基於包括於記憶體寫入請求MWr中的PI及由預期值產生單元68產生的PI來檢查讀取資料中的誤差。當PI不包括於記憶體寫入請求MWr中時,PI檢查單元70不檢查讀取資料中的誤差。
讀取資料比較單元66的比較結果及PI檢查單元70的檢查結果儲存於暫存器單元72中。暫存器單元72儲存每一命令的設定值及比較結果/檢查結果。暫存器單元72具有針對每一命令的暫存器群組。舉例而言,對於32個命令,暫存器單元72具有命令0暫存器群組72-0至命令31暫存器群組72-31。
圖4是示出根據第一實施例的由主機模式模組30進行的寫入資料產生的實例的圖。NVMe控制器26包括NVMe核心模組42及命令佇列44。命令佇列44可設置於SRAM 24或DRAM 14中。
PCIe控制器28包括媒體存取控制(media access control,MAC)模組46及選擇電路48。MAC模組46連接至SSD 12。選擇電路48選擇性地將來自MAC模組46的訊號供應至主機模式模組30或NVMe控制器26。
CPU 20產生請求SSD 12寫入資料的寫入命令,且將寫入命令寫入命令佇列44。此外,CPU 20根據SSD 12基於寫入命令應實行的操作而設定命令0暫存器群組72-0至命令31暫存器群組72-31中的任一者。
CPU 20經由PCIe控制器28通知SSD 12所述命令被寫入命令佇列44。一旦接收到通知,SSD 12便傳送請求自命令佇列44讀取命令的記憶體讀取請求MRd。NVMe核心模組42經由PCIe控制器28接收記憶體讀取請求MRd。NVMe核心模組42自命令佇列44讀取寫入命令且經由PCIe控制器28將寫入命令傳送至SSD 12。
一旦接收到寫入命令,SSD 12便傳送請求讀取寫入資料的記憶體讀取請求MRd。MAC模組46接收由SSD 12因應於寫入命令而傳送的記憶體讀取請求MRd。MAC模組46經由選擇電路48向主機模式模組30的寫入資料產生單元62傳送記憶體讀取請求MRd。
選擇電路48根據包括於記憶體讀取請求MRd中的位址raddr而在主機模式模組30的寫入資料產生單元62與NVMe控制器26之間切換記憶體讀取請求MRd的傳送目的地。當位址raddr與所傳送的寫入命令中包括的位址對應時,選擇電路48將主機模式模組30的寫入資料產生單元62設定成記憶體讀取請求MRd的傳送目的地。當位址raddr不與所傳送的寫入命令中包括的位址對應時,選擇電路48將NVMe控制器26設定成記憶體讀取請求MRd的傳送目的地。
一旦接收到記憶體讀取請求MRd,寫入資料產生單元62便根據包括於記憶體讀取請求MRd中的位址raddr而產生寫入資料。PI添加單元64將PI添加至寫入資料。應注意,PI的添加是可選的。亦可藉由相應地對主機模式模組30經常配置來選擇不添加PI。作為對記憶體讀取請求MRd的響應,MAC模組46向SSD 12傳送包括自寫入資料產生單元62輸出的寫入資料或自PI添加單元64輸出的PI的封包。SSD 12將寫入資料或PI寫入反及記憶體102中的與由寫入命令規定的邏輯位址對應的儲存位置。
圖5是示出根據第一實施例的由主機模式模組30進行的讀取資料比較的實例的圖。
CPU 20產生請求SSD 12讀取資料的讀取命令,且將讀取命令寫入命令佇列44。此外,CPU 20根據SSD 12基於讀取命令應實行的操作而選擇命令0暫存器群組72-0至命令31暫存器群組72-31中的任一者。當針對所產生的讀取命令對讀取資料比較功能進行致能時,在由CPU 20選擇的暫存器群組中的所述一者中設定與用於寫入命令的值相同的值,所述寫入命令請求寫入欲由讀取命令請求讀取的資料。設定值包括例如PI檢查的致能/禁能值及作為PI檢查目標的PI類型。
CPU 20經由PCIe控制器28通知SSD 12所述命令被寫入命令佇列44。一旦接收到通知,SSD 12便傳送請求自命令佇列44讀取命令的記憶體讀取請求MRd。NVMe核心模組42經由PCIe控制器28接收記憶體讀取請求MRd。NVMe核心模組42自命令佇列44讀取讀取命令且經由PCIe控制器28將讀取命令傳送至SSD 12。
一旦接收到讀取命令,SSD 12便傳送請求傳送讀取資料的記憶體寫入請求MWr。MAC模組46接收由SSD 12因應於讀取命令而傳送的記憶體寫入請求MWr。MAC模組46經由選擇電路48將記憶體寫入請求MWr傳送至主機模式模組30的預期值產生單元68、讀取資料比較單元66及PI檢查單元70。
選擇電路48根據包括於記憶體寫入請求MWr中的位址waddr而在主機模式模組30與NVMe控制器26之間切換記憶體寫入請求MWr的傳送目的地。當位址waddr與所傳送的讀取命令中包括的位址對應時,選擇電路48將主機模式模組30設定成記憶體寫入請求MWr的傳送目的地。當位址waddr不對與所傳送的讀取命令中包括的位址對應時,選擇電路48將NVMe控制器26設定成記憶體寫入請求MWr的傳送目的地。
預期值產生單元68根據包括於記憶體寫入請求MWr中的位址waddr而產生預期值,將讀取資料的預期值傳送至讀取資料比較單元66,且將PI的預期值傳送至PI檢查單元70。
主機模式模組30具有用於SSD 12一次排佇的命令數目的四字計數器。一個四字(quadword,Q字)是8個位元組。基於包括於記憶體讀取請求MRd中的位址raddr或包括於記憶體寫入請求MWr中的位址waddr來對每一Q字計數器的值進行初始化。每當寫入資料產生單元62產生針對Q字的資料時,或者每當讀取資料比較單元66接收到針對Q字的資料時,每一Q字計數器的值遞增。
圖6是示出根據第一實施例的寫入資料產生單元62的操作的實例的圖。假設寫入資料的長度是一個扇區(sector)。一個扇區的大小(扇區大小)是例如512個位元組(64個Q字)。在圖6之後的圖中,一個拍(beat)指示4個Q字。在圖6中的實例中,由選擇電路92選擇具有遞增型樣或固定型樣的寫入資料。
遞增型樣是其中值對於每一Q字有規律地增大的一種資料型樣。具有遞增型樣的資料的值根據Q字計數器的值而改變。具有遞增型樣的資料的值可為藉由將Q字計數器的值乘以係數而獲得的值,或者可為Q字計數器本身的值。應注意,可選擇遞減型樣來代替遞增型樣。遞減型樣是其中值對於每一Q字有規律地減小一種資料型樣。
固定型樣是其中一個扇區中的所有Q字的資料的值是固定的資料型樣。在暫存器群組72-0至72-31中的設定固定型樣的暫存器FixPat(圖13)中設定固定值。
圖7是示出根據第一實施例的寫入資料產生單元62的操作的另一實例的圖。在圖7中的實例中,由選擇電路92選擇具有遞增型樣或固定型樣的寫入資料,且利用具有LBA型樣的資料替換寫入資料的一部分。LBA型樣包括例如與寫入資料相關聯的邏輯位址。在寫入資料中,可根據記憶體讀取請求MRd中的位址raddr的值而將LBA型樣插入至任意兩個雙字中。一個雙字(doubleword,D字)是4個位元組。
可藉由模式設定來改變D字內的LBA型樣的位元組端(endian)。由選擇電路94選擇大端LBA型樣、小端LBA型樣及中端LBA型樣中的任一者,且將所選擇的LBA型樣插入至寫入資料中。除了LBA型樣插入位置之外,由選擇電路92選擇的遞增型樣或固定型樣亦被插入至寫入資料中。遞增型樣或固定型樣的插入位置由選擇電路95來選擇。
圖8是示出根據第一實施例由PI添加單元64添加至寫入資料的PI的格式的實例的圖。PI的格式包括三種格式,所述三種格式包括防護(guard,GRD)(2個位元組)、應用標籤(application tag,APP)(2個位元組)及參考標籤(reference tag,REF)(4個位元組)。PI添加單元64將PI添加至自寫入資料產生單元62輸出的寫入資料。如圖8中所示,添加的PI是防護、應用標籤及參考標籤中的任一者、或者其任意組合。所述防護包括以上闡述的CRC碼。應用標籤是對於每一命令具有不同值的標籤。應用標籤的值可儲存於與命令對應的暫存器群組72-0至72-31中的任何暫存器中。參考標籤是具有與和添加有PI的寫入資料相關聯的LBA對應的值的標籤。
圖9是示出根據第一實施例的PI添加單元64的操作的實例的圖。PI添加單元64基於寫入資料的資料型樣而產生PI。PI添加單元64在一個扇區的寫入資料之後的位置處添加PI。例如當扇區大小為512個位元組時,將PI添加至一個扇區的最後一個Q字之後的Q字,即自扇區的開始數起的第65個Q字。
此處,假設主機模式模組30中的資料傳送大小是256個位元(4個Q字)。在此種情形中,一個扇區(512個位元組)的寫入資料在主機模式模組30中自拍0被傳送至拍15。在拍16處,在主機模式模組30中傳送PI。拍16的一部分中的D字可能是無效資料。圖9示出其中PI是64個位元且拍16的一部分中的D字是無效資料的情形。
當PI誤差植入被致能時,將誤差插入至PI中。可針對每一GRD、REF及APP而對PI誤差植入進行致能。舉例而言,對於作為誤差植入目標的PI,其所有位元均被反轉。
圖10是示出根據第一實施例的讀取資料比較單元66的操作的實例的圖。當讀取資料比較功能被致能時,讀取資料比較單元66將由預期值產生單元68產生的讀取資料的預期值與包括於記憶體寫入請求MWr中的讀取資料進行比較。在圖10中的實例中,預期值產生單元68藉由選擇電路96選擇遞增型樣或固定型樣作為預期值,且將所選擇的一者傳送至讀取資料比較單元66。在固定型樣模式中,讀取資料比較單元66將讀取資料的值與儲存固定型樣的固定型樣(FixPat)暫存器(圖13)的值進行比較。在遞增型樣模式中,讀取資料比較單元66將讀取資料的值與其中值對於每一Q字有規律地增大的資料型樣進行比較。
圖11是示出根據第一實施例的讀取資料比較單元66的操作的另一實例的圖。圖11示出其中寫入資料產生單元62將LBA型樣插入至寫入資料中的實例。此寫入資料是根據寫入命令產生的資料,所述寫入命令與作為資料比較目標的讀取命令對應。當讀取資料比較功能被致能時,將由預期值產生單元68產生且插入有LBA型樣的讀取資料的預期值以及包括於記憶體寫入請求MWr中的讀取資料輸入至讀取資料比較單元66。讀取資料比較單元66將讀取資料與插入有LBA型樣的預期值進行比較。在圖11中的實例中,藉由模式設定將D字內的LBA型樣的位元組端設定成等於產生寫入資料(即,發出寫入命令時)的時間期間的位元組端。選擇電路97根據設定而選擇大端LBA型樣、小端LBA型樣及中端LBA型樣中的任一者。
當LBA型樣被插入時,根據包括於記憶體寫入請求MWr中的位址waddr及指示LBA型樣被插入Q字中的哪個D字的設定而選擇讀取資料的LBA型樣比較位置。
圖12是示出根據第一實施例的PI檢查單元70的操作的實例的圖。PI檢查單元70執行PI檢查。如以上參照圖9所述,主機模式模組30中的資料傳送大小是256個位元(4個Q字)。一個扇區(512個位元組)的讀取資料在主機模式模組30中自拍0被傳送至拍15。在拍16處,在主機模式模組30中傳送PI。當拍16的一部分中的D字是無效資料時,PI檢查單元70不對無效資料執行PI檢查。
預期值產生單元68基於讀取資料的預期值的資料型樣而產生PI。如以上參照圖8所述,所產生的PI是防護、應用標籤及參考標籤中的任一者、或者其任意組合。預期值產生單元68產生與針對寫入命令產生的PI具有相同類型的PI,所述寫入命令與作為PI檢查的目標的讀取命令對應。
PI檢查單元70將自SSD 12接收的PI與由預期值產生單元68產生的PI進行比較。
圖13是示出根據第一實施例的主機模式模組30的暫存器單元72的實例的圖。此處,假設SSD 12一次要排佇的命令數目(佇列深度)是32。
命令0暫存器群組72-0至命令31暫存器群組72-31中的每一者包括資料型樣欄位、固定型樣(FixPat)欄位、應用標籤(APP)欄位、參考標籤(REF)欄位、誤差植入欄位、比較致能欄位及比較/檢查結果欄位。
資料型樣欄位中設定有以下項。
∙ 在發出寫入命令的情形中進行的PI添加的致能/禁能值、或者在發出讀取命令的情形中進行的PI檢查的致能/禁能值、以及在致能時間使用的PI的類型
∙ 進行LBA型樣插入的致能/禁能值、致能時間的LBA插入位置以及致能時間的端
∙ 固定型樣模式的致能/禁能值。
在固定型樣欄位中設定固定型樣。當在資料型樣欄位中對固定型樣模式進行致能時,使用固定型樣。當在資料型樣欄位中對固定型樣模式進行禁能時(即,當對遞增型樣模式進行致能時),使用遞增型樣。
在應用標籤欄位中設定應用標籤。當對PI添加或PI檢查進行致能且在資料型樣欄位中對應用標籤進行致能時,使用應用標籤。
在參考標籤欄位中設定參考標籤的初始值。當對PI添加或PI檢查進行致能且在資料型樣欄位中對參考標籤進行致能時,使用參考標籤。參考標籤根據LBA(即,對於每一扇區)自參考標籤欄位中設定的初始值開始遞增。
在誤差植入欄位中設定誤差植入功能對PI的致能/禁能值。當在發出寫入命令的情形中對PI添加進行致能時,使用誤差植入欄位。
在比較致能欄位中設定讀取資料比較功能的致能/禁能值。比較致能欄位用於發出讀取命令的情形。
讀取資料的比較結果及PI的檢查結果儲存於比較/檢查結果欄位中。因應於自SSD 12接收與發出的讀取命令對應的讀取資料及PI而藉由讀取資料比較單元66及PI檢查單元70對比較/檢查結果欄位進行更新。比較/檢查結果欄位包括指示比較/檢查結果(即,所接收的讀取資料及PI是否與預期值匹配)及當比較/檢查結果是誤差時的誤差偵測位置的資訊。
圖14是示出根據第一實施例的暫存器單元72的暫存器群組72-0至72-31中的每一者的記憶體映射的實例的圖。舉例而言,用於命令0暫存器群組72-0的命令0區域的起始位址是0×18_0000_0000,且用於命令31暫存器群組72-31的命令31區域的起始位址是0×19_F000_0000。在圖14中的實例中,位址的位元[32:28]指示命令號。
如上所述,在本實施例中,半導體積體電路1包括主機模式模組30。主機模式模組30是用於寫入資料產生及讀取資料比較的模組。因此,半導體積體電路1的CPU 20不需要實行寫入資料產生處理或讀取資料比較處理,減少了CPU 20的處理負荷,且可縮短SSD 12的測試時間。另外,主機模式模組30基於SSD 12的測試期間的設定而產生寫入資料,且將寫入資料傳送至SSD 12。此外,主機模式模組30基於SSD 12的測試期間的設定而產生預期值,且將預期值與自SSD 12接收的讀取資料進行比較。即,主機模式模組30即時地產生及傳送寫入資料,即時地接收讀取資料,且即時地對讀取資料與預期值進行比較。換言之,主機模式模組30不在作為本地記憶體裝置的實例的DRAM 14中儲存一個扇區的寫入資料、一個扇區的讀取資料或一個扇區的預期值中的每一者的至少一部分。因此,由於在SSD 12的測試期間不自DRAM 14讀取寫入資料或預期值,因此高速DRAM存取是不必要的。因此,高速DRAM是不必要的。
如圖14中所示,主機模式模組30包括暫存器群組72-0至72-31。暫存器群組72-0至72-31被映射至針對每一命令劃分的位址空間。暫存器群組72-0至72-31儲存針對每一命令的設定值。因此,主機模式模組30可基於記憶體寫入請求MWr中的位址waddr或記憶體讀取請求MRd中的位址raddr而自暫存器群組72-0至72-31獲取針對對應命令的設定。
即使當CPU 20同時對針對SSD 12的多個讀取命令進行排佇時,主機模式模組30亦可基於包括於記憶體寫入請求MWr中的位址waddr而產生與每一記憶體寫入請求MWr對應的讀取資料的預期值。此外,主機模式模組30可基於包括於記憶體寫入請求MWr中的位址waddr而將預期值與包括於記憶體寫入請求MWr中的讀取資料進行比較。因此,半導體積體電路1可同時對多個讀取命令進行測試。
即使當CPU 20同時對針對SSD 12的多個寫入命令進行排佇時,主機模式模組30亦可基於包括於記憶體讀取請求MRd中的位址raddr而產生與每一記憶體讀取請求MRd對應的寫入資料。因此,半導體積體電路1可同時對多個寫入命令進行測試。
將闡述根據第一實施例的由主機模式模組30進行的寫入資料產生處理及讀取資料比較處理的細節。
首先,將參照圖15A至圖15D闡述寫入資料產生處理。將在測試裝置10(更具體而言,半導體積體電路1的PCIe控制器28)與SSD 12之間傳送及接收的資料劃分成由PCIe標準定義的單元。所劃分的資料作為封包而被傳送及接收。在PCIe標準中,作為記憶體寫入請求MWr在一個封包中欲被傳送的資料的最大大小(封包大小)被定義為最大酬載大小(max payload size,MPS)。此外,在PCIe標準中,因應於記憶體讀取請求MRd在一個封包中欲被傳送的資料的最大大小被定義為最大讀取請求大小(max read request size,MRRS)。在以下說明中,MPS及MRRS是512個位元組。
將來自SSD 12的記憶體讀取請求MRd自PCIe控制器28傳送至主機模式模組30。主機模式模組30基於記憶體讀取請求MRd中的位址raddr來確定請求與哪個命令相關以及請求與哪個扇區的哪個Q字的資料相關,且產生如圖6至圖9中所示的寫入資料及PI。
當扇區大小是512個位元組時,寫入資料與PI的總大小是520個位元組。所述總大小大於MRRS。因此,一個扇區的寫入資料與PI無法在一個封包中傳送。因此,一個扇區的寫入資料可在多個封包中傳送。應注意,傳送大小及扇區大小並不限於上述實例,且可採用各種值。
在其中相關技術中的測試裝置對SSD 12進行測試的情形中,當自SSD 12發出記憶體讀取請求MRd時,測試裝置獲得以TLP封包為單位儲存於實體記憶體中的寫入資料(封包的大小由MRRS定義),且將寫入資料作為封包傳送至SSD 12。
實施例中的主機模式模組30不包括儲存寫入資料的實體記憶體,以減少記憶量及記憶頻寬。主機模式模組30基於Q字計數器判斷Q字是寫入資料或者PI。即,主機模式模組30基於包括於記憶體讀取請求MRd中的位址raddr而產生寫入資料及PI。由於所述判斷是基於Q字計數器,因此亦可處理其中SSD 12請求以除了MPS及MRRS之外的單位劃分資料的封包的情形。
圖15A至圖15D是示出由主機模式模組30產生的寫入資料的實例的圖。此處,假設SSD 12傳送對位址raddr 0×0000進行規定的記憶體讀取請求MRd。圖15A示出由主機模式模組30因應於此記憶體讀取請求MRd而產生的初始封包。
圖15A至圖15D中的一個胞元指示一個Q字(8個位元組)。主機模式模組30中的匯流排寬度是256個位元(32個位元組),且主機模式模組30在一個時脈週期(拍)中傳送四個Q字。在圖15A至圖15D中,列RD0中的Q字與位元[63:0]的資料對應,列RD1中的Q字與位元[127:64]的資料對應,列RD2中的Q字與位元[191:128]的資料對應,且RD3中的Q字與位元[255:192]的資料對應。
主機模式模組30基於位址raddr來設定Q字計數器的初始值。圖16是示出由主機模式模組30基於位址raddr設定Q字計數器的初始值的處理的圖。
當位址raddr的位元[4:0]不為0時,即,當位元[4:0]的至少一個位元為1(#1)時,主機模式模組30將Q字計數器設定成藉由自0減去位址raddr的位元[4:3]的值而獲得的值(即,0-raddr [4:3])。當藉由將位址raddr的值除以扇區大小而獲得的餘數為0(#2)時,主機模式模組30將Q字計數器設定成0。應注意,此處扇區大小包括PI。舉例而言,當8位元組的PI被添加至每扇區512個位元組的寫入資料時,扇區大小是520個位元組。在不同於#1及#2的情形(即情形#3)中,主機模式模組30將Q字計數器的值維持於先前值。
除了用於對位址raddr進行規定的資訊之外,記憶體讀取請求MRd亦包括用於對傳送大小進行規定的資訊。此處,假設由SSD 12傳送的記憶體讀取請求MRd將位址raddr規定為0×0000且將傳送大小規定為512個位元組。由主機模式模組30因應於記憶體讀取請求MRd產生的第一封包(512個位元組)包括第一扇區的寫入資料(Q字計數器= 0至63),但不包括PI(Q字計數器= 64)。
由於記憶體讀取請求MRd中的位址raddr是0×0000,因此滿足條件#2。因此,主機模式模組30將Q字計數器的初始值設定為0。如圖15A中所示,主機模式模組30產生包括以下的512個位元組的第一封包:第一扇區的第一個Q字(Q字計數器的值為0)至第64個Q字(Q字計數器的值為63)。當資料型樣欄位被設定成固定型樣模式時,所有Q字的資料的值與由固定型樣(FixPat)暫存器規定的值相同。當資料型樣欄位被設定成遞增型樣模式時(即,當固定型樣模式被禁能時),Q字的資料的值可為例如Q字計數器的值或者藉由將Q字計數器的值乘以係數而獲得的值。
接下來,為了請求不包括於第一封包中的第一扇區的第65個Q字(PI),SSD 12傳送對位址raddr 0×0200進行規定且對32個位元組的傳送大小進行規定的記憶體讀取請求MRd。圖15B示出由主機模式模組30因應於此記憶體讀取請求MRd而產生的第二封包。
由於記憶體讀取請求MRd中的位址raddr是0×0200,因此滿足圖16中所示的條件#3。因此,主機模式模組30將Q字計數器的初始值設定成與先前值相同的值。由於對第一封包中的最後四個Q字的輸出,Q字計數器的值為64,因此Q字計數器的初始值維持為64。如圖15B中所示,主機模式模組30產生包括以下的32個位元組的第二封包:第一扇區的第65個Q字(Q字計數器的值為64且它包括PI);以及第二扇區的第一個Q字(Q字計數器的值為0)至第三個Q字(Q字計數器的值為2)。應注意,由於SSD 12不需要第二封包中的第二扇區的第一個Q字至第三個Q字,因此可丟棄所述第一個Q字至所述第三個Q字。應注意,SSD 12僅需要第一扇區的第65個Q字(PI),但由於四個Q字是主機模式模組30中資料傳送的最小單位,因此主機模式模組30一起產生第一扇區的第65個Q字以及第二扇區的第一個Q字至第三個Q字。
接下來,為了請求第二扇區,SSD 12傳送對位址raddr 0×0208進行規定且對512個位元組的大小進行規定的記憶體讀取請求MRd。圖15C示出由主機模式模組30因應於此記憶體讀取請求MRd而產生的第三封包。
由於記憶體讀取請求MRd中的位址raddr是0×0208(= 0010_0000_1000),因此滿足圖16中所示的條件#1。因此,主機模式模組30將Q字計數器設定成藉由自0減去位址raddr的位元[4:3]的值而獲得的值(即-1)。與拍0的RD0對應的Q字的Q字計數器的值為-1。與拍0的RD1對應的Q字(圖中陰影部分)的Q字計數器的值遞增一,即0。此Q字與位址raddr 0×0208處請求的第二個扇區的初始位元組對應。如圖15C中所示,主機模式模組30產生包括以下的512個位元組的第三封包:Q字計數器的值為-1的Q字;以及第二扇區的第一個Q字(Q字計數器的值為0)至第63個Q字(Q字計數器的值為62)。由於SSD 12不需要Q字計數器的值為-1的Q字,因此此Q字的資料的值可為任何值。SSD 12可丟棄此Q字的資料。
圖15C中所示的第三封包不包括第二扇區的Q字的一部分,具體而言不包括第二扇區的第64個Q字(Q字計數器的值為63)及第65個Q字(PI)(Q字計數器的值為64)。
接下來,為了請求不包括於第三封包中的第二扇區的第64個Q字及第65個Q字(PI)以及第三扇區,SSD 12傳送對位址raddr 0×0400進行規定且對512個位元組的大小進行規定的記憶體讀取請求MRd。圖15D示出由主機模式模組30因應於此記憶體讀取請求MRd而產生的第四封包。
由於記憶體讀取請求MRd中的位址raddr是0×0400,因此滿足圖16中所示的條件#3。因此,主機模式模組30將Q字計數器的初始值設定成與先前值相同的值。由於對第三封包中的最後四個Q字的輸出,Q字計數器的值為63,因此Q字計數器的初始值維持為63。如圖15D中所示,主機模式模組30產生包括以下的512個位元組的第三封包:第二扇區的第64個Q字(Q字計數器的值為63)及第65個Q字(PI)(Q字計數器的值為64);以及第三扇區的第一個Q字(Q字計數器的值為0)至第62個Q字(Q字計數器的值為61)。
圖17A至圖17C是示出由主機模式模組30產生的寫入資料的另一實例的圖。圖17A至圖17C示出其中由SSD 12發出的記憶體讀取請求MRd規定的傳送大小全部為512個位元組的實例。
圖17A示出當SSD 12傳送記憶體讀取請求MRd時由主機模式模組30因應於對位址raddr 0×0000進行規定的記憶體讀取請求MRd而產生的初始封包。
由於記憶體讀取請求MRd中的位址raddr是0×0000,因此滿足圖16中所示的條件#2。因此,主機模式模組30將Q字計數器的初始值設定為0。如圖17A中所示,主機模式模組30產生包括以下的512個位元組的第一封包:第一扇區的第一個Q字(Q字計數器的值為0)至第64個Q字(Q字計數器的值為63)。
接下來,為了請求不包括於第一封包中的第一扇區的第65個Q字(Q字計數器的值為64且它包括PI)及第二扇區,SSD 12發出對位址raddr 0×0200進行規定的記憶體讀取請求MRd。圖17B中示出由主機模式模組30因應於此記憶體讀取請求MRd而產生的第二封包。
由於記憶體讀取請求MRd中的位址raddr是0×0200,因此滿足圖16所示的條件#3。因此,主機模式模組30將Q字計數器的初始值設定成與先前值相同的值。由於對第一封包中的最後四個Q字的輸出,Q字計數器的值為64,因此Q字計數器的初始值維持為64。第二扇區的第一個Q字(與拍0的RD1對應的Q字)的Q字計數器的值為0。如圖17B中所示,主機模式模組30產生包括以下的512個位元組的第二封包:第一扇區的Q字計數器的值為64的第65個Q字(PI);以及第二扇區的第一個Q字(Q字計數器的值為0)至第63個Q字(Q字計數器的值為62)。
圖17B中所示的第二封包不包括第二扇區的Q字的一部分,具體而言不包括第二扇區的第64個Q字(Q字計數器的值為63)及第65個Q字(Q字計數器的值為64且它包括PI)。
接下來,為了請求不包括於第二封包中的第二扇區的第64個Q字及第65個Q字(PI)以及第三扇區,SSD 12發出對位址raddr 0×0400進行規定的記憶體讀取請求MRd。圖17C示出由主機模式模組30因應於此記憶體讀取請求MRd而產生的第三封包。
由於記憶體讀取請求MRd中的位址raddr是0×0400,因此滿足圖16所示的條件#3。因此,主機模式模組30將Q字計數器的初始值設定成與先前值相同的值。由於對第二封包中的最後四個Q字的輸出,Q字計數器的值為63,因此Q字計數器的初始值維持為63。如圖17C中所示,主機模式模組30產生包括以下的512個位元組的第三封包:第二扇區的第64個Q字(Q字計數器的值為63)及第65個Q字(Q字計數器的值為64且它包括PI);以及第三扇區的第一個Q字(Q字計數器的值為0)至第62個Q字(Q字計數器的值為61)。
以此種方式,主機模式模組30可根據記憶體讀取請求MRd中的位址來確定所述三個條件#1、#2及#3中的哪一者得到滿足,且相應地確定將在哪個扇區中自哪個Q字產生一個封包中的資料。因此,即使當封包的傳送大小與寫入資料的扇區大小不同時,亦可根據記憶體讀取請求MRd產生封包。
主機模式模組30亦在讀取資料比較處理以及寫入資料產生處理中產生讀取資料的預期值。將來自SSD 12的記憶體寫入請求MWr自PCIe控制器28傳送至主機模式模組30。主機模式模組30基於記憶體寫入請求MWr中的位址waddr來確定請求是有關於哪個命令以及請求是有關於哪個扇區的哪個Q字的資料。然後,主機模式模組30將包括於記憶體寫入請求MWr中的讀取資料與其預期值進行比較,且執行PI檢查。
舉例而言,假設SSD 12發出對位址waddr 0×0000進行規定且對512個位元組的傳送大小進行規定的記憶體寫入請求MWr。類似於圖15A中所示,記憶體寫入請求MWr包括包含512個位元組的讀取資料的第一封包。
主機模式模組30的預期值產生單元68產生讀取資料的預期值。預期值產生單元68根據圖16中所示的條件來確定記憶體寫入請求MWr中的位址waddr,且根據確定結果來產生預期值。由於記憶體寫入請求MWr中的位址waddr是0×0000,因此滿足條件#2。因此,預期值產生單元68將Q字計數器的初始值設定為0,且類似於圖15A中所示而產生包括以下的512個位元組的預期值:第一扇區的第一個Q字(Q字計數器的值為0)至第64個Q字(Q字計數器的值為63)。
當資料型樣欄位被設定成固定型樣模式時,讀取資料的所有Q字的預期值是與固定型樣(FixPat)暫存器所規定相同的值。當資料型樣欄位被設定成遞增型樣模式時,讀取資料的每一Q字的預期值可為例如Q字計數器的值或者藉由將Q字計數器的值乘以係數而獲得的值。
接下來,假設SSD 12傳送對位址waddr 0×0200進行規定且對32個位元組的傳送大小進行規定的記憶體寫入請求MWr。類似於圖15B中所示,記憶體寫入請求MWr包括包含32個位元組的讀取資料的第二封包。
預期值產生單元68根據圖16中所示的條件來確定記憶體寫入請求MWr中的位址waddr,且根據確定結果來產生預期值。由於記憶體寫入請求MWr中的位址waddr是0×0200,因此滿足條件#3。因此,預期值產生單元68將Q字計數器的初始值設定成與先前值相同的值。由於對第一封包中的讀取資料的最後四個Q字的接收,Q字計數器的值為64,因此Q字計數器的初始值維持為64。類似於圖15B中所示,預期值產生單元68產生包括以下的32個位元組的預期值:第一扇區的第65個Q字(Q字計數器的值為64且它包括PI);以及第二扇區的第一個Q字(Q字計數器的值為0)至第三個Q字(Q字計數器的值為2)。應注意,讀取資料比較單元66自比較目標排除包括於第二封包中的第二扇區的第一個Q字至第三個Q字。
接下來,假設SSD 12發出對位址waddr 0×0208進行規定且對512個位元組的傳送大小進行規定的記憶體寫入請求MWr。類似於圖15C中所示,記憶體寫入請求MWr包括包含512個位元組的讀取資料的第三封包。
預期值產生單元68根據圖16中所示的條件來確定記憶體寫入請求MWr中的位址waddr,且根據確定結果來產生預期值。由於記憶體寫入請求MWr的位址waddr是0×0208,因此滿足條件#1。因此,預期值產生單元68將Q字計數器的初始值設定成藉由自0減去位址waddr的位元[4:3]的值而獲得的值(即-1)。類似於圖15C中所示,預期值產生單元68產生包括以下的512個位元組的預期值:Q字計數器的值為-1的Q字;第二扇區的第一個Q字(Q字計數器的值為0)至第63個Q字(Q字計數器的值為62)。應注意,讀取資料比較單元66自比較目標排除Q字計數器的值為-1的Q字。
接下來,假設SSD 12發出對位址waddr 0×0400進行規定且對512個位元組的傳送大小進行規定的記憶體寫入請求MWr。類似於圖15D中所示,記憶體寫入請求MWr包括包含512個位元組的讀取資料的第四封包。
預期值產生單元68根據圖16中所示的條件來確定記憶體寫入請求MWr中的位址waddr,且根據確定結果來產生預期值。由於記憶體寫入請求MWr中的位址waddr是0×0400,因此滿足條件#3。因此,預期值產生單元68將Q字計數器的初始值維持於與先前值相同的值。由於對第三封包中的最後四個Q字的接收,Q字計數器的值為63,因此Q字計數器的初始值為63。類似於圖15D中所示,預期值產生單元68產生包括以下的512個位元組的預期值:第二扇區的第64個Q字(Q字計數器的值為63)及第65個Q字(Q字計數器的值為64且它包括PI);以及第三扇區的第一個Q字(Q字計數器的值為0)至第62個Q字(Q字計數器的值為61)。
以此種方式,預期值產生單元68根據記憶體寫入請求MWr的位址來確定包括#1、#2及#3的所述三個條件中的哪一者得到滿足,且相應地確定哪個扇區中的哪個Q字是比較目標。因此,即使當封包的傳送大小與讀取資料的扇區大小不同時,亦可根據記憶體寫入請求MWr來產生預期值。
(第二實施例)
圖18是示出根據第二實施例的包括半導體積體電路的SSD的實例的方塊圖。第二實施例是有關於能夠使用第一實施例中闡述的半導體積體電路1作為SSD控制器來進行自測的SSD。即,根據第一實施例的半導體積體電路1以主機模式進行操作,而根據第二實施例的半導體積體電路1以驅動模式進行操作。例如根據主機模式模組30中提供的暫存器的值來切換主機模式與驅動模式。在以下說明中,與第一實施例中的半導體積體電路1的操作不同的操作是當半導體積體電路1處於驅動模式時的操作。
根據第二實施例的SSD 102包括反及記憶體110、半導體積體電路1及DRAM 108。半導體積體電路1電性連接至反及記憶體110及DRAM 108。DRAM 108可設置於半導體積體電路1中。SSD 102可經由半導體積體電路1的PCIe控制器28連接至主機。
圖19是示出根據第二實施例的SSD 102自主機接收寫入命令的仿真操作的實例的圖。圖19是有關於寫入資料產生處理。
CPU 20如在第一實施例中那般產生寫入命令,且將寫入命令傳送至NVMe控制器26。NVMe控制器26因應於寫入命令而發出記憶體讀取請求MRd。PCIe控制器28的MAC模組46向選擇電路48傳送記憶體讀取請求MRd。當記憶體讀取請求MRd包括寫入命令的位址時,選擇電路48將記憶體讀取請求MRd傳送至主機模式模組30。主機模式模組30如在第一實施例中那般產生寫入資料。
主機模式模組30將所產生的寫入資料傳送至PCIe控制器28。PCIe控制器28將寫入資料傳送至NVMe控制器26。NVMe控制器26經由反及I/F電路38將寫入資料傳送至反及記憶體110。因此,由主機模式模組30因應於記憶體讀取請求MRd產生的寫入資料被寫入反及記憶體110。
圖20是示出根據第二實施例的SSD 102自主機接收讀取命令的仿真操作的實例的圖。圖20是有關於讀取資料比較處理。
CPU 20如在第一實施例中那般產生讀取命令,且將讀取命令傳送至NVMe控制器26。NVMe控制器26因應於讀取命令而自反及記憶體110讀取讀取資料。NVMe控制器26將讀取資料作為記憶體寫入請求MWr傳送至PCIe控制器28。PCIe控制器28的MAC模組46向選擇電路48傳送記憶體寫入請求MWr。當記憶體寫入請求MWr包括讀取命令的位址時,選擇電路48將記憶體寫入請求MWr傳送至主機模式模組30。
類似於第一實施例,主機模式模組30的預期值產生單元68基於包括於記憶體寫入請求MWr中的位址waddr來產生預期值,且將預期值傳送至讀取資料比較單元66及PI檢查單元70。
一旦接收到記憶體寫入請求MWr,讀取資料比較單元66便將預期值與包括於記憶體寫入請求MWr中的讀取資料進行比較。當自反及記憶體110正確讀取讀取資料時,讀取資料與預期值匹配。PI檢查單元70基於讀取資料中的PI及由預期值產生單元68產生的PI來檢查讀取資料中的誤差。
以此種方式,即使當SSD 102未連接至主機時,使用根據第二實施例的半導體積體電路1作為控制器的SSD 102亦可對操作進行仿真且實行用於接收讀取命令或寫入命令的自測。
儘管已闡述了某些實施例,但該些實施例僅藉由實例的方式呈現,且不旨在限制本揭露的範圍。實際上,本文中所述的新穎實施例可以多種其他形式實施;此外,可在不背離本揭露的精神的條件下進行本文中闡述的實施例的形式的各種省略、替換及改變。所附申請專利範圍及其等效範圍旨在涵蓋落於本揭露的範圍及精神內的形式或修改。
1:半導體積體電路
10:測試裝置
12:固態驅動器(SSD)
14:動態隨機存取記憶體(DRAM)
20、112:中央處理單元(CPU)
22:唯讀記憶體(ROM)
24:靜態隨機存取記憶體(SRAM)
26:快速NVM(NVMe®)控制器
28:快速周邊組件互連(PCIe®)控制器
30:主機模式模組
34、118:DRAM介面(DRAM I/F)電路
36、120:匯流排線
38、116:反及介面(反及I/F)電路
42:NVMe核心模組
44:命令佇列
46:媒體存取控制(MAC)模組
48、92、95、96、97:選擇電路
62:寫入資料產生單元
64:PI添加單元
66:讀取資料比較單元
68:預期值產生單元
70:PI檢查單元
72:暫存器單元
72-0:命令0暫存器群組/暫存器群組
72-1:命令1暫存器群組/暫存器群組
72-31:命令31暫存器群組/暫存器群組
102:反及記憶體/固態驅動器(SSD)
104:控制器
106、108:動態隨機存取記憶體
110:反及記憶體
114:PCIe控制器
MRd:記憶體讀取請求
MWr:記憶體寫入請求
raddr、waddr:位址
圖1是示出根據第一實施例的包括半導體積體電路的測試裝置的實例的方塊圖。
圖2是示出根據第一實施例的作為測試裝置的測試目標的SSD的實例的方塊圖。
圖3是示出根據第一實施例的主機模式模組的實例的方塊圖。
圖4是示出根據第一實施例的由主機模式模組進行的寫入資料產生的實例的圖。
圖5是示出根據第一實施例的由主機模式模組進行的讀取資料比較的實例的圖。
圖6是示出根據第一實施例的寫入資料產生單元的操作的實例的圖。
圖7是示出根據第一實施例的寫入資料產生單元的操作的另一實例的圖。
圖8是示出根據第一實施例的保護資訊(PI)的格式的實例的圖。
圖9是示出根據第一實施例的PI添加單元的操作的實例的圖。
圖10是示出根據第一實施例的讀取資料比較單元的操作的實例的圖。
圖11是示出根據第一實施例的讀取資料比較單元的操作的另一實例的圖。
圖12是示出根據第一實施例的PI檢查單元的操作的實例的圖。
圖13是示出根據第一實施例的主機模式模組的暫存器的實例的圖。
圖14是示出根據第一實施例的暫存器的記憶體映射的實例的圖。
圖15A至圖15D是示出根據第一實施例的由主機模式模組產生的寫入資料的實例的圖。
圖16是示出根據第一實施例的由主機模式模組對Q字計數器進行初始化的處理的圖。
圖17A至圖17C是示出根據第一實施例的由主機模式模組產生的寫入資料的另一實例的圖。
圖18是示出根據第二實施例的包括半導體積體電路的SSD的實例的方塊圖。
圖19是示出根據第二實施例的與SSD中的寫入命令相關的仿真的實例的圖。
圖20是示出根據第二實施例的與SSD中的讀取命令相關的仿真的實例的圖。
30:主機模式模組
62:寫入資料產生單元
64:PI添加單元
66:讀取資料比較單元
68:預期值產生單元
70:PI檢查單元
72:暫存器單元
72-0:命令0暫存器群組/暫存器群組
72-1:命令1暫存器群組/暫存器群組
72-31:命令31暫存器群組/暫存器群組
MRd:記憶體讀取請求
MWr:記憶體寫入請求
raddr、waddr:位址
Claims (18)
- 一種半導體積體電路,包括:寫入測試電路,被配置成產生測試資料且將所產生的所述測試資料傳送至外部記憶體裝置,而不將所述測試資料儲存於本地記憶體裝置中,所述測試資料是根據寫入命令中規定的所述本地記憶體裝置的實體位址來產生;以及讀取測試電路,被配置成自所述外部記憶體裝置接收所述外部記憶體裝置已藉由對所述測試資料進行讀取而獲得的讀取資料,且將所接收的所述讀取資料與預期值進行比較,而不將所述讀取資料或所述預期值儲存於所述本地記憶體裝置中,所述預期值是根據讀取命令中規定的所述本地記憶體裝置的實體位址來產生。
- 如請求項1所述的半導體積體電路,其中所述寫入測試電路被配置成亦根據所述寫入命令中規定的邏輯位址來產生所述測試資料,且所述讀取測試電路被配置成亦根據所述讀取命令中規定的邏輯位址來產生所述預期值。
- 一種半導體積體電路,包括:寫入測試電路,被配置成產生測試資料且將所產生的所述測試資料傳送至外部記憶體裝置,而不將所述測試資料儲存於本地記憶體裝置中,以及因應於對第一封包的接收而使用第二封包將所述測試資料傳送至所述外部記憶體裝置,所述第一封包是由所述外部記憶體裝置因應於寫入命令而傳送;以及 讀取測試電路,被配置成自所述外部記憶體裝置接收所述外部記憶體裝置已藉由對所述測試資料進行讀取而獲得的讀取資料,且將所接收的所述讀取資料與預期值進行比較,而不將所述讀取資料或所述預期值儲存於所述本地記憶體裝置中。
- 如請求項3所述的半導體積體電路,其中所述測試資料包括多個資料項,所述第一封包包括傳送大小及與所述半導體積體電路的所述本地記憶體裝置中的位置對應的第一位址,且所述寫入測試電路因應於所述對包括所述第一位址的所述第一封包的接收而依序地產生與位址範圍對應的所述多個資料項,所述位址範圍開始於所述第一位址且端視所述傳送大小而定。
- 如請求項4所述的半導體積體電路,其中所述寫入測試電路應用資料型樣來產生包括於所述測試資料中的所述多個資料項中的每一者。
- 如請求項5所述的半導體積體電路,其中所述資料型樣是遞增型樣,在所述遞增型樣中,與多個位址中的每一者對應的所述多個資料項中的每一者的值根據所述多個資料項中的每一者的位址而增大。
- 如請求項5所述的半導體積體電路,其中所述資料型樣是固定型樣,在所述固定型樣中,與多個位址中的每一者對應的所述多個資料項中的每一者的值是固定的。
- 如請求項3所述的半導體積體電路,其中所述讀取 測試電路因應於對第三封包的接收而產生所述預期值且實行所接收的所述讀取資料與所述預期值的所述比較,所述第三封包是由所述外部記憶體裝置因應於讀取命令而傳送。
- 如請求項8所述的半導體積體電路,其中所述測試資料包括多個資料項,所述第三封包包括傳送大小及與所述半導體積體電路的所述本地記憶體裝置中的位置對應的第二位址,且所述讀取測試電路因應於所述對包括所述第二位址的所述第三封包的接收而依序地產生與位址範圍對應的多個所述預期值,所述位址範圍開始於所述第二位址且端視所述傳送大小而定。
- 一種記憶體系統,包括:半導體積體電路,包括寫入測試電路及讀取測試電路;以及非揮發性記憶體,電性連接至所述半導體積體電路,其中所述寫入測試電路被配置成產生測試資料且將所產生的所述測試資料傳送至所述非揮發性記憶體,而不將所述測試資料儲存於本地記憶體裝置中,所述測試資料是根據寫入命令中規定的所述本地記憶體裝置的實體位址來產生,且所述讀取測試電路被配置成自所述非揮發性記憶體接收已藉由對所述測試資料進行讀取而自所述非揮發性記憶體獲得的讀取資料,且將所接收的所述讀取資料與預期值進行比較,而不將所述讀取資料或所述預期值儲存於所述本地記憶體裝置中,所述預期值是根據讀取命令中規定的所述本地記憶體裝置的實體位址來 產生。
- 如請求項10所述的記憶體系統,其中所述寫入測試電路被配置成亦根據所述寫入命令中規定的邏輯位址來產生所述測試資料,且所述讀取測試電路被配置成亦根據所述讀取命令中規定的邏輯位址來產生所述預期值。
- 一種記憶體系統,包括:半導體積體電路,包括寫入測試電路及讀取測試電路;以及非揮發性記憶體,電性連接至所述半導體積體電路,其中所述寫入測試電路被配置成產生測試資料且將所產生的所述測試資料傳送至所述非揮發性記憶體,而不將所述測試資料儲存於本地記憶體裝置中,以及因應於對第一封包的接收而使用第二封包將所述測試資料傳送至所述非揮發性記憶體,所述第一封包是因應於同樣在所述半導體積體電路中產生的寫入命令而在所述半導體積體電路中產生,以及所述讀取測試電路被配置成自所述非揮發性記憶體接收已藉由對所述測試資料進行讀取而自所述非揮發性記憶體獲得的讀取資料,且將所接收的所述讀取資料與預期值進行比較,而不將所述讀取資料或所述預期值儲存於所述本地記憶體裝置中。
- 如請求項12所述的記憶體系統,其中所述測試資料包括多個資料項,所述第一封包包括傳送大小及與所述半導體積體電路的所述本地記憶體裝置中的位置對應的第一位址,且 所述寫入測試電路因應於所述對包括所述第一位址的所述第一封包的接收而依序地產生與位址範圍對應的所述多個資料項,所述位址範圍開始於所述第一位址且端視所述傳送大小而定。
- 如請求項13所述的記憶體系統,其中所述寫入測試電路應用資料型樣來產生包括於所述測試資料中的所述多個資料項中的每一者。
- 如請求項14所述的記憶體系統,其中所述資料型樣是遞增型樣,在所述遞增型樣中,與多個位址中的每一者對應的所述多個資料項中的每一者的值根據所述多個資料項中的每一者的位址而增大。
- 如請求項14所述的記憶體系統,其中所述資料型樣是固定型樣,在所述固定型樣中,與多個位址中的每一者對應的所述多個資料項中的每一者的值是固定的。
- 如請求項12所述的記憶體系統,其中所述讀取測試電路因應於對第三封包的接收而產生所述預期值且實行所接收的所述讀取資料與所述預期值的所述比較,所述第三封包是因應於同樣在所述半導體積體電路中產生的讀取命令而在所述半導體積體電路中產生。
- 如請求項17所述的記憶體系統,其中所述測試資料包括多個資料項,所述第三封包包括傳送大小及與所述半導體積體電路的所述本地記憶體裝置中的位置對應的第二位址,且 所述讀取測試電路因應於所述對包括所述第二位址的所述第三封包的接收而依序地產生與位址範圍對應的多個所述預期值,所述位址範圍開始於所述第二位址且端視所述傳送大小而定。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021-170289 | 2021-10-18 | ||
JP2021170289A JP2023060606A (ja) | 2021-10-18 | 2021-10-18 | 半導体集積回路及びメモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202318430A TW202318430A (zh) | 2023-05-01 |
TWI829307B true TWI829307B (zh) | 2024-01-11 |
Family
ID=85982407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111132202A TWI829307B (zh) | 2021-10-18 | 2022-08-26 | 半導體積體電路以及記憶體系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11996156B2 (zh) |
JP (1) | JP2023060606A (zh) |
CN (1) | CN115995255A (zh) |
TW (1) | TWI829307B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480799B2 (en) * | 1998-08-26 | 2002-11-12 | Tanisys Technology, Inc. | Method and system for testing RAMBUS memory modules |
US20060253266A1 (en) * | 2001-09-28 | 2006-11-09 | Inapac Technology, Inc. | Integrated circuit test array including test module |
TW200947450A (en) * | 2008-05-09 | 2009-11-16 | A Data Technology Co Ltd | Storage system capable of data recovery and method thereof |
TWI521507B (zh) * | 2009-05-13 | 2016-02-11 | 飛思卡爾半導體公司 | 記憶體控制器及操作記憶體之方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007102653A (ja) | 2005-10-07 | 2007-04-19 | Hitachi Global Storage Technologies Netherlands Bv | データ記憶装置の機能試験方法及び機能試験装置 |
JP4991811B2 (ja) | 2009-09-16 | 2012-08-01 | 株式会社東芝 | 不揮発性半導体記憶装置及びその試験方法 |
US10803970B2 (en) | 2011-11-14 | 2020-10-13 | Seagate Technology Llc | Solid-state disk manufacturing self test |
US9443616B2 (en) | 2014-04-02 | 2016-09-13 | Seagate Technology Llc | Bad memory unit detection in a solid state drive |
CN107918571B (zh) * | 2016-10-08 | 2021-04-30 | 上海宝存信息科技有限公司 | 测试储存单元的方法以及使用该方法的装置 |
US11309044B2 (en) * | 2020-04-13 | 2022-04-19 | Vanguard International Semiconductor Corporation | Test circuit for testing a storage circuit |
KR20220058127A (ko) * | 2020-10-30 | 2022-05-09 | 에스케이하이닉스 주식회사 | 컴퓨팅 시스템 및 그 동작 방법 |
US11640308B2 (en) * | 2021-02-19 | 2023-05-02 | Macronix International Co., Ltd. | Serial NAND flash with XiP capability |
-
2021
- 2021-10-18 JP JP2021170289A patent/JP2023060606A/ja active Pending
-
2022
- 2022-08-26 US US17/896,871 patent/US11996156B2/en active Active
- 2022-08-26 TW TW111132202A patent/TWI829307B/zh active
- 2022-09-09 CN CN202211102640.4A patent/CN115995255A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480799B2 (en) * | 1998-08-26 | 2002-11-12 | Tanisys Technology, Inc. | Method and system for testing RAMBUS memory modules |
US20060253266A1 (en) * | 2001-09-28 | 2006-11-09 | Inapac Technology, Inc. | Integrated circuit test array including test module |
TW200947450A (en) * | 2008-05-09 | 2009-11-16 | A Data Technology Co Ltd | Storage system capable of data recovery and method thereof |
TWI521507B (zh) * | 2009-05-13 | 2016-02-11 | 飛思卡爾半導體公司 | 記憶體控制器及操作記憶體之方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202318430A (zh) | 2023-05-01 |
US20230121722A1 (en) | 2023-04-20 |
JP2023060606A (ja) | 2023-04-28 |
CN115995255A (zh) | 2023-04-21 |
US11996156B2 (en) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10942682B2 (en) | System and method of interfacing co-processors and input/output devices via a main memory system | |
US10109343B2 (en) | Multi-mode memory device and method having stacked memory dice, a logic die and a command processing circuit and operating in direct and indirect modes | |
CN110073322B (zh) | 用于快速执行封装体内命令的系统和方法 | |
CN106126447B (zh) | 控制存储装置的方法、存储器模块和存储系统 | |
US10268407B1 (en) | Method and apparatus for specifying read voltage offsets for a read command | |
JP5676644B2 (ja) | ハイブリッドメモリのためのシステム、方法及び装置 | |
US7849242B2 (en) | PCI express-compatible controller and interface that provides PCI express functionality and flash memory operations to host device | |
US20220269513A1 (en) | Serial NAND Flash With XIP Capability | |
JP2022153654A (ja) | パーシステントメモリシステム等のデータ完全性 | |
TW200935233A (en) | System and method for data read of a synchronous serial interface NAND | |
CN107665174B (zh) | 具有非易失性存储器和易失性存储器的存储系统 | |
US10572344B2 (en) | Accessing error statistics from DRAM memories having integrated error correction | |
EP3739457B1 (en) | Technologies for performing macro operations in memory | |
US10860518B2 (en) | Integrated circuit system | |
US11782638B2 (en) | Storage device with improved read latency and operating method thereof | |
TWI829307B (zh) | 半導體積體電路以及記憶體系統 | |
US10229057B2 (en) | Method and apparatus for avoiding bus contention after initialization failure | |
TWI802113B (zh) | 用以借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器 | |
US20240087664A1 (en) | Built-in self-test burst patterns based on architecture of memory |