以下、図面を用いて実施形態を説明する。
図1は、演算処理装置および演算処理装置の制御方法の一実施形態を示す。図1に示す演算処理装置CPU(Central Processing Unit)1は、複数の要求発行部10、調停部12、複数のタイミング制御部14および複数の要求制御部16を有する。要求発行部10は、符号10(1)、10(2)で示され、タイミング制御部14は、符号14(1)、14(2)で示され、要求制御部16は、符号16(1)、16(2)で示される。以下、演算処理装置CPU1は、単にCPU1とも称される。なお、要求発行部10の数、タイミング制御部14の数および要求制御部16の数は、2個に限定されず、3個以上でもよい。
各要求発行部10は、CPU1に接続されるHDD(Hard Disk Drive)またはSSD(Solid State Drive)等の入出力装置にアクセスする第1アクセス要求RQ1(RQ1(1)、RQ1(2))および第2アクセス要求RQ2(RQ2(1)、RQ2(2))を出力する。例えば、第1アクセス要求RQ1は、アクセス要求の種別等の情報が格納されるヘッダ情報HD1(HD1(1)、HD1(2))を含む。同様に、第2アクセス要求RQ2は、アクセス要求の種別等の情報が格納されるヘッダ情報HD2(HD2(1)、HD2(2))を含む。例えば、第1アクセス要求RQ1は、入出力装置にデータを出力するためのアクセス要求であり、各要求発行部10からのデータDT(DT(1)、DT(2))の出力を伴う。例えば、第2アクセス要求RQ2は、入出力装置からデータを出力するためのアクセス要求であり、各要求発行部RQ1からのデータDTの出力を伴わない。
要求発行部10(1)は、調停部12による第1アクセス要求RQ1(1)の受け付けに応じて要求制御部16(1)から出力される第1出力要求ORQ1(1)に基づいてデータDT(1)を出力する。要求発行部10(2)は、調停部12による第1アクセス要求RQ1(2)の受け付けに応じて要求制御部16(2)から出力される第1出力要求ORQ1(2)に基づいてデータDT(2)を出力する。
調停部12は、要求発行部10(1)、10(2)からの第1アクセス要求RQ1および第2アクセス要求RQ2を調停し、第1アクセス要求RQ1および第2アクセス要求RQ2の調停の許可の順序を決定する。調停部12は、決定した許可の順序にしたがって各要求発行部10に、アクセスを許可するアクセス許可AEN(AEN(1)、AEN(2))を出力する。例えば、調停部12は、LRU(least Recently Used)方式で第1アクセス要求RQ1および第2アクセス要求RQ2の許可の順序を決定する。
タイミング制御部14(1)、14(2)は、要求発行部10(1)、10(2)のそれぞれに対応して設けられる。タイミング制御部14(2)は、タイミング制御部14(1)と同一または同様の構成を有する。このため、以下では、タイミング制御部14(1)について説明される。タイミング制御部14(2)の構成および動作は、符号(1)を符号(2)に置き換えることで示される。
タイミング制御部14(1)は、第1アクセス要求RQ1(1)に対応するアクセス許可AEN(1)に基づいて第2出力要求ORQ2(1)を第1タイミングで出力する。タイミング制御部14(1)は、未処理の第1アクセス要求RQ1(1)がある場合、第2アクセス要求RQ2(1)に対応するアクセス許可AEN(1)に基づいて第2出力要求ORQ2(1)を第1タイミングで出力する。また、タイミング制御部14(1)は、未処理の第1アクセス要求RQ1(1)がない場合、第2アクセス要求RQ2(1)に対応するアクセス許可AEN(1)に基づいて第2出力要求ORQ2(1)を第1タイミングより早い第2タイミングで出力する。
例えば、タイミング制御部14(1)は、未処理の第1アクセス要求の数を保持する保持部HLD(1)および出力制御部OCNT(1)を有する。タイミング制御部14(2)は、未処理の第1アクセス要求の数を保持する保持部HLD(2)および出力制御部OCNT(2)を有する。タイミング制御部14(1)は、保持部HLD(1)に”0”以外が保持される場合、未処理の第1アクセス要求RQ1(1)が存在すると判定する。また、タイミング制御部14(1)は、保持部HLD(1)に”0”が保持される場合、未処理の第1アクセス要求RQ1(1)が存在しないと判定する。
出力制御部OCNT(1)は、保持部HLD(1)が”0”以外を保持する場合、第2アクセス要求RQ2(1)に対応するアクセス許可AEN(1)から所定のサイクル後に第2出力要求ORQ2(1)を出力する。出力制御部OCNT(1)は、保持部HLD(1)が”0”を保持する場合、第2アクセス要求RQ2(1)に対応するアクセス許可AEN(1)を受けたサイクルに第2出力要求ORQ2(1)を出力する。
例えば、保持部HLD(1)は、第1アクセス要求RQ1(1)の受け付けに基づいてカウンタ値が進み、第1出力要求ORQ1(1)に対応して要求発行部10(1)から出力されるデータのうち最終のデータに基づいてカウンタ値が戻るカウンタを有する。なお、各保持部HLD(1)、HLD(2)は、カウンタの代わりに、未処理の第1アクセス要求RQ1(1)、RQ1(2)の数を判定する論理回路を有してもよい。
要求制御部16(1)、16(2)は、要求発行部10(1)、10(2)のそれぞれに対応して設けられる。要求制御部16(2)は、要求制御部16(1)と同一または同様の構成を有する。このため、以下では、要求制御部16(1)について説明される。要求制御部16(2)の動作は、符号(1)を符号(2)に置き換えることで示される。
要求制御部16(1)は、要求発行部10(1)から出力されるヘッダ情報HD1(1)、HD2(1)を保持する。要求制御部16(1)は、第1アクセス要求RQ1(1)に対応するアクセス許可AEN(1)に基づいて、要求発行部10(1)に第1出力要求ORQ1(1)を出力する。要求制御部16(1)は、保持したヘッダ情報HD1(1)を、第1アクセス要求RQ1(1)に対応する第2出力要求ORQ2(1)に基づいてヘッダ情報HD(1)として出力する。また、要求制御部16(1)は、保持したヘッダ情報HD2(1)を、第2アクセス要求RQ2(1)に対応する第2出力要求ORQ2(1)に基づいてヘッダ情報HD(1)として出力する。
例えば、ヘッダ情報HD(1)、HD(2)およびデータDT(1)、DT(2)は、共通のバスBUSを介して、互いに異なるタイミングで、重複すること無く入出力装置に転送される。なお、CPU1に複数の入出力装置が接続される場合、ヘッダ情報HD(1)、HD(2)は、アクセスする入出力装置を識別するアドレス等の情報を含む。この場合、ヘッダ情報HD(1)、HD(2)およびデータDT(1)、DT(2)は、アクセスする入出力装置を選択するルーティング部等を介して各入出力装置に供給されてもよい。
図2は、図1に示す演算処理装置CPU1の動作の例を示す。例えば、図2は、演算処理装置CPU1の制御方法の一例を示す。例えば、図2の上側に示す数字は、クロックサイクルを示す。図2に示す例では、要求発行部10(1)は、第1アクセス要求RQ1(1)を出力した後、第2アクセス要求RQ2(1)を2回出力する(図2(a)、(b)、(c))。例えば、第1アクセス要求RQ1(1)は、1番目のクロックサイクルに出力され、第2アクセス要求RQ2(1)は、3番目と5番目のクロックサイクルに出力される。なお、要求発行部10(2)が出力する第1アクセス要求RQ1(2)および第2アクセス要求RQ2(2)に応答する動作は、図2に示した符号(1)を符号(2)に変更することで示される。すなわち、第1アクセス要求RQ1および第2アクセス要求RQ2は、要求発行部10(1)、10(2)のいずれから出力されてもよい。
この例では、第1アクセス要求RQ1(1)と重複するアクセス要求は、存在しない。このため、調停部12は、要求発行部10(1)が出力する第1アクセス要求RQ1(1)の受信に基づいて第1アクセス要求RQ1(1)の受け付けの許可を示すアクセス許可AEN(1)をタイミング制御部14(1)に出力する(図2(d))。タイミング制御部14(1)は、アクセス許可AEN(1)が出力された次のクロックサイクルで第2出力要求ORQ2(1)を要求制御部16(1)に出力する(図2(e))。すなわち、アクセス許可AEN(1)に基づいて第2出力要求ORQ2(1)を出力する第1タイミングは、アクセス許可AEN(1)が出力されたクロックサイクルの次のクロックサイクルである。
要求制御部16(1)は、アクセス許可AEN(1)が出力された次のクロックサイクルで第1出力要求ORQ1(1)を要求発行部10(1)に出力する(図2(f))。また、要求制御部16(1)は、第2出力要求ORQ2(1)が出力されたクロックサイクルの次のクロックサイクルで、ヘッダ情報HD1(1)をヘッダ情報HD(1)としてバスBUSに出力する(図2(g))。
要求発行部10(1)は、第1出力要求ORQ1(1)に基づいてデータDT(1)をメモリ等から読み出し、読み出したデータDT(1)をバスBUSに出力する(図2(h))。例えば、データDT(1)は、要求制御部16(1)が第1出力要求ORQ1(1)を出力したクロックサイクルの2クロックサイクル後に要求発行部10(1)から出力される。そして、第1アクセス要求RQ1(1)に対応してヘッダ情報HD(1)およびデータDT(1)を、バスBUSを介して入出力装置に転送する処理は、5番目のクロックサイクルで終了する。
一方、調停部12は、3番目のクロックサイクルに要求発行部10(1)から出力される第2アクセス要求RQ2(1)の受信に基づいて第2アクセス要求RQ2(1)の受け付けの許可を示すアクセス許可AEN(1)を出力する(図2(i))。タイミング制御部14(1)は、第1アクセス要求RQ1(1)に伴う転送の処理中にアクセス許可AEN(1)を受ける。すなわち、タイミング制御部14(1)は、未処理の第1アクセス要求RQ(1)の存在中にアクセス許可AEN(1)を受ける。この場合、タイミング制御部14(1)は、アクセス許可AEN(1)が出力されたクロックサイクルの次のクロックサイクル(すなわち、第1タイミング)で第2出力要求ORQ2(1)を要求制御部16(1)に出力する(図2(j))。要求制御部16(1)は、第2出力要求ORQ2(1)が出力されたクロックサイクルの次のクロックサイクルにヘッダ情報HD2(1)をヘッダ情報HD(1)としてバスBUSに出力する(図2(k))。
調停部12は、5番目のクロックサイクルに要求発行部10(1)から出力される第2アクセス要求RQ2(1)の受信に基づいて第2アクセス要求RQ2(1)の受け付けの許可を示すアクセス許可AEN(1)を出力する(図2(l))。タイミング制御部14(1)は、第1アクセス要求RQ1(1)に伴う転送の処理が終了した後、アクセス許可AEN(1)を受ける。すなわち、タイミング制御部14(1)がアクセス許可AEN(1)を受けたクロックサイクルにおいて、未処理の第1アクセス要求RQ1(1)は存在しない。この場合、タイミング制御部14(1)は、アクセス許可AEN(1)が出力されたクロックサイクルに第2出力要求ORQ2(1)を出力する(図2(m))。すなわち、タイミング制御部14(1)は、未処理の第1アクセス要求RQ1(1)が存在しない場合、未処理の第1アクセス要求RQ1(1)が存在する場合に比べて、第2出力要求ORQ2(1)の出力タイミングを早くする。
要求制御部16(1)は、3番目の第2出力要求ORQ2(1)が出力された次のクロックサイクルにヘッダ情報HD2(1)をヘッダ情報HD(1)としてバスBUSに出力する(図2(n))。そして、第1アクセス要求RQ1(1)および第2アクセス要求RQ2(1)に対応する動作が終了する。
図2に示す例では、未処理の第1アクセス要求RQ1(1)が存在する場合、ヘッダ情報HD(1)は、第2アクセス要求RQ2(1)が出力されたクロックサイクルの3つ後のクロックサイクルにバスBUSに出力される。一方、未処理の第1アクセス要求RQ1(1)が存在しない場合、ヘッダ情報HD(1)は、第2アクセス要求RQ2(1)が出力されたクロックサイクルの2つ後のクロックサイクルに出力される。
すなわち、未処理の第1アクセス要求RQ1(1)が存在しない場合、ヘッダ情報HD(1)の出力タイミングを、未処理の第1アクセス要求RQ1(1)が存在する場合のヘッダ情報HD(1)の出力タイミングより1クロックサイクル早く出力することができる。したがって、未処理の第1アクセス要求RQ1(1)の有無のそれぞれに応じた最小の時間で、ヘッダ情報HD(1)を、共通のバスBUSを介して入出力装置に転送することができる。この結果、未処理の第1アクセス要求RQ1(1)の有無に拘わらずアクセス許可AEN(1)の出力から出力要求ORQ2(1)の出力までの時間が一定である場合に比べて、CPU1による入出力装置のアクセス効率を向上することができる。
さらに、未処理の第1アクセス要求RQ1(1)が存在する場合、第2アクセス要求RQ2(1)に対する第2出力要求ORQ2(1)の出力タイミングは、第1アクセス要求RQ1(1)に対する第2出力要求ORQ2(1)の出力タイミングと同じである。これにより、第1アクセス要求RQ1(1)に対応するデータDT(1)と、第2アクセス要求RQ2(1)に対応するヘッダ情報HD(1)とが同じクロックサイクルでバスBUSに供給されることを避けることができる。すなわち、第1アクセス要求RQ1(1)に対応するデータDT(1)と、第2アクセス要求RQ2(1)に対応するヘッダ情報HD(1)とがバスBUS上で衝突することを回避することができ、演算処理装置CPU1の誤動作を抑止することができる。
以上、図1および図2に示す実施形態では、未処理の第1アクセス要求RQ1の有無のそれぞれに応じた最小の時間で、第2アクセス要求RQ2に対応するヘッダ情報HD(1)を入出力装置に転送することができる。これにより、CPU1による入出力装置のアクセス効率を向上することができる。また、未処理の第1アクセス要求RQ1の有無に応じて、第2アクセス要求RQ2に対応する第2出力要求ORQ2の出力タイミングを変えることで、データDT(1)とヘッダ情報HD(1)とがバスBUS上で衝突することを回避することができる。この結果、演算処理装置CPU1の誤動作を抑止することができる。
図3は、演算処理装置および演算処理装置の制御方法の別の実施形態を示す。この実施形態の演算処理装置CPU2は、複数のコア20、複数のメモリ制御部30、キャッシュメモリCMを含む複数のキャッシュ制御部40、ルーティング制御部50およびI/O(Input/Output)制御部60を有する。以下、演算処理装置CPU2は、単にCPU2とも称される。キャッシュ制御部40は、符号40(0)、40(1)、40(2)、40(3)で示され、I/O制御部60は、符号60(a)、60(b)、60(c)、60(d)で示される。I/O制御部60の括弧内に示すアルファベットは、入出力装置300の末尾に示すアルファベットに対応する。
例えば、CPU2は、所定数のコア20、メモリ制御部30およびキャッシュ制御部40のそれぞれを含む4つのグループを有する。各グループのキャッシュ制御部40は、グループ内のコア20からのアクセス要求に基づいてキャッシュメモリCMにアクセスし、キャッシュメモリCMにデータがない場合、メモリ制御部30を介してメモリ200にアクセスする。例えば、メモリ200は、DRAM(Dynamic Random Access Memory)等の読み書き可能なメモリである。
また、各グループのキャッシュ制御部40は、グループ内のコア20が出力する入出力装置300(300a、300b、300c、300d)へのアクセス要求を、リクエストの送出要求およびヘッダ情報としてルーティング制御部50に出力する。各キャッシュ制御部40が出力するアクセス要求は、入出力装置300に書き込むデータの出力を伴う第1アクセス要求および入出力装置300に書き込むデータの出力を伴わない第2アクセス要求のいずれかである。キャッシュ制御部40の例は、図4に示す。各キャッシュ制御部40は、他のグループのキャッシュ制御部40との間でデータを転送する機能を有する。
ルーティング制御部50および4つのI/O制御部60は、4つのグループに共通に設けられる。ルーティング制御部50は、各キャッシュ制御部40からのアクセス要求を調停し、調停したアクセス要求を、アクセス要求が示すI/O制御部60に順次に出力する機能を有する。ルーティング制御部50の例は、図4に示す。
各I/O制御部60は、ルーティング制御部50から受信するアクセス要求に基づいて、入出力装置300にアクセスする。例えば、入出力装置300は、HDDとHDDへのアクセスを制御するHDDコントローラとを含む。各I/O制御部60は、HDDコントローラを介してHDDにアクセスする。なお、入出力装置300は、SSDやUSB(Universal Serial Bus)メモリ等、情報を入出力する他の記憶装置でもよい。
CPU2内の各コア20は、グループ内のメモリ制御部30を介してメモリ200にアクセス可能であり、キャッシュ制御部40およびルーティング制御部50を介して入出力装置300のいずれかにアクセス可能である。
図4は、図3に示すキャッシュ制御部40およびルーティング制御部50の例を示す。各キャッシュ制御部40は、ヘッダ情報部HDINFおよびバッファ部BUFを含む要求発行部42(42(0)、42(1)、43(2)、43(3))を有する。
各ヘッダ情報部HDINFは、コア20からの入出力装置300に対するアクセス要求に基づいて、アクセス要求の送出要求RRQ(RRQ0、RRQ1、RRQ2、RRQ3)およびヘッダ情報HD(HD0、HD1、HD2、HD3)を出力する。ヘッダ情報HDの例は、図5に示す。また、ヘッダ情報部HDINFは、送出要求RRQに対する応答であるアクセス要求の送出許可REN(REN0、REN1、REN2、REN3)をルーティング制御部50から受ける。ヘッダ情報部HDINFは、入出力装置300へのデータの書き込みを示す送出要求RRQを出力した場合、送出要求RRQの応答としてデータの読み出し要求RDRQ(RDRQ0、RDRQ1、RDRQ2、RDRQ3)をルーティング制御部50から受ける。
各バッファ部BUFは、データバスDB(DB0、DB1、DB2、DB3)を介して入出力装置300へ書き込むデータを保持し、データバスDBを介して入出力装置300から読み出されるデータを保持する。
ルーティング制御部50は、リクエストキューRQCUE(RQCUE0、RQCUE1、RQCUE2、RQCUE3)、調停制御部ARBCNT、資源管理部SRCMNGおよびルーティング部ROUTを有する。図4では、キャッシュ制御部40(0)に対応する信号は末尾に”0”を付け、キャッシュ制御部40(1)に対応する信号は末尾に”1”を付ける。キャッシュ制御部40(2)に対応する信号は末尾に”2”を付け、キャッシュ制御部40(3)に対応する信号は末尾に”3”を付ける。また、I/O制御部60(a)に対応する信号は末尾に”a”を付け、I/O制御部60(b)に対応する信号は末尾に”b”を付け、I/O制御部60(c)に対応する信号は末尾に”c”を付け、I/O制御部60(d)に対応する信号は末尾に”d”を付ける。以下では、末尾の数字および末尾のアルファベットを省略して説明する場合がある。
各リクエストキューRQCUEは、送出要求RRQおよびヘッダ情報HDに応じて、調停要求ARQとヘッダ情報HDに含まれるリクエスト情報RINFとを調停制御部ARBCNTに出力する。なお、送出要求RRQおよびヘッダ情報HDに応じて、調停要求ARQとリクエスト情報RINFとを出力する機能は、調停制御部ARBCNT内に設けられてもよい。
各リクエストキューRQCUEは、調停制御部ARBCNTからの調停許可AENに応じて、アクセス要求の送出許可RENおよびデータの読み出し要求RDRQを要求発行部42に出力する。調停許可AENは、アクセス要求の送出要求RRQに対するアクセスを許可するアクセス許可の一例である。また、各リクエストキューRQCUEは、調停制御部ARBCNTからのヘッダ情報HDの読み出し要求HRDに応じて、保持中のヘッダ情報HDをヘッダバスHDB(HDB0、HDB1、HDB2、HDB3)に出力する。
調停制御部ARBCNTは、各リクエストキューRQCUEから出力される調停要求ARQ0−ARQ3を調停し、調停により選ばれた調停要求ARQ0−ARQ3に対応する調停許可AEN0−AEN3のいずれかを出力する。なお、調停要求ARQ0−ARQ3は、図6に示す調停部ARBUにより調停される。調停制御部ARBCNTは、各リクエストキューRQCUEからのリクエスト情報RINFが、入出力装置300へのデータの書き込みを示す場合、調停許可AENとともに読み出し要求HRDを出力する。
また、調停制御部ARBCNTは、各要求発行部42からデータバスDBに出力されるデータに含まれるタグ情報TAGとデータを書き込む入出力装置300を示す宛先情報DIDとを受ける。タグ情報TAGおよび宛先情報DIDに基づく調停制御部ARBCNTの動作は、図6で説明する。
さらに、調停制御部ARBCNTは、各I/O制御部60に設けられるバッファの空き容量を示す資源情報RSCINFを資源管理部SRCMNGから受ける。調停制御部ARBCNTは、各要求発行部42から各I/O制御部60にデータが転送される場合、データの転送容量を示すデータ情報DINFを資源管理部SRCMNGに出力する。
資源管理部SRCMNGは、各I/O制御部60のバッファの空き容量を示すカウンタをI/O制御部60毎に有する。カウンタは、対応するI/O制御部60からの資源解放情報RLS(RLSa、RLSb、RLSc、RLSd)に応じて増加し、調停制御部ARBCNTからのデータ情報DINFに応じて減少する。例えば、資源管理部SRCMNGが調停制御部ARBCNTに出力する資源情報RSCINFは、各カウンタのカウンタ値を示す。そして、調停制御部ARBCNTは、資源情報RSCINFがバッファの満杯を示す場合、調停要求ARQに応答する調停許可AENの出力を禁止し、資源情報RSCINFがバッファの空きを示した後、調停許可AENの出力を許可する。
例えば、ルーティング部ROUTは、ヘッダバスHDBを介して受けるヘッダ情報HDに含まれるアドレスに基づいて、アクセスする入出力装置300を判断する。そして、ヘッダ情報HDが入出力装置300へのデータの書き込みを示す場合、ルーティング部ROUTは、リクエストバスRB(RBa、RBb、RBc、RBd)にヘッダ情報HDおよびデータを出力する。ここで、ヘッダ情報HDおよびデータは、アクセスする入出力装置300に対応するI/O制御部60に接続されたリクエストバスRBに出力される。各リクエストバスRBは、複数のリクエストキューRQCUEからのヘッダ情報HDおよび複数の要求発行部42からのデータをI/O制御部60に転送する共通バスである。
なお、ヘッダ情報HDが入出力装置300からのデータの読み出しを示す場合、ルーティング部ROUTは、アクセスする入出力装置300に対応するI/O制御部60に接続されたリクエストバスRBにヘッダ情報HDを出力する。その後、ルーティング部ROUTは、リクエストバスRBを介して入出力装置300からのデータを受け、受けたデータをキャッシュ制御部40に出力する。
図5は、図4に示すヘッダ情報HDの例を示す。ヘッダ情報HDは、オペコード、リクエストID(IDentification)およびアドレスを格納する領域を有する。オペコードは、アクセス要求の種類(入出力装置300へのデータの書き込み、入出力装置300からのデータの読み出し)とデータの転送サイズとを示す。例えば、複数のオペコードが、アクセス要求の種類のそれぞれに対応して、複数の転送サイズ毎に割り当てられる。なお、以下の説明では、入出力装置300へデータを書き込むアクセス要求は、データ付きリクエストとも称され、入出力装置300からデータを読み出すアクセス要求は、データ無しリクエストとも称される。
リクエストIDは、要求発行部42がアクセス要求毎に割り当てる任意の番号であり、リクエストキューRQCUEからの応答にも付加される。要求発行部42は、リクエストIDを用いて、アクセス要求と、リクエストキューRQCUEからの送出許可REN等の応答とを対応付ける。アドレスは、入出力装置300に割り当てられたアドレスを示す。
図6は、図4に示す調停制御部ARBCNTの例を示す。調停制御部ARBCNTは、各入出力装置300に対応する調停制御回路ACNT(ACNTa、ACNTb、ACNTc、ACNTd)を有する。調停制御回路ACNTの末尾に示すアルファベットは、I/O制御部60の括弧内および入出力装置300の末尾に示すアルファベットに対応する。調停制御回路ACNTa、ACNTb、ACNTc、ACNTdは、互いに同一または同様の回路であるため、以下では、調停制御回路ACNTaが説明される。
調停制御回路ACNTaは、調停部ARBUおよび要求発行部42(0)、42(1)、42(2)、42(3)のそれぞれに対応する4つのタイミング制御部TCNT(TCNT0、TCNT1、TCNT2、TCNT3)を有する。
調停部ARBUは、各リクエストキューRQCUEから出力される調停要求ARQとリクエスト情報RINFとを受け、リクエスト情報RINFが調停制御回路ACNTaに対応する入出力装置300を示す場合、受けた調停要求ARQを調停する。そして、調停部ARBUは、許可した調停要求ARQに対応する調停許可AENm(mは、a、b、c、dのいずれか)を出力する。例えば、調停部ARBUは、LRU方式で調停要求ARQの許可の順序を決定する。
図6および図7において、調停許可AENに付加したアルファベットは、入出力装置300のアルファベット(図3)に対応し、調停許可AENに付加した数字は、要求発行部42の括弧内の数字(図4)に対応する。例えば、調停部ARBUは、データ付きリクエストの送出要求RRQに対応してリクエストバスRBに出力されるデータの出力サイクル数に対応する期間、調停許可AENの出力を抑止する抑止部STOPを有する。抑止部STOPの動作の例は、図10に示す。
タイミング制御部TCNT0は、カウンタ制御回路CCNT、カウンタCOUNT、ラッチLT0、LT1、信号生成回路SGENおよび検出回路DETを有する。カウンタ制御回路CCNTは、データ付きリクエストに応答して調停許可AEN0aが出力される場合、増加信号INC1を出力する。また、カウンタ制御回路CCNTは、データ無しリクエストに応答して調停許可AEN0aが出力される場合で、カウンタCOUNTのカウンタ値CVが”0”以外の場合、増加信号INC2を出力する。カウンタ制御回路CCNTの動作の例は、図8に示される。
検出回路DETは、宛先情報DID0が調停制御回路ACNTaに対応する入出力装置300を示す場合で、タグ情報TAG0が入出力装置300へ書き込む最終のデータを示す場合、減少信号DEC1を出力する。ラッチLT1は、増加信号INC2を1クロックサイクル遅らせ、減少信号DEC2として出力する。
カウンタ制御回路CCNTおよびラッチLT1は、カウンタCOUNTのカウンタ値CVを制御する保持制御部の一例である。保持制御部は、カウンタCOUNTが”0”以外を保持中における調停要求ARQ(すなわち、アクセス要求の送出要求RRQ)の調停の許可に基づいてカウンタCVを進め、カウンタ値CVを増加させた次のサイクルでカウンタ値CVを戻す。
カウンタCOUNTは、各増加信号INC1、INC2に応じてカウンタ値CVを1ずつ進め、各減少信号DEC1、DEC2に応じてカウンタ値CVを1ずつ戻す。カウンタ値CVの”0”は、図4に示すリクエストキューRQCUE0に保持される未処理のデータ付きリクエストを保持していないことを示す。カウンタ値CVの”0”以外(この例では、正の値)は、リクエストキューRQCUE0が未処理のデータ付きリクエストを保持していることを示す。なお、カウンタCOUNTは、各増加信号INC1、INC2に応じてカウンタ値CVをマイナス方向に1ずつ進め、各減少信号DEC1、DEC2に応じてカウンタ値CVをプラス方向に1ずつ戻してもよい。
信号生成回路SGENは、リクエスト情報RINF0が調停制御回路ACNTaに対応する入出力装置300を示す場合、リクエスト情報RINF0および調停許可AEN0aに応じて、読み出し要求HRDB、HRDPのいずれかを出力する。
例えば、信号生成回路SGENは、リクエスト情報RINF0がデータ付きリクエストを示す場合、カウンタ値CVに拘わり無く、調停許可AEN0aに応じて、読み出し要求HRDPを出力する。信号生成回路SGENは、リクエスト情報RINFがデータ無しリクエストを示し、カウンタ値CVが”0”以外(この例では、正の値)の場合、調停許可AEN0aに応じて、読み出し要求HRDPを出力する。信号生成回路SGENは、リクエスト情報RINFがデータ無しリクエストを示し、カウンタ値CVが”0”の場合、調停許可AEN0aに応じて、読み出し要求HRDBを出力する。信号生成回路SGENの動作の例は、図8に示される。
ラッチLT0は、読み出し要求HRDPを1クロックサイクル遅らせて、オア回路OR1に出力する。オア回路OR1は、読み出し要求HRDBまたは1クロックサイクル遅らせた読み出し要求HRDPを読み出し要求HRD0aとして出力する。信号生成回路SGEN、ラッチLT0およびオア回路OR1は、読み出し要求HRD0aの出力タイミングを設定する出力制御部の一例である。出力制御部は、カウンタCOUNTが”0”を保持する場合の読み出し要求HRD0aの出力タイミングを、カウンタCOUNTが”0”以外を保持する場合の読み出し要求HRD0aの出力タイミングに比べて早く設定する。
すなわち、タイミング制御部TCNT0は、データ付きリクエストに対応するアクセス許可AEN0aに応じて、1クロックサイクル遅らせた読み出し要求HRDPを読み出し要求HRD0aとして出力する。タイミング制御部TCNT0は、未処理のデータ付きリクエストが存在する場合、データ無しリクエストに対応するアクセス許可AEN0aに応じて、1クロックサイクル遅らせた読み出し要求HRDPを読み出し要求HRD0aとして出力する。また、タイミング制御部TCNT0は、未処理のデータ付きリクエストが存在しない場合、データ無しリクエストに対応するアクセス許可AEN0aに応じて、読み出し要求HRDBを読み出し要求HRD0aとして出力する。
したがって、未処理のデータ付きリクエストが存在しない場合、データ無しリクエストに対応する読み出し要求HRD0aは、他の読み出し要求HRD0aに比べて1クロックサイクル早く出力される。ここで、他の読み出し要求HRD0aは、データ付きリクエストに対応する読み出し要求HRD0aおよび未処理のデータ付きリクエストが存在する場合のデータ無しリクエストに対応する読み出し要求HRD0aである。
なお、調停制御回路ACNTaにおいて、タイミング制御部TCNT1のカウンタ制御回路CCNTおよび信号生成回路SGENは、リクエスト情報RINF1および調停許可AEN1aを受けて動作する。タイミング制御部TCNT2のカウンタ制御回路CCNTおよび信号生成回路SGENは、リクエスト情報RINF2および調停許可AEN2aを受けて動作する。タイミング制御部TCNT3のカウンタ制御回路CCNTおよび信号生成回路SGENは、リクエスト情報RINF3および調停許可AEN3aを受けて動作する。
図7は、図6に示す調停制御回路ACNTa、ACNTb、ACNTc、ACNTdから出力される信号に応じて調停許可AENa、AENb、AENc、AENdおよび読み出し要求HRD0、HRD1、HRD2、HRD3を生成する回路の例を示す。例えば、図7に示す回路は、調停制御部ARBCNT内に設けられる。
調停許可AEN0は、調停制御回路ACNTa、ACNTb、ACNTc、ACNTdから出力される調停許可AEN0a、AEN0b、AEN0c、AEN0dのいずれかに応じて生成される。他の調停許可AENn(nは要求発行部42の番号)は、調停許可AEN0と同様に、要求発行部42に対応する調停許可AENnm(mは入出力装置300のアルファベット)のいずれかに応じて生成される。
読み出し要求HRD0は、調停制御回路ACNTa、ACNTb、ACNTc、ACNTdから出力される読み出し要求HRD0a、HRD0b、HRD0c、HRD0dのいずれかに応じて生成される。他の読み出し要求HRD1、HRD2、HRD3は、読み出し要求HRD0と同様に、要求発行部42に対応する読み出し要求HRDnmのいずれかに応じて生成される。なお、調停制御部ARBCNTは、調停許可AENnmが重複して出力されることを禁止する調停機能と、読み出し要求HRDnmが重複して出力されることを禁止する調停機能を有する。
図8は、図6に示すカウンタ制御回路CCNTおよび信号生成回路SGENの動作の例を示す。調停許可AENnおよびリクエスト情報RINFnの”n”は、調停許可AENnを受ける要求発行部42の番号である。図8において、調停許可AENnの値および出力の欄に示す論理1は有効状態を示し、論理0は無効状態を示す。
カウンタ制御回路CCNTは、リクエスト情報RINFnがデータ付きリクエストを示す場合、調停許可AENnの出力(有効状態)に応じて、カウンタ値CVに拘わらず、有効状態の増加信号INC1と無効状態の増加信号INC2とを出力する。そして、カウンタ値CVは、増加信号INC1に応じて増加する。カウンタ制御回路CCNTは、リクエスト情報RINFnがデータ無しリクエストを示し、カウンタ値CVが”0”以外を示す場合、調停許可AENnの出力(有効状態)に応じて、無効状態の増加信号INC1と有効状態の増加信号INC2とを出力する。そして、カウンタ値CVは、増加信号INC2に応じて増加する。カウンタ制御回路CCNTは、リクエスト情報RINFnがデータ無しリクエストを示し、カウンタ値CVが”0”を示す場合、調停許可AENnの出力(有効状態)に応じて、無効状態の増加信号INC1、INC2を出力する。この場合、カウンタ値CVは維持される。
信号生成回路SGENは、リクエスト情報RINFnがデータ付きリクエストを示す場合、調停許可AENnの出力(有効状態)に応じて、無効状態の読み出し要求HRDBと有効状態の読み出し要求HDRPとを出力する。信号生成回路SGENは、リクエスト情報RINFnがデータ無しリクエストを示し、カウンタ値CVが”0”以外を示す場合、調停許可AENnの出力(有効状態)に応じて、無効状態の読み出し要求HRDBと有効状態の読み出し要求HDRPとを出力する。信号生成回路SGENは、リクエスト情報RINFnがデータ無しリクエストを示し、カウンタ値CVが”0”を示す場合、調停許可AENnの出力(有効状態)に応じて、有効状態の読み出し要求HRDBと無効状態の読み出し要求HDRPとを出力する。なお、有効状態の読み出し要求HDRPが出力された場合、図7に示す読み出し要求HRDnは、有効状態の読み出し要求HDRBが出力された場合に比べて、1クロックサイクル遅く出力される。
図9は、タグ情報TAGの仕様の例および図6に示す検出回路DETの動作の例を示す。検出回路DETから出力される減少信号DEC1において、論理1は有効状態を示し、論理0は無効状態を示す。
図9において、”kサイクルパケット”(kは2以上の整数)は、図4に示すリクエストバスRBに転送されるデータ付きリクエストのパケットを示し、”k”は、ヘッダ情報HDが転送される1サイクルにデータの転送サイクルを加えた値である。例えば、データ付きリクエストを示すヘッダ情報HDと4ワードのデータとがパケットとしてリクエストバスRBに転送される場合、”kサイクル”は5サイクルである。”1サイクルパケット”は、リクエストバスRBに転送されるデータ無しリクエストのパケット(ヘッダ情報HDのみ)を示す。
kサイクルパケットにおけるヘッダがリクエストバスRBに転送される場合、タグ情報TAGの値は”1”に設定される。kサイクルパケットにおける最終データを除くデータがリクエストバスRBに転送される場合、タグ情報TAGの値は”2”に設定される。kサイクルパケットにおける最終データがリクエストバスRBに転送される場合、タグ情報TAGの値は”3”に設定される。1サイクルパケットにおけるヘッダがリクエストバスRBに転送される場合、タグ情報TAGの値は”5”に設定される。
検出回路DETは、タグ情報TAGの値が”1”、”2”、”5”のいずれかの場合、宛先IDに拘わり無く、無効状態の減少信号DEC1を出力する。検出回路DETは、タグ情報TAGの値が”3”で、宛先IDが対応する入出力装置300を示す場合、有効状態の減少信号DEC1を出力する。検出回路DETは、タグ情報TAGの値が”3”で、宛先IDが他の入出力装置300を示す場合、無効状態の減少信号DEC1を出力する。
例えば、タグ情報TAGの値が”3”で、宛先IDが入出力装置300aを示す場合、図6に示す調停制御回路ACNTaの検出回路DETは、有効状態の減少信号DEC1を出力し、カウンタ値CVを減少させる。タグ情報TAGの値が”3”で、宛先IDが入出力装置300aを示す場合、他の調停制御回路ACNTb、ACNTc、ACNTdは、無効状態の減少信号DEC1を出力する。この場合、カウンタ値CVは変更されない。
図10は、図3に示す演算処理装置CPU2の動作の例を示す。クロックCLKに付した番号は、クロックサイクルを示す。図10は、要求発行部42(0)が入出力装置300aにアクセスする場合の動作を示す。要求発行部42(0)は、データ付きリクエストの送出要求RRQ0を発行した後、3つのデータ無しリクエストの送出要求RRQ0を発行し、さらに、4つのデータ無しリクエストの送出要求RRQ0を発行する(図10(a)、(b)、(c))。データ付きリクエストに対応して、要求発行部42(0)、リクエストキューRQCUE0、調停制御部ARBCNTおよびルーティング部ROUTに対して入出力される信号は、太枠で示される。
リクエストキューRQCUE0は、データ付きリクエストの送出要求RRQ0に応答して調停要求ARQ0を調停制御部ARBCNTに出力する(図10(d))。調停制御部ARBCNTは、他の調停要求ARQがないため、調停要求ARQ0に応答して調停許可AEN0をリクエストキューRQCUEに出力する(図10(e))。図6に示す調停部ARBUの抑止部STOPは、リクエストバスRBに転送されるデータの出力サイクル数(この例では、4クロックサイクル)に対応する期間、調停許可AENの出力を抑止する(図10(f))。調停許可AENの出力を抑止する期間は、図9に示す”kサイクル”から”1”を引いたクロックサイクルである。調停許可AENの出力を抑止する処理は、調停部ARBUの内部で実行される。
調停許可AENの出力を抑止する期間は、次の調停要求ARQを受け付けない期間であり、他の調停許可AENの出力を抑止する期間である。このため、リクエストキューRQCUE0は、3番目のクロックサイクルで受信したデータ無しリクエストの送出要求RRQ0に応答した調停要求ARQ0の出力を7番目のクロックサイクルまで維持する(図10(g))。なお、リクエストキューRQCUE0は、要求発行部42(0)から受信するリクエストの送出要求RRQ0を順次に保持する。リクエストキューRQCUE0は、調停許可AEN0に応答して、アクセス要求の送出許可REN0およびデータの読み出し要求RDRQ0を要求発行部42(0)に出力する(図10(h))。
調停許可AEN0を受けたタイミング制御部TCNT0の信号生成回路SGENは、図8に示す論理にしたがって、読み出し要求HRDPを出力する(図10(i))。読み出し要求HRDPは、ラッチLT0により1クロックサイクル遅れてヘッダの読み出し要求HRD0aとして出力される(図10(j))。
リクエストキューRQCUE0は、読み出し要求HRD0aに応答して、ヘッダバスHDB0にヘッダ情報HD0を出力する(図10(k))。ヘッダバスHDB0には、ヘッダ情報HD0と、ヘッダ情報HD0が5サイクルパケットのヘッダであることを示すタグ情報TAGと、入出力装置300aを示す宛先IDとが転送される。
一方、データ付きリクエストに基づいて増加信号INC1が生成されるまで、調停制御部ARBCNTのタイミング制御部TCNT0内のカウンタCOUNTは、カウンタ値CVを”0”に維持する(図10(l))。タイミング制御部TCNT0のカウンタ制御回路CCNTは、図8に示す論理にしたがって増加信号INC1を出力する(図10(m))。カウンタCOUNTは、増加信号INC1に応答して、カウント動作し、カウンタ値CVを”1”に増加する(図10(n))。
要求発行部42(0)は、アクセス要求の送出許可REN0およびデータの読み出し要求RDRQ0の受信から2クロックサイクル後に、データバスDB0、入出力装置300aに書き込むデータD00、D01、D02、D03を順次に出力する(図10(o))。2クロックサイクルは、要求発行部42(0)内で最初のデータD00の準備に掛かる期間であり、要求発行部42(0)がデータの読み出し要求RDRQ0を受信した後、最初のデータD00を出力するまでのレイテンシ期間である。データバスDB0には、データD00、D01、D02、D03と、タグ情報TAGと、入出力装置300aを示す宛先IDとが転送される。データD00、D01、D02のタグ情報TAGは、最終データでないことを示す”2”であり、データD03のタグ情報TAGは、最終データを示す”3”である。
ルーティング部ROUTは、リクエストキューRQCUE0から受けるヘッダ情報HD0およびタグ情報TAGと、要求発行部42(0)から受けるデータおよびタグ情報TAGを、リクエストバスRBaに順次に出力する(図10(p))。すなわち、入出力装置300aへのデータの書き込み処理が実行される。データ付きリクエストでは、読み出し要求HRD00を調停許可AEN0から1クロックサイクル遅らせることで、リクエストバスRBa上にヘッダ情報HD0とデータD00、D01、D02、D03とを、サイクルが空くこと無く連続して転送することができる。なお、データの書き込み処理を実行する入出力装置300aの動作の説明は省略する。
調停制御部ARBCNTは、2番目から4番目のクロックサイクルで発生したデータ無しリクエストの送出要求RRQ0に対応する調停許可AEN0を、調停許可AENの出力の抑止を解除した後の7番目から9番目のクロックサイクルに出力する(図10(q))。
7番目から9番目のクロックサイクルにおいて、カウンタ制御回路CCNTは、調停許可AEN0、データ無しリクエストを示すリクエスト情報RINF0およびカウンタ値CV”1”を受け、増加信号INC2を出力する(図10(r))。ラッチLT1は、増加信号INC2を1クロックサイクル遅らせた減少信号DEC2を出力する(図10(s))。検出回路DETは、8番目のクロックサイクルに出力される最終データを示すタグ情報TAG(=3)に基づいて減少信号DEC1を出力する(図10(t))。カウンタCOUNTは、増加信号INC2および減少信号DEC1、DEC2に応じてカウント動作し、カウンタ値CVを”2”、”1”、”1”、”0”と変化する(図10(u))。
タイミング制御部TCNT0の信号生成回路SGENは、7番目から9番目のクロックサイクルの間、カウンタ値CVが”1”以上のため、図8に示す論理にしたがって、読み出し要求HRDPを順次に出力する(図10(v))。この後、読み出し要求HRDPより1クロックサイクル遅れて読み出し要求HRD0aが順次に出力される(図10(w))。
リクエストキューRQCUE0は、読み出し要求HRD0aに応答して、データ無しリクエストに対応するヘッダ情報HD0をヘッダバスHDB0に出力する(図10(x))。ヘッダバスHDB0には、ヘッダ情報HD1、HD2、HD3と、ヘッダ情報HD1、HD2、HD3が1サイクルパケットのヘッダであることを示すタグ情報TAGと、入出力装置300aを示す宛先IDとが順次に転送される。
ルーティング部ROUTは、リクエストキューRQCUE0から受けるヘッダ情報HD1、HD2、HD3およびタグ情報TAGを、リクエストバスRBaに順次に出力する(図10(y))。すなわち、入出力装置300aからのデータの読み出し処理が実行される。なお、データの読み出し処理を実行する入出力装置300aの動作の説明は省略する。
未処理のデータ付きリクエストが存在する間、データ無しリクエストに基づいてカウンタ値CVを増加させることで、データD03の出力タイミングに合わせて読み出し要求HRD00の出力を遅らせることができる。これにより、データ付きリクエストと複数のデータ無しリクエストとが連続して発行される場合、データ無しリクエストに対応するヘッダ情報HD00がリクエストバスRBa上で衝突することを回避することができる。
さらに、増加信号INC2が生成された1クロックサイクル後に減少信号DEC2を生成することで、未処理のデータ付きリクエストが存在せず、データ無しリクエストの発行が途切れた場合、カウンタ値CVを”0”に戻すことができる。したがって、その後、新たなデータ無しリクエストが発行される場合、新たなデータ無しリクエストに対応するヘッダ情報HD00を、最短のタイミングでリクエストバスRBaに出力することができる。
次に、リクエストキューRQCUE0は、12番目から15番目のクロックサイクルに受信する送出要求RRQ0に応答して、調停要求ARQ0を出力する(図10(z))。調停制御部ARBCNTは、調停要求ARQ0に応答して調停許可AEN0をリクエストキューRQCUEに出力する(図10(a1))。
信号生成回路SGENは、13番目から16番目のクロックサイクルの間、カウンタ値CV(=0)に応じて、図8に示す論理にしたがい、読み出し要求HRDBを順次に出力する(図10(a2))。読み出し要求HRDBは、読み出し要求HRD0aとして順次に出力される(図10(a3))。すなわち、未処理のデータ付きリクエストが無い場合、調停制御部ARBCNTは、調停許可AEN0の出力サイクルと同じクロックサイクルで読み出し要求HRD0aを出力する。これにより、未処理のデータ付きリクエストが存在する場合に比べて、データ無しリクエストに対応するヘッダ情報HD0を1クロックサイクル早くリクエストバスRBaに出力することができる。換言すれば、データ無しリクエストに対応するヘッダ情報HD0のリクエストバスRBaへの出力タイミングを、未処理のデータ付きリクエストの有無に応じて最適に設定することができ、入出力装置300aのアクセス効率を向上することができる。
リクエストキューRQCUE0は、各読み出し要求HRD0aに応答して、ヘッダバスHDB0にヘッダ情報HD0を順次に出力する(図10(a4))。ヘッダバスHDB0には、ヘッダ情報HD4、HD5、HD6、HD7と、ヘッダ情報HD4、HD5、HD6、HD7が1サイクルパケットのヘッダであることを示すタグ情報TAGと、入出力装置300aを示す宛先IDとが転送される。
ルーティング部ROUTは、リクエストキューRQCUE0から受けるヘッダ情報HD4、HD5、HD6、HD7およびタグ情報TAGを、リクエストバスRBaに順次に出力する(図10(a5))。すなわち、入出力装置300aからのデータの読み出し処理が実行される。
図11は、調停制御部ARBCNTの別の例を示す。図11に示す調停制御部ARBCNTは、図6に示すタイミング制御部TCNT0、TCNT1、TCNT2、TCNT3の代わりに、タイミング制御部TCNT4、TCNT5、TCNT6、TCNT7を有する。調停制御部ARBCNTのその他の構成は、タグ情報TAGおよび宛先情報DIDを受けないことを除き、図6に示す調停制御部ARBCNTと同様である。
タイミング制御部TCNT4−TCNT7は、同一または同様の構成を有し、タイミング制御部TCNT4−TCNT7の動作は、互いに同様であるため、以下では、タイミング制御部TCNT4について説明される。
タイミング制御部TCNT4は、読み出し要求HRDPを生成する信号生成回路SGEN2および読み出し要求HRD0aを出力するラッチLT0を有する。信号生成回路SGEN2は、リクエスト情報RINF0が調停制御回路ACNTaに対応する入出力装置300を示す場合、リクエスト情報RINF0および調停許可AEN0aに応じて、読み出し要求HRDPを出力する。ラッチLT0は、読み出し要求HRDPを1クロックサイクル遅らせて読み出し要求HRD0aとして出力する。すなわち、タイミング制御部TCNT4は、データ付きリクエストまたはデータ無しリクエストに拘わり無く、調停許可AEN0aを受けた次のクロックサイクルでヘッダ情報HD0の読み出し要求HRD0aを出力する。
図12は、図11に示す調停制御部ARBCNTを有する演算処理装置の動作の例を示す。図10と同様の動作については、詳細な説明は省略する。データ付きリクエストに対応して、要求発行部42(0)、リクエストキューRQCUE0、調停制御部ARBCNTおよびルーティング部ROUTに対して入出力される信号は、太枠で示される。
図12は、図10と同様に、要求発行部42(0)が入出力装置300aにアクセスする場合の動作を示す。要求発行部42(0)が出力するアクセス要求の種類と数は、図10と同じである。すなわち、要求発行部42(0)は、データ付きリクエストの送出要求RRQ0を出力した後、3つのデータ無しリクエストの送出要求RRQ0を出力し、さらに、4つのデータ無しリクエストの送出要求RRQ0を出力する(図12(a)、(b)、(c))。
12番目のクロックサイクルまでの動作は、図10と同様である。12番目から15番目のクロックサイクルの送出要求RRQ0は、未処理のデータ無しリクエストが存在しない状態で出力される。図11に示す調停制御部ARBCNTは、データ付きリクエストまたはデータ無しリクエストに拘わり無く、調停許可AEN0aを受けた次のクロックサイクルでヘッダ情報HD0の読み出し要求HRD0aを出力する。
このため、12番目から15番目のクロックサイクルの送出要求RRQ0に応答する読み出し要求HRD0aは、図10に比べて1クロックサイクル遅い14番目から17番目のクロックサイクルで出力される(図12(d))。これにより、ルーティング部ROUTは、リクエストキューRQCUE0から受けるヘッダ情報HD4、HD5、HD6、HD7およびタグ情報TAGを、図10に比べて1クロックサイクルずつ遅れてリクエストバスRBaに順次に出力する(図12(e))。したがって、図10に比べて、入出力装置300aに転送されるデータ無しリクエストの転送タイミングは遅くなり、入出力装置300aのアクセス効率は低下する。
以上、この実施形態においても、図1および図2に示した実施形態と同様に、データ無しリクエストに対応するヘッダ情報HDを、未処理のデータ付きリクエストの有無に応じて、入出力装置300に最小の時間で転送することができる。また、データ付きリクエストのデータD03とデータ無しリクエストに対応するヘッダ情報HD00とがリクエストバスRBa上で衝突することを回避することができる。
さらに、図3から図12に示す実施形態では、未処理のデータ付きリクエストが存在する間、データ付きリクエストに続いて発行されるデータ無しリクエストに対応するヘッダ情報HDの出力タイミングを遅らせることができる。これにより、データ付きリクエストと複数のデータ無しリクエストとが連続して発行される場合、データ無しリクエストに対応するヘッダ情報HDがリクエストバスRB上で衝突することを回避することができる。また、データ無しリクエストの発行が途切れた後の新たなデータ無しリクエストに対応するヘッダ情報HDを、最短のタイミングでリクエストバスRBに出力することができる。
以上の実施形態において説明した発明を整理して、付記として開示する。
(付記1)
入出力を行う入出力装置に接続する演算処理装置において、
前記入出力装置に転送するデータの出力を伴う第1アクセス要求と、前記データの出力を伴わない第2アクセス要求とを出力し、前記第1アクセス要求の出力後に受信する第1出力要求に基づいて前記データをバスに出力する複数の要求発行部と、
前記複数の要求発行部からの前記第1アクセス要求および前記第2アクセス要求を調停する調停部と、
前記複数の要求発行部のそれぞれに対応して設けられ、未処理の第1アクセス要求が存在しない場合、第2アクセス要求の調停の許可に基づいて出力する第2出力要求を、未処理の第1アクセス要求が存在する場合の前記第2出力要求の出力に比べて早いタイミングで出力する複数のタイミング制御部と、
前記複数の要求発行部のそれぞれに対応して設けられ、前記第1アクセス要求および前記第2アクセス要求を保持し、前記第1アクセス要求の調停の許可に基づいて前記要求発行部に前記第1出力要求を出力し、前記第2出力要求に基づいて、保持中の前記第2アクセス要求に含まれるヘッダ情報を前記バスに出力する複数の要求制御部を有することを特徴とする演算処理装置。
(付記2)
前記各タイミング制御部は、
未処理の前記第1アクセス要求の数を保持する保持部と、
前記保持部が”0”を保持する場合の第2出力要求の出力タイミングを、前記保持部が”0”以外を保持する場合の前記第2出力要求の出力タイミングに比べて早く設定する出力制御部を有することを特徴とする付記1記載の演算処理装置。
(付記3)
前記保持部は、前記調停部による前記第1アクセス要求の調停の許可に基づいてカウンタ値を進め、前記第1出力要求に対応して前記要求発行部から出力される最終のデータに基づいて前記カウンタ値を戻すカウンタを有し、
前記出力制御部は、前記カウンタ値に基づいて動作することを特徴とする付記2記載の演算処理装置。
(付記4)
前記各タイミング制御部は、前記保持部が”0”以外を保持中における前記第2アクセス要求の調停の許可に基づいて前記保持部に保持される数を進め、前記保持部に保持される値を増加させた次のサイクルで前記保持部に保持された数を戻す保持制御部を有することを特徴とする付記2または付記3記載の演算処理装置。
(付記5)
前記各タイミング制御部は、前記第1アクセス要求の調停の許可に基づく前記第2出力要求の出力タイミングを、未処理の第1アクセス要求が存在しない場合における前記第2アクセス要求の調停の許可に基づく前記第2出力要求の出力タイミングと同じタイミングに設定し、
前記各要求制御部は、前記第1アクセス要求の調停に基づいて、前記第1アクセス要求を発行した前記要求発行部に前記第1出力要求を出力することを特徴とする付記1ないし付記4のいずれか1項記載の演算処理装置。
(付記6)
前記調停部は、前記第1アクセス要求に対応して前記バスに転送されるデータの出力サイクル数に対応する期間、調停の許可を抑止する抑止部を有することを特徴とする付記1ないし付記5のいずれか1項記載の演算処理装置。
(付記7)
前記要求発行部から出力されるデータと、前記要求制御部から出力される前記ヘッダ情報を前記装置に転送する共通バスを有することを特徴とする付記1ないし付記6のいずれか1項記載の演算処理装置。
(付記8)
入出力を行う入出力装置に転送するデータの出力を伴う第1アクセス要求と、前記データの出力を伴わない第2アクセス要求とを出力し、前記第1アクセス要求の出力後に受信する第1出力要求に基づいて前記データをバスに出力する複数の要求発行部と、前記複数の要求発行部からの前記第1アクセス要求および前記第2アクセス要求を調停する調停部を有し、前記入出力装置に接続される演算処理装置の制御方法において、
前記複数の要求発行部のそれぞれに対応して設けられる複数のタイミング制御部が、未処理の第1アクセス要求が存在しない場合、第2アクセス要求の調停の許可に基づいて出力する第2出力要求を、未処理の第1アクセス要求が存在する場合の前記第2出力要求の出力に比べて早いタイミングで出力し、
前記複数の要求発行部のそれぞれに対応して設けられる複数の要求制御部が、前記第1アクセス要求および前記第2アクセス要求を保持し、前記第1アクセス要求の調停の許可に基づいて前記要求発行部に前記第1出力要求を出力し、前記第2出力要求に基づいて、保持中の前記第2アクセス要求に含まれるヘッダ情報を前記バスに出力することを特徴とする演算処理装置の制御方法。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。