TWI771646B - 記憶裝置及記憶體控制器 - Google Patents
記憶裝置及記憶體控制器 Download PDFInfo
- Publication number
- TWI771646B TWI771646B TW109103595A TW109103595A TWI771646B TW I771646 B TWI771646 B TW I771646B TW 109103595 A TW109103595 A TW 109103595A TW 109103595 A TW109103595 A TW 109103595A TW I771646 B TWI771646 B TW I771646B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- block
- pointer
- data
- area
- Prior art date
Links
Images
Classifications
-
- 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/0614—Improving the reliability of storage systems
-
- 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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/1048—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 using arrangements adapted for a specific error detection or correction feature
-
- 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
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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/10—Address translation
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0656—Data buffering arrangements
-
- 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
-
- 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/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- 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/0682—Tape 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- 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
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Memory System (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Read Only Memory (AREA)
Abstract
記憶裝置具備非揮發性記憶體及控制電路。非揮發性記憶體具備複數個記憶塊,上述複數個記憶塊分別包含移位暫存器。控制電路控制對於非揮發性記憶體之資料的寫入及讀出。控制電路具備讀出控制部及寫入控制部。讀出控制部自複數個記憶塊中之第1記憶塊讀出對象資料。寫入控制電路將自第1記憶塊讀出之對象資料寫入至複數個記憶塊中與第1記憶塊不同之第2記憶塊。
Description
實施形態係關於一種記憶裝置及記憶體控制器。
磁體會發生一種被稱為磁壁位移之現象,所謂磁壁位移係指,藉由流通電流,磁壁沿著細線之長度方向移動。利用磁壁位移之原理將複數個磁區記憶於基板上所形成之磁體之磁壁移動記憶體已被提出。
此種磁壁移動記憶體包含複數個記憶塊。複數個記憶塊分別作為移位暫存器發揮功能。又,亦已知有磁壁移動記憶體以外方式之具備移位暫存器型記憶塊之記憶體裝置。
但此種記憶體裝置於自移位暫存器型記憶塊讀出資料之情形時,記憶塊內記憶之資料會遭到破壞。因此,此種記憶體裝置於讀出資料之情形時,必須將所讀出之資料再次寫回至記憶塊。但此種記憶體裝置於反覆讀出特定之記憶塊內記憶之資料之情形時,疲弊會集中於特定之記憶塊。
根據一個實施形態,提供一種記憶裝置。上述記憶裝置具備非揮發
性記憶體及控制電路。上述非揮發性記憶體具備複數個記憶塊,上述複數個記憶塊分別包含移位暫存器。上述控制電路控制對於上述非揮發性記憶體之資料的寫入及讀出。上述控制電路具備讀出控制部及寫入控制部。上述讀出控制部自上述複數個記憶塊中之第1記憶塊讀出對象資料。上述寫入控制電路將自上述第1記憶塊讀出之上述對象資料寫入至上述複數個記憶塊中與上述第1記憶塊不同之第2記憶塊。
10:資訊處理裝置
12:主機控制器
20:記憶裝置
22:記憶體控制器
24:非揮發性記憶體
32:記憶體陣列
34:列解碼器
36:讀出寫入電路
40:記憶塊
41:記憶單元
42:磁體部
43:記憶體區域(第1記憶體區域43-1~第K記憶體區域43-k)
44:開關元件
46:讀出元件
50:控制電路
52:主機介面電路
54:記憶體介面電路
56:讀出緩衝器
58:寫入緩衝器
60:錯誤校正電路
62:表記憶體
72:讀出控制部
74:寫入控制部
76:塊指針管理部
78:位址更新部
80:計數管理部
82:區域
84:空塊管理部
86:區域指針管理部
88:資料移動部
90:熱區
92:冷區
94:冷指針管理部
96:區域設定部
98:暖區
100:暖指針管理部
112:偽讀取指令產生部
BL:位元線
FL:場力線
SL:源極線
圖1係表示資訊處理裝置之構成之圖。
圖2係表示非揮發性記憶體之構成之圖。
圖3係表示記憶體陣列之一部分之模式性構成之圖。
圖4係表示LIFO(Last In,First Out,後進先出)型記憶塊之寫入時之磁體部中保持的磁化資訊之一例之圖。
圖5係表示LIFO型記憶塊之讀出時之磁體部中保持的磁化資訊之一例之圖。
圖6係表示FIFO(First In,First Out,先進先出)型記憶塊中之寫入元件(場力線FL)及讀出元件之配置之圖。
圖7係表示第1實施形態之記憶體控制器之構成之圖。
圖8係表示收到讀取指令之情形時由控制電路施行之處理之流程之流程圖。
圖9係表示收到寫入指令之情形時由控制電路施行之處理之流程之流程圖。
圖10係表示第1實施形態之塊指針之更新處理的流程之流程圖。
圖11(A)~(E)係用以說明第1實施形態中之塊指針之移動之圖。
圖12(A)~(D)係用以說明第1實施形態中之資料之寫入、讀出及更新之圖。
圖13係表示第2實施形態之記憶體陣列之圖。
圖14係表示第2實施形態之記憶體控制器之構成之圖。
圖15係表示第2實施形態之塊指針之更新處理的流程之流程圖。
圖16係表示第2實施形態之區域指針之更新處理的流程之流程圖。
圖17(A)~(C)係表示第2實施形態之複數個記憶塊之狀態的第1例之圖。
圖18(A)~(C)係表示第2實施形態之複數個記憶塊之狀態的第2例之圖。
圖19(A)、(B)係用以說明第2實施形態之資料群之移動之圖。
圖20係表示第3實施形態之塊指針之更新處理的流程之流程圖。
圖21(A)~(D)係用以說明第3實施形態中之資料之寫入、讀出及更新之圖。
圖22係表示第4實施形態之記憶體陣列之圖。
圖23係表示第4實施形態之記憶體控制器之構成之圖。
圖24係表示第4實施形態之塊指針之更新處理的流程之流程圖。
圖25(A)~(D)係用以說明第4實施形態中之資料之寫入、讀出及更新之圖。
圖26係用以說明第4實施形態中之資料之讀出之圖。
圖27係用以說明區域設定部之處理之圖。
圖28係表示第5實施形態之記憶體陣列之圖。
圖29係表示第5實施形態之記憶體控制器之構成之圖。
圖30(A)~(D)係用以說明第5實施形態中之資料之寫入、讀出及更新之圖。
圖31係表示第6實施形態之記憶體控制器之構成之圖。
圖32(A)~(E)係用以說明第6實施形態中之資料之寫入、讀出及更新之圖。
圖33係表示第7實施形態之記憶體控制器之構成之圖。
圖34係表示未產生偽讀取指令之情形時交替地讀出2個資料之狀態之圖。
圖35係表示產生了偽讀取指令之情形時交替地讀出2個資料之狀態之圖。
圖36係表示偽讀取指令之產生圖案之一例之圖,即表示處理例之圖。
根據一個實施形態,提供一種記憶裝置。上述記憶裝置具備非揮發性記憶體及控制電路。上述非揮發性記憶體具備複數個記憶塊,上述複數個記憶塊分別包含移位暫存器。上述控制電路控制上述非揮發性記憶體之資料寫入及讀出。上述控制電路具備讀出控制部及寫入控制部。上述讀出控制部自上述複數個記憶塊中之第1記憶塊讀出對象資料。上述寫入控制電路將自上述第1記憶塊讀出之上述對象資料寫入至上述複數個記憶塊中與上述第1記憶塊不同之第2記憶塊。
以下,參照圖式對實施形態進行說明。於以下說明中,對具有相同功能及構成之構成要素標註相同符號。又,以下所示之各實施形態係例示用以將該實施形態之技術思想具體化之裝置及方法者,而並非係將構成零件之材質、形狀、構造、配置等特定為下文所述情況者。
圖1係表示資訊處理裝置10之構成之圖。資訊處理裝置10具備主機控制器12及記憶裝置20。
主機控制器12具有1個或複數個處理器。處理器例如為1個或複數個CPU(Central Processing Unit,中央處理單元)。主機控制器12執行程
式,處理資料。主機控制器12隨著程式之執行,而自記憶裝置20讀出資料或向記憶裝置20寫入資料。
再者,主機控制器12可為任意裝置,只要能執行資料處理即可。主機控制器12可為包含處理器之資訊處理機器,亦可為FPGA(Field Programmable Gate Array,場可編程閘陣列)或專用電路等CPU以外之電路。
記憶裝置20經由匯流排與主機控制器12連接。記憶裝置20亦可經由USB(Universal Serial Bus,通用串列匯流排)等介面與主機控制器12連接。記憶裝置20根據來自主機控制器12之指令,記憶自主機控制器12收到之資料。又,記憶裝置20根據來自主機控制器12之指令,將所記憶之資料發送至主機控制器12。
記憶裝置20具有記憶體控制器22及非揮發性記憶體24。非揮發性記憶體24為即便停止供給電源亦會繼續記憶資料之記憶體。
記憶體控制器22控制與主機控制器12之間之資料收發。進而,記憶體控制器22控制非揮發性記憶體24之資料讀出及寫入。記憶體控制器22根據自主機控制器12收到之指令,向非揮發性記憶體24寫入資料。又,記憶體控制器22根據自主機控制器12收到之指令,自非揮發性記憶體24讀出資料,並將其發送至主機控制器12。
圖2係表示非揮發性記憶體24之構成之圖。非揮發性記憶體24由半導體裝置實現。非揮發性記憶體24包含記憶體陣列32、列解碼器34、讀出寫入電路36。
記憶體陣列32具有複數個記憶塊40。複數個記憶塊40分別包含記憶複數個資料之移位暫存器。複數個記憶塊40可分別包含1個移位暫存器,亦可分別包含複數個移位暫存器。又,複數個記憶塊40分別被分配固有之物理位址。
複數個記憶塊40可分別為LIFO(Last In,First Out)型移位暫存器,亦可分別為FIFO(First In,First Out)型移位暫存器。記憶塊40記憶複數個資料。複數個資料例如分別為1位元。於記憶塊40包含1個移位暫存器之情形時,複數個資料係自最初之資料至最後之資料每次1個資料地依序寫入至移位暫存器。
於寫入時及讀出時,列解碼器34由記憶體控制器22賦予用以特定讀出對象或寫入對象之記憶塊40之物理位址。列解碼器34以能對所賦予之物理位址下之記憶塊40讀出或寫入複數個資料之方式,控制記憶體陣列32之內部狀態。
讀出寫入電路36於寫入時,自記憶體控制器22收到寫入指示及對象資料(複數個資料)。讀出寫入電路36於寫入時,將所收到之對象資料(複數個資料)寫入至藉由列解碼器34已成可寫入狀態之記憶塊40。
讀出寫入電路36於讀出時,自記憶體控制器22收到讀出指示。讀出寫入電路36於讀出時,自藉由列解碼器34已成可讀出狀態之記憶塊40讀出對象資料(複數個資料)。而且,讀出寫入電路36於讀出時,將所讀出之對象資料(複數個資料)供給至記憶體控制器22。
於實施形態中,複數個記憶塊40分別包含磁性記憶資訊之1個或複數個記憶單元41。記憶單元41作為1個移位暫存器發揮功能。記憶單元41利用磁壁位移之原理,能於規定方向上保持複數個磁化資訊。例如,記憶單元41具有細長形狀,能於沿著長度方向之方向上保持複數個磁化資訊。再者,此處,所謂磁化資訊係指,藉由1次寫入磁性寫入至記憶單元41之資訊之單位。於將不同磁化方向之2個磁化資訊寫入至記憶單元41之情形時,此等2個磁化資訊之間會產生磁壁。但於將相同磁化方向之2個磁化資訊寫入之情形時,此等2個磁化資訊之間不會產生磁壁。
再者,複數個記憶塊40各者若包含移位暫存器,則亦可不含上述記憶單元41。例如,複數個記憶塊40亦可分別為如非專利文獻3所示之由含有銦、鎵及鋅之氧化物半導體實現之移位暫存器。
圖3係表示記憶體陣列32之一部分之模式性構成之圖。記憶體陣列32包含複數個記憶單元41、複數根位元線BL、複數根源極線SL、複數根場力線FL。
例如,複數個記憶單元41相對於半導體基板之平面(X-Y平面),呈二維矩陣對應配置。此處,將基板之相對於矩陣之列方向之方向設為X方向,將對應於行方向之方向設為Y方向。又,將基板之垂直於基板之平面之方向設為Z方向。再者,X方向、Y方向及Z方向相互正交。
複數根位元線BL分別為大致直線狀之配線,沿著X方向延伸。複數根位元線BL以均等間隔平行配置。
複數根源極線SL分別為大致直線狀之配線,沿著Y方向延伸。複數根源極線SL以均等間隔平行配置。複數根源極線SL形成於與複數根位元線BL不同之Z方向之位置(即,不同之層)。
複數根場力線FL分別為大致直線狀之配線,沿著X方向延伸。複數根場力線FL以均等間隔平行配置。
進而,複數根場力線FL形成於與複數根位元線BL及複數根源極線SL不同之Z方向之位置(即,不同之層)。更詳細而言,複數根場力線FL形成於複數根位元線BL與複數根源極線SL之間之靠近位元線BL側之層。進而,複數根場力線FL分別就Y方向上之位置而言,設置於對應設置在同一行之位元線BL附近。
複數個記憶單元41分別形成於複數根位元線BL與複數根源極線SL之間之層。複數個記憶單元41分別設置於複數根位元線BL與1根源極線SL
之交叉區域。
複數個記憶單元41分別包含磁體部42、開關元件44、讀出元件46。
磁體部42為具有導電性之線狀之鐵磁體。磁體部42係以沿著與位元線BL及源極線SL兩者正交之方向(Z方向)延伸之方式配置。
磁體部42能於規定方向(Z方向)上保持複數個磁化資訊。複數個磁化資訊分別為根據記錄資訊被磁化為2個記錄方向中之某一方向之資訊。磁體部42隨著於規定方向(Z方向)上流通規定電流量之位移脈衝電流,而使所保持之磁化資訊沿著規定方向位移。
磁體部42之Z方向之一端電性連接於複數根源極線SL中對應之1根源極線SL。又,磁體部42之Z方向之另一端(與源極線SL為相反側之端部)經由讀出元件46及開關元件44,可電性連接於複數根位元線BL中對應之1根位元線BL。因此,於開關元件44為接通狀態之情形時,磁體部42能藉由自對應之位元線BL及源極線SL被供給電流,而使所保持之磁化資訊沿著規定方向(Z方向)移動。
此處,將磁體部42之保持1個磁化資訊之區域稱為記憶體區域43。例如,於磁體部42最大能保持K個(K為2以上之整數)磁化資訊之情形時,磁體部42於規定方向(Z方向)上包含第1記憶體區域43-1~第K記憶體區域43-3此等K個記憶體區域43。於本實施形態中,將K個記憶體區域43中磁
體部42之讀出元件46側區域稱為第1記憶體區域43-1,將源極線SL側區域稱為第K記憶體區域43-K。
開關元件44為串聯連接於磁體部42之雙端子元件。更具體而言,開關元件44之Z方向之一端電性連接於複數根位元線BL中對應之1根位元線BL。開關元件44之另一端經由讀出元件46,連接於磁體部42之未與源極線SL連接之一側之端部(第1記憶體區域43-1)。
開關元件44將磁體部42之一端(第1記憶體區域43-1)與對應之1根位元線BL之間電性連接或切斷。因此,於開關元件44為接通狀態(連接狀態)之情形時,讀出寫入電路36能藉由向對應之位元線BL與對應之源極線SL之間流通電流,而向讀出元件46及磁體部42流通電流。
開關元件44若於斷開狀態下被施加規定值以上之電壓便會變成接通狀態。進而,開關元件44若於接通狀態下繼續流通保持電流值以上之電流便會維持接通狀態。開關元件44例如可含有選自由Te、Se及S所組成之群之至少1種以上硫屬元素。或者,開關元件44亦可含有包含此種硫屬元素之化合物即硫屬化物。開關元件44亦可除此以外進而含有選自由B、Al、Ga、In、C、Si、Ge、Sn、As、P、Sb所組成之群之至少1種以上元素。
讀出元件46電性連接於磁體部42之未與源極線SL連接之一側之端部(第1記憶體區域43-1)。進而,讀出元件46亦磁性連接於磁體部42之端部(第1記憶體區域43-1),而讀出磁體部42之端部(第1記憶體區域43-1)中保
持之磁化資訊之磁化方向。
作為一例,讀出元件46為磁阻效應元件。因此,讀出元件46之磁化方向根據磁體部42之端部(第1記憶體區域43-1)中保持之磁化資訊之磁化方向而變化。進而,讀出元件46之磁阻值根據所記憶之磁化方向而變化。因此,讀出寫入電路36能讀出磁體部42之端部(第1記憶體區域43-1)中保持之磁化資訊之磁化方向。於實施形態中,讀出元件46為磁穿隧接面(MTJ)元件。
複數個記憶單元41各者中包含之磁體部42之端部(第1記憶體區域43-1)磁性連接於複數根場力線FL中對應之1根場力線FL。
複數根場力線FL分別通過對應行中包含之記憶單元41所含之磁體部42之端部(第1記憶體區域43-1)附近。因此,複數根場力線FL分別於流通電流之情形時,能向對應之記憶單元41中包含之磁體部42之端部(第1記憶體區域43-1)賦予感應磁場。
即,複數根場力線FL分別作為寫入元件發揮功能,該寫入元件利用由所流通之電流產生之磁場,向配置於對應行之1個以上記憶單元41各自所具有之磁體部42之端部(第1記憶體區域43-1),寫入與記錄資訊相應之磁化方向之磁化資訊。因此,讀出寫入電路36能藉由向對應之場力線FL流通與記錄資訊相應之電流以產生感應磁場,而向對象之記憶單元41中包含之磁體部42磁性寫入記錄資訊。
圖4係表示LIFO型記憶單元41之寫入時之磁體部42中保持的磁化資訊之一例之圖。再者,圖4表示磁體部42包含8個記憶體區域43之情形。
於對記憶單元41進行寫入時,該記憶單元41中包含之開關元件44成為連接狀態。因此,於對記憶單元41進行寫入時,該記憶單元41中包含之磁體部42能自讀出寫入電路36被供給寫入方向之位移脈衝電流。
藉由一次寫入處理,向磁體部42之寫入元件(場力線FL)側端部寫入與寫入電流相應之磁化方向之1個磁化資訊。1次寫入處理結束後,向磁體部42供給使所保持之全部磁化資訊向遠離寫入元件(場力線FL)側端部之方向(由第1記憶體區域43-1朝向第8記憶體區域43-8之方向)位移1個磁化資訊之位移脈衝電流。藉此,能使磁體部42之寫入元件(場力線FL)側端部(第1記憶體區域43-1)空閒,而寫入下一個新的有效磁化資訊。
以後,磁體部42交替地進行寫入處理與位移脈衝電流之供給。而且,一旦最初寫入之磁化資訊到達磁體部42之與寫入元件(場力線FL)為相反側之端部(第8記憶體區域43-8),以後便不再向磁體部42寫入新的磁化資訊。
如上所述,磁體部42一面使已經寫入之磁化資訊依序向末尾位置之方向(寫入方向)位移,一面向寫入元件(場力線FL)側端部(第1記憶體區域43-1)寫入新的磁化資訊。
圖5係表示LIFO型記憶單元41之讀出時之磁體部42中保持的磁化資訊之一例之圖。再者,圖5表示磁體部42包含8個記憶體區域43之情形。
於對記憶單元41進行讀出時,該記憶單元41中包含之開關元件44成為連接狀態。因此,於對記憶單元41進行讀出時,該記憶單元41中包含之磁體部42能自讀出寫入電路36被供給讀出方向之位移脈衝電流。
藉由一次讀出處理,磁體部42之讀出元件46側端部(第1記憶體區域43-1)被讀出1個磁化資訊之磁化方向。1次讀出處理結束後,向磁體部42供給使所保持之全部磁化資訊向靠近讀出元件46側端部之方向(由第8記憶體區域43-8朝向第1記憶體區域43-1之方向)位移1個磁化資訊之位移脈衝電流。藉此,磁體部42能使最近讀出之磁化資訊之下一個磁化資訊成為可讀出狀態。
以後,磁體部42交替地進行讀出處理與位移脈衝電流之供給。而且,一旦末尾之磁化資訊(距離讀出元件46側端部最遠之位置處保持之磁化資訊,即第8記憶體區域43-8中保持之磁化資訊)到達讀出元件46側端部,磁體部42便成為全部磁化資訊皆已讀出之狀態。
如上所述,磁體部42一面使所保持之磁化資訊依序向靠近讀出元件46側端部(第1記憶體區域43-1)之方向位移,一面依序讀出磁化資訊。
圖6係表示FIFO型記憶單元41中之寫入元件(場力線FL)及讀出元件46之配置之圖。再者,圖6表示磁體部42包含8個記憶體區域43之情形。
記憶體陣列32亦可為其他構成,而並非為圖3~圖5所示之構成。又,複數個記憶單元41亦可分別作為FIFO型移位暫存器發揮功能,而並非分別作為LIFO型移位暫存器發揮功能。
於作為FIFO型移位暫存器發揮功能之情形時,寫入元件(場力線FL)配置於磁體部42之一端部(第1記憶體區域43-1)附近。於作為FIFO型移位暫存器發揮功能之情形時,讀出元件46以磁性連接及電性連接之方式設置於與配置有寫入元件(場力線FL)之端部(第1記憶體區域43-1)為相反側之端部(第8記憶體區域43-8)。
而且,於作為FIFO型移位暫存器發揮功能之情形時,寫入時及讀出時皆沿著由寫入元件(場力線FL)側朝向讀出元件46側之寫入讀出方向(由第1記憶體區域43-1朝向第8記憶體區域43-8之方向)向磁體部42供給位移脈衝電流。
進而,於作為FIFO型移位暫存器發揮功能之情形時,磁體部42亦可同時進行寫入處理與讀出處理。即,於此一情形時,磁體部42交替地進行讀出及寫入之同時處理及位移脈衝電流之供給。
圖7係表示第1實施形態之記憶體控制器22之構成之圖。記憶體控制
器22具有控制電路50、主機IF(Interface,介面)電路52、記憶體IF電路54、讀出緩衝器56、寫入緩衝器58、錯誤校正電路60、表記憶體62。
控制電路50進行與主機控制器12之間之資料收發之控制。進而,控制電路50控制非揮發性記憶體24之資料寫入及讀出。控制電路50例如為讀出並執行ROM(Read Only Memory,唯讀記憶體)等內記憶之程式之處理電路。
主機IF電路52根據控制電路50施行之控制,於與主機控制器12之間經由匯流排等收發資料。記憶體IF電路54根據控制電路50施行之控制,於與非揮發性記憶體24之間收發資料。
讀出緩衝器56暫時記憶自非揮發性記憶體24之記憶塊40讀出之資料。寫入緩衝器58暫時記憶寫入至非揮發性記憶體24之記憶塊40之前之資料。
錯誤校正電路60對自非揮發性記憶體24之記憶塊40讀出之資料執行錯誤校正處理。又,錯誤校正電路60對要寫入至非揮發性記憶體24之記憶塊40之資料附加用於錯誤校正處理之同位碼(parity)。再者,錯誤校正電路60可由與控制電路50不同體之電路實現,亦可與控制電路50呈一體而實現。錯誤校正電路60亦可藉由控制電路50執行程式而實現。
表記憶體62記憶位址轉換表。位址轉換表針對非揮發性記憶體24所
具有之複數個記憶塊40各者內記憶之每個資料而登錄邏輯位址與物理位址之對應關係。邏輯位址係由主機控制器12所分配之位址。物理位址係分配給記憶有資料之記憶塊40之位址。
此處,控制電路50藉由執行ROM等內記憶之程式,而作為讀出控制部72、寫入控制部74、塊指針管理部76、位址更新部78及計數管理部80發揮功能。藉此,控制電路50作為具有讀出控制部72、寫入控制部74、塊指針管理部76、位址更新部78、計數管理部80之電路而動作。
讀出控制部72執行用以自非揮發性記憶體24讀出資料之控制。寫入控制部74執行用以向非揮發性記憶體24寫入資料之控制。
塊指針管理部76管理塊指針,該塊指針指示非揮發性記憶體24所具有之複數個記憶塊40中成為下一個寫入目的地之記憶塊40。
於非揮發性記憶體24所具有之複數個記憶塊40中之任一記憶塊40內已寫入資料之情形時,位址更新部78更新位址轉換表。又,於非揮發性記憶體24所具有之複數個記憶塊40中之任一記憶塊40內記憶之資料已無效之情形時,位址更新部78更新位址轉換表。
計數管理部80管理表示寫入次數之計數值。更詳細而言,計數值表示非揮發性記憶體24所具有之複數個記憶塊40中被寫入最多之記憶塊40之寫入次數以上之值。
圖8係表示收到讀取指令之情形時由控制電路50施行之處理之流程之流程圖。於自主機控制器12收到讀取指令之情形時,控制電路50執行圖8所示之處理。讀取指令包含識別對象資料之邏輯位址。
首先,於S11中,讀出控制部72基於邏輯位址及位址轉換表,特定記憶有對象資料之記憶塊40之物理位址。繼而,於S12中,讀出控制部72自所特定之物理位址下之記憶塊40讀出對象資料。
繼而,於S13中,讀出控制部72將所讀出之對象資料暫時記憶於讀出緩衝器56。於此一情形時,錯誤校正電路60對所讀出之對象資料執行錯誤校正處理。繼而,於S14中,讀出控制部72將暫時記憶於讀出緩衝器56之對象資料發送至主機控制器12。
繼而,於S15中,讀出控制部72將讀出緩衝器56內記憶之對象資料暫時記憶於寫入緩衝器58。於此一情形時,錯誤校正電路60亦可再次生成同位碼,並將其附加於對象資料上。
繼而,於S16中,寫入控制部74將寫入緩衝器58內記憶之對象資料寫入至塊指針所指示之物理位址下之記憶塊40。繼而,於S17中,位址更新部78將位址轉換表中登錄之對象資料之物理位址變更成塊指針所指示之記憶塊40之物理位址。
繼而,於S18中,塊指針管理部76更新塊指針。控制電路50亦可並行地實施S15~S17之處理與S18之處理。再者,關於塊指針之更新處理之詳情,將參照圖10於下文進行敍述。結束S18之處理後,控制電路50結束本流程。
如上所述,讀出控制部72自非揮發性記憶體24所具有之複數個記憶塊40中之任一第1記憶塊讀出對象資料。於此一情形時,寫入控制部74將自第1記憶塊讀出之對象資料寫入至複數個記憶塊40中與第1記憶塊不同之第2記憶塊。然後,控制電路50將位址轉換表中登錄之對象資料之物理位址變更成第2記憶塊。
藉由進行此種處理,記憶裝置20即便於反覆讀出特定之對象資料之情形時,亦不會對特定之1個記憶塊40反覆進行存取。藉此,根據記憶裝置20,不會使存取集中於特定之記憶塊40,從而能使對複數個記憶塊40之疲弊平準化。
圖9係表示收到寫入指令之情形時由控制電路50施行之處理之流程之流程圖。於自主機控制器12收到寫入指令之情形時,控制電路50執行圖9所示之處理。寫入指令包含對象資料及識別對象資料之邏輯位址。
首先,於S21中,寫入控制部74將對象資料暫時記憶於寫入緩衝器58。於此一情形時,錯誤校正電路60生成同位碼,並將其附加於對象資料上。繼而,於S22中,寫入控制部74將寫入緩衝器58內記憶之對象資料
寫入至塊指針所指示之記憶塊40。
繼而,於S23中,位址更新部78將位址轉換表中登錄之對象資料之物理位址變更成塊指針所指示之記憶塊40之物理位址。再者,於位址更新部78將新的資料寫入至非揮發性記憶體24之情形時,對象資料之邏輯位址與物理位址之對應關係尚未登錄至位址轉換表。於此一情形時,位址更新部78要將對象資料之邏輯位址與物理位址之對應關係新登錄至位址轉換表。
繼而,於S24中,塊指針管理部76更新塊指針。控制電路50亦可並行地實施S21~S23之處理與S24之處理。再者,關於塊指針之更新處理之詳情,將參照圖10於下文進行敍述。結束S24之處理後,控制電路50結束本流程。
如上所述,寫入控制部74更新非揮發性記憶體24所具有之複數個記憶塊40中之任一第1記憶塊內記憶之對象資料。於此一情形時,寫入控制部74向複數個記憶塊40中與第1記憶塊不同之第2記憶塊寫入更新後之對象資料。然後,控制電路50將位址轉換表中登錄之對象資料之物理位址變更成第2記憶塊。
藉由進行此種處理,記憶裝置20即便於反覆更新特定之對象資料之情形時,亦不會對特定之1個記憶塊40反覆進行存取。藉此,根據記憶裝置20,不會使存取集中於特定之記憶塊40,從而能使對複數個記憶塊40
之疲弊平準化。
再者,寫入控制部74於收到寫入指令之情形時,亦可執行更新記憶塊40內記憶之一部分資料之讀出-修改-寫入處理。於此一情形時,首先,寫入控制部74基於邏輯位址及位址轉換表,特定記憶有對象資料之記憶塊40之物理位址,自所特定之物理位址下之記憶塊40讀出對象資料,並將其暫時記憶於讀出緩衝器56。繼而,寫入控制部74改寫所讀出之對象資料中藉由寫入指令特定之一部分資料。之後,寫入控制部74對改寫後之對象資料執行S21至S24之處理。例如,於自主機控制器12收到之資料之尺寸小於由記憶裝置20管理之資料之尺寸之情形時,寫入控制部74執行此種讀出-修改-寫入處理。於以下說明中,為了簡化說明,以寫入控制部74於收到寫入指令之情形時寫入記憶塊40之單位量之資料之情形為例進行說明。
圖10係表示第1實施形態之塊指針之更新處理的流程之流程圖。於圖8之S18及圖9之S24中更新塊指針後,控制電路50執行圖10之處理。
首先,於S31中,塊指針管理部76自塊指針所指示之記憶塊40起,按預先規定之順序循環地搜索複數個記憶塊40,藉此檢測塊指針所指示之記憶塊40之前1個記憶塊40。例如,於對複數個記憶塊40分別分配了連續編號之物理位址之情形時,塊指針管理部76藉由使塊指針遞增1或遞減1,而檢測前1個記憶塊40。再者,於塊指針指示末尾之物理位址之情形時,塊指針管理部76藉由使塊指針返回至開頭之物理位址,而實現循環式搜
索。
繼而,於S32中,塊指針管理部76將塊指針以指示所檢測到之前1個記憶塊40之物理位址之方式變更。
繼而,於S33中,塊指針管理部76對塊指針所指示之記憶塊40內是否記憶有有效資料進行判斷。即,塊指針管理部76於塊指針所指示之記憶塊40為尚未寫入資料之空塊,或為雖已寫入資料但資料無效之無效塊之情形時,判斷未記憶有效資料。例如,塊指針管理部76參照位址轉換表,對塊指針所指示之記憶塊40內是否記憶有有效資料進行判斷。
於塊指針所指示之記憶塊40內記憶有有效資料之情形時(S33為是時),塊指針管理部76將處理推進至S34。於S34中,塊指針管理部76對塊指針所指示之記憶塊40是否為末尾之記憶塊40進行判斷。於並非為末尾之記憶塊40之情形時(S34為否時),塊指針管理部76使處理返回至S31,自S31重複實施處理。
於為末尾之記憶塊40之情形時(S34為是時),塊指針管理部76將處理推進至S35。於S35中,計數管理部80使計數值遞增。藉此,計數管理部80能將計數值以表示複數個記憶塊40中被寫入最多之記憶塊40之寫入次數以上之值之方式更新。計數管理部80於完成S35後,使處理返回至S31,自S31重複實施處理。
又,於塊指針所指示之記憶塊40內未記憶有效資料之情形時(S33為否時),塊指針管理部76結束本流程。藉此,塊指針管理部76能將塊指針以指示複數個記憶塊40中未記憶有效資料之最初之記憶塊40之物理位址之方式更新。
如上所述,於已寫入對象資料之情形時,塊指針管理部76自塊指針所指示之記憶塊40起,按預先規定之順序循環地搜索複數個記憶塊40,藉此檢測複數個記憶塊40中未記憶有效資料之最初之記憶塊40。藉此,塊指針管理部76能依序選擇未記憶有效資料之記憶塊40並向其中寫入資料。因此,根據記憶裝置20,不會使寫入集中於特定之記憶塊40,從而能對複數個記憶塊40均等地進行寫入。
又,計數管理部80會將計數值以成為被寫入最多之記憶塊40之寫入次數以上之值之方式更新。藉此,根據記憶裝置20,能管理非揮發性記憶體24之壽命。
圖11係用以說明第1實施形態中之資料之寫入、讀出及更新之圖。於圖11中,1個四角形表示1個記憶塊40。又,於圖11中,空白之四角形表示尚未寫入資料之空塊。又,於圖11中,劃有影線之四角形表示寫入某些資料後之記憶塊40。以後之相同之圖亦同樣如此。
如圖11(A)所示,新的資料寫入至塊指針所指示之記憶塊40。寫入新的資料後,塊指針被以指示未記憶有效資料之最初之記憶塊40之方式更
新。
如圖11(B)所示,記憶塊40存在寫入資料後藉由來自主機控制器12之讀取指令再被讀出資料之情形。如圖11(C)所示,於被讀出資料之情形時,讀出對象之記憶塊40內記憶之資料變為無效。所讀出之資料寫回至與讀出對象之記憶塊40不同之塊指針所指示之記憶塊40。而且,寫回資料後,塊指針被以指示未記憶有效資料之最初之記憶塊40之方式更新。
如圖11(D)所示,記憶塊40存在寫入資料後藉由來自主機控制器12之寫入指令再被更新資料之情形。如圖11(E)所示,於被更新資料之情形時,更新對象之記憶塊40內記憶之更新前資料變為無效。更新後資料寫入至塊指針所指示之記憶塊40。而且,寫入更新後資料後,塊指針被以指示未記憶有效資料之最初之記憶塊40之方式更新。
圖12係用以說明第1實施形態中之塊指針之移動之圖。塊指針到達複數個記憶塊40中之末尾之記憶塊40後,被以指示開頭之記憶塊40之方式變更。每當塊指針到達末尾之記憶塊40時,計數值遞增1。
向複數個記憶塊40全部皆寫入1次資料後,如圖12(A)、圖12(B)及圖12(C)所示,塊指針被以指示未記憶有效資料之最初之記憶塊40之方式更新。又,如圖12(D)所示,搜索未記憶有效資料之記憶塊40時,每當塊指針到達末尾之記憶塊40時,計數值遞增。
如上所述,第1實施形態之記憶裝置20即便於反覆讀出特定之對象資料之情形時或於反覆更新特定之對象資料之情形時,亦不會對特定之1個記憶塊40反覆進行存取。藉此,根據記憶裝置20,不會使存取集中於特定之記憶塊40,從而能使對複數個記憶塊40之疲弊平準化。
其次,對第2實施形態之資訊處理裝置10進行說明。第2實施形態之資訊處理裝置10具有與第1實施形態之資訊處理裝置10大致相同之構成及功能。說明第2實施形態之資訊處理裝置10時,對具有與第1實施形態大致相同之構成及功能之構成要素標註相同之符號,並省略除了不同點以外之詳細說明。再者,對於第3實施形態及其以後之實施形態,亦同樣如此。
圖13係表示第2實施形態之記憶體陣列32之圖。於第2實施形態中,非揮發性記憶體24被分割成複數個區域82。複數個記憶塊40分別包含於複數個區域82中之任一區域內。再者,複數個區域82於非揮發性記憶體24內並非物理分割,而是邏輯分割。
圖14係表示第2實施形態之記憶體控制器22之構成之圖。
第2實施形態之控制電路50藉由執行ROM等內記憶之程式,而作為讀出控制部72、寫入控制部74、塊指針管理部76、位址更新部78、計數管理部80、空塊管理部84、區域指針管理部86及資料移動部88發揮功
能。藉此,控制電路50作為具有讀出控制部72、寫入控制部74、塊指針管理部76、位址更新部78、計數管理部80、空塊管理部84、區域指針管理部86、資料移動部88之電路而動作。
空塊管理部84管理空塊數,該空塊數表示複數個區域82各自之未記憶有效資料之記憶塊40之數量。未記憶有效資料之記憶塊40為尚未寫入資料之空塊、雖已寫入資料但資料無效之無效塊、或所寫入之資料被讀出後未寫入任何資料之塊。
區域指針管理部86管理區域指針,該區域指針指示複數個區域82中成為下一個寫入目的地之對象區域。區域指針管理部86基於複數個區域82各自之空塊數,選擇複數個區域82中的一個作為新的對象區域。
於第2實施形態中,寫入控制部74向複數個區域82中由區域指針指示之對象區域內之由塊指針指示之記憶塊40寫入對象資料。於第2實施形態中,計數管理部80管理複數個區域82各自之表示寫入次數之計數值。更詳細而言,計數值表示包含於該區域82內之複數個記憶塊40中被寫入最多之記憶塊40之寫入次數以上之值。
於針對複數個區域82之計數值之方差大於預先規定值之情形時,資料移動部88將移動對象區域內記憶之資料群移動至移動目標區域。移動對象區域為複數個區域82中計數值小於預先規定之第1基準值之任一區域82。移動目標區域為複數個區域82中計數值大於預先規定之第2基準值之
任一區域82。再者,第2基準值大於第1基準值。藉此,資料移動部88能增多計數值小於第1基準值之區域82之空塊數。
圖15係表示第2實施形態之塊指針之更新處理的流程之流程圖。於圖8之S18及圖9之S24中更新塊指針後,第2實施形態之控制電路50執行圖15之處理。
首先,於S41中,塊指針管理部76自塊指針所指示之記憶塊40起,按預先規定之順序搜索複數個記憶塊40,藉此檢測塊指針所指示之記憶塊40之前1個記憶塊40。
繼而,於S42中,塊指針管理部76將塊指針以指示所檢測到之前1個記憶塊40之物理位址之方式變更。
繼而,於S43中,塊指針管理部76對塊指針所指示之記憶塊40內是否記憶有有效資料進行判斷。於塊指針所指示之記憶塊40內記憶有有效資料之情形時(S43為是時),塊指針管理部76將處理推進至S44。
於S44中,塊指針管理部76對塊指針所指示之記憶塊40是否為區域指針所指示之對象區域中之末尾之記憶塊40進行判斷。於塊指針所指示之記憶塊40並非為末尾之記憶塊40之情形時(S44為否時),塊指針管理部76使處理返回至S41,自S41重複實施處理。
於塊指針所指示之記憶塊40為末尾之記憶塊40之情形時(S44為是時),塊指針管理部76將處理推進至S45。於S45中,計數管理部80使表示對象區域之寫入次數之計數值遞增。藉此,計數管理部80能將對象區域之計數值以表示包含於對象區域內之兩個以上記憶塊40中被寫入最多之記憶塊40之寫入次數以上之值之方式更新。計數管理部80於完成S45後,將處理推進至S46。
繼而,於S46中,區域指針管理部86選擇複數個區域82中的一個作為新的對象區域。例如,區域指針管理部86基於由空塊管理部84管理之複數個區域82各自之空塊數,選擇複數個區域82中的一個區域作為新的對象區域。然後,區域指針管理部86將區域指針以指示所選擇之對象區域之方式更新。關於區域指針之更新處理之詳情,將參照圖16於下文進行敍述。
繼而,於S47中,塊指針管理部76將塊指針以指示區域指針所指示之對象區域中之開頭之記憶塊40之物理位址之方式變更。塊指針管理部76於完成S47之處理後,使處理返回至S43,自S43重複實施處理。
又,於S43中,塊指針所指示之記憶塊40內未記憶有效資料之情形時(S43為否時),塊指針管理部76結束本流程。
如上所述,於已寫入對象資料之情形時,塊指針管理部76自塊指針所指示之記憶塊40至對象區域中之末尾之記憶塊40,按預先規定之順序
搜索複數個記憶塊40中包含於對象區域內之兩個以上記憶塊40,藉此檢測包含於對象區域內之兩個以上記憶塊40中未記憶有效資料之最初之記憶塊40。然後,塊指針管理部76將塊指針以指示所檢測到之最初之記憶塊40之方式更新。藉此,塊指針管理部76能依序選擇對象區域中之未記憶有效資料之記憶塊40並向其中寫入資料。
進而,於搜索進行至末尾之記憶塊40之情形時,區域指針管理部86選擇複數個區域82中的一個作為對象區域,並將區域指針以指示所選擇之對象區域之方式更新。藉此,區域指針管理部86能自複數個區域82當中選擇對於寫入資料而言合適之對象區域。
進而,於搜索進行至末尾之記憶塊40之情形時,塊指針管理部76將塊指針以指示包含於新的對象區域內之兩個以上記憶塊40中之開頭之記憶塊40之方式更新,而反覆檢測最初之記憶塊40。藉此,塊指針管理部76能於搜索進行至末尾之記憶塊40後,自新的對象區域中之開頭之記憶塊40起寫入資料。
圖16係表示第2實施形態之區域指針之更新處理的流程之流程圖。於圖15之S46中更新區域指針後,控制電路50執行圖16之處理。
首先,於S51中,區域指針管理部86取得餘裕率。餘裕率表示非揮發性記憶體24中之空塊數相對於非揮發性記憶體24中之能寫入資料之全部記憶塊40之數量之比率。
繼而,於S52中,區域指針管理部86抽出複數個區域82中空閒率大於餘裕率之1個或複數個區域82。空閒率表示該區域82之空塊數相對於該區域82中包含之記憶塊40之數量之比率。區域指針管理部86自空塊管理部84取得空塊數。
繼而,於S53中,區域指針管理部86自所抽出之1個或複數個區域82當中選擇1個區域82。然後,區域指針管理部86將所選擇之區域82設為新的對象區域。
繼而,於S54中,區域指針管理部86將區域指針以指示所選擇之對象區域之方式變更。區域指針管理部86於完成S54後,結束本流程。
如上所述,區域指針管理部86選擇複數個區域82中的空閒率大於餘裕率之區域82作為對象區域。藉此,區域指針管理部86能向空閒率較大之區域82而非空閒率較小之區域82寫入資料。
又,區域指針管理部86亦可選擇複數個區域82中的空塊數為預先規定值以上之區域82作為對象區域,以代替圖16之處理。又,預先規定值亦可隨著時間之經過而變更。藉此,區域指針管理部86能以相對較為簡易之處理,向空閒率較大之區域82寫入資料。
又,區域指針管理部86亦可選擇複數個區域82中的空閒率最大之區
域82作為對象區域,以代替圖16之處理。藉此,區域指針管理部86能自空閒率最大之區域82起依序寫入資料。
又,除了以上處理以外,區域指針管理部86亦可選擇複數個區域82中的計數值小於預先規定之閾值之區域82作為對象區域。因此,區域指針管理部86不會選擇雖然空閒率較大但計數值為閾值以上之區域82。藉此,區域指針管理部86能使對複數個區域82之疲弊平準化。
圖17係表示第2實施形態之複數個記憶塊40之狀態的第1例之圖。於圖17中,由虛線圈起之區域82表示對象區域。於圖18及圖19中亦同樣如此。
如圖17(A)所示,於非揮發性記憶體24中未寫入資料之狀態下,區域指針指示按預先規定之基準選擇之對象區域。又,塊指針指示對象區域中之開頭之記憶塊40。
如圖17(B)所示,對象區域係自開頭之記憶塊40起依序寫入資料。每當寫入資料時,對象區域之空塊數遞減。
如圖17(C)所示,於資料寫入進行至對象區域中之末尾之記憶塊40之情形時,區域指針被以指示所選擇之新的對象區域之方式更新。又,每當自該區域82讀出資料時,及每當該區域82內記憶之資料變為無效時,複數個區域82各自之空塊數遞增。又,每當向該區域82寫入資料時,複數
個區域82各自之空塊數遞減。
圖18係表示第2實施形態之複數個記憶塊40之狀態的第2例之圖。如圖18(A)所示,對象區域例如係自空塊數為預先規定值以上之1個或複數個區域82當中選擇。
如圖18(B)所示,於選擇已寫入1次以上資料之區域82作為對象區域之情形時,塊指針被以指示對象區域中之最初之無效記憶塊40之方式更新。所謂最初之無效記憶塊40係指,於自最近之塊指針之位置按規定順序搜索對象區域中之複數個記憶塊40之情形時,最初檢測到之非有效之記憶塊40。因此,對象區域中之有效記憶塊40於搜索中被跳過。
如圖18(C)所示,由於係自空塊數為預先規定值以上之1個或複數個區域82當中選擇對象區域,因此空塊數小於預先規定值之區域82不會被選為對象區域。例如,空塊數小於1之區域82不會被選為對象區域。
圖19係用以說明第2實施形態之資料群之移動之圖。於針對複數個區域82之計數值之方差大於預先規定值之情形時,資料移動部88執行資料群之移動處理。例如,資料移動部88可於計數值之最大值與最小值之差為預先規定值以上之情形時,判斷計數值之方差大於預先規定值。
資料移動部88於執行移動處理之情形時,將複數個區域82中計數值小於預先規定之第1基準值之任一區域82特定為移動對象區域。又,資料
移動部88於執行移動處理之情形時,將複數個區域82中計數值大於預先規定之第2基準值之任一區域82特定為移動目標區域。進而,資料移動部88亦可將空塊數為預先規定值以上且計數值大於第2基準值之任一區域82特定為移動目標區域。
例如,如圖19(A)所示,資料移動部88將計數值為1之區域82特定為移動對象區域。又,資料移動部88將計數值為40且空塊數為3之區域82特定為移動目標區域。
然後,如圖19(B)所示,資料移動部88將移動對象區域內記憶之資料群移動至移動目標區域。更具體而言,資料移動部88讀出移動對象區域中之移動目標區域之空塊數以下數量的記憶塊40內記憶之資料群。繼而,資料移動部88將所讀出之資料群寫入至移動目標區域中之空塊。藉此,資料移動部88能使移動對象區域之空塊數增加。
如上所述,第2實施形態之記憶裝置20能向複數個區域82中空閒數較多之區域82寫入資料。藉此,根據第2實施形態之記憶裝置20,能效率良好地向空閒數較多之區域82寫入資料。
其次,對第3實施形態之資訊處理裝置10進行說明。
圖20係表示第3實施形態之塊指針之更新處理的流程之流程圖。第3
實施形態之控制電路50與第1實施形態之控制電路50相比,兩者之塊指針之更新處理不同。
第3實施形態之控制電路50於圖8之S18及圖9之S24中,執行圖20之處理。
首先,於S61中,塊指針管理部76自塊指針所指示之記憶塊40起,按預先規定之順序循環地搜索複數個記憶塊40,藉此檢測複數個記憶塊40中塊指針所指示之記憶塊40之前1個記憶塊40及2個前之記憶塊40。繼而,於S62中,塊指針管理部76將塊指針以指示前1個記憶塊40之物理位址之方式變更。
繼而,於S63中,塊指針管理部76對2個前之記憶塊40內是否記憶有有效資料進行判斷。於2個前之記憶塊40內記憶有有效資料之情形時(S63為是時),塊指針管理部76將處理推進至S64。
於S64中,塊指針管理部76將2個前之記憶塊40內記憶之資料移動至前1個記憶塊40。更具體而言,塊指針管理部76讀出2個前之記憶塊40內記憶之資料。繼而,塊指針管理部76將所讀出之資料寫入至前1個記憶塊40。
繼而,於S65中,位址更新部78更新位址轉換表中登錄之自2個前之記憶塊40移動至前1個記憶塊40後之資料之物理位址。
繼而,於S66中,塊指針管理部76對塊指針所指示之記憶塊40是否為末尾之記憶塊40進行判斷。於並非為末尾之記憶塊40之情形時(S66為否時),塊指針管理部76使處理返回至S61,自S61重複實施處理。
於為末尾之記憶塊40之情形時(S66為是時),塊指針管理部76將處理推進至S67。於S67中,計數管理部80使計數值遞增。計數管理部80於完成S67後,使處理返回至S61,自S61重複實施處理。
又,於2個前之記憶塊40內未記憶有效資料之情形時(S63為否時),塊指針管理部76結束本流程。藉此,塊指針管理部76能將塊指針以指示未記憶有效資料之連續2個記憶塊40中之最初的記憶塊40之物理位址之方式更新。
如上所述,於已寫入對象資料之情形時,塊指針管理部76自塊指針所指示之記憶塊40起,按預先規定之順序循環地搜索複數個記憶塊40,藉此檢測複數個記憶塊40中塊指針所指示之記憶塊40之前1個記憶塊40及2個前之記憶塊40。進而,塊指針管理部76將塊指針以指示前1個記憶塊40之方式更新。進而,於2個前之記憶塊40內記憶有有效資料之情形時,塊指針管理部76將2個前之記憶塊40內記憶之資料移動至前1個記憶塊40。然後,塊指針管理部76反覆進行前1個記憶塊40及2個前之記憶塊40之檢測、塊指針之更新及資料之移動,直至檢測到未記憶有效資料之2個前之記憶塊40為止。藉此,塊指針管理部76能使對複數個記憶塊40各者
之寫入次數均勻。
圖21係用以說明第3實施形態中之資料之寫入、讀出及更新之圖。
例如,如圖21(A)所示,於2個前之記憶塊40為空塊之情形時,塊指針被以指示作為空塊之前1個記憶塊40之方式更新。又,例如,如圖21(B)所示,於2個前之記憶塊40為無效塊之情形時,塊指針被以指示作為無效塊之前1個記憶塊40之方式更新。
此處,如圖21(C)所示,存在已寫入資料之記憶塊40之2個前之記憶塊40內記憶有有效資料之情形。於此一情形時,如圖21(D)所示,2個前之記憶塊40內記憶之資料移動至前1個記憶塊40。其結果,2個前之記憶塊40成為無效塊,且塊指針被以指示2個前之記憶塊40之方式更新。
如上所述,第3實施形態之記憶裝置20於藉由按預先規定之順序循環地搜索複數個記憶塊40,而檢測到寫入資料後1次也未讀出資料之記憶塊40之情形時,自該記憶塊40讀出資料,並將其寫入至前1個記憶塊40。藉此,根據第3實施形態之記憶裝置20,能使對複數個記憶塊40各者之寫入次數均勻。
其次,對第4實施形態之資訊處理裝置10進行說明。
圖22係表示第4實施形態之記憶體陣列32之圖。於第4實施形態中,非揮發性記憶體24具有熱區90及冷區92。複數個區域82分別包含於熱區90或冷區92中之任一區域內。再者,熱區90與冷區92於非揮發性記憶體24內並非物理分割,而是邏輯分割。
圖23係表示第4實施形態之記憶體控制器22之構成之圖。第4實施形態之控制電路50藉由執行ROM等內所記憶之程式,而作為讀出控制部72、寫入控制部74、塊指針管理部76、位址更新部78、計數管理部80、冷指針管理部94及區域設定部96發揮功能。藉此,控制電路50作為具有讀出控制部72、寫入控制部74、塊指針管理部76、位址更新部78、計數管理部80、冷指針管理部94、區域設定部96之電路而動作。
於第4實施形態中,塊指針指示包含於熱區90內之兩個以上記憶塊40中成為下一個寫入目的地之記憶塊40。冷指針管理部94管理冷指針。冷指針指示包含於冷區92內之兩個以上記憶塊40中成為下一個寫入目的地之記憶塊40。
區域設定部96對複數個記憶塊40分別包含於熱區90或冷區92中之哪一者進行設定。區域設定部96按預先規定之時序,對是使複數個記憶塊40分別包含於熱區90還是包含於冷區92進行變更。又,於第4實施形態中,計數管理部80管理熱區90之計數值及冷區92之計數值。
圖24係表示第4實施形態之塊指針之更新處理的流程之流程圖。第4
實施形態之控制電路50於圖8之S18及圖9之S24中,執行圖24之處理。
首先,於S71中,塊指針管理部76自塊指針所指示之記憶塊40起,按預先規定之順序循環地搜索包含於熱區90內之兩個以上記憶塊40,藉此檢測塊指針所指示之記憶塊40之前1個記憶塊40。
繼而,於S72中,塊指針管理部76將塊指針以指示熱區90中之前1個記憶塊40之物理位址之方式變更。
繼而,於S73中,塊指針管理部76對熱區90中之前1個記憶塊40內是否記憶有有效資料進行判斷。於熱區90中之前1個記憶塊40內記憶有有效資料之情形時(S73為是時),塊指針管理部76將處理推進至S74。
於S74中,塊指針管理部76將熱區90中之前1個記憶塊40內記憶之資料移動至冷指針所指示之記憶塊40。更具體而言,塊指針管理部76讀出熱區90中之前1個記憶塊40內記憶之資料。繼而,塊指針管理部76將所讀出之資料寫入至冷指針所指示之記憶塊40。
繼而,於S75中,位址更新部78更新位址轉換表中登錄之自熱區90中之前1個記憶塊40移動至冷指針所指示的記憶塊40後之資料之物理位址。
繼而,於S76中,塊指針管理部76對塊指針所指示之記憶塊40是否為末尾之記憶塊40進行判斷。於並非為末尾之記憶塊40之情形時(S76為否
時),塊指針管理部76使處理返回至S71,自S71重複實施處理。
於為末尾之記憶塊40之情形時(S76為是時),塊指針管理部76將處理推進至S77。於S77中,計數管理部80使熱區90之計數值遞增。計數管理部80於完成S77後,使處理返回至S71,自S71重複實施處理。
又,於熱區90中之前1個記憶塊40內未記憶有效資料之情形時(S73為否時),塊指針管理部76結束本流程。藉此,塊指針管理部76能於檢測到寫入資料後1次未讀出資料之熱區90中之記憶塊40之情形時,將該記憶塊40之資料移動至冷區92。
如上所述,於已寫入對象資料之情形時,塊指針管理部76自塊指針所指示之記憶塊40起,按預先規定之順序循環地搜索包含於熱區90內之兩個以上記憶塊40,藉此檢測包含於熱區90內之兩個以上記憶塊40中塊指針所指示之記憶塊40之前1個記憶塊40。進而,塊指針管理部76將塊指針以指示熱區90中之前1個記憶塊40之方式更新。進而,於熱區90中之前1個記憶塊40內記憶有有效資料之情形時,塊指針管理部76將熱區90中之前1個記憶塊40內記憶之資料移動至冷指針所指示之記憶塊40。然後,塊指針管理部76反覆進行前1個記憶塊40之檢測、塊指針之更新及資料之移動,直至檢測到熱區90中之未記憶有效資料之前1個記憶塊40為止。
藉此,根據記憶裝置20,能使對包含於熱區90內之兩個以上記憶塊40各者之寫入次數均勻。進而,根據記憶裝置20,能將存取頻率較少之
資料記憶於冷區92中包含之兩個以上記憶塊40各者。
進而,於熱區90中包含之記憶塊40內記憶之資料已移動至冷指針所指示之記憶塊40之情形時,冷指針管理部94執行圖10所示之處理。再者,於此一情形時,冷指針管理部94使用冷指針代替塊指針而執行處理。又,計數管理部80使冷區92之計數值遞增。
因此,冷指針管理部94自冷指針所指示之記憶塊40起,按預先規定之順序循環地進行搜索,藉此檢測包含於冷區92內之兩個以上記憶塊40中未記憶有效資料之最初之記憶塊40。然後,冷指針管理部94將冷指針以指示包含於冷區92內之兩個以上記憶塊40中未記憶有效資料之最初之記憶塊40之方式變更。藉此,根據記憶裝置20,不會使寫入集中於包含在冷區92內之兩個以上記憶塊40中之特定之記憶塊40,從而能均等地進行寫入。
再者,於熱區90中包含之記憶塊40內記憶之資料已移動至冷指針所指示之記憶塊40之情形時,冷指針管理部94亦可執行圖20所示之處理。再者,於此一情形時,冷指針管理部94使用冷指針代替塊指針而執行處理。又,計數管理部80使冷區92之計數值遞增。藉此,根據記憶裝置20,能使對包含於冷區92內之兩個以上記憶塊40各者之寫入次數均勻。
圖25係用以說明第4實施形態中之資料之寫入、讀出及更新之圖。
例如,如圖25(A)所示,於熱區90中之已寫入資料之記憶塊40之前1個記憶塊40為空塊之情形時,塊指針被以指示作為空塊之前1個記憶塊40之方式更新。又,例如,如圖25(B)所示,於熱區90中之已寫入資料之記憶塊40之前1個記憶塊40為無效塊之情形時,塊指針被以指示作為無效塊之前1個記憶塊40之方式更新。
此處,如圖25(C)所示,存在熱區90中之已寫入資料之記憶塊40之前1個記憶塊40內記憶有有效資料之情形。於此一情形時,如圖25(D)所示,熱區90中之前1個記憶塊40內記憶之資料移動至冷指針所指示之記憶塊40。然後,塊指針進一步向前移動1個。
圖26係用以說明第4實施形態中之資料之讀出之圖。於第4實施形態中,自複數個記憶塊40分別讀出之資料寫入至塊指針所指示之記憶塊40。因此,如圖26所示,自包含於冷區92內之記憶塊40讀出之資料寫回至包含於熱區90內之記憶塊40中塊指針所指示之記憶塊40。
圖27係用以說明區域設定部96之處理之圖。區域設定部96按預先規定之時序,對是使複數個記憶塊40分別包含於熱區90還是包含於冷區92進行變更。例如,區域設定部96可每一定時間,對是使複數個記憶塊40分別包含於熱區90還是包含於冷區92進行變更,亦可每當發生一定數量之資料寫入時進行變更。
例如,非揮發性記憶體24亦可被分割成如第2實施形態所示之複數個
區域82。於此一情形時,區域設定部96亦可將計數值為預先規定之閾值以上之區域82設為冷區92,將其他區域82設為熱區90。
又,區域設定部96亦可於變更後立即將冷區92中之記憶塊40內記憶之資料移動至熱區90。藉此,區域設定部96能於變更後立即使包含於冷區92內之兩個以上記憶塊40全部成為未記憶有效資料之狀態。又,若於變更後,記憶有資料之記憶塊40包含於冷區92,則區域設定部96亦可將該記憶有資料之記憶塊40當作熱區90處理直至讀出資料為止。
包含於冷區92內之記憶塊40較之包含於熱區90內之記憶塊40,資料之寫入次數變得更少。因此,區域設定部96藉由對是使複數個記憶塊40分別包含於熱區90還是包含於冷區92進行變更,能使對包含於非揮發性記憶體24內之複數個記憶塊40之資料寫入次數均勻。
如上所述,第4實施形態之記憶裝置20能使對包含於熱區90內之兩個以上記憶塊40之寫入次數均勻。進而,第4實施形態之記憶裝置20能將存取頻率較少之資料記憶於冷區92中包含之兩個以上記憶塊40各者。
進而,第4實施形態之記憶裝置20藉由對是使複數個記憶塊40分別包含於熱區90還是包含於冷區92進行變更,能對非揮發性記憶體24全體均等地進行寫入。藉此,根據記憶裝置20,不會使存取集中於特定之記憶塊40,從而能使對複數個記憶塊40之疲弊平準化。
其次,對第5實施形態之資訊處理裝置10進行說明。
圖28係表示第5實施形態之記憶體陣列32之圖。於第5實施形態中,非揮發性記憶體24具有熱區90、暖區98、冷區92。複數個區域82分別包含於熱區90、暖區98或冷區92中之任一區域內。再者,熱區90、暖區98、冷區92於非揮發性記憶體24內並非物理分割,而是邏輯分割。
圖29係表示第5實施形態之記憶體控制器22之構成之圖。第5實施形態之控制電路50藉由執行ROM等內記憶之程式,而作為讀出控制部72、寫入控制部74、塊指針管理部76、位址更新部78、計數管理部80、冷指針管理部94、區域設定部96及暖指針管理部100發揮功能。藉此,控制電路50作為具有讀出控制部72、寫入控制部74、塊指針管理部76、位址更新部78、計數管理部80、冷指針管理部94、區域設定部96、暖指針管理部100之電路而動作。
於第5實施形態中,塊指針指示包含於熱區90內之兩個以上記憶塊40中成為下一個寫入目的地之記憶塊40。暖指針管理部100管理暖指針。暖指針指示包含於暖區98內之兩個以上記憶塊40中成為下一個寫入目的地之記憶塊40。
區域設定部96對複數個記憶塊40分別包含於熱區90、暖區98或冷區92中之哪一者進行設定。區域設定部96按預先規定之時序,對是使複數
個記憶塊40分別包含於熱區90,還是包含於暖區98,或是包含於冷區92進行變更。又,於第5實施形態中,計數管理部80管理熱區90之計數值、暖區98之計數值及冷區92之計數值。
此處,於第5實施形態中,塊指針所指示之記憶塊40內已寫入資料之情形時,塊指針管理部76執行圖24所示之處理。但於第5實施形態中,塊指針管理部76於在S74之處理中,熱區90中之前1個記憶塊40內記憶有有效資料之情形時,將熱區90中之前1個記憶塊40內記憶之資料移動至暖指針所指示之記憶塊40。
又,第5實施形態中,於熱區90中包含之記憶塊40內記憶之資料已移動至暖指針所指示之記憶塊40之情形時,暖指針管理部100執行圖24所示之處理。再者,於此一情形時,暖指針管理部100使用暖指針代替塊指針而執行處理。又,計數管理部80使暖區98之計數值遞增。
因此,於資料已移動至暖指針所指示之記憶塊40之情形時,暖指針管理部100自暖指針所指示之記憶塊40起,按預先規定之順序循環地搜索包含於暖區98內之兩個以上記憶塊40,藉此檢測包含於暖區98內之兩個以上記憶塊40中暖指針所指示之記憶塊40之前1個記憶塊40。進而,暖指針管理部100將暖指針以指示暖區98中之前1個記憶塊40之方式更新。進而,於暖區98中之前1個記憶塊40內記憶有有效資料之情形時,暖指針管理部100將暖區98中之前1個記憶塊40內記憶之資料移動至冷指針所指示之記憶塊40。然後,暖指針管理部100反覆進行前1個記憶塊40之檢測、
暖指針之更新及資料之移動,直至檢測到暖區98中之未記憶有效資料之前1個記憶塊40為止。
又,第5實施形態中,於暖區98中包含之記憶塊40內記憶之資料已移動至冷指針所指示之記憶塊40之情形時,冷指針管理部94執行圖10所示之處理。再者,於此一情形時,冷指針管理部94使用冷指針代替塊指針而執行處理。又,計數管理部80使冷區92之計數值遞增。
因此,塊指針管理部76自冷指針所指示之記憶塊40起,按預先規定之順序循環地進行搜索,藉此檢測包含於冷區92內之兩個以上記憶塊40中未記憶有效資料之最初之記憶塊40。然後,塊指針管理部76將冷指針以指示包含於冷區92內之兩個以上記憶塊40中未記憶有效資料之最初之記憶塊40之方式變更。
圖30係用以說明第5實施形態中之資料之寫入、讀出及更新之圖。
例如,如圖30(A)所示,於熱區90中之前1個記憶塊40為無效塊之情形時,塊指針被以指示作為無效塊之前1個記憶塊40之方式更新。
如圖30(B)所示,存在如下情況:熱區90中包含之記憶塊40內已寫入資料之情形時,熱區90中之已寫入資料之記憶塊40之前1個記憶塊40內記憶有有效資料。於此一情形時,熱區90中之前1個記憶塊40內記憶之資料移動至暖指針所指示之記憶塊40。然後,塊指針進一步向前移動1個。
又,如圖30(C)所示,存在暖區98中之已寫入資料之記憶塊40之前1個記憶塊40內記憶有有效資料之情形。於此一情形時,暖區98中之前1個記憶塊40內記憶之資料移動至冷指針所指示之記憶塊40。然後,暖指針進一步向前移動1個。
包含於熱區90內之記憶塊40、包含於暖區98內之記憶塊40及包含於冷區92內之記憶塊40有可能因寫入頻率之不同而使寫入次數之差變大。例如,如圖30(D)所示,長期使用非揮發性記憶體24之結果,導致熱區90之計數值有可能變得大於暖區98之計數值。又,導致暖區98之計數值有可能變得大於冷區92之計數值。
如上所述,第5實施形態之記憶裝置20於藉由按預先規定之順序循環地搜索包含於熱區90內之兩個以上記憶塊40,而檢測到寫入資料後未讀出或更新之記憶塊40之情形時,自該記憶塊40讀出資料,並將其寫入至暖指針所指示之記憶塊40。藉此,根據第5實施形態之記憶裝置20,能使對包含於熱區90內之兩個以上記憶塊40之寫入次數均勻。
又,第5實施形態之記憶裝置20於藉由按預先規定之順序循環地搜索包含於暖區98內之兩個以上記憶塊40,而檢測到寫入資料後未讀出或更新之記憶塊40之情形時,自該記憶塊40讀出資料,並將其寫入至冷指針所指示之記憶塊40。藉此,根據第5實施形態之記憶裝置20,能使對包含於暖區98內之兩個以上記憶塊40之寫入次數均勻。
進而,又,第5實施形態之記憶裝置20能將存取頻率最高之資料記憶於熱區90,將存取頻率第二高之資料記憶於暖區98,將存取頻率較低之資料記憶於冷區92。
再者,非揮發性記憶體24亦可包含具有階層構造之N段(N為2以上之整數)暖區98。於此一情形時,熱區90中包含之記憶塊40內記憶之資料移動至第1段暖區98。又,第n段(n為1以上且(N-1)以下之整數)暖區98中包含之記憶塊40內記憶之資料移動至第n+1段暖區98中包含之記憶塊40。又,第N段暖區98內記憶之資料移動至冷區92中包含之記憶塊40。根據此種記憶裝置20,能使各段暖區98各自之寫入次數均勻。進而,根據此種記憶裝置20,能將存取頻率較第N段暖區98高之資料記憶於第1段暖區98。
其次,對第6實施形態之資訊處理裝置10進行說明。
圖31係表示第6實施形態之記憶體控制器22之構成之圖。第6實施形態之控制電路50藉由執行ROM等內記憶之程式,而作為讀出控制部72、寫入控制部74及位址更新部78發揮功能。藉此,控制電路50作為具有讀出控制部72、寫入控制部74、位址更新部78之電路而動作。
於第6實施形態中,非揮發性記憶體24所具有之複數個記憶塊40分別
為先進先出型(FIFO型)移位暫存器。因此,控制電路50能對複數個記憶塊40分別同時進行寫入處理與讀出處理。
第6實施形態中,於讀出控制部72自複數個記憶塊40中之任一記憶塊40將讀出對象資料讀出之情形時,寫入控制部74與讀出處理並行地,將寫入緩衝器58內記憶之寫入對象資料寫入至讀出對象資料被讀出之記憶塊40。
圖32係用以說明第6實施形態中之資料之寫入、讀出及更新之圖。寫入緩衝器58暫時記憶寫入至非揮發性記憶體24之前之寫入對象資料。又,讀出緩衝器56暫時記憶自非揮發性記憶體24讀出之讀出對象資料。暫時記憶於讀出緩衝器56之讀出對象資料發送至主機控制器12。
進而,讀出控制部72藉由將自非揮發性記憶體24讀出之讀出對象資料自讀出緩衝器56移動至寫入緩衝器58,而將其作為寫入對象資料記憶於寫入緩衝器58。然後,寫入控制部74將暫時記憶於寫入緩衝器58之寫入對象資料寫入至非揮發性記憶體24之任一記憶塊40。藉此,控制電路50能將自非揮發性記憶體24讀出之資料再次寫回至非揮發性記憶體24。
此處,如圖32(A)所示,於自主機控制器12受理了指示新的資料之寫入之寫入指令之情形時,寫入控制部74將新的資料作為寫入對象資料暫時記憶於寫入緩衝器58。
繼而,如圖32(B)所示,於自主機控制器12受理了下一個寫入指令之情形時,寫入控制部74將寫入緩衝器58內記憶之寫入對象資料寫入至複數個記憶塊40中未記憶有效資料之記憶塊40。並且,寫入控制部74將下一個新的資料作為寫入對象資料暫時記憶於寫入緩衝器58。
此處,如圖32(C)所示,存在寫入緩衝器58暫時記憶有寫入對象資料之狀態下自主機控制器12受理讀取指令之情形。於此一情形時,讀出控制部72自複數個記憶塊40中記憶有藉由讀取指令特定之讀出對象資料之記憶塊40讀出資料。
進而,於此一情形時,如圖32(D)所示,寫入控制部74與讀出處理並行地,將寫入緩衝器58內記憶之寫入對象資料寫入至讀出對象資料被讀出之記憶塊40。其結果,如圖32(E)所示,寫入控制部74能於讀出控制部72施行之讀出處理結束之時序,結束寫入處理。
如上所述,第6實施形態之記憶裝置20能與讀出處理並行地對記憶塊40實施寫入處理。藉此,第6實施形態之記憶裝置20能減少對記憶塊40之存取次數,從而減緩記憶塊40之劣化速度。例如,於具備利用磁壁位移之原理磁性記憶資訊之非揮發性記憶體24之情形時,記憶裝置20能使對記憶塊40之位移脈衝電流之供給次數較分開實施讀出處理與寫入處理之情形時少。因此,記憶裝置20藉由對記憶塊40並行地實施讀出處理與寫入處理,能減少記憶塊40之疲弊,其結果,能減緩記憶塊40之疲弊速度。
其次,對第7實施形態之資訊處理裝置10進行說明。
圖33係表示第7實施形態之記憶體控制器22之構成之圖。第7實施形態之控制電路50藉由執行ROM等內記憶之程式,而作為讀出控制部72、寫入控制部74、位址更新部78及偽讀取指令產生部112發揮功能。藉此,控制電路50作為具有讀出控制部72、寫入控制部74、位址更新部78、偽讀取指令產生部112之電路而動作。
第7實施形態之控制電路50為與第6實施形態之控制電路50相比進而具有偽讀取指令產生部112之構成。偽讀取指令產生部112於規定時序,產生指示自複數個記憶塊40中之任一記憶塊40讀出資料之偽讀取指令。
讀出控制部72於自主機控制器12受理了讀取指令之情形時,自記憶有讀出對象資料之記憶塊40將讀出對象資料讀出。進而,讀出控制部72於偽讀取指令產生部112產生了偽讀取指令之情形時,自偽讀取指令所指示之記憶塊40讀出資料。
圖34係表示未產生偽讀取指令之情形時交替地讀出2個資料之狀態之圖。
於未產生偽讀取指令之情形時,若藉由主機控制器12交替地讀出2個資料,則讀出控制部72及寫入控制部74會對同一物理位址下之記憶塊40
反覆進行寫入處理及讀出處理。其結果,被反覆進行寫入處理及讀出處理之記憶塊40會進一步疲弊。
圖35係表示產生了偽讀取指令之情形時交替地讀出2個資料之狀態之圖。
偽讀取指令產生部112於規定時序,產生指示自複數個記憶塊40中之任一記憶塊40讀出資料之偽讀取指令。因此,即便藉由主機控制器12交替地讀出2個資料,偽讀取指令產生部112亦能使被反覆進行寫入處理及讀出處理之記憶塊40移動。因此,偽讀取指令產生部112能避免疲弊集中於特定之記憶塊40。
例如,偽讀取指令產生部112每規定期間產生偽讀取指令。又,例如,偽讀取指令產生部112亦可於隨機時序產生偽讀取指令。
又,例如,偽讀取指令產生部112亦可每當受理預先規定次數之讀取指令時產生偽讀取指令。又,例如,偽讀取指令產生部112亦可每當受理隨機決定個數之讀取指令時產生偽讀取指令。
圖36係表示偽讀取指令之產生圖案之一例之圖。偽讀取指令產生部112亦可交替地反覆實施第1處理與第2處理,而產生偽讀取指令。
於第1處理中,偽讀取指令產生部112受理M個(M為2以上之整數)讀
取指令後,產生偽讀取指令。又,於第2處理中,偽讀取指令產生部112受理N個(N為2以上之整數)讀取指令後,產生偽讀取指令。
此處,M與N互質。藉由執行此種處理,例如,即便於主機控制器12執行了使存取集中於特定之記憶塊40之某惡意程式之情形時,偽讀取指令產生部112亦能避免存取集中於特定之記憶塊40。
如上所述,在第7實施形態之記憶裝置20與讀出處理並行地對記憶塊40實施寫入處理之情形時,能避免疲弊集中於特定之記憶塊40。藉此,根據第7實施形態之記憶裝置20,能緩和對複數個記憶塊40中之特定之記憶塊40之疲弊之集中。
對本發明之若干個實施形態進行了說明,但該等實施形態僅作為示例而提出,並非意圖限定發明之範圍。該等新穎之實施形態可採用其他各種形態而實施,於不脫離發明之主旨之範圍內,可進行各種省略、替換、變更。該等實施形態及其變化包含於發明之範圍或主旨中,並且包含於申請專利範圍所記載之發明及其均等之範圍內。
本申請案係基於2019年9月19日提出申請之先前之日本專利申請案第2019-169957號之優先權之利益,且要求該利益,其全部內容藉由引用包含於此。
12:主機控制器
22:記憶體控制器
24:非揮發性記憶體
50:控制電路
52:主機介面電路
54:記憶體介面電路
56:讀出緩衝器
58:寫入緩衝器
60:錯誤校正電路
62:表記憶體
72:讀出控制部
74:寫入控制部
76:塊指針管理部
78:位址更新部
80:計數管理部
Claims (23)
- 一種記憶裝置,其具備:非揮發性記憶體,其具備複數個記憶塊,上述複數個記憶塊分別包含移位暫存器;及控制電路,其控制對於上述非揮發性記憶體之資料的寫入及讀出;且上述控制電路具備:塊指針管理部,其管理塊指針,該塊指針指示上述複數個記憶塊中成為下一個寫入目的地之記憶塊;位址更新部,其更新位址轉換表,該位址轉換表針對上述複數個記憶塊各者內記憶之每個資料而登錄邏輯位址與物理位址之對應關係;讀出控制部,其自上述複數個記憶塊中之第1記憶塊讀出對象資料;及寫入控制部,其將自上述第1記憶塊讀出之上述對象資料寫入至上述複數個記憶塊中之上述塊指針所指示之記憶塊;上述位址更新部將上述位址轉換表中登錄之上述對象資料之物理位址變更成上述塊指針所指示之記憶塊之物理位址。
- 如請求項1之記憶裝置,其進而具備錯誤校正電路,該錯誤校正電路對自上述第1記憶塊讀出之上述對象資料進行錯誤校正處理。
- 如請求項1之記憶裝置,其中於已寫入上述對象資料之情形時,上述塊指針管理部自上述塊指針所指示之上述記憶塊起,按預先規定之順序循環地搜索上述複數個記憶塊,藉此檢測上述複數個記憶塊中未 記憶有效資料之最初之記憶塊,並將上述塊指針以指示所檢測到之上述最初之記憶塊之方式更新。
- 如請求項1之記憶裝置,其中上述非揮發性記憶體被分割成複數個區域,上述複數個記憶塊分別包含於上述複數個區域中之任一區域內,上述控制電路進而具備管理區域指針之區域指針管理部,該區域指針指示上述複數個區域中成為下一個寫入目的地之對象區域,且於已寫入上述對象資料之情形時,上述塊指針管理部自上述塊指針所指示之上述記憶塊至上述對象區域中之末尾之記憶塊,按預先規定之順序搜索上述複數個記憶塊中包含於上述對象區域內之兩個以上記憶塊,藉此檢測包含於上述對象區域內之上述兩個以上記憶塊中未記憶有效資料之最初之記憶塊,並將上述塊指針以指示所檢測到之上述最初之記憶塊之方式更新,於搜索進行至上述末尾之記憶塊之情形時,上述區域指針管理部選擇上述複數個區域中的一個作為新的上述對象區域,並將上述區域指針以指示所選擇之新的上述對象區域之方式更新,於搜索進行至上述末尾之記憶塊之情形時,上述塊指針管理部將上述塊指針以指示包含於新的上述對象區域內之兩個以上記憶塊中之開頭之記憶塊之方式更新,並反覆進行上述最初之記憶塊之檢測。
- 如請求項4之記憶裝置,其中上述控制電路進而具備管理空塊數之空塊管理部,該空塊數表示上述複數個區域各自之未記憶有效資料之記憶塊 之數量;且於搜索進行至上述對象區域中之上述末尾之記憶塊之情形時,上述區域指針管理部基於上述複數個區域各自之上述空塊數,選擇上述複數個區域中的一個作為新的上述對象區域。
- 如請求項5之記憶裝置,其中上述區域指針管理部選擇上述複數個區域中的上述空塊數為預先規定值以上之區域作為新的上述對象區域。
- 如請求項5之記憶裝置,其中上述區域指針管理部選擇上述複數個區域中的空閒率大於餘裕率之區域作為新的上述對象區域,上述餘裕率表示上述非揮發性記憶體中之上述空塊數相對於上述非揮發性記憶體中之能寫入資料之全部記憶塊之數量之比率,上述空閒率表示上述空塊數相對於區域中包含之記憶塊之數量之比率。
- 如請求項5之記憶裝置,其中上述區域指針管理部選擇上述複數個區域中的表示上述空塊數相對於所含記憶塊之數量之空閒率最大之區域作為新的上述對象區域。
- 如請求項4之記憶裝置,其中上述控制電路進而具備管理計數值之計數管理部,該計數值表示上述複數個區域各自之寫入次數,且上述區域指針管理部選擇上述複數個區域中的上述計數值小於預先規定之閾值之區域作為新的上述對象區域。
- 如請求項9之記憶裝置,其中上述控制電路進而具備資料移動部,於針對上述複數個區域之上述計數值之方差大於預先規定值之情形時,該資料移動部將上述複數個區域中上述計數值小於預先規定之第1基準值之任一區域內記憶之資料群移動至上述複數個區域中上述計數值大於預先規定之第2基準值之任一區域。
- 如請求項1之記憶裝置,其中上述塊指針管理部自上述塊指針所指示之上述記憶塊起,按預先規定之順序循環地搜索上述複數個記憶塊,藉此檢測上述複數個記憶塊中上述塊指針所指示之上述記憶塊之前1個記憶塊及2個前之記憶塊,並將上述塊指針以指示上述前1個記憶塊之方式更新,於上述2個前之記憶塊內記憶有有效資料之情形時,將上述2個前之記憶塊內記憶之資料移動至上述前1個記憶塊,反覆進行上述前1個記憶塊及上述2個前之記憶塊之檢測、上述塊指針之更新及上述資料之移動,直至檢測到未記憶有效資料之上述2個前之記憶塊為止。
- 如請求項1之記憶裝置,其中上述非揮發性記憶體具備熱區及冷區,上述複數個記憶塊分別包含於上述熱區或上述冷區中之任一區域內,上述塊指針指示包含於上述熱區內之兩個以上記憶塊中成為下一個寫入目的地之記憶塊, 上述控制電路進而具備管理冷指針之冷指針管理部,該冷指針指示包含於上述冷區內之兩個以上記憶塊中成為下一個寫入目的地之記憶塊,且於已寫入上述對象資料之情形時,上述塊指針管理部自上述塊指針所指示之上述記憶塊起,按預先規定之順序循環地搜索包含於上述熱區內之上述兩個以上記憶塊,藉此檢測包含於上述熱區內之上述兩個以上記憶塊中上述塊指針所指示之上述記憶塊之前1個記憶塊,並將上述塊指針以指示包含於上述熱區內之上述前1個記憶塊之方式更新,於上述熱區中包含之上述前1個記憶塊內記憶有有效資料之情形時,將上述熱區中包含之上述前1個記憶塊內記憶之上述資料移動至上述冷指針所指示之記憶塊,反覆進行上述熱區中包含之上述前1個記憶塊之檢測、上述塊指針之更新及上述資料之移動,直至檢測到上述熱區中包含之未記憶有效資料之上述前1個記憶塊為止。
- 如請求項12之記憶裝置,其中於資料已移動至上述冷指針所指示之上述記憶塊之情形時,上述冷指針管理部自上述冷指針所指示之上述記憶塊起,按預先規定之順序循環地搜索包含於上述冷區內之上述兩個以上記憶塊,藉此檢測包含於上述冷區內之上述2個以上記憶塊中未記憶有效資料之最初之記憶塊,並將上述冷指針以指示所檢測到之上述最初之記憶塊之方式變更。
- 如請求項12之記憶裝置,其中上述控制電路進而具備區域設定部,該區域設定部按預先規定之時序,對是使上述複數個記憶塊分別包含於上述熱區還是包含於上述冷區進行變更。
- 如請求項12之記憶裝置,其中上述非揮發性記憶體進而具備暖區,上述複數個記憶塊分別包含於上述熱區、上述暖區或上述冷區中之任一區域內,上述控制電路進而具備管理暖指針之暖指針管理部,該暖指針指示包含於上述暖區內之兩個以上記憶塊中成為下一個寫入目的地之記憶塊,且於上述熱區中包含之上述前1個記憶塊內記憶有有效資料之情形時,上述塊指針管理部將上述熱區中包含之上述前1個記憶塊內記憶之上述資料移動至上述暖指針所指示之記憶塊,於資料已移動至上述暖指針所指示之上述記憶塊之情形時,上述暖指針管理部自上述暖指針所指示之上述記憶塊起,按預先規定之順序循環地搜索包含於上述暖區內之上述兩個以上記憶塊,藉此檢測包含於上述暖區內之上述兩個以上記憶塊中上述暖指針所指示之上述記憶塊之前1個記憶塊,並將上述暖指針以指示包含於上述暖區內之上述前1個記憶塊之方式更新,於上述暖區中包含之上述前1個記憶塊內記憶有有效資料之情形時,將上述暖區中包含之上述前1個記憶塊內記憶之上述資料移動至上述冷指針所指示之記憶塊,反覆進行上述暖區中包含之上述前1個記憶塊之檢測、上述暖指針之 更新及上述資料之移動,直至檢測到上述暖區中包含之未記憶有效資料之上述前1個記憶塊為止。
- 一種記憶裝置,其具備:非揮發性記憶體,其具備複數個記憶塊,上述複數個記憶塊分別包含移位暫存器;寫入緩衝器,該寫入緩衝器暫時記憶寫入至上述非揮發性記憶體之前之寫入對象資料;控制電路,其控制對於上述非揮發性記憶體之資料的寫入及讀出;上述複數個記憶塊分別包含先進先出型移位暫存器,且上述控制電路具備:讀出控制部,其自上述複數個記憶塊中之第1記憶塊讀出對象資料;及寫入控制部,其將自上述第1記憶塊讀出之上述對象資料寫入至上述複數個記憶塊中與上述第1記憶塊不同之第2記憶塊;且於上述讀出控制部自上述複數個記憶塊中之任一記憶塊將讀出對象資料讀出之情形時,上述寫入控制部與讀出處理並行地(in parallel),將上述寫入緩衝器內記憶之上述寫入對象資料寫入至上述讀出對象資料被讀出之上述記憶塊。
- 如請求項16之記憶裝置,其中上述控制電路進而具備產生偽讀取指令之偽讀取指令產生部,該偽讀取指令指示自上述複數個記憶塊中之任一記憶塊讀出資料,且上述讀出控制部於自主機控制器受理了讀取指令之情形時,自記憶 有上述讀出對象資料之記憶塊讀出上述讀出對象資料,於產生了上述偽讀取指令之情形時,自上述偽讀取指令所示之記憶塊讀出資料。
- 如請求項17之記憶裝置,其中上述偽讀取指令產生部每當受理預先規定次數之上述讀取指令時產生上述偽讀取指令。
- 如請求項17之記憶裝置,其中上述偽讀取指令產生部每當受理隨機決定個數之上述讀取指令時產生上述偽讀取指令。
- 如請求項17之記憶裝置,其中上述偽讀取指令產生部交替地反覆執行第1處理及第2處理,上述第1處理係於受理M個(M為2以上之整數)上述讀取指令後,產生上述偽讀取指令,上述第2處理係於受理N個(N為2以上之整數,且M與N互質)上述讀取指令後,產生上述偽讀取指令。
- 一種記憶體控制器,其控制對於非揮發性記憶體之資料寫入及讀出,上述非揮發性記憶體具備複數個記憶塊,上述複數個記憶塊分別包含移位暫存器,上述記憶體控制器:管理塊指針,該塊指針指示上述複數個記憶塊中成為下一個寫入目的地之記憶塊;更新位址轉換表,該位址轉換表針對上述複數個記憶塊各者內記憶 之每個資料而登錄邏輯位址與物理位址之對應關係;自上述複數個記憶塊中之第1記憶塊讀出對象資料,並將自上述第1記憶塊讀出之上述對象資料寫入至上述複數個記憶塊中之上述塊指針所指示之記憶塊;且將上述位址轉換表中登錄之上述對象資料之物理位址變更成上述塊指針所指示之記憶塊之物理位址。
- 一種記憶體控制器,其控制對於非揮發性記憶體之資料寫入及讀出,上述非揮發性記憶體包含:複數個記憶塊,其等分別包含移位暫存器,其中:上述複數個記憶塊之各者包含先進先出型移位暫存器,且上述記憶體控制器包括處理電路,該處理電路經構成為:於寫入緩衝器將要寫入於上述非揮發性記憶體之寫入對象資料進行寫入;自上述複數個記憶塊中之第1記憶塊讀出對象資料;將自上述第1記憶塊讀出之上述對象資料寫入至上述複數個記憶塊中之第2記憶塊,上述第2記憶塊與上述第1記憶塊不同;且於執行讀出處理而自上述複數個記憶塊中之任一者將讀出對象資料讀出之情形時,與上述讀出處理並行地,將上述寫入緩衝器之上述寫入對象資料寫入於上述讀出對象資料被讀出之上述記憶塊中之任一者。
- 一種記憶體控制器,其控制對於非揮發性記憶體之資料寫入及讀出,上述非揮發性記憶體包含:複數個記憶塊,其等分別包含移位暫存器,上述記憶體控制器包括: 處理電路,其經構成為:自上述複數個記憶塊中之第1記憶塊讀出具有同位碼(parity)之對象資料;藉由使用上述同位碼,使錯誤校正電路對自上述第1記憶塊讀出之上述對象資料執行錯誤校正處理,針對執行有上述錯誤校正處理之上述對象資料,使上述錯誤校正電路產生新同位碼;將具有上述新同位碼之上述對象資料寫入於上述複數個記憶塊中之第2記憶塊,上述第2記憶塊與上述第1記憶塊不同。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019169957A JP2021047948A (ja) | 2019-09-19 | 2019-09-19 | 記憶装置およびメモリコントローラ |
JP2019-169957 | 2019-09-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202113606A TW202113606A (zh) | 2021-04-01 |
TWI771646B true TWI771646B (zh) | 2022-07-21 |
Family
ID=74878582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109103595A TWI771646B (zh) | 2019-09-19 | 2020-02-05 | 記憶裝置及記憶體控制器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11237763B2 (zh) |
JP (1) | JP2021047948A (zh) |
CN (1) | CN112527188B (zh) |
TW (1) | TWI771646B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9812502B2 (en) * | 2015-08-31 | 2017-11-07 | Toshiba Memory Corporation | Semiconductor memory device having variable resistance elements provided at intersections of wiring lines |
CN113805805B (zh) * | 2021-05-06 | 2023-10-13 | 北京奥星贝斯科技有限公司 | 缓存内存块的淘汰方法、装置及电子设备 |
US20230094125A1 (en) * | 2021-09-24 | 2023-03-30 | Nvidia Corporation | Implementing trusted executing environments across multiple processor devices |
US20230103518A1 (en) * | 2021-09-24 | 2023-04-06 | Nvidia Corporation | Secure execution for multiple processor devices using trusted executing environments |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117710A1 (en) * | 2002-12-17 | 2004-06-17 | Srinivas Patil | Weight compression/decompression system |
WO2015162717A1 (ja) * | 2014-04-23 | 2015-10-29 | 株式会社日立製作所 | 計算機 |
US20180024738A1 (en) * | 2016-07-22 | 2018-01-25 | EpoStar Electronics Corp. | Data reading method, data writing method and storage controller using the same |
US20190066809A1 (en) * | 2017-08-31 | 2019-02-28 | SK Hynix Inc. | Read disturb detection and recovery with adaptive thresholding for 3-d nand storage |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007133541A (ja) * | 2005-11-09 | 2007-05-31 | Tokyo Electron Device Ltd | 記憶装置、メモリ管理装置、メモリ管理方法及びプログラム |
JP4969981B2 (ja) | 2006-10-03 | 2012-07-04 | 株式会社東芝 | 磁気記憶装置 |
US7944729B2 (en) | 2009-01-28 | 2011-05-17 | Seagate Technology Llc | Simultaneously writing multiple addressable blocks of user data to a resistive sense memory cell array |
US8255613B2 (en) | 2009-04-30 | 2012-08-28 | International Business Machines Corporation | Wear-leveling and bad block management of limited lifetime memory devices |
TW201235974A (en) * | 2011-02-25 | 2012-09-01 | Altek Corp | Image processing apparatus and memory accessing method thereof |
CN103218300B (zh) * | 2012-01-18 | 2016-01-27 | 群联电子股份有限公司 | 数据处理方法、存储器控制器与存储器储存装置 |
JP6104774B2 (ja) | 2013-09-19 | 2017-03-29 | 株式会社東芝 | 磁壁移動型メモリおよびその書き込み方法 |
JP6271350B2 (ja) | 2014-06-25 | 2018-01-31 | 東芝メモリ株式会社 | 磁気メモリ、シフトレジスタメモリ、および磁気メモリの製造方法 |
US10579471B2 (en) * | 2017-03-02 | 2020-03-03 | Toshiba Memory Corporation | Storage device and error correction method for storage device |
JP2018152146A (ja) | 2017-03-09 | 2018-09-27 | 東芝メモリ株式会社 | 半導体記憶装置及びデータ読み出し方法 |
JP6878228B2 (ja) | 2017-09-20 | 2021-05-26 | 株式会社東芝 | 半導体装置 |
US10866858B2 (en) * | 2019-04-16 | 2020-12-15 | Samsung Electronics Co., Ltd. | Memory systems having reduced memory channel traffic and methods for operating the same |
-
2019
- 2019-09-19 JP JP2019169957A patent/JP2021047948A/ja active Pending
-
2020
- 2020-02-05 TW TW109103595A patent/TWI771646B/zh active
- 2020-02-21 CN CN202010108761.4A patent/CN112527188B/zh active Active
- 2020-03-12 US US16/816,439 patent/US11237763B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117710A1 (en) * | 2002-12-17 | 2004-06-17 | Srinivas Patil | Weight compression/decompression system |
WO2015162717A1 (ja) * | 2014-04-23 | 2015-10-29 | 株式会社日立製作所 | 計算機 |
US20180024738A1 (en) * | 2016-07-22 | 2018-01-25 | EpoStar Electronics Corp. | Data reading method, data writing method and storage controller using the same |
US20190066809A1 (en) * | 2017-08-31 | 2019-02-28 | SK Hynix Inc. | Read disturb detection and recovery with adaptive thresholding for 3-d nand storage |
Also Published As
Publication number | Publication date |
---|---|
JP2021047948A (ja) | 2021-03-25 |
CN112527188B (zh) | 2024-01-12 |
CN112527188A (zh) | 2021-03-19 |
TW202113606A (zh) | 2021-04-01 |
US11237763B2 (en) | 2022-02-01 |
US20210089233A1 (en) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI771646B (zh) | 記憶裝置及記憶體控制器 | |
US10565123B2 (en) | Hybrid logical to physical address translation for non-volatile storage devices with integrated compute module | |
US10387303B2 (en) | Non-volatile storage system with compute engine to accelerate big data applications | |
US9875025B2 (en) | System and method for performing data retention in solid-state memory using an LRU list | |
JP5039079B2 (ja) | 不揮発性半導体記憶装置 | |
CN104916326B (zh) | 存储装置和使用定时器设置的相关方法 | |
KR100754394B1 (ko) | 마그네틱 도메인 드래깅을 이용하는 자성소자 유닛 및 그작동 방법 | |
US9208028B2 (en) | Recovery code management method and memory system using same | |
US20160162186A1 (en) | Re-Ordering NAND Flash Commands for Optimal Throughput and Providing a Specified Quality-of-Service | |
US8406029B2 (en) | Identification of data positions in magnetic packet memory storage devices, memory systems including such devices, and methods of controlling such devices | |
CN105874438B (zh) | 多裸芯写入管理中的模式突破 | |
KR101847684B1 (ko) | 링 레지스터를 사용하는 시프트 가능형 메모리 | |
KR20200090859A (ko) | 아날로그 바이패스 부분을 가진 메모리 회로 | |
KR20160074617A (ko) | 저항성 메모리 캐시에 대한 기록 동작의 분할 | |
US11705207B2 (en) | Processor in non-volatile storage memory | |
US10552314B2 (en) | Memory system and method for ware leveling | |
US3997880A (en) | Apparatus and machine implementable method for the dynamic rearrangement of plural bit equal-length records | |
US10847200B2 (en) | Magnetic storage device | |
CN110543430B (zh) | 一种使用mram的存储装置 | |
US11922055B2 (en) | Stack register having different ferroelectric memory element constructions | |
US9817767B2 (en) | Semiconductor apparatus and operating method thereof | |
TW201908980A (zh) | 混合式高速快取記憶體及用於縮短其延遲之方法 | |
CN101752003B (zh) | 磁性移位寄存存储器以及数据存取方法 | |
JP6386231B2 (ja) | 磁気トンネル接合素子を備えた記憶装置 | |
US3760390A (en) | Cylindrical domain associative memory apparatus |