JP2009135854A - メモリアクセス制御装置、制御方法及びプログラム - Google Patents
メモリアクセス制御装置、制御方法及びプログラム Download PDFInfo
- Publication number
- JP2009135854A JP2009135854A JP2007312038A JP2007312038A JP2009135854A JP 2009135854 A JP2009135854 A JP 2009135854A JP 2007312038 A JP2007312038 A JP 2007312038A JP 2007312038 A JP2007312038 A JP 2007312038A JP 2009135854 A JP2009135854 A JP 2009135854A
- Authority
- JP
- Japan
- Prior art keywords
- data
- bit
- conversion
- memory
- divided
- 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.)
- Withdrawn
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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
【課題】カウンタとして使用するメモリ領域の制約がなく且つ書替え回数の更新寿命を充分に延ばすことを可能とする。
【解決手段】 データ変換部34−1はメモリ素子の消去を含む書替え回数に制限をもつ例えば不揮発メモリ32への書込データを所定ビット幅の分割書込データに分割し、分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換する。データ逆変換部34−2は、不揮発メモリ32からの読出データを所定ビット幅の分割読出データに分解し、分割読出データ毎にデータ変換部とは逆の変換を行って元のデータに戻す。
【選択図】 図1
【解決手段】 データ変換部34−1はメモリ素子の消去を含む書替え回数に制限をもつ例えば不揮発メモリ32への書込データを所定ビット幅の分割書込データに分割し、分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換する。データ逆変換部34−2は、不揮発メモリ32からの読出データを所定ビット幅の分割読出データに分解し、分割読出データ毎にデータ変換部とは逆の変換を行って元のデータに戻す。
【選択図】 図1
Description
本発明は、書替え回数に制限をもつ不揮発性メモリ等のメモリアクセス制御装置、メモリアクセス制御方法及びプログラムに関し、特に、メモリ素子の書替え回数を低減するように書込データを変換してメモリの寿命を延ばすためメモリアクセス制御装置、制御方法及びプログラムに関する。
従来、EEPROMやFLASHメモリ(フラッシュROM)などの不揮発性のメモリは、データを書き込んで電源を切断してもデータを保持するという特徴があり、情報処理装置の記憶手段としてさまざまな用途に使用されてきている。例えば近年にあっては磁気ディスク装置などのユーザデータ記憶領域として使用される場合もある。
一般に不揮発性のメモリの特徴として、ビット0をビット1に書き替える書替え回数が増大するとメモリ素子の劣化を招くという欠点があり、読み書きの信頼性としては、例えば10万回までの書替えしか実施できない問題がある。
不揮発性のメモリに保持するデータのなかで、最も書替えが頻繁に行われると考えられるのは、なんらかの事象の回数を数えるという動作である。以下、数える処理をカウンタと呼ぶこととする。
不揮発メモリをカウンタとして使用する場合に劣化を改善する方法を提供できれば、平均的に不揮発性メモリの寿命を延ばすことができる。カウンタの動きを見てみると、最下位ビットが頻繁に「0、1、0、1・・・」という動きを繰り返し、上位ビットにいけばいくほどその変化の割合は少なくなるのが一般的である。
このような書替え回数に制限をもつ不揮発メモリの素子劣化を改善する方法として、従来、第40図に示す方法がある。図40の方法は、4ビットで構成された位桁111,112,113,114,115,116を持つ2進データについて、最下位桁111に4ビットの位桁110を付加して拡張することにより8ビットとし、カウンタの値を更新する際に最下位桁については、「00000001」から更新毎に1ビットシフトさせることにより「00000010、00000100、00001000・・・」と変化させ、最下位桁の更新を抑える方法を提案している(特許文献1)。
この理由は、下位桁のほうが、上位桁よりもメモリセルのビット0からビット1への変化がより多く発生することから、下位桁についてのみ工夫を施せばカウンタとしての書替え回数は低減できるという考えに基づいている。
また別の方法にあっては、図41に示すように、カウント動作をビット反転した状態で最下位ビットのデクリメントすることで、書替え回数を半減できるとしている(特許文献2)。
例えば図41のカウント処理は、下位4ビットをみると、初期状態は反転により「1111」とし、以下カウント動作毎に次のカウント動作で最下位ビットをデクリメントして「1110」、「1101」、「1100」・・・と変化させ、斜線部で示すビット位置にビット0からビット1への書替えを生じさせることで書替え回数を半減させている。
特許第2560688号公報
特開2006−164354号公報
しかしながら、このような従来の不揮発メモリの書替え回数を低減する方法にあっては、次の問題がある。
特許文献1の方法は、不揮発メモリにおける特定のメモリ箇所に特定の細工を施して書替え回数の低減を図るものであり、不揮発メモリのカウンタとして使用できる領域が制約されるという問題がある。
また、特許文献2の方法は、書替え回数を半減させることで、寿命更新という観点からは2倍程度の効果しか得られず、充分な寿命改善は困難である。
本発明は、カウンタとして使用するメモリの領域の制約がなく且つ書替え回数の更新寿命を充分に延ばすことを可能とするメモリアクセス制御装置、メモリアクセス制御方法及びプログラムを提供することを目的とする。
(装置)
本発明はメモリアクセス制御装置であって、
書替え回数に制限をもつメモリと、
メモリへの書込データを所定ビット幅の分割書込データに分割し、分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換部と、
メモリからの読出データを所定ビット幅の分割読出データに分解し、分割読出データ毎にデータ変換部とは逆の変換を行って元のデータに戻すデータ逆変換部と、
を備えたことを特徴とする。
本発明はメモリアクセス制御装置であって、
書替え回数に制限をもつメモリと、
メモリへの書込データを所定ビット幅の分割書込データに分割し、分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換部と、
メモリからの読出データを所定ビット幅の分割読出データに分解し、分割読出データ毎にデータ変換部とは逆の変換を行って元のデータに戻すデータ逆変換部と、
を備えたことを特徴とする。
ここで、データ変換部は、メモリへの書込データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割書込データに分解し、分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換し、
データ逆変換部は、メモリからの読出データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割読出データに分解し、分割読出データ毎にデータ変換部とは逆の変換を行って元のデータに戻す。
データ逆変換部は、メモリからの読出データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割読出データに分解し、分割読出データ毎にデータ変換部とは逆の変換を行って元のデータに戻す。
データ変換部は、2進表示で全ビット1となる所定ビット幅の分割書込データ(1111・・・1)を、任意のビット位置がビット1で他の全てのビット位置がビット0となるデータに変換する。
具体的にデータ変換部は、
2ビット幅のビット列11をビット列01又は10に変換し、
4ビット幅のビット列1111をビット列0001、0010、0100又は1000に変換し、
5ビット幅のビット列11111をビット列00001、00010、00100、01000又は10000に変換し、
6ビット幅のビット列111111をビット列000001、000010、000100、001000、010000又は100000に変換し、
7ビット幅のビット列1111111をビット列0000001、0000010、0000100、0001000、0010000、0100000又は1000000に変換し、
8ビット幅のビット列1111111をビット列00000001、00000010、00000100、00001000、00010000、00100000、01000000又は10000000に変換する。
2ビット幅のビット列11をビット列01又は10に変換し、
4ビット幅のビット列1111をビット列0001、0010、0100又は1000に変換し、
5ビット幅のビット列11111をビット列00001、00010、00100、01000又は10000に変換し、
6ビット幅のビット列111111をビット列000001、000010、000100、001000、010000又は100000に変換し、
7ビット幅のビット列1111111をビット列0000001、0000010、0000100、0001000、0010000、0100000又は1000000に変換し、
8ビット幅のビット列1111111をビット列00000001、00000010、00000100、00001000、00010000、00100000、01000000又は10000000に変換する。
これによりオールビット1の状態から1ビットだけビット0からビット1に変化させるだけでオール0に戻すことができ、カウンタの動作として好適である。
データ変換部は、メモリへの書込データを2ビット幅の分割書込データに分解し、分割書込データにつき
変換前ビット列00、01、10、11
変換後ビット列00、01、11、10
となるように変換し、
データ逆変換部は、メモリからの読出データを2ビット幅の分割読出データに分解し、分割読出データにつき2進表示で
逆変換前ビット列00、01、11、10
逆変換後ビット列00、01、10、11
となるように逆変換する。
変換前ビット列00、01、10、11
変換後ビット列00、01、11、10
となるように変換し、
データ逆変換部は、メモリからの読出データを2ビット幅の分割読出データに分解し、分割読出データにつき2進表示で
逆変換前ビット列00、01、11、10
逆変換後ビット列00、01、10、11
となるように逆変換する。
データ変換部は、メモリへの書込データを2ビット幅の分割書込データに分解し、分割書込データにつき2進表示で
変換前ビット列00、01、10、11
変換後ビット列00、10、11、01
となるように変換し、
データ逆変換部は、メモリからの読出データを2ビット幅の分割読出データに分解し、分割読出データにつき2進表示で
逆変換前ビット列00、10、11、01
逆変換後ビット列00、01、10、11
となるように逆変換する。
変換前ビット列00、01、10、11
変換後ビット列00、10、11、01
となるように変換し、
データ逆変換部は、メモリからの読出データを2ビット幅の分割読出データに分解し、分割読出データにつき2進表示で
逆変換前ビット列00、10、11、01
逆変換後ビット列00、01、10、11
となるように逆変換する。
データ変換部は、メモリへの書込データを4ビット幅の分割書込データに分解し、分割書込データにつき16進表示で
変換前ビット列0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
変換後ビット列0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
となるように変換し、
データ逆変換部は、メモリからの読出データを2ビット幅の分割読出データに分解し、分割読出データにつき16進表示で
逆変換前ビット列0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
逆変換後ビット列0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
となるように逆変換する。
変換前ビット列0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
変換後ビット列0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
となるように変換し、
データ逆変換部は、メモリからの読出データを2ビット幅の分割読出データに分解し、分割読出データにつき16進表示で
逆変換前ビット列0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
逆変換後ビット列0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
となるように逆変換する。
データ変換部及びデータ逆変換部を前記メモリの内部に設けても良い。
(方法)
本発明は、書替え回数に制限をもつ不揮発性メモリのメモリアクセス制御方法であって、
メモリへの書込データを所定ビット幅の分割書込データに分解し、分解書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換ステップと、
メモリからの読出データを所定ビット幅の分割読出データに分解し、分割読出データ毎にデータ変換ステップとは逆の変換を行って元のデータに戻すデータ逆変換ステップと、
を備えたことを特徴とする。
(プログラム)
本発明は、メモリのアクセス制御プログラムであり、コンピュータ内に配置された書替え回数に制限をもつ不揮発性メモリへの書込データを所定ビット幅の分割書込データに分割し、分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換ステップと、
メモリからの読出データを所定ビット幅の分割読出データに分割し、分割読出データ毎にデータ変換ステップとは逆の変換を行って元のデータに戻すデータ逆変換ステップと、
を実行させることを特徴とする。
(方法)
本発明は、書替え回数に制限をもつ不揮発性メモリのメモリアクセス制御方法であって、
メモリへの書込データを所定ビット幅の分割書込データに分解し、分解書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換ステップと、
メモリからの読出データを所定ビット幅の分割読出データに分解し、分割読出データ毎にデータ変換ステップとは逆の変換を行って元のデータに戻すデータ逆変換ステップと、
を備えたことを特徴とする。
(プログラム)
本発明は、メモリのアクセス制御プログラムであり、コンピュータ内に配置された書替え回数に制限をもつ不揮発性メモリへの書込データを所定ビット幅の分割書込データに分割し、分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換ステップと、
メモリからの読出データを所定ビット幅の分割読出データに分割し、分割読出データ毎にデータ変換ステップとは逆の変換を行って元のデータに戻すデータ逆変換ステップと、
を実行させることを特徴とする。
本発明によれば、例えば不揮発メモリにデータを書き込む際に、カウントアップ時またはカウントダウン時の変化を下位ビット及び上位ビットにかかわらず、ビット位置ごとに平均的にビット変化するようにデータ変換することにより、ビット0からビット1への書替え回数を大幅に低減し、不揮発メモリの寿命を大幅に延ばすことができる。
また不揮発メモリに変換したデータを書き込んでいるため、不揮発メモリのどの位置であってもカウンタに使用して不揮発性メモリの新寿命を延ばし、容易に装置の信頼性を高めることができる。
図1はコンピュータを対象とした本発明によるメモリアクセス制御の実施形態を示したブロック図である。図1において、コンピュータ10はCPU12を有し、CPU12のバス14に対し、RAM16、ROM18、ハードディスクドライブ20、キーボード24,マウス26及びディスプレイ28を接続したデバイスインタフェース22、ネットワークアダプタ30を接続している。
更に本実施形態にあっては、CPU12のバス14に対し、データ変換回路34を介して不揮発メモリ32を接続している。不揮発メモリ32は例えばEEPROMやフラッシュメモリ(FROM)などであり、データを書き込んで電源を切ってもデータを保持する不揮発性があるが、メモリ素子(メモリセル)の書込み信頼性としては、ビット0からビット1までの書替え回数が例えば10万回までと制限されている。
このような書替え回数に制限のある不揮発メモリ32について、本実施形態にあっては新たにデータ変換回路34を設け、不揮発メモリ32に対し最も書替え回数が多いカウンタとして使用した場合にあっても、データ変換回路34のデータ変換によりカウンタ処理における書替え回数を低減し、不揮発メモリ32の書替え回数により制限される寿命を延ばすようにしている。
具体的には、データ変換回路34にはデータ変換部34−1とデータ逆変換部34−2が設けられている。データ変換部34−1は書込データ変換部として機能し、不揮発メモリ32への書込データを所定ビット幅の分割書込データに分解し、各分割書込データごとにカウンタをカウントアップまたはカウントダウンしたときのビット0からビット1への書替え回数が、各ビット位置ごとにほぼ均等になるデータに変換する。
一方、データ逆変換部34−2は読出しデータ変換部として機能し、不揮発メモリ32からの読出データを所定のビット幅の分割読出データに分解し、分割読出データ毎にデータ変換部34−1とは逆の変換を行って元のデータに戻すデータ逆変換を行う。
本実施形態におけるデータ変換部34−1及びデータ逆変換部34−2における分割読出しデータに分割するためのビット幅としては、2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅または8ビット幅に、後の説明で明らかにするように対応し、更に16ビット幅、32ビット幅、64ビット幅というように、適宜のビット幅を定めることができる。
図2は2ビット幅単位に処理する図1のコンピュータに設けたデータ変換回路の実施形態を示した回路ブロック図である。図2において、CPU12からのバス14と不揮発メモリ32の間に設けたデータ変換回路34には、データ変換部34−1とデータ逆変換部34−2が設けられている。
データ変換部34−1には、バス14からの8ビットデータb0〜b7を2ビット単位に分割して2ビット変換テーブル36−1〜36−4に入力することで、不揮発メモリ32の適宜の領域に設けているカウンタ40をカウンタをカウントアップまたはカウントダウンしたときのビット0からビット1への書替え回数が、各ビット位置ごとにほぼ均等になるように変換している。
一方、データ逆変換部34−2には、不揮発メモリ32からの読出しデータを2ビット幅単位に分割して逆変換するための逆変換テーブル38−1〜38−4が設けられており、逆変換テーブル38−1〜38−4は変換テーブル36−1〜36−4の変換と逆の変換を行って、元の8ビットデータb0〜b7をバス14に出力する。
図3は図2の実施形態で使用する変換テーブルと逆変換テーブルを示した説明図である。図3(A)は変換テーブル36であり、図2のデータ変換部34−1にあっては、同じ内容の変換テーブル36を変換テーブル36−1〜36−4として使用している。
変換テーブル36は入力データとして2ビット幅の00,01,10,11を入力し、これを出力データ00,10,11,10に変換している。変換テーブル36から得られる2ビットの出力データは、最下位ビットのカウンタ動作に伴うビット0から1の変化回数を見ると、矢印で示すように1回であり、第2ビットについても同じく矢印で示すように1回となっている。
これに対し、入力データに示すように変換せずにカウンタ動作を行った場合には、最下位ビットについてはビット0からビット1への変化回数が2回となっている。このため本実施形態の変換テーブル36によれば、最下位ビットにおけるビット0からビット1への書替え回数を、それまでの2回から1回に半減することができる。
図3(B)の逆変換テーブル38は図3(A)の変換テーブル36の入力データと出力データを入れ替えたものであり、変換テーブル36で変換した2ビットデータを元の2ビットデータに戻すことができる。
図3(A)(B)に示した変換テーブル36及び逆変換テーブル38は、入力データをアドレスとして出力データを記憶したROMなどの固定記憶を用いたルックアップテーブル(LUT)などで実現することができる。
図4は図2の実施形態で使用する変換テーブルと逆変換テーブルの他の例を示した説明図である。図4(A)の変換テーブル42にあっては、2ビットの入力データ00,01,10,11のカウント動作に対し、出力データを00,10,11,01に変換している。
この場合にも、出力データにおける最下位ビットのデータ書替え回数は矢印で示すように1回であり、変換を行わなかった場合の2回に対し書替え回数を半減することができる。図4(B)は逆変換テーブルであり、図4(A)の変換テーブル42における入力データと出力データを入れ替えた内容となっている。
図5は不揮発メモリにデータ変換回路を内蔵した他の実施形態を示したブロック図である。図5のコンピュータ10にあっては、基本的には図1の実施形態と同じであるが、バス14に対し接続した不揮発メモリ32のメモリデバイスそのものに本実施形態によるデータ変換回路34を内蔵しており、データ変換回路34は例えば図2に示したと同じ回路構成を備えている。
図6はデータ変換回路の機能をマイクロプログラムの実行により実現する他の実施形態を示したブロック図である。図6において、コンピュータ10の起動によりハードディスクドライブ20からOSがRAMにロードされると、このOSの中に予め本実施形態のデータ変換回路の機能を実現するマイクロプログラム45を配置しておくことで、図示のようにRAM16に読出し配置される。
RAM16に展開されたマイクロプログラム45には、例えば図3に示したと同じ変換テーブル36と逆変換テーブル38が設けられている。
CPU12はRAM16のマイクロプログラム45を実行することにより、データ変換処理部46としての機能を実現する。メモリアクセス制御部46は、不揮発メモリ32にデータを書き込む際には、変換テーブル36により書込データをビット0からビット1への書替え回数が各ビット位置ごとにほぼ均等となるデータに変換テーブル36を用いて変換して書き込む。またデータ変換処理部46は、不揮発メモリ32から読み出したデータを逆変換テーブル38を用いて元のデータに戻してから、リードデータとして処理する。
図7は4ビット幅単位に処理するデータ変換回路の他の実施形態を示した説明図である。図7において、データ変換回路34には書込データ変換部として機能するデータ変換部34−1と、読出データ変換部として機能するデータ逆変換部34−2が設けられている。
データ変換部34−1には4ビット変換テーブル48−1,48−2が設けられ、バス14からの8ビットデータb0〜b7を4ビット単位の分割書込データb0〜b3,b4〜b7に分割した後に、同じ変換内容を持つ4ビット変換テーブル48−1,48−2でビット0からビット1への書替え回数が各ビット位置ごとにほぼ均等となるデータに変換して、不揮発メモリ32の例えばカウンタ40に書き込む。
またデータ逆変換部34−2には同じ変換内容を持つ4ビット逆変換テーブル50−1,50−2が設けられ、不揮発メモリ32から読み出した8ビットデータを4ビット幅の単位に分割した後に、逆変換テーブル50−1,50−2により元の4ビットデータに戻して、両者を合せた8ビットデータとしてバス14に出力する。
図8は図7の実施形態で使用する4ビット変換テーブルと4ビット逆変換テーブルを示した説明図である。図8(A)は4ビット変換テーブル48であり、4ビットの入力データを各ビット位置ごとにビット0からビット1への書替え回数がほぼ均等となるようにデータ変換している。
図8(A)の4ビット変換テーブル48の変換パターンは、出力データの各ビット位置ごとに矢印で示すようにビット0からビット1へ変化する書替え回数がすべて2回となっている理想的なパターンとなっている。
このため、入力データに示すように4ビットデータをそのままカウント動作した場合の書替え回数は、第1ビット(最下位ビット)については8回、第2ビットについては4回、第3ビットについては2回、第4ビットについては1回の合計15回であるが、本実施形態の変換による出力データにあっては合計8回であり、書替え回数をほぼ半分に低減できている。
図8(B)は4ビット逆変換テーブル50であり、図8(A)の入力データと出力データを入れ替えたテーブル内容となっている。
図9は図8の4ビット変換テーブルと4ビット逆変換テーブルを16進表示とした説明図である。
更に図10は、図9(A)の16進表示とした4ビット変換テーブル48の入力データと出力データについて、それぞれ行方向に配置して示し、併せて書替え回数テーブル52としてビット位置に対する書替え回数を同じく16進で表示している。
なお図10の4ビット変換テーブル48における16進表示は8ビットデータ(2バイト)を対象としており、上位4ビットを示す2バイト目についてはすべて0となっている。また16進表示については、通常「0x0e」などのように先頭に「0x」を付けて表示するが、図10にあっては便宜上、これを省略している。この点は図9の16進表示についても同様である。
図10に示した4ビット変換テーブル48は、4ビットの各ビット位置での書替え回数がすべて2回と同一になる理想的なパターンであるが、本実施形態にあっては、カウントアップまたはカウントダウンしたときのビット0からビット1への書替え回数が各ビット位置ごとにほぼ均等になるようにデータ変換することを意図しており、したがって本実施形態で使用可能な4ビット変換テーブルとしては、図10の4ビット変換テーブル48のパターン以外にも多数存在することになる。
図11は図7の実施形態で使用可能な4ビット変換テーブルを生成する手順を示したフローチャートである。図11において、4ビット変換テーブル生成処理は、まずステップS1で4ビットデータb0〜b3について 「0000」〜「1111」と変化する16個の4ビットデータを生成する。続いて拘束条件を設定して16個の4ビットパターンをカウンタ動作方向に並べ替えた全変換テーブルを生成する。
ここで拘束条件としては、16種類の4ビットデータの並びにつき、先頭と2番目については16進で「00」と「01」を固定的に配置させる。この理由は、例えば「00」「08」・・・などとして並べても、この場合には第4ビット位置と第1ビット位置(最下位ビット位置)を全部置き換えてみれば、結果として16進「00」、「01」から始まったと同じことに帰結するので、これらの条件を考慮して16進「00」、「01」から始まるように拘束してパターンを生成する。
次にステップS3で全変換テーブルにつき各ビット位置のビット0からビット1への書替え回数を計数する。続いてステップS4で各ビット位置の書替え回数が3〜5以内のものを擬似的な変換テーブルとして抽出する。ここで擬似的な変換テーブルとしている意味は、ステップS2で所定の拘束条件を設定して生成した変換テーブルを対象としていることに基づく。
更にステップS5で、各ビット位置の書替え回数の差が1回以内で且つ最後のパターンが16進表示で1,2,4,8となるテーブルを理想的な変換テーブルとして抽出する。
ここで図11のステップS5の理想的な変換テーブルとして、最後の4ビットデータのパターンが16進表示で1,2,4,8となるものを抽出する理由は、これらを2進表示すると
0001
0010
0100
1000
となり、次のカウント動作において1ビットの書替えで「0000」に戻すことができるからである。
0001
0010
0100
1000
となり、次のカウント動作において1ビットの書替えで「0000」に戻すことができるからである。
図10に示した4ビット変換テーブル48のパターンは、ステップS5で抽出された理想的な変換テーブルの中で更に最も理想的な最適変換テーブルということができる。
続いてステップS6に進み、ステップS4で抽出した擬似的な変換テーブル、及びステップS5で抽出した理想的な変換テーブルをそれぞれ出力する。そして、出力した変換テーブルの中から必要に応じて適宜の変換テーブルを選択して、例えば図8(A)に示したような4ビット変換テーブル48及び図8(B)に示したような入力データと出力データを入れ替えた逆変換テーブル50を生成し、例えばルックアップテーブルとして構成したROMなどとして、図7に示すデータ変換部34−1及びデータ逆変換部34−2に組み込んで使用する。
図12は図11のステップS4で抽出された擬似的な4ビット変換テーブルの一部となる第1乃至第5パターンについて、その出力データと書替え回数を、図10の場合と同様にして表示している。なお、44ビット変換テーブルの入力データについては、図10のように、16進表示で「00, 01 02・・・・ 0f」となるが、これは省略している。
図13乃至図31は、図11のステップS5で抽出された理想的な4ビット変換テーブルの全てとなる第1乃至第96パターンについて、その出力データと書替え回数を、図10の場合と同様にして表示している。
図32は、本実施形態の5ビット変換テーブルの一部となる第1乃至第5パターンについて、出力データとビット位置毎の書替え回数を示す。5ビット変換テーブルの場合、10進で0〜31のカウント動作となることから、出力データは例えば第1パターンに示すように、16進表示で「00,01,03・・・・・10」の32通りとなる。
また5ビット変換テーブルについても、最後の出力データは16進表示で01,02,04,08のいずれかとしている。
図33は、本実施形態の6ビット変換テーブルの例について、出力データとビット位置毎の書替え回数を示す。6ビット変換テーブルの場合、10進で0〜63のカウント動作となることから、出力データは16進表示で「00,01,03・・・・・08」の64通りとなる。
また6ビット変換テーブルについても、最後の出力データは16進表示で01,02,04,08のいずれかとしている。
図34及び図35は、本実施形態の7ビット変換テーブルの一部となる第1乃至第3パターンについて、出力データとビット位置毎の書替え回数を示す。7ビット変換テーブルの場合、10進で0〜255のカウント動作となることから、出力データは例えば図34の第1パターンのように、16進表示で「00,01,03・・・・・3b」の256通りとなる。
図36及び図37は、本実施形態の8ビット変換テーブルの一部となる第1乃至第2パターンについて、出力データとビット位置毎の書替え回数を示す。8ビット変換テーブルの場合、10進で0〜511のカウント動作となることから、出力データは例えば図36の第1パターンのように、16進表示で「00,01,03・・・・・00」の512通りとなる。
図38はビット幅の異なる変換テーブルと逆変換テーブルを組み合わせた他の実施形態を示したブロック図である。
図38において、データ変換回路34のデータ変換部34−1には、4ビット変換テーブル48と2ビット変換テーブル36が設けられ、バス14からの書込データの下位4ビットb0〜b3を4ビット変換テーブル48で変換し、同時に、上位2ビットb4,b5を2ビット変換テーブル36で変換し、更に、上位2ビットb6,b7については変換せずにスルーとしている。
一方、データ逆変換部34−2には、4ビット逆変換テーブル50と2ビット逆変換テーブル38が設けられ、不揮発メモリ32からの読出データの下位4ビットb0〜b3を4ビット逆変換テーブル50で元に戻し、同時に、上位2ビットb4,b5を2ビット逆変換テーブル38で元に戻し、更に、上位2ビットb6,b7についてはスルーとしてバス14に出力している。
2ビット変換テーブル36及び2ビット逆変換テーブル38は図3に示した変換パターンをもつ。また4ビット変換テーブル48及び4ビット逆変換テーブル50は例えば図10に示した変換パターンを持っている。
図39は図38の4ビット変換テーブル48と2ビット変換テーブル36の組合せによる複合変換テーブルを示し、同時に、ビット位置に対する書替え回数を表す書替え回数テーブル60を示している。
この図38及び図39に示すように、本発明の実施形態にあっては、不揮発メモリ32に書き込むデータを、異なるビット幅、例えば4ビット幅と2ビット幅に分割し、各ビット幅毎に変換テーブルを使用してビット0からビット1への書替え回数をビット位置毎に略均等となるように変換し、メモリセルの書替え回数を低減してメモリ寿命を延ばすことができる。
また4ビット幅と2ビット幅に分割して変換することで、変換テーブルの容量を例えば4ビット幅だけで分割した場合に比べ小さくすることができ、回路規模を小型化できる。
ここで、図38の実施形態では、上位2ビットb7,b6については変換せずにスルーとしているが、スルーとせずに、2ビット変換テーブルを使用して変換しても良い。
また2ビット幅と4ビット幅の組合せ以外に、上記の実施形態に示した5ビット幅、6ビット幅、7ビット幅、及び8ビット幅を含め、書込データのビットサイズに応じて適宜の組合せ変換を行っても良い。
なお上記の実施形態にあっては、5ビット変換テーブル、6ビット変換テーブル、7ビット変換テーブルを使用した場合を例に取っているが、実際のデータバスのビット幅としては8ビット幅、16ビット幅、32ビット幅と、2のn乗となるビット幅が通常であることから、これに対応して2ビット変換テーブル、4ビット変換テーブル、8ビット変換テーブルを使用することが望ましい。
また上記の実施形態はコンピュータのCPUのバスに接続した不揮発メモリを例に取っているが、コンピュータ以外のCPUなどの処理機能を備えた装置に使用される不揮発メモリにつきそのまま適用することができ、機器や用途による制約は受けない。
また上記の実施形態は書替え回数に制限のあるメモリとして不揮発メモリを例に取るものであったが、不揮発メモリ以外のメモリについても、書替え回数に制限のあるメモリについては本実施形態をそのまま適用し、メモリの寿命を延ばすことができる。これは、どのようなメモリであっても書替え回数が無限ということはなく、したがって本発明は、すべてのメモリが書替え回数に制限があると見なして適用できる。
また本発明はその目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
(付記)
(付記1)(装置)
書替え回数に制限をもつメモリと、
前記メモリへの書込データを所定ビット幅の分割書込データに分解し、前記分解書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換部と、
前記メモリからの読出データを前記所定ビット幅の分割読出データに分解し、前記分割読出データ毎に前記データ変換部とは逆の変換を行って元のデータに戻すデータ逆変換部と、
を備えたことを特徴とするメモリアクセス制御装置。(1)
(付記2)(2、4、5、6、8ビット幅)
付記1記載のメモリアクセス制御装置に於いて、
前記データ変換部は、前記メモリへの書込データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割書込データに分解し、前記分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換し、
前記データ逆変換部は、前記メモリからの読出データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割読出データに分解し、前記分割読出データ毎に前記データ変換部とは逆の変換を行って元のデータに戻すことを特徴とするメモリアクセス制御装置。(2)
(付記3)(最後01、02、04、08、・・・が理想)
付記2記載のメモリアクセス制御装置に於いて、前記データ変換部は、2進表示で全ビット1となる所定ビット幅の分割書込データ(1111・・・1)を、任意のビット位置がビット1で他の全てのビット位置がビット0となるデータに変換することを特徴とするメモリアクセス制御装置。(3)
(付記4)(最後01、02、04、08、・・・が理想の具体例)
付記3記載のメモリアクセス制御装置に於いて、前記データ変換部は、
2ビット幅のビット列11をビット列01又は10に変換し、
4ビット幅のビット列1111をビット列0001、0010、0100又は1000に変換し、
5ビット幅のビット列11111をビット列00001、00010、00100、01000又は10000に変換し、
6ビット幅のビット列111111をビット列000001、000010、000100、001000、010000又は100000に変換し、
7ビット幅のビット列1111111をビット列0000001、0000010、0000100、0001000、0010000、0100000又は1000000に変換し、
8ビット幅のビット列1111111をビット列00000001、00000010、00000100、00001000、00010000、00100000、01000000又は10000000に変換することを特徴とするメモリアクセス制御装置。
(付記)
(付記1)(装置)
書替え回数に制限をもつメモリと、
前記メモリへの書込データを所定ビット幅の分割書込データに分解し、前記分解書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換部と、
前記メモリからの読出データを前記所定ビット幅の分割読出データに分解し、前記分割読出データ毎に前記データ変換部とは逆の変換を行って元のデータに戻すデータ逆変換部と、
を備えたことを特徴とするメモリアクセス制御装置。(1)
(付記2)(2、4、5、6、8ビット幅)
付記1記載のメモリアクセス制御装置に於いて、
前記データ変換部は、前記メモリへの書込データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割書込データに分解し、前記分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換し、
前記データ逆変換部は、前記メモリからの読出データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割読出データに分解し、前記分割読出データ毎に前記データ変換部とは逆の変換を行って元のデータに戻すことを特徴とするメモリアクセス制御装置。(2)
(付記3)(最後01、02、04、08、・・・が理想)
付記2記載のメモリアクセス制御装置に於いて、前記データ変換部は、2進表示で全ビット1となる所定ビット幅の分割書込データ(1111・・・1)を、任意のビット位置がビット1で他の全てのビット位置がビット0となるデータに変換することを特徴とするメモリアクセス制御装置。(3)
(付記4)(最後01、02、04、08、・・・が理想の具体例)
付記3記載のメモリアクセス制御装置に於いて、前記データ変換部は、
2ビット幅のビット列11をビット列01又は10に変換し、
4ビット幅のビット列1111をビット列0001、0010、0100又は1000に変換し、
5ビット幅のビット列11111をビット列00001、00010、00100、01000又は10000に変換し、
6ビット幅のビット列111111をビット列000001、000010、000100、001000、010000又は100000に変換し、
7ビット幅のビット列1111111をビット列0000001、0000010、0000100、0001000、0010000、0100000又は1000000に変換し、
8ビット幅のビット列1111111をビット列00000001、00000010、00000100、00001000、00010000、00100000、01000000又は10000000に変換することを特徴とするメモリアクセス制御装置。
(付記5)(2ビット幅の具体例その1)
付記2記載のメモリ制御装置に於いて、
前記データ変換部は、前記メモリへの書込データを2ビット幅の分割書込データに分解し、前記分割書込データにつき2進表示で
変換前ビット列00、01、10、11
変換後ビット列00、01、11、10
となるように変換し、
前記データ逆変換部は、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき2進表示で
逆変換前ビット列00、01、11、10
逆変換後ビット列00、01、10、11
となるように逆変換することを特徴とするメモリアクセス制御装置。(4)
(付記6)(2ビット幅の具体例その2)
付記2記載のメモリアクセス制御装置に於いて、
前記データ変換部は、前記メモリへの書込データを2ビット幅の分割書込データに分解し、前記分割書込データにつき2進表示で
変換前ビット列00、01、10、11
変換後ビット列00、10、11、01
となるように変換し、
前記データ逆変換部は、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき2進表示で
逆変換前ビット列00、10、11、01
逆変換後ビット列00、01、10、11
となるように逆変換することを特徴とするメモリアクセス制御装置。
付記2記載のメモリ制御装置に於いて、
前記データ変換部は、前記メモリへの書込データを2ビット幅の分割書込データに分解し、前記分割書込データにつき2進表示で
変換前ビット列00、01、10、11
変換後ビット列00、01、11、10
となるように変換し、
前記データ逆変換部は、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき2進表示で
逆変換前ビット列00、01、11、10
逆変換後ビット列00、01、10、11
となるように逆変換することを特徴とするメモリアクセス制御装置。(4)
(付記6)(2ビット幅の具体例その2)
付記2記載のメモリアクセス制御装置に於いて、
前記データ変換部は、前記メモリへの書込データを2ビット幅の分割書込データに分解し、前記分割書込データにつき2進表示で
変換前ビット列00、01、10、11
変換後ビット列00、10、11、01
となるように変換し、
前記データ逆変換部は、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき2進表示で
逆変換前ビット列00、10、11、01
逆変換後ビット列00、01、10、11
となるように逆変換することを特徴とするメモリアクセス制御装置。
(付記6)(4ビット幅の具体例:書替え回数最小ケース)
付記2記載のメモリ制御装置に於いて、
前記データ変換部は、前記メモリへの書込データを4ビット幅の分割書込データに分解し、前記分割書込データにつき16進表示で
変換前ビット列0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
変換後ビット列0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
となるように変換し、
前記データ逆変換部は、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき16進表示で
逆変換前ビット列0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
逆変換後ビット列0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
となるように逆変換することを特徴とするメモリアクセス制御装置。(5)
(付記7)(メモリデバイス内蔵)
付記1記載のメモリアクセス制御装置に於いて、前記データ変換部及びデータ逆変換部を前記メモリの内部に設けたことを特徴とするメモリアクセス制御装置。
付記2記載のメモリ制御装置に於いて、
前記データ変換部は、前記メモリへの書込データを4ビット幅の分割書込データに分解し、前記分割書込データにつき16進表示で
変換前ビット列0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
変換後ビット列0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
となるように変換し、
前記データ逆変換部は、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき16進表示で
逆変換前ビット列0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
逆変換後ビット列0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
となるように逆変換することを特徴とするメモリアクセス制御装置。(5)
(付記7)(メモリデバイス内蔵)
付記1記載のメモリアクセス制御装置に於いて、前記データ変換部及びデータ逆変換部を前記メモリの内部に設けたことを特徴とするメモリアクセス制御装置。
(付記8)(方法)
書替え回数に制限をもつメモリのメモリアクセス制御方法に於いて、
前記メモリへの書込データを所定ビット幅の分割書込データに分解し、前記分解書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換ステップと、
前記メモリからの読出データを前記所定ビット幅の分割読出データに分解し、前記分割読出データ毎に前記データ変換ステップとは逆の変換を行って元のデータに戻すデータ逆変換ステップと、
を備えたことを特徴とするメモリアクセス制御方法。(6)
(付記9)(2、4、5、6、8ビット幅)
付記8記載のメモリアクセス制御方法に於いて、
前記データ変換ステップは、前記メモリへの書込データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割書込データに分解し、前記分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換ステップと、
データ逆変換ステップは、前記メモリからの読出データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割読出データに分解し、前記分割読出データ毎に前記データ変換ステップとは逆の変換を行って元のデータに戻すことを特徴とするメモリアクセス制御方法。
書替え回数に制限をもつメモリのメモリアクセス制御方法に於いて、
前記メモリへの書込データを所定ビット幅の分割書込データに分解し、前記分解書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換ステップと、
前記メモリからの読出データを前記所定ビット幅の分割読出データに分解し、前記分割読出データ毎に前記データ変換ステップとは逆の変換を行って元のデータに戻すデータ逆変換ステップと、
を備えたことを特徴とするメモリアクセス制御方法。(6)
(付記9)(2、4、5、6、8ビット幅)
付記8記載のメモリアクセス制御方法に於いて、
前記データ変換ステップは、前記メモリへの書込データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割書込データに分解し、前記分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換ステップと、
データ逆変換ステップは、前記メモリからの読出データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割読出データに分解し、前記分割読出データ毎に前記データ変換ステップとは逆の変換を行って元のデータに戻すことを特徴とするメモリアクセス制御方法。
(付記10)(最後01、02、04、08、・・・が理想)
付記9記載のメモリアクセス制御方法に於いて、前記データ変換ステップは、2進表示で全ビット1となる所定ビット幅の分割書込データを、任意のビット位置がビット1で他の全てのビット位置がビット0となるデータに変換することを特徴とするメモリアクセス制御方法。
付記9記載のメモリアクセス制御方法に於いて、前記データ変換ステップは、2進表示で全ビット1となる所定ビット幅の分割書込データを、任意のビット位置がビット1で他の全てのビット位置がビット0となるデータに変換することを特徴とするメモリアクセス制御方法。
(付記11)(最後01、02、04、08、・・・が理想の具体例)
付記10記載のメモリアクセス制御方法に於いて、前記データ変換ステップは、
2ビット幅のビット列11をビット列01又は10に変換し、
4ビット幅のビット列1111をビット列0001、0010、0100又は1000に変換し、
5ビット幅のビット列11111をビット列00001、00010、00100、01000又は10000に変換し、
6ビット幅のビット列111111をビット列000001、000010、000100、001000、010000又は100000に変換し、
7ビット幅のビット列1111111をビット列0000001、0000010、0000100、0001000、0010000、0100000又は1000000に変換し、
8ビット幅のビット列1111111をビット列00000001、00000010、00000100、00001000、00010000、00100000、01000000又は10000000に変換することを特徴とするメモリアクセス制御方法。
付記10記載のメモリアクセス制御方法に於いて、前記データ変換ステップは、
2ビット幅のビット列11をビット列01又は10に変換し、
4ビット幅のビット列1111をビット列0001、0010、0100又は1000に変換し、
5ビット幅のビット列11111をビット列00001、00010、00100、01000又は10000に変換し、
6ビット幅のビット列111111をビット列000001、000010、000100、001000、010000又は100000に変換し、
7ビット幅のビット列1111111をビット列0000001、0000010、0000100、0001000、0010000、0100000又は1000000に変換し、
8ビット幅のビット列1111111をビット列00000001、00000010、00000100、00001000、00010000、00100000、01000000又は10000000に変換することを特徴とするメモリアクセス制御方法。
(付記12)(2ビット幅の具体例その1)
付記9記載のメモリアクセス制御方法に於いて、
前記データ変換ステップは、前記メモリへの書込データを2ビット幅の分割書込データに分解し、前記分割書込データにつき2進表示で
変換前ビット列00、01、10、11
変換後ビット列00、01、11、10
となるように変換し、
前記データ逆変換ステップは、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき2進表示で
逆変換前ビット列00、01、11、10
逆変換後ビット列00、01、10、11
となるように逆変換することを特徴とするメモリアクセス制御方法。
付記9記載のメモリアクセス制御方法に於いて、
前記データ変換ステップは、前記メモリへの書込データを2ビット幅の分割書込データに分解し、前記分割書込データにつき2進表示で
変換前ビット列00、01、10、11
変換後ビット列00、01、11、10
となるように変換し、
前記データ逆変換ステップは、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき2進表示で
逆変換前ビット列00、01、11、10
逆変換後ビット列00、01、10、11
となるように逆変換することを特徴とするメモリアクセス制御方法。
(付記13)(2ビット幅の具体例その2)
付記9記載のメモリアクセス制御方法に於いて、
前記データ変換ステップは、前記メモリへの書込データを2ビット幅の分割書込データに分解し、前記分割書込データにつき2進表示で
変換前ビット列00、01、10、11
変換後ビット列00、10、11、01
となるように変換し、
前記データ逆変換ステップは、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき2進表示で
逆変換前ビット列00、10、11、01
逆変換後ビット列00、01、10、11
となるように逆変換することを特徴とするメモリアクセス制御方法。
付記9記載のメモリアクセス制御方法に於いて、
前記データ変換ステップは、前記メモリへの書込データを2ビット幅の分割書込データに分解し、前記分割書込データにつき2進表示で
変換前ビット列00、01、10、11
変換後ビット列00、10、11、01
となるように変換し、
前記データ逆変換ステップは、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき2進表示で
逆変換前ビット列00、10、11、01
逆変換後ビット列00、01、10、11
となるように逆変換することを特徴とするメモリアクセス制御方法。
(付記14)(4ビット幅の具体例)
付記9記載のメモリアクセス制御方法に於いて、
前記データ変換ステップは、前記メモリへの書込データを4ビット幅の分割書込データに分解し、前記分割書込データにつき16進表示で
変換前ビット列0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
変換後ビット列0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
となるように変換し、
前記データ逆変換ステップは、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき16進表示で
逆変換前ビット列0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
逆変換後ビット列0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
となるように逆変換することを特徴とするメモリアクセス制御方法。
付記9記載のメモリアクセス制御方法に於いて、
前記データ変換ステップは、前記メモリへの書込データを4ビット幅の分割書込データに分解し、前記分割書込データにつき16進表示で
変換前ビット列0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
変換後ビット列0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
となるように変換し、
前記データ逆変換ステップは、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき16進表示で
逆変換前ビット列0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
逆変換後ビット列0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
となるように逆変換することを特徴とするメモリアクセス制御方法。
(付記15)(プログラム)
コンピュータ内に配置される書替え回数に制限をもつメモリへの書込データを所定ビット幅の分割書込データに分割し、前記分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換ステップと、
前記メモリからの読出データを前記所定ビット幅の分割読出データに分解し、前記分割読出データ毎に前記データ変換ステップとは逆の変換を行って元のデータに戻すデータ逆変換ステップと、
を実行させることを特徴とするプログラム。(7)
(付記16)(2、4、5、6、8ビット幅)
付記15記載のプログラムに於いて、
前記データ変換ステップは、前記メモリへの書込データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割書込データに分解し、前記分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換ステップと、
データ逆変換ステップは、前記メモリからの読出データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割読出データに分解し、前記分割読出データ毎に前記データ変換ステップとは逆の変換を行って元のデータに戻すことを特徴とするプログラム。
コンピュータ内に配置される書替え回数に制限をもつメモリへの書込データを所定ビット幅の分割書込データに分割し、前記分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換ステップと、
前記メモリからの読出データを前記所定ビット幅の分割読出データに分解し、前記分割読出データ毎に前記データ変換ステップとは逆の変換を行って元のデータに戻すデータ逆変換ステップと、
を実行させることを特徴とするプログラム。(7)
(付記16)(2、4、5、6、8ビット幅)
付記15記載のプログラムに於いて、
前記データ変換ステップは、前記メモリへの書込データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割書込データに分解し、前記分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換ステップと、
データ逆変換ステップは、前記メモリからの読出データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割読出データに分解し、前記分割読出データ毎に前記データ変換ステップとは逆の変換を行って元のデータに戻すことを特徴とするプログラム。
(付記17)(最後01、02、04、08、・・・が理想)
付記16記載のプログラムに於いて、前記データ変換ステップは、2進表示で全ビット1となる所定ビット幅の分割書込データを、任意のビット位置がビット1で他の全てのビット位置がビット0となるデータに変換することを特徴とするプログラム。
付記16記載のプログラムに於いて、前記データ変換ステップは、2進表示で全ビット1となる所定ビット幅の分割書込データを、任意のビット位置がビット1で他の全てのビット位置がビット0となるデータに変換することを特徴とするプログラム。
(付記18)(最後01、02、04、08、・・・が理想の具体例)
付記17記載のプログラムに於いて、前記データ変換ステップは、
2ビット幅のビット列11をビット列01又は10に変換し、
4ビット幅のビット列1111をビット列0001、0010、0100又は1000に変換し、
5ビット幅のビット列11111をビット列00001、00010、00100、01000又は10000に変換し、
6ビット幅のビット列111111をビット列000001、000010、000100、001000、010000又は100000に変換し、
7ビット幅のビット列1111111をビット列0000001、0000010、0000100、0001000、0010000、0100000又は1000000に変換し、
8ビット幅のビット列1111111をビット列00000001、00000010、00000100、00001000、00010000、00100000、01000000又は10000000に変換することを特徴とするプログラム。
付記17記載のプログラムに於いて、前記データ変換ステップは、
2ビット幅のビット列11をビット列01又は10に変換し、
4ビット幅のビット列1111をビット列0001、0010、0100又は1000に変換し、
5ビット幅のビット列11111をビット列00001、00010、00100、01000又は10000に変換し、
6ビット幅のビット列111111をビット列000001、000010、000100、001000、010000又は100000に変換し、
7ビット幅のビット列1111111をビット列0000001、0000010、0000100、0001000、0010000、0100000又は1000000に変換し、
8ビット幅のビット列1111111をビット列00000001、00000010、00000100、00001000、00010000、00100000、01000000又は10000000に変換することを特徴とするプログラム。
(付記19)(2ビット幅の具体例その1)
付記16記載のプログラムに於いて、
前記データ変換ステップは、前記メモリへの書込データを2ビット幅の分割書込データに分解し、前記分割書込データにつき2進表で、
変換前ビット列00、01、10、11
変換後ビット列00、01、11、10
となるように変換し、
前記データ逆変換ステップは、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき2進表示で
逆変換前ビット列00、01、11、10
逆変換後ビット列00、01、10、11
となるように逆変換することを特徴とするプログラム。
付記16記載のプログラムに於いて、
前記データ変換ステップは、前記メモリへの書込データを2ビット幅の分割書込データに分解し、前記分割書込データにつき2進表で、
変換前ビット列00、01、10、11
変換後ビット列00、01、11、10
となるように変換し、
前記データ逆変換ステップは、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき2進表示で
逆変換前ビット列00、01、11、10
逆変換後ビット列00、01、10、11
となるように逆変換することを特徴とするプログラム。
(付記20)(4ビット幅の具体例)
付記16記載のプログラムに於いて、
前記データ変換ステップは、前記メモリへの書込データを4ビット幅の分割書込データに分解し、前記分割書込データにつき16進表示で
変換前ビット列0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
変換後ビット列0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
となるように変換し、
前記データ逆変換ステップは、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき16進表示で
逆変換前ビット列
0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
逆変換後ビット列
0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
となるように逆変換することを特徴とするプログラム。
付記16記載のプログラムに於いて、
前記データ変換ステップは、前記メモリへの書込データを4ビット幅の分割書込データに分解し、前記分割書込データにつき16進表示で
変換前ビット列0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
変換後ビット列0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
となるように変換し、
前記データ逆変換ステップは、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき16進表示で
逆変換前ビット列
0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
逆変換後ビット列
0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
となるように逆変換することを特徴とするプログラム。
10:コンピュータ
12:CPU
14:バス
16:RAM
18:ROM
20:ハードディスクドライブ
22:デバイスインタフェース
24:キーボード
26:マウス
28:ディスプレイ
30:ネットワークアダプタ
32:不揮発メモリ
34:データ変換回路
34−1:書込データ変換部
34−2:読出データ変換部
36,36−1〜36−4,42:2ビット変換テーブル
38,38−1〜38−4,44:2ビット逆変換テーブル
40:カウンタ
45:マイクロプログラム
46:データ変換処理部
48,48−1〜48−4:4ビット変換テーブル
50,50−1〜50−4:4ビット逆変換テーブル
52:書替え回数テーブル
12:CPU
14:バス
16:RAM
18:ROM
20:ハードディスクドライブ
22:デバイスインタフェース
24:キーボード
26:マウス
28:ディスプレイ
30:ネットワークアダプタ
32:不揮発メモリ
34:データ変換回路
34−1:書込データ変換部
34−2:読出データ変換部
36,36−1〜36−4,42:2ビット変換テーブル
38,38−1〜38−4,44:2ビット逆変換テーブル
40:カウンタ
45:マイクロプログラム
46:データ変換処理部
48,48−1〜48−4:4ビット変換テーブル
50,50−1〜50−4:4ビット逆変換テーブル
52:書替え回数テーブル
Claims (7)
- 書替え回数に制限をもつメモリと、
前記メモリへの書込データを所定ビット幅の分割書込データに分解し、前記分解書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換部と、
前記メモリからの読出データを前記所定ビット幅の分割読出データに分解し、前記分割読出データ毎に前記データ変換部とは逆の変換を行って元のデータに戻すデータ逆変換部と、
を備えたことを特徴とするメモリアクセス制御装置。
- 請求項1記載のメモリアクセス制御装置に於いて、
前記データ変換部は、前記メモリへの書込データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割書込データに分解し、前記分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換し、
前記データ逆変換部は、前記メモリからの読出データを2ビット幅、4ビット幅、5ビット幅、6ビット幅、7ビット幅、または8ビット幅の分割読出データに分解し、前記分割読出データ毎に前記データ変換部とは逆の変換を行って元のデータに戻すことを特徴とするメモリアクセス制御装置。
- 請求項2記載のメモリアクセス制御装置に於いて、前記データ変換部は、2進表示で全ビット1となる所定ビット幅の分割書込データ(1111・・・1)を、任意のビット位置がビット1で他の全てのビット位置がビット0となるデータに変換することを特徴とするメモリアクセス制御装置。
- 請求項2記載のメモリ制御装置に於いて、
前記データ変換部は、前記メモリへの書込データを2ビット幅の分割書込データに分解し、前記分割書込データにつき2進表示で
変換前ビット列00、01、10、11
変換後ビット列00、01、11、10
となるように変換し、
前記データ逆変換部は、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき2進表示で
逆変換前ビット列00、01、11、10
逆変換後ビット列00、01、10、11
となるように逆変換することを特徴とするメモリアクセス制御装置。
- 請求項2記載のメモリ制御装置に於いて、
前記データ変換部は、前記メモリへの書込データを4ビット幅の分割書込データに分解し、前記分割書込データにつき16進表示で
変換前ビット列0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
変換後ビット列0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
となるように変換し、
前記データ逆変換部は、前記メモリからの読出データを2ビット幅の分割読出データに分解し、前記分割読出データにつき16進表示で
逆変換前ビット列0、1、5、d、9、8、a、b、3、7、f、e、c、4、6、2
逆変換後ビット列0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
となるように逆変換することを特徴とするメモリアクセス制御装置。
- 書替え回数に制限をもつメモリのメモリアクセス制御方法に於いて、
前記メモリへの書込データを所定ビット幅の分割書込データに分解し、前記分解書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換ステップと、
前記メモリからの読出データを前記所定ビット幅の分割読出データに分解し、前記分割読出データ毎に前記データ変換ステップとは逆の変換を行って元のデータに戻すデータ逆変換ステップと、
を備えたことを特徴とするメモリアクセス制御方法。
- コンピュータ内に配置される書替え回数に制限をもつメモリへの書込データを所定ビット幅の分割書込データに分割し、前記分割書込データ毎に、カウントアップ又はカウントダウンしたときのビット0からビット1への更新頻度が各ビット位置毎に略均等になる変換データに変換するデータ変換ステップと、
前記メモリからの読出データを前記所定ビット幅の分割読出データに分解し、前記分割読出データ毎に前記データ変換ステップとは逆の変換を行って元のデータに戻すデータ逆変換ステップと、
を実行させることを特徴とするプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007312038A JP2009135854A (ja) | 2007-12-03 | 2007-12-03 | メモリアクセス制御装置、制御方法及びプログラム |
US12/200,383 US20090144512A1 (en) | 2007-12-03 | 2008-08-28 | Memory access control device, control method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007312038A JP2009135854A (ja) | 2007-12-03 | 2007-12-03 | メモリアクセス制御装置、制御方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009135854A true JP2009135854A (ja) | 2009-06-18 |
Family
ID=40676961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007312038A Withdrawn JP2009135854A (ja) | 2007-12-03 | 2007-12-03 | メモリアクセス制御装置、制御方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090144512A1 (ja) |
JP (1) | JP2009135854A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013541111A (ja) * | 2010-10-29 | 2013-11-07 | エンパイア テクノロジー ディベロップメント エルエルシー | ソリッドステートドライブのための消去カウントを軽減した高機能データ符号化 |
JP2014215986A (ja) * | 2013-04-30 | 2014-11-17 | スパンションエルエルシー | 制御方法、制御プログラム、および制御装置 |
US8891296B2 (en) | 2013-02-27 | 2014-11-18 | Empire Technology Development Llc | Linear Programming based decoding for memory devices |
JP2015185193A (ja) * | 2014-03-25 | 2015-10-22 | 京セラドキュメントソリューションズ株式会社 | データ記憶装置及び画像処理装置 |
US9448921B2 (en) | 2013-01-11 | 2016-09-20 | Empire Technology Development Llc | Page allocation for flash memories |
US9859925B2 (en) | 2013-12-13 | 2018-01-02 | Empire Technology Development Llc | Low-complexity flash memory data-encoding techniques using simplified belief propagation |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101949671B1 (ko) | 2012-06-28 | 2019-04-25 | 삼성전자 주식회사 | 라이프 싸이클을 증가시킬 수 있는 저장 장치 및 그 동작 방법 |
CN104102587A (zh) * | 2014-07-09 | 2014-10-15 | 昆腾微电子股份有限公司 | Nvm数据处理方法和装置 |
US11056192B2 (en) * | 2018-12-21 | 2021-07-06 | Micron Technology, Inc. | Monotonic counters in memories |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6785860B1 (en) * | 2000-05-31 | 2004-08-31 | Robert Patti | Error-correcting code adapted for memories that store multiple bits per storage cell |
US7551706B2 (en) * | 2004-12-03 | 2009-06-23 | Kyocera Mita Corporation | Counter device and counting method |
-
2007
- 2007-12-03 JP JP2007312038A patent/JP2009135854A/ja not_active Withdrawn
-
2008
- 2008-08-28 US US12/200,383 patent/US20090144512A1/en not_active Abandoned
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013541111A (ja) * | 2010-10-29 | 2013-11-07 | エンパイア テクノロジー ディベロップメント エルエルシー | ソリッドステートドライブのための消去カウントを軽減した高機能データ符号化 |
US9448921B2 (en) | 2013-01-11 | 2016-09-20 | Empire Technology Development Llc | Page allocation for flash memories |
US8891296B2 (en) | 2013-02-27 | 2014-11-18 | Empire Technology Development Llc | Linear Programming based decoding for memory devices |
US9424945B2 (en) | 2013-02-27 | 2016-08-23 | Empire Technology Development Llc | Linear programming based decoding for memory devices |
JP2014215986A (ja) * | 2013-04-30 | 2014-11-17 | スパンションエルエルシー | 制御方法、制御プログラム、および制御装置 |
US9859925B2 (en) | 2013-12-13 | 2018-01-02 | Empire Technology Development Llc | Low-complexity flash memory data-encoding techniques using simplified belief propagation |
JP2015185193A (ja) * | 2014-03-25 | 2015-10-22 | 京セラドキュメントソリューションズ株式会社 | データ記憶装置及び画像処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US20090144512A1 (en) | 2009-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009135854A (ja) | メモリアクセス制御装置、制御方法及びプログラム | |
CN102084335B (zh) | 任意伽罗瓦域算术在可编程处理器上的实施 | |
JP4718455B2 (ja) | 擬似乱数生成装置及び擬似乱数生成方法及び擬似乱数生成プログラム | |
CN100563111C (zh) | 数据编码装置、数据编码方法 | |
JP5962258B2 (ja) | データ変換方法、データ変換装置およびデータ変換プログラム | |
CN118331539B (zh) | 一种除法器及数据处理方法、系统、设备、计算机介质 | |
JP4574994B2 (ja) | メモリ外付けマイコン | |
JP5241475B2 (ja) | ハッシュ値演算装置及びハッシュ値演算方法及びハッシュ値演算プログラム | |
JP5397061B2 (ja) | 演算処理装置、その制御方法および演算処理プログラム | |
CN113625992B (zh) | 基于除法器的任务处理方法、装置、除法器及存储介质 | |
JP6567213B2 (ja) | デジタル演算処理回路 | |
JP5755970B2 (ja) | 演算装置 | |
JPWO2011036746A1 (ja) | 演算装置 | |
JP2006072961A (ja) | 演算処理装置のメモリ回路 | |
JP5840086B2 (ja) | 縮約装置、縮約方法、およびプログラム | |
JP6961950B2 (ja) | 格納方法、格納装置および格納プログラム | |
US20050010632A1 (en) | Digital signal processor based on jumping floating-point arithmetic | |
KR102285940B1 (ko) | 데이터 처리 회로, 데이터 처리 회로를 포함하는 데이터 저장 장치 및 그것의 동작 방법 | |
JP3867804B2 (ja) | 集積回路装置 | |
JP2020027473A (ja) | データ処理装置及びデータ処理プログラム | |
JP2006270330A (ja) | 可変長符号復号回路 | |
JP3792633B2 (ja) | マイクロコントローラ、及びマイクロコントローラ装置 | |
JP4271589B2 (ja) | 演算装置の制御方法、並びに、そのプログラムおよび記録媒体 | |
JP5218015B2 (ja) | データ伸長装置 | |
KR100427672B1 (ko) | 시프트 레지스터의 소프트웨어 구현 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20091023 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100209 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20111007 |