TW201303870A - 利用快閃記憶體介面的方法及裝置 - Google Patents

利用快閃記憶體介面的方法及裝置 Download PDF

Info

Publication number
TW201303870A
TW201303870A TW101125548A TW101125548A TW201303870A TW 201303870 A TW201303870 A TW 201303870A TW 101125548 A TW101125548 A TW 101125548A TW 101125548 A TW101125548 A TW 101125548A TW 201303870 A TW201303870 A TW 201303870A
Authority
TW
Taiwan
Prior art keywords
context
flash memory
die
block
state
Prior art date
Application number
TW101125548A
Other languages
English (en)
Inventor
Vinay A Somanache
Jackson L Ellis
Pamela S Hempstead
Timothy W Swatosh
Michael S Hicken
Martin S Dell
Original Assignee
Lsi Corp
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 Lsi Corp filed Critical Lsi Corp
Publication of TW201303870A publication Critical patent/TW201303870A/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • 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
    • 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
    • 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
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead

Abstract

本發明公開快閃記憶體介面的有效利用,其中,一種裝置包括第一電路、第二電路、第三電路。第一電路可以被配置為保持用於快閃記憶體通道控制器(FLC)的操作的基於裸片的資訊。第二電路可以被配置為管理正被快閃記憶體通道控制器(FLC)有效處理的上下文。第三電路可以被配置為實施由第二電路管理的多個上下文的流水線執行。

Description

利用快閃記憶體介面的方法及裝置
本申請要求於2011年7月14日提交的美國臨時申請第61/507,654號和2012年1月5日提交的美國實用申請第13/344,030號的優先權,其全部內容結合於此作為參考。
本申請與2011年12月21日提交的審查中的美國申請第13/332,849號、2011年12月22日提交的審查中的美國申請第13/344,599號有關,其全部內容結合於此作為參考。
本發明總體涉及快閃記憶體系統,特別地,涉及一種快閃記憶體介面的有效利用的方法。
快閃記憶體介質控制器經由諸如ONFI 2.X的快閃記憶體介面與快閃記憶體器件通訊。在單個快閃記憶體介面上,可以連接固定數量的快閃記憶體目標(target)。在單個快閃記憶體介面上連接多個快閃記憶體目標使得多個快閃記憶體目標之間共用快閃記憶體介面。在多個快閃記憶體目標之間共用介面會產生對快閃記憶體器件的瓶頸。
期望具有一種快閃記憶體介面的有效利用的方法。
本發明涉及包括第一電路、第二電路以及第三電路的裝置。第一電路可被配置為保持用於快閃記憶體通道控制器(FLC)的操作的基於裸片(die)的資訊。第二電路可被配置為管理正被快閃記憶體通道控制器(FLC)有效處理的上下文。第三電路可配置為執行由第二電路所管理的多個上下文的流水線執行。
本發明的物件、特徵和優勢包括提供用於快閃記憶體介面有效利用的方法,其可以(i)管理裸片管理表中的每個裸片的資訊,(ii)在多個裸片之間仲裁要在上下文表中排隊的訪問,(iii)使用裸片狀態機更新裸片狀態,(iv)執行/監控多裸片操作,(v)在快閃記憶體通道控制器上發起(stage)和執行操作階段,(vi)保持快閃記憶體通道上的所有有效上下文的優先順序,(vii)保持每個快閃記憶體通道上的上下文的狀態(VIII)提供最小值,或最小化用於執行完整交易的上下文的臨時片上儲存量,(ix)保持對正在執行的處理(pocess)中的每個上下文的緩衝指標,(x)通過使用狀態機確定上下文的下一個狀態,為每個上下文提供代理(agency),(xi)保持目前正在執行的上下文的優先順序佇列中最小的上下文資訊,(xii)從優先順序佇列中移除完成的上下文以及壓縮佇列以消除間隙。
從下面的詳細說明書和所附權利要求書及附圖中,上述和其他目的、特徵和優點將變得顯而易見。
在一個實現方案中,根據本發明的系統可以被設計為通過各種大型存放區協議進行操作,包括SAS(“串列連接SCSI”)、FC(“光纖通道”)和FC-AL(“光纖通道仲裁環路”),所有這些都是基於小型電腦系統介面(“SCSI”)協定和串列ATA(“SATA”)協定的。本領域普通技術人員應當熟悉這些大型存放區協議,因此,這樣的協議不會在本文中進一步討論。除非在調用特定協定的情況下,本文所公開的系統和方法不依賴於正在使用的特定協議,並被設計為通過所有協議進行正確操作。此外, 根據本發明實施方式的系統和方法可以適用於與目前在使用或將來開發的其他類似協定一起使用,這些協定包括用於企業級應用的協議以及用於諸如最終使用者的其他應用協議。本文所述的系統包括一種快閃記憶體介面的有效利用的方法。
參照圖1,其示出了通過根據本發明實施方式的快閃記憶體介質控制器所實現的系統100的框圖。在一個示例中,系統(或結構)100可包括塊(或電路)102、多個塊(或電路)104a至104n、多個塊(或電路)106a至106n、塊(或電路)18、塊(或電路)110、塊(或電路)112、塊(或電路)114、塊(或電路)116。電路102至116可以表示被實現為硬體、固件、軟體、硬體、固件和/或軟體的組合或者其他的模組和/或塊。
在一個示例中,塊102可以實現根據本發明實施方式的快閃記憶體介質控制器(FMC)。塊104a至104n可以被實現為第一數量的閃記憶體件或元件。塊104a至塊104n可以耦接至塊102的第一快閃記憶體通道。塊102的第一快閃記憶體通道可以被配置為對各個塊104a至104n提供獨立的晶片啟用(CE)信號。塊106a至塊106n可以被實現為第二數量的快閃記憶體件或部件。塊106a至塊106n可耦接至塊102的第二快閃記憶體通道。塊102的第二快閃記憶體通道可以被配置為對各個塊106a至塊106n提供獨立的晶片啟用(CE)信號。儘管FMC 102以兩個快閃記憶體通道的示例進行了說明,對本領域技術人員顯而易見的是,可以相應地實現另外的快閃記憶體通道以滿足特定實現的設計標準。快閃記憶體器件104a至104n和106a至 106n可以被實現為包括一個或多個裸片的單個快閃記憶體組(flash package)。快閃記憶體器件104a至104n和106a至106n通過使用NAND和/或NOR快閃記憶體器件來實現。塊102可以包括用於NAND快閃記憶體和/或NOR快閃記憶體的適當的實體層支持(PHY)。
塊108可以實現可耦接至塊102的外部FMC處理器(FARM)。塊110可以實現可被配置為將靜態隨機存取記憶體(SRAM)和/或動態隨機存取記憶體(DRAM)耦接至塊102的記憶體控制器。塊112可以被實現為一個或多個SRAM器件。塊114可以被實現為一個或多個DRAM裝置。塊116可以實現耦接塊110和塊114的雙倍數據速率實體層(PHY)介面。在一個示例中,塊102、108、110、112、114和116可以實現單晶片系統(SOC)結構。
塊102可以實現為被配置為協助各種應用程式使用快閃記憶體器件104a至104n和快閃記憶體器件106a至106n的軟IP塊。正如本文使用的,術語“軟IP塊”通常是指可以以軟體(例如,HDL代碼、RTL代碼等)提供的積體電路的構建塊(building block)。塊102通常支援與快閃記憶體器件的多個快閃記憶體介面。塊102通常不包括處理器(例如ARM)。然而,在一個示例中,塊102可以實現被配置為將塊102耦接至外部處理器108的介面(例如32位元的AHB等)。塊102通常被配置為處理由塊104a至104n和塊106a至106n形成的快閃記憶體介質海量儲存陣列的管理。在一個示例中,塊102可以利用多例示(multiply-instantiated)快閃記憶體通道控制器(FLC),其能夠執行與附接有多個獨立快閃記憶體器件的單個快閃記 憶體資料通道相關聯的大部分管理功能。從塊102可能對快閃記憶體訪問瞭解甚少這個意義上說,塊102的功能可能有點寬泛。塊102通常更多地涉及將快閃記憶體感知(flash-aware)通道編織(weave)成單個硬體實體。在一個示例中,實現塊102的軟IP可以進行參數化以支援用於應用程式的最大可能通道。例如,在一個實現中,通道的數量可以為2。在另一實現中,數量可以為8。
在一個示例中,塊102可以支援的特徵包括:(i)兩個快閃記憶體通道;(ii)在每個快閃記憶體通道上的高達八個晶片啟用信號(CE);(iii)快閃記憶體介面,包括非同步正常模式、非同步擴展模式、Toggle1.0、ONFI 2.3、ONFI 2.1、Toggle2.0;(iv)硬體可配置的多個通道之間的專用ECC或共用ECC(例如實現塊102的軟IP包的參數化特徵);(v)快閃記憶體介面上的8位元資料;(vi)Toggle2.0或ONFI 2.3的快閃記憶體介面規範的快閃記憶體介面上的高達200 MHz的DDR速率;(vii)部分讀取命令,(viii)隨機讀取命令;(ix)關於快閃記憶體寫入/讀取的CRC刪除/插入(strip/insert)選項;(x)對4K位元組資料高達64位元的校正;(xii)512、2K、4K位元組資料上的可配置的n位元校正(n最大值=64);(xii)用於寄存器程式設計的32位元AHB介面;(xiii)上下文命令在外部記憶體(如DRAM或SRAM)上的儲存;(xiv)在快閃記憶體通道控制器中的交叉緩衝器(cut-through buffer);(xv)提供更好性能的獨立快閃記憶體讀寫資料路徑;(xvi)對各個快閃記憶體單元號(FUN)報告的有序狀態;(xvii)針對每個快閃記憶體通道的資料路徑支援一個讀取緩衝控制器(BC) 介面和一個寫入緩衝控制器介面;(xviii)支援用於上下文檢索的讀取BC介面;(xix)支援用於上下文更新的寫入BC介面;(xx)支援用於空閒資源指針(CFRP)的讀取/寫入BC介面。
參考圖2,圖2示出了圖1的塊102的更詳細的框圖,該框圖示出了根據本發明實施方式的示例快閃記憶體介質控制器(FMC)結構。在一個示例中,塊102可以實現三個主要功能介面:緩衝控制器(BC)介面、快閃記憶體器件介面以及處理器介面(例如,32位元AHB等)。在框圖的左側和左上側示出了緩衝控制器(BC)介面。在一個示例中,可以實現七個緩衝控制器介面(例如,三個讀取介面BC_RD_I/F、三個寫入介面BC_WR_I/F和一個讀取/寫入介面BC_RD/WR_I/F)。在框圖的右側示出了快閃記憶體器件介面。在一個示例中,可以實現兩個快閃記憶體通道介面(例如,FLASH_I/F_0和FLASH_I/F_1)。在框圖的右上側示出了32位元AHB介面。在一個示例中,32位元AHB介面可用於對塊102中的寄存器進行程式設計、讀取狀態及使用診斷寄存器。
塊102通常包括塊(或電路)150、塊(或電路)152、多個塊(或電路)154a至154n、多個塊(或電路)156a至156n、多個塊(或電路)158a至158n、塊(或電路)160、塊(或電路)162、塊(或電路)164、塊(或電路)166、塊(或電路)168、塊(或電路)170、多個塊(或電路)172a至172n以及多個塊(或電路)174a至174n。電路150到174a至174n可以表示可實現為硬體、固件、軟體、以及硬體、固件和/或軟體的組合或者其他實施方式的模組和/ 或塊。塊150可以實現處理器介面邏輯(PIL)。塊152可以實現資料DMA管理器(DDM)。塊154a至154n可以實現快閃記憶體匯流排控制器(FBC)。塊156a至156n可以實現快閃記憶體通道控制器(FLC)。塊158a至158n可以實現資料傳輸路徑(DTP)。塊160可以實現上下文提取仲裁器(CA)。塊162可以執行上下文空閒指標資源(CFPM)。塊164可以實現消耗上下文管理器(CCM)。塊166可以實現上下文檢索埠(CRP)。塊168可以實現上下文更新埠(CUP)。塊170可以實現上下文指標列表埠(CPLP)。塊170通常是可選的。塊172a至172n可以實現資料DMA讀取介面埠(DDRIP)。塊174a至174n可以實現資料DMA寫入介面埠(DDWIP)。並且,塊172a至172n和塊174a至174n通常形成資料DMA介面埠(DDIP)。
在一個示例中,塊150可以提供從塊108至102的可定址資源(例如,經由AMBAAHB-Lite介面)的介面。塊150可以向所有可定址資源提供介面並且向塊102中的不位於塊156a至156n內的子模組的配置和狀態寄存器提供直接介面。塊150也可以向各個塊156a至156n中的可定址資源提供介面。此外,塊150可以包含一個上下文構成緩衝器(CCB),其中,處理器固件可以將實際介質上下文寫入塊102以經由塊168儲存到系統緩衝器。在一個示例中,塊150可以包括以下特徵:至108的32位元AMBAAHB-Lite從屬介面;可以為輸入時鐘值(例如,HCLK)的一些劃分值(或相同)的系統時鐘(例如,SYS_CLK);對塊102中的所有配置寄存器和狀態寄存器以及處理器可定址空間的訪問;由處理器固件用於構建儲存在系統緩衝器中的上 下文的上下文構成緩衝器(CCB);分佈到塊156a至156n中的每一個的處理器介面,其中,對各個定址資源的訪問由處理器訪問埠(PAP)處理,並且其包含可被塊102中的多個子模組使用的寄存器。塊150可以對沒有邏輯地儲存在塊156a至156n中的可定址資源執行所有寄存器解碼和所有讀取資料複用(multiplex)。
塊152通常管理兩個資料傳輸,一個用於快閃記憶體程式設計(例如,從緩衝器到快閃記憶體器件的資料交易),另一個用於快閃記憶體讀取(例如,從快閃記憶體器件到緩衝器的資料交易)。DMA資料路徑通常包括從塊156a至156n到相應的塊158a至158n、資料DMA介面埠(DDIP)塊172a至172n以及塊174a至174n的分離的32位元讀寫資料匯流排。塊158a至158n可以包含ECC功能。DMA資料傳輸通常包括一系列事件,該一序列事件可以包括通過塊102的其他子塊(或埠塊)訪問相應的上下文。在一個示例中,一個DMA傳輸可以包括FLC請求、檢索上下文操作、資料傳輸和FLC完成階段。
在FLC的請求步驟中,資料傳輸可以隨著塊156a至156n中的一個升高各自的請求線而開始。在檢索上下文操作中,可以經由上下文檢索埠(CRP)介面166從一個緩衝控制器檢索相應的上下文。資料傳輸可以發生在DDIP、DTP和FLC塊之間,在該過程中,上下文可以發送至DDIP並且可以被寫回或不被寫回。在FLC完成階段,到選定塊156a至156n的完成線可以升高以表示傳輸結束。DDM 152可以執行檢索上下文並向DTP塊提供輸入,以方便資料交易。
塊154a至154n通常在相應的快閃記憶體通道上執行至一組NAND快閃記憶體器件的低級介面信令。通常對各個快閃記憶體通道控制器(FLC)156a至156n存在一個快閃記憶體匯流排控制器(FBC)154a至154n。塊154a至154n通常管理用於幾個介面類別型的快閃記憶體介面協定的各個週期的時序以及給定類型的不同時序模式(例如,非同步、ONFI 2.0同步、ONFI 2.3同步、三星Toggle1.0、三星Toggle2.0等)。在一個示例中,通過一組內部時序寄存器中儲存的時序計數,可以控制週期的定時。塊154a至154n的核心邏輯通常在與其餘的塊102不同的時鐘域下操作。一般地,只有時序寄存器組(set)位於與其餘的塊156a至156n相同的時鐘域中。通常在寄存器和FBC核心之間通常不需要同步邏輯,因為只有在FBC是靜態(quiescent)時(例如,沒有未完成(outstanding)操作)寄存器才被寫入,所以寄存器被視為靜態(static)的。
塊156a至156n通常執行對各個裸片的命令的調度。塊156a至156n管理各個相應快閃記憶體通道上的命令序列。塊156a至156n提供控制寄存器和狀態寄存器,通過它們,固件能夠對裸片程式設計並觀察狀態。每個塊156a至156n均包括上下文管理和裸片管理。塊156a至156n通常負責處理上下文。
塊158a至158n的每一個路由資料流程量,並針對塊154a至154n中的每一個、可選的內部ECC編碼器/解碼器以及相應的資料DMA介面埠(DDIP)之間的資料流程啟動每個介面的流控制。在一個示例中,可在塊158a至158n內實現內部ECC編碼器/解碼器。可選地,塊158a至158n 中的每一個可被配置為共用單個ECC編碼器/解碼器模組。可以通過相應的資料DMA管理器(DDM)模組152和相應的資料DMA介面埠(DDIP)塊172a至172n和塊174a至174n針對每次傳送對塊158a至158n進行程式設計。各個塊158a至158n可以包括可在全雙工操作模式下工作的獨立快閃記憶體讀寫路徑。塊158a至158n保持資料傳輸中的當前區域計數以及各個區域中的當前雙字(dword)計數。塊158a至158n通常執行DDIP、ECC編碼器及解碼器和FLC塊之間的流控制轉化。塊158a至158n保持每次傳輸的運行可校正(running correctable)ECC錯誤和,並在傳輸結束後向塊152提供該最終值。塊158a至158n可以包含用於對ECC編碼器及解碼器程式設計的FMC寄存器。塊150可以通過寄存器介面來訪問寄存器。ECC模組通常能夠進行4K位元組資料上的64位元校正。然而,可以相應地實現其他級別的校正以滿足特定實現的設計標準。在一個示例中,解碼器門計數可以為415K門,而編碼器門計數可以為75K門。
塊160通常負責從塊156a至156n接收對上下文的請求,從系統緩衝器(例如,通過緩衝控制器進行訪問的DRAM)中檢索請求的上下文,然後將上下文分發給塊156a至156n。檢索實際上可以經由對上下文檢索訪問埠(CRP)166的請求來執行。上下文為FMC的基本控制單元。上下文通常包含FLC執行命令所需的、或者FMC執行到系統緩衝器或來自系統緩衝器的相關資料傳輸(DMA)所需的所有資訊。FLC的動作完全自主;因此,FLC需要仲裁經由緩衝控制器對系統緩衝器的訪問,其包含由固件構建的 上下文的連結清單(linked list of context)。塊160通常提供仲裁,以及發起對塊166的請求。然後,塊160將檢索到的上下文清楚地路由到相應的FLC目的地。塊162通常被實現為塊102的子塊以提供空閒指針在其中對固件可用的單點(single point)。
塊164通常被實現為塊102的子塊以提供由固件可以在完成後檢測已完成的上下文的單點。塊164通常在多個FLC源之間執行仲裁。FLC提供與上下文指標相關聯的PASS/FAILE CC狀態。一旦獲得上下文,塊164更新上下文狀態欄位,然後將上下文提供給固件。在固件需要較長時間來讀取已完成的上下文、以及塊164內的內部記憶體將變滿的情況下,塊164可以使用緩衝器來儲存在當前報告的上下文之後進行排隊的已完成的上下文。
塊166至174n通常實現埠介面。埠介面可用於與緩衝控制器通訊。在一個示例中,在埠介面內可以實現QBFIFO塊。下面的埠介面也可以被實現為埠介面的一部分:上下文檢索埠(CRP)166、上下文更新埠(CUP)168、上下文指標清單介面埠(CPLIP)170(可選)、資料DMA讀取介面埠(DDRIP)172a至172n、資料DMA寫入介面埠(DDWIP)174a至174n。在一個示例中,塊102的信號介面可被分為4個主要介面:AHB介面、緩衝控制器介面、NAND和/或NOR快閃記憶體實體層(PHY)介面以及混雜(MISC)介面。緩衝控制器介面可以包括(i)用於通道0和通道1的DDIP BC寫入介面,(ii)用於通道0和通道1的DDIP BC讀取介面(iii)CRP BC讀取介面,(iv)CUP BC寫入介面,以及(v)CPLIP BC讀取/寫入介面。
在一個示例中,塊102可以以三個時鐘實現。塊102中的大部分邏輯可以在被稱為系統時鐘(例如,SYS_CLK)的時鐘域上工作。系統時鐘可以為AHB時鐘。系統時鐘通常具有FMC處理器(FARM)112的工作頻率的一半的頻率。第二時鐘可以為所謂的快閃記憶體時鐘(例如,FBC_CLK)。快閃記憶體匯流排控制器(FBC)154A至154n可以完全工作在快閃記憶體時鐘域。在一個示例中,可在塊154a至154n的資料流程管理器(DM)模組中實現先進先出緩衝器(FIFO),以管理時鐘FBC_CLK和SYS_CLK之間的頻率。第三時鐘可以為緩衝控制器時鐘(例如,BC_CLK)。所有帶有BC的介面埠均工作在緩衝控制器時鐘域。可以在緩衝控制器時鐘BC_CLK和系統時鐘SYS_CLK之間實現緩衝器元件(例如,QBFIFO)。
參考圖3,其示出了圖解根據本發明實施方式的示例快閃記憶體通道控制器結構的塊200的示圖。在一個示例中,塊200可以用於實現圖2中的塊154a至154n和塊156a至156n。在一個示例中,塊(或電路)200可以包括塊(或電路)202、塊(或電路)204、塊(或電路)206、塊(或電路)208、塊(或電路)210、塊(或電路)212以及塊(或電路)214。電路202至210可以表示被實現為硬體、固件、軟體、以及硬體和固件和/或軟體的組合或其他實施方式的模組和/或塊。在一個示例中,塊202可以實現上下文處理協調器(CPC)。在一個示例中,塊204可以實現上下文管理器(CM)。在一個示例中,塊206可以實現裸片管理模組(DMM)。在一個示例中,塊208可以實現快閃記憶體操作管理器(FOM)。在一個示例中,塊210可以實現處理 器訪問埠(PAP)。在一個示例中,塊212可以實現快閃記憶體匯流排控制器(FBC)。在一個示例中,塊214可以實現資料流程管理器(DFM)。
塊202可以說明上下文資訊流入和流出塊200。上下文流可以由塊204發起。塊202主要涉及回應於提取或配置上下文的請求。為了獲取上下文,塊202回應塊204對新的上下文的請求。首先,塊202可以向在塊200管理的裸片中進行仲裁並將選定的裸片或邏輯單元號(LUN)轉發至塊202的塊206發起請求。然後,塊202發出一個試圖從系統緩衝器提取上下文的提取至上下文提取仲裁器(CFA)(例如,圖2中的塊160)。
一旦提取到上下文,將上下文提交給塊202。塊202對上下文執行一些解釋並轉發上下文至塊204。如果塊206沒有可用的發起上下文執行的裸片(LUN),塊206通知塊202缺乏可用的裸片,然後塊202通知(communicate)塊204缺乏可用的裸片。塊202還協助塊200完成上下文的配置。此外,啟動該流程的是塊204,並且,向實現消耗上下文管理器(CCM)的塊(例如,圖2中塊164)發出配置消息的是塊202。當由CCM接收到配置消息並啟動工作時,塊202通知塊204,然後塊204可以繼續處理上下文的執行。
塊202通常執行上下文的一些解釋。具體地,為了確定上下文是否為處理器控制模式(PCM)上下文,塊202可以解釋上下文。當接收到PCM上下文時,上下文的提取(追加)應當停止。然後,塊202等待塊204開始執行PCM上下文並且在處理器控制模式完成時繼續(resume)“標準”操作。在處理器控制模式間隔期間,塊202確定提取 到的上下文是否是15個雙字上下文,而不是4個雙字快閃記憶體上下文,塊202在“標準”操作下將其發送至塊204。
在一個示例中,塊204可以包括上下文狀態機(CSM)、上下文提取管理器(CFM)、上下文配置引擎(CDE)、上下文解譯器(CI)。塊204通常負責管理正在由塊200有效(actively)處理的上下文。塊204通常執行有效上下文的簿記(bookkeeping)。上下文是向系統緩衝器提供快閃記憶體介質控制器(FMC)執行快閃記憶體交易和DMA所需的所有資訊的資料結構。塊204管理在快閃記憶體通道控制器級別上的上下文,由此主要涉及快閃記憶體交易有關的上下文管理。塊204保持由塊208執行對快閃記憶體通道上的快閃記憶體裸片執行命令和資料傳輸所用的資訊。
塊206通常負責保持塊200的操作所需的基於裸片的資訊。塊206管理裸片管理表中的各個裸片的資訊並且在裸片之間仲裁對上下文表排隊的訪問。在一個示例中,塊206可以包括更新裸片狀態的裸片狀態機。塊206可以執行/監控多裸片操作。塊206通常負責快閃記憶體命令,包括但不僅限於:READ、COPYBACK READ/COPYBACK WRITE、BLOCK ERASE、PAGE PROGRAM,以及目標級命令,其中,目標級命令包括但不僅限於READ ID、READPARAMETER PAGE、GET FEATURES、SET FEATURES、SYNCHRONOUS RESET、以及RESET。
塊208通常處理應用到快閃記憶體通道的各個快閃記憶體操作序列。通常針對快閃記憶體介質控制器的每個快閃記憶體通道控制器(FLC)來實現一個塊208。塊208在塊204的上下文表中的命令之間進行仲裁,並應用命令至 塊212。在一個示例中,塊208本身支持來自ONFI 2.0命令列表中的最常用的命令,以及在三星NAND快閃記憶體器件中出現的一些特定的(和類似的)命令。此外,可以通過奈米序列器(nano-sequencer)(在下面圖9到圖11中詳細說明)支持其他現有和將來的命令。自身支援的命令可以無需處理器干預來操作,但其他命令通常使用一些級別的處理器支援。
快閃記憶體命令可以被分解成可串列地應用於由塊208控制的實際快閃記憶體裸片的原子“週期”。因為快閃記憶體命令通常涉及漫長的等待時間(例如,在資料可從晶片中讀取之前,頁讀取可能需要25 μs),“命令週期”可以經常針對快閃記憶體通道的不同裸片“一個接一個”地(back-to-back)操作,從而減少了有效的、累積的等待時間。塊208通常通過隨著應用每個快閃記憶體迴圈而更新裸片的狀態來管理快閃記憶體裸片。然後塊208讀取更新的上下文表來確定接下來什麼迴圈應該(或可以)執行。NAND快閃記憶體操作通常包括一個或多個快閃記憶體週期。通常存在四種類型的快閃記憶體週期:命令、位址、資料輸出(w.r.t快閃記憶體器件,例如,讀取)、資料登錄(w.r.t快閃記憶體器件,例如,寫入)。週期類型大致轉化為在塊208和塊212之間定義的操作類型。
塊210通常實現提供了從FMC 100的AHB-Lite從屬介面至200的可定址資源的處理器訪問的介面塊。在本文討論的大部分資源主要用於診斷目的,正如所有配置信號採用全域級別(作為共用的配置寄存器塊的一部分)。例如,可以通過塊210實現快閃記憶體通道資料緩衝器的完 全訪問。訪問可以單純作為早期驗證支架(scaffold)而提供。然而,對快閃記憶體通道資料緩衝器的訪問,也可以支援需要直接訪問內部表的固件補丁(pitch)。這樣的訪問可以通過塊210提供。
塊210的特點可以包括:簡單的訪問介面,符合AHB-Lite從屬協定並且由FMC中的處理器介面邏輯(PIL)進行緩衝;提供對寄存器資源、上下文表、上下文快取記憶體以及裸片管理表的讀寫訪問;提供對位於塊214中的快閃記憶體通道資料緩衝器記憶體資源的讀寫訪問。塊210通常支援添加每通道配置寄存器的能力,儘管大部分配置寄存器通常被提供為塊200的輸入。類似地,可以支援狀態寄存器和中斷寄存器訪問,儘管大多數狀態寄存器和中斷寄存器通常在塊200以外產生。塊210的主要邏輯組可以包括:介面管理器(IF_MGR)、資料流程管理介面(DM_IF)、寄存器塊解碼器(REG_DEC)、寄存器塊複用器(REG_MUX)、中斷處理器(INT_HND)和FLC全域寄存器(GLOB_REGS)。
參照圖4,示出了圖解圖3的上下文管理模組204的子模組的示圖。在一個示例中,塊204可以包括上下文表(CT)220、上下文狀態機(CSM)222、上下文快取記憶體(CC)224和上下文佇列控制器(CQC)226。塊204通常劃分和執行快閃記憶體通道控制器上的操作的階段,保持快閃記憶體通道上的所有有效上下文(active context)的優先順序,保持各個快閃記憶體通道上下文的狀態,提供(例如,通過上下文快取記憶體)執行完整交易所需的上下文的臨時片上儲存的最低量,保持正在執行的處理中的各個上下 文的緩衝器指標,並通過使用上下文狀態機(CSM)222確定下一狀態的上下文以為各個上下文提供代理(agency)。可以在上下文表(CT)220中保持最小的上下文資訊。表220通常提供了目前正在執行的上下文的優先順序佇列。上下文佇列控制器(CQC)226可被配置為從上下文表220中移除已完成的上下文並壓縮上下文表220,以消除間隙。
參照圖5,示出了圖解圖3的裸片管理模組206的子模組的示圖。在一個示例中、塊206可以包括裸片狀態機230、裸片服務仲裁器232以及裸片管理表234。
參照圖6,示出了圖解圖3的快閃記憶體操作管理器(FOM)208的子模組的示圖。在一個示例中,塊208可被分為四個子模組:命令仲裁器(CA)240、資料傳輸仲裁器(DTA)242、快閃記憶體操作格式化器(FOF)244、奈米序列器246。命令仲裁器240通常掃描上下文表以得到要應用的命令,然後與快閃記憶體操作格式化器(FOF)244通訊以發送信號至快閃記憶體緩衝控制器(FBC)。一旦所有的“命令”部分已經運行,快閃記憶體為“資料階段”準備就緒,資料傳輸仲裁器242發起FBC和資料流程管理(DM)214之間的傳輸。最後,奈米序列器246解釋特殊的“軟上下文”以應用任何快閃記憶體可能需要的命令序列,即使命令序列本身不支援。
參照圖7,示出了圖解圖3的資料流程管理子模組214的示圖。資料流程管理214通常提供快閃記憶體通道資料緩衝器記憶體資源。在一個示例中,快閃記憶體通道資料緩衝器記憶體資源可以包括交叉緩衝器250和252。在一個 示例中,交叉緩衝器250和252可以被實現為其大小是可程式設計的。例如,緩衝器250和252的大小可以調整,以滿足頻寬指標。在一個示例中,緩衝器250和252可以包括靜態隨機存取記憶體(SRAM)。然而,可以相應地實現其他類型的記憶體以滿足特定實施的設計標準。通常地,各個快閃記憶體通道實現兩個交叉緩衝器。
參照圖8,示出了圖3的上下文管理器(CM)204的示例實施的示圖。上下文管理器(CM)204通常負責管理相應的快閃記憶體通道控制器(FLC)正在有效地處理的上下文。CM 204通常執行有效上下文的簿記。如前所述,上下文是向系統緩衝器提供快閃記憶體介質控制器(FMC)102執行快閃記憶體交易和DMA所使用的所有資訊的資料結構。CM 204管理FLC級別處的上下文,由此主要涉及與快閃記憶體交易有關的上下文管理。CM 204保持快閃記憶體操作管理器(FOM)對快閃記憶體通道上的快閃記憶體裸片執行命令和資料傳輸所用的資訊。
CM 204通常被配置為:(i)發起並執行各自的快閃記憶體通道控制器上的操作的階段,(ii)保持相應的快閃記憶體通道上的所有有效上下文的優先順序,(iii)保持相應的快閃記憶體通道上的各上下文的狀態,(iv)提供用於執行交易的上下文的臨時片上儲存的最小量(或將該量最小化)(例如,通過上下文快取記憶體224),(v)保持正在執行的處理中的各上下文的緩衝器指標,(vi)通過使用上下文狀態機(CSM)222確定下一狀態的上下文以為各上下文提供代理,(vii)保持目前正在執行的上下文的優先順序佇列(例如,上下文表220)中的最小的上下文資訊。上下 文佇列控制器226通常被配置為從上下文表220中移除已完成的上下文並且壓縮上下文表220,以消除間隙。
上下文佇列控制器(CQC)226是對上下文表(CT)220執行修改的邏輯塊。在一個示例中,CT220可以被實現為寄存器塊,其針對每個排隊上下文被組織成一個實體。CQC 226是對按照優先順序佇列組織的表執行操作的塊。CQC 226通常啟動和執行上下文處理,並負責對上下文表上執行處理。主要處理通常包括追加、等待、修改、配置和壓縮。處理由CQC 226進行發起和執行。
追加階段是FMC提取新上下文並將這些上下文的條目添加至上下文表220的階段。CQC 226檢查快閃記憶體上下文的內容以及由CPC 202提供的上下文資訊,並且基於內容和上下文資訊來追加和創建條目。在一個示例中、上下文表的條目可以包括表示上下文表的條目是否有效的位元(或標誌)、表示上下文的狀態的值、表示上下文快取記憶體索引的值、表示快閃記憶體操作值、表示快閃記憶體裸片的值、上下文指針、指示是否禁用資料傳輸的位元(或標誌)以及表示平面位址的值。新條目通常以“有效”位設置(例如,為“1”)以及被設置為“QUEUED”的“上下文狀態”的值開始。如果快閃記憶體操作是非法的,初始狀態可以被設置為值“ILLEGAL”,並且該上下文條目會在處理階段被刪除。通常,通過CQC 226所提供的上下文和資訊來確定其他欄位。新的條目通常都附加到壓縮的上下文表220的末尾。因此,CQC 226通常知道220上下文表的深度。
當CQC 226不再等待未完成的資料傳輸完成並且CQC 226在給定的快閃記憶體操作週期內已經試圖進行至少一次追加操作的時候,CQC226通常退出“追加”階段。當上下文表220或上下文快取記憶體224中不再有任何有效空間時,CQC 226還可以離開“追加”階段。
上下文管理器204在全快閃記憶體操作週期之間可以或可以不被強制等待。上下文管理器204通常能夠強制(enforce)最低快閃記憶體操作時期(例如,通過快閃記憶體操作週期寄存器)。例如,在快閃記憶體裡除了程式設計或擦除命令之後的輪詢以外基本上是閒置的情況下,這樣的最小週期是所期待的。在這種情況下,因為沒有追加或配置,所以上下文階段需要很短的時間來執行。因此,通道傾向於處於這樣的狀態,其中,通道為忙碌的連續輪詢快閃記憶體裸片(continuously polling flash die),從而在不應該有能量消耗時在快閃記憶體介面上消耗能量。CQC 226通常停留在等待階段,直到預定的時間已經過期(例如,時間可在“快閃記憶體操作計時器”寄存器中指定)。當預定的時間已過期時,CQC 226可以進入“修改”階段。
CQC發起的下一階段通常為“修改”階段。在修改階段,上下文表220基於由快閃記憶體操作管理器(FOM)執行的快閃記憶體操作以及通過來自資料路徑傳輸的結果而被修改。更新通常涉及到上下文的狀態並因此通常通過上下文狀態機(CSM)222發起。當狀態更新發生時,CSM 222發送更新狀態和上下文表索引至CQC 226。然後,CQC 226更新上下文表220中的條目。當FOM結束其快閃記憶體介面處理週期時,修改階段結束。FOM可通過發出一個 信號(例如,FOM_CM_FLASH_PROC_CMPLT)通知上下文管理器204快閃記憶體介面處理已完成。一旦修改階段完成,CQC 226可以對上下文表220上的上下文執行配置、壓縮和追加。在此期間,上下文表220對FOM是不可訪問的。CQC 226可通過在特定的時鐘週期內解除(de-assert)向FOM表示上下文表讀取條目和上下文快取記憶體讀取資料有效的信號(例如,CM_FOM_CT_VALID)的方式,使上下文表220對FOM是不可訪問的。
當修改階段完成後,CPC 202發起“配置”動作。配置動作將CQC 226置入CQC 226搜尋檢索已完成執行的條目的上下文表220的模式。CQC 226將條目是否已完成執行的確定建立在上下文狀態上。在上下文處於“完成”狀態時,上下文可由CQC 226配置。在一個示例中,上下文可以處於這樣的狀態,其中CQC 226正在等待來自資料路徑的有關上下文完成狀態的通知。例如,在讀取操作的情況下,上下文可以處於DATA_TRANSFER_DONE狀態中,並等待ECC校驗的結果。在這種情況下,CQC 226可以臨時暫停配置處理並等待從資料路徑返回的狀態。在此期間,CQC 226允許“追加”發生。然而,一旦等候狀態返回,上下文可由CQC 226配置,並且消耗的上下文記錄可以轉發給CPC 202(並最終到消耗上下文管理器(CCM)164)。
當CQC 226配置了上下文,CQC 226清除上下文表220相應的條目的“有效”位。這個過程一直持續到CQC 226已審閱了上下文表220中的每個上下文。當CQC 226到達上下文表220中的有效上下文的末尾時,配置階段完成。
已由CQC 226配置的上下文清除各自的表條目中的“有效”位。在沒有一個機制來移動該表以填滿空位(hole)的情況下,有效條目會在上下文表220中變得分散(或分段)。分散的上下文將使得上下文表難以掃描以及“追加”階段更為複雜。為了確保上下文表220保持其優先順序佇列的特徵,上下文表220可以被壓縮。在壓縮過程中,當CQC 226配置了上下文,CQC 226立即將被釋放的條目之後的所有條目上移一個位置。當該處理完成後,所有有效條目都在優先順序清單的前面並且所有的空位被移除。與其他動作的情況一樣,當壓縮過程完成時,CQC 226維護“完成”信號(或位元)。在最後壓縮階段結束之後,CQC 226可以開始追加階段。
CQC 226通常知道處理器的控制模式。在處理器控制模式中,整個CM 204暫停標準操作並且進入這樣的模式,其中,FLC的操作本質上被快閃記憶體操作管理器208中的奈米序列器246執行的“軟上下文”所驅動。軟上下文具有與標準快閃記憶體上下文不同的尺寸。在一個示例中,軟上下文可以包括全部的十五個32位雙字,然而“快閃記憶體上下文”,即FLC執行的全部介質上下文的部分,通常僅包括四個32位雙字。
通常,當處理器控制模式(PCM)的“快閃記憶體操作”欄位被設置為PROCESSOR_CONTROL_MODE的上下文出現在上下文佇列的頂部時,處理器控制模式(PCM)開始。通常,在上下文表220中,在PCM上下文後面應當沒有有效條目,因為一旦CQC 226對PCM上下文排隊,CQC 226應當暫停標準上下文的檢索。當PCM開始時,CQC 226可以經由信號(例如CM_CPC PROC_CNTL_MODE)通知CPC 202。回應於該通知,CPC 202可以取得在PCM上下文中的位置出現的“軟上下文”。從提供給FOM的角度來看,FOM通常不知道在上下文表220中存在PCM上下文,而PCM上下文是在上下文表220中的其他有效條目的後面。上下文表220中的PCM上下文條目將其“有效”位作為0提供給FOM,直到CM 204為FOM做好開始執行軟上下文的準備。
當FOM開始讀取軟上下文時,因為操作由儲存軟上下文的上下文快取記憶體224提供給FOM 208,CQC 226監視(snoop)操作。當操作涉及DMA上下文(例如預取資料,設置讀取資料緩衝器,或配置上下文指標)時,CQC 226在上下文表220中指定(co-opt)上下文表中現在未使用的儲存,並在上下文表中放置指針以用於跟蹤。在這些DMA上下文完成時,FOM 208通知上下文管理器204,其之後用標準方式配置上下文。
CQC 226在監視的同時,還尋找“取得下一軟上下文”操作。當CQC 226發現一個時,CQC 226保持至取得下一軟上下文的CPC 202的信號(例如CM_CQCPCM_NEXT_CONTEXT)。在FOM 208通知CM 204軟上下文執行已完成時,FOM 208在“FOM/CM”命令介面上通知CM 204。然後,CQC 226解除到CPC的信號(例如CM_CPC PROC_CNTL_MODE),然後,標準操作繼續。在一個示例中,CM_CPC PROC_CNTL_MODE可以被保持為表示CM 204已經進入處理器控制模式並且現在準備好接收軟上下文的信號的級別。
CQC 226的另一重要功能為監控超時情況。在一個示例中,CQC 226可以包括計數器,其被配置為對系統時鐘(SYS_CLK)週期的數量進行計數,使得同樣的上下文表的條目位於上下文表220的頂部(即,在條目0)。如果計數值達到一個可程式設計“超時”計數器的值,上下文表220頂端的條目可以被認為已經超時。當條目被認為已經超時時,條目可以從上下文表220中移除,上下文指標返回到消耗上下文介面上的上下文處理協調器(CPC)202。
上下文的返回狀態是兩個可能的“超時”狀態之一。在第一種情況中,超時會可能起因於這樣的情形,其中,快閃記憶體通道上的另一裸片忙碌並且正在降低R/B線。在這種情況下,狀態表示超時可能是起因於另一裸片的超時。在第二種情況中,上下文的裸片被視為事故原因(culprit)。在這裡,可以返回表示裸片是事故原因的不同狀態。
上下文表220本質上為條目的儲存介質。上下文表的深度是參數化的。例如,在能支持每通道十六個裸片)的晶片的情況下,可以實現十六個條目。如果每個裸片(die)可以管理一個以上的操作,增加深度可以是有利的。上下文表220有最小函數(minimal function)。CQC 226對上下文表220實現大部分更深入的處理。然而,可以通過多重讀取介面以及各個讀取介面的複用邏輯來實施上下文表220。在一個示例中,針對讀取訪問能力,可以通過FOM 208的介面以及到上下文狀態機(CSM)222的介面來實施上下文表220。上下文表220也可以具有到CQC 226的讀取介面。上下文表220也可以被處理器訪問。
上下文表220還具有用於表的壓縮階段的“移動(shift)”能力。除此之外,CQC 226可以使用簡單的寫入介面來更新上下文表220。在一個示例中,上下文表220可以在觸發器(flip-flop)中實施。當上下文表220在觸發器中實施時,不需要讀取訪問所需的仲裁。如果上下文表220的規模增加到超過大約1000個觸發器,上下文表220可以在寄存器堆或SRAM中實現,但還應當實現額外的管理和訪問仲裁。
上下文快取記憶體224是類似於上下文表220的另一上下文資料記憶元件。上下文快取記憶體224通常包括參數化的條目數。在一個示例中,條目的數量可以為八個。然而,可以實現其他數量的條目以達到特定實施方式的設計標準。例如,條目的數量可以被設置為比實際上是全流水線操作所需的數量多一個或兩個。數量通常應當被設置得足夠大,以允許在處理器控制模式中用於全“軟上下文”的足夠空間。如上所述,一個完全的上下文可以包括十五個32位雙字。全部介質上下文的子集稱為“快閃記憶體上下文”。快閃記憶體上下文通常是全部介質上下文的前四個雙字(或DWORD/雙字)。快閃記憶體上下文的四個雙字通常包含由FLC用來執行由固件指定的完整操作的所有資訊。在標準操作(例如,當FLC不處於處理器控制模式)中,只有快閃記憶體上下文的前兩個雙字儲存在上下文快取記憶體224。快閃記憶體上下文的其餘部分一般儲存在上下文表220中。
上下文快取記憶體224通常保持各個條目上的狀態。在一個示例中,狀態可以包括表示條目是空閒(FREE)還 是已用(USED)的位。在一個示例中,可以在上下文快取記憶體224中實現8個這樣的位。當快閃記憶體上下文被寫入到上下文快取記憶體224的位置時,位置的狀態變為USED。當CQC 226在狀態變換時接收到使位置清空的資訊時,位置狀態返回到FREE。在標準操作期間,上下文快取記憶體224基於狀態位元通知CQC 226上下文快取記憶體224具有空閒條目的空間。如果存在空閒的位置,CQC 226可自由地從CPC 202請求上下文。在CPC 202取得新的快閃記憶體上下文時,CPC 202將快閃記憶體上下文作為一串(a burst)32位元雙字資料提供給上下文快取記憶體資料224。當資料有效時,可以保持信號(例如CPC CM_ENQ_CTX_VALID)。上下文快取記憶體224將資料寫入空閒的位置。上下文快取記憶體224預期CPC 202將僅寫入一個快閃記憶體上下文。
在上下文表220頂端處的條目被表示為PROCESSOR_CONTROL_MODE操作的處理器控制模式中,上下文快取記憶體224應當是完全空閒的。在處理器控制模式中,上下文快取記憶體224應當預期從CPC 202接收軟上下文。上下文快取記憶體224也可以預期軟上下文包括15個雙字。實質上,上下文快取記憶體224用作從屬,接收由CPC 202提供的任何資料。CPC 202負責將適量資料寫入上下文快取記憶體224。上下文快取記憶體224對FOM 208是可訪問的,其在對快閃記憶體單元實現實際的命令時使用全部的快閃記憶體上下文資訊。EOM 208向32位雙字提供位址,並且上下文快取記憶體224在後續時鐘週期回應請求的雙字。在處理器控制模式期間,來自上 下文快取記憶體224的讀取回應被可以基於操作的內容實現行動的上下文佇列控制器(CQC)226監控。正如上下文表220,上下文快取記憶體224也可以通過處理機介面訪問。
FOM 208讀取來自上下文表220的條目並且執行操作。在執行操作之後,FOM 208更新上下文狀態機(CSM)222。CSM 222將該狀態儲存在上下文表220的特定條目中。FOM 208然後繼續執行下一條目等。在到達上下文的末尾之後,FOM 208回滾並且再一次執行條目以檢查執行的下一部分。執行上下文表220中的多條目的處理通常提供對快閃記憶體介面上的命令的流水線執行。快閃記憶體介面上的命令的流水線執行通常提供快閃記憶體介面的有效利用。通過一部分一部分地執行多個條目以及恢復上下文表220中的狀態,FOM 208提供比常規的技術更有效的快閃記憶體介面的利用。
參照圖9,該流程圖示出了示例處理300,通過該示例處理300,FOM 208可逐部分地執行多個條目並且恢復上下文表220的狀態。在一個示例中,過程(或方法)300可以包括步驟(或狀態)302、步驟(或狀態)304、步驟(或狀態)306、步驟(或狀態)308、步驟(或狀態)310、步驟(或狀態)312、以及步驟(或狀態)314。在步驟302,FOM 208可以檢查在上下文表220中是否有預定的條目數(例如,N)。預定的條目數N是可配置(例如,寄存器中的值等)。在一個示例中,數N可設定為四(4)。在另一示例中,數N可設置為十(10)。在N的設置值是10的示例中,處理300可以繼續停留在狀態302,直到在上下文表220中有10個條目。當在上下文表220中有10個條目,過 程300可以進行到步驟304。在步驟304中,FOM 208讀取上下文表220的1個條目並且執行命令的一部分。處理300然後移動到步驟306。在步驟306中,FOM 208更新該資訊至CSM 222,並且處理300移動到步驟308。在步驟308中,CSM 222更新資訊至上下文表220的一個條目,處理300移動至步驟310。在步驟310中,FOM 208讀取上下文表220下一個條目(例如,條目2),並執行命令的一部分。處理300然後移動至步驟312。在步驟312中,該處理重複步驟306到310,直到上下文表220條目達到10。當10個條目均已部分執行,處理300可移動至步驟314。在步驟314中,處理300可檢查是否所有的10個條目都已完成。如果還有條目有待完成,處理300返回至步驟304,其中,FOM 208回滾,檢查每個條目,並執行命令的任何剩餘部分,直到全部預定條目數都已經完成。
CSM的222一般配置為基於當前條目的狀態以及或者FOM 208執行的操作或者資料路徑操作的狀況來確定上下文表220中的各上下文的執行狀態。在修改階段中,每當FOM 208應用命令或返回結果時CQC 226調用CSM 222。FOM命令通知介面和FOM上下文表讀取介面的內容一般提供了CSM 222確定下一狀態所需的所有資訊。
在處置階段中,當CQC 226掃描上下文表220並且遇到處於上下文表條目為等待動作(action)的狀態的上下文表條目時,CQC 226調用CSM 222(例如,TRANSFER_DATA狀態或PREFETCH_DATA狀態)。當遇到TRANSFER_DATA狀態或PREFETCH_DATA狀態時,CQC 226根據資料傳輸狀況等待來自資料路徑(例如, DM、DDM、或者DTP)的資訊。無論哪種方式,通常調用CSM 222以對所關注的(in question)的上下文表條目確定下一狀態。當上下文表條目移動至完成狀態時(例如,COMPLETED或COMPLETED WITH ERROR(完成或帶錯完成)),CSM的222還負責通知裸片管理模組206。
參照圖10,該圖示出了上下文狀態機(CSM)400的示例實施。在一個示例中,在CSM 400可用於實施圖8的CSM 222。在一個示例中,CSM 400可包括狀態402、狀態404、狀態406、狀態408、狀態410、狀態412、狀態414、狀態416、狀態418、狀態420以及狀態422。狀態402可以包括上下文排隊狀態。狀態404可以包括讀取狀態。狀態404可以包括讀取完成狀態。狀態404可以包括傳輸資料狀態。狀態404可以包括資料傳輸完成狀態。狀態404可以包括預取資料狀態。狀態404可以包括程式快閃記憶體狀態。狀態404可以包括回拷程式狀態。狀態404可以包括等待就緒狀態。狀態404可以包括完成狀態。狀態404可以包括帶錯完成狀態。一旦追加階段已經完成並且上下文管理器(CM)204等待了適當的時間(例如,或者為所有未完成的資料傳輸的完成或者為經過最小“快閃記憶體操作期”的時間),上下文表220已準備好被快閃記憶體操作管理器(FOM)208用於選擇應用於快閃記憶體通道的命令和資料傳輸。當應用這些命令時,FOM 208通知CM 204並且CM 204適當地修改受影響的條目。因為對快閃記憶體串列(serially)地執行命令,對上下文狀態的更新也是串列的,因此,分離的、併發的硬體狀態機條目對上下文表條目是不需要的。條目可以共用CSM 400的單個實例。只 有狀態資訊需要儲存,並且使用當前狀態資訊和命令/狀況(status)資訊,可以確定狀態轉換。
參考圖11,該時序圖示出了圖8的快閃記憶體操作管理器(FOM)上下文表訪問介面的示例讀取時序。可以在上下文緩存介面上對快閃記憶體操作管理器(FOM)實施類似時序。
參照圖12,該圖示出了圖3和圖5的裸片管理模組的示例實施方式。裸片管理模組(DMM)206一般負責保持用於操作快閃記憶體通道控制器(FLC)的基於裸片的資訊。在一個示例中,DMM 206可以包括塊(或電路)230、塊(或電路)232以及塊(或電路)234。塊230可以實施狀態機裸片(DIE FSM)。block_232可以實施裸片服務仲裁器。block_234可以實施裸片管理表。DMM 206一般被配置為管理裸片管理表234中的每個裸片的資訊,仲裁裸片之間上下文表220排隊的訪問,使用裸片狀態機230更新裸片狀態,並且執行/監控多裸片操作。DMM的206一般負責快閃記憶體命令,包括但不局限於:READ、COPYBACK READ/COPYBACK WRITE、BLOCK ERASE以及PAGE PROGRAM。DMM的206也可以是負責目標級別的命令,包括但不限於:READ ID、READ PARAMETER PAGE、GET FEATURES、SET FEATURES、SYNCHRONOUS RESET以及RESET。
在一個示例中,裸片管理模組(DMM)206可以具有對上下文處理協調器(CPC)202的介面(例如,CPC INTF)對上下文管理器(CM)204的介面(例如,CM INTF),以及處理器介面(例如,UP INTF)。CPC和CM介面可以包 括但不僅限於下列信號:(i)CPC請求上下文的指針,(ii)指示DMM DSA已完成仲裁(iii)指示上下文指針是否有效,(iv)指示獲得(winning)裸片的上下文指針,(v)指示獲獎裸片的數目,(vi)為獲獎裸片的下一個指標和命令類型而更新裸片管理表234,以及(vii)使裸片管理模組206更新裸片管理表,並設置相應的裸片狀況為自由(釋放free)。處理器介面可以包括,但不僅限於下列信號(i)寄存器寫入選通(strobe)(例如,上下文下一指針、上下文結束指針、上下文提取啟用、等)、(ii)處理器資料匯流排、(iii)上下文下一指針寄存器值、(iv)上下文結束指針寄存器值(v)上下文提取啟用寄存器值、(vi)裸片狀況、以及(vii)控制多模操作。
一般地,裸片管理表234儲存每個裸片的資訊,包括上下文連結表指標,狀況位元,通過分享他們的目標的其他裸片的選擇,而“舉行(hold off)”的裸片累計信用(credit)。每個裸片在裸片管理表234都有一個條目,其中,在其中一個示例,其欄位包括上下文下一指標、上下文結束指針、上下文提取啟用、信用計數和狀態向量。上下文下一指標一般是上下文連結表中將要執行的下一個上下文指標。上下文指標由處理器初始化設置,然後在上下文被提取時由硬體更新。上下文末端指標一般是裸片的上下文佇列連結表中的最後的指標。上下文末端指針一般由處理器設置。上下文提取啟用欄位通常被處理器用於啟用由硬體進行的上下文的提取和執行的自動化。信用計數欄位通常包含表示裸片由於“鎖定”狀況所造成的信用數目的值,其中,在“鎖定”狀況中,目標上的其他裸片因串列讀 取或一些其他的命令而排隊使得該裸片被禁止選中。狀態向量欄位通常保持著控制器的角度來看的裸片狀態。也就是說,狀態向量欄位不一定是裸片的RDY/ARDY狀態,而是一個包含裸片服務仲裁器232中的仲裁和上下文管理器204中的上下文狀態機222所需的當前操作有關的附加資訊的狀態向量。
上下文的指針和上下文末端指針一般被處理器用於建立將由FLC執行的上下文連結表。在上下文被提取後,由硬體更新上下文指標。當下一指標和尾指標都相等時,佇列被硬體認為對裸片是空的。處理器可以通過簡單的修改上下文末端指標來為裸片添加到連結表。
狀態向量的欄位可以包括目標忙、命令類型以及裸片忙(Die Busy)。目標忙欄位通常表示各自的裸片正在進行(或排隊)掛起多裸片命令操作的操作,即共用目標的其他裸片無法進行命令排隊。READ和COPYBACK命令往往屬於此類。所有目標級別的命令一般使位被設置。命令類型欄位通常表示應用於快閃記憶體的最後一次操作型。在一個示例中,允許值可以包括NONE、READ、PROGRAM、ERASE、COPYBACK和其他。其他的值一般是指目標級別的操作。命令類型欄位通常在上下文被取出時被更新。在一個示例中,裸片忙欄位可以實施為具有第一狀態或(例如,邏輯'0')狀態第二狀態(例如,邏輯'1')的信號(semaphore)位元。裸片忙欄位通常表示目前裸片處於(involved)哪個處理階段。在一個示例中,裸片忙欄位可以實施為如下定義的值,
0:FREE-操作已完成,裸片是完全空閒的(例如,一個READ命令可以使已完成,但裸片不為空閒,直到資料已經傳輸以後)。
1:BUSY(忙)。
在上下文處理流的追加階段中,可調用裸片服務仲裁器(DSA)232以選擇一個裸片,該裸片將具有選自連結表以用於執行的上下文。在一個示例中,DSA 232可使用兩級仲裁策略。第一級仲裁可以根據裸片管理表234中的信用計數欄位。例如,具有最高信用的裸片將贏得仲裁。對所有裸片,初始信用計數可以被設置為零。然後如果裸片在輪循(round-robin)階段獲勝但因為多裸片操作限制而被抑制,則由硬體增加信用計數。第二級仲裁可以使用輪循法來確定接下來將要服務的裸片。DSA 232可以從第一裸片開始循序搜尋全部目標,然後迴圈全部目標,這次使用第二個裸片。如果選定的裸片在其連結表中具有上下文(例如,上下文下一指標不等於上下文末端指針,並且上下文提取啟用被設置為1),該上下文指標可以被發送到上下文程序控制器(CPC)202。
類似於上下文管理器204,裸片管理模組206包括為每個裸片管理上面提到的狀態的裸片狀態機(DIE FSM)230。通常,存在一個裸片狀態機230的實例。因為在任何給定的時間點只有一個裸片在不斷發生狀態變化,裸片狀態機230示例通常被所有裸片所共用。裸片狀態機230監控來自上下文管理器(CM)204的裸片狀況信號,並且相應地更新裸片管理表234。
有的時候,裸片可以準備好接受操作,但共用目標的另一裸片可能忙於不允許多裸片操作的操作。如果發生該情況,裸片被“授權”操作,並且只要“鎖定”條件被其他裸片移除則該裸片將獲得優先順序。目標一般由一個晶片啟用信號(例如,CE #)控制。目標通常被組織成一個或多個邏輯單元(LUN裸片)。例如,當一個裸片處於讀取命令處理中,不會有命令發佈到共用同一晶片啟用的第二裸片。這種限制源於第一裸片讀/忙(READ/BUSY)狀態是不確定的事實。即使在對第二裸片執行READ PAGE命令之前立刻要讀取第一裸片的狀態,並且情況為BUSY,經過READ PAGE命令被應用至第二裸片的時間,它可以變成就緒(READY)。該問題的原因是,當裸片為忙(BUSY)時,它不會在CE啟用時主動地“聽”命令/位址匯流排。但是,當裸片為就緒,它開始“聽”。當裸片聽時,即使命令不是朝向所關注(in question)的裸片,裸片也儲存命令的位址。然後該位址被用於選擇有效的平面(plane)。這樣,當最終從裸片的頁寄存器傳輸資料時,可能無意地從錯誤的平面頁寄存器傳輸資料。為了確保沒有這樣的問題,當一個裸片處於READ PAGE(或COPYBACK)交易中時,多裸片訪問是不允許的。
以下的目標級別命令一般使目標忙(target_busy)位元被設置為READ ID、READ PARAMETER PAGE、GET FEATURES、SET FEATURES、SYNCHRONOUS RESET和RESET。通常,在目標為忙時,其他的命令不發佈到目標。在實施ONFI 2.0介面時,該規則存在例外。根據ONFI 2.0,快閃記憶體命令RESET在被訪問的LUN為忙碌時是可接 受的,而SYNCHRONOUS RESET在其它LUN為忙時是可接受的。當實施ONFI 2.0介面時,根據本發明實施方式而實施的快閃記憶體介質控制器可以進行程式設計,以允許即使目標為忙也發佈RESET和SYNCHRONOUS RESET。在一個示例中,DSA 232可配置為當兩個或兩個以上的裸片共用目標時,通過檢查每個目標寄存器裸片數的值而識別(recognize)。在另一示例中,可對每個DMM支持的快閃記憶體命令實施寄存器中的多裸片啟用位。
在一個示例中,裸片管理裸片模組的操作可如下進行。固件對要執行上下文(S)的裸片載入“上下文指針”寄存器和“指針末端上下文”寄存器至裸片管理表(DMT)234。固件具有完全對裸片管理表234的完全訪問,固件負責為所有裸片初始地構造表。固件通過對裸片設置DMT 234中的“上下文提取啟用”位,使操作在裸片上開始。當裸片仲裁器(DSA)232選擇裸片去服務並看到裸片具有不同的下一指標和結束指標以及“上下文提取啟用”位被設置時,裸片服務仲裁器(DSA)232發送帶有上下文指標的提取請求至FLC 202中的上下文程序控制器(CPC)。FLC中的CPC 202發送提取請求和指標至上下文提取仲裁器(CFA)160。上下文檢索埠(CRP)166檢索上下文並轉發FLC需要的上下文的部分至CFA 160,其轉發該部分至CPC 202。CPC 202通知裸片管理模組(DMM)206,其更新裸片管理表(DMT)234中的裸片狀態。DMT 234中的上下文指標欄位基於提取的上下文而被更新。同時,裸片狀態機(DSA)230監控上下文管理器204的裸片運行狀況,並相應地更新DMT 234。
根據本發明實施方式的快閃記憶體介質控制器(FMC)的主要子模組是快閃記憶體通道控制器(FLC)。快閃記憶體通道控制器基本上是一個獨立的快閃記憶體通道控制器。FLC的多產生實體由FMC管理。在單一快閃記憶體通道上,可以具有多個快閃記憶體目標,並且在各個快閃記憶體目標中可以存在多個邏輯單元號(LUN)。每個LUN能夠獨立地執行快閃記憶體交易。快閃記憶體通道控制器被配置為借助於裸片管理模組(DMM)和上下文管理器(CM)而流水線化快閃記憶體交易。由於流水線作業的性質,有必要跟蹤和發佈管道快閃記憶體命令,其由DMM和CM負責。在本發明的一個實施方式中,快閃記憶體介質控制器結構中的裸片管理表和上下文管理器硬體總體上有助於獲得快閃記憶體介面利用的最大化。
正如相關領域技術人員所顯而易見的,圖1到圖12所示的功能可以使用一個或多個傳統的通用處理器、數位式電腦、微處理器、微控制器、RISC(精簡指令集電腦)處理器、CISC(複雜指令集電腦)處理器、SIMD(單指令多資料)處理器、數位訊號處理器、中央處理單元(CPU)、算數邏輯單位(ALU)、視頻數位訊號處理器(VDSP)和/或類似電腦來實現,並且可以根據本說明書的教導進行程式設計。還正如相關領域技術人員所顯而易見的,熟練的程式設計員可以基於本發明的說明來編制合適的軟體、固件、編碼、程式設計、指令、操作碼、微碼、和/或程式設計模組。軟體通常從一個中等或多個介質中由機器實施的一個或多個處理器來執行。
本發明也可以通過ASIC(專用積體電路)、平臺ASIC、FPGA(現場可程式設計閘陣列)、PLD(可程式設計邏輯器件)、CPLD(複雜可程式設計邏輯器件)、海量門(sea-of-gates)、RFIC(射頻積體電路)、ASSP(特定應用標準產品)、一個或多個單片積體電路、排列為倒裝晶片(flip-chip)模組和/或多晶片模組的一個或多個晶片或裸片、或與常規部件電路網路適當互連的晶片的準備方式而實現,如本文所描述的,其修改對於本領域技術人員是顯而易見的。
因此,本發明還可以包括電腦產品,其可以是包括指令的儲存介質和/或傳輸介質,其中,該指令可用於對機器程式設計以執行一個或多個根據本發明的處理或方法。由機器進行的電腦產品中所含指令的執行,隨著周圍電路的操作,可以將輸入資料轉換成儲存介質上的一個或多個檔,和/或轉換成表示物理物件或物質的諸如音訊和/或視覺描述(depiction)的一個或多個輸出信號。儲存介質可以包括但不僅限於軟碟、硬碟、磁片、光碟、CD-ROM DVD和磁光碟的任何類型的圓盤,諸如ROM(唯讀取記憶體)、RAM(隨機存取記憶體)、EPROM(可擦除可程式設計ROM)、EEPROM(電可擦除可程式設計ROM)、UVPROM(紫外線可擦除可程式設計ROM)、快閃記憶體、磁卡、光卡的電路,和/或任何合適的用於儲存電子指令的介質類型。
本發明的元件可以形成一個或多個裝置、單元、部件、系統、機器和/或裝置的一部分或全部。這些裝置可以包括但不限於伺服器、工作站、儲存陣列控制器、儲存系統、 單個電腦、筆記型電腦、筆記型電腦、掌上型電腦、單個數位助理、可擕式電子器件、電池供電器件、機上盒編碼器、解碼器、轉碼器、壓縮機、解壓縮、前置處理器、後處理器、發射器、接收器、收發器、密碼電路、蜂窩電話、數碼相機、定位和/或導航系統、醫療器件、頭戴式顯示器、無線器件、錄音、音訊儲存和/或音訊播放機件、錄影、視頻儲存和/或視頻播放機件、遊戲平臺、週邊器件和/或多晶片模組。相關領域技術人員應當瞭解,本發明的元件可以在其他類型的裝置中實現,以滿足特定應用的標準。
儘管本發明已參考其優選實施方式進行了特別說明和描述,但是相關領域技術人員應當理解,在不背離本發明的範圍的前提下可以在形式和細節上進行各種變化。
102‧‧‧塊(或電路)
150‧‧‧塊(或電路)
152‧‧‧塊(或電路)
154‧‧‧塊(或電路)
156‧‧‧塊(或電路)
158‧‧‧塊(或電路)
160‧‧‧塊(或電路)
162‧‧‧塊(或電路)
164‧‧‧塊(或電路)
166‧‧‧塊(或電路)
168‧‧‧塊(或電路)
170‧‧‧塊(或電路)
172‧‧‧塊(或電路)
174‧‧‧塊(或電路)
200‧‧‧快閃記憶體通道控制器結構的塊
202‧‧‧塊(或電路)
204‧‧‧塊(或電路)
206‧‧‧塊(或電路)
208‧‧‧塊(或電路)
210‧‧‧塊(或電路)
212‧‧‧塊(或電路)
214‧‧‧塊(或電路)
220‧‧‧上下文表
222‧‧‧上下文狀態機
224‧‧‧上下文快取記憶體
226‧‧‧上下文佇列控制器
230‧‧‧裸片狀態機
232‧‧‧裸片服務仲裁器
234‧‧‧裸片管理表
240‧‧‧命令仲裁器
242‧‧‧資料傳輸仲裁器
244‧‧‧快閃記憶體操作格式化器
246‧‧‧奈米序列器
250‧‧‧交叉緩衝器
252‧‧‧交叉緩衝器
400‧‧‧上下文狀態機
圖1是示出了在單晶片系統(SOC)環境中實現的快閃記憶體介質控制器的框圖。
圖2是示出了根據本發明實施方式的示例快閃記憶體介質控制器(FMC)結構的框圖。
圖3是示出了根據本發明實施方式的示例快閃記憶體通道控制器結構的框圖。圖4是示出了圖3的上下文管理器模組的示例子模組的示圖。
圖5是示出了圖3的裸片管理模組的示例子模組的示圖。
圖6是示出了圖3的快閃記憶體操作管理器模組的示例子模組的示圖。
圖7是示出了圖3的資料流程管理器模組的示例子模組的示圖。
圖8是示出了實現了圖3的上下文管理器模組的示例子模組的示圖。
圖9是示出了圖8的上下文表中的條目的流水線執行的流程圖。
圖10是示出了圖8的上下文狀態機的示例實施方式的示圖。
圖11是示出了在圖8的快閃記憶體操作管理器(FOM)上下文表訪問介面上的示例讀取時序的時序圖。
圖12是示出了圖3的裸片管理模組實現的示圖。
102‧‧‧塊(或電路)
150‧‧‧塊(或電路)
152‧‧‧塊(或電路)
154‧‧‧塊(或電路)
156‧‧‧塊(或電路)
158‧‧‧塊(或電路)
160‧‧‧塊(或電路)
162‧‧‧塊(或電路)
164‧‧‧塊(或電路)
166‧‧‧塊(或電路)
168‧‧‧塊(或電路)
170‧‧‧塊(或電路)
172‧‧‧塊(或電路)
174‧‧‧塊(或電路)

Claims (15)

  1. 一種裝置,包括:第一電路,被配置為保持用於快閃記憶體通道控制器(FLC)的操作的基於裸片的資訊;第二電路,被配置為管理正被所述快閃記憶體通道控制器(FLC)有效處理的上下文;以及第三電路,被配置為實施由所述第二電路管理的多個所述上下文的流水線執行。
  2. 如申請專利範圍第1項所述之裝置,其中所述第一電路包括裸片管理模組。
  3. 如申請專利範圍第2項所述之裝置,其中所述裸片管理模組包括:裸片管理表;裸片狀態機,被配置為針對裸片操作狀態監控所述裝置的上下文管理器並更新所述裸片管理表;以及裸片服務仲裁器,被配置為選擇裸片,所述裸片將具有選自連結清單以用於執行的上下文。
  4. 如申請專利範圍第1項所述之裝置,其中所述第二電路包括上下文管理器。
  5. 如申請專利範圍第4項所述的裝置,其中所述上下文管理器包括:上下文表,儲存當前正被執行的上下文的優先順序佇列;上下文佇列控制器,被配置為從所述上下文表中移除完成的上下文並壓縮所述上下文表以消除間隙;上下文狀態機,被配置為確定所述上下文表中的每一上下文的執行狀態;以及 上下文快取記憶體,被配置為儲存所述上下文表中的每一快閃記憶體上下文的一部分。
  6. 如申請專利範圍第5項所述之裝置,其中所述上下文狀態機基於上下文條目的當前狀態以及資料路徑操作的狀況或由快閃記憶體操作管理器正執行的操作之一,來確定所述上下文表中的每一上下文條目的執行狀態。
  7. 如申請專利範圍第1項所述之裝置,其中所述第二電路主要涉及與快閃記憶體交易有關的上下文管理。
  8. 如申請專利範圍第1項所述之裝置,其中所述第三電路包括快閃記憶體操作管理器(FOM)。
  9. 如申請專利範圍第8項所述之裝置,其中所述第二電路保持由所述快閃記憶體操作管理器(FOM)實施對快閃記憶體通道上的快閃記憶體裸片的命令和資料傳輸的所述流水線執行所使用的資訊。
  10. 一種利用快閃記憶體介面的方法,包括:保持由快閃記憶體通道控制器(FLC)在與多個快閃記憶體器件交易時所使用的基於裸片的資訊;管理正被所述快閃記憶體通道控制器(FLC)有效處理的上下文;以及實施多個所述上下文的流水線執行。
  11. 如申請專利範圍第10項所述之方法,還包括:使用被配置為針對裸片操作狀態監控上下文管理器並更新裸片管理表的裸片狀態機來保持所述裸片管理表;以及從所述多個快閃記憶體器件中選擇裸片,其中,所述裸片具有選自連結清單以用於執行的上下文。
  12. 如申請專利範圍第10項所述之方法,還包括:保持儲存當前正被執行的上下文的優先順序佇列的上下文表;從所述上下文表中移除完成的上下文並壓縮所述上下文表以消除間隙;使用上下文狀態機確定上下文表中的每一上下文的執行狀態;以及將所述上下文表中的每一快閃記憶體上下文的一部分儲存在上下文快取記憶體中。
  13. 如申請專利範圍第12項所述之方法,其中確定所述上下文表中的每一上下文條目的執行狀態是基於所述上下文條目的當前狀態以及資料路徑操作的狀況或由快閃記憶體操作控制器正執行的操作之一。
  14. 如申請專利範圍第10項所述之方法,其中所述上下文與快閃記憶體交易有關。
  15. 如申請專利範圍第10項所述之方法,還包括:保持由快閃記憶體操作管理器(FOM)實施對一個或多個快閃記憶體通道上的所述多個快閃記憶體器件的命令和資料傳輸的流水線執行所利用的資訊。
TW101125548A 2011-07-14 2012-07-16 利用快閃記憶體介面的方法及裝置 TW201303870A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161507654P 2011-07-14 2011-07-14
US13/344,030 US20130019052A1 (en) 2011-07-14 2012-01-05 Effective utilization of flash interface

Publications (1)

Publication Number Publication Date
TW201303870A true TW201303870A (zh) 2013-01-16

Family

ID=46548247

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101125548A TW201303870A (zh) 2011-07-14 2012-07-16 利用快閃記憶體介面的方法及裝置

Country Status (6)

Country Link
US (1) US20130019052A1 (zh)
EP (1) EP2546756A3 (zh)
JP (1) JP2013025794A (zh)
KR (1) KR20130009928A (zh)
CN (1) CN103092781A (zh)
TW (1) TW201303870A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI788894B (zh) * 2021-06-29 2023-01-01 新唐科技股份有限公司 記憶體控制電路及快閃記憶體之抹除操作的控制方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9189435B2 (en) * 2013-04-23 2015-11-17 Apple Inc. Method and apparatus for arbitration with multiple source paths
US9508437B2 (en) * 2014-01-30 2016-11-29 Sandisk Technologies Llc Pattern breaking in multi-die write management
US9396032B2 (en) * 2014-03-27 2016-07-19 Intel Corporation Priority based context preemption
US20200089537A1 (en) * 2019-11-20 2020-03-19 Intel Corporation Apparatus and method for bandwidth allocation and quality of service management in a storage device shared by multiple tenants
JP2022049453A (ja) 2020-09-16 2022-03-29 キオクシア株式会社 送受信装置、ブリッジチップ、半導体記憶装置、および方法
CN114611453A (zh) * 2022-03-25 2022-06-10 中国电子科技集团公司第五十八研究所 一种复合制导微系统电路

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157963A (en) * 1998-03-24 2000-12-05 Lsi Logic Corp. System controller with plurality of memory queues for prioritized scheduling of I/O requests from priority assigned clients
CN100458751C (zh) * 2007-05-10 2009-02-04 忆正存储技术(深圳)有限公司 并行闪存控制器
US7870351B2 (en) * 2007-11-15 2011-01-11 Micron Technology, Inc. System, apparatus, and method for modifying the order of memory accesses
KR101486987B1 (ko) * 2008-05-21 2015-01-30 삼성전자주식회사 불휘발성 메모리를 포함하는 반도체 메모리 장치 및 불휘발성 메모리를 위한 커맨드 스케줄링 방법
US8205037B2 (en) * 2009-04-08 2012-06-19 Google Inc. Data storage device capable of recognizing and controlling multiple types of memory chips operating at different voltages
US8200857B2 (en) * 2009-11-30 2012-06-12 Lsi Corporation Coalescing multiple contexts into a single data transfer in a media controller architecture
US8495332B2 (en) * 2009-07-24 2013-07-23 Apple Inc. Controller for optimizing throughput of read operations
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US8289801B2 (en) * 2009-09-09 2012-10-16 Fusion-Io, Inc. Apparatus, system, and method for power reduction management in a storage device
GB2488259A (en) * 2009-12-11 2012-08-22 Ibm Flash memory controller
US8595411B2 (en) * 2009-12-30 2013-11-26 Sandisk Technologies Inc. Method and controller for performing a sequence of commands
US8468318B2 (en) * 2010-09-15 2013-06-18 Pure Storage Inc. Scheduling of I/O writes in a storage environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI788894B (zh) * 2021-06-29 2023-01-01 新唐科技股份有限公司 記憶體控制電路及快閃記憶體之抹除操作的控制方法

Also Published As

Publication number Publication date
EP2546756A3 (en) 2013-10-09
KR20130009928A (ko) 2013-01-24
EP2546756A2 (en) 2013-01-16
CN103092781A (zh) 2013-05-08
US20130019052A1 (en) 2013-01-17
JP2013025794A (ja) 2013-02-04

Similar Documents

Publication Publication Date Title
EP2546757B1 (en) Flexible flash commands
EP2546755A2 (en) Flash controller hardware architecture for flash devices
TWI278755B (en) An apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine
US7743191B1 (en) On-chip shared memory based device architecture
US7523228B2 (en) Method for performing a direct memory access block move in a direct memory access device
US8806112B2 (en) Meta data handling within a flash media controller
TW201303870A (zh) 利用快閃記憶體介面的方法及裝置
US9690720B2 (en) Providing command trapping using a request filter circuit in an input/output virtualization (IOV) host controller (HC) (IOV-HC) of a flash-memory-based storage device
JP4931828B2 (ja) ライン・アクセスおよびワード・アクセスの結合を用いてメモリをアクセスするためのシステムおよび方法
EP3884386A1 (en) Programming and controlling compute units in an integrated circuit
KR20220103931A (ko) 메모리와 분산된 계산 어레이 간의 데이터 전송
US20120303840A1 (en) Dma data transfer mechanism to reduce system latencies and improve performance
CN116414743A (zh) 用于控制存储器的方法、存储器控制器及芯片
Wang Analysis of NIC and Test of PCI Multi-Bus Simulator