TW201945928A - 控制儲存裝置之方法 - Google Patents

控制儲存裝置之方法 Download PDF

Info

Publication number
TW201945928A
TW201945928A TW107114403A TW107114403A TW201945928A TW 201945928 A TW201945928 A TW 201945928A TW 107114403 A TW107114403 A TW 107114403A TW 107114403 A TW107114403 A TW 107114403A TW 201945928 A TW201945928 A TW 201945928A
Authority
TW
Taiwan
Prior art keywords
instruction
communication protocol
storage device
item
command
Prior art date
Application number
TW107114403A
Other languages
English (en)
Other versions
TWI659359B (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 慧榮科技股份有限公司
Priority to TW107114403A priority Critical patent/TWI659359B/zh
Priority to CN201810615667.0A priority patent/CN110413538A/zh
Priority to US16/027,354 priority patent/US10976958B2/en
Application granted granted Critical
Publication of TWI659359B publication Critical patent/TWI659359B/zh
Publication of TW201945928A publication Critical patent/TW201945928A/zh
Priority to US17/192,849 priority patent/US11301175B2/en

Links

Classifications

    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0036Small computer system interface [SCSI]
    • 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/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Communication Control (AREA)

Abstract

本發明提供一種控制一儲存裝置之方法。該方法可包含:傳送符合一第一通信協定的一初始指令以及包括符合一第二通信協定的一命令參數的一資料負載至該儲存裝置;傳送符合該第一通信協定的一設定指令至該儲存裝置;傳送符合該第一通信協定的一確認指令至該儲存裝置;以及依據對應至該確認指令的一資料負載以確認該初始指令、該設定指令以及該確認指令是否成功地執行。

Description

控制儲存裝置之方法
本發明係有關於快閃記憶體(Flash memory)之存取(access),尤指一種用來對符合一第一通信協定之一儲存裝置進行對應於一第二通信協定的通信之方法與裝置。
近年來由於記憶體的技術不斷地發展,各種可攜式或非可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD或UFS標準之記憶卡;又例如:固態硬碟;又例如:符合UFS或EMMC規格之嵌入式(embedded)儲存裝置)被廣泛地實施於諸多應用中。因此,這些記憶裝置中之記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(single level cell, SLC)與多階細胞(multiple level cell, MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶細胞(memory cell)的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶單元的電晶體的儲存能力則被充分利用,係採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄至少兩組位元資訊(諸如00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之至少兩倍,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保記憶裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,有了這些管理機制的記憶裝置還是有不足之處。舉例來說,雖然記憶裝置的內部架構可具備的極佳的通信能力,但某些主裝置(host device)採用舊型介面,其可能變成瓶頸。因此,需要一種新穎的方法及相關架構,以在沒有副作用或較不可能帶來副作用之狀況下提昇整體效能。
本發明之一目的在於提供一種控制一儲存裝置之方法,以解決上述問題。
本發明之另一目的在於提供一種控制一儲存裝置之方法,以在沒有副作用或較不可能帶來副作用之狀況下達到儲存裝置之最佳化(optimal)效能。
本發明之至少一實施例提供一種控制一儲存裝置之方法,該方法包含有:傳送符合一第一通信協定的一初始指令以及包括符合一第二通信協定的一命令參數的一資料負載至該儲存裝置;傳送符合該第一通信協定的一設定指令至該儲存裝置;傳送符合該第一通信協定的一確認指令至該儲存裝置;以及依據對應至該確認指令的一資料負載以確認該初始指令、該設定指令以及該確認指令是否成功地執行。
本發明之至少一實施例提供一種控制一儲存裝置之方法,該方法包含有:傳送符合一第一通信協定的一初始指令以及包括符合一第二通信協定的一命令參數的一資料負載至該儲存裝置;以及傳送符合該第一通信協定的一設定指令至該儲存裝置。
本發明的好處之一是,本發明的方法與相關裝置能進行妥善的控制,以達到儲存裝置之最佳化效能。例如,該第一通信協定可包含小型電腦系統介面通信協定(Small Computer System Interface protocol,可簡稱為「SCSI協定」),且該第二通信協定可包含快捷非揮發性記憶體快捷通信協定(non-volatile memory (NVM) Express protocol,可簡稱為「NVMe協定」)。依據相關技術,目前在SCSI協定中無法看到任何關於NVMe指令之定義。本發明的方法與相關裝置能透過現有SCSI協定中的標準指令,諸如寫入緩衝指令(write buffer command)與讀取緩衝指令(read buffer command),進行新穎的工作流程,尤其在SCSI協定實現NVMe協定的指令傳送與資訊接收。
第1圖為依據本發明一實施例之一種電子裝置10的示意圖,其中電子裝置10包含一主裝置(Host Device)50與一儲存裝置100。主裝置50可包含:至少一處理器(例如一或多個處理器),用來控制主裝置50之操作;以及一電源供應電路,耦接至上述至少一處理器,用來提供電源予上述至少一處理器與儲存裝置100、且輸出一或多個驅動電壓至儲存裝置100,其中儲存裝置100可用來提供儲存空間給主裝置50,且可從主裝置50取得該一或多個驅動電壓,作為儲存裝置100之電源。主裝置50的例子可包含(但不限於):多功能行動電話(Multifunctional Mobile Phone)、平板電腦(Tablet)、可穿戴裝置(Wearable Device)以及個人電腦(Personal Computer)諸如桌上型電腦與膝上型電腦。儲存裝置100的例子可包含(但不限於):可攜式記憶裝置(諸如符合SD/MMC、CF、MS、XD或UFS標準之記憶卡)以及固態硬碟(Solid State Drive,SSD)。依據本實施例,儲存裝置100可包含記憶體控制器110,且可另包含用來儲存資訊之一非揮發性記憶體(Non-Volatile Memory, NV Memory),諸如快閃記憶體(Flash memory,可簡稱為「Flash記憶體)120,其中記憶體控制器110係用來控制儲存裝置100之操作,以容許主裝置50透過記憶體控制器110存取(Access)該非揮發性記憶體諸如Flash記憶體120。該非揮發性記憶體可包含至少一非揮發性記憶體元件(NV memory element)(例如一或多個非揮發性記憶體元件)。例如:Flash記憶體120可包含複數個快閃記憶體晶片(Flash Memory Chip,可簡稱為Flash晶片)或複數個快閃記憶體裸晶(Flash Memory Die,可簡稱為Flash裸晶),但本發明不限於此。
如第1圖所示,記憶體控制器110可包含橋接控制器(Bridge Controller)110B、快捷非揮發性記憶體快捷控制器(NVMe Controller,可簡稱為「NVMe控制器」)110E以及快閃控制器(Flash Controller,可簡稱為「Flash控制器」)110F。橋接控制器110B用以執行二個通信協定間的指令的轉換,例如,將主機50符合小型電腦系統介面(Small Computer System Interface,可簡稱為「SCSI」)通信協定的指令轉換成符合NVMe通信協定的指令,並將符合NVMe通信協定的指令傳送至NVMe控制器110E,NVMe控制器110E再依據符合NVMe通信協定的指令以產生一個或多個記憶體操作指令,之後,Flash控制器110F再依據這些記憶體操作指令對 Flash記憶體120進行操作,例如資料寫入、資料讀取、建立命名空間(Namespace)等操作。由於橋接控制器110B的存在,主機50可輸出符合SCSI通信協定的指令而控制記憶體控制器110(包括執行符合NVMe通信協定的指令的NVMe控制器110E)的操作,達到控制儲存裝置100的操作的目的,其中,Flash記憶體120較佳產生或更新邏輯對實體位址映射表(Logical-to-Physical address mapping table,L2P Table)來管理來自主機50的使用者資料的實體位址與邏輯位址之間的映射關係。依據某些實施例,記憶體控制器110可更包含處理電路(諸如微處理器)、儲存器(諸如唯讀記憶體(Read Only Memory,ROM))、控制邏輯電路、緩衝記憶體或傳輸介面電路,其可透過匯流排彼此耦接,其中橋接控制器110B與NVMe控制器110E可位於該傳輸介面電路,而Flash控制器110F可位於該控制邏輯電路。
依據某些實施例,儲存裝置100可具有通用序列匯流排(Universal Serial Bus,可簡稱為「USB」)介面及USB埠而連結至主裝置50,並可採用USB附加SCSI(USB Attached SCSI,可簡稱為「UAS」)標準而與主裝置50通信。另外,主裝置50可依據UAS標準將多個符合SCSI通信協定的指令傳送至儲存裝置100以控制或存取儲存裝置100。
第2圖為本發明控制儲存裝置100之方法的流程圖,執行本發明控制儲存裝置100之方法的主裝置50可對儲存裝置100進行多種操作,包括:資料輸出(Data Out)、資料輸入(Data In)、非資料(Non Data)操作等等,其中,資料輸出操作表示將來自主裝置50的資料輸出至儲存裝置100;資料輸入操作表示將來自儲存裝置100的資料輸出至主裝置50;非資料操作表示將來自儲存裝置100的非使用者資料,例如:控制參數,輸出至主裝置50。
步驟S202,主裝置50傳送符合第一通信協定的初始指令以及包括符合第二通信協定的命令參數的資料負載(Payload)至儲存裝置100。如第3圖所示,主裝置50傳送符合SCSI通信協定的操作碼(Operation Code,於圖中可簡稱為「Code」,以求簡明)為0x3B與緩衝辨識碼(Buffer Identifier,可簡稱為「緩衝ID」)為0x00之寫入緩衝(Write Buffer)指令至儲存裝置100的橋接控制器110B。由於初始指令符合SCSI通信協定的寫入緩衝指令,因此,橋接控制器110B可正確的識別,且由於緩衝ID為0x00,橋接控制器110B預期會再接收設定指令。另外,此寫入緩衝指令中的參數長度(Parameter Length)欄位的值大於0,例如:表示1KB(kilobyte;千位元組)的值,並於傳送初始指令之後,主裝置50傳送1KB的資料負載至儲存裝置100,其中,1KB的資料負載包括符合NVMe通信協定的資料寫入指令所需的命令參數,即下表中位元組00~63所儲存的參數:
另外,主裝置50可依據操作的不同,填入不同的值至命令參數中。由於每一命令參數的定義已描述於NVMe通信協定中,故不多作說明。
步驟S204,主裝置50傳送符合第一通信協定的設定指令至儲存裝置100,其中,初始指令與設定指令包括不同的緩衝辨識碼,或初始指令與設定指令的緩衝辨識碼為連續。如第3圖所示,主裝置50傳送符合SCSI通信協定的操作碼為0x3B、緩衝ID為0x01之寫入緩衝指令至儲存裝置100的橋接控制器110B。由於設定指令符合SCSI通信協定的寫入緩衝指令,因此,橋接控制器110B可正確的識別。或如第4圖所示,主裝置50傳送符合SCSI通信協定的操作碼為0x3C、緩衝ID為0x01之讀取緩衝(Read Buffer)指令至儲存裝置100的橋接控制器110B。由於設定指令符合SCSI通信協定的寫入緩衝指令,因此,橋接控制器110B可正確的識別。
橋接控制器110B依據初始指令及設定指令中的操作碼以及緩衝ID的值以及包括第二通信協定的命令參數的資料負載產生符合第二通信協定的操作指令。例如:如第3圖所示,初始指令以及設定指令的操作碼皆是0x3B,初始指令以及設定指令的緩衝ID依序是0x00以及0x01,則橋接控制器110B產生符合NVMe通信協定指令的資料寫入指令。資料寫入指令的大小為64B,資料寫入指令中的指令參數擷取自步驟S202的資料負載。或者,如第4圖所示,初始指令的操作碼是0x3B而設定指令的操作碼是0x3C,初始指令以及設定指令的緩衝ID依序是0x00以及0x01,則橋接控制器110B產生符合NVMe通信協定指令的資料讀取指令。資料讀取指令的大小為64B,資料讀取指令中的指令參數則擷取自步驟S202的資料負載。
另外,如果橋接控制器110B產生的操作指令是資料寫入指令,則步驟S204所傳送的寫入緩衝指令中的參數長度欄位的值較佳大於0,例如:表示64KB的值,並於傳送寫入緩衝指令之後,主裝置50接著傳送64KB的資料負載至儲存裝置100。假設使用者資料的長度為4KB,則64KB的資料負載包括16筆使用者資料。如果橋接控制器110B產生的操作指令是資料讀取指令,則步驟S204所傳送的讀取緩衝指令中的配置長度(Allocation Length)欄位的值較佳大於0,例如:表示64KB的值,這表示主裝置50要求橋接控制器110B傳回64KB的資料負載,此資料負載即為64KB的使用者資料。另外,主裝置50亦可要求橋接控制器110B傳回64KB的使用者資料及其元資料(metadata),其中,元資料包括:循環冗餘校驗(Cyclic Redundancy Check,可簡稱為「CRC」)碼、時間標記(Timestamp)、編程時溫度值等等。
以第3圖為例,橋接控制器110B產生符合NVMe通信協定指令的資料寫入指令時,將接收的資料負載中的使用者資料儲存至儲存裝置100中之記憶體(未顯示),諸如隨機存取記憶體(Random Access Memory,可簡稱為「RAM」),並將資料寫入指令的資料指標器的值指向記憶體的位址,之後,輸出資料寫入指令至NVMe控制器110E。由於NVMe控制器110E如何執行NVMe通信協定指令的資料寫入指令乃習知技藝,故不多作說明。
以第4圖為例,橋接控制器110B產生符合NVMe通信協定指令的資料讀取指令時,將資料寫入指令的資料指標器的值指向記憶體(諸如RAM)的位址,之後,輸出資料讀取指令至NVMe控制器110E,由NVMe控制器110E將來自Flash記憶體120的使用者資料儲存至資料指標器所指向的記憶體位址。當收到來自於NVMe控制器110E的使用者資料後,橋接控制器110B回傳64KB的資料負載至主裝置50。由於NVMe控制器110E如何執行NVMe通信協定指令的資料讀取指令乃習知技藝,故不多作說明。
步驟S206,主裝置50傳送符合第一通信協定的確認指令至儲存裝置100,其中,初始指令、設定指令以及確認指令包括不同的緩衝辨識碼,或者初始指令、設定指令以及確認指令的緩衝辨識碼為連續。如第3及4圖所示,主裝置50傳送符合SCSI通信協定的操作碼為0x3C、緩衝ID為0x02之讀取緩衝指令至儲存裝置100的橋接控制器110B。由於確認指令符合SCSI通信協定的讀取緩衝指令,因此,橋接控制器110B可正確的識別。NVMe控制器110E執行完符合NVMe通信協定指令的資料寫入指令或資料讀取指令後,寫入符合NVMe通信協定的完成元件(Completion Element)至記憶體。當收到來自主裝置50的確認指令後,橋接控制器110B輸出完成元件至主裝置50。另外,由於完成元件的大小為16B,因此,則讀取緩衝指令(確認指令)中的配置長度欄位的值較佳大於0,例如:表示1KB的值,則橋接控制器110B將完成元件包裝至1KB的資料負載,並輸出包含完成元件的1KB的資料負載至主裝置50,資料負載的內容如下表所示:
其中,完成元件的內容儲存於位元數08~39。另外,資料負載亦可僅儲存部分完成元件的內容,例如,僅儲存完成元件的狀態欄位(Status Field)的值;或者,僅儲存橋接控制器狀態的資料狀態,例如:“1”表示初始指令以及設定指令皆成功地執行,“0” 表示初始指令或設定指令執行失敗。
步驟S208,主裝置50依據對應至確認指令的資料負載以確認初始指令、設定指令以及確認指令是否成功地執行,如果是,則完成本發明控制儲存裝置100之方法的執行,如果否,則啟動錯誤管理程序,由於錯誤管理程序為習知技藝,故不多作說明。
NVMe通信協定將NVMe指令區分成管理(Administration)指令以及輸入/輸出(Input/Output)指令,管理指令例如是建立命名空間,輸入/輸出指令例如是上述的資料寫入指令以及資料讀取指令。因此,在步驟S202中,主裝置50可在資料負載中增加一個參數,例如,佇列編號(Queue ID,可簡稱為「QID」),並予以不同的值。例如,如果是管理指令,則主裝置50設定QID的值為0x00;如果是輸入/輸出指令,則主裝置50設定QID的值為0x01。如此一來,橋接控制器110B可以依據資料負載中的QID的值產生符合NVMe通信協定的對應的管理指令或輸入/輸出指令。
非資料操作可將來自儲存裝置100的控制參數輸出至主裝置50,如第5圖所示。非資料操作與資料輸入操作類似,主要是資料負載的標的不同。由於非使用者資料,例如:日誌頁(Log Page)或SMART資訊,的大小較使用者資料小,當執行本發明控制儲存裝置100方法時,步驟S204中設定指令的配置長度欄位的值較佳大於0,例如:表示1KB的值,如此一來,日誌頁或SMART資訊可以包裝於1KB的資料負載中。由於操作方式類似,故不多作說明。
在另一實施例中,儲存裝置100設置有通用型輸入輸出(General-Purpose Input/Output,可簡稱為「GPIO」),因此,如第6圖所示,執行本發明控制儲存裝置100方法的主裝置50亦可對儲存裝置100的GPIO端子進行多種操作,例如:開啟/關閉GPIO的電源端子、開啟/關閉/閃動GPIO的LED端子、設定GPIO的位址端子的值以及啟動關機程序。
步驟S602,主裝置50傳送符合第一通信協定的初始指令以及包括符合第二通信協定的命令參數的資料負載至儲存裝置100。如第7圖所示,主裝置50傳送符合SCSI通信協定的操作碼為0x3B與緩衝ID為0x00之寫入緩衝指令至儲存裝置100的橋接控制器110B。步驟S602與步驟S202相似,差別乃在於1KB資料負載中QID的值不同。當QID的值為0x02,表示主裝置50欲進行GPIO的電源端子的操作;當QID的值為0x03,表示主裝置50欲進行GPIO的LED端子的操作;當QID的值為0x04,表示主裝置50欲設定GPIO的位址端子的值;當QID的值為0x05,表示主裝置50欲啟動關機程序。由於初始指令符合SCSI通信協定的寫入緩衝指令,因此,橋接控制器110B可正確的識別,且由於緩衝ID為0x00,橋接控制器110B預期會再接收設定指令。
步驟S604,主裝置50傳送符合第一通信協定的設定指令至儲存裝置100,其中,初始指令與設定指令包括不同的緩衝辨識碼,或初始指令與設定指令的緩衝辨識碼為連續。如第7圖所示,主裝置50傳送符合SCSI通信協定的操作碼為0x3B、緩衝ID為0x01之寫入緩衝指令至儲存裝置100的橋接控制器110B。由於設定指令符合SCSI通信協定的寫入緩衝指令,因此,橋接控制器110B可正確的識別。或者,主裝置50傳送符合SCSI通信協定的操作碼為0x3C、緩衝ID為0x01之讀取緩衝指令至儲存裝置100的橋接控制器110B。由於設定指令符合SCSI通信協定的寫入緩衝指令,因此,橋接控制器110B可正確的識別。
橋接控制器110B依據初始指令及設定指令中的操作碼以及緩衝ID的值以及包括第二通信協定的命令參數的資料負載產生符合第二通信協定的操作指令。例如,初始指令以及設定指令的操作碼皆是0x3B,初始指令以及設定指令的緩衝ID依序是0x00以及0x01,則橋接控制器110B產生符合NVMe通信協定指令的資料寫入指令。資料寫入指令的大小為1KB,資料寫入指令中的指令參數擷取自步驟S602的資料負載。又例如,初始指令的操作碼是0x3B而設定指令的操作碼是0x3C,初始指令以及設定指令的緩衝ID依序是0x00以及0x01,則橋接控制器110B產生符合NVMe通信協定指令的資料讀取指令。資料讀取指令的大小為1KB,資料讀取指令中的指令參數則擷取自步驟S602的資料負載。
另外,如果橋接控制器110B產生的操作指令是資料寫入指令,則步驟S604所傳送的寫入緩衝指令中的參數長度欄位的值較佳大於0,例如:表示1KB的值,並於傳送寫入緩衝指令之後,主裝置50接著傳送1KB的資料負載至儲存裝置100,之後,橋接控制器110B將1KB的資料負載儲存至記憶體中。如果橋接控制器110B產生的操作指令是資料讀取指令,則步驟S204所傳送的讀取緩衝指令中的配置長度欄位的值較佳大於0,例如:表示1KB的值,這表示主裝置50要求橋接控制器110B傳回1KB的資料負載,1KB的資料負載所儲存的參數如下所示:
如果初始指令的操作碼是0x3B而設定指令的操作碼是0x3C,初始指令以及設定指令的緩衝ID依序是0x00以及0x01,且初始指令的資料負載的QID的值是0x05,如第8圖所示,則橋接控制器110B直接回傳虛擬資料(Dummy Data)至主裝置50並啟動關機程序。
簡單總結來說,本發明提供一種用來對符合第一通信協定之儲存裝置100進行對應於第二通信協定的通信之方法與相關裝置(例如電子裝置10,尤其,其內的主裝置50、儲存裝置100與記憶體控制器110)。該方法可包含:基於第一通信協定,依據對應第一通信協定之預定格式傳送一第一階段指令(例如初始指令,尤其,連同包括第二通信協定的命令參數的資料負載)至儲存裝置100,且於該預定格式中將QID設定為對應於一目標操作(例如該多種操作中之一者)之預定資訊;基於第一通信協定,依據該預定格式傳送一第二階段指令(例如設定指令)至儲存裝置100,以供一接收端(例如橋接控制器110B)組合該第一階段指令與該第二階段指令成為一目標指令(例如操作指令,諸如資料寫入指令、資料讀取指令…等),以控制內部電路(例如NVMe控制器110E)基於第二通信協定執行該目標指令來進行該目標操作;以及基於該第一通信協定,選擇性地從儲存裝置100取得完成元件,以確認該目標操作之執行結果,尤其,依據該預定格式傳送一第三階段指令(例如確認指令)至儲存裝置100,以從儲存裝置100取得該完成元件。由於相關細節已於上列實施例中說明,故不重複贅述。
本發明的方法與相關裝置能透過現有SCSI協定中的標準指令,諸如寫入緩衝指令與讀取緩衝指令,進行新穎的工作流程,以在SCSI協定實現NVMe協定的指令傳送與資訊接收。於是,本發明的架構能妥善地進行資訊存取、管理與控制。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10‧‧‧電子裝置
50‧‧‧主裝置
100‧‧‧儲存裝置
110‧‧‧記憶體控制器
110B‧‧‧橋接控制器
110E‧‧‧NVMe控制器
110F‧‧‧Flash控制器
120‧‧‧Flash記憶體
S202, S204, S206, S208, S602, S604‧‧‧步驟
第1圖為依據本發明一實施例之一種電子裝置的示意圖,其中該電子裝置包含一主裝置(host device)與一儲存裝置。 第2圖為依據本發明一實施例之一種控制該儲存裝置之方法的流程圖。 第3圖繪示第2圖所示方法的依據本發明一實施例之資料寫入控制方案。 第4圖繪示第2圖所示方法的依據本發明一實施例之資料讀取控制方案。 第5圖繪示第2圖所示方法的依據本發明一實施例之非資料操作控制方案。 第6圖為依據本發明另一實施例之一種控制該儲存裝置之方法的流程圖。 第7圖繪示第6圖所示方法的依據本發明一實施例之基本控制方案。 第8圖繪示第6圖所示方法的依據本發明一實施例之關機控制方案。

Claims (19)

  1. 一種控制一儲存裝置之方法,包含有: 傳送符合一第一通信協定的一初始指令以及包括符合一第二通信協定的一命令參數的一資料負載至該儲存裝置; 傳送符合該第一通信協定的一設定指令至該儲存裝置; 傳送符合該第一通信協定的一確認指令至該儲存裝置;以及 依據對應至該確認指令的一資料負載以確認該初始指令、該設定指令以及該確認指令是否成功地執行。
  2. 如申請專利範圍第1項所述之方法,其中該第一通信協定為一小型電腦系統介面通信協定。
  3. 如申請專利範圍第1項所述之方法,其中該第二通信協定為一快捷非揮發性記憶體快捷通信協定。
  4. 如申請專利範圍第1項所述之方法,其中該初始指令為一寫入緩衝指令。
  5. 如申請專利範圍第1項所述之方法,其中該設定指令為一寫入緩衝指令或一讀取緩衝指令。
  6. 如申請專利範圍第1項所述之方法,其中該確認指令為一讀取緩衝指令。
  7. 如申請專利範圍第1項所述之方法,其中該初始指令、該設定指令以及該確認指令使用不同的一緩衝辨識碼。
  8. 如申請專利範圍第1項所述之方法,其中該儲存裝置包括一橋接控制器。
  9. 如申請專利範圍第1項所述之方法,其中如果該初始指令、該設定指令以及該確認指令未成功地執行,則啟動一錯誤管理程序。
  10. 如申請專利範圍第1項所述之方法,其中對應至該確認指令的該資料負載包括符合該第二通信協定的一完成元件。
  11. 如申請專利範圍第1項所述之方法,其中包括符合該第二通信協定的該命令參數的該資料負載更包括一佇列編號。
  12. 一種控制一儲存裝置之方法,包含有: 傳送符合一第一通信協定的一初始指令以及包括符合一第二通信協定的一命令參數的一資料負載至該儲存裝置;以及 傳送符合該第一通信協定的一設定指令至該儲存裝置。
  13. 如申請專利範圍第12項所述之方法,其中該第一通信協定為一小型電腦系統介面通信協定。
  14. 如申請專利範圍第12項所述之方法,其中該第二通信協定為一快捷非揮發性記憶體快捷通信協定。
  15. 如申請專利範圍第12項所述之方法,其中該初始指令為一寫入緩衝指令。
  16. 如申請專利範圍第12項所述之方法,其中該設定指令為一讀取緩衝指令。
  17. 如申請專利範圍第12項所述之方法,其中該初始指令以及該設定指令使用不同的一緩衝辨識碼。
  18. 如申請專利範圍第12項所述之方法,其中該儲存裝置包括一橋接控制器。
  19. 如申請專利範圍第12項所述之方法,其中包括符合該第二通信協定的該命令參數的該資料負載更包括一佇列編號。
TW107114403A 2018-04-27 2018-04-27 控制儲存裝置之方法 TWI659359B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
TW107114403A TWI659359B (zh) 2018-04-27 2018-04-27 控制儲存裝置之方法
CN201810615667.0A CN110413538A (zh) 2018-04-27 2018-06-14 控制存储装置的方法
US16/027,354 US10976958B2 (en) 2018-04-27 2018-07-04 Method for controlling storage device
US17/192,849 US11301175B2 (en) 2018-04-27 2021-03-04 Method for controlling storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107114403A TWI659359B (zh) 2018-04-27 2018-04-27 控制儲存裝置之方法

Publications (2)

Publication Number Publication Date
TWI659359B TWI659359B (zh) 2019-05-11
TW201945928A true TW201945928A (zh) 2019-12-01

Family

ID=67348022

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107114403A TWI659359B (zh) 2018-04-27 2018-04-27 控制儲存裝置之方法

Country Status (3)

Country Link
US (2) US10976958B2 (zh)
CN (1) CN110413538A (zh)
TW (1) TWI659359B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI748550B (zh) * 2020-07-08 2021-12-01 慧榮科技股份有限公司 組態可靠命令的方法及裝置以及電腦程式產品
US11561732B2 (en) 2020-07-08 2023-01-24 Silicon Motion, Inc. Method and apparatus and computer program product for configuring reliable command

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11120884B2 (en) 2015-09-30 2021-09-14 Sunrise Memory Corporation Implementing logic function and generating analog signals using NOR memory strings
US11061606B2 (en) * 2018-06-29 2021-07-13 Micron Technology, Inc. NAND temperature-aware operations
TWI713195B (zh) 2018-09-24 2020-12-11 美商森恩萊斯記憶體公司 三維nor記憶電路製程中之晶圓接合及其形成之積體電路
WO2020160169A1 (en) * 2019-01-30 2020-08-06 Sunrise Memory Corporation Device with embedded high-bandwidth, high-capacity memory using wafer bonding
CN112115067A (zh) 2019-06-21 2020-12-22 慧荣科技股份有限公司 闪存物理资源集合管理装置及方法及计算机可读取存储介质
US11194738B2 (en) * 2019-07-29 2021-12-07 International Business Machines Corporation Implementing management commands utilizing an in-band interface
WO2021127218A1 (en) 2019-12-19 2021-06-24 Sunrise Memory Corporation Process for preparing a channel region of a thin-film transistor
CN111190844A (zh) * 2019-12-31 2020-05-22 杭州华澜微电子股份有限公司 一种协议转化方法及电子设备
CN115413367A (zh) 2020-02-07 2022-11-29 日升存储公司 具有低有效延迟的高容量存储器电路
US11507301B2 (en) 2020-02-24 2022-11-22 Sunrise Memory Corporation Memory module implementing memory centric architecture
KR20220070613A (ko) 2020-11-23 2022-05-31 삼성전자주식회사 호스트 장치, 메모리 장치의 구동 방법 및 메모리 시스템
US11810640B2 (en) 2021-02-10 2023-11-07 Sunrise Memory Corporation Memory interface with configurable high-speed serial data lanes for high bandwidth memory
CN113392046A (zh) * 2021-06-10 2021-09-14 杭州华澜微电子股份有限公司 一种数据传输方法、装置及电子设备

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867648A (en) * 1996-10-09 1999-02-02 General Signal Corporation High speed heterogeneous coupling of computer systems using channel-to-channel protocol
US6256687B1 (en) * 1998-08-04 2001-07-03 Intel Corporation Managing data flow between a serial bus device and a parallel port
US6341315B1 (en) * 1999-02-26 2002-01-22 Crossroads Systems, Inc. Streaming method and system for fiber channel network devices
JP3387041B2 (ja) * 1999-09-30 2003-03-17 富士通株式会社 プロトコル変換装置、通信装置、通信プログラム記憶媒体、および通信システム
DE10000498B4 (de) * 2000-01-08 2007-06-21 Robert Bosch Gmbh Verfahren zum Aufbau einer Telekommunikationsverbindung
FR2806505A1 (fr) * 2000-03-15 2001-09-21 Schlumberger Systems & Service Procede de communication entre une carte a puce et une station hote
US7412553B2 (en) * 2002-01-10 2008-08-12 O2Micro International Limited Enhanced protocol conversion system capable of providing offloaded protocol instruction processing
US8509391B2 (en) * 2002-06-20 2013-08-13 Numerex Corp. Wireless VoIP network for security system monitoring
US7334077B2 (en) * 2003-10-17 2008-02-19 Renesas Technology America, Inc. Method and apparatus for smart memory pass-through communication
US20050097263A1 (en) * 2003-10-31 2005-05-05 Henry Wurzburg Flash-memory card-reader to IDE bridge
US7184525B2 (en) * 2003-12-29 2007-02-27 Bellsouth Intellectual Property Corporation Accessing messages stored in one communication system by another communication system
KR100984810B1 (ko) * 2004-02-02 2010-10-01 삼성전자주식회사 UPnP 디바이스가 PLC 디바이스를 컨트롤할 수있도록 브릿징하는 장치 및 방법
US7848332B2 (en) * 2004-11-15 2010-12-07 Cisco Technology, Inc. Method and apparatus for classifying a network protocol and aligning a network protocol header relative to cache line boundary
US7225289B2 (en) * 2005-03-14 2007-05-29 Phison Electronics Corporation Virtual IDE storage with PCI express interface
US20060218324A1 (en) * 2005-03-25 2006-09-28 Matsushita Electrical Industrial Co., Ltd Systems and methods for flexible data transfers in SDIO and/or MMC
US7532890B2 (en) * 2005-04-01 2009-05-12 Rockliffe Systems Content-based notification and user-transparent pull operation for simulated push transmission of wireless email
US8275793B2 (en) * 2005-04-29 2012-09-25 Microsoft Corporation Transaction transforms
US20060285559A1 (en) * 2005-06-16 2006-12-21 Chih-Hung Cheng Method for controlling host from device coupled thereto using universal serial bus and system thereof
US7805560B2 (en) * 2005-08-31 2010-09-28 Ati Technologies Inc. Methods and apparatus for translating messages in a computing system
US8078788B2 (en) * 2005-12-08 2011-12-13 Sandisk Technologies Inc. Media card command pass through methods
US20070136501A1 (en) * 2005-12-08 2007-06-14 Chang Robert C Media card command pass through methods
WO2007077402A2 (fr) * 2005-12-30 2007-07-12 France Telecom Procede et dispositif de gestion des communications personnelles d'au moins un utilisateur
US7433990B2 (en) * 2006-01-24 2008-10-07 Standard Microsystems Corporation Transferring system information via universal serial bus (USB)
KR100975740B1 (ko) * 2007-03-23 2010-08-12 삼성전자주식회사 이종 무선 통신 네트워크에서 핸드오버 방법 및 장치
US20090028329A1 (en) * 2007-07-23 2009-01-29 Savi Technology, Inc. Method and Apparatus for Providing Security in a Radio Frequency Identification System
US7836195B2 (en) * 2008-02-27 2010-11-16 Intel Corporation Preserving packet order when migrating network flows between cores
CN104077174B (zh) * 2009-03-27 2018-05-01 希捷科技有限公司 用于提供存储系统逻辑块地址的数据固化的方法及系统
US9063561B2 (en) * 2009-05-06 2015-06-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Direct memory access for loopback transfers in a media controller architecture
US20160239794A9 (en) * 2009-09-21 2016-08-18 Checkpoint Systems, Inc. Retail product tracking system, method, and apparatus
US8489803B2 (en) * 2009-12-14 2013-07-16 Smsc Holdings S.A.R.L. Efficient use of flash memory in flash drives
US9037778B2 (en) * 2010-08-20 2015-05-19 Samsung Electronics Co., Ltd. Method and apparatus to interface semiconductor storage device and host to provide performance throttling of semiconductor storage device
US8595406B2 (en) * 2010-10-21 2013-11-26 Marvell World Trade Ltd. USB-to-SATA high-speed bridge
US9021178B2 (en) * 2011-05-02 2015-04-28 Western Digital Technologies, Inc. High performance path for command processing
US8423722B1 (en) * 2011-08-26 2013-04-16 Western Digital Technologies, Inc. System and method for high performance command processing in solid state drives
KR101953122B1 (ko) * 2012-01-06 2019-02-28 삼성전자주식회사 프로토콜 변환 장치 및 방법
TWI482525B (zh) * 2012-03-06 2015-04-21 Ind Tech Res Inst 分散式應用平台系統及其傳輸訊息的服務品質控制方法
US8972826B2 (en) * 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
US9251108B2 (en) * 2012-11-05 2016-02-02 International Business Machines Corporation Managing access to shared buffer resources
US10587663B2 (en) * 2013-05-31 2020-03-10 Verily Life Sciences Llc Video stream preview
US10164909B2 (en) * 2014-12-23 2018-12-25 Dell Products, Lp System and method for providing dynamic personalities for network ports
US9807202B2 (en) * 2015-03-10 2017-10-31 Schlage Lock Company Llc Communication protocols for electronic locks
US10146608B2 (en) * 2015-04-06 2018-12-04 Rambus Inc. Memory module register access
US10015093B2 (en) * 2015-05-05 2018-07-03 Dell Products L.P. Communication transmission system for communication protocol failures
TWI566253B (zh) * 2015-09-02 2017-01-11 慧榮科技股份有限公司 用來管理一記憶裝置之方法以及記憶裝置與控制器
US20170075827A1 (en) * 2015-09-11 2017-03-16 Avago Technologies General Ip (Singapore) Pte. Ltd. I/o command id collision avoidance in a memory device
US9927984B2 (en) * 2015-10-14 2018-03-27 Samsung Electronics Co., Ltd. Electronic system with interface control mechanism and method of operation thereof
US10275385B2 (en) * 2016-02-25 2019-04-30 SK Hynix Inc. Integrated circuit system
CN205986931U (zh) * 2016-04-01 2017-02-22 浪潮集团有限公司 一种基于NVMe SSD的交换机
US10467170B2 (en) * 2016-04-18 2019-11-05 Hewlett Packard Enterprise Development Lp Storage array including a bridge module interconnect to provide bridge connections to different protocol bridge protocol modules
CN107066394A (zh) * 2017-03-31 2017-08-18 深圳市金印达科技有限公司 一种成像设备的数据读写方法和系统
CN107092835B (zh) * 2017-04-21 2020-02-21 杭州华澜微电子股份有限公司 一种虚拟存储盘的计算机数据加密装置及方法
US10644961B2 (en) * 2018-01-12 2020-05-05 Intel Corporation Self-adjusting data processing system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI748550B (zh) * 2020-07-08 2021-12-01 慧榮科技股份有限公司 組態可靠命令的方法及裝置以及電腦程式產品
US11561732B2 (en) 2020-07-08 2023-01-24 Silicon Motion, Inc. Method and apparatus and computer program product for configuring reliable command

Also Published As

Publication number Publication date
US11301175B2 (en) 2022-04-12
US20210191662A1 (en) 2021-06-24
US20190332321A1 (en) 2019-10-31
US10976958B2 (en) 2021-04-13
CN110413538A (zh) 2019-11-05
TWI659359B (zh) 2019-05-11

Similar Documents

Publication Publication Date Title
TWI659359B (zh) 控制儲存裝置之方法
CN107844431B (zh) 映射表更新方法、存储器控制电路单元与存储器存储装置
TW201716980A (zh) 資料儲存設備及其操作方法
TW201732597A (zh) 資料儲存裝置和其操作方法
CN106339178B (zh) 存储器控制单元及包括该存储器控制单元的数据存储设备
US20220091760A1 (en) Storage device, host device, electronic device including storage device and host device, and method of operating the same
TWI534814B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI658402B (zh) 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置
TW202205084A (zh) 資料讀取方法、記憶體儲存裝置及記憶體控制電路單元
TWI820951B (zh) 藉助於預定命令來進行記憶體裝置的資料存取控制的方法及設備
TWI806262B (zh) 橋接裝置與資料儲存系統
US11893247B2 (en) Data storage device and method of operating the same
US11182329B2 (en) Data processing system and operating method thereof
KR20170142483A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN109308930B (zh) 数据写入方法、存储器控制电路单元及存储器存储装置
TWI569201B (zh) 控制方法、記憶體控制器與資料傳輸系統
US11494263B2 (en) Controller and method of operating the same
TWI840148B (zh) 記憶體的性能匹配方法、記憶體儲存裝置及記憶體控制電路單元
TWI810719B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TWI817645B (zh) 藉助於相容性管理來進行在預定通訊架構中的記憶體裝置的通訊規範版本控制的方法、記憶體裝置、電子裝置、記憶體裝置的記憶體控制器、以及計算機可讀媒體
US12039175B2 (en) Apparatus including data storage device and method of operating the same
US20230134534A1 (en) Memory controller and storage device
US11663065B2 (en) SCSI command set for error history logging in a memory system and operating method thereof
TWI820952B (zh) 藉助於預定命令來進行記憶體裝置的資料存取控制的方法及設備
TWI749516B (zh) 用來進行儲存空間管理之方法以及資料儲存裝置及其控制器