JP4456123B2 - データバッファ装置、キャッシュ装置、データバッファ制御方法 - Google Patents

データバッファ装置、キャッシュ装置、データバッファ制御方法 Download PDF

Info

Publication number
JP4456123B2
JP4456123B2 JP2006546551A JP2006546551A JP4456123B2 JP 4456123 B2 JP4456123 B2 JP 4456123B2 JP 2006546551 A JP2006546551 A JP 2006546551A JP 2006546551 A JP2006546551 A JP 2006546551A JP 4456123 B2 JP4456123 B2 JP 4456123B2
Authority
JP
Japan
Prior art keywords
buffer
data
mask bit
priority selection
selection 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.)
Expired - Fee Related
Application number
JP2006546551A
Other languages
English (en)
Other versions
JPWO2006059384A1 (ja
Inventor
英樹 坂田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2006059384A1 publication Critical patent/JPWO2006059384A1/ja
Application granted granted Critical
Publication of JP4456123B2 publication Critical patent/JP4456123B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、データの残留性と使用頻度の均一性を向上させるデータバッファ装置、キャッシュ装置、データバッファ制御方法に関するものである。
RIRO(Random In Random Out)型データバッファでは、プライオリティセレクト方式を用いる制御が一般的である。プライオリティセレクト方式で制御されるRIROでは、リリースするバッファはランダムに選択されるが、使用するバッファは必ず最若番から選択される。図14A、図14B、図14Cは、従来のプライオリティセレクト方式によるバッファ制御の具体的な動作の一例を示す図である。それぞれの図は順に、第1の状態から第3の状態までを示す。バッファの数は4とし、バッファ番号は1〜4とする。バッファ番号毎にバッファの状態として、未使用(空白)、使用中、または残留しているデータの識別子(a)のいずれかを示す。
まず、図14Aに示す第1の状態のように、バッファ1とバッファ2とバッファ3を使用中とする。次に、図14Bに示す第2の状態に示すように、バッファ2がリリースされた場合、バッファ2にはデータaが残留する。次に、図14Cに示す第3の状態のように、バッファが使用された場合、一番若く、空いているバッファが使用される。従って、使ったばかりのバッファ2のデータは、すぐに上書きされ、失われる。
上述したように、従来のプライオリティセレクト方式では若番バッファの使用頻度が高く、過去のデータが残らない。さらに、個々のバッファの使用頻度が偏るために、老番バッファに動作不良が存在する場合、その検出が遅れる可能性もある。
この問題を解決するために、FIFO(First In First Out)型データバッファで、カウンタによるバッファ制御が一般的によく用いられる。図15A、図15B、図15Cは、従来のFIFOのカウンタによるバッファ制御の具体的な動作の一例を示す図である。それぞれの図は順に、第1の状態から第3の状態までを示す。バッファの数は4とし、バッファ番号は1〜4とする。バッファ番号毎にバッファの状態として、未使用(空白)、使用中、または残留しているデータの識別子(a)のいずれかを示す。FIFOは、バッファの他に、書き込みを行うバッファ番号を示すinカウンタと、読み出しを行うバッファ番号を示すoutカウンタを備える。
まず、図15Aに示す第1の状態のように、初期状態はすべてのバッファが未使用であり、inカウンタとoutカウンタの値は1である。次に、図15Bに示す第2の状態のように、inカウンタの示すバッファ1を使用すると、inカウンタが加算される。次に、図15Cに示す第3の状態のように、outカウンタが示すバッファからの読み出しを行うと、outカウンタが加算され、バッファがリリースされる。データは、バッファが一巡するまで残っているが、ランダムに取り出すことはできない。
しかし、RIRO型において、このようなカウンタによる制御を行うと、歯抜けになった部分が再び使用されるのは、カウンタがその歯抜け部分を指した時であるため、バッファの使用効率が非常に悪化してしまう。
また、厳密な順序制御としては、PM(Precedence Matrix)やLRU(Least Recently Used)が用いられる。ここでは、PM方式について説明する。使用時において、バッファは自分が最新であることを記録する。また、リリース時において、バッファは、使用中のバッファよりも自分が古いことを記録する。
図16A、図16B、図16C、図17D、図17E、図17F、図18G、図18H、図18Iは、従来のPM方式によるバッファ制御の具体的な動作の一例を示す図である。それぞれの図は順に、第1の状態から第9の状態までを示す。バッファの数は4とし、バッファ番号は1〜4とする。バッファの状態を4×4の行列で表し、列方向のバッファ番号をx(1〜4)、行方向のバッファ番号をy(1〜4)とするとき、xがyより古い場合の状態を”1”で表す。また、4×4の行列の右には、バッファ番号毎にバッファの状態として、未使用(空白)、使用中、または残留しているデータの識別子(a、b、c、d)を示す。
まず、図16Aに示す第1の状態のように、初期状態はすべてのバッファが未使用であり、状態はすべて”0”である。初期状態での使用順は任意であるが、ここでは若番から使用するものとする。次に、図16Bに示す第2の状態のように、バッファ1が使用された場合、y=1の状態がすべて”1”になり、バッファ1が最新であることを表す。次に、図16Cに示す第3の状態のように、バッファ2、バッファ3、バッファ4が順番に使用された場合、バッファ4よりもバッファ3、バッファ3よりもバッファ2、バッファ2よりもバッファ1が古いことを表す。次に、図17Dに示す第4の状態のように、バッファ3がリリースされた場合、バッファ3に残留するデータaが最古であることを表す。次に、図17Eに示す第5の状態のように、バッファ1がリリースされた場合、バッファ1に残留するデータbがデータaの次に古いことを表す。
つまり、あるバッファ番号の列の状態に”1”が多いほど、そのバッファに残留するデータが古いことを表し、次の格納対象となる。次に、図17Fに示す第6の状態のように、バッファ4がリリースされた場合、次に格納対象となるのはバッファ3であることを表す。次に、図18Gに示す第7の状態のように、バッファ3が使用された場合、バッファ3の列はリセットされる。次に、図18Hに示す第8の状態のように、バッファ2がリリースされた場合、次に格納対象となるのはバッファ1であることを表す。次に、図18Iに示す第9の状態のように、バッファ1が使用された場合、次に格納対象となるのはバッファ4であることを表す。
しかし、上述したPM方式は、順序制御を厳密に行える利点の一方、論理的な複雑さに加え、n個のバッファの制御に(n^2)−n個のラッチが必要となるため、指数関数的な回路規模の増大を招いていた。
なお、本発明の関連ある従来技術として、例えば、下記に示す特許文献1が知られている。
特開2003−84999号公報 (第3−5頁、第1図)
従来のデータバッファを用いた機器において、設計検証、障害調査に要する時間の肥大化が問題となっている。これらは、必要十分な情報が得られない、もしくは失われていることも一因である。また、上述したようなRIRO型のデータバッファでは、構成上、使用頻度にばらつきが発生する事がある。このため、使用頻度の低い部位に不良があるものがパスしてしまい、ランニングテスト等の検査に漏れることがある。
本発明は上述した問題点を解決するためになされたものであり、検証・調査時に必要な情報を残し、且つ使用頻度を均一化することにより、試験効率を向上させるデータバッファ装置、キャッシュ装置、データバッファ制御方法を提供することを目的とする。
上述した課題を解決するため、本発明は、データの残留性と使用頻度の均一性を向上するために、バッファを選択して使用するデータバッファ装置であって、データの記憶を行い、番号付けされた複数のバッファと、バッファ毎にマスクするマスクビットを備え、リリースしたバッファのマスクビットをセットするマスクビットベクタと、前記マスクビットベクタによってマスクされていない、かつ未使用のバッファの中から最若番のバッファを選択するプライオリティセレクト部とを備えたものである。
また、本発明に係るデータバッファ装置において、マスクされていない、かつ未使用のバッファが無くなった場合に、前記マスクビットベクタがリセットされることを特徴とするものである。
また、本発明は、データの残留性と使用頻度の均一性を向上するために、バッファを選択して使用するデータバッファ装置であって、データの記憶を行い、番号付けされた複数のバッファと、バッファ毎にマスクするマスクビットを備え、リリースしたバッファのマスクビットをセットするマスクビットベクタと、前記マスクビットベクタによってマスクされていない、かつ未使用のバッファの中から最若番のバッファを選択する第1プライオリティセレクト部と、未使用のバッファの中から最若番のバッファを選択する第2プライオリティセレクト部と、前記第1プライオリティセレクト部が選択したバッファと前記第2プライオリティセレクト部が選択したバッファのいずれかを選択するセレクタとを備えたものである。
また、本発明に係るデータバッファ装置において、すべてのバッファがマスクされた場合に、前記マスクビットベクタがリセットされることを特徴とするものである。
また、本発明は、データの残留性と使用頻度の均一性を向上するために、バッファを選択して使用するデータバッファ装置であって、データの記憶を行い、番号付けされた複数のバッファと、バッファ毎にマスクするマスクビットを備え、リリースしたバッファのマスクビットをセットするマスクビットベクタと、前記マスクビットベクタによってマスクされていない、かつ未使用のバッファの中から最若番のバッファを選択する第1プライオリティセレクト部と、前記第1プライオリティセレクト部がバッファを選択しなかった場合に、未使用のバッファの中から最若番のバッファを選択する第2プライオリティセレクト部とを備えたものである。
また、本発明は、リクエストの残留性と使用頻度の均一性を向上するために、バッファを選択して使用するキャッシュ装置であって、リクエストの記憶を行い、番号付けされた複数のバッファと、バッファ毎にマスクするマスクビットを備え、リリースしたバッファのマスクビットをセットするマスクビットベクタと、前記マスクビットベクタによってマスクされていない、かつ未使用のバッファの中から最若番のバッファを選択するプライオリティセレクト部と、前記バッファに記憶されたリクエストを順次処理するリクエスト処理部と、前記リクエスト処理部の処理するリクエストに応じてデータの読み出しや書き込みを行うデータ部とを備えたものである。
また、本発明は、リクエストの残留性と使用頻度の均一性を向上するために、バッファを選択して使用するキャッシュ装置であって、リクエストの記憶を行い、番号付けされた複数のバッファと、バッファ毎にマスクするマスクビットを備え、リリースしたバッファのマスクビットをセットするマスクビットベクタと、前記マスクビットベクタによってマスクされていない、かつ未使用のバッファの中から最若番のバッファを選択する第1プライオリティセレクト部と、未使用のバッファの中から最若番のバッファを選択する第2プライオリティセレクト部と、前記第1プライオリティセレクト部が選択したバッファと前記第2プライオリティセレクト部が選択したバッファのいずれかを選択するセレクタと、前記バッファに記憶されたリクエストを順次処理するリクエスト処理部と、前記リクエスト処理部の処理するリクエストに応じてデータの読み出しや書き込みを行うデータ部とを備えたものである。
また、本発明は、リクエストの残留性と使用頻度の均一性を向上するために、バッファを選択して使用するキャッシュ装置であって、リクエストの記憶を行い、番号付けされた複数のバッファと、バッファ毎にマスクするマスクビットを備え、リリースしたバッファのマスクビットをセットするマスクビットベクタと、前記マスクビットベクタによってマスクされていない、かつ未使用のバッファの中から最若番のバッファを選択する第1プライオリティセレクト部と、前記第1プライオリティセレクト部がバッファを選択しなかった場合に、未使用のバッファの中から最若番のバッファを選択する第2プライオリティセレクト部と、前記バッファに記憶されたリクエストを順次処理するリクエスト処理部と、前記リクエスト処理部の処理するリクエストに応じてデータの読み出しや書き込みを行うデータ部とを備えたものである。
また、本発明は、データの残留性と使用頻度の均一性を向上するために、バッファを選択して使用するデータバッファ制御方法であって、バッファ毎にマスクするマスクビットを備え、リリースしたバッファのマスクビットをセットするマスクステップと、前記マスクステップによってマスクされていない、かつ未使用のバッファの中から最若番のバッファを選択するプライオリティセレクトステップとを備えたものである。
また、本発明に係るデータバッファ制御方法において、さらに、マスクされていない、かつ未使用のバッファが無くなった場合にすべてのマスクビットをリセットするマスクリセットステップを備えることを特徴とするものである。
また、本発明は、データの残留性と使用頻度の均一性を向上するために、バッファを選択して使用するデータバッファ制御方法であって、バッファ毎にマスクするマスクビットを備え、リリースしたバッファのマスクビットをセットするマスクステップと、前記マスクステップによってマスクされていない、かつ未使用のバッファの中から最若番のバッファを選択する第1プライオリティセレクトステップと、未使用のバッファの中から最若番のバッファを選択する第2プライオリティセレクトステップと、前記第1プライオリティセレクトステップが選択したバッファと前記第2プライオリティセレクトステップが選択したバッファのいずれかを選択する選択ステップとを備えたものである。
また、本発明に係るデータバッファ制御方法において、さらに、すべてのバッファがマスクされた場合に、すべてのマスクビットをリセットするリセットステップを備えることを特徴とするものである。
また、本発明は、データの残留性と使用頻度の均一性を向上するために、バッファを選択して使用するデータバッファ制御方法であって、データの記憶を行い、番号付けされた複数のバッファと、バッファ毎にマスクするマスクビットを備え、リリースしたバッファのマスクビットをセットするマスクステップと、前記マスクビットベクタによってマスクされていない、かつ未使用のバッファの中から最若番のバッファを選択する第1プライオリティセレクト部と、前記第1プライオリティセレクト部がバッファを選択しなかった場合に、未使用のバッファの中から最若番のバッファを選択する第2プライオリティセレクト部とを備えたものである。
なお、複数のバッファとは、実施の形態におけるREQ_QUEUEのことである。
実施の形態1に係るキャッシュ装置の構成の一例を示すブロック図である。 実施の形態1に係るデータバッファ装置の動作の一例を示すフローチャートである。 実施の形態1に係る第1プライオリティセレクト部の動作の一例を示すフローチャートである。 実施の形態1に係る第1プライオリティセレクト部によるバッファの選択の動作の一例を示すフローチャートである。 実施の形態1に係る第2プライオリティセレクト部によるバッファの選択の動作の一例を示すフローチャートである。 本発明に係るデータバッファ装置の具体的な動作の一例のうち第1の状態を示す図である。 本発明に係るデータバッファ装置の具体的な動作の一例のうち第2の状態を示す図である。 本発明に係るデータバッファ装置の具体的な動作の一例のうち第3の状態を示す図である。 本発明に係るデータバッファ装置の具体的な動作の一例のうち第4の状態を示す図である。 本発明に係るデータバッファ装置の具体的な動作の一例のうち第5の状態を示す図である。 本発明に係るデータバッファ装置の具体的な動作の一例のうち第6の状態を示す図である。 本発明に係るデータバッファ装置の具体的な動作の一例のうち第7の状態を示す図である。 実施の形態1に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第1の状態を示す図である。 実施の形態1に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第2の状態を示す図である。 実施の形態1に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第3の状態を示す図である。 実施の形態1に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第4の状態を示す図である。 実施の形態1に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第5の状態を示す図である。 実施の形態1に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第6の状態を示す図である。 実施の形態1に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第7の状態を示す図である。 実施の形態1に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第8の状態を示す図である。 実施の形態1に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第9の状態を示す図である。 実施の形態2に係るキャッシュ装置の構成の一例を示すブロック図である。 実施の形態2に係るデータバッファ装置の動作の一例を示すフローチャートである。 実施の形態2に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第1の状態を示す図である。 実施の形態2に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第2の状態を示す図である。 実施の形態2に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第3の状態を示す図である。 実施の形態2に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第4の状態を示す図である。 実施の形態2に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第5の状態を示す図である。 実施の形態2に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第6の状態を示す図である。 実施の形態2に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第7の状態を示す図である。 実施の形態2に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第8の状態を示す図である。 実施の形態2に係るマスクビットベクタのリセットに関する具体的な動作の一例のうち第9の状態を示す図である。 従来のプライオリティセレクト方式によるバッファ制御の具体的な動作の一例のうち第1の状態を示す図である。 従来のプライオリティセレクト方式によるバッファ制御の具体的な動作の一例のうち第2の状態を示す図である。 従来のプライオリティセレクト方式によるバッファ制御の具体的な動作の一例のうち第3の状態を示す図である。 従来のFIFOのカウンタによるバッファ制御の具体的な動作の一例における第1の状態を示す図である。 従来のFIFOのカウンタによるバッファ制御の具体的な動作の一例のうち第2の状態を示す図である。 従来のFIFOのカウンタによるバッファ制御の具体的な動作の一例のうち第3の状態を示す図である。 従来のPM方式によるバッファ制御の具体的な動作の一例のうち第1の状態を示す図である。 従来のPM方式によるバッファ制御の具体的な動作の一例のうち第2の状態を示す図である。 従来のPM方式によるバッファ制御の具体的な動作の一例のうち第3の状態を示す図である。 従来のPM方式によるバッファ制御の具体的な動作の一例のうち第4の状態を示す図である。 従来のPM方式によるバッファ制御の具体的な動作の一例のうち第5の状態を示す図である。 従来のPM方式によるバッファ制御の具体的な動作の一例のうち第6の状態を示す図である。 従来のPM方式によるバッファ制御の具体的な動作の一例のうち第7の状態を示す図である。 従来のPM方式によるバッファ制御の具体的な動作の一例のうち第8の状態を示す図である。 従来のPM方式によるバッファ制御の具体的な動作の一例のうち第9の状態を示す図である。
以下、本発明の実施の形態について図面を参照しつつ説明する。
実施の形態1.
まず、データバッファ装置を備えたキャッシュ装置の構成について説明する。
図1は、実施の形態1に係るキャッシュ装置の構成の一例を示すブロック図である。このキャッシュ装置は、データバッファ装置1、リクエスト処理部2、データ部3を備える。このキャッシュ装置は、例えば、CPUの2次キャッシュブロックとして用いられる。また、データバッファ装置1は、REQ_QUEUE11、マスクビットベクタ12、第1プライオリティセレクト部13、第2プライオリティセレクト部14、セレクタ15を備える。
REQ_QUEUE11は、n個(nは整数)のバッファで構成され、CPUからのリクエストを格納する。格納されたリクエストは、順次、リクエスト処理部2へ投入され、データ部3により主記憶装置との間でリクエストに応じてデータの読み出しや書き込みが行われる。処理が完了したものはREQ_QUEUE11から消去される。インタロック等により処理が完了しなかった場合、再びREQ_QUEUE11からリクエスト処理部2に投入され、自動的に再実行が行われる。この時、処理の完了はリクエストの投入順とは無関係に行われるため、REQ_QUEUE11はRIRO型のバッファで構成される。
マスクビットベクタ12は、n個のマスクビットを備え、バッファリリース時に、リリースしたバッファをマスクする。すなわちリリースしたバッファに対応するマスクビットを”1”にする。本実施の形態において、マスクビットベクタ12は、すべてのバッファがマスクされた場合、すなわちマスクビットベクタがall”1”となった場合に、リセットされ、all”0”となる。
第1プライオリティセレクト部13は、マスクビットベクタによってマスクされた残りのバッファの中から最若番の空きバッファを選択する。第2プライオリティセレクト部14は、すべてのバッファの中から最若番の空きバッファを選択する。セレクタ15は、まず、第1プライオリティセレクト部13が選択したバッファを選択する。第1プライオリティセレクト部13が選択するバッファが存在しない場合、第2プライオリティセレクト部14が選択したバッファを選択する。
次に、データバッファ装置の動作について説明する。
図2は、実施の形態1に係るデータバッファ装置の動作の一例を示すフローチャートである。ここで、REQ_QUEUE11におけるバッファの数nは5とし、バッファ番号は0〜4とする。REQ_QUEUE11は、バッファ番号毎にバッファの状態Vを持つ。バッファが使用中(Valid)の場合に、V=1となる。また、マスクビットベクタ12は、バッファ番号毎にマスクビットの状態Mを持つ。バッファがマスクされた場合に、M=1となる。
まず、REQ_QUEUE11は、リクエストを受信したか否かの判断を行う(S1)。リクエストを受信していない場合(S1,N)、処理S1へ戻る。次に、セレクタ15は、第1プライオリティセレクト部(第1PS部)13がバッファを選択したか否かの判断を行う(S2)。第1プライオリティセレクト部13によるバッファの選択の動作については後述する。第1プライオリティセレクト部13がバッファを選択した場合、セレクタ15は、第1プライオリティセレクト部13が選択したバッファにリクエストをセットし(S3)、このフローを終了する。
一方、第1プライオリティセレクト部13がバッファを選択しなかった場合(S2,N)、セレクタ15は、第2プライオリティセレクト部(第2PS部)14がバッファを選択したか否かの判断を行う(S4)。第2プライオリティセレクト部14によるバッファの選択の動作については後述する。第2プライオリティセレクト部14がバッファを選択した場合、セレクタ15は、第2プライオリティセレクト部14が選択したバッファにセットし(S5)、このフローを終了する。一方、第2プライオリティセレクト部14がバッファを選択しなかった場合(S4,N)、エラー処理を行い(S6)、このフローを終了する。
図3は、実施の形態1に係る第1プライオリティセレクト部の動作の一例を示すフローチャートである。まず、第1プライオリティセレクト部13は、バッファがリリースされたか否かの判断を行う(S11)。バッファがリリースされた場合(S11,Y)、マスクビットベクタ12の対応するマスクビットをセットする(S12)。次に、第1プライオリティセレクト部13は、すべてのバッファがマスクされたか否かの判断を行う。すなわち、マスクビットベクタ12がall”1”となったか否かの判断を行う(S13)。すべてのバッファがマスクされていれば(S13,Y)、マスクビットベクタ12をリセットする(S14)。次に、第1プライオリティセレクト部13は、バッファの選択を行い(S15)、このフローを終了する。
図4は、実施の形態1に係る第1プライオリティセレクト部によるバッファの選択の動作の一例を示すフローチャートである。第1プライオリティセレクト部13は、まず、バッファ0においてV+M=0であるか否かの判断を行う(S21)。すなわち、バッファ0がマスクされていない、かつ未使用か否かの判断を行う。
V+M=0であれば(S21,Y)、バッファ0を選択し(S22)、このフローを終了する。V+M=0でなければ(S21,N)、バッファ1においてV+M=0であるか否かの判断を行う(S23)。V+M=0であれば(S23,Y)、バッファ1を選択し(S24)、このフローを終了する。V+M=0でなければ(S23,N)、バッファ2においてV+M=0であるか否かの判断を行う(S25)。V+M=0であれば(S25,Y)、バッファ2を選択し(S26)、このフローを終了する。V+M=0でなければ(S25,N)、バッファ3においてV+M=0であるか否かの判断を行う(S27)。V+M=0であれば(S27,Y)、バッファ3を選択し(S28)、このフローを終了する。V+M=0でなければ(S27,N)、バッファ4においてV+M=0であるか否かの判断を行う(S29)。V+M=0であれば(S29,Y)、バッファ4を選択し(S30)、このフローを終了する。V+M=0でなければ(S29,N)、いずれのバッファも選択せずに、このフローを終了する。
図5は、実施の形態1に係る第2プライオリティセレクト部14によるバッファの選択の動作の一例を示すフローチャートである。第2プライオリティセレクト部14は、まず、バッファ0においてV=0であるか否かの判断を行う(S31)。すなわち、バッファ0が未使用であるか否かの判断を行う。
V=0であれば(S31,Y)、バッファ0を選択し(S32)、このフローを終了する。V=0でなければ(S31,N)、バッファ1においてV=0であるか否かの判断を行う(S33)。V=0であれば(S33,Y)、バッファ1を選択し(S34)、このフローを終了する。V=0でなければ(S33,N)、バッファ2においてV=0であるか否かの判断を行う(S35)。V=0であれば(S35,Y)、バッファ2を選択し(S36)、このフローを終了する。V=0でなければ(S35,N)、バッファ3においてV=0であるか否かの判断を行う(S37)。V=0であれば(S37,Y)、バッファ3を選択し(S38)、このフローを終了する。V=0でなければ(S37,N)、バッファ4においてV=0であるか否かの判断を行う(S39)。V=0であれば(S39,Y)、バッファ4を選択し(S40)、このフローを終了する。V=0でなければ(S39,N)、バッファ0を選択し(S41)、このフローを終了する。
次に、データバッファ装置の動作の具体例について説明する。
図6A、図6B、図6C、図6D、図6E、図7F、図7Gは、本発明に係るデータバッファ装置の具体的な動作の一例を示す図である。それぞれの図は順に、第1の状態から第7の状態までを示す。ここでも、REQ_QUEUE11におけるバッファの数nは5とし、バッファ番号は0〜4とする。バッファ番号毎に、バッファの状態V、マスクビットの状態M、残留しているデータの識別子D(a,b,c,d,e,f,gのいずれか)を示す。まず、図6Aに示す第1の状態のように、データバッファ装置は初期状態とする。VとMはすべて”0”であり、Dはすべて空である。
次に、図6Bに示す第2の状態のように、1個のリクエストが到着した場合、バッファを1つ使用する。第1プライオリティセレクト部13は、マスクされていない、かつ未使用の最若番のバッファを選択する。ここでは、バッファ0が選択されてV=1となる。
次に、図6Cに示す第3の状態のように、バッファ0の処理が完了した場合、このバッファをリリースし、V=0となる。リリースされると、M=1にする。バッファ0のデータaが残留している。
次に、図6Dに示す第4の状態のように、1個のリクエストが到着した場合、バッファを1つ使用する。第1プライオリティセレクト部13は、マスクされていない、かつ未使用の最若番のバッファであるバッファ1を選択する。
次に、図6Eに示す第5の状態のように、2個のリクエストが到着した場合、バッファを2つ使用する。第1プライオリティセレクト部13は、マスクされていない、かつ未使用の最若番のバッファであるバッファ2とバッファ3を選択する。
次に、図7Fに示す第6の状態のように、バッファ2の処理が完了した場合、このバッファをリリースし、M=1にする。バッファ2のデータbが残留する。
次に、図7Gに示す第7の状態のように、1個のリクエストが到着した場合、バッファを1つ使用する。第1プライオリティセレクト部13は、マスクされていない、かつ未使用の最若番のバッファであるバッファ4を選択する。
図8A、図8B、図8C、図8D、図8E、図9F、図9G、図9H、図9Iは、実施の形態1に係るマスクビットベクタのリセットに関する具体的な動作の一例を示す図である。それぞれの図は順に、第1の状態から第9の状態までを示す。表記方法は図6Aなどと同様である。まず、図8Aに示す第1の状態は、図6Aから図7Fまでの動作を経た後の状態であり、図7Gと同じ状態を表す。
次に、図8Bに示す第2の状態のように、バッファ1とバッファ3の処理が完了した場合、これらのバッファをリリースし、M=1にする。バッファ1のデータc、バッファ3のデータdが残留する。
次に、図8Cに示す第3の状態のように、1個のリクエストが到着した場合、マスクされていない、かつ未使用のバッファが無いため、第2プライオリティセレクト部14は、未使用の最若番であるバッファ0を選択する。
次に、図8Dに示す第4の状態のように、1個のリクエストが到着した場合、マスクされていない、かつ未使用のバッファが無いため、第2プライオリティセレクト部14は、未使用の最若番であるバッファ1を選択する。
次に、図8Eに示す第5の状態のように、バッファ1の処理が完了した場合、このバッファをリリースし、M=1にする。バッファ1のデータeが残留する。
次に、図9Fに示す第6の状態のように、バッファ0の処理が完了した場合、このバッファをリリースし、M=1にする。バッファ0のデータfが残留する。
次に、図9Gに示す第7の状態のように、バッファ4の処理が完了した場合、このバッファをリリースし、M=1にする。バッファ4のデータgが残留する。
次に、図9Hに示す第8の状態のように、マスクビットベクタ12がall”1”となった場合、マスクビットベクタ12をリセットする。すなわち、すべてのMを”0”にする。
次に、図9Iに示す第9の状態のように、1個のリクエストが到着した場合、バッファを1つ使用する。第1プライオリティセレクト部13は、マスクされていない、かつ未使用の最若番のバッファであるバッファ0を選択する。
なお、本実施の形態においては、第1プライオリティセレクト部13がバッファを選択しなかった場合に、第2プライオリティセレクト部14が選択したバッファを、セレクタ15が選択する構成としたが、セレクタ15を省き、第1プライオリティセレクト部13がバッファを選択しなかった場合に、第2プライオリティセレクト部14が選択する構成としても良い。
実施の形態2.
まず、データバッファ装置を備えたキャッシュ装置の構成について説明する。
論理的に空きバッファの存在を保証できる場合は、上述した第2プライオリティセレクト部14とセレクタ15は必須でない。図10は、実施の形態2に係るキャッシュ装置の構成の一例を示すブロック図である。図10において、図1と同一符号は図1に示された対象と同一又は相当物を示しており、ここでの説明を省略する。このキャッシュ装置は、図1におけるデータバッファ装置1の代わりにデータバッファ装置101を備える。データバッファ装置101は、データバッファ装置1におけるマスクビットベクタ12の代わりにマスクビットベクタ112を備え、第1プライオリティセレクト部13の代わりに第1プライオリティセレクト部113を備える。また、データバッファ装置101は、データバッファ装置1における第2プライオリティセレクト部14とセレクタ15を省く。
本実施の形態において、マスクビットベクタ112は、マスク後のバッファに空きがなくなった場合に、リセットされる。
次に、データバッファ装置の動作について説明する。
図11は、実施の形態2に係るデータバッファ装置の動作の一例を示すフローチャートである。まず、第1プライオリティセレクト部113は、バッファがリリースされたか否かの判断を行う(S51)。バッファがリリースされた場合(S51,Y)、マスクビットベクタ112の対応するマスクビットをセットする(S52)。次に、REQ_QUEUE11は、リクエストを受信したか否かの判断を行う(S53)。リクエストを受信していなければ(S53,N)、処理S51へ戻る。次に、第1プライオリティセレクト部113は、未使用のバッファがあるか否かの判断を行う(S54)。未使用のバッファがなければ(S54,N)、エラー処理を行い(S55)、このフローを終了する。
未使用のバッファがあれば(S54,Y)、第1プライオリティセレクト部113は、マスク後のバッファに未使用のバッファがあるか否かの判断を行う(S56)。マスク後のバッファに未使用のバッファがなければ(S56,N)、マスクビットベクタ112をリセットする(S57)。次に、第1プライオリティセレクト部113は、バッファの選択を行い(S58)、選択したバッファにリクエストをセットし(S59)、このフローを終了する。第1プライオリティセレクト部113によるバッファの選択は、上述した実施の形態1における図4と同様の動作を行う。
次に、データバッファ装置の動作の具体例について説明する。
図12A、図12B、図12C、図12D、図12E、図13F、図13G、図13H、図13Iは、実施の形態2に係るマスクビットベクタのリセットに関する具体的な動作の一例を示す図である。それぞれの図は順に、第1の状態から第9の状態までを示す。表記方法は図6Aなどと同様である。まず、図12Aに示す第1の状態は、図6Aから図7Fまでの動作を経た後の状態であり、図7Gと同じ状態を表す。
次に、図12Bに示す第2の状態のように、バッファ1とバッファ3の処理が完了した場合、これらのバッファをリリースし、M=1にする。バッファ1のデータc、バッファ3のデータdが残留する。
次に、図12Cに示す第3の状態のように、マスクされていない、かつ未使用のバッファがなくなったため、マスクビットベクタをリセットする。すなわち、すべてのMを0にする。
次に、図12Dに示す第4の状態のように、1個のリクエストが到着した場合、第1プライオリティセレクト部113は、マスクされていない、かつ未使用の最若番のバッファであるバッファ0を選択する。
次に、図12Eに示す第5の状態のように、1個のリクエストが到着した場合、第1プライオリティセレクト部113は、マスクされていない、かつ未使用の最若番のバッファであるバッファ1を選択する。
次に、図13Fに示す第6の状態のように、バッファ1の処理が完了した場合、これらのバッファをリリースし、M=1にする。バッファ1のデータeが残留する。
次に、図13Gに示す第7の状態のように、バッファ0の処理が完了した場合、これらのバッファをリリースし、M=1にする。バッファ0のデータfが残留する。
次に、図13Hに示す第8の状態のように、バッファ4の処理が完了した場合、これらのバッファをリリースし、M=1にする。バッファ4のデータgが残留する。
次に、図13Iに示す第9の状態のように、1個のリクエストが到着した場合、第1プライオリティセレクト部113は、マスクされていない、かつ未使用の最若番のバッファであるバッファ2を選択する。
実施の形態1における図9Iの状態と実施の形態2図13Iの状態を比較して分かるように、実施の形態2においては、リセット時のペナルティが実施の形態1と比べて小さくなり、データの残留性が向上する。
上述したデータバッファ装置により、回路規模の増加を極力抑えつつ、過去にバッファしたデータの残留性の向上、及びバッファの使用率の均一化を実現する。
n段のバッファに対しn個のラッチという極めて少ない回路で実現でき、必ずしも古い順に消去されるわけではないものの、著しいデータ残留性の向上が見込める。また、バッファの使用率が均一化することから、スクリーニング等の試験においては、バッファを全て使用するまでの時間が決定的となるとともに、プログラムパターンの作成も容易となり、試験効率が向上する。

Claims (5)

  1. データの残留性と使用頻度の均一性を向上するために、バッファを選択して使用するデータバッファ装置であって、
    データの記憶を行い、番号付けされた複数のバッファと、
    バッファ毎にマスクするマスクビットを備え、リリースしたバッファのマスクビットをセットするマスクビットベクタと、
    前記マスクビットベクタによってマスクされていない、かつ未使用のバッファの中から最若番のバッファを選択するプライオリティセレクト部と、
    を備えてなるデータバッファ装置。
  2. 請求項1に記載のデータバッファ装置において、
    マスクされていない、かつ未使用のバッファが無くなった場合に、前記マスクビットベクタがリセットされることを特徴とするデータバッファ装置。
  3. データの残留性と使用頻度の均一性を向上するために、バッファを選択して使用するデータバッファ装置であって、
    データの記憶を行い、番号付けされた複数のバッファと、
    バッファ毎にマスクするマスクビットを備え、リリースしたバッファのマスクビットをセットするマスクビットベクタと、
    前記マスクビットベクタによってマスクされていない、かつ未使用のバッファの中から最若番のバッファを選択する第1プライオリティセレクト部と、
    未使用のバッファの中から最若番のバッファを選択する第2プライオリティセレクト部と、
    前記第1プライオリティセレクト部が選択したバッファと前記第2プライオリティセレクト部が選択したバッファのいずれかを選択するセレクタと、
    を備えてなるデータバッファ装置。
  4. リクエストの残留性と使用頻度の均一性を向上するために、バッファを選択して使用するキャッシュ装置であって、
    リクエストの記憶を行い、番号付けされた複数のバッファと、
    バッファ毎にマスクするマスクビットを備え、リリースしたバッファのマスクビットをセットするマスクビットベクタと、
    前記マスクビットベクタによってマスクされていない、かつ未使用のバッファの中から最若番のバッファを選択するプライオリティセレクト部と、
    前記バッファに記憶されたリクエストを順次処理するリクエスト処理部と、
    前記リクエスト処理部の処理するリクエストに応じてデータの読み出しや書き込みを行うデータ部と、
    を備えてなるキャッシュ装置。
  5. データの残留性と使用頻度の均一性を向上するために、バッファを選択して使用するデータバッファ制御方法であって、
    バッファ毎にマスクするマスクビットを備え、リリースしたバッファのマスクビットをセットするマスクステップと、
    前記マスクステップによってマスクされていない、かつ未使用のバッファの中から最若番のバッファを選択するプライオリティセレクトステップと、
    を備えてなるデータバッファ制御方法。
JP2006546551A 2004-12-02 2004-12-02 データバッファ装置、キャッシュ装置、データバッファ制御方法 Expired - Fee Related JP4456123B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2004/017923 WO2006059384A1 (ja) 2004-12-02 2004-12-02 データバッファ装置、キャッシュ装置、データバッファ制御方法

Publications (2)

Publication Number Publication Date
JPWO2006059384A1 JPWO2006059384A1 (ja) 2008-06-05
JP4456123B2 true JP4456123B2 (ja) 2010-04-28

Family

ID=36564828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006546551A Expired - Fee Related JP4456123B2 (ja) 2004-12-02 2004-12-02 データバッファ装置、キャッシュ装置、データバッファ制御方法

Country Status (3)

Country Link
US (1) US20070245087A1 (ja)
JP (1) JP4456123B2 (ja)
WO (1) WO2006059384A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5430369B2 (ja) * 2009-11-27 2014-02-26 富士通株式会社 バッファメモリ装置、及び、バッファリング方法
CN101783705A (zh) * 2010-02-08 2010-07-21 中兴通讯股份有限公司 一种多光开关切换装置及方法
US9864635B2 (en) 2012-01-06 2018-01-09 Intel Corporation Reducing the number of read/write operations performed by a CPU to duplicate source data to enable parallel processing on the source data
GB2578932B (en) * 2019-02-14 2021-02-24 Imagination Tech Ltd Allocation of memory

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4441155A (en) * 1981-11-23 1984-04-03 International Business Machines Corporation Page controlled cache directory addressing
JPS63284649A (ja) * 1987-05-15 1988-11-21 Fujitsu Ltd キャッシュメモリ制御方法
JP2655464B2 (ja) * 1992-12-25 1997-09-17 日本電気株式会社 パケット交換方式
JPH099029A (ja) * 1995-06-16 1997-01-10 Ricoh Co Ltd ファクシミリ装置

Also Published As

Publication number Publication date
WO2006059384A1 (ja) 2006-06-08
US20070245087A1 (en) 2007-10-18
JPWO2006059384A1 (ja) 2008-06-05

Similar Documents

Publication Publication Date Title
US8583872B2 (en) Cache memory having sector function
JP5030796B2 (ja) データ転送中にキャッシュへのアクセスを制限するシステムおよびその方法
US20080189501A1 (en) Methods and Apparatus for Issuing Commands on a Bus
JP5680511B2 (ja) データ処理装置、トレースユニット、および診断装置
US8892949B2 (en) Effective validation of execution units within a processor
US20060155973A1 (en) Multithreaded hardware systems and methods
CN105359089A (zh) 用于在微处理器中进行选择性重命名的方法和设备
JP4456123B2 (ja) データバッファ装置、キャッシュ装置、データバッファ制御方法
JP2001222442A (ja) パイプライン試験方法、パイプライン試験命令生成方法及びその記憶媒体
WO2004012084A1 (en) Method and apparatus for randomized cache entry replacement
JP4971679B2 (ja) プロセッサシステム及びプロセッサシステムの性能測定方法
KR100780306B1 (ko) 리오더링 장치
JP2017045217A (ja) ログ管理装置、ログ管理方法、およびログ管理プログラム
JP5108690B2 (ja) Dma装置及びdma転送方法
US20220300322A1 (en) Cascading of Graph Streaming Processors
JP6666216B2 (ja) 電子制御装置、解析システム
CN118140214A (zh) 用于重新引用间隔预测高速缓存替换策略的重新引用指示符
JP4731126B2 (ja) 割り込み制御回路
JP2006318092A (ja) 乱数生成エージェント
US20220382581A1 (en) Method, arrangement, and computer program product for organizing the excitation of processing paths for testing a microelectric circuit
US20080122485A1 (en) Semiconductor device
EP1251425A2 (en) Very long instruction word information processing device and system
JP2007156822A (ja) 計算機システムの模擬アプリケーション試験装置
JP4861270B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP2004021896A (ja) キャッシュフィル制御方法及びcpu

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100202

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100204

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees