[go: up one dir, main page]

TWI459201B - Information processing device - Google Patents

Information processing device Download PDF

Info

Publication number
TWI459201B
TWI459201B TW101132071A TW101132071A TWI459201B TW I459201 B TWI459201 B TW I459201B TW 101132071 A TW101132071 A TW 101132071A TW 101132071 A TW101132071 A TW 101132071A TW I459201 B TWI459201 B TW I459201B
Authority
TW
Taiwan
Prior art keywords
write
cache
host
area
address
Prior art date
Application number
TW101132071A
Other languages
English (en)
Other versions
TW201344433A (zh
Inventor
Kenichi Maeda
Nobuhiro Kondo
Atsushi Kunimatsu
Original Assignee
Toshiba Kk
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 Toshiba Kk filed Critical Toshiba Kk
Publication of TW201344433A publication Critical patent/TW201344433A/zh
Application granted granted Critical
Publication of TWI459201B publication Critical patent/TWI459201B/zh

Links

Classifications

    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • 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
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

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)
  • Memory System Of A Hierarchy Structure (AREA)

Description

資訊處理裝置
本發明之實施形態係關於一種包含具有主記憶體之主機裝置、及具有非揮發性半導體記憶體之半導體記憶裝置的資訊處理裝置。
相關申請案
本申請係享受以美國專利申請61/639,454號(申請日:2012年4月27日)為基礎申請之優先權。本申請藉由參照該基礎申請而包含基礎申請之全部內容。
存在於集成複數個運算處理器之GPU(Graphical Processing Unit,繪圖處理器)等中,於複數個運算處理器間共有一個記憶體之UMA(Unified Memory Architecture,統一記憶體架構)之技術。根據UMA,可謀求記憶體成本之降低。
本發明之一實施形態之目的在於獲得儘可能有效地使用主記憶體之資訊處理裝置。
根據本發明之一實施形態,資訊處理裝置包含主機裝置、及具備非揮發性半導體記憶體之半導體記憶裝置。上述主機裝置包含具備主機使用區域及寫入快取(write cache)區域之主記憶體、第1主機控制部、及第2主機控制部。上述第1主機控制部於上述主機使用區域中生成對上述半導體記憶裝置之寫入資料,且生成指定上述非揮發性 半導體記憶體之寫入目的地之邏輯位址而將該寫入資料寫入至上述非揮發性半導體記憶體的寫入指令。上述第2主機控制部將上述第1主機控制部所生成之寫入指令傳輸至上述半導體記憶裝置,並且將上述寫入資料自上述主機使用區域中讀出,並傳輸至與上述寫入指令中指定之邏輯位址對應的上述寫入快取區域之快取線(cache line)。上述半導體記憶裝置包括器件控制部,該器件控制部於執行自上述主機裝置接收到之寫入指令時,使上述主機裝置將上述寫入快取區域中所快取之寫入資料向上述半導體記憶裝置傳輸,且寫入至上述非揮發性半導體記憶體之上述寫入目的地之邏輯位址所指定之位置。
以下,參照隨附圖式對實施形態之資訊處理裝置詳細地進行說明。再者,本發明並不受該等實施形態限定。
(第1實施形態)
圖1表示本實施形態之資訊處理裝置之構成例。本資訊處理裝置包括主機裝置(以下簡稱主機)1、及作為主機1之記憶裝置而發揮功能之記憶體系統(半導體記憶裝置)2。主機1與記憶體系統2之間由通信路3連接。於記憶體系統2中,可應用依據UFS(Universal Flash Storage,通用快閃記憶體)規格的組入用途之快閃記憶體、或SSD(Solid State Drive,固態硬碟)等。資訊處理裝置例如為個人電腦、行動電話、攝像裝置等。作為通信路3之通信規格,例如採用MIPI(Mobile Industry Processor Interface,行動產業處 理器介面)M-PHY。
記憶體系統2包括作為非揮發性半導體記憶體之NAND(Not AND,反及)快閃記憶體(NAND記憶體)210、及進行NAND記憶體210與主機1之間之資料傳輸的器件控制器200。
NAND記憶體210係藉由包括記憶體單元陣列的1以上之記憶體晶片構成。記憶體單元陣列係複數個記憶體單元排列成矩陣狀而構成。各記憶體單元陣列係排列複數個作為資料刪除之單位的區塊而構成。進而,各區塊包括複數個頁面。各頁面係資料之寫入及讀出之單位。
NAND記憶體210記憶L2P(The Level 2 program cache,二級程式快取)表211及自主機1發送之使用者資料212。使用者資料212例如包括提供主機1之執行環境的作業系統程式(OS,Operating System)、主機1於OS上執行之使用者程式、或者OS或使用者程式輸出入之資料等。
L2P表211係記憶體系統2作為主機1的外部記憶裝置而發揮功能所需之管理資訊之1,且係將主機1進入記憶體系統2時使用之邏輯區塊位址(LBA:Logical block address)、及NAND記憶體210內之實體位址(區塊位址+頁面位址+頁面內記憶位置)建立關聯的位址轉換資訊。於下述L2P快取區域300中快取該L2P表211之一部分。為與L2P快取區域300中快取之內容進行區別,以下,將NAND記憶體210中記憶之L2P表211稱作L2P本體211。
器件控制器200包括作為通信路3之連接介面的主機連接 適配器(adapter)201、作為與NAND記憶體210之間之連接介面的NAND連接適配器204、執行器件控制器200之控制的器件控制器主要部202、及RAM(Random Access Memory,隨機存取記憶體)203。
RAM 203係用作用以記憶寫入至NAND記憶體210中之資料或自NAND記憶體210中讀取之資料的緩衝器。又,RAM 203係用作使與自主機1輸入之寫入請求、讀取請求等相關之指令排隊的指令佇列(Command queue)。例如RAM 203可利用小規模之SRAM(Static Random Access Memory,靜態隨機存取記憶體)或DRAM(Dynamic Random Access Memory,動態隨機存取記憶體)等構成。又,亦可以暫存器等代替RAM 203之功能。
器件控制器主要部202係經由主機連接適配器201而控制主機1與RAM 203之間之資料傳輸,或經由NAND連接適配器204而控制RAM 203與NAND記憶體210之間之資料傳輸。尤其係器件控制器主要部202除於與主機1間之通信路3上作為匯流排主控器(bus master)而發揮功能,且利用第1埠230進行資料傳輸以外,亦包括另外2個匯流排主控器205、206。匯流排主控器205可利用第2埠231進行與主機1間之資料傳輸,匯流排主控器206可利用第3埠232進行與主機1間之資料傳輸。關於埠230~232之作用,於下文敍述。
再者,器件控制器主要部202例如係藉由包括運算裝置或記憶裝置的微電腦組件構成。該運算裝置係藉由執行預 先儲存於上述記憶裝置中之韌體(firmware)而實現作為器件控制器主要部202之功能。再者,亦可自器件控制器主要部202中省略記憶裝置,而將韌體預先儲存於NAND記憶體210中。又,器件控制器主要部202可利用ASIC(Application Specific Integrated Circuit,特殊應用積體電路)構成。
主機1包括執行OS或使用者程式之CPU(Central Processing Unit,中央處理單元)110、主記憶體100、及主機控制器120。主記憶體100、CPU 110、及主機控制器120由匯流排140相互連接。
主記憶體100例如包括DRAM。主記憶體100包括主機使用區域101及器件使用區域102。主機使用區域101係用作主機1執行OS或使用者程式時之程式展開區域或執行於該程式展開區域中展開之程式時之工作區(work area)。器件使用區域102係用作記憶體系統2之管理資訊或用以進行讀取寫入的快取區域。此處,作為記憶體系統2中快取之管理資訊之一例,可列舉L2P表211。又,設為於器件使用區域102中快取寫入資料。
圖2係說明器件使用區域102之記憶體構造之圖。如圖所示,於器件使用區域102中包括快取L2P本體211之一部分的L2P快取區域300、儲存用於L2P快取區域300之命中/錯失(hit/miss)判定之標記資訊的L2P快取標記區域310、作為緩衝寫入資料之快取構造之記憶體區域的寫入快取區域400、及儲存用於寫入快取區域400之命中/錯失判定之標記資訊的寫入快取標記區域410。
圖3係說明L2P快取標記區域310之記憶體構造之圖,圖4係說明L2P快取區域300之記憶體構造之圖。此處,作為一例,設為LBA具有26位元之資料長度,且L2P快取區域300利用LBA之下階側之22位元之值進行參照。將LBA之上階側之4位元之值記作T、且將下階側之22位元之值記作L進行說明。再者,LBA係設為分配至每個構成NAND記憶體210之頁面(此處設為4 K位元組(byte))者。
如圖4所示,於構成L2P快取區域300之各快取線中儲存有針對1個LBA的實體位址(Phys.Addr.,Physical Address)。L2P快取區域300包括對2進行22次方而得之數量的快取線。各快取線具有為儲存26位元之實體位址所需之充分之尺寸的作為位元組數為4位元組之容量。因此,L2P快取區域300合計具有2的22次方乘以4位元組之尺寸、即16 M位元組之尺寸。又,L2P快取區域300以按照L之值之順序儲存與LBA對應之實體位址之方式構成。即,構成L2P快取區域300之個別之快取線係藉由參照(Refer)對4*L上加上L2P快取區域300之基底位址(L2P Base Addr.,L2P Base Address)而得之位址予以讀出。再者,將構成L2P快取區域300之4位元組之快取線中的除儲存26位元之實體位址之區域以外的剩餘之區域記作「Pad」。於以下之表中,將剩餘之部分記作「Pad」。
又,如圖3所示,構成為於L2P快取標記區域310中,針對儲存於L2P快取區域300中之每條快取線,按照L之值之順序登錄作為標記資訊之值T。各項目(Entry)包括儲存標 記資訊之欄(field)311、及儲存表示是否為有效之快取線之VL(Valid L2P,有效L2P)位元的欄312。此處,L2P快取標記區域310構成為作為標記資訊而登錄至L2P快取標記區域310中之T、與同儲存於L2P快取區域300對應之快取線(即利用L而被參照之快取線)中之實體位址對應的LBA之上階位數T一致。即,於L2P快取區域300中是否快取有與所需之LBA對應之實體位址係參照(Refer)構成該所需之LBA的L之值加上L2P快取標記區域310之基底位址(L2P Tag Base Addr.,L2P標記基底位址)而得之位址,且藉由儲存於該參照位置之標記資訊是否與構成上述所需之LBA的T之值一致而得以判定。於兩者一致之情形時,判定快取有與所需之LBA對應之實體位址,於兩者不一致之情形時,判定未快取與所需之LBA對應之實體位址。再者,由於T為4位元之值,且VL位元需要1位元之容量,故而各項目具有1位元組之容量。因此,L2P快取標記區域310具有2的22次方乘以1位元組之尺寸、即4 M位元組之尺寸。
圖5係說明寫入快取標記區域410之記憶體構造之圖,圖6係說明寫入快取區域400之記憶體構造之圖。此處,寫入快取區域400係設為使用LBA之下階側之13位元之值予以參照者。將LBA之上階側之13位元之值記作T'、將下階側之13位元之值記作L'進行說明。
如圖6所示,於構成寫入快取區域400之各快取線中儲存有頁面尺寸之寫入資料。寫入快取區域400係以將2乘以13次方而得之數的快取線構成。由於各快取線快取頁面尺寸 (此處設為4 K位元組)之寫入資料,故而寫入快取區域400具有合計為2的13次方乘以4 K位元組之尺寸、即32 M位元組之尺寸。又,於寫入快取區域400中按照L'之值之順序儲存有對應之寫入資料。即,構成寫入快取區域400之個別之快取線係藉由參照對L'*8 K加上寫入快取區域400之基底位址(WC Base Addr.(Write Cache Base Address,寫入快取基底位址))而得之位址予以讀出。
又,如圖5所示,寫入快取標記區域410中,係針對儲存於寫入快取區域400中之每條快取線,按照L'之順序登錄作為標記資訊之T'而構成。各項目具有儲存標記資訊之欄位411、儲存表示是否為有效之快取線之VB(Valid Buffer,有效緩衝)位元的欄位412、及儲存表示所快取之寫入資料為骯髒或乾淨之DB(Dirty Buffer,骯髒緩衝)位元的欄位413。寫入快取標記區域410以如下方式構成:使作為標記資訊而登錄至寫入快取標記區域410中之T'、與分配至儲存於寫入快取區域400所對應之快取線(即使用L'而予以參照之快取線)中之寫入資料之儲存目的地頁面的LBA之上階位數T'一致。即,於寫入快取區域400是否快取有與所需之LBA對應之寫入資料,係參照對構成該所需之LBA的L'之值加上寫入快取標記區域410之基底位址(WC Tag Base Addr.,WC標記基底位址)而得之位址,且藉由儲存於該參照位置之標記資訊是否與構成上述所需之LBA的T'之值一致而判定。再者,所謂快取線為骯髒,係指儲存於該快取線中之寫入資料與儲存於NAND記憶體210上之 對應之位址中之資料不一致之狀態,所謂乾淨係指兩者一致之狀態。藉由將骯髒之快取線回寫(write back)至NAND記憶體210,而使該快取線成為乾淨。再者,由於寫入快取標記區域410之各標記資訊T'具有13位元之資料長度,且DB位元及VB位元各自需要1位元之尺寸,故而各項目具有2位元組之容量。因此,寫入快取標記區域410具有2的13次方乘以2位元組之尺寸、即16 K位元組之尺寸。
CPU 110執行OS或使用者程式,基於來自該等程式之請求,生成將主機使用區域101內之資料寫入至記憶體系統2中之寫入指令。將所生成之寫入指令發送至主機控制器120。
圖7係說明寫入指令之資料構造例之圖。如圖所示,寫入指令500構成為包括表示該指令500為指令資料之寫入者的寫入指令501、作為儲存有寫入對象之資料之主機使用區域101內之位址的源極位址502、NAND記憶體210內之表示寫入資料之寫入目的地之位址的第1目的地位址503、及寫入資料之資料長度504。第1目的地位址503係以LBA來表示。
主機控制器120包括作為匯流排140之連接介面的匯流排適配器121、作為通信路3之連接介面的器件連接適配器126、及主機控制器主要部122,該主機控制器主要部122經由匯流排適配器121而於其與主記憶體100或CPU 110之間進行資料或指令之傳輸,或者經由器件連接適配器126而於其與記憶體系統2之間進行資料(包括指令)之傳輸。主 機控制器主要部122係利用第1埠130而與器件連接適配器126連接,且可經由該第1埠130而於其與記憶體系統2之間進行資料之傳輸。
又,主機控制器120包括於主機使用區域101與器件使用區域102之間進行DMA傳輸之主記憶體DMA 123、記憶體系統2捕捉用以進入器件使用區域102而發送之指令或主機控制器主要部122將器件使用區域102之狀態資訊發送至記憶體系統2的控制DMA 124、及於器件使用區域102與記憶體系統2之間進行DMA傳輸的資料DMA 125。控制DMA 124係利用第2埠131而與器件連接適配器126連接,且可經由該第2埠131而於其與記憶體系統2之間進行指令或狀態資訊之發送接收。又,資料DMA 125係利用第3埠132而與器件連接適配器126連接,且可經由該第3埠132而於其與記憶體系統2之間進行資料之發送接收。
再者,利用器件連接適配器126及主機連接適配器201之功能,而分別將第1埠130與第1埠230建立關聯,將第2埠131與第2埠231建立關聯,將第3埠132與第3埠232建立關聯。具體而言,器件連接適配器126係經由第1埠230而將經由第1埠130而發送至記憶體系統2之內容發送至器件控制器主要部202,經由第2埠231而將經由第2埠131而發送至記憶體系統2之內容發送至器件控制器主要部202,且經由第3埠232而將經由第3埠132而發送至記憶體系統2之內容發送至器件控制器主要部202。又,器件連接適配器126係經由第1埠130而將經由第1埠230而發送至主機1之內容 發送至主機控制器主要部122,經由第2埠131而將經由第2埠231而發送至主機1之內容發送至控制DMA 124,且經由第3埠132而將經由第3埠232而發送至主機1之內容發送至資料DMA 125。例如經由匯流排適配器121而將發送至控制DMA 124、資料DMA 125之內容發送至主機控制器主要部122。
再者,埠130~132之各者分別獨立地包括用於與記憶體系統2之間之通信的輸出入緩衝器。藉由主機控制器主要部122、控制DMA 124、資料DMA 125分別利用個別之輸出入緩衝器與記憶體系統2連接,而主機控制器120可分別獨立地執行利用主機控制器主要部122之與記憶體系統2之通信、利用控制DMA 124之與記憶體系統2之通信、及利用資料DMA 125之與記憶體系統2之通信。又,由於無需更換輸出入緩衝器便可進行該等通信之切換,故而可高速地執行通信之切換。可以說記憶體系統2包括之埠230~232亦相同。
主機控制器主要部122經由匯流排適配器121而捕捉自CPU 110發送之寫入指令500,而讀出所捕捉之寫入指令500中包含之源極位址502及第1目的地位址503。而且,主機控制器主要部122利用第1目的地位址503算出緩衝有該寫入資料之快取線之位址。此處,將所算出之快取線之位址稱為第2目的地位址。主機控制器主要部122將源極位址502及第2目的地位址設置於主記憶體DMA 123中,且使主記憶體DMA 123運作(kick)(啟動)。主機控制器主要部122 自寫入指令500中刪除源極位址502,且經由器件連接適配器126而將寫入指令500傳輸至記憶體系統2。
主記憶體DMA 123若根據主機控制器主要部122而運作,則根據由主機使用區域101之源極位址502指定之位址讀出資料,且將所讀出之資料複製至由器件使用區域102之第2目的地位址指定之位址。主記憶體DMA 123藉由複製結束中斷(termination interrupt)而將DMA傳輸之完成通知主機控制器主要部122。
主機控制器主要部122係若利用主記憶體DMA 123之DMA傳輸完成,則指令控制DMA 124將複製結束信號發送至記憶體系統2。器件控制器主要部202若接收複製結束信號,則經由資料DMA 125而取得儲存於由器件使用區域102之第2目的地位址指定之位址中的寫入資料,且將所取得之寫入資料儲存於由NAND記憶體210之第1目的地位址503指定之位址。
再者,主機控制器主要部122除寫入指令500以外亦可接收來自CPU 110之各種指令。此處,主機控制器主要部122將所接收之指令加入(enqueue)至指令佇列,自指令佇列之最前端依序取出處理對象之指令。再者,儲存該指令佇列之資料構造之區域可於主記憶體100上得到確保,亦可於主機控制器主要部122之內部或附近配設小規模之記憶體或暫存器而構成。
又,主機控制器主要部122與主記憶體DMA 123、控制DMA 124、資料DMA 125之間之通信路徑並不限定於特定 之路徑。例如可以匯流排適配器121為通信路徑,亦可設置專用線而以該專用線為通信路徑。
其次,對本發明之第1實施形態之資訊處理裝置之動作進行說明。圖8-1及圖8-2係說明主機1之主機控制器主要部122使主記憶體DMA 123啟動之前之動作的流程圖。
主機控制器主要部122等待寫入指令500之接收(步驟S1、否),若自CPU 110發行寫入指令500並接收該寫入指令500(步驟S1、是),則將所接收之寫入指令500儲存於指令佇列中(步驟S2)。
主機控制器主要部122判定儲存於指令佇列中之寫入指令500是否可執行(步驟S3),於寫入指令500不可執行之情形時(步驟S3、否),再次執行步驟S3之判定處理。再者,所謂可執行寫入指令500係符合將將該寫入指令500之前加入至佇列之指令全部取出而完成處理之情形。於可執行寫入指令500之情形時(步驟S3、是),主機控制器主要部122讀出包含於寫入指令500中之源極位址502、第1目的地位址503、及資料長度504(步驟S4)。而且,主機控制器主要部122將源極位址502設置於主記憶體DMA 123中(步驟S5)。
再者,主機控制器主要部122自寫入指令500中讀出源極位址502及第1目的地位址503後,經由第1埠130而將該寫入指令500發送至記憶體系統2。此時,主機控制器主要部122亦可自寫入指令500中刪除源極位址502,且將刪除該源極位址502後之寫入指令500發送至記憶體系統2。
繼而,主機控制器主要部122利用第1目的地位址503之下階側22位元之值L參照L2P快取標記區域310(步驟S6)。而且,主機控制器主要部122判定附於藉由L2P快取標記區域310之參照而獲得之標記資訊中之VL位元是否為1(有效)(步驟S7)。於VL位元為0(無效)之情形時(步驟S7、否),主機控制器主要部122將VL位元之值設為1(步驟S9)。於VL位元為1之情形時(步驟S7、是),主機控制器主要部122判定藉由參照而獲得之標記資訊是否與第1目的地位址503之上階側4位元之值T一致(步驟S8)。
於步驟S9之處理後或標記資訊與第1目的地位址503之上階側4位元之值T不一致之情形時(步驟S8、否),主機控制器主要部122將標記資訊設為T(步驟S10)。而且,主機控制器主要部122利用第1目的地位址503參照L2P本體211而取得與第1目的地位址503對應之實體位址(步驟S11),將所取得之實體位址寫入至L2P快取區域300中之與值L對應之快取線(步驟S12)。
再者,主機控制器主要部122於執行步驟S12之處理時,將儲存於利用L而被參照之位址中之實體位址(以下稱為原實體位址)暫時記憶於特定之區域中。暫時記憶該原實體位址之區域可為主記憶體100內之特定之位置,亦可為除主記憶體100以外地專門設置之記憶體或暫存器。
圖9係對步驟S11中主機控制器主要部122參照L2P本體211之處理進一步詳細地進行說明之流程圖。如圖所示,主機控制器主要部122對記憶體系統2請求構成L2P本體211 之項目中的將第1目的地位址503與實體位址建立關聯之項目(步驟S31),判定是否接收到符合之項目(步驟S32)。於接收到符合之項目之情形時(步驟S32、是),主機控制器主要部122結束步驟S11之處理,於未接收到符合之項目之情形時(步驟S32、否),再次執行步驟S32之判定處理。
再者,主機控制器主要部122於步驟S31中經由第2埠131而執行項目之請求。具體而言,主機控制器主要部122將該請求設置於控制DMA 124中,而使控制DMA 124啟動,啟動後之控制DMA 124經由第2埠131而將所設置之請求傳輸至記憶體系統2。又,主機控制器主要部122於步驟S32中藉由監視第3埠132而判定是否接收項目。具體而言,資料DMA 125接收該項目,且將意為接收到項目之通知發送至主機控制器主要部122。主機控制器主要部122若接收該通知,則可識別出接收到項目。
於參照目的地之標記資訊與T一致之情形時(步驟S8、是),或於步驟S12之處理後,主機控制器主要部122利用第1目的地位址503之下階側13位元之值L'參照寫入快取標記區域410(步驟S13)。而且,主機控制器主要部122判定參照目的地之項目之VB位元是否為1(有效)(步驟S14)。於VB位元為0(無效)之情形時(步驟S14、否),主機控制器主要部122將第1目的地位址503之上階位數13位元之值T'寫入至參照目的地之項目之欄位411(步驟S15),將該項目之VB位元設為1(步驟S16)。而且,主機控制器主要部122求出與第1目的地位址503對應之寫入資料之儲存目的地之快 取線之位址、即第2目的地位址,且將該求出之第2目的地位址設置於主記憶體DMA 123中(步驟S17)。
另一方面,於VB位元為1之情形時(步驟S14、是),主機控制器主要部122判定參照目的地之項目中描述之標記資訊是否與T'一致(步驟S18)。於兩者一致之情形時(步驟S18、是),主機控制器主要部122執行步驟S17之處理。於兩者不一致之情形時(步驟S18、否),主機控制器主要部122判定DB位元是否為1(骯髒)(步驟S19)。於DB位元為0(乾淨)之情形時(步驟S19、否),主機控制器主要部122執行步驟S17之處理。
於DB位元為1之情形時(步驟S19、是),主機控制器主要部122利用L'參照寫入快取區域400(步驟S20),執行以下處理,即,以於步驟S12之處理中暫時記憶之原實體位址為寫入目的地,而將儲存於參照目的地之快取線中之資料回寫至記憶體系統2(步驟S21)。
圖10係說明步驟S21中主機控制器主要部122將儲存於快取線中之資料回寫至記憶體系統2之處理之流程圖。首先,主機控制器主要部122經由第2埠131而將寫入以原實體位址為寫入目的地而儲存於符合之快取線中之資料的請求發送至記憶體系統2(步驟S41)。而且,主機控制器主要部122等待記憶體系統2之接收準備完成(步驟S42、否)。
再者,記憶體系統2可經由第2埠231而將表示接收準備完成之狀態資訊發送至主機1。於主機1中,控制DMA 124經由第2埠131捕捉該狀態資訊並傳輸至主機控制器主要部 122。主機控制器主要部122可藉由傳輸來之狀態資訊而識別記憶體系統2之接收準備已完成。再者,記憶體系統2可隨著接收準備完成而指定可接收之資料長度。
主機控制器主要部122當記憶體系統2之接收準備完成(步驟S42、是)時,將儲存於符合之快取線中之資料依所指定之資料長度加以劃分,且經由第3埠132將經劃分之1個資料發送至記憶體系統2(步驟S43)。具體而言,若主機控制器主要部122將經劃分之1個資料之儲存位置及資料長度設置於資料DMA 125中而使資料DMA 125啟動,則資料DMA 125可將由儲存位置及資料長度所特定之資料發送至記憶體系統2。其後,主機控制器主要部122判定是否已發送最後之資料(步驟S44),於完成最後之資料之發送之情形時(步驟S44、是),主機控制器主要部122結束步驟S21之處理。於尚未完成最後之資料之發送之情形時(步驟S44、否),主機控制器主要部122於步驟S43中進而將另1個資料發送至記憶體系統2。
於執行步驟S21之處理後,主機控制器主要部122將參照目的地之項目之DB位元設為0(步驟S22),而執行步驟S17之處理。
於執行步驟S17之處理後,主機控制器主要部122將寫入指令500中所含之資料長度504設置於主記憶體DMA 123中(步驟S23)。然後,主機控制器主要部122使主記憶體DMA 123啟動,而使資料之複製處理開始(步驟S23),從而完成主記憶體DMA 123啟動之動作。
圖11係說明主機1之主機控制器主要部122將主記憶體DMA 123啟動後之動作之流程圖。如圖所示,主機控制器主要部122監視來自主記憶體DMA 123之複製結束中斷(步驟S51、否),若接收到複製結束中斷(步驟S51、是),則將附於與符合之快取線對應之標記資訊中之DB位元設為1(步驟S52)。然後,主機控制器主要部122經由第2埠131而將複製結束信號發送至記憶體系統2(步驟S53),而結束動作。
圖12-1及圖12-2係說明器件控制器主要部202之動作之圖。首先,器件控制器主要部202等待經由第1埠230的寫入指令500之接收(步驟S61、否),若自主機1接收到寫入指令500(步驟S61、是),則將接收到之寫入指令500儲存於指令佇列中(步驟S62)。步驟S62中之指令佇列係指於RAM 203中經確保之記憶體系統2用之指令佇列。
器件控制器主要部202等待自主機1經由第2埠231之複製結束信號之接收(步驟S63、否),若接收到複製結束信號(步驟S63、是),則判定是否可執行對NAND記憶體210之寫入(步驟S64)。所謂可執行對NAND記憶體210之寫入係指例如NAND記憶體210之就緒/忙碌(Ready/Busy)信號為就緒、且指令佇列之最前端為接收到之寫入指令500之情形。於不可執行對NAND記憶體210之寫入之情形時(步驟S64、否),器件控制器主要部202再次執行步驟S64之判定處理。於可執行對NAND記憶體210之寫入之情形時(步驟S64、是),器件控制器主要部202讀出包含於寫入指令500 中之第1目的地位址503(步驟S65),利用所讀出之第1目的地位址503之下階位數之22位元之值L來參照L2P快取標記區域310(步驟S66)。
圖13係說明於步驟S66之處理中器件控制器主要部202參照L2P快取標記區域310之處理之流程圖。如圖所示,器件控制器主要部202經由第2埠231且利用L而將讀出L2P快取標記區域310之項目之請求發送至主機1(步驟S91),等待該項目之接收(步驟S92、否)。器件控制器主要部202經由第3埠232而接收項目。若接收到符合之項目(步驟S92、是),則器件控制器主要部202結束步驟S66之處理。
繼步驟S66之處理之後,器件控制器主要部202判定包含於藉由步驟S66之處理而獲得之項目中之VL位元是否為1(步驟S67)。於VL位元為1之情形時(步驟S67、是),器件控制器主要部202判定包含於該項目中之標記資訊是否與第1目的地位址503之上階位數4位元之值T一致(步驟S68)。
於VL位元為0之情形時(步驟S67、否),器件控制器主要部202將該項目之VL位元設為1(步驟S69),將標記資訊設為T(步驟S70)。繼而,器件控制器主要部202參照L2P本體211而取得與第1目的地位址503對應之實體位址(步驟S71)。而且,器件控制器主要部202利用L而將於步驟S71中取得之實體位址寫入至L2P快取區域300對應之快取線(步驟S72)。
圖14係說明於步驟S72之處理中器件控制器主要部202將 實體位址寫入至L2P快取區域300之處理之流程圖。首先,器件控制器主要部202利用L而向主機1請求L2P快取區域300之項目之接收(步驟S101),等待利用主機1的該項目之接收之準備完成(步驟S102、否)。若利用主機1的項目接收之準備完成(步驟S102、是),則器件控制器主要部202向主機1發送於步驟S71中取得之實體位址作為發送對象之項目(步驟S103)。而且,器件控制器主要部202等待主機1完成接收(步驟S104、否),若主機1完成接收(步驟S104、是),則結束步驟S72之處理。再者,器件控制器主要部202可經由第2埠231而接收請求之發送、表示主機1是否完成項目之接收之準備的狀態資訊、及表示主機1是否完成接收之狀態資訊。又,可經由第3埠232而將項目發送至主機1。
於藉由步驟S66之處理而讀出之項目之標記資訊等於T之情形時(步驟S68、是),或於步驟S72之處理後,器件控制器主要部202利用第1目的地位址503之下階位數13位元之值L'讀出寫入快取標記區域410之項目(步驟S73)。
圖15係說明於步驟S73之處理中器件控制器主要部202讀出寫入快取標記區域410之項目之處理之流程圖。器件控制器主要部202經由第2埠231而利用第1目的地位址503之下階13位元之值L'向主機1請求寫入快取標記區域410之項目(步驟S111),等待經由第3埠232之來自主機1之符合項目之接收(步驟S112、否)。若自主機1接收到符合之項目(步驟S112、是),則器件控制器主要部202結束步驟S73之 處理。
於步驟S73之處理後,器件控制器主要部202判定包含於所讀出之項目中之VB位元是否為1(步驟S74)。於VB位元為1之情形時(步驟S74、是),器件控制器主要部202判定包含於該項目中之DB位元是否為1(步驟S75)。於DB位元為1之情形時(步驟S75、是),器件控制器主要部202判定包含於該項目中之標記資訊是否與T'一致(步驟S76)。於VB位元為0之情形時(步驟S74、否)、DB位元為0之情形時(步驟S75、否)、或標記資訊與T'不一致之情形時(步驟S76、否),器件控制器主要部202結束動作。
於標記資訊與T'一致之情形時(步驟S76、是),確定於寫入快取區域400中存在寫入對象之寫入資料。於該情形時,器件控制器主要部202利用L'而自寫入快取區域400之快取線取得寫入資料(步驟S77)。
圖16係說明於步驟S77之處理中器件控制器主要部202自主機1取得寫入資料之處理之流程圖。器件控制器主要部202經由第2埠231且利用L'而向主機1請求快取至寫入快取區域400中之寫入資料(步驟S121),等待經由第3埠232之寫入資料之接收(步驟S122、否)。若接收到寫入資料(步驟S122、是),則器件控制器主要部202結束步驟S77之處理。
於步驟S77之處理後,器件控制器主要部202將所取得之寫入資料寫入至NAND記憶體210中之第1目的地位址503表示之位置(步驟S78)。而且,器件控制器主要部202使藉由 步驟S73之處理而參照之寫入快取標記區域410之項目之DB位元為0(步驟S79)。
圖17係說明於步驟S79之處理中器件控制器主要部202操作DB位元之值之處理之流程圖。器件控制器主要部202利用L'且經由第2埠231而向主機1發送接收寫入快取標記區域410之項目之請求(步驟S131),其後,藉由監視經由第2埠231而接收之狀態資訊,而於主機1完成接收準備之前待機(步驟S132、否)。若主機1完成接收準備(步驟S132、是),則器件控制器主要部202經由第3埠232而向主機1發送使DB位元為1之項目(步驟S133),其後,藉由監視經由第2埠231而接收之狀態資訊,而於主機1完成接收之前待機(步驟S134、否)。若主機1完成符合之項目之接收(步驟S134、是),則器件控制器主要部202結束步驟S79之動作。
於步驟S79之處理後,器件控制器主要部202使藉由步驟S66之處理而參照之L2P快取標記區域310之項目之VL位元為0(步驟S80),而結束動作。
圖18係說明於步驟S80之處理中器件控制器主要部202操作VL位元之值之處理之流程圖。器件控制器主要部202利用L且經由第2埠231而向主機1發送接收L2P快取標記區域310之項目之請求(步驟S141),其後,藉由監視經由第2埠231而接收之狀態資訊,而於主機1完成接收準備之前待機(步驟S142、否)。若主機1完成接收準備(步驟S142、是),則器件控制器主要部202經由第3埠232而向主機1發送使 VL位元為1之項目(步驟S143),其後,藉由監視經由第2埠231而接收之狀態資訊,而於主機1完成接收之前待機(步驟S144、否)。若主機1完成符合之項目之接收(步驟S144、是),則器件控制器主要部202結束步驟S80之動作。
如此,由於構成為主機1包括:主記憶體100,其包括主機使用區域101及寫入快取區域400;作為第1主機控制部之CPU 110,其於主機使用區域101中生成對記憶體系統2之寫入資料,且生成指定作為NAND記憶體210之寫入目的地之邏輯位址的第1目的地位址503而將該寫入資料寫入至NAND記憶體210的寫入指令500;及作為第2主機控制部之主機控制器主要部122,其將CPU 110生成之寫入指令500傳輸至記憶體系統2,並且將寫入資料自主機使用區域101中讀出並傳輸至與由寫入指令500指定之第1目的地位址503對應的寫入快取區域400之快取線;且記憶體系統2包括作為器件控制部之器件控制器主要部202,該器件控制器主要部202於執行自主機1接收之寫入指令500時,使主機1將寫入快取區域400中所快取之寫入資料向記憶體系統2傳輸,且寫入至由NAND記憶體210之第1目的地位址503指定之位置,故而以快取構成緩衝寫入資料之區域,並且將該區域置於主記憶體100內,因此,可儘可能有效地使用主記憶體。
又,由於構成為包括作為第1管理資訊記憶區域之寫入快取標記區域410,該寫入快取標記區域410記憶針對每條 快取線表示構成寫入快取區域400之快取線為骯髒或乾淨的DB位元,且主機控制器主要部122藉由參照與第1目的地位址503對應之快取線的DB位元,而判定該快取線是否可用,故而主機控制器主要部122可有效地確認快取線是否可用。
又,由於構成為器件控制器主要部202於將寫入資料自與第1目的地位址503對應之快取線寫入至NAND記憶體210後,使該快取線之DB位元為0(乾淨),故而器件控制器主要部202可以主機控制器主要部122可有效地確認快取線是否可用之方式管理寫入快取標記區域410。
又,由於構成為主機控制器主要部122於與第1目的地位址503對應之快取線的DB位元為0之情形時,判定與第1目的地位址503對應之快取線可用,而將上述寫入資料傳輸至該快取線,且於DB位元為1之情形時,於將寫入資料傳輸至該快取線之前,將儲存於該快取線中之資料傳輸至記憶體系統2,而使該快取線可用,其後,將寫入資料傳輸至該快取線,故而主機控制器主要部122可執行寫入快取區域400之回寫。
又,由於構成為寫入快取標記區域410針對寫入快取區域400之每條快取線而將標記資訊與NAND記憶體210之邏輯位址之下階位數建立關聯並加以記憶,並且將DB位元與各標記資訊建立關聯並加以記憶,且主機控制器主要部122及器件控制器主要部202係利用第1目的地位址503之下階位數,參照與該第1目的地位址503對應之快取線之DB 位元,故而主機控制器主要部122及器件控制器主要部202可有效地特定所需之DB位元之儲存位置。
又,由於構成為器件控制器主要部202判定與第1目的地位址503之下階位數對應之標記資訊與第1目的地位址503之上階位數是否一致,於兩者不一致之情形時,參照DB位元,進行對應之快取線是否可用之判定,於兩者一致之情形時,將寫入資料傳輸至該快取線,而無需進行與第1目的地位址503對應之快取線是否可用之判定,故而可有效地管理寫入快取區域400。
又,由於構成為主機控制器主要部122於將儲存於與第1目的地位址503對應之快取線中之資料傳輸至記憶體系統2而使該快取線可用後,使該快取線之DB位元為0,於將寫入資料傳輸至與第1目的地位址503對應之快取線後,使該快取線之DB位元為1,故而可有效地管理寫入快取區域400。
又,由於構成為NAND記憶體210記憶針對每個邏輯位址而描述自身記憶體210之邏輯位址與實體位址之關聯的L2P本體211,主記憶體100更包括快取L2P本體211之一部分的L2P快取區域300,且器件控制器主要部202參照L2P快取區域300而求出與NAND記憶體210之第1目的地位址503對應之實體位址,且將寫入資料寫入至由上述所求出之實體位址指定之位置,故而可使L2P本體211之快取區域包括於與記憶體系統2之RAM 203相比可經濟地實現大容量化的主記憶體100內,因此,可經濟地製造資訊處理裝置。
又,構成為器件控制器主要部202於第1目的地位址503命中L2P快取區域300時,自L2P快取區域300中讀出與第1目的地位址503對應之實體位址,於第1目的地位址503未命中L2P快取區域300時,讀出NAND記憶體210記憶之L2P本體211中的與第1目的地位址503對應之實體位址,並且將上述讀出之實體位址寫入至L2P快取區域300對應之快取線。
又,構成為主機1更包括:主記憶體DMA 123,其進行主機使用區域101與寫入快取區域400之間之資料傳輸;及資料DMA 125,其進行寫入快取區域400與記憶體系統2之間之資料傳輸;且主機控制器主要部122操作主記憶體DMA 123,將儲存於主機使用區域101中之寫入資料傳輸至寫入快取區域400,器件控制器主要部202使資料DMA 125將儲存於寫入快取區域400中之寫入資料傳輸至NAND記憶體210。藉此,製造者藉由例如於欲將器件使用區域102置於主記憶體中之情形時,使主記憶體DMA 123或資料DMA 125之功能開啟,且於未將器件使用區域102置於主記憶體中之情形時,使主記憶體DMA 123或資料DMA 125之功能開啟,而可連接可使用置於主記憶體100內之器件使用區域102的記憶體系統2,亦可連接未使用置於主記憶體100內之器件使用區域102的記憶體系統。
又,由於構成為主機控制器主要部122利用第1目的地位址503,特定構成寫入快取區域400之快取線中之儲存利用寫入指令500的寫入對象之寫入資料的快取線之位址(第2 目的地位址),將特定出之第2目的地位址作為寫入資料之傳輸目的地,而使利用主記憶體DMA 123之傳輸啟動,故而可無記憶體系統2介入地實現主機使用區域101與器件使用區域102之間之資料傳輸。
再者,於以上之說明中,列舉L2P本體211之快取資料作為儲存於器件使用區域102中之記憶體系統2之管理資訊之一例進行了說明,但亦可將記錄有特定不良區塊之資訊的不良區塊表等其他管理資訊亦儲存於器件使用區域102中。於該情形時,亦可以快取記憶體構成來構成該儲存其他管理資訊之區域。
又,列舉寫入資料作為儲存於器件使用區域102中之資料進行了說明,但亦可構成為於器件使用區域102中確保移動緩衝器,該移動緩衝器暫時儲存藉由廢料收集(Garbage Collection)而自一個區塊移動至其他區塊之移動資料、或自成為不良區塊之區塊移動至優良區塊之移動資料。於該情形時,亦可以快取記憶體構成來構成移動緩衝器。
(第2實施形態)
於第1實施形態中,由於主機1與記憶體系統2相比可經濟地安裝大容量之暫時記憶體,故而設為主機1包括儲存標記資訊之區域(L2P快取標記區域310、寫入快取標記區域410)進行了說明,但亦可以記憶體系統2包括儲存標記區域的區域中之一部分或全部之方式構成。
例如於在RAM 203中確保L2P快取標記區域310之情形 時,與第1實施形態相比,可於較小之尺寸之區域構成L2P快取標記區域310。
圖19係表示第2實施形態之L2P快取標記區域310之記憶體構造之圖,圖20係說明第2實施形態之L2P快取區域300之記憶體構造之圖。此處,為使L2P快取標記區域310之尺寸小於第1實施形態,而利用與第1實施形態相比資料長度較短之LBA之下階側之13位元之值L'進行參照。再者,將LBA之上階側之13位元記作T'。
如圖20所示,第2實施形態之L2P快取區域300包括對2進行13次方而得之數量的快取線。各快取線與第1實施形態同樣地具有4位元組之容量。因此,L2P快取區域300合計具有2的13次方乘以4位元組之尺寸、即32K位元組之尺寸。構成L2P快取區域300之個別之快取線係藉由參照(Refer)對4*L'加上L2P快取區域300之基底位址(L2P Base Addr.)而得之位址予以讀出。
又,如圖19所示,構成為於L2P快取標記區域310中,針對儲存於L2P快取區域300中之每條快取線按照L'之值順序登錄作為標記資訊之值T'。各項目由於儲存13位元之值T'作為標記資訊,故而具有2位元組之容量。因此,L2P快取標記區域310具有2的22次方乘以2位元組之尺寸、即16 K位元組之尺寸。由於第1實施形態之L2P快取標記區域310具有4 M位元組之尺寸,故而根據第2實施形態,L2P快取標記區域310之尺寸縮小。因此,無需使RAM 203大容量化,便可使記憶體系統2包括L2P快取標記區域310。
再者,第1實施形態之寫入快取標記區域410之尺寸亦為16 K位元組,大幅度地小於第1實施形態之L2P快取標記區域310之尺寸。因此,亦可使記憶體系統2包括L2P快取標記區域310及寫入快取標記區域410。此時,亦可使寫入快取標記區域410之尺寸進一步縮小。又,亦可使主機1包括L2P快取標記區域310,且使記憶體系統2包括寫入快取標記區域410。
再者,若縮小儲存標記資訊之區域之尺寸,則快取命中率降低。於該情形時,藉由使快取線之尺寸增大,可彌補因快取命中率之降低而導致之效率之降低。例如根據第1實施形態之說明,L2P快取區域300係於各快取線中快取1個實體位址,但亦可構成為快取L2P本體211之複數個項目、即複數個實體位址。再者,由於若使各快取線之尺寸與頁面尺寸一致,則快取線之回寫之單位與NAND記憶體210之寫入單位尺寸一致,故而可進一步實現高效之快取管理。
對本發明之若干實施形態進行了說明,但該等實施形態係作為例子而提示者,並不試圖限定發明之範圍。該等新穎之實施形態能夠以其他各種形態實施,且於不脫離發明主旨之範圍內,可進行各種省略、替換、變更。該等實施形態及其變形包含於發明之範圍或主旨中,並且包含於申請專利範圍所記載之發明及其同等之範圍內。
1‧‧‧主機
2‧‧‧記憶體系統
3‧‧‧通信路
100‧‧‧主記憶體
101‧‧‧主機使用區域
102‧‧‧器件使用區域
110‧‧‧CPU
120‧‧‧主機控制器
121‧‧‧匯流排適配器
122‧‧‧主機控制器主要部
123‧‧‧主記憶體DMA
124‧‧‧控制DMA
125‧‧‧資料DMA
126‧‧‧器件連接適配器
130‧‧‧第1端口埠
131‧‧‧第2端口埠
132‧‧‧第3端口埠
140‧‧‧匯流排
200‧‧‧器件控制器
201‧‧‧主機連接適配器
202‧‧‧器件控制器主要部
203‧‧‧RAM
204‧‧‧NAND連接適配器
205‧‧‧匯流排主控器
206‧‧‧匯流排主控器
210‧‧‧NAND記憶體
211‧‧‧L2P本體
212‧‧‧使用者資料
230‧‧‧第1端口埠
231‧‧‧第2端口埠
232‧‧‧第3端口埠
300‧‧‧L2P快取區域
310‧‧‧L2P快取標記區域
400‧‧‧寫入快取區域
410‧‧‧寫入快取標記區域
500‧‧‧寫入指令
501‧‧‧寫入指令
502‧‧‧源極位址
503‧‧‧第1目的地位址
圖1係表示本實施形態之資訊處理裝置之構成例之圖。
圖2係說明器件使用區域之記憶體構造之圖。
圖3係說明L2P快取標記區域之記憶體構造之圖。
圖4係說明L2P快取區域之記憶體構造之圖。
圖5係說明寫入快取標記區域之記憶體構造之圖。
圖6係說明寫入快取區域之記憶體構造之圖。
圖7係說明寫入指令之資料構造例之圖。
圖8-1係說明主記憶體DMA啟動前之主機控制器主要部之動作之流程圖。
圖8-2係說明主記憶體DMA啟動前之主機控制器主要部之動作之流程圖。
圖9係說明主機控制器主要部參照L2P本體之處理之流程圖。
圖10係說明主機控制器主要部將儲存於快取線中之資料回寫至記憶體系統之處理之流程圖。
圖11係說明主記憶體DMA啟動後之主機控制器主要部之動作之流程圖。
圖12-1係說明器件控制器主要部之動作之圖。
圖12-2係說明器件控制器主要部之動作之圖。
圖13係說明器件控制器主要部參照L2P快取標記區域之處理之流程圖。
圖14係說明器件控制器主要部將實體位址寫入至L2P快取區域之處理之流程圖。
圖15係說明器件控制器主要部讀出寫入快取標記區域之項目之處理之流程圖。
圖16係說明器件控制器主要部自主機取得寫入資料之處理之流程圖。
圖17係說明器件控制器主要部操作DB位元之值之處理之流程圖。
圖18係器說明件控制器主要部操作VL位元之值之處理之流程圖。
圖19係表示第2實施形態之L2P快取標記區域之記憶體構造之圖。
圖20係說明第2實施形態之L2P快取區域之記憶體構造之圖。
1‧‧‧主機
2‧‧‧記憶體系統
3‧‧‧通信路
100‧‧‧主記憶體
101‧‧‧主機使用區域
102‧‧‧器件使用區域
110‧‧‧CPU
120‧‧‧主機控制器
121‧‧‧匯流排適配器
122‧‧‧主機控制器主要部
123‧‧‧主記憶體DMA
124‧‧‧控制DMA
125‧‧‧資料DMA
126‧‧‧器件連接適配器
130‧‧‧第1埠
131‧‧‧第2埠
132‧‧‧第3埠
140‧‧‧匯流排
200‧‧‧器件控制器
201‧‧‧主機連接適配器
202‧‧‧器件控制器主要部
203‧‧‧RAM
204‧‧‧NAND連接適配器
205‧‧‧匯流排主控器
206‧‧‧匯流排主控器
210‧‧‧NAND記憶體
211‧‧‧L2P本體
212‧‧‧使用者資料
230‧‧‧第1埠
231‧‧‧第2埠
232‧‧‧第3埠

Claims (14)

  1. 一種資訊處理裝置,其包含主機裝置、及具備非揮發性半導體記憶體之半導體記憶裝置,且其特徵在於:上述主機裝置包括:主記憶體,其具備主機使用區域及寫入快取區域;第1主機控制部,其於上述主機使用區域中生成對上述半導體記憶裝置之寫入資料,且生成指定上述非揮發性半導體記憶體之寫入目的地之邏輯位址而將該寫入資料寫入至上述非揮發性半導體記憶體的寫入指令;及第2主機控制部,其將上述第1主機控制部所生成之寫入指令傳輸至上述半導體記憶裝置,將上述寫入資料自上述主機使用區域中讀出,且傳輸至與上述寫入指令中指定之邏輯位址對應的上述寫入快取區域之快取線;且上述半導體記憶裝置包括器件控制部,該器件控制部係於執行自上述主機裝置接收到之寫入指令時,使上述主機裝置將上述寫入快取區域中所快取之寫入資料向上述半導體記憶裝置傳輸,且寫入至上述非揮發性半導體記憶體之上述寫入目的地之邏輯位址所指定之位置。
  2. 如請求項1之資訊處理裝置,其係包括第1管理資訊記憶區域,該第1管理資訊記憶區域係記憶針對每條快取線表示構成上述寫入快取區域之快取線為骯髒或乾淨的骯髒資訊,且上述第2主機控制部係藉由參照與上述寫入目的地之邏輯位址對應之快取線的骯髒資訊,而判定與上述寫入 目的地之邏輯位址對應之快取線是否可用。
  3. 如請求項2之資訊處理裝置,其中上述器件控制部係於將上述寫入資料自與上述寫入目的地之邏輯位址對應之快取線寫入至上述非揮發性半導體記憶體後,對該快取線之骯髒資訊寫入乾淨。
  4. 如請求項3之資訊處理裝置,其中上述第2主機控制部係於與上述寫入目的地之邏輯位址對應之快取線的骯髒資訊表示乾淨之情形時,判定與上述寫入目的地之邏輯位址對應之快取線可用,而將上述寫入資料傳輸至該快取線;於與上述寫入目的地之邏輯位址對應之快取線的骯髒資訊表示骯髒之情形時,於將上述寫入資料傳輸至該快取線之前,將儲存於與上述寫入目的地之邏輯位址對應之快取線中的資料傳輸至上述半導體記憶裝置,而使該快取線可用,其後將上述寫入資料傳輸至該快取線。
  5. 如請求項4之資訊處理裝置,其中上述第1管理資訊記憶區域係針對上述寫入快取區域之每條快取線,將第1標記資訊與上述非揮發性半導體記憶體之邏輯位址之下階位數建立關聯並加以記憶,並且將上述骯髒資訊與上述第1標記資訊建立關聯並加以記憶,且上述第2主機控制部及上述器件控制部係使用上述寫入目的地之邏輯位址之下階位數,參照與該寫入目的地之邏輯位址對應之快取線的骯髒資訊。
  6. 如請求項5之資訊處理裝置,其中上述第2主機控制部係 判定與上述寫入目的地之邏輯位址之下階位數對應的第1標記資訊是否與上述寫入目的地之邏輯位址之上階位數一致,於兩者不一致之情形時,參照上述骯髒資訊,進行與上述寫入目的地之邏輯位址對應之快取線是否可用之判定,於兩者一致之情形時,將上述寫入資料傳輸至該快取線,而不進行與上述寫入目的地之邏輯位址對應之快取線是否可用之判定。
  7. 如請求項6之資訊處理裝置,其中上述第2主機控制部係於將儲存於與上述寫入目的地之邏輯位址對應之快取線中之資料傳輸至上述半導體記憶裝置而使該快取線可用後,對該快取線之骯髒資訊寫入乾淨,且於將上述寫入資料傳輸至與上述寫入目的地之邏輯位址對應之快取線後,對該快取線之骯髒資訊寫入骯髒。
  8. 如請求項1之資訊處理裝置,其中上述非揮發性半導體記憶體係記憶邏輯-實體轉換資訊,該邏輯-實體轉換資訊係針對每個邏輯位址而描述自身記憶體之邏輯位址與實體位址之關聯,上述主記憶體更包括快取上述邏輯-實體轉換資訊之一部分的邏輯-實體轉換資訊快取區域,且上述器件控制部係參照上述邏輯-實體轉換資訊快取區域,求出與上述非揮發性半導體記憶體之上述寫入目的地之邏輯位址對應的實體位址,且將上述寫入資料寫入至由上述所求出之實體位址指定之位置。
  9. 如請求項2之資訊處理裝置,其中上述器件控制部係於 上述寫入目的地之邏輯位址命中上述邏輯-實體轉換資訊快取區域時,自上述邏輯-實體轉換資訊快取區域中讀出與上述寫入目的地之邏輯位址對應之實體位址,於上述寫入目的地之邏輯位址未命中上述邏輯-實體轉換資訊快取區域時,讀出上述非揮發性半導體記憶體所記憶之上述邏輯-實體轉換資訊中之與上述寫入目的地之邏輯位址對應之實體位址,並且將上述讀出之實體位址寫入至上述邏輯-實體轉換資訊快取區域所對應之快取線。
  10. 如請求項1之資訊處理裝置,其中上述主機裝置更包括:主記憶體DMA部,其進行上述主機使用區域與上述寫入快取區域之間之資料傳輸;及資料DMA部,其進行上述寫入快取區域與上述半導體記憶裝置之間之資料傳輸;且上述第2主機控制部係操作上述主記憶體DMA部,將儲存於上述主機使用區域中之寫入資料傳輸至上述寫入快取區域,上述器件控制部係操作上述資料DMA部,將儲存於上述寫入快取區域中之寫入資料傳輸至上述半導體記憶裝置。
  11. 如請求項10之資訊處理裝置,其中上述第2主機控制部係經由第1輸出入緩衝器而與上述半導體記憶裝置連接,且經由該第1輸出入緩衝器而將上述第1主機控制部所生成之寫入指令傳輸至上述半導體記憶裝置,且 上述資料DMA部係經由與上述第1輸出入緩衝器不同之第2輸出入緩衝器而與上述半導體記憶裝置連接,且經由該第2輸出入緩衝器而取得儲存於上述寫入快取區域中之寫入資料。
  12. 如請求項1之資訊處理裝置,其中上述非揮發性半導體記憶體係記憶邏輯-實體轉換資訊,該邏輯-實體轉換資訊係針對每個邏輯位址而描述自身記憶體之邏輯位址與實體位址之關聯,上述主記憶體更包括快取上述邏輯-實體轉換資訊之一部分的邏輯-實體轉換資訊快取區域,且上述器件控制部係藉由操作上述資料DMA部,而經由上述第2輸出入緩衝器參照上述邏輯-實體轉換資訊快取區域,從而求出與上述非揮發性半導體記憶體之上述寫入目的地之邏輯位址對應之實體位址,且將上述寫入資料寫入至由上述所求出之實體位址指定之位置。
  13. 如請求項10之資訊處理裝置,其中上述第2主機控制部係使用上述寫入目的地之邏輯位址,特定構成上述寫入快取區域之快取線中之儲存上述寫入資料之快取線之位址,將上述特定出之位址作為上述寫入資料之傳輸目的地,而啟動利用上述主記憶體DMA部之傳輸。
  14. 如請求項13之資訊處理裝置,其中上述第1主機控制部所生成之寫入指令包含儲存有對上述半導體記憶裝置之寫入資料的上述主機使用區域之位址,且上述第2主機控制部係於將上述第1主機控制部所生成 之寫入指令傳輸至上述半導體記憶裝置時,讀出該寫入指令包含之上述主機使用區域之位址,將上述讀出之位址作為上述寫入資料之傳輸來源,而啟動利用上述主記憶體DMA部之傳輸。
TW101132071A 2012-04-27 2012-09-03 Information processing device TWI459201B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201261639454P 2012-04-27 2012-04-27

Publications (2)

Publication Number Publication Date
TW201344433A TW201344433A (zh) 2013-11-01
TWI459201B true TWI459201B (zh) 2014-11-01

Family

ID=49462298

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101132071A TWI459201B (zh) 2012-04-27 2012-09-03 Information processing device

Country Status (3)

Country Link
US (1) US9524121B2 (zh)
CN (1) CN103377162B (zh)
TW (1) TWI459201B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI596603B (zh) * 2014-12-16 2017-08-21 英特爾公司 用於快取壓縮資料之設備、系統及方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9274971B2 (en) * 2012-11-27 2016-03-01 International Business Machines Corporation Low latency data exchange
JP6021759B2 (ja) 2013-08-07 2016-11-09 株式会社東芝 メモリシステムおよび情報処理装置
CN103631534B (zh) * 2013-11-12 2017-01-11 北京兆芯电子科技有限公司 数据存储系统以及其管理方法
CN104636081B (zh) * 2013-11-12 2017-11-14 上海兆芯集成电路有限公司 数据存储系统以及其管理方法
US10824335B2 (en) 2014-07-14 2020-11-03 Western Digital Technologies, Inc. Device and method to store predicted data at a host memory
JP6266479B2 (ja) * 2014-09-12 2018-01-24 東芝メモリ株式会社 メモリシステム
WO2016083377A1 (en) * 2014-11-25 2016-06-02 Lantiq Beteiligungs-GmbH & Co.KG Memory management device
WO2016109652A1 (en) 2015-01-02 2016-07-07 Arizona Board Of Regents On Behalf Of Arizona State University Archimedean spiral design for deformable electronics
KR20160087224A (ko) * 2015-01-13 2016-07-21 삼성전자주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
KR102498223B1 (ko) * 2015-10-13 2023-02-09 삼성전자주식회사 Ufs 장치의 작동 방법, ufs 호스트의 작동 방법, 및 이들을 포함하는 시스템의 작동 방법
US10146483B2 (en) 2016-02-29 2018-12-04 Toshiba Memory Corporation Memory system
US9934151B2 (en) * 2016-06-28 2018-04-03 Dell Products, Lp System and method for dynamic optimization for burst and sustained performance in solid state drives
CN110419034B (zh) 2017-04-14 2021-01-08 华为技术有限公司 一种数据访问方法及装置
CN107992433A (zh) * 2017-12-19 2018-05-04 北京云知声信息技术有限公司 二级缓存检测方法及装置
CN114840452B (zh) * 2018-12-24 2025-01-24 北京忆芯科技有限公司 一种控制部件
US11237953B2 (en) * 2019-05-21 2022-02-01 Micron Technology, Inc. Host device physical address encoding
CN110569001B (zh) * 2019-09-17 2020-09-22 深圳忆联信息系统有限公司 基于固态硬盘的L2P表dirty位标记方法和装置
CN113852656B (zh) * 2020-06-28 2023-02-10 华为技术有限公司 一种数据传输方法、处理器系统及内存访问系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW403871B (en) * 1993-04-08 2000-09-01 Hitachi Ltd Control method of flash memory and its application on data process device
US20050275658A1 (en) * 2004-05-31 2005-12-15 Nobuo Sasaki Information processing apparatus with a cache memory and information processing method
US20100250857A1 (en) * 2009-03-30 2010-09-30 Fujitsu Limited Cache controlling apparatus, information processing apparatus and computer-readable recording medium on or in which cache controlling program is recorded
TW201102816A (en) * 2008-12-27 2011-01-16 Toshiba Kk Memory system, method of controlling memory system, and information processing apparatus

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3739888B2 (ja) 1997-03-27 2006-01-25 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および方法
GB0415850D0 (en) * 2004-07-15 2004-08-18 Imagination Tech Ltd Memory management system
US7856532B2 (en) * 2006-11-03 2010-12-21 Arm Limited Cache logic, data processing apparatus including cache logic, and a method of operating cache logic
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8296496B2 (en) * 2009-09-17 2012-10-23 Hewlett-Packard Development Company, L.P. Main memory with non-volatile memory and DRAM
JP2013033337A (ja) 2011-08-01 2013-02-14 Toshiba Corp 情報処理装置及び半導体記憶装置
JP5762930B2 (ja) 2011-11-17 2015-08-12 株式会社東芝 情報処理装置および半導体記憶装置
TWI521343B (zh) 2011-08-01 2016-02-11 Toshiba Kk An information processing device, a semiconductor memory device, and a semiconductor memory device
US9417998B2 (en) * 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW403871B (en) * 1993-04-08 2000-09-01 Hitachi Ltd Control method of flash memory and its application on data process device
US20050275658A1 (en) * 2004-05-31 2005-12-15 Nobuo Sasaki Information processing apparatus with a cache memory and information processing method
TW201102816A (en) * 2008-12-27 2011-01-16 Toshiba Kk Memory system, method of controlling memory system, and information processing apparatus
US20100250857A1 (en) * 2009-03-30 2010-09-30 Fujitsu Limited Cache controlling apparatus, information processing apparatus and computer-readable recording medium on or in which cache controlling program is recorded

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI596603B (zh) * 2014-12-16 2017-08-21 英特爾公司 用於快取壓縮資料之設備、系統及方法

Also Published As

Publication number Publication date
TW201344433A (zh) 2013-11-01
CN103377162A (zh) 2013-10-30
US9524121B2 (en) 2016-12-20
CN103377162B (zh) 2016-06-08
US20130290647A1 (en) 2013-10-31

Similar Documents

Publication Publication Date Title
TWI459201B (zh) Information processing device
US11868618B2 (en) Data reading and writing processing from and to a semiconductor memory and a memory of a host device by using first and second interface circuits
JP6021759B2 (ja) メモリシステムおよび情報処理装置
CN110781096B (zh) 用于通过预测需求时间来执行垃圾收集的设备和方法
CN108572796B (zh) 具有异构nvm类型的ssd
JP5762930B2 (ja) 情報処理装置および半導体記憶装置
US12045513B2 (en) Memory system and method of controlling nonvolatile memory with checking a total size indicative of a sum of data length specified by a write command
JP5836903B2 (ja) 情報処理装置
CN110321057B (zh) 具有增强io性能确定性的缓存的存储设备
CN115617503A (zh) 用于异构存储器系统中的负载均衡的系统和方法
JP7030942B2 (ja) メモリ装置及びその制御方法
US20150177985A1 (en) Information processing device
US20150074334A1 (en) Information processing device
KR20240138021A (ko) 블록 요청을 스케줄링하는 메모리 장치 및 방법
TWI897712B (zh) 快閃記憶體中的緩衝區管理
US20240311304A1 (en) Storage controller and operating method of the storage controller
KR20250052098A (ko) 호스트로 제공된 맵 정보를 관리하는 스토리지 장치 및 그 동작 방법

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees