TWI776553B - 具有晶片內執行能力的串列式反及閘快閃記憶體 - Google Patents
具有晶片內執行能力的串列式反及閘快閃記憶體 Download PDFInfo
- Publication number
- TWI776553B TWI776553B TW110122237A TW110122237A TWI776553B TW I776553 B TWI776553 B TW I776553B TW 110122237 A TW110122237 A TW 110122237A TW 110122237 A TW110122237 A TW 110122237A TW I776553 B TWI776553 B TW I776553B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- flash memory
- memory
- random access
- gate flash
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44573—Execute-in-place [XIP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/06—Arrangements for interconnecting storage elements electrically, e.g. by wiring
- G11C5/066—Means for reducing external access-lines for a semiconductor memory clip, e.g. by multiplexing at least address and data signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/282—Partitioned cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5642—Multilevel memory with buffers, latches, registers at input or output
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/148—Details of power up or power down circuits, standby circuits or recovery circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Read Only Memory (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
- Ultra Sonic Daignosis Equipment (AREA)
- Stroboscope Apparatuses (AREA)
Abstract
根據一電子裝置的電源開啟,一電子裝置的一反及閘快閃記憶體的第一資料的位置係被確定。第一資料係被傳送至電子裝置的一鏡射隨機存取記憶體,並且,當存取反及閘快閃記憶體的第一資料的位置時,所輸出的第一資料係經由一串列式周邊介面以從鏡射隨機存取記憶體輸出至電子裝置的一主機裝置。
Description
本發明係關於一種積體電路及其運作。
反或閘快閃記憶體(NOR Flash memory)之架構提供了足夠的位置線以投射至一完整的記憶體範圍,因此反或閘快閃記憶體提供了隨機存取與短讀取時間之優點,並且可理想的應用於程式執行。相對的,反及閘快閃記憶體(NAND Flash memory)具有較小的記憶單元尺寸、較高的記憶體密度以及較高的寫入與擦去速度。然而,相較於反或閘快閃記憶體,反及閘快閃記憶體具有較慢的讀取速度,因此反及閘快閃記憶體不允許直接隨機存取。對於程式碼執行而言,特別是針對對於存取程式碼而言,反及閘快閃記憶體的執行速度係慢於反或閘快閃記憶體。由於反或閘快閃記憶體具有隨機存取的能力,因此反或閘快閃記憶體能夠於晶片內執行(eXecute in Place,XiP)模式中處理程式。相對的,反及閘快閃記憶體並不提供直接隨機存取,因此反及閘快閃記憶體不具有晶片內執行之能力。此外,反及閘快閃記憶體通常可能發生錯誤位元(bad bits)之狀況,因此當反及閘快閃記憶體進行資料傳輸時,其資料讀取之運作還必須整合錯誤更正碼之功能,以修復或補償錯誤位元的狀況。
為了克服上述之先前技術中存在的技術問題,本發明提供一種技術方案,該技術方案係基於串列式反及閘快閃記憶體(NAND Flash memory)與鏡射隨機存取記憶體(Shadow RAM)之硬體架構,利用映射表(mapping table)以存取程式與資料,其具有晶片內執行的能力,以達到提升資料存取速度以及並確保資料正確性的技術效果。
本發明提供一種方法,包括:根據一電子裝置的電源開啟而確定該電子裝置的一反及閘快閃記憶體中的一第一資料的位置,傳送該第一資料至該電子裝置的一鏡射隨機存取記憶體,以及當存取該反及閘快閃記憶體中的該第一資料的該位置時,經由一串列式周邊介面(Serial Peripheral Interface,SPI)從該鏡射隨機存取記憶體輸出該第一資料至該電子裝置的一主機裝置。
在本發明之上述方法中,該第一資料係為一開機引導加載程式(bootloader)的程式碼。該鏡射隨機存取記憶體中的該第一資料能夠被隨機存取。該第一資料係為一被該主機裝置執行的可執行程式,該第一資料係在該電子裝置起始的系統開機之後執行,並且在一晶片內執行模式(eXecute in Place,XiP)從該鏡射隨機存取記憶體擷取該第一資料中的指令。在系統開機後,該電子裝置可提供一命令以將該鏡射隨機存取記憶體映射至該第一資料以外的不同位置。
其中,根據該指令,一第二資料可從該反及閘快閃
記憶體傳送至該電子裝置的一系統記憶體,並且被傳送的第二資料可在該系統記憶體中執行。該第二資料係為一應用韌體程式碼。
其中,傳送該第二資料的步驟係包括:存取該反及閘快閃記憶體的一分頁,藉由隨機存取該反及閘快閃記憶體的該分頁,而在一指定位址讀取該第二資料,藉由通過該反及閘快閃記憶體的一分頁緩衝器(buffer)而輸出該第二資料至一資料快取區,而傳送該第二資料,以及從該資料快取區傳送該第二資料至一系統隨機存取記憶體。
其中,傳送該第一資料之步驟係包括:存取該反及閘快閃記憶體的一分頁,藉由隨機存取該反及閘快閃記憶體的該分頁,而在一指定位址讀取該第一資料,藉由通過該反及閘快閃記憶體的一分頁緩衝器而輸出該第一資料至一資料快取區,而傳送該第一資料,以及從該資料快取區傳送該第一資料至該鏡射隨機存取記憶體。存取該隨機存取記憶體的該分頁的步驟係包括:存取該反及閘快閃記憶體的複數個分頁。
其中,從該資料快取區傳送該第一資料至該鏡射隨機存取記憶體的步驟係包括:將暫時儲存於該資料快取區的該第一資料讀取至一錯誤更正碼(Error Correction Code,ECC)引擎,在該錯誤更正碼引擎中,對於該第一資料執行錯誤更正,以及根據所完成的該錯誤更正,將更正後的第一資料回傳至該資料快取。該指定位址係儲存於一非揮發性暫存器中。
其中,確定該第一資料的步驟係包括:因應於該電子裝置的該電源開啟而自動執行該電子裝置的運作的流程,其中該運作係包括根據反及閘快閃記憶體內的該第一資料的指定位址集而讀取該第一資料。
其中,該方法係包括資料讀取運作,該資料讀取運作包括:發送出複數個專屬指定命令以分別進行在該鏡射隨機存取記憶體與該反及閘快閃記憶體上的資料讀取運作,其中該電子裝置使用一用於隨機存取的一RD命令以及一用於存取該反及閘快閃記憶體的一分頁的一PgRD命令。
其中,資料讀取運作包括:發送出一統一命令以進行在該鏡射隨機存取記憶體與該反及閘快閃記憶體上的資料讀取運作,並且藉由一指示符信號(indicator signal)以指示在可變等待週期中資料是否有效而能夠傳送。該指示符信號係為一獨立信號或一複合信號。該複合信號使用一現有既存的資料選通信號(Data strobe signal,DS),當該記憶體完成準備以傳送資料時,該資料選通信號係從三態而被驅動至邏輯低準位狀態,其中該等待週期的長度可藉由控制該資料選通信號而組態配置,並且其中該輸出資料對齊於該資料選通信號。該複合信號使用一現有既存的中斷信號。
其中,資料讀取運作包括:根據包括於該第一資料中並且儲存於該鏡射隨機存取記憶體中的一位址,以執行資料讀取命令。資料讀取運作包括:藉由該電子裝置的一控制邏輯以驗
證來自該主機裝置的輸入位址,以及藉由檢查一映射表(mapping table)以確定該輸入位址是否對應至在該鏡射隨機存取記憶體與該反及閘快閃記憶體的資料讀取運作。該映射表包含複數個位址,其中該些位址係包括該反及閘快閃記憶體的一來源位置以及該鏡射隨機存取記憶體的一目的位置,並且該映射表在系統電源開啟時被建立,其中建立該映射表係根據紀錄駐留於該反及閘快閃記憶體的該第一資料的位置的一非揮發性暫存器。
在本發明的另一實施例中,亦提供一種方法,包括:根據一電子裝置的電源開啟而確定該電子裝置的一串列式反及閘快閃記憶體中的一第一資料的位置,存取該串列式反及閘快閃記憶體的一分頁,藉由隨機存取該串列式反及閘快閃記憶體的該分頁,而在一指定位址讀取該第一資料,藉由通過該串列式反及閘快閃記憶體的一分頁緩衝器而輸出該第一資料至一資料快取區而傳送該第一資料,以及從該資料快取區傳送該第一資料至該電子裝置的一鏡射隨機存取記憶體。
本發明之上述方法亦包括:在該電子裝置起始所執行的一系統開機之後,由一主機裝置執行在一晶片內執行模式在該鏡射隨機存取記憶體的該第一資料中的指令,以及根據該執行的指令,以將第二資料從該串列式反及閘快閃記憶體傳送至該電子裝置的一系統隨機存取記憶體。
其中,傳送該第二資料的步驟係包括:存取該串列式反及閘快閃記憶體的一分頁,藉由隨機存取該串列式反及閘快
閃記憶體的該分頁,而在一指定位址讀取該第二資料,藉由通過該串列式反及閘快閃記憶體的一分頁緩衝器而輸出該第二資料至一資料快取區而傳送該第二資料,以及從該資料快取區傳送該第二資料至該電子裝置的一鏡射隨機存取記憶體。
在本發明的另一實施例中,亦提供一種串列式反及閘快閃記憶體,係用以通過一串列式周邊介面以執行資料移轉運作,該串列式反及閘快閃記憶體包括:一反及閘快閃記憶體用以儲存資料,一非揮發性暫存器用以記錄用於資料移轉的來源位址,一鏡射隨機存取記憶體,係經由一資料快取區而連接於該反及閘快閃記憶體,其中該資料快取區係為從該反及閘快閃記憶體係關聯至該鏡射隨機存取記憶體,以及一控制電路,係連接於該反及閘快閃記憶體與該鏡射隨機存取記憶體,其中該控制電路用以:根據一電子裝置的電源開啟而確定該電子裝置的一反及閘快閃記憶體中的一第一資料的位置,以及傳送該第一資料至該電子裝置的一鏡射隨機存取記憶體。
本發明之上述裝置亦包括:連接於該控制電路的映射表,其中該映射表包括該第一資料的一反及閘快取記憶體位址與該鏡射隨機存取記憶體的位址資訊,並且其中該控制電路係用以:驗證從一電子系統的主機裝置傳送的反及閘快閃記憶體輸入位址,確定該輸入位址是否對應至該第一資料的該反及閘快閃記憶體位址,以及根據該確定結果以在該鏡射隨機存取記憶體中重新導向資料讀取運作,或讀取該反及閘快閃記憶體。串列式反及
閘快閃記憶體,更包括連接於該反及閘快閃記憶體與該鏡射隨機存取記憶體的一資料快取區,並且該資料快取區用以暫時儲存該串列式反及閘快閃記憶體所輸出的資料。錯誤更正碼引擎連接於該鏡射隨機存取記憶體與該資料快取區,其中該錯誤更正碼引擎用以:讀取暫時儲存於該資料快取區的第一資料,對於該錯誤更正碼引擎的該第一資料執行錯誤更正,以及根據所完成的該錯誤更正,將更正後的第一資料回傳至該資料快取區。
其中,串列式周邊介面匯流排包括資料輸入/輸出線、時脈信號線以及晶片選擇信號線,其用以在一主機裝置與該電子裝置的其他組件之間進行通信。串列式反及閘快閃記憶體更包括一指示符信號,該指示符信號係指示在可變等待週期中資料是否有效而能夠傳送。該指示符信號係為一獨立信號或一複合信號。該複合信號係為一現有既存的資料選通信號,當該記憶體完成準備以傳送資料時,該資料選通信號係從三態(tri-state)而被驅動至邏輯低準位狀態,其中該等待週期的長度可藉由控制該資料選通信號而組態配置,並且其中該輸出資料對齊於該資料選通信號。該複合信號係為一現有既存的中斷信號(interruption signal)。
透過閱讀以下圖式、詳細說明以及申請專利範圍,可見本發明之其他方面以及優點。
100:電子裝置系統
110:裝置
112:裝置控制器
113:控制電路
114、124:串列式周邊介面
115:反及閘快閃介面
116:反及閘快閃記憶體晶粒
120:主機裝置
121:處理器
122:晶載隨機存取記憶體
123:雜項模組
130:外部隨機存取記憶體/動態隨機存取記憶體
140:串列式周邊介面匯流排
200:記憶裝置
202:控制電路
204:反及閘快閃記憶體
205:控制邏輯
206:分頁緩衝器
207:反及閘介面
208:資料快取區
210:鏡射隨機存取記憶體
212:錯誤更正碼引擎
214:控制暫存器
218:映射表
220:資料緩衝器
302~330:步驟
400、500:時序圖
第1圖係繪示一電子裝置系統100之一範例。
第2圖係繪示能夠在該電子裝置系統中提供第一裝置110之一示例性裝置200之方塊圖。
第3圖係繪示在晶片內執行(XiP)模式中的運作之一示例性程序300之流程圖。
第4A圖係繪示在一實施例中的映射隨機記憶體(shadow RAM)中的資料讀取運作之時序圖。
第4B圖係繪示在一實施例中的反及閘快閃記憶體(NAND flash memory)之中的資料讀取運作之時序圖。
第5圖係繪示在另一實施例中的電子裝置系統100中的資料讀取運作之時序圖。
本發明申請案係描述一種具有晶片內執行(eXecute in Place,XiP)能力之反及閘快閃記憶體(NAND flash memory)之電子裝置。具體而言,該電子裝置包括一主機裝置,該主機裝置係以串列方式將資料傳送至該反及閘快閃記憶體,並從該反及閘快閃記憶體傳送資料。該反及閘快閃記憶體包括反及閘快閃記憶體,該反及閘快閃記憶體具有串列式(serial)或並列式(parallel)介面以及用於資料儲存之高記憶體密度。為了要改善該電子裝置之反應時間,並且提供隨機存以於晶片內執行模式中進行資料讀取運作,該電子裝置用以將儲存於該反及閘快閃記憶體的資料鏡射至一映射隨機記憶體(shadow RAM)。更特定而言,當
該電子裝置之電源開啟時,該電子裝置將一可執行的程式(例如:開機引導加載程式(bootloader))從該反及閘快閃記憶體自動地移轉至該映射隨機記憶體。上述之移轉係初始於決定儲存於該反及閘快閃記憶體陣列之該可執行的程式(例如:一開機引導加載程式)之一位置範圍。而後,該電子裝置係經由存取該反及閘快閃記憶體的一或多個分頁(page)以移轉該可執行的程式,並且在該一或多個分頁之每一者上存取該可執行的程式。該可執行的程式的資料包裹(例如:一或多個字元)係暫時的儲存於一資料快取區(data cache)以藉由該電子裝置之一錯誤更正碼(Error Correction Code,ECC)引擎進行資料錯誤更正。該可執行的程式係持續進行傳輸,其係持續至儲存該可執行的程式的反及閘快閃記憶體的最後一個分頁完成資料讀取為止。
對於儲存於該電子裝置的應用韌體而言,該電子裝置可將該可程式化程式(例如:開機引導加載程式)從該映射隨機記憶體中讀取出來而於該晶片內執行模式中執行。該可執行的程式可包括運作命令(例如:資料讀取運作)以及儲存於該反及閘快閃記憶體之應用韌體之位置範圍資訊。藉由在晶片內執行模式中執行一開機引導加載程式,該電子裝置能夠將該應用韌體從該反及閘快閃記憶體輸出至一系統記憶體,以執行包括直接從該系統記憶體執行該應用之進一步運作。
第1圖係繪示包括一主機裝置120、一記憶裝置110與一外部記憶體130之一電子裝置系統100之一範例。該主機裝
置120包括一處理器121,用以執行該主機裝置120與一晶載(on-chip)記憶體(例如:用以儲存資料或指令之晶載隨機記憶體122)之運作。該晶載隨機記憶體122係連接於該處理器121以移轉資料至該處理器121,或從該處理器121移轉資料。此外,該主機裝置120並包括在一串列式周邊介面(serial peripheral interface,SPI)124之中的複數個輸入端子(圖中未顯示),而該主機裝置120可經由該些輸入端子傳送或接收指令或資料至該記憶裝置110。該主機裝置並包括連接至該處理器121的複數個雜項模組(Misc.module)123。於本實施例中,該本機裝置120將接收到的資料移轉至嵌入於該電子裝置系統100並且連接於該主機裝置120的該外部記憶體130。於本實施例中,該外部記憶體130係為一隨機存取記憶體,其儲存該主機裝置120使用之指令與資料。該外部記憶體130可以是動態隨機存取記憶(dynamic random-access memory,DRAM),其儲存指令與資料。此外,如第1圖所示,串列式周邊介面匯流排(SPI bus)140係連接於該主機裝置120與該裝置110以進行通訊。通常而論,該串列式周邊介面匯流排140在全雙工模式中使用具有單一主機端之「主機端-從屬端架構」以連接於電子裝置。在一些實施方式之中,該串列式周邊介面匯流排140係提升增強為支援多重輸入/輸出(I/O)而成為聯合電子裝置工程委員會固態技術協會(JEDEC Solid State Technology Association)定義規範之擴充式串列式周邊介面匯流排(Expanded SPI,xSPI)。
該裝置110包括一裝置控制器112,該裝置控制器112可以是一第一晶粒(die)。並且,該裝置110亦包括一反及閘快閃記憶體晶粒116,該反及閘快閃記憶體晶粒116可以是一分離的第二晶粒。該裝置控制器112包括一控制電路113、一串列式周邊介面114以及一反及閘快閃介面115。在一些實施方式中,該系統100可包括一或多個連接於該主機裝置120的記憶裝置110。於此,該反及閘快閃記憶體晶粒116可以是反及閘快閃記憶體之陣列,其依序排列於分頁之中。該裝置控制器112係連接於該反及閘快閃記憶體晶粒116並用以從該及閘快閃記憶體晶粒116讀取資料或寫入資料至該及閘快閃記憶體晶粒116。如第1圖所示,該控制器112係用以經由該串列式周邊介面114與該串列式周邊介面匯流排140以串列方式移轉資料。
在一些實施方式中,該裝置110係為一記憶裝置。並且,在一些實施方式中,該裝置110係為被一主機端裝置(master device)所選取的一從屬端裝置(slave device);其中,該主機端裝置例如為該主機裝置120。
在一些實施方式中,該主機裝置120係為一主機端裝置,並且該記憶裝置110係為一從屬端裝置。該電子裝置系統110具有單一主機端-多重從屬端的匯流排拓樸結構(topology),其中該串列式周邊介面匯流排140與該主機端裝置120及該從屬端裝置110進行通訊。
該裝置控制器112包括一控制電路113,該控制電
路113可以是狀態機(state machine)控制器、特殊應用微控制器或通用微處理器的其中一者。於此,該控制器112係控制該反及閘快閃記憶體晶粒116上的資料讀取與寫入之運作。在本範例之中,該記憶裝置110包括兩個不同的晶粒(例如:該控制器晶粒112或該反及閘快閃記憶體晶粒116。在一些其他的實施方式中,該控制器112與該反及閘快閃記憶體晶粒116係整合於同一個晶粒之中,例如:係以單片一體(或稱為「單石」,monolithically)方式來製造該記憶裝置110。
在本範例中,該處理器121係用以執行指令並且處理資料,其中上述被執行或處理的指令與資料係經由該串列式周邊介面匯流排140而得自於該記憶裝置110。在一些實施方式中,該處理器121係為通用微處理器或者特殊應用微控制器。此外,該處理器121亦可為中央處理器。
該處理器121亦存取來自晶載隨機存取記憶體122的指令與資料。例如,記憶裝置110中的可執行的程式於晶片內執行模式被處理器121執行之後,其他指令或被處理的資料(例如:應用韌體)能夠從記憶裝置110經由串列式周邊介面匯流排140而移轉至晶載隨機存取記憶體122,而後,處理器121能夠執行來自晶載隨機存取記憶體122的指令。
在一些實施方式中,該外部記憶體130係為快取記憶體,而如第1圖所示,該快取記憶體係經由該主機裝置120連接於該記憶裝置110。該外部記憶體130儲存來自於該記憶裝置
110的指令碼及/或該處理器121所請求的資料,其中該指令碼係對應至該處理器121所執行的指令,並且該資料係為該處理器121於運行期間所請求而得。
該裝置控制器晶粒112將指令碼及/或資料從該反及閘快閃記憶體晶粒116移轉至該外部記憶體130。在本範例中,該反及閘快閃記憶體晶粒116係為非揮發性記憶體,其用以長期儲存指令及/或資料;該反及閘快閃記憶體晶粒116係例如為串列式反及閘或並列式反及閘快閃記憶裝置。在記憶體晶粒116係為反及閘快閃記憶體的實施方式中,該記憶裝置110係為反或閘快閃記憶體,其藉由管理同樣似所連接的反及閘快閃記憶體之錯誤更正、映射(shadowing)、毀損區塊(bad block)置換或跨躍(skipping)等等的機制來模擬成提供類似於反或閘快閃記憶體之特徵。
串列式周邊介面匯流排(例如:第1圖所示之該串列式周邊介面匯流排140)係為在該裝置110中用以存取該反及閘快閃記憶體所常用的典型介面。在整合於嵌入式系統(例如:微控制器)之內部的狀況下,相較於並列式反及閘快閃記憶體,當串列式反及閘快閃記憶體在每一時脈週期傳送一位元的資料時,該串列式反及閘快閃記憶體於該電子裝置系統110的印刷電路板(PCB)上係需要較少的線路連接。對於電子裝置系統100而言,採用串列式反及閘快閃記憶體之設置,其具有以下優點:其佔據較少的電路板空間、低電能功率消耗以及降低整體系統之成本。
在本範例中,該反及閘快閃記憶體晶粒116可以是並列式反及閘快閃記憶體,例如:具有並列式介面的兩千兆位元(2Gb)單一層級儲存單元(single level cell,SLC)的反及閘快閃記憶體。快閃記憶裝置110將來自反及閘快閃記憶體晶粒116的並列式資料轉換為串列格式,以經由該裝置控制器112將該轉換後的串列格式的資料輸出於該串列式周邊介面114。反及閘快閃記憶體可支援分頁大小為1168+64個字元並且區塊大小為128K+4K字元的四線匯流排。反及閘快閃記憶體亦可支援在x1、x2、x3或x4模式下所讀取得到的隨機資料,其中,上述讀取資料的陣列至暫存器的延遲等待時間為25us,並且其操作於104MHz的頻率。另外,該反及閘快閃記憶體可以在大約300us的時間內編程一分頁、在大約1ms的時間內擦除一區塊、並且操作於範圍介於2.7V至3.6V的單一電壓。並且,該反及閘快閃記憶體晶粒116可與該裝置控制器112協同運作以支援4位元的錯誤更正碼(ECC)以及528字元的運作。在另一個替代的實施方式中,該反及閘快閃記憶體可以是串列式反及閘快閃記憶體。
如前文所述,該串列式周邊介面匯流排140係為串列式同步通訊匯流排,其係用於主機端裝置120和裝置110之間的通訊和相互連接。該串列式周邊介面匯流排140支援單一主機端-多重從屬端的匯流排拓樸結構,其同步時脈訊號係為電子裝置系統100的主機端裝置120所提供。該串列式周邊介面匯流排140並且支援24位元和32位元之定址、用於DDR裝置的資料
讀取與寫入、以及作為擴充式串列式周邊介面(xSPI)的多重連線介面。
在一些實施方式中,外部系統記憶體130可以是靜態隨機存取記憶體(SRAM),虛擬靜態隨機存取記憶體(PSRAM)或動態隨機存取記憶體(DRAM)。其中,該外部系統記憶體130可以位於該主機裝置120的外部。於此狀況之中,該系統記憶體122用以儲存經由該主機裝置120從記憶裝置110所移轉的指令和資料。
並且,如前文所述,該電子裝置系統100可包括多重裝置110,其係作為其中的從屬端裝置;並且,在第1圖所示的模式之中,可以藉由使用不同的技術來增加從屬端裝置的數量。例如:整合一多工器以產生晶片選擇信號。
第2圖係繪示可於電子裝置系統100之中提供第一記憶裝置110之示例性記憶裝置200之方塊圖。於此,該記憶裝置200係為一積體之單片一體型式(或稱為「單石」,)的晶片,其用於實施第1圖的記憶裝置110。該裝置200包括反及閘快閃記憶體晶粒116和其關聯的控制器112。在本範例中,該控制器112包括電路區塊,其例如為:控制電路202、錯誤更正碼引擎212、控制暫存器214、映射表218、串列式周邊介面114以及反及閘介面115。此外,該控制器112包括鏡射隨機存取記憶體210和資料緩衝器(buffer)220,其係經由反及閘介面115而連接於反及閘快閃記憶體晶粒116。
在本範例中,反及閘快閃記憶體晶粒116包括反及閘快閃記憶體204,其係作為反及閘快閃陣列。反及閘快閃記憶體204可以與其他組件直接整合並集成在記憶裝置200中。反及閘快閃記憶體晶粒116連接於控制邏輯205,並且反及閘快閃記憶體晶粒116係被控制邏輯205所操作;其中控制邏輯205係根據從主機端裝置120經由串列式周邊介面114,反及閘介面115、207所傳送的命令來操作反及閘快閃記憶體晶粒116。相較於與其他類型的快閃記憶體(例如:反或閘快閃),該反及閘快閃記憶體晶粒116具有較小的記憶體單元尺寸和較高的資料寫入與擦除速度。然而,反及閘快閃記憶體204之存取延遲時間通常較長,因此其無法為資料讀取提供隨機存取。在每個資料讀取週期開始時,係藉由位址和命令而依序讀取每一分頁的內容。再者,反及閘快閃記憶體204係經由反及閘快閃記憶體204的分頁緩衝器206以連接至資料快取區208。
在本範例中,反及閘快閃記憶體204的位元線可耦合至分頁緩衝器206。分頁緩衝器206可包括感測放大器和儲存元件,其例如為:用於其連接的每一位元線的程式緩衝器或鎖存器(latch),該程式緩衝器或鎖存器係對於反及閘快閃記憶體204的特定記憶單元所寫入或讀取的資料進行儲存。以通常的狀況而言,分頁緩衝器206與反及閘快閃記憶體204兩者係為同時並行製造並且具有同樣的佈局。分頁緩衝器206通常係相鄰於裝置
200上的反及閘快閃記憶體204的存儲單元。分頁緩衝器206的大小係等於或大於反及閘快閃記憶體204的一個分頁。
如第2圖所示,該資料快取區208係耦合於鏡射隨機存取記憶體210與分頁緩衝器206,以用於暫時性的資料儲存。資料快取區208與鏡射隨機存取記憶體210之間的資料暫態移轉係經由反及閘介面115和207以及位於控制器112中的資料緩衝器220。存儲在反及閘快閃記憶體204中的資料可經由分頁緩衝器206而輸出,並且該資料可暫時性的儲存於資料快取區208中。通常,資料快取區208是隨機存取記憶體;相較於反及閘快閃記憶體204,隨機存取記憶體具有更快的存取速度,並且隨機存取記憶體通常與反及閘快閃記憶體204係為物理上分離設置(兩者於實體上為分離設置)。在該範例中,資料快取區208中係允許隨機位址資料讀取,並且資料快取區208的大小可以類似於分頁緩衝器206的大小,或者為分頁緩衝器206大小的的兩倍甚至三倍。在一些實施方式中,資料快取區208係位於反及閘快閃記憶體204的內部。
在此範例中,控制電路202係經由其串列式周邊介面114可操作地耦合於串列式周邊介面匯流排140,以經由串列式周邊介面124接收晶片選擇信號CS #,時脈信號CLK以及指令和資料。可經由串列式周邊介面124的資料I/O線以輸入命令,而後,該命令係移轉至控制邏輯202和控制暫存器214。控制電路202係與控制暫存器214結合,以解譯來自主機裝置120的命
令並執行對應的操作,例如:在及閘快閃記憶體204中進行資料讀取,資料擦除或資料寫入操作。
如第2圖所示,控制電路202連接於映射表218,其中,該映射表218可由內容可定址記憶體,查尋表或暫存器組排所組成。該映射表218用以根據使用者預先組態設定的非揮發性暫存器而將反及閘快閃記憶體204中的特定資料區域映射到鏡射隨機存取記憶體210。在一種實施方式中,該非揮發性暫存器係位於反及閘快閃記憶體204的特殊保留區域中,並且該非揮發性暫存器於系統100電源開啟時被讀取至控制暫存器214。
在本範例中,係根據該映射表218,該控制電路202係對於該映射表218進行管理,該控制電路202並對於完整位址字元中的任何輸入位址進行檢查,以進行鏡射隨機存取記憶體210或反及閘快閃記憶體204中的資料讀取操作或資料寫入操作。例如,記憶裝置200的資料讀取操作係包括讀取在映射表218中具有所選取之位址的資料。資料讀取位址係從該串列式周邊介面匯流排140的資料I/O線傳送至該控制電路202。一但該控制電路202接收輸入資料讀取位址時,該控制電路202驗證資料讀取位址;並且,如果該輸入位址係屬於反及閘快閃記憶體204的鏡射區域的範圍,則該控制電路202將資料讀取位址重定導向至鏡射隨機存取記憶體210的記憶單元位址。否則,如果輸入位址不在該鏡射區域內,則控制電路將僅對於反及閘快閃記憶體204進行存取。
鏡射隨機存取記憶體210為資料讀取操作提供了隨機存取,其亦提供了接近於零的等待延遲時間;並且,該鏡射隨機存取記憶體210能夠如同反或閘快閃記憶體一般地進行存取,並且該鏡射隨機存取記憶體210甚至能夠進行比反或閘快閃記憶體更快速的存取。在本範例中,該鏡射隨機存取記憶體210用以對於從反及閘快閃記憶體204傳送的資料進行儲存,並且對於該資料進行鏡射。該鏡射隨機存取記憶體210亦能夠對於該系統頻繁執行的其他應用程序進行儲存,例如:其根據稍後進行的進一步的組態配置,而在該系統開機引導加載之後,進行中斷例行程序之運作。
在記憶裝置200中,係指定該錯誤更正碼引擎212,以根據所偵測到的該讀取資料的錯誤更正碼字元來執行資料錯誤連接。如第2圖所示,該錯誤更正碼引擎212經由該反及閘介面與該資料緩衝器220而耦合至資料快取區208,並且,該錯誤更正碼引擎212用以偵測來自該反及閘快閃記憶體204而傳送至該鏡射隨機存取記憶體210的輸出資料。錯誤更正碼引擎212係計算用於錯誤更正碼之錯誤的輸出資料,其中該錯誤更正碼之錯誤係發生於根據資料快取208所傳送(其係經由資料緩衝器220而進行傳送)的個別的錯誤更正碼字元的資料讀取。此外,更進一步而言,控制寄存器214係耦合於與串列式周邊介面114和控制電路202。該控制寄存器214用以儲存根據經由串列式周邊介面匯流排140的命令輸入的控制參數,並且,該控制寄存器214亦進
行控制邏輯以回應來自主機裝置120的不同命令,該控制邏輯亦用以操作記憶裝置200。
根據合適的通信協定,該記憶裝置200能夠以介面連接於與主機系統或主機裝置(例如:第1圖所示的主機裝置120)。在本範例中,記憶裝置200係藉由用於相互連接的串列式周邊介面114,以介面連接於主機裝置(未繪示於第2圖中)。如前文所述,該串列式周邊介面114係包括以下訊號線:用於攜載指令和資料的資料輸入/輸出線路(I/O線路)、用於攜載由主機裝置所驅動的時脈信號的時脈線路(CLK線路)、以及用於攜載晶片選擇信號的晶片選擇線路,其中該晶片選擇信號係用以選取記憶裝置200進而在主機裝置120和記憶裝置200之間進行通信。
第3圖係繪示了運行於系統100中的晶片內執行模式而進行操作的示例性的過程300的流程圖。該示例性的過程300包括兩個階段。其中,第一階段之流程係如步驟302至步驟316所示。第一階段包括:將第一資料從反及閘快閃記憶體204鏡射到鏡射隨機存取記憶體210。並且,第二階段之流程係如步驟318至步驟330所示。第二階段包括:藉由在鏡射隨機存取記憶體210中的晶片內執行模式下執行第一資料,而將第二資料從反及閘快閃記憶體204移轉至系統隨機存取記憶體。
晶片內執行是一種直接在長期儲存媒介(例如:存儲隨機存取記憶體)中執行程式或指令的方法,該晶片內執行之方法並非將資料從其他記憶體複製到系統隨機存取記憶體而執行。在
本範例中,如第2圖所示,該鏡射隨機存取記憶體210係作為記憶裝置,其在系統初始化期間於晶片內執行模式下執行程式,因而其能夠減少記憶裝置存取時間,並能夠改善系統回應之時間。
在步驟302中,當系統100之電源開啟時,記憶裝置200的控制電路202自動將儲存在反及閘快閃記憶體204中的第一資料移轉/鏡射到鏡射隨機存取記憶體210。接下來,在步驟304中,第一資料的移轉係起始於:確定反及閘快閃記憶體204中的第一資料的位址範圍。於此,反及閘快閃記憶體204中的第一資料的位址被預先儲存於控制器晶片202的映射表218中。在本範例中,係根據電源開啟後的早期階段的暫存器內容,而對於映射表218進行組態配置。在一些實施方式中,映射表218用以:在保留的反及閘快閃記憶體204區域中儲存使用者之特定映射信息,而後,在非常早期的階段,當系統100電源開啟時將該特定映射信息轉儲存到暫存器。
因應於系統100之電源開啟,裝置200可以自動存取映射表218並確定反及閘快閃記憶體204中的第一資料的資料讀取位址。映射表218可以包括邏輯區塊位址以及其對應的物理性區塊位址。當記憶裝置200接收到從主機裝置120傳送的邏輯區塊位址時,控制電路202係根據映射表而將邏輯塊位址轉換為物理性區塊位址;其中,物理性區塊位址被映射到電子裝置系統100的各種不同的記憶體(包括:鏡射隨機存取記憶體210以及反及閘快閃記憶體)。
在本範例中,針對於晶片內執行模式下的執行運作而言,映射表218需要被更新,以使得任何移轉的第一資料之對應邏輯位址都指向鏡射隨機存取記憶體210,而非指向反及閘快閃記憶體204。
通常,第一資料是一個小區塊的程式碼或程式(例如:開機引導加載程式),其可以在晶片內執行模式下執行。如果開機引導加載程式的運作可被串列式周邊介面-反及閘快閃(SPI-NAND)本身所支援,則開機引導加載程式可以藉由類似反或閘的串列式周邊介面-反及閘快閃的存取運作來實施,甚至可以採用連續模式來實施開機引導加載程式。在本範例中,首先,係將開機引導加載程式從反及閘快閃記憶體204鏡像到鏡射隨機存取記憶體210,而後,由處理器121在鏡射隨機存取記憶體210中以晶片內執行模式來執行開機引導加載程式,以使得第二資料(例如:應用韌體)可從反及閘快閃記憶體204移轉至系統隨機存取記憶體(例如:系統記憶體122或外部隨機存取記憶體/動態隨機存取記憶體130)。此外,開機引導加載程式亦可包括最小程式,而在存取之前,該開機引導加載程式之最小程式對於系統隨機存取記憶體及/或外部隨機存取記憶體/動態隨機存取記憶體130進行適當設定。
再參照至第3圖,其中,一旦確定了第一資料讀取位址,控制電路202即開始存取反及閘快閃記憶體204以移轉第一資料。其中,係藉由重複疊代(iteration)執行如第3圖所示之
步驟306至步驟314來達成從反及閘快閃記憶體204移轉第一資料至鏡射隨機存取記憶體210。
對於反及閘快閃記憶體204的讀取操作包括至少兩個程序:分頁讀取操作、以及對於該分頁的隨機資料讀取操作。其中,反及閘快閃記憶體204的分頁的存取通常係為讀取操作的瓶頸,其可能需要超過25us的時間。一旦,根據映射表而對於物理性區塊位址(其係作為資料讀取起始位址)進行映射,則控制邏輯對於反及閘快閃記憶體204的特定分頁進行存取,並且讀取位於起始位址的第一資料(如步驟306)。從反及閘快閃記憶體204的分頁輸出指定的第一資料,並且,該第一資料係經由分頁緩衝器而暫時的儲存於資料快取區(如步驟308)。
如前文所述,在資料快取區208中允許對於位址資料進行隨機存取,並且資料快取區208的大小係類似於或大於反及閘快閃記憶體204的分頁。藉由上述之組態配置方式,相較於反及閘快閃記憶體204,該錯誤更正碼引擎能夠以更快速度對於資料快取區進行存取。在本範例中,資料快取區208中的資料係進一步的經由反及閘介面115、207而被移轉至資料緩衝器220。當該資料從反及閘介面115被移轉至資料緩衝器220時,錯誤更正碼引擎212亦可以同時擷取資料,並在資料移轉後立即計算出正確的資訊。而後,錯誤更正碼引擎能夠對於資料緩衝區220中的錯誤進行更正。
因應於前述之所完成的錯誤資料更正,控制電路202係控制資料緩衝器220以將第一資料的更正後資料封包輸出到鏡射隨機存取記憶體210(如步驟312)。在本範例中,在記憶裝置200內的區塊之間進行傳輸的資料封包的寬度可以是8位元字寬,或者大於8位元字寬。
第一資料係儲存於反及閘快閃記憶體204的單個分頁上。在一些實施方式中,第一資料的資料區大小係具有更大的尺寸量衡,並且第一資料被儲存在反及閘快閃記憶體204的多個分頁上。因此,控制電路202係進行確認:目前所存取的反及閘快閃記憶體204的分頁是否為資料讀取運作的最後一個分頁(如步驟314)。若上述確認結果為否定(並非資料讀取運作的最後一個分頁),則當目前的分頁的最後一個資料封包被傳送出去時,將發出新的分頁存取命令,以在反及閘快閃記憶體204的下一個分頁上進行資料讀取。如第3圖所示,在反及閘快閃記憶體204的下一個分頁上所進行的資料讀取係為重複步驟306到步驟314的運作。
在一些實施方式中,對於反及閘快閃記憶體204的存取係從反及閘快閃記憶體204上的目前分頁的結束點連續進行至下一分頁的初始點。對於各種不同的反及閘快閃記憶體204的分頁進行存取時,不同分頁的各自存取動作之間係耗費等待時間,並且,反及閘快閃記憶體晶粒116可以使用多重分頁存取運作以對於反及閘快閃記憶體的多重分頁進行存取。在本範例中,係由
控制電路202經由反及閘介面115、207將該分頁存取運作初始啟動至反及閘快閃記憶體晶片晶粒116。而一旦第一資料的最後一個資料封包從反及閘快閃記憶體204中傳送出來,並且該資料封包經由資料錯誤更正而儲存於鏡射隨機存取記憶體210中,則完成第一資料的鏡射(如步驟316)。
當快閃記憶體完成準備時(如步驟318),記憶裝置200的系統開機引導係開始提供用於運行程式或應用程序的正常執行環境(如步驟320)。而對於較小的嵌入式系統,通常係藉由將核心(kernel)加載到主記憶體(例如:外部記憶體130)中來初始化系統開機引導,並開始其執行。初始系統開機引導加載程式可以儲存在電子裝置系統100的唯讀記憶體(read only memory,ROM)中。對於其他較小的嵌入式系統而言,可以在記憶裝置200中儲存第二開機程式(步驟322中提到的開機引導加載程式)。另一方面,對於主機裝置120中不具有唯讀記憶體的某些嵌入式系統而言,該開機程式係作為步驟322中提到的開機引導加載程式而儲存於記憶裝置200中。
在本範例中,一旦開始進行系統開機引導,係藉由執行晶片內執行模式下的鏡射隨機存取記憶體210中的第一資料(如步驟322),則應用程序資料(例如:應用韌體)之鏡射係開始將應用程序資料(步驟322中提到的開機引導加載程式)從反及閘快閃記憶體204傳送到外部系統記憶體130或晶載隨機存取記憶體122。於此,主機裝置120執行開機引導加載程式,其最初是從
反及閘快閃記憶體204鏡射而來,並且目前儲存在鏡射隨機存取記憶體210;而相較於反及閘快閃記憶體204(甚至相較於反或閘快閃記憶體),上述之實施方式(開機引導加載程式最初從反及閘快閃記憶體204鏡射而來,並且目前儲存在鏡射隨機存取記憶體210)具有隨機存取的能力和更短的存取時間。
以晶片內執行模式執行開機引導加載程式係包括在完整的位址字元週期中發送出資料讀取命令並且傳送資料讀取位址。在本範例中,開機引導加載程式包括資料讀取指令以及參考至第二資料(該第二資料例如為:儲存於反及閘快閃記憶體204中的應用韌體)的資料讀取位址。主機裝置的處理器121從鏡射隨機存取記憶體210中擷取指令和資料,並根據從鏡射隨機存取記憶體210中擷取得到的指令向外部系統記憶體130發送出讀取命令(該讀取命令係具有:用於將反及閘快閃記憶體204的第二資料讀取出來的位址)。一旦反及閘快閃記憶體204完成準備,則經由分頁緩衝器206輸出第二資料的資料封包,並且,第二資料的資料封包係暫時的儲存在資料快取區208中。類似於在步驟310中所述的錯誤更正運作,一旦資料更正完成後,該錯誤更正碼引擎212係將更正後的資料封包回傳至資料緩衝器220。而在資料錯誤更正之後,第二資料的資料封包係從資料緩衝器220以串列方式進行傳送,並且經由串列式周邊介面匯流排140而傳送到外部系統記憶體130或晶載隨機存取記憶體122。對於儲存在反及閘快閃記憶體204的多重分頁上的第二資料而言,主機裝置120根
據儲存在開機引導加載程式中的指令而使用各種不同的命令(該些命令例如為:PgRD命令以及RD命令)來存取存儲在反及閘快閃記憶體204的多個分頁上的資料。另外,主機裝置120來回反覆的存取鏡射隨機存取記憶體210和反及閘快閃記憶體晶粒116(如步驟326)以在晶片內執行模式下執行資料讀取指令並且傳送第二資料。
在另一個實施例中,主機裝置120可以僅對於隨機存取記憶體進行存取,並且僅執行一次資料讀取命令,以存取反及閘快閃記憶體204並從反及閘快閃記憶體204的多重個分頁連續地傳送第二資料。例如,記憶裝置200用以使用統一的資料讀取命令(例如:RD命令),以從反及閘快閃記憶體204的多重分頁輸出資料,其無需在鏡射隨機存取記憶體210中發送出多重資料讀取命令。在下文以及第4圖與第5圖之圖式中,係更詳細的敘述該組態配置以及統一指令設定。
在其他實施方式中,係由主機裝置120提供用於存取反及閘快閃記憶體204的位址字元。主機裝置120經由串列式周邊介面匯流排140以及串列式周邊介面114將用於資料讀取運作的位址字元傳送至記憶裝置200的控制電路202。一旦控制電路202接收到位址資料,控制電路202即驗證該位址;並且,當該位址指向程式碼時,其根據映射表218而執行重新導向至鏡射隨機存取記憶體的位址。轉換後的位址將被傳送至鏡射隨機存取記憶體210,其用於在晶片內執行模式下執行程式。
記憶裝置200重複疊代的執行上述步驟322至326,直到將所有第二資料(例如:應用韌體)傳送到外部系統記憶體130或晶載隨機存取記憶體122(如步驟328)。而在第3圖所示的處理流程的最後一個步驟中,主機裝置120從外部系統記憶體130或晶載隨機存取記憶體122執行應用(如步驟330),以達到更短的記憶體存取時間和較佳的系統效能。
對於在晶片內執行模式下的運作而言,例如,執行存儲在鏡射隨機存取記憶體中的指令以分別執行資料讀取或資料寫入之運作(上述資料讀取或資料寫入運作係往返於反及閘快閃記憶體204之間),首先,主機裝置120對於鏡射隨機存取記憶體進行存取以讀取運作指令,而後,主機裝置120對於反及閘快閃記憶體204進行存取以傳輸用於執行指令的資料。相較於存取系統中的其他記憶體(例如:反及閘快閃記憶體204),隨機的存取鏡射隨機存取記憶體(用於晶片內執行模式下的運作)則更為快速,因此上述的組態配置可提供更高的系統效率。
第4A圖與第4B圖繪示了系統100中的資料讀取運作的時序圖。該些時序圖顯示了當經由串列式周邊介面匯流排140將資料從記憶裝置200讀取到主機裝置(例如:主機裝置120)時所使用的示例性的波形。具體而言,第4A圖和第4B圖顯示了存取鏡射隨機存取記憶體以取得指令,並且,而後存取反及閘快閃記憶體204以將資料傳輸至系統隨機存取記憶體。在本範例中,第4A圖和第4B圖顯示的時序圖包括用於資料讀取運作的三個階
段,其包括:1)命令與位址階段;2)虛擬週期階段;3)資料階段。這三個階段係以串列方式佈置,以完成將資料從記憶裝置200傳輸到主機裝置120。
如第4A圖所示,裝置200使用RD命令以從鏡射隨機存取記憶體210讀取指令。在另一種方式中,如第4B圖所示,裝置200使用PgRD命令以及其後的RD命令以從反及閘快閃記憶體204的特定分頁讀取資料。於此,RD命令係用於分別從鏡射隨機存取記憶體210或反及閘快閃記憶體晶粒116的分頁中擷取資料讀取指令或資料。另一方面,PgRD命令之運作則不同於RD命令;PgRD命令係用於存取反及閘快閃記憶體204的特定分頁以進行資料讀取運作。在本範例中,指令係儲存於鏡射隨機存取記憶體210中;並且,晶片內執行模式下運作所對應的資料(例如:應用韌體)係儲存於反及閘快閃記憶體204中。
參考第4A圖,在發送出晶片選擇信號CS #之後,在較早的時脈週期中係使用SI/O引腳以將RD命令和完整位址字元(例如:32位元的位址)發送到裝置200中。一旦在命令與位址階段的指令資料傳輸完成後,虛擬週期階段即開始進行緩衝。在本範例中,虛擬週期係由從屬端裝置(例如:存儲裝置200)所確認,其允許傳遞指令資料於記憶裝置200,並使得記憶裝置200完成準備以進行資料傳輸。在虛擬週期的期間,記憶裝置200根據所接收到的指令資料以準備指定的資料,其用於向主機裝置120傳輸資料。例如,當裝置200接收到RD命令以及資料讀取
位址時,則開始從其鏡射隨機存取記憶體210讀取指令。而在資料階段,指令從鏡射隨機存取記憶體210發送出來並傳送至串列式周邊介面匯流排140。在本範例中,所輸出指令封包係對準於時脈信號;並且,四個時脈週期係用於傳輸32位元的指令;上述之32位指令係儲存在鏡射隨機存取記憶體210中,其用於在每個時脈的單次傳輸的8位元資料寬度之I/O匯流排。
在另一種替代的實施方式中,參照第4B圖,用於反及閘快閃記憶體204上的資料讀取運作的「命令和位址」階段,其係包括PgRD命令與RD命令。在本範例中,係先傳送PgRD命令與其後的反及閘快閃記憶體204分頁的位址字元,而後再傳送”RD”命令以及隨機位址(該隨機位址係位於該反及閘快閃記憶體204的已識別分頁)。在PgRD和RD命令之間將耗費等待延遲時間,該等待延遲時間係關聯於反及閘快閃記憶體204分頁的存取時間。如前文所述,對於反及閘快閃記憶體204的分頁進行存取(例如:藉由執行PgRD命令)可能將耗費更長時間(例如:25us或更長時間)。上述之等待延遲時間係肇因於反及閘快閃記憶體204的特性和架構,而該等待延遲時間係為資料讀取運作的主要瓶頸。一旦反及閘快閃記憶體204的指定分頁被存取,則執行RD命令以讀取儲存在反及閘快閃記憶體204分頁上的隨機位址的資料。而類似於在映射靜態隨機存取記憶體上的指令讀取,從反及閘快閃記憶體204的輸出資料封包係對齊於時脈信號;並
且,在本範例中,係傳送出儲存在反及閘快閃記憶體204中的32位元資料。
在實際狀況中,所指定的資料可以儲存在反及閘快閃記憶體204的多重分頁上。具有這種組態配置的記憶裝置200必須進行多次的重複移轉PgRD命令以存取反及閘快閃記憶體204的多重分頁;並且重複移轉RD命令以存取反及閘快閃記憶體204的相應分頁上的隨機位址。
資料讀取命令(包括:圖4B中繪示的PgRD命令和RD命令)係為存儲裝置200中的資料讀取運作的瓶頸,因此上述資料讀取命令並不利於隨機存取應用程序(例如:晶片內執行運作)。另外,專用於裝置200的各種不同記憶體的附加資料讀取命令將對使用者造成操作上的冗餘和複雜度。
指示符信號係用於指示在波形的可變等待週期內的資料是否有效。該指示信號可以是獨立信號或複合信號。並且,該指示器信號可採用多種不同類型的信號,其包括:資料選通信號(data strobe signal,DS)、獨立的完備就緒/忙碌(ready/busy)信號、中斷信號,等等。該指示器信號可以採用現有的信號線(例如:該裝置為了其他目的而配備的信號線),或者,該指示信號可以具有專屬配置的信號線。
第5圖係描述根據本申請案的實施例的記憶裝置200中的示例性資料讀取運作的時序圖。在本範例中,統一的資料讀取命令RD係用於記憶裝置200中的資料讀取運作,其包括:
從鏡射隨機存取記憶體210讀取的指令,以及,從反及閘快閃記憶體204讀取的指令。上述之組態配置方式係使用由記憶裝置200所驅動的資料選通信號(DS),並且該DS信號係經由串列式周邊介面匯流排140傳輸到主機裝置120;該資料選通信號係表示在波形的可變等待週期內該資料是否有效。藉由上述組態配置方式,為了在反及閘快閃記憶體204的多重分頁上進行資料讀取,連續的資料讀取將自動將反及閘快閃記憶體204的下一個分頁加載到資料快取中,其無需發送出附加的分頁存取命令。而如第5圖所示,記憶體存取時間係關聯於波形的等待期間,特別是,當DS信號狀態發生變化時。在本範例中,記憶裝置200(特別是記憶裝置200中的記憶體)能夠根據DS信號的設定而對於該等待期間進行組態配置。
第5圖的示例性波形包括在電子裝置系統100中用於晶片內執行的三個資料讀取運作:1)以更長的等待週期在鏡射隨機存取記憶體210上進行指令讀取,2)在反及閘快閃記憶體204上進行資料讀取,以及3)以較短的等待週期在鏡射隨機存取記憶體210上進行指令讀取。
再返回參照第5圖,在發送出晶片選擇信號CS#之後,係使用SI/O引腳以將統一的RD命令與完整的位址字元(例如:32位元位址)傳輸到裝置200內,用以在鏡射隨機存取記憶體210上讀取指令。在此命令與位址階段,該DS信號係處於三態(tri-state)。一旦命令與位址字元傳輸完成,等待週期就開始準
備專屬指定的指令,以將資料傳輸到主機裝置。在本範例中,係保留由主機裝置120所擷取並儲存在鏡射隨機存取記憶體210中的指令,並且等待週期的長度係由DS信號確定。例如,當鏡射隨機存取記憶體210完成準備以進行指令傳輸時,記憶裝置200驅動DS信號,使得DS信號從三態轉變為邏輯低準位態。當記憶裝置200輸出交變(alternating)的DS信號(例如:在DS信號的上升緣)時,等待週期段係結束。所輸出的指令資料封包係對齊於交變的DS信號週期(例如:指令資料封包係對齊於DS信號週期的上升緣)。當指令資料傳輸完成時,則DS信號轉換回三態,其表示鏡射隨機存取記憶體210對於資料傳輸尚未完成準備。
在反及閘快閃記憶體204上的資料讀取運作係類似於前文所述之運作機制。一旦傳送了第二個RD命令與完整的位址字元,則等待週期就開始準備指定資料的傳輸(指定資料係經由串列式周邊介面匯流排140從反及閘快閃記憶體204傳輸到主機裝置120)。DS信號係保持在三態,其表示反及閘快閃記憶體204正在準備中,其對於資料傳輸尚未完成準備。當反及閘快閃記憶體204完成準備時,DS信號係從三態驅動至邏輯低準位狀態,其表示反及閘快閃記憶體204對於主機裝置之資料傳輸已完成準備。來自反及閘快閃記憶體204的輸出資料封包係對齊於交變的DS信號,例如:該輸出資料封包係對齊於交替的DS信號的上升緣。在本範例中,資料封包係連續輸出,直到資料讀取位址達到反及閘快閃記憶體204分頁的結束點為止。對於儲存在反及閘快閃記
憶體晶粒116的多重分頁上的資料而言,當DS信號被驅動回至邏輯低準位狀態的同時,資料讀取運作係對於反及閘快閃記憶體204的下一分頁進行存取。一旦反及閘快閃記憶體204完成準備以從下一分頁移轉資料,DS信號將被驅動回至交變狀態以結束等待週期。記憶裝置200在交變DS信號的同時,記憶裝置200係從反及閘快閃記憶體204的下一分頁繼續回復以發送資料。在本範例中,記憶裝置200連續地將反及閘快閃記憶體204的下一分頁讀取到資料快取區208,其無需發送出任何PgRD命令來存取任何特定的反及閘快閃記憶體204分頁。
對於鏡射隨機存取記憶體210的第三個指令讀取運作係開始於:在第5圖的波形中插入第三個RD命令。在本範例中,在指令插入與資料傳輸之間的等待週期係短於波形之起始點所示的第一個指令讀取運作的等待週期。於此,係提供一範例以說明:等待週期與記憶體存取時間並非固定的,而是可以根據DS信號的控制來組態配置的。
在另一種實施方式中,在發送出第一個RD命令並伴隨指示符(其用以引導記憶裝置110或200進行後續命令)之後,可實施一增強模式以進一步改善讀取效能,其無需發送出後續的RD命令。
例如,記憶裝置110可藉由使用內部快取區緩衝器來執行快取區讀取依序操作以提高資料流通量。其可以允許在不提供下一個記憶體分頁位址的情況下讀出連續的分頁,以減少在
記憶體分頁或區塊之間從tR到tRCBSY的等待時間。當在一個分頁上讀取出資料時,下一頁的資料能夠被讀入快取區緩衝區。
在一些實施方式中,增強模式可以預先進行組態配置,並且當電源開啟時於裝置上施加增強模式。
雖然本發明已以較佳實施例及範例詳細揭露如上,可理解的是,此些範例意指說明而非限制之意義。可預期的是,所屬技術領域中具有通常知識者可想到多種修改及組合,其多種修改及組合落在本發明之精神以及後附之申請專利範圍之範圍內。
100:電子裝置系統
110:裝置
112:裝置控制器
113:控制電路
114,124:串列式周邊介面
115:反及閘快閃介面
116:反及閘快閃記憶體晶粒
120:主機裝置
121:處理器
122:晶載隨機存取記憶體
123:雜項模組
130:外部隨機存取記憶體/動態隨機存取記憶體
140:串列式周邊介面匯流排
Claims (33)
- 一種記憶體運作之方法,包括:根據一電子裝置的電源開啟而確定該電子裝置的一反及閘快閃記憶體中的一第一資料的位置;從該反及閘快閃記憶體對應之一資料快取區傳送該第一資料至該電子裝置的一鏡射隨機存取記憶體;以及當存取該反及閘快閃記憶體中的該第一資料的該位置時,經由一串列式周邊介面從該鏡射隨機存取記憶體輸出該第一資料至該電子裝置的一主機裝置。
- 如請求項1所述之記憶體運作之方法,其中該第一資料係為一開機引導加載程式的程式碼。
- 如請求項1所述之記憶體運作之方法,其中該鏡射隨機存取記憶體中的該第一資料能夠被隨機存取。
- 如請求項1所述之記憶體運作之方法,其中該第一資料係為被該主機裝置執行的一可執行程式,該第一資料係在該電子裝置起始的系統開機之後執行,並且在一晶片內執行模式從該鏡射隨機存取記憶體擷取該第一資料中的指令。
- 如請求項4所述之記憶體運作之方法,更包括: 根據該指令而將一第二資料從該反及閘快閃記憶體傳送至該電子裝置的一系統記憶體;以及在該系統記憶體中執行被傳送的該第二資料。
- 如請求項5所述之記憶體運作之方法,其中該第二資料係為一應用韌體程式碼。
- 如請求項5所述之記憶體運作之方法,其中傳送該第二資料的步驟係包括:存取該反及閘快閃記憶體的一分頁;藉由隨機存取該反及閘快閃記憶體的該分頁,而在一指定位址讀取該第二資料;藉由通過該反及閘快閃記憶體的一分頁緩衝器而輸出該第二資料至一資料快取區,而傳送該第二資料;以及從該資料快取區傳送該第二資料至一系統隨機存取記憶體。
- 如請求項1所述之記憶體運作之方法,其中傳送該第一資料之步驟係包括:存取該反及閘快閃記憶體的一分頁;藉由隨機存取該反及閘快閃記憶體的該分頁,而在一指定位址讀取該第一資料; 藉由通過該反及閘快閃記憶體的一分頁緩衝器而輸出該第一資料至一資料快取區,而傳送該第一資料。
- 如請求項8所述之記憶體運作之方法,其中存取該隨機存取記憶體的該分頁的步驟係包括:存取該反及閘快閃記憶體的複數個分頁。
- 如請求項8所述之記憶體運作之方法,其中從該資料快取區傳送該第一資料至該鏡射隨機存取記憶體的步驟係包括:將暫時儲存於該資料快取區的該第一資料讀取至一錯誤更正碼引擎;在該錯誤更正碼引擎中,對於該第一資料執行錯誤更正;以及根據所完成的該錯誤更正,將更正後的該第一資料回傳至該資料快取區。
- 如請求項8所述之記憶體運作之方法,其中該指定位址係儲存於一非揮發性暫存器中。
- 如請求項1所述之記憶體運作之方法,其中確定該第一資料的步的位置之步驟係包括:因應於該電子裝置的該電源開啟而自動執行該電子裝置的運作的流程, 其中該運作係包括根據該反及閘快閃記憶體內的該第一資料的指定位址集而讀取該第一資料。
- 如請求項1所述之記憶體運作之方法,係包括資料讀取運作,該資料讀取運作包括:發送出複數個專屬指定命令以分別進行在該鏡射隨機存取記憶體與該反及閘快閃記憶體上的資料讀取運作,其中該電子裝置使用用於隨機存取的一RD命令以及用於存取該反及閘快閃記憶體之一分頁的一PgRD命令。
- 如請求項1所述之記憶體運作之方法,包括資料讀取運作,該資料讀取運作包括:發送出一統一命令以進行在該鏡射隨機存取記憶體與該反及閘快閃記憶體上的資料讀取運作,並且藉由一指示符信號以指示在可變之等待週期中資料是否有效而能夠傳送。
- 如請求項14所述之記憶體運作之方法,其中該指示符信號係為一獨立信號或一複合信號。
- 如請求項15所述之記憶體運作之方法,其中該複合信號使用現有既存的一資料選通信號,當該鏡射隨機存取與該反及閘快閃記憶體完成準備以傳送資料時,該資料選通信號係從三態而被驅動至邏輯低準位狀態, 其中該等待週期的長度藉由控制該資料選通信號而組態配置,並且其中一輸出資料對齊於該資料選通信號。
- 如請求項15所述之記憶體運作之方法,其中該複合信號使用現有既存的一中斷信號。
- 如請求項1所述之記憶體運作之方法,係包括資料讀取運作,該資料讀取運作包括:根據包括於該第一資料中並且儲存於該鏡射隨機存取記憶體中的一位址,以執行資料讀取命令。
- 如請求項1所述之記憶體運作之方法,包括資料讀取運作,其中該資料讀取運作包括:藉由該電子裝置的一控制邏輯以驗證來自該主機裝置的輸入位址;以及藉由檢查一映射表以確定該輸入位址是否對應至在該鏡射隨機存取記憶體與該反及閘快閃記憶體的資料讀取運作。
- 如請求項19所述之記憶體運作之方法,其中該映射表包含複數個位址,其中該些位址係包括該反及閘快閃記憶體的一來源位置以及該鏡射隨機存取記憶體的一目的位置,並且該映射表在系統電源開啟時被建立,其中建立該映射表係根據紀錄駐留於該反及閘快閃記憶體的該第一資料的位置的一非揮發性暫存器。
- 如請求項1所述之記憶體運作之方法,其中該電子裝置提供一命令,在系統開機後,該命令係將該鏡射隨機存取記憶體進一步映射至該第一資料以外的不同位置。
- 一種記憶體運作之方法,包括:根據一電子裝置的電源開啟而確定該電子裝置的一串列式反及閘快閃記憶體中的一第一資料的位置;存取該串列式反及閘快閃記憶體的一分頁;藉由隨機存取該串列式反及閘快閃記憶體的該分頁,而在一指定位址讀取該第一資料;藉由通過該串列式反及閘快閃記憶體的一分頁緩衝器而輸出該第一資料至一資料快取區而傳送該第一資料;以及從該串列式反及閘快閃記憶體對應之該資料快取區傳送該第一資料至該電子裝置的一鏡射隨機存取記憶體。
- 如請求項22所述之記憶體運作之方法,更包括:在該電子裝置起始所執行的一系統開機之後,由一主機裝置執行在一晶片內執行模式在該鏡射隨機存取記憶體的該第一資料中的指令;以及根據該執行的指令,以將第二資料從該串列式反及閘快閃記憶體傳送至該電子裝置的一系統隨機存取記憶體。
- 如請求項23所述之記憶體運作之方法,其中傳送該第二資料的步驟係包括:存取該串列式反及閘快閃記憶體的一分頁;藉由隨機存取該串列式反及閘快閃記憶體的該分頁,而在一指定位址讀取該第二資料;藉由通過該串列式反及閘快閃記憶體的一分頁緩衝器而輸出該第二資料至一資料快取區而傳送該第二資料;以及從該資料快取區傳送該第二資料至該電子裝置的一鏡射隨機存取記憶體。
- 一種串列式反及閘快閃記憶體,係用以通過一串列式周邊介面以執行資料移轉運作,該串列式反及閘快閃記憶體包括:一反及閘快閃記憶體,用以儲存資料;一非揮發性暫存器,用以記錄用於資料移轉的來源位址;一鏡射隨機存取記憶體,係經由一資料快取區而連接於該反及閘快閃記憶體,其中該資料快取區係為從該反及閘快閃記憶體關聯至該鏡射隨機存取記憶體;以及一控制電路,係連接於該反及閘快閃記憶體與該鏡射隨機存取記憶體,其中該控制電路用以:根據一電子裝置的電源開啟而確定該電子裝置的該反及閘快閃記憶體中的一第一資料的位置;以及 從該反及閘快閃記憶體對應之該資料快取區傳送該第一資料至該電子裝置的一鏡射隨機存取記憶體。
- 如請求項25所述之串列式反及閘快閃記憶體,更包括連接於該控制電路的一映射表,其中該映射表包括該第一資料的一反及閘快取記憶體位址與該鏡射隨機存取記憶體的位址資訊,並且其中該控制電路用以:驗證從一電子系統的主機裝置傳送的該反及閘快閃記憶體輸入位址;確定該輸入位址是否對應至該第一資料的該反及閘快閃記憶體輸入位址;以及根據確定結果以在該鏡射隨機存取記憶體中重新導向資料讀取運作,或讀取該反及閘快閃記憶體。
- 如請求項25所述之串列式反及閘快閃記憶體,更包括連接於該反及閘快閃記憶體與該鏡射隨機存取記憶體的一資料快取區,並且該資料快取區用以暫時儲存該反及閘快閃記憶體所輸出的資料。
- 如請求項27所述之串列式反及閘快閃記憶體,更包括一錯誤更正碼引擎,該錯誤更正碼引擎連接於該鏡射隨機存取記憶體與該資料快取區,其中該錯誤更正碼引擎用以: 讀取暫時儲存於該資料快取區的該第一資料;對於該錯誤更正碼引擎的該第一資料執行錯誤更正;以及根據所完成的該錯誤更正,將更正後的該第一資料回傳至該資料快取區。
- 如請求項25所述之串列式反及閘快閃記憶體,更包括一串列式周邊介面匯流排,該串列式周邊介面匯流排包括資料輸入/輸出線、時脈信號線以及晶片選擇信號線,該串列式周邊介面匯流排用以在一主機裝置與該電子裝置的其他組件之間進行通信。
- 如請求項29所述之串列式反及閘快閃記憶體,更包括一指示符信號,該指示符信號係指示在可變之等待週期中資料是否有效而能夠傳送。
- 如請求項30所述之串列式反及閘快閃記憶體,其中該指示符信號係為一獨立信號或一複合信號。
- 如請求項30所述之串列式反及閘快閃記憶體,其中該複合信號係為現有既存的一資料選通信號,當該串列式反及閘快閃記憶體完成準備以傳送資料時,該資料選通信號係從三態而被驅動至邏輯低準位狀態, 其中該等待週期的長度可藉由控制該資料選通信號而組態配置,並且其中一輸出資料對齊於該資料選通信號。
- 如請求項30所述之串列式反及閘快閃記憶體,其中該複合信號係為現有既存的一中斷信號。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/180,004 | 2021-02-19 | ||
US17/180,004 US11640308B2 (en) | 2021-02-19 | 2021-02-19 | Serial NAND flash with XiP capability |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI776553B true TWI776553B (zh) | 2022-09-01 |
TW202234245A TW202234245A (zh) | 2022-09-01 |
Family
ID=82900619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110122237A TWI776553B (zh) | 2021-02-19 | 2021-06-17 | 具有晶片內執行能力的串列式反及閘快閃記憶體 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11640308B2 (zh) |
CN (1) | CN114974374A (zh) |
TW (1) | TWI776553B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11556272B2 (en) * | 2020-09-18 | 2023-01-17 | Kioxia Corporation | System and method for NAND multi-plane and multi-die status signaling |
US11907545B2 (en) | 2021-09-16 | 2024-02-20 | Sandisk Technologies Llc | On-the-fly multiplexing scheme for compressed soft bit data in non-volatile memories |
US11971829B2 (en) | 2021-09-16 | 2024-04-30 | Sandisk Technologies Llc | On-the-fly compression scheme for soft bit data in non-volatile memory |
US11776589B2 (en) * | 2021-09-16 | 2023-10-03 | Sandisk Technologies Llc | Vertical compression scheme for compressed soft bit data in non-volatile memories with data latch groups |
US11894068B2 (en) * | 2021-09-16 | 2024-02-06 | Sandisk Technologies Llc | Efficient sensing of soft bit data for non-volatile memory |
US11971826B2 (en) | 2021-09-16 | 2024-04-30 | Sandisk Technologies Llc | Architecture and data path options for compression of soft bit data in non-volatile memories |
US11901019B2 (en) * | 2021-09-16 | 2024-02-13 | Sandisk Technologies Llc | Use of data latches for compression of soft bit data in non-volatile memories |
JP2023060606A (ja) * | 2021-10-18 | 2023-04-28 | キオクシア株式会社 | 半導体集積回路及びメモリシステム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008001363A2 (en) * | 2006-06-27 | 2008-01-03 | Kdr Flashware Ltd. | Monolithic flash memory having integrated code and data memory portions |
CN101421701A (zh) * | 2006-04-10 | 2009-04-29 | 苹果公司 | 使用nand闪存的直接引导配置 |
CN107870775A (zh) * | 2016-09-26 | 2018-04-03 | 深圳市中兴微电子技术有限公司 | 一种处理器及BootLoader程序的更新方法 |
TW201833927A (zh) * | 2017-03-01 | 2018-09-16 | 旺宏電子股份有限公司 | 反及閘快閃記憶體的讀取方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5603011A (en) * | 1992-12-11 | 1997-02-11 | International Business Machines Corporation | Selective shadowing and paging in computer memory systems |
US20070233955A1 (en) * | 2000-01-06 | 2007-10-04 | Super Talent Electronics Inc. | Mixed-Mode ROM/RAM Booting Using an Integrated Flash Controller with NAND-Flash, RAM, and SD Interfaces |
KR100441608B1 (ko) * | 2002-05-31 | 2004-07-23 | 삼성전자주식회사 | 낸드 플래시 메모리 인터페이스 장치 |
GB2404748B (en) * | 2003-08-01 | 2006-10-04 | Symbian Ltd | Computing device and method |
CN1655633A (zh) * | 2004-02-09 | 2005-08-17 | 捷诚科技股份有限公司 | 行动通讯器、及其存储装置和存取流程 |
US8065563B2 (en) * | 2006-03-23 | 2011-11-22 | Mediatek Inc. | System for booting from a non-XIP memory utilizing a boot engine that does not have ECC capabilities during booting |
GB2460636A (en) * | 2008-05-30 | 2009-12-09 | Symbian Software Ltd | Storing operating-system components in paged or unpaged parts of memory |
US9324450B2 (en) * | 2013-03-13 | 2016-04-26 | Winbond Electronics Corporation | NAND flash memory |
US9367392B2 (en) * | 2014-08-01 | 2016-06-14 | Winbond Electronics Corporation | NAND flash memory having internal ECC processing and method of operation thereof |
US20190243787A1 (en) * | 2018-02-05 | 2019-08-08 | Micron Technology, Inc. | Memory Systems having Controllers Embedded in Packages of Integrated Circuit Memory |
-
2021
- 2021-02-19 US US17/180,004 patent/US11640308B2/en active Active
- 2021-06-17 TW TW110122237A patent/TWI776553B/zh active
- 2021-06-25 CN CN202110715918.4A patent/CN114974374A/zh active Pending
-
2023
- 2023-04-07 US US18/297,146 patent/US20230244500A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101421701A (zh) * | 2006-04-10 | 2009-04-29 | 苹果公司 | 使用nand闪存的直接引导配置 |
WO2008001363A2 (en) * | 2006-06-27 | 2008-01-03 | Kdr Flashware Ltd. | Monolithic flash memory having integrated code and data memory portions |
CN107870775A (zh) * | 2016-09-26 | 2018-04-03 | 深圳市中兴微电子技术有限公司 | 一种处理器及BootLoader程序的更新方法 |
TW201833927A (zh) * | 2017-03-01 | 2018-09-16 | 旺宏電子股份有限公司 | 反及閘快閃記憶體的讀取方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220269513A1 (en) | 2022-08-25 |
US11640308B2 (en) | 2023-05-02 |
CN114974374A (zh) | 2022-08-30 |
TW202234245A (zh) | 2022-09-01 |
US20230244500A1 (en) | 2023-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI776553B (zh) | 具有晶片內執行能力的串列式反及閘快閃記憶體 | |
KR100281432B1 (ko) | 플래쉬 메모리에 기초한 주메모리 | |
KR101159400B1 (ko) | 하이브리드 메모리 장치를 위한 방법 및 시스템 | |
US8850119B2 (en) | Operating memory with specified cache address | |
US7657696B2 (en) | Method to detect NAND-flash parameters by hardware automatically | |
US8041871B2 (en) | System and method for providing address decode and virtual function (VF) migration support in a peripheral component interconnect express (PCEI) multi-root input/output virtualization (IOV) environment | |
US6795899B2 (en) | Memory system with burst length shorter than prefetch length | |
EP3640944B1 (en) | Non-sequential page continuous read | |
US20030206442A1 (en) | Flash memory bridiging device, method and application system | |
JP2004005613A (ja) | 専用フラッシュコントローラを使用してフラッシュベースストレージシステムの性能を改善するための方法 | |
KR100679370B1 (ko) | 메모리 소자에서의 워드 순서지정 방법 | |
JP2019121370A (ja) | メモリ装置 | |
EP1488322B1 (en) | Mapping data masks in hardware by controller programming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |