TWI553476B - 區域描述元管理方法及其電子裝置 - Google Patents
區域描述元管理方法及其電子裝置 Download PDFInfo
- Publication number
- TWI553476B TWI553476B TW104107010A TW104107010A TWI553476B TW I553476 B TWI553476 B TW I553476B TW 104107010 A TW104107010 A TW 104107010A TW 104107010 A TW104107010 A TW 104107010A TW I553476 B TWI553476 B TW I553476B
- Authority
- TW
- Taiwan
- Prior art keywords
- current
- meta
- block
- area description
- items
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本揭露是有關於一種管理方法及其電子裝置,且特別是關於一種區域描述元(Region Descriptor)的管理方法及其電子裝置。
於習知技術中,當任一儲存裝置或任一週邊裝置需要與主機系統的系統記憶體作資料傳輸時,可以例如是利用直接記憶體存取(Direct Memory Access)的形式,在不增加主機系統的負載下進行資料的傳送。
一般而言,系統記憶體上的記憶體區塊可以藉由區域描述元(Region Descriptor)所定義。換言之,即是透過區域描述元定義每一資料片段(Data Segment)在系統記憶體上的位置。詳細來說,每一區域描述元項目(Region Descriptor Entry)分別記錄了記憶體區塊的起始位址以及長度。因此,儲存裝置可以藉由提取(fetch)區域描述元項目來進一步存取特定的記憶體區塊,藉以達到資料
傳輸的目的。
習知技術之中,區域描述元項目是由主機系統對應系統記憶體內的資料片段進行分配,但主機系統基於效能上的考量或者是為了對應不同儲存裝置的規格,經常使得區域描述元項目的配置是過於複雜或脆弱,導致儲存裝置與系統記憶體間的資料傳輸在傳輸速度以及效率的表現上是較差的。
本揭露提供一種區域描述元管理方法及其電子裝置,藉由調整、合併、分割部分的區域描述元項目,使得儲存裝置以及系統記憶體間的資料傳輸速度能相對的提升。
本揭露的一實施例提出一種區域描述元管理方法,適用於電子裝置的裝置控制器。前述管理方法包括下列步驟。由區域描述元列表提取多個區域描述元項目,其中每一區域描述元項目包括區塊起始位址以及區塊長度以對應描述記憶體模組的記憶體區塊。依據多個區域描述元項目的區塊起始位址以及區塊長度,調整部分的區域描述元項目為至少一個目前區域描述元項目。基於目前區域描述元項目,產生目前區域描述元列表。
本揭露的一實施例提出一種電子裝置,包括主機系統、儲存裝置以及裝置控制器。主機系統具有記憶體模組,而裝置控制器耦接於主機系統以及儲存裝置之間。裝置控制器由主機系統的區域描述元列表提取多個區域描述元項目,其中每一區域描述
元項目包括區塊起始位址以及區塊長度以對應描述記憶體模組的記憶體區塊。裝置控制器依據前述區域描述元項目的區塊起始位址以及區塊長度,調整部分的區域描述元項目為至少一目前區域描述元項目。裝置控制器更基於目前區域描述元項目,產生目前區域描述元列表。
基於上述,本揭露實施例所提供的區域描述元管理方法及其電子裝置,在進行資料傳輸時,首先對主機系統所提供的多個區域描述元項目進行調整,藉以產生至少一個目前區域描述元項目。所產生的目前區域描述元項目以較佳的形式描述記憶體模組中的記憶體區塊,藉以提升儲存裝置與記憶體模組之間的資料傳輸速度與效率。
為讓本揭露的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
100‧‧‧電子裝置
120‧‧‧主機系統
122‧‧‧記憶體模組
140‧‧‧儲存裝置
160‧‧‧裝置控制器
DBA‧‧‧區塊起始位址
DBC‧‧‧區塊長度
DBA’‧‧‧目前區塊起始位址
DBC’‧‧‧目前區塊長度
PRD0~PRDm、PRD41~PRD44‧‧‧區域描述元項目
PRD0’~PRDn’、PRD41’~PRD44’‧‧‧目前區域描述元項目
PRDT、PRDT40‧‧‧區域描述元列表
PRDT’、PRDT’40‧‧‧目前區域描述元列表
41~44‧‧‧記憶體區塊
S220、S240、S260‧‧‧區域描述元管理方法的步驟
下面的所附圖式是本揭露的說明書的一部分,繪示了本揭露的示例實施例,所附圖式與說明書的描述一起說明本揭露的原理。
圖1是依照本揭露一實施例所繪示的電子裝置的方塊圖。
圖2是依照本揭露一實施例所繪示的區域描述元管理方法的流程圖。
圖3是依照本揭露一實施例所繪示的調整區域描述元項目為
目前區域描述元項目的示意圖。
圖4A是依照本揭露一實施例所繪示的目前區域描述元列表的示意圖。
圖4B是依照本揭露一實施例所繪示的目前區域描述元項目的示意圖。
現將詳細參考本揭露之示範性實施例,在附圖中說明所述示範性實施例之實例。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件代表相同或類似部分。
本揭露提供一種區域描述元管理方法及其電子裝置,其中區域描述元管理方法適用於耦接在儲存裝置以及主機系統之間的控制器或系統晶片(System On Chip,SOC)。圖1是依照本揭露一實施例所繪示的電子裝置的方塊圖。電子裝置例如是桌上型電腦、筆記型電腦、平板電腦或智慧型手機等,但並不以前述為限。參照圖1,電子裝置100包括主機系統120、儲存裝置140以及裝置控制器160。裝置控制器160耦接於主機系統120以及儲存裝置140之間。
主機系統120例如是包括處理器單元(未繪示)以及記憶體模組122。處理器單元例如是中央處理單元(Central Processing Unit,CPU)或者是可程式化之一般用途或特殊用途的微處理器(Microprocessor),用於執行各項程序或軟件以提供不同的功能。
記憶體模組122為主機系統120的主記憶體(Main Memory),其例如是以靜態隨機存取記憶體(Static Random Access Memory,SRAM)、動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)或同步動態隨機存取記憶體(Synchronous Dynamic Random Access Memory,SDRAM)來實現。
儲存裝置140則例如是硬碟(Hard Disk Drive,HDD)、光碟機(Optical Disk Drive,ODD)或固態硬碟(Solid State Drive,SSD),其具有並列先進技術配置(Parallel Advanced Technology Attachment,PATA)介面、串列先進技術配置(Serial Advanced Technology Attachment,SATA)介面、快捷外設互聯標準(Peripheral Component Interconnect Express,PCIE)、串列連接SCSI介面(Serial Attached SCSI,SAS)。裝置控制器160例如是嵌入式控制器(embedded controller)或控制晶片(control chip)。在本揭露的一實施例中,裝置控制器160包括符合進階主機控制匯流排介面(Advanced Host Controller Interface,AHCI)規範的主機匯流排配接器(Host Bus Adaptor,HBA),藉以實現主機系統120與儲存裝置140間的資料傳輸,但本揭露並不限於此。更詳細而言,本揭露所提出的區域描述元管理方法,同樣適用於不同規範下的裝置控制器160。然而,為了更清楚地表達本揭露的區域描述元管理方法,以下將搭配符合AHCI規範的裝置控制器160以及電子裝置100來說明前述區域描述元管理方法。
圖2是依照本揭露一實施例所繪示的區域描述元管理方
法的流程圖。請參照圖1以及圖2,區域描述元管理方法包括下列步驟。裝置控制器160由區域描述元列表提取多個區域描述元項目(步驟S220),其中每一區域描述元項目包括區塊起始位址以及區塊長度以對應描述記憶體模組122的一個記憶體區塊。接著,裝置控制器160依據前述多個區域描述元項目的區塊起始位址以及區塊長度,調整部分的區域描述元項目為至少一個目前區域描述元項目(步驟S240)。最後,裝置控制器160基於目前區域描述元項目,產生目前區域描述元列表(步驟S260)。
於本揭露的一實施例中,主機系統120在AHCI規範下,是藉由一個在記憶體模組122之中的指令列表(Command List)來對裝置控制器160下達指令。主機系統120將指令放置於指令列表中的空隙(Slot)之中,並且通知裝置控制器160。裝置控制器160收到通知後,由記憶體模組122提取指令,並且依據指令執行相關程序,例如是資料傳輸。值得注意的是,在指令中,通常是以區域描述元(即AHCI規範下的實體區域描述元(Physical Region Descriptor,PRD))描述參與資料傳輸的記憶體模組122的記憶體區塊。區域描述元例如是包括記憶體區塊122的區塊起始位址以及區塊長度(即AHCI規範下的資料基底位址(Data Base Address,DBA)以及資料位元組計數(Data Byte Count,DBC)),其對應地指示了資料在記憶體模組122上的儲存位置或傳輸位置。更詳細而言,指令包括一個區域描述元列表(即AHCI規範下的實體區域描述元列表(Physical Region Descriptor Table,PRDT)),而區域描述元列
表更包括多個區域描述元項目(即AHCI規範下的實體區域描述元項目(Physical Region Descriptor Entry))。每一個區域描述元項目對應記載了一個記憶體區塊的位置資訊。
裝置控制器160例如是採用分散-收集機制(Scatter/Gather Mechanism)來執行資料傳輸。具體而言,裝置控制器160是預先取得相關於資料傳輸的多個區域描述元後,在對應前述的區域描述元所描述的記憶體模組120的多個記憶體區塊來執行資料傳輸。一般而言,裝置控制器160於每個區域描述元所指示的區塊長度為最適區塊長度(例如是4096位元組(bytes)或者是8192位元組)時,在資料傳輸的表現是較佳的。然而,由主機系統120所配置的區域描述元項目通常是較為雜散,並且每個區域描述元項目並不是依照儲存裝置140的最適區塊長度進行配置,使得裝置控制器160在資料傳輸的表現上無法達到最佳的效果,而通常需要花費更多的時間並且降低整體的效率。
在本揭露的一實施例中,裝置控制器160由區域描述元列表提取多個區域描述元項目後,接著是依據區域描述元項目的區塊起始位址以及區塊長度,選擇性地調整部分的區域敘述元項目。圖3是依照本揭露一實施例所繪示的調整區域描述元項目為目前區域描述元項目的示意圖。如圖3所示,由區域描述元列表PRDT中的區域描述元項目PRD0、PRD1的資料基底位址(區塊起始位址)DBA(0x1FD040000h、0x1FD040c00h,十六進位)以及資料位元組計數(區塊長度)DBC(3072位元組、1024位元組)可知,區
域描述元項目PRD0、PRD1所描述的記憶體區塊是連續地排列於記憶體模組122。基於前述,為了使得裝置控制器160能較佳地進行資料傳輸,裝置控制器160首先調整區域描述元項目PRD0、PRD1為目前區域描述元項目PRD0’。由圖3可知,目前區域描述元項目PRD0’所描述的記憶體區塊為區域描述元項目PRD0、PRD1所分別描述的兩個記憶體區塊的合併。此外,目前區域描述元項目PRD0’指示的目前區塊長度DBC’為4096位元組,符合資料傳輸中的最適區塊長度,而目前區塊起始位址DBA’則是區域描述元項目PRD0的區塊起始位址DBA。
基於前述的目前區域描述元項目PRD0’,裝置控制器160產生目前區域描述元列表PRDT’。值得注意的是,其它不需要進行調整的區域描述元項目PRD2~PRDm,對應地保留並調整為目前區域描述元項目PRD1’~PRDn’,並且同樣放置於目前區域描述元列表PRDT’之中。在本實施例中,前述n、m為大於2的正整數,並且n等於m-1。
圖3所示的實施例僅為調整區域描述元項目為目前區域描述元項目的多個實施例之一,但本申請並不以此為限。以下將更詳細地說明調整區域描述元項目為目前區域描述元項目所需要注意的細節。
圖4A是依照本揭露一實施例所繪示的目前區域描述元列表的示意圖。圖4B是依照本揭露一實施例所繪示的目前區域描述元項目的示意圖。參照圖1~圖4A、圖4B,如同前述,可以被
調整為目前區域描述元項目的多個區域描述元項目,其所描述的記憶體區塊例如是連續地排列於記憶體模組122。以圖4A、圖4B的記憶體模組122為例,記憶體區塊41~44分別對應儲存第一資料~第四資料,並且記憶體區塊41~43是連續地排列於記憶體模組122之中。此時,原先用於分別描述記憶體區塊41~43的區域描述元項目PRD41~PRD43,即可調整為目前區域描述元項目PRD41’~PRD43’,而用於描述記憶體區塊44的區域描述元項目PRD44則經保留並調整為PRD44’。
在進行調整的過程中,裝置控制器160利用多個固定區
塊位址以及固定區塊長度,比對區域描述元項目PRD41~PRD43的區塊起始位址DBA以及區塊長度DBC,藉以產生目前區塊起始位址DBA’以及目前區塊長度DBC’。在本實施例中,固定區塊長度為前述最適區塊長度(在本實施例中以4096位元組為例),而固定區塊位址則是在記憶體模組122上,距離位址0為一或多個固定區塊長度的位址,例如是0、4096、8192等位址(以位元組為單位,十進位)。裝置控制器160以固定區塊長度以及固定區塊位址來比對第一資料~第三資料所在的記憶體區塊41~43(區塊起始位址DBA以及區塊長度DBC),藉以取得多個目前區塊起始位址512、4096、8192以及多個目前區塊長度3584位元組、4096位元組、1024位元組。最後,依據目前區塊起始位址DBA’以及目前區塊長度DBC’,取得目前區域描述元項目PRD41’~PRD43’。
由前述可知,調整區域描述元項目PRD41~PRD43為目前
區域描述元項目PRD41’~PRD43’的過程中,主要是對區域描述元項目PRD41~PRD43所描述的記憶體區塊41~43(對應第一資料~第三資料)進行合併與裁切,產生符合固定區塊長度以及固定區塊位址的目前區塊起始位址DBA’以及目前區塊長度DBC’。明顯地,目前區域描述元項目PRD41’~PRD43’所指示目前區塊長度DBC’皆不大於固定區塊長度,即4096位元組。
於本揭露的一實施例中,裝置控制器160更依據目前區域描述元列表(例如是圖3所示的PRDT’或圖4A所示的PRDT’40),對目前區域描述元項目所指示的記憶體區塊,執行資料傳輸程序。裝置控制器160可以是由目前區域描述元項目所指示的記憶體區塊取得資料至儲存裝置140,或者是從儲存裝置140取得資料並儲存至目前區域描述元項目所指示的記憶體區塊。最後,對於所產生的目前區域描述元項目,裝置控制器160還可以寫入記憶體模組122以更新記憶體模組122內存的區域描述元列表PRDT。
綜上所述,本發明實施例所提供的區域描述元管理方法及其電子裝置,對主機系統所提供的多個區域描述元項目進行整併,藉以產生至少一個目前區域描述元項目。目前區域描述元項目以較佳的形式描述記憶體模組中的記憶體區塊。基於前述的目前區域描述元項目,裝置控制器以較佳的速度與效率進行資料傳輸,藉以從目前區域描述元項目所描述的記憶體區塊中取得資料至儲存裝置,或者是將儲存裝置的資料傳輸至目前區域描述元項
目所描述的記憶體區塊。
雖然本揭露已以實施例詳述如上,然其並非用以限定本揭露,任何所屬技術領域中具有通常知識者,在不脫離本揭露的精神和範圍內,當可作些許的更動與潤飾,故本揭露的保護範圍當視後附的申請專利範圍所界定者為準。
S220、S240、S260‧‧‧區域描述元管理方法的步驟。
Claims (10)
- 一種區域描述元管理方法,適用於一電子裝置的一裝置控制器,該管理方法包括:由一區域描述元列表提取多個區域描述元項目,其中每一該些區域描述元項目包括一區塊起始位址以及一區塊長度以對應描述一記憶體模組的一記憶體區塊;依據該些區域描述元項目的該些區塊起始位址以及該些區塊長度,調整一部分的該些區域描述元項目為至少一目前區域描述元項目,包括:利用多個固定區塊位址以及一固定區塊長度,比對該部分的該些區域描述元項目的該些區塊起始位址以及該些區塊長度,以產生至少一目前區塊起始位址以及至少一目前區塊長度;以及依據該至少一目前區塊起始位址以及該至少一目前區塊長度,取得該至少一目前區域描述元項目;以及基於該至少一目前區域描述元項目,產生一目前區域描述元列表。
- 如申請專利範圍第1項所述的區域描述元管理方法,其中該部分的該些區域描述元項目所描述的該些記憶體區塊是連續地排列於該記憶體模組。
- 如申請專利範圍第1項所述的區域描述元管理方法,其中每一該目前區域描述元項目所包括的該目前區塊長度不大於該固定區塊長度。
- 如申請專利範圍第1項所述的區域描述元管理方法,更包括:將該至少一目前區域描述元項目寫入該記憶體模組。
- 如申請專利範圍第1項所述的區域描述元管理方法,更包括:對該至少一目前區域描述元項目所指示的該至少一記憶體區塊,執行一資料傳輸程序。
- 一種電子裝置,包括:一主機系統,該主機系統具有一記憶體模組;一儲存裝置:以及一裝置控制器,耦接於該主機系統以及該儲存裝置之間,該裝置控制器由該主機系統的一區域描述元列表提取多個區域描述元項目,其中每一該些區域描述元項目包括一區 塊起始位址以及一區塊長度以對應描述該記憶體模組的一記憶體區塊,該裝置控制器依據該些區域描述元項目的該些區塊起始位址以及該些區塊長度,調整一部分的該些區域描述元項目為至少一目前區域描述元項目,並且該裝置控制器基於該至少一目前區域描述元項目,產生一目前區域描述元列表,其中該裝置控制器更利用多個固定區塊位址以及一固定區塊長度,比對該部分的該些區域描述元項目的該些區塊起始位址以及該些區塊長度,以產生至少一目前區塊起始位址以及至少一目前區塊長度,該裝置控制器依據該至少一目前區塊起始位址以及該至少一目前區塊長度,取得該至少一目前區域描述元項目。
- 如申請專利範圍第6項所述的電子裝置,其中該部分的該些區域描述元項目所描述的該些記憶體區塊是連續地排列於該記憶體模組。
- 如申請專利範圍第6項所述的電子裝置,其中每一該目前區域描述元項目所包括的該目前區塊長度不大於該固定區塊長度。
- 如申請專利範圍第6項所述的電子裝置,其中該裝置控制器更將該至少一目前區域描述元項目寫入該記憶體模組。
- 如申請專利範圍第6項所述的電子裝置,其中該裝置控制器由該至少一目前區域描述元項目所描述的該至少一記憶體區塊取得資料至該儲存裝置,或者是從該儲存裝置取得資料至該至少一目前區域描述元項目所描述的該至少一記憶體區塊。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104107010A TWI553476B (zh) | 2015-03-05 | 2015-03-05 | 區域描述元管理方法及其電子裝置 |
US14/700,114 US9830261B2 (en) | 2015-03-05 | 2015-04-29 | Region descriptor management method and electronic apparatus thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104107010A TWI553476B (zh) | 2015-03-05 | 2015-03-05 | 區域描述元管理方法及其電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201633135A TW201633135A (zh) | 2016-09-16 |
TWI553476B true TWI553476B (zh) | 2016-10-11 |
Family
ID=56851011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104107010A TWI553476B (zh) | 2015-03-05 | 2015-03-05 | 區域描述元管理方法及其電子裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9830261B2 (zh) |
TW (1) | TWI553476B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070162646A1 (en) * | 2005-10-28 | 2007-07-12 | Roger Maitland | Direct memory access devices and method based timer system |
TW200900943A (en) * | 2007-06-22 | 2009-01-01 | Via Tech Inc | PRD (Physical Region Descriptor) pre-fetch methods for DMA (Direct Memory Access) unit |
US20090049270A1 (en) * | 2007-08-14 | 2009-02-19 | Dell Products L.P. | System and method for using a memory mapping function to map memory defects |
TW200921385A (en) * | 2007-11-15 | 2009-05-16 | Genesys Logic Inc | Storage system for improving efficiency in accessing flash memory and method for the same |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809224A (en) * | 1995-10-13 | 1998-09-15 | Compaq Computer Corporation | On-line disk array reconfiguration |
GB9806687D0 (en) * | 1998-03-27 | 1998-05-27 | Memory Corp Plc | Memory system |
US7427027B2 (en) * | 2004-07-28 | 2008-09-23 | Sandisk Corporation | Optimized non-volatile storage systems |
US20060184719A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
US7844777B2 (en) * | 2007-06-26 | 2010-11-30 | Intel Corporation | Cache for a host controller to store command header information |
TWI397821B (zh) * | 2009-01-19 | 2013-06-01 | Phison Electronics Corp | 資料串傳送方法、系統及其控制器 |
US8055816B2 (en) | 2009-04-09 | 2011-11-08 | Micron Technology, Inc. | Memory controllers, memory systems, solid state drives and methods for processing a number of commands |
TWI465905B (zh) * | 2010-09-22 | 2014-12-21 | Toshiba Kk | 記憶體系統、主機控制器、及直接記憶體存取之控制方法 |
US8918554B2 (en) | 2011-10-06 | 2014-12-23 | Marvell International Ltd. | Method and apparatus for effectively increasing a command queue length for accessing storage |
TWI447646B (zh) | 2011-11-18 | 2014-08-01 | Asmedia Technology Inc | 資料傳輸裝置及多個指令的整合方法 |
US8984032B2 (en) * | 2011-12-15 | 2015-03-17 | Sandisk Technologies Inc. | Method and system for providing storage device file location information |
-
2015
- 2015-03-05 TW TW104107010A patent/TWI553476B/zh active
- 2015-04-29 US US14/700,114 patent/US9830261B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070162646A1 (en) * | 2005-10-28 | 2007-07-12 | Roger Maitland | Direct memory access devices and method based timer system |
TW200900943A (en) * | 2007-06-22 | 2009-01-01 | Via Tech Inc | PRD (Physical Region Descriptor) pre-fetch methods for DMA (Direct Memory Access) unit |
US20090049270A1 (en) * | 2007-08-14 | 2009-02-19 | Dell Products L.P. | System and method for using a memory mapping function to map memory defects |
TW200921385A (en) * | 2007-11-15 | 2009-05-16 | Genesys Logic Inc | Storage system for improving efficiency in accessing flash memory and method for the same |
Also Published As
Publication number | Publication date |
---|---|
US20160259722A1 (en) | 2016-09-08 |
US9830261B2 (en) | 2017-11-28 |
TW201633135A (zh) | 2016-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10296217B2 (en) | Techniques to configure a solid state drive to operate in a storage mode or a memory mode | |
US9727248B2 (en) | Dynamic IO operation timeout assignment for a solid state drive | |
US10108371B2 (en) | Method and system for managing host memory buffer of host using non-volatile memory express (NVME) controller in solid state storage device | |
US9563368B2 (en) | Embedded multimedia card and method of operating the same | |
US9152474B2 (en) | Context aware synchronization using context and input parameter objects associated with a mutual exclusion lock | |
TWI610172B (zh) | 用於經由集合和通道來靈活地將快取記憶體劃分成分量快取記憶體的方法和裝置 | |
US20160070493A1 (en) | Data storage device and method of operating the same | |
US10705757B2 (en) | Memory interface, memory controller having the memory interface, and memory system having the memory controller | |
US20170185354A1 (en) | Techniques for a Write Transaction at a Storage Device | |
KR102106261B1 (ko) | 메모리 컨트롤러의 작동 방법과 이를 포함하는 장치들의 작동 방법들 | |
US9721104B2 (en) | CPU-based measured boot | |
US20160283390A1 (en) | Storage cache performance by using compressibility of the data as a criteria for cache insertion | |
US9338057B2 (en) | Techniques for searching data associated with devices in a heterogeneous data center | |
US10331359B2 (en) | Memory subsystem with wrapped-to-continuous read | |
EP3496356B1 (en) | Atomic cross-media writes on storage devices | |
US20170046074A1 (en) | Adaptive Data Compression for Data Storage in a Memory Device | |
US9904622B2 (en) | Control method for non-volatile memory and associated computer system | |
US10592113B2 (en) | Method for transferring command from host to device controller and system using the same | |
US20190004975A1 (en) | Storage drive and method of executing a compare command | |
US20180364946A1 (en) | Data storage device | |
TWI553476B (zh) | 區域描述元管理方法及其電子裝置 | |
US11853614B2 (en) | Synchronous write method and device, storage system and electronic device | |
US20220129383A1 (en) | Electronic device, automotive device, and data center | |
CN105988954B (zh) | 区域描述元管理方法及其电子装置 | |
JP2018502379A5 (zh) |