[go: up one dir, main page]

TW202036301A - 用來進行主裝置與記憶裝置之間的存取控制的方法以及設備 - Google Patents

用來進行主裝置與記憶裝置之間的存取控制的方法以及設備 Download PDF

Info

Publication number
TW202036301A
TW202036301A TW108140177A TW108140177A TW202036301A TW 202036301 A TW202036301 A TW 202036301A TW 108140177 A TW108140177 A TW 108140177A TW 108140177 A TW108140177 A TW 108140177A TW 202036301 A TW202036301 A TW 202036301A
Authority
TW
Taiwan
Prior art keywords
command
memory device
memory
bridge
host device
Prior art date
Application number
TW108140177A
Other languages
English (en)
Other versions
TWI710906B (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 TW202036301A publication Critical patent/TW202036301A/zh
Application granted granted Critical
Publication of TWI710906B publication Critical patent/TWI710906B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)

Abstract

本發明提供一種用來進行一主裝置與一記憶裝置之間的存取控制的方法、相關橋接裝置及其橋接控制器,其中該方法可應用於該橋接裝置以將該記憶裝置耦接至該主裝置。該方法可包含:接收第一測試指令;回傳失敗資訊;接收請求指令;回傳裝置相關資訊;接收第二測試指令;回傳通過資訊;接收容量相關指令;回報該記憶裝置的回報邏輯位址數量以及該記憶裝置的回報扇區大小;以及在該主裝置進行存取運作的期間,進行對應於該記憶裝置的記憶裝置側中的記憶裝置側邏輯位址格式以及對應於該主裝置的主裝置側中的主裝置側邏輯位址格式之間的雙向映射。

Description

用來進行主裝置與記憶裝置之間的存取控制的方法以及設備
本發明係關於記憶體控制,尤指一種用來進行一主裝置與一記憶裝置(諸如記憶卡等)之間的存取控制的方法以及設備(例如一橋接裝置及其橋接控制器)。
包含有一快閃記憶體的記憶裝置可用來儲存資料(例如使用者資料),而存取該快閃記憶體的管理相當複雜。例如,該記憶裝置可為一記憶卡。當一主裝置(例如具有一通用序列匯流排(Universal Serial Bus, USB)埠(port)的多功能行動電話)被連線(link)至該記憶裝置,可能會因為運行於該主裝置上的一或多個程式模組(諸如一開源(open source)軟體解決方案的調整後版本)的錯誤設計而發生錯誤。尤其是,該調整後版本可能係自具有程式錯誤(bug)的一般版本調整得到的,而這樣的主裝置的大部分的製造商可能不會察覺到該程式錯誤或是可能無法處置它。例如,該記憶裝置(例如該記憶卡)的扇區(sector)大小諸如4千位元組(kilobytes, KB)可能與該主裝置的不同。因為該程式錯誤,由該主裝置格式化該記憶裝置可能會不成功,及/或在該主裝置錯誤地更改於該記憶裝置中的檔案系統的某些東西諸如延伸檔案分配表(Extended File Allocation Table,以下簡稱exFAT)以後,於該記憶裝置中現有的資料可能遭到毀損或丟失。由於相關技術並未提供妥善的解決方案以在該主裝置中實施相關控制機制,故需要一種新穎的方法以及相關架構,以在沒有副作用或較不會帶來副作用的情況下解決這些問題。
因此,本發明之一目的在於提供一種用來進行一主裝置與一記憶裝置之間的存取控制的方法,並且提供相關設備(例如一橋接裝置及其橋接控制器),以解決上述問題。
本發明之另一目的在於提供一種用來進行一主裝置與一記憶裝置之間的存取控制的方法,並且提供相關設備(例如一橋接裝置及其橋接控制器),以保護在該記憶裝置中的資料。
本發明至少一實施例提供一種用來進行一主裝置與一記憶裝置之間的存取控制的方法,其中該方法係可應用於(applicable to)用來將該記憶裝置耦接至該主裝置的一橋接裝置。該記憶裝置可包含一非揮發性記憶體(non-volatile memory, NV memory),而該非揮發性記憶體可包含至少一非揮發性記憶體元件。該方法可包含:自該主裝置接收一第一測試指令;因應該第一測試指令,回傳失敗資訊至該主裝置,其中該失敗資訊指出該橋接裝置尚未備妥以供伺服(serve)該主裝置;自該主裝置接收一請求指令:因應該請求指令,回傳裝置相關(device-related)資訊至該主裝置,其中該裝置相關資訊至少指出該記憶裝置的存在;自該主裝置接收一第二測試指令;因應該第二測試指令,回傳通過資訊至該主裝置,其中該通過資訊指出該橋接裝置已備妥以供伺服該主裝置;自該主裝置接收一容量相關(capacity-related)指令;因應該容量相關指令,回報(report)該記憶裝置的一回報邏輯位址(logical address, LA)數量以及該記憶裝置的一回報扇區(sector)大小至該主裝置,其中該回報邏輯位址數量異於該記憶裝置的一真實邏輯位址數量,以及該回報扇區大小異於該記憶裝置的一真實扇區大小;以及在該主裝置透過該橋接裝置對該記憶裝置進行任何存取運作的期間,進行對應於該記憶裝置的一記憶裝置側中的一組邏輯位址的一記憶裝置側邏輯位址格式以及對應於該主裝置的一主裝置側中的一組邏輯位址的一主裝置側邏輯位址格式之間的雙向映射,以容許該主裝置透過該橋接裝置存取於該記憶裝置中的該非揮發性記憶體,其中該記憶裝置的該真實邏輯位址數量等於對應於該記憶裝置的該記憶裝置側中的該組邏輯位址的數量,以及該記憶裝置的該回報邏輯位址數量等於對應於該主裝置的該主裝置側中的該組邏輯位址的數量。
除了上述方法以外,本發明亦提供一種橋接裝置,其中該橋接裝置係用來進行一主裝置與一記憶裝置之間的存取控制。該記憶裝置可包含一非揮發性記憶體,而該非揮發性記憶體可包含至少一非揮發性記憶體元件。該橋接裝置可包含一橋接控制器,而該橋接控制器係用來控制該橋接裝置的運作,以容許該主裝置透過該橋接裝置存取該記憶裝置。例如:該橋接控制器自該主裝置接收一第一測試指令;因應該第一測試指令,該橋接控制器回傳失敗資訊至該主裝置,其中該失敗資訊指出該橋接裝置尚未備妥以供伺服該主裝置;該橋接控制器自該主裝置接收一請求指令:因應該請求指令,該橋接控制器回傳裝置相關資訊至該主裝置,其中該裝置相關資訊至少指出該記憶裝置的存在;該橋接控制器自該主裝置接收一第二測試指令;因應該第二測試指令,該橋接控制器回傳通過資訊至該主裝置,其中該通過資訊指出該橋接裝置已備妥以供伺服該主裝置;該橋接控制器自該主裝置接收一容量相關指令;因應該容量相關指令,該橋接控制器回報該記憶裝置的一回報邏輯位址數量以及該記憶裝置的一回報扇區大小至該主裝置,其中該回報邏輯位址數量異於該記憶裝置的一真實邏輯位址數量,以及該回報扇區大小異於該記憶裝置的一真實扇區大小;以及在該主裝置透過該橋接裝置對該記憶裝置進行任何存取運作的期間,該橋接控制器進行對應於該記憶裝置的一記憶裝置側中的一組邏輯位址的一記憶裝置側邏輯位址格式以及對應於該主裝置的一主裝置側中的一組邏輯位址的一主裝置側邏輯位址格式之間的雙向映射,以容許該主裝置透過該橋接裝置存取於該記憶裝置中的該非揮發性記憶體,其中該記憶裝置的該真實邏輯位址數量等於對應於該記憶裝置的該記憶裝置側中的該組邏輯位址的數量,以及該記憶裝置的該回報邏輯位址數量等於對應於該主裝置的該主裝置側中的該組邏輯位址的數量。
除了上述方法之外,本發明亦提供一種橋接裝置的橋接控制器,其中該橋接裝置包含該橋接控制器,而該橋接控制器係用來控制該橋接裝置的運作。該橋接裝置係用來進行一主裝置與一記憶裝置之間的存取控制。另外,該記憶裝置可包含一非揮發性記憶體,而該非揮發性記憶體可包含至少一非揮發性記憶體元件。該橋接控制器可包含一處理電路,而該處理電路係用來依據來自該主裝置的複數個指令控制該橋接控制器,以容許該主裝置透過該橋接裝置存取該記憶裝置。例如:該橋接控制器自該主裝置接收一第一測試指令;因應該第一測試指令,該橋接控制器回傳失敗資訊至該主裝置,其中該失敗資訊指出該橋接裝置尚未備妥以供伺服該主裝置;該橋接控制器自該主裝置接收一請求指令:因應該請求指令,該橋接控制器回傳裝置相關資訊至該主裝置,其中該裝置相關資訊至少指出該記憶裝置的存在;該橋接控制器自該主裝置接收一第二測試指令;因應該第二測試指令,該橋接控制器回傳通過資訊至該主裝置,其中該通過資訊指出該橋接裝置已備妥以供伺服該主裝置;該橋接控制器自該主裝置接收一容量相關指令;因應該容量相關指令,該橋接控制器回報該記憶裝置的一回報邏輯位址數量以及該記憶裝置的一回報扇區大小至該主裝置,其中該回報邏輯位址數量異於該記憶裝置的一真實邏輯位址數量,以及該回報扇區大小異於該記憶裝置的一真實扇區大小;以及在該主裝置透過該橋接裝置對該記憶裝置進行任何存取運作的期間,該橋接控制器進行對應於該記憶裝置的一記憶裝置側中的一組邏輯位址的一記憶裝置側邏輯位址格式以及對應於該主裝置的一主裝置側中的一組邏輯位址的一主裝置側邏輯位址格式之間的雙向映射,以容許該主裝置透過該橋接裝置存取於該記憶裝置中的該非揮發性記憶體,其中該記憶裝置的該真實邏輯位址數量等於對應於該記憶裝置的該記憶裝置側中的該組邏輯位址的數量,以及該記憶裝置的該回報邏輯位址數量等於對應於該主裝置的該主裝置側中的該組邏輯位址的數量。
本發明的方法及相關設備能確保該記憶裝置能在各種情況下妥善地運作,而不會遭遇到相關技術的問題。例如,該方法提供多個用於存取控制的控制方案。藉助本發明的方法及相關設備,該記憶裝置不會遭受到相關技術中現有的問題,諸如無法成功格式化的問題、資料損壞/丟失的問題等。
本發明至少一實施例提供一種用來進行一主裝置與一記憶裝置之間的存取控制的方法以及設備。該記憶裝置(例如符合一特定通訊標準的記憶卡、或是快閃儲存裝置)可包含一記憶體控制器以用來控制該記憶裝置的運作,且可另包含一非揮發性記憶體(non-volatile memory, NV memory)諸如一快閃記憶體以用來儲存資料,其中該非揮發性記憶體可包含一或多個非揮發性記憶體元件(例如一或多個快閃記憶體裸晶、或一或多個快閃記憶體晶片)。另外,一橋接裝置(例如一通用序列匯流排(Universal Serial Bus, 以下簡稱USB)橋接裝置)可耦接於該主裝置(例如具有一USB埠的多功能行動電話、平板電腦等)與該記憶裝置(例如該記憶卡或該快閃儲存裝置)之間。該橋接裝置可包含:一橋接控制器,用來控制該橋接裝置的運作;用來將該記憶裝置設置於該橋接裝置的插槽(slot);一記憶體諸如一唯讀記憶體(Read-Only Memory, ROM)(例如電子可抹除可編程唯讀記憶體(Electrically-Erasable Programmable Read-Only Memory,以下簡稱EEPROM)),其可作為該橋接控制器的一外部記憶體;以及一或多個連接器。該橋接裝置的該橋接控制器可依據該方法控制該橋接裝置的運作。依據某些實施例,該設備可包含該橋接裝置的至少一部分。例如,該設備可包含該橋接裝置中的該橋接控制器。又例如,該設備可包含該橋接裝置。
第1圖為依據本發明一實施例之一橋接裝置諸如一USB橋接裝置60的示意圖。該橋接裝置諸如USB橋接裝置60可耦接於一主裝置與一記憶裝置之間。為便於理解,該主裝置可為具有一USB埠的一USB主裝置諸如一多功能行動電話、一平板電腦等,而該記憶裝置可為一記憶卡諸如一保全數位(Secure Digital,以下簡稱SD)卡或一快閃儲存裝置諸如一通用型快閃記憶體儲存(Universal Flash Storage,以下簡稱UFS)裝置,其中該SD卡可符合一組SD相關(SD-related)標準(例如SD標準、SD高容量(SD High Capacity, SDHC)標準、SD超大容積(SD eXtended Capacity, SDXC)標準等),尤其,可被分類為超高速(Ultra High Speed, UHS)一類(UHS-I),而該UFS裝置可符合UFS標準,但本發明不限於此。
如第1圖所示,USB橋接裝置60可包含一橋接控制器諸如USB橋接控制器61,且可包含至少一記憶體諸如一或多個內部整合電路(Inter-Integrated Circuit,以下簡稱I2 C)相容(I2 C-compatible)唯讀記憶體,其可統稱為I2 C唯讀記憶體62(例如EEPROM),且可另包含連接器67及69、以及至少一插槽諸如一或多個插槽(其可統稱為插槽68),而連接器69可被整合在插槽68中。該橋接控制器諸如USB橋接控制器61可包含一處理電路諸如一微處理器71、一或多個記憶體諸如一靜態隨機存取記憶體(Static Random Access Memory, SRAM)72(在第1圖中標示為SRAM以求簡明)及一唯讀記憶體73(在第1圖中標示為ROM以求簡明)、一介面(interface, IF)電路74(在第1圖中標示為I/F以求簡明)、一或多個實體層(physical layer, PHY)電路諸如USB極速實體層(USB SuperSpeed PHY)電路75及行動產業處理器介面(Mobile Industry Processor Interface,以下簡稱MIPI)M實體層(M-PHY)電路79、一或多個相關控制電路諸如一USB 3.0媒體存取控制(Media Access Control,以下簡稱MAC)電路76、一UFS主控制器77、及一統一協定(Unified Protocol,以下簡稱UniPro)電路78、以及一SD主控制器80,而這些元件可互相耦接,例如透過一系統匯流排70互相耦接,其中USB極速實體層電路75以及MIPI M實體層電路79可分別符合USB標準以及MIPI標準,而USB 3.0 MAC電路76、UFS主控制器77以及UniPro電路78可分別符合USB 3.0標準、UFS標準、以及MIPI UniPro標準,但本發明不限於此。
依據本實施例,USB橋接控制器61可用來控制USB橋接裝置60的運作,I2 C唯讀記憶體62(例如EEPROM)可作為USB橋接控制器61的一外部記憶體,連接器67可用來將USB橋接裝置60(尤其,USB橋接控制器61)耦接至該主裝置(例如該USB主裝置),插槽68可用來將該記憶裝置(例如該SD卡或該UFS裝置)設置在USB橋接裝置60上,而連接器69可用來將該記憶裝置(例如該SD卡或該UFS裝置)耦接至USB橋接裝置60(尤其,USB橋接控制器61)。
另外,該處理電路諸如微處理器71可控制USB橋接控制器61的運作,例如,藉助於運行在微處理器71上的至少一組程式碼來控制USB橋接裝置60。例如,上述至少一組程式碼可包含自唯讀記憶體73載入的一第一組程式碼及/或透過介面電路74自I2 C唯讀記憶體62載入的一第二組程式碼,但本發明不限於此。靜態隨機存取記憶體72可用來在需要時為USB橋接裝置60(尤其,USB橋接控制器61)儲存資訊。
第2圖依據本發明一實施例繪示一電子系統,其中該電子系統可包含該橋接裝置諸如第1圖所示之USB橋接裝置60,且可另包含一主裝置50以及一記憶裝置100,其可分別代表第1圖所示之實施例中所述主裝置與記憶裝置。主裝置50、USB橋接裝置60、以及記憶裝置100可分別作為上述主裝置、橋接裝置以及記憶裝置的例子,而上述設備可包含USB橋接裝置60的至少一部分(例如一部分或全部)。
依據本實施例,記憶裝置100可包含一記憶體控制器110以及一非揮發性記憶體120,其中記憶體控制器110係用來控制記憶裝置100的運作以及存取非揮發性記憶體120,而非揮發性記憶體120係用來儲存資訊。非揮發性記憶體120可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件),諸如複數個非揮發性記憶體元件122-1、122-2、…、及122-N,其中N可代表大於1的正整數。例如,非揮發性記憶體120可為一快閃記憶體,而該複數個非揮發性記憶體元件122-1、122-2、…、及122-N可為複數個快閃記憶體晶片或複數個快閃記憶體裸晶,但本發明不限於此。
如第2圖所示,記憶體控制器110可包含一處理電路諸如微處理器112、一儲存單元諸如一唯讀記憶體112M、一控制邏輯電路114、一隨機存取記憶體116、以及一傳輸介面電路118,其中以上元件可透過一匯流排互相耦接。隨機存取記憶體116可用來提供內部儲存空間給記憶體控制器110。例如,隨機存取記憶體116可作為一緩衝記憶體以供緩衝資料。另外,本實施例的唯讀記憶體112M可用來儲存一程式碼112C,而微處理器112係用來執行程式碼112C以控制非揮發性記憶體120(例如快閃記憶體)的存取。請注意,在某些例子中,程式碼112C可被儲存在隨機存取記憶體116或任意類型的記憶體。此外,在控制邏輯電路114中的一資料保護電路(未顯示)可保護資料及/或進行錯誤更正,而傳輸介面電路118可符合一特定通訊標準(例如UFS標準或SD標準),並且可依據該特定通訊標準進行通訊,例如,為記憶裝置100來與USB橋接裝置60進行通訊。
第3圖依據本發明一實施例繪示用來進行一主裝置與一記憶裝置(諸如以上提及者,例如主裝置50以及記憶裝置100)之間的存取控制的方法的寫入控制方案,其中該方法可應用於第1圖所示之架構(例如USB橋接裝置60以及USB橋接控制器61)以及第2圖所示之電子系統。USB橋接控制器61(例如該處理電路諸如執行上述至少一組程式碼的微處理器71)可依據該方法控制USB橋接裝置60的運作。例如,上述至少一組程式碼(例如分別被預先儲存在唯讀記憶體73與I2 C唯讀記憶體62中的該第一組程式碼與該第二組程式碼中的一或兩者)可對應於該方法。
以該UFS裝置為記憶裝置100的例子,在記憶裝置側諸如UFS側的一組邏輯位址(例如邏輯區塊位址{LBA(0), LBA(1), …},其可分別寫為邏輯位址{LBA0, LBA1, …}以求簡明)可代表利用於USB橋接控制器61(例如其內的微處理器71)與記憶裝置100(例如該UFS裝置)之間的邏輯位址,以供USB橋接裝置60依據這組邏輯位址存取記憶裝置100,而在主裝置側諸如USB側的一組邏輯位址(例如邏輯區塊位址{{Lba(0), Lba(1), Lba(2), Lba(3), Lba(4), Lba(5), Lba(6), Lba(7)}, {Lba(8), Lba(9), Lba(10), Lba(11), Lba(12), Lba(13), Lba(14), Lba(15)}, …},其可分別寫為邏輯位址{{Lba0, Lba1, Lba2, Lba3, Lba4, Lba5, Lba6, Lba7}, {Lba8, Lba9, Lba10, Lba11, Lba12, Lba13, Lba14, Lba15}, …}以求簡明)可代表利用於USB橋接控制器61(例如其內的微處理器71)與主裝置50(例如該USB主裝置)之間的邏輯位址,以供主裝置50依據這組邏輯位址透過USB橋接裝置60存取記憶裝置100,但本發明不限於此。依據某些實施例,該SD卡可作為記憶裝置100的例子,而該UFS側可取代為SD側。
依據本實施例,在USB橋接控制器61(例如該處理電路諸如執行上述至少一組程式碼的微處理器71)的控制下,在主裝置50透過USB橋接裝置60對記憶裝置100進行任何存取運作(例如一讀取運作或一寫入運作)的期間,USB橋接裝置60可進行該記憶裝置側(諸如該UFS側)中的該組邏輯位址(例如邏輯位址{LBA0, LBA1, …})的一記憶裝置側邏輯位址格式以及該主裝置側(諸如該USB側)中的該組邏輯位址(例如邏輯位址{{Lba0, Lba1, Lba2, Lba3, Lba4, Lba5, Lba6, Lba7}, {Lba8, Lba9, Lba10, Lba11, Lba12, Lba13, Lba14, Lba15}, …})的一主裝置側邏輯位址格式之間的雙向映射。為便於理解,記憶裝置100的扇區(sector)大小SIZE_m可為4千位元組(kilobytes,以下簡稱KB),而主裝置50的扇區大小SIZE_h可為0.5 KB,即512位元組(byte,以下簡稱B),其中該記憶裝置側邏輯位址格式以及該主裝置側邏輯位址格式可分別為4-KB格式以及0.5-KB格式,但本發明不限於此。
第4圖繪示4-KB控制方案的例子。在這個例子中,該記憶裝置側諸如該UFS側的扇區大小SIZE_m可視為對該主裝置側諸如該USB側是透明(transparent)的,且可等於4 KB。依據該4-KB控制方案來實施的橋接裝置不會進行上述雙向映射,因而會將來自主裝置50的全部邏輯位址旁通(bypass)至記憶裝置100而不會更改這些邏輯位址,其中該橋接裝置的一USB實體層電路可進行從該橋接裝置至主裝置50的USB直接記憶體存取(direct memory access, DMA)的運作(於第4圖中標示「USB DMA至主機」,以求簡明),但本發明不限於此。為便於理解,假設主裝置50的製造商並未察覺到上述程式錯誤或是無法處置它,而上述程式錯誤尚未從運行於主裝置50上的程式模組(諸如上述開源軟體解決方案的該調整後版本)移除。因為這個程式錯誤,主裝置50可能錯誤地更改了在記憶裝置100中的檔案系統的某些東西,諸如其延伸檔案分配表(Extended File Allocation Table,以下簡稱exFAT)。由於對應於上述程式錯誤的錯誤設計通常都存在於市面上的許多主裝置產品中,當一使用者使用這個橋接裝置時,該使用者可能遭遇到相關技術中現有的問題,諸如格式化不成功的問題、資料損毀/丟失的問題等。
依據某些實施例,在符合一特定標準(諸如UFS標準)的一儲存裝置(例如該快閃儲存裝置諸如該UFS裝置)位於該UFS側的情況下,該儲存裝置可以4 KB為存取單位來存取資料,而不是以另一存取單位諸如512 B或1 KB來存取資料,否則,該儲存資料無法完成存取一組資料(諸如對應於該另一存取單元的資料)的運作。因此,改變在該UFS側的該存取單元(例如扇區大小)無法應用於該儲存裝置。假設該4-KB控制方案被採用且該記憶裝置側諸如該UFS側的扇區大小SIZE_m對該主裝置側諸如該USB側是透明的,該儲存裝置可能因為上述程式錯誤而無法排除相關技術的問題,這些問題就因此留著而沒有被解決。
第5圖依據本發明一實施例繪示該方法的讀取控制方案。假設主裝置50將要讀取在邏輯位址Lba13的目標資料(例如512 B的資料),基於該雙向映射的映射關係,USB橋接控制器61(例如該處理電路諸如執行上述至少一組程式碼的微處理器71)可控制USB橋接裝置60從記憶裝置100讀取在邏輯位址LBA1的較大量的資料(例如4 KB的資料,在第5圖中標示為4K以求簡明),並且自該較大量的資料(例如4 KB的資料)提取該目標資料(例如512 B的資料)以供主裝置50讀取,其中該較大量的資料可暫時地放置於靜態隨機存取記憶體72中的分時緩衝器(time sharing buffer,以下簡稱TSB)中,以供微處理器71從中提取該目標資料。在某些例子中,該一或多個實體層電路諸如USB極速實體層電路75可自UFS橋接裝置60至主裝置50地進行USB手動模式存取(USB Manual mode access)的運作(在第5圖中標示為「至主機USB手動模式」以求簡明),但本發明不限於此。
依據本實施例,在USB橋接控制器61(例如該處理電路諸如執行上述至少一組程式碼的微處理器71)的控制下,USB橋接裝置60可阻隔記憶裝置100的真實扇區大小SIZE_m(例如4 KB)以使得真實扇區大小SIZE_m對該主裝置側諸如該USB側來說變得不透明,尤其,可回報記憶裝置100的回報扇區大小SIZE_m_r(例如512 B,即0.5 KB)至主裝置50,因此主裝置50可將記憶裝置100當作與主裝置50分別具有相同的扇區大小以及相同的邏輯位址格式(例如0.5 KB以及該0.5-KB格式)來處置記憶裝置100,以跳過執行對應於該程式錯誤的錯誤程式模組(尤其,避免執行上述錯誤程式模組)。舉例來說,SIZE_m_r = SIZE_h。
請注意,該雙向映射的映射關係可包含於該主裝置側諸如該USB側的至少一邏輯位址(例如邏輯位址Lba13)與於該記憶裝置側諸如該UFS側的相關邏輯位址中的至少一子邏輯位址(sub-LA)(例如在邏輯位址LBA1當中的對應於邏輯位址Lba13的一或多個子邏輯位址(sub-LA),諸如對應於該目標資料者)。因此,主裝置50可在主裝置側諸如該USB側的該組邏輯位址的任一邏輯位址Lba#Xh(例如邏輯位址{{Lba0, Lba1, Lba2, Lba3, Lba4, Lba5, Lba6, Lba7}, {Lba8, Lba9, Lba10, Lba11, Lba12, Lba13, Lba14, Lba15}, …}的其中一者)透過USB橋接裝置60存取記憶裝置100。
依據某些實施例,USB橋接控制器61(例如該處理電路諸如執行上述至少一組程式碼的微處理器71)可進行在該主裝置側諸如該USB側的一邏輯位址Lba(Xh)(例如邏輯區塊位址{{Lba(0), Lba(1), Lba(2), Lba(3), Lba(4), Lba(5), Lba(6), Lba(7)}, {Lba(8), Lba(9), Lba(10), Lba(11), Lba(12), Lba(13), Lba(14), Lba(15)}, …}中的任一邏輯位址,諸如邏輯位址{{Lba0, Lba1, Lba2, Lba3, Lba4, Lba5, Lba6, Lba7}, {Lba8, Lba9, Lba10, Lba11, Lba12, Lba13, Lba14, Lba15}, …}中的任一者)與在該記憶裝置側諸如該UFS側之包含有相關邏輯位址LBA(Xm)及對應的子邏輯位址SLA(Ym)的一混合邏輯位址{LBA(Xm), SLA(Ym)}(例如混合邏輯位址{{{LBA(0), SLA(0)}, …, {LBA(0), SLA(7)}}, {{LBA(1), SLA(0)}, …, {LBA(1), SLA(7)}}, …}中的任一混合邏輯位址)之間的映射。
符號Xh可為落在區間[0, (Xh_CNT - 1)]內的整數,而Xh_CNT可代表記憶裝置100的在該主裝置側諸如該USB側的可用邏輯位址的總數量(例如該系列的邏輯位址{Lba0, Lba1, Lba2, Lba3, Lba4, Lba5, Lba6, Lba7, Lba8, Lba9, Lba10, Lba11, Lba12, Lba13, Lba14, Lba15}中的邏輯位址的總數量),諸如記憶裝置100的在該主裝置側諸如該USB側的扇區的總數量。另外,符號Xm可為落在區間[0, (Xm_CNT - 1)]內的整數,而Xm_CNT可代表記憶裝置100的在該記憶裝置側諸如該UFS側的扇區級(sector level)中的可用邏輯位址的總數量(例如該系列的邏輯位址{LBA0, LBA1, …}中的邏輯位址的總數量),諸如記憶裝置的在該記憶裝置側諸如該UFS側的扇區的總數量。符號Ym可為落在區間[0, (Ym_CNT - 1)]內的整數,而Ym_CNT可代表對應於邏輯位址LBA(Xm)的扇區的可用子邏輯位址的總數量,諸如這個扇區內的局部扇區(partial sector)的總數量,其中(Xm_CNT * Ym_CNT) = Xh_CNT。例如,假設S_RATIO代表記憶裝置100的扇區大小SIZE_m對主裝置50的扇區大小SIZE_h的比值(SIZE_m / SIZE_h),且可為整數,符號Xm及Ym可由以下式子表示: Xm = (Xh / S_RATIO);以及 Ym = Xh mod S_RATIO; 其中符號mod可代表模除(modulo)運作。用來取得Xm的除法運作可為整數除法諸如以一程式語言(例如C語言)的觀點下的整數除法,但本發明不限於此。例如,當SIZE_m = 4 (KB)且SIZE_h = 0.5 (KB)時,S_RATIO = (SIZE_m / SIZE_h) = 8。在此狀況下,來自記憶裝置100之於邏輯位址LBA1的該較大量的資料(例如4 KB的資料,在第5圖中標示為4K)可包含:在分別對應於邏輯位址{Lba8, Lba9, Lba10, Lba11, Lba12, Lba13, Lba14, Lba15}的子邏輯位址{SLA0, SLA1, SLA2, SLA3, SLA4, SLA5, SLA6, SLA7}的八組子資料。能依據子邏輯位址{SLA0, SLA1, SLA2, SLA3, SLA4, SLA5, SLA6, SLA7}分別存取該八組子資料的USB橋接控制器61(例如該處理電路諸如執行上述至少一組程式碼的微處理器71)可依據該子邏輯位址SLA5自該八組子資料提取混合邏輯位址{LBA1, SLA5}(其包含邏輯位址LBA1以及子邏輯位址SLA5)的該目標資料。
第6圖依據本發明一實施例繪示該讀取控制方案的頭部處理的某些實施細節。假設主裝置50將要讀取在邏輯位址{Lba13, Lba14, Lba15, …, Lba140}的目標資料(例如(512 * 128) B的資料、或(0.5 *128) KB的資料,即64 KB),基於該雙向映射的映射關係,USB橋接控制器61(例如該處理電路諸如執行上述至少一組程式碼的微處理器71)可控制USB橋接裝置60自記憶裝置100讀取於邏輯位址{LBA1, …, LBA17}之較大量的資料(例如68 KB的資料),並且自該較大量的資料(例如68 KB的資料)提取該目標資料(例如64 KB的資料),以供主裝置50讀取。例如,因應來自USB橋接裝置60之用來存取邏輯位址{LBA1, …, LBA17}的請求,記憶裝置100可準備該較大量的資料(例如68 KB的資料),其中自邏輯位址LBA1開始之該較大量的資料可被暫時放置在靜態隨機存取記憶體72中的TSB中,該較大量資料的起始部分(例如對應於邏輯位址LBA1的4 KB的資料)於步驟#1中被暫時放置於該TSB中(在第6圖中標示為「UFS自LBA1讀取資料至TSB,長度68 KB」以便於理解),以供微處理器71從中提取該目標資料。
於該頭部處理的期間,在USB橋接控制器61的控制下,在步驟#2中,USB橋接裝置60可自該較大量的資料的前4-KB資料(即首先的4-KB資料)取得對應於邏輯位址{Lba13, Lba14, Lba15}的頭部資料諸如1.5 KB的資料(在第6圖中標示為「USB自Lba13讀取」以便於理解),並且可捨棄在該前4-KB資料中的對應於邏輯位址{Lba8, Lba9, Lba10, Lba11, Lba12}的其它資料諸如2.5 KB的資料(在第6圖中標示為「丟掉在TSB中的2.5 KB資料」以便於理解)。因為USB橋接控制器61在步驟#3所觸發的一或多個自動直接記憶體存取運作,主裝置50可從邏輯位址Lba13開始讀取該目標資料諸如64 KB的資料(在第6圖中標示為「自UFS至USB自動直接記憶體存取,長度64 KB」以便於理解),但本發明不限於此。在某些例子中,該一或多個實體層電路諸如USB極速實體層電路75可自UFS橋接裝置60至主裝置50地進行USB自動直接記憶體存取的運作(在第6圖中標示為「自UFS至主機USB自動直接記憶體存取」以求簡明),但本發明不限於此。
第7圖依據本發明一實施例繪示該讀取控制方案的尾部處理的某些實施細節。例如,因應來自USB橋接裝置60之用來存取邏輯位址{LBA1, …, LBA17}的請求,記憶裝置100可準備該較大量的資料(例如68 KB的資料),其中自邏輯位址LBA1開始的該較大量的資料可被暫時放置在該TSB中,其最後的4-KB資料於步驟#4中在邏輯位址LBA17被讀取(在第6圖中標示為「UFS最後的LBA為LBA17」以便於理解),以供微處理器71從中提取該目標資料。
於該尾部處理的期間,在USB橋接控制器61的控制下,USB橋接裝置60可在步驟#5中自該較大量的資料的最後4-KB資料取得對應於邏輯位址{Lba136, Lba137, Lba138, Lba139, Lba140}的尾部資料諸如2.5 KB的資料(在第7圖中標示為「USB最後的Lba為Lba140」以便於理解),並且可捨棄在該最後4-KB資料中的對應於邏輯位址{Lba141, Lba142, Lba143}的其它資料諸如1.5 KB的資料(在第7圖中標示為「丟掉1.5 KB」以便於理解)。因為USB橋接控制器61所觸發的一或多個自動直接記憶體存取運作,主裝置50可讀取在邏輯位址{Lba13, …, Lba140}的該目標資料(例如64 KB的資料),但本發明不限於此。
第8圖依據本發明一實施例繪示上述主裝置與橋接裝置(諸如第2圖所示之主裝置50以及第1圖與第2圖所示之USB橋接裝置60)之間的一系列互動。例如,在USB橋接控制器61的控制下,USB橋接裝置60可依據如第9圖所示之該方法的工作流程來進行如第8圖所示之運作。為便於理解,USB橋接裝置60可符合小型電腦系統介面(Small Computer System Interface, SCSI)標準,並且可發送在指令狀態包裝(Command Status Wrapper, CSW)中的狀態資訊給主裝置50,但本發明不限於此。
在步驟S11中,由於主裝置50可發送一第一測試單元備妥(Test Unit Ready)指令(在第8圖中的第一個向右指的箭號標示為「測試單元備妥指令」以求簡明)至USB橋接裝置60,因此USB橋接裝置60(例如USB橋接控制器61)可自主裝置50接收該第一測試單元備妥指令。
在步驟S12中,因應該第一測試單元備妥指令,USB橋接裝置60(例如USB橋接控制器61)可回傳指令狀態包裝失敗(CSW Fail)的回覆至主裝置50。
在步驟S13中,由於主裝置50可發送一請求感測(Request Sense)指令至USB橋接裝置60,因此USB橋接裝置60(例如USB橋接控制器61)可自主裝置50接收該請求感測指令。
在步驟S14中,因應該請求感測指令,USB橋接裝置60(例如USB橋接控制器61)可回傳媒體改變與UFS卡插入的回覆(在第8圖中標示為「媒體改變、UFS卡插入」以求簡明)至主裝置50,例如,在記憶裝置100諸如該UFS裝置(例如一UFS卡)已被插入至插槽68中的情況下。
在步驟S21中,由於主裝置50可發送一第二測試單元備妥指令(在第8圖中的第三個向右指的箭號標示為「測試單元備妥指令」以求簡明)至USB橋接裝置60,USB橋接裝置60(例如USB橋接控制器61)可自主裝置50接收該第二測試單元備妥指令。
在步驟S22中,因應該第二測試單元備妥指令,USB橋接裝置60(例如USB橋接控制器61)可回傳指令狀態包裝通過(CSW Pass)的回覆至主裝置50。
在步驟S31中,由於主裝置50可發送一讀取容量(Read Capacity)指令至USB橋接裝置60,故USB橋接裝置60(例如USB橋接控制器61)可自主裝置50接收該讀取容量指令。
在步驟S32中,因應該讀取容量指令,USB橋接裝置60(例如USB橋接控制器61)可回報記憶裝置100的一回報邏輯位址數量LA_CNT_r(例如LA_CNT_r = (Xm_CNT * S_RATIO))以及記憶裝置100的一回報扇區大小SIZE_m_r(例如512 B,即0.5 KB)至主裝置50(在第8圖中標示為「回報(Total_#_of_sectors)x8,扇區長度512 B」以求簡明,其中「Total_#_of_sectors」可代表在該記憶裝置側諸如該UFS側的扇區總數(例如Xm_CNT),而「x8」可代表乘以S_RATIO(例如S_RATIO = 8))。依據本實施例,記憶裝置100的回報邏輯位址數量LA_CNT_r可代表一回報的扇區數量,並且可等於在該記憶裝置側的扇區總數(例如Xm_CNT)乘以S_RATIO。例如,該回報的扇區數量(例如第8圖所示之「(Total_#_of_sectors)x8」)可等於該扇區總數(例如第8圖所示之「Total_#_of_sectors」)乘以S_RATIO(例如S_RATIO = 8)。
在步驟S33中,由於主裝置50可發送一讀取指令至USB橋接裝置60,因此USB橋接裝置60(例如USB橋接控制器61)可自主裝置50接收該讀取指令。例如,因應該讀取指令,USB橋接裝置60可基於該雙向映射的映射關係來讀取資料(例如在以上實施例中的一或多者中的目標資料)。
在步驟S34中,由於主裝置50可發送一寫入指令至USB橋接裝置60,並且可發送用來更新在該檔案系統中的exFAT位元映像(bitmap)以及檔案目錄條目(file directory entry)的請求(在第8圖中標示為「更新exFAT位元映像、檔案目錄條目」以求簡明),因此USB橋接裝置60(例如USB橋接控制器61)可自主裝置50接收該寫入指令,並且可控制記憶裝置100更新在該檔案系統中的該exFAT位元映像以及該檔案目錄條目。
為便於理解,該方法可由第9圖所示之工作流程說明,但本發明不限於此。依據某些實施例,第9圖所示之工作流程中的一或多個步驟可被新增、刪除、或修改。
依據本實施例,在USB橋接控制器61(例如該處理電路諸如執行上述至少一組程式碼的微處理器71)的控制下,USB橋接裝置60可將記憶裝置100的回報邏輯位址數量LA_CNT_r以及回報扇區大小SIZE_m_r回報至主裝置50,且因此主裝置50可將記憶裝置100當作分別具有與主裝置50相同的扇區大小以及相同的邏輯位址格式(例如0.5 KB以及該0.5-KB格式)來處置記憶裝置100,以跳過執行對應於該程式錯誤的錯誤程式模組(尤其,避免執行上述錯誤程式模組)。為簡明起見,此實施例中與先前實施例類似的說明在此不重複贅述。
依據某些實施例,在該橋接控制器諸如USB橋接控制器61的控制下,該橋接裝置諸如USB橋接裝置60係用來進行主裝置50與記憶裝置100之間的存取控制。該橋接控制器諸如USB橋接控制器61係用來控制該橋接裝置諸如USB橋接裝置60的運作,以容許主裝置50透過該橋接裝置存取記憶裝置100。例如,USB橋接裝置60自主裝置50接收一第一測試指令;因應該第一測試指令,USB橋接裝置60回傳失敗資訊至主裝置50,其中該失敗資訊可指出USB橋接裝置60尚未備妥以供伺服(serve)主裝置50;USB橋接裝置60自主裝置50接收一請求指令:因應該請求指令,USB橋接裝置60回傳裝置相關(device-related)資訊至主裝置50,其中該裝置相關資訊至少指出記憶裝置100的存在,尤其,可指出記憶裝置100已被設置在USB橋接裝置60;USB橋接裝置60自主裝置50接收一第二測試指令;因應該第二測試指令,USB橋接裝置60回傳通過資訊至主裝置50,其中該通過資訊可指出USB橋接裝置60已備妥以供伺服主裝置50,尤其,可指出已設置有記憶裝置100的USB橋接裝置60已備妥以供伺服主裝置50;USB橋接裝置60自主裝置50接收一容量相關(capacity-related)指令;因應該容量相關指令,USB橋接裝置60回報記憶裝置100的一回報邏輯位址數量以及記憶裝置100的一回報扇區大小至主裝置50,其中該回報邏輯位址數量異於記憶裝置100的一真實邏輯位址數量,以及該回報扇區大小異於記憶裝置100的一真實扇區大小;以及在主裝置50透過USB橋接裝置60對記憶裝置100進行任何存取運作的期間,USB橋接裝置60進行對應於記憶裝置100的一記憶裝置側中的一組邏輯位址的一記憶裝置側邏輯位址格式以及對應於主裝置50的一主裝置側中的一組邏輯位址的一主裝置側邏輯位址格式之間的雙向映射,以容許主裝置50透過USB橋接裝置60存取於記憶裝置100中的非揮發性記憶體120,其中記憶裝置100的該真實邏輯位址數量等於對應於記憶裝置100的該記憶裝置側中的該組邏輯位址的數量,以及記憶裝置100的該回報邏輯位址數量等於對應於主裝置50的該主裝置側中的該組邏輯位址的數量。為簡明起見,這些實施例中與先前實施例類似的說明在此不重複贅述。
依據某些實施例,該第一測試指令以及該第二測試指令的每一者係一測試單元備妥指令(例如分別於步驟S11與S21中所述第一測試單元備妥指令以及第二測試單元備妥指令)。例如,該失敗資訊包含指令狀態包裝失敗的回覆(例如於步驟S12中所述指令狀態包裝失敗的回覆),以及該通過資訊包含指令狀態包裝通過的回覆(例如於步驟S22中所述指令狀態包裝通過的回覆)。另外,該請求指令係一請求感測指令(例如於步驟S13中所述請求感測指令),以及該容量相關指令係一讀取容量指令(例如於步驟S31中所述讀取容量指令)。例如,該裝置相關資訊包含指出儲存媒體被改變的資訊。又例如,該裝置相關資訊包含指出一UFS裝置被用來當作記憶裝置100的資訊。為簡明起見,這些實施例中與先前實施例類似的說明在此不重複贅述。
依據某些實施例,記憶裝置100的該回報邏輯位址數量係記憶裝置100的該真實邏輯位址數量的倍數。例如,記憶裝置100的該回報邏輯位址數量係記憶裝置100的該真實邏輯位址數量的八倍。另外,記憶裝置100的該真實扇區大小係記憶裝置100的該回報扇區大小的倍數。例如,記憶裝置100的該真實扇區大小係記憶裝置100的該回報扇區大小的八倍。尤其,記憶裝置100的該回報扇區大小等於512位元組,以及記憶裝置100的該真實扇區大小等於4096位元組(或4 KB)。為簡明起見,這些實施例中與先前實施例類似的說明在此不重複贅述。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
50:主裝置 60:USB橋接裝置 61:USB橋接控制器 62:I2C唯讀記憶體 67、69:連接器 68:插槽 70:系統匯流排 71:微處理器 72:靜態隨機存取記憶體 73:唯讀記憶體 74:介面電路 75:USB極速實體層電路 76:USB 3.0 MAC電路 77:UFS主控制器 78:UniPro電路 79:MIPI M實體層電路 80:SD主控制器 100:記憶裝置 110:記憶體控制器 112:微處理器 112M:唯讀記憶體 112C:程式碼 114:控制邏輯電路 116:隨機存取記憶體 118:傳輸介面電路 120:非揮發性記憶體 122-1、122-2、…、122-N:非揮發性記憶體元件 LBA0、LBA1、…、LBA17、Lba0、Lba1、Lba2、Lba3、Lba4、Lba5、Lba6、Lba7、Lba8、Lba9、Lba10、Lba11、Lba12、Lba13、Lba14、Lba15、Lba136、Lba137、Lba138、Lba139、Lba140、Lba141、Lba142、Lba143:邏輯位址 S11、S12、S13、S14、S21、S22、S31、S32、S33、S34:步驟
第1圖為依據本發明一實施例之一橋接裝置的示意圖。 第2圖依據本發明一實施例繪示一電子系統,其中該電子系統可包含該橋接裝置。 第3圖依據本發明一實施例繪示用來進行一主裝置與一記憶裝置之間的存取控制的方法的寫入控制方案。 第4圖繪示4-KB控制方案的例子。 第5圖依據本發明一實施例繪示該方法的讀取控制方案。 第6圖依據本發明一實施例繪示該讀取控制方案的頭部處理的某些實施細節。 第7圖依據本發明一實施例繪示該讀取控制方案的尾部處理的某些實施細節。 第8圖依據本發明一實施例繪示該主裝置與該橋接裝置之間的一系列互動。 第9圖依據本發明一實施例繪示用來進行該主裝置與該記憶裝置之間的存取控制的方法的工作流程。
60:USB橋接裝置
61:USB橋接控制器
62:I2C唯讀記憶體
67、69:連接器
68:插槽
70:系統匯流排
71:微處理器
72:靜態隨機存取記憶體
73:唯讀記憶體
74:介面電路
75:USB極速實體層電路
76:USB 3.0 MAC電路
77:UFS主控制器
78:UniPro電路
79:MIPI M實體層電路
80:SD主控制器

Claims (20)

  1. 一種用來進行一主裝置與一記憶裝置之間的存取控制的方法,該方法係可應用於(applicable to)用來將該記憶裝置耦接至該主裝置的一橋接裝置,該記憶裝置包含一非揮發性記憶體(non-volatile memory, NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件,該方法包含: 自該主裝置接收一第一測試指令; 因應該第一測試指令,回傳失敗資訊至該主裝置,其中該失敗資訊指出該橋接裝置尚未備妥以供伺服(serve)該主裝置; 自該主裝置接收一請求指令: 因應該請求指令,回傳裝置相關(device-related)資訊至該主裝置,其中該裝置相關資訊至少指出該記憶裝置的存在; 自該主裝置接收一第二測試指令; 因應該第二測試指令,回傳通過資訊至該主裝置,其中該通過資訊指出該橋接裝置已備妥以供伺服該主裝置; 自該主裝置接收一容量相關(capacity-related)指令; 因應該容量相關指令,回報該記憶裝置的一回報邏輯位址(logical address, LA)數量以及該記憶裝置的一回報扇區(sector)大小至該主裝置,其中該回報邏輯位址數量異於該記憶裝置的一真實邏輯位址數量,以及該回報扇區大小異於該記憶裝置的一真實扇區大小;以及 在該主裝置透過該橋接裝置對該記憶裝置進行任何存取運作的期間,進行對應於該記憶裝置的一記憶裝置側中的一組邏輯位址的一記憶裝置側邏輯位址格式以及對應於該主裝置的一主裝置側中的一組邏輯位址的一主裝置側邏輯位址格式之間的雙向映射,以容許該主裝置透過該橋接裝置存取於該記憶裝置中的該非揮發性記憶體,其中該記憶裝置的該真實邏輯位址數量等於對應於該記憶裝置的該記憶裝置側中的該組邏輯位址的數量,以及該記憶裝置的該回報邏輯位址數量等於對應於該主裝置的該主裝置側中的該組邏輯位址的數量。
  2. 如申請專利範圍第1項所述之方法,其中該第一測試指令以及該第二測試指令的每一者係一測試單元備妥(Test Unit Ready)指令,該請求指令係一請求感測(Request Sense)指令,以及該容量相關指令係一讀取容量(Read Capacity)指令。
  3. 如申請專利範圍第1項所述之方法,其中該第一測試指令以及該第二測試指令的每一者係一測試單元備妥(Test Unit Ready)指令,該失敗資訊包含一指令狀態包裝(Command Status Wrapper)失敗的回覆,以及該通過資訊包含一指令狀態包裝通過的回覆。
  4. 如申請專利範圍第1項所述之方法,其中該請求指令係一請求感測(Request Sense)指令,以及該裝置相關資訊包含指出儲存媒體被改變的資訊。
  5. 如申請專利範圍第1項所述之方法,其中該請求指令係一請求感測(Request Sense)指令,以及該裝置相關資訊包含指出一通用型快閃記憶體儲存(Universal Flash Storage)裝置被用來當作該記憶裝置的資訊。
  6. 如申請專利範圍第1項所述之方法,其中該記憶裝置的該回報邏輯位址數量係該記憶裝置的該真實邏輯位址數量的倍數。
  7. 如申請專利範圍第6項所述之方法,其中該記憶裝置的該回報邏輯位址數量係該記憶裝置的該真實邏輯位址數量的八倍。
  8. 如申請專利範圍第1項所述之方法,其中該記憶裝置的該真實扇區大小係該記憶裝置的該回報扇區大小的倍數。
  9. 如申請專利範圍第8項所述之方法,其中該記憶裝置的該真實扇區大小係該記憶裝置的該回報扇區大小的八倍。
  10. 如申請專利範圍第8項所述之方法,其中該記憶裝置的該回報扇區大小等於512位元組(byte),以及該記憶裝置的該真實扇區大小等於4096位元組。
  11. 一種橋接裝置,用來進行一主裝置與一記憶裝置之間的存取控制,該記憶裝置包含一非揮發性記憶體(non-volatile memory, NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件,該橋接裝置包含: 一橋接控制器,用來控制該橋接裝置的運作,以容許該主裝置透過該橋接裝置存取該記憶裝置,其中: 該橋接控制器自該主裝置接收一第一測試指令; 因應該第一測試指令,該橋接控制器回傳失敗資訊至該主裝置,其中該失敗資訊指出該橋接裝置尚未備妥以供伺服(serve)該主裝置; 該橋接控制器自該主裝置接收一請求指令: 因應該請求指令,該橋接控制器回傳裝置相關(device-related)資訊至該主裝置,其中該裝置相關資訊至少指出該記憶裝置的存在; 該橋接控制器自該主裝置接收一第二測試指令; 因應該第二測試指令,該橋接控制器回傳通過資訊至該主裝置,其中該通過資訊指出該橋接裝置已備妥以供伺服該主裝置; 該橋接控制器自該主裝置接收一容量相關(capacity-related)指令; 因應該容量相關指令,該橋接控制器回報該記憶裝置的一回報邏輯位址(logical address, LA)數量以及該記憶裝置的一回報扇區(sector)大小至該主裝置,其中該回報邏輯位址數量異於該記憶裝置的一真實邏輯位址數量,以及該回報扇區大小異於該記憶裝置的一真實扇區大小;以及 在該主裝置透過該橋接裝置對該記憶裝置進行任何存取運作的期間,該橋接控制器進行對應於該記憶裝置的一記憶裝置側中的一組邏輯位址的一記憶裝置側邏輯位址格式以及對應於該主裝置的一主裝置側中的一組邏輯位址的一主裝置側邏輯位址格式之間的雙向映射,以容許該主裝置透過該橋接裝置存取於該記憶裝置中的該非揮發性記憶體,其中該記憶裝置的該真實邏輯位址數量等於對應於該記憶裝置的該記憶裝置側中的該組邏輯位址的數量,以及該記憶裝置的該回報邏輯位址數量等於對應於該主裝置的該主裝置側中的該組邏輯位址的數量。
  12. 如申請專利範圍第11項所述之橋接裝置,其中該第一測試指令以及該第二測試指令的每一者係一測試單元備妥(Test Unit Ready)指令,該請求指令係一請求感測(Request Sense)指令,以及該容量相關指令係一讀取容量(Read Capacity)指令。
  13. 如申請專利範圍第11項所述之橋接裝置,其中該第一測試指令以及該第二測試指令的每一者係一測試單元備妥(Test Unit Ready)指令,該失敗資訊包含一指令狀態包裝(Command Status Wrapper)失敗的回覆,以及該通過資訊包含一指令狀態包裝通過的回覆。
  14. 如申請專利範圍第11項所述之橋接裝置,其中該請求指令係一請求感測(Request Sense)指令,以及該裝置相關資訊包含指出儲存媒體被改變的資訊。
  15. 如申請專利範圍第11項所述之橋接裝置,其中該請求指令係一請求感測(Request Sense)指令,以及該裝置相關資訊包含指出一通用型快閃記憶體儲存(Universal Flash Storage)裝置被用來當作該記憶裝置的資訊。
  16. 一種橋接裝置的橋接控制器,該橋接裝置包含用來控制該橋接裝置的運作的該橋接控制器,該橋接裝置係用來進行一主裝置與一記憶裝置之間的存取控制,該記憶裝置包含一非揮發性記憶體(non-volatile memory, NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件,該橋接控制器包含: 一處理電路,用來依據來自該主裝置的複數個指令控制該橋接控制器,以容許該主裝置透過該橋接裝置存取該記憶裝置,其中: 該橋接控制器自該主裝置接收一第一測試指令; 因應該第一測試指令,該橋接控制器回傳失敗資訊至該主裝置,其中該失敗資訊指出該橋接裝置尚未備妥以供伺服(serve)該主裝置; 該橋接控制器自該主裝置接收一請求指令: 因應該請求指令,該橋接控制器回傳裝置相關(device-related)資訊至該主裝置,其中該裝置相關資訊至少指出該記憶裝置的存在; 該橋接控制器自該主裝置接收一第二測試指令; 因應該第二測試指令,該橋接控制器回傳通過資訊至該主裝置,其中該通過資訊指出該橋接裝置已備妥以供伺服該主裝置; 該橋接控制器自該主裝置接收一容量相關(capacity-related)指令; 因應該容量相關指令,該橋接控制器回報該記憶裝置的一回報邏輯位址(logical address, LA)數量以及該記憶裝置的一回報扇區(sector)大小至該主裝置,其中該回報邏輯位址數量異於該記憶裝置的一真實邏輯位址數量,以及該回報扇區大小異於該記憶裝置的一真實扇區大小;以及 在該主裝置透過該橋接裝置對該記憶裝置進行任何存取運作的期間,該橋接控制器進行對應於該記憶裝置的一記憶裝置側中的一組邏輯位址的一記憶裝置側邏輯位址格式以及對應於該主裝置的一主裝置側中的一組邏輯位址的一主裝置側邏輯位址格式之間的雙向映射,以容許該主裝置透過該橋接裝置存取於該記憶裝置中的該非揮發性記憶體,其中該記憶裝置的該真實邏輯位址數量等於對應於該記憶裝置的該記憶裝置側中的該組邏輯位址的數量,以及該記憶裝置的該回報邏輯位址數量等於對應於該主裝置的該主裝置側中的該組邏輯位址的數量。
  17. 如申請專利範圍第16項所述之橋接控制器,其中該第一測試指令以及該第二測試指令的每一者係一測試單元備妥(Test Unit Ready)指令,該請求指令係一請求感測(Request Sense)指令,以及該容量相關指令係一讀取容量(Read Capacity)指令。
  18. 如申請專利範圍第16項所述之橋接控制器,其中該第一測試指令以及該第二測試指令的每一者係一測試單元備妥(Test Unit Ready)指令,該失敗資訊包含一指令狀態包裝(Command Status Wrapper)失敗的回覆,以及該通過資訊包含一指令狀態包裝通過的回覆。
  19. 如申請專利範圍第16項所述之橋接控制器,其中該請求指令係一請求感測(Request Sense)指令,以及該裝置相關資訊包含指出儲存媒體被改變的資訊。
  20. 如申請專利範圍第16項所述之橋接控制器,其中該請求指令係一請求感測(Request Sense)指令,以及該裝置相關資訊包含指出一通用型快閃記憶體儲存(Universal Flash Storage)裝置被用來當作該記憶裝置的資訊。
TW108140177A 2018-11-08 2019-11-06 用來進行主裝置與記憶裝置之間的存取控制的方法以及設備 TWI710906B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862757172P 2018-11-08 2018-11-08
US62/757,172 2018-11-08
US16/672,509 2019-11-03
US16/672,509 US20200151119A1 (en) 2018-11-08 2019-11-03 Method and apparatus for performing access control between host device and memory device

Publications (2)

Publication Number Publication Date
TW202036301A true TW202036301A (zh) 2020-10-01
TWI710906B TWI710906B (zh) 2020-11-21

Family

ID=70549887

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108140177A TWI710906B (zh) 2018-11-08 2019-11-06 用來進行主裝置與記憶裝置之間的存取控制的方法以及設備

Country Status (3)

Country Link
US (1) US20200151119A1 (zh)
CN (1) CN111159055B (zh)
TW (1) TWI710906B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11544209B2 (en) 2021-03-22 2023-01-03 Kioxia Corporation Semiconductor storage device, memory system, and method
TWI859855B (zh) * 2023-05-12 2024-10-21 慧榮科技股份有限公司 橋接裝置及指令與資料轉移方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7448815B2 (ja) * 2020-06-11 2024-03-13 株式会社バッファロー 情報処理システム、記憶装置、ホスト装置、及びプログラム
CN115048681B (zh) * 2022-05-10 2024-02-20 黄建邦 数据安全保护方法、装置、目标设备及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100450080B1 (ko) * 2001-11-13 2004-10-06 (주)지에스텔레텍 유에스비기반의 이동형 저장장치 및 그 제어방법
US20090193184A1 (en) * 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
US20080046997A1 (en) * 2006-08-21 2008-02-21 Guardtec Industries, Llc Data safe box enforced by a storage device controller on a per-region basis for improved computer security
KR101300657B1 (ko) * 2007-07-06 2013-08-27 삼성전자주식회사 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법
CN101471956B (zh) * 2007-12-28 2011-08-31 英业达股份有限公司 目标端的储存设备状态的识别及动态更新方法
JP4687720B2 (ja) * 2008-01-30 2011-05-25 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN101593156B (zh) * 2008-05-28 2011-09-21 群联电子股份有限公司 多种存储器的管理方法、系统及控制器
CN101661431B (zh) * 2008-08-29 2011-11-09 群联电子股份有限公司 用于快闪存储器的区块管理方法、快闪储存系统及控制器
US8219781B2 (en) * 2008-11-06 2012-07-10 Silicon Motion Inc. Method for managing a memory apparatus, and associated memory apparatus thereof
US8255661B2 (en) * 2009-11-13 2012-08-28 Western Digital Technologies, Inc. Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device
US8402180B2 (en) * 2010-03-26 2013-03-19 Atmel Corporation Autonomous multi-packet transfer for universal serial bus
CN102455879B (zh) * 2010-10-21 2014-10-15 群联电子股份有限公司 存储器存储装置、存储器控制器与自动产生填充文件方法
US9335950B2 (en) * 2013-03-15 2016-05-10 Western Digital Technologies, Inc. Multiple stream compression and formatting of data for data storage systems
KR20150093019A (ko) * 2014-02-06 2015-08-17 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 방법
US10037218B1 (en) * 2014-12-15 2018-07-31 Amazon Technologies, Inc. Scalable deep testing system for websites
KR102849632B1 (ko) * 2017-01-25 2025-08-26 삼성전자주식회사 논리 어드레스와 물리 어드레스 사이에서 해싱 기반 변환을 수행하는 스토리지 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11544209B2 (en) 2021-03-22 2023-01-03 Kioxia Corporation Semiconductor storage device, memory system, and method
TWI810577B (zh) * 2021-03-22 2023-08-01 日商鎧俠股份有限公司 半導體記憶裝置、記憶體系統,及控制方法
TWI859855B (zh) * 2023-05-12 2024-10-21 慧榮科技股份有限公司 橋接裝置及指令與資料轉移方法
US12321297B2 (en) 2023-05-12 2025-06-03 Silicon Motion, Inc. Bridge device and method for transferring command and data between a host device and a data storage device

Also Published As

Publication number Publication date
TWI710906B (zh) 2020-11-21
US20200151119A1 (en) 2020-05-14
CN111159055B (zh) 2023-07-14
CN111159055A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
TWI710906B (zh) 用來進行主裝置與記憶裝置之間的存取控制的方法以及設備
US9176865B2 (en) Data writing method, memory controller, and memory storage device
US9304900B2 (en) Data reading method, memory controller, and memory storage device
US11630791B2 (en) Data storage system and method for multiple communication protocols and memory access
US8255656B2 (en) Storage device, memory controller, and data protection method
CN102955751B (zh) 存储器储存装置、存储器控制器与数据写入方法
CN104699413A (zh) 数据管理方法、存储器存储装置及存储器控制电路单元
KR20070076849A (ko) 메모리 카드의 카피백 동작을 수행하는 장치 및 방법
TW201945930A (zh) 使用標準化資料儲存及擷取協定的用於資料編碼及解碼之方法及設備
US20110231621A1 (en) System recovery method, and storage medium controller and storage system using the same
CN112992231B (zh) 数据储存装置以及参数改写方法
KR20200095526A (ko) 플래시 메모리 컨트롤러, sd 카드 장치, 플래시 메모리 컨트롤러에 사용되는 방법 및 sd 카드 장치에 연결된 호스트 장치
CN103578566B (zh) 存储器存储装置及其修复方法
CN102207905A (zh) 系统恢复方法、存储媒体控制器及存储系统
CN103914391A (zh) 数据读取方法、存储器控制器与存储器存储装置
TWI774255B (zh) 橋接電路與電腦系統
CN118276786B (zh) 存储器控制方法及存储装置
TWI528375B (zh) 快閃記憶體轉接器的控制器及使用該控制器的快閃記憶體儲存裝置
CN118939581A (zh) 桥接装置及指令与数据转移方法
TWI417888B (zh) An embedded chip system, a method for burning a wafer, and a computer program product
CN118939582A (zh) 存储器控制器、桥接装置及指令与数据转移方法
CN118151838A (zh) 记忆装置、快闪存储器控制器及其控制方法
CN110413429B (zh) 数据储存系统以及非挥发式存储器操作信息的校正方法
TWI584292B (zh) 記憶體抹除方法、記憶體控制電路單元及記憶體儲存裝置
CN113051206A (zh) 桥接电路与计算机系统