(57)【要約】【課題】メモリアクセスの待ち時間を削減することによってシステムの使用効率を向上させることができる記憶装置、及び当該装置を備える電子機器を提供する。【解決手段】記憶装置１は、データの読み出しを行うリードポートＰ１とデータの書き込みを行うライトポートＰ２とを有するメモリ１２と、外部から入力されるアドレスに基づいてメモリ１２からリードポートＰ１を介して読み出されたデータを保持するリードデータ保持回路１６と、外部から入力されたアドレスをライトポートＰ２を介したデータの書き込み用のアドレスとして保持するアドレス保持回路１４と、外部から入力されるデータを保持するライトデータ保持回路１３と、リードデータ保持回路１６及びライトデータ保持回路１３に保持されたデータに基づいて、ライトポートＰ２を介してメモリ１２に書き込むデータを生成する冗長ビット生成回路１７とを備える。【選択図】図１
2011054221.tif 000002
【特許請求の範囲】
【請求項１】
外部から入力されるアドレス及びデータに基づいて、記憶しているデータの更新が可能な記憶装置において、
データの読み出しを行う第１ポートとデータの書き込みを行う第２ポートとを有するメモリと、
外部から入力されるアドレスに基づいて前記メモリから前記第１ポートを介して読み出されたデータを保持する第１データ保持部と、
外部から入力される前記アドレスを、前記第２ポートを介したデータの書き込み用のアドレスとして保持するアドレス保持部と、
外部から入力されるデータを保持する第２データ保持部と、
前記第１，第２データ保持部に保持されたデータに基づいて、前記第２ポートを介して前記メモリに書き込むデータを生成するデータ生成部と
を備えることを特徴とする記憶装置。
【請求項２】
前記アドレス保持部に保持されているアドレスと新たに外部から入力されるアドレスとが一致するか否かを検出する一致検出部と、
前記一致検出部の検出結果に応じて、前記メモリから前記第１ポートを介して読み出されたデータと前記データ生成部で生成されたデータとの何れか一方を外部に出力すべきデータとして選択する選択部と
を備えることを特徴とする請求項１記載の記憶装置。
【請求項３】
外部から入力される前記データは、前記メモリに記憶されるデータよりもビット数が少ないデータであり、
前記データ生成部は、前記第１データ保持部に保持されたデータの一部を前記第２データ保持部に保持されたデータに更新することによって、前記第２ポートを介して前記メモリに書き込むデータを生成する
ことを特徴とする請求項１又は請求項２記載の記憶装置。
【請求項４】
前記メモリは、エラー検出訂正を行うための冗長ビットが付加されたデータを記憶するものであり、
前記データ生成部は、前記メモリに書き込むデータとともに当該データについての冗長ビットを生成し、当該冗長ビットを前記メモリに書き込むデータに付加する
ことを特徴とする請求項１から請求項３の何れか一項に記載の記憶装置。
【請求項５】
前記メモリから前記第１ポートを介して読み出されたデータに付加された冗長ビットを用いて、当該データのエラー検出訂正を行うエラー検出訂正部を備えることを特徴とする請求項４記載の記憶装置。
【請求項６】
請求項１から請求項５の何れか一項に記載の記憶装置を備えることを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを記憶する記憶装置、及び当該装置を備える電子機器に関する。
【背景技術】
【０００２】
一般的に、記憶装置は、ＤＲＡＭ（Dynamic Random Access Memory）等のメモリと、メモリに対するデータの書き込み及び読み出しを制御するメモリコントローラとを備えており、データを一時的又は長期的に記憶するために様々な電子機器で用いられる。この記憶装置の動作は、（１）リード動作、（２）ライト動作、及び（３）更新動作（リード・モディファイ・ライト動作）に大別される。
【０００３】
上記の（１）リード動作は、メモリに対してアドレスを指定し、そのアドレスで特定される記憶領域に記憶されているデータを読み出す動作である。上記の（２）ライト動作は、メモリに対してアドレスを指定し、そのアドレスで特定される記憶領域にデータを書き込む動作である。上記の（３）リード・モディファイ・ライト動作は、メモリに対してアドレスを指定し、そのアドレスで特定される記憶領域に記憶されているデータを読み出して更新するとともに、更新したデータを同記憶領域に書き戻す動作である。
【０００４】
記憶装置は、基本的に、メモリに対するデータの読み出し及び書き込みを、メモリのデータ幅分のビット数を有するデータを単位として行う。このため、メモリに記憶されたデータの一部を書き換える場合（パーシャルライトを行う場合）には、上記（３）リード・モディファイ・ライト動作が行われる。また、ＥＣＣ（Error Checking and Correction：エラー検出訂正）機能を備える記憶装置は、本来のデータに対してＥＣＣのための冗長ビットを付加したデータをメモリに記憶しているため、パーシャルライトを行う場合には新たな冗長ビットを作成する必要があることから、必ず上記の（３）リード・モディファイ・ライト動作が行われる。
【０００５】
以下の特許文献１には、ＣＰＵ（中央処理装置）がメモリに対してパーシャルライトを行う場合におけるメモリへのアクセス頻度を削減し、ＣＰＵのメモリアクセス時間を削減する技術が開示されている。具体的には、ＣＰＵ（中央処理装置）から出力されたデータを記憶する少なくとも１つのライトバッファを設け、チェックビット生成の対象となるデータ幅よりも小さいデータ幅をもつデータをマルチプレクサにより組み合わせてライトバッファに記憶された複数のデータを１つのデータにしてチェックビット生成を行うことにより、メモリへのアクセス頻度削減等を実現している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−２３２７８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、上述した（３）リード・モディファイ・ライト動作では、メモリからデータを読み出すサイクルと、読み出したデータを更新してメモリに書き戻すサイクルとの２つのサイクルが必要になる。このため、ＣＰＵが記憶装置に対してパーシャルライトを指示した場合には、記憶装置における（３）リード・モディファイ・ライト動作が終了するまで次のメモリアクセスが待たされることになり、記憶装置を備えるシステム全体の効率が低下するという問題がある。
【０００８】
また、上述した特許文献１に開示された技術を用いれば、その技術を用いない場合に比べて、メモリへのアクセス頻度を削減することができると考えられる。しかしながら、特許文献１に開示された技術においても、リード・モディファイ・ライト動作が行われる場合には、その動作が終了するまで次のメモリアクセスが待たされてしまい、メモリアクセスの効率は向上しないという問題がある。
【０００９】
本発明は上記事情に鑑みてなされたものであり、メモリアクセスの待ち時間を削減することによってシステムの使用効率を向上させることができる記憶装置、及び当該装置を備える電子機器を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の記憶装置は、外部から入力されるアドレス及びデータに基づいて、記憶しているデータの更新が可能な記憶装置（１、２）において、データの読み出しを行う第１ポート（Ｐ１）とデータの書き込みを行う第２ポート（Ｐ２）とを有するメモリ（１２）と、外部から入力されるアドレスに基づいて前記メモリから前記第１ポートを介して読み出されたデータを保持する第１データ保持部（１６）と、外部から入力される前記アドレスを、前記第２ポートを介したデータの書き込み用のアドレスとして保持するアドレス保持部（１４）と、外部から入力されるデータを保持する第２データ保持部（１３）と、前記第１，第２データ保持部に保持されたデータに基づいて、前記第２ポートを介して前記メモリに書き込むデータを生成するデータ生成部（１７）とを備えることを特徴としている。
この発明によると、外部から入力されたアドレスに基づいてメモリから第１ポートを介して読み出されたデータが第１データ保持部に保持されるとともに、上記のアドレス及び外部から入力されたデータがアドレス保持部及び第２データ保持部にそれぞれ保持され、アドレス保持部に保持されたアドレスで特定されるメモリの記憶領域に書き込むべきデータが、第１，第２データ保持部に保持されたデータに基づいて生成される。生成されたデータが第２ポートを介してメモリ書き込まれている最中に、メモリの第１ポートを介して新たなデータが読み出される。
また、本発明の記憶装置は、前記アドレス保持部に保持されているアドレスと新たに外部から入力されるアドレスとが一致するか否かを検出する一致検出部（２１）と、前記一致検出部の検出結果に応じて、前記メモリから前記第１ポートを介して読み出されたデータと前記データ生成部で生成されたデータとの何れか一方を外部に出力すべきデータとして選択する選択部（２２）とを備えることを特徴としている。
また、本発明の記憶装置において、外部から入力される前記データは、前記メモリに記憶されるデータよりもビット数が少ないデータであり、前記データ生成部は、前記第１データ保持部に保持されたデータの一部を前記第２データ保持部に保持されたデータに更新することによって、前記第２ポートを介して前記メモリに書き込むデータを生成することを特徴としている。
また、本発明の記憶装置において、前記メモリは、エラー検出訂正を行うための冗長ビットが付加されたデータを記憶するものであり、前記データ生成部は、前記メモリに書き込むデータとともに当該データについての冗長ビットを生成し、当該冗長ビットを前記メモリに書き込むデータに付加することを特徴としている。
また、本発明の記憶装置は、前記メモリから前記第１ポートを介して読み出されたデータに付加された冗長ビットを用いて、当該データのエラー検出訂正を行うエラー検出訂正部（１５）を備えることを特徴としている。
本発明の電子機器は、上記の何れかに記載の記憶装置を備えることを特徴としている。
【発明の効果】
【００１１】
本発明によれば、外部から入力されたアドレスに基づいてメモリから第１ポートを介して読み出されたデータを第１データ保持部に保持するとともに、上記のアドレス及び外部から入力されたデータをアドレス保持部及び第２データ保持部にそれぞれ保持し、アドレス保持部に保持したアドレスで特定されるメモリの記憶領域に書き込むべきデータを、第１，第２データ保持部に保持されたデータに基づいて生成している。これにより、生成したデータを第２ポートを介してメモリ書き込んでいる最中に、メモリの第１ポートを介して新たなデータの読み出しを行うことができるため、メモリアクセスの待ち時間を削減することができ、システムの使用効率を向上させることができるという効果がある。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１実施形態による記憶装置の要部構成を示すブロック図である。
【図２】本発明の第２実施形態による記憶装置の要部構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施形態による記憶装置及び電子機器について詳細に説明する。
【００１４】
〔第１実施形態〕
図１は、本発明の第１実施形態による記憶装置の要部構成を示すブロック図である。図１に示す通り、本実施形態の記憶装置１は、メモリコントローラ１１、メモリ１２、ライトデータ保持回路１３（第２データ保持部）、アドレス保持回路１４（アドレス保持部）、エラー検出訂正回路１５（エラー検出訂正部）、リードデータ保持回路１６（第１データ保持部）、及び冗長ビット生成回路１７（データ生成部）を備えている。
【００１５】
以上の構成の記憶装置１は、バスＢを介してＣＰＵ１０と相互に接続されており、ＣＰＵ１０の制御の下で、記憶しているデータの読み出し、記憶すべきデータの書き込み、及び記憶しているデータの更新（リード・モディファイ・ライト）が可能である。尚、本実施形態では、記憶装置１の内部で取り扱われるデータＤ１１，Ｄ１２，Ｄ２２，Ｄ２３のデータ幅（データビット数）が６４ビットであり、ＥＣＣのための冗長ビットが８ビットであり、アドレス幅が１６ビットであるとする。また、バスＢのデータ幅は、記憶装置１の内部で取り扱われるデータのデータ幅（６４ビット）よりも少ない３２ビットであるとする。
【００１６】
メモリコントローラ１１は、バスＢに接続されており、ＣＰＵ１０から出力されるデータ、アドレス、及び制御命令に基づいて、図１に示す記憶装置１の各部を制御することによって、メモリ１２に記憶されたデータの読み出し、及びメモリ１２に対するデータの書き込みの制御を行う。メモリ１２は、データの読み出しを行うリードポートＰ１（第１ポート）と、データの書き込みを行うライトポートＰ２（第２ポート）とを有するデュアルポートメモリである。このメモリ１２は、リードポートＰ１を介したデータの読み出しと、ライトポートＰ２を介したデータの書き込みとを独立して行うことができ、データの読み出しとデータの書き込みとを同時に行うことが可能である。
【００１７】
メモリ１２のリードポートＰ１にはメモリコントローラ１１から出力される１６ビットのアドレスＡ１が入力され、このアドレスＡ１で特定されるメモリ１２の記憶領域に記憶された７２ビットのデータ（６４ビットのデータビットに８ビットの冗長ビットを加えたデータ）がリードポートＰ１からデータＤ２１として読み出される。また、メモリ１２のライトポートＰ２には、アドレス保持回路１４から出力される１６ビットのアドレスＡ２が入力されるとともに、冗長ビット生成回路１７で生成された７２ビットのデータ（６４ビットのデータビットに８ビットの冗長ビットを加えたデータ）Ｄ１３が入力され、アドレスＡ２で特定されるメモリ１２の記憶領域にデータＤ１３が書き込まれる。
【００１８】
ライトデータ保持回路１３は、メモリコントローラ１１から出力される６４ビットのデータＤ１１を、一時的に保持するとともにデータＤ１２として冗長ビット生成回路１７に出力する。アドレス保持回路１４は、メモリコントローラ１１から出力される１６ビットのアドレスＡ１を、一時的に保持するとともにアドレスＡ２としてメモリ１２に出力する。尚、上記のライトデータ保持回路１３及びアドレス保持回路１４にデータ及びアドレスがそれぞれ保持されるのは、メモリコントローラ１１から新たなデータＤ１１及びアドレスＡ１がそれぞれ出力されるまでである。
【００１９】
エラー検出訂正回路１５は、メモリ１２のリードポートＰ１から読み出された７２ビットのデータＤ２１の一部をなす８ビットの冗長ビットを用いてエラーの検出及び訂正を行う。ここで、エラー訂正検出回路１５は、１ビットエラーを訂正し、２ビット以上のエラーを検出するＳＥＣ−ＤＥＤ（Single Error Correction and Double Error Detection）によってエラーの検出及び訂正を行うものとする。このＳＥＣ−ＤＥＤではハミングコードを用いて冗長ビットが生成されるのが主流であり、必要となる冗長ビットのビット数は、データビットの数に対して「２」を底とした対数（ｌｏｇ）をとって得られる値に値「２」を加えたビットとなる。本実施形態では、データビットが「６４」であるため、「８」ビットの冗長ビットが必要になる。
【００２０】
エラー検出訂正回路１５は、メモリ１２のリードポートＰ１から読み出された７２ビットのデータＤ２１の一部をなす６４ビットのデータビットにエラーが有るか否かを確認し、エラーの有無に応じて以下の（１）〜（３）に示す処理を行う。
（１）エラーが無い場合：データビットをそのままデータＤ２２として出力
（２）エラーが１つの場合：エラーを修正したデータビットをデータＤ２２として出力
（３）エラーが２以上の場合：データビットをそのままデータＤ２２として出力する
尚、エラーが検出された上記（２），（３）の場合には、エラーが発生したアドレスを保存し、割り込み等によってＣＰＵ１０に通知する処理が行われる。この処理は、本発明とは直接的に関係しないため詳細な説明を省略する。
【００２１】
リードデータ保持回路１６は、エラー検出訂正回路１５から出力された６４ビットのデータＤ２２を一時的に保持するとともにデータＤ２３として冗長ビット生成回路１７に出力する。冗長ビット生成回路１７は、ライトデータ保持回路１３から出力されるデータＤ１２とリードデータ保持回路１６から出力されるデータＤ２３とを用いてメモリ１２に記憶すべき６４ビットのデータを生成するとともに、このデータに付加する８ビットの冗長ビットを生成し、これらを合成した７２ビットのデータＤ１３を出力する。尚、冗長ビット生成回路１７で生成される冗長ビットは、上述したＳＥＣ−ＤＥＤでも散られる冗長ビットである。
【００２２】
次に、上記構成における記憶装置１の動作について詳細に説明する。尚、以下では、ＣＰＵ１０の制御によって記憶装置１からデータを読み出す動作であるメモリリードアクセス、ＣＰＵ１０の制御によって記憶装置１に対してデータを書き込む動作であるメモリライトアクセスについて順に説明する。尚、メモリライトアクセス時にはパーシャルライトが行われるものとする。
【００２３】
［メモリリードアクセス］
ＣＰＵ１０から記憶装置１に対してバスＢを介したメモリリードアクセスがなされると、このメモリリードアクセスは記憶装置１に設けられたメモリコントローラ１１によって検出される。すると、メモリコントローラ１１からメモリ１２に対してアドレスＡ１が出力されてメモリリードが通知される。尚、ここで出力されるアドレスＡ１は、上記のメモリリードアクセスでＣＰＵ１０によって指示されたアドレスである。メモリコントローラ１１から出力されたアドレスＡ１はメモリ１２のリードポートＰ１に入力され、このアドレスＡ１で特定されるメモリ１２の記憶領域に記憶された７２ビットのデータがリードポートＰ１からデータＤ２１として読み出される。
【００２４】
メモリ１２のリードポートＰ１から読み出されたデータＤ２１は、エラー検出訂正回路１５に入力されてエラーの検出及び訂正が行われる。エラーが検出されなかった場合、又は２ビット以上のエラーが検出された場合には、データＤ２１をなす６４ビットのデータビットがそのままデータＤ２２として出力される。これに対し、１ビットのエラーが検出された場合には、エラーが修正された６４ビットのデータビットがデータＤ２２として出力される。
【００２５】
エラー検出訂正回路１５から出力されたデータＤ２２は、メモリコントローラ１１及びバスＢを順に介してＣＰＵ１０に入力される。これにより、先に行ったメモリリードアクセスに基づいて記憶装置１から読み出されたデータがＣＰＵ１０で得られたことになる。尚、エラー検出訂正回路１５でエラーが検出された場合には、エラーが発生したアドレスが保存され、別途割り込み等によってＣＰＵ１０に通知される。以上によって、一連のメモリリードアクセスが終了する。
【００２６】
［メモリライトアクセス］
ＣＰＵ１０から記憶装置１に対してバスＢを介したメモリライトアクセスがなされると、このメモリライトアクセスは記憶装置１に設けられたメモリコントローラ１１によって検出される。ここではＣＰＵ１０からなされたメモリライトアクセスがパーシャルライトであるため、メモリコントローラ１１の制御の下で、まずメモリ１２からデータを読み出す第１サイクルが行われ、次いで読み出したデータを更新してメモリに書き戻す第２サイクルが行われる。
【００２７】
第１サイクルが開始されると、メモリコントローラ１１からアドレスＡ１及びデータＤ１１が出力される。尚、ここで出力されるアドレスＡ１はパーシャルライトによって更新されるべきデータが記憶されているメモリ１２の記憶領域を指示するアドレスであり、データＤ１１は更新すべきデータ及びパーシャル情報（６４ビットのデータのうちのどのビットを更新するのかを示す情報）からなるデータである。これらは何れも上記のメモリライトアクセスでＣＰＵ１０によって指示される。
【００２８】
メモリコントローラ１１から出力されたアドレスＡ１は、メモリ１２のリードポートＰ１に入力されるとともに、アドレス保持回路１４に保持される。また、メモリコントローラ１１から出力されたデータＤ１１は、ライトデータ保持回路１３に保持される。アドレスＡ１がメモリ１２のリードポートＰ１に入力されると、このアドレスＡ１で特定されるメモリ１２の記憶領域に記憶された７２ビットのデータがリードポートＰ１からデータＤ２１として読み出される。
【００２９】
メモリ１２のリードポートＰ１から読み出されたデータＤ２１は、エラー検出訂正回路１５に入力されてエラーの検出及び訂正が行われる。エラーが検出されなかった場合、又は２ビット以上のエラーが検出された場合には、データＤ２１をなす６４ビットのデータビットがそのままデータＤ２２として出力される。これに対し、１ビットのエラーが検出された場合には、エラーが修正された６４ビットのデータビットがデータＤ２２として出力される。エラー検出訂正回路１５から出力されたデータＤ２２は、リードデータ保持回路１６に保持される。以上の処理が行われることによって第１サイクルが終了する。
【００３０】
第２サイクルが開始されると、冗長ビット生成回路１７によって、ライトデータ保持回路１３から出力されるデータＤ１２とリードデータ保持回路１６から出力されるデータＤ２３とからメモリ１２に記憶すべき６４ビットのデータが生成されるとともに、このデータに付加する８ビットの冗長ビットが生成される。そして、これらを合成した７２ビットのデータＤ１３が冗長ビット生成回路１７から出力される。このデータＤ１３は、メモリ１２のライトポートＰ２に入力され、アドレス保持回路１４から出力されてメモリ１２のライトポートＰ２に入力されるアドレスＡ２で特定される記憶領域に記憶される。
【００３１】
ここで、アドレス保持回路１４からメモリ１２のライトポートＰ２に入力されているアドレスＡ２は、第１サイクルでデータの読み出しに用いられたアドレスである。また、冗長ビット生成回路１７から出力されるデータＤ１３は、第１サイクルでメモリ１２から読み出したデータを、ライトデータ保持回路１３に保持されたデータで更新したデータである。このため、第２サイクルが行われることによって、メモリコントローラ１１から先に出力されたアドレスＡ１で特定されるメモリ１２のデータは、一部の値が変更された新たなデータに更新される。以上で第２サイクルが終了し、パーシャルライトについての一連の動作が終了する。
【００３２】
いま、ＣＰＵ１０が、上記のメモリライトアクセスに続いて、新たなメモリアクセスを行った場合を考える。ＣＰＵ１０からメモリコントローラ１１に対し、バスＢを介した新たなメモリアクセスがなされると、このメモリアクセスは記憶装置１に設けられたメモリコントローラ１１によって検出される。尚、本実施形態では、ＥＣＣのための冗長ビットを生成する必要があることから、新たなメモリアクセスがライトアクセスであっても、必ずメモリ１２からデータＤ２１を読み出すサイクル（前述した第１サイクルと同様のサイクル）が行われる。
【００３３】
ここで、新たなメモリアクセスに先立ってなされたメモリライトアクセスの第１サイクルが実行されている間は、メモリ１２のリードポートＰ１からのデータＤ２１の読み出しが行われているため、新たなメモリアクセスに基づくデータの読み出しは行われない。これに対し、新たなメモリアクセスに先立ってなされたメモリライトアクセスの第１サイクルが終了すると、前述した第２サイクルと新たなメモリアクセスに基づくメモリ１２からのデータの読み出しが並行して行われる。
【００３４】
つまり、前述した通り、アドレス保持回路１４に保持されたアドレスＡ２と冗長ビット生成回路１７で生成されたデータＤ１３とがメモリ１２のライトポートＰ２に入力されて、データＤ１３の書き込みが行われる。この書き込み動作と並行して、メモリコントローラ１１からメモリ１２に対し、新たなメモリアクセスの検出に基づくアドレスＡ１が出力されてメモリリードが通知される。すると、このアドレスＡ１はメモリ１２のリードポートＰ１に入力され、このアドレスＡ１で特定されるメモリ１２の記憶領域に記憶された７２ビットのデータがリードポートＰ１からデータＤ２１として読み出される。
【００３５】
メモリ１２から読み出されたデータＤ２１は、エラー検出訂正回路１５でエラーの検出及び訂正が行われた後にデータＤ２２として出力される。このデータＤ２２は、新たなメモリアクセスがメモリリードアクセスである場合にはメモリコントローラ１１及びバスＢを順に介してＣＰＵ１０に入力され、新たなメモリアクセスがメモリライトアクセスである場合にはリードデータ保持回路１６に保持される。
【００３６】
以上の通り、本実施形態では、先になされたメモリライトアクセスに基づく書き込み動作（第２サイクル）と、新たなメモリアクセスに基づく読み出し動作とが並行して行われる。これにより、ＣＰＵ１０は、リード・モディファイ・ライトが必要となるパーシャルライトを指示するメモリライトアクセスを行ったでも、そのメモリライトアクセスの処理が記憶装置１で終了する前に新たなメモリライトアクセスを行うことができるため、メモリアクセスの待ち時間が削減され、システムの使用効率を向上させることができる。
【００３７】
〔第２実施形態〕
図２は、本発明の第２実施形態による記憶装置の要部構成を示すブロック図である。図２に示す通り、本実施形態の記憶装置２は、図１に示す記憶装置１に対してアドレス一致検出回路２１（一致検出部）と選択回路２２（選択部）とを追加した構成である。前述した第１実施形態による記憶装置１は、先のメモリライトアクセスに基づく書き込み動作と、新たなメモリアクセスに基づく読み出し動作とを並行して行っているため、データの不整合が生じないように、先のメモリライトアクセスで指定されるアドレスと、新たなメモリアクセスで指定されるアドレスとが異なっている必要がある。
【００３８】
仮に、これらのアドレスが同じである場合には、データの不整合性を防止するために、先のメモリライトアクセスが終了するまで（第１，第２サイクルが全て終了するまで）、ＣＰＵ１０は記憶装置１に対して新たなメモリアクセスを行うことができず、メモリアクセスの待ち時間が生じてシステムの使用効率が低下してしまう。本実施形態の記憶装置２は、メモリライトアクセスで指定されるアドレスと、このメモリライトアクセスに続くメモリアクセスで指定されるアドレスとが同一であっても、データの不整合性を防止しつつ、メモリアクセスの待ち時間を削減してシステムの使用効率を向上させるものである。
【００３９】
アドレス一致検出回路２１は、アドレス保持回路１４から出力されるアドレスＡ２と、メモリコントローラ１１から新たに出力されるアドレスＡ１とが一致するか否かを検出し、その検出結果を示す検出信号Ｓ１を選択回路２２に出力する。尚、一致する場合には値が「１」である検出信号Ｓ１が出力され、不一致の場合には値が「０」である検出信号が出力される。
【００４０】
選択回路２２は、エラー検出訂正回路１５から出力される６４ビットのデータＤ２２と、冗長ビット生成回路１７から出力される７２ビットのデータＤ１３のうちの８ビットの冗長ビットを除いた残りの６４ビットのデータビットとを入力としており、アドレス一致検出回路２１から出力される検出信号Ｓ１に応じてこれらのデータの一方を選択してメモリコントローラ１１に出力する。具体的に、検出信号Ｓ１の値が「０」である場合にはデータＤ２２を選択して出力し、検出信号Ｓ１の値が「１」である場合にはデータＤ１３のデータビットを選択して出力する。
【００４１】
次に、上記構成における記憶装置２の動作について詳細に説明する。尚、メモリリードアクセスの動作は、上述した第１実施形態による記憶装置１の動作と同様であるため、ここでの説明は省略する。以下では、パーシャルライトに関するメモリライトアクセスに続いてメモリアクセス行われる場合であって、メモリライトアクセスで指定されるアドレスとメモリアクセスで指定されるアドレスとが同一であるときの動作について説明する。
【００４２】
ＣＰＵ１０から記憶装置１に対してバスＢを介したメモリライトアクセスがなされると、このメモリライトアクセスは記憶装置１に設けられたメモリコントローラ１１によって検出され、第１実施形態と同様に、第１サイクル及び第２サイクルが順に行われる。つまり、第１サイクルでは、メモリコントローラ１１から出力されるアドレスＡ１で指定されるメモリ１２の記憶領域に記憶されているデータが読み出されてエラー検出及び訂正後にリードデータ保持回路１６に記憶されるとともに、上記のアドレスＡ１及びメモリコントローラ１１からのデータＤ１１がアドレス保持回路１４及びライトデータ保持回路１３にそれぞれ保持される。
【００４３】
次いで、第２サイクルが開始されると、アドレス保持回路１４に保持されたアドレスＡ２と冗長ビット生成回路１７で生成されたデータＤ１３とがメモリ１２のライトポートＰ２に入力されて、データＤ１３の書き込みが行われる。尚、冗長ビット生成回路１７から出力されるデータＤ１３のうちの８ビットの冗長ビットを除いた残りの６４ビットのデータビットは選択回路２２にも入力される。
【００４４】
これと並行してメモリコントローラ１１からは、ＣＰＵ１０からの新たなメモリアクセスに基づく新たなアドレスＡ１が出力され、そのアドレスＡ１で指定されるメモリ１２の記憶領域に記憶されているデータの読み出しが行われる。メモリ１２から読み出されたデータは、エラー検出訂正回路１５でエラーの検出及び訂正が行わた後にデータＤ２２として出力され、選択回路２２に入力される。
【００４５】
また、アドレス保持回路１４から出力されるアドレスＡ２と、新たにメモリコントローラ１１から出力されたアドレスＡ１とが一致検出回路２１に入力され、これらのアドレスＡ，１，Ａ２が一致するか否かが検出される。ここでは、メモリライトアクセスで指定されるアドレスと新たなメモリアクセスで指定されるアドレスとが同一である場合を想定しているため、アドレス一致検出回路２１からは値が「１」である検出信号Ｓ１が出力される。
【００４６】
すると、選択回路２２に入力される２つのデータのうち、冗長ビット生成回路１７から出力されるデータＤ１３（８ビットの冗長ビットを除いた６４ビットのデータビット）が選択されてメモリコントローラ１１及びバスＢを順に介してＣＰＵ１０に入力される。ここで、選択回路２２で選択されたデータＤ１３は、先のメモリライトアクセスで指定されたアドレスで特定されるメモリ１２の記憶領域に書き込まれるべきデータである。換言すると、冗長ビット生成回路１７で生成されたデータＤ１３がメモリ１２に書き込まれていたならば、新たなメモリアクセスによって読み出されるべきデータである。
【００４７】
このため、先のメモリライトアクセスで指定されるアドレスと、新たなメモリアクセスで指定されるアドレスとが同じであっても、メモリ１２に書き込まれるべきデータが選択されてＣＰＵ１０に出力されるため、同一のアドレスに対するメモリライトアクセスとメモリアクセスとが連続しても、データの不整合が生ずることはない。尚、メモリライトアクセスで指定されるアドレスと新たなメモリアクセスで指定されるアドレスとが異なる場合には、アドレス一致検出回路２１から値が「０」である検出信号Ｓ１が出力され、メモリ１２から読み出されたデータ）データＤ２２）が選択されることになる。
【００４８】
以上の通り、本実施形態では、先のメモリライトアクセスで指定されるアドレスと、新たなメモリアクセスで指定されるアドレスとが一致するか否かをアドレス一致検出回路２１で検出し、アドレスが一致する場合には、冗長ビット生成回路１７で生成されたデータＤ１３（８ビットの冗長ビットを除いた６４ビットのデータビット）を選択部２２で選択してＣＰＵ１０に出力するようにしている。このため、メモリライトアクセスで指定されるアドレスと、このメモリライトアクセスに続くメモリアクセスで指定されるアドレスとが同一であっても、データの不整合性を防止しつつ、メモリアクセスの待ち時間を削減してシステムの使用効率を向上させることができる。
【００４９】
以上、本発明の実施形態による記憶装置について説明したが、本発明は上述した実施形態に制限されることなく、本発明の範囲内で自由に変更が可能である。例えば、上記実施形態では、ＥＣＣのための冗長ビットが生成されて、パーシャルライトが行われる記憶装置を例に挙げて説明した。しかしながら、本発明は、リード・モディファイ・ライトが行われることによって、ＣＰＵのメモリアクセスに待ちが生ずる記憶装置に適用することができる。尚、上記実施形態では、記憶装置１，２の内部で取り扱われるデータのデータ幅とバスＢのデータ幅が異なる場合を例に挙げたが、同じ場合であっても本発明を適用することができる。
【００５０】
また、本発明の記憶装置は、データの記憶が必要となる様々な電子機器に搭載することが可能である。特に、前述した実施形態の通り、ＥＣＣ機能を備える記憶装置は、連続動作が必要となって高い信頼性が要求される電子機器に搭載するのが良い。例えば、プラントに設置されて連続稼働される流量計や圧力計等のフィールド機器、或いはサーバ等である。また、パーシャルライトが頻繁に行われる電子機器に設ければ、システムの使用効率を飛躍的に向上させることができる。
【符号の説明】
【００５１】
１，２    記憶装置
１２      メモリ
１３      ライトデータ保持回路
１４      アドレス保持回路
１５      エラー検出訂正回路
１６      リードデータ保持回路
１７      冗長ビット生成回路
２１      アドレス一致検出回路
２２      選択回路
Ｐ１      リードポート
Ｐ２      ライトポート
【図１】
2011054221.tif 000003
【図２】
2011054221.tif 000004