JP2014229125A - 記憶装置、及び記憶装置の制御方法 - Google Patents
記憶装置、及び記憶装置の制御方法 Download PDFInfo
- Publication number
- JP2014229125A JP2014229125A JP2013109068A JP2013109068A JP2014229125A JP 2014229125 A JP2014229125 A JP 2014229125A JP 2013109068 A JP2013109068 A JP 2013109068A JP 2013109068 A JP2013109068 A JP 2013109068A JP 2014229125 A JP2014229125 A JP 2014229125A
- Authority
- JP
- Japan
- Prior art keywords
- data
- write
- address
- sram
- unit
- 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.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】より簡易な構成でより安定して動作する記憶装置、及び記憶装置の制御方法を提供する。
【解決手段】一実施形態に係る記憶装置は、データ処理装置から供給された書き込みデータを記憶する記憶装置であって、1ビットのデータを格納するメモリセルがマトリクス状に配列されたSRAMと、前記データ処理装置から書き込みデータ及び前記SRAM上の書き込み先のアドレスを受け取り、前記書き込み先のアドレスが示す領域と前記書き込み先のアドレスの次のアドレスの領域に前記書き込みデータの各ビットがSRAM上で隣り合わないように前記書き込みデータを書き込む書き込み制御部と、を具備する。
【選択図】 図1
【解決手段】一実施形態に係る記憶装置は、データ処理装置から供給された書き込みデータを記憶する記憶装置であって、1ビットのデータを格納するメモリセルがマトリクス状に配列されたSRAMと、前記データ処理装置から書き込みデータ及び前記SRAM上の書き込み先のアドレスを受け取り、前記書き込み先のアドレスが示す領域と前記書き込み先のアドレスの次のアドレスの領域に前記書き込みデータの各ビットがSRAM上で隣り合わないように前記書き込みデータを書き込む書き込み制御部と、を具備する。
【選択図】 図1
Description
本発明の実施形態は、記憶装置、及び記憶装置の制御方法に関する。
キャッシュメモリとして機能するStatic Random Access Memory(SRAM)を備えた記憶装置が一般的に実用化されている。SRAMは、読み込み及び書き込みが可能なRAMであり、一時的にデータを記憶する揮発性メモリである。
SRAMは、複数の半導体が組み合わされた順序回路を備える。SRAMは、「0」と「1」のデータを記憶することができる。
しかし、例えば放射線などの外乱により、「0」と「1」とが置き換わるビットエラーが生じる可能性がある。ビットエラーを訂正する技術も一般的に実用化されているが、1つのデータセット内の複数のビットにエラーが生じた場合、訂正が難しい場合がある。また、外乱によりビットエラーは、隣接したメモリセルに生じやすい。そこで、物理的に分割された複数の領域に1つのデータセットのデータを分割して書き込むマルチビットエラー対策が施されたSRAMが実用化されている。
上記したSRAMは、内部の構造が特殊であり高価であるという課題がある。また、マルチビットエラー対策が施されていないSRAMが記憶装置に搭載されている場合、SRAMを上記したような特殊な構造のSRAMに換装する必要があり、手間がかかるという課題がある。
そこで本発明は、より簡易な構成でより安定して動作する記憶装置、及び記憶装置の制御方法を提供することを目的とする。
一実施形態に係る記憶装置は、データ処理装置から供給された書き込みデータを記憶する記憶装置であって、1ビットのデータを格納するメモリセルがマトリクス状に配列されたSRAMと、前記データ処理装置から書き込みデータ及び前記SRAM上の書き込み先のアドレスを受け取り、前記書き込み先のアドレスが示す領域と前記書き込み先のアドレスの次のアドレスの領域に前記書き込みデータの各ビットがSRAM上で隣り合わないように前記書き込みデータを書き込む書き込み制御部と、を具備する。
以下、図面を参照しながら、一実施形態に係る記憶装置、及び記憶装置の制御方法について詳細に説明する。
図1は、一実施形態に係るデータ処理装置10及び記憶装置(メモリコントローラ)20の例を示す。
データ処理装置10は、メモリコントローラ20にコマンドを供給し、メモリコントローラ20に種々の処理を行わせる。
データ処理装置10は、メモリコントローラ20にコマンドを供給し、メモリコントローラ20に種々の処理を行わせる。
メモリコントローラ20は、Read/Write(R/W)判断部21、データ集積部22、データ構成部24、及びSRAM27を備える。また、データ集積部22は、連続判定部23を備える。さらに、データ構成部24は、ビット整列部25、及びテンポラリ部26を備える。
データ処理装置10は、メモリコントローラ20のR/W判断部21及びデータ構成部24に接続されている。データ処理装置10は、メモリコントローラ20のSRAM27にデータを書き込む場合、SRAM27に書き込むデータと、データの書き込み先のアドレスと、書き込みイネーブル信号とをR/W判断部21に送信する。また、データ処理装置10は、メモリコントローラ20のSRAM27からデータを読み込む場合、読み込むアドレスと、読み込みイネーブル信号とをR/W判断部21に送信する。
R/W判断部21は、データ処理装置10から信号が供給された場合、書き込み処理と読み込み処理の、どちらの処理が要求されているかを判断する。R/W判断部21は、データ処理装置10から書き込みイネーブル信号が供給された場合、データ処理装置10により書き込み処理が要求されていると判断する。また、R/W判断部21は、データ処理装置10から読み込みイネーブル信号が供給された場合、データ処理装置10により読み込み処理が要求されていると判断する。
R/W判断部21は、書き込み処理が要求されていると判断した場合、SRAM27に書き込むデータと、データの書き込み先のアドレスと、書き込みイネーブル信号とをデータ集積部22に送信する。また、R/W判断部21は、読み込み処理が要求されていると判断した場合、読み込むアドレスと、読み込みイネーブル信号とをデータ集積部22に送信する。
データ集積部22は、連続したデータ(連続データ)を蓄積し、一括してデータ構成部24に供給する。連続判定部23は、R/W判断部21から供給されたアドレスが、連続したアドレスであるか不連続なアドレスであるかを判定する。
図2は、書き込み処理が要求されている場合のデータ集積部22の処理の例を示す。
書き込みイネーブル信号がR/W判断部21から供給されている場合(ステップS11)、データ集積部22は、予め設定された時間(wait時間)内にSRAM27に書き込むデータと、データの書き込み先のアドレスと、が入力されたか否か判断する(ステップS12)。
書き込みイネーブル信号がR/W判断部21から供給されている場合(ステップS11)、データ集積部22は、予め設定された時間(wait時間)内にSRAM27に書き込むデータと、データの書き込み先のアドレスと、が入力されたか否か判断する(ステップS12)。
R/W判断部21から書き込みデータ及び書き込み先のアドレスが供給された場合、データ集積部22は、書き込みデータ及び書き込み先のアドレスが1つ目の入力であるか否か判断する(ステップS13)。即ち、データ集積部22は、既に受け取って保持している書き込みデータ及び書き込み先のアドレスが存在するか否か判断する。データ集積部22は、保持している書き込みデータ及び書き込み先のアドレスが存在しない場合、1つ目の入力であると判断する。
1つ目の入力であると判断した場合、データ集積部22は、R/W判断部21から受け取った書き込みデータ及び書き込み先のアドレスを図示しないメモリに保持し(ステップS14)、ステップS12に移行する。
また、ステップS13で1つ目の入力ではないと判断した場合、データ集積部22の連続判定部23は、R/W判断部21から受け取った書き込み先のアドレスと連続した書き込み先のアドレスが保持されているか否か判断する(ステップS15)。R/W判断部21から受け取った書き込み先のアドレスと連続した書き込み先のアドレスが保持されていると判断した場合、データ集積部22は、R/W判断部21から受け取った書き込みデータ及び書き込み先のアドレスを図示しないメモリに保持し(ステップS14)、ステップS12に移行する。これにより、データ集積部22は、書き込み先が連続した複数の書き込みデータ及び書き込み先のアドレスをメモリに集積することができる。
また、ステップS12でwait時間内に書き込みデータと書き込み先のアドレスとが入力されなかった場合、またはステップS15で連続した書き込み先のアドレスが保持されていないと判断した場合、データ集積部22は、メモリに保持している書き込みデータ及び書き込み先アドレスをデータ構成部24に出力する(ステップS16)。
即ち、データ集積部22は、例えば、一定時間書き込み先のアドレスが供給されない場合、書き込み先のアドレスが連続しないと判断し、書き込み先のアドレスが不連続である不連続データを出力する。
また、データ集積部22は、一定時間内に次の書き込み先のアドレスが取り込まれ、且つ書き込み先のアドレスが連続していない場合、不連続データを出力する。
またさらに、データ集積部22は、一定時間内に次の書き込み先のアドレスが取り込まれ、且つ書き込み先のアドレスが連続している場合、書き込み先のデータと書き込み先のアドレスを連続データとして保持する。
また、データ集積部22は、書き込み先のアドレスが連続しない場合に保持していた連続データをデータ構成部24に出力する。
これにより、データ集積部22は、書き込み先が連続した複数の書き込みデータ及び書き込み先のアドレスをメモリに集積することができる。また、データ集積部22は、集積した書き込み先が連続した複数の書き込みデータ及び書き込み先のアドレス、即ち連続データをデータ構成部24に出力することができる。
データ構成部24は、SRAM27に格納する書き込みデータのビットを整列させる。
SRAM27は、所定の長さ(所定のビット数)のデータを1つのデータとして格納する揮発性メモリである。SRAM27は、1ビットのデータを格納する領域(メモリセル)を複数備える。例えば、SRAM27は、1ビットのデータを格納する所定数のメモリセルを含むブロックを備える。
ブロックは、例えば、SRAM27が1つのデータセットとして扱うビット数分のメモリセルを備える。即ち、SRAM27は、マトリクス上に配列された複数のメモリセルを備える。
また、SRAM27の各ブロックには、それぞれ異なるアドレスが付されている。即ち、SRAM27は、アドレスによりブロックを指定し、指定したブロック内のデータの読み込むことができる。また、SRAM27は、アドレスによりブロックを指定し、指定したブロックにデータを書き込むことができる。
データ構成部24のビット整列部25は、データ集積部22から受け取った書き込みデータを、奇数ビットと偶数ビットとに分割する。ビット整列部25は、書き込みデータの奇数ビットと偶数ビットとを異なるアドレスのブロックに格納するようにビットを整列させる。ビット整列部25は、例えば、テンポラリ部26または図示されないバッファ上に書き込みデータのビットを整列させる。
例えば、データ構成部24は、書き込み先のアドレスが示すブロック(領域)と、書き込み先のアドレスの次のアドレスのブロック(領域)とに書き込みデータの各ビットが隣り合わないように書き込みデータを書き込む。
テンポラリ部26は、SRAM27に書き込むデータ、及びSRAM27から読み出したデータを一時的に記憶するメモリである。データ構成部24は、SRAM27に書き込むデータ、及びSRAM27から読み出したデータをテンポラリ部26上で整列させる。
図3及び図4は、データ構成部24の動作の例を示す。なお、図3は、書き込みデータが不連続データである場合のデータ構成部24の動作の例を示す。また、図4は、書き込みデータが連続データである場合のデータ構成部24の動作の例を示す。
図3に示されるような不連続データ301が書き込みデータであり、SRAM27上のアドレス302が書き込み先のアドレスとして指定されていた場合、ビット整列部25は、奇数ビットと偶数ビットとを分割する。さらに、ビット整列部25は、奇数ビットがSRAM27上のアドレス302に格納され、偶数ビットがSRAM27上のアドレス303に格納されるように不連続データ301のビットを整列させる。具体的には、ビット整列部25は、SRAM27に書き込むデータを一時的に記憶するテンポラリ部26または図示されない書き込みバッファ上に不連続データ301のビットを整列させる。
なお、ビット整列部25は、図3に示されるように奇数ビットの各ビットの間にダミーとしてのビット(例えばNULL)をセットする。また、ビット整列部25は、図3に示されるように偶数ビットの各ビットの間にダミーとしてのビット(例えばNULL)をセットする。さらに、ビット整列部25は、偶数ビットの1ビット目を先頭から1ビットシフトした位置に格納する。これにより、ビット整列部25は、同一のデータ内のビット同士がSRAM27上で隣り合ったメモリセルに格納されないようにビットを整列させることができる。
また、図4に示されるような連続データ401が書き込みデータであり、SRAM27上のアドレス402乃至404が書き込み先のアドレスとして指定されていた場合、ビット整列部25は、各書き込みデータを奇数ビットと偶数ビットとを分割する。図4の例では、連続データ401は、連続データ401A、連続データ401B、及び連続データ401Cを有する。ビット整列部25は、連続データ401A、連続データ401B、及び連続データ401Cの奇数ビットと偶数ビットとをそれぞれ分割する。
さらに、ビット整列部25は、連続データ401Aの奇数ビットがSRAM27上のアドレス402に格納され、連続データ401Aの偶数ビットがSRAM27上のアドレス403に格納されるように連続データ401Aのビットを整列させる。
また、ビット整列部25は、連続データ401Bの奇数ビットがSRAM27上のアドレス403に格納され、連続データ401Bの偶数ビットがSRAM27上のアドレス404に格納されるように連続データ401Bのビットを整列させる。
また、ビット整列部25は、連続データ401Cの奇数ビットがSRAM27上のアドレス404に格納され、連続データ401Cの偶数ビットがSRAM27上のアドレス405に格納されるように連続データ401Cのビットを整列させる。
即ち、ビット整列部25は、SRAM27上のアドレス402に連続データ401Aの奇数ビットを格納し、SRAM27上のアドレス403に連続データ401Aの偶数ビットと連続データ401Bの奇数ビットとを格納し、SRAM27上のアドレス404に連続データ401bの偶数ビットと連続データ401Cの奇数ビットとを格納し、SRAM27上のアドレス405に連続データ401Cの偶数ビットを格納するように、連続データ401A乃至401Cのビットをテンポラリ部26上で整列させる。
この場合も、ビット整列部25は、偶数ビットの1ビット目を1ビットシフトした位置に格納する。また、ビット整列部25は、先頭の連続データ401Aの奇数ビットの各ビットの間と、最後尾の連続データ401Cの偶数ビットの各ビットの間と、にダミービットをセットする。これにより、ビット整列部25は、同一のデータ内のビット同士がSRAM27上で隣り合ったメモリセルに格納されないようにビットを整列させることができる。
なお、書き込みデータが不連続データである場合と、書き込みデータが連続データである場合とのどちらの場合であっても、データの幅が本来のデータの幅より1データ分長くなる。
データ構成部24は、テンポラリ部26に整列されたデータをSRAM27上の書き込み先のアドレスに書き込む。例えば、データ構成部24は、書き込み先のアドレスが複数供給された場合、先頭の書き込み先アドレスからテンポラリ部26に整列されたデータの書き込みを開始する。
即ち、データ構成部24は、書き込み先のアドレスが連続している場合、連続した複数の書き込み先のアドレスが示すブロック(領域)と、連続した複数の書き込み先のアドレスのうちの最後尾の書き込み先のアドレスの次のアドレスのブロック(領域)と、に複数の書き込みデータの各ビットが隣り合わないように複数の書き込みデータを書き込む。
これにより、メモリコントローラ20は、同一のデータ内のビットが隣り合わないように整列されたデータをSRAM27に格納することができる。これにより、メモリコントローラ20は、メモリセルがマトリクス上に配列された通常のSRAM27上での外乱によるビットエラーの影響を軽減することができる。
また、SRAM27上の書き込み先のアドレスに既にデータが書き込まれている場合がある。このような場合に元のデータを喪失しない為に、メモリコントローラ20は、SRAM27上の書き込み先のアドレスに格納されているデータ(既存データ)をテンポラリ部26に退避させる。メモリコントローラ20は、書き込みデータと、上記の既存データとを組み合わせてSRAM27上の書き込み先のアドレスに格納するデータをテンポラリ部26上で整列させる。
図5は、データ構成部24の他の動作の例を示す。
ここでは、書き込みデータが不連続データ501であるとする。また、図5に示されたように、SRAM27上のアドレス502乃至アドレス505に既にデータ(既存データ)が格納されているとする。また、書き込み先のアドレスがSRAM27上のアドレス503であるとする。
ここでは、書き込みデータが不連続データ501であるとする。また、図5に示されたように、SRAM27上のアドレス502乃至アドレス505に既にデータ(既存データ)が格納されているとする。また、書き込み先のアドレスがSRAM27上のアドレス503であるとする。
上記のような場合、データ構成部24のビット整列部25は、テンポラリ部26上に書き込み先のブロックのデータを退避させる。即ち、ビット整列部25は、書き込み先のアドレスと、その次のアドレスのブロックのデータをテンポラリ部26にコピーする。
図5の例によると、アドレス503が書き込み先のアドレスとして指定されているため、アドレス503とその次のアドレス504のブロックのデータをテンポラリ部26にコピーする。なお、アドレス503のブロックの既存データは、テンポラリ部26のアドレス506にコピーされる。また、アドレス504のブロックの既存データは、テンポラリ部26のアドレス507にコピーされる。
ビット整列部25は、書き込みデータである不連続データ501を奇数ビットと偶数ビットとに分割する。ビット整列部25は、テンポラリ部26上のアドレス508に不連続データ501の奇数ビットを整列させる。なお、ビット整列部25は、各奇数ビットの間にダミービットをセットする。また、ビット整列部25は、テンポラリ部26上のアドレス509に不連続データ501の偶数ビットを整列させる。なお、ビット整列部25は、各偶数ビットの間にダミービットをセットする。さらに、ビット整列部25は、偶数ビットの1ビット目をアドレスの先頭から1ビットシフトした位置に格納する。
この結果、図5に示されたように、テンポラリ部26のアドレス508には先頭から1ビット置きに奇数ビットが整列される。また、テンポラリ部26のアドレス509には先頭から1ビットシフトした位置から1ビット置きに偶数ビットが整列される。
さらに、ビット整列部25は、アドレス508及び509に整列させたデータに、テンポラリ部26のアドレス506及び507に退避させた既存データを組み合わせる。
具体的には、ビット整列部25は、アドレス506の既存データの偶数ビットを抽出する。ビット整列部25は、抽出したアドレス506の既存データの偶数ビットをアドレス508に組み合わせる。即ち、ビット整列部25は、アドレス508の先頭から1ビットシフトした位置から1ビット置きにアドレス506の既存データの偶数ビットを整列させる。
また、ビット整列部25は、アドレス507の既存データの奇数ビットを抽出する。ビット整列部25は、抽出したアドレス507の既存データの奇数ビットをアドレス509に組み合わせる。即ち、ビット整列部25は、アドレス509の先頭から1ビット置きにアドレス507の既存データの奇数ビットを整列させる。
データ構成部24は、テンポラリ部26のアドレス508のデータをSRAM27のアドレス503に書き込む。また、データ構成部24は、テンポラリ部26のアドレス509のデータをSRAM27のアドレス504に書き込む。
即ち、データ構成部24は、SRAM27上の書き込み先のアドレスとその次のアドレスとに既に書き込まれている既存データをコピーし、書き込み先のアドレスが示すブロック(領域)と書き込み先のアドレスの次のアドレスのブロック(領域)とに書き込みデータの各ビットが隣り合わないように書き込みデータを書き込み、既存データを用いて書き込みデータの各ビット間を補完する。
上記の処理により、メモリコントローラ20は、ダミービットで既存データを上書きすることなく、且つ、同一のデータ内のビットが隣り合わないように整列されたデータをSRAM27に格納することができる。これにより、メモリコントローラ20は、メモリセルがマトリクス上に配列された通常のSRAM27上での外乱によるビットエラーの影響を軽減することができる。
図6は、読み込み処理が要求されている場合のデータ集積部22の処理の例を示す。
読み込みイネーブル信号がR/W判断部21から供給されている場合(ステップS21)、データ集積部22は、予め設定された時間(wait時間)内にデータの読み込み先のアドレスが入力されたか否か判断する(ステップS22)。
読み込みイネーブル信号がR/W判断部21から供給されている場合(ステップS21)、データ集積部22は、予め設定された時間(wait時間)内にデータの読み込み先のアドレスが入力されたか否か判断する(ステップS22)。
R/W判断部21から読み込み先のアドレスが供給された場合、データ集積部22は、読み込み先のアドレスが1つ目の入力であるか否か判断する(ステップS23)。即ち、データ集積部22は、既に受け取って保持している読み込み先のアドレスが存在するか否か判断する。データ集積部22は、保持している読み込み先のアドレスが存在しない場合、1つ目の入力であると判断する。
1つ目の入力であると判断した場合、データ集積部22は、R/W判断部21から受け取った読み込み先のアドレスを図示しないメモリに保持し(ステップS24)、ステップS22に移行する。
また、ステップS23で1つ目の入力ではないと判断した場合、データ集積部22の連続判定部23は、R/W判断部21から受け取った読み込み先のアドレスと連続した読み込み先のアドレスが保持されているか否か判断する(ステップS25)。R/W判断部21から受け取った読み込み先のアドレスと連続した読み込み先のアドレスが保持されていると判断した場合、データ集積部22は、R/W判断部21から受け取った読み込み先のアドレスを図示しないメモリに保持し(ステップS24)、ステップS22に移行する。これにより、データ集積部22は、連続した複数の読み込み先のアドレスをメモリに集積することができる。
また、ステップS22でwait時間内に読み込み先のアドレスが入力されなかった場合、またはステップS25で連続した読み込み先のアドレスが保持されていないと判断した場合、データ集積部22は、メモリに保持している読み込み先アドレスをデータ構成部24に出力する(ステップS26)。
即ち、データ集積部22は、例えば、一定時間読み込み先のアドレスが供給されない場合、読み込み先のアドレスが連続しないと判断し、読み込み先のアドレスが不連続である不連続データを出力する。
また、データ集積部22は、一定時間内に次の読み込み先のアドレスが取り込まれ、且つ読み込み先のアドレスが連続していない場合、不連続データを出力する。
またさらに、データ集積部22は、一定時間内に次の読み込み先のアドレスが取り込まれ、且つ読み込み先のアドレスが連続している場合、複数の読み込み先アドレスを連続データとして保持する。
また、データ集積部22は、読み込み先のアドレスが連続しない場合に保持していた連続データをデータ構成部24に出力する。
これにより、データ集積部22は、連続した複数の読み込み先のアドレスをメモリに集積することができる。また、データ集積部22は、集積した複数の読み込み先のアドレス、即ち連続データをデータ構成部24に出力することができる。
データ構成部24は、データ集積部22から連続データ、または不連続データを受け取った場合、SRAM27からデータを読み込み、読み込んだデータ(読み込みデータ)のビットを整列させる。
データ構成部24のビット整列部25は、データ集積部22から受け取った連続データまたは不連続データに基づいて、SRAM27上のブロックを指定し、指定したブロック内のデータを読み込むことができる。即ち、ビット整列部25は、データ集積部22から連続データを受け取った場合、受け取った連続データの読み込み先アドレスに基づいてSRAM27上の複数のブロックを指定し、指定したブロック内のデータを読み込む。
ビット整列部25は、読み込んだデータをテンポラリ部26上に格納する。ビット整列部25は、読み込んだデータのビットをテンポラリ部26上で整列させ、データ処理装置10に出力するデータ(出力データ)を生成する。
図7及び図8は、データ構成部24の動作の例を示す。なお、図7は、読み込みデータが不連続データである場合のデータ構成部24の動作の例を示す。また、図8は、読み込みデータが連続データである場合のデータ構成部24の動作の例を示す。
なお、図7及び図8のいずれの場合も、SRAM27上のアドレス701乃至アドレス704に既にデータ(既存データ)が格納されているとする。
図7の例のように、不連続データの読み込み先アドレスによりSRAM27上のアドレス702が指定されている場合、ビット整列部25は、SRAM27上のアドレス702のデータと、アドレス702の次のブロックであるアドレス703のデータとを読み込む。例えば、ビット整列部25は、SRAM27上のアドレス702のデータをテンポラリ部26上のアドレス705にコピーし、アドレス703のデータをテンポラリ部26上のアドレス706にコピーする。
ビット整列部25は、テンポラリ部26上のアドレス705のデータの奇数ビットと偶数ビットとを分割する。またさらに、ビット整列部25は、テンポラリ部26上のアドレス706のデータの奇数ビットと偶数ビットとを分割する。ビット整列部25は、アドレス705のデータの奇数ビットと、アドレス706のデータの偶数ビットと、を組み合わせて整列させ、出力データを生成する。
ビット整列部25は、例えば、テンポラリ部26上のアドレス707にアドレス705のデータの奇数ビットを整列させる。なお、ビット整列部25は、アドレス705のデータの奇数ビットをアドレス707の先頭から1ビット置きにセットする。また、ビット整列部25は、テンポラリ部26上のアドレス707にアドレス706のデータの偶数ビットを整列させる。なお、ビット整列部25は、アドレス706のデータの偶数ビットをアドレス707の先頭から1ビットシフトした位置から1ビット置きにセットする。
これにより、ビット整列部25は、SRAM27上のアドレス702のデータの奇数ビットとSRAM27上のアドレス703のデータの偶数ビットとから出力データを生成することができる。即ち、ビット整列部25は、上記の図3及び図4の方法によりSRAM27に格納されたデータをSRAM27から読み込み、出力データを生成することができる。
データ構成部24は、ビット整列部25によるビットの整列が完了した場合、生成した出力データをデータ処理装置10に出力する。即ち、データ構成部24は、ビット整列部25によるビットの整列が完了した場合、テンポラリ部26上のアドレス707のデータ(出力データ)をデータ処理装置10に出力する。
また図8の例のように、連続データの読み込み先アドレスによりSRAM27上のアドレス702及びアドレス703が指定されている場合、ビット整列部25は、SRAM27上のアドレス702及びアドレス703のデータと、アドレス703の次のブロックであるアドレス704のデータとを読み込む。例えば、ビット整列部25は、SRAM27上のアドレス702のデータをテンポラリ部26上のアドレス708にコピーし、アドレス703のデータをテンポラリ部26上のアドレス709にコピーし、アドレス704のデータをテンポラリ部26上のアドレス710にコピーする。
ビット整列部25は、テンポラリ部26上のアドレス708、アドレス709、及びアドレス710のデータの奇数ビットと偶数ビットとをそれぞれ分割する。ビット整列部25は、アドレス708のデータの奇数ビットと、アドレス709のデータの奇数ビット及び偶数ビットと、アドレス710の偶数ビットと、を組み合わせて整列させ、出力データを生成する。
ビット整列部25は、例えば、テンポラリ部26上のアドレス711にアドレス708のデータの奇数ビットを整列させる。なお、ビット整列部25は、アドレス708のデータの奇数ビットをアドレス711の先頭から1ビット置きにセットする。また、ビット整列部25は、テンポラリ部26上のアドレス711にアドレス709のデータの偶数ビットを整列させる。なお、ビット整列部25は、アドレス709のデータの偶数ビットをアドレス711の先頭から1ビットシフトした位置から1ビット置きにセットする。
また、ビット整列部25は、テンポラリ部26上のアドレス712にアドレス709のデータの奇数ビットを整列させる。なお、ビット整列部25は、アドレス709のデータの奇数ビットをアドレス712の先頭から1ビット置きにセットする。また、ビット整列部25は、テンポラリ部26上のアドレス712にアドレス710のデータの偶数ビットを整列させる。なお、ビット整列部25は、アドレス710のデータの偶数ビットをアドレス712の先頭から1ビットシフトした位置から1ビット置きにセットする。
これにより、ビット整列部25は、SRAM27上のアドレス702乃至アドレス704のデータから出力データを生成することができる。即ち、ビット整列部25は、上記の図3及び図4の方法によりSRAM27に格納されたデータをSRAM27から読み込み、出力データを生成することができる。
データ構成部24は、ビット整列部25によるビットの整列が完了した場合、生成した出力データをデータ処理装置10に出力する。即ち、データ構成部24は、ビット整列部25によるビットの整列が完了した場合、テンポラリ部26上のアドレス711及びアドレス712のデータ(出力データ)をデータ処理装置10に出力する。
上記の処理により、メモリコントローラ20は、ダミービットで既存データを上書きすることなく、且つ、同一のデータ内のビットが隣り合わないように整列されたデータをSRAM27に格納することができる。これにより、メモリコントローラ20は、メモリセルがマトリクス上に配列された通常のSRAM27上での外乱によるビットエラーの影響を軽減することができる。
さらに、メモリコントローラ20は、同一のデータ内のビットが隣り合わないようにSRAM27に格納されたデータを読み込み、1ブロックのデータとして整列し直して出力することができる。これにより、メモリコントローラ20は、データ処理装置10側のアルゴリズムを変更することなく、メモリセルがマトリクス上に配列された通常のSRAM27上での外乱によるビットエラーの影響を軽減することができる。この結果、簡易な構成でより安定して動作する記憶装置、及び記憶装置の制御方法を提供することができる。
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
10…データ処理装置、20…メモリコントローラ、21…R/W判断部、22…データ集積部、23…連続判定部、24…データ構成部、25…ビット整列部、26…テンポラリ部、27…SRAM。
Claims (5)
- データ処理装置から供給された書き込みデータを記憶する記憶装置であって、
1ビットのデータを格納するメモリセルがマトリクス状に配列されたSRAMと、
前記データ処理装置から書き込みデータ及び前記SRAM上の書き込み先のアドレスを受け取り、前記書き込み先のアドレスが示す領域と前記書き込み先のアドレスの次のアドレスの領域に前記書き込みデータの各ビットがSRAM上で隣り合わないように前記書き込みデータを書き込む書き込み制御部と、
を具備する記憶装置。 - 前記SRAMは、所定数のメモリセルを有する複数のブロックと、前記ブロック毎に設定されたアドレスとを有し、
前記書き込み制御部は、前記書き込みデータの奇数ビットを前記書き込み先のアドレスが示すブロックに書き込み、前記書き込みデータの偶数ビットを前記書き込み先のアドレスの次のアドレスが示すブロックに書き込む、
請求項1に記載の記憶装置。 - 前記データ処理装置から複数の前記書き込みデータ及び前記書き込み先のアドレスを受け取った場合、前記書き込み先のアドレスが連続しているか否かに基づいて前記書き込みデータが連続したデータであるか否か判定する連続判定部をさらに具備し、
前記書き込み制御部は、前記書き込み先のアドレスが連続している場合、連続した複数の前記書き込み先のアドレスが示す領域と、連続した複数の前記書き込み先のアドレスのうちの最後尾の書き込み先のアドレスの次のアドレスの領域と、に前記複数の書き込みデータの各ビットがSRAM上で隣り合わないように前記複数の書き込みデータを書き込む、
請求項1または2に記載の記憶装置。 - 前記書き込み制御部は、前記SRAM上の前記書き込み先のアドレスとその次のアドレスとに既に書き込まれている既存データを読み出し、前記書き込み先のアドレスが示す領域と前記書き込み先のアドレスの次のアドレスの領域に前記書き込みデータの各ビットがSRAM上で隣り合わないように前記書き込みデータを書き込み、前記既存データを用いて前記書き込みデータの各ビット間を補完する、
請求項1乃至3のうちのいずれか1項に記載の記憶装置。 - 1ビットのデータを格納するメモリセルがマトリクス状に配列されたSRAMを備え、データ処理装置から供給された書き込みデータを前記SRAMに記憶する記憶装置の制御方法であって、
前記データ処理装置から書き込みデータ及び前記SRAM上の書き込み先のアドレスを受け取り、前記書き込み先のアドレスが示す領域と前記書き込み先のアドレスの次のアドレスの領域に前記書き込みデータの各ビットがSRAM上で隣り合わないように前記書き込みデータを書き込む、
記憶装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013109068A JP2014229125A (ja) | 2013-05-23 | 2013-05-23 | 記憶装置、及び記憶装置の制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013109068A JP2014229125A (ja) | 2013-05-23 | 2013-05-23 | 記憶装置、及び記憶装置の制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014229125A true JP2014229125A (ja) | 2014-12-08 |
Family
ID=52128910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013109068A Pending JP2014229125A (ja) | 2013-05-23 | 2013-05-23 | 記憶装置、及び記憶装置の制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014229125A (ja) |
-
2013
- 2013-05-23 JP JP2013109068A patent/JP2014229125A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8438457B2 (en) | Nonvolatile memory apparatus, memory controller, and memory system | |
JP5490062B2 (ja) | 不揮発性半導体記憶装置 | |
US9627092B2 (en) | Semiconductor device performing error correction operation | |
US10152244B2 (en) | Programmable memory command sequencer | |
KR20130069364A (ko) | 비휘발성 반도체 기억 장치 및 그 관리 방법 | |
US20080256416A1 (en) | Apparatus and method for initializing memory | |
US10387322B2 (en) | Multiple read and write port memory | |
US8370564B2 (en) | Access control device, information processing device, access control program and access control method | |
KR20190106274A (ko) | 메모리 칩 및 그것을 포함하는 테스트 시스템 | |
JP2013131192A (ja) | ストレージ装置及びストレージ装置の制御方法 | |
JP2020119007A (ja) | 情報処理装置、記憶制御装置および記憶制御プログラム | |
JP4956230B2 (ja) | メモリコントローラ | |
JP2008159198A (ja) | 誤り訂正装置及び記録再生装置 | |
US11036601B2 (en) | Memory module, memory system including the same and operation method thereof | |
JP6004463B2 (ja) | 記憶装置及びその制御方法 | |
JP5363460B2 (ja) | 誤り訂正機能付きコントローラ、誤り訂正機能付き記憶装置、及び誤り訂正機能付きシステム | |
US20160266974A1 (en) | Memory controller, data storage device and data write method | |
JP2014229125A (ja) | 記憶装置、及び記憶装置の制御方法 | |
US11262936B2 (en) | Memory controller, storage device, information processing system, and memory control method | |
EP3179727A1 (en) | Video server device and writing/reading data method | |
US7743204B2 (en) | Non-volatile memory device and data access circuit and data access method | |
WO2016185574A1 (ja) | メモリ装置 | |
JP2013069171A (ja) | メモリシステムとその制御方法 | |
TW201435730A (zh) | 快閃記憶體之資料搬移方法 | |
JP2007011839A (ja) | メモリ管理方法及びメモリ管理システム |