TWI773395B - 記憶體控制器與連結識別方法 - Google Patents
記憶體控制器與連結識別方法 Download PDFInfo
- Publication number
- TWI773395B TWI773395B TW110122761A TW110122761A TWI773395B TW I773395 B TWI773395 B TW I773395B TW 110122761 A TW110122761 A TW 110122761A TW 110122761 A TW110122761 A TW 110122761A TW I773395 B TWI773395 B TW I773395B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory controller
- host interface
- link
- target device
- transmission
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2284—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
- G06F11/2635—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers using a storage for the test inputs, e.g. test ROM, script files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/273—Tester hardware, i.e. output processing circuits
- G06F11/2733—Test interface between tester and unit under test
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/022—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
Abstract
一種記憶體控制器,耦接一記憶體裝置,用以控制記憶體裝置的存取操作,包括一主機介面以及一微處理器。微處理器耦接主機介面,用以於記憶體控制器被供電後將一既定參數設定為一特殊數值,並且開始執行一連結建立流程,用以嘗試透過主機介面建立一傳輸連結。既定參數為主機介面之複數能力參數之一者,並且既定參數與主機介面之接收相關。於連結建立流程完成後,微處理器更根據與傳輸連結相關聯之複數屬性參數之至少一者及特殊數值識別與主機介面建立傳輸連結之一目標裝置。
Description
本發明係關於一種適用於產品測試流程之連結識別方法及實施該連結識別方法之記憶體控制器。
隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合安全數位(Secure Digital,縮寫為SD)/ 多媒體卡(Multi Media Card,縮寫為MMC)規格、複合式快閃記憶體(Compact flash,縮寫為CF)規格、記憶條(Memory Stick,縮寫為MS)規格與極數位(Extreme Digital,縮寫為XD)規格的記憶卡、固態硬碟、嵌入式多媒體記憶卡(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體儲存(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。因此,各領域對於資料儲存裝置的需求也大幅成長。
資料儲存裝置的供應商通常可為其客戶提供測試服務。例如,客戶端於將資料儲存裝置的晶片依其需求封裝後,可再交由供應商對封裝後的晶片進行測試。於測試流程中,待測試的晶片可能需於不同的測試階段/測試站連接至不同的裝置,或者待測試的晶片之傳輸介面可依照測試項目而有不同的連接方式。此外,待測試的晶片之傳輸介面於測試流程中因測試需求亦可能需與對應之介面建立連結。為了於測試流程中能正確地識別與待測試的晶片之傳輸介面建立連結的對象,以避免因連結識別錯誤而導致測試流程無法完成,需要一種有效的連結識別方法。
本發明之一目的在於於測試流程中能正確地識別與待測試的晶片之傳輸介面建立連結的對象,以避免因連結識別錯誤而導致測試流程無法完成。
根據本發明之一實施例,一種記憶體控制器,耦接一記憶體裝置,用以控制記憶體裝置的存取操作,包括一主機介面以及一微處理器。微處理器耦接主機介面,用以於記憶體控制器被供電後將一既定參數設定為一特殊數值,並且開始執行一連結建立流程,用以嘗試透過主機介面建立一傳輸連結。既定參數為主機介面之複數能力參數之一者,並且既定參數與主機介面之接收相關。於連結建立流程完成後,微處理器更根據與傳輸連結相關聯之複數屬性參數之至少一者及特殊數值識別與主機介面建立傳輸連結之一目標裝置。
根據本發明之一實施例,一種連結識別方法,適用於一記憶體控制器,記憶體控制器耦接一記憶體裝置用以控制記憶體裝置的存取操作,連結識別方法包括:於記憶體控制器被供電後將記憶體控制器之一既定參數設定為一特殊數值,其中既定參數為記憶體控制器之複數能力參數之一者,並且既定參數與記憶體控制器之一主機介面之接收相關;執行一連結建立流程以嘗試透過主機介面建立一傳輸連結;以及於連結建立流程完成後根據與傳輸連結相關聯之複數屬性參數之至少一者及特殊數值識別與主機介面建立傳輸連結之一目標裝置。
在下文中,描述了許多具體細節以提供對本發明實施例的透徹理解。然而,本領域技術人員仍將理解如何在缺少一個或多個具體細節或依賴於其他方法、元件或材料的情況下實施本發明。在其他情況下,未詳細示出或描述公知的結構、材料或操作,以避免模糊本發明的主要概念。
在整個說明書中對「一個實施例」、「一實施例」、「一個範例」或「一範例」的引用意味著結合該實施例或範例所描述的特定特徵、結構或特性係包括於本發明之多個實施例的至少一個實施例中。因此,貫穿本說明書在各個地方出現的短語「在一個實施例中」、「在一實施例中」、「在一個範例中」或「在一範例中」不一定都指到相同的實施例或範例。此外,特定特徵、結構或特性可以在一個或多個實施例或範例中以任何合適的組合和/或子組合進行結合。
此外,為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置100的示意圖。資料儲存裝置100可包括一記憶體裝置120與一記憶體控制器110。記憶體控制器110用以存取(Access)記憶體裝置120及控制記憶體裝置120之運作。記憶體裝置120可為一非揮發性(non-volatile,縮寫為NV)記憶體裝置(例如,一快閃記憶體(flash memory)),並且可包括一或多個記憶元件(例如,一或多個快閃記憶體晶粒、一或多個快閃記憶體晶片、或其他類似元件)。
根據本發明一實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一記憶體介面114、一緩衝記憶體116、與一主機介面118。唯讀記憶體112M係用以儲存一程式碼112C,程式碼112C可包含一或多個程式模組,例如開機載入器(boot loader)碼,於主機裝置130供電給資料儲存裝置100時,微處理器112可執行程式碼112C來進行初始化運作,以從記憶體裝置120載入一群系統內編程(In-System Programming,縮寫為ISP)碼(圖未繪示)。微處理器112可執行該群ISP碼,使資料儲存裝置100具備各種功能。依據本實施例,該群ISP碼可包含(但不限於)關於存取(例如讀取、寫入及抹除)的多個程式模組,諸如一讀取操作模組、一查表模組、一耗損平均(wear leveling)模組、一讀取刷新(ead refresh)模組、一讀取回收(read reclaim)模組、一垃圾收集(garbage collection)模組、一突然斷電回復(sudden power off recovery,縮寫為SPOR)模組以及一不可更正錯誤更正碼(uncorrectable error correction code,縮寫為UECC)模組,以供分別進行讀取、查表、耗損平均、讀取刷新、讀取回收、垃圾收集、突然斷電回復以及針對UECC錯誤的錯誤處置。記憶體介面114包含了一編碼器132與一解碼器134。編碼器132用以對寫入到記憶體裝置120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC)。解碼器134用以將從記憶體裝置120所讀出的資料進行解碼。
記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用記憶體介面114來控制記憶體裝置120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用主機介面118來與一主機裝置(Host Device)130溝通。
主機裝置130可對資料儲存裝置100發出指令,例如,讀取指令或寫入指令,用以存取記憶體裝置120所儲存之資料,或者進一步控制、管理資料儲存裝置100。
在一實施例中,緩衝記憶體116係以隨機存取記憶體(Random Access Memory,縮寫為RAM)來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM,縮寫為SRAM),但本發明不限於此。於其它實施例中,緩衝記憶體116可以是動態隨機存取記憶體(Dynamic RAM,縮寫為DRAM)。
在一實施例中,主機介面118可為具有對應之韌體/軟體設計之一硬體介面,用以於記憶體控制器110與主機裝置130之間傳遞溝通訊號、傳遞寫入/讀取之資料、以及控制工作排程等。例如,記憶體控制器110/微處理器112可藉由執行對應之韌體或軟體使主機介面118執行上述操作。
在一實施例中,記憶體控制器110透過主機介面118並使用一標準通訊協定與主機裝置130溝通。舉例而言,上述之標準通訊協定包含(但不限於):通用序列匯流排(Universal Serial Bus ,縮寫為USB)標準、安全數位(SD)介面標準、超高速一代 (Ultra High Speed-I,縮寫為UHS-I) 介面標準、超高速二代 (Ultra High Speed-II,縮寫為UHS-II) 介面標準、複合式快閃記憶體(CF)介面標準、多媒體卡(Multimedia Card,縮寫為MMC)介面標準、嵌入式多媒體卡(Embedded Multimedia Card,縮寫為eMMC)介面標準、通用快閃記憶體(UFS)介面標準、高技術組態(Advanced Technology Attachment,縮寫為ATA)標準、序列高技術組態(Serial ATA,縮寫為SATA)標準、快捷外設互聯標準(Peripheral Component Interconnect Express,縮寫為PCI-E)標準、並列先進附件(Parallel Advanced Technology Attachment,縮寫為PATA)標準。
如上所述,記憶體控制器110或資料儲存裝置100之製造商或供應商可對封裝後的晶片或裝置進行測試。於測試流程中,待測試的晶片或裝置可能需於不同的測試階段/測試站連接至不同的裝置,或者待測試的晶片或裝置之傳輸介面可依照測試項目而有不同的連接方式。此外,待測試的晶片或裝置之傳輸介面於測試流程中因測試需求亦可能需與一同級(peer)裝置之對應介面建立連結。
例如,一既定的測試流程可能涉及兩測試階段/測試站,於第一測試階段中,待測試的晶片或裝置(例如,可以是包含記憶體控制器110或資料儲存裝置100之一晶片)(為簡潔說明,以下簡稱為待測裝置)可與一主機裝置(例如,第1圖所示之主機裝置130)連接,由主機裝置將測試流程所需的軟體/韌體程式碼載入待測裝置,並且為待測裝置設定測試流程所需的相關參數或暫存器。於第一測試階段中,可藉由上述操作測試主機介面118與主機裝置130之間的溝通是否正常運作。於第二測試階段中,待測裝置不與任一主機裝置連接,而是被安裝於一測試裝置中進行測試,此測試裝置可以是一裝配架(jig)或者一特定治具。因此,於第二測試階段中,測試裝置應無視任何來自主機裝置的指令(若有)。於第二測試階段中,測試裝置將進行返回(loopback)測試,並且藉由記憶體控制器110的控制執行自我測試,例如,測試記憶體裝置120的讀取、寫入、清除等操作是否正常,藉此測試記憶體控制器110與記憶體裝置120之間的溝通是否正常運作。
需注意的是,待測裝置於第一測試階段中所連接的主機裝置與待測裝置最終成為一產品時所連接的主機裝置通常為不同的裝置。於測試流程中,與資料儲存裝置100所連接的主機裝置130可以是專為執行產品測試所設計的一晶片。而當資料儲存裝置100最終成為一產品時,例如,在一些實施例中資料儲存裝置100可以是可攜式記憶體裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),此時主機裝置130為一可與資料儲存裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦…等等。又例如,在另一些實施例中資料儲存裝置100可以是固態硬碟或符合UFS或eMMC規格之嵌入式儲存裝置,並且可被設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主機裝置130可以是該電子裝置的一處理器
第2圖係顯示根據本發明之一實施例所述之安裝有待測裝置之測試裝置的示意圖。於此實施例中,待測裝置為資料儲存裝置200,而資料儲存裝置200可以是如第1圖所示之資料儲存裝置100。測試裝置250可包括一插槽(圖未示),資料儲存裝置200可藉由被插入該插槽而被安裝於測試裝置250中。此外,測試裝置250可至少包括一或多個傳送針腳,例如,傳送針腳P_TX0與P_TX1、一或多個接收針腳,例如,接收針腳P_RX0與P_RX1、以及一連接器251。測試裝置250可透過連接器251獲取電力。例如,連接器251可以是一USB插頭,測試裝置250可藉由連接器251被插入另一可供電之USB插槽而取得電力。於此實施例中,資料儲存裝置200之主機介面218可以是兩線道 (two lane)的設計,即,主機介面218可包括兩個傳送端TX0與TX1及兩個接收端RX0與RX1。傳送針腳P_TX0與P_TX1用以分別連接主機介面218之傳送端TX0與TX1,接收針腳P_RX0與P_RX1用以分別連接主機介面218之接收端RX0與RX1。需注意的是,第2圖所標示之符號218係用以表示傳送端TX0與TX1與接收端RX0與RX1包含於主機介面218,但非用以限定主機介面218所包含之元件內容。孰悉此技藝者均可理解,一主機介面當可包含其他圖中未示之元件,以實施對應操作。
於本發明之實施例中,為了使資料儲存裝置200可執行返回(loopback)測試,測試裝置250可具有返回佈局(loopback layout)。如圖所示,測試裝置250可佈有走線31與32。走線31連接傳送針腳P_TX0與接收針腳P_RX0,走線32連接傳送針腳P_TX1與接收針腳P_RX1。當資料儲存裝置200被安裝於測試裝置250中時,傳送針腳P_TX0與傳送端TX0連接,接收針腳P_RX0與接收端RX0連接,使得傳送端TX0可透過走線31與接收端RX0連接。同樣地,當資料儲存裝置200被安裝於測試裝置250中時,傳送針腳P_TX1與傳送端TX1連接,接收針腳P_RX1與接收端RX1連接,使得傳送端TX1可透過走線32與接收端RX1連接。於第二測試階段中,資料儲存裝置200可利用此返回佈局進行返回測試,以測試主機介面的兩線道上的傳送與接收是否正常運作。
一般而言,資料儲存裝置100/200於被供電後,會執行一連結建立流程,用以嘗試透過主機介面與與一同級(peer)裝置之對應介面建立起傳輸連結。例如,當資料儲存裝置100/200被實施為符合UFS規格之資料儲存裝置時,因UFS使用行動產業處理器介面(Mobile Industry Processor Interface,縮寫為MIPT)聯盟所開發的實體層M-PHY,資料儲存裝置100/200於被供電後需依循由 MIPI 聯盟所制定的標準化通訊協定 (Unified Protocol,通常稱為UniPro)執行連結建立流程(Link Flow)。
然而,由於待測裝置(例如,資料儲存裝置)於第一測試階段中與一主機裝置連接,於第二測試階段中透過測試裝置250的返回佈局與自己的傳輸介面連接,因此,待測裝置於兩個測試階段的連結建立流程中都可能成功地建立起傳輸連結。因此,僅根據傳輸連結是否已被成功建立並不足以識別出待測裝置目前是與哪個裝置建立起連結。若待測裝置無法於測試流程中正確地做出區別,將發生因連結識別錯誤而導致測試流程無法完成的問題。
為了於測試流程中能正確地識別與待測裝置之傳輸介面(例如,主機介面118/218)建立連結的對象,以避免前述因連結識別錯誤而無法完成測試流程的問題,需要一種有效的連結識別方法。
第3圖係顯示根據本發明之一實施例所述之連結識別方法流程圖,包括以下步驟:
步驟S302: 於資料儲存裝置100/200及/或記憶體控制器110被供電後,將一既定參數設定為一特殊數值。根據本發明之一實施例,既定參數為記憶體控制器110之複數能力參數之一者,例如,與主機介面118/218之接收相關的能力參數。此外,根據本發明之一實施例,於此步驟中所選擇做特殊數值之設定的參數是爾後於執行連結建立流程中會被交換的能力參數。例如,此傳輸連結的傳送端與接收端分別會於溝通的過程中將其能力參數提供給對方做為後續參數設定時的參考。
步驟S304: 執行一連結建立流程以嘗試透過主機介面建立一傳輸連結。需注意的是,於本發明之實施例中,步驟S302之執行必須早於步驟S304。即,對既定參數作特殊數值的設定必須於開始執行連結建立流程前完成。此外,根據本發明之一實施例,資料儲存裝置100/200可依循前述標準化通訊協定(UniPro)執行連結建立流程(Link Flow)。
步驟S306: 於連結建立流程完成後,根據與傳輸連結相關聯之複數屬性參數之至少一者及前述特殊數值識別與主機介面建立傳輸連結之一目標裝置。如上所述,於連結建立流程中,此傳輸連結的傳送端與接收端分別會將其能力參數提供給對方,並且傳送端與接收端將依循相同規則分別根據自身與對方的能力參數設定與此傳輸連結相關聯之複數屬性參數。於屬性參數設定完成後,可利用複數屬性參數之中與前述既定參數相關的屬性參數最終被設定的數值判斷與資料儲存裝置100/200建立傳輸連結的對象是否為另一同級的主機裝置,或者為資料儲存裝置100/200本身。
根據本發明之一實施例,連結識別方法可更包括:於識別出與主機介面建立傳輸連結之目標裝置後,根據目標裝置之一識別結果決定次一操作。
更具體的說,根據本發明之一實施例,微處理器112於記憶體控制器110被供電後將前述既定參數設定為特殊數值,例如,將之設定為可被允許的最大值,並且開始執行一連結建立流程,用以嘗試透過主機介面建立一傳輸連結。根據本發明之一實施例,前述既定參數可以是與主機介面118/218所需的作業時間相關的能力參數,例如,前述既定參數可以是接收端之能力參數RX_Hibern8Time_Capability,此參數係用以具體指定接收端於進入休眠(Hibernate)模式後須停留在休眠模式的最短時間。又例如,前述既定參數可以是接收端之能力參數RX_Min_ActivateTime_Capability,此參數係用以具體指定接收端自被喚醒(Wakeup)後到開始第一個動作所需的時間。根據本發明之另一實施例,前述既定參數也可以是與主機介面118/218所使用之一同步圖樣相關的參數,例如,前述既定參數可以是接收端之參數RX_HS_G1_SYNC_LENGTH (其中的G1代表高速(High Speed,縮寫為HS)模式的第一速度檔位Gear 1,並且可被延伸至由MIPI所定義的其他速度檔位),此參數係用以具體指定接收端所使用之同步圖樣長度。
需注意的是,以上介紹之參數僅為可實施本發明之數個範例,本發明實際上並不限於僅能使用以上參數。如上所述,於本發明之實施例中,微處理器可自與主機介面118/218之接收端相關的複數能力參數或者與記憶體控制器110及/或主機介面118/218之接收操作相關的複數參數中選擇出一或多者做特殊數值之設定。此外,於此所選擇做特殊數值之設定的參數是爾後於執行連結建立流程時會在傳送端與接收端之間交換的參數。
於特殊數值之參數設定完成後,微處理器112可開始一連結建立流程。下表一為UniPro規格書所規範的連結流程(Link Flow),其中的英文縮寫PA係指物理適配(PHY adapter)層。
階段 | PA 傳送器 | PA 接收器 |
0 | 傳送TRG_UPRO封包(所有線道) | 等待接收TRG_UPRO封包 發現線道 |
0b | 傳送兩個額外的TRG_UPRO封包(所有線道) | 忽略所有資料 |
1 | 傳送TRG_UPR1封包 | 等待接收TRG_UPR1封包 校準線道編號 |
2 | 傳送兩個額外的TRG_UPR1封包 接著進行階段3 | 忽略所有資料 |
3 | 於所有線道傳送TRG_UPR2封包 | 於物理資料接收線道0上等待接收TRG_UPR2封包 |
4 | 於所有線道傳送兩個額外的TRG_ UPR2封包 接著進行階段5 | 忽略所有資料 |
5 | 傳送能力參數 | 接收能力參數並應用降級 |
接收能力參數並應用降級 |
表一: 連結流程(Link Flow)範例
有關連結流程的詳細說明,可進一步參考UniPro規格書第1.61版,第5.6.3章。
於連結流程的階段5,傳送端與接收端進行能力參數的交換,並且以降級的方式應用所得的能力參數。例如,UniPro規格書中定義了屬性參數PA_Hibern8Time的設定方法為:
PA_Hibern8Time=max(TX_Hibern8Time_Capability, peer_RX_Hibern8Time_Capability) 式(1)
其中參數PA_Hibern8Time係用以具體指定於進入休眠(Hibernate)模式後須停留在休眠模式的最短時間,max(A,B)為於A、B兩者之間取最大值的運算,參數TX_Hibern8Time_Capability為傳送端於進入休眠模式後須停留在休眠模式的最短時間,參數peer_RX_Hibern8Time_Capability為(傳送端經由參數交換所取得之)同級接收端於進入休眠模式後須停留在休眠模式的最短時間。一般而言,因自休眠模式返回正常模式所需的時間越短代表裝置的反應速度越快,因此對於速度較快的一方,藉由取最大值的運算來設定參數相當於以降級的方式應用所得的能力參數。
舉另一例,UniPro規格書中定義了屬性參數PA_TActivate的設定方法為:
PA_TActivate = peer_ RX_Min_ActivateTime_Capability 式(2)
其中參數PA_TActivate係用以具體指定自被喚醒後到開始第一個動作所需的時間,參數peer_RX_Hibern8Time_Capability為(傳送端經由參數交換所取得之)同級接收端被喚醒後到開始第一個動作所需的時間。
再舉另一例,UniPro規格書中定義了屬性參數PA_TxHsG1SyncLength的設定方法為:
PA_TxHsG1SyncLength = peer_RX_HS_G1_SYNC_LENGTH 式(3)
其中參數PA_TxHsG1SyncLength係用以具體指定於高速模式下的第一速度檔位所使用之同步圖樣長度,參數peer_RX_HS_G1_SYNC_LENGTH為(傳送端經由參數交換所取得之)同級接收端於高速模式下的第一速度檔位所使用之同步圖樣長度。
於本發明之實施例中,微處理器112可於連結建立流程開始前,對於所選之既定參數(例如但不限於,前述之參數RX_Hibern8Time_Capability、RX_Min_ActivateTime_Capability、及/或RX_HS_G1_SYNC_LENGTH)之至少一者作特殊數值的設定,例如,將之設定為極大的特殊值 (例如,十六進位之0x7D)。
於執行連結建立流程時,透過參數交換,傳送端將取得接收端的能力參數,並且可如以上範例根據傳送端及/或接收端的能力參數設定與此傳輸連結相關聯之複數屬性參數。例如,假設目前處於第一測試階段,資料儲存裝置100/200與主機裝置130連接,因為此時資料儲存裝置100會與主機裝置130於連結建立流程中進行參數交換,則以上範例中的參數peer_RX_Hibern8Time_Capability、peer_ RX_Min_ActivateTime_Capability以及peer_RX_HS_G1_SYNC_LENGTH欄位被帶入的數值會是主機裝置130所設定的參數RX_Hibern8Time_Capability、RX_Hibern8Time_Capability以及RX_HS_G1_SYNC_LENGTH。相對地,假設目前處於第二測試階段,資料儲存裝置100/200透過測試裝置250的返回佈局與自己的傳輸介面連接,則因為此時資料儲存裝置100會與自己於連結建立流程中進行參數交換,以上範例中的參數peer_RX_Hibern8Time_Capability、peer_ RX_Min_ActivateTime_Capability以及peer_RX_HS_G1_SYNC_LENGTH欄位被帶入的數值將會資料儲存裝置100/200本身所設定的參數RX_Hibern8Time_Capability、RX_Hibern8Time_Capability以及RX_HS_G1_SYNC_LENGTH。
如此一來,微處理器112便可藉由與前述既定參數相關的屬性參數最終被設定的數值判斷與資料儲存裝置100/200建立傳輸連結的對象是否為另一同級的主機裝置,或者為資料儲存裝置100/200本身。更具體的說,當微處理器112選擇能力參數RX_Hibern8Time_Capability作為既定參數作特殊數值的設定時,若微處理器112判斷式(1)中的屬性參數PA_Hibern8Time於連結建立流程結束後被設定為此特殊數值,便可判斷出目前與主機介面118/218建立傳輸連結的對象為記憶體控制器110本身。另一方面,若微處理器112判斷式(1)中的屬性參數PA_Hibern8Time於連結建立流程結束後並不等於此特殊數值,則可判斷出目前與主機介面118/218建立傳輸連結的對象並非記憶體控制器110本身,而是一主機裝置。
類似地,當微處理器112選擇能力參數RX_Min_ActivateTime_Capability、及/或RX_HS_G1_SYNC_LENGTH作為既定參數作特殊數值的設定時,若微處理器112判斷式(2)及/或式(3)的屬性參數被設定為特殊數值,可判斷出目前與主機介面118/218建立傳輸連結的對象為記憶體控制器110本身。若微處理器112判斷式(2)及/或式(3)中的屬性參數於連結建立流程結束後並不等於特殊數值,則可判斷出目前與主機介面118/218建立傳輸連結的對象並非記憶體控制器110本身,而是一主機裝置。
於微處理器112識別出目標裝置(即,上述判斷出目前與主機介面118/218建立傳輸連結的對象為記憶體控制器110本身或者一主機裝置)之後,微處理器112可更根據目標裝置之識別結果決定次一操作。
第4圖係顯示根據本發明之一實施例所述之應用連結識別方法之測試方法流程圖,包括以下步驟:
步驟S402: 待測裝置(例如,資料儲存裝置100/200)於上電後開始執行測試韌體。
步驟S404: 將至少一既定參數設定為對應之一特殊數值。
步驟S406: 開始連結建立流程,以嘗試利用主機介面與另一方(例如,記憶體控制器110本身或者一主機裝置)建立一傳輸連結。
步驟S408: 連結建立流程完成。
步驟S410: 判斷與此傳輸連結相關聯之複數屬性參數之中與步驟S404中所使用的既定參數相關的屬性參數是否被設定為特殊數值,以識別與主機介面建立傳輸連結之一目標裝置。若否,代表目標裝置為主機裝置,待測裝置執行步驟S412。若是,代表目標裝置為非主機裝置,待測裝置執行步驟S414。
步驟S412: 等待來自目標裝置(主機裝置)之指令。
步驟S414: 執行一測試流程。如上所述,若判斷待測裝置並非與一主機裝置連接,可判定測試裝置目前處於第二測試階段/測試站中,此時測試裝置應無視任何來自主機裝置的指令(若有)而直接執行第二測試階段中所設定的測試流程,例如前述之自我測試與返回測試。
於傳統技術中,為了使第二測試階段可單純地執行自我測試,因此將返回測試安排於第一測試階段,以及將返回佈局設置於第一測試站中。於此安排下,待測裝置於第二測試階段中無法成功建立傳輸連結,因此可根據傳輸連結是否已被成功建立來判斷測試裝置目前處於哪個測試階段/測試站中。然而,於第一測試站中安排的返回佈局可能額外造成些許的連結錯誤問題。為避免連結錯誤的產生,將返回佈局改為設置於第二測試站中,並且將返回測試改為安排於第二測試階段。然而,如上所述,由於待測裝置於兩個測試階段的連結建立流程中都可能成功地建立起傳輸連結。因此,僅根據傳輸連結是否已被成功建立已不足以識別出待測裝置目前是與哪個裝置建立起連結。若待測裝置無法於測試流程中正確地做出區別,將發生因連結識別錯誤而導致測試流程無法完成的問題。例如,於第4圖的流程中,若省略步驟S404,而僅於步驟S410中判斷傳輸連結是否已被成功建立,則無論測試裝置目前處於哪個測試階段,最終都只會執行步驟S412。
不同於傳統技術,於本發明所提出之連結識別方法中,藉由特殊的參數值設定,使微處理器112可簡單且正確地辨識出測試裝置目前處於哪個測試階段,如此可有效解決傳統技術的問題。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100,200:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:記憶體介面
116:緩衝記憶體
118,218:主機介面
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器
250:測試裝置
251:連接器
31,32:走線
P_TX0,P_TX1:傳送針腳
P_RX0,P_RX1:接收針腳
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置的示意圖。
第2圖係顯示根據本發明之一實施例所述之安裝有待測裝置之測試裝置的示意圖。
第3圖係顯示根據本發明之一實施例所述之連結識別方法流程圖。
第4圖係顯示根據本發明之一實施例所述之應用連結識別方法之測試方法流程圖。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:記憶體介面
116:緩衝記憶體
118:主機介面
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器
Claims (13)
- 一種記憶體控制器,耦接一記憶體裝置,用以控制該記憶體裝置的存取操作,包括: 一主機介面;以及 一微處理器,耦接該主機介面,用以於該記憶體控制器被供電後將一既定參數設定為一特殊數值,並且開始執行一連結建立流程,用以嘗試透過該主機介面建立一傳輸連結, 其中該既定參數為該主機介面之複數能力參數之一者,並且該既定參數與該主機介面之接收相關,並且 於該連結建立流程完成後,該微處理器更根據與該傳輸連結相關聯之複數屬性參數之至少一者及該特殊數值識別與該主機介面建立該傳輸連結之一目標裝置。
- 如申請專利範圍第1項所述之記憶體控制器,其中於該連結建立流程中,該微處理器更取得該目標裝置之複數能力參數,並且根據該主機介面及/或該目標裝置之該等能力參數設定與該傳輸連結相關聯之該等屬性參數。
- 如申請專利範圍第2項所述之記憶體控制器,其中於該連結建立流程完成後,該微處理器藉由所述與該傳輸連結相關聯之該等屬性參數之至少一者是否被設定為該特殊數值判斷該目標裝置是否為該記憶體控制器本身。
- 如申請專利範圍第1項所述之記憶體控制器,其中於該微處理器識別出該目標裝置後,該微處理器更根據該目標裝置之一識別結果決定次一操作。
- 如申請專利範圍第4項所述之記憶體控制器,其中當該微處理器根據該識別結果判斷與該主機介面建立該傳輸連結之該目標裝置為該記憶體控制器本身時,該微處理器開始執行一測試流程。
- 如申請專利範圍第4項所述之記憶體控制器,其中當該微處理器根據該識別結果判斷與該主機介面建立該傳輸連結之該目標裝置非該記憶體控制器本身時,該微處理器等待來自該目標裝置之指令。
- 一種測試裝置,包括如申請專利範圍第1項所述之記憶體控制器,其中該記憶體控制器被安裝於該測試裝置中,並且該測試裝置包括: 一傳送針腳,耦接該主機介面之一傳送端; 一接收針腳,耦接該主機介面之一接收端;以及 一走線,連接該傳送針腳與該接收針腳。
- 一種連結識別方法,適用於一記憶體控制器,該記憶體控制器耦接一記憶體裝置用以控制該記憶體裝置的存取操作,該連結識別方法包括: 於該記憶體控制器被供電後將該記憶體控制器之一既定參數設定為一特殊數值,其中該既定參數為該記憶體控制器之複數能力參數之一者,並且該既定參數與該記憶體控制器之一主機介面之接收相關; 執行一連結建立流程以嘗試透過該主機介面建立一傳輸連結;以及 於該連結建立流程完成後根據與該傳輸連結相關聯之複數屬性參數之至少一者及該特殊數值識別與該主機介面建立該傳輸連結之一目標裝置。
- 如申請專利範圍第8項所述之連結識別方法,其中執行一連結建立流程以嘗試透過該主機介面建立一傳輸連結之步驟更包括: 取得該目標裝置之複數能力參數;以及 根據該主機介面及/或該目標裝置之該等能力參數設定與該傳輸連結相關聯之該等屬性參數。
- 如申請專利範圍第9項所述之連結識別方法,其中於該連結建立流程完成後根據與該傳輸連結相關聯之複數屬性參數之至少一者及該特殊數值識別與該主機介面建立該傳輸連結之一目標裝置之步驟更包括: 判斷與該傳輸連結相關聯之該等屬性參數之其中一者是否被設定為該特殊數值;以及 當所述與該傳輸連結相關聯之該等屬性參數之其中一者被設定為該特殊數值時,判斷該目標裝置為該記憶體控制器本身;以及 當所述與該傳輸連結相關聯之該等屬性參數之其中一者未被設定為該特殊數值時,判斷該目標裝置非該記憶體控制器本身。
- 如申請專利範圍第8項所述之連結識別方法,其中於識別出該目標裝置後,該連結識別方法更包括: 根據該目標裝置之一識別結果決定該記憶體控制器之次一操作。
- 如申請專利範圍第11項所述之連結識別方法,其中當該識別結果顯示該目標裝置為該記憶體控制器本身時,該連結識別方法更包括: 開始執行一測試流程。
- 如申請專利範圍第11項所述之連結識別方法,其中當該識別結果顯示該目標裝置非該記憶體控制器本身時,該連結識別方法更包括: 等待來自該目標裝置之指令。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110122761A TWI773395B (zh) | 2021-06-22 | 2021-06-22 | 記憶體控制器與連結識別方法 |
CN202110757085.8A CN115509965A (zh) | 2021-06-22 | 2021-07-05 | 存储器控制器与链接识别方法 |
US17/700,514 US11755439B2 (en) | 2021-06-22 | 2022-03-22 | Memory controller, test device and link identification method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110122761A TWI773395B (zh) | 2021-06-22 | 2021-06-22 | 記憶體控制器與連結識別方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI773395B true TWI773395B (zh) | 2022-08-01 |
TW202301136A TW202301136A (zh) | 2023-01-01 |
Family
ID=83807036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110122761A TWI773395B (zh) | 2021-06-22 | 2021-06-22 | 記憶體控制器與連結識別方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11755439B2 (zh) |
CN (1) | CN115509965A (zh) |
TW (1) | TWI773395B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7381519B2 (ja) * | 2021-06-09 | 2023-11-15 | アンリツ株式会社 | 誤り率測定装置および誤り率測定方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101689246A (zh) * | 2007-06-21 | 2010-03-31 | 株式会社东芝 | 存储器装置、电子装置以及主机设备 |
TWI516931B (zh) * | 2011-10-05 | 2016-01-11 | Lsi公司 | 用於非揮發儲存之自我記錄及階層一致性 |
TWI525631B (zh) * | 2011-11-14 | 2016-03-11 | Lsi公司 | 儲存裝置及其操作方法 |
US9760502B2 (en) * | 2011-04-29 | 2017-09-12 | Seagate Technology Llc | Encrypted transport solid-state disk controller |
US20190108124A1 (en) * | 2015-03-27 | 2019-04-11 | Intel Corporation | Shared buffered memory routing |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9526122B2 (en) * | 2012-07-13 | 2016-12-20 | Electronics And Telecommunications Research Institute | Methods for uniquely identifying communication links between communication devices |
DE112013005093T5 (de) * | 2012-10-22 | 2015-10-22 | Intel Corporation | Hochleistungszusammenschaltungsbitübertragungsschicht |
US9904651B2 (en) * | 2014-07-31 | 2018-02-27 | Samsung Electronics Co., Ltd. | Operating method of controller for setting link between interfaces of electronic devices, and storage device including controller |
CN105721514A (zh) * | 2014-12-01 | 2016-06-29 | 财团法人资讯工业策进会 | 使用者装置、云端服务器及其分享链接辨识方法 |
US10720224B2 (en) * | 2018-07-18 | 2020-07-21 | Micron Technology, Inc. | Protocol independent testing of memory devices using a loopback |
US11307782B2 (en) * | 2020-06-03 | 2022-04-19 | Micron Technology, Inc. | Host identification and verification system and method for a memory system |
KR20220062843A (ko) * | 2020-11-09 | 2022-05-17 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
-
2021
- 2021-06-22 TW TW110122761A patent/TWI773395B/zh active
- 2021-07-05 CN CN202110757085.8A patent/CN115509965A/zh active Pending
-
2022
- 2022-03-22 US US17/700,514 patent/US11755439B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101689246A (zh) * | 2007-06-21 | 2010-03-31 | 株式会社东芝 | 存储器装置、电子装置以及主机设备 |
US9760502B2 (en) * | 2011-04-29 | 2017-09-12 | Seagate Technology Llc | Encrypted transport solid-state disk controller |
TWI516931B (zh) * | 2011-10-05 | 2016-01-11 | Lsi公司 | 用於非揮發儲存之自我記錄及階層一致性 |
TWI525631B (zh) * | 2011-11-14 | 2016-03-11 | Lsi公司 | 儲存裝置及其操作方法 |
US20190108124A1 (en) * | 2015-03-27 | 2019-04-11 | Intel Corporation | Shared buffered memory routing |
Also Published As
Publication number | Publication date |
---|---|
US20220405179A1 (en) | 2022-12-22 |
TW202301136A (zh) | 2023-01-01 |
US11755439B2 (en) | 2023-09-12 |
CN115509965A (zh) | 2022-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10747299B2 (en) | Card and host apparatus | |
US9904651B2 (en) | Operating method of controller for setting link between interfaces of electronic devices, and storage device including controller | |
CN1241142C (zh) | 在智能卡和主站之间通信的方法 | |
RU2402804C2 (ru) | Способ загрузки хостового устройства из устройства mmc/sd, хостовое устройство, загружаемое из устройства mmc/sd, и устройство mmc/sd, из которого может быть загружено хостовое устройство | |
US10437498B2 (en) | Electronic device configured to reset storage device non-directly connected to application processor among storage devices serially connected to one another and method of operating the same | |
US20190155517A1 (en) | Methods and apparatus for memory controller discovery of vendor-specific non-volatile memory devices | |
CN114860279B (zh) | 一种快速空片升级方法 | |
US20230169028A1 (en) | Bridge device and data storage system | |
TWI773395B (zh) | 記憶體控制器與連結識別方法 | |
US8883521B2 (en) | Control method of multi-chip package memory device | |
EP1403814B1 (en) | Electronic apparatus, information processing apparatus, adapter apparatus, and information exchange system | |
US8527667B2 (en) | Apparatuses and methods for transferring data | |
WO2023082622A1 (zh) | 一种主从设备兼容的通信模块设计方法及装置 | |
TWI416418B (zh) | 資料傳輸控制器、裝置及其方法 | |
KR102274028B1 (ko) | 전자 장치의 인터페이스 사이의 링크를 설정하기 위한 컨트롤러의 작동 방법 및 컨트롤러를 포함하는 저장 장치 | |
TWI467579B (zh) | 電子裝置及其記憶體控制方法以及相關電腦可讀取儲存媒體 | |
US20060143319A1 (en) | Method of establishing communication between a usb device and a host | |
WO2015154541A1 (zh) | Usb固态盘固件存储装置 | |
CN112799887A (zh) | 一种芯片ft测试系统以及测试方法 | |
US20060187726A1 (en) | Memory bus checking procedure | |
US20160239224A1 (en) | Method and system for transferring data over a plurality of control lines | |
US8341334B2 (en) | Flash memory apparatus and method for operating the same and data storage system | |
CN113704836A (zh) | 基于龙芯处理器的智能销毁方法 | |
TWI847690B (zh) | 記憶體控制器、橋接裝置及指令與資料轉移方法 | |
US20230305716A1 (en) | Data storage system and parameter margin evaluation method |