TWI399750B - 記憶體及使用於一記憶體程式化命令的方法 - Google Patents
記憶體及使用於一記憶體程式化命令的方法 Download PDFInfo
- Publication number
- TWI399750B TWI399750B TW098105013A TW98105013A TWI399750B TW I399750 B TWI399750 B TW I399750B TW 098105013 A TW098105013 A TW 098105013A TW 98105013 A TW98105013 A TW 98105013A TW I399750 B TWI399750 B TW I399750B
- Authority
- TW
- Taiwan
- Prior art keywords
- stylized
- memory
- buffer
- unit
- data
- Prior art date
Links
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/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
Description
本發明是關於一種非揮發性記憶體(non-volatile memory),特別是關於一種非揮發性記憶體的程式化功能。
非揮發性記憶體能夠在斷電時保持資料。這是優於揮發性記憶體的一個優點。然而,非揮發性記憶體的操作相較於揮發性記憶體更為複雜。例如,在程式化操作中,非揮發性記憶體的資料位元能够從一變為零,但不能從零變為一。因此,在程式化非揮發性記憶體的非空白區塊(sector)前,需要進行抹除操作來重置非空白區塊的所有位元。
通常,習知的非揮發性記憶體能夠處理寫入請求的程式化單元小到僅有一頁,例如512位元組(byte)。相比之下,區塊是非揮發性記憶體的最小抹除單元。區塊的大小範圍為32R位元組或更多,也就是說,抹除單位大於或等於程式化單元。程式化單元的大小通常與緩衝器相同。為了增加寫入速度,寫入單元趨向於變得更大。然而,將來寫入單元仍將保持小於或等於抹除單元。若要程式化到非揮發性記憶體內的用戶資料大小未完全對齊區塊邊界,則區塊的原始資料必須先讀出並與用戶資料一同程式化回上述區塊,以保留區塊中的原始資料。
習知的非揮發性記憶體的程式化功能無法檢查目標區塊空白與否。習知的非揮發性記憶體的程式化功能無法檢查用戶資料的大小是否對齊區塊邊界。由於上述原因,習知的非揮發性記憶體需要外部流程控制來實現正確且安全的程式化操作。
因此,本發明提供一種記憶體以及在單一記憶體程式化命令中使用的方法。此方法為非揮發性記憶體實現了一種新的程式化功能。此新的程式化功能響應單個程式化命令而進行若干操作,包括在程式化非空白程式化單元之前保留原始資料,以及進行必要的抹除操作。利用這種新的程式化功能,本發明提供的記憶體為用戶處理所有的相關細節並且更易於使用。另外,上述記憶體本身控制新程式化功能的流程。因此,上述記憶體不需任何外部微控制器(micro-controller)來控制程式化的流程,因此可降低整個系統的成本。
本發明提供一種使用於一記憶體程式化命令的方法。此記憶體包括緩衝器以及至少一程式化單元。此方法包括以下步驟。首先,將程式化命令輸入記憶體。接下來,將用戶資料輸入緩衝器。讀取程式化單元的資料。確定用戶資料是否裝滿緩衝器。若用戶資料未裝滿緩衝器,則利用程式化單元的資料來填充未被用戶資料佔據的緩衝器部份。若程式化單元不是空白的,則抹除程式化單元。最後,將緩衝器的資料程式化到程式化單元內。
在本發明的一實施例中,程式化單元的位址範圍是用戶資料的位址範圍的超集(superset)。用於填充此緩衝器部份之程式化單元資料的位址範圍是除用戶資料的位址範圍外之整個程式化單元的位址範圍。程式化單元的資料以與程式化單元相同的位址配置填充到此緩衝器部份,使得在將緩衝器的資料程式化到程式化單元之後保持填充資料的內容和位置。
本發明另提供一種記憶體。此記憶體包括記憶體陣列、緩衝器以及程式化電路。記憶體陣列包括程式化單元。緩衝器耦接於記憶體陣列以接收用戶資料。程式化電路耦接於緩衝器和記憶體陣列以接收程式化命令。響應於程式化命令,程式化電路讀取程式化單元的資料,確定用戶資料是否裝滿緩衝器。若用戶資料未裝滿緩衝器,則利用程式化單元的資料來填充未被用戶資料佔據的緩衝器部份。若程式化單元不是空白的,則抹除程式化單元。程式化電路並且將緩衝器的資料程式化到程式化單元內。
請參閱圖1、圖2以及圖3。圖1是根據本發明實施例之使用於一記憶體程式化命令的方法的流程圖。圖1中的方法為非揮發性記憶體實現了一種新的程式化功能。圖2是顯示了根據本實施例之前述記憶體200的示意圖。圖3是顯示了圖2中的記憶體陣列220和緩衝器240的資料流的示意圖。記憶體200是非揮發性記憶體,諸如快閃記憶體(flash memory)。記憶體200包括程式化電路210、記憶體陣列220、讀出放大器(sense amplifier)230以及緩衝器240。記憶體陣列220包括多個程式化單元。緩衝器240耦接於記憶體陣列220並接收要程式化到記憶體陣列220之程式化單元內的用戶資料。讀出放大器230耦接於記憶體陣列220與緩衝器240之間以將程式化單元的資料放大並提供至緩衝器240內。程式化電路210耦接於緩衝器240和記憶體陣列220,以接收程式化命令並響應程式化命令來執行新的程式化功能。
前述之程式化單元是記憶體陣列220的最小抹除單元。程式化單元也稱作記憶體陣列220的區塊。緩衝器240的大小等於程式化單元的大小。
下面是圖1中的流程的討論。在本發明的實施例中,用戶資料要程式化入到圖3所示之記憶體陣列220的程式化單元310。首先,程式化命令被輸入程式化電路210(步驟110)。接下來,用戶資料被輸入緩衝器240(步驟120)。響應於程式化命令,程式化電路210執行包括圖1之步驟130-180的此實施例所提出的新程式化功能。
在接收程式化命令後,程式化電路210讀取程式化單元310的所有資料(步驟130)。從程式化單元310讀取的資料用於步驟150、160,並將在下面討論。接下來,程式化電路210檢查用戶資料是否裝滿整個緩衝器240(步驟140)。若用戶資料裝滿了整個緩衝器240,則流程直接進入步驟160。
如圖3所描述的,若用戶資料未裝滿整個緩衝器240,則流程進入步驟150。在這種情況下,緩衝器240可分為兩部份,即,被用戶資料佔據的部份340以及未被用戶資料佔據的部份350。因此,程式化單元310可分為兩部份,即,要被用戶資料覆寫的部份320以及不會被覆寫的部份330。由於用戶資料要程式化到程式化單元310內,緩衝器240和程式化單元310對應於記憶體陣列220中的同一位址範圍。換句話說,程式化單元310的位址範圍是用戶資料的位址範圍的超集。為了保留程式化單元310的部份330中的原始資料,程式化電路210利用程式化單元310的部份的資料330填充緩衝器240的部份350(步驟150)。顯然,用於填充緩衝器240的部份350之資料的位址範圍是除用戶資料的位址範圍外的整個程式化單元310的位址範圍。程式化單元310的部份330的資料以與程式化單元310相同的位址配置方式填充到緩衝器240的部份350內,使得在程式化電路210將緩衝器240的資料程式化到程式化單元310內之後得以保持填充的資料內容和位置。
接下來,程式化電路210根據步驟130中讀取的資料來確定程式化單元310空白與否(步驟160)。若程式化單元310的所有位元具有同一預定值,則程式化電路210確定程式化單元310是空白的。在本實施例中,預定值是一。若程式化單元310空的,則流程指向步驟180。若程式化單元310不是空白的,則程式化電路210藉由將程式化單元310的所有位元設定為前述之預定值來抹除程式化單元310(步驟170)。接下來,程式化電路210將整個緩衝器240的資料程式化到程式化單元310內並完成所提出的新程式化功能(步驟180)。
綜上所述,圖1所示的方法和圖2所示的記憶體200為非揮發性記憶體定義並實現了一種新的程式化功能。新的程式化功能整合多個必要的操作並由記憶體200的程式化電路210響應單個程式化命令而自動地執行。記憶體200的用戶不必檢查程式化單元是否空白。記憶體200的用戶也不必檢查用戶資料是否裝滿整個緩衝器240。只要接收單個程式化命令,新的程式化功能會自動在用戶資料少於程式化單元的大小時,保留目標程式化單元的原始資料,並且在程式化單元不是空白時,先自動抹除程式化單元。因此,相較於習知的程式化功能,上述實施例的新程式化功能更靈活方便。
另外,上述實施例中的程式化電路是簡單的邏輯電路,針對執行新的程式化功能而特別設計。因此相較於習知的通用型微控制器而言,程式化電路的成本以及佔據的晶片面積要小得多。在沒有內置程式化電路(built-in program circuit)的情況下,用戶必需依靠昂貴的微控制器來控制圖1中的流程。採用以上實施例的程式化電路,可降低整個系統的成本和晶片面積。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
110-180...流程圖步驟
200...記憶體
210...程式化電路
220...記憶體陣列
230...讀出放大器
240...緩衝器
310...程式化單元
320...程式化單元部份
330...程式化單元部份
340...緩衝器部份
350...緩衝器部份
圖1是根據本發明一實施例之使用於一記憶體程式化命令的方法的流程圖。
圖2是根據本發明一實施例之記憶體的示意圖。
圖3是圖2中記憶體陣列和緩衝器的資料流的示意圖。
200...記憶體
210...程式化電路
220...記憶體陣列
230...讀出放大器
240...緩衝器
Claims (16)
- 一種使用於一記憶體程式化命令的方法,該記憶體包括一緩衝器以及至少一程式化單元,該方法包括:將該程式化命令輸入該記憶體;將用戶資料輸入該緩衝器;讀取該程式化單元的資料;確定該用戶資料是否裝滿該緩衝器;若該用戶資料未裝滿該緩衝器,則利用該程式化單元的該資料來填充該緩衝器的未被該用戶資料佔據的部份;若該程式化單元不是空白的,則抹除該程式化單元;以及將該緩衝器的資料程式化到該程式化單元內。
- 如申請專利範圍第1項所述之使用於該記憶體程式化命令的方法,其中該記憶體是非揮發性記憶體。
- 如申請專利範圍第1項所述之使用於該記憶體程式化命令的方法,其中該緩衝器的大小等於該程式化單元的大小。
- 如申請專利範圍第1項所述之使用於該記憶體程式化命令的方法,其中該緩衝器的大小等於該記憶體的抹除單元的大小。
- 如申請專利範圍第1項所述之使用於該記憶體程式化命令的方法,其中該程式化單元的位址範圍是該用戶資料的位址範圍的超集。
- 如申請專利範圍第5項所述之使用於該記憶體程式化命令的方法,其中用於填充該緩衝器的未被該用戶資料佔據的該部份之該程式化單元的該資料的位址範圍是除該用戶資料的該位址範圍外之整個該程式化單元的該位址範圍。
- 如申請專利範圍第6項所述之使用於該記憶體程式化命令的方法,其中該程式化單元的該資料以與該程式化單元相同的位址配置方式填充到該緩衝器的該部份內,使得在將該緩衝器的該資料程式化到該程式化單元內之後得以保持該填充資料的內容和位置。
- 如申請專利範圍第1項所述之使用於該記憶體程式化命令的方法,其中若該程式化單元的所有位元具有同一預定值,則確定該程式化單元是空白的,並且上述的抹除該程式化單元是將該程式化單元的所有位元皆設定為該預定值。
- 一種記憶體,包括:一記憶體陣列,包括一程式化單元;一緩衝器,耦接於該記憶體陣列,接收用戶資料;以及一程式化電路,耦接於該緩衝器和該記憶體陣列,接收一程式化命令,其中,響應於該程式化命令,該程式化電路讀取該程式化單元的資料;確定該用戶資料是否裝滿該緩衝器;若該用戶資料未裝滿該緩衝器,則該程式化電路利用該程式化單元的該資料來填充該緩衝器的未被該用戶資料填充的部份;若該程式化單元不是空白的,則該程式化電路抹除該程式化單元;並將該緩衝器的資料程式化到該程式化單元內。
- 如申請專利範圍第9項所述之記憶體,其中該記憶體是非揮發性記憶體。
- 如申請專利範圍第9項所述之記憶體,其中該緩衝器的大小等於該程式化單元的大小。
- 如申請專利範圍第9項所述之記憶體,其中該緩衝器的大小等於該記憶體陣列的抹除單元的大小。
- 如申請專利範圍第9項所述之記憶體,其中該程式化單元的位址範圍是該用戶資料的位址範圍的超集。
- 如申請專利範圍第13項所述之記憶體,其中用於填充該緩衝器的未被該用戶資料填充的該部份之該程式化單元的該資料的位址範圍是除該用戶資料的該位址範圍外之整個該程式化單元的該位址範圍。
- 如申請專利範圍第14項所述之記憶體,其中該程式化電路將該程式化單元的該資料以與該程式化單元相同的位址配置方式填充到該緩衝器的該部份內,使得在該程式化電路將該緩衝器的該資料程式化到該程式化單元之後得以保持該填充資料的內容和位置。
- 如申請專利範圍第9項所述之記憶體,其中若該程式化單元的所有位元具有同一預定值,則該程式化電路確定該程式化單元是空白的,且該程式化電路藉由將該程式化單元的所有位元設定為該同一預定值來抹除該程式化單元。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/270,722 US7975111B2 (en) | 2008-11-13 | 2008-11-13 | Memory and method applied in one program command for the memory |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201019324A TW201019324A (en) | 2010-05-16 |
TWI399750B true TWI399750B (zh) | 2013-06-21 |
Family
ID=42166244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098105013A TWI399750B (zh) | 2008-11-13 | 2009-02-17 | 記憶體及使用於一記憶體程式化命令的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7975111B2 (zh) |
CN (1) | CN101740126A (zh) |
TW (1) | TWI399750B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314396B (zh) * | 2010-07-06 | 2014-01-29 | 旺宏电子股份有限公司 | 区块为基础闪存的字节存取的方法与装置 |
CN103680610A (zh) * | 2012-09-03 | 2014-03-26 | 北京兆易创新科技股份有限公司 | 差分存储NAND Flash存储器写操作的方法及装置 |
CN104102592B (zh) * | 2013-04-03 | 2017-06-13 | 北京兆易创新科技股份有限公司 | 一种存储器的编写方法和装置 |
KR20180005081A (ko) * | 2016-07-05 | 2018-01-15 | 삼성전자주식회사 | 커맨드 윈도우 발생부를 갖는 메모리 장치 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754567A (en) * | 1996-10-15 | 1998-05-19 | Micron Quantum Devices, Inc. | Write reduction in flash memory systems through ECC usage |
US6016472A (en) * | 1997-09-29 | 2000-01-18 | Lucent Technologies Inc. | System and method for interfacing a digital audio processor to a low-speed serially addressable storage device |
US20030149856A1 (en) * | 2002-02-06 | 2003-08-07 | Entire Interest | Memory device with sector pointer structure |
US20050050135A1 (en) * | 2003-08-25 | 2005-03-03 | Josef Hallermeier | Handheld digital multimedia workstation and method |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070041050A1 (en) * | 2005-08-17 | 2007-02-22 | Bing-Yu Wang | Memory management method and system |
EP1850347A1 (en) * | 2006-04-28 | 2007-10-31 | Deutsche Thomson-Brandt Gmbh | Method and device for writing to a flash memory |
KR100904758B1 (ko) * | 2007-02-08 | 2009-06-29 | 삼성전자주식회사 | 버퍼 메모리를 포함하는 플래쉬 메모리 장치 및 시스템,플래쉬 메모리 장치의 데이터 업데이트 방법 |
US8046542B2 (en) * | 2007-11-21 | 2011-10-25 | Micron Technology, Inc. | Fault-tolerant non-volatile integrated circuit memory |
-
2008
- 2008-11-13 US US12/270,722 patent/US7975111B2/en active Active
-
2009
- 2009-02-17 TW TW098105013A patent/TWI399750B/zh active
- 2009-06-16 CN CN200910149324A patent/CN101740126A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754567A (en) * | 1996-10-15 | 1998-05-19 | Micron Quantum Devices, Inc. | Write reduction in flash memory systems through ECC usage |
US6016472A (en) * | 1997-09-29 | 2000-01-18 | Lucent Technologies Inc. | System and method for interfacing a digital audio processor to a low-speed serially addressable storage device |
US20030149856A1 (en) * | 2002-02-06 | 2003-08-07 | Entire Interest | Memory device with sector pointer structure |
US6839826B2 (en) * | 2002-02-06 | 2005-01-04 | Sandisk Corporation | Memory device with pointer structure to map logical to physical addresses |
US20050120266A1 (en) * | 2002-02-06 | 2005-06-02 | Raul-Adrian Cernea | Memory device with sector pointer structure |
US20050050135A1 (en) * | 2003-08-25 | 2005-03-03 | Josef Hallermeier | Handheld digital multimedia workstation and method |
Also Published As
Publication number | Publication date |
---|---|
CN101740126A (zh) | 2010-06-16 |
US7975111B2 (en) | 2011-07-05 |
TW201019324A (en) | 2010-05-16 |
US20100122043A1 (en) | 2010-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5853899B2 (ja) | 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 | |
TWI575374B (zh) | 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI533308B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI557561B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
KR101698949B1 (ko) | 스토리지 플레인에 저장된 유효 데이터를 일시적으로 저장하는 버퍼를 이용하는 플래시 메모리 제어 장치, 제어 시스템 및 그것의 제어 방법 | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI633428B (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
US9437312B2 (en) | Management of write-protected data in a semiconductor memory | |
TWI591482B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI608350B (zh) | 儲存裝置及其控制單元、可用於儲存裝置的資料搬移方 法 | |
TWI486765B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI399750B (zh) | 記憶體及使用於一記憶體程式化命令的方法 | |
TW201703048A (zh) | 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI658361B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
WO2013108456A1 (ja) | 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI596476B (zh) | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI574272B (zh) | 抹除操作配置方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI644210B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI653632B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI554884B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI721666B (zh) | 半導體儲存裝置 | |
TWI503841B (zh) | 寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI584292B (zh) | 記憶體抹除方法、記憶體控制電路單元及記憶體儲存裝置 |