TWI802113B - 用以借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器 - Google Patents

用以借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器 Download PDF

Info

Publication number
TWI802113B
TWI802113B TW110144310A TW110144310A TWI802113B TW I802113 B TWI802113 B TW I802113B TW 110144310 A TW110144310 A TW 110144310A TW 110144310 A TW110144310 A TW 110144310A TW I802113 B TWI802113 B TW I802113B
Authority
TW
Taiwan
Prior art keywords
memory
host device
controller
commands
memory device
Prior art date
Application number
TW110144310A
Other languages
English (en)
Other versions
TW202230114A (zh
Inventor
陳智勇
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Publication of TW202230114A publication Critical patent/TW202230114A/zh
Application granted granted Critical
Publication of TWI802113B publication Critical patent/TWI802113B/zh

Links

Images

Classifications

    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1621Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • 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/0658Controller construction arrangements
    • 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/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1004Compatibility, e.g. with legacy hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Read Only Memory (AREA)

Abstract

本發明提供了用以借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法。該方法可包含有:利用記憶體控制器之通用非同步收發傳輸器來通過記憶體裝置以及主機裝置之間的通用非同步收發傳輸器連接接收對應於一組操作命令的一組中間命令,其中在通過通用非同步收發傳輸器連接傳送該組中間命令至記憶體控制器之前,主機裝置將該組操作命令轉換為該組中間命令;根據命令映射表來將該組中間命令轉換為該組操作命令;以及利用該組操作命令來為主機裝置存取非揮發性記憶體,以及通過通用非同步收發傳輸器連接來將一回應傳送至主機裝置。

Description

用以借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器
本發明係有關於記憶體控制,尤指一種用以借助一通用非同步收發傳輸器(universal asynchronous receiver-transmitter, UART)連接來進行一記憶體裝置之存取管理的方法以及裝置。
記憶體裝置可包含有用以儲存資料的快閃記憶體,並且存取快閃記憶體的管理相當複雜,於記憶體裝置的大量生產階段(mass production phase)之前的初步階段(preliminary phase),諸如設計階段(例如多個試行階段(pilot run phase)中的一個試行階段),的期間,可能需要在記憶體裝置上進行一些存取測試操作以開發一個或多個快閃記憶體存取演算法,然而,一些問題可能會發生。以一通用快閃儲存(universal flash storage, UFS)裝置來作為記憶體裝置的一範例,在通用快閃儲存裝置的初步階段中,通用快閃儲存裝置的一些通訊特性可能被設計得不完整(例如通用快閃儲存裝置在此階段中不可支援通用快閃儲存通訊),其可能使得關於存取測試操作的測試時程被延誤,然而,在先前技術中找不到適合的解決方法,因此,需要一種創新的方法以及相關架構來在不引入副作用的情況下或藉由不太可能引入副作用的方式解決該些問題。
因此,本發明的目的之一在於提供一種借助一通用非同步收發傳輸器連接來進行一記憶體裝置之存取管理的方法以及裝置,以解決上述問題。
本發明之至少一實施例提供了一種借助一通用非同步收發傳輸器連接來進行一記憶體裝置之存取管理的方法,其中該方法可被應用於記憶體裝置之一記憶體控制器,記憶體裝置可包含有記憶體控制器以及一非揮發性(non-volatile, NV)記憶體,以及非揮發性記憶體可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件)。該方法可包含有:利用記憶體控制器之一通用非同步收發傳輸器來通過記憶體裝置以及一主機裝置之間的通用非同步收發傳輸器連接接收對應於一組操作命令的一組中間命令,其中在通過通用非同步收發傳輸器連接傳送該組中間命令至記憶體控制器之前,主機裝置將該組操作命令轉換為該組中間命令;根據一命令映射表來將該組中間命令轉換為該組操作命令,其中命令映射表係位於記憶體裝置之中;以及利用該組操作命令來為主機裝置存取非揮發性記憶體,以及通過通用非同步收發傳輸器連接來將一回應傳送至主機裝置。
除了上述方法,本發明另提供了一種記憶體裝置,並且記憶體裝置包含有一非揮發性記憶體以及一控制器。非揮發性記憶體用以儲存資訊,其中非揮發性記憶體可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件)。控制器耦接於非揮發性記憶體,並且控制器用以控制記憶體裝置的操作,此外,控制器包含有一處理電路其用以根據來自一主機裝置的複數個主機命令來控制控制器,以允許主機裝置通過控制器來存取非揮發性記憶體。控制器另包含有一傳輸介面電路,以及傳輸介面電路用以與主機裝置進行通訊,尤其,傳輸介面電路包含有一通用非同步收發傳輸器,其中通用非同步收發傳輸器具備一組終端以各自地耦接於主機裝置之一相對應的通用非同步收發傳輸器之一組終端,以形成記憶體裝置與主機裝置之間的一通用非同步收發傳輸器連接,舉例來說,控制器利用其中的通用非同步收發傳輸器來通過通用非同步收發傳輸器連接接收對應於一組操作命令的一中間命令,其中在通過通用非同步收發傳輸器連接傳送該組中間命令至控制器之前,主機裝置將該組操作命令轉換為該組中間命令;控制器根據一命令映射表來將該組中間命令轉換為該組操作命令,其中命令映射表係位於記憶體裝置之中;以及控制器利用該組操作命令來為主機裝置存取非揮發性記憶體,以及通過通用非同步收發傳輸器連接來將一回應傳送至主機裝置。
根據某些實施例,另提供了一種相關電子裝置。電子裝置可包含有上述記憶體裝置,並且可另包含有:主機裝置,耦接於記憶體裝置。主機裝置可包含有:至少一處理器,用以控制主機裝置的操作;以及一電源供應電路,耦接於至少一處理器,並且用以提供電源給至少一處理器以及記憶體裝置,此外,記憶體裝置可提供儲存空間給主機裝置。
除了上述方法外,本發明另提供了一記憶體裝置的一控制器,其中記憶體裝置包含有控制器以及一非揮發性記憶體。非揮發性記憶體可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件),此外,控制器包含有一處理電路其用以根據來自一主機裝置的複數個主機命令來控制控制器,以允許主機裝置通過控制器存取非揮發性記憶體。控制器另包含有一傳輸介面電路,並且傳輸介面電路用以與主機裝置進行通訊,尤其,傳輸介面電路包含有一通用非同步收發傳輸器,其中通用非同步收發傳輸器具備一組終端以各自地耦接於主機裝置之一相對應的通用非同步收發傳輸器之一組終端,以形成記憶體裝置與主機裝置之間的一通用非同步收發傳輸器連接,舉例來說,控制器利用其中的通用非同步收發傳輸器來通過通用非同步收發傳輸器連接接收對應於一組操作命令的一中間命令,其中在通過通用非同步收發傳輸器連接傳送該組中間命令至控制器之前,主機裝置將該組操作命令轉換為該組中間命令;控制器根據一命令映射表來將該組中間命令轉換為該組操作命令,其中命令映射表係位於記憶體裝置之中;以及控制器利用該組操作命令來為主機裝置存取非揮發性記憶體,以及通過通用非同步收發傳輸器連接來將一回應傳送至主機裝置。
根據某些實施例,記憶體裝置之記憶體控制器可根據該方法控制記憶體裝置的操作,並且記憶體裝置可被安裝於電子裝置之中,該裝置包含有電子裝置之至少一部分(例如一部分或全部),舉例來說,該裝置可包含有記憶體裝置,又例如,該裝置可包含有電子裝置的全部。
本發明之方法以及裝置可保證在記憶體裝置之不同階段的任一個階段中,無論該任一個階段是否代表大量生產階段或大量生產階段之前的初步階段,諸如設計階段(例如多個試行階段的一個試行階段),記憶體裝置可以如主機裝置所要求的來操作,此外,在該任一個階段中,主機裝置以及記憶體裝置可以根據本發明所提供的一新協定來通過通用非同步收發傳輸器連接互相通訊,舉例來說,在初步階段中,無論針對主機裝置的記憶體裝置之通訊特性是否完整,記憶體裝置可以如主機裝置所要求的來以各種方式為主機裝置存取非揮發性記憶體。
第1圖為依據本發明一實施例之電子裝置10的示意圖,其中電子裝置10可包含有主機裝置50以及記憶體裝置100。主機裝置50可包含有至少一處理器(例如一個或多個處理器)其可被統稱為處理器52、電源供應電路54、至少一隨機存取記憶體(random access memory, RAM),諸如一個或多個隨機存取記憶體(例如動態隨機存取記憶體(dynamic RAM, DRAM)或靜態隨機存取記憶體(static RAM, SRAM)),其可被統稱為隨機存取記憶體56(為簡潔起見,標記為“RAM”)以及傳輸介面電路58,其中處理器52以及隨機存取記憶體56可通過匯流排來彼此耦接,並且可耦接於電源供應電路54以取得電源。處理器52可用以控制主機裝置50的操作。電源供應電路54可用以電源給處理器52、隨機存取記憶體56、傳輸介面電路58以及記憶體裝置100,並且輸出一個或多個驅動電壓至記憶體裝置100,其中記憶體裝置100可提供儲存空間給主機裝置50,並且可自主機裝置50取得一個或多個驅動電壓以作為記憶體裝置100的電源。主機裝置50的範例可包含有但不限於:多功能手機、平板電腦、可穿戴裝置以及個人電腦,例如桌上型電腦以及筆記型電腦,記憶體裝置100的範例可包含有但不限於:可攜式記憶體裝置(例如符合SD / MMC、CF、MS、XD或UFS規範的記憶卡、固態硬碟(solid state drive, SSD)以及不同類型的嵌入式記憶體裝置(例如符合通用快閃儲存規範或嵌入式多媒體卡(embedded multi media card, eMMC)規範的嵌入式記憶體裝置)。根據本實施例,記憶體裝置100可包含有一控制器,諸如記憶體控制器110,並且可另包含有非揮發性(non-volatile, NV)記憶體120(為簡潔起見,在第1圖中標記為“NV記憶體”),其中該控制器用以存取非揮發性記憶體120,以及非揮發性記憶體120用以儲存資訊。非揮發性記憶體120可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件),諸如複數個非揮發性記憶體元件122-1、122-2、…、以及122-N S(為簡潔起見,在第1圖中分別標記為“NV記憶體元件”),其中“N S”可以代表大於1的正整數,舉例來說,非揮發性記憶體120可以是快閃記憶體,並且複數個非揮發性記憶體元件122-1、122-2、…、以及122-N S可以分別是複數個快閃記憶體晶片或複數個快閃記憶體裸晶(die),但是本發明不限於此。
如第1圖所示,記憶體控制器110可包含有一處理電路(例如微處理器112)、一儲存單元(例如唯讀記憶體(read-only memory, ROM)112M;為簡潔起見,標記為“ROM”)、控制邏輯電路114、隨機存取記憶體116(例如,其可以藉由靜態隨機存取記憶體來實現;為簡潔起見,標記為“RAM”)以及傳輸介面電路118,其中上述元件之至少一部分(例如一部分或全部)可通過匯流排彼此耦接。隨機存取記憶體116可用以提供內部儲存空間(例如,可暫時地儲存資訊)給記憶體控制器110,但是本發明不限於此,此外,本實施例之唯讀記憶體112M用以儲存程式碼112C,並且微處理器112用以執行程式碼112C以控制非揮發性記憶體120的存取,要注意的是,程式碼112C也可被儲存於隨機存取記憶體116或任一類型的記憶體,此外,控制邏輯電路114可用以控制非揮發性記憶體120。控制邏輯電路114可包含有一錯誤校正碼(error correction code, ECC)電路(未顯示於第1圖),其可進行錯誤校正碼編碼以及錯誤校正碼解碼以保護資料,及/或進行錯誤校正。傳輸介面電路118可符合一特定通訊規範(例如序列先進技術附件(Serial Advanced Technology Attachment, SATA)規範、通用序列匯流排(Universal Serial Bus, USB)規範、快捷外部連接標準(Peripheral Component Interconnect Express, PCIE)規範、嵌入式多媒體卡規範或通用快閃儲存規範),並且可以根據該特定通訊規範來進行通訊,舉例來說,傳輸介面電路118可根據該特定通訊規範來為記憶體裝置100與傳輸介面電路58進行通訊,以及傳輸介面電路58可根據該特定通訊規範來為主機裝置50與傳輸介面電路118進行通訊。
在本實施例中,主機裝置50可將複數個主機命令以及相對應的邏輯位址傳送至記憶體控制器110,以間接地存取在記憶體裝置100之中的非揮發性記憶體120。記憶體裝置100接收複數個主機命令以及邏輯位址,分別將複數個主機命令轉換為記憶體操作命令(為簡潔起見,其可作為操作命令),以及更進一步地控制具有操作命令的非揮發性記憶體120以對非揮發性記憶體120之中特定實體位址之記憶體單元或資料頁面(data page)進行讀取或寫入/編程,其中實體位址對應於邏輯位址。舉例來說,記憶體控制器110可產生或更新至少一邏輯至實體(logical-to-physical, H2F)位址映射表,以管理實體位址以及邏輯位址之間的關係。非揮發性記憶體120可儲存一全域邏輯至實體位址映射表,用以提供記憶體控制器110來控制記憶體裝置100,以存取非揮發性記憶體120中的資料。
為了更好地理解,全域邏輯至實體位址映射表可位於非揮發性記憶體元件122-1內的預定區域中,例如系統區域,但是本發明不限於此,舉例來說,全域邏輯至實體位址映射表可劃分為複數個區域邏輯至實體位址映射表,並且該複數個區域邏輯至實體位址映射表可以被儲存在非揮發性記憶體元件122-1、122-2、…、以及122-N中的一個或多個非揮發性記憶體元件,尤指可以分別儲存在非揮發性記憶體元件122-1、122-2、…、以及122-N中。當需要時,記憶體控制器110可將全域邏輯至實體位址映射表的至少一部分(例如一部分或全部)加載至隨機存取記憶體116或其它記憶體中,舉例來說,記憶體控制器110可將複數個區域邏輯至實體位址映射表的一區域邏輯至實體位址映射表加載至隨機存取記憶體116中以作為其中的暫時邏輯至實體位址映射表,以根據區域邏輯至實體位址映射表來存取非揮發性記憶體120中的資料,但是本發明不限於此。
此外,上述的至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件,諸如{122-1、122-2、…、122-N})可包含有複數個區塊(block),其中記憶體控制器110在非揮發性記憶體120上進行資料抹除操作的最小單元可以是一個區塊,以及記憶體控制器110在非揮發性記憶體120上執行資料寫入操作的最小單元可以是一個頁面,但是本發明不限於此。舉例來說,非揮發性記憶體元件122-1、122-2、…、以及122-N內的任一非揮發性記憶體元件122-n(其中“n”可以表示區間[1,N]中的任一整數)可包含有複數個區塊,並且複數個區塊中的一區塊可包含有並記錄特定數量的頁面,其中記憶體控制器110可根據區塊位址以及頁面位址來存取複數個區塊中的某個區塊內的某個頁面。又例如,非揮發性記憶體元件122-n可包含有複數個平面(plane),其中一平面可包含有一組區塊(例如上述的複數個區塊),並且記憶體控制器110可根據平面編號(plane number)在複數個平面內指定某個平面,以存取該平面的某個區塊內的某個頁面。隨著區塊總數的增加,非揮發性記憶體120的儲存空間可以變得更大,關於非揮發性記憶體120的製造,可以利用許多技術,例如:2D/平面反及閘(2D/planar NAND)快閃記憶體技術,其可將記憶體單元排列成單層;以及3D反及閘(3D NAND)快閃記憶體技術,其可以將記憶體單元排列成多層的垂直堆疊。根據一些實施例,非揮發性記憶體120可以實作為具有排列在單層中的記憶體單元的2D/平面反及閘快閃記憶體結構。根據一些實施例,非揮發性記憶體120可以實作為具有垂直堆疊的多層記憶體單元的3D反及閘快閃記憶體結構,在這種情況下,非揮發性記憶體120的儲存空間可以變得非常大。
根據本實施例,傳輸介面電路118可包含有通用非同步收發傳輸器118U(為簡潔起見,標記為“UART”),並且傳輸介面電路58可包含有通用非同步收發傳輸器58U,其中通用非同步收發傳輸器118U以及通用非同步收發傳輸器58U的任一者可包含有子電路(例如收發器、傳輸器等等)。當需要時,通用非同步收發傳輸器118U的一組終端(terminal){RX, TX, GND}可分別耦接於通用非同步收發傳輸器58U的一組終端{TX, RX, GND},以形成在記憶體裝置100(例如其中的記憶體控制器110)以及主機裝置50之間的一通用非同步收發傳輸器連接(UART connection),並且該通用非同步收發傳輸器連接可包含有同步收發傳輸器118U的該組終端{RX, TX, GND}以及通用非同步收發傳輸器58U的該組終端{TX, RX, GND}之間的連接。
根據第1圖所示之架構,主機裝置50(例如處理器52)以及記憶體裝置100(例如記憶體控制器110)可以根據本發明所提供的一新協定來通過通用非同步收發傳輸器連接彼此通訊,該協定可被視為一通用非同步收發傳輸器協定(UART protocol),並且主機裝置50(例如處理器52)以及記憶體裝置100(例如記憶體控制器110)通過通用非同步收發傳輸器連接所進行的相關通訊可被稱為通用非同步收發傳輸器通訊(UART communication)。根據該協定,單一通用非同步收發傳輸器命令(command, CMD)可包含有一命令碼以及複數個引數(argument),並且複數個引數之中的一個或多個引數可攜帶指示一個或多個操作命令(例如關於非揮發性記憶體120的上述一個或多個操作命令)的一個或多個操作命令代表(representative)。此外,主機裝置50(例如處理器52)可根據命令映射表56T來進行命令映射,以將一個或多個操作命令轉換為一個或多個操作命令代表,並且記憶體裝置100(例如記憶體控制器110)可根據另一個命令映射表(例如對應於命令映射反方向的反向命令映射表,諸如命令映射表116T或120T的任一者)來進行命令映射,以將一個或多個操作命令代表轉換為一個或多個操作命令。
舉例來說,處理器52可預先將一命令映射表儲存至主機裝置50內的某個儲存裝置(例如硬碟(Hard Disk Drive, HDD))中,並且將該命令映射表自該儲存裝置加載至隨機存取記憶體56,以作為命令映射表56T來供於通用非同步收發傳輸器通訊的期間命令映射的使用,此外,記憶體控制器110可預先將命令映射表120T儲存至非揮發性記憶體120(例如非揮發性記憶體元件122-1)中,並且將命令映射表120T自非揮發性記憶體120加載至隨機存取記憶體116,以作為命令映射表116T來供於通用非同步收發傳輸器通訊的期間命令映射的使用。當主機裝置50存取記憶體裝置100(例如將資料寫入至記憶體裝置100中或將資料自記憶體裝置100讀取出來)時,主機裝置50(例如處理器52)可以根據命令映射表56T來分別將一組操作命令(例如一個或多個操作命令)轉換為一組中間命令(例如一個或多個操作命令代表),並且通過通用非同步收發傳輸器連接來將該組中間命令傳送至記憶體裝置100(例如其中的記憶體控制器110),尤指通過通用非同步收發傳輸器連接來自記憶體裝置100(例如其中的記憶體控制器110)接收一回應(例如確認訊息(acknowledgement, ACK)或回傳的資料)。當記憶體裝置100自主機裝置50接收該組中間命令時,記憶體裝置100(例如記憶體控制器110)可以根據命令映射表116T來分別將該組中間命令(例如一個或多個操作命令代表)轉換為該組操作命令(例如一個或多個操作命令),並且利用該組操作命令來為主機裝置50存取非揮發性記憶體120,尤指通過通用非同步收發傳輸器連接來將該回應(例如確認訊息或回傳的資料)傳送至主機裝置50。
為了更好地理解,命令映射表120T可位於非揮發性記憶體元件122-1內的預定區域中,例如系統區域,但是本發明不限於此,舉例來說,命令映射表120T可被儲存至非揮發性記憶體元件122-1內的另一個預定區域中,例如另一個系統區域。又例如,命令映射表120T可被儲存至非揮發性記憶體元件122-1、122-2、…、以及122-N的任一者中。
第2圖為依據本發明一實施例之一種借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法的控制方案示意圖,其中該方法可被應用於第1圖所示之架構中,尤指主機裝置50(例如處理器52)以及記憶體裝置100(例如記憶體控制器110)。第2圖所示之架構的中間部分之中的主通用非同步收發傳輸器(host UART)以及裝置通用非同步收發傳輸器(device UART)可分別代表第1圖所示之通用非同步收發傳輸器58U以及通用非同步收發傳輸器118U,第2圖所示之架構的上方部分之中的主平台(host platform)可代表第1圖所示之處理器52、隨機存取記憶體56等等,以及第2圖所示之架構的下方部分之中的反及閘快閃記憶體可代表第1圖所示之非揮發性記憶體120。此外,運行在處理器52上的一個或多個程式碼可包含有一作業系統(operating system, OS)、複數個驅動程式、複數個應用程式等等,並且複數個應用程式可包含有一主應用(host application),諸如運行在主平台上的主應用。此外,運行在微處理器112上的一個或多個程式碼(例如自唯讀記憶體112M加載的程式碼112C以及/或自非揮發性記憶體120加載的系統內編程(in-system programming, ISP)碼)可包含有控制應用程式介面(application program interface, API)以及裝置應用(device application),其中該控制應用程式介面可為了該裝置應用而在記憶體控制器110的硬體層上進行硬體層控制。
針對通用非同步收發傳輸器連接,主機裝置50(例如處理器52)可於存取記憶體裝置100的期間將一個或多個第一通用非同步收發傳輸器命令(為簡潔起見,在向下箭頭旁標記為“命令”)傳送至記憶體裝置100,尤指於將資料寫入至記憶體裝置100的期間另將一酬載(payload),諸如寫入資料,傳送至記憶體裝置100(例如一個或多個第一通用非同步收發傳輸器命令可指示來自主機裝置50的一寫入要求)。此外,記憶體裝置100(例如記憶體控制器110)可將作為回應的一個或多個第二通用非同步收發傳輸器命令(為簡潔起見,在向上箭頭旁標記為“命令”)傳送至主機裝置50,尤指在記憶體裝置100因應來自主機裝置50的一讀取要求而進行操作的情況下(例如一個或多個第一通用非同步收發傳輸器命令可指示來自主機裝置50的一讀取要求),另將一酬載,諸如讀取資料,傳送至主機裝置50。
舉例來說,在主應用的控制下,主機裝置50(例如處理器52)可根據命令映射表56T來分別將該組操作命令(例如一個或多個操作命令)轉換為該組中間命令(例如一個或多個操作命令代表),並且通過通用非同步收發傳輸器連接將該組中間命令傳送至記憶體裝置100,尤指通過通用非同步收發傳輸器連接自記憶體裝置100接收回應(例如確認訊息或回傳的資料),以供更進一步的處理使用。又例如,在裝置應用的控制下,記憶體裝置100(例如記憶體控制器110)可根據命令映射表116T來分別將該組中間命令(例如一個或多個操作命令代表)轉換為該組操作命令(例如一個或多個操作命令),並且利用該組操作命令來為主機裝置50存取非揮發性記憶體120,尤指通過通用非同步收發傳輸器連接將回應(例如確認訊息或回傳的資料)傳送至主機裝置50,為簡潔起見,在此不再詳細重複對此實施例的類似描述。 表一
位元組 0 1 2 3 4 5 6 7 8 9 A B C D E F
基本格式 命令碼 Arg1 Arg2 Arg3 Arg4 核對和
表一繪示了根據本發明一實施例之電子裝置10所使用的單一通用非同步收發傳輸器命令的基本格式,其中通用非同步收發傳輸器命令的命令封包可包含有16位元組(byte),諸如位元組0至位元組F,其已經分別被指定有十六進位值(hexadecimal value) 0x0至0xF,但是本發明不限於此,在某些實施例中,在此基本格式中的位元組可被指定有在某些其它類型的值中的任一個類型的值,諸如十進位值(decimal value) 0至15。
單一通用非同步收發傳輸器命令的基本格式可包含有如下所列的複數個欄位#1、#2、…、以及#6: (1) 欄位#1(例如位元組0以及位元組1),用以攜帶命令碼; (2) 欄位#2(例如位元組2以及位元組3),用以攜帶第一引數Arg1; (3) 欄位#3(例如位元組4以及位元組7),用以攜帶第二引數Arg2; (4) 欄位#4(例如位元組8以及位元組B),用以攜帶第三引數Arg3; (5) 欄位#5(例如位元組C以及位元組D),用以攜帶第四引數Arg4;以及 (6) 欄位#6(例如位元組E以及位元組F),用以攜帶位元組0至位元組D的核對和(checksum); 但是本發明不限於此。在某些實施例中,此基本格式可能會變化,舉例來說,在欄位#6中的核對和可以由任一個其它類型的核對資訊來代替,用以保證通用非同步收發傳輸器命令的正確性。在另一個範例中,在此基本格式中的引數之數量可能會變化。在某些範例中,在此基本格式中的欄位之數量及/或在此基本格式中的欄位之各自的位元組計數(byte count)可能會變化。 表二
UART 命令 命令碼 Arg1 Arg2 Arg3 Arg4 核對和
CMD In “CI” Arg1 Arg2 Arg3 Arg4 核對和
Data In “DI” Arg1 Arg2 Arg3 CNT 核對和
Data Out “DO” Arg1 Arg2 Arg3 CNT 核對和
Ready for CMD “RC” Arg1 Arg2 Arg3 錯誤碼 核對和
Ready for Input “RI” Arg1 Arg2 Arg3 錯誤碼 核對和
Ready for Output “RO” Arg1 Arg2 Arg3 錯誤碼 核對和
表二繪示了根據本發明一實施例之電子裝置10所使用的通用非同步收發傳輸器命令的一些範例,其中為了更好地理解,相關的命令碼以及相關的資訊(例如輔助資訊),諸如引數Arg1、Arg2、Arg3等等,也被繪示於表二中。通用非同步收發傳輸器命令(為簡潔起見,於表二中標記為“UART命令”)的前三個範例可包含有: (1) lower-level-command-input命令(其可代表輸入較低階命令的一命令),諸如“CMD In”命令(其可由命令碼“CI”來表示),用以將較低階命令(lower level command),諸如指示操作命令的操作命令代表,從主機裝置50輸入至記憶體裝置100中; (2) data-input命令(其可代表資料輸入的一命令),諸如“Data In”命令(其可由命令碼“DI”來表示),用以將資料從主機裝置50輸入至記憶體裝置100中,其中此命令的第四引數Arg4可攜帶此命令所要求的待輸入至記憶體裝置100中的資料之傳輸單元(transmission-unit)計數(為簡潔起見,標記為“CNT”),諸如酬載計數;以及 (3) data-output命令(其可代表資料輸出的一命令),諸如“Data Out”命令(其可由命令碼“DO”來表示),用以將資料從記憶體裝置100輸出至主機裝置50中,其中此命令的第四引數Arg4可攜帶此命令所要求的待自記憶體裝置100輸出的資料之傳輸單元計數(為簡潔起見,標記為“CNT”),諸如酬載計數; 其中這些命令可作為一個或多個第一通用非同步收發傳輸器命令的範例。
此外,通用非同步收發傳輸器命令的後三個範例可包含有: (1) ready-for-command-receiving命令(其可代表準備好接收命令的一命令),諸如“Ready for CMD”命令(其可由命令碼“RC”來表示),用以指示記憶體裝置100準備好自主機裝置50接收通用非同步收發傳輸器命令,其中當需要時,此命令的第四引數Arg4可攜帶錯誤(error, ERR)碼; (2) ready-for-data-input命令(其可代表準備好輸入資料的一命令),諸如“Ready for Input”命令(其可由命令碼“RI”來表示),用以指示記憶體裝置100準備好將資料自主機裝置50輸入至記憶體裝置100,其中當需要時,此命令的第四引數Arg4可攜帶錯誤碼(error code);以及 (3) ready-for-data-output命令(其可代表準備好輸出資料的一命令),諸如“Ready for Output”命令(其可由命令碼“RO”來表示),用以指示記憶體裝置100準備好將資料輸入至主機裝置50,其中當需要時,此命令的第四引數Arg4可攜帶錯誤碼; 其中這些命令可作為一個或多個第二通用非同步收發傳輸器命令的範例,並且可作為自記憶體裝置100至主機裝置50的回應(例如通用非同步收發傳輸器回應(UART response))。
命令碼可分別指示不同的主機以及裝置(host-and-device)的互動類型,因此,當記憶體裝置100(例如記憶體控制器110)接收到“CMD In”命令、“Data In”命令以及“Data Out”命令的其中一個命令時,記憶體裝置100(例如記憶體控制器110)可決定相對應的主機以及裝置的互動類型(例如在命令碼“CI”的類型“ CI”、命令碼“DI”的類型“ DI”以及命令碼“DO”的類型“ DO”之中的一相對應的類型),並且當主機裝置50(例如處理器52)接收到“Ready for CMD”命令、“Ready for Input”命令以及“Ready for Output”命令的其中一個命令時,主機裝置50(例如處理器52)可決定相對應的主機以及裝置的互動類型(例如在命令碼“RC”的類型“ RC”、命令碼“RI”的類型“ RI”以及命令碼“RO”的類型“ RO”之中的一相對應的類型)。此外,當需要時,在電子裝置10中的較高階機制(例如主應用以及裝置應用的任一者)可決定(例如定義)引數Arg1、Arg2、Arg3以及Arg4。針對data-input命令(例如“Data In”命令),此命令的第四引數Arg4所攜帶的傳輸單元計數(為簡潔起見,標記為“CNT”),諸如酬載計數,可指示應藉由此命令來傳輸多少個512位元組(512B)的酬載,其中待輸入至記憶體裝置100的資料之總資料量係以512位元組(例如每一個酬載有512位元組)為單位來量測。針對data-output命令(例如“Data Out”命令),此命令的第四引數Arg4所攜帶的傳輸單元計數(為簡潔起見,標記為“CNT”),諸如酬載計數,可指示應藉由此命令來傳輸多少個512位元組的酬載,其中待自記憶體裝置100輸出的資料之總資料量係以512位元組(例如每一個酬載有512位元組)為單位來量測。針對自記憶體裝置100至主機裝置50的回應(例如通用非同步收發傳輸器回應)的任一者,錯誤碼可代表一失敗碼(fail code),尤指可指示一錯誤(例如資料核對和失敗或命令執行失敗)。
第3圖為依據本發明一實施例之一種借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法的工作流程圖。舉例來說,主機裝置50以及記憶體裝置100可分別視為主機端以及裝置端,因此,為簡潔起見,在此工作流程的一些相關步驟中可分別被標記為“主機”以及“裝置”。此外,裝置應用可藉由記憶體測試韌體(memory test firmware, MTFW)碼來實現,其中記憶體測試韌體碼的相關初始化可視為記憶體測試韌體初始化,但是本發明不以此為限。
在步驟S10中,記憶體裝置100(例如記憶體控制器110)可進行記憶體測試韌體初始化(為簡潔起見,標記為“MTFW初始化”)。
在步驟S11中,記憶體裝置100(例如記憶體控制器110)可等待來自主機裝置50的通用非同步收發傳輸器命令。
在步驟S12A中,主機裝置50(例如處理器52)可通過通用非同步收發傳輸器連接來將lower-level-command-input命令,諸如“CMD In”命令(為簡潔起見,標記為“CI”),傳送至記憶體裝置100。
在步驟S12B中,主機裝置50(例如處理器52)可通過通用非同步收發傳輸器連接來將data-input命令,諸如“Data In”命令(為簡潔起見,標記為“DI”),傳送至記憶體裝置100,其中data-input命令(例如“Data In”命令)可攜帶本身所具有的酬載計數。
在步驟S12C中,主機裝置50(例如處理器52)可通過通用非同步收發傳輸器連接來將data-output命令,諸如“Data Out”命令(為簡潔起見,標記為“DO”),傳送至記憶體裝置100,其中data-output命令(例如“Data Out”命令)可攜帶本身所具有的酬載計數。
在步驟S13B中,記憶體裝置100(例如記憶體控制器110)可以檢查是否有任一錯誤發生,如果是,進入步驟S18;如果否,則進入步驟S14B。
在步驟S13C中,記憶體裝置100(例如記憶體控制器110)可以檢查是否有任一錯誤發生,如果是,進入步驟S18;如果否,則進入步驟S14C。
在步驟S14B中,記憶體裝置100(例如記憶體控制器110)可以通過通用非同步收發傳輸器連接來將ready-for-data-input命令,諸如“Ready for Input”命令(為簡潔起見,標記為“RI”),傳送至主機裝置50。
在步驟S14C中,記憶體裝置100(例如記憶體控制器110)可以通過通用非同步收發傳輸器連接來將ready-for-data-output命令,諸如“Ready for Output”命令(為簡潔起見,標記為“RO”),傳送至主機裝置50。
在步驟S15B中,主機裝置50(例如處理器52)可以將相關的酬載傳送至記憶體裝置100。
在步驟S15C中,記憶體裝置100(例如記憶體控制器110)可以將相關的酬載傳送至主機裝置50。
在步驟S16B中,記憶體裝置100(例如記憶體控制器110)可以檢查是否有任一錯誤發生,如果是,進入步驟S18;如果否,則進入步驟S17B。
在步驟S16C中,記憶體裝置100(例如記憶體控制器110)可以檢查是否有任一錯誤發生,如果是,進入步驟S18;如果否,則進入步驟S17C。
在步驟S17B中,記憶體裝置100(例如記憶體控制器110)可以檢查酬載傳輸是否完成,如果是,進入步驟S18;如果否,則進入步驟S14B。
在步驟S17C中,記憶體裝置100(例如記憶體控制器110)可以檢查酬載傳輸是否完成,如果是,進入步驟S18;如果否,則進入步驟S14C。
在步驟S18中,記憶體裝置100(例如記憶體控制器110)可以通過通用非同步收發傳輸器連接來將ready-for-command-receiving命令,諸如“Ready for CMD”命令(為簡潔起見,標記為“RC”),傳送至主機裝置50。
為了更好地理解,該方法可以用第3圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,一個或多個步驟可於第3圖所示之工作流程中增加、刪除或修改。 表三
位元組 0 1 511 512 513
基本格式 酬載 核對和
表三繪示了根據本發明一實施例之電子裝置10所使用的單一通用非同步收發傳輸器酬載(UART payload)的基本格式,其中通用非同步收發傳輸器酬載的酬載封包可以包含有514位元組(例如位元組0至位元組513),其已經分別被指定有十進位值0至513,但是本發明不限於此,在某些實施例中,在此基本格式中的位元組可被指定有在某些其它類型的值中的任一個類型的值,諸如十六進位值0x0000至0x0201。
單一通用非同步收發傳輸器酬載的基本格式可包含有如下所列的複數個欄位#1以及#2: (1) 欄位#1(例如位元組0至位元組511),用以攜帶酬載(例如步驟S15B以及步驟S15C的任一者中所提到的酬載);以及 (2) 欄位#2(例如位元組512以及位元組513),用以攜帶位元組0至位元組511的核對和; 但是本發明不限於此。在某些實施例中,此基本格式可能會變化,舉例來說,在欄位#2中的核對和可以由任一個其它類型的核對資訊來代替,用以保證通用非同步收發傳輸器酬載的正確性。在某些範例中,在此基本格式中的欄位之數量以及/或在此基本格式中的欄位之各自的位元組計數可能會變化。
第4圖為依據本發明一實施例之主機裝置50以及記憶體裝置100之相關時序圖的範例示意圖。舉例來說,主機裝置50以及記憶體裝置100可分別視為主機端以及裝置端,因此,為簡潔起見,在第4圖中可分別被標記為“主機”以及“裝置”。為了更好地理解,假設通過通用非同步收發傳輸器連接從主機裝置50傳送至記憶體裝置100的第一通用非同步收發傳輸器命令係為lower-level-command-input命令,諸如“CMD In”命令(為簡潔起見,標記為“CI”),以及假設從記憶體裝置100傳送至主機裝置50之相關的回應(例如第二通用非同步收發傳輸器命令)係為ready-for-command-receiving命令,諸如“Ready for CMD”命令(為簡潔起見,標記為“RC”),但是本發明不限於此。在某些實施例中,第一通用非同步收發傳輸器命令以及相關的回應(例如第二通用非同步收發傳輸器命令)可能會變化。
針對主機裝置50的主機端時框(host side time frame) (為簡潔起見,標記為“主機時框”),主機裝置50(例如處理器52)可以通過通用非同步收發傳輸器連接來將第一通用非同步收發傳輸器命令,諸如“CMD In”命令(為簡潔起見,標記為“CI”),傳送至記憶體裝置100,並且等待來自記憶體裝置100的回應(例如第二通用非同步收發傳輸器命令),以及通過通用非同步收發傳輸器連接來接收來自記憶體裝置100的回應,諸如“Ready for CMD”命令(為簡潔起見,標記為“RC”)。後續,有關主機端的第一通用非同步收發傳輸器命令以及第二通用非同步收發傳輸器命令的流程會結束。針對記憶體裝置100的裝置端時框(device side time frame) (為簡潔起見,標記為“裝置時框”),記憶體裝置100(例如記憶體控制器110)可以等待來自主機裝置50的第一通用非同步收發傳輸器命令(為簡潔起見,標記為“CMD”),並且通過通用非同步收發傳輸器連接來接收來自主機裝置50的第一通用非同步收發傳輸器命令,諸如“CMD In”命令(為簡潔起見,標記為“CI”),以及運行裝置應用(例如韌體碼,諸如記憶體測試韌體碼)的微處理器112可以因應第一通用非同步收發傳輸器命令來操作,因此,微處理器112變得繁忙(busy)。後續,記憶體裝置100(例如記憶體控制器110)可以通過通用非同步收發傳輸器連接來將回應,諸如“Ready for CMD”命令(為簡潔起見,標記為“RC”),傳送至主機裝置50,並且等待來自主機裝置50的另一個第一通用非同步收發傳輸器命令(為簡潔起見,標記為“CMD”)。
根據上述實施例,新協定的基本架構已經被建立,在記憶體裝置100的多個階段之任一個階段中,無論該任一個階段是否代表大量生產階段或大量生產階段之前的初步階段,諸如設計階段(例如多個試行階段的一個試行階段),記憶體裝置100(例如記憶體控制器110)可以如主機裝置50所要求的來操作。此外,在該任一個階段中,主機裝置50(例如處理器52)以及記憶體裝置100(例如記憶體控制器110)可以根據本發明所提供的新協定來通過通用非同步收發傳輸器連接互相通訊,舉例來說,在初步階段中,無論針對主機裝置50的記憶體裝置100之通訊特性是否完整,記憶體裝置100(例如記憶體控制器110)可以如主機裝置50所要求的來以各種方式為主機裝置50存取非揮發性記憶體120。
由於運行在微處理器120的一個或多個程式碼可以藉由自非揮發性記憶體120加載的系統內編程碼來實現,記憶體控制器110的製造商及/或記憶體裝置100的製造商可以利用主機裝置50(例如處理器52)以及記憶體裝置100(例如記憶體控制器110)之間的通用非同步收發傳輸器通訊來更新非揮發性記憶體120中的系統內編程碼,因此,更新了控制應用程式介面及/或在一個或多個程式碼之中的裝置應用。因此,本發明所提供的新協定對上述在記憶體裝置100的任一個階段中所提到的製造商的相關工作相當有幫助。 表四
操作命令 Arg1
CMD1 0x0000
CMD2 0x0001
CMD3 0x0010
CMD4 0x0011
CMD5 0x0100
表四繪示了根據本發明一實施例之命令映射的範例,其中為簡潔起見,符號“…”指示表四的某些表內容可以被忽略。主機裝置50(例如處理器52)可根據命令映射表56T來進行命令映射,以將一個或多個操作命令(例如在表四中的操作命令CMD1、CMD2、CMD3、CMD4、CMD5等等的一個或多個操作命令)轉換為一個或多個操作命令代表(例如在表四中的操作命令代表0x0000、0x0001、0x0010、0x0011、0x0100等等的一個或多個操作命令代表),以及記憶體裝置100(例如記憶體控制器110)可根據其本身的命令映射表,諸如命令映射表116T以及命令映射表120T的任一者,來進行命令映射,以將一個或多個操作命令代表(例如在表四中的操作命令代表0x0000、0x0001、0x0010、0x0011、0x0100等等的一個或多個操作命令代表)轉換為一個或多個操作命令(例如在表四中的操作命令CMD1、CMD2、CMD3、CMD4、CMD5等等的一個或多個操作命令)。根據本實施例,第一引數Arg1可配置為攜帶在表四中的操作命令代表0x0000、0x0001、0x0010、0x0011、0x0100等等的任一者,但是本發明不限於此,舉例來說,當需要時,在引數Arg1、Arg2、Arg3等等之中的其它引數的任一者可以配置為攜帶一操作命令代表。
以一讀取要求作為來自主機裝置50之存取要求的一範例,假設: (1)操作命令CMD1可代表命令鎖存致動(command latch enable, CLE)命令(為簡潔起見,其可作為“CLE”),其中一個或多個後續引數(例如單一後續引數,諸如第二引數Arg2)可攜帶相關的操作命令READ MODE命令00h(例如0x00)、READ PAGE命令00h~30h(例如{0x00, 0x30})的命令序列的結尾命令(ending command)30h(例如0x30)等等; (2)操作命令CMD2可代表位址鎖存致動(address latch enable, ALE)命令(為簡潔起見,其可作為“ALE”),其中一個或多個後續引數(例如多個後續引數,諸如第二引數Arg2以及第三引數Arg3)可攜帶具有預定數量之位元組(例如5位元組或6位元組)的相關位址; (3)操作命令CMD3可代表Wait-Ready-or-Busy(Wait-RB)命令(為簡潔起見,其可作為“WaitRB”);以及 (4)操作命令CMD4可代表DMA-Read命令,其中一個或多個後續引數(例如單一後續引數,諸如第二引數Arg2)可攜帶具有預定數量之位元組(例如一個或多個位元組)的相關區段計數(sector count); 但是本發明不限於此,在某些實施例中,在表四中的操作命令CMD1、CMD2、CMD3、CMD4、CMD5等等的涵義以及相關的後續引數(例如第二引數Arg2或第三引數Arg3)所攜帶的資訊可能會變化。
由於命令映射表56T可以儲存表四所示之操作命令CMD1、CMD2、CMD3、CMD4、CMD5等等以及操作命令代表0x0000、0x0001、0x0010、0x0011、0x0100等等之間的多個命令映射關係,主機裝置50(例如處理器52)可根據命令映射表56T來進行命令映射,以取得多個命令映射關係的任一個命令映射關係,舉例來說,該組操作命令可包含有如下所列之一系列的操作命令: (1) {CLE, 0x00}; (2) {ALE, 0x0000000100},其中相關位址的位元組之預定數量可以代表5位元組; (3) {CLE, 0x30}; (4) {WaitRB};以及 (5) {DMA-Read, 0x08},其可代表進行直接記憶體存取(direct memory access, DMA)-讀取操作以讀取8個區段(例如8千位元組(kilobyte, KB)),其中相關區段計數的位元組之預定數量可以代表1位元組; 但是本發明不限於此,在根據命令映射表56T進行命令映射之後,主機裝置50(例如處理器52)可取得該組中間命令,例如如下所列之一系列的操作命令代表: (1) {0x0000, 0x00}; (2) {0x0001, 0x0000000100}; (3) {0x0000, 0x30}; (4) {0x0010};以及 (5) {0x0011, 0x08}; 但是本發明不限於此,因此,主機裝置50(例如處理器52)可傳送如下所列之具有一系列通用非同步收發傳輸器命令的一系列操作命令代表: (1) {“CI”, {0x0000, 0x 00000000, 0x 00000000, 0x 0000, CHECKSUM(1)}; (2) {“CI”, {0x0001, 0x 0000000000000100, 0x 0000, CHECKSUM(2)}; (3) {“CI”, {0x0000, 0x 00000030, 0x 00000000, 0x 0000, CHECKSUM(3)}; (4) {“CI”, {0x0010, 0x 00000000, 0x 00000000, 0x 0000, CHECKSUM(4)};以及 (5) {“CI”, {0x0011, 0x 00000008, 0x 00000000, 0x 0000, CHECKSUM(5)}; 其中CHECKSUM(1)、CHECKSUM(2)、…、以及CHECKSUM(5)可代表此系列的通用非同步收發傳輸器命令之各自的欄位#6所攜帶的核對和,以及如上所示以斜體印出的數字可以代表虛擬數字(dummy digit),但是本發明不限於此,在某些實施例中,虛擬數字的排列及/或虛擬數字之各自的值可能會變化。
由於命令映射表116T以及命令映射表120T的每一者可以儲存表四所示之操作命令CMD1、CMD2、CMD3、CMD4、CMD5等等以及操作命令代表0x0000、0x0001、0x0010、0x0011、0x0100等等之間的多個命令映射關係,記憶體裝置100(例如記憶體控制器110)可以根據命令映射表116T以及命令映射表120T的任一者來進行命令映射,以取得多個命令映射關係的任一個命令映射關係,尤指取得該組操作命令(例如上述的一系列的操作命令),並且利用該系列的操作命令來為主機裝置50存取(例如讀取)非揮發性記憶體120,為簡潔起見,在此不再詳細重複對此實施例的類似描述。
根據另一個實施例,上述的虛擬數字的每一個虛擬數字可以由0x F來代替,並且主機裝置50(例如處理器52)可以傳送如下所列之具有另一個版本的一系列通用非同步收發傳輸器命令的一系列操作命令代表: (1) {“CI”, {0x0000, 0x FFFFFF00, 0x FFFFFFFF, 0x FFFF, CHECKSUM(1)}; (2) {“CI”, {0x0001, 0x FFFFFF0000000100, 0x FFFF, CHECKSUM(2)}; (3) {“CI”, {0x0000, 0x FFFFFF30, 0x FFFFFFFF, 0x FFFF, CHECKSUM(3)}; (4) {“CI”, {0x0010, 0x FFFFFFFF, 0x FFFFFFFF, 0x FFFF, CHECKSUM(4)};以及 (5) {“CI”, {0x0011, 0x FFFFFF08, 0x FFFFFFFF, 0x FFFF, CHECKSUM(5)}; 其中CHECKSUM(1)、CHECKSUM(2)、…、以及CHECKSUM(5)可代表此系列的通用非同步收發傳輸器命令之各自的欄位#6所攜帶的核對和,以及如上所示以斜體印出的數字可以代表虛擬數字,但是本發明不限於此,為簡潔起見,在此不再詳細重複對此實施例的類似描述。
第5圖為依據本發明一實施例之對應於READ PAGE命令00h~30h(例如{0x00. 0x30})的READ PAGE操作的一些相關訊號的示意圖,其中訊號DQ[7:0]、訊號RDY以及訊號ARDY可以作為記憶體控制器110以及非揮發性記憶體120之間的一組訊號的一範例,但是本發明不限於此。
記憶體裝置100(例如記憶體控制器110)可以如主機裝置50所要求的來操作,尤指接收一連串的通用非同步收發傳輸器命令來取得一連串的操作命令代表,根據命令映射表116T以及120T的任一者來將該一連串的操作命令代表轉換為該一連串的操作命令,以及利用該一連串的操作命令來為主機裝置50存取(例如讀取)非揮發性記憶體120。為了更好地理解,第5圖最上方所示之週期類型的週期類型序列{CLE, ALE, ALE, ALE, ALE, ALE, CLE}可指示一些控制週期(例如7個連續週期),舉例來說,從某個週期開始的7個連續週期(例如從週期#0開始的週期#0、#1、…、以及#6)中,記憶體控制器100可以在週期#0以及週期#6中讓此組訊號中的CLE訊號生效(assert)(將CLE訊號設置為其中的允許狀態(enabling state)),並且在週期#1、#2、…、以及#5中使此組訊號中的CLE訊號無效(de-assert)(例如將CLE訊號設置為其中的不允許狀態(disabling state)),以及在週期#1、#2、…、以及#5中使此組訊號中的ALE訊號有效(例如將ALE訊號設置為其中的允許狀態),並且在週期#0以及週期#6中使此組訊號中的ALE訊號無效(例如將ALE訊號設置為其中的不允許狀態)。
此外,記憶體控制110以及非揮發性記憶體120之間的匯流排上的訊號DQ[7:0]所攜帶的位元組序列{00h, C1, C2, R1, R2, R3, 30h}(例如7個位元組{0x00, 0x00, 0x01, 0x00, 0x00,0x00, 0x30})可代表指示READ MODE命令00h的命令位元組00h、指示讀取位址(例如以反向順序傳送的操作命令CMD2的相關位址0x0000000100的各自的位元組{0x00, 0x00, 0x00, 0x01, 0x00})的五個位址位元組{C1, C2, R1, R2, R3}以及指示READ PAGE命令00h~30h之命令序列之結尾命令30h的命令位元組30h,其中讀取位址可包含有列位址(column address),諸如列位元組{C1, C2},以及行位址(row address),諸如行位元組{R1, R2, R3},但是本發明不限於此。之後,可能會有訊號RDY以及訊號ARDY的狀態轉換(state transition)。
此外,後續週期類型序列{D OUT、D OUT、D OUT、…}可指示一些資料輸出週期,在資料輸出週期中,記憶體控制器110可通過訊號DQ[7:0]來自非揮發性記憶體120取得資料位元組D n、D n+1、D n+2等等,以準備將要回傳至主機裝置50的讀取資料,因此,因應讀取要求,記憶體裝置100(例如記憶體控制器110)可將讀取資料回傳至主機裝置50,為簡潔起見,在此不再詳細重複對此實施例的類似描述。
第6圖為在電子裝置10中的通用非同步收發傳輸器的範例示意圖,其中通用非同步收發傳輸器58U以及通用非同步收發傳輸器118U的任一者(例如每一個通用非同步收發傳輸器)可藉由第6圖所示之通用非同步收發傳輸器600的架構來實現。通用非同步收發傳輸器600可包含有時脈產生器610、傳輸電路620T、傳輸緩衝電路630T、接收電路620R以及接收緩衝電路630R,其中時脈產生器610可用以產生時脈CLK來作為供資料傳輸使用的一參考,傳輸電路620T耦接於時脈產生器610,傳輸緩衝電路630T耦接於傳輸電路620T,接收電路620R耦接於時脈產生器610,並且接收緩衝電路630R耦接於接收電路620R。傳輸電路620T以及接收電路620R可藉由位移暫存器(shift register)等等來實現,並且傳輸緩衝電路630T以及接收緩衝電路630R可藉由暫存器(register)等等來實現,但是本發明不限於此,此外,接收路徑以及傳輸路徑可代表通用非同步收發傳輸器118U的該組終端{RX, TX, GND}以及通用非同步收發傳輸器58U的該組終端{TX, RX, GND}之間的連接的至少一部分,例如通用非同步收發傳輸器118U的該組終端{RX, TX}以及通用非同步收發傳輸器58U的該組終端{TX, RX}之間的兩個連接,為簡潔起見,在此不再詳細重複對此實施例的類似描述。
第7圖為通用非同步收發傳輸器連接之位元組傳輸格式的範例示意圖,其中橫軸可代表時間。通用非同步收發傳輸器118U以及通用非同步收發傳輸器58U之中的第一通用非同步收發傳輸器可根據位元組傳輸格式來將包含有資料位元(bit){D0, D1, …, D7}的位元組,諸如通用非同步收發傳輸器命令的所有位元組的任一個位元組(例如每一個位元組),傳送至通用非同步收發傳輸器118U以及通用非同步收發傳輸器58U之中的第二通用非同步收發傳輸器,並且第二通用非同步收發傳輸器可根據位元組傳輸格式來接收包含有資料位元{D0, D1, …, D7}的位元組。在傳送此位元組之前,第一通用非同步收發傳輸器可接收開始位元(start bit)S(例如邏輯值0)。在傳送此位元組之後,第一通用非同步收發傳輸器可選擇性地傳送同位位元(parity bit)PB(為了更好地理解,標記為“可選擇的”)以及停止位元(stop bit)P(例如邏輯值1),為簡潔起見,在此不再詳細重複對此實施例的類似描述。
根據某些實施例,通用快閃儲存初始化過程可包含有一系列的處理,舉例來說,此系列的處理可包含有: (1) 在兩端進行M-PHY 層初始化(例如通用快閃儲存主機端以及通用快閃儲存裝置端); (2) UniPro啟動程序(boot sequence)以及屬性配置(attribute configuration); (3) UTP驗證; (4) 檢查啟動是否被允許(enabled); (5) 檢查啟動邏輯單元(logical unit ,LU)是否準備完成; (6) 讀取啟動資料(boot data); (7) 設置旗標(flag);以及 (8) 輪詢(poll)旗標; 但是本發明不限於此。要注意的是,通用快閃儲存初始化過程非常複雜,與此相比,在記憶體裝置100的任一個階段中,基於本發明所提供之新協定的通用非同步收發傳輸器通訊皆可以非常有用,舉例來說,在記憶體裝置100被設計以支援通用快閃儲存初始化過程的情況中,通用快閃儲存初始化過程通常在記憶體裝置100的大量生產階段及/或使用者階段(例如使用者擁有一產品,諸如記憶體裝置100,的階段)中可運作,然而,可能在記憶體裝置100的初步階段(例如設計階段)並不可用。當需要時,無論在記憶體裝置100的大量生產階段、使用者階段或初步階段(例如設計階段)中,基於本發明所提供之新協定的通用非同步收發傳輸器通訊皆可被使用,為簡潔起見,在此不再詳細重複對此實施例的類似描述。
根據某些實施例,通用快閃儲存協定資訊單元(UFS protocol information unit, UPIU)可包含有複數個欄位,並且可能需要針對該複數個欄位的相關處理,用以適當地設置這些欄位以保證正確的控制。該複數個欄位的範例可包含有但不限於: (1) 交易類型(transaction type); (2) 旗標; (3) 邏輯單位數(logic unit number, LUN); (4) 任務標籤(task tag); (5) 命令設置類型; (6) 查詢(query)函數及/或任務管理函數(task management function); (7) 回應(response); (8) 狀態(status); (9) 總額外標頭區段(extra header segment, EHS)長度; (10) 裝置資訊; (11) 資料區段(data segment)長度; (12) 交易特定欄位; (13) 額外標頭區段欄位; (14) 標頭(header) E2ECRC; (15) 資料區段;以及 (16) 資料E2ECRC; 但是本發明不限於此。要注意的是,通用快閃儲存協定資訊單元的相關處理非常複雜,與此相比,在記憶體裝置100的任一個階段中,基於本發明所提供之新協定的通用非同步收發傳輸器通訊皆可以非常有用,舉例來說,在記憶體裝置100被設計以支援通用快閃儲存協定資訊單元之相關處理的情況中,通用快閃儲存協定資訊單元的相關處理通常在記憶體裝置100的大量生產階段及/或使用者階段(例如使用者擁有一產品,諸如記憶體裝置100,的階段)中可運作,然而,可能在記憶體裝置100的初步階段(例如設計階段)並不可用。當需要時,無論在記憶體裝置100的大量生產階段、使用者階段或初步階段(例如設計階段)中,基於本發明所提供之新協定的通用非同步收發傳輸器通訊皆可被使用,為簡潔起見,在此不再詳細重複對此實施例的類似描述。
根據某些實施例,如果記憶體裝置100在使用者階段中故障的話,使用者可以將記憶體裝置100寄回去給記憶體裝置100的製造商的某個部門(例如售後服務部門),以要求修復記憶體裝置100,並且在製造商的此部門中,基於本發明所提供之新協定的通用非同步收發傳輸器通訊對於測試記憶體裝置100以及為使用者取得使用者資料等等相當有幫助,為簡潔起見,在此不再詳細重複對此實施例的類似描述。
第8圖為依據本發明一實施例之一種借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法的流程圖。為了更好地理解,主機裝置50能夠根據現有的協定(例如特定通訊規範的某個協定)來將在複數個主機命令之中的一主機命令傳送至記憶體裝置100,以存取記憶體裝置100,以及記憶體裝置100(例如其中的記憶體控制器110)能夠根據現有協定來接收並且辨認(recognize)來自主機裝置50的在複數個主機命令之中的該主機命令,以為主機裝置50存取非揮發性記憶體120。此外,記憶體裝置100(例如其中的記憶體控制器110)可以根據通用非同步收發傳輸器協定來通過通用非同步收發傳輸器連接與主機裝置50進行通訊,尤其,通用非同步收發傳輸器協定與現有協定不相同。舉例來說,在通用非同步收發傳輸器118U的該組終端{RX, TX, GND}分別耦接於通用非同步收發傳輸器58 U的該組終端{TX, RX, GND}以形成記憶體裝置100(例如其中的記憶體控制器110)以及主機裝置50之間的通用非同步收發傳輸器連接的情況中,記憶體裝置100(例如記憶體控制器110)可根據第8圖所示之工作流程來操作。
在步驟810中,當記憶體控制器110的通用非同步收發傳輸器118U係連結至主機裝置50的通用非同步收發傳輸器58 U(例如通用非同步收發傳輸器118U的該組終端{RX, TX, GND}分別耦接於通用非同步收發傳輸器58 U的該組終端{TX, RX, GND})時,記憶體裝置100(例如記憶體控制器110)可以進入通用非同步收發傳輸器通訊模式,以進行通用非同步收發傳輸器通訊,尤指開始根據通用非同步收發傳輸器協定來通過通用非同步收發傳輸器連接與主機裝置50進行通訊。
在步驟812中,記憶體裝置100(例如記憶體控制器110)可以檢查是否自主機裝置50接收任一通用非同步收發傳輸器命令,如果是,進入步驟814;如果否,則再次進入步驟812。
在步驟814中,記憶體裝置100(例如記憶體控制器110)可以選擇性地進行命令轉換,尤指當命令轉換適用於任一通用非同步收發傳輸器命令(例如中間命令)時,記憶體裝置100(例如記憶體控制器110)可以將任一通用非同步收發傳輸器命令轉換成操作命令。
在步驟816中,記憶體裝置100(例如記憶體控制器110)可根據從主機裝置50接收的一個或多個最新的通用非同步收發傳輸器命令來檢查是否存在任一存取要求,如果是,進入步驟818A;如果否,則再次進入步驟818B。為了更好地理解,記憶體裝置100(例如記憶體控制器110)可將一個或多個最新的通用非同步收發傳輸器命令轉換成一組操作命令(例如在一個或多個上述實施例中提到的該組操作命令),舉例來說,針對一個或多個最新的通用非同步收發傳輸器命令來進行一次或多次步驟814的操作,其中該組操作命令可指示任一存取要求存在。
在步驟818A中,記憶體裝置100(例如記憶體控制器110)可利用該組操作命令(例如一個或多個操作命令)來為主機裝置50存取非揮發性記憶體120。
在步驟818B中,記憶體裝置100(例如記憶體控制器110)可通過通用非同步收發傳輸器連接將一回應傳送至主機裝置50。
尤其,由於在兩組命令(亦即該組中間命令以及該組操作命令)中的任一者可被轉換成該兩組命令中的另一組命令,因此一個或多個最新的通用非同步收發傳輸器命令可代表該組中間命令(例如一個或多個操作命令代表),以及該組中間命令可對應於該組操作命令。在通過通用非同步收發傳輸器連接將該組中間命令傳送至記憶體控制器110以通知記憶體控制器110任一存取要求之前,主機裝置50可以將該組操作命令轉換成該組中間命令。此外,記憶體裝置100(例如記憶體控制器110)可利用記憶體控制器110的通用非同步收發傳輸器118U來通過記憶體裝置100以及主機裝置50之間的通用非同步收發傳輸器連接接收對應於該組操作命令的該組中間命令(例如一個或多個操作命令代表),並且可以根據位於記憶體裝置100內的命令映射表(例如命令映射表116T以及120T的任一者)來將該組中間命令轉換為該組操作命令,為簡潔起見,在此不再詳細重複對此實施例的類似描述。
為了更好地理解,該方法可以由第8圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,一個或多個步驟可於第8圖所示之工作流程中增加、刪除或修改。
根據某些實施例,該組操作命令可包含有該一個或多個操作命令,以供記憶體控制器110使用來直接地控制非揮發性記憶體120,並且該組中間命令可包含有該一個或多個操作命令代表,用以作為該一個或多個操作命令的一個或多個代表,為簡潔起見,在此不再詳細重複對這些實施例的類似描述。
根據某些實施例,記憶體裝置100(例如記憶體控制器110)可根據通用非同步收發傳輸器協定來利用記憶體控制器110的通用非同步收發傳輸器118U來操作,用以提供基本通訊能力(例如在一個或多個上述實施例中所描述的架構中的通用非同步收發傳輸器通訊的通訊能力),以使非揮發性記憶體120在記憶體裝置100的多個可能階段的任一個階段中可以通過通用非同步收發傳輸器連接被記憶體裝置100的外部所存取。為了更好地理解,多個可能階段可代表上述記憶體裝置100的不同階段,因此,多個可能階段可包含有大量生產階段以及在大量生產階段之前的至少一初步階段(例如一個或多個初步階段,諸如設計階段及/或多個試行階段的任一個試行階段),舉例來說,記憶體控制器110的通用非同步收發傳輸器118U可以根據通用非同步收發傳輸器協定來操作,使得非揮發性記憶體120在上述至少一初步階段中可以通過通用非同步收發傳輸器連接被記憶體裝置100的外部所存取,為簡潔起見,在此不再詳細重複對這些實施例的類似描述。
根據某些實施例,通用非同步收發傳輸器連接的通訊速度可以是記憶體裝置100以及主機裝置50之間的至少一有效連接之至少一速度中的最低速度,為了更好地理解,上述至少一有效連接可包含有記憶體裝置100以及主機裝置50能夠在傳輸介面電路118以及傳輸介面電路58之間創建的任何類型的連接,舉例來說,傳輸介面電路118以及傳輸介面電路58可以根據現有協定(例如上述特定通訊規範的協定)來在某個階段(例如一個或多個試行階段、大量生產階段及/或使用者階段)中彼此通訊,並且可以利用通用非同步收發傳輸器118U以及通用非同步收發傳輸器58U來在這些階段中根據通用非同步收發傳輸器協定來彼此通訊,在此情況中,上述至少一有效連接可包含有一基於現有協定(existing-protocol-based)的連接(例如分別對應於序列先進技術附件規範、通用序列匯流排規範或快捷外部連接標準規範之連接的任一者)以及通用非同步收發傳輸器連接,雖然通用非同步收發傳輸器連接的通訊速度可能遠低於基於現有協定的連接的通訊速度,但是當需要時,通用非同步收發傳輸器連接可被利用以作為備用連接(backup connection)。又例如,當記憶體裝置100內的一個或多個部分電路發生故障時,由於該一個或多個部分電路故障的緣故,在這些階段中,傳輸介面電路118以及傳輸介面電路58不能根據現有協定來彼此通訊,然而,傳輸介面電路118以及傳輸介面電路58可以根據通用非同步收發傳輸器協定來彼此通訊,在此情況中,上述至少一有效連接可包含有單一有效連接(例如通用非同步收發傳輸器連接),在上述至少一有效連接的所有速度中,由於通用非同步收發傳輸器連接係為單一連接,因此通用非同步收發傳輸器連接的通訊速度可以是最低速度,但也可以是最高速度。又例如,在初步階段(例如設計階段)中,記憶體裝置100內的一個或多個部分電路可能還沒被設計或適當地實現,在此情況中,上述至少一有效連接可包含有單一有效連接(例如通用非同步收發傳輸器連接),相似地,通用非同步收發傳輸器連接的通訊速度可以是最低速度,但也可以是最高速度,為簡潔起見,在此不再詳細重複對這些實施例的類似描述。
根據某些實施例,通用非同步收發傳輸器通訊可應用於改變或更新記憶體裝置100的控制機制,舉例來說,在步驟818A中利用該組操作命令來為主機裝置50存取非揮發性記憶體120的期間,記憶體裝置100(例如記憶體控制器110)可以將系統內編程碼的至少一部分(例如一部分或全部)寫入至非揮發性記憶體120,以更進一步地控制記憶體裝置100。當系統內編程碼的總長度小到可以完全地放進在通用非同步收發傳輸器通訊中的酬載封包(payload packet)中(例如系統內編程碼的總資料量係小於或等於表三所示之單一通用非同步收發傳輸器酬載的基本格式中欄位#1的位元組計數512)時,其足夠執行一次步驟818A以完整地將系統內編程碼寫入至非揮發性記憶體120中;否則,其要求多次執行步驟818A以及包含有步驟812、步驟814、步驟816、步驟818A以及步驟818B的一迴圈,以完整地將系統內編程碼寫入至非揮發性記憶體120中,為簡潔起見,在此不再詳細重複對這些實施例的類似描述。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:電子裝置 50:主機裝置 52:處理器 54:電源供應電路 56, 116:隨機存取記憶體 58, 118:傳輸介面電路 58U, 118U, 600:通用非同步收發傳輸器 100:記憶體裝置 110:記憶體控制器 112:微處理器 112C:程式碼 112M:唯讀記憶體 114:控制邏輯電路 116, 120T:命令映射表 120:非揮發性記憶體 122-1~122-N:非揮發性記憶體元件 S10, S11, S12A, S12B, S12C, S13B, S13C, S14B, S14C, S15B, S15C, S16B, S16C, S17B, S17C, S18:步驟 DQ[7:0], RDY, ARDY:訊號 610:時脈產生器 620T:傳輸電路 620R:接收電路 630T:傳輸緩衝電路 630R:接收緩衝電路 810, 812, 814, 816, 818A, 818B:步驟
第1圖為依據本發明一實施例之電子裝置的示意圖。 第2圖為依據本發明一實施例之一種借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法的控制方案示意圖。 第3圖為依據本發明一實施例之一種借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法的工作流程圖。 第4圖為依據本發明一實施例之主機裝置50以及記憶體裝置100之相關時序圖的範例示意圖。 第5圖為依據本發明一實施例之對應於READ PAGE命令的READ PAGE操作的一些相關訊號的示意圖。 第6圖為在電子裝置中的通用非同步收發傳輸器的範例示意圖。 第7圖為通用非同步收發傳輸器連接之位元組傳輸格式的範例示意圖。 第8圖為依據本發明一實施例之一種借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法的流程圖。
810,812,814,816,818A,818B:步驟

Claims (13)

  1. 一種用以借助一通用非同步收發傳輸器連接來進行一記憶體裝置之存取管理的方法,該方法係被應用於該記憶體裝置之一記憶體控制器,該記憶體裝置包含有該記憶體控制器以及一非揮發性記憶體,該非揮發性記憶體包含有至少一非揮發性記憶體元件,該方法包含有: 利用該記憶體控制器之一通用非同步收發傳輸器來通過該記憶體裝置以及一主機裝置之間的該通用非同步收發傳輸器連接接收對應於一組操作命令的一組中間命令,其中在通過該通用非同步收發傳輸器連接傳送該組中間命令至該記憶體控制器之前,該主機裝置將該組操作命令轉換為該組中間命令; 根據一命令映射表來將該組中間命令轉換為該組操作命令,其中該命令映射表係位於該記憶體裝置之中;以及 利用該組操作命令來為該主機裝置存取該非揮發性記憶體,以及通過該通用非同步收發傳輸器連接來將一回應傳送至該主機裝置。
  2. 如申請專利範圍第1項所述之方法,其中該組操作命令包含有一個或多個操作命令,以供該記憶體控制器用來直接地控制該非揮發性記憶體;以及該組中間命令包含有一個或多個操作命令代表,以供用來作為該一個或多個操作命令的一個或多個代表。
  3. 如申請專利範圍第1項所述之方法,其中該主機裝置能夠根據一現有協定來將在複數個主機命令之中的一主機命令傳送至該記憶體裝置以存取該記憶體裝置;以及該記憶體裝置根據一通用非同步收發傳輸器協定來通過該通用非同步收發傳輸器連接與該主機裝置進行通訊。
  4. 如申請專利範圍第3項所述之方法,其中該通用非同步收發傳輸器協定與該現有協定不相同。
  5. 如申請專利範圍第1項所述之方法,另包含有: 因應該記憶體控制器之該通用非同步收發傳輸器被連接至該主機裝置之一相對應的通用非同步收發傳輸器,開始根據一通用非同步收發傳輸器協定來通過該通用非同步收發傳輸器連接與該主機裝置進行通訊。
  6. 如申請專利範圍第1項所述之方法,另包含有: 根據一通用非同步收發傳輸器協定來利用該記憶體控制器之該通用非同步收發傳輸器來操作,以提供一基本通訊能力來使該非揮發性記憶體通過該通用非同步收發傳輸器連接而被該記憶體裝置之外部所存取。
  7. 如申請專利範圍第6項所述之方法,其中該記憶體控制器之該通用非同步收發傳輸器根據該通用非同步收發傳輸器協定來操作,使該非揮發性記憶體在該記憶體裝置之一大量生產階段中通過該通用非同步收發傳輸器連接而被該記憶體裝置之外部所存取。
  8. 如申請專利範圍第6項所述之方法,其中該記憶體控制器之該通用非同步收發傳輸器根據該通用非同步收發傳輸器協定來操作,使該非揮發性記憶體在該記憶體裝置之一大量生產階段之前的至少一初步階段中通過該通用非同步收發傳輸器連接而被該記憶體裝置之外部所存取。
  9. 如申請專利範圍第1項所述之方法,其中該通用非同步收發傳輸器連接之一通訊速度係在該記憶體裝置以及該主機裝置之間的至少一可用連接的至少一速度中的一最低速度。
  10. 如申請專利範圍第1項所述之方法,其中利用該組操作命令來為該主機裝置存取該非揮發性記憶體的步驟另包含有: 將一系統內編程碼之至少一部分寫入至該非揮發性記憶體,以更進一步地控制該記憶體裝置。
  11. 一種記憶體裝置,包含有: 一非揮發性記憶體,用以儲存資訊,其中該非揮發性記憶體包含有至少一非揮發性記憶體元件;以及 一控制器,耦接於該非揮發性記憶體,並且用以控制該記憶體裝置之操作,其中該控制器包含有: 一處理電路,用以根據來自一主機裝置的複數個主機命令來控制該控制器,以允許該主機裝置通過該控制器來存取該非揮發性記憶體;以及 一傳輸介面電路,用以與該主機裝置進行通訊,其中該傳輸介面電路包含有: 一通用非同步收發傳輸器,其中該通用非同步收發傳輸器具備一組終端以各自地耦接於該主機裝置之一相對應的通用非同步收發傳輸器之一組終端,以形成該記憶體裝置與該主機裝置之間的一通用非同步收發傳輸器連接; 其中: 該控制器利用本身的該通用非同步收發傳輸器來通過該通用非同步收發傳輸器連接接收對應於一組操作命令的一組中間命令,其中在通過該通用非同步收發傳輸器連接傳送該組中間命令至該控制器之前,該主機裝置將該組操作命令轉換為該組中間命令; 該控制器根據一命令映射表來將該組中間命令轉換為該組操作命令,其中該命令映射表係位於該記憶體裝置之中;以及 該控制器利用該組操作命令來為該主機裝置存取該非揮發性記憶體,以及通過該通用非同步收發傳輸器連接來將一回應傳送至該主機裝置。
  12. 一種電子裝置,其包含有申請專利範圍第11項所述之記憶體裝置,並且另包含有: 該主機裝置,耦接於該記憶體裝置,其中該主機裝置包含有: 至少一處理器,用以控制該主機裝置的操作;以及 一電源供應電路,耦接於該至少一處理器,並且用以提供電源給該至少一處理器以及該記憶體裝置; 其中該記憶體裝置提供儲存空間給該主機裝置。
  13. 一種記憶體裝置的控制器,該記憶體裝置包含有該控制器以及一非揮發性記憶體,該非揮發性記憶體包含有至少一非揮發性記憶體元件,該控制器包含有: 一處理電路,用以根據來自一主機裝置的複數個主機命令來控制該控制器,以允許該主機裝置通過該控制器來存取該非揮發性記憶體;以及 一傳輸介面電路,用以與該主機裝置進行通訊,其中該傳輸介面電路包含有: 一通用非同步收發傳輸器,其中該通用非同步收發傳輸器具備一組終端以各自地耦接於該主機裝置之一相對應的通用非同步收發傳輸器之一組終端,以形成該記憶體裝置與該主機裝置之間的一通用非同步收發傳輸器連接; 其中: 該控制器利用本身的該通用非同步收發傳輸器來通過該通用非同步收發傳輸器連接接收對應於一組操作命令的一組中間命令,其中在通過該通用非同步收發傳輸器連接傳送該組中間命令至該控制器之前,該主機裝置將該組操作命令轉換為該組中間命令; 該控制器根據一命令映射表來將該組中間命令轉換為該組操作命令,其中該命令映射表係位於該記憶體裝置之中;以及 該控制器利用該組操作命令來為該主機裝置存取該非揮發性記憶體,以及通過該通用非同步收發傳輸器連接來將一回應傳送至該主機裝置。
TW110144310A 2021-01-21 2021-11-29 用以借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器 TWI802113B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163140209P 2021-01-21 2021-01-21
US63/140,209 2021-01-21
US17/399,005 2021-08-10
US17/399,005 US11513980B2 (en) 2021-01-21 2021-08-10 Method and apparatus for performing access management of memory device with aid of universal asynchronous receiver-transmitter connection

Publications (2)

Publication Number Publication Date
TW202230114A TW202230114A (zh) 2022-08-01
TWI802113B true TWI802113B (zh) 2023-05-11

Family

ID=82405134

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110144310A TWI802113B (zh) 2021-01-21 2021-11-29 用以借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器

Country Status (3)

Country Link
US (1) US11513980B2 (zh)
CN (1) CN114816234A (zh)
TW (1) TWI802113B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6842264B1 (en) * 2000-08-07 2005-01-11 Hewlett-Packard Development Company, L.P. Printer system and method for protocol version translation utilizing translation tables
CN101136002A (zh) * 2006-08-29 2008-03-05 深圳市朗科科技有限公司 兼具usb和uart串口控制的移动存储方法及装置
CN102567196A (zh) * 2010-12-27 2012-07-11 北京国睿中数科技股份有限公司 一种处理器仿真调试方法及装置
CN102662835A (zh) * 2012-03-23 2012-09-12 凌阳科技股份有限公司 一种针对嵌入式系统的程序调试方法及嵌入式系统
US8484380B2 (en) * 2010-09-22 2013-07-09 Abdullah Abdulrhman M. ALZAMIL Text-based system for exchanging commands between devices, services and applications
US20190138476A1 (en) * 2017-11-07 2019-05-09 SK Hynix Inc. Universal asynchronous receiver/transmitter unit, and memory controller and memory system including the same
CN110689915A (zh) * 2018-07-06 2020-01-14 爱思开海力士有限公司 经由主机/串行接口的远程ssd调试及其执行方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434660B1 (en) * 2000-05-23 2002-08-13 Centennial Technologies, Inc. Emulating one tape protocol of flash memory to a different type protocol of flash memory
US8566508B2 (en) * 2009-04-08 2013-10-22 Google Inc. RAID configuration in a flash memory data storage device
WO2015041685A1 (en) * 2013-09-20 2015-03-26 Georgia Tech Research Corporation Hardware-assisted log protection devices and systems
US11209483B2 (en) * 2020-02-28 2021-12-28 Micron Technology, Inc. Controller accessible test access port controls
US11182312B2 (en) * 2020-04-02 2021-11-23 Micron Technology, Inc. Memory sub-system manufacturing mode
US11341060B2 (en) * 2020-08-11 2022-05-24 International Business Machines Corporation Multifunction communication interface supporting memory sharing among data processing systems

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6842264B1 (en) * 2000-08-07 2005-01-11 Hewlett-Packard Development Company, L.P. Printer system and method for protocol version translation utilizing translation tables
CN101136002A (zh) * 2006-08-29 2008-03-05 深圳市朗科科技有限公司 兼具usb和uart串口控制的移动存储方法及装置
US8484380B2 (en) * 2010-09-22 2013-07-09 Abdullah Abdulrhman M. ALZAMIL Text-based system for exchanging commands between devices, services and applications
CN102567196A (zh) * 2010-12-27 2012-07-11 北京国睿中数科技股份有限公司 一种处理器仿真调试方法及装置
CN102662835A (zh) * 2012-03-23 2012-09-12 凌阳科技股份有限公司 一种针对嵌入式系统的程序调试方法及嵌入式系统
US20190138476A1 (en) * 2017-11-07 2019-05-09 SK Hynix Inc. Universal asynchronous receiver/transmitter unit, and memory controller and memory system including the same
CN110689915A (zh) * 2018-07-06 2020-01-14 爱思开海力士有限公司 经由主机/串行接口的远程ssd调试及其执行方法

Also Published As

Publication number Publication date
US11513980B2 (en) 2022-11-29
US20220229788A1 (en) 2022-07-21
TW202230114A (zh) 2022-08-01
CN114816234A (zh) 2022-07-29

Similar Documents

Publication Publication Date Title
US7849242B2 (en) PCI express-compatible controller and interface that provides PCI express functionality and flash memory operations to host device
US7130958B2 (en) Serial interface to flash-memory chip using PCI-express-like packets and packed data for partial-page writes
TW201716980A (zh) 資料儲存設備及其操作方法
US8799605B2 (en) Initializing and writing to a nonvolatile storage device based on a client/server model
TW201945928A (zh) 控制儲存裝置之方法
Eshghi et al. Ssd architecture and pci express interface
TWI717751B (zh) 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置
US11782638B2 (en) Storage device with improved read latency and operating method thereof
CN110895447A (zh) 控制器及其操作方法
TW202020670A (zh) 資料儲存裝置與資料存取方法
TW202143054A (zh) 借助專用位元資訊來執行一記憶體裝置之存取管理之方法、記憶體裝置、電子裝置、應用於一記憶體裝置之控制器以及主機裝置
TWI802113B (zh) 用以借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器
TWI820951B (zh) 藉助於預定命令來進行記憶體裝置的資料存取控制的方法及設備
US20230266963A1 (en) Firmware updating method, apparatus and data system
TWI806262B (zh) 橋接裝置與資料儲存系統
TW201908957A (zh) 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置
CN112905107A (zh) 数据存储装置及其操作方法
CN111309247B (zh) 存储器系统及其操作方法
TW202143035A (zh) 橋接電路與電腦系統
TWI814655B (zh) 記憶裝置、快閃記憶體控制器及其控制方法
TWI839288B (zh) 用來在主機效能增幅器架構中藉助於裝置側表資訊編碼與解碼進行記憶裝置的存取管理的方法、記憶裝置、電子裝置及控制器
TWI798034B (zh) 記憶體控制器與資料處理方法
US11815938B2 (en) Storage device and method of operating the same
TWI728448B (zh) 指令傳送方法、記憶體控制電路單元及記憶體儲存裝置
TWI734370B (zh) 快閃記憶體之資料合併方法、控制電路單元與儲存裝置