TW201502775A - 使用與低級可程式設計定序器結合的通用可程式設計處理器的非易失性記憶體通道控制 - Google Patents

使用與低級可程式設計定序器結合的通用可程式設計處理器的非易失性記憶體通道控制 Download PDF

Info

Publication number
TW201502775A
TW201502775A TW103104182A TW103104182A TW201502775A TW 201502775 A TW201502775 A TW 201502775A TW 103104182 A TW103104182 A TW 103104182A TW 103104182 A TW103104182 A TW 103104182A TW 201502775 A TW201502775 A TW 201502775A
Authority
TW
Taiwan
Prior art keywords
volatile memory
interface
control
square
memory device
Prior art date
Application number
TW103104182A
Other languages
English (en)
Other versions
TWI633433B (zh
Inventor
Christopher Brewer
Earl T Cohen
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 TW201502775A publication Critical patent/TW201502775A/zh
Application granted granted Critical
Publication of TWI633433B publication Critical patent/TWI633433B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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
    • 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
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Abstract

本公開涉及使用與低級可程式設計定序器結合的通用可程式設計處理器的非易失性記憶體通道控制。系統包含控制處理器、非易失性記憶體裝置介面和微定序器。控制處理器可以配置為通過命令介面接收命令和發送回應。非易失性記憶體裝置介面可以配置為將系統耦接至一個或多個非易失性記憶體裝置。微定序器一般耦接至(i)控制處理器和(ii)非易失性記憶體裝置介面。微定序器包含可由微定序器讀出並可由控制處理器寫入的控制存放裝置。回應於接收一個特定命令,控制處理器能夠使微定序器根據特定命令在控制存放裝置中的位置開始執行,微定序器能夠根據耦接至非易失性記憶體裝置介面的一個或多個非易失性記憶體裝置的協定,執行特定命令的至少一部分。

Description

使用與低級可程式設計定序器結合的通用可程式設計處理器的非易失性記憶體通道控制
本發明一般涉及記憶體系統,更具體而言,涉及用於實現使用與低級可程式設計定序器結合的通用可程式設計處理器的非易失性記憶體通道控制的方法和/或裝置。
常規的非易失性記憶體控制系統嘗試使用多個不同的協定來給予可以由系統使用的裝置的範圍靈活性。支援多個不同協定涉及用於每個預想類型的介面、以及用於每個要求的介面命令類型的專用的控制邏輯。依賴於用於每個介面協定的專用的控制邏輯不是非常靈活的方案,對於新的或者略改變的介面協定的版本需要昂貴的邏輯的重新設計。或者,中央處理器(CPU )可以被用於允許非易失性記憶體介面的一定靈活性的低級控制。然而,這對 CPU 施加了較高負擔,因此導致有限的性能。
理想的是實現使用與低級可程式設計定序器結合的通用可程式設計處理器的非易失性記憶體通道控制。
本發明涉及的系統包含控制處理器、非易失性記憶體裝置介面和微定序器。控制處理器可以配置為通過命令介面接收命令以及發送回應。非易失性記憶體裝置介面可以配置為將系統耦接至一個或多個非易失性記憶體裝置。微定序器一般耦接至(i )控制處理器和( ii )非易失性記憶體裝置介面。微定序器包含可由微定序器讀出並可由控制處理器寫入的控制存放裝置。回應於接收一個特定命令,控制處理器能夠使微定序器根據特定命令在控制存放裝置中的位置開始執行,微定序器能夠根據耦接至非易失性記憶體裝置介面的一個或多個非易失性記憶體裝置的協定,執行特定命令的至少一部分。
本發明包括的一個方面涉及一種系統,包括控制處理器、非易失性記憶體裝置介面和微定序器。控制處理器配置為通過命令介面接收命令和發送回應。非易失性記憶體裝置介面配置為將系統耦接至一個或多個非易失性記憶體裝置。微定序器耦接至( i )控制處理器和( ii )非易失性記憶體裝置介面。微定序器包括可由微定序器讀出並可由控制處理器寫入的控制存放裝置。回應於接收命令中的特定命令,控制處理器能夠使微定序器根據特定命令在控制存放裝置中的位置開始執行,並且微定序器能夠根據耦接至非易失性記憶體裝置介面的一個或多個非易失性記憶體裝置的協定,執行特定命令的至少一部分。
在上述方面的系統的一些實施方式中,非易失性記憶體裝置介面包括多個資料 I/O 引腳和多個控制 I/O 引腳。在實現控制 I/O 引腳和資料 I/O 引腳的一些實施方式中,微定序器能夠改變控制 I/O 引腳和資料 I/O 引腳的狀態,以根據協定執行特定命令。
在上述方面的系統的一些實施方式中,控制存放裝置被控制處理器程式設計為執行與附接到非易失性記憶體裝置介面的一個或多個非易失性記憶體裝置關聯的一個或多個協議。在一些實施方式中,控制處理器進一步配置為:初始賦能控制處理器將控制存放裝置程式設計為執行與多個類型的非易失性記憶體裝置相容的低速協定;以及隨後賦能控制處理器將控制存放裝置程式設計為執行與一個或多個非易失性記憶體裝置相容的更高速協定。
在一些實施方式中,上述方面的系統還包括輸出資料介面和輸入資料介面。輸出資料介面通過微定序器耦接至非易失性記憶體裝置介面,輸出資料介面包括輸出資料緩衝,輸出資料緩衝能夠接收要發送至非易失性記憶體裝置介面的資料。輸入資料介面通過微定序器耦接至非易失性記憶體裝置介面,輸入資料介面包括輸入資料緩衝,輸入資料緩衝能夠接收從非易失性記憶體裝置介面接收的資料。在一些實施方式中,微定序器進一步能夠( i )檢測輸入資料緩衝的滿狀態( full condition ),以及( ii )回應於檢測滿狀態,跳至控制存放裝置中的確定的位置。
在一些實施方式中,上述方面的系統是固態驅動器 SSD 裝置的一部分。
在一些實施方式中,上述方面的系統實現為一個或多個積體電路。
本發明還包括的一個方面涉及一種控制非易失性記憶體通道的方法,包括如下步驟:( i )通過耦接至控制處理器的命令介面,接收命令和發送回應;以及( ii )使用耦接至控制處理器的微定序器,開始執行在控制存放裝置中的位置處的指令,其中,位置由控制處理器根據接收的命令中的特定命令確定,其中,微定序器根據通過非易失性記憶體裝置介面耦接至微定序器的一個或多個非易失性記憶體裝置的協定,執行特定命令的至少一部分。
在一些實施方式中,上述方面的方法還包括:使用控制處理器將控制存放裝置程式設計為執行與附接到非易失性記憶體裝置介面的一個或多個非易失性記憶體裝置關聯的一個或多個協議。
在一些實施方式中,上述方面的方法還包括:初始賦能控制處理器將控制存放裝置程式設計為執行與多個類型的非易失性記憶體裝置相容的低速協定;以及隨後賦能控制處理器將控制存放裝置程式設計為執行與一個或多個非易失性記憶體裝置相容的更高速協定。
BEPU‧‧‧後端處理單元
BIB‧‧‧匯流排界面方塊
CE‧‧‧晶片賦能
CSR‧‧‧配置/狀態暫存器
DMA‧‧‧直接記憶體訪問
DQ NPL‧‧‧捕獲近墊邏輯
FIFO‧‧‧先進先出
HALT‧‧‧停止
HI‧‧‧高
LO‧‧‧低
IMP‧‧‧介面管理處理器
NMI‧‧‧不可遮罩中斷
PC‧‧‧程式計數器
REF CLK‧‧‧參考時鐘
SEU‧‧‧序列執行單元
100‧‧‧系統
101‧‧‧控制器
103、202、302‧‧‧主機
105‧‧‧非易失性記憶體媒體
107‧‧‧非易失性記憶體裝置
109‧‧‧非易失性記憶體管芯
110、112、124、134、150、152、154、156、158、160、161、163、165、167、169、170、172、176、178、180、194a、194b、196、198、216、218‧‧‧方塊(或者電路)
114‧‧‧命令緩衝(CB)
116‧‧‧輸出資料緩衝(ODB)
118‧‧‧回應緩衝(RB)
120‧‧‧輸入資料緩衝(IDB)
122‧‧‧CSR方塊
130‧‧‧控制單元(CU)
132‧‧‧低級非易失性記憶體介面(LFI)
174、182‧‧‧仲裁器
184‧‧‧隨機存取記憶體(RAM)
190‧‧‧定序器單元(LSU)
192a、192b、220‧‧‧DQ捕獲方塊
200‧‧‧序列執行單元
204‧‧‧索引暫存器
206‧‧‧輸出暫存器
208‧‧‧ZOL暫存器
210‧‧‧遞增器
212‧‧‧PC暫存器
214‧‧‧序列RAM
222‧‧‧時鐘傳輸方塊
224‧‧‧DQ近墊邏輯方塊
226‧‧‧DLL方塊
230‧‧‧延遲鎖定環路(DLL)
232‧‧‧控制有限狀態機(FSM)
234‧‧‧參考時鐘分割器
250‧‧‧近墊邏輯(NPL)
260、262‧‧‧觸發器
264‧‧‧組合(或者合併)邏輯
266‧‧‧多工器
300‧‧‧非易失性記憶體系統
304‧‧‧非易失性記憶體控制器子系統
306a、306b、306n‧‧‧非易失性記憶體媒體
310、312、314、316a、316b、316n‧‧‧方塊
本發明的實施例可以從下面的具體實施方式、所附的申請專利範圍和附圖得知,其中:
1 圖是示出依據本發明的實施例的非易失性記憶體控制系統的圖;
2 圖是示出依據本發明的實施例的介面管理處理器的圖;
3 圖是示出第 2 圖的輸出資料緩衝的示例實施方式的圖;
4 圖是示出第 2 圖的輸入資料緩衝的示例實施方式的圖;
5 圖是示出第 2 圖的控制單元的示例實施方式的圖;
6 圖是示出第 2 圖的低級( low-level )非易失性記憶體介面的示例實施方式的圖;
7 圖是示出第 6 圖的低級非易失性記憶體介面定序器單元的示例實施方式的圖;
8 圖是示出第 6 圖的 DQ 捕獲方塊的示例實施方式的圖;
9 圖是示出第 8 圖的 DQ 捕獲近墊邏輯( Near pad logic NFL )方塊的示例實施方式的圖;
10 圖是示出第 8 圖的 DLL 方塊的示例實施方式;
11 圖是示出輸出介面近墊邏輯方塊的示例實施方式的圖;
第12圖是示出依據本發明的實施例的具有多個通道的非易失性記憶體控制系統的圖。
本發明的實施例包含用於使用與低級可程式設計定序器結合的通用可程式設計處理器來實現非易失性記憶體(例如快閃記憶體等)通道控制的方法和/ 或裝置。本發明的實施例可以( i )耦接通用中央處理器( CPU )用於高級控制,並與可程式設計微定序器調度用於非易失性記憶體介面的低級控制;( ii )以由序列程式設計定義的方式,使用微定序器來提供由非易失性記憶體介面的時鐘週期控制的時鐘週期;( iii )能使微定序器被程式設計為處理任何計畫的非易失性記憶體介面;( iv )允許還沒有預想到的將來的非易失性記憶體介面的程式設計;( v )使用微定序器來提供指令,控制非易失性記憶體引腳輸出,控制資料輸出和資料捕獲,配置介面操作模式,和 / 或迴圈經由定義的序列達配置的次數(沒有招致管線延遲);( vi )使用微定序器提供能力來以可配置的方式處理資料饑餓以及資料回壓情況;( vii )實現 CPU 與微定序器之間的共用的記憶體來允許序列參數傳遞,以及微序列控制代碼容易更改;( viii )僅當序列完成或者遇到錯誤情況時,向微定序器傳遞請求來執行序列,並從微定序器產生回應;和 / 或( ix )釋放 CPU 以執行更高級調度、管理和決策。
參考第 1 圖,示出的圖例示依據本發明的實施例的非易失性記憶體控制系統 100 。在一些實施例中,非易失性記憶體控制系統 100 包括方塊 101 和方塊 103 。方塊 101 可以實現記憶體通道控制器,還被稱為介面管理處理器( IMP )。方塊 103 可以實現控制器主機。控制器 101 可以配置為控制一個或多個個體非易失性記憶體通道。在一些實施例中,可以實現控制器 101 的多個實例以控制多個非易失性記憶體通道。控制器 101 具有配置為接收命令並發送回應給主機 103 的命令介面。主機 103 可以包括例如後端處理單元( BEPU )。在實現多個非易失性記憶體通道的實施例中,主機 103 還包含多工電路,該多工電路將控制器 101 的多個實例耦接至 BEPU 。在一些實施例中,主機 103 是諸如固態硬碟( SSD )控制器的 I/O 裝置控制器, BEPU 是控制器提供多個非易失性記憶體裝置(諸如 NAND 快閃記憶體非易失性記憶體晶片)的調度和 / 或資料管理的部分。在此外的實施例中, BEPU 包括資料緩衝和直接記憶體訪問( DMA )引擎( engine )來儲存資料或者其他資訊,並將資料或者其他資訊在主機 103 和控制器 101 之間移動。
控制器 101 還具有配置為將系統 100 耦接至非易失性記憶體媒體 105 的非易失性記憶體介面。非易失性記憶體媒體 105 可以包括一個或多個非易失性記憶體裝置 107 。在一些實施例中,非易失性記憶體裝置 107 具有一個或多個非易失性記憶體管芯 109 。根據特定一個非易失性記憶體裝置 107 的類型,特定非易失性記憶體裝置 107 中的多個非易失性記憶體管芯 109 可選地和 / 或選擇性地並行可訪問。非易失性記憶體裝置 107 一般代表能夠通信地耦接至控制器 101 的存放裝置的一個類型。然而,在各種實施例中,可用任何類型的存放裝置,諸如 SLC (單級單元) NAND 快閃記憶體記憶體、 MLC (多級單元) NAND 快閃記憶體記憶體、 TLC (三級單元) NAND 快閃記憶體記憶體、 NOR 快閃記憶體記憶體、唯讀記憶體( Rom )、靜態隨機存取記憶體( SRAM )、動態隨機存取記憶體( DRAM )、磁阻隨機存取記憶體( MRAM )、鐵磁記憶體(例如 FeRAM F-RAM FRAM 等)、相變記憶體(例如 PRAM PCRAM 等)、賽道( racetrack )記憶體(或者疇壁記憶體( DWM ))、電阻隨機存取記憶體( RRAM 或者 ReRAM )、或者任何其他類型的記憶體裝置或者儲存媒體。
在一些實施例中,控制器 101 和非易失性記憶體媒體 105 在分離的積體電路上實現。當控制器 101 和非易失性記憶體媒體 105 在分離的積體電路(或者裝置)上實現時,控制器 101 的非易失性記憶體介面一般能夠管理多個資料登錄 / 輸出( I/O )引腳和多個控制 I/O 引腳。資料 I/O 引腳和控制 I/O 引腳可以配置為將含有控制器 101 的裝置連接至外部裝置,該外部裝置形成非易失性記憶體媒體 105
參考第 2 圖,示出的圖例示依據本發明的實施例的控制器 101 的實施方式。在一些實施例中,控制器 101 實現介面管理處理器( IMP )。在一些實施例中,控制器 101 包括方塊(或者電路) 110 、方塊(或者電路) 112 、方塊(或者電路) 114 、方塊(或者電路) 116 、方塊(或者電路) 118 、方塊(或者電路) 120 、方塊(或者電路) 122 和方塊(或者電路) 124 。方塊 110 一般實現矽邏輯和韌體,配置為以可配置、靈活和可擴展的方式控制多個非易失性記憶體裝置。方塊 112 實現匯流排界面方塊( BIB )。方塊 114 實現命令緩衝( CB )。方塊 116 實現輸出資料緩衝( ODB )。方塊 118 實現回應緩衝( RB )。方塊 120 實現輸入資料緩衝( IDB )。方塊 122 實現配置 / 狀態暫存器( CSR )方塊。方塊 124 實現同步方塊。
匯流排界面方塊( BIB 112 處理向後端處理單元(例如主機 103 )以及來自後端處理單元的通信。 BIB112 處理通過輸出匯流排(例如 OB )從 BEPU 接收的低級資料鏈接命令,將命令和資料傳遞給命令緩衝 114 和輸出資料緩衝 116 BIB112 還通過輸入匯流排(例如 IB ),將來自響應緩衝( RB 118 的命令回應和來自輸入資料緩衝( 1DB 120 的輸入資料發送至後端處理單元。命令緩衝( CB 114 將輸出匯流排字積累為硬體控制埠( HCP )雙字,並將 HCP 雙字饋送至 CU130 。術語雙字( dword double-word )代表單個週期中的資料傳輸的單位(例如 8 個位元組)。響應緩衝( RB 118 CU130 獲取 HCP 雙字,將 HCP 雙字拆散為多個輸入匯流排字,並將多個輸入匯流排字發送至 BIB112 。在一些實施例中, HCP 雙字包括在 BEPU CU130 之間發送的消息。例如, BEPU 將消息發送至 CU130 ,以向由 CU130 維持的工作的佇列增加非易失性記憶體裝置訪問操作,且 CU130 將表明操作完成和 / 或操作的狀態的消息發送回 BEPU 。在此外的實施例中,來自 BEPU 的消息包括與操作的資料傳輸關聯的各個標籤, CU130 能夠使用標籤來啟動抓取要寫入至非易失性記憶體裝置的資料,或者表明用於從非易失性記憶體裝置讀出的資料的操作特定的目的地。
CSR 方塊 122 位於系統 100 CSR 環上。 CSR 方塊 122 通過 CSR 方塊 122 的暫存器提供對介面管理處理器( IMP )資訊的訪問並配置 IMP 操作。例如, CSR 方塊 122 的暫存器能使 CU130 運行,提供 CU130 操作的狀態,啟動控制器 101 的調試和 / 或診斷特性,以及其他管理訪問特性。 CSR 環可以使用任何多個匯流排規範(例如 PalmBus AMBA AHB 等)來實現。在各種實施例中,多個(例如 2 個)優先順序中斷信號和停止信號(例如 HALT/INTR )可以發送給後端處理單元。後端處理單元可以配置為將優先權中斷信號和停止信號同步至核心域。方塊 124 可以配置為將全域停止輸入(例如 HALT IN )同步至控制器 101 的時鐘域。同步的全域停止輸入在 CSR 控制下,然後可以使控制器 101 停止。
方塊 110 一般包括控制單元( CU 130 和低級非易失性記憶體介面( LFI 132 CU130 一般包括通用中央處理器( CPU )。 LFI132 包括低級可程式設計微定序器。 CU130 LFI132 的低級可程式設計微定序器由共用的記憶體(例如由方塊 134 代表)緊密耦接。 CU130 LFI132 的低級可程式設計微定序器能夠控制連接至一個或多個非易失性記憶體裝置(例如第 1 圖的非易失性記憶體媒體 105 )的系統輸出和輸入(例如 NVM I/O )。 CU130 可以從整個系統控制器接收命令,負責( i )做出將什麼命令發出給 LFI132 的低級可程式設計微定序器的決定;( ii )控制進 / 出中心系統資料倉庫的資料的流;( iii )處理潛在的錯誤狀況;以及( iv )發送回應給整個系統控制器以表明命令的完成。
LFI132 的低級可程式設計微定序器可以配置有程式來定址並控制附接的特定類型的非易失性記憶體裝置。 LFI132 的低級可程式設計微定序器因此可以從 CU130 提取有關特定非易失性記憶體介面協定的細節,並向 CU130 提供更高級的序列調用。 CU130 LFI132 的低級可程式設計微定序器和用於它們的程式一般允許整個系統控制器向高級的非易失性記憶體控制器 101 發出命令。用於 CU130 的程式處理更高級命令的調度(例如對於一個或多個非易失性記憶體裝置而言),將更高級命令拆散為低級命令,將低級命令發出給 LFI132 的低級可程式設計微定序器。當命令完成時,程式向 BEPU 控制器發出回應。這免除了 BEPU / 或主機 103 的其他處理器必須處理非易失性記憶體介面的細節的操作。由於導入了新的非易失性記憶體裝置,通過僅僅開發用於 CU130 LFI132 的低級可程式設計微定序器的新的程式,新的裝置可使用上述靈活樣式的方案。
LFI132 能夠檢測諸如由於當從非易失性記憶體媒體接收資料時的回壓導致的資料中斷,或者當發送資料給非易失性記憶體媒體時的資料缺失。 LFI132 的低級可程式設計微定序器還可以擺脫程式設計迴圈以進入例外狀態。在例外狀態下, LFI132 的低級可程式設計微定序器可以在第一模式下,檢測資料的恢復並繼續操作;或者在第二模式下,中斷 CU130 以具有操作的更高級的重新開始。在第二模式下, CU130 可訪問由 LFI132 的低級可程式設計微定序器傳輸的資料的量,並例如可以調節位址和 / 或長度,來從暫停了資料傳輸的點重新開始資料傳輸。
CU130 解釋介面管理處理器命令並提供回應。 CU130 還可以訪問輸入資料緩衝和輸出資料緩衝並控制 LFI132 LFI132 訪問並控制非易失性記憶體 I/O 、序列命令、序列資料輸出,並捕獲資料返回。 CU130 的大部分功能以韌體實現,以允許靈活性並支持將來的非易失性記憶體類型。
參考第 3 圖,示出的圖例示第 2 圖的輸出資料緩衝( ODB 116 的示例實施方式。在一些實施例中, ODB116 包括方塊(或者電路) 150 、方塊(或者電路) 152 、方塊(或者電路) 154 、方塊(或者電路) 156 和方塊(或者電路) 158 。方塊 150 一般實現控制介面。方塊 152 一般能夠執行路由操作。方塊 154 實現先進先出( FIFO )緩衝。方塊 156 實現計數器。方塊 158 一般能夠執行奇偶性檢查。
在第一(例如通常)操作模式下,可以設置控制和路由來將傳入資料直接引導至 LFI132 。對於調試或者其他高級功能,可以設置控制和路由來將傳入資料直接引導至 CU 暫存器介面。對於 CU 韌體下載,可以設置控制和路由來將傳入資料直接引導至 CU130 的命令直譯器。在一個示例中,方塊 154 可以實現為 8 位寬、 4 條( entry )深的 FIFO 緩衝。然而,可以實現其他深度和寬度來滿足特定實施方式的設計標準。方塊 154 具有可配置的 Hi( ) Lo (低)電平(例如 FIFO 閥值),被用作序列控制的部分。典型而言,對於深為 4 、雙倍資料速率( DDR )系統而言, Hi 會被設定為 2 Lo 被設定為 1 。對於深為 4 、單倍資料速率系統而言, Hi 會是 1 Lo 0 。方塊 156 可以實現為 CU CSR 可訪問的計數器,配置為對由 ODB116 接收的位元組的數量計數。方塊 156 還可由 CU130 寫入,並在調試中可以是有用的,作為從寫入資料路徑接收了正確數量的位元組的檢查。方塊 158 能夠檢查資料介面奇偶性,並將奇偶性錯誤報告給 CSR 方塊 122 ,對於諸如奇偶性錯誤的例外,能夠向 BEPU 發出中斷信號。
參考第 4 圖,示出的圖例示了第 2 圖的輸入資料緩衝( IDB 120 的示例實施方式。在一些實施例中, IDB120 包括方塊(或者電路) 160 、方塊(或者電路) 161 、方塊(或者電路) 163 、方塊(或者電路) 165 、方塊(或者電路) 167 和方塊(或者電路) 169 。方塊 160 一般實現控制介面。方塊 161 一般能夠執行路由操作。方塊 163 實現先進先出( FIFO )緩衝。方塊 165 實現差異計算器。方塊 167 實現奇偶性發生器。方塊 169 實現倒數計數器。
IDB120 一般通過方塊 163 LFI 接收傳入資料。在一些實施例中,方塊 163 可以實現為 8 位寬、 40 條的 FIFO 緩衝。然而,可以實現其他深度和寬度,從而滿足特定實施方式的設計標準。方塊 163 具有可配置的 Hi Lo 電平(例如 FIFO 閥值)用於在 LFI132 的流控制。方塊 163 允許系統 100 中的在快速傳輸速率下可以是顯著的(例如 30ns )往返延遲,並還允許當在 FIFO 緩衝中緩衝傳入資料時,在傳輸的開始的時間插入來自 CU130 的消息頭。對於雙倍資料速率系統, Hi Lo 電平(例如 FIFO 閥值)的示例設定將為: Hi 22 Lo 21
來自 LFI132 的資料一般被引導至將 IDB120 連接至 BIB112 的傳出 FIFO 緩衝(未示出)。來自 LFI132 的資料還可以使用控制介面 160 CU 暫存器介面由 CU130 讀出(例如,當資料由 CU130 消耗時,該特性可以用於非易失性記憶體裝置暫存器讀出、狀態讀出等)。 CU 暫存器介面還可以被用於將資料從 CU130 發送至 BIB112 (例如,該特性可以用於資料頭 / 尾)。
方塊 165 一般實現為運行差異計算器。在一些實施例中,運行差異計算器保持讀出資料流程中的 1 位相對於 0 位元的過量的帶符號的 20 位元總運行。示例差異計算由下面的等式 1 示出:
差異 = 設定為 1 的總位 - (總位 /2       等式 1
如果差異值到達最大正或者最大負的 20 位值,那麼差異值飽和並固定。當從非易失性記憶體裝置讀出的資料具有已知的期待的差異時,使用差異計算,至少部分確定讀出資料是否有效。在第一示例中,如果從非易失性記憶體裝置讀出的資料是加密和 / 或加擾的,並具有 0 l 的已知的統計的 50-50 分佈,差異會預計為接近 0 。在第二示例中,諸如 NAND 快閃記憶體的一些非易失性記憶體裝置具有擦除的狀態,都為 l 。如果差異計算表明實質上所有的資料位元讀出具有值 1 ,那麼擦除的頁面可能已被讀出。
當資料讀出已經完成時,差異值可以由 CU130 讀出,並包含在資料尾,或者作為回應返回給 BEPU CU130 應該在資料傳輸的開始之前通常清除差異值。傳出資料流程由方塊 167 進行奇偶性保護。
方塊 169 一般實現 CSR 可訪問的向下計數器。方塊 169 對從 IDB120 發送的位元組的數量向下計數。這可以被設定為傳輸的長度,並將在傳輸的期待的終止時向下計數至零。方塊 169 還可以由 CU130 CSR 暫存器程式設計,以在傳輸的開始 / 終止處產生第一 / 最後指示(例如,側帶信號,提供訊框資訊)。第二 CSR 暫存器被用於在計數器到達零水準後對方塊 169 進行預設。
當向 BIB112 的傳出資料由 CU130 產生(例如對於資料頭和尾而言)時,那麼向 BIB112 的第一和最後輸出也由 CU130 控制。在典型的讀出中, CU130 初始將 IDB120 置於“來自 CU ”模式,在 LFI132 開始讀出命令,然後將頭部傳輸至 BIB112 ,然後將 IDB120 置於“通常”模式,使得來自 LFI132 並在方塊 163 中的資料被傳送至 BEPU 。最終,如果需要, CU130 會產生尾。
參考第 5 圖,示出的圖例示了第 2 圖的控制單元( CU 130 的示例實施方式。 CU130 一般實現基於微處理器的控制器 101 的監管控制單元。 CU130 從輸出匯流排( 0B )接收命令,執行命令調度和優先順序。在一些實施例中, CU130 包括方塊(或者電路) 170 、方塊(或者電路) 172 、方塊(或者電路) 174 、方塊(或者電路) 176 、方塊(或者電路) 178 、方塊(或者電路) 180 、方塊(或者電路) 182 和方塊(或者電路) 184 。方塊 170 一般包括中央處理器( CPU )核心。方塊 172 一般實現命令直譯器。方塊 174 實現仲裁器。方塊 176 實現用於儲存資料的隨機存取記憶體( RAM )。方塊 178 實現本地配置 / 狀態暫存器( CSR )方塊。方塊 180 實現到 LFI132 的介面。方塊 182 實現仲裁器。方塊 184 實現用於儲存指令的隨機存取記憶體( RAM )。
在啟動時, CPU170 由方塊 178 中的 CSR 暫存器保持為重置。由 BEPU 發出 IMP 命令,對指令 RAM184 LFI132 的序列 RAM 和資料 RAM176 的初始狀態程式設計。初始狀態一般來自系統 ROM (未示出)。在初始程式設計之後,重置被釋放, CPU170 開始執行其初始韌體。該韌體允許 CPU170 回應從 BEPU 發出的命令。在初始操作狀態期間, BEPU 可以從非易失性記憶體裝置將最終操作代碼帶到後端緩衝(未示出)。最終的操作代碼被用於配置 CPU170 以及系統 100 上的其他 CPU 。在一個示例中,在該階段, CU 代碼可能會重新裝載以非易失性記憶體上儲存的韌體的性能優化的版本。這一般發生作為資料傳輸, IMP 命令被用於將傳入 IDB 資料引導至指令 RAM184 、資料 RAM176 / LFI132 的序列 RAM 。典型而言,在載入主要操作代碼期間, CU130 會處於重置。
仲裁器 182 和仲裁器 174 可以用於 CPU170 RAM 介面,來允許 IMP 命令訪問資料 RAM176 、指令 RAM184 LFI132 的序列 RAM 。在一個示例中,可以使用 CPU170 的延遲( stall )機構,給予 IMP 命令直譯器 172 優先權。然而,可期待的是由 CPU170 以外訪問資料 RAM176 、指令 RAM184 LFI132 的序列 RAM 僅在初始配置發生。
CPU170 還可以包含輸入和輸出 FIFO 介面,用於從 BEPU 傳遞消息,並用於將回應提供回 BEPU 。輸出 FIFO 介面還被用於將消息傳遞至(例如主機 103 的)直接記憶體訪問( DMA )引擎來開始資料傳輸操作。
CPU170 的介面被用於訪問本地 CSR ,並將命令發出給 LFI132 。在使用 Tensilica CPU 的一些實施例中,介面是 Tensilica 指令擴展( TIE )查找介面。全域停止信號(例如在發生功率故障或者其他例外狀況時從主機 103 發送的信號)可以被用於觸發在 CPU170 核心中的不可遮罩中斷( NMI )。
參考第 6 圖,示出的圖例示第 2 圖的低級非易失性記憶體介面( LFI 132 的示例實施方式。 LFI132 提供非易失性記憶體介面的低級控制。 LFI132 包括可程式設計序列引擎,設計為對於任何非易失性記憶體介面協定是可配置的。使用的序列由 CU130 配置,進而,用由 CU130 給定的命令來執行。還存在可以由 CU130 程式設計並由序列訪問的序列資料區,通過該方式,可以設置通用序列,可以給出與序列關聯的資料,而不用修改序列其本身。
在一些實施例中,對於兩個以上物理介面,而非僅單個的物理介面提供支援。例如,在 2 個物理介面(例如 A B )的情況下, LFI132 可以包括方塊(或者電路) 190 、方塊(或者電路) 192a 、方塊(或者電路) 192b 、方塊(或者電路) 194a 、方塊(或者電路) 194b 、方塊(或者電路) 196 和方塊(或者電路) 198 。方塊 190 一般包括低級非易失性記憶體介面( LFI )定序器單元( LSU )。方塊 192a 192b 一般實現 DQ 捕獲方塊。方塊 194a 194b 分別實現 A B 非易失性記憶體介面。方塊 196 實現晶片賦能( CE )介面。方塊 198 實現用於在 2 DQ 捕獲方塊 192a 192b 之間選擇的多工電路。
LFI 定序器單元( LSU 190 執行序列並引導非易失性記憶體命令的輸出、寫入資料傳輸和讀出資料傳輸。序列 RAM 介面允許在序列開始之前設置 LSU190 的內部序列記憶體,另外具有由 CU130 動態程式設計的序列。然後可以在 LSU190 的序列命令介面上發出序列命令。用於介面命令的介面選擇(例如包括信號 I/F A EN I/F B EN )被程式設計,並將命令引導至適當的介面。在一些實施例和 / 或使用場景中,每個命令被引導至單個的介面。在其他實施例和 / 或使用場景中,至少一些命令(例如重置命令)被引導至多個介面。晶片賦能( CE )介面(例如包括信號 CEN OUTPUTS )允許 CE 輸出的完全控制來選擇附接至一個非易失性記憶體介面的管芯( die )。在一些實施例中,支持具有達 8 CE 的配置。附接的管芯可以在任何非易失性記憶體介面上。
DQ 捕獲方塊 192a 192b 提供使用 DQS 的高速資料捕獲,還有用於非同步模式的順序延遲捕獲。 DQ 鏡像信號控制 DQ 輸出和捕獲的資料的鏡像。鏡像將位 0 7 1 6 2 5 3 4 互換。在一些設計中如此進行以簡化板佈局問題,並必須由控制器處理。在命令發出給 LFI132 之前,由 CU130 選擇鏡像模式。傳出鏡像在傳出介面處執行,在 DQ 捕獲 mux( 多工器 )198 中接著 DQ 捕獲執行傳入鏡像。
LFI132 一般包含可程式設計序列引擎、一組 I/O 引腳輸出方塊和一組資料捕獲方塊。序列引擎典型地由附接至 I/O 引腳的可以執行特定非易失性記憶體裝置的非易失性記憶體協議的一組序列程式設計。該序列包括在序列記憶體中的多個位置開始的一組指令。例如,對於 LFI132 被程式設計執行的每個操作,有相應的開始位置。在一些實施例中,序列記憶體實現為 512 32 位位置。通過發出命令介面上的命令來啟動序列的執行。命令一般包含序列 RAM 中要跳至的位址、以及可以由序列中的一些指令使用的命令資料的位元組,儘管一些序列不使用命令資料。
還提供了使用索引暫存器間接定址的序列資料 RAM 。使用 MODE 指令來設定索引,典型被設定為由命令資料給定的值。通過該方式,與命令序列關聯的任何資料可以設定在序列資料 RAM 中,而序列其本身不需要被修改。示例是具有 5 個位元組的位址的讀出命令。位址位元組會置於序列資料 RAM 中的連續位置,將用序列 RAM 中的讀出命令序列的位址、以及序列資料 RAM 中位址的第一位元組的位址發出命令。序列會設定索引暫存器,進而執行要求的序列來發出位址,並對於位址的每個位元組重複位址序列。指令使索引暫存器遞增(在記憶體終止後繞回( wrap )),儘管對於 WIG 指令(被用於擺動( wiggle )連接至非易失性記憶體裝置的 I/O 引腳),遞增是可選的。
執行序列直至其遇到導致停止( halt )的指令。該停止終止序列執行,且 LFI 進入 LFI 等待下一命令到達的狀態,並不進一步執行動作。對非易失性記憶體裝置的動作的執行可以包括多個序列調用。例如,可以調用序列來選擇裝置,然後分離的序列調用可以發出讀出,最終序列可以取消選擇裝置。
參考第 7 圖,示出的圖例示了第 6 圖的低級非易失性記憶體介面( LFI )微定序器單元( LSU 190 的示例實施方式。在一些實施例中, LSU190 可以包括方塊(或者電路) 200 、方塊(或者電路) 202 、方塊(或者電路) 204 、方塊(或者電路) 206 、方塊(或者電路) 208 、方塊(或者電路) 210 、方塊(或者電路) 212 、方塊(或者電路) 214 、方塊(或者電路) 216 和方塊(或者電路) 218 。方塊 200 一般包括序列執行單元( SEU )。方塊 202 一般實現用於儲存序列資料(例如序列資料 RAM )的隨機存取記憶體( RAM )。在一個示例中,序列資料 RAM202 可以實現為雙埠記憶體。方塊 204 實現索引暫存器。方塊 206 實現多個輸出暫存器。方塊 208 實現零開銷迴圈( ZOL )暫存器。方塊 210 一般配置為執行下一個程式計數器( PC )計算。方塊 212 實現程式計數器( PC )暫存器。方塊 214 一般實現用於儲存序列的隨機存取記憶體( RAM )(例如序列 RAM )。在一個示例中,序列 RAM214 可以實現為雙埠記憶體。方塊 216 實現預取暫存器。方塊 218 實現命令暫存器。
在可以執行任何命令之前,序列 RAM214 需要被初始化。序列 RAM214 的初始化典型地會在啟動執行初始非易失性記憶體讀出時發生一次,進而,當從非易失性記憶體裝置載入主要執行代碼時發送第二次。在一些實施例中,序列 RAM214 可以實現為 32 位寬(加 ECC 位)和 512 字深,具有雙埠以當執行序列時,允許從 CU130 訪問。在一些實施例中,序列地址是 9 位。然而,可以實現其他記憶體規範,從而滿足特定實施方式的設計標準。
序列資料 RAM202 允許 CU130 設定可以使用索引暫存器 204 由命令訪問的各種命令值。各種命令值的設定可以用於作為設置命令 / 位址序列的此類操作。在一些實施例中,序列資料 RAM202 被定址為來自 CU130 32 位元字,但是由索引暫存器 204 設為單個的位元組。在一些實施例中,序列資料 RAM202 實現為 64 位元組( 16 字)。然而,可以實現其他記憶體規範,從而滿足特定實施方式的設計標準。因為資料是從序列資料 RAM202 預取的,所以整個序列資料 RAM202 應該在使用之前被初始化,以防止潛在的虛假 ECC 錯誤。
PC 暫存器 212 含有當前序列指針。當前序列指針通常經過遞增器 210 來抓取下一序列指令。 ZOL 暫存器 208 支援單級的零開銷迴圈。輸出暫存器 206 連接至非易失性記憶體介面並控制非易失性記憶體介面的操作。
序列 RAM214 和序列資料 RAM202 兩者都被 ECC 保護,並存在於 CU130 的記憶體映射中。 ECC 錯誤會使 CU130 中斷,然後 CU130 可以讀出暫存器來確定錯誤是否可校正以及哪個 RAM 處於錯誤中。任何可校正的錯誤通常應該導致記憶體的讀出清除。如果不可校正的錯誤在序列 RAM 讀出期間發生,那麼序列也將即時停止。
可以由 CU130 斷言外部信號(例如 HALT( 停止 ) ),以在任何時間停止序列執行單元 200 的操作。一般而言,停止序列執行單元 200 的執行會在當前位置即時終止當前序列。為了開始新的序列,需要發出新的命令。序列執行單元 200 的內部狀態對 CU130 可用。
參考第 8 圖,示出的圖例示了 DQ 捕獲方塊 220 的示例實施方式。 DQ 捕獲方塊 220 可以被用於實現第 6 圖的 DQ 捕獲方塊 109a 192b 。在一些實施例中, DQ 捕獲方塊 220 包括時鐘傳輸方塊 222 、多個 DQ 近墊邏輯方塊 224 DLL 方塊 226 、以及多個匹配單元 228 。近墊邏輯( near pad logic NPL )包括矽宏方塊,位置接近墊。 NPL 方塊允許對介面邏輯的定時的緊密控制。每個 NPL 方塊可以被置於距關聯的墊固定的距離。 DQS 輸入經由 DLL 方塊 226 的從模組傳遞。 DLL 方塊 226 的從模組對 DQS 信號插入四分之一 DOS 週期延遲。對每個 DQ NPL 方塊 224 DOS 路徑延遲應該匹配對相同的 NPL 方塊的 DQ 延遲。 DQ NPL 方塊 224 在接下來的 DQS 沿捕獲 4 DQ 值。 4 DQ 值被饋送至時鐘傳輸方塊 222 ,其中值被傳送至非易失性記憶體介面的時鐘域。
參考第 9 圖,示出的圖例示了第 8 圖的 DQ 捕獲近墊邏輯( DQ NPL )方塊 224 的示例實施方式。在一些實施例中, DQ NPL 方塊 224 包括捕獲相位觸發器和多個 DQ 擷取觸發程式(例如 DQ0P DQ0N DQ1P DQ1N )。在開始讀出傳輸之前,信號(例如 DQS EN )為 LOW ,這關斷了任何 DQS 雜訊( glitch ),並將捕獲相位觸發器保持在相位 0 。第一上升 DQS 沿將在 DQ0P 觸發器中被捕獲,第一下降沿將在 DQ0N 觸發器中被捕獲。第一下降沿還切換捕獲相位和在 DQ1P DQ1N 觸發器中分別捕獲的接下來 2 DOS 沿。當資料傳輸時,週期每 4 DQS 沿重複。
參考第 10 圖,示出的圖例示了第 8 圖的 DLL 方塊 226 的示例實施方式。在一些實施例中, DLL 方塊 226 包括延遲鎖定環路( DLL 230 和控制有限狀態機( FSM 232 DLL230 包括主部分和從部分。 DLL230 的主部分鎖定至提供的參考時鐘。 DLL230 的從部分由主參考時鐘的可程式設計部分延遲給定的信號(例如 DQS )。在一些實施例中,傳入 DQS 信號需要被延遲四分之一 DQS 週期,以捕獲沿對齊的 DQ 資料。 DLL 方塊 226 鎖定至提供的參考週期。提供的參考週期可以是控制器 101 的時鐘(例如 CLK )或者控制器時鐘的分割的版本(例如由參考時鐘分割器 234 產生)。典型地,參考時鐘將被設定為與傳出 DQS 相同的頻率,或者 2x 頻率。插入的延遲應該典型地被程式設計為約四分之一 DQS 頻率。經由 DLL230 的從部分的延遲( Delay )可以根據下面的等式 2 計算:
Delay=Tf+Tref* (( ADO+ADJoff /MADJ       等式 2
其中 Tf 是固定的偏移延遲, Tref 是參考時鐘週期, ADJ 是程式設計的調節偏移, ADJoff 是固定的代碼偏移(例如 34 ), MADJ 是主調節偏移,通常設定為 160 (但是可以改變為 76 …… 255 範圍內的值)。一般而言,固定的偏移延遲 Tf 被用於 DQ 行上的匹配單元 228 匹配,因此可以忽略。因此,消除 Tf (例如通過使用匹配單元)並求出 ADJ ,獲得下面的等式 3
ADJ=MADJ* Delay/Tref-ADJoff         等式 3
在具有 400MT/s 操作條件的示例情況下, DQS 頻率為 200MHz ,控制器時鐘為 400MHz 。在一些實施例中, 400MHz 時鐘可以直接饋送至 DLL ,信號 DQS 可以被延遲參考時鐘的半個週期(等同於 DQS 週期的四分之一)。在替代的實施例中,控制器時鐘可以被分割為 200MHz ,信號 DQS 被延遲參考時鐘週期的四分之一。
還可以以軟體實現訓練方案。在具有該訓練方案的實施例,在已知的模式從非易失性記憶體裝置讀出時, ADJ 值從低設定掃至高設定。最終 ADJ 會被設定為中值,結果導致讀出正確資料。參考時鐘分割器或者 MADJ 中的任何改變或者斷電會需要 DLL 被重置為最小 lus 。控制 FSM232 將在程式設計數量的時鐘週期(例如,對於 400MHz lus 週期默認為 400 )將 DLL230 保持為重置。在 DLL230 被允許運行後,斷言鎖定的狀態 500 個參考時鐘( refclk ),在讀出操作啟動之前,該狀態可以由韌體檢查。
用於 DLL 方塊 226 的控制暫存器可以通過 CSR 環(例如來自 BEPU )或者本地從 CU130 訪問並設定。本地訪問用於訓練類型功能(如果需要)或者精細斷電控制。典型而言, DLL 值由配置記錄設定,並不需要在正常操作中調節。為了節省功率,可以設定與 DLL 控制 FSM232 關聯的斷電請求暫存器。 DLL230 僅使用作讀出操作,用於使用 DQS 輸入的非易失性記憶體讀出模式(例如 ONFI2/3 DDR 模式和切換模式)。從斷電退出之後,啟動重置和鎖定序列,因此動態斷電的可能影響讀出性能。在晶片重置時 DLL230 一般為斷電模式。
參考第 11 圖,示出的圖例示了輸出介面近墊邏輯( NPL )方塊 250 的示例實施方式。每個傳出信號通過輸出介面 NPL 方塊 250 NPL 方塊 250 允許傳出信號被重定時到時鐘(例如 CLK ),並具有可選的增加至傳出信號的上升和 / 或下降沿的半個週期延遲。用於每個傳出信號的延遲是 CSR 可配置的。每個 NPL 方塊 250 應該位於關聯的墊附近,跨來自每個控制器 101 實例的所有輸出,從 NPL 方塊 250 到墊具有匹配的延遲。在一些實施例中, NPL250 包括觸發器 260 、觸發器 262 、組合(或者合併)邏輯 264 、以及多工器 266 。在一些實施例中,觸發器 260 262 實現為 D 型觸發器。在一些實施例中,組合邏輯 264 可以包括 AND (與)、 OR (或)和 / NOT (非)門。在 NPL250 內,到多工器 266 的每個可能的路徑應該盡可能密切匹配。
參考第 12 圖,示出的圖例示了依據本發明的實施例的包括多個通道的非易失性記憶體控制系統。在一些實施例中,非易失性記憶體系統 300 可以包括主機 202 、非易失性記憶體控制器子系統 304 和多個非易失性記憶體媒體 306a-306n 。主機 302 可以通過命令介面與非易失性記憶體控制器子系統 304 通信,該命令介面配置為在主機 302 和非易失性記憶體控制器子系統 304 之間傳輸命令和回應。每個非易失性記憶體媒體 306a-306n 可以連接至非易失性記憶體控制器子系統 304 的相應通道。
在一些實施例中,非易失性記憶體控制器子系統 304 可以包括方塊 310 、方塊 312 、方塊 314 和多個方塊 316a-316n 。方塊 310 可以包括後端處理單元( BEPU )和 / 或非易失性記憶體控制器子系統 304 的其他處理器。方塊 312 可以包括直接記憶體訪問( DMA )引擎或者非易失性記憶體控制器子系統 304 的引擎。方塊 314 可以實現非易失性記憶體控制器子系統 304 的多工子系統。方塊 314 可以配置為將方塊 316a-316n 耦接至方塊 310 312 。方塊 316a-316n 可以包括實現為類似於上述控制器 101 的介面管理處理器。方塊 316a-316n 可以通過 CSR 環和相應命令介面耦合至方塊 314 。方塊 316a-316n 還可以具有配置為將每個方塊 316a-316n 耦接至非易失性記憶體媒體 306a-306n 中的相應一個的非易失性記憶體介面。
本文中使用的術語 " 可以 " " 一般 " 與動詞結合時傳達的意圖是說明是示例性的,並且認為其足夠廣,以涵蓋本公開呈現的具體示例、以及可以基於本公開匯出的替代示例。本文使用的術語 " 可以 " " 一般 " 不應解釋為一定隱含省略對應要素的願望或者可能性。
由第 1 圖至第 12 圖示出的功能可以使用一個或多個根據說明書的教導程式設計的常規通用處理器、數位電腦、微處理器、微控制器、 RISC (精簡指令集電腦)處理器、 CISC (複雜指令集電腦)處理器、 SIMD (單指令多資料)處理器、信號處理器、中央處理器( CPU )、算數邏輯單位( ALU )、視訊數位訊號處理器( VDSP )和 / 或類似的電腦器實現(例如類比),如相關領域的技術人員可以想到的那樣。適當的軟體、韌體、編碼、常式、指令、操作碼、微碼和 / 或程式模組可以容易由熟練的程式師基於本公開的教導準備,如相關領域的技術人員可以想到的那樣。軟體一般通過機器實施方式的一個或多個處理器從媒體或者若干媒體執行。
本發明的實施例還可以由準備 ASIC (特定應用積體電路)、平臺 ASIC FPGA (現場可程式設計閘陣列)、 PLD (可程式設計邏輯裝置)、 CPLD (複雜可程式設計邏輯裝置)、門海、 RFIC (無線電頻率積體電路)、 ASSP (特定應用標準產品)、一個或多個單片積體電路、佈置為倒裝晶片模組和 / 或多晶片模組的一個或多個晶片或者管芯、或者通過互連常規元件電路的適當網路來實現,如本文說明的那樣,其修改對本領域的技術人員而言容易想到。
因此,本發明的實施例還可以包含電腦產品,其可以是儲存媒體或者媒體和 / 或包含可以被用於程式機器執行依據本發明的一個或多個處理或者方法的指令的傳輸媒體或者媒體。通過機器執行含在電腦產品內的指令,連同周圍電路的操作可以將輸入資料轉換為儲存媒體上的一個或多個檔和 / 或代表物理物件或者物質的一個或多個輸出信號,諸如音訊和 / 或視覺描述。儲存媒體可以包含但是不限於任何類型的盤,包含軟碟、硬碟驅動器、磁片、光碟、 CDROM DVD 和磁光碟和電路,諸如 ROM (唯讀記憶體)、 RAM (隨機存取記憶體)、 EPROM (可擦除可程式設計 ROM )、 EEPROM (電可擦除可程式設計 ROM )、 UVPROM (紫外線可擦除可程式設計 ROM )、快閃記憶體記憶體、磁卡、光學卡和 / 或適於儲存電子指令的任何類型的媒體。
本發明的要素可以形成一個或多個裝置、單元、元件、系統、機器和 / 或裝置的部分或者整體。裝置可以包含但是不限於伺服器、工作站、儲存陣列控制器、儲存系統、個人電腦、膝上型電腦、筆記本電腦、掌上電腦、個人數位助理、可攜式電子裝置、電池供電的裝置、機上盒、編碼器、解碼器、轉碼器、壓縮器、解壓縮器、前置處理器、後處理器、發射器、接收器、收發器、密碼電路、蜂巢電話、數碼照相機、定位和 / 或導航系統、醫療裝置、頭戴式顯示器、無線裝置、音訊記錄、音訊儲存和 / 或音訊重播裝置、視訊記錄、視訊儲存和 / 或視訊重播裝置、遊戲平臺、週邊裝置和 / 或多晶片模組。相關領域的技術人員應該理解本發明的要素可以以其他類型的裝置實現,以滿足特定應用的標準。
儘管參考其實施例已具體示出並說明了本發明的例示,本領域的技術人員可以理解,可以對形式和細節做出各種改變,而不脫離本發明的範圍。
 
BEPU‧‧‧後端處理單元
100‧‧‧系統
101‧‧‧控制器
103‧‧‧主機
105‧‧‧非易失性記憶體媒體
107‧‧‧非易失性記憶體裝置
109‧‧‧非易失性記憶體管芯

Claims (1)

  1. 一種系統,包括:
    控制處理器,配置為通過命令介面接收命令和發送回應;
    非易失性記憶體裝置介面,配置為將該系統耦接至一個或多個非易失性記憶體裝置;以及
    微定序器,耦接至(i)該控制處理器和(ii)該非易失性記憶體裝置介面,該微定序器包括可由該微定序器讀出並可由該控制處理器寫入的控制存放裝置,其中,回應於接收該命令中的特定命令,
    該控制處理器能夠使該微定序器根據該特定命令在該控制存放裝置中的位置開始執行,並且
    該微定序器能夠根據耦接至該非易失性記憶體裝置介面的該一個或多個非易失性記憶體裝置的協定,執行該特定命令的至少一部分。
    2.如申請專利範圍第1項所述的系統,其中,該非易失性記憶體裝置介面包括多個資料I/O引腳和多個控制I/O引腳。
    3.如申請專利範圍第2項所述的系統,其中,該微定序器能夠改變該控制I/O引腳和該資料I/O引腳的狀態,以根據該協定執行該特定命令。
    4.如申請專利範圍第1項所述的系統,其中,該控制存放裝置被該控制處理器程式設計為執行與附接到該非易失性記憶體裝置介面的該一個或多個非易失性記憶體裝置關聯的一個或多個協議。
    5.如申請專利範圍第4項所述的系統,其中該控制處理器進一步配置為:
    初始賦能該控制處理器將該控制存放裝置程式設計為執行與多個類型的非易失性記憶體裝置相容的低速協定;以及
    隨後賦能該控制處理器將該控制存放裝置程式設計為執行與該一個或多個非易失性記憶體裝置相容的更高速協定。
    6.如申請專利範圍第1項所述的系統,還包括:
    輸出資料介面,通過該微定序器耦接至該非易失性記憶體裝置介面,該輸出資料介面包括輸出資料緩衝,該輸出資料緩衝能夠接收要發送至該非易失性記憶體裝置介面的資料;以及
    輸入資料介面,通過該微定序器耦接至該非易失性記憶體裝置介面,該輸入資料介面包括輸入資料緩衝,該輸入資料緩衝能夠接收從該非易失性記憶體裝置介面接收的資料。
    7.如申請專利範圍第6項所述的系統,其中,該微定序器進一步能夠(i)檢測該輸入資料緩衝的滿狀態,以及(ii)回應於檢測該滿狀態,跳至該控制存放裝置中的確定的位置。
    8.如申請專利範圍第1項所述的系統,其中,該系統是固態驅動器SSD裝置的一部分。
    9.如申請專利範圍第1項所述的系統,其中,該系統實現為一個或多個積體電路。
    10.一種控制非易失性記憶體通道的方法,包括如下步驟:
    通過耦接至控制處理器的命令介面,接收命令和發送回應;以及
    使用耦接至該控制處理器的微定序器,開始執行在控制存放裝置中的位置處的指令,其中,該位置由該控制處理器根據接收的該命令中的特定命令確定,其中,該微定序器根據通過非易失性記憶體裝置介面耦接至該微定序器的一個或多個非易失性記憶體裝置的協定,執行該特定命令的至少一部分。
    11.如申請專利範圍第10項所述的方法,還包括:
    使用該控制處理器將該控制存放裝置程式設計為執行與附接到該非易失性記憶體裝置介面的該一個或多個非易失性記憶體裝置關聯的一個或多個協議。
    12.如申請專利範圍第11項所述的方法,還包括:
    初始賦能該控制處理器將該控制存放裝置程式設計為執行與多個類型的非易失性記憶體裝置相容的低速協定;以及
    隨後賦能該控制處理器將該控制存放裝置程式設計為執行與該一個或多個非易失性記憶體裝置相容的更高速協定。
TW103104182A 2013-02-15 2014-02-07 控制非易失性記憶體之系統與方法 TWI633433B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/768,215 2013-02-15
US13/768,215 US9081666B2 (en) 2013-02-15 2013-02-15 Non-volatile memory channel control using a general purpose programmable processor in combination with a low level programmable sequencer

Publications (2)

Publication Number Publication Date
TW201502775A true TW201502775A (zh) 2015-01-16
TWI633433B TWI633433B (zh) 2018-08-21

Family

ID=50097556

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103104182A TWI633433B (zh) 2013-02-15 2014-02-07 控制非易失性記憶體之系統與方法

Country Status (6)

Country Link
US (2) US9081666B2 (zh)
EP (1) EP2767899A3 (zh)
JP (1) JP6577166B2 (zh)
KR (1) KR102170644B1 (zh)
CN (2) CN103995686B (zh)
TW (1) TWI633433B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI669607B (zh) * 2016-11-08 2019-08-21 美商美光科技公司 用於對資料之記憶體操作之設備及方法
US10956290B2 (en) 2016-11-08 2021-03-23 Micron Technology, Inc. Memory management

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102081588B1 (ko) * 2013-08-08 2020-02-26 삼성전자 주식회사 Ecc 디코더의 동작 방법 및 그것을 포함하는 메모리 컨트롤러
JP2017531856A (ja) * 2014-10-03 2017-10-26 エイジェンシー・フォー・サイエンス,テクノロジー・アンド・リサーチ アクティブストレージユニットおよびアレイ
US20160179388A1 (en) * 2014-12-18 2016-06-23 CNEXLABS, Inc. Method and apparatus for providing programmable nvm interface using sequencers
US20170046102A1 (en) * 2015-08-14 2017-02-16 Marvell World Trade Ltd. Flexible interface for nand flash memory
US10175902B2 (en) * 2016-06-27 2019-01-08 Micron Technology, Inc.. Managing host communication with a regulator in a low power mode
CN109716313B (zh) * 2016-07-29 2022-09-16 雷蛇(亚太)私人有限公司 接口装置、控制接口装置的方法及计算机可读介质
CN108139993B (zh) * 2016-08-29 2020-06-16 华为技术有限公司 内存装置、内存控制器、数据缓存装置及计算机系统
US10628049B2 (en) 2017-07-12 2020-04-21 Sandisk Technologies Llc Systems and methods for on-die control of memory command, timing, and/or control signals
JP2020046918A (ja) 2018-09-19 2020-03-26 キオクシア株式会社 記憶装置及び制御方法
CN112925728A (zh) * 2019-05-05 2021-06-08 长江存储科技有限责任公司 具有序列处理单元的存储器控制系统
EP3751572B1 (en) * 2019-06-13 2021-12-01 Melexis Technologies NV Memory device
KR20210010690A (ko) 2019-07-17 2021-01-28 삼성전자주식회사 메모리 컨트롤러 및 이를 포함하는 저장 장치
US11249674B2 (en) * 2020-06-03 2022-02-15 Innogrit Technologies Co., Ltd. Electrical mirroring by NAND flash controller
DE102020207616A1 (de) * 2020-06-19 2021-12-23 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Betreiben einer Recheneinheit
US11893244B2 (en) * 2021-10-12 2024-02-06 Western Digital Technologies, Inc. Hybrid memory management of non-volatile memory (NVM) devices for use with recurrent neural networks
US11755208B2 (en) * 2021-10-12 2023-09-12 Western Digital Technologies, Inc. Hybrid memory management of non-volatile memory (NVM) devices for use with recurrent neural networks
WO2023091377A1 (en) * 2021-11-22 2023-05-25 Rambus Inc. Logging burst error information of a dynamic random access memory (dram) using a buffer structure and signaling

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU5442494A (en) 1992-10-13 1994-05-09 Compaq Computer Corporation Disk array controller having advanced internal bus protocol
US5448709A (en) 1992-10-13 1995-09-05 Compaq Computer Corporation Disk array controller having command descriptor blocks utilized by bus master and bus slave for respectively performing data transfer operations
US5918242A (en) * 1994-03-14 1999-06-29 International Business Machines Corporation General-purpose customizable memory controller
US5721860A (en) * 1994-05-24 1998-02-24 Intel Corporation Memory controller for independently supporting synchronous and asynchronous DRAM memories
US6505282B1 (en) * 1994-11-30 2003-01-07 Intel Corporation Method and apparatus for determining memory types of a multi-type memory subsystem where memory of the different types are accessed using column control signals with different timing characteristics
US5719880A (en) * 1996-09-20 1998-02-17 Texas Instruments Incorporated, A Delaware Corporation On-chip operation for memories
US6336174B1 (en) * 1999-08-09 2002-01-01 Maxtor Corporation Hardware assisted memory backup system and method
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
JP2002007200A (ja) * 2000-06-16 2002-01-11 Nec Corp メモリ制御装置及び動作切替方法並びにインターフェース装置、半導体集積チップ、記録媒体
DE10031223A1 (de) * 2000-06-27 2002-01-10 Philips Corp Intellectual Pty Mikrocontroller
JP4722305B2 (ja) * 2001-02-27 2011-07-13 富士通セミコンダクター株式会社 メモリシステム
JP2003131940A (ja) * 2001-10-25 2003-05-09 Hitachi Ltd メモリコントローラ装置
JP3756818B2 (ja) * 2002-01-09 2006-03-15 株式会社メガチップス メモリ制御回路および制御システム
US20040054864A1 (en) * 2002-09-13 2004-03-18 Jameson Neil Andrew Memory controller
US7277995B2 (en) * 2003-10-29 2007-10-02 Dot Hill Systems Corporation Storage controller and method for performing host access control in the host interface adapter
JP4357331B2 (ja) * 2004-03-24 2009-11-04 東芝メモリシステムズ株式会社 マイクロプロセッサブートアップ制御装置、及び情報処理システム
US7308526B2 (en) * 2004-06-02 2007-12-11 Intel Corporation Memory controller module having independent memory controllers for different memory types
GB2421092B (en) * 2004-12-07 2008-12-03 Hewlett Packard Development Co Bufferless writing of data to memory
US7680967B2 (en) 2005-01-27 2010-03-16 Innovasic, Inc. Configurable application specific standard product with configurable I/O
US7406550B2 (en) * 2005-01-27 2008-07-29 Innovasic, Inc Deterministic microcontroller with configurable input/output interface
US7526579B2 (en) 2005-01-27 2009-04-28 Innovasic, Inc. Configurable input/output interface for an application specific product
US7673190B1 (en) * 2005-09-14 2010-03-02 Unisys Corporation System and method for detecting and recovering from errors in an instruction stream of an electronic data processing system
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7574611B2 (en) * 2005-11-28 2009-08-11 Atmel Corporation Command decoder for microcontroller based flash memory digital controller system
TW200743957A (en) * 2006-05-16 2007-12-01 Ite Tech Inc Control device and control method for memory
US8762620B2 (en) 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
US7808807B2 (en) 2008-02-26 2010-10-05 Ovonyx, Inc. Method and apparatus for accessing a multi-mode programmable resistance memory
EP2288993A4 (en) * 2008-05-29 2012-05-09 Advanced Micro Devices Inc PROGRAMMABLE COMPONENT INCORPORATED FOR MEMORY DEVICE LEARNING
US8321647B2 (en) * 2009-05-06 2012-11-27 Apple Inc. Multipage preparation commands for non-volatile memory systems
US8180981B2 (en) 2009-05-15 2012-05-15 Oracle America, Inc. Cache coherent support for flash in a memory hierarchy
US8266369B2 (en) * 2009-12-18 2012-09-11 Nxp B.V. Flash memory interface
US9176908B2 (en) * 2010-02-23 2015-11-03 Rambus Inc. Time multiplexing at different rates to access different memory types
US9529712B2 (en) * 2011-07-26 2016-12-27 Nvidia Corporation Techniques for balancing accesses to memory having different memory types
US9348774B2 (en) * 2013-01-25 2016-05-24 Seagate Technology Llc Controller-opaque communication with non-volatile memory devices

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI669607B (zh) * 2016-11-08 2019-08-21 美商美光科技公司 用於對資料之記憶體操作之設備及方法
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
US10956290B2 (en) 2016-11-08 2021-03-23 Micron Technology, Inc. Memory management
US11209986B2 (en) 2016-11-08 2021-12-28 Micron Technology, Inc. Memory operations on data
US11550678B2 (en) 2016-11-08 2023-01-10 Micron Technology, Inc. Memory management
US11886710B2 (en) 2016-11-08 2024-01-30 Micron Technology, Inc. Memory operations on data

Also Published As

Publication number Publication date
CN103995686B (zh) 2019-06-28
CN103995686A (zh) 2014-08-20
EP2767899A2 (en) 2014-08-20
US9262084B2 (en) 2016-02-16
EP2767899A3 (en) 2016-08-17
US20150268870A1 (en) 2015-09-24
TWI633433B (zh) 2018-08-21
KR20140103048A (ko) 2014-08-25
CN110134442A (zh) 2019-08-16
US20140237162A1 (en) 2014-08-21
JP2014157603A (ja) 2014-08-28
KR102170644B1 (ko) 2020-10-27
US9081666B2 (en) 2015-07-14
JP6577166B2 (ja) 2019-09-18

Similar Documents

Publication Publication Date Title
TWI633433B (zh) 控制非易失性記憶體之系統與方法
US9348783B2 (en) Apparatus and method emulating a parallel interface to effect parallel data transfer from serial flash memory
US8266369B2 (en) Flash memory interface
US9851905B1 (en) Concurrent memory operations for read operation preemption
US8582382B2 (en) Memory system having a plurality of serially connected devices
US20140082267A1 (en) EMBEDDED MULTIMEDIA CARD (eMMC), HOST CONTROLLING eMMC, AND METHOD OPERATING eMMC SYSTEM
TWI489482B (zh) 取樣電路模組、記憶體控制電路單元及資料取樣方法
KR102395541B1 (ko) 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
TW201319814A (zh) 用於周邊組件之高優先權命令佇列
KR100634436B1 (ko) 멀티 칩 시스템 및 그것의 부트코드 페치 방법
TWI534615B (zh) 串列周邊介面控制器、串列周邊介面快閃記憶體及其存取方法和存取控制方法
KR20180104839A (ko) 데이터 전송 트레이닝 방법 및 이를 수행하는 데이터 저장 장치
US10877673B2 (en) Transparently attached flash memory security
US8918680B2 (en) Trace queue for peripheral component
TWI506646B (zh) 半導體記憶體互連的方法及半導體記憶體系統
US20140223077A1 (en) Memory system
US20120290826A1 (en) Booting in systems having devices coupled in a chained configuration
KR20170062216A (ko) 반도체 메모리 장치
US11816039B2 (en) Multi-mode protected memory
KR20150122823A (ko) 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
US11138140B2 (en) Configuring first subsystem with a master processor and a second subsystem with a slave processor
US11360782B2 (en) Processors to configure subsystems while other processors are held in reset
US8971135B2 (en) Semiconductor memory device receiving data in response to data strobe signal, memory system including the same and operating method thereof

Legal Events

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