説明

メモリ制御装置、半導体試験装置およびメモリ制御方法

【課題】リードモディファイライトの動作を高速に行うことを目的とする。
【解決手段】DRAM1に対してリードモディファイライトの制御を行うメモリ制御装置であって、DRAM1にデータを記憶するときに、このデータのうちリードモディファイライトの対象となるデータと同一のデータの一部または全部を記憶するデータ記憶部10と、データ記憶部10に記憶されたデータを読み出して変更を行い、DRAM1に書き込みを行うデータ処理部9と、を備えている。予めデータ記憶部10にリードモディファイライトの対象となるデータを書き込むことで、リードモディファイライト処理を行うときには、データ記憶部10からのデータを変更処理することが可能になる。これにより、DRAM1からのデータ読み出しがなくなり、リードモディファイライトの処理が高速になる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はメモリに記録されているデータのリードモディファイライトの制御を行うメモリ制御装置、このメモリ制御装置を適用した半導体試験装置およびリードモディファイライトの制御を行うメモリ制御方法に関するものである。
【背景技術】
【0002】
DRAMに記憶されたデータの一部を読み出して(リード)、所定の変更(モディファイ)を行い、再び元のアドレスに書き込み(ライト)を行なうリードモディファイライトが従来から知られている。リードモディファイライトの制御はDRAMに接続されるDRAMコントローラにより行われるが、DRAMに対してアクセスを行うときには所定のレイテンシが発生する。このレイテンシは、DRAMが持つ固有の遅延であり、メモリアクセスを行うときには必ず発生するものである。リードモディファイライトを行う際にもレイテンシが発生し、このレイテンシによりリードモディファイライトの処理が低速になる。
【0003】
図5を用いて、リードモディファイライトにおけるレイテンシについて説明する。従来のリードモディファイライトを行う機構は、DRAM101とDRAMコントローラ102と信号変換部103とFIFOメモリ104とを備えて概略構成される。DRAM101はメモリであり、例えばDDR-SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)等の高速動作を行う大容量のメモリである。DRAMコントローラ102はDRAM101のリードモディファイライトの制御を行うメモリ制御部である。信号変換部103は、高速なクロックで動作するDRAM101とそれよりも低速なクロックで動作するDRAMコントローラ102との間でクロックの変換を行う。FIFOメモリ104はDRAM101に記憶するデータを一時的に蓄積するためのメモリである。
【0004】
DRAMコントローラ102は制御信号出力部105とアドレス出力部106とFIFOメモリ制御部107とRMW制御部108とを備えて概略構成している。制御信号出力部105はDRAM101のアクセス制御を行うために、リード要求信号(DRAM101に対してデータの読み込みを要求する信号)やライト要求信号(DRAM101に対してデータの書き込みを要求する信号)等を含む制御信号(図5ではCSとして示している)をDRAM101に対して出力する。アドレス出力部106はDRAM101のリードまたはライトを行うアドレス(図5ではADDとして示している)を生成して出力する。FIFOメモリ制御部107は、FIFOメモリ104からのデータ(図5ではDATAとして示している)を読み込む制御を行う。RMW制御部108はリードモディファイライトの制御を行うものであり、データの変更処理を行うデータ処理部109を備えている。データ処理部109にはDRAM101からデータが読み込まれて、このデータの変更を行って、DRAM101に書き込みを行うことによりリードモディファイライトが行われる。
【0005】
以上の構成におけるリードモディファイライトのタイミングについて図6を用いて説明する。図6において、RD(DRAM)はDRAM101から読み出されるリードデータ、RD(CS)はDRAM101から信号変換部103に入力したリードデータ、WD(CS)はデータ処理部109から信号変換部103に出力したライトデータ、WD(DRAM)はDRAM101に書き込まれるライトデータを示す。最初に、DRAMコントローラ102の制御信号出力部105がリード要求信号(図6では「R」として示している)を発生させ、アドレス出力部106はアドレス「A0」を発生させて、リード要求信号「R」およびアドレス「A0」を信号変換部103に入力する。そして、信号変換部103において各信号が高速なクロックに変換され、DRAM101に入力される。DRAM101においてアドレス「A0」から連続するアドレス「A0〜A3」に対応するリードデータ「D0〜D3」が読み出されるが、このときには所定のリードレイテンシ(図6ではRLとして示している)が発生している。そして、読み出されたリードデータ「D0〜D3」は信号変換部103に入力され、信号変換部103は高速なクロックから低速なクロックに変換を行った後に、DRAMコントローラ2にリードデータ「D0〜D3」を出力する。なお、図5において、DRAMからのリードデータ「D0〜D3」と信号変換部からのリードデータ「D0〜D3」とは同一のデータであるが、両者はクロックが異なっていることを示している。
【0006】
データ処理部109ではリードデータ「D0〜D3」に対して、所定の演算(例えば、AND演算やOR演算等)を施す。そして、演算後のデータをライトデータ「D0〜D3」として、制御信号出力部105から出力されるライト要求信号(図6では「W」として示している)およびアドレス出力部106から出力されるアドレス「A0」とともに、信号変換部103に出力される。信号変換部103は低速なクロックから高速なクロックに変換して、ライトデータ「D0〜D3」、ライト要求信号「W」およびアドレス「A0」をDRAM101に入力する。DRAM101は、ライト要求信号「W」およびアドレス「A0」に基づいてライトデータの書き込みを行う。以降、順次、リードモディファイライトの処理が繰り返して行われる。
【0007】
なお、図6においては、4ワード分のデータを1単位としてリードモディファイライト処理を行うものを示しており、また信号変換部103からのリードデータの読み出しおよびライトデータの書き込み、そしてデータ処理部109における変更処理は2つのデータを並行して処理しているものを示している。
【0008】
以上のリードモディファイライトを行うときに高速化を図る技術としては、他に特許文献1等に開示されている。
【特許文献1】特開平6−332788号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
DRAMコントローラ102がリードモディファイライトの制御を行うときには、DRAM101からリードデータを読み込んだ後に、所定の演算を行ってデータの変更を行うものである。DRAM101にはリードレイテンシRLが発生することは前述したとおりであり、このリードレイテンシRLがリードモディファイライトの処理速度を低速させる。つまり、DRAM101からのデータの読み出しが完了しなければ変更処理を行うことができず、リードレイテンシRLの時間分についてはDRAMコントローラ102を待機させなければならない。特に、リードモディファイライトはある程度のデータ量を処理するために、繰り返してDRAM101に対してアクセスが行われる。このため、リードレイテンシRLによる待機時間が積算することにより、リードモディファイライトの処理時間が大幅に低速化する。
【0010】
また、データ処理部109における所定の演算としてのAND演算やOR演算等は2つのオペランドの演算であり、一方のオペランドはDRAM101から読み出したものを用い、他方のオペランドはFIFOメモリ104から読み出したものを用いるものが一般的である。FIFOメモリ104からの読み出しは、蓄積したデータを先頭から読み出すだけであるため、読み出し時間にそれほど多くの時間を要しない。しかし、DRAM101からデータを読み出すときにはリードレイテンシRLが生じるため、FIFOメモリ104からのデータの読み出しタイミングもリードレイテンシRLの時間分を調整したタイミングとしなければならない。このため、FIFOメモリ104に大量のデータが短時間に蓄積されるような場合には、リードレイテンシRLの時間調整のために、FIFOメモリ104からのデータの取り出しのタイミングが間に合わず、FIFOメモリ104に蓄積されるべきデータがオーバーフローするおそれがある。これにより、必要なデータが失われ、正常な処理を行うことができなくなる。
【0011】
さらに、リードモディファイライトでは、DRAM101のリードとライトとを交互に繰り返し行うが、DRAM101に対するリードとライトとは異なる動作になる。DRAMコントローラ102からはリードを行うときにはリード要求信号が出力され、ライトを行うときにはライト要求信号が出力される。DRAM101に異なる制御信号が交互に入力されたときには、制御信号の切り替え時に切替時間(図6の切替時間CT)を要する。図6のような場合、リードとライトとは交互に行われるため、この切替時間CTが積算されていくことにより、リードモディファイライトが低速化する一因となる。
【0012】
そこで、本発明は、リードモディファイライトの動作を高速に行うことを目的とする。
【課題を解決するための手段】
【0013】
以上の課題を解決するため、本発明の請求項1のメモリ制御装置は、メモリに対してリードモディファイライトの制御を行うメモリ制御装置であって、前記メモリにデータを記憶するときに、このデータのうち前記リードモディファイライトの対象となるデータと同一のデータの一部または全部を記憶するデータ記憶部と、前記データ記憶部に記憶されたデータを読み出して変更を行い、前記メモリに書き込みを行うデータ処理部と、を備えたことを特徴とする。
【0014】
このメモリ制御装置によれば、メモリに記憶されたデータではなくデータ記憶部に記憶されたデータを読み出して変更を行ってメモリに書き込んでいるため、メモリアクセスを抑制することができるようになる。これにより、リードレイテンシの影響を抑制でき、リードモディファイライトを高速に行うことができるようになる。
【0015】
本発明の請求項2のメモリ制御装置は、請求項1記載のメモリ制御装置において、前記データ記憶部は、前記リードモディファイライトの対象となる全部のデータを記憶可能な容量を有していることを特徴とする。
【0016】
このメモリ制御装置によれば、データ記憶部にはリードモディファイライトを行う対象となるデータが全て記憶されているため、メモリに対してリード要求を出力することなく処理を行うことができる。これにより、リードレイテンシが発生することがなくなる。
【0017】
本発明の請求項3のメモリ制御装置は、請求項1記載のメモリ制御装置において、前記データ処理部が前記データ記憶部から読み出したデータを変更して前記メモリに書き込んでいる間に、前記リードモディファイライトを行う対象となるデータのうち前記データ記憶部が記憶していないデータが前記メモリから前記データ記憶部に書き込まれることを特徴とする。
【0018】
このメモリ制御装置によれば、データ記憶部に記憶されていないデータについてはメモリからデータ記憶部に補充しながらリードモディファイライトの動作を行うことができるようになる。これにより、データ記憶部にリードモディファイライトの対象となる一部のデータしか記憶されていない場合でも、記憶していないデータが補充されていくことから、メモリにアクセスする必要がなくなる。これにより、リードレイテンシは発生しなくなり、リードモディファイライトの高速化を図ることができる。
【0019】
本発明の請求項4のメモリ制御装置は、請求項3記載のメモリ制御装置において、前記メモリに対してリード要求信号を出力する制御信号出力部を備え、前記データ記憶部は、前記制御信号出力部が前記メモリに対してリード要求を出力してから前記データ記憶部にデータが入力されるまでの間のレイテンシを吸収できるデータ量を有していることを特徴とする。
【0020】
このメモリ制御装置によれば、メモリリード時のレイテンシを吸収できる容量をデータ記憶部が有しているため、レイテンシの間は最初にデータ記憶部に記憶されたデータに基づいてリードモディファイライトを行い、レイテンシ後には順次メモリから入力されるデータに基づいてリードモディファイライトを行うことができるようになるため、無駄な待機時間をなくすことができるようになる。
【0021】
本発明の請求項5の半導体試験装置は、請求項1乃至4の何れか1項に記載のメモリ制御装置を備えていることを特徴とする。
【0022】
半導体試験装置においては、一部のデータの内容を変更するリードモディファイライトが行われるため、前述してきたメモリ制御装置を半導体試験装置に適用できる。
【0023】
本発明の請求項6のメモリ制御方法は、メモリに対してリードモディファイライトの制御を行うメモリ制御方法であって、前記メモリにデータを記憶するときに、このデータのうち変更の対象となるデータと同一のデータの一部または全部をデータ記憶部に記憶するデータ記憶ステップと、前記データ記憶部に記憶されているデータを読み出して変更を行い、前記メモリに書き込みを行うリードモディファイライトステップと、を有することを特徴とするメモリ制御方法。
【0024】
本発明の請求項7のメモリ制御方法は、請求項6記載のメモリ制御方法において、前記リードモディファイライトステップにおいて、前記メモリに変更後のデータの書き込みを行っている間に、前記データ記憶部に記憶されていないデータが前記メモリから前記データ記憶部に書き込まれることを特徴とする。
【発明の効果】
【0025】
本発明は、メモリにデータを記憶するときにリードモディファイライトの対象となるデータのうち一部または全部のデータをメモリ制御装置内に配置したデータ記憶部に記憶している。そして、データ記憶部に記憶されているデータを読み出して、変更を行ってメモリに書き込みを行っているため、メモリからのデータの読み出しを抑制している。これにより、リードレイテンシによる影響を最小限に抑制し、またはなくすことができることから、大幅にリードモディファイライトの処理速度を高速化させることができるようになる。
【発明を実施するための最良の形態】
【0026】
以下、本発明の実施形態について説明する。本実施形態では、半導体試験装置に適用したメモリ制御装置を説明する。例えば、LSIやIC等の試験を行う半導体試験装置においては、画像データやAD変換器の出力コードを記憶するためのデータキャプチャメモリを備えており、このデータキャプチャメモリからデータを読み出して試験を行うようにしている。画像データやAD変換器の出力コードは複数回のデータが取得され、各データを平均化する処理が行われる。このときに、データキャプチャメモリに記憶された画像データや出力コードを読み出して加算を行い、再びデータキャプチャメモリの元のアドレスに書き込むという作業を繰り返し行う。そして、最終的に加算回数で除算することにより、平均値のデータがデータキャプチャメモリに記憶されるようになる。
【0027】
近年の半導体試験装置は大量なデータを高速に処理しなければならず、リードモディファイライトの動作高速化の要請が高い。このため、以下のようなリードモディファイライトの制御を行う。ただし、半導体試験装置以外であっても、リードモディファイライトの制御を行うものであれば任意の装置に適用可能である。
【0028】
図1において、本発明のリードモディファイライトを行う機構は、DRAM1とDRAMコントローラ2と信号変換部3とFIFOメモリ4とにより概略構成されている。DRAM1は、DDR-SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)等の高速動作が可能な大容量のメモリである。DRAMコントローラ2はDRAM1のリードモディファイライトの制御を行うメモリ制御部である。信号変換部3は高速なクロックで動作するDRAM1とそれよりも低いクロックで動作するDRAMコントローラ2との間でクロック変換を行う変換部である。なお、図1では、メモリとしてDRAM1を例示しているが、例えばSRAM等の任意のメモリを適用するものであってもよい。
【0029】
FIFOメモリ4はDRAM1に記憶するデータ(図1ではDATAとしている)を一時的に蓄積するメモリであり、ここでは半導体試験装置におけるテストデータ(例えば、画像データやAD変換機の出力コード等)が蓄積されていくものとする。テストデータは高速且つ大量にFIFOメモリ4に蓄積されていき、蓄積されたデータをDRAMコントローラ2が先頭から順番に取り出して順次DRAM1に出力していく。
【0030】
DRAMコントローラ2は、制御信号出力部5とアドレス出力部6とFIFOメモリ制御部7とRMW制御部8とを備えて概略構成している。制御信号出力部5はDRAM1からデータを読み込むためのリード要求信号やDRAM1にデータを書き込むためのライト要求信号等を含む制御信号(図1ではCSとしている)を出力する。アドレス出力部6はリード(DRAM1からのデータの読み出し)またはライト(DRAM1に対してのデータの書き込み)を行うアドレス(図1ではADDとしている)を生成してDRAM1に出力を行う。FIFOメモリ制御部7はFIFOメモリ4に蓄積されたデータおよび後述するデータ記憶部10に記憶されているデータの読み出しの制御を行う。
【0031】
RMW制御部8はリードモディファイライトの制御を行う制御部であり、データ処理部9とデータ記憶部10とデータ選択部11とを備えている。データ処理部9はリードモディファイライトを行うためにデータの変更処理を行う。データ記憶部10はリードモディファイライトに使用されるデータを一時的に記憶するための記憶部であり、例えばDRAMやSRAM等のメモリを適用することができる。データ選択部11はデータ記憶部10に記憶させるデータを選択するために設けている。データ処理部9はリードモディファイライトを行うために、読み出し(リード)、変更(モディファイ)、書き込み(ライト)を行うが、このうちリードについてはDRAM1からだけではなくデータ記憶部10からも読み出すことが可能になっている。また、データ処理部9から出力されたデータは途中で分岐して、DRAM1とデータ選択部11とにそれぞれ入力される。
【0032】
以上の構成における動作について説明する。リードモディファイライトを行うときには、予めDRAM1にデータが記憶されていなければならない。このために、FIFOメモリ4からデータを取り出してDRAM1に記憶する処理をデータ記憶処理とし、データ記憶処理(データ記憶ステップ)を予め行う。データ処理部9はリードモディファイライトを行うときにはデータの変更処理を行うが、データ記憶処理においては変更処理その他の処理を行わず、入力したデータをそのまま出力する。
【0033】
DRAMコントローラ2からは、データ処理部9を通過したデータと制御信号出力部5が出力するライト要求信号とアドレス出力部6が出力するアドレスとがDRAM1に出力される。これらのライト要求信号とアドレスとデータとは、信号変換部3において低速なクロックから高速なクロックに変換されてDRAM1に出力される。そして、DRAM1は入力したアドレスに入力したデータを書き込む。DRAMコントローラ2のFIFOメモリ制御部7は、FIFOメモリ4から順次データを取り出してDRAM1に書き込みを行っていき、全てのデータについて書き込みが終了したときに、データ記憶処理を完了する。
【0034】
本発明では、データ記憶処理を行う際に、データ処理部9からDRAM1に出力するデータを途中で分岐させて、データ選択部11に対しても入力するようにしている。データ選択部11はリードモディファイライトの対象となるデータを選択的にデータ記憶部10に書き込みを行う。従って、リードモディファイライトの対象となるデータはDRAM1に記憶されるとともに、データ記憶部10にも記憶される。データ選択部11がリードモディファイライトの対象となるデータを選択するために、例えばリードモディファイライトの対象となるデータと同じバンクのアドレスのデータをDRAM1に書き込むときにデータを選択するような制御を行うことができる。同じバンクのアドレスのデータに対象を絞り込むことでデータ記憶部10に記憶させるデータ量を限定的にすることができるようになる。理想的にはリードモディファイライトの対象となるデータのみがデータ記憶部10に記憶されることが望ましいが、リードモディファイライトの対象を完全に絞り込めない場合には、対象外のデータが多少記憶されるものであってもよい。
【0035】
DRAMコントローラ2はASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等により構成するものが一般的であり、ASICやFPGAにはそれほど大容量の記憶手段を配置することができないため、データ記憶部10の記憶容量はそれほど大きくはない。このため、データ選択部11を設けて、データ記憶部10にはリードモディファイライトの対象となるデータを記憶するようにしている。ただし、データ記憶部10に大きな容量の記憶部を用いることができる場合には、データ選択部11を設ける必要はなく、データ選択部11から分岐したデータをそのままデータ記憶部10に入力させるようにしてもよい。また、データ選択部11以外の方法でリードモディファイライトの対象となるデータを絞り込むようにしてもよい。
【0036】
以上により、データ記憶処理は完了する。次に、DRAM1のリードモディファイライトの処理(リードモディファイステップ)を行う。図2は、リードモディファイライト処理のタイミングチャートを示している。図2において、RD(DRAM)はDRAM1から読み出されるリードデータを示し、RD(MEM)はデータ記憶部10から読み出されるリードデータを示し、WD(SC)はデータ処理部9から信号変換部3に出力されるライトデータを示し、WD(DRAM)はDRAM1に書き込まれるライトデータを示す。
【0037】
本発明におけるリードモディファイライト処理では、アドレス「A0〜A1023」に対応するデータ「D0〜D1023」がリードモディファイライトの対象となるデータであるものとする(なお、アドレス「A0〜A1023」はDRAM1の同一バンク内のシーケンシャルなアドレスであるものとする)。また、データ記憶処理において、データ記憶部10にはアドレス「A0〜A511」の512ワードのデータ「D0〜D511」が記憶されており、この512ワード分についてはデータ記憶部10から読み出して、リードモディファイライトを行うようにしている。また、アドレス「A512〜A1023」に対応するデータ「D512〜D1023」については通常のリードモディファイライトと同じくDRAM1から読み込むようにしている。また、データ記憶部10およびDRAM1からは4ワード分のデータを読み込むようにしており、4ワードごとにリードモディファイライト処理を行い、全体としては繰り返しリードモディファイライト処理が行われるようにしている。勿論、データ記憶部10に記憶可能なデータ量は512ワード以上または以下であってもよく、また読み込むデータ量は4ワード分ではなく3ワード以下または5ワード以上であってもよい。
【0038】
最初に、DRAM1のアドレス「A0〜A3」に対応するデータ「D0〜D3」のリードモディファイライトを行う。データ「D0〜D3」はリードモディファイライトを行う対象となるデータであるため、データ選択部11はデータ記憶部10に対して当該データを記憶させている。よって、データ記憶部10に記憶されているデータ「D0〜D3」の読み出しを行う。データ処理部9ではAND演算やOR演算等の2つのオペランドの演算を行っている。このため、1つのオペランドはデータ記憶部10から読み出しを行い、もう1つのオペランドはFIFOメモリ4から読み出すようにしている。この制御は、FIFOメモリ制御部7により行われ、FIFOメモリ4からの読み出しタイミングに連動して、FIFOメモリ制御部7はデータ記憶部10からデータ処理部9にデータを読み出す制御を行う。データ処理部9からの読み出しとFIFOメモリ4からの読み出しとのタイミングが異なる場合には、パイプライン調整等によりタイミング調整を行う。
【0039】
図2の例では、データ処理部9は2つのデータを同時に処理できるようになっており、またデータ記憶部10からデータ処理部9に2つのデータを同時に読み込むことができるようになっている。このため、データ「D0」および「D1」が同時に読み込まれて変更処理が行われ、次のタイミングでデータ「D2」および「D3」が読み込まれて変更処理が行われるようになっている。データ処理部9において変更処理が行われたデータ「D0〜D3」はライトデータ「D0〜D3」としてDRAM1に出力され、同時にアドレス「A0」およびライト要求信号がDRAM1に出力される。
【0040】
信号変換部3において、ライト要求信号とアドレス「A0」とライトデータ「D0〜D3」とが低速なクロックから高速なクロックに変換されて、DRAM1に入力される。DRAM1ではアドレス「A0〜A3」までにライトデータ「D0〜D3」をそれぞれ書き込む。これにより、アドレス「A0〜A3」のデータ「D0〜D3」についてはリードモディファイライトが完了する。なお、図2において、信号変換部3によりクロックの変換がされているため、WD(SC)とWD(DRAM)とでは各データのクロックが異なっていることを示している。
【0041】
次に、アドレス「A4〜A7」に対応するデータ「D4〜D7」のリードモディファイライトを行うが、このリードモディファイライト処理は、前記のアドレス「A0〜A3」のデータ「D0〜D3」のリードモディファイライト処理と一部オーバーラップしている。つまり、アドレス「A4〜A7」のデータ「D4〜D7」はDRAM1から読み出すのではなく、データ記憶部10から読み出している。データ記憶部10はDRAM1とはアクセスに関連性のない記憶手段であるため、データ記憶部10に対するアクセスとDRAM1に対するアクセスとは並行して行うことができる。
【0042】
このため、図2にも示しているように、ライトデータ「D0〜D3」をDRAM1に書き込んでいるときに並行して、リードデータ「D4〜D7」をデータ記憶部10からデータ処理部9に読み出しているため、この点においても処理の高速化を図れる。
【0043】
データ処理部9に読み出されたリードデータ「D4〜D7」は所定の演算が行われてライトデータ「D4〜D7」としてDRAM1に対して、アドレス「A4〜A7」およびライト要求信号とともに出力される。以降、アドレス「A511」に対応するデータ「D511」までのリードモディファイライトを順次行っていく。アドレス「A512〜A1023」に対応するデータ「D512〜D1023」はデータ記憶部10には記憶されていない。このため、アドレス「A512」のデータ「D512」以降についてはDRAM1からデータを読み出して、データの変更処理を行い、DRAM1に変更後のデータを書き込む通常のリードモディファイライト処理が行われる。このときには、DRAM1からデータを読み込むため、図2に示すように、リードレイテンシRLが発生する。
【0044】
以上より、データ記憶処理でリードモディファイライトの対象となるデータの一部をデータ記憶部10に書き込みを行い、リードモディファイライト処理ではデータ記憶部10から読み出したデータに対して変更処理を行ってDRAM1に書き込んでいる。このため、少なくとも512ワード分のデータについてはリードレイテンシが生じなくなるため、リードモディファイライトの処理速度の大幅な高速化を達成することができる。また、データ記憶部10にリードモディファイライトの対象となるデータの全部を記憶可能な場合(前記の例ではデータ記憶部10が1024ワードのデータを記憶可能な場合)には、リードレイテンシは全く生じなくなり、無駄な待機時間を完全になくすることができるようになる。
【0045】
また、データ記憶部10からのデータに基づいてリードモディファイライトを行うときには、DRAM1からのデータの読み出しは行われないため、制御信号出力部5からはライト要求信号が連続してDRAM1に出力される。DRAM1ではリードとライトとの動作を切り替えるときに切替時間が生じることは前述したが、本実施形態では、DRAM1はライトの動作を連続して行うために切替時間を要しなくなり、このため処理の高速化を図ることができるようになる。また、DRAM1に対するアクセスとデータ記憶部10に対するアクセスとを並行して行うことができるため、処理の一部をオーバーラップさせることができ、処理の高速化をさらに図ることができるようになる。
【0046】
次に、変形例について説明する。図3に示しているように、本変形例においてはDRAM1からデータ記憶部10にデータを書き込む経路を設けており、DRAM1からデータ記憶部10にデータを書き込む経路を設けていない点で、前述した実施形態と異なる。また、本変形例のデータ記憶部10は比較的小さな記憶容量を有している(ここでは、40ワードとする)。データ記憶部10の記憶容量は最低限DRAM1のリードレイテンシRLを吸収できる程度に設けていればよい。この点については後述する。データ記憶部10の記憶容量を小さくすることで、DRAMコントローラ2を適用するASICやFPGAの選択の幅を広げることができる。また、本変形例におけるリードモディファイライトの対象となるデータは、前述した実施形態と同様にアドレス「A0〜1023」に対応するデータ「D0〜D1023」の1024ワードのデータであるものとし、この1024ワードのデータはDRAM1の同一バンク内のシーケンシャルなデータであるものとする。
【0047】
次に、図4を用いて本変形例の動作について説明する。データ記憶処理については前述した実施形態と同様である。データ選択部11は32ワード分のデータ(アドレス「A0〜A31」に対応するデータ「D0〜D31」)を選択して、データ記憶部10に記憶するものとする。なお、図4において、RD(DRAM)はDRAM1から読み出されるリードデータ、RD(SC)はDRAM1から信号変換部3に出力されるリードデータ、WD(MEM)は信号変換部3からデータ記憶部10に出力されて書き込まれるデータを示す。
【0048】
次に、リードモディファイライト処理が行われる。最初のタイミングでは、アドレス「A0〜A3」に対応するデータ「D0〜D3」がデータ記憶部10からデータ処理部9に読み出されて変更処理を行うことによりライトデータ「D0〜D3」として生成し、ライトデータ「D0〜D3」とアドレス「A0」とライト要求信号とがDRAM1に出力される。DRAM1ではアドレス「A0」から連続するアドレスにライトデータ「D0〜D3」を書き込む。
【0049】
ライトデータ「D0〜D3」の書き込み処理が終了したタイミングで、制御信号出力部5はDRAM1に対してリード要求信号を出力するとともに、アドレス出力部6はアドレス「A32」を出力する。データ記憶部10に記憶されているデータは「D0〜D31」であり、32個分のアドレスをオフセットした値、つまりデータ記憶部10に記憶されているアドレス分をオフセットした値を出力してDRAM1に対して要求する。DRAM1はアドレス「A32」から連続する4ワード分のアドレスに対応するリードデータ「D32〜D35」を読み出して、DRAMコントローラ2に入力する。このときには、データ処理部9にリードデータ「D32〜D35」を読み込まず、DRAM1からデータ記憶部10に書き込みを行う。ただし、DRAM1からのリードデータであるため、リードデータ「D32〜D35」がデータ記憶部10に記憶されるまでの間にはリードレイテンシRLが発生する。
【0050】
次に、データ処理部9はデータ記憶部10からアドレス「A4〜A7」に対応するデータ「D4〜D7」を読み込んで変更を行い、ライトデータ「D4〜D7」を生成する。そして、ライト要求信号およびアドレス「A4」とともにライトデータ「D4〜D7」をDRAM1に出力する。そして、DRAM1はアドレス「A4」から連続するアドレスにライトデータ「D4〜D7」を書き込む。
【0051】
次に、制御信号出力部5はリード要求信号を出力するとともに、アドレス出力部6はアドレス「A36」をDRAM1に対して出力する。このアドレス「A36」は前回のリード要求で読み出されたリードデータ「D32〜D35」の次のアドレスから開始するアドレスになる。DRAM1からはアドレス「A36」から連続する4ワード分のリードデータ「D36〜D39」が読み出されるが、リードレイテンシRL後にデータ記憶部10に記憶される。
【0052】
そして、データ処理部9はデータ記憶部10から読み出したアドレス「A8」に対応するデータ「D8〜D11」に対して変更を行い、ライトデータ「D8〜D11」を生成する。このライトデータ「D8〜D11」は、アドレスA8およびライト要求信号とともにDRAM1に出力される。これにより、DRAM1のアドレス「A8〜A11」にライトデータ「D8〜D11」が書き込まれる。このタイミングで最初にDRAMコントローラ2から出力されたリード要求、つまりアドレス「A32〜A35」に対応するリードデータ「D32〜D35」がデータ記憶部10に書き込まれる。
【0053】
以下、DRAMコントローラ2からDRAM1に対して順次リード要求とライト要求とが交互に行われる。最初のリード要求に対応するリードデータ「D32〜D35」はリードレイテンシRLの分だけ遅延したタイミングでデータ記憶部10に書き込まれる。しかし、リード要求とライト要求とを交互に行っているため、最初のリードデータ「D32〜D35」にはリードレイテンシRLが発生しているものの、これに続くリードデータ「D36〜D39」と直前のリードデータ「D32〜D35」との間にはリードレイテンシRLは発生していない。そして、リードデータ「D36〜D39」に続行するデータについても、直前のリードデータとの間にはリードレイテンシRLは発生していない。従って、DRAM1から最初に読み込むデータはリードレイテンシRLにより遅延するものの、続行するデータは逐次的にデータ記憶部10に書き込まれることになる。
【0054】
一方、データ記憶部10には最初のデータ記憶処理において、アドレス「A0〜A31」に対応するデータ「D0〜D31」が記憶されているが、データ「D31」を使用してリードモディファイライトが行われるときには、既にデータ記憶部10にはデータ「D32〜D35」が書き込まれている。そして、次の4ワードのリードモディファイライト処理を行った後には、データ「D36〜D39」がデータ記憶部10に書き込まれる。つまり、データ記憶部10からデータを読み出してリードモディファイライト処理を行ったとしても、順次新たなデータがデータ記憶部10に補充されるため、前述した実施形態のようにデータ記憶部10に記憶されているデータを使い切ることがなくなる。
【0055】
このために、データ記憶部10はリードレイテンシRL(リード要求信号を出力してからデータ記憶部10にデータが書き込まれるまでの間の時間)を吸収できるような記憶容量を持たせるようにする。つまり、データ記憶部10に記憶されている全てのデータがデータ処理部9に読み出される前に、DRAM1から読み出したデータがデータ記憶部10に記憶されるような記憶容量をデータ記憶部10に持たせるようにする。これによりリードレイテンシRLを吸収でき、リードレイテンシRLによる待機時間を完全になくすことができるようになる。従って、リードモディファイライトの大幅な高速化を達成することができ、しかもデータ記憶部10の記憶容量を非常に小さいものにすることができる。このため、任意の種類のASICやFPGAに適用することができるようになり、選択の幅が広がる。
【0056】
ただし、本変形例では、リード要求信号とライト要求信号とを交互にDRAM1に対して発行しているため、DRAM1のリードとライトとの動作を切り替えるための切替時間(図6ではCTとして示している)を要する。この点、前述した実施形態ではデータ記憶部10に記憶されたデータを読み込んでDRAM1に連続して書き込んでいるため、ライトの動作が連続している。従って、切替時間CTを要しないため、この点では本変形例よりは高速になるが、データ記憶部10に大きな記憶容量を持たせられない場合には、データ記憶部10の全てのデータを使用した後には、リードレイテンシRLが発生する。
【0057】
つまり、ASICやFPGA等をDRAMコントローラ2に適用することによりデータ記憶部10に少ない記憶容量しか持たせられない場合には本変形例のリードモディファイライトが好適であり、データ記憶部10に十分な記憶容量を持たせられるような場合には前述した実施形態が好適である。これは、実際にDRAMコントローラ2を適用するシステム全体の設計により適宜選択する。
【0058】
なお、本変形例において、リード要求信号とライト要求信号とを交互に出力するようにしているが、例えばリード要求信号を1回出力し、ライト要求信号を2回連続して出力するようにして、これを交互に行なうようにしてもよい。この場合、データ記憶部10からのデータ読み出し量はDRAM1からのデータ補充量よりも多くなるが、データ記憶部10にある程度の容量を持たせている場合には、このような制御を行うことにより、切替時間CTによる遅延を抑制し、且つデータ記憶部10の記憶容量もある程度に抑制できるため、リードモディファイライトの処理時間とデータ記憶部10の記憶容量とをバランスよく解決することができる。
【図面の簡単な説明】
【0059】
【図1】実施形態におけるリードモディファイライト処理を行う機構の概略構成を示すブロック図である。
【図2】実施形態におけるリードモディファイライトのタイミングチャートである。
【図3】変形例におけるリードモディファイライト処理を行う機構の概略構成を示すブロック図である。
【図4】変形例におけるリードモディファイライトのタイミングチャートである。
【図5】従来技術におけるリードモディファイライト処理を行う機構の概略構成を示すブロック図である。
【図6】従来技術におけるリードモディファイライトのタイミングチャートである。
【符号の説明】
【0060】
1 DRAM 2 DRAMコントローラ
3 信号変換部 4 FIFOメモリ
5 制御信号出力部 6 アドレス出力部
7 FIFOメモリ制御部 8 RMW制御部
9 データ処理部 10 データ記憶部
10 データ記憶部 11 データ選択部

【特許請求の範囲】
【請求項1】
メモリに対してリードモディファイライトの制御を行うメモリ制御装置であって、
前記メモリにデータを記憶するときに、このデータのうち前記リードモディファイライトの対象となるデータと同一のデータの一部または全部を記憶するデータ記憶部と、
前記データ記憶部に記憶されたデータを読み出して変更を行い、前記メモリに書き込みを行うデータ処理部と、
を備えたことを特徴とするメモリ制御装置。
【請求項2】
前記データ記憶部は、前記リードモディファイライトの対象となる全部のデータを記憶可能な容量を有していることを特徴とする請求項1記載のメモリ制御装置。
【請求項3】
前記データ処理部が前記データ記憶部から読み出したデータを変更して前記メモリに書き込んでいる間に、前記リードモディファイライトを行う対象となるデータのうち前記データ記憶部が記憶していないデータが前記メモリから前記データ記憶部に書き込まれることを特徴とする請求項1記載のメモリ制御装置。
【請求項4】
前記メモリに対してリード要求信号を出力する制御信号出力部を備え、
前記データ記憶部は、前記制御信号出力部が前記メモリに対して前記リード要求信号を出力してから前記データ記憶部にデータが入力されるまでの間のレイテンシを吸収できるデータを記憶していることを特徴とする請求項3記載のメモリ制御装置。
【請求項5】
請求項1乃至4の何れか1項に記載のメモリ制御装置を備えていることを特徴とする半導体試験装置。
【請求項6】
メモリに対してリードモディファイライトの制御を行うメモリ制御方法であって、
前記メモリにデータを記憶するときに、このデータのうち変更の対象となるデータと同一のデータの一部または全部をデータ記憶部に記憶するデータ記憶ステップと、
前記データ記憶部に記憶されているデータを読み出して変更を行い、前記メモリに書き込みを行うリードモディファイライトステップと、
を有することを特徴とするメモリ制御方法。
【請求項7】
前記リードモディファイライトステップにおいて、前記メモリに変更後のデータの書き込みを行っている間に、前記データ記憶部に記憶されていないデータが前記メモリから前記データ記憶部に書き込まれることを特徴とする請求項6記載のメモリ制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−61498(P2010−61498A)
【公開日】平成22年3月18日(2010.3.18)
【国際特許分類】
【出願番号】特願2008−227864(P2008−227864)
【出願日】平成20年9月5日(2008.9.5)
【出願人】(000006507)横河電機株式会社 (4,443)
【Fターム(参考)】