JP3207591B2 - キャッシュメモリを有する計算機の改良 - Google Patents

キャッシュメモリを有する計算機の改良

Info

Publication number
JP3207591B2
JP3207591B2 JP06003693A JP6003693A JP3207591B2 JP 3207591 B2 JP3207591 B2 JP 3207591B2 JP 06003693 A JP06003693 A JP 06003693A JP 6003693 A JP6003693 A JP 6003693A JP 3207591 B2 JP3207591 B2 JP 3207591B2
Authority
JP
Japan
Prior art keywords
data
processing
command
storage device
cache memory
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 - Lifetime
Application number
JP06003693A
Other languages
English (en)
Other versions
JPH06274414A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP06003693A priority Critical patent/JP3207591B2/ja
Priority to US08/215,109 priority patent/US5706465A/en
Publication of JPH06274414A publication Critical patent/JPH06274414A/ja
Application granted granted Critical
Publication of JP3207591B2 publication Critical patent/JP3207591B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、キャッシュメモリを有
する計算機及び計算機システムに関するものであり、特
に、記憶装置に格納されている大量のデータの処理を、
キャッシュメモリの汚染なしに高速に実行するための、
改良に関する。
【0002】
【従来の技術】通常の計算機において、データを記憶装
置内のある位置から他の位置に転送する場合、命令処理
装置は、まず記憶装置からデータを読み出し、次にそれ
を演算器に送り、そこからデータを記憶装置に書き込
む、という順で処理を進める。このような転送処理の速
度、すなわちデータ転送スループット[byte/sec]
は、1転送動作当たりのデータ処理幅[byte/動作]と
データ処理ピッチ[動作/sec]の積で決まる。したが
って、データ処理幅とデータ処理ピッチの少なくとも一
方を増すことにより、データ転送スループットを上げる
ことができる。
【0003】例えば、特開平2−214937号公報
(以下第1公知例と呼ぶ)には、記憶装置間命令の実行
を高速化するために、キャッシュメモリから読み出され
たデータを、命令処理装置の演算器を介さず、キャッシ
ュメモリ付属の論理演算装置を経て、直接キャッシュメ
モリに書き込むデータパスを有するキャッシュメモリシ
ステムが、開示されている。このシステムは、データを
命令処理装置の演算器まで送る必要がないことに加え
て、キャッシュメモリのデータ幅が命令処理装置の演算
器のデータ幅よりも広いことを利用して、すべてのオペ
ランドが記憶装置内で指定されている命令を、高速で実
行することができる。この第1公知例には、更に、読み
出しデータアドレスと、書き込みデータアドレスと、キ
ャッシュメモリの読み書き境界とに応じてデータの位置
合わせを行う機構と、読み出されたデータの一部をレジ
スタに保持し、それを次に読み出されたデータの一部と
連結して、キャッシュメモリのデータ幅を有する被処理
データを形成する機構も、開示されている。キャッシュ
ミスが生じた場合の処理は記載されていないが、その場
合には、通常のキャッシュメモリの機能に従って、主記
憶からのフェッチとキャッシュメモリへの格納とが行な
われるのであろうと推察される。
【0004】特開平3−37744号公報(以下第2公
知例と呼ぶ)には、ブロック転送命令の実行のために、
データを、CPUを通すことなく、キャッシュメモリと
主記憶の間のデータ転送パスを介して、通常モードにお
けるよりもデータ転送速度の高いバーストモードで転送
する機構が開示されている。すなわち、ソースアドレス
のデータは、キャッシュヒットの場合にはキャッシュメ
モリから、また、キャッシュミスの場合には主記憶から
システムバスを通って、キャッシュ出力バッファに転送
され、次いで、キャッシュ出力バッファからシステムバ
スを通って、主記憶内の宛先アドレスに転送される。通
常モードとバーストモードでは転送プロトコルが異な
り、バーストモードにおけるデータ転送速度は、通常モ
ードにおけるそれよりもかなり高い。したがって、大量
のデータを高速で転送することができる。なお、ソース
アドレスに対してキャッシュミスが生じた時に、主記憶
から読み出されたデータがキャッシュメモリに書き込ま
れるのか否かは、説明されていないが、宛先アドレスに
対してキャッシュヒットが生じた時には、キャッシュメ
モリの入力が無効化されると説明されている。宛先アド
レスに対してキャッシュミスが生じた時には、宛先アド
レスの主記憶データがキャッシュメモリにフェッチされ
ることはないものと理解される。
【0005】また、特開平3−3047号公報(以下第
3公知例と呼ぶ)には、演算回路を内蔵する記憶装置が
開示されている。この演算回路は、オペランドや演算結
果を保持するレジスタを内蔵し、外部からの制御信号に
従って、メモリアドレスで指定されるデータに対する算
術演算を含む各種の演算を、外部にデータを送ることな
しに遂行する。しかしながら、この演算機能付き記憶装
置を制御する命令処理装置については何も説明されてお
らず、したがって、命令処理装置がキャッシュメモリを
持つのか否か、また、記憶装置内に存在するデータの処
理はすべてこの演算機能付き記憶装置の内部で実行され
るのか否かは、全く不明である。更に、この演算機能付
き記憶装置は、マルチプロセッサシステムにおける各プ
ロセッサを代替することを狙ったものであり、この演算
機能付き記憶装置を複数の命令処理装置が共有すること
は、全く考慮されていない。
【0006】
【発明が解決しようとする課題】
問題点1:キャッシュメモリの汚染 主記憶から読み出されたデータがキャッシュメモリに格
納されると、そこにそれまで格納されていたデータは追
い出される。その結果、その後に命令がこの追い出され
たデータを要求すると、そのデータを再度主記憶から読
み出して、キャッシュメモリに格納することが必要にな
る。命令の要求するデータがキャッシュメモリ内に存在
する確率、すなわちヒット率が十分に高くないと、キャ
ッシュメモリの利点は失われる。キャッシュメモリの容
量を超える大量のデータが一度に処理されると、キャッ
シュメモリは、近い将来に再利用される可能性のほとん
どないデータで埋め尽くされてしまう。この現象は、キ
ャッシュ汚染と呼ばれる。キャッシュ汚染が生じると、
キャッシュメモリのヒット率が激減し、計算機の性能は
著しく低下する。
【0007】前掲第1公知例所載の演算機能付きキャッ
シュは、大量のデータの処理の結果生じるキャッシュ汚
染を免れることができない。前掲第2公知例所載のバー
ストモード転送機構は、バーストモード転送中にキャッ
シュミスが生じた時に、キャッシュメモリへのデータ格
納が省略されると仮定すれば、キャッシュ汚染の問題を
生じない。しかしながら、この機構は、単なる転送のた
めのものであって、それ以外の処理を行なうことはでき
ない。前掲第3公知例所載の演算機能付き記憶装置が、
記憶装置を参照するあらゆる処理に用いられれば、キャ
ッシュ汚染は起きない。しかし、それでは、キャッシュ
メモリの設置が意味をなさない。更に、この演算機能付
き記憶装置は、読み書き境界をまたいで伸びるデータを
処理する機能を欠き、そのため、処理しうるデータの位
置が制限される。
【0008】問題点2:キャッシュメモリと演算機能付
き記憶装置の選択的利用 前述のように、第3公知例所載の演算機能付き記憶装置
が、主記憶内のデータをオペランドとして指定するすべ
ての命令を実行すれば、キャッシュ汚染は防止される
が、キャッシュメモリは無意味になる。命令処理装置自
身によるキャッシュメモリを用いた実行と、演算機能付
き記憶装置によるキャッシュメモリを用いない実行とを
選択的に利用しなければ、総合処理性能は逆に低下す
る。
【0009】問題点3:多重命令処理装置システムにお
けるデータの誤用 演算機能付き記憶装置を複数の命令処理装置で共有する
ことが望ましい。しかしながら、幾つかの命令処理装置
からの処理要求が並行して実行される時に、ある命令処
理装置からの処理要求の実行のためにレジスタに保持さ
れたデータが、他の命令処理装置からの処理要求の実行
に際して誤って使われる恐れがある。この問題は、ある
命令処理装置からの一連の処理要求の実行が完了するま
で、他の処理装置からの処理要求の実行を遅らせれば、
回避することができるであろう。しかし、それでは、シ
ステム全体としての処理速度が低下する。
【0010】発明の目的は、上記の諸問題を解決する
ことにある。
【0011】
【課題を解決するための手段】本発明に共通する特徴の
一つは、キャッシュメモリ及び記憶装置との接続を異に
する2個又は3個の演算部と、命令デコーダの出力を受
けて、記憶装置内のアドレスで指定されるオペランドの
状況を判定する手段と、この判定手段の出力に応答し
て、これらの演算部の一つを選択する手段とを設けたこ
とである。すなわち:
【0012】第1の形態では、キャッシュメモリに接続
されてその平常の機能を利用する演算部と、記憶装置に
直結されてそれに直接アクセスする演算部とが設けら
れ、いずれか一方の演算部が選択される
【0013】第2の形態では、キャッシュメモリに接続
されてその平常の機能を利用する演算部と、キャッシュ
メモリに接続されるとともに記憶装置に直結されて、キ
ャッシュメモリがヒットすればそれにアクセスし、キャ
ッシュメモリがミスすれば記憶装置に直接アクセスして
キャッシュメモリをバイパスする演算部とが設けられ、
いずれか一方の演算部が選択される
【0014】第3の形態では、キャッシュメモリに接続
されてその平常の機能を利用する演算部と、記憶装置に
直結されてそれに直接アクセスする演算部と、キャッシ
ュメモリに接続されるとともに記憶装置に直結されて、
キャッシュメモリがヒットすればそれにアクセスし、キ
ャッシュメモリがミスすれば記憶装置に直接アクセスし
てキャッシュメモリをバイパスする演算部とが設けら
れ、これらの演算部のいずれか一つが選択される
【0015】記憶装置の内部にキャッシュメモリの一
種であるワーク記憶が設けられる場合には、このワーク
記憶も、オペランドの状況に応じてその使い方を変更す
るのが有利である。したがって、命令処理装置内の演算
部の他に、記憶装置に直結されて、命令処理装置から送
られる処理要求を、命令処理装置内のキャッシュメモリ
を用いることなく、記憶装置に直接アクセスして実行す
る補助データ処理装置を設け、命令処理装置には、命令
デコーダの出力を受けて、記憶装置内のアドレスで指定
されるオペランドの状況を判定する手段と、この判定手
段の出力に応答して、命令処理装置内の演算部か又は補
助データ処理装置のいずれか一方に処理要求を送る手段
を設け、そして、ワーク記憶には、命令処理装置からの
参照要求に応答してその平常のキャッシュ機能を遂行す
る第1の制御部と、補助データ処理装置からの参照要求
に応答し、ワーク記憶がミスした時に、前記第1の制御
部を抑止して、主記憶に直接アクセスし、そこから読み
出されたデータのワーク記憶への登録を阻止する第2の
制御を設ける。
【0016】本発明によるマルチプロセッサシステム
は、共有記憶装置と複数の命令処理装置とに接続され、
命令処理装置のキャッシュメモリを用いることなく、
憶装置に直接アクセスして命令処理装置から送られる
処理コマンドを実行する補助データ処理装置を備え、
命令処理装置は、命令デコーダの出力を受けて、記憶装
置内のアドレスで指定されるオペランドの状況を判定す
る手段と、この判定手段の出力に応答して、この命令処
理装置の演算回路又は補助データ処理装置のいずれか一
方に処理コマンドを送る手段を含み、補助データ処理装
置は、データ保持手段と、このデータ保持手段のための
管理装置とを含み、データ保持手段は、第1の処理コマ
ンドに従って記憶装置から読み出されたデータの少なく
ともこの第1の処理コマンドで使用されない部分を、第
1の処理コマンドに続く同一命令処理装置からの第2の
処理コマンドが使用できるように保持し、管理手段は、
データ保持手段の第1の処理コマンドへの割り当てと、
第2の処理コマンドによるデータ保持手段内のデータの
使用とを管理する。
【0017】
【0018】
【0019】
【0020】
【0021】
【作用】本発明によれば、オペランドの状況(総長、キ
ャッシュメモリにおける存否、その他)に応じて、キャ
ッシュメモリの使い方が変更される。すなわち、キャッ
シュメモリを利用する通常の演算部や、記憶装置に直結
された演算部や、キャッシュメモリへの新ブロックのデ
ータの登録を省略する演算部のうちの一つが適切に選択
され、その結果、キャッシュメモリが平常通りに使用さ
れ、あるいはキャッシュメモリが使われずに記憶装置が
直接アクセスされ、あるいはキャッシュメモリへの新ブ
ロックの登録が省略される。したがって、キャッシュメ
モリを利用する高速処理と、キャッシュメモリを利用し
ないか又は制限付きでしか利用しない処理とが、適切に
組み合わされて、キャッシュ汚染を防止しつつ、総合処
理性能が改善される。また、記憶装置内のキャッシュメ
モリ(ワーク記憶)においても、本発明によれば、オペ
ランドの状況に応じて、キャッシュメモリへの新ブロッ
クのデータの登録が行なわれたり、省略されたりする。
かくして、問題点1及び2が解決される。
【0022】本発明による補助データ処理装置を有する
マルチプロセッサシステムにおいては、オペランドの状
況に応じて、記憶装置に直接アクセスし、そこから読み
出されたデータを、命令処理装置に送ることなく、補助
データ処理装置の内部で処理する。その結果、命令処理
装置内のキャッシュメモリは使用されず、したがって汚
染されない。のみならず、ある命令処理装置によりデー
タ保持手段に保存された特定のデータが、誤って他の命
令処理装置により使用されないように管理される。かく
して、問題点3が解決される。
【0023】
【0024】
【0025】
【実施例】図1は本発明の第1の実施例を示す。命令処
理装置群2が記憶装置3を共有するマルチプロセッサシ
ステムにおいて、本発明による補助データ処理装置1
が、記憶装置3に直結して設けられる。各命令処理装置
200は、その内部に、命令実行制御回路201、汎用
演算器202、及びキャッシュメモリ又はバッファスト
レージ(BS)203を持つ。記憶装置3は、その内部
に、主記憶(MS)300、複数の記憶装置参照要求を
調停する主記憶制御回路(MS制御回路)301、記憶
一致制御を行なう一致制御回路302、及びデータを各
命令処理装置200へ送りそしてそれから受ける転送制
御回路303を持つ。補助データ処理装置1は、各命令
処理装置200からの処理コマンドに応答して、記憶装
3内のデータを、当該命令処理装置に転送することな
く、それ自身の内部で処理する。
【0026】本実施例において、BS203は、256
B(byte)を単位として、主記憶内のデータの写しを保
持する。この256Bのサイズの領域は以下ブロックと
呼ばれる。ブロックは主記憶300の参照の単位であ
り、したがって、主記憶3000では、一度に1ブロッ
クの読み書きが行なわれる。記憶装置3とBS203と
は、16B幅のデータ線を含む信号線320で接続され
る。BSがミスした時、必要なブロックのアドレスがM
S制御回路301に送られて、主記憶300内の該当す
るブロックからデータが読み出され、転送制御回路30
3により、16Bづつ16回に分けて、BS203に転
送される。書き込みはストアスルー方式で制御され、し
たがって、書き込み処理において、データは主記憶30
0に書き込まれ、かつ、BSがヒットすれば、並行して
BSにも書き込まれる。ブロックのアドレスと、データ
が書き込まれるべきブロック内の領域を示すマーク信号
も、書き込みデータと共に記憶装置3に送られる。
【0027】一致制御回路302は、主記憶300で書
き込み動作が生じたことを検出すると、その書き込みを
要求した命令処理装置以外の命令処理装置に、一致制御
信号線321を介して、書き込みアドレスを含むキャン
セル要求を送り、各BS内の該当するブロックを無効化
する。このような動作は、記憶一致制御と呼ばれる。
【0028】ここで説明するブロックサイズ、データ転
送幅、書き込み制御方法、記憶一致制御方法などは、あ
くまでも説明の便宜上採用された例であって、本発明を
限定するものではないことに注意されたい。
【0029】図2は、命令処理装置200の内部構成を
示す。この命令処理装置は、本発明に従って、状況に応
じて補助データ処理装置1に処理コマンドを送付する機
能を有する。命令実行制御回路201は、実行中の命令
を保持する命令レジスタ220、命令レジスタに保持さ
れた命令を解読する命令解読回路221、後述する第1
オペランド情報(op1)、第2オペランド前半部情報
(op2(0))及び第2オペランド後半部情報(op
2(1))からなるオペランド情報を生成する参照制御
回路222、解読された命令と前記オペランド情報とか
ら処理コマンドを生成するコマンド生成回路223、第
1オペランド、第2オペランド前半部及び第2オペラン
ド後半部の各々について、BSのヒット/ミスを判定す
るBSヒット/ミス判定回路224、オペランドの重複
の有無を判定する重複判定回路225、並びに処理コマ
ンドを汎用演算器制御回路230に送付するか、あるい
は信号線210を介して補助データ処理装置1に送付す
るかを、判定テーブル227を用いて決定するコマンド
送付先決定回路226から構成される。判定テーブル2
27の詳細は、後で説明する。
【0030】BS203は、内部にタグとデータを保持
し、タグと参照アドレスを比較することによりヒット/
ミスを判定する。ヒットが検出されれば、タグに対応す
るデータが参照され、ミスが検出されれば、ブロック転
送要求が信号線320を介して記憶装置3に送られ、そ
れに応じて記憶装置3から送られるデータがBSに格納
される。BSヒット/ミス判定回路224は、BSタグ
一致制御信号線205により、そこのタグがBS203
内のタグと等しく保たれるように制御される。各タグに
は、記憶装置3から一致制御信号線321を通してキャ
ンセル要求が送られる。キャンセル要求で指定されたア
ドレスを含むブロックがBSに登録されていれば、その
ブロックは無効化される。
【0031】参照制御回路222は、命令により与えら
れたオペランドアドレスとBS203のブロックサイズ
“256”とに基づいて、第1オペランド情報、第2オ
ペランド前半部情報及び第2オペランド後半部情報を決
定し、処理コマンドを生成する。複数のブロックにわた
って処理が行なわれる場合には、複数の処理コマンドが
発行される。主記憶300の参照単位はブロックである
ため、第1オペランドは2ブロックにまたがらないよう
に指定される。第1オペランドが2ブロックにまたがら
ないように指定されても、第2オペランドは2ブロック
にまたがる場合がある。この場合に、前のブロックに含
まれる第2オペランドの部分は前半部と呼ばれ、後のブ
ロックに含まれる部分は後半部と呼ばれる。
【0032】図3は、処理コマンド100の形式を示
す。処理コマンド100は複数のフィールドで構成さ
れ、本実施例においては、それらは、そのコマンドが有
効であることを示す有効フラグ101、この処理コマン
ドを発行した命令処理装置の識別番号102、処理コマ
ンドの要求する演算の種類を示すオーダ103、第1オ
ペランドの開始アドレス、長さ等を示す第1オペランド
情報104、第2オペランド前半部の開始アドレス、長
さ等を示す第2オペランド前半部情報105、及び第2
オペランド後半部の開始アドレス、長さ等を示す第2オ
ペランド後半部情報106である。第2オペランドが2
ブロックにまたがらない場合には、前半部情報105又
は後半部情報106のいずれか一方が、第2オペランド
の開始アドレス、長さ等のために用いられる。どちらが
用いられるかによって、後述するように、第2オペラン
ドは若干異なる扱いを受ける。これらのオペランド情報
のそれぞれは、更に、BSのヒット/ミスを示す情報を
含むが、このBSヒット/ミス情報は、本実施例では使
われない。
【0033】図2に戻って、コマンド送付先決定回路2
26が処理コマンドを汎用演算器制御回路230に送付
すると、汎用演算器制御回路230は、処理コマンドに
より指定されたデータをBS203から読み出し、デー
タアライナ204を通して汎用演算器202に送る。B
Sがミスすれば、指定されたデータは、主記憶300か
ら読み出され、BSに登録された後、データアライナ2
04に送られる。汎用演算器202は、演算結果をデー
タアライナ204を通して出力する。本実施例ではスト
アスルー制御が採用されているので、演算結果はBS2
03と主記憶300の双方に送られる。この時、BSが
ヒットすれば演算結果はBSに書き込まれるが、BSが
ミスすれば書き込まれない。汎用演算器202は、ま
た、処理コマンド完了応答を参照制御回路222に送
る。
【0034】一方、コマンド送付先決定回路226が処
理コマンドを補助データ処理装置1に送付すると、補助
データ処理装置1は、処理コマンドに基づいて、第1オ
ペランドと第2オペランドを主記憶300から読み出
し、それらを用いて演算を行なって、演算結果を主記憶
300内の第1オペランド位置に書き込み、信号線21
1を経由して処理コマンド完了応答を返す。
【0035】図1に戻り、補助データ処理装置1は、各
命令処理装置200から処理コマンドを受けてその実行
を制御する制御回路6、記憶装置3へのアクセスを制御
する記憶装置参照制御回路8、主記憶300から読み出
されたデータを用いて演算を行なう演算回路9、及び演
算回路9の内部に一次的に保持されるデータのための管
理情報を保持し、そして操作するタグ回路7で構成され
る。
【0036】制御回路6は、各処理コマンドの実行を複
数のステージに分けて制御する。これらのステージは、
本実施例では、各命令処理装置から送られる処理コマン
ドを保持し、そしてそれらの一つを選択するPステー
ジ、選択された処理コマンドを解読してその要求する処
理を判定するJステージ、第1オペランドを主記憶から
読み出すR1ステージ、第2オペランド前半部を主記憶
から読み出すR20ステージ、第2オペランド後半部を
主記憶から読み出し、そして演算を行なうR21ステー
ジ、及び演算結果を主記憶に書き戻し、そして当該処理
コマンドを発行した命令処理装置に処理コマンド完了応
答を返すWステージで構成される。各命令処理装置から
送られた処理コマンドは、これらのステージに対応して
それぞれ設けられたレジスタ10、20、30、40、
50、及び60を遷移しながら、各ステージに対応した
処理の実行を制御する。Pレジスタ10は、命令処理装
置IないしNにそれぞれ割り当てられた複数のレジスタ
P1ないしPnの集合体である。
【0037】ステージ遷移は、処理コマンド遷移制御回
路21によって制御される。処理コマンド遷移制御回路
21は、主記憶を参照する処理コマンドが、R1ステー
ジ、R20ステージ、R21ステージ、及びWステージ
の全体を通じて高々1個しか存在しないように、相次ぐ
処理コマンドのステージ遷移を制御する。各ステージに
おける処理コマンドの存否は、各ステージに対応するレ
ジスタ内の有効フラグから判定される。また、処理コマ
ンドによる主記憶への参照の有無は、オーダ、第1オペ
ランド情報、第2オペランド前半部情報、及び第2オペ
ランド後半部情報から判定される。図1においては、図
を簡明にするため、各ステージに対応するレジスタへの
セット信号の図示は省略され、また、処理コマンドのス
テージ遷移パスは簡便な形式で表記されている。後でタ
イムチャートを用いて詳述するステージ遷移を参照すれ
ば、当業者は、処理コマンド遷移制御回路21を容易に
実現することができるであろう。
【0038】図4は、処理コマンドのオーダ103に応
じて行なわれる、各処理ステージにおける処理の概要を
示す。オーダに応じてR1ステージ以降のステージでの
処理が変わるので、図4には、R1ステージ、R20ス
テージ、R21ステージ、及びWステージについて、転
送処理、計算処理、及びバイト比較処理が、例として示
されている。
【0039】R1ステージは、第1オペランドを主記憶
から読み出すステージである。第1オペランドを主記憶
から読み出す必要がない場合、例えば転送処理の場合に
は、R1ステージは省略される。R20ステージは、第
2オペランド前半部を含むブロックを主記憶から読み出
すステージである。第2オペランド前半部を主記憶から
読み出す必要がない場合には、R20ステージは省略さ
れる。どのような場合にこのステージが省略されるか
は、後述する動作の説明から明らかになるであろう。R
21ステージは、第2オペランド後半部を含むブロック
を主記憶から読み出し、第2オペランドの前半部と後半
部を連結して第2オペランドデータを形成して、演算を
行なうステージである。R21ステージにおいて、第2
オペランド後半部を主記憶から読み出す必要がない時に
は、読み出し処理が省略されて、連結処理と演算処理の
みが行なわれる。Wステージは、演算結果を第1オペラ
ンドで指定される主記憶の領域に書き込み、処理コマン
ド完了応答を命令処理装置に送るステージである。処理
コマンド完了応答は、演算が正しく実行されたことを示
す信号や、演算結果の状態を示すコンディションコード
を含む。演算結果を主記憶に書き込む必要がない場合、
例えば比較処理の場合には、書き込み処理は省略され
る。
【0040】更に、Wステージでは、R21ステージで
読み出されたブロックのデータが、補助データ処理装置
1の内部に設けられた後述するデータメモリに、一時的
な保存のために書き込まれる。その目的は、第1公知例
と同様に、ある処理コマンドのために読み出したデータ
の一部を次の処理コマンドで使用し、それにより、主記
憶からのデータ読み出しを省略するためである。ただ
し、本発明では、複数の処理装置からの処理コマンドを
並行して実行するため、次に説明するように、データメ
モリは複数のエントリを有し、複数のブロックのデータ
を保持することができる。処理コマンドの第2オペラン
ド前半部で指定されるデータ、がデータメモリのいずれ
かのエントリに保持されていれば、R20ステージは省
略される。
【0041】図1に戻って、補助データ処理装置1内の
演算回路9は、その内部に、第1フェッチデータレジス
タ(FDR1)91、第2フェッチデータレジスタ(F
DR2)92、複数のエントリを有するデータメモリ9
3、データ連結回路94、専用演算器95、及び演算結
果レジスタ96を有する。FDR1(91)とFDR2
(92)は、主記憶から読み出された第1オペランドと
第2オペランドをそれぞれ受け取る。FDR2の内容は
データメモリ93のエントリの一つに書き込まれる。デ
ータ連結回路94は、データメモリ93のエントリの一
つから読み出されたデータの一部と、主記憶から読み出
されたデータの一部を連結して、1ブロック長のデータ
を形成する。専用演算器95は、データ連結回路94の
出力とFDR1内のデータを用いて演算を行ない、その
結果を演算結果レジスタ96に出力する。演算結果は、
条件コード(CC)と、演算結果データ(SDR1)
と、マーク信号(M)とからなる。
【0042】タグ回路7は、その内部に、タグレジスタ
71と、ヒット/ミス判定回路72を有する。タグレジ
スタ71はデータメモリ93と同数のエントリを有し、
各エントリは、有効フラグ(V)、命令処理装置番号
(IP)、及び開始アドレスと長さ(Adr,Len)
を保持する。タグレジスタ71のエントリとデータメモ
リ93のエントリの間には、セレクタ51及び73並び
にエントリ指定情報Tを介して、1対1の対応が保たれ
る。ヒット/ミス判定回路72は、タグレジスタ71を
管理し、特に、制御回路6から送られる命令処理装置番
号と第2オペランド前半部情報を、タグレジスタ71の
各エントリの内容と照合する。
【0043】参照制御信号選択回路33は、R1ステー
ジ、R20ステージ、R21ステージ、及びWステージ
において、主記憶が参照される時に使用される。また、
データメモリアドレス選択回路51は、R21ステージ
とWステージにおいて、その前のステージで主記憶から
読み出されたデータがデータメモリ93に書き込まれる
時に使用され、タグレジスタ書き込み信号選択回路34
は、R20ステージとR21ステージにおいて、主記憶
から読み出されたデータに対応する命令処理装置番号、
開始アドレス、及び長さが、タグレジスタ71に書き込
まれる時に使用される。しかしながら、前述のように、
処理コマンド遷移制御回路21が、主記憶を参照する処
理コマンドはこれらのステージを通じて高々1個しか存
在しないように制御し、したがって、これらの選択回路
のどの一つも、同時に複数の処理コマンドによって使わ
れることはない。
【0044】以上、図1に示されるシステムの構成の概
要を説明した。以下では、具体的な処理の例を用いて、
このシステムの動作を詳細に説明する。システムの構成
の詳細も、以下の動作の説明を通じて明らかにされる。
【0045】図5は、転送処理の一例を概念的に示す。
この例では、命令処理装置Iが、10C0番地から13
5F番地までのデータを2020番地から22BF番地
までに転送し、それと並行して、命令処理装置IIが、3
020番地から30DF番地までのデータを4080番
地から413F番地までに転送する。説明を簡単にする
ために、これらのデータ領域は複数の領域に分割され、
それぞれの領域は、図示のように、符号a1…a6、b
1…b6、A1…A2、及びB1…B2で識別される。
例えば、領域a1は、10C0番地から10FF番地ま
でのデータ領域を示す。また、“−”で数字が連結され
た符号は、連続する複数の領域の全体を示すのに用いら
れる。例えば、“b1−2”は、領域b1と領域b2か
らなる領域、すなわち、2020番地から20FF番地
までのデータ領域を示す。
【0046】前記の転送処理を実行するために、命令処
理装置Iは、T11、T12及びT13で示される処理
コマンドを順に発行する。コマンドT11は、領域a1
と領域a2内のデータを領域b1−2に転送することを
指示し、同様にして、コマンドT12及びT13はそれ
ぞれの転送元アドレスと転送先アドレスを指定し、それ
により、領域a1−6内のデータを領域b1−6に転送
する。また、命令処理装置IIは、コマンドT21及びT
22で示される処理コマンドを順に発行して、領域A1
及びA2内のデータをそれぞれ領域B1及びB2に転送
する。
【0047】コマンドT21において、領域A1が第2
オペランド前半部ではなく第2オペランド後半部で指定
されるのは、コマンドT21により領域A1内のデータ
と同時に読み出される領域A2内のデータを、そのWス
テージでデータメモリ93に保存するためである。コマ
ンドT21の第2オペランド前半部には、無効を示すコ
ード(図において“−”で示す)が設定される。また、
コマンドT22において、領域A2が第2オペランド前
半部で指定されるのは、データメモリに保存されている
領域A2のデータを用い、それにより、R20ステージ
を省略するためである。T22コマンドの第2オペラン
ド後半部には、無効を示すコードが設定される。
【0048】この例においては、3種類のオーダTS、
T及びTRが用いられている。最初の文字“T”は転送
処理を示す。比較処理の場合には“C”、論理和計算の
場合には“O”が、“T”の代りに用いられる。それに
続く文字は一連のコマンドの最初もしくは最後を示し、
最初のコマンドには“S”(Set)、最後のコマンド
には“R”(Reset)が付けられる。唯一のコマン
ド、すなわち最初でかつ最後のコマンドには、“SR”
が付けられる。
【0049】図6は、図1に示される補助データ処理装
置1が図5に示される転送処理を実行する時のタイムチ
ャートである。補助データ処理装置1は、複数の動作サ
イクルを通って処理を進める。1動作サイクルの間に、
処理コマンドは、一つのステージにおける処理が遂行さ
れて、次のステージに遷移することができる。
【0050】まず、命令処理装置Iから送られたコマン
ドT11は、動作サイクル1においてP1レジスタ(1
0)に保持される。この時にはPレジスタ10内に他の
コマンドがないので、コマンドT11は、処理コマンド
選択回路11を通してJレジスタ20に送られる。
【0051】動作サイクル2において、コマンドT11
は、Jレジスタ20に保持される。コマンドT11内の
オーダは“転送処理”を示すので、R1ステージ遷移判
定回路23は、R1ステージを不要と判定して、このコ
マンドをR1ステージ遷移選択回路24の“n”側出力
に送る。続いて、コマンドT11は第2オペランド前半
部情報を持つので、この第2オペランド前半部情報と命
令処理装置番号が、ヒット/ミス判定回路72に送られ
る。タグレジスタ71に有効なエントリが存在しないの
で、ヒット/ミス判定回路72は、エントリ番号“1”
をこのコマンドに割り当てて、タグレジスタがミスした
ことと、エントリ番号“1”が割り当てられたことと
を、R20ステージ遷移判定回路31に知らせる。こう
して割り当てられたエントリ番号は、R20レジスタ4
0のT部にセットされ、そこから、R21レジスタ50
のT部、次いでWレジスタ60のT部へと、処理コマン
ドと共に遷移する。コマンドT11は、R20ステージ
遷移判定回路31により、第2オペランド前半部を主記
憶から読み出すことを必要とすると判定され、R20ス
テージ遷移選択回路32の“y”側出力を経由して、R
20レジスタ40に送られる。
【0052】動作サイクル3において、コマンドT11
は、R20レジスタ40に保持される。領域a1を含む
ブロックのための参照制御信号が、R20レジスタ内の
第2オペランド前半部情報に基づいて生成され、参照制
御信号選択回路33、記憶装置参照制御回路8、及びM
S制御回路301を経由して、主記憶300に送られ
る。主記憶300から読み出された領域a1を含むブロ
ック内のデータは、MS制御回路301及び記憶装置参
照制御回路8を経由して、演算回路9に転送される。M
S制御回路301は、指定されたブロックからデータが
読み出されたことを知らせる記憶装置応答を記憶装置参
照制御回路8に返すので、この応答に基づいて動作サイ
クル3の終了が判定される。なお、動作サイクル3に限
らず、記憶装置を参照するどの動作サイクルも、記憶装
置応答を受けて終了する。記憶装置応答を受けて、コマ
ンドT11はR21レジスタ50に送られ、領域a1を
含むブロックのデータはFDR2(92)に送られる。
また、コマンドT11内の領域a1の開始アドレスと長
さ、及び命令処理装置番号は、タグレジスタ71のエン
トリ1に書き込まれる。同時に、このエントリの有効フ
ラグVは“1”にセットされる。
【0053】動作サイクル4において、コマンドT11
は、R21レジスタ50に保持される。R21レジスタ
内の第2オペランド後半部情報に基づいて、R20ステ
ージと同様な手順で、領域a2を含むブロック(領域a
2−3)内のデータが主記憶300から読み出される。
続いて、FDR2に保持されていた領域a1を含むブロ
ックのデータがデータメモリ93のエントリ1に書き込
まれ、かつ、そのデータと主記憶から読み出された領域
a2−3のデータとが、データ連結回路94に供給され
る。データ連結回路94は、R21レジスタ内の第2オ
ペランド前半部情報と第2オペランド後半部情報とに基
づいて、入力データから領域a1−2のデータを形成
し、専用演算器95に送る。専用演算器95は、R21
レジスタ内のオーダと第1オペランド情報とに基づい
て、演算結果データ、マーク信号及びコンディションコ
ードを生成する。コマンドT11内のオーダは“転送処
理”を示すので、FDR1(91)の内容は無視され
る。記憶装置応答を受けて、コマンドT11はWレジス
タ60に、演算結果は演算結果格納レジスタ96に、領
域a2−3のデータはFDR2に、それぞれ送られる。
領域a2の開始アドレスと長さから計算される領域a3
の開始アドレスと長さ、及び命令処理装置番号は、タグ
レジスタ71のエントリ1に書き込まれる。
【0054】動作サイクル5において、コマンドT11
は、Wレジスタ60に保持される。Wレジスタ内の第1
オペランド情報に基づいて領域b1−2のアドレスが生
成され、演算結果格納レジスタ96に保持されている演
算結果と共に、記憶装置参照制御回路8及びMS制御回
路301を経由して、主記憶300に送られ、そこに演
算結果データが書き込まれる。また、FDR2に保持さ
れていた領域a2−3のデータは、データメモリ93の
エントリ1に書き込まれる。記憶装置応答を受けて、コ
ンディションコードを含む処理コマンド完了応答が、処
理コマンド完了応答分配回路61を経て、この処理コマ
ンドを発行した命令処理装置Iに送られる。演算結果デ
ータが主記憶に書き込まれる時、一致制御回路302
は、MS制御回路301から書き込みアドレスを受け
て、命令処理装置用一致制御信号線321を通して、各
命令処理装置200内のBS203にキャンセル要求を
送る。その結果、各BSにおいて、書き込み動作が生じ
たブロックのデータが存在すれば、そのデータは無効化
され、それにより、主記憶とBSの間のデータ不一致が
防止される。キャンセル要求は、また、補助データ処理
装置用一致制御信号線311を通って補助データ処理装
置1にも送られ、補助データ処理装置内のデータメモリ
93に同じブロックのデータが存在すれば、そのデータ
が無効化される。この無効化処理の詳細は後で説明す
る。
【0055】このようにして、コマンドT11は、領域
a1−2のデータを領域b1−2に転送し、領域a2−
3のデータをデータメモリ93のエントリ1に残す。領
域a2のデータは次のコマンドT12にとって不要であ
り、領域a3のデータのみが保存されれば足りる。それ
にもかかわらず、本実施例では、領域a2のデータもま
たデータメモリ93に書き込まれる。これは、所要領域
(本例では領域a3)のデータのみを抽出する回路が省
略されたためである。しかしながら、タグレジスタ71
には領域a3のための参照情報のみが保持され、かつ、
データ連結回路94は第2オペランド前半部情報(次の
コマンドT12におけるa3)を参照するので、データ
メモリ93内に保持されるデータが領域a2のデータを
も含んでいても、誤りが生じる恐れはない。
【0056】コマンドT12は、コマンドT11が動作
サイクル2においてJレジスタ20に保持されたことに
応じて、動作サイクル3においてP1レジスタに保持さ
れ、続いて、コマンドT11が動作サイクル3において
R20レジスタ40に保持されたことに応じて、動作サ
イクル4においてJレジスタ20に保持される。前述し
たように、処理コマンド遷移制御回路21は、主記憶を
参照する処理コマンドが、R1ステージ、R20ステー
ジ、R21ステージ及びWステージを通じて高々1個し
か存在しないように制御する。その結果、コマンドT1
2は、コマンドT11がWステージを終了すると判定さ
れるまで、処理コマンド遷移制御ゲート22により次の
レジスタへの移動を抑止され、したがって、動作サイク
ル5の終りまでJレジスタ20に留まる。
【0057】動作サイクル5において、コマンドT11
がWステージを終了すると判定されると、コマンドT1
2は処理コマンド遷移制御ゲート22を抜ける。コマン
ドT12内のオーダは“転送処理”を示すので、R1ス
テージ遷移判定回路23は、R1ステージを不要と判定
し、このコマンドをR1ステージ遷移選択回路24の
“n”側出力に送る。ヒット/ミス判定回路72は、コ
マンドT12内の第2オペランド前半部情報(a3)及
び命令処理装置番号を受けて、これらが、タグレジスタ
71のエントリ1に登録されているデータ領域情報及び
命令処理装置番号と、それぞれ一致することを確認し、
タグレジスタがヒットしたことと、第2オペランド前半
部情報で示される領域a3がエントリ1に存在すること
とを、R20ステージ遷移判定回路31に知らせる。動
作サイクル4におけるコマンドT11の処理の結果、動
作サイクル5において、領域a3の開始アドレスと長
さ、及び命令処理装置Iの識別番号が、タグレジスタ7
1のエントリ1に保持されていることに注意されたい。
こうして、コマンドT12は、R20ステージ遷移判定
回路31により、第2オペランド前半部を主記憶から読
み出すことを必要としないと判定され、R20ステージ
遷移選択回路32の“n”側出力を経由して、R21レ
ジスタ50に送られる。ヒット/ミス判定回路72から
伝えられたエントリ番号“1”も、R21レジスタのT
部に送られる。グレジスタがヒットした場合、すなわ
ち、データメモリ93に所要データが存在する場合に、
R20ステージをバイパスするのが、本発明の特徴の一
つである。
【0058】動作サイクル6において、コマンドT12
は、R21レジスタ50に保持される。R21レジスタ
内の第2オペランド後半部情報に基づいて、R20ステ
ージにおけるのと同様な手順により、領域a4−5のデ
ータが主記憶300から読み出される。続いて、領域a
3を含むブロックのデータがデータメモリ93のエント
リ1から読み出される。データ連結回路94は、データ
メモリから読み出されたデータと主記憶から読み出され
たデータとから、領域a3−4のデータを形成して、専
用演算器95に供給する。記憶装置応答に応じて、コマ
ンドT12はWレジスタ60に、演算結果は演算結果格
納レジスタ96に、領域a4−5のデータはFDR2
に、領域a5の開始アドレスと長さ、及び命令処理装置
番号はタグレジスタ71のエントリ1に、それぞれ送ら
れる。
【0059】動作サイクル7において、コマンドT12
は、Wレジスタ60に保持される。コマンドT11の場
合と同様にして、演算結果が主記憶300内の領域b3
−4に書き込まれ、FDR2内の領域a4−5のデータ
がデータメモリ93のエントリ1に書き込まれ、処理コ
マンド完了応答が命令処理装置Iに送られ、更に、記憶
一致制御が行なわれる。このようにして、コマンドT1
2は、領域a3−4のデータを領域b3−4に転送し、
領域a4−5のデータをデータメモリ93に残す。
【0060】他方、命令処理装置IIから送られたコマン
ドT21は、動作サイクル4においてP2レジスタ(1
0)に保持され、コマンドT12がJステージを離れる
までそこに留まり、動作サイクル6においてJレジスタ
20に保持される。以後におけるコマンドT21の処理
は、コマンドT11のそれとほぼ同じである。異なるの
は、第2オペランド前半部が無効であるためにR20ス
テージが不要であること、及びコマンドT21にはエン
トリ2が割り当てられることの2点である。その後コマ
ンドT13、続いてコマンドT22が、コマンドT12
と同様に処理される。
【0061】このようにして、命令処理装置Iは領域a
1−6のデータを領域b1−6に転送することができ、
それと並行して、命令処理装置IIは領域A1−2のデー
タを領域B1−2に転送することができる。データメモ
リ93の異なるエントリが異なる命令処理装置に割り当
てられて、この割り当てがタグ回路7によって示される
ため、命令処理装置Iにより発行された処理コマンド列
と、命令処理装置IIにより発行された処理コマンド列と
は、相互に妨害しあうことなく、独立に実行される。例
えば、命令処理装置Iにより発行されたコマンドT12
とコマンドT13の間に、命令処理装置IIにより発行さ
れたコマンドT21が実行されるにもかかわらず、コマ
ンドT13は、コマンドT12によりデータメモリに保
存されたデータを用いて、その実行の開始が遅れた点を
除けば、あたかもコマンドT21の実行がなかったかの
如くに、正常なステージ遷移を経て実行される。
【0062】以上の説明から明らかなように、本発明に
よる補助データ処理装置1は、命令処理装置200内の
汎用演算器202やBS203を使うことなく、大量の
データの主記憶内転送処理を実行する。BSが使用され
ないため、BSが転送データにより埋め尽くされること
がなく、したがって、キャッシュ汚染に起因する性能低
下は生じない。
【0063】本実施例においては、処理コマンドがデー
タメモリ93に保持されているデータの使用を試みるた
びに、そのアドレスと長さをタグレジスタ71に登録さ
れている情報に基づいて調べることによって、そのデー
タが所望のものか否かが判定される。したがって、すべ
ての処理コマンドでTオーダが用いられても、支障はな
い。また、すべての処理コマンドでTSRオーダが用い
られても、必要なデータが毎回主記憶から読み出される
ことになり、したがって、誤動作は生じない。この場合
には、毎回主記憶からデータを読み出さなければならな
いため、性能は低下するが、タグ回路7やデータメモリ
93がなくても、転送処理を行なえることに注意された
い。例えば、タグ回路7が故障した時に、このような動
作へ切り替えることができる。
【0064】また、タグレジスタ71に命令処理装置番
号及びデータのアドレスと長さが保持されて、それらが
処理コマンド内の対応する情報と照合されるので、間違
ったデーを処理する誤りは確実に防止される。例えば、
ある命令処理装置に割り当てられたエントリが途中で他
の命令処理装置に割り当てられて、その内容が別のデー
タで置き換えられてしまっても、このことは、タグレジ
スタ内の命令処理装置番号又はデータのアドレスと長さ
の、少なくとも一方に反映される。命令処理装置番号が
変わっていれば、他の命令処理装置がデータを置き換え
たことが検出でき、また、データのアドレスと長さが変
わっていれば、必要なデータが存在しないことが検出で
きる。これらの場合には、必要なデータが主記憶から再
度読み出され、それにより、誤処理は防止される。この
事例は、後に図13に示される。しかしながら、命令処
理装置番号又はデータのアドレスと長さのいずれか一方
をタグレジスタに登録するだけでも、大部分の誤処理が
防止できるであろう。
【0065】図7は、比較処理と計算処理の例を概念的
に示す。前述の転送処理では、各処理コマンドにより、
1回のオペランド読み出しと1回の書き込みが行なわれ
る。これと比較すると、比較処理は、2回のオペランド
読み出しが行なわれて書き込みが行なわれない点に特徴
があり、計算処理は、2回のオペランド読み出しと1回
の書き込みが行なわれる点に特徴がある。図1に示され
た補助データ処理装置1は、このような型のデータ参照
を行なう処理も実行することができる。
【0066】この例では、命令処理装置Iは、10C0
番地から129F番地までのデータと2020番地から
21FF番地までのデータを比較し、これと並行して、
命令処理装置IIが、3020番地から315F番地まで
のデータと4080番地から41BF番地までのデータ
の論理和を計算して、その結果を4080番地から41
BF番地までに格納する。命令処理装置Iは、C11及
びC12で示される処理コマンドを順に発行する。これ
らのコマンド内のオーダは“C”で始まっており、これ
は比較を表わす。コマンドC11は、領域a1−2のデ
ータと領域b1−2のデータを比較することを要求し、
コマンドC12は、領域a3−4のデータと領域b3−
4のデータを比較することを要求し、全体として領域a
1−4のデータと領域b1−4のデータを比較する。他
方、命令処理装置IIは、O21及びO22で示される処
理コマンドを順に発行して、それにより、領域A1−3
のデータと領域B1−3のデータの論理和を計算し、結
果を領域B1−3に格納することを要求する。これらの
コマンド内のオーダは“O”で始まっており、これは論
理和計算を表わす。
【0067】図8は、図1に示される補助データ処理装
置1が図7に示される処理を実行する時のタイムチャー
トである。まず、命令処理装置Iから送られたコマンド
C11は、動作サイクル1においてP1レジスタ(1
0)に保持される。この時はPレジスタ10内に他のコ
マンドがないので、コマンドC11は直ちにJレジスタ
20に送られる。
【0068】動作サイクル2において、コマンドC11
は、Jレジスタ20に保持される。コマンドC11内の
オーダは“比較処理”を示すので、R1ステージ遷移判
定回路23は、R1ステージが必要と判定し、このコマ
ンドをR1ステージ遷移選択回路24の“y”側出力に
送る。
【0069】動作サイクル3において、コマンドC11
はR1レジスタ30に保持される。領域b1−2を含む
ブロックのための参照制御信号が、R1レジスタ内の第
1オペランド情報に基づいて生成され、このブロック内
のデータが、主記憶300から読み出されて、FDR1
(91)に転送される。コマンドC11は第2オペラン
ド前半部情報を持つので、この第2オペランド前半部情
報と命令処理装置番号が、ヒット/ミス判定回路72に
送られる。タグレジスタ71に有効なエントリが存在し
ないので、ヒット/ミス判定回路72は、タグレジスタ
がミスしたことと、エントリ1が割り当てられたことと
を、R20ステージ遷移判定回路31に知らせる。コマ
ンドC11は、R20レジスタ40に送られる。
【0070】動作サイクル4において、コマンドC11
は、R20レジスタ40に保持される。領域a1を含む
ブロックのデータが、R20レジスタ内の第2オペラン
ド前半部情報に基づいて主記憶300から読み出され、
演算回路9に転送される。更に、コマンドC11はR2
1レジスタ50に、領域a1を含むブロックのデータは
FDR2(92)に、領域a1の開始アドレスと長さ、
及び命令処理装置番号はタグレジスタ71のエントリ1
に、それぞれ送られる。
【0071】動作サイクル5において、コマンドC11
は、R21レジスタ50に保持される。R21レジスタ
内の第2オペランド後半部情報に基づいて、領域a2−
3のデータが主記憶300から読み出される。続いて、
FDR2に保持されていた領域a1を含むブロックのデ
ータがデータメモリ93のエントリ1に書き込まれ、か
つ、そのデータと主記憶から読み出された領域a2−3
のデータとが、データ連結回路94に供給される。デー
タ連結回路94は、R21レジスタ内の第2オペランド
前半部情報と第2オペランド後半部情報に基づいて、領
域a1−2のデータを形成し、専用演算器95に供給す
る。専用演算器95は、R21レジスタ内のオーダと第
1オペランド情報に基づいて、データ連結回路94から
のデータ(a1−2)とFDR1からのデータ(b1−
2)を比較し、その結果を示すコンディションコード
(CC)を生成する。記憶装置応答に応じて、コマンド
C11はWレジスタ60に、コンディションコードは演
算結果格納レジスタ96に、領域a2−3のデータはF
DR2に、領域a3の開始アドレスと長さ、及び命令処
理装置番号はタグレジスタ71のエントリ1に、それぞ
れ送られる。
【0072】動作サイクル6において、コマンドC11
は、Wレジスタ60に保持される。コマンドC11内の
オーダは比較処理を示すので、主記憶への書き込みは行
なわれず、処理コマンド完了応答が、コンディションコ
ードと共に、この処理コマンドを発行した命令処理装置
Iに送られる。また、FDR2に保持されている領域a
2−3のデータは、データメモリ93のエントリ1に書
き込まれる。このようにして、コマンドC11は、領域
a1−2のデータと領域b1−2のデータを比較する。
【0073】コマンドC11に続いて発行されたコマン
ドC12は、動作サイクル9においてR1レジスタ30
に保持されて、第1オペランド(b3−4)を主記憶3
00からFDR1に読み出し、動作サイクル10におい
て、R20ステージをバイパスして、R21レジスタ5
0に保持される。R20ステージがバイパスされるの
は、第2オペランド前半部で指定される領域a3のデー
タが、データメモリ93のエントリ1に保持されている
ので、主記憶からの読み出しが不要と判定されたからで
ある。このメカニズムの説明は、転送処理の説明におい
て既になされているので、省略する。動作サイクル10
において、第2オペランド後半部情報で指定される領域
a4のデータが主記憶300から読み出され、データメ
モリ93内の領域a3のデータと連結されて、領域a3
−4のデータを形成する。専用演算器95は、このデー
タをFDR1内の領域b3−4のデータと比較する。
【0074】一方、命令処理装置IIから送られたコマン
ドO21は、動作サイクル2においてP2レジスタ(1
0)に保持され、動作サイクル3から動作サイクル5ま
でJレジスタ20に保持される。これは、先に説明した
ように、先行するコマンドC11が、動作サイクル5ま
で主記憶を参照するためである。コマンドO21は、第
1オペランド情報を持ち、したがって、動作サイクル6
においてR1レジスタ30に保持され、領域B1を含む
ブロックのデータを主記憶300からFDR1に読み出
す。それと同時に、エントリ番号“2”が割り当てられ
る。続く動作サイクル7では、コマンドO21が第2オ
ペランド前半部情報を持たないために、R20ステージ
がバイパスされ、コマンドO21はR21レジスタ50
に保持されて、R21ステージの処理が行なわれる。そ
の結果、領域A1−2を含むブロックのデータが読み出
され、領域B1のデータと領域A1のデータの論理和が
計算されて、結果が演算結果格納レジスタ96に送られ
る。動作サイクル8において、コマンドO21はWレジ
スタ60に保持されて、演算結果を主記憶300に書き
込み、領域A1−2を含むブロックのデータをデータメ
モリ93のエントリ2に格納し、そして処理コマンド完
了応答を命令処理装置IIに送る。
【0075】コマンドO21に続いて送られるコマンド
O22は、コマンドC12がR21ステージで最後の主
記憶参照を行なうのを待って、動作サイクル11におい
てR1レジスタ30に保持され、第1オペランド(B2
−3)を主記憶300から読み出す。第2オペランド前
半部情報により指定される領域A2のデータが、データ
メモリ93のエントリ2に保持されているので、R20
ステージはバイパスされる。動作サイクル12におい
て、コマンドO22はR21レジスタに保持されて、第
2オペランド後半部(A3)を主記憶300から読み出
し、データメモリ93のエントリ2内の第2オペランド
前半部(A2)と連結して領域A2−3のデータを形成
し、そしてこれを第1オペランド(B2−3)と比較す
る。
【0076】以上の説明から明らかなように、図1に示
される補助データ処理装置1は、複数の命令処理装置2
00から送られる転送処理、比較処理及び論理和処理を
要求する処理コマンドを受け付けて、それらを独立に処
理することができる。
【0077】これまでの説明において、第1オペランド
は読み出し、書き込み、又は読み出しと書き込みの双方
の対象とすることができ、第2オペランドは読み出しの
みの対象とすることができる。しかしながら、各オペラ
ンドの読み出し/書き込み機能は、これらの組み合わせ
に限られない。これらの機能は、各処理ステージにおい
て主記憶参照制御信号の生成のために使われる、処理コ
マンド内のオペランド指定フィールドを変更することに
より、容易に変更することができる。また、オペランド
の数も2つに限られない。これは、処理コマンドの形式
と処理ステージの段数の選択の問題である。更に、処理
の種類も、転送処理、比較処理及び論理和処理に限られ
ない。適当なオーダコードを他の必要な処理に割り当て
るとともに、必要な演算回路を専用演算器95に付加す
ることは、容易である。
【0078】次に、記憶一致制御が確実に行なわれるこ
とを説明する。図9は、図5に示される転送処理におい
て、記憶装置3から一致制御信号が送られて、データレ
ジスタ93に保持されているデータが無効化された場合
の、タイムチャートである。ここでは、領域a5のデー
タについて、記憶装置から記憶一致制御信号が送られ
て、無効化と再読み出しが行なわれる場合を説明する。
一致制御による無効化が行なわれない場合には、図6の
タイムチャートに示されるように、領域a5のデータ
は、動作サイクル7においてデータメモリのエントリ1
に格納され、動作サイクル10においてそこから読み出
される。したがって、最もクリティカルなのは、動作サ
イクル9において、記憶一致制御が行なわれてこのデー
タが無効化される場合である。よって、この場合のみを
詳細に説明する。
【0079】動作サイクル9において、一致制御回路3
02から、補助データ処理装置用一致制御信号線311
を通して、領域a5に属するアドレス(12E0)が一
致制御アドレスとして伝えられると、記憶装置参照制御
回路8は、そのアドレスを一致制御用タグ制御線81を
通してタグ回路7に送る。ヒット/ミス判定回路72
は、タグレジスタ71の中で、一致制御アドレスに該当
するアドレスを保持しているエントリを探索する。この
場合、エントリ1がヒットする。そこで、ヒット/ミス
判定回路72は、エントリ1のVビットを、有効なデー
タが存在しないことを示す“0”にリセットして、それ
により、エントリ1を無効化する。この動作サイクルの
終り頃、コマンドT13は領域a5の探索を要求する。
しかしながら、ヒット/ミス判定回路72は、領域a5
のアドレス等を保持しているエントリ1が無効化されて
いるので、“ミス”の答えを返し、同時に、この時空い
ている(無効な)エントリ1を、コマンドT13に割り
当てる。
【0080】その結果、コマンドT13は、動作サイク
ル10において、R21ステージに跳ばずに、R20ス
テージに遷移して、領域a4−5のデータを主記憶30
0から読み出す。動作サイクル10では、領域a5の最
新のデータが主記憶に保持されており、したがって、コ
マンドT13は、この最新のデータを用いて処理を行な
うことができる。コマンドT13内の領域a5のアドレ
スと長さ、及び命令処理装置番号は、新たに割り当てら
れたタグレジスタ71のエントリ1に登録される。
【0081】なお、本実施例では、無効化による記憶一
致制御が行なわれるため、データ転送先のデータがBS
に登録されている場合には、そのデータを含むBSエン
トリが無効化されてしまう。このようなことは稀にしか
起きないと予想されるが、そのような事態は、データ転
送先領域がBSにあるか否かを処理コマンドの発行前に
判定することによって、回避することができる。その詳
細は後で説明する。
【0082】次に、命令処理装置200内の汎用演算器
202と本発明による補助データ処理装置1の、選択的
使用を説明する。これらを適切に選択して使用すること
により、キャッシュ汚染を防ぎながら、高速にデータを
処理することができる。この選択機能は、命令処理装置
200の内部に設けられたコマンド送付先決定回路22
6(図2)により、判定テーブル227に従って遂行さ
れる。
【0083】図10は、判定テーブル227の例を示
す。判定テーブル227は、重複判定回路225から送
られるオペランド重複の有無、命令解読回路221から
送られる総データ長と第1オペランドの更新の有無、及
びBSヒット/ミス判定回路224から送られる各オペ
ランドのBSヒット/ミス判定結果に基づいて、処理コ
マンドの送り先を決定する。図において、記号“−”
は、対応する情報の値が判定に無関係であることを表わ
す。
【0084】重複判定回路225は、オペランドが重複
する処理コマンド、すなわち、第1オペランドに書き込
まれるデータが、第2オペランドの読み出しデータにな
る処理コマンドを検出する。このような重複があると、
書き込みデータを第2オペランドに反映させる必要があ
るため、処理が複雑になる。専用演算器95の構造を簡
単にするため、この実施例では、オペランドが重複する
処理コマンドは、重複するオペランドを処理できる汎用
演算器202に送られる。しかし、専用演算器95を重
複するオペランドでも処理できるように構成して、重複
判定回路225を除いてもよい。
【0085】次に、総データ長が、BSの容量に応じて
予め定めまる規定値と比較される。総データ長がBSの
容量よりも十分に小さければ、キャッシュ汚染はあまり
問題にならない。したがって、総データ長が前記規定値
未満ならば、汎用演算器202が選択される。この規定
値が小さいほどキャッシュ汚染防止効果は大きく、その
値は“0”であってもよい。総データ長がこの規定値未
満でなく、かつ、第1オペランドが更新される場合に
は、各オペランドについてBSのヒット/ミスが判定さ
れる。第1オペランドがヒットした場合には、補助デー
タ処理装置1が用いらると、BSに登録されている第1
オペランドが記憶一致制御により無効化されてしまう。
そこで、主記憶からBSへのブロック転送の回数がなる
べく少なくなるように、選択が行なわれる。すなわち、
第1オペランドがヒットし、かつ、第2オペランドの前
半部と後半部の少なくとも一方がヒットする場合には、
汎用演算器202が選択される。なお、第2オペランド
の前半部又は後半部が使われなければ、その部分はヒッ
トと判定される。この場合には、1回のブロック転送処
理が生じうる。
【0086】第1オペランドがヒットし、かつ、第2オ
ペランドの前半部と後半部が共にミスする場合には、汎
用演算器202が用いられると2回のブロック転送処理
が生じるので、補助データ処理装置1が選択される。こ
の場合には、ブロック転送処理が起きない代わりに、B
Sに登録されている第1オペランドが無効化される。そ
の後の処理でこの第1オペランドのデータが必要になっ
た時には、ブロック転送処理が起きるが、この1回のブ
ロック転送で済む。第1オペランドがミスした場合に
は、第1オペランドがBSにないので、補助データ処理
装置1が選択される。また、第1オペランドが更新され
ない場合には、記憶一致制御による無効化は生じないの
で、補助データ処理装置1が選択される。このように、
各オペランドのヒット/ミスに応じて処理コマンドの送
付先を変えることにより、BSのキャッシュ汚染を防ぎ
ながら、高速でデータを処理することができる。
【0087】図10に示される判定テーブルの構成はあ
くまでも一つの例であり、この組み合わせに限られるこ
とはない。例えば、総データ長が規定値以上であれば、
各オペランドのヒット/ミスに係わらず、補助データ処
理装置1が選択されるようにしてもよい。また、第1オ
ペランドが更新され、かつ、それがBSに登録されてい
る場合に、第2オペランドのヒット/ミスに係わらず、
汎用演算器202が選択されるようにしてもよい。更
に、BSの書き込み制御方法(ストアスルー/ストアイ
ン)に応じて、ブロック転送処理の回数が少なくなるよ
うに、判定テーブルの内容を変えることもできる。
【0088】データメモリ93のエントリの数は任意で
あるが、すべての命令処理装置にエントリが公平に割り
当てられて、命令処理装置が相互に干渉することなく独
立して動作できることが望ましい。そのためには、少な
くとも命令処理装置の台数に等しい数のエントリを設け
るのがよい。エントリの数と命令処理装置の数が等しい
場合には、命令処理装置番号とそれに割り当てられるエ
ントリ番号を等しくすることにより、タグレジスタ71
への命令処理装置番号の登録を省略することができる。
【0089】エントリの数が命令処理装置の数よりも少
ない場合には、タグレジスタ71の参照又はそれへの登
録を、オーダの第2以降の文字に応じて制限することが
できる。例えば、文字“R”を含むオーダは最後の主記
憶参照を示すので、たとえそのR21ステージにおいて
データが主記憶から読み出されても、そのデータがデー
タメモリ93に登録されるのを阻止して、割り当てられ
たエントリを解放することができる。データメモリのエ
ントリを極力早く解放して、それを他の命令処理装置に
割り当てることにより、少ないエントリが有効に利用さ
れる。また、タグレジスタに登録された命令処理装置番
号を監視し、1台の命令処理装置にはせいぜい1個のエ
ントリしか割り当てられないように管理して、公平さを
保つことが望ましい。
【0090】図11は、本発明の第2の実施例を示す。
この実施例は、Pレジスタ10とコマンド選択回路11
の間にコマンドマスク回路12が設けられて、補助デー
タ処理装置1を使用中の命令処理装置から送られる処理
コマンドを優先して処理し、それにより、補助データ処
理装置1内のデータメモリの少数のエントリを有効に利
用する点に特徴がある。したがって、この実施例は、デ
ータメモリのエントリの数が、補助データ処理装置1と
接続された命令処理装置200の台数よりも、少ない場
合に適している。コマンドマスク回路12と直接の関係
がない部分は、図1に示されたものと同じなので、図示
されていない。
【0091】図12は、コマンドマスク回路12の詳細
を示す。コマンドマスク回路は、その内部に、補助デー
タ処理装置1の使用が許された命令処理装置の番号を保
持するレジスタ13を持つ。すなわち、レジスタ13
は、補助データ処理装置1内のデータメモリのエントリ
の数“m”と同じ個数のエントリを持ち、そこに、コマ
ンド選択回路11で選択された命令処理装置の番号を保
持する。コマンドマスク回路12は、また、命令処理装
置と1対1対応に設けられ、P1レジスタないしPnレ
ジスタにそれぞれ接続された、サブマスク回路15を持
つ。
【0092】サブマスク回路15のそれぞれは、その内
部に、レジスタ13のエントリと1対1対応に設けられ
た利用可否判定回路16を持つ。利用可否判定回路16
のそれぞれは、その利用可否判定回路が属するサブマス
ク回路に対応する命令処理装置からの処理コマンドと、
レジスタ13の対応するエントリの内容とを受ける。各
利用可否判定回路は、対応する命令処理装置からの処理
コマンド内の命令処理装置番号を、レジスタ13の対応
するエントリに登録された命令処理装置番号と比較し
て、命令処理装置番号が一致し、かつ、その処理コマン
ドが有効な場合、もしくはレジスタ13のそのエントリ
に何も登録されていない場合に、ゲート17を“ON”
にして、その処理コマンドをコマンド選択回路11へ通
す。
【0093】要するに、これらのサブマスク回路15
は、処理コマンドを発行した各命令処理装置の番号を、
レジスタ13に登録されているすべての命令処理装置番
号と比較し、一致が検出された時、もしくはレジスタ1
3に空きエントリがある時に、その処理コマンドをコマ
ンド選択回路11に通す。命令処理装置番号のレジスタ
13への登録と削除は、処理コマンド内のオーダで制御
することができる。例えば、オーダが文字“S”を含む
時にその処理コマンドをレジスタ13に登録し、オーダ
が“R”を含む時に登録を削除すればよい。このような
制御により、一連の処理コマンドが連続して処理される
ことになる。
【0094】図13は、図1に示される補助データ処理
装置1において、データメモリがただ1個のエントリし
か持たない(m=1)場合に、図5に示される転送処理
が実行される時のタイムチャートである。図1に示され
る補助データ処理装置においては、コマンド選択回路
が処理コマンドを到着順に出力する。したがって、命
令処理装置Iからの処理コマンドと命令処理装置IIから
の処理コマンドが、交互にデータメモリを使い、データ
メモリに保持されているデータを置き換えてしまう。そ
の結果、動作サイクル10及び13において、データを
主記憶から再度読み出すことが必要になる。しかしなが
ら、タグレジスタの内容はそれが参照される前に変更さ
れ終わっているため、誤動作は生じないことに注意され
たい。例えば、動作サイクル9において、コマンドT1
3がタグレジスタを参照するが、既にコマンドT21が
タグレジスタの内容を変更してしまつている。
【0095】他方、図14は、図11に示される補助デ
ータ処理装置1において、データメモリがただ1個のエ
ントリしか持たない(m=1)場合に、図5に示される
転送処理が実行される時のタイムチャートである。図1
1に示される補助データ処理装置においては、コマンド
マスク回路12が、先に受け付けられた命令処理装置I
からの処理コマンドを優先して選択し、したがって、コ
マンドT11、コマンドT12及びコマンドT13が連
続して処理される。その結果、主記憶からのデータの再
読み出しが起きず、図13に示された場合よりも処理速
度が高い。ただし、命令処理装置IIからの処理コマンド
の実行の開始は遅れる。
【0096】図15は、本発明の第3の実施例を示す。
この第の実施例は、記憶装置3の内部に、主記憶30
0のデータの写しを保持するワーク記憶(WS)330
を有する点に特徴がある。ワーク記憶と関係のない部分
は、図1と同じなので、その細部が省略されている。ワ
ーク記憶は、命令処理装置内のBSと主記憶の間に存在
する第2のキャッシュメモリと呼ぶことができる。ワー
ク記憶は、その容量はBSよりも大きいが主記憶よりも
小さく、その速度はBSよりも低いが主記憶よりも高い
という特徴を持つ。主記憶とワーク記憶に関する書き込
み動作は、例えば、ストアイン方式で制御されてよい。
必要なデータがワーク記憶にあれば、主記憶のアクセス
時間が見かけ上短縮される。したがって、ワーク記憶を
設けることにより、本発明による補助データ処理装置の
処理速度が増大し、その結果、システムの処理速度が更
に改善される。主記憶のアクセス時間が見かけ上短縮さ
れても、補助データ処理装置1の動作順序は第1の実施
例のそれと変わらない。
【0097】必要なデータがワーク記憶にない場合に
は、主記憶からワーク記憶にそのデータを書き込んでか
ら参照するのが普通である。しかし、別の方法も可能で
ある。例えば、ちょうど1ブロックに対応するデータが
補助データ処理装置から書き込まれる時には、主記憶か
らの読み出しを省略して、ワーク記憶内の確保されたブ
ロックにだけ書き込んでもよい。なぜなら、この場合に
は、主記憶から読み出されたブロックのデータの全体
が、補助データ処理装置からのデータで置換されるから
である。
【0098】次に、ワーク記憶(WS)330について
もキャッシュ汚染を防止する方法を説明する。例えば、
前述した補助データ処理装置1に加えて、主記憶に直結
する第2の補助データ処理装置を付加し、ワーク記憶の
ヒット/ミスに応じて、処理コマンドの送付先を第1の
補助データ処理装置と第2の補助データ処理装置の間で
切り替えることができる。この機構はこれまでの説明か
ら容易に理解できると思われるので、その詳細の説明は
省略する。以下では、ワーク記憶がミスした時に主記憶
から読み出されるデータのワーク記憶への登録を、参照
要求の発行元に応じて許容又は禁止し、それによりワー
ク記憶のキャッシュ汚染を防止する機構を説明する。
【0099】図16は、前記のキャッシュ汚染防止機構
を備えたワーク記憶(WS)330の構成を示す。この
ワーク記憶は、参照(読み出し又は書き込み)要求を保
持する参照要求保持レジスタ333、ワーク記憶データ
を格納するワーク記憶キャッシュ334、参照要求の種
類とワーク記憶キャッシュのヒット/ミス判定結果とに
応じて参照先を決定する参照先決定回路335、ワーク
記憶キャッシュがミスした時に、主記憶300からデー
タを転送して、ワーク記憶キャッシュ334に登録する
WSミス制御回路336、主記憶300への参照制御信
号を選択する主記憶制御信号選択回路337、書き込み
データの転送先をワーク記憶キャッシュ334と主記憶
300の間で切り替えるデータ書き込み先選択回路33
8、及び主記憶300から読み出されたデータが、ワー
ク記憶キャッシュ334に書き込まれるか又はそれをバ
イパスするかを制御する、読み出しデータ転送先選択回
路339から構成される。ワーク記憶キャッシュ334
に保持されるデータの単位は、BS203と同じく25
6Bである。
【0100】図17は、参照先決定回路335の内部に
設けられる判定テーブル400の例を示す。判定テーブ
ル400は、参照要求の種類とワーク記憶キャッシュの
ヒット/ミスとに応じて、ワーク記憶キャッシュ334
へのデータ登録と、データ転送経路とを制御する。本実
施例におけるワーク記憶330は、ストアイン型であ
る。参照要求元と参照の型を識別するために、4種類の
参照要求が用意される。通常読み出し要求と通常書き込
み要求は、命令処理装置200内のBS202により発
行され、直接読み出し要求と直接書き込み要求は、補助
データ処理装置1により発行される。図中の“データの
流れ”の欄において、括弧で囲まれた部分は、最初に行
なわれる付加的処理を示す。例えば、通常読み出し要求
の処理においてワーク記憶(WS)がミスした場合に
は、まず、必要なデータが主記憶(MS)からワーク記
憶(WS)に転送されて、そこに登録され、その後に、
そのデータが参照要求元に転送される。
【0101】命令処理装置からの、通常読み出し要求か
又は通常書き込み要求が実行される時に、ワーク記憶が
ミスすると、指定されたアドレスのデータが主記憶30
0から読み出されて、ワーク記憶キャッシュ334に登
録され、その後に、要求された動作が実行される。ワー
ク記憶はストアイン型であるため、主記憶から読み出さ
れたデータがワーク記憶キャッシュに登録される時に、
それまでワーク記憶キャッシュに格納されていたデータ
が主記憶に書き戻されることがある。これらの動作は、
WSミス制御回路336により制御される。
【0102】補助データ処理装置からの、直接読み出し
要求か又は直接書き込み要求が実行される時には、ワー
ク記憶のヒット/ミスに応じて、参照先が切り替えられ
る。ワーク記憶がヒットした場合の処理は、通常読み出
し要求又は通常書き込み要求の処理と同じである。直接
読み出し要求の処理においてワーク記憶がミスした場合
には、主記憶にデータ転送要求が送られ、主記憶から送
られるデータは、ワーク記憶キャッシュに書き込まれ
ず、それをバイパスして、参照要求発行元に転送され
る。WSミス制御回路336を介さないで主記憶にデー
タ転送要求を送るために、主記憶制御信号選択回路33
7が設けられており、主記憶から送られるデータにワー
ク記憶キャッシュをバイパスさせるために、読み出しデ
ータ転送先選択回路339が設けられている。直接書き
込み要求の処理においてワーク記憶がミスした場合に
は、書き込みデータは、ワーク記憶キャッシュに書き込
まれず、それをバイパスして、主記憶に書き込まれる。
書き込みデータにワーク記憶キャッシュをバイパスさせ
るために、データ書き込み先選択回路338が設けられ
ている。これらの選択回路は、参照先決定回路335に
より制御される。このようにして、ワーク記憶がミスし
た時に主記憶から読み出されるデータのワーク記憶への
登録が、参照要求発行元に応じて許容又は禁止され、そ
れにより、ワーク記憶のキャッシュ汚染が防止される。
【0103】ワーク記憶へのデータ登録を制御する前記
の技法は、BSに応用しても有効である。すなわち、命
令処理装置の内部に、直接読み出し要求及び直接書き込
み要求を発行する回路を設け、それにより、BSがミス
した時にBSをバイパスしてワーク記憶又は主記憶を直
接参照して、BS又はワーク記憶のキャッシュ汚染を防
ぐことが可能である。
【0104】図18は、前記のように変更された命令処
理装置200の構成の一例を示す。図2で用いられてい
るのと同じ参照数字は、同等のコンポーネントを表わ
す。図2に示されるコンポーネントに加えて、補助演算
器206、補助演算器制御回路240、データ転送先選
択回路244及びBSバイパスデータ線245が設けら
れる。主記憶は256Bのブロックを単位として参照さ
れるのに、汎用演算器202は256B幅のデータメモ
リを持たないので、比較処理など二つの主記憶データを
必要とする処理や、2個のブロックにまたがるデータの
処理を遂行することができない。そこで、256B幅の
データメモリを持つ補助演算器206が設けられる。補
助演算器206と補助演算器制御回路240は、全体と
して、第1図に示された補助データ処理装置1と同様に
構成され、それにより、転送処理や計算処理を汎用演算
器によるよりも高速で処理する。また、内部に保持する
データに対して記憶一致制御が行なわれるので、複数台
の命令処理装置が存在しても誤動作は生じない。ただ
し、データは命令処理装置200と記憶装置3の間で1
6Bずつ転送されるために、補助演算器206には、1
6Bずつ到来するデータを256Bのデータブロックに
まとめ、そして、256Bのデータブロックを16Bず
つ送出する回路が設けられる。
【0105】補助演算器制御回路240は、BSがヒッ
トすればBS203に参照要求(243)を送り、BS
がミスすれば記憶装置3に直接読み出し要求又は直接書
き込み要求(242)を送る。このように参照要求送付
先を切り替えるために、補助演算器制御回路240は、
図16に示された参照先決定回路335及び主記憶制御
信号選択回路337と同様な回路を含む。参照の型(読
み出し/書き込み)は処理コマンド内のオーダに基づい
て決定され、また、図3を参照して説明したように、処
理コマンド内の各オペランド情報はBSヒット/ミス情
報を含むので、これらの情報に従って参照要求送付先が
切り替えられる。データ転送先選択回路244は、補助
演算器制御回路240が直接読み出し要求を発行した時
に、記憶装置3から送られるデータにBS203をバイ
パスさせる。BS203はストアスルー型なので、デー
タ書き込み先選択回路は必要がない。
【0106】コマンド送付先決定回路228は、処理コ
マンドの送付先を、補助データ処理装置1、汎用演算器
制御回路230及び補助演算器制御回路240の中から
選択する。したがって、その判定テーブル229の内容
は、図2及び15に示された判定テーブル227のそれ
とは若干異なる。図19は、図18に示される判定テー
ブル229の例を示す。図10に示される判定テーブル
227(図2)との相違点は、キャッシュ汚染が予防さ
れるので、総データ転送長と規定値の比較が省略される
ことと、更新されるべき第1オペランドがBSヒットを
示せば、無効化によるブロック再転送を避けるために、
第2オペランドのヒット/ミスにかかわらず補助演算器
が選択されることの、2点である。第1オペランドがB
Sヒットを示し、かつ、第2オペランドがBSミスを示
す時には、主記憶から第2オペランドが2回(前半部と
後半部)転送される場合が生じるかも知れない。しか
し、BSへの登録が行なわれないため、キャッシュ汚染
は起きない。第1オペランドが更新されないか又はBS
ミスを示す場合には、補助データ処理装置1を用いるこ
とにより、高速に、かつ、キャッシュ汚染を起こすこと
なく、そのコマンドを処理することができる。
【0107】図20は、図16に示されたキャッシュ汚
染防止機構付きワーク記憶と、図18に示された補助演
算器付き命令処理装置とが採用された計算機システムに
おいて、参照要求と、BS及びワーク記憶(WS)のヒ
ット/ミスとの組み合せに従って選択される、データ転
送制御の型を示す。通常読み出し要求の場合には、B
S、次いでWSの順にヒット/ミスが判定され、ヒット
すれば、ヒットしたキャッシュメモリからデータが読み
出され、ヒットしなければ、データが下位メモリ(MS
又はWS)から上位メモリ(WS又はBS)に順次転送
されて、登録後に読み出される。通常書き込み要求の場
合には、BSがストアスルー型のため、BSにはそれが
ヒットした場合にのみデータが書き込まれ、WSにはB
Sのヒット/ミスにかかわらずデータが書き込まれる。
WSがストアイン型のため、WSがミスした時には、指
定されたアドレスのデータがMSから読み出されてWS
に登録された後に、WSへの書き込みが行なわれる。直
接読み出し要求の場合には、BS、次いでWSの順にヒ
ット/ミスが判定されて、ヒットすれば、ヒットしたキ
ャッシュメモリからデータが読み出され、ヒットしなけ
れば、データは下位メモリから上位メモリに順次転送さ
れるが、BSやWSに登録はされない。直接書き込み要
求の場合には、BSにはそれがヒットした場合にのみデ
ータが書き込まれ、WSにはそれがヒットすればデータ
が書き込まれるが、WSがミスすれば、データはMSに
直接書き込まれる。このように処理コマンドの送付先と
データ転送制御を切り換えることにより、キャッシュ汚
染を一層有効に防ぐことができる。
【0108】本発明による補助データ処理装置を含む計
算機システムにおいて、命令処理装置の台数は任意であ
り、1台であってもよい。また、本発明による補助デー
タ処理装置を含む計算機システムでは、補助データ処理
装置により処理されるデータの流れるデータ線の幅が広
ければ、それだけ処理速度が増大する。本実施例では、
主記憶から読み出されるデータの単位が256Bなの
で、データ線の幅を256Bにすることが望ましい。
【0109】
【発明の効果】本発明によれば、記憶装置に直接アクセ
スして処理を実行する演算部、及びキャッシュミスが生
じた時にキャッシュメモリをバイパスする演算部が、キ
ャッシュメモリの汚染を防ぎ、しかも、これらの演算部
と通常の演算部とが、オペランドの状況に依存して選択
的に使用される。したがって、キャッシュ汚染に起因す
る処理性能の低下が防止されるのみならず、キャッシュ
メモリの利点を十分に享受することができる
【0110】更に、キヤッシュミスが生じた時にキャッ
シュメモリをバイパスする機構を記憶装置内のワーク記
憶に設ければ、ワーク記憶のキャッシュ汚染が防止され
る。
【0111】本発明によるマルチプロセッサシステムに
おいては、記憶装置に直結された補助データ処理装置
複数の命令処理装置が共有し、各命令処理装置が、オペ
ランドの状況に応じて、その内部の演算回路又は補助デ
ータ処理装置を選択的に使用することにより、各命令処
理装置内のキャッシュメモリの汚染を防止することがで
き、その際、ある命令処理装置により補助データ処理装
置内に一時的に保存されたデータが、誤って他の命令処
理装置により使用されることは、防止される。
【0112】
【0113】
【0114】
【図面の簡単な説明】
【図1】本発明の第1の実施例を示すブロックダイヤグ
ラム。
【図2】図1中の命令処理装置の内部構成の一例を示す
ブロックダイヤグラム。
【図3】処理コマンドの形式の一例を示す図。
【図4】処理の種類と処理ステージの対応を示す図。
【図5】転送処理の一例を概念的に示す図。
【図6】図5に示された転送処理の実行のタイムチャー
ト。
【図7】比較処理及び論理和処理の一例を概念的に示す
図。
【図8】図7に示された比較処理及び論理和処理の実行
のタイムチャート。
【図9】記憶一致制御が働いた場合の転送処理の実行の
タイムチャート。
【図10】処理コマンドの送付先を決定するための判定
テーブルの一例を示す図。
【図11】本発明の第2の実施例の特徴を示すブロック
ダイヤグラム。
【図12】図11中のコマンドマスク回路の内部構成を
示すブロックダイヤグラム。
【図13】単一エントリのデータメモリが設けられた場
合の第1の実施例における転送処理の実行のタイムチャ
ート。
【図14】単一エントリのデータメモリが設けられた場
合の第2の実施例における転送処理の実行のタイムチャ
ート。
【図15】本発明の第3の実施例の特徴を示すブロック
ダイヤグラム。
【図16】図15中のワーク記憶の改良を示すブロック
ダイヤグラム。
【図17】図16に示されたワーク記憶内の判定テーブ
ルの一例を示す図。
【図18】命令処理装置の内部構成の他の例を示すブロ
ックダイヤグラム。
【図19】図18に示された命令処理装置内の判定テー
ブルを示す図。
【図20】各種の条件下におけるデータ転送の態様を示
す図。
【符号の説明】
1…補助データ処理装置、2…命令処理装置群、3…記
憶装置、6…補助データ処理装置制御回路、7…データ
メモリ管理用タグ回路、8…記憶装置参照制御回路、9
…補助データ処理装置演算回路、10…処理コマンド受
付ステージレジスタ、11…処理コマンド選択回路、1
2…処理コマンドマスク回路、13…命令処理装置番号
レジスタ、15…命令処理装置に対応して設けられる処
理コマンドマスクサブ回路、16…命令処理装置番号レ
ジスタに対応して設けられる利用可否判定回路、20…
処理コマンド解読ステージレジスタ、21…処理コマン
ド遷移制御回路、23…R1ステージ遷移判定回路、3
0…第1オペランド読み出し(R1)ステージレジス
タ、31…R20ステージ遷移判定回路、40…第2オ
ペランド前半部読み出し(R20)ステージレジスタ、
50…第2オペランド後半部読み出しステージレジス
タ、60…演算結果書き込みステージレジスタ、71…
タグレジスタ、72…ヒット/ミス判定回路、91…第
1フェッチデータレジスタ、92…第2フェッチデータ
レジスタ、93…データメモリ、94…データ連結回
路、95…補助データ処理装置専用演算器、96…演算
結果格納レジスタ、100…処理コマンド、101…有
効性フラグ、102…命令処理装置番号、103…オー
ダ、104…第1オペランド情報、105…第2オペラ
ンド前半部情報、106…第2オペランド後半部情報、
200…命令処理装置、202…命令処理装置汎用演算
器、203…キャッシュメモリ(BS)、206…命令
処理装置内補助演算器、223…コマンド生成回路、2
24…BSヒット/ミス判定回路、226、228…コ
マンド送付先決定回路、227、229…判定テーブ
ル、244…データ転送先選択回路、300…主記憶
(MS)、330…ワーク記憶(WS)、333…参照
要求保持レジスタ、334…ワーク記憶キャッシュ、3
35…参照先決定回路、336…WSミス制御回路、3
37…主記憶制御信号選択回路、338…データ書き込
み先選択回路、339…読み出しデータ転送先選択回
路。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI G06F 15/16 620 G06F 15/16 620A (56)参考文献 特開 昭53−126828(JP,A) 特開 昭61−156345(JP,A) 特開 平2−250173(JP,A) 特開 平4−199244(JP,A) 特開 昭49−112539(JP,A) 特開 昭57−161937(JP,A) 特開 昭63−234336(JP,A) 特開 昭54−151330(JP,A) 特開 平4−96825(JP,A) 特開 平2−242429(JP,A) 特開 昭59−32045(JP,A) 特開 昭58−189738(JP,A) 特開 昭59−60658(JP,A) 特開 昭59−123936(JP,A) 特開 平4−148253(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 - 12/12 G06F 12/00 550 - 12/06 G06F 9/38 G06F 9/30 - 9/355 G06F 9/40 - 9/42 G06F 15/16 - 15/177

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】記憶装置と、前記記憶装置内のデータの一
    部の写しを保持するためのキャッシュメモリと、前記キ
    ャッシュメモリに接続されてその平常の機能を利用する
    第1の演算部と、前記記憶装置に直結されてそれに直接
    アクセスする第2の演算部と、命令デコーダの出力を受
    けて、前記記憶装置内のアドレスで指定されるオペラン
    ドの状況を判定する手段と、前記判定手段の出力に応答
    して、前記第1の演算部又は第2の演算部のいずれか一
    方を命令の実行のために選択する手段とを含む、計算
    機。
  2. 【請求項2】 記憶装置と、前記記憶装置内のデータの
    一部の写しを保持するためのキャッシュメモリと、前記
    キャッシュメモリに接続されてその平常の機能を利用す
    る第1の演算部と、前記キャッシュメモリに接続される
    とともに前記記憶装置に直結されて、前記キャッシュメ
    モリがヒットすればそれにアクセスし、前記キャッシュ
    メモリがミスすれば前記記憶装置に直接アクセスして前
    記キャッシュメモリをバイパスする第2の演算部と、命
    令デコーダの出力を受けて、前記記憶装置内のアドレス
    で指定されるオペランドの状況を判定する手段と、前記
    判定手段の出力に応答して、前記第1の演算部又は第2
    の演算部のいずれか一方を命令の実行のために選択する
    手段とを含む、計算機。
  3. 【請求項3】 記憶装置と、前記記憶装置内のデータの
    一部の写しを保持するためのキャッシュメモリと、前記
    キャッシュメモリに接続されてその平常の機能を利用す
    る第1の演算部と、前記記憶装置に直結されてそれに直
    接アクセスする第2の演算部と、前記キャッシュメモリ
    に接続されるとともに前記記憶装置に直結されて、前記
    キャッシュメモリがヒットすればそれにアクセスし、前
    記キャッシュメモリがミスすれば前記記憶装置に直接ア
    クセスして前記キャッシュメモリをバイパスする第3の
    演算部と、命令デコーダの出力を受けて、前記記憶装置
    内のアドレスで指定されるオペランドの状況を判定する
    手段と、前記判定手段の出力に応答して、前記第1の演
    算部、第2の演算部又は第3の演算部のいずれか一つを
    命令の実行のために選択する手段とを含む、計算機。
  4. 【請求項4】 命令処理装置と補助データ処理装置と記
    憶装置とを有し、 前記命令処理装置は、前記記憶装置内のデータの一部の
    写しを保持するための第1のキャッシュメモリと、前記
    第1のキャッシュメモリに接続された演算部と、命令デ
    コーダの出力を受けて、前記記憶装置内のアドレスで指
    定されるオペランドの状況を判定する手段と、前記判定
    手段の出力に応答して、前記演算部又は前記補助データ
    処理装置のいずれか一方に処理要求を送る手段とを含
    み、 前記補助データ処理装置は、前記記憶装置に直結され
    て、前記命令処理装置から送られる処理要求を、前記第
    1のキャッシュメモリを用いることなく、前記記憶装置
    に直接アクセスして実行し、 前記記憶装置は、主記憶及び前記主記憶内のデータの一
    部の写しを保持するための第2のキャッシュメモリを含
    み、前記第2のキャッシュメモリを介して前記命令処理
    装置と接続され、前記第2のキャッシュメモリは、前記
    命令処理装置からの参照要求に応答してその平常のキャ
    ッシュ機能を遂行する第1の制御部と、前記補助データ
    処理装置からの参照要求に応答し、前記第2のキャッシ
    ュメモリがミスした時に、前記第1の制御部を抑止し
    て、前記主記憶に直接アクセスし、そこから読み出され
    たデータの前記第2のキャッシュメモリへの登録を阻止
    する第2の制御部とを含む、 計算機。
  5. 【請求項5】それぞれがキャッシュメモリとそれに接続
    された演算回路とを内蔵する複数の命令処理装置、前記
    複数の命令処理装置に共有される記憶装置、及び前記記
    憶装置と前記複数の命令処理装置とに接続され、前記命
    令処理装置から送られる処理コマンドを、前記キャッシ
    ュメモリを用いることなく、前記記憶装置に直接アクセ
    スして実行する補助データ処理装置を備え、 各前記命令処理装置は、更に、命令デコーダの出力を受
    けて、前記記憶装置内のアドレスで指定されるオペラン
    ドの状況を判定する手段と、前記判定手段の出力に応答
    して、当該命令処理装置内の演算回路又は前記補助デー
    タ処理装置のいずれか一方に処理コマンドを送る手段と
    を含み、 前記補助データ処理装置は、データ保持手段と、前記デ
    ータ保持手段のための管理装置とを含み、前記データ保
    持手段は、第1の処理コマンドに従って前記記憶装置か
    ら読み出されたデータの少なくとも前記第1の処理コマ
    ンドで使用され ない部分を、前記第1の処理コマンドに
    続く同一命令処理装置からの第2の処理コマンドが使用
    できるように保持し、前記管理手段は、前記データ保持
    手段の前記第1の処理コマンドへの割当てと、前記第2
    の処理コマンドによる前記データ保持手段内のデータの
    使用とを管理する、計算機システム。
JP06003693A 1993-03-19 1993-03-19 キャッシュメモリを有する計算機の改良 Expired - Lifetime JP3207591B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP06003693A JP3207591B2 (ja) 1993-03-19 1993-03-19 キャッシュメモリを有する計算機の改良
US08/215,109 US5706465A (en) 1993-03-19 1994-03-21 Computers having cache memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06003693A JP3207591B2 (ja) 1993-03-19 1993-03-19 キャッシュメモリを有する計算機の改良

Publications (2)

Publication Number Publication Date
JPH06274414A JPH06274414A (ja) 1994-09-30
JP3207591B2 true JP3207591B2 (ja) 2001-09-10

Family

ID=13130449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06003693A Expired - Lifetime JP3207591B2 (ja) 1993-03-19 1993-03-19 キャッシュメモリを有する計算機の改良

Country Status (2)

Country Link
US (1) US5706465A (ja)
JP (1) JP3207591B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100243100B1 (ko) * 1997-08-12 2000-02-01 정선종 다수의 주프로세서 및 보조 프로세서를 갖는 프로세서의구조 및 보조 프로세서 공유 방법
US6578110B1 (en) 1999-01-21 2003-06-10 Sony Computer Entertainment, Inc. High-speed processor system and cache memories with processing capabilities
JP4656565B2 (ja) * 1999-01-21 2011-03-23 株式会社ソニー・コンピュータエンタテインメント 高速プロセッサシステム、これを使用する方法及び記録媒体
US6442653B1 (en) * 1999-06-24 2002-08-27 International Business Machines Corporation Data processing system, cache, and method that utilize a coherency state to indicate the latency of cached data
US6408362B1 (en) 1999-06-24 2002-06-18 International Business Machines Corporation Data processing system, cache, and method that select a castout victim in response to the latencies of memory copies of cached data
US6938126B2 (en) * 2002-04-12 2005-08-30 Intel Corporation Cache-line reuse-buffer
US7203798B2 (en) * 2003-03-20 2007-04-10 Matsushita Electric Industrial Co., Ltd. Data memory cache unit and data memory cache system
US7392399B2 (en) * 2003-05-05 2008-06-24 Sun Microsystems, Inc. Methods and systems for efficiently integrating a cryptographic co-processor
JP4462852B2 (ja) 2003-06-23 2010-05-12 株式会社日立製作所 ストレージシステム及びストレージシステムの接続方法
US7237065B2 (en) * 2005-05-24 2007-06-26 Texas Instruments Incorporated Configurable cache system depending on instruction type
JP5157424B2 (ja) * 2007-12-26 2013-03-06 富士通セミコンダクター株式会社 キャッシュメモリシステム及びキャッシュメモリの制御方法
JP2011008731A (ja) 2009-06-29 2011-01-13 Fujitsu Ltd キャッシュメモリ装置、半導体集積回路および演算処理装置
JP2011028343A (ja) * 2009-07-22 2011-02-10 Fujitsu Ltd 演算処理装置、およびデータ転送方法
US8972645B2 (en) * 2012-09-19 2015-03-03 Hewlett-Packard Development Company, L.P. Request sent to storage device based on moving average
WO2020233387A1 (zh) * 2019-05-17 2020-11-26 上海寒武纪信息科技有限公司 指令处理方法、装置及相关产品

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6019809B2 (ja) * 1979-12-26 1985-05-18 株式会社日立製作所 デ−タ処理装置
US5202972A (en) * 1988-12-29 1993-04-13 International Business Machines Corporation Store buffer apparatus in a multiprocessor system
JPH02190930A (ja) * 1988-12-29 1990-07-26 Internatl Business Mach Corp <Ibm> ソフトウエア命令実行装置
US4961162A (en) * 1989-01-13 1990-10-02 International Business Machines Corporation Multiprocessing system for performing floating point arithmetic operations
JP2834292B2 (ja) * 1990-08-15 1998-12-09 株式会社日立製作所 データ・プロセッサ
US5379393A (en) * 1992-05-14 1995-01-03 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Cache memory system for vector processing

Also Published As

Publication number Publication date
US5706465A (en) 1998-01-06
JPH06274414A (ja) 1994-09-30

Similar Documents

Publication Publication Date Title
US20230004500A1 (en) Aggressive write flush scheme for a victim cache
US5752264A (en) Computer architecture incorporating processor clusters and hierarchical cache memories
JP3207591B2 (ja) キャッシュメモリを有する計算機の改良
US7827354B2 (en) Victim cache using direct intervention
US7447845B2 (en) Data processing system, processor and method of data processing in which local memory access requests are serviced by state machines with differing functionality
US4484267A (en) Cache sharing control in a multiprocessor
US6640287B2 (en) Scalable multiprocessor system and cache coherence method incorporating invalid-to-dirty requests
JP4045062B2 (ja) ロード命令を実行する方法、プロセッサ、およびシステム
US7305523B2 (en) Cache memory direct intervention
US7360031B2 (en) Method and apparatus to enable I/O agents to perform atomic operations in shared, coherent memory spaces
EP0394620A2 (en) Data processing system with queue mechanism
US7124252B1 (en) Method and apparatus for pipelining ordered input/output transactions to coherent memory in a distributed memory, cache coherent, multi-processor system
CA2409438A1 (en) Cache coherency system and method for a multiprocessor architecture
JPH1031625A (ja) マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ
US7159079B2 (en) Multiprocessor system
JPH0635953A (ja) スカラ/ベクトル複合処理システムのための相互問い合わせ法およびその装置
US4872111A (en) Monolithic semi-custom IC having standard LSI sections and coupling gate array sections
JPH0519176B2 (ja)
US6480940B1 (en) Method of controlling cache memory in multiprocessor system and the multiprocessor system based on detection of predetermined software module
JPH0756808A (ja) データキャッシュバッファ及び記憶方法
US5636365A (en) Hierarchical buffer memories for selectively controlling data coherence including coherence control request means
JP2685455B2 (ja) データ処理装置
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
JP2694076B2 (ja) 記憶部制御装置
JPH01226056A (ja) アドレス変換回路

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070706

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20080706

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080706

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090706

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090706

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100706

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100706

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110706

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110706

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120706

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130706

Year of fee payment: 12