TWI662418B - Information processing device and memory access method - Google Patents
Information processing device and memory access method Download PDFInfo
- Publication number
- TWI662418B TWI662418B TW106136823A TW106136823A TWI662418B TW I662418 B TWI662418 B TW I662418B TW 106136823 A TW106136823 A TW 106136823A TW 106136823 A TW106136823 A TW 106136823A TW I662418 B TWI662418 B TW I662418B
- Authority
- TW
- Taiwan
- Prior art keywords
- queue
- processing
- instruction
- request
- queues
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- 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/061—Improving I/O performance
-
- 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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- 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/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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Abstract
[課題] 抑制為了記憶體存取的延遲時間,同時使利用SSD的資訊處理穩定進行。 [解決手段] 資訊處理裝置的主機單元(12)包含:發行向快閃記憶體(20)的存取要求的指令發行部(30),被發行的指令,因應存取的內容及緊急性的高度而分別被儲存於複數佇列(44)。快閃控制器(18)的管理指令生成部(42)生成快閃記憶體(20)所必要的處理要求,儲存於佇列(44)中的任一佇列中。指令處理部(46)依照在每個佇列設定的規則,切換佇列而將指令讀出、處理。
Description
[0001] 本發明係有關於存取至快閃記憶體的資訊處理裝置及記憶體存取方法。
[0002] 隨著NAND型快閃記憶體的容量擴大,取代從前的HDD(Hard Disk Drive),作為記憶裝置而漸漸地開始使用SSD(Solid State Drive)。SSD與HDD相比,除了能夠以高速且低耗電力來進行資料存取這個優點之外,也具有對反複的資料讀出或改寫的耐久性低的這種特性。因此對於SSD的資料改寫,進行使改寫對象的區域分散的處理。例如從主機CPU進行改寫要求時,藉由將被指定的邏輯區塊位址置換成不同的物理位址,盡可能地使改寫對象分散至複數記憶體單元(例如參照專利文獻1)。 [先前技術文獻] [專利文獻] [0003] [專利文獻1] WO 2014/132346 A1公報
[發明所欲解決的問題] [0004] 如同上述,因為SSD能夠高速存取,藉由將資訊處理所需的多數資料,在必要的時點讀出,能夠抑制系統記憶體的容量。另一方面,如這樣增加存取的頻度的話,SSD特有的管理處理的問題會明顯化。管理處理有例如接下來所述者。亦即,因為NAND型快閃記憶體無法覆寫,當如上述那樣在各種區域寫入資料時,在任何階段在將該等連續的區域進行複製,在以後的寫入中有將其所具備的空區域的資料消去的必要。 [0005] 又,藉由重複讀出,具有元件的電荷發生洩漏而資料被破壞的可能性,在某階段有使資料待避到別的區域的必要。再來因為高速進行寫入,將在每1記憶體單元記錄1位元的SLC(Single Level Cell)作為快取使用,在之後的時點,重新儲存至每1記憶體單元可記錄3位元的TLC(Triple Level Cell)。使該等管理處理比來自主機CPU的要求還優先進行的話,在資訊處理中會產生無法忽略的延遲時間。另一方面,管理處理不在適切的時點進行的話,來自主機CPU的要求會變得無法處理。 [0006] 本發明鑑於這種課題,其目的為提供一種抑制為了記憶體存取的延遲時間,同時使利用SSD的資訊處理穩定進行的技術。 [解決問題的手段] [0007] 本發明的一態樣係有關於資訊處理裝置。該資訊處理裝置,具備:記憶體控制器;該記憶體控制器包含:受理從主機處理器向記憶體的存取要求的指令受理部;從將存取要求分類並儲存的複數佇列的任一者將存取要求讀出,並執行的指令處理部;指令處理部,於因應在每個佇列設定的規則的時點,從複數佇列之中將要求讀出目標的佇列切換至下一個。 [0008] 本發明的再一個別的態樣係關於記憶體存取方法。該記憶體存取方法,係由記憶體控制器所進行,包含:受理從主機處理器向記憶體的存取要求的步驟;從將存取要求分類並儲存的複數佇列的任一者將存取要求讀出的步驟;執行讀出的存取要求的步驟;讀出步驟,於因應在每個佇列設定的規則的時點,從複數佇列之中將要求讀出目標的佇列切換至下一個。 [0009] 此外,以上的構成要素的任意組合,將本發明的表現在方法、裝置、系統、電腦程式、記錄電腦程式的記錄媒體等之間變換者或作為本發明的態樣是有效的。 [發明的效果] [0010] 根據本發明,能抑制為了記憶體存取的延遲時間,同時使利用SSD的資訊處理穩定進行。
[0012] 圖1表示本實施形態的資訊處理裝置的電路構成。其中例示的資訊處理裝置,可以是手持遊戲機、個人電腦、行動電話、平板終端、PDA等一般的資訊機器的任一者。資訊處理裝置10包含:包含CPU的主機單元12、系統記憶體14、NAND型快閃記憶體20(以後,單稱為快閃記憶體20)、快閃控制器18。 [0013] 主機單元12,將儲存在快閃記憶體20的程式及資料載入至系統記憶體14,用其進行資訊處理。又將應用程式及資料,從圖未示的記錄媒體驅動部中被驅動的記錄媒體讀出、或由通信部從經網路連接的伺服器下載,並儲存至快閃記憶體20。此時,主機單元12向快閃控制器18,發行對快閃記憶體20的存取要求,快閃控制器18因應其而對快閃記憶體20實施讀出/寫入處理。 [0014] 快閃記憶體20連接有複數NAND型快閃記憶體,資料如圖所示被分散至複數通道(圖中為「ch0」~「ch3」的4通道)儲存。快閃控制器18包含:具有與主機單元12之間的介面機能的主機控制器22、具有與快閃記憶體20之間的介面機能的記憶體控制器28、及SRAM(Static Random Access Memory)24。 [0015] 主機單元12,因應資訊處理的進行產生對快閃記憶體20的存取要求,將其儲存至系統記憶體14。該存取要求中包含存取目標的邏輯位址(LBA:Logical Block Address)。快閃控制器18的主機控制器22,將儲存在系統記憶體14的存取要求讀出,將LBA變換成快閃記憶體20的物理位址。此時,成為必要的位址變換表,原本,將儲存在快閃記憶體20中的至少一部分先在SRAM24展開。 [0016] 主機控制器22參照該位址變換表,將基於LBA而取得的物理位址供應至記憶體控制器28。記憶體控制器28基於該物理位址而在快閃記憶體20的該當區域進行存取,藉此將資料讀出或寫入。應寫入的資料,為主機單元12將儲存於系統記憶體14中者由記憶體控制器28讀出。讀出的資料,由記憶體控制器28儲存至系統記憶體14,由主機單元12讀出。 [0017] 一般,對於快閃記憶體20的資料的讀出及寫入,以4096位元組等的存取單位來進行。利用NAND型快閃記憶體時,因為無法進行資料的覆寫,當寫入資料時,需要先確保沒有寫入任何資料的區域。如同上述,為了使寫入區域分散而僅變更邏輯位址重複資料的更新的話,成為無效的原本儲存資料的區域會增加,最後能夠新寫入的區域會用完。 [0018] 因為資料的消去以數MiB(1MiB=1020
位元組)的區塊單位來進行,為了確保未寫入任何資料的區域,在將儲存於消去對象的區塊的有效資料複製到別的區塊之後,將原來區塊的資料全體消去。這樣的處理一般稱為「垃圾回收(Garbage Collection)」。也就是說記憶體控制器28,需要在快閃記憶體20中可寫入的區域用完、或在此之前的適切時機,實施垃圾回收。 [0019] 又NAND型快閃記憶體因為電荷的洩漏而產生資料不良。該電荷的洩漏會因資料的讀出中的電壓施加而加速。記憶體控制器28一般雖然有訂正這種不良資料的錯誤的機能,若但讀出動作以高頻度進行的話,會超過訂定錯誤的能力,最後會有資料消失的可能。這樣的不良一般稱為「讀出干擾(Read Disturb)」。 [0020] 因為讀出動作藉由在對象的資料區域以外施加電壓而進行,因為重複向相同區塊的讀出,區塊全體會發生不良。因此,記憶體控制器28,若在相同區塊的讀出次數到達預定值的話,藉由使該區塊全體的資料待避到別的區塊,來將洩漏的電荷重新充電。 [0021] 再來NAND型快閃記憶體,藉由對蓄積的電荷量設定閾值而設成8階段,在每1記憶體單元包含記錄3位元的資料的TLC。不過,因為TLC與由2階段的電荷來在每1記憶體單元記錄1位元的資料的SLC相比,需要複雜的寫入順序,寫入處理需要花費時間。在此將快閃記憶體20的一部分作為SLC的區域來事先確保,將其作為快取而使用來藉此將寫入處理高速化。此時記憶體控制器28在與寫入要求的遂行不同的別的適切的時點,將寫入SLC的資料事先複製至TLC。 [0022] 這樣記憶體控制器28有將NAND型快閃記憶體特有的管理處理,與來自主機單元12的要求分別實施的必要。一旦,產生管理處理的必要時,到其結束為止的比較長的期間,通常的資料讀出及寫入處理被迫要待機。其結果,在資訊處理會發生無法忽略的延遲、或者處理全體的產率會明顯降低。在將儲存於快閃記憶體20的資料頻繁地讀出而描繪顯示影像的態樣中,因為隨著存取次數的增加而管理處理的頻度也增加,與到影像顯示為止的時間限制的嚴峻度相互搭配問題容易顯著化。 [0023] 其中在本實施形態中,適切地維持資訊處理所必要的資料讀出及寫入的處理與管理處理之間的實施頻度的平衡,無破綻地實施兩者同時將資訊處理的延遲抑制在最小限度內。具體來說,將上述的那種管理處理、及來自主機單元12的存取要求,分別根據處理內容而分類,儲存於不同佇列中。接著藉由以因應處理內容的種類的固有規則來將對象的佇列作切換,使針對應確實遂行的處理能夠以絕對的尺度來完成。 [0024] 又根據來自主機單元12的存取要求的處理頻度與管理處理的必要性發生的頻度間的因果關係來決定佇列的切換規則,藉此使兩者的平衡最適化並使所需要的時間及頻帶寬度估算容易化。之後,有將為了管理處理的處理要求與來自主機單元12的存取要求整合而稱為「指令」的情形。 [0025] 圖2表示本實施形態的資訊處理裝置的機能區塊的構成。圖2所示的各機能,硬體能由圖1所示的電路構成來實現,在軟體部分,能由儲存於內部的記憶體的程式來實現。因此,該技術領域的通常知識者能理解其能僅藉由硬體、僅藉由軟體、或是兩者的組合來實現各種形態,因此並沒有任何限制。 [0026] 主機單元12包含:發行為了向快閃記憶體20的存取的指令發行部30、處理應用程式等的資訊處理部32、對快閃記憶體20將讀出或寫入的資料進行輸入輸出的資料輸入輸出部34。系統記憶體14包含:儲存從主機單元12發行的指令的複數佇列36、及儲存對快閃記憶體20讀出或寫入的資料的資料儲存部38。 [0027] 快閃控制器18包含:從主機單元12取得發行指令的要旨的通知的指令受理部40、產生為了快閃記憶體20的管理的指令的管理指令生成部42、儲存包含為了管理的指令的各指令的複數佇列44、依序處理儲存於佇列44的指令的指令處理部46、儲存切換處理對象的佇列的規則的切換規則記憶部48、及以預定的手法來調整實施管理處理的比例的指令調整部50。 [0028] 主機單元12的資訊處理部32處理使用者所選擇的應用程式等的程式。在該過程中需要將儲存於快閃記憶體20的資料讀出、或在快閃記憶體20寫入資料的話,資訊處理部32將該要旨通知指令發行部30。因應其指令發行部30指定存取目標的邏輯位址,發行讀出或寫入的指令。 [0029] 更詳細而言,將指令儲存在系統記憶體14的複數佇列36中的任一者,並對快閃控制器18通知該要旨。此時,指令發行部30除了讀出要求或寫入要求這些存取內容之外,也基於緊急性的高度將指令分類,儲存至對應分類結果的佇列中。因此,將基於存取內容、限制時間、存取的資料的大小等的指令的分類規則、與對應的佇列的位址資訊,以資訊處理部32處理的程式等預先設定。 [0030] 當指令為寫入要求時,資料輸入輸出部34從資訊處理部32取得應寫入的資料,並儲存於系統記憶體14的資料儲存部38。又資料輸入輸出部34,將因應讀出要求而快閃控制器18從快閃記憶體20讀出的資料,從資料儲存部38讀出並供應至資訊處理部32。 [0031] 快閃控制器18的指令受理部40從主機單元12受理發行指令的要旨的通知,從系統記憶體14的該當的佇列讀出指令後,儲存於保持於內部的複數佇列44之中的對應佇列中。其中快閃控制器18所保持的佇列44,包含與系統記憶體14內的複數佇列36相同構成的複數佇列。或者將系統記憶體14內的佇列36,以作為佇列44的一部分而能參照的方式設定也可以。 [0032] 管理指令生成部42,在上述垃圾回收、為了讀出干擾回避的資料複製、從SLC向TLC的資料複製這些管理處理成為必要的階段,將要求該等處理的指令發行。更詳細來說,監視對於快閃記憶體20的資料寫入狀況及讀出狀況,判定應發行管理處理的指令的時點。判定規則對每個管理處理的內容預先設定。 [0033] 接著,將指定處理內容、資料的複製源位址、複製目標位址、應作資料消去的區塊等的指令,儲存至為了佇列44的管理處理的佇列之中對應處理內容的佇列。此外在同圖中,佇列44之中,將儲存主機單元12發行的指令的佇列以反白表示,將儲存管理指令生成部42發行的指令的佇列以影線表示來區別。 [0034] 指令處理部46將儲存於佇列44的指令依序進行處理。此時,儲存於1個佇列的指令,遵守該儲存順序而處理。又指令處理部46將處理對象的佇列,依照分別設定的切換規則切換至下個佇列。亦即儲存於別的佇列的指令,可能以與發行順序不同的順序來處理。佇列的切換規則預先儲存於切換規則記憶部48,讓指令處理部46參照。 [0035] 當從佇列讀出的指令為寫入要求時,指令處理部46從系統記憶體14的資料儲存部38讀出應寫入的資料,將該資料寫入對應於指令所包含的邏輯位址的區域。當指令為寫出要求時,指令處理部46將從對應於指令所包含的邏輯位址的區域讀出的資料,儲存於系統記憶體14的資料儲存部38。當指令為在快閃記憶體20內部的資料的移動時,指令處理部46從指令所包含的複製源的位址將資料複製至複製目標的位址。又因應必要將複製源的區塊的資料消去。 [0036] 指令調整部50,以管理處理未結束而記憶體存取無破綻的方式,調整實施的處理的比例。例如為了儲存於佇列44的管理處理的指令之數超過預定的閾值時,將儲存於切換規則記憶部48的佇列的切換規則的至少一者暫時地變更,或向主機單元12通知該要旨。 [0037] 前者的情形,使作為從儲存管理處理的指令的佇列向下個佇列切換的規則而設定的限制時間及使指令處理數的上限增加、或使除此以外的佇列的指令處理數的上限減少。藉此,能夠實質地增加實施管理處理的比例。儲存於佇列44的為了管理處理的指令之數成為上述預定的閾值以下的話,使佇列的切換規則回到原來的。 [0038] 向主機單元12通知時,主機單元12的指令發行部30接收通知而限制指令的發行。例如使緊急性低的指令的發行暫時停止或將發行的頻度限制於預定值以下。這也能夠實質地增加實施管理處理的比例。此外變更佇列的切換規則或通知主機單元12的時點在上述以外也可以。 [0039] 例如,因為垃圾回收及為了回避讀出干擾的處理的必要性,可以根據至此為止的記憶體存取的狀況來預測,能夠從之前就先制定好對策。具體來說,可寫入的區塊數成為預定的閾值以下時,判定垃圾回收的指令在不久被發行。在此所用的閾值當然是設為比實際發行垃圾回收的指令時的閾值還大的值。 [0040] 或者,對相同區塊的讀出處理的次數達到預定的閾值時,判定成為了讀出干擾回避的資料複製指令在不久被發行。在此所用的閾值當然是設為比實際發行垃圾回收的指令時的閾值還小的值。接著在該等時點,若將佇列的切換規則變更或通知主機單元12的話,能夠抑制先前所能調整的分、調整量。 [0041] 藉由將可寫入的區塊數及對相同區塊的讀出處理的次數,定期地通知主機單元12,將主機單元12的指令發行漸漸地限制也可以。此外,變更佇列的切換規則的對應、及向主機單元12的通知,可以獨立進行也可以同時進行。藉由這樣的調整處理,能夠將來自主機單元12的存取要求的處理與快閃記憶體20自身所必需的管理處理之間的平衡適切地保持,且關於緊急性高的指令的處理也能夠保障低延遲。 [0042] 圖3表示佇列44的構成例。這裡圓柱模式地表示各佇列,在其正下方,表示儲存於各佇列的指令種類。快閃記憶體20被分成具有不同名稱空間(NS:Name Space)的邏輯分配而排除其他存取。佇列也被設於每個該當分配,在圖中從上段依序表示對於識別符號a、b、c的名稱空間(「NSIDa」、「NSIDb」、「NSIDc」)所設的佇列。再來在最下段,作為表示管理處理的「BG Job」(Background Job),也示出對其設置的佇列。 [0043] 在此例中「NSIDa」為被通常的檔案系統所存取的分配,設置標準的讀出指令與寫入指令所混合的佇列51。「NSIDb」為用以採用僅讀出的檔案的分配,一旦利用寫入指令專用的佇列58將檔案寫入的話,利用讀出指令專用的佇列52、54、56將資料讀出。 [0044] 在這裡讀出指令專用的佇列,因應緊急性的高度由複數佇列所構成,在同圖中,分為緊急性最高的「緊急」佇列52、緊急性次高的「高優先度」佇列54、緊急性最低的「通常優先度」佇列56的3階段。但是階段數並不限於此。又寫入指令專用的佇列58,作為與「NSIDa」的佇列51具有相同程度的優先度標的標準佇列。 [0045] 「NSIDc」為以SLC構成的分配,設置高速寫入專用的佇列60、及讀出指令與寫入指令混合的佇列62。又後者作為與「NSIDa」的佇列51具有相同程度的優先度的標準佇列。 [0046] 作為「BG Job」如同上述,設置為了從SLC向TLC將資料複製的指令的佇列64、為了讀出干擾回避的為了資料複製指令的列66、為了垃圾回收的指令的佇列68。作為佇列除了這些之外,與運用中在背景應執行的上述那種管理處理不同,具有儲存為了管理系統的指令的佇列等也可以。 [0047] 快閃控制器18的指令處理部46如同上述,依照儲存於切換規則記憶部48的規則在切換佇列的同時,將儲存的指令依序進行處理。更詳細來說,將佇列51~68自體分成複數種類,對各種類分配處理的期間使其循環。在將某種類的佇列作為處理對象的期間,當指令的處理數達到上限為止的時點、或在限制時間的滿了的時點,將下個種類的佇列移行作為處理對象的期間。處理上限數及限制時間可在每個佇列的種類獨立設定。以後,將在每個佇列的種類所分配的期間稱為「階段」。 [0048] 圖4表示在各階段處理的佇列的種類、在各階段中的指令的處理上限數及限制時間的設定例。在該例中分成從階段1到階段5的5個期間,使其以階段1、2、3、4、5、1、2、・・・循環而移行。首先階段1為對NSIDb的讀出專用的佇列,亦即在圖3的例中將佇列52、54、56的3個佇列作為處理對象。在該等佇列之中,將緊急性越高的佇列優先作為處理對象。指令的處理上限設為50個。此外指令數,將對預定大小的資料的存取作為1單位來計數。以後的說明也一樣。 [0049] 階段2將對NSIDc的高速寫入專用的佇列、對NSIDa及c的標準的讀出/寫入的佇列、及對NSIDb的標準的寫入專用的佇列作為處理對象。該等在圖3的例中,分別對應佇列60、51、62、58。在該等佇列之中,在高速寫入專用的佇列60中若儲存有指令的話,將其作為優先來實現向SLC的高速寫入。 [0050] 階段3將BG Job,亦即管理處理用的佇列(圖3的例中為佇列64、66、68)作為處理對象。儲存於該等佇列的指令,雖然都包含將已儲存在快閃記憶體20的資料移至別的區域的處理,但在階段3之中,僅實施讀出原本資料的部分。讀出的資料先暫時儲存於內部的記憶體或系統記憶體14。 [0051] 階段4與階段1一樣,將對NSIDb的讀出專用的佇列作為處理對象。藉由將對相同佇列的處理分為2個期間,能夠使在前面的期間結束之後馬上發行的指令馬上在下個期間馬上作處理,能夠減少最大延遲時間。階段5,將BG Job,亦即儲存於管理處理用的佇列的指令之中,進行在階段3讀出的資料的寫入、及因複製而成為無效的資料的消去。 [0052] 例如利用儲存於NSIDb的資料,以預定的訊框速率來描繪顯示影像時,因為該資料讀出延遲而畫面可能會凍結或訊框落下。因為儲存於管理處理用的佇列的指令,都在處理的結束需要很多時間,藉由設為分成階段3及階段5的2階段的處理,使得追求顯示影像的描繪等即時性的處理不會被妨礙。 [0053] 又,與資料的讀出及向SLC的寫入比較,向TLC的寫入及資料消去需要數倍以上的時間。因此將後述作為階段5而整理的同時,設置限制時間,即便在處理的途中一旦中斷也能夠移行至別的階段。在圖中的例子,將階段5的限制時間作為「3.0msec」。除了限制時間以外,緊急性高的佇列,例如在圖3的緊急讀出佇列52中儲存指令的時點,將階段5的處理中斷也可以。 [0054] 藉此,如同上述在利用從NSIDb讀出的資料來描繪顯示影像的態樣中,能夠將對顯示影像的影響抑制在最小限度。此外將階段5的處理中斷時,到使其中斷的處理結束為止,略過階段2及階段3而使階段移行也可以。 [0055] 在圖4中,也例示了賦予至各階段的指令數的處理上限、以及藉此想定的最大所需時間。在階段1及4中,將來自NSIDb的資料讀出以「50」指令作為上限處理。讀出處理在每1指令作為100μsec,除此以外的所需時間作為100μsec的話,階段1及4的所需時間成為最大5.1msec。在階段2中,若是對NSIDa~NSIDc的寫入以「1」指令、讀出的話以「4」指令作為上限來處理。 [0056] 在此所進行的向SLC的寫入處理在每1指令設為500μsec、讀出處理與上述一樣,每1指令設為100μsec、除此以外所需的時間設為100μsec的話,在寫入、讀出的任一者中階段2的所需時間成為最大0.5msec。在階段3中,將複製源的資料的讀出以「3」指令作為上限處理。讀出處理與上述一樣,每1指令作為100μsec,除此以外的所需時間作為100μsec的話,階段3的所需時間成為最大0.4msec。 [0057] 在階段5中,將向複製目標的資料的寫入以「1」指令作為上限來處理。成為無效的區域的資料消去與上述一樣以限制時間「3.0msec」來拘束,漸漸地進行。賦予這樣的限制後,從階段1到階段5為止的1循環分的處理最大成為14.1msec,能夠將為了記憶體存取的延遲時間抑制在一定值以下。又快閃記憶體20與快閃控制器18間所必要的頻帶寬度也能控制在預定值以下。 [0058] 在圖示的例子,將每1指令的資料大小作為65536B(位元組)時,14.1msec的周期中,因為在階段1及4進行最大100指令分的讀出處理,必要的頻帶寬度在NAND的每1通道,成為65536×100/14.1=465MB/sec。同樣地,為了在階段2處理的指令的必要頻帶寬度在NAND的每1通道,讀出處理成為18.6MB/sec、寫入處理成為4.65MB/sec。此外,在此所述的各種數值及設定僅為例示,可以因應資訊處理的內容及處理性能等來適宜變更。 [0059] 圖5表示在階段1及階段4中,指令處理部46從NSIDb將資料讀出的處理的順序的流程圖。在此例中,想定成如圖3所示因應緊急性的高度將讀出專用的佇列分為3個的情形。首先確認在緊急性最高的佇列(圖3的緊急的讀出佇列52)是否儲存有指令(S10)。當有儲存時(S10的Y),指令處理部46進行在該當佇列最先儲存的指令讀出、邏輯位址變換成物理位址等,讀出該區域中的資料(S12)。 [0060] 只要在緊急性最高的佇列儲存有指令,將其依序讀出並處理(S10的Y、S12)在該佇列沒有應處理的指令(S10的N),至此為止處理的指令數若未滿設定的處理上限的話(S14的Y),確認在緊急性次高的佇列(圖3的高優先度的讀出佇列54)是否儲存有指令(S16)。當有儲存時(S16的Y),指令處理部46進行在該當佇列最先儲存的指令讀出,與上述一樣讀出資料(S18)。 [0061] 即便這樣也無法到達設定的處理上限數的話(S20的Y),指令處理部46再度確認在處理1個指令時,在緊急性最高的佇列是否儲存有指令,若有儲存的話將其處理(S10的Y、S12)。在緊急性最高的佇列沒有應處理的指令(S10的N),至此為止處理的指令數若未滿設定的處理上限的話(S14的Y),接著處理在緊急性次高的佇列中儲存的指令(S16的Y、S18)。在該佇列沒有應處理的指令(S16的N),確認在緊急性最低的佇列(圖3的通常優先度的讀出佇列56)是否儲存有指令(S22)。 [0062] 當有儲存時(S22的Y),指令處理部46進行在該當佇列最先儲存的指令讀出,與上述一樣讀出資料(S24)。即便這樣也無法到達設定的處理上限數的話(S20的Y),指令處理部46再度確認處理1個指令時,在緊急性最高的佇列是否儲存有指令,若有儲存的話將其處理(S10的Y、S12)。在這樣的循環中藉由任何處理而指令的處理數達到上限(S14的N或S20的N)、或沒有應處理的指令的話(S22的N),使該階段結束而移行至下個階段。 [0063] 藉由這種處理順序,將緊急性越高的佇列以高頻度來監視並能將指令先處理,從指令的儲存到處理為止的延遲時間能抑制在最小限度。又關於緊急性比較低的指令,藉由將處理數的上限作為拘束條件使處理延後,而讓給別的階段,能夠控制在階段全體的所需時間及頻帶寬度。 [0064] 圖6表示在階段2中,指令處理部46對NSIDa~c進行資料的讀出或寫入的處理順序的流程圖。指令處理部46首先確認在用以對NSIDc的高速寫入的佇列(圖3的高速寫入佇列60)中是否儲存有指令(S30)。當有儲存時(S30的Y),指令處理部46進行在該當佇列最先儲存的指令讀出、邏輯位址變換成物理位址,並且將從系統記憶體14讀出的資料寫入該區域(S32)。 [0065] 在該時點處理的指令數到達設定的寫入處理的上限的話,使該階段結束並移行至下個階段(S34的N)。根據圖4所示的處理上限數的設定,因為在階段2的寫入以1指令作為上限,實施1次S32的處理的話,本階段會結束。除此以外的設定,若處理的指令數未滿設定的寫入處理的上限的話(S34的Y),再度確認在用以高速寫入的佇列中是否儲存有指令,若有儲存的話則進行處理(S30的Y、S32)。 [0066] 重複此過程並到達寫入處理的上限的話,使該階段結束並移行至下個階段(S34的N)。若在用以高速寫入的佇列中沒有應處理的指令的話(S30的N),確認在用以對NSIDa~NSIDc的標準的讀出或寫入的佇列(圖3的標準的讀出/寫入佇列51及62、標準的寫入佇列58)的任一者中是否儲存有指令(S36)。 [0067] 當有儲存時(S36的Y),指令處理部46進行在該當佇列最先儲存的指令讀出,與上述一樣寫入或讀出資料(S38)。在階段2中,因為分別對讀出處理及寫入處理設定處理上限,在每次處理1指令的時,對每個該處理內容,比較指令數與上限。若未到達處理上限數的話(S34的Y),再度確認在用以高速寫入的佇列中是否儲存有指令,若有儲存的話則進行處理(S30的Y、S32)。 [0068] 若在該佇列沒有應處理的指令的話(S30的N),確認在用以標準讀出或寫入的佇列中是否儲存有指令,若有儲存的話則進行處理(S36的Y、S38)。在該循環中處理的指令數達到上限、或沒有應處理的指令的話,使該階段結束而移行至下個階段(S34的N或S36的N)。藉由這種處理順序,能優先地處理高速的寫入。此外在S36中雖然被作為確認處理的對象的佇列在圖3的例子中有3個,但基本上其等依序確認,若有指令的話以處理的循環方式也可以。 [0069] 圖7表示在階段3中,指令處理部46在管理處理之中進行讀出處理的處理順序的流程圖。指令處理部46確認對管理處理設置的佇列(圖3的SLC→TLC複製的佇列64、讀出干擾回避用資料複製的佇列66、垃圾回收的佇列68)的任一者中是否儲存有指令(S40)。當有儲存時(S40的Y),指令處理部46進行在該當佇列最先儲存的指令讀出,其中僅實施讀出資料的處理(S42)。 [0070] 若處理的指令數未滿在階段3設定的上限的話,只要在佇列中有指令,則重複其中的讀出處理(S44的Y、S40的Y、S42)。當達到處理的上限時(S44的N),或在任何佇列中都沒有應處理的指令時(S40的N),使該階段結束並移行至下個階段。此外在S40中雖然被作為確認處理的對象的佇列有複數個(在圖3之例中為3個),但將循環方式依序作確認,若指令存在的話,將處理作為基本。 [0071] 又關於階段3,取代將處理數的上限以絕對值來設定,而僅讀出在階段5實施寫入的分也可以。又SLC的空區域變得比預定尺寸還少時,藉由略過在階段2中的向SLC的寫入處理的指令並移行至階段3,使向TLC的資料複製先進行。在此情況下因為階段1或4以順序進行,而遂行必要的資料讀出。 [0072] 圖8表示在階段5中,指令處理部46在管理處理之中進行寫入處理及資料消去的處理順序的流程圖。此外在階段3僅實施讀出處理的管理處理的指令,立上標記等他與其他作區別後,在佇列先殘留。或者將將管理處理的指令分成讀出指令、寫入指令、消去指令來儲存,將在階段3被處理的讀出指令從佇列中刪除也可以。 [0073] 首先指令處理部46,確認在其以前的階段5的時點是否有中斷處理的指令(S50)。如同上述因為在階段5中的處理比較需要時間,在緊急的讀出佇列中儲存指令、或使階段5的限制時間滿了時,中斷處理而移行至階段1。中斷處理的指令被儲存至圖未示的別的佇列,或者以將其識別的狀態,在原本的佇列先預留。 [0074] 若有中斷的指令的話(S50的Y),從中斷該指令的時點再度開始(S54)。若沒有中斷的指令的話(S50的N),指令處理部46確認對管理處理設置的佇列中的任一者中是否儲存有指令(S52)。但是在這裡作為對象的指令,為在階段3僅實施資料的讀出的指令。若沒有這樣的指令的話,使該階段結束並移行至下個階段(S52的N)。若有指令的話(S52的Y),開始該指令的寫入處理、及因應必要的資料消去處理(S54)。 [0075] 接著,在確認相對NSIDb的緊急性最高的讀出佇列中是否儲存有指令、是否達到在階段5設定的限制時間的同時,續行處理(S56的N、S58的N、S60的N)。當向緊急佇列的指令的儲存、及限制時間的滿了中的任一者發生的話(S56的Y或S58的Y),中斷開始的處理並移行至下個階段(S62)。此時,移行階段1、階段4後再回到階段5,使中斷的處理再度開始。 [0076] 當向緊急佇列的指令的儲存、及限制時間的滿了中的任一者都未發生而處理結束的話(S60的Y),確認指令的處理數是否達到上限,使該階段結束並移行至下個階段(S64的N)。根據圖4所示的處理上限數的設定,因為在階段5的寫入以1指令作為上限,在S60中寫入處理結束的時點本階段結束。又因為資料消去處理經過長時間,在處理結束的時點使階段結束。 [0077] 在除此以外的設定,若處理的指令數未滿設定的寫入處理的上限的話(S64的Y),確認在用以高速寫入的各佇列中是否儲存有指令,若有儲存的話則將其處理(S52的Y、S54~S60)。在這種情形當然也一樣,當向緊急佇列的指令的儲存、及限制時間的滿了中的任一者發生的話(S56的Y或S58的Y),中斷開始的處理並移行至下個階段(S62)。另一方面,若處理結束而指令的處理數到達上限的話,使該階段結束並移行至下個階段(S64的N)。 [0078] 不過在階段3及階段5實施的管理處理的發生頻度,會對在階段1、階段2、及階段4實施的指令之數有影響。例如將SLC複製至TLC的處理以3頁面單位進行。其中在階段2中進行每次1頁面分的向SLC的寫入時,藉由在3周期進行1次從SLC向TLC的複製,能夠使結算的結果一致。因此剩下的66%的時間被分配至別的管理處理。 [0079] 又1區塊在768頁面,在階段3及階段5中使每1周期3頁面的複製結束後,在256周期1區塊的複製結束。為了回避讀出干擾,相同區塊若以平均1,000,000次讀出的話複製該區塊時,在階段1及階段4中每1周期進行最大100次的讀出後,在10,000周期需要1次區塊複製。在1區塊的複製如同上述需要256周期的話,為了讀出干擾回避的管理處理所必需的時間比例最大為256/10000≒2.5%。 [0080] 因此,考慮到從主機單元12發行的指令數與管理處理的發生間的因果關係,藉由以適切的平衡來設定在各階段中的指令的處理上限數,能使管理處理無破綻而將全部圓滑地處理。又在各階段將作為處理對象的佇列,如同上述藉由因應處理內容及優先度適切地切換,能夠抑制從各指令的發行到處理為止的延遲時間。 [0081] 例如根據圖4的設定,儲存於NSIDb的佇列的前頭指令的處理因其他處理而延遲的時間,最大也能抑制在階段5的限制時間3.0msec左右。藉此,在利用從NSIDb讀出的資料來描繪顯示影像時,能夠將畫面的凍結及訊框落下等不良狀態抑制到最小限度。 [0082] 如同至此為止所述在本實施形態中,因應指令的內容將階段、以及佇列的切換規則獨立地設定。在此,能夠更加地將依循資訊處理的特性的規則課予至特定的階段。圖9作為一例,為用以說明因應來自主機單元12的通知而導入切換階段的規則的形態的圖。在該例中資訊處理裝置,利用儲存於快閃記憶體20的資料,將之後應顯示的描繪影像的處理,一致於顯示裝置的訊框顯示周期而重複。 [0083] 藉由從快閃記憶體20,將描繪所必需的資料在該場讀出、及事先比先前讀出更多的資料,能夠節約系統記憶體14的容量。圖的橫方向為時間軸,從上段開始,將訊框n、訊框n+1、訊框n+2、・・・以矩形來表示在顯示裝置所顯示的期間、描繪各訊框的期間、及快閃控制器18的記憶體存取的各階段。 [0084] 最上段的顯示處理中的塗黑的期間對應於垂直歸線期間。對於這樣的周期性的顯示處理,資訊處理裝置(主要是主機單元12)在開始顯示前,需要完成同訊框的描繪。根據影像的內容,各訊框的描繪期間及從快閃記憶體20所應讀出的資料大小及其要求頻度也不同。從描繪期間的矩形向下指出的反白箭頭(例如箭頭80),例示來自主機單元12的讀出指令的發行時點。 [0085] 如圖所示,某訊框的描繪結束後到下個訊框的描繪開始為止,發生因應訊框的描繪期間的空時間Tn+1
、Tn+2
、Tn+3
、・・・。在此藉由利用該時間,將管理處理之中需要時間的處理整合進行,在描繪期間中能更加抑制讀出處理的延遲。具體來說,當1訊框分的描繪處理結束時,從主機單元12向快閃控制器18通知其要旨。在同圖中將該時點以箭頭82a、82b、82c、82d來表示。 [0086] 快閃控制器18以接收該通知為條件,從階段4移行至階段5。在同圖中將該時點以箭頭84a、84b、84c、84d來表示。以這樣一致於主機單元12中處理的進行狀況,快閃控制器18藉由切換處理指令的種類,能夠分別在適當的時點實施主機單元12所必要的處理、及快閃記憶體20自身所必要的處理。 [0087] 在同圖的例中,從主機單元12發行描繪資料的讀出指令的期間,亦即在訊框的描繪期間,因為限定於階段1~4而進行指令處理,讀出處理的延遲時間最大以階段2及階段3的期間分即可。當設定圖4所示的那種處理上限數時,該延遲時間最大成為0.9msec。 [0088] 圖10為表示主眼於指令調整部50所進行的調整的快閃控制器18的處理順序的流程圖。快閃控制器18的指令受理部40、管理指令生成部42、及指令處理部46,如同到此為止所述的,受理從主機單元12發行的指令或生成為了管理處理的指令,依序進行處理(S70)。在該步驟中詳細如同上述,包含將階段1~5、及在各階段作為處理對象的佇列,依照在切換規則記憶部48設定的規則切換的處理。 [0089] 再來,如圖9所示包含將來自主機單元12的通知作為條件而移行至階段5的動作也可以。與這樣的指令處理並行,指令調整部50監視對快閃記憶體20之中相同區塊的讀出次數是否超過預定的閾值(S72)。又監視可新寫入的區塊之數是否在預定的閾值以下(S74)。前者為事先預測為了回避讀出干擾的資料複製指令的發行時點的到來者。 [0090] 後者為事先預測垃圾回收指令的發行時點的到來者。若任何監視結果都為否的話,不進行指令調整部50的調整,續行指令處理(S72的N、S74的N、S70)。對相同區塊的讀出次數超過預定的閾值(S72的Y)、可新寫入的區塊之數成為預定的閾值以下的話(S74的Y),指令調整部50調整儲存於切換規則記憶部48的切換規則的任一者(S76)。 [0091] 例如在階段1、階段2、階段4中,暫時不處理儲存於通常優先度的讀出佇列及標準的寫入、讀出的佇列的指令、或限制處理數,此外使階段3及階段5的處理上限數及限制時間增加。藉此,對1周期在管理處理使用的時間比例增加。 [0092] 又指令調整部50,將對相同區塊的讀出次數超過預定的閾值的要旨、及可新寫入的區塊之數成為預定的閾值以下的要旨,通知主機單元12(S78)。因應此,主機單元12使通常優先度的讀出處理及標準的寫入處理、讀出處理的指令發行數暫時地降低。即便這樣,與切換規則的變更一樣,對1周期在管理處理使用的時間比例增加。此外向主機單元12隨時通知對相同區塊的讀出次數及可寫入的區塊數,在主機單元12側調整指令的發行數也可以。 [0093] 作為結果,保障來自主機單元12的要求之中緊急性高的指令的處理,不會發生使管理處理不及時而無法讀出正確的資料、或無法寫入的情形。此外,S72及S74的監視項目僅設為任一者也可以,以能夠預測管理處理成為必要者的方式採用別的監視項目或組合其也可以。例如對實際儲存於管理處理的佇列的指令之數中設置閾值、或預測從至此為止的指令的儲存狀況之後的儲存數來判定調整的必要性也可以。 [0094] 又實施S76的切換規則的變更及S78的向主機單元12的通知的任一者也可以。又雖省略圖示,但監視項目結束作為目標的管理處理的話,指令調整部50將切換規則返回原來的、或將其要旨通知主機單元而使指令的發行數返回通常狀態。 [0095] 根據以上所述的本實施形態,將對於快閃記憶體的存取要求,儲存在因應讀出、寫入這種處理的內容與在其中的優先度的不同佇列。接著依照在每個佇列設定的規則,切換對象的佇列將指令讀出、處理。藉此能夠以適合資訊處理的特性例如是資料讀出及寫入的何者支配的、何者對時間的拘束條件是嚴格的、兩者是否對等的這些特性的順序及頻度來處理存取要求。 [0096] 又將複數佇列分類、在每個種類設置處理期間(階段)。藉此對各個佇列,將在相同階段處理的佇列間的切換規則及階段間的切換規則課予2重,藉由該等的組合能夠詳細地設定、進而依實態柔軟地運用。 [0097] 在這樣的系統中,也同樣組入垃圾回收、為了讀出干擾回避的資料複製、從SLC向TLC的資料複製這樣的管理處理用的佇列。藉此,來自主機單元的緊急性高的存取要求的處理,能夠防止因管理處理造成的延滯。特別是上述的那種管理處理,因為相依於來自主機單元的存取要求的內容及與頻度而發生,藉由設定利用指令處理數的上限及限制時間等、對每個佇列絕對的指標的規則,使雙方的平衡最適化,能夠以無破綻低延遲地進行必要的處理。又藉由使階段循環,處理周期的估算變得容易,頻帶寬度的控制成為可能。 [0098] 再來在上述的管理處理中,具有頻度雖不高但如果發生必要性的話需要更多的時間的有獨特性質者。在事前預測這樣的處理開始的時點,暫時地使切換規則變化或抑制主機單元的要求之中緊急性低者的發行。藉此,暫時使管理處理中分配的時間增加並促進,此外能容易實現擔保主機單元的處理所最低限必要的存取處理這種臨機應變的對應。 [0099] 以上,將本發明以實施形態為基礎說明。上述實施形態為例示,該等各構成要素及各處理程序的組合中可有多種變形例,又該技術領域的通常知識者能夠理解這些變形例也在本發明的範圍內。
[0100]
10‧‧‧資訊處理裝置
12‧‧‧主機單元
14‧‧‧系統記憶體
18‧‧‧快閃控制器
20‧‧‧快閃記憶體
22‧‧‧主機控制器
24‧‧‧SRAM
28‧‧‧記憶體控制器
30‧‧‧指令發行部
32‧‧‧資訊處理部
34‧‧‧資料輸入輸出部
36‧‧‧佇列
40‧‧‧指令受理部
42‧‧‧管理指令生成部
44‧‧‧佇列
46‧‧‧指令處理部
48‧‧‧切換規則記憶部
50‧‧‧指令調整部
[0011] [圖1] 表示本實施形態的資訊處理裝置的電路構成的圖。 [圖2] 表示本實施形態的資訊處理裝置的機能區塊的構成的圖。 [圖3] 表示本實施形態的佇列的構成例的圖。 [圖4] 表示本實施形態中在各階段處理的佇列的種類、在各階段中的指令的處理上限數及限制時間的設定例的圖。 [圖5] 表示本實施形態的指令處理部在階段1及階段4中讀出資料的處理的順序的流程圖。 [圖6] 表示本實施形態的指令處理部在階段2中進行資料的讀出或寫入的處理順序的流程圖。 [圖7] 表示本實施形態的指令處理部在階段3中在管理處理之中進行讀出處理的處理順序的流程圖。 [圖8] 表示本實施形態的指令處理部在階段5中在管理處理之中進行寫入處理及資料消去的處理順序的流程圖。 [圖9] 在本實施形態中,用以說明因應來自主機單元的通知而導入切換階段這種規則的形態的圖。 [圖10] 表示主眼於在本實施形態的指令調整部所進行的調整的快閃控制器的處理順序的流程圖。
Claims (16)
- 一種資訊處理裝置,具備:記憶體控制器;該記憶體控制器包含:受理從主機處理器向記憶體的存取要求的指令受理部;從將前述存取要求分類並儲存的複數佇列的任一者將前述存取要求讀出,並執行的指令處理部;其中,前述指令處理部,於因應在每個前述佇列設定的規則的時點,從前述複數佇列之中將要求讀出目標的佇列切換至下一個;前述記憶體控制器更具備:發行前述記憶體的管理所必要的處理要求的管理指令生成部;前述複數佇列更包含:儲存前述管理指令生成部所發行的管理用處理的要求的佇列;前述指令處理部,從前述佇列讀出前述管理用處理的要求然後執行。
- 如請求項1所記載的資訊處理裝置,其中,前述複數佇列,將根據存取的內容及優先度而分類的前述存取要求分別儲存;前述指令處理部,於因應根據該存取的內容及優先度而設定的規則的時點,切換讀出目標的佇列。
- 如請求項1所記載的資訊處理裝置,其中,前述指令處理部,在將儲存前述管理用處理的要求的佇列作為讀出目標時,在經過設定的限制時間的時點,將要求讀出目標切換至下個佇列。
- 如請求項1所記載的資訊處理裝置,其中,前述指令處理部,在將儲存前述管理用處理的要求的佇列作為讀出目標時,在別的佇列儲存具有預定優先度的存取要求的時點,將要求讀出目標切換至該別的佇列。
- 如請求項1所記載的資訊處理裝置,其中,前述指令處理部,在前述主機處理器通知的時點,將儲存前述管理用處理的要求的佇列作為要求讀出目標。
- 如請求項1所記載的資訊處理裝置,其中,前述指令處理部,將前述管理用處理之中讀出讀出處理的要求的期間、與讀出寫入處理的要求的期間分離。
- 如請求項1所記載的資訊處理裝置,其中,前述管理用處理包含:在使儲存於某區塊的資料待避至別的區塊後,將原本的區塊的資料消去的處理。
- 如請求項1所記載的資訊處理裝置,其中,前述管理用處理包含:將寫入每1記憶體單元記錄1位元的SLC(Single Level Cell)區域中的資料,複製到每1記憶體單元記錄3位元的TLC(Triple Level Cell)區域的處理。
- 如請求項1所記載的資訊處理裝置,其中,前述記憶體控制器更具備:基於在前述佇列已儲存的前述管理用處理的要求量、及發行前述管理用處理的要求的時點的預測結果的至少一者,來變更在每個前述佇列設定的規則的至少一者的指令調整部。
- 如請求項1所記載的資訊處理裝置,其中,前述記憶體控制器更具備:基於在前述佇列已儲存的前述管理用處理的要求量、及發行前述管理用處理的要求的時點的預測結果的至少一者,來向前述主機處理器依賴存取要求的發行控制的指令調整部。
- 如請求項1所記載的資訊處理裝置,其中,前述指令處理部,從將具有預定基準以上的優先度的讀出要求整合而儲存的佇列,依序讀出該讀出要求並執行。
- 如請求項1所記載的資訊處理裝置,其中,前述指令處理部,在每個將前述複數佇列分類而成的佇列的群組分配處理時間,因應在每個該群組設定的規則,切換作為處理對象的群組。
- 如請求項1所記載的資訊處理裝置,更具備:儲存成為來自前述主機處理器的存取要求對象的資料的NAND型快閃記憶體。
- 如請求項1所記載的資訊處理裝置,更具備:實施資訊處理,對前述記憶體控制器發行向前述記憶體的存取要求的主機處理器。
- 一種記憶體存取方法,係由記憶體控制器所進行,包含:受理從主機處理器向記憶體的存取要求的步驟;從將前述存取要求分類並儲存的複數佇列的任一者將前述存取要求讀出的步驟;執行讀出的存取要求的步驟;其中,前述讀出步驟,於因應在每個前述佇列設定的規則的時點,從前述複數佇列之中將要求讀出目標的佇列切換至下一個;前述受理存取要求的步驟更具備:發行前述記憶體的管理所必要的處理要求的步驟;前述複數佇列更包含:儲存前述處理要求的步驟所發行的管理用處理的要求的佇列;前述讀出步驟,從前述佇列讀出前述管理用處理的要求然後執行。
- 一種電腦程式產品,使記憶體控制器實現:受理從主機處理器向記憶體的存取要求的機能;從將前述存取要求分類並儲存的複數佇列的任一者將前述存取要求讀出,並執行的機能;其中,前述執行的機能,於因應在每個前述佇列設定的規則的時點,從前述複數佇列之中將要求讀出目標的佇列切換至下一個;前述受理存取要求的機能更具備:發行前述記憶體的管理所必要的處理要求的機能;前述複數佇列更包含:儲存前述處理要求的機能所發行的管理用處理的要求的佇列;前述執行的機能,從前述佇列讀出前述管理用處理的要求然後執行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016247049A JP6677627B2 (ja) | 2016-12-20 | 2016-12-20 | 情報処理装置およびメモリアクセス方法 |
JP2016-247049 | 2016-12-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201824010A TW201824010A (zh) | 2018-07-01 |
TWI662418B true TWI662418B (zh) | 2019-06-11 |
Family
ID=62626406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106136823A TWI662418B (zh) | 2016-12-20 | 2017-10-26 | Information processing device and memory access method |
Country Status (7)
Country | Link |
---|---|
US (1) | US11281572B2 (zh) |
EP (1) | EP3561678B1 (zh) |
JP (1) | JP6677627B2 (zh) |
KR (1) | KR102246840B1 (zh) |
CN (1) | CN110073337B (zh) |
TW (1) | TWI662418B (zh) |
WO (1) | WO2018116937A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11061822B2 (en) * | 2018-08-27 | 2021-07-13 | Qualcomm Incorporated | Method, apparatus, and system for reducing pipeline stalls due to address translation misses |
CN111124254B (zh) * | 2018-10-30 | 2023-09-29 | 伊姆西Ip控股有限责任公司 | 调度存储空间回收请求的方法、电子设备和程序产品 |
KR20210001414A (ko) * | 2019-06-28 | 2021-01-06 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 그 저장 방법 |
CN110362275B (zh) * | 2019-07-10 | 2021-09-07 | 深圳大普微电子科技有限公司 | 提升固态硬盘服务质量的方法及固态硬盘 |
US11029874B2 (en) * | 2019-07-30 | 2021-06-08 | Western Digital Technologies, Inc. | Rolling XOR protection in efficient pipeline |
JP2021086583A (ja) * | 2019-11-29 | 2021-06-03 | キヤノン株式会社 | 情報処理装置、制御装置および制御装置の制御方法 |
US20220004337A1 (en) * | 2020-07-06 | 2022-01-06 | Micron Technology, Inc. | Command prioritization in a command queue |
CN114168495A (zh) * | 2020-09-10 | 2022-03-11 | 西部数据技术公司 | 存储设备的增强的预读能力 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100199025A1 (en) * | 2009-02-02 | 2010-08-05 | Kabushiki Kaisha Toshiba | Memory system and interleaving control method of memory system |
US20110161554A1 (en) * | 2009-12-30 | 2011-06-30 | Selinger Robert D | Method and Controller for Performing a Sequence of Commands |
US20130254454A1 (en) * | 2012-03-23 | 2013-09-26 | Kabushiki Kaisha Toshiba | Memory system and bank interleaving method |
TWI506431B (zh) * | 2012-12-28 | 2015-11-01 | Infomicro Electronics Shenzhen Ltd | 虛擬記憶體設備驅動器、用於在主機上執行之虛擬記憶體設備驅動器、刷新快閃記憶體的方法、快閃記憶體刷新的方法、超級增強耐力設備硬碟固體狀態驅動機耐用轉換層之方法、超級增強耐力設備及耐力快閃記憶體檔案系統 |
TWI551989B (zh) * | 2009-09-03 | 2016-10-01 | 晶先鋒科技股份有限公司 | 快閃儲存系統之管理方法 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6570876B1 (en) * | 1998-04-01 | 2003-05-27 | Hitachi, Ltd. | Packet switch and switching method for switching variable length packets |
JP2000285082A (ja) | 1999-03-31 | 2000-10-13 | Toshiba Corp | 中央演算装置及びコンパイル方法 |
JP4327081B2 (ja) * | 2004-12-28 | 2009-09-09 | 京セラミタ株式会社 | メモリアクセス制御回路 |
US20060184718A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
JP4419868B2 (ja) | 2005-02-25 | 2010-02-24 | ソニー株式会社 | 情報処理装置および方法、メモリ制御装置および方法、記録媒体、並びにプログラム |
JP4142068B2 (ja) * | 2006-06-16 | 2008-08-27 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置およびアクセス制御方法 |
US8208406B1 (en) * | 2008-03-25 | 2012-06-26 | Juniper Networks, Inc. | Packet forwarding using feedback controlled weighted queues dynamically adjusted based on processor utilization |
JP5147584B2 (ja) * | 2008-07-23 | 2013-02-20 | 株式会社日立製作所 | ストレージサブシステム及びコントローラによるコマンド実行方法 |
CN101498994B (zh) * | 2009-02-16 | 2011-04-20 | 华中科技大学 | 一种固态硬盘控制器 |
US8838853B2 (en) * | 2010-01-18 | 2014-09-16 | Marvell International Ltd. | Access buffer |
US8468318B2 (en) | 2010-09-15 | 2013-06-18 | Pure Storage Inc. | Scheduling of I/O writes in a storage environment |
US8271692B1 (en) * | 2010-10-01 | 2012-09-18 | Western Digital Technologies, Inc. | Throttled command completion time |
US20120246385A1 (en) * | 2011-03-22 | 2012-09-27 | American Megatrends, Inc. | Emulating spi or 12c prom/eprom/eeprom using flash memory of microcontroller |
US8700834B2 (en) * | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
JP2013200692A (ja) * | 2012-03-23 | 2013-10-03 | Toshiba Corp | メモリシステム |
US9058208B2 (en) * | 2012-11-12 | 2015-06-16 | Skymedi Corporation | Method of scheduling tasks for memories and memory system thereof |
US8959263B2 (en) * | 2013-01-08 | 2015-02-17 | Apple Inc. | Maintaining I/O priority and I/O sorting |
WO2014132346A1 (ja) | 2013-02-27 | 2014-09-04 | 株式会社日立製作所 | 半導体ストレージ |
US9268495B2 (en) | 2013-03-15 | 2016-02-23 | Apple Inc. | Managing I/O priorities |
US9898201B2 (en) * | 2014-03-24 | 2018-02-20 | Hitachi, Ltd. | Non-volatile memory device, and storage apparatus to reduce a read retry occurrence frequency and prevent read performance from lowering |
US9965323B2 (en) * | 2015-03-11 | 2018-05-08 | Western Digital Technologies, Inc. | Task queues |
TWI588652B (zh) * | 2015-09-01 | 2017-06-21 | 慧榮科技股份有限公司 | 讀取及寫入命令排程方法以及使用該方法的裝置 |
US10866910B2 (en) * | 2015-09-28 | 2020-12-15 | Sandisk Technologies Llc | Systems, methods, and computer-readable media for managing instruction fetch in virtual computing environments |
US9910772B2 (en) * | 2016-04-27 | 2018-03-06 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
JP6783645B2 (ja) * | 2016-12-21 | 2020-11-11 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US10831403B2 (en) * | 2017-05-19 | 2020-11-10 | Seagate Technology Llc | Probabalistic command aging and selection |
-
2016
- 2016-12-20 JP JP2016247049A patent/JP6677627B2/ja active Active
-
2017
- 2017-10-26 TW TW106136823A patent/TWI662418B/zh active
- 2017-12-13 CN CN201780077153.8A patent/CN110073337B/zh active Active
- 2017-12-13 WO PCT/JP2017/044777 patent/WO2018116937A1/ja unknown
- 2017-12-13 KR KR1020197016557A patent/KR102246840B1/ko active IP Right Grant
- 2017-12-13 EP EP17883337.2A patent/EP3561678B1/en active Active
- 2017-12-13 US US16/346,717 patent/US11281572B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100199025A1 (en) * | 2009-02-02 | 2010-08-05 | Kabushiki Kaisha Toshiba | Memory system and interleaving control method of memory system |
TWI551989B (zh) * | 2009-09-03 | 2016-10-01 | 晶先鋒科技股份有限公司 | 快閃儲存系統之管理方法 |
US20110161554A1 (en) * | 2009-12-30 | 2011-06-30 | Selinger Robert D | Method and Controller for Performing a Sequence of Commands |
US20130254454A1 (en) * | 2012-03-23 | 2013-09-26 | Kabushiki Kaisha Toshiba | Memory system and bank interleaving method |
TWI506431B (zh) * | 2012-12-28 | 2015-11-01 | Infomicro Electronics Shenzhen Ltd | 虛擬記憶體設備驅動器、用於在主機上執行之虛擬記憶體設備驅動器、刷新快閃記憶體的方法、快閃記憶體刷新的方法、超級增強耐力設備硬碟固體狀態驅動機耐用轉換層之方法、超級增強耐力設備及耐力快閃記憶體檔案系統 |
Also Published As
Publication number | Publication date |
---|---|
CN110073337A (zh) | 2019-07-30 |
US11281572B2 (en) | 2022-03-22 |
CN110073337B (zh) | 2023-06-02 |
KR102246840B1 (ko) | 2021-04-30 |
EP3561678A1 (en) | 2019-10-30 |
JP6677627B2 (ja) | 2020-04-08 |
JP2018101301A (ja) | 2018-06-28 |
KR20190079672A (ko) | 2019-07-05 |
US20200073793A1 (en) | 2020-03-05 |
EP3561678B1 (en) | 2023-05-17 |
EP3561678A4 (en) | 2020-08-05 |
WO2018116937A1 (ja) | 2018-06-28 |
TW201824010A (zh) | 2018-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI662418B (zh) | Information processing device and memory access method | |
US11704239B2 (en) | Garbage collection method for storage medium, storage medium, and program product | |
US10303371B2 (en) | Data storage device that stabilizes write latency | |
JP5413572B2 (ja) | メモリストレージ装置及びその制御方法 | |
RU2642349C1 (ru) | Способ для сохранения данных посредством устройства хранения данных и устройство хранения данных | |
US8171239B2 (en) | Storage management method and system using the same | |
US8825946B2 (en) | Memory system and data writing method | |
US20140059271A1 (en) | Fast execution of flush commands using adaptive compaction ratio | |
JP2011145838A (ja) | 記憶装置管理装置および記憶装置の管理方法 | |
JPWO2009096180A1 (ja) | メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム | |
US11138104B2 (en) | Selection of mass storage device streams for garbage collection based on logical saturation | |
WO2023174394A1 (zh) | 一种数据处理方法和装置 | |
JP2011209963A (ja) | メモリ制御装置及びメモリ制御方法 | |
US9304906B2 (en) | Memory system, controller and control method of memory | |
JP2010237907A (ja) | ストレージ装置および記録方法 | |
JP2019160364A (ja) | メモリシステム及びメモリ制御方法 | |
US20190034121A1 (en) | Information processing apparatus, method and non-transitory computer-readable storage medium | |
JP5949122B2 (ja) | 制御装置、記憶装置、記憶制御方法 | |
JP6243884B2 (ja) | 情報処理装置、プロセッサ、および情報処理方法 | |
JP6254986B2 (ja) | 情報処理装置、アクセスコントローラ、および情報処理方法 | |
JP2013196646A (ja) | メモリ制御装置、データ記憶装置及びメモリ制御方法 | |
JP2005174468A (ja) | フラッシュメモリのアクセス制御方法 | |
JP2014123328A (ja) | 半導体記憶装置及びコンピュータシステム | |
JP2017138636A (ja) | メモリ管理方法、メモリ管理のためのプログラムおよびメモリ管理装置 | |
JP2017134446A (ja) | メモリ制御装置、記憶装置、メモリ制御方法およびコンピュータプログラム |