TWI718546B - 分散聚集列表的失序處理的方法 - Google Patents

分散聚集列表的失序處理的方法 Download PDF

Info

Publication number
TWI718546B
TWI718546B TW108118750A TW108118750A TWI718546B TW I718546 B TWI718546 B TW I718546B TW 108118750 A TW108118750 A TW 108118750A TW 108118750 A TW108118750 A TW 108118750A TW I718546 B TWI718546 B TW I718546B
Authority
TW
Taiwan
Prior art keywords
data
tag
descriptors
data tag
list
Prior art date
Application number
TW108118750A
Other languages
English (en)
Other versions
TW202004769A (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 TW202004769A publication Critical patent/TW202004769A/zh
Application granted granted Critical
Publication of TWI718546B publication Critical patent/TWI718546B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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/7207Details relating to flash memory management management of metadata or control data

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)
  • Bus Control (AREA)
  • Memory System (AREA)

Abstract

一種半導體儲存裝置,包含控制器,該控制器包含資料直接記憶體存取(DDMA)控制器。該控制器接收來自於主機裝置之被分段成與資料標籤相關聯之資料轉移描述符的複數個讀取命令,且將複數個該資料轉移描述符引導至該DDMA控制器。該DDMA控制器從該主機裝置預取與該複數個資料標籤之一或多者相關聯之一或多個描述符,第一資料標籤具有對應於記憶體之鄰接區塊之相關聯數目個描述符。該DDMA控制器判定若描述符之該相關聯數目滿足臨限值,以及若其不滿足,則移動該第一資料標籤至第一列表,且當位在該第一列表之表頭時將該第一資料標籤移動至第二列表,且當位在該第二列表之表頭時,傳輸與該第一資料標籤相關聯之該資料。

Description

分散聚集列表的失序處理的方法
本發明整體而言係關於用於處理讀取命令之系統及方法。
半導體儲存裝置(諸如固態硬碟(SSD))之效能受到處理讀取命令之速度很大的影響。為了提高讀取命令處理速度且限制延時,一些系統使用用於從主機所接收之資料標籤的預取描述符且將它們儲存在本端RAM直到該描述資料被處理之系統。從主機接收之讀取命令可藉由實體區域頁面(PRP)格式請求所描述,或可採用分散聚集列表(SGL)之形式。該SGL允許對描述要轉移之資料的位置更具靈活性,且允許使用任何數量的描述符來描述該資料轉移。
在大部分情況中,由主機使用之SGL資料描述符格式描述使用少量的描述符之資料轉移,但在一些情況中,SGL格式命令包含與該轉移相關聯之大量的描述符。在此等情況下,使用預取描述符的系統會快速地用完嘗試預取及儲存描述符之所有可用的本端記憶體空間,該描述符係與用於資料標籤之非典型的大量SGL資料描述符相關聯。此外,非典型SGL之處理會比典型的短資料描述符還要花更長的時間。處理非典型SGL資料描述符會阻礙由少量描述符所描述之典型資料標籤的處理且造成裝置之緩衝器及記憶體的低效率使用,減緩整體的轉移速率。
因此,仍存在尚未滿足的需求,即設計能夠在分散聚集列表中有效率地處理資料的系統。
在一態樣中,一種半導體儲存裝置包含控制器,該控制器包含資料直接記憶體存取(DDMA)控制器。該控制器接收來自於主機裝置的複數個讀取命令,其中,該複數個讀取命令被分段成與複數個資料轉移描述符相關聯之複數個資料標籤。該DDMA控制器接收該複數個資料轉移描述符且從該主機裝置預取與該複數個資料標籤中之一或多者相關聯之一或多個描述符,第一資料標籤具有對應於記憶體之鄰接區塊的相關聯數目個描述符。該DDMA控制器亦判定與該第一資料標籤相關聯之描述符的該數目是否滿足臨限量;且若不滿足,移動該第一資料標籤至第一列表;且當該第一資料標籤到達該第一列表之表頭且與該第一資料標籤相關聯之資料已就緒待被轉移時,移動該第一資料標籤至第二列表。當該第一資料標籤位在該第二列表之表頭時,該DDMA控制器傳輸與該第一資料標籤相關聯之該資料。
在另一態樣中,一種提取用於命令之直接記憶體存取(DMA)描述符至半導體儲存裝置之方法包含:針對位在晶載隨機存取記憶體(RAM)中之命令列表之表頭處被分段成複數個資料標籤且包含複數個資料轉移描述符的第一命令包含判定用以描述該第一命令之與第一資料標籤相關聯的描述符之數目,描述符之該數目對應於記憶體之鄰接區塊,且將與該第一資料標籤相關聯之描述符的該數目與臨限值作比較。若與該第一資料標籤相關聯之描述符的該數目不滿足該臨限值,則該方法包含藉由將該第一資料標籤儲存在第一列表中來處理該第一資料標籤,且當與該數目之描述符相關聯之資料已就緒時,移動該第一資料標籤至第二列表。該方法進一步包含提取與該第一資料標籤相關聯之複數個額外描述符,且當該第一資料標籤已到達第二列表之表頭時,執行與該第一資料標籤相關聯之資料的資料轉移。
圖1展示半導體儲存系統100之方塊圖。半導體儲存系統100包含主機102、主機記憶體103、固態硬碟(SSD)104、半導體晶片111及週邊組件互連(PCIe)核心116。半導體晶片111包含資料直接記憶體存取(DDMA)控制器108,其具有內部隨機存取記憶體(RAM)110、命令解碼器106、資料標籤執行控制器105、命令切段器107及快閃後端109。快閃後端109係通信地耦合至第一記憶體112及第二記憶體114(其可以係快閃記憶體或任何其他的記憶體類型)。該PCIe 116經由主機介面118而通信地耦合至主機102。該DDMA控制器108通信地耦合至PCIe 116及命令解碼器106。該命令解碼器106通信地耦合至命令切段器107,其通信地耦合至資料標籤執行控制器105。該資料標籤執行控制器105亦通信地耦合至DDMA控制器108及快閃後端109。雖然快閃後端109僅繪示為連接至定位在SSD上的兩個記憶體,但該快閃後端109可被耦合至任何數量的內部或外部記憶體。
PCIe 116經由主機介面118接收來自於主機102之命令且將命令傳輸至命令解碼器106。該命令解碼器106解碼該命令且準備該命令以用於其餘的命令處理系統。命令解碼器106將命令轉移至DDMA控制器108,其管理主機轉移執行,包含提取描述符及失序SGL執行,如下文討論的。DDMA控制器108通信地耦合至命令切段器107,其將命令分割成包括資料標籤片段的部分。命令切段器107通信地耦合至資料標籤執行控制器105及DDMA控制器108兩者。資料標籤執行控制器105管理由命令切段器107所產生的資料標籤之執行。每個讀取命令由命令切段器107分離成數個資料標籤,各資料標籤具有相關聯數目個描述符,其描述請求資料之位置。命令及描述符由主機102儲存在主機記憶體103中。DDMA控制器108藉由將與該命令相關聯之描述符從主機記憶體103拉入至DDMA控制器108來執行「預取」。描述符被儲存在RAM 110中,且在由命令切段器107所產生之資料標籤大小之片段中由該DDMA處理。資料標籤執行控制器105管理資料標籤之執行,包含從該快閃後端109請求相關聯資料。當資料已從第一記憶體112及第二記憶體114被擷取時,該資料被轉移至主機102。
DDMA控制器108接收具有PRP或SGL描述符之命令,且在RAM 110中維持列表以儲存該PRP及SGL描述符,且在RAM 110中維持列表以儲存該PRP及SGL描述符。DDMA控制器108進一步從主機102預取描述符,且針對資料轉移發出資料轉移(DMA)請求,以允許在描述資料標籤之描述符的數目滿足一臨限值的典型狀態中由預取的PRP及SGL描述符來進行失序轉移。預取描述符減少系統之總延時。描述符之預取及處理命令失序可導致優於未預取或處理資料描述符失序之系統達10%至20%的效能改良。
PRP格式描述符具有藉由預設之單一指標且DDMA控制器108藉由預取該描述符且當請求資料變成可用時轉移該請求資料來處理這些描述符。SGL格式描述符可用以描述資料之非鄰接區塊,且同時SGL命令通常具有每資料標籤一或兩個描述符,在一些非典型例子中可具有與資料標籤相關聯之任何數量的描述符。在這些非典型例子中,資料標籤無法具有預取的描述符,因為儲存預取的描述符將消耗非常大量的晶載RAM 110。在此一非典型例子中,該記憶體限制表示該資料標籤無法被失序處理。在失序處理演算法中嘗試包含非典型資料標籤會造成典型資料標籤之處理會被阻擋且導致具有高延時之無效率系統。
圖2展示用於DDMA控制器108藉以處理讀取命令之程序的決策圖。DDMA控制器108從該PCIe 116及命令解碼器106接收命令及描述該命令之資料標籤,且將資料標籤或針對該命令之資料轉移請求儲存在RAM 110中。在步驟202處,DDMA控制器108針對該資料標籤提取預定數目的描述符。任何未使用的描述符被保留用於後續資料 標籤。預取的描述符被儲存在RAM 110中。通常,DDMA控制器108從該主機102擷取與資料標籤相關聯之描述符的一組分配,例如,一次擷取64位元組的描述符。針對給定的或資料標籤或「資料轉移請求」,並非由DDMA控制器擷取的所有描述符都是必需的。未使用的描述符被儲存在描述符記憶體分段中之本端RAM 110中的列表中,稱之為描述符記憶體分段列表。
在步驟204處,DDMA控制器108判定與該第一資料標籤相關聯之描述符的數目是否超過一預設定的臨限值。若與資料標籤相關聯之描述符的數目超過該臨限值,則資料標籤被視為非典型,因為其包含太多無法由具有未超過該臨限值之相關聯描述符之數目的典型資料標籤來處理的描述符。非典型的資料標籤係由不同於典型資料標籤的方法來分開處理。
在步驟206處,典型的資料標籤被保留在RAM110中用於失序處理,而DDMA控制器108藉由擷取與該描述符相關聯之資料而處理該典型的資料標籤。資料係藉由快閃後端109從第一記憶體112及第二記憶體114經由第一通信頻道120與第二通信頻道122來擷取。在一些實施方案中,當在快閃後端109中資料係可用時,在資料標籤中的就緒位元被設定,且典型的資料標籤被移動至執行列表,儘管在其他實施方案中典型的資料標籤並未被移動至列表。在步驟208處,當資料係可用時,DDMA控制器108經由命令解碼器106及主機介面118將與典型的資料標籤相 關聯之資料轉移至主機102。
當資料就緒時,DDMA控制器108將與典型的資料標籤相關聯之資料轉移至主機102,而不管在失序處理列表中的順序。當就緒取代按順序時轉移與典型的資料標籤相關聯之資料可確保該資料被有效地轉移且在命令處理期間緩衝器並未閒置。失序處理及典型資料標籤之轉移增加處理之效率且使裝置一致性地傳輸資料至主機,而不會針對在待處理之失序處理佇列之表頭處的資料標籤而被保持等待。
藉由移除具有太多描述符之非典型資料標籤且分開處理這些非典型資料標籤,該非典型資料標籤可從失序處理來予以移除且可替代按順序在步驟210處開始來予以處理。在步驟210處,DDMA控制器108新增該非典型資料標籤至儲存在RAM 110中之每命令列表的表尾,該非典型資料標籤在該處等待處理。在步驟212處,當非典型資料標籤到達每命令列表之表頭且就緒時,DDMA控制器108將該資料標籤移動至非典型執行列表以等待其依序被處理。
在步驟214處,當資料標籤位在非典型執行列表之表頭時,DDMA控制器108提取在步驟202中未被預取之任何剩餘的描述符。DDMA控制器108將該描述符及先前預取的描述符儲存在RAM 110中的非典型命令描述符列表中。DDMA控制器108針對非典型資料標籤擷取與該預取及提取的描述符相關聯之資料,且經由命令解碼器 106及第二主機介面118而將與該非典型資料標籤相關聯之資料轉移至主機102。
DDMA控制器108按順序且與典型資料標籤分開地處理非典型資料標籤,使得非典型資料標籤並未減慢典型資料標籤之處理,進而免除大型緩衝器的需要。就系統而言,非典型資料標籤可由具有許多描述符之SGL來描述,而典型資料標籤可由具有預期數目的描述符之SGL來描述。例如,在一實施例中,典型資料標籤可具有兩個描述符。非典型資料標籤可具有高於設定在系統之硬體暫存器中之臨限值之任何數量的描述符。在一實例中,一個1MB命令可由單一1MB描述符來描述,而非典型的1MB命令具有1000個相關聯之1KB描述符。預取及儲存1000個描述符將會耗用晶載RAM 110,使得DDMA控制器分開地處理非典型資料標籤而不預取所有的描述符,如圖2所示。
圖3展示與讀取命令相關聯之資料標籤當藉由DDMA控制器108處理時之處理的資料結構圖表300。DDMA控制器108儲存對在RAM110中各接收之命令特定之資訊且該資訊被展示在命令ID分段302中,包含展示資料標籤是否為典型或非典型(且因此被視為「異常」)之識別,以及為非典型的資料標籤列表(亦稱之為第一列表)之起頭及結束之一指示,以及預取的描述符被儲存在RAM 110中的位址。
DDMA控制器108進一步將資料標籤資訊儲 存在RAM 110中之列表306中,該資料標籤資訊列表306包含命令識別、埠識別、就緒位元、該資料標籤是否已被分配之指示、已被儲存之用於資料標籤之描述符的位址。就緒指示符(或就緒位元)指示相關聯資料是否可用於轉移。已分配之指示符指示指示是否包含資料及後設資料兩者之所有描述符係可用於資料標籤。列表包含對RAM 110中之描述符之列表的索引。
DDMA控制器108將與資料標籤相關聯之描述符儲存在RAM110中之指標記憶體分段列表304。描述符記憶體分段列表304具有用於儲存描述符之有限的空間量,使得當描述符記憶體分段列表已滿時,不會有進一步的描述符被新增至列表,直到藉由轉移相關聯資料至主機102而移除一些描述符。每次處理一個非典型資料標籤進一步防止RAM 110變成溢位且防止緩衝器在犧牲典型資料標籤的情況下被非典型資料標籤所用完。在一些實施方案中,每次僅有一個緩衝器被使用於非典型資料標籤之處理。描述符被儲存具有該描述符是否進一步對應於另一描述符的指示。例如,主機記憶體位址1指向關聯的指標主機記憶體位址2。
DDMA控制器108維持每埠複數個列表且命令之執行被分佈在SSD104之埠之間。
圖4展示具有典型及非典型資料描述符部分之佇列讀取命令408的圖表400。垂直軸線展示與命令408相關聯之遞增邏輯區塊位址(LBA)(被繪示為402)。讀取命 令408包含第一命令狀態404(其係「典型」的)及第二命令狀態406(其係「非典型」的)。第一命令狀態404具有第一資料標籤A410,且由資料描述符‘0’418所描述,其大小為2KB,該資料描述符‘0’418在本文中亦稱之為指標。由資料標籤A410所描述之第一命令狀態404係一典型命令,其可利用如上文針對圖2所描述之失序處理來予以處理。讀取命令408全部為11KB且由四個資料標籤及六個不同大小的描述符所描述。為了簡化,其係假設讀取命令408未具有後設資料。
第二命令狀態406係由三個資料標籤所描述,即資料標籤B412、資料標籤C414及資料標籤D416。資料標籤B412具有各為1KB之四個關聯的描述符,即資料描述符‘1’420、資料描述符‘2’422、資料描述符‘3’424及資料描述符‘4’426。資料標籤C414及資料標籤D416係與單一描述符相關聯,即資料描述符‘5’428,其全部大小為5KB。資料描述符‘0’418、資料描述符‘1’420、資料描述符‘2’422、資料描述符‘3’424、資料描述符‘4’426及資料描述符‘5’428必須由DDMA控制器108依順序讀取。使用SGL描述符,用於資料標籤D416之轉移所需要之資訊僅會在預先處理資料標籤A410、資料標籤B412及資料標籤C414之後才會出現以找出與對應於相關聯的資料標籤D416之這些資料標籤相關聯的描述符。
因為資料標籤B412具有多於一個的臨限值數目(在此實例中為兩個關聯的描述符),資料標籤B412被判 定為非典型(「異常」)且將依照圖2之順序來予以處理。資料標籤C414及D416係接續在資料標籤B412後面,且因此亦係非典型(「異常」)且亦將藉由此方法來予以處理。即使資料標籤C414或資料標籤D416中之一者是典型的,且具有小於臨限量之關聯的描述符之數目,在一非典型資料標籤之後的命令中之所有後續資料標籤係藉由非典型資料轉移請求方法來處理。因為接續在非典型資料標籤後面的資料標籤係依照依順序的處理方法予以處理,所以與該相同命令相關聯的所有後續資料標籤被新增至每命令列表的表尾且標示為異常。
如圖3所示,資料標籤係與描述資料之位置的資料描述符或指標相關聯。資料標籤及描述符被儲存在列表中之本端RAM 110中,這些列表係當資料標籤由DDMA控制器108處理時被更新。資料標籤參考用以轉移資料標籤至獨立資料結構所需要的描述符。然而,包含參考太多描述符之資料標籤的非典型命令部分無法具有儲存在RAM 110中的預取的描述符而不耗用大部分的可用晶載記憶體。若RAM110完全由用於命令之異常部分中之資料標籤之預取的描述符所耗用,則可能沒有可用的記憶體用於處理其他典型的資料標籤,且一旦在已完成之資料標籤的佇列中的任何資料要被轉移至主機102時,在非典型資料標籤完成處理之前將不會有任何的資料轉移。另外,若針對非典型資料標籤未預取的其餘描述符係按順序被提取,則後端緩衝器將忙碌提取大量的描述符而無法用於預 取其他的典型資料標籤,因此使系統變緩慢。以此方式作用的系統將是非常無效率的。
資料標籤是典型或非典型係由在資料標籤中之每資料擷取量之描述符之數目所判定。在一實例中,DDMA控制器基於來自由資料標籤執行控制器105傳輸之資料標籤之佇列之命令的組態來擷取4KB之倍數的資料標籤。典型命令臨限值限度係基於單一4KB資料標籤,而較大的資料標籤則是基於此大小之倍數來放大。在資料標籤中之描述符的數目判定資料標籤將利用失序處理被處理為典型資料標籤,或將利用按順序處理被處理為非典型(「異常」)資料標籤。
圖5A-5M繪示依照圖2繪示之程序來處理圖4所示之命令。
圖5A展示由在處理圖4之資料標籤中之複數個列表500所繪示之第一步驟。該複數個列表500包含命令ID表502、資料標籤索引記憶體506、由DDMA控制器108從命令解碼器106接收之來自於主機記憶體508的命令轉移資料、描述符記憶體分段510、工作副本非典型命令列表512、及使用於非典型資料標籤的異常執行列表504。命令ID表502係由識別命令之性質的命令ID所索引。描述符記憶體分段510含有多個列表。在此第一步驟中,從主機提取描述符之初始集合已發生,且資料標籤A532由DDMA控制器108所處理。在命令ID表502中,異常指示符被設定為0,待從主機提取之下一個描述符係由來自主機記憶體508之命令轉移資料所指示,且由DDMA控制器108擷取但未描述第一資料標籤A532之額外描述符(描述符516、518、520)被指示為儲存在額外描述符列表上的描述符記憶體分段510中。
DDMA控制器108預取用於第一資料標籤A532之處理的預定量的描述符,其包含與資料標籤A532相關聯之2 KB資料描述符‘0’514,以及1 KB資料描述符‘1’516、1 KB資料描述符‘2’518及1 KB資料描述符‘3’520。資料描述符‘0’514完全描述資料標籤A532,且不對應於任何額外描述符。1 KB資料描述符‘1’516、1 KB資料描述符‘2’518及1 KB資料描述符‘3’520係額外描述符,這些額外描述符未描述資料標籤A532且被儲存在描述符記憶體分段510中,且1 KB資料描述符‘1’516參考1 KB資料描述符‘2’518為下一個描述符,且1 KB資料描述符‘2’518參考1 KB資料描述符‘3’520為下一個描述符。所有資料描述符被儲存在描述符記憶體分段510中,而資料標籤A532被儲存在資料標籤記憶體506中且參考描述符記憶體分段510中之資料描述符‘0’514之位置。
圖5B繪示在處理圖4之讀取命令中的下一個步驟。DDMA控制器108擷取資料標籤B534且處理已提取之與資料標籤B534相關聯之描述符,判定描述符之數目超過設定在硬體暫存器中之臨限值且因此被視為非典型或「異常」。DDMA控制器108指示在命令ID表502中該命令在命令ID表502中被視為非典型或「異常」且將資料標籤B534儲存在資料標籤記憶體506作為每命令列表之部分。先前擷取有資料標籤A532之與資料標籤B534相關聯的預取的描述符被儲存在描述符記憶體分段510中,且此時沒有針對資料標籤B534預取額外描述符。
典型描述符之可接受數目之臨限值可取決於可用於預取描述符之本端RAM 110之大小而為任意數目之描述符。在一些實施例中,該臨限值被設定為兩個描述符。在其他實施例中,該臨限值被設定為三個、四個或更多個描述符。增加可接受描述符之數目設定為該臨限值會使用更多記憶體,且可能需要新增額外的記憶體至裝置,增加了該裝置之大小。在一些實施例中,外部RAM可用以儲存預取的描述符,然而使用外部RAM會增加系統之延時。在一些實施例中,外部RAM被包含作為溢位以用於儲存預取的描述符並結合描述的演算法。
典型的SGL資料標籤具有單一描述符,或在一些例子中係兩個描述符。儘管在本文中所描述之資料標籤及描述符係與用於讀取命令之資料相關聯,但用以判定資料標籤將被失序處理或按順序處理之演算法可應用於由其他類型描述符(諸如後設資料描述符)所描述的其他標籤。在一些實施方案中,資料描述符包含後設資料描述符,且該後設資料描述符被計數在欲與臨限值比較以判定資料標籤是否被視為非典型之描述符數目中。在一些實施方案中,資料描述符包含後設資料描述符,且該後設資料描述符並未被計數在欲與臨限值比較之描述符數目中。
圖5C繪示在處理圖4之讀取命令中的下一個步驟。DDMA控制器108擷取資料標籤C536且當該命令已被視為異常時,將該資料標籤新增至資料標籤記憶體506作為每命令列表之部分,在該每命令列表中之資料標籤B534之後。資料標籤C536在資料標籤B534之後。在一些實施例中,每命令列表可由每埠異常列表來取代,其可能會降低所請求處理之效率,但節省記憶體。與資料標籤B534一樣,資料標籤C536被識別為非典型且命令ID表502識別資料標籤C536為非典型或異常資料命令之新的表尾或尾部。
圖5D繪示在處理圖4之讀取命令中的下一個步驟。資料標籤C536變成就緒且用於資料標籤C536之就緒位元被設定為就緒。然而,由於命令係非典型,資料標籤C536無法被失序處理且必須等待資料標籤B534(非典型命令之表頭)變成就緒且被處理。
在圖5E中,資料標籤B534此時變成就緒且用於資料標籤B534之就緒位元被設定為就緒。由於資料標籤B534係資料標籤記憶體506中之命令之異常部分的表頭,DDMA控制器108將其新增至異常執行列表504。資料標籤C536亦就緒且DDMA控制器108亦將其新增至異常執行列表504。
當資料標籤B534(在資料標籤記憶體506中之命令之異常部分的表頭及每命令列表之表頭)就緒時,DDMA控制器108將資料標籤B534及資料標籤C536從資料標籤記憶體506中之每命令列表移動至異常執行列表504。藉由在將命令移動至異常執行列表504且提取其餘資料描述符之前等待直到異常命令部分之表頭就緒以用於資料轉移,其他的典型資料標籤並未被非典型資料標籤之處理所耽誤。
在圖5F中,DDMA控制器108擷取資料標籤D538且將其新增至資料標籤記憶體506,至每命令列表的表尾。資料標籤D538尚未就緒,所以不被新增至異常執行列表504。
在圖5G中,資料標籤B534位在異常執行列表504之表頭且DDMA控制器108藉由移動資料描述符‘1’516、資料描述符‘2’518及資料描述符‘3’520至用於異常列表512之工作副本而開始處理資料轉移請求標籤B534。在一些實施例中,用於異常列表512之工作副本係在描述符記憶體分段510中的另一列表。
在圖5H中,DDMA控制器108將與資料描述符‘1’516、資料描述符‘2’518及資料描述符‘3’520相關聯之資料轉移至主機102,且該描述符從用於異常列表512之工作副本及從本端RAM 110移除。然而,資料標籤B534尚未完成。
在圖5I中,DDMA控制器108從主機記憶體508提取與資料標籤相關聯之額外的64位元組的描述符且適當地更新該命令ID表502。DDMA控制器108擷取資料描述符‘4’540及5KB資料描述符‘5’542且將該資料描述符儲存在用於異常列表512之工作副本以完成資料標籤B534之轉移。
在圖5J中,DDMA控制器108擷取及轉移與資料描述符‘4’540相關聯之資料以完成資料標籤B534之處理。資料標籤B534已完成且從資料標籤表506移除。
在圖5K中,DDMA控制器108已完成資料標籤B534之轉移。資料描述符‘5’542並未與資料標籤B534相關聯且從用於異常列表512之工作副本被移動至描述符記憶體分段510中之額外描述符列表。
在圖5L中,當資料標籤C536位在異常執行列表504之表頭時,DDMA控制器108便處理該資料標籤C536。由於資料描述符‘5’542並未對應於下一個資料描述符,該DDMA控制器將該資料描述符‘5’542移動至用於異常列表512的工作副本,然後轉移該相關聯資料。在DDMA控制器109結束與資料標籤C536相關聯之資料轉移之後,資料標籤C536便從資料標籤記憶體506移除。由於資料描述符‘5’542已僅部分耗用,其被更新且從用於異常列表512之工作副本移除且儲存在描述符記憶體分段510成為1KB資料描述符‘6’542。
在圖5M中,資料標籤A532變成就緒且該就緒指示符指示就緒。在圖5N中,DDMA控制器108將與資料標籤A532相關聯之資料轉移至主機102。由於資料標籤A532係典型資料標籤,一旦該資料變成就緒時,其可被處理且資料轉移至主機。資料標籤D538留在資料標籤記憶體 506中且連同關聯的資料描述符‘6’542在描述符記憶體分段510中。由於資料標籤B534與資料標籤C532已被處理及轉移,當資料標籤D538就緒且位在異常執行列表504之表頭時,資料標籤D538可被轉移,因為在順序上沒有前一個資料標籤。
儘管DDMA控制器108處理資料標籤A532、資料標籤B534、資料標籤C536及標籤D538,其他的項目可被連續地新增至資料標籤記憶體506。與其他命令(由DDMA控制器108所擷取)相關聯之其他典型資料標籤可被新增至資料標籤記憶體506且當該資料變成可用於轉移時被失序處理。
在一些實施例中,每次僅有一個緩衝器處理非典型資料標籤,而所有其他的緩衝器處理典型資料標籤以有效率地利用緩衝器來完成該讀取資料轉移請求。在一些實施例中,可被同時使用於處理或轉移非典型資料標籤的緩衝器之數目係多於一個,例如兩個或三個。
圖6展示流程圖600,其繪示處理讀取命令之方法。在步驟602處,DDMA控制器108從命令解碼器106接收描述讀取命令之複數個資料標籤。在步驟604處,DDMA控制器108擷取該複數個資料標籤之數目。在一些實施例中,DDMA控制器108擷取預定大小的量之資料標籤,例如,4KB的資料。
在步驟606處,DDMA控制器108預取與資料標籤相關聯之設定數目的描述符。在一些實施例中,DDMA控制器108預取與複數個資料標籤相關聯之預定大小量的描述符。在步驟608處,DDMA控制器108比較用於第一資料標籤之描述符之數目與設定在硬體暫存器中之臨限值。
若用於第一資料標籤之描述符的數目超過臨限值數目,則在步驟610處,DDMA控制器108將第一資料標籤新增至第一列表。該第一資料轉移請求被視為非典型且將被按順序處理,而先前提取且由DDMA控制器處理之任何典型資料標籤在資料變成可用於轉移時被失序處理。
在步驟612處,針對第一資料標籤與預取的描述符相關聯之資料被擷取在後端中。DDMA控制器108將不提取描述第一資料標籤之任何其餘描述符,直到第一資料標籤就緒用於執行,亦即,第一資料標籤被標記為就緒,預取描述符資料係可用的,且該第一資料標籤位在執行列表之表頭。
在步驟614處,第一資料標籤在第一列表中被按順序處理。這是在預取的描述符資料已被擷取且可用於轉移且該第一資料標籤位在執行列表之表頭處時發生。當該第一資料標籤位在該第一列表之表頭且與該第一資料標籤相關聯之資料已就緒待被轉移時,將該第一資料標籤移動至第二列表。當該第一資料標籤位在該第二列表之表頭時,轉移該相關聯資料。若需要額外描述符來完成與該資料標籤相關聯之資料的轉移,則提取描述符且當資料變成可用時轉移該資料。在列表中的後續資料標籤僅可在第一資料標籤被處理(例如,按順序)且相關聯資料轉移之後才被處理。
若與第一資料標籤相關聯之描述符的數目不滿足該臨限值,則當相關聯資料就緒時,該DDMA控制器108傳輸與該第一資料標籤相關聯之資料(例如,失序)。
本發明之各種態樣的其他目的、優點及實施例將是熟悉本發明領域者可顯見的且落在本說明及圖式的範疇中。舉例來說但不限於結構或功能元件可被重新配置成與本發明一致。類似地,依照本發明之原理可被應用於其他實例,即使這些未被詳細描述於本文中,但仍將落在本發明的範疇內。
100‧‧‧半導體儲存系統 102‧‧‧主機 103‧‧‧主機記憶體 104‧‧‧固態硬碟(SSD) 105‧‧‧資料標籤執行控制器 106‧‧‧命令解碼器 107‧‧‧命令切段器 108‧‧‧資料直接記憶體存取(DDMA)控制器 109‧‧‧快閃後端 110‧‧‧隨機存取記憶體(RAM) 111‧‧‧半導體晶片 112‧‧‧第一記憶體 114‧‧‧第二記憶體 116‧‧‧週邊組件互連(PCIe)核心 118‧‧‧主機介面 120‧‧‧第一通信頻道 122‧‧‧第二通信頻道 202‧‧‧步驟 204‧‧‧步驟 206‧‧‧步驟 208‧‧‧步驟 210‧‧‧步驟 212‧‧‧步驟 214‧‧‧步驟 300‧‧‧資料結構圖表 302‧‧‧命令ID分段 304‧‧‧描述符記憶體分段列表 306‧‧‧資料標籤資訊列表 400‧‧‧圖表 402‧‧‧邏輯區塊位址 404‧‧‧第一命令狀態 406‧‧‧第二命令狀態 408‧‧‧讀取命令 410‧‧‧第一資料標籤A 412‧‧‧資料標籤B 414‧‧‧資料標籤C 416‧‧‧資料標籤D 418‧‧‧資料描述符‘0’ 420‧‧‧資料描述符‘1’ 422‧‧‧資料描述符‘2’ 424‧‧‧資料描述符‘3’ 426‧‧‧資料描述符‘4’ 428‧‧‧資料描述符‘5’ 500‧‧‧列表 502‧‧‧命令ID表 504‧‧‧異常執行列表 506‧‧‧資料標籤記憶體 508‧‧‧主機記憶體 510‧‧‧描述符記憶體分段 512‧‧‧異常列表 514‧‧‧資料描述符‘0’ 516‧‧‧資料描述符‘1’ 518‧‧‧資料描述符‘2’ 520‧‧‧資料描述符‘3’ 532‧‧‧第一資料標籤A 534‧‧‧資料標籤B 536‧‧‧資料標籤C 538‧‧‧資料標籤D 540‧‧‧資料描述符‘4’ 542‧‧‧資料描述符‘5’ 600‧‧‧流程圖 602‧‧‧步驟 604‧‧‧步驟 606‧‧‧步驟 608‧‧‧步驟 610‧‧‧步驟 612‧‧‧步驟 614‧‧‧步驟
圖1展示固態記憶體系統之方塊圖;
圖2展示用於處理讀取命令之決策圖;
圖3展示與讀取命令相關聯之非典型資料描述符之處理的方塊圖;
圖4展示佇列讀取命令之圖表;
圖5A展示複數個典型及非典型資料描述符之處理的圖表;
圖5B展示在複數個典型及非典型資料描述符之處理中的一個步驟;
圖5C展示在複數個典型及非典型資料描述符之處理中的一個步驟;
圖5D展示在複數個典型及非典型資料描述符之處理中的一個步驟;
圖5E展示在複數個典型及非典型資料描述符之處理中的一個步驟;
圖5F展示在複數個典型及非典型資料描述符之處理中的一個步驟;
圖5G展示在複數個典型及非典型資料描述符之處理中的一個步驟;
圖5H展示在複數個典型及非典型資料描述符之處理中的一個步驟;
圖5I展示在複數個典型及非典型資料描述符之處理中的一個步驟;
圖5J展示在複數個典型及非典型資料描述符之處理中的一個步驟;
圖5K展示在複數個典型及非典型資料描述符之處理中的一個步驟;
圖5L展示在複數個典型及非典型資料描述符之處理中的一個步驟;
圖5M展示在複數個典型及非典型資料描述符之處理中的一個步驟;
圖5N展示在複數個典型及非典型資料描述符之處理中的一個步驟;及
圖6展示流程圖,其繪示處理讀取命令之方法。

Claims (20)

  1. 一種半導體儲存裝置,包括:資料直接記憶體存取(DDMA)控制器,被組態用以:將複數個讀取命令中的每個讀取命令分段成與該讀取命令相關聯的複數個資料標籤,該複數個資料標籤與儲存在主機裝置的複數個資料轉移描述符相關聯,該複數個資料轉移描述符指示一或多個與該複數個資料標籤相關聯的請求資料的位置;從該主機裝置擷取與該複數個資料標籤之一或多個相關聯之一或多個資料轉移描述符,其中,第一資料標籤具有對應於記憶體之鄰接區塊中的該請求資料的一或多個位置之相關聯數目個資料轉移描述符;判定與該第一資料標籤相關聯之資料轉移描述符的該數目是否滿足臨限值;若與該第一資料標籤相關聯之資料轉移描述符的該數目不滿足該臨限值:移動該第一資料標籤至第一列表,該第一列表具有包含位在該第一列表之表頭的第一位置的順序;當(i)該第一資料標籤位在該第一列表之該表頭且(ii)與該第一資料標籤相關聯之請求資料已就緒待被轉移時,移動該第一資料標籤至第二列表;且當該第一資料標籤位在該第二列表之表頭時,傳輸該請求資料至該主機裝置。
  2. 如申請專利範圍第1項之半導體儲存裝置,其中,若與該第一資料標籤相關聯之資料轉移描述符的該數目不滿足該臨限值,則該DDMA控制器進一步被組態用以:當該請求資料已就緒時,傳輸該請求資料至該主機裝置。
  3. 如申請專利範圍第1項之半導體儲存裝置,其進一步包括複數個緩衝器,其中,各緩衝器傳輸至該主機裝置與在該第二列表中之複數個資料標籤中之一者相關聯的資料。
  4. 如申請專利範圍第3項之半導體儲存裝置,其中,該複數個緩衝器中每次僅有一個被用以執行與具有資料轉移描述符之數目並不滿足該臨限值之該第一資料標籤相關聯之資料的資料轉移。
  5. 如申請專利範圍第1項之半導體儲存裝置,其中,該臨限值係儲存在暫存器中之預定量。
  6. 如申請專利範圍第1項之半導體儲存裝置,其中,該臨限值係與資料標籤相關聯之資料轉移描述符之預定數目。
  7. 如申請專利範圍第1項之半導體儲存裝置,其中,若與該第一資料標籤相關聯之資料轉移描述符的該數目不滿足該臨限值,則與同一讀取命令相關聯之後續資料標籤被視為不滿足該臨限值。
  8. 如申請專利範圍第7項之半導體儲存裝置,其中,與該同一讀取命令相關聯之該後續資料標籤被新增至該第一列表的表尾。
  9. 如申請專利範圍第1項之半導體儲存裝置,其中,處理該第一資料標籤包括存取在快閃記憶體中之該請求資料。
  10. 如申請專利範圍第2項之半導體儲存裝置,其中,若與該第一資料標籤相關聯之資料轉移描述符的該數目滿足該臨限量且與第二資料標籤相關聯之資料轉移描述符的數目亦滿足該臨限量,則該DDMA控制器被組態用以轉移與針對其請求資料變成首先可用之該第一資料標籤及該第二資料標籤中之任一者相關聯之資料。
  11. 如申請專利範圍第10項之半導體儲存裝置,其中,若與第三資料標籤相關聯之資料轉移描述符的數目不滿足該臨限量,則該第三資料標籤及任何後續資料標籤被新增至該第一列表。
  12. 如申請專利範圍第1項之半導體儲存裝置,其中,該資料轉移描述符包含後設資料描述符。
  13. 如申請專利範圍第12項之半導體儲存裝置,其中,該後設資料描述符並未被計數在與該臨限值相比較之資料轉移描述符之該數目中。
  14. 如申請專利範圍第12項之半導體儲存裝置,其中,該後設資料描述符係被計數在與該臨限值相比較之資料轉移描述符之該數目中。
  15. 如申請專利範圍第1項之半導體儲存裝置,其進一步包括晶載隨機存取記憶體(RAM),其被組態用以儲存該複數個資料標籤之列表與該第一列表。
  16. 如申請專利範圍第15項之半導體儲存裝置,其中,若與該第一資料標籤相關聯之資料轉移描述符的該數目並不滿足該臨限值,則與該第一資料標籤相關聯之擷取的資料轉移描述符被儲存在該晶載RAM中。
  17. 一種提取用於命令之直接記憶體存取(DMA)描述符至半導體儲存裝置之方法,該方法包括:針對位在晶載隨機存取記憶體(RAM)中之命令列表之 表頭處被分段成描述該命令之複數個資料標籤,每個資料標籤與複數個DMA描述符相關聯的第一命令:判定用以描述該第一命令之與第一資料標籤相關聯的DMA描述符之數目,其中,DMA描述符之該數目對應於記憶體之鄰接區塊中的請求資料的位置;且將與該第一資料標籤相關聯之DMA描述符的該數目與臨限值作比較;若與該第一資料標籤相關聯之DMA描述符的該數目不滿足該臨限值,則由以下步驟來處理該第一資料標籤:將該第一資料標籤儲存在第一列表中,該第一列表具有包含位在該第一列表之表頭的位置的順序;當(i)該第一資料標籤位在該第一列表之該表頭且(ii)與該第一資料標籤相關聯之資料已就緒時,移動該第一資料標籤至第二列表;擷取與該第一資料標籤相關聯之複數個額外DMA描述符;及當該第一資料標籤已到達第二列表之表頭時,執行與該第一資料標籤相關聯之資料的資料轉移。
  18. 如申請專利範圍第17項之方法,其中,若與該第一標籤請求相關聯之DMA描述符的該數目滿足該臨限值,則該方法進一步包括由以下步驟來處理該第一資料標籤:當與該第一資料標籤相關聯之該資料變成可用時,執行與該第一資料標籤相關聯之該資料的資料轉移。
  19. 如申請專利範圍第18項之方法,其中,若與該第一資料標籤相關聯之DMA描述符的該數目滿足該臨限值且與第二資料標籤相關聯之DMA描述符的數目亦滿足該臨限值,則該方法進一步包括轉移與針對其資料變成首先可用之該第一資料標籤及該第二資料標籤中之任一者相關聯之資料。
  20. 如申請專利範圍第19項之方法,其中,若與第三資料標籤相關聯之DMA描述符的數目不滿足該臨限值,則該方法包括將該第三資料標籤及任何後續資料標籤新增至該第一列表。
TW108118750A 2018-05-31 2019-05-30 分散聚集列表的失序處理的方法 TWI718546B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/994,252 2018-05-31
US15/994,252 US10657087B2 (en) 2018-05-31 2018-05-31 Method of out of order processing of scatter gather lists

Publications (2)

Publication Number Publication Date
TW202004769A TW202004769A (zh) 2020-01-16
TWI718546B true TWI718546B (zh) 2021-02-11

Family

ID=68062960

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108118750A TWI718546B (zh) 2018-05-31 2019-05-30 分散聚集列表的失序處理的方法

Country Status (5)

Country Link
US (1) US10657087B2 (zh)
JP (2) JP2021526255A (zh)
CN (1) CN112204534B (zh)
TW (1) TWI718546B (zh)
WO (1) WO2019229531A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11256423B2 (en) * 2019-10-14 2022-02-22 Western Digital Technologies, Inc. Efficiently identifying command readiness based on system state and data spread in multi queue depth environment
CN112988623B (zh) * 2019-12-17 2021-12-21 北京忆芯科技有限公司 加速sgl处理的方法与存储设备
US11442852B2 (en) * 2020-06-25 2022-09-13 Western Digital Technologies, Inc. Adaptive context metadata message for optimized two-chip performance
US11861224B2 (en) 2021-10-26 2024-01-02 Western Digital Technologies, Inc. Data transfer management from host buffers
US11782635B2 (en) * 2021-11-12 2023-10-10 Western Digital Technologies, Inc. Method to ensure message arrival before a message pointer
US11656798B1 (en) * 2021-12-03 2023-05-23 Western Digital Technologies, Inc. Immediate partial host buffer fetching
US20240086108A1 (en) * 2022-09-13 2024-03-14 Western Digital Technologies, Inc. Parallel fragmented sgl fetching for hiding host turnaround time

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324594B1 (en) * 1998-10-30 2001-11-27 Lsi Logic Corporation System for transferring data having a generator for generating a plurality of transfer extend entries in response to a plurality of commands received
TWI345410B (en) * 2003-08-21 2011-07-11 Thomson Licensing Sa Method for seamless real-time splitting and concatenating of a data stream
TW201435571A (zh) * 2013-02-28 2014-09-16 Toshiba Kk 資料處理裝置、顯示控制裝置、半導體晶片、顯示裝置之控制方法、及電腦可讀取媒體
US20150269639A1 (en) * 2014-03-03 2015-09-24 Avi Mistriel Referent-Centric Social Networking
US20170075815A1 (en) * 2015-09-10 2017-03-16 Kabushiki Kaisha Toshiba Memory system and information processing apparatus
US9606915B2 (en) * 2015-08-11 2017-03-28 Toshiba Corporation Pool level garbage collection and wear leveling of solid state devices
US9933964B2 (en) * 2014-12-23 2018-04-03 Commvault Systems, Inc. Secondary storage operation instruction tags in information management systems

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020144027A1 (en) * 2001-03-27 2002-10-03 Schmisseur Mark A. Multi-use data access descriptor
US6701393B1 (en) * 2002-06-27 2004-03-02 Emc Corporation Systems and methods for managing storage location descriptors
JP4536361B2 (ja) * 2003-11-28 2010-09-01 株式会社日立製作所 データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法
JP4658122B2 (ja) * 2005-04-01 2011-03-23 富士通株式会社 Dmaコントローラ、ノード、データ転送制御方法、及びプログラム
JP2006318139A (ja) * 2005-05-11 2006-11-24 Matsushita Electric Ind Co Ltd データ転送装置、データ転送方法およびプログラム
US7620749B2 (en) 2007-01-10 2009-11-17 International Business Machines Corporation Descriptor prefetch mechanism for high latency and out of order DMA device
US8645623B1 (en) * 2007-06-28 2014-02-04 Emc Corporation Method for performing a raid operation in a data storage system
US8495301B1 (en) * 2007-11-23 2013-07-23 Pmc-Sierra Us, Inc. System and method for scatter gather cache processing
JP4516999B2 (ja) * 2008-03-28 2010-08-04 富士通株式会社 データ通信制御装置、データ通信制御方法およびそのためのプログラム
TWI465905B (zh) * 2010-09-22 2014-12-21 Toshiba Kk 記憶體系統、主機控制器、及直接記憶體存取之控制方法
WO2013030630A1 (en) * 2011-09-02 2013-03-07 Freescale Semiconductor, Inc. Data processing system and method for task scheduling in a data processing system
US9501436B1 (en) * 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9778858B1 (en) * 2015-02-11 2017-10-03 Microsemi Solutions (U.S.), Inc. Apparatus and method for scatter gather list handling for an out of order system
US10108565B2 (en) 2015-03-31 2018-10-23 Toshiba Memory Corporation Method for on-demand fetching of SGL pointers based buffer, traffic and command requirements
US9990138B2 (en) * 2015-03-31 2018-06-05 Toshiba Memory Corporation Out of order SGL read sorting in a mixed system with PRP read or system that supports only SGL reads
US9959227B1 (en) * 2015-12-16 2018-05-01 Amazon Technologies, Inc. Reducing input/output latency using a direct memory access (DMA) engine
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324594B1 (en) * 1998-10-30 2001-11-27 Lsi Logic Corporation System for transferring data having a generator for generating a plurality of transfer extend entries in response to a plurality of commands received
TWI345410B (en) * 2003-08-21 2011-07-11 Thomson Licensing Sa Method for seamless real-time splitting and concatenating of a data stream
TW201435571A (zh) * 2013-02-28 2014-09-16 Toshiba Kk 資料處理裝置、顯示控制裝置、半導體晶片、顯示裝置之控制方法、及電腦可讀取媒體
US20150269639A1 (en) * 2014-03-03 2015-09-24 Avi Mistriel Referent-Centric Social Networking
US9933964B2 (en) * 2014-12-23 2018-04-03 Commvault Systems, Inc. Secondary storage operation instruction tags in information management systems
US9606915B2 (en) * 2015-08-11 2017-03-28 Toshiba Corporation Pool level garbage collection and wear leveling of solid state devices
US20170075815A1 (en) * 2015-09-10 2017-03-16 Kabushiki Kaisha Toshiba Memory system and information processing apparatus

Also Published As

Publication number Publication date
US20190370199A1 (en) 2019-12-05
JP2023171862A (ja) 2023-12-05
TW202004769A (zh) 2020-01-16
US10657087B2 (en) 2020-05-19
JP2021526255A (ja) 2021-09-30
CN112204534A (zh) 2021-01-08
WO2019229531A1 (en) 2019-12-05
CN112204534B (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
TWI718546B (zh) 分散聚集列表的失序處理的方法
US10282132B2 (en) Methods and systems for processing PRP/SGL entries
US8832333B2 (en) Memory system and data transfer method
CN109815172B (zh) 设备控制器以及包括其的储存设备
JP4748610B2 (ja) 取り出されたデータをメモリに直接に書き込むストレージコントローラによるバッファスペースの最適な使用
CN107797759B (zh) 访问缓存信息的方法、装置与驱动器
CN107797760B (zh) 一种访问缓存信息的方法、装置与固态驱动器
CN107885456A (zh) 减少io命令访问nvm的冲突
EP3608790B1 (en) Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests
US20150253992A1 (en) Memory system and control method
CN107870866B (zh) Io命令调度方法与nvm接口控制器
CN106681660A (zh) Io调度方法及io调度装置
CN109213423B (zh) 基于地址屏障无锁处理并发io命令
CN107851065B (zh) 预先缓存分配器
KR102526104B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
CN108628759B (zh) 乱序执行nvm命令的方法与装置
WO2017054714A1 (zh) 磁盘阵列的读方法及装置
CN110515861B (zh) 处理刷写命令的存储设备及其方法
KR102266166B1 (ko) 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스
CN106155583B (zh) 缓存固态设备读取请求结果的系统和方法
CN108733583B (zh) 提高NVMe SSD顺序数据读取性能的预读方法及系统
EP3005124B1 (en) Systems and methods for cache management of universal serial bus systems
CN111258491B (zh) 降低读命令处理延迟的方法与装置
CN111736779B (zh) Nvm接口命令的优化执行方法与装置
US10235203B1 (en) Techniques for increasing storage system performance in processor-bound workloads with large working sets and poor spatial locality