JP6213040B2 - 半導体記憶装置および半導体記憶装置の制御方法 - Google Patents
半導体記憶装置および半導体記憶装置の制御方法 Download PDFInfo
- Publication number
- JP6213040B2 JP6213040B2 JP2013169707A JP2013169707A JP6213040B2 JP 6213040 B2 JP6213040 B2 JP 6213040B2 JP 2013169707 A JP2013169707 A JP 2013169707A JP 2013169707 A JP2013169707 A JP 2013169707A JP 6213040 B2 JP6213040 B2 JP 6213040B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- mask
- memory device
- semiconductor memory
- swap
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- 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
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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/7211—Wear leveling
Description
図1は、実施形態の半導体記憶装置(メモリ)の概要を説明する図である。
実施形態の半導体記憶装置(メモリ)10は、記憶部(メモリ部)11と、アドレス変換部(XOR)12と、制御部20と、を有する。図1の反転マスク部13、カウンタ14およびスワッパ15は、制御部20内に形成される。図2では、CPU1がメモリ10にアクセスする例を示す。
実施形態のメモリ10は、記憶部(メモリデバイス)11と、スワップ処理部31と、アドレス変換(XOR)部12と、書き込み信号切換スイッチ42と、読み出し信号切換スイッチ43と、データ切換スイッチ44と、を有する。
XOR部12は、2個のXORゲート51および52と、2個の比較器53および54と、ORゲート55と、2個のスイッチ56および57と、を有する。XORゲート51は、論理アドレスALと旧反転マスクM1の排他的論理和(XOR)演算を行い、旧マスク変換アドレスAP1を出力する。XORゲート52は、ALと新反転マスクM2のXOR演算を行い、新マスク変換アドレスAP2を出力する。比較器53は、旧マスク変換アドレスAP1をスワップアドレスAXと比較し、スワップアドレスAXが大きければ比較結果「真(0)」を、スワップアドレスAXが小さければ比較結果「偽(1)」を出力する。比較器54は、新マスク変換アドレスAP2をスワップアドレスAXと比較し、スワップアドレスAXが大きければ比較結果「真(0)」を、スワップアドレスAXが小さければ比較結果「偽(1)」を出力する。ORゲート55は、比較器53および54の出力の論理和(OR)を演算する。したがって、スワップアドレスAXが、旧マスク変換アドレスAP1および新マスク変換アドレスAP2の両方より大きければ、ORゲート55の出力は「真(0)」となる。スイッチ56は、ORゲート55の出力が「真(0)」の時には旧マスク変換アドレスAP1を、ORゲート55の出力が「偽(1)」の時には新マスク変換アドレスAP2を、選択する。スイッチ57は、スワップアドレス有効信号Yが「真(0)」の時にはスイッチ56の出力を、スワップアドレス有効信号Yが「偽(1)」の時にはスワップアドレスAXを、選択する。
処理を開始する前に、旧反転マスクM1=新反転マスクM2=0、スワップアドレスAX=0およびパラメータCW=0に初期化される。
ステップS15では、パラメータCWを1増加させる。
ステップS16では、パラメータCWが所定値CL以上であるか判定し、所定値CL以上であればステップS17に進み、所定値CL以上でなければステップS18に進む。
ステップS18では、記憶部11への書き込みを行う。
ステップS19では、アクセス保留フラグKを0にした後、ステップS11に戻る。
ステップS22では、記憶部11からの読み出しを行う。
ステップS23では、アクセス保留フラグKを0にした後、ステップS11に戻る。
ステップS24では、スワップ処理を行い、終了後ステップS11に戻る。
図6は、第1実施形態の半導体記憶装置における書き込み処理を示すフローチャートである。
ステップS32では、CPU1から書き込みデータDSを受け取る。
ステップS33では、アクセス保留フラグK=0であるか、すなわちアクセス可能であるか判定し、K=0であればステップS34に進み、K=0でなければ待機する。
ステップS36では、書き込みデータDM(DSと同じ)をメモリ部11に出力する。
ステップS37では、書き込み信号WMをメモリ部11に出力する。
ステップS41では、CPU1から論理アドレスALを受け取る。
ステップS42では、アクセス保留フラグK=0であるか、すなわちアクセス可能であるか判定し、K=0であればステップS43に進み、K=0でなければ待機する。
ステップS45では、読み出し信号RMをメモリ部11に出力する。
ステップS46では、読み出しデータDMをメモリ部11から読み出す。
ステップS47では、CPU1に読み出しデータDSを出力する。
ステップS51では、新反転マスクM2を生成する。新反転マスクM2の生成方法については後述する。
ステップS53では、スワップ処理を行う。スワップ処理については後述する。
ステップS54では、旧反転マスクレジスタ32に記憶する反転マスクを、旧反転マスクM1から新反転マスクM2に更新する。
ステップS55では、アクセス保留フラグK=0にする。
ステップS61で、旧反転マスクM1を1増加させた値を32で除した時の剰余を、新反転マスクM2とする。なお、この例は、アドレスビット数が32ビットである場合の例であり、16ビットであれば16で除した時の剰余を使用する。また、新反転マスクM2の生成方法はこれに限定されず、後述するグレイコード等を使用する方法で生成してもよい。
ステップS71では、スワップアドレスAXを0に初期化する。
ステップS72で、CPU1からのアクセス要求があるか(WSまたはRSが1であるか)判定し、アクセス要求があれば待機する。この間にメモリ部11へのCPU1からのアクセスが行われる。アクセス要求が無ければ、ステップS73に進む。
ステップS74では、AXがAXとM1とM2の排他的論理和(XOR)より小さいか判定され(AX<AX∧M1∧M2?)、小さければステップS75に進み、大きければスワップ済みなのでステップS77に進む。
ステップS76では、データQをメモリ部11のアドレスAXに書き込み、データPをメモリ部11のアドレスAX∧M1∧M2に書き込む。
ステップS78では、アクセス保留フラグK=0にセットする。
ステップS79では、スワップアドレスAXがアドレス最大値に到達したかを判定し、到達していなければステップS72に戻り、到達していればステップS80に進む。
以上のようにしてスワップ処理が終了する。実施形態では、スワップ処理中は、1ライン(1アドレス)のデータを他のラインのデータと置き換えるごとにアクセス保留フラグK=0にすることにより、スワップ処理のためにCPU1から長時間アクセスができなくなるのを防止している。
ステップS81では、カウンタの初期化を行う。初期化は、例えば、パワーオンリセットや反転マスクの更新処理が行われた後に行われる。
ステップS83では、カウンタを1増加(インクリメント)する。
ステップS85では、図8に示した反転マスクの更新処理を実行する。
図12の(A)に示すように、半導体記憶装置(メモリ)に電源が投入されると、ステップS87で、T秒後に通知するように、タイマが設定される。
ステップS91では、旧反転マスクM1で反転するビット(n番目)を選ぶ。
ステップS92では、旧反転マスクM1のn番目のビットを反転し、新反転マスクM2とする。
ステップS102では、反転マスクの初期化を行い、旧反転マスクレジスタ32に旧反転マスクM1=0を記憶する。
ステップS104では、カウンタ値Uに応じてグレイコードにより新反転マスクM2の値を算出する。具体的には、カウンタ値Uを1ビット右シフトした値と、カウンタ値UのXORを算出する。
ステップS106では、スワップ処理が終了したので、旧反転マスクレジスタ32に新反転マスクM2を記憶し、旧反転マスクM1を新反転マスクM2で置き換える。
ステップS114では、ステップS113で生成したwを新しい反転マスクM2とする。
ステップS121では、論理アドレスALと旧反転マスクM1とのXORがスワップアドレスAXより小さいかを判定し、小さければステップS123に進み、そうでなければステップS122に進む。
ステップS124では、スワップ済みのアドレスであるので、論理アドレスALと新反転マスクM2とのXORを物理アドレスAPとする。
さらに、すべてのラインの書き込み回数がWmax以下である確率は、式(2)で示すようになる。
r・N本のラインに書き込みが集中した時の標準偏差σは、平均値μ=T/Nとすると、式(3)で表される。
11 記憶部(メモリ部)
12 アドレス変換部(XOR)
13 反転マスク
14 カウンタ
15 スワッパ(スワップ処理回路)
20 制御部
Claims (8)
- 記憶部と、
前記記憶部へアクセスする論理アドレスを、アドレス変換情報に基づいて物理アドレスに変換するアドレス変換部と、
前記アドレス変換情報を前記アドレス変換部へ出力する制御部と、を備え、
前記アドレス変換情報は、複数ビットを含む変換マスクであり、
前記アドレス変換部は、前記論理アドレスと前記変換マスクとの排他的論理和演算を行うことにより、前記論理アドレスを前記物理アドレスに変換し、
前記制御部は、変更前の前記変換マスクと変更後の前記変換マスクが、前記複数ビットのうちの1ビットのみが異なるように変更し、前記アドレス変換情報の変更時に、前記記憶部における、変更前の前記アドレス変換情報に基づく旧物理アドレスのデータと変更後の前記アドレス変換情報に基づく新物理アドレスのデータとを交換するスワップ処理を行うことを特徴とする半導体記憶装置。 - 前記制御部は、前記記憶部への書き込みが所定の回数に達した時に、前記アドレス変換情報を変更することを特徴とする請求項1に記載の半導体記憶装置。
- 前記制御部は、所定時間が経過するごとに、前記アドレス変換情報を変更することを特徴とする請求項1に記載の半導体記憶装置。
- 前記制御部は、前記変換マスクをグレイコードとして変更することを特徴とする請求項1に記載の半導体記憶装置。
- 前記アドレス変換部は、前記スワップ処理中に、前記記憶部へのアクセスがあった時、交換の終了していない論理アドレスについては変更前の前記アドレス変換情報に基づく旧物理アドレスに変換し、交換の終了している論理アドレスについては変更後の前記アドレス変換情報に基づく新物理アドレスに変換することを特徴とする請求項1から4のいずれか1項に記載の半導体記憶装置。
- 前記記憶部は、不揮発性メモリを含むことを特徴とする請求項1から5のいずれか1項に記載の半導体記憶装置。
- 半導体記憶装置へアクセスする論理アドレスを、複数ビットを含む変換マスクであるアドレス変換情報に基づいて、前記論理アドレスと前記変換マスクとの排他的論理和演算を行うことにより、前記論理アドレスを物理アドレスに変換し、
変更前の前記変換マスクと変更後の前記変換マスクが、前記複数ビットのうちの1ビットのみが異なるように前記アドレス変換情報を変更し、前記アドレス変換情報の変更時に、記憶部における、変更前の前記アドレス変換情報に基づく旧物理アドレスのデータと変更後の前記アドレス変換情報に基づく新物理アドレスのデータとを交換するスワップ処理を行うことを特徴とする半導体記憶装置の制御方法。 - 前記スワップ処理中に、前記記憶部へのアクセスがあった時、交換の終了していない論理アドレスについては変更前の前記アドレス変換情報に基づく旧物理アドレスに変換し、交換の終了している論理アドレスについては変更後の前記アドレス変換情報に基づく新物理アドレスに変換することを特徴とする請求項7に記載の半導体記憶装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013169707A JP6213040B2 (ja) | 2013-08-19 | 2013-08-19 | 半導体記憶装置および半導体記憶装置の制御方法 |
US14/295,097 US9448925B2 (en) | 2013-08-19 | 2014-06-03 | Semiconductor storage device and semiconductor storage device control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013169707A JP6213040B2 (ja) | 2013-08-19 | 2013-08-19 | 半導体記憶装置および半導体記憶装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015038698A JP2015038698A (ja) | 2015-02-26 |
JP6213040B2 true JP6213040B2 (ja) | 2017-10-18 |
Family
ID=52467663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013169707A Active JP6213040B2 (ja) | 2013-08-19 | 2013-08-19 | 半導体記憶装置および半導体記憶装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9448925B2 (ja) |
JP (1) | JP6213040B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6519292B2 (ja) * | 2015-04-17 | 2019-05-29 | 富士通株式会社 | メモリ制御装置、半導体記憶装置およびメモリ制御方法 |
KR102532581B1 (ko) * | 2016-03-17 | 2023-05-17 | 에스케이하이닉스 주식회사 | 메모리 장치를 포함하는 메모리 시스템 및 그의 동작 방법 |
US10540100B2 (en) * | 2018-04-10 | 2020-01-21 | Western Digital Technologies, Inc. | Mapping-based wear leveling for non-volatile memory |
US10811112B2 (en) | 2018-09-29 | 2020-10-20 | Western Digital Technologies, Inc. | Wear leveling with wear-based attack detection for non-volatile memory |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6230233B1 (en) * | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
JP3178909B2 (ja) * | 1992-01-10 | 2001-06-25 | 株式会社東芝 | 半導体メモリ装置 |
EP0640228A1 (en) * | 1992-05-12 | 1995-03-01 | International Business Machines Corporation | Method and apparatus for reducing memory wearout in a computer system |
JPH09293386A (ja) * | 1996-04-30 | 1997-11-11 | Matsushita Electric Ind Co Ltd | 記憶装置 |
JP3916277B2 (ja) * | 1996-12-26 | 2007-05-16 | シャープ株式会社 | 読み出し専用メモリ及び演算装置 |
US6202133B1 (en) * | 1997-07-02 | 2001-03-13 | Micron Technology, Inc. | Method of processing memory transactions in a computer system having dual system memories and memory controllers |
US6049855A (en) * | 1997-07-02 | 2000-04-11 | Micron Electronics, Inc. | Segmented memory system employing different interleaving scheme for each different memory segment |
US6076137A (en) * | 1997-12-11 | 2000-06-13 | Lexar Media, Inc. | Method and apparatus for storing location identification information within non-volatile memory devices |
DE60038133T2 (de) * | 1999-08-27 | 2009-03-05 | Sony Corp. | Nichtflüchtiger Speicher |
DE60017870T2 (de) * | 1999-10-21 | 2005-06-23 | Matsushita Electric Industrial Co., Ltd., Kadoma | Eine halbleiterspeicherkarte-zugangsanordnung, ein rechnerlesbares aufzeichnungsmedium, initialisierungsverfahren,und eine halbleiterspeicherkarte |
JP3640624B2 (ja) * | 2001-06-25 | 2005-04-20 | 三菱電機株式会社 | 情報処理装置、レジスタ |
US6988163B2 (en) * | 2002-10-21 | 2006-01-17 | Microsoft Corporation | Executing binary images from non-linear storage systems |
JP5162846B2 (ja) * | 2005-07-29 | 2013-03-13 | ソニー株式会社 | 記憶装置、コンピュータシステム、および記憶システム |
US7480766B2 (en) * | 2005-08-03 | 2009-01-20 | Sandisk Corporation | Interfacing systems operating through a logical address space and on a direct data file basis |
KR100735024B1 (ko) | 2005-12-29 | 2007-07-03 | 삼성전자주식회사 | 반도체 장치의 어드레스 변환기 및 반도체 메모리 장치 |
US7646636B2 (en) * | 2007-02-16 | 2010-01-12 | Mosaid Technologies Incorporated | Non-volatile memory with dynamic multi-mode operation |
JP2008287803A (ja) | 2007-05-17 | 2008-11-27 | Elpida Memory Inc | 半導体記憶装置、半導体記憶装置の制御装置、および半導体記憶装置のアドレス制御方法 |
KR100857761B1 (ko) * | 2007-06-14 | 2008-09-10 | 삼성전자주식회사 | 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법 |
US8375160B2 (en) * | 2007-11-14 | 2013-02-12 | Panasonic Corporation | Memory controller, nonvolatile storage module, access module and nonvolatile storage system |
JP2010160653A (ja) * | 2009-01-07 | 2010-07-22 | Renesas Electronics Corp | リングバッファ回路及びその制御回路 |
US8255613B2 (en) | 2009-04-30 | 2012-08-28 | International Business Machines Corporation | Wear-leveling and bad block management of limited lifetime memory devices |
JP2012027991A (ja) | 2010-07-27 | 2012-02-09 | Hitachi Ltd | 不揮発メモリ及び記憶装置 |
JP2012234482A (ja) * | 2011-05-09 | 2012-11-29 | Canon Inc | 記憶制御装置及びその制御方法、並びにプログラム |
-
2013
- 2013-08-19 JP JP2013169707A patent/JP6213040B2/ja active Active
-
2014
- 2014-06-03 US US14/295,097 patent/US9448925B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20150052291A1 (en) | 2015-02-19 |
JP2015038698A (ja) | 2015-02-26 |
US9448925B2 (en) | 2016-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6213040B2 (ja) | 半導体記憶装置および半導体記憶装置の制御方法 | |
TWI569273B (zh) | 非揮發性記憶體裝置讀取干擾管理方法 | |
JP5984989B2 (ja) | オンチップのnand型フラッシュメモリおよびその不良ブロック管理方法 | |
Seong et al. | Security refresh: Prevent malicious wear-out and increase durability for phase-change memory with dynamically randomized address mapping | |
US20090259803A1 (en) | Systems, methods and computer program products for encoding data to be written to a nonvolatile memory based on wear-leveling information | |
KR20110065452A (ko) | 데이터 처리 시스템에서 단일화된 캐시에 대한 에러 검출 스킴들 | |
JP2012118979A (ja) | Nandフラッシュ・メモリにおける確率論的多層エラー訂正のためのシステム、方法、およびコンピュータ・プログラム | |
TW201732592A (zh) | 用於多位元錯誤偵測和校正之裝置和方法 | |
US20140245107A1 (en) | Rearranging write data to avoid hard errors | |
JP2011180773A (ja) | メモリシステム | |
US20190370189A1 (en) | Off-chip memory address scrambling apparatus and method for system on chip | |
TW201945940A (zh) | 隨機標籤設定指令 | |
US9405618B2 (en) | Marker programming in non-volatile memories | |
JP4574994B2 (ja) | メモリ外付けマイコン | |
JP7446923B2 (ja) | 半導体装置及び半導体記憶装置 | |
Wang et al. | Write-activity-aware page table management for PCM-based embedded systems | |
JP5937244B2 (ja) | 消去カウンタを処理するための方法および装置 | |
KR101495795B1 (ko) | 불휘발성 메모리 장치 및 그것의 프로그램 방법 | |
CN112951313A (zh) | 用于纠错的存储控制器、包括其的存储设备及其操作方法 | |
US9760301B2 (en) | WOM code emulation of EEPROM-type devices | |
Ho et al. | Antiwear leveling design for SSDs with hybrid ECC capability | |
JP2005216455A (ja) | 不揮発性半導体メモリ | |
JP3646679B2 (ja) | 不揮発性メモリのデータ書き換え方法 | |
US8200919B2 (en) | Storage device with self-condition inspection and inspection method thereof | |
US20120297124A1 (en) | Flash memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160510 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170308 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170321 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170519 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170822 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170904 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6213040 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |