JP2011054221A - 記憶装置及び電子機器 - Google Patents

記憶装置及び電子機器 Download PDF

Info

Publication number
JP2011054221A
JP2011054221A JP2009199838A JP2009199838A JP2011054221A JP 2011054221 A JP2011054221 A JP 2011054221A JP 2009199838 A JP2009199838 A JP 2009199838A JP 2009199838 A JP2009199838 A JP 2009199838A JP 2011054221 A JP2011054221 A JP 2011054221A
Authority
JP
Japan
Prior art keywords
data
memory
address
read
port
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
Application number
JP2009199838A
Other languages
English (en)
Inventor
Shinichi Sasaki
晋一 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP2009199838A priority Critical patent/JP2011054221A/ja
Publication of JP2011054221A publication Critical patent/JP2011054221A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

【課題】メモリアクセスの待ち時間を削減することによってシステムの使用効率を向上させることができる記憶装置、及び当該装置を備える電子機器を提供する。
【解決手段】記憶装置1は、データの読み出しを行うリードポートP1とデータの書き込みを行うライトポートP2とを有するメモリ12と、外部から入力されるアドレスに基づいてメモリ12からリードポートP1を介して読み出されたデータを保持するリードデータ保持回路16と、外部から入力されたアドレスをライトポートP2を介したデータの書き込み用のアドレスとして保持するアドレス保持回路14と、外部から入力されるデータを保持するライトデータ保持回路13と、リードデータ保持回路16及びライトデータ保持回路13に保持されたデータに基づいて、ライトポートP2を介してメモリ12に書き込むデータを生成する冗長ビット生成回路17とを備える。
【選択図】図1

Description

本発明は、データを記憶する記憶装置、及び当該装置を備える電子機器に関する。
一般的に、記憶装置は、DRAM(Dynamic Random Access Memory)等のメモリと、メモリに対するデータの書き込み及び読み出しを制御するメモリコントローラとを備えており、データを一時的又は長期的に記憶するために様々な電子機器で用いられる。この記憶装置の動作は、(1)リード動作、(2)ライト動作、及び(3)更新動作(リード・モディファイ・ライト動作)に大別される。
上記の(1)リード動作は、メモリに対してアドレスを指定し、そのアドレスで特定される記憶領域に記憶されているデータを読み出す動作である。上記の(2)ライト動作は、メモリに対してアドレスを指定し、そのアドレスで特定される記憶領域にデータを書き込む動作である。上記の(3)リード・モディファイ・ライト動作は、メモリに対してアドレスを指定し、そのアドレスで特定される記憶領域に記憶されているデータを読み出して更新するとともに、更新したデータを同記憶領域に書き戻す動作である。
記憶装置は、基本的に、メモリに対するデータの読み出し及び書き込みを、メモリのデータ幅分のビット数を有するデータを単位として行う。このため、メモリに記憶されたデータの一部を書き換える場合(パーシャルライトを行う場合)には、上記(3)リード・モディファイ・ライト動作が行われる。また、ECC(Error Checking and Correction:エラー検出訂正)機能を備える記憶装置は、本来のデータに対してECCのための冗長ビットを付加したデータをメモリに記憶しているため、パーシャルライトを行う場合には新たな冗長ビットを作成する必要があることから、必ず上記の(3)リード・モディファイ・ライト動作が行われる。
以下の特許文献1には、CPU(中央処理装置)がメモリに対してパーシャルライトを行う場合におけるメモリへのアクセス頻度を削減し、CPUのメモリアクセス時間を削減する技術が開示されている。具体的には、CPU(中央処理装置)から出力されたデータを記憶する少なくとも1つのライトバッファを設け、チェックビット生成の対象となるデータ幅よりも小さいデータ幅をもつデータをマルチプレクサにより組み合わせてライトバッファに記憶された複数のデータを1つのデータにしてチェックビット生成を行うことにより、メモリへのアクセス頻度削減等を実現している。
特開平10−232789号公報
ところで、上述した(3)リード・モディファイ・ライト動作では、メモリからデータを読み出すサイクルと、読み出したデータを更新してメモリに書き戻すサイクルとの2つのサイクルが必要になる。このため、CPUが記憶装置に対してパーシャルライトを指示した場合には、記憶装置における(3)リード・モディファイ・ライト動作が終了するまで次のメモリアクセスが待たされることになり、記憶装置を備えるシステム全体の効率が低下するという問題がある。
また、上述した特許文献1に開示された技術を用いれば、その技術を用いない場合に比べて、メモリへのアクセス頻度を削減することができると考えられる。しかしながら、特許文献1に開示された技術においても、リード・モディファイ・ライト動作が行われる場合には、その動作が終了するまで次のメモリアクセスが待たされてしまい、メモリアクセスの効率は向上しないという問題がある。
本発明は上記事情に鑑みてなされたものであり、メモリアクセスの待ち時間を削減することによってシステムの使用効率を向上させることができる記憶装置、及び当該装置を備える電子機器を提供することを目的とする。
上記課題を解決するために、本発明の記憶装置は、外部から入力されるアドレス及びデータに基づいて、記憶しているデータの更新が可能な記憶装置(1、2)において、データの読み出しを行う第1ポート(P1)とデータの書き込みを行う第2ポート(P2)とを有するメモリ(12)と、外部から入力されるアドレスに基づいて前記メモリから前記第1ポートを介して読み出されたデータを保持する第1データ保持部(16)と、外部から入力される前記アドレスを、前記第2ポートを介したデータの書き込み用のアドレスとして保持するアドレス保持部(14)と、外部から入力されるデータを保持する第2データ保持部(13)と、前記第1,第2データ保持部に保持されたデータに基づいて、前記第2ポートを介して前記メモリに書き込むデータを生成するデータ生成部(17)とを備えることを特徴としている。
この発明によると、外部から入力されたアドレスに基づいてメモリから第1ポートを介して読み出されたデータが第1データ保持部に保持されるとともに、上記のアドレス及び外部から入力されたデータがアドレス保持部及び第2データ保持部にそれぞれ保持され、アドレス保持部に保持されたアドレスで特定されるメモリの記憶領域に書き込むべきデータが、第1,第2データ保持部に保持されたデータに基づいて生成される。生成されたデータが第2ポートを介してメモリ書き込まれている最中に、メモリの第1ポートを介して新たなデータが読み出される。
また、本発明の記憶装置は、前記アドレス保持部に保持されているアドレスと新たに外部から入力されるアドレスとが一致するか否かを検出する一致検出部(21)と、前記一致検出部の検出結果に応じて、前記メモリから前記第1ポートを介して読み出されたデータと前記データ生成部で生成されたデータとの何れか一方を外部に出力すべきデータとして選択する選択部(22)とを備えることを特徴としている。
また、本発明の記憶装置において、外部から入力される前記データは、前記メモリに記憶されるデータよりもビット数が少ないデータであり、前記データ生成部は、前記第1データ保持部に保持されたデータの一部を前記第2データ保持部に保持されたデータに更新することによって、前記第2ポートを介して前記メモリに書き込むデータを生成することを特徴としている。
また、本発明の記憶装置において、前記メモリは、エラー検出訂正を行うための冗長ビットが付加されたデータを記憶するものであり、前記データ生成部は、前記メモリに書き込むデータとともに当該データについての冗長ビットを生成し、当該冗長ビットを前記メモリに書き込むデータに付加することを特徴としている。
また、本発明の記憶装置は、前記メモリから前記第1ポートを介して読み出されたデータに付加された冗長ビットを用いて、当該データのエラー検出訂正を行うエラー検出訂正部(15)を備えることを特徴としている。
本発明の電子機器は、上記の何れかに記載の記憶装置を備えることを特徴としている。
本発明によれば、外部から入力されたアドレスに基づいてメモリから第1ポートを介して読み出されたデータを第1データ保持部に保持するとともに、上記のアドレス及び外部から入力されたデータをアドレス保持部及び第2データ保持部にそれぞれ保持し、アドレス保持部に保持したアドレスで特定されるメモリの記憶領域に書き込むべきデータを、第1,第2データ保持部に保持されたデータに基づいて生成している。これにより、生成したデータを第2ポートを介してメモリ書き込んでいる最中に、メモリの第1ポートを介して新たなデータの読み出しを行うことができるため、メモリアクセスの待ち時間を削減することができ、システムの使用効率を向上させることができるという効果がある。
本発明の第1実施形態による記憶装置の要部構成を示すブロック図である。 本発明の第2実施形態による記憶装置の要部構成を示すブロック図である。
以下、図面を参照して本発明の実施形態による記憶装置及び電子機器について詳細に説明する。
〔第1実施形態〕
図1は、本発明の第1実施形態による記憶装置の要部構成を示すブロック図である。図1に示す通り、本実施形態の記憶装置1は、メモリコントローラ11、メモリ12、ライトデータ保持回路13(第2データ保持部)、アドレス保持回路14(アドレス保持部)、エラー検出訂正回路15(エラー検出訂正部)、リードデータ保持回路16(第1データ保持部)、及び冗長ビット生成回路17(データ生成部)を備えている。
以上の構成の記憶装置1は、バスBを介してCPU10と相互に接続されており、CPU10の制御の下で、記憶しているデータの読み出し、記憶すべきデータの書き込み、及び記憶しているデータの更新(リード・モディファイ・ライト)が可能である。尚、本実施形態では、記憶装置1の内部で取り扱われるデータD11,D12,D22,D23のデータ幅(データビット数)が64ビットであり、ECCのための冗長ビットが8ビットであり、アドレス幅が16ビットであるとする。また、バスBのデータ幅は、記憶装置1の内部で取り扱われるデータのデータ幅(64ビット)よりも少ない32ビットであるとする。
メモリコントローラ11は、バスBに接続されており、CPU10から出力されるデータ、アドレス、及び制御命令に基づいて、図1に示す記憶装置1の各部を制御することによって、メモリ12に記憶されたデータの読み出し、及びメモリ12に対するデータの書き込みの制御を行う。メモリ12は、データの読み出しを行うリードポートP1(第1ポート)と、データの書き込みを行うライトポートP2(第2ポート)とを有するデュアルポートメモリである。このメモリ12は、リードポートP1を介したデータの読み出しと、ライトポートP2を介したデータの書き込みとを独立して行うことができ、データの読み出しとデータの書き込みとを同時に行うことが可能である。
メモリ12のリードポートP1にはメモリコントローラ11から出力される16ビットのアドレスA1が入力され、このアドレスA1で特定されるメモリ12の記憶領域に記憶された72ビットのデータ(64ビットのデータビットに8ビットの冗長ビットを加えたデータ)がリードポートP1からデータD21として読み出される。また、メモリ12のライトポートP2には、アドレス保持回路14から出力される16ビットのアドレスA2が入力されるとともに、冗長ビット生成回路17で生成された72ビットのデータ(64ビットのデータビットに8ビットの冗長ビットを加えたデータ)D13が入力され、アドレスA2で特定されるメモリ12の記憶領域にデータD13が書き込まれる。
ライトデータ保持回路13は、メモリコントローラ11から出力される64ビットのデータD11を、一時的に保持するとともにデータD12として冗長ビット生成回路17に出力する。アドレス保持回路14は、メモリコントローラ11から出力される16ビットのアドレスA1を、一時的に保持するとともにアドレスA2としてメモリ12に出力する。尚、上記のライトデータ保持回路13及びアドレス保持回路14にデータ及びアドレスがそれぞれ保持されるのは、メモリコントローラ11から新たなデータD11及びアドレスA1がそれぞれ出力されるまでである。
エラー検出訂正回路15は、メモリ12のリードポートP1から読み出された72ビットのデータD21の一部をなす8ビットの冗長ビットを用いてエラーの検出及び訂正を行う。ここで、エラー訂正検出回路15は、1ビットエラーを訂正し、2ビット以上のエラーを検出するSEC−DED(Single Error Correction and Double Error Detection)によってエラーの検出及び訂正を行うものとする。このSEC−DEDではハミングコードを用いて冗長ビットが生成されるのが主流であり、必要となる冗長ビットのビット数は、データビットの数に対して「2」を底とした対数(log)をとって得られる値に値「2」を加えたビットとなる。本実施形態では、データビットが「64」であるため、「8」ビットの冗長ビットが必要になる。
エラー検出訂正回路15は、メモリ12のリードポートP1から読み出された72ビットのデータD21の一部をなす64ビットのデータビットにエラーが有るか否かを確認し、エラーの有無に応じて以下の(1)〜(3)に示す処理を行う。
(1)エラーが無い場合:データビットをそのままデータD22として出力
(2)エラーが1つの場合:エラーを修正したデータビットをデータD22として出力
(3)エラーが2以上の場合:データビットをそのままデータD22として出力する
尚、エラーが検出された上記(2),(3)の場合には、エラーが発生したアドレスを保存し、割り込み等によってCPU10に通知する処理が行われる。この処理は、本発明とは直接的に関係しないため詳細な説明を省略する。
リードデータ保持回路16は、エラー検出訂正回路15から出力された64ビットのデータD22を一時的に保持するとともにデータD23として冗長ビット生成回路17に出力する。冗長ビット生成回路17は、ライトデータ保持回路13から出力されるデータD12とリードデータ保持回路16から出力されるデータD23とを用いてメモリ12に記憶すべき64ビットのデータを生成するとともに、このデータに付加する8ビットの冗長ビットを生成し、これらを合成した72ビットのデータD13を出力する。尚、冗長ビット生成回路17で生成される冗長ビットは、上述したSEC−DEDでも散られる冗長ビットである。
次に、上記構成における記憶装置1の動作について詳細に説明する。尚、以下では、CPU10の制御によって記憶装置1からデータを読み出す動作であるメモリリードアクセス、CPU10の制御によって記憶装置1に対してデータを書き込む動作であるメモリライトアクセスについて順に説明する。尚、メモリライトアクセス時にはパーシャルライトが行われるものとする。
[メモリリードアクセス]
CPU10から記憶装置1に対してバスBを介したメモリリードアクセスがなされると、このメモリリードアクセスは記憶装置1に設けられたメモリコントローラ11によって検出される。すると、メモリコントローラ11からメモリ12に対してアドレスA1が出力されてメモリリードが通知される。尚、ここで出力されるアドレスA1は、上記のメモリリードアクセスでCPU10によって指示されたアドレスである。メモリコントローラ11から出力されたアドレスA1はメモリ12のリードポートP1に入力され、このアドレスA1で特定されるメモリ12の記憶領域に記憶された72ビットのデータがリードポートP1からデータD21として読み出される。
メモリ12のリードポートP1から読み出されたデータD21は、エラー検出訂正回路15に入力されてエラーの検出及び訂正が行われる。エラーが検出されなかった場合、又は2ビット以上のエラーが検出された場合には、データD21をなす64ビットのデータビットがそのままデータD22として出力される。これに対し、1ビットのエラーが検出された場合には、エラーが修正された64ビットのデータビットがデータD22として出力される。
エラー検出訂正回路15から出力されたデータD22は、メモリコントローラ11及びバスBを順に介してCPU10に入力される。これにより、先に行ったメモリリードアクセスに基づいて記憶装置1から読み出されたデータがCPU10で得られたことになる。尚、エラー検出訂正回路15でエラーが検出された場合には、エラーが発生したアドレスが保存され、別途割り込み等によってCPU10に通知される。以上によって、一連のメモリリードアクセスが終了する。
[メモリライトアクセス]
CPU10から記憶装置1に対してバスBを介したメモリライトアクセスがなされると、このメモリライトアクセスは記憶装置1に設けられたメモリコントローラ11によって検出される。ここではCPU10からなされたメモリライトアクセスがパーシャルライトであるため、メモリコントローラ11の制御の下で、まずメモリ12からデータを読み出す第1サイクルが行われ、次いで読み出したデータを更新してメモリに書き戻す第2サイクルが行われる。
第1サイクルが開始されると、メモリコントローラ11からアドレスA1及びデータD11が出力される。尚、ここで出力されるアドレスA1はパーシャルライトによって更新されるべきデータが記憶されているメモリ12の記憶領域を指示するアドレスであり、データD11は更新すべきデータ及びパーシャル情報(64ビットのデータのうちのどのビットを更新するのかを示す情報)からなるデータである。これらは何れも上記のメモリライトアクセスでCPU10によって指示される。
メモリコントローラ11から出力されたアドレスA1は、メモリ12のリードポートP1に入力されるとともに、アドレス保持回路14に保持される。また、メモリコントローラ11から出力されたデータD11は、ライトデータ保持回路13に保持される。アドレスA1がメモリ12のリードポートP1に入力されると、このアドレスA1で特定されるメモリ12の記憶領域に記憶された72ビットのデータがリードポートP1からデータD21として読み出される。
メモリ12のリードポートP1から読み出されたデータD21は、エラー検出訂正回路15に入力されてエラーの検出及び訂正が行われる。エラーが検出されなかった場合、又は2ビット以上のエラーが検出された場合には、データD21をなす64ビットのデータビットがそのままデータD22として出力される。これに対し、1ビットのエラーが検出された場合には、エラーが修正された64ビットのデータビットがデータD22として出力される。エラー検出訂正回路15から出力されたデータD22は、リードデータ保持回路16に保持される。以上の処理が行われることによって第1サイクルが終了する。
第2サイクルが開始されると、冗長ビット生成回路17によって、ライトデータ保持回路13から出力されるデータD12とリードデータ保持回路16から出力されるデータD23とからメモリ12に記憶すべき64ビットのデータが生成されるとともに、このデータに付加する8ビットの冗長ビットが生成される。そして、これらを合成した72ビットのデータD13が冗長ビット生成回路17から出力される。このデータD13は、メモリ12のライトポートP2に入力され、アドレス保持回路14から出力されてメモリ12のライトポートP2に入力されるアドレスA2で特定される記憶領域に記憶される。
ここで、アドレス保持回路14からメモリ12のライトポートP2に入力されているアドレスA2は、第1サイクルでデータの読み出しに用いられたアドレスである。また、冗長ビット生成回路17から出力されるデータD13は、第1サイクルでメモリ12から読み出したデータを、ライトデータ保持回路13に保持されたデータで更新したデータである。このため、第2サイクルが行われることによって、メモリコントローラ11から先に出力されたアドレスA1で特定されるメモリ12のデータは、一部の値が変更された新たなデータに更新される。以上で第2サイクルが終了し、パーシャルライトについての一連の動作が終了する。
いま、CPU10が、上記のメモリライトアクセスに続いて、新たなメモリアクセスを行った場合を考える。CPU10からメモリコントローラ11に対し、バスBを介した新たなメモリアクセスがなされると、このメモリアクセスは記憶装置1に設けられたメモリコントローラ11によって検出される。尚、本実施形態では、ECCのための冗長ビットを生成する必要があることから、新たなメモリアクセスがライトアクセスであっても、必ずメモリ12からデータD21を読み出すサイクル(前述した第1サイクルと同様のサイクル)が行われる。
ここで、新たなメモリアクセスに先立ってなされたメモリライトアクセスの第1サイクルが実行されている間は、メモリ12のリードポートP1からのデータD21の読み出しが行われているため、新たなメモリアクセスに基づくデータの読み出しは行われない。これに対し、新たなメモリアクセスに先立ってなされたメモリライトアクセスの第1サイクルが終了すると、前述した第2サイクルと新たなメモリアクセスに基づくメモリ12からのデータの読み出しが並行して行われる。
つまり、前述した通り、アドレス保持回路14に保持されたアドレスA2と冗長ビット生成回路17で生成されたデータD13とがメモリ12のライトポートP2に入力されて、データD13の書き込みが行われる。この書き込み動作と並行して、メモリコントローラ11からメモリ12に対し、新たなメモリアクセスの検出に基づくアドレスA1が出力されてメモリリードが通知される。すると、このアドレスA1はメモリ12のリードポートP1に入力され、このアドレスA1で特定されるメモリ12の記憶領域に記憶された72ビットのデータがリードポートP1からデータD21として読み出される。
メモリ12から読み出されたデータD21は、エラー検出訂正回路15でエラーの検出及び訂正が行われた後にデータD22として出力される。このデータD22は、新たなメモリアクセスがメモリリードアクセスである場合にはメモリコントローラ11及びバスBを順に介してCPU10に入力され、新たなメモリアクセスがメモリライトアクセスである場合にはリードデータ保持回路16に保持される。
以上の通り、本実施形態では、先になされたメモリライトアクセスに基づく書き込み動作(第2サイクル)と、新たなメモリアクセスに基づく読み出し動作とが並行して行われる。これにより、CPU10は、リード・モディファイ・ライトが必要となるパーシャルライトを指示するメモリライトアクセスを行ったでも、そのメモリライトアクセスの処理が記憶装置1で終了する前に新たなメモリライトアクセスを行うことができるため、メモリアクセスの待ち時間が削減され、システムの使用効率を向上させることができる。
〔第2実施形態〕
図2は、本発明の第2実施形態による記憶装置の要部構成を示すブロック図である。図2に示す通り、本実施形態の記憶装置2は、図1に示す記憶装置1に対してアドレス一致検出回路21(一致検出部)と選択回路22(選択部)とを追加した構成である。前述した第1実施形態による記憶装置1は、先のメモリライトアクセスに基づく書き込み動作と、新たなメモリアクセスに基づく読み出し動作とを並行して行っているため、データの不整合が生じないように、先のメモリライトアクセスで指定されるアドレスと、新たなメモリアクセスで指定されるアドレスとが異なっている必要がある。
仮に、これらのアドレスが同じである場合には、データの不整合性を防止するために、先のメモリライトアクセスが終了するまで(第1,第2サイクルが全て終了するまで)、CPU10は記憶装置1に対して新たなメモリアクセスを行うことができず、メモリアクセスの待ち時間が生じてシステムの使用効率が低下してしまう。本実施形態の記憶装置2は、メモリライトアクセスで指定されるアドレスと、このメモリライトアクセスに続くメモリアクセスで指定されるアドレスとが同一であっても、データの不整合性を防止しつつ、メモリアクセスの待ち時間を削減してシステムの使用効率を向上させるものである。
アドレス一致検出回路21は、アドレス保持回路14から出力されるアドレスA2と、メモリコントローラ11から新たに出力されるアドレスA1とが一致するか否かを検出し、その検出結果を示す検出信号S1を選択回路22に出力する。尚、一致する場合には値が「1」である検出信号S1が出力され、不一致の場合には値が「0」である検出信号が出力される。
選択回路22は、エラー検出訂正回路15から出力される64ビットのデータD22と、冗長ビット生成回路17から出力される72ビットのデータD13のうちの8ビットの冗長ビットを除いた残りの64ビットのデータビットとを入力としており、アドレス一致検出回路21から出力される検出信号S1に応じてこれらのデータの一方を選択してメモリコントローラ11に出力する。具体的に、検出信号S1の値が「0」である場合にはデータD22を選択して出力し、検出信号S1の値が「1」である場合にはデータD13のデータビットを選択して出力する。
次に、上記構成における記憶装置2の動作について詳細に説明する。尚、メモリリードアクセスの動作は、上述した第1実施形態による記憶装置1の動作と同様であるため、ここでの説明は省略する。以下では、パーシャルライトに関するメモリライトアクセスに続いてメモリアクセス行われる場合であって、メモリライトアクセスで指定されるアドレスとメモリアクセスで指定されるアドレスとが同一であるときの動作について説明する。
CPU10から記憶装置1に対してバスBを介したメモリライトアクセスがなされると、このメモリライトアクセスは記憶装置1に設けられたメモリコントローラ11によって検出され、第1実施形態と同様に、第1サイクル及び第2サイクルが順に行われる。つまり、第1サイクルでは、メモリコントローラ11から出力されるアドレスA1で指定されるメモリ12の記憶領域に記憶されているデータが読み出されてエラー検出及び訂正後にリードデータ保持回路16に記憶されるとともに、上記のアドレスA1及びメモリコントローラ11からのデータD11がアドレス保持回路14及びライトデータ保持回路13にそれぞれ保持される。
次いで、第2サイクルが開始されると、アドレス保持回路14に保持されたアドレスA2と冗長ビット生成回路17で生成されたデータD13とがメモリ12のライトポートP2に入力されて、データD13の書き込みが行われる。尚、冗長ビット生成回路17から出力されるデータD13のうちの8ビットの冗長ビットを除いた残りの64ビットのデータビットは選択回路22にも入力される。
これと並行してメモリコントローラ11からは、CPU10からの新たなメモリアクセスに基づく新たなアドレスA1が出力され、そのアドレスA1で指定されるメモリ12の記憶領域に記憶されているデータの読み出しが行われる。メモリ12から読み出されたデータは、エラー検出訂正回路15でエラーの検出及び訂正が行わた後にデータD22として出力され、選択回路22に入力される。
また、アドレス保持回路14から出力されるアドレスA2と、新たにメモリコントローラ11から出力されたアドレスA1とが一致検出回路21に入力され、これらのアドレスA,1,A2が一致するか否かが検出される。ここでは、メモリライトアクセスで指定されるアドレスと新たなメモリアクセスで指定されるアドレスとが同一である場合を想定しているため、アドレス一致検出回路21からは値が「1」である検出信号S1が出力される。
すると、選択回路22に入力される2つのデータのうち、冗長ビット生成回路17から出力されるデータD13(8ビットの冗長ビットを除いた64ビットのデータビット)が選択されてメモリコントローラ11及びバスBを順に介してCPU10に入力される。ここで、選択回路22で選択されたデータD13は、先のメモリライトアクセスで指定されたアドレスで特定されるメモリ12の記憶領域に書き込まれるべきデータである。換言すると、冗長ビット生成回路17で生成されたデータD13がメモリ12に書き込まれていたならば、新たなメモリアクセスによって読み出されるべきデータである。
このため、先のメモリライトアクセスで指定されるアドレスと、新たなメモリアクセスで指定されるアドレスとが同じであっても、メモリ12に書き込まれるべきデータが選択されてCPU10に出力されるため、同一のアドレスに対するメモリライトアクセスとメモリアクセスとが連続しても、データの不整合が生ずることはない。尚、メモリライトアクセスで指定されるアドレスと新たなメモリアクセスで指定されるアドレスとが異なる場合には、アドレス一致検出回路21から値が「0」である検出信号S1が出力され、メモリ12から読み出されたデータ)データD22)が選択されることになる。
以上の通り、本実施形態では、先のメモリライトアクセスで指定されるアドレスと、新たなメモリアクセスで指定されるアドレスとが一致するか否かをアドレス一致検出回路21で検出し、アドレスが一致する場合には、冗長ビット生成回路17で生成されたデータD13(8ビットの冗長ビットを除いた64ビットのデータビット)を選択部22で選択してCPU10に出力するようにしている。このため、メモリライトアクセスで指定されるアドレスと、このメモリライトアクセスに続くメモリアクセスで指定されるアドレスとが同一であっても、データの不整合性を防止しつつ、メモリアクセスの待ち時間を削減してシステムの使用効率を向上させることができる。
以上、本発明の実施形態による記憶装置について説明したが、本発明は上述した実施形態に制限されることなく、本発明の範囲内で自由に変更が可能である。例えば、上記実施形態では、ECCのための冗長ビットが生成されて、パーシャルライトが行われる記憶装置を例に挙げて説明した。しかしながら、本発明は、リード・モディファイ・ライトが行われることによって、CPUのメモリアクセスに待ちが生ずる記憶装置に適用することができる。尚、上記実施形態では、記憶装置1,2の内部で取り扱われるデータのデータ幅とバスBのデータ幅が異なる場合を例に挙げたが、同じ場合であっても本発明を適用することができる。
また、本発明の記憶装置は、データの記憶が必要となる様々な電子機器に搭載することが可能である。特に、前述した実施形態の通り、ECC機能を備える記憶装置は、連続動作が必要となって高い信頼性が要求される電子機器に搭載するのが良い。例えば、プラントに設置されて連続稼働される流量計や圧力計等のフィールド機器、或いはサーバ等である。また、パーシャルライトが頻繁に行われる電子機器に設ければ、システムの使用効率を飛躍的に向上させることができる。
1,2 記憶装置
12 メモリ
13 ライトデータ保持回路
14 アドレス保持回路
15 エラー検出訂正回路
16 リードデータ保持回路
17 冗長ビット生成回路
21 アドレス一致検出回路
22 選択回路
P1 リードポート
P2 ライトポート

Claims (6)

  1. 外部から入力されるアドレス及びデータに基づいて、記憶しているデータの更新が可能な記憶装置において、
    データの読み出しを行う第1ポートとデータの書き込みを行う第2ポートとを有するメモリと、
    外部から入力されるアドレスに基づいて前記メモリから前記第1ポートを介して読み出されたデータを保持する第1データ保持部と、
    外部から入力される前記アドレスを、前記第2ポートを介したデータの書き込み用のアドレスとして保持するアドレス保持部と、
    外部から入力されるデータを保持する第2データ保持部と、
    前記第1,第2データ保持部に保持されたデータに基づいて、前記第2ポートを介して前記メモリに書き込むデータを生成するデータ生成部と
    を備えることを特徴とする記憶装置。
  2. 前記アドレス保持部に保持されているアドレスと新たに外部から入力されるアドレスとが一致するか否かを検出する一致検出部と、
    前記一致検出部の検出結果に応じて、前記メモリから前記第1ポートを介して読み出されたデータと前記データ生成部で生成されたデータとの何れか一方を外部に出力すべきデータとして選択する選択部と
    を備えることを特徴とする請求項1記載の記憶装置。
  3. 外部から入力される前記データは、前記メモリに記憶されるデータよりもビット数が少ないデータであり、
    前記データ生成部は、前記第1データ保持部に保持されたデータの一部を前記第2データ保持部に保持されたデータに更新することによって、前記第2ポートを介して前記メモリに書き込むデータを生成する
    ことを特徴とする請求項1又は請求項2記載の記憶装置。
  4. 前記メモリは、エラー検出訂正を行うための冗長ビットが付加されたデータを記憶するものであり、
    前記データ生成部は、前記メモリに書き込むデータとともに当該データについての冗長ビットを生成し、当該冗長ビットを前記メモリに書き込むデータに付加する
    ことを特徴とする請求項1から請求項3の何れか一項に記載の記憶装置。
  5. 前記メモリから前記第1ポートを介して読み出されたデータに付加された冗長ビットを用いて、当該データのエラー検出訂正を行うエラー検出訂正部を備えることを特徴とする請求項4記載の記憶装置。
  6. 請求項1から請求項5の何れか一項に記載の記憶装置を備えることを特徴とする電子機器。
JP2009199838A 2009-08-31 2009-08-31 記憶装置及び電子機器 Pending JP2011054221A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009199838A JP2011054221A (ja) 2009-08-31 2009-08-31 記憶装置及び電子機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009199838A JP2011054221A (ja) 2009-08-31 2009-08-31 記憶装置及び電子機器

Publications (1)

Publication Number Publication Date
JP2011054221A true JP2011054221A (ja) 2011-03-17

Family

ID=43943062

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009199838A Pending JP2011054221A (ja) 2009-08-31 2009-08-31 記憶装置及び電子機器

Country Status (1)

Country Link
JP (1) JP2011054221A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569305B2 (en) 2013-12-20 2017-02-14 Socionext Inc. Memory device and control method of memory device
WO2021075076A1 (ja) * 2019-10-15 2021-04-22 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、及び情報処理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569305B2 (en) 2013-12-20 2017-02-14 Socionext Inc. Memory device and control method of memory device
WO2021075076A1 (ja) * 2019-10-15 2021-04-22 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、及び情報処理方法
JPWO2021075076A1 (ja) * 2019-10-15 2021-04-22
US11886290B2 (en) 2019-10-15 2024-01-30 Sony Interactive Entertainment Inc. Information processing apparatus and information processing method for error correction and read modify write processing

Similar Documents

Publication Publication Date Title
US9652321B2 (en) Recovery algorithm in non-volatile memory
US8589763B2 (en) Cache memory system
JP5010271B2 (ja) エラー訂正コード生成方法、およびメモリ制御装置
JP2006190425A (ja) 半導体記憶装置
JP2007133986A (ja) 半導体記憶装置
JP2006107710A (ja) 停電によるプログラムエラーの有無を検出することができる集積回路メモリ装置及び方法
JP2009289170A (ja) データ処理装置、メモリコントローラ及びそのアクセス制御方法
US8977944B2 (en) DRAM address protection
JP2005242797A (ja) エラー訂正回路
JP4339914B2 (ja) エラー訂正コード生成方法及びメモリ管理装置
JP4793741B2 (ja) 誤り訂正回路、誤り訂正方法
JP2011257966A (ja) キャッシュ装置及び情報処理装置
JP2011100269A (ja) キャッシュシステム
JP6090489B1 (ja) エラー検知装置、記憶装置およびエラー訂正方法
JP2011054221A (ja) 記憶装置及び電子機器
JP2004246754A (ja) 半導体記憶装置およびその制御装置
JP5446931B2 (ja) 誤り検出訂正装置及びメモリ装置
JP2006323434A (ja) データ処理装置及びそのメモリ訂正方法
JP5213061B2 (ja) ミラーリング制御装置、ミラーリング制御回路、ミラーリング制御方法およびそのプログラム
JP5843804B2 (ja) 演算装置およびエラー処理方法
JP6054753B2 (ja) 半導体装置及びデータアクセス方法
JP2007257628A (ja) 記憶された情報データの読み取りのための誤り訂正と誤り検出の方法およびそのための記憶制御ユニット
JP5217570B2 (ja) メモリ装置及びメモリ制御方法
US20240053904A1 (en) Efficient security metadata encoding in error correcting code (ecc) memory without dedicated ecc bits
JP2010140140A (ja) キャッシュメモリ制御回路、キャッシュメモリ装置、及びキャッシュメモリ制御方法