(57)【要約】【課題】リードモディファイライトの動作を高速に行うことを目的とする。【解決手段】ＤＲＡＭ１に対してリードモディファイライトの制御を行うメモリ制御装置であって、ＤＲＡＭ１にデータを記憶するときに、このデータのうちリードモディファイライトの対象となるデータと同一のデータの一部または全部を記憶するデータ記憶部１０と、データ記憶部１０に記憶されたデータを読み出して変更を行い、ＤＲＡＭ１に書き込みを行うデータ処理部９と、を備えている。予めデータ記憶部１０にリードモディファイライトの対象となるデータを書き込むことで、リードモディファイライト処理を行うときには、データ記憶部１０からのデータを変更処理することが可能になる。これにより、ＤＲＡＭ１からのデータ読み出しがなくなり、リードモディファイライトの処理が高速になる。【選択図】  図１
2010061498.tif 000002
【特許請求の範囲】
【請求項１】
メモリに対してリードモディファイライトの制御を行うメモリ制御装置であって、
前記メモリにデータを記憶するときに、このデータのうち前記リードモディファイライトの対象となるデータと同一のデータの一部または全部を記憶するデータ記憶部と、
前記データ記憶部に記憶されたデータを読み出して変更を行い、前記メモリに書き込みを行うデータ処理部と、
を備えたことを特徴とするメモリ制御装置。
【請求項２】
前記データ記憶部は、前記リードモディファイライトの対象となる全部のデータを記憶可能な容量を有していることを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
前記データ処理部が前記データ記憶部から読み出したデータを変更して前記メモリに書き込んでいる間に、前記リードモディファイライトを行う対象となるデータのうち前記データ記憶部が記憶していないデータが前記メモリから前記データ記憶部に書き込まれることを特徴とする請求項１記載のメモリ制御装置。
【請求項４】
前記メモリに対してリード要求信号を出力する制御信号出力部を備え、
前記データ記憶部は、前記制御信号出力部が前記メモリに対して前記リード要求信号を出力してから前記データ記憶部にデータが入力されるまでの間のレイテンシを吸収できるデータを記憶していることを特徴とする請求項３記載のメモリ制御装置。
【請求項５】
請求項１乃至４の何れか１項に記載のメモリ制御装置を備えていることを特徴とする半導体試験装置。
【請求項６】
メモリに対してリードモディファイライトの制御を行うメモリ制御方法であって、
前記メモリにデータを記憶するときに、このデータのうち変更の対象となるデータと同一のデータの一部または全部をデータ記憶部に記憶するデータ記憶ステップと、
前記データ記憶部に記憶されているデータを読み出して変更を行い、前記メモリに書き込みを行うリードモディファイライトステップと、
を有することを特徴とするメモリ制御方法。
【請求項７】
前記リードモディファイライトステップにおいて、前記メモリに変更後のデータの書き込みを行っている間に、前記データ記憶部に記憶されていないデータが前記メモリから前記データ記憶部に書き込まれることを特徴とする請求項６記載のメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリに記録されているデータのリードモディファイライトの制御を行うメモリ制御装置、このメモリ制御装置を適用した半導体試験装置およびリードモディファイライトの制御を行うメモリ制御方法に関するものである。
【背景技術】
【０００２】
ＤＲＡＭに記憶されたデータの一部を読み出して（リード）、所定の変更（モディファイ）を行い、再び元のアドレスに書き込み（ライト）を行なうリードモディファイライトが従来から知られている。リードモディファイライトの制御はＤＲＡＭに接続されるＤＲＡＭコントローラにより行われるが、ＤＲＡＭに対してアクセスを行うときには所定のレイテンシが発生する。このレイテンシは、ＤＲＡＭが持つ固有の遅延であり、メモリアクセスを行うときには必ず発生するものである。リードモディファイライトを行う際にもレイテンシが発生し、このレイテンシによりリードモディファイライトの処理が低速になる。
【０００３】
図５を用いて、リードモディファイライトにおけるレイテンシについて説明する。従来のリードモディファイライトを行う機構は、ＤＲＡＭ１０１とＤＲＡＭコントローラ１０２と信号変換部１０３とＦＩＦＯメモリ１０４とを備えて概略構成される。ＤＲＡＭ１０１はメモリであり、例えばDDR-SDRAM（Double-Data-Rate Synchronous Dynamic Random Access Memory）等の高速動作を行う大容量のメモリである。ＤＲＡＭコントローラ１０２はＤＲＡＭ１０１のリードモディファイライトの制御を行うメモリ制御部である。信号変換部１０３は、高速なクロックで動作するＤＲＡＭ１０１とそれよりも低速なクロックで動作するＤＲＡＭコントローラ１０２との間でクロックの変換を行う。ＦＩＦＯメモリ１０４はＤＲＡＭ１０１に記憶するデータを一時的に蓄積するためのメモリである。
【０００４】
ＤＲＡＭコントローラ１０２は制御信号出力部１０５とアドレス出力部１０６とＦＩＦＯメモリ制御部１０７とＲＭＷ制御部１０８とを備えて概略構成している。制御信号出力部１０５はＤＲＡＭ１０１のアクセス制御を行うために、リード要求信号（ＤＲＡＭ１０１に対してデータの読み込みを要求する信号）やライト要求信号（ＤＲＡＭ１０１に対してデータの書き込みを要求する信号）等を含む制御信号（図５ではＣＳとして示している）をＤＲＡＭ１０１に対して出力する。アドレス出力部１０６はＤＲＡＭ１０１のリードまたはライトを行うアドレス（図５ではＡＤＤとして示している）を生成して出力する。ＦＩＦＯメモリ制御部１０７は、ＦＩＦＯメモリ１０４からのデータ（図５ではＤＡＴＡとして示している）を読み込む制御を行う。ＲＭＷ制御部１０８はリードモディファイライトの制御を行うものであり、データの変更処理を行うデータ処理部１０９を備えている。データ処理部１０９にはＤＲＡＭ１０１からデータが読み込まれて、このデータの変更を行って、ＤＲＡＭ１０１に書き込みを行うことによりリードモディファイライトが行われる。
【０００５】
以上の構成におけるリードモディファイライトのタイミングについて図６を用いて説明する。図６において、ＲＤ（ＤＲＡＭ）はＤＲＡＭ１０１から読み出されるリードデータ、ＲＤ（ＣＳ）はＤＲＡＭ１０１から信号変換部１０３に入力したリードデータ、ＷＤ（ＣＳ）はデータ処理部１０９から信号変換部１０３に出力したライトデータ、ＷＤ（ＤＲＡＭ）はＤＲＡＭ１０１に書き込まれるライトデータを示す。最初に、ＤＲＡＭコントローラ１０２の制御信号出力部１０５がリード要求信号（図６では「Ｒ」として示している）を発生させ、アドレス出力部１０６はアドレス「Ａ０」を発生させて、リード要求信号「Ｒ」およびアドレス「Ａ０」を信号変換部１０３に入力する。そして、信号変換部１０３において各信号が高速なクロックに変換され、ＤＲＡＭ１０１に入力される。ＤＲＡＭ１０１においてアドレス「Ａ０」から連続するアドレス「Ａ０〜Ａ３」に対応するリードデータ「Ｄ０〜Ｄ３」が読み出されるが、このときには所定のリードレイテンシ（図６ではＲＬとして示している）が発生している。そして、読み出されたリードデータ「Ｄ０〜Ｄ３」は信号変換部１０３に入力され、信号変換部１０３は高速なクロックから低速なクロックに変換を行った後に、ＤＲＡＭコントローラ２にリードデータ「Ｄ０〜Ｄ３」を出力する。なお、図５において、ＤＲＡＭからのリードデータ「Ｄ０〜Ｄ３」と信号変換部からのリードデータ「Ｄ０〜Ｄ３」とは同一のデータであるが、両者はクロックが異なっていることを示している。
【０００６】
データ処理部１０９ではリードデータ「Ｄ０〜Ｄ３」に対して、所定の演算（例えば、ＡＮＤ演算やＯＲ演算等）を施す。そして、演算後のデータをライトデータ「Ｄ０〜Ｄ３」として、制御信号出力部１０５から出力されるライト要求信号（図６では「Ｗ」として示している）およびアドレス出力部１０６から出力されるアドレス「Ａ０」とともに、信号変換部１０３に出力される。信号変換部１０３は低速なクロックから高速なクロックに変換して、ライトデータ「Ｄ０〜Ｄ３」、ライト要求信号「Ｗ」およびアドレス「Ａ０」をＤＲＡＭ１０１に入力する。ＤＲＡＭ１０１は、ライト要求信号「Ｗ」およびアドレス「Ａ０」に基づいてライトデータの書き込みを行う。以降、順次、リードモディファイライトの処理が繰り返して行われる。
【０００７】
なお、図６においては、４ワード分のデータを１単位としてリードモディファイライト処理を行うものを示しており、また信号変換部１０３からのリードデータの読み出しおよびライトデータの書き込み、そしてデータ処理部１０９における変更処理は２つのデータを並行して処理しているものを示している。
【０００８】
以上のリードモディファイライトを行うときに高速化を図る技術としては、他に特許文献１等に開示されている。
【特許文献１】特開平６−３３２７８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ＤＲＡＭコントローラ１０２がリードモディファイライトの制御を行うときには、ＤＲＡＭ１０１からリードデータを読み込んだ後に、所定の演算を行ってデータの変更を行うものである。ＤＲＡＭ１０１にはリードレイテンシＲＬが発生することは前述したとおりであり、このリードレイテンシＲＬがリードモディファイライトの処理速度を低速させる。つまり、ＤＲＡＭ１０１からのデータの読み出しが完了しなければ変更処理を行うことができず、リードレイテンシＲＬの時間分についてはＤＲＡＭコントローラ１０２を待機させなければならない。特に、リードモディファイライトはある程度のデータ量を処理するために、繰り返してＤＲＡＭ１０１に対してアクセスが行われる。このため、リードレイテンシＲＬによる待機時間が積算することにより、リードモディファイライトの処理時間が大幅に低速化する。
【００１０】
また、データ処理部１０９における所定の演算としてのＡＮＤ演算やＯＲ演算等は２つのオペランドの演算であり、一方のオペランドはＤＲＡＭ１０１から読み出したものを用い、他方のオペランドはＦＩＦＯメモリ１０４から読み出したものを用いるものが一般的である。ＦＩＦＯメモリ１０４からの読み出しは、蓄積したデータを先頭から読み出すだけであるため、読み出し時間にそれほど多くの時間を要しない。しかし、ＤＲＡＭ１０１からデータを読み出すときにはリードレイテンシＲＬが生じるため、ＦＩＦＯメモリ１０４からのデータの読み出しタイミングもリードレイテンシＲＬの時間分を調整したタイミングとしなければならない。このため、ＦＩＦＯメモリ１０４に大量のデータが短時間に蓄積されるような場合には、リードレイテンシＲＬの時間調整のために、ＦＩＦＯメモリ１０４からのデータの取り出しのタイミングが間に合わず、ＦＩＦＯメモリ１０４に蓄積されるべきデータがオーバーフローするおそれがある。これにより、必要なデータが失われ、正常な処理を行うことができなくなる。
【００１１】
さらに、リードモディファイライトでは、ＤＲＡＭ１０１のリードとライトとを交互に繰り返し行うが、ＤＲＡＭ１０１に対するリードとライトとは異なる動作になる。ＤＲＡＭコントローラ１０２からはリードを行うときにはリード要求信号が出力され、ライトを行うときにはライト要求信号が出力される。ＤＲＡＭ１０１に異なる制御信号が交互に入力されたときには、制御信号の切り替え時に切替時間（図６の切替時間ＣＴ）を要する。図６のような場合、リードとライトとは交互に行われるため、この切替時間ＣＴが積算されていくことにより、リードモディファイライトが低速化する一因となる。
【００１２】
そこで、本発明は、リードモディファイライトの動作を高速に行うことを目的とする。
【課題を解決するための手段】
【００１３】
以上の課題を解決するため、本発明の請求項１のメモリ制御装置は、メモリに対してリードモディファイライトの制御を行うメモリ制御装置であって、前記メモリにデータを記憶するときに、このデータのうち前記リードモディファイライトの対象となるデータと同一のデータの一部または全部を記憶するデータ記憶部と、前記データ記憶部に記憶されたデータを読み出して変更を行い、前記メモリに書き込みを行うデータ処理部と、を備えたことを特徴とする。
【００１４】
このメモリ制御装置によれば、メモリに記憶されたデータではなくデータ記憶部に記憶されたデータを読み出して変更を行ってメモリに書き込んでいるため、メモリアクセスを抑制することができるようになる。これにより、リードレイテンシの影響を抑制でき、リードモディファイライトを高速に行うことができるようになる。
【００１５】
本発明の請求項２のメモリ制御装置は、請求項１記載のメモリ制御装置において、前記データ記憶部は、前記リードモディファイライトの対象となる全部のデータを記憶可能な容量を有していることを特徴とする。
【００１６】
このメモリ制御装置によれば、データ記憶部にはリードモディファイライトを行う対象となるデータが全て記憶されているため、メモリに対してリード要求を出力することなく処理を行うことができる。これにより、リードレイテンシが発生することがなくなる。
【００１７】
本発明の請求項３のメモリ制御装置は、請求項１記載のメモリ制御装置において、前記データ処理部が前記データ記憶部から読み出したデータを変更して前記メモリに書き込んでいる間に、前記リードモディファイライトを行う対象となるデータのうち前記データ記憶部が記憶していないデータが前記メモリから前記データ記憶部に書き込まれることを特徴とする。
【００１８】
このメモリ制御装置によれば、データ記憶部に記憶されていないデータについてはメモリからデータ記憶部に補充しながらリードモディファイライトの動作を行うことができるようになる。これにより、データ記憶部にリードモディファイライトの対象となる一部のデータしか記憶されていない場合でも、記憶していないデータが補充されていくことから、メモリにアクセスする必要がなくなる。これにより、リードレイテンシは発生しなくなり、リードモディファイライトの高速化を図ることができる。
【００１９】
本発明の請求項４のメモリ制御装置は、請求項３記載のメモリ制御装置において、前記メモリに対してリード要求信号を出力する制御信号出力部を備え、前記データ記憶部は、前記制御信号出力部が前記メモリに対してリード要求を出力してから前記データ記憶部にデータが入力されるまでの間のレイテンシを吸収できるデータ量を有していることを特徴とする。
【００２０】
このメモリ制御装置によれば、メモリリード時のレイテンシを吸収できる容量をデータ記憶部が有しているため、レイテンシの間は最初にデータ記憶部に記憶されたデータに基づいてリードモディファイライトを行い、レイテンシ後には順次メモリから入力されるデータに基づいてリードモディファイライトを行うことができるようになるため、無駄な待機時間をなくすことができるようになる。
【００２１】
本発明の請求項５の半導体試験装置は、請求項１乃至４の何れか１項に記載のメモリ制御装置を備えていることを特徴とする。
【００２２】
半導体試験装置においては、一部のデータの内容を変更するリードモディファイライトが行われるため、前述してきたメモリ制御装置を半導体試験装置に適用できる。
【００２３】
本発明の請求項６のメモリ制御方法は、メモリに対してリードモディファイライトの制御を行うメモリ制御方法であって、前記メモリにデータを記憶するときに、このデータのうち変更の対象となるデータと同一のデータの一部または全部をデータ記憶部に記憶するデータ記憶ステップと、前記データ記憶部に記憶されているデータを読み出して変更を行い、前記メモリに書き込みを行うリードモディファイライトステップと、を有することを特徴とするメモリ制御方法。
【００２４】
本発明の請求項７のメモリ制御方法は、請求項６記載のメモリ制御方法において、前記リードモディファイライトステップにおいて、前記メモリに変更後のデータの書き込みを行っている間に、前記データ記憶部に記憶されていないデータが前記メモリから前記データ記憶部に書き込まれることを特徴とする。
【発明の効果】
【００２５】
本発明は、メモリにデータを記憶するときにリードモディファイライトの対象となるデータのうち一部または全部のデータをメモリ制御装置内に配置したデータ記憶部に記憶している。そして、データ記憶部に記憶されているデータを読み出して、変更を行ってメモリに書き込みを行っているため、メモリからのデータの読み出しを抑制している。これにより、リードレイテンシによる影響を最小限に抑制し、またはなくすことができることから、大幅にリードモディファイライトの処理速度を高速化させることができるようになる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施形態について説明する。本実施形態では、半導体試験装置に適用したメモリ制御装置を説明する。例えば、ＬＳＩやＩＣ等の試験を行う半導体試験装置においては、画像データやＡＤ変換器の出力コードを記憶するためのデータキャプチャメモリを備えており、このデータキャプチャメモリからデータを読み出して試験を行うようにしている。画像データやＡＤ変換器の出力コードは複数回のデータが取得され、各データを平均化する処理が行われる。このときに、データキャプチャメモリに記憶された画像データや出力コードを読み出して加算を行い、再びデータキャプチャメモリの元のアドレスに書き込むという作業を繰り返し行う。そして、最終的に加算回数で除算することにより、平均値のデータがデータキャプチャメモリに記憶されるようになる。
【００２７】
近年の半導体試験装置は大量なデータを高速に処理しなければならず、リードモディファイライトの動作高速化の要請が高い。このため、以下のようなリードモディファイライトの制御を行う。ただし、半導体試験装置以外であっても、リードモディファイライトの制御を行うものであれば任意の装置に適用可能である。
【００２８】
図１において、本発明のリードモディファイライトを行う機構は、ＤＲＡＭ１とＤＲＡＭコントローラ２と信号変換部３とＦＩＦＯメモリ４とにより概略構成されている。ＤＲＡＭ１は、DDR-SDRAM（Double-Data-Rate Synchronous Dynamic Random Access Memory）等の高速動作が可能な大容量のメモリである。ＤＲＡＭコントローラ２はＤＲＡＭ１のリードモディファイライトの制御を行うメモリ制御部である。信号変換部３は高速なクロックで動作するＤＲＡＭ１とそれよりも低いクロックで動作するＤＲＡＭコントローラ２との間でクロック変換を行う変換部である。なお、図１では、メモリとしてＤＲＡＭ１を例示しているが、例えばＳＲＡＭ等の任意のメモリを適用するものであってもよい。
【００２９】
ＦＩＦＯメモリ４はＤＲＡＭ１に記憶するデータ（図１ではＤＡＴＡとしている）を一時的に蓄積するメモリであり、ここでは半導体試験装置におけるテストデータ（例えば、画像データやＡＤ変換機の出力コード等）が蓄積されていくものとする。テストデータは高速且つ大量にＦＩＦＯメモリ４に蓄積されていき、蓄積されたデータをＤＲＡＭコントローラ２が先頭から順番に取り出して順次ＤＲＡＭ１に出力していく。
【００３０】
ＤＲＡＭコントローラ２は、制御信号出力部５とアドレス出力部６とＦＩＦＯメモリ制御部７とＲＭＷ制御部８とを備えて概略構成している。制御信号出力部５はＤＲＡＭ１からデータを読み込むためのリード要求信号やＤＲＡＭ１にデータを書き込むためのライト要求信号等を含む制御信号（図１ではＣＳとしている）を出力する。アドレス出力部６はリード（ＤＲＡＭ１からのデータの読み出し）またはライト（ＤＲＡＭ１に対してのデータの書き込み）を行うアドレス（図１ではＡＤＤとしている）を生成してＤＲＡＭ１に出力を行う。ＦＩＦＯメモリ制御部７はＦＩＦＯメモリ４に蓄積されたデータおよび後述するデータ記憶部１０に記憶されているデータの読み出しの制御を行う。
【００３１】
ＲＭＷ制御部８はリードモディファイライトの制御を行う制御部であり、データ処理部９とデータ記憶部１０とデータ選択部１１とを備えている。データ処理部９はリードモディファイライトを行うためにデータの変更処理を行う。データ記憶部１０はリードモディファイライトに使用されるデータを一時的に記憶するための記憶部であり、例えばＤＲＡＭやＳＲＡＭ等のメモリを適用することができる。データ選択部１１はデータ記憶部１０に記憶させるデータを選択するために設けている。データ処理部９はリードモディファイライトを行うために、読み出し（リード）、変更（モディファイ）、書き込み（ライト）を行うが、このうちリードについてはＤＲＡＭ１からだけではなくデータ記憶部１０からも読み出すことが可能になっている。また、データ処理部９から出力されたデータは途中で分岐して、ＤＲＡＭ１とデータ選択部１１とにそれぞれ入力される。
【００３２】
以上の構成における動作について説明する。リードモディファイライトを行うときには、予めＤＲＡＭ１にデータが記憶されていなければならない。このために、ＦＩＦＯメモリ４からデータを取り出してＤＲＡＭ１に記憶する処理をデータ記憶処理とし、データ記憶処理（データ記憶ステップ）を予め行う。データ処理部９はリードモディファイライトを行うときにはデータの変更処理を行うが、データ記憶処理においては変更処理その他の処理を行わず、入力したデータをそのまま出力する。
【００３３】
ＤＲＡＭコントローラ２からは、データ処理部９を通過したデータと制御信号出力部５が出力するライト要求信号とアドレス出力部６が出力するアドレスとがＤＲＡＭ１に出力される。これらのライト要求信号とアドレスとデータとは、信号変換部３において低速なクロックから高速なクロックに変換されてＤＲＡＭ１に出力される。そして、ＤＲＡＭ１は入力したアドレスに入力したデータを書き込む。ＤＲＡＭコントローラ２のＦＩＦＯメモリ制御部７は、ＦＩＦＯメモリ４から順次データを取り出してＤＲＡＭ１に書き込みを行っていき、全てのデータについて書き込みが終了したときに、データ記憶処理を完了する。
【００３４】
本発明では、データ記憶処理を行う際に、データ処理部９からＤＲＡＭ１に出力するデータを途中で分岐させて、データ選択部１１に対しても入力するようにしている。データ選択部１１はリードモディファイライトの対象となるデータを選択的にデータ記憶部１０に書き込みを行う。従って、リードモディファイライトの対象となるデータはＤＲＡＭ１に記憶されるとともに、データ記憶部１０にも記憶される。データ選択部１１がリードモディファイライトの対象となるデータを選択するために、例えばリードモディファイライトの対象となるデータと同じバンクのアドレスのデータをＤＲＡＭ１に書き込むときにデータを選択するような制御を行うことができる。同じバンクのアドレスのデータに対象を絞り込むことでデータ記憶部１０に記憶させるデータ量を限定的にすることができるようになる。理想的にはリードモディファイライトの対象となるデータのみがデータ記憶部１０に記憶されることが望ましいが、リードモディファイライトの対象を完全に絞り込めない場合には、対象外のデータが多少記憶されるものであってもよい。
【００３５】
ＤＲＡＭコントローラ２はＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）等により構成するものが一般的であり、ＡＳＩＣやＦＰＧＡにはそれほど大容量の記憶手段を配置することができないため、データ記憶部１０の記憶容量はそれほど大きくはない。このため、データ選択部１１を設けて、データ記憶部１０にはリードモディファイライトの対象となるデータを記憶するようにしている。ただし、データ記憶部１０に大きな容量の記憶部を用いることができる場合には、データ選択部１１を設ける必要はなく、データ選択部１１から分岐したデータをそのままデータ記憶部１０に入力させるようにしてもよい。また、データ選択部１１以外の方法でリードモディファイライトの対象となるデータを絞り込むようにしてもよい。
【００３６】
以上により、データ記憶処理は完了する。次に、ＤＲＡＭ１のリードモディファイライトの処理（リードモディファイステップ）を行う。図２は、リードモディファイライト処理のタイミングチャートを示している。図２において、ＲＤ（ＤＲＡＭ）はＤＲＡＭ１から読み出されるリードデータを示し、ＲＤ（ＭＥＭ）はデータ記憶部１０から読み出されるリードデータを示し、ＷＤ（ＳＣ）はデータ処理部９から信号変換部３に出力されるライトデータを示し、ＷＤ（ＤＲＡＭ）はＤＲＡＭ１に書き込まれるライトデータを示す。
【００３７】
本発明におけるリードモディファイライト処理では、アドレス「Ａ０〜Ａ１０２３」に対応するデータ「Ｄ０〜Ｄ１０２３」がリードモディファイライトの対象となるデータであるものとする（なお、アドレス「Ａ０〜Ａ１０２３」はＤＲＡＭ１の同一バンク内のシーケンシャルなアドレスであるものとする）。また、データ記憶処理において、データ記憶部１０にはアドレス「Ａ０〜Ａ５１１」の５１２ワードのデータ「Ｄ０〜Ｄ５１１」が記憶されており、この５１２ワード分についてはデータ記憶部１０から読み出して、リードモディファイライトを行うようにしている。また、アドレス「Ａ５１２〜Ａ１０２３」に対応するデータ「Ｄ５１２〜Ｄ１０２３」については通常のリードモディファイライトと同じくＤＲＡＭ１から読み込むようにしている。また、データ記憶部１０およびＤＲＡＭ１からは４ワード分のデータを読み込むようにしており、４ワードごとにリードモディファイライト処理を行い、全体としては繰り返しリードモディファイライト処理が行われるようにしている。勿論、データ記憶部１０に記憶可能なデータ量は５１２ワード以上または以下であってもよく、また読み込むデータ量は４ワード分ではなく３ワード以下または５ワード以上であってもよい。
【００３８】
最初に、ＤＲＡＭ１のアドレス「Ａ０〜Ａ３」に対応するデータ「Ｄ０〜Ｄ３」のリードモディファイライトを行う。データ「Ｄ０〜Ｄ３」はリードモディファイライトを行う対象となるデータであるため、データ選択部１１はデータ記憶部１０に対して当該データを記憶させている。よって、データ記憶部１０に記憶されているデータ「Ｄ０〜Ｄ３」の読み出しを行う。データ処理部９ではＡＮＤ演算やＯＲ演算等の２つのオペランドの演算を行っている。このため、１つのオペランドはデータ記憶部１０から読み出しを行い、もう１つのオペランドはＦＩＦＯメモリ４から読み出すようにしている。この制御は、ＦＩＦＯメモリ制御部７により行われ、ＦＩＦＯメモリ４からの読み出しタイミングに連動して、ＦＩＦＯメモリ制御部７はデータ記憶部１０からデータ処理部９にデータを読み出す制御を行う。データ処理部９からの読み出しとＦＩＦＯメモリ４からの読み出しとのタイミングが異なる場合には、パイプライン調整等によりタイミング調整を行う。
【００３９】
図２の例では、データ処理部９は２つのデータを同時に処理できるようになっており、またデータ記憶部１０からデータ処理部９に２つのデータを同時に読み込むことができるようになっている。このため、データ「Ｄ０」および「Ｄ１」が同時に読み込まれて変更処理が行われ、次のタイミングでデータ「Ｄ２」および「Ｄ３」が読み込まれて変更処理が行われるようになっている。データ処理部９において変更処理が行われたデータ「Ｄ０〜Ｄ３」はライトデータ「Ｄ０〜Ｄ３」としてＤＲＡＭ１に出力され、同時にアドレス「Ａ０」およびライト要求信号がＤＲＡＭ１に出力される。
【００４０】
信号変換部３において、ライト要求信号とアドレス「Ａ０」とライトデータ「Ｄ０〜Ｄ３」とが低速なクロックから高速なクロックに変換されて、ＤＲＡＭ１に入力される。ＤＲＡＭ１ではアドレス「Ａ０〜Ａ３」までにライトデータ「Ｄ０〜Ｄ３」をそれぞれ書き込む。これにより、アドレス「Ａ０〜Ａ３」のデータ「Ｄ０〜Ｄ３」についてはリードモディファイライトが完了する。なお、図２において、信号変換部３によりクロックの変換がされているため、ＷＤ（ＳＣ）とＷＤ（ＤＲＡＭ）とでは各データのクロックが異なっていることを示している。
【００４１】
次に、アドレス「Ａ４〜Ａ７」に対応するデータ「Ｄ４〜Ｄ７」のリードモディファイライトを行うが、このリードモディファイライト処理は、前記のアドレス「Ａ０〜Ａ３」のデータ「Ｄ０〜Ｄ３」のリードモディファイライト処理と一部オーバーラップしている。つまり、アドレス「Ａ４〜Ａ７」のデータ「Ｄ４〜Ｄ７」はＤＲＡＭ１から読み出すのではなく、データ記憶部１０から読み出している。データ記憶部１０はＤＲＡＭ１とはアクセスに関連性のない記憶手段であるため、データ記憶部１０に対するアクセスとＤＲＡＭ１に対するアクセスとは並行して行うことができる。
【００４２】
このため、図２にも示しているように、ライトデータ「Ｄ０〜Ｄ３」をＤＲＡＭ１に書き込んでいるときに並行して、リードデータ「Ｄ４〜Ｄ７」をデータ記憶部１０からデータ処理部９に読み出しているため、この点においても処理の高速化を図れる。
【００４３】
データ処理部９に読み出されたリードデータ「Ｄ４〜Ｄ７」は所定の演算が行われてライトデータ「Ｄ４〜Ｄ７」としてＤＲＡＭ１に対して、アドレス「Ａ４〜Ａ７」およびライト要求信号とともに出力される。以降、アドレス「Ａ５１１」に対応するデータ「Ｄ５１１」までのリードモディファイライトを順次行っていく。アドレス「Ａ５１２〜Ａ１０２３」に対応するデータ「Ｄ５１２〜Ｄ１０２３」はデータ記憶部１０には記憶されていない。このため、アドレス「Ａ５１２」のデータ「Ｄ５１２」以降についてはＤＲＡＭ１からデータを読み出して、データの変更処理を行い、ＤＲＡＭ１に変更後のデータを書き込む通常のリードモディファイライト処理が行われる。このときには、ＤＲＡＭ１からデータを読み込むため、図２に示すように、リードレイテンシＲＬが発生する。
【００４４】
以上より、データ記憶処理でリードモディファイライトの対象となるデータの一部をデータ記憶部１０に書き込みを行い、リードモディファイライト処理ではデータ記憶部１０から読み出したデータに対して変更処理を行ってＤＲＡＭ１に書き込んでいる。このため、少なくとも５１２ワード分のデータについてはリードレイテンシが生じなくなるため、リードモディファイライトの処理速度の大幅な高速化を達成することができる。また、データ記憶部１０にリードモディファイライトの対象となるデータの全部を記憶可能な場合（前記の例ではデータ記憶部１０が１０２４ワードのデータを記憶可能な場合）には、リードレイテンシは全く生じなくなり、無駄な待機時間を完全になくすることができるようになる。
【００４５】
また、データ記憶部１０からのデータに基づいてリードモディファイライトを行うときには、ＤＲＡＭ１からのデータの読み出しは行われないため、制御信号出力部５からはライト要求信号が連続してＤＲＡＭ１に出力される。ＤＲＡＭ１ではリードとライトとの動作を切り替えるときに切替時間が生じることは前述したが、本実施形態では、ＤＲＡＭ１はライトの動作を連続して行うために切替時間を要しなくなり、このため処理の高速化を図ることができるようになる。また、ＤＲＡＭ１に対するアクセスとデータ記憶部１０に対するアクセスとを並行して行うことができるため、処理の一部をオーバーラップさせることができ、処理の高速化をさらに図ることができるようになる。
【００４６】
次に、変形例について説明する。図３に示しているように、本変形例においてはＤＲＡＭ１からデータ記憶部１０にデータを書き込む経路を設けており、ＤＲＡＭ１からデータ記憶部１０にデータを書き込む経路を設けていない点で、前述した実施形態と異なる。また、本変形例のデータ記憶部１０は比較的小さな記憶容量を有している（ここでは、４０ワードとする）。データ記憶部１０の記憶容量は最低限ＤＲＡＭ１のリードレイテンシＲＬを吸収できる程度に設けていればよい。この点については後述する。データ記憶部１０の記憶容量を小さくすることで、ＤＲＡＭコントローラ２を適用するＡＳＩＣやＦＰＧＡの選択の幅を広げることができる。また、本変形例におけるリードモディファイライトの対象となるデータは、前述した実施形態と同様にアドレス「Ａ０〜１０２３」に対応するデータ「Ｄ０〜Ｄ１０２３」の１０２４ワードのデータであるものとし、この１０２４ワードのデータはＤＲＡＭ１の同一バンク内のシーケンシャルなデータであるものとする。
【００４７】
次に、図４を用いて本変形例の動作について説明する。データ記憶処理については前述した実施形態と同様である。データ選択部１１は３２ワード分のデータ（アドレス「Ａ０〜Ａ３１」に対応するデータ「Ｄ０〜Ｄ３１」）を選択して、データ記憶部１０に記憶するものとする。なお、図４において、ＲＤ（ＤＲＡＭ）はＤＲＡＭ１から読み出されるリードデータ、ＲＤ（ＳＣ）はＤＲＡＭ１から信号変換部３に出力されるリードデータ、ＷＤ（ＭＥＭ）は信号変換部３からデータ記憶部１０に出力されて書き込まれるデータを示す。
【００４８】
次に、リードモディファイライト処理が行われる。最初のタイミングでは、アドレス「Ａ０〜Ａ３」に対応するデータ「Ｄ０〜Ｄ３」がデータ記憶部１０からデータ処理部９に読み出されて変更処理を行うことによりライトデータ「Ｄ０〜Ｄ３」として生成し、ライトデータ「Ｄ０〜Ｄ３」とアドレス「Ａ０」とライト要求信号とがＤＲＡＭ１に出力される。ＤＲＡＭ１ではアドレス「Ａ０」から連続するアドレスにライトデータ「Ｄ０〜Ｄ３」を書き込む。
【００４９】
ライトデータ「Ｄ０〜Ｄ３」の書き込み処理が終了したタイミングで、制御信号出力部５はＤＲＡＭ１に対してリード要求信号を出力するとともに、アドレス出力部６はアドレス「Ａ３２」を出力する。データ記憶部１０に記憶されているデータは「Ｄ０〜Ｄ３１」であり、３２個分のアドレスをオフセットした値、つまりデータ記憶部１０に記憶されているアドレス分をオフセットした値を出力してＤＲＡＭ１に対して要求する。ＤＲＡＭ１はアドレス「Ａ３２」から連続する４ワード分のアドレスに対応するリードデータ「Ｄ３２〜Ｄ３５」を読み出して、ＤＲＡＭコントローラ２に入力する。このときには、データ処理部９にリードデータ「Ｄ３２〜Ｄ３５」を読み込まず、ＤＲＡＭ１からデータ記憶部１０に書き込みを行う。ただし、ＤＲＡＭ１からのリードデータであるため、リードデータ「Ｄ３２〜Ｄ３５」がデータ記憶部１０に記憶されるまでの間にはリードレイテンシＲＬが発生する。
【００５０】
次に、データ処理部９はデータ記憶部１０からアドレス「Ａ４〜Ａ７」に対応するデータ「Ｄ４〜Ｄ７」を読み込んで変更を行い、ライトデータ「Ｄ４〜Ｄ７」を生成する。そして、ライト要求信号およびアドレス「Ａ４」とともにライトデータ「Ｄ４〜Ｄ７」をＤＲＡＭ１に出力する。そして、ＤＲＡＭ１はアドレス「Ａ４」から連続するアドレスにライトデータ「Ｄ４〜Ｄ７」を書き込む。
【００５１】
次に、制御信号出力部５はリード要求信号を出力するとともに、アドレス出力部６はアドレス「Ａ３６」をＤＲＡＭ１に対して出力する。このアドレス「Ａ３６」は前回のリード要求で読み出されたリードデータ「Ｄ３２〜Ｄ３５」の次のアドレスから開始するアドレスになる。ＤＲＡＭ１からはアドレス「Ａ３６」から連続する４ワード分のリードデータ「Ｄ３６〜Ｄ３９」が読み出されるが、リードレイテンシＲＬ後にデータ記憶部１０に記憶される。
【００５２】
そして、データ処理部９はデータ記憶部１０から読み出したアドレス「Ａ８」に対応するデータ「Ｄ８〜Ｄ１１」に対して変更を行い、ライトデータ「Ｄ８〜Ｄ１１」を生成する。このライトデータ「Ｄ８〜Ｄ１１」は、アドレスＡ８およびライト要求信号とともにＤＲＡＭ１に出力される。これにより、ＤＲＡＭ１のアドレス「Ａ８〜Ａ１１」にライトデータ「Ｄ８〜Ｄ１１」が書き込まれる。このタイミングで最初にＤＲＡＭコントローラ２から出力されたリード要求、つまりアドレス「Ａ３２〜Ａ３５」に対応するリードデータ「Ｄ３２〜Ｄ３５」がデータ記憶部１０に書き込まれる。
【００５３】
以下、ＤＲＡＭコントローラ２からＤＲＡＭ１に対して順次リード要求とライト要求とが交互に行われる。最初のリード要求に対応するリードデータ「Ｄ３２〜Ｄ３５」はリードレイテンシＲＬの分だけ遅延したタイミングでデータ記憶部１０に書き込まれる。しかし、リード要求とライト要求とを交互に行っているため、最初のリードデータ「Ｄ３２〜Ｄ３５」にはリードレイテンシＲＬが発生しているものの、これに続くリードデータ「Ｄ３６〜Ｄ３９」と直前のリードデータ「Ｄ３２〜Ｄ３５」との間にはリードレイテンシＲＬは発生していない。そして、リードデータ「Ｄ３６〜Ｄ３９」に続行するデータについても、直前のリードデータとの間にはリードレイテンシＲＬは発生していない。従って、ＤＲＡＭ１から最初に読み込むデータはリードレイテンシＲＬにより遅延するものの、続行するデータは逐次的にデータ記憶部１０に書き込まれることになる。
【００５４】
一方、データ記憶部１０には最初のデータ記憶処理において、アドレス「Ａ０〜Ａ３１」に対応するデータ「Ｄ０〜Ｄ３１」が記憶されているが、データ「Ｄ３１」を使用してリードモディファイライトが行われるときには、既にデータ記憶部１０にはデータ「Ｄ３２〜Ｄ３５」が書き込まれている。そして、次の４ワードのリードモディファイライト処理を行った後には、データ「Ｄ３６〜Ｄ３９」がデータ記憶部１０に書き込まれる。つまり、データ記憶部１０からデータを読み出してリードモディファイライト処理を行ったとしても、順次新たなデータがデータ記憶部１０に補充されるため、前述した実施形態のようにデータ記憶部１０に記憶されているデータを使い切ることがなくなる。
【００５５】
このために、データ記憶部１０はリードレイテンシＲＬ（リード要求信号を出力してからデータ記憶部１０にデータが書き込まれるまでの間の時間）を吸収できるような記憶容量を持たせるようにする。つまり、データ記憶部１０に記憶されている全てのデータがデータ処理部９に読み出される前に、ＤＲＡＭ１から読み出したデータがデータ記憶部１０に記憶されるような記憶容量をデータ記憶部１０に持たせるようにする。これによりリードレイテンシＲＬを吸収でき、リードレイテンシＲＬによる待機時間を完全になくすことができるようになる。従って、リードモディファイライトの大幅な高速化を達成することができ、しかもデータ記憶部１０の記憶容量を非常に小さいものにすることができる。このため、任意の種類のＡＳＩＣやＦＰＧＡに適用することができるようになり、選択の幅が広がる。
【００５６】
ただし、本変形例では、リード要求信号とライト要求信号とを交互にＤＲＡＭ１に対して発行しているため、ＤＲＡＭ１のリードとライトとの動作を切り替えるための切替時間（図６ではＣＴとして示している）を要する。この点、前述した実施形態ではデータ記憶部１０に記憶されたデータを読み込んでＤＲＡＭ１に連続して書き込んでいるため、ライトの動作が連続している。従って、切替時間ＣＴを要しないため、この点では本変形例よりは高速になるが、データ記憶部１０に大きな記憶容量を持たせられない場合には、データ記憶部１０の全てのデータを使用した後には、リードレイテンシＲＬが発生する。
【００５７】
つまり、ＡＳＩＣやＦＰＧＡ等をＤＲＡＭコントローラ２に適用することによりデータ記憶部１０に少ない記憶容量しか持たせられない場合には本変形例のリードモディファイライトが好適であり、データ記憶部１０に十分な記憶容量を持たせられるような場合には前述した実施形態が好適である。これは、実際にＤＲＡＭコントローラ２を適用するシステム全体の設計により適宜選択する。
【００５８】
なお、本変形例において、リード要求信号とライト要求信号とを交互に出力するようにしているが、例えばリード要求信号を１回出力し、ライト要求信号を２回連続して出力するようにして、これを交互に行なうようにしてもよい。この場合、データ記憶部１０からのデータ読み出し量はＤＲＡＭ１からのデータ補充量よりも多くなるが、データ記憶部１０にある程度の容量を持たせている場合には、このような制御を行うことにより、切替時間ＣＴによる遅延を抑制し、且つデータ記憶部１０の記憶容量もある程度に抑制できるため、リードモディファイライトの処理時間とデータ記憶部１０の記憶容量とをバランスよく解決することができる。
【図面の簡単な説明】
【００５９】
【図１】実施形態におけるリードモディファイライト処理を行う機構の概略構成を示すブロック図である。
【図２】実施形態におけるリードモディファイライトのタイミングチャートである。
【図３】変形例におけるリードモディファイライト処理を行う機構の概略構成を示すブロック図である。
【図４】変形例におけるリードモディファイライトのタイミングチャートである。
【図５】従来技術におけるリードモディファイライト処理を行う機構の概略構成を示すブロック図である。
【図６】従来技術におけるリードモディファイライトのタイミングチャートである。
【符号の説明】
【００６０】
１    ＤＲＡＭ            ２    ＤＲＡＭコントローラ
３    信号変換部            ４    ＦＩＦＯメモリ
５    制御信号出力部            ６    アドレス出力部
７    ＦＩＦＯメモリ制御部        ８    ＲＭＷ制御部
９    データ処理部            １０    データ記憶部
１０    データ記憶部            １１    データ選択部
【図１】
2010061498.tif 000003
【図２】
2010061498.tif 000004
【図３】
2010061498.tif 000005
【図４】
2010061498.tif 000006
【図５】
2010061498.tif 000007
【図６】
2010061498.tif 000008