[go: up one dir, main page]

JP2007133633A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2007133633A
JP2007133633A JP2005325740A JP2005325740A JP2007133633A JP 2007133633 A JP2007133633 A JP 2007133633A JP 2005325740 A JP2005325740 A JP 2005325740A JP 2005325740 A JP2005325740 A JP 2005325740A JP 2007133633 A JP2007133633 A JP 2007133633A
Authority
JP
Japan
Prior art keywords
write
command
data
buffer
read
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.)
Pending
Application number
JP2005325740A
Other languages
English (en)
Inventor
Hiroyuki Murata
博幸 村田
Tsuyoshi Maeda
剛志 前田
Koji Etani
康治 柄谷
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005325740A priority Critical patent/JP2007133633A/ja
Publication of JP2007133633A publication Critical patent/JP2007133633A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】ライトバッファに一時的に格納しているデータをマスタが必要とするとき、ライトバッファからマスタに直接データを転送することで高速化を図っているが、インターリーブ対応のライトバッファからリードする方式については考慮されていない。
【解決手段】マスタMi(i=1,2,3)毎の複数のコマンドバッファCiと、マスタ毎のインターリーブ対応のライトバッファW2と、各コマンドバッファからのライトコマンドを調停するライトコマンド調停回路W1と、ライトバッファ内のデータ送信順を決定するライトデータ調停回路W3と、各コマンドバッファからのリードコマンドを調停するリードコマンド調停回路R1と、ライトバッファW2内の情報を把握し、調査するライトバッファ管理回路MWと、スレーブS1からマスタへ送信されるリードデータとライトバッファW2からマスタへ送信されるリードデータを選択するリードデータ選択回路R2を備える。
【選択図】図1

Description

本発明は、複数のマスタ(転送元)がリソース(スレーブ)を共有しているバスシステムにおいて、コマンドバッファ、インターリーブ対応のライトバッファを効果的に使用する情報処理装置に関する。
従来の情報処理装置におけるバス転送方法について、図8を用いて説明する。Mはマスタ、Sはスレーブ、21はコマンドバッファ、22はライトバッファ、23はライトコマンド選択回路、24はライトデータ選択回路、25はリードコマンド選択回路、26はリードデータ選択回路、27はライトバッファ調査手段、28はライトデータ退避バッファである。
マスタMから出力されたライトコマンド、リードコマンドはコマンドバッファ21に一時的に格納される。また、マスタMから出力されたライトデータはライトバッファ22に一時的に格納される。
ライトコマンド選択回路23はコマンドバッファ21におけるライトコマンドを順次に選択し、スレーブSに出力する。同期して、ライトデータ選択回路24はライトバッファ22から対応するライトデータを読み出し、スレーブSに出力する。したがって、マスタMはライトバッファ22に格納したデータがスレーブSに出力されたか否かを気にせずに、次の処理を開始することができる。
ライトバッファ調査手段27は、コマンドバッファ21におけるリードコマンドについてライトバッファ22を検索し、リードしたいデータがライトバッファ22に格納されているか否かを調査する。リードしたいデータがライトバッファ22に格納されていないときは、リードコマンド選択回路25はコマンドバッファ21におけるリードコマンドをスレーブSに出力し、スレーブSはリードコマンドに応じてデータを読み出し、リードデータ選択回路26に送出し、さらにマスタMに送出する。リードしたいデータがライトバッファ22に格納されているときは、ライトバッファ22からそのデータを読み出してライトデータ退避バッファ28に転送格納し、さらにリードデータ選択回路26を介してマスタMに送出する。ライトバッファ22からデータをマスタMに直接転送することにより、高速化が図られている。
特開平10−293718号公報
従来の情報処理装置では、複数のマスタが同時に複数のスレーブへ転送可能なバスシステム(階層型バス)において、各マスタ間にはライトデータの転送能力に差があるために、ライトデータ転送能力の低いマスタにバスを長時間専有されてしまうという課題があった。そこで、一般的な階層型バスにおいて、1マスタによる長時間のバス専有の課題を解決すべく、スレーブ毎に各マスタ用のインターリーブ対応のライトバッファを実装している。しかし、面積および電力の増大を招いている。
また、階層型バスでは複数マスタが同時に複数スレーブへ転送を行うので、複数マスタから1スレーブへのアクセス集中によるボトルネック(行き詰まり)や優先度の低い転送に起因するバス専有が生じ、データ転送効率を下げるという課題があった。
本発明は、このような事情に鑑みて創作したものであり、規模増大を抑制しながら、データ転送効率を向上できる情報処理装置を提供することを目的としている。
本発明による情報処理装置は、少なくとも2つのマスタと少なくとも1つのスレーブが、ライトコマンドバス、ライトデータバス、リードコマンドバス、リードデータバスを介してを介してそれぞれ独立に接続された情報処理装置であって、
前記マスタ毎に接続され、前記マスタが前記スレーブへ向けて送信するライトコマンド、リードコマンドを一時的に格納する複数のコマンドバッファと、
前記マスタが前記スレーブへ向けて送信するライトデータを前記マスタ毎に一時的に格納するインターリーブ対応のライトバッファと、
前記各コマンドバッファから前記スレーブに向けて送信されるライトコマンドを優先順位に基づいて調停するライトコマンド調停手段と、
前記ライトバッファ内のデータ送信順を決定するライトデータ調停手段と、
前記各コマンドバッファから前記スレーブに向けて送信されるリードコマンドを優先順位に基づいて調停するリードコマンド調停手段と、
前記インターリーブ対応のライトバッファ内の情報を把握し、調査するライトバッファ管理手段と、
前記スレーブから前記マスタへ送信されるリードデータと前記ライトバッファから前記マスタへ送信されるリードデータを選択するリードデータ選択手段とを備えた構成とされている。
上記において、前記ライトバッファ管理手段は、前記リードコマンド調停手段での調停の前にリードデータが前記ライトバッファに格納されているかを調査するように構成されているものとする。
この構成において、あるマスタがスレーブに向けてライトコマンドとライトデータを送信すると、ライトコマンドはそのマスタに個別的に対応したコマンドバッファに一時的に格納される。コマンドバッファに格納されたライトコマンドはスレーブに向けて送信されるが、途中でライトコマンド調停手段に取り込まれ、優先順位に基づいて調停されたのち、スレーブに出力される。マスタからのライトデータはインターリーブ対応のライトバッファにおけるそのマスタ対応のバッファに一時的に格納され、ライトデータ調停手段によって送信順を決められ、その順でスレーブにインターリーブ出力される。
また、あるマスタがスレーブに向けてリードコマンドを送信すると、リードコマンドはそのマスタに個別的に対応したコマンドバッファに一時的に格納され、コマンドバッファに格納されたリードコマンドはリードコマンド調停手段に取り込まれ、優先順位に基づいて調停されたのち、ライトバッファ管理手段に出力される。ライトバッファ管理手段は、リードコマンド調停手段から受け取ったリードコマンドについて、ライトバッファ内にリードしたいデータが格納されているかを調査し、格納されていないときは、リードコマンド調停手段からリードコマンドをスレーブに出力し、スレーブは該当のデータをリードデータとしてリードデータ選択手段に送る。また、ライトバッファにリードしたいデータが格納されているときは、ライトバッファからそのデータを読み出してリードデータとしてリードデータ選択手段に送る。リードデータ選択手段は、該当のマスタに向けてリードデータを送信する。
複数のマスタからのリードコマンドが同時的に発生した場合に、ライトバッファ管理手段は、低い優先順位のリードコマンドにおいてリードしたいデータがライトバッファに格納されているか否かを判断し、格納されているときは、リードコマンド調停手段の優先順位を動的に高める。これにより、ライトバッファからのデータリードを高速化することができる。
以上のように本発明によれば、複数のマスタからのライトデータに対して個別的に一時的格納を行うバッファを集約してインターリーブ対応のライトバッファを構成している。ライトデータ調停手段は、インターリーブ対応のライトバッファにおける複数のマスタからのラッチデータを調停しながらスレーブへ転送格納する。また、ライトバッファ管理手段は、複数のマスタからのリードコマンドがあったときに、そのいずれについてもリードしたいデータがインターリーブ対応のライトバッファに格納されているかを検索し、格納されているときは、スレーブにアクセスすることなく、インターリーブ対応のライトバッファからそのリードしたいデータを読み出し、該当のマスタへ転送する。以上の結果として、規模増大を抑制しながら、データライト処理、データリード処理を高速化し、バスシステムのデータ転送効率を向上させることができる。
また、上記において、前記リードコマンド調停手段は、前記ライトバッファの使用履歴を保持しているものが好ましい。ライトバッファからデータリードした回数を使用履歴で保存し、過去において、優先順位を高めてライトバッファからデータリードした同じマスタのリードコマンドの優先順位を下げるように制御する。これにより、同じマスタに高い優先順位を集中させることを回避し、他のマスタもバスを使用できるように調停する。
また、上記において、前記ライトデータ調停手段は、前記ライトバッファの使用履歴を保持しているものが好ましい。ライトバッファからデータリードしたとき、使用履歴におけるデータリードの回数を数え、優先順位を下げるように制御する。これにより、ライトバッファからリードされたデータをライトバッファに残りやすくし、再度同じアドレスへリードアクセスをしたときに、ライトバッファにデータが残されている確率を高め、データリードを高速化する。
また、上記において、さらに、前記ライトバッファ内の同じアドレスのライトデータを消去するライトデータ消去手段を備えるという態様がある。ライトデータ消去手段は、コマンドバッファがスレーブへ出力する各コマンドとライトバッファを監視し、ライトバッファに格納されているデータのアドレスと同じアドレスへのライトコマンドであったとき、先に受け付けたライトコマンドとライトデータをスレーブに出力することなく、コマンドバッファからライトコマンドを削除するとともにライトバッファ上からライトデータを削除する。すなわち、スレーブに一度書き込んだデータについては、二度の重複する書き込みを停止することにより、ライトデータ転送を効率化する。
また、上記において、さらに、前記ライトバッファ内にロック転送を検出するロック転送検出手段を備えるという態様がある。ロック転送検出手段は、ライトコマンドがロック転送かどうかを調査し、ロック転送時にはライトバッファに格納されたライトデータをスレーブに出力する優先度を高める。これにより、スレーブに早期に出力したいロック転送がライトバッファに長く留まることを少なくし、ロック転送を効率化する。
また、上記において、さらに、リードしたいデータが前記ライトバッファに格納されているとき、対象のライトデータを前記ライトバッファから転送退避し、さらに前記マスタに転送するライトデータ退避バッファを備えるという態様がある。ライトデータ退避バッファは、リードしたいデータがライトバッファに格納されているとき、そのデータをライトバッファから転送して退避した上で、該当するマスタにデータを送る。これにより、ライトバッファは、そこからのリードの終了を待つことなく、いつでもスレーブにデータを出力できるようになる。
また、上記において、さらに、前記コマンドバッファに直近に出力される先出しリードコマンドが格納されているか調査する先出しリードコマンド調査手段を備え、前記ライトバッファ管理手段は、前記先出しリードコマンドにおいてリードしたいデータが前記ライトバッファに格納されているときは、そのデータが前記ライトバッファに残っているように、前記ライトデータ調停手段においてそのデータを前記スレーブに出力する優先順位を下げるように構成されているという態様がある。
この場合、先出しリードコマンド調査手段は、直近に出力される先出しリードコマンドがコマンドバッファに格納されているかを調べ、格納されているときは、その先出しリードコマンドをライトバッファ管理手段に送る。ライトバッファ管理手段は、先出しリードコマンドにおいてリードしたいデータがライトバッファに格納されているかを検索し、格納されていれば、ライトデータ調停手段において、そのデータをスレーブに出力する優先順位を下げる。すなわち、実際にリードコマンドが発行されたときにライトバッファからデータを読み出せるように、そのライトデータがライトバッファに留まるように制御する。これにより、リードデータおよびライトデータの転送が効率化される。
また、上記において、さらに、前記コマンドバッファに格納されているライトコマンドを調査する先出しライトコマンド調査手段と、前記リードコマンド調査手段によりアクセスが見込まれるライトデータを保持するライトデータ予約バッファとを備え、前記ライトバッファ管理手段は、前記両コマンド調査手段からの情報に基づく判断で、前記コマンドバッファからライトコマンドが出力され、その後にリードコマンドが出力されるときは、前記マスタから前記ライトバッファに出力されるライトデータを前記ライトデータ予約バッファにも格納し、その後、リードコマンドが発行されたときに、前記ライトデータ予約バッファからそのデータを読み出すように構成されているという態様がある。
この場合、先出しライトコマンド調査手段はコマンドバッファにライトコマンドが格納されているかを調べ、先出しリードコマンド調査手段は前記のライトコマンドの後に出力されるリードコマンドがコマンドバッファに格納されているかを調べる。ライトバッファ管理手段は、両コマンド調査手段からの情報を解析し、コマンドバッファからライトコマンドが出力され、その後にリードコマンドが出力されると判断したときは、マスタからライトバッファに出力されるライトデータをライトデータ予約バッファにも格納する。そして、その後に発行されるリードコマンドに基づいてライトデータ予約バッファからそのデータを読み出すように制御する。これにより、リードデータおよびライトデータの転送が効率化される。
また、上記において、さらに、前記コマンドバッファに格納されているライトコマンドを調査する先出しライトコマンド調査手段と、前記リードコマンド調査手段によりアクセスが見込まれるライトデータを保持するライトデータ予約バッファとを備え、前記ライトバッファ管理手段は、前記両コマンド調査手段からの情報に基づく判断で、前記コマンドバッファからライトコマンドが出力され、その後にリードコマンドが出力されるときは、前記ライトバッファに格納されているライトデータを前記ライトデータ予約バッファに転送し、その後、リードコマンドが発行されたときに、前記ライトデータ予約バッファからそのデータを読み出すように構成されているという態様がある。
この場合、先出しライトコマンド調査手段はコマンドバッファにライトコマンドが格納されているかを調べ、先出しリードコマンド調査手段は前記のライトコマンドの後に出力されるリードコマンドがコマンドバッファに格納されているかを調べる。ライトバッファ管理手段は、両コマンド調査手段からの情報を解析し、コマンドバッファからライトコマンドが出力され、その後にリードコマンドが出力されると判断したときは、ライトバッファに格納されているライトデータをライトデータ予約バッファに転送する。そして、その後に発行されるリードコマンドに基づいてライトデータ予約バッファからそのデータを読み出すように制御する。これにより、リードデータおよびライトデータの転送が効率化される。
また、上記において、さらに、前記ライトコマンドバス、前記ライトデータバス、前記リードコマンドバスおよび前記リードデータバスのインオーダ転送およびアウトオブオーダ転送を制限するオーダ制限手段を備えるという態様がある。
インオーダ(in-order)転送とは、複数のコマンドを同時的に受け付けた場合に、その受け付けの順番でデータを入出力する方式であり、アウトオブオーダ(out-of-order)転送とは、データを時分割に切り替えて入出力する方式である。オーダ制限手段は、インオーダ転送に切り替えられたときは、先に発行されたコマンドの処理が終わるまで次のコマンドをスレーブに出力しないように制限し、インオーダ転送を強制する。これにより、インオーダ転送とアウトオブ転送の切り替えをスレーブで行わなくてもよく、バス上でインオーダ転送とアウトオブオーダ転送を容易に切り替えることができる。
また、上記において、前記ライトバッファ管理手段は、前記ライトバッファからのリード可能なアドレス領域を指定可能に構成されているという態様がある。これによれば、ライトバッファ管理手段は、リードコマンドのアドレスがこのアドレス領域内であるときに限って、ライトバッファからデータリードするように制限する。これにより、FIFO等の直接にスレーブからデータリードしなければならない領域を容易に設定できる。
なお、上記のいずれかの情報処理装置が多重化されたマルチレイヤ構成とされ、複数の前記情報処理装置における個々の前記ライトバッファ管理手段はそれぞれ、すべての前記インターリーブ対応のライトバッファ内の情報を管理するように構成されているという態様もある。
本発明によれば、リード処理、ライト処理を高速化し、バスシステムのデータ転送効率を向上させることができる。
以下、本発明にかかわる情報処理装置の実施の形態を図面に基づいて詳細に説明する。
(実施の形態1)
図1は本発明の実施の形態1における情報処理装置の構成を示すブロック図である。図1において、実線矢印はライトコマンドを表し、破線矢印はリードコマンドを表す。また、太線の実線矢印はライトデータを表し、太線の破線矢印はリードデータを表す。M1,M2,M3はマスタ、S1はスレーブ、1はマスタM1,M2,M3とスレーブS1とをライトコマンドバスa、ライトデータバスb、リードコマンドバスc、リードデータバスdを介してそれぞれ独立に接続するインターコネクトである。また、C1,C2,C3はマスタM1,M2,M3のそれぞれがスレーブS1へ送信するライトコマンドとリードコマンドを一時的に格納するコマンドバッファ、W1はコマンドバッファC1,C2,C3のそれぞれからスレーブS1に送信されたライトコマンドを優先順位に基づいて調停するスレーブS1専用のライトコマンド調停回路、W2はマスタM1,M2,M3からスレーブS1へ送信したライトデータをマスタ毎のバッファに一時的に格納するインターリーブ対応のライトバッファ、W3はライトバッファW2内におけるライトデータの送信順を調停するライトデータ調停回路、R1はコマンドバッファC1,C2,C3それぞれからスレーブS1に送信されたリードコマンドを優先順位に基づいて調停するスレーブS1専用のリードコマンド調停回路、R2はスレーブS1からのリードデータとライトバッファ管理回路MWからのリードデータの選択を行い、該当するマスタM1,M2,M3へ出力するリードデータ選択回路、MWはライトバッファW2内の情報を把握し、リードコマンド調停回路R1からのリードコマンドに対応するリードしたいデータがライトバッファW2に格納されているかを調査するライトバッファ管理回路である。インターコネクト1は、これらの要素によって構成されている。スレーブは、単一であっても複数であってもよい。スレーブが複数のときは、インターコネクトも複数とする。
マスタM1,M2,M3はそれぞれ個別的にコマンドバッファC1,C2,C3に接続されている。マスタM1が発行するライトコマンドまたはリードコマンドは、コマンドバッファC1に一時的に格納される。また、マスタM2が発行するライトコマンドまたはリードコマンドは、コマンドバッファC2に一時的に格納され、マスタM3が発行するライトコマンドまたはリードコマンドは、コマンドバッファC3に一時的に格納される。
コマンドバッファCi(i=1,2,3)から出力されるライトコマンドは、ライトコマンド調停回路W1に入力され、スレーブS1に対する出力が調停される。マスタMi(i=1,2,3)からスレーブS1に向けて送られたライトデータは、ライトバッファW2におけるマスタ毎に用意されたバッファに個別的に一時的に格納される。そして、ライトデータ調停回路W3は、ライトバッファW2におけるライトデータをスレーブS1に対してインターリーブ出力するように調停する。
また、コマンドバッファCi(i=1,2,3)から出力されるリードコマンドは、リードコマンド調停回路R1で調停され、ライトバッファ管理回路MWに伝えられる。ライトバッファ管理回路MWは、リードしたいデータがライトバッファW2に格納されているかを調査する。その調査の結果、格納されていなければ、ライトバッファ管理回路MWからの指示に基づいてリードコマンド調停回路R1は、リードコマンドをスレーブS1に出力する。この場合、スレーブS1からデータ(リードデータ)が読み出され、このリードデータがリードデータ選択回路R2で選択されて、リードコマンドを発行した元のマスタMi(i=1,2,3)に返される。
図2(a)はリードコマンドの構成を示し、図2(b)はライトコマンドの構成を示す。リードコマンド、ライトコマンドはそれぞれ、リードまたはライトしたいアドレスを保持するアドレス情報、コマンドの転送IDとマスタIDを表すID情報、コマンドがロック転送かどうか表すロック情報、コマンドがリードであるかライトであるかを表すコマンド情報から構成されている。
図2(c)はリードデータまたはライトデータを示す。リードデータおよびライトデータは、リードデータおよびライトデータ自身であるData情報と、データの転送IDおよびマスタIDを保持するID情報から構成されている。
ID情報は、例えば下位4ビットは、ばらばらに送られるリードコマンドとリードデータの一致をとるためのIDとして、また、ライトコマンドとライトデータの一致をとるためのIDとして使用される。また、上位4ビットは、それらのリードコマンドおよびライトコマンドやライトデータがマスタM1,M2,M3のうちどのマスタから出力されたか知るためのマスタIDとして利用される。なお、マスタM1のマスタIDは「0」、マスタM2のマスタIDは「1」、マスタM3のマスタIDは「2」である。
リードデータのIDについては、スレーブS1がマスタMi(i=1,2,3)から受け取ったリードコマンドのID情報をそのまま付加してインターコネクト1に送り、ID情報のマスタIDで指定されるマスタにデータを返す。
図3(a)はコマンドバッファC1,C2,C3の構成を示す。マスタM1,M2,M3が発行するリードコマンドおよびライトコマンドを受け取るバッファがマスタ毎に用意されている。各バッファは複数のWord領域を持ち、Word領域毎にそれぞれ、V情報(バッファ内の有効なデータの有無を表す)、ID情報、アドレス情報、ロック情報、コマンド情報から構成されている。リードコマンドおよびライトコマンドを受け取ったとき、Word0から順に格納し、先入れ先出し方式で出力する。
図3(b)はインターリーブ対応のライトバッファW2の構成を示す。マスタM1,M2,M3がスレーブS1に向けて送ったライトデータを受け取るバッファがマスタ毎に用意されている。各バッファは複数のWord領域を持ち、Word領域毎にV情報、ID情報、Data情報、ライトデータの出力先のアドレスを保持するWrite Addr情報から構成されている。
次に、上記のように構成された本実施の形態の情報処理装置の動作を説明する。
まず、ライト動作について説明する。
マスタMi(i=1,2,3)が発行したライトコマンドは、そのマスタMiに接続されたコマンドバッファCi(i=1,2,3)に一時的に格納される。コマンドバッファCiに格納されたライトコマンドはスレーブS1に向けて送られるが、途中でライトコマンド調停回路W1に取り込まれ、ライトコマンド調停回路W1によりインターリーブ可能な数だけスレーブS1に出力するように調停される。
マスタMi(i=1,2,3)から送られたライトデータは、ライトバッファW2に向けて送られるが、アドレス情報を持つライトコマンドがライトコマンド調停回路W1で調停されるまでは、そのライトデータがスレーブS1に送られたものか否かを判断することはできない。ライトコマンド調停回路W1で調停されたIDを持つライトデータのみがライトバッファW2に格納される。それ以外のライトデータは受け取ることができない。
ライトバッファW2にライトデータを格納するとき、Word領域にV情報をセットし、ID情報およびData情報からなるライトデータを格納し、さらにライトコマンドのアドレス情報をWrite Addr情報として格納する。ライトバッファW2に格納されたライトデータは、ライトデータ調停回路W3によりスレーブS1に対してインターリーブ出力するよう調停される。
次に、リード動作について説明する。
マスタMi(i=1,2,3)が発行したリードコマンドは、そのマスタMiに接続されたコマンドバッファCi(i=1,2,3)に一時的に格納される。コマンドバッファCiに格納されたリードコマンドはリードコマンド調停回路R1に出力される。このとき、リードコマンドはリードコマンド調停回路R1で調停され、ライトバッファ管理回路MWに伝えられる。このライトバッファ管理回路MWは、ライトバッファW2のすべてのWord領域のWrite Addr情報を検索し、リードしたいアドレスのデータがライトバッファW2に格納されているかを調べる。
ライトバッファW2にリードしたいデータが格納されていないときは、ライトバッファ管理回路MWからの指示により、リードコマンド調停回路R1はリードコマンドをスレーブS1に出力する。リードコマンドを受け取ったスレーブS1は、リードコマンドのアドレス情報で指定されたアドレスのデータに、リードコマンドのID情報をリードデータのID情報として付加し、リードデータとしてリードデータ選択回路R2に送る。リードデータ選択回路R2からさらに、リードデータのID情報に指定されたマスタIDのマスタMi(i=1,2,3)にリードデータを返す。
また、ライトバッファ管理回路MWは、調査の結果、ライトバッファW2にリードしたいデータが格納されているときは、ライトバッファW2からライトデータを読み出してリードデータとしてリードデータ選択回路R2に送り、リードコマンドのID情報に指定されたマスタIDのマスタMi(i=1,2,3)にリードデータを送る。すなわち、ライトバッファW2上のデータをリードする。
ここで、コマンドバッファC1,C2,C3のうち任意の複数のコマンドバッファからのリードコマンドが同時的にリードコマンド調停回路R1に送られたときは、次のように処理する。すなわち、リードコマンド調停回路R1で調停する前に、ライトバッファ管理回路MWは、低い優先順位のリードコマンドにおいてリードしたいデータがライトバッファW2に格納されているか否かを判断し、格納されていることを認識したときは、その優先順位が低いリードコマンドの優先順位を動的に高めた上で、ライトバッファW2からデータを読むように調停し、該当のマスタMi(i=1,2,3)にリードデータを送るように制御する。これにより、ライトバッファW2からのデータリードを高速化することができる。
ここで、リードコマンド調停回路R1に、図4(a)に示すインターリーブ対応のリードバッファ使用履歴2を設けてあるとする。ライトバッファW2からデータリードした回数をリードバッファ使用履歴2で保存し、過去において、優先順位を高めてライトバッファW2からデータリードした同じマスタのリードコマンドの優先順位を下げるように制御する。これにより、同じマスタに高い優先順位を集中させることを回避し、他のマスタもバスを使用できるように調停することができる。
また、ライトデータ調停回路W3において、図4(b)に示すインターリーブ対応のライトバッファ使用履歴3を設けてあるとする。ライトデータ調停回路W3により、ライトバッファW2からデータリードしたとき、ライトバッファ使用履歴3におけるデータリードされたWord領域を数え、この領域についてスレーブS1へ出力する優先順位を下げるように制御する。これにより、ライトバッファW2からリードされたデータをライトバッファW2に残りやすくする。結果として、再度同じアドレスへリードアクセスをしたときに、ライトバッファW2にデータが残されている確率を高め、データリードを高速化することができる。
(実施の形態2)
図5は本発明の実施の形態2における情報処理装置の構成を示すブロック図である。図5において、実施の形態1の図1におけるのと同じ符号は同一構成要素を指しているので、詳しい説明は省略する。図5において、4はライトデータ消去回路、5はロック転送検出回路、6はライトデータ退避バッファ、7はオーダ制限回路、8はオーダバッファである。
ライトデータ消去回路4は、ライトバッファW2からスレーブS1に一度書き込んだデータについては、二度以上の重複書き込みを回避するために、そのデータをライトバッファW2から消去するものである。このライトデータ消去回路4は、コマンドバッファCi(i=1,2,3)がスレーブS1へ出力する各ライトコマンドとライトバッファW2を監視し、ライトバッファW2に格納されているデータのアドレスと同じアドレスへのライトコマンドであったとき、先に受け付けたライトコマンドとライトデータをスレーブS1に出力することを禁止し、コマンドバッファCiからライトコマンドを削除するとともに、ライトバッファW2上からライトデータを削除するように制御を行う。すなわち、スレーブS1に一度書き込んだデータについては、二度以上の重複書き込みを回避し、ライトデータ転送を効率化するものである。
ロック転送検出回路5は、ライトコマンドがロック転送かどうかを調査し、ロック転送時にはライトバッファW2に格納されているライトデータをスレーブS1に出力する優先度を高めるものである。この機能により、スレーブS1に早期に出力したいロック転送のデータがライトバッファW2に長く留まることを少なくし、ロック転送を効率化することができる。
ライトデータ退避バッファ6は、ライトバッファ管理回路MW内に設けられ、リードしたいデータがライトバッファW2にあるとき、そのデータをライトバッファW2から転送して退避するものである。退避したデータは該当するマスタMi(i=1,2,3)に送られる。これにより、ライトバッファW2は、そこからのデータリードの終了を待つことなく、いつでもスレーブS1にデータを出力できるようになる。
ところで、マスタMi(i=1,2,3)が送るコマンドやデータのID情報がすべて同じとき、それぞれのコマンドとデータの一致がとれなくなる。このとき、スレーブS1は、同時的に受け付けた複数のコマンドに対して、データを時分割に切り替えて入出力するアウトオブオーダ(out-of-order)転送)は実行できない。そこで、受け付けた順番でデータを入出力するインオーダ(in-order)転送に制限する必要がある。これを実現するのがオーダ制限回路7である。
オーダ制限回路7は、インオーダ転送を強制するインオーダ転送レジスタを持つ。マスタMi(i=1,2,3)によってインオーダ転送レジスタがオンされたとき、オーダ制限回路7は、ライトコマンド調停回路W1およびリードコマンド調停回路R1に対して、先に発行されたコマンドの処理が終わるまで次のコマンドをスレーブS1に出力しないように制限し、インオーダ転送を強制する。これにより、インオーダ転送とアウトオブ転送の切り替えをスレーブS1で行わなくてもよく、バス上でインオーダ転送とアウトオブオーダ転送を容易に切り替えることができる。
オーダバッファ8は、スレーブS1がアウトオブオーダで出力したデータを受け取り、インオーダに並び替えてマスタMi(i=1,2,3)にデータを返すものである。この機能により、オーダ制限回路7のインオーダ転送レジスタがオンのとき、リードコマンド調停回路R1を制限しなくてもよく、上記同様の機能を実現できる。
さらに、ライトバッファ管理回路MWは、ライトバッファW2からデータリードできるアドレス領域を保持するように構成してもよい。この場合、ライトバッファ管理回路MWは、リードコマンドのアドレスがこのアドレス領域内であるときは、そのときに限り、ライトバッファW2からデータリードするように制限する。これにより、FIFO等の直接にスレーブS1からデータリードしなければならない領域を容易に設定できる。
また、ライトバッファW2からデータリードする機能をオンオフするためのレジスタをライトバッファ管理回路MWに設けるのも有効である。この場合、一時的にスレーブS1から直接読みたいときなどにおいて、スレーブS1の全領域を直接リードできるように制限することができる。
本実施の形態によれば、以上のような処理を行うことで、リードしたいデータがインターリーブ対応のライトバッファW2に格納されているときは、そのライトバッファW2からデータを読み出すことで、リード動作の高速化およびリードトラフィックおよびライトトラフィックの削減を図ることができる。
(実施の形態3)
図6は本発明の実施の形態3における情報処理装置の構成を示すブロック図である。図6において、実施の形態1の図1におけるのと同じ符号は同一構成要素を指しているので、詳しい説明は省略する。図6において、9は専用バスで接続され、コマンドバッファCi(i=1,2,3)に格納されているライトコマンド(先出しライトコマンド)を調べるための先出しライトコマンド調査手段、10は専用バスで接続され、コマンドバッファCiに格納されているリードコマンド(先出しリードコマンド)を調べるための先出しリードコマンド調査手段、11はコマンドバッファCiからライトコマンドが出力された後にリードコマンドが出力されるときに、ライトバッファW2に対するライトデータを格納しておくライトデータ予約バッファである。
次に、上記のように構成された本実施の形態の情報処理装置の動作を説明する。
基本的な動作は、実施の形態1の場合と同様である。
先出しリードコマンド調査手段10は、コマンドバッファCi(i=1,2,3)に格納されているリードコマンド(先出しリードコマンド)を検索し、数サイクル後にコマンドバッファCiからスレーブS1に送られるリードコマンドの情報をライトバッファ管理回路MWに送る。ライトバッファ管理回路MWは、これらの先出しリードコマンドにおいてリードしたいデータがライトバッファW2に格納されていないかを検索し、格納されていれば、ライトデータ調停回路W3において、そのライトデータをスレーブS1に出力する優先順位を下げる。すなわち、実際にリードコマンドが発行されたときにライトバッファW2からデータを読み出せるように、そのライトデータがライトバッファW2に留まるように制御する。これにより、リードデータおよびライトデータの転送を効率化できる。
さらに、先出しライトコマンド調査手段9がコマンドバッファCi(i=1,2,3)に格納されている先出しライトコマンドを検索するとともに、先出しリードコマンド調査手段10がコマンドバッファCiに格納されている先出しリードコマンドを検索し、ライトバッファ管理回路MWは、コマンドバッファCiからライトコマンドが出力され、その後にリードコマンドが出力されるか否かを調べる。そのとおりと分かったとき、ライトバッファ管理回路MWは、ライトバッファW2に出力されたライトデータをライトデータ予約バッファ11にも格納する。その後、リードコマンドが発行されると、ライトバッファ管理回路MWは、ライトデータ予約バッファ11からそのデータを読み出し、該当のマスタMi(i=1,2,3)に向けて出力する。これにより、実際にリードコマンドが発行されると、直ちにライトデータ予約バッファ11からデータリードすることができる。
なお、ライトデータ予約バッファ11へのライトデータの格納については、マスタMi(i=1,2,3)からの書き込みに代えて、ライトバッファW2からのデータ転送でもよい。
(実施の形態4)
本発明の実施の形態4はマルチレイヤ構成にかかわるものである。図7は本発明の実施の形態4における情報処理装置の構成を示すブロック図である。図7において、実施の形態1の図1におけるのと同じ符号は同一構成要素を指しているので、詳しい説明は省略する。
マスタM1,M2,M3は2つのインターコネクト1,1aに接続されている。
インターコネクト1aはインターコネクト1と同様の構成となっている。インターコネクト1aにおいてもインターコネクト1のコマンドバッファC1,C2,C3と同様の3つのコマンドバッファがあり、それぞれがマスタM1,M2,M3に個別的に接続されている。マスタMi(i=1,2,3)は、2つのインターコネクト1,1aのうちいずれのインターコネクトを使用するかを指定するようになっている。マスタMi(i=1,2,3)が発行するライトコマンドとリードコマンドは、マスタMi(i=1,2,3)が指定したインターコネクトのコマンドバッファに格納される。
インターコネクト1,1aのそれぞれにおいて、コマンドバッファC1,C2,C3からスレーブS1に向けて送られたリードコマンドは、各リードコマンド調停回路R1で調停され、さらに、各ライトバッファ管理回路MWでリードしたいデータがインターコネクト1,1aのすべてにおいてライトバッファW2,W2aに格納されているかを調査する。すなわち、すべてのライトバッファW2,W2aのWord領域のWrite Addr情報を検索し、リードしたいアドレスのデータが格納されているかを調べる。そして、格納されていなければ、リードコマンドをスレーブS1に出力し、スレーブS1からのリードデータをリードデータ選択回路R2で選択し、マスタM1,M2,M3に返す。格納されていれば、リードコマンドはスレーブS1に出力しないように制御し、ライトバッファW2のデータをリードデータ選択回路R2で選択し、マスタM1,M2,M3に返す。
本発明の技術は、マルチタスク機能を有する情報処理装置等として有用である。
本発明の実施の形態1における情報処理装置の構成を示すブロック図 本発明の実施の形態におけるリードコマンド、ライトコマンド、リードデータおよびライトデータの構成を示す図 本発明の実施の形態におけるコマンドバッファおよびインターリーブ対応のライトバッファの構成を示す図 本発明の実施の形態1におけるインターリーブ対応のリードバッファおよびライトバッファの使用履歴を示す図 本発明の実施の形態2における情報処理装置の構成を示すブロック図 本発明の実施の形態3における情報処理装置の構成を示すブロック図 本発明の実施の形態4における情報処理装置の構成を示すブロック図 従来の技術における情報処理装置の構成を示すブロック図
符号の説明
a ライトコマンドバス
b ライトデータバス
c リードコマンドバス
d リードデータバス
C1,C2,C3 コマンドバッファ
M1,M2,M3 マスタ
MW ライトバッファ管理回路
R1 リードコマンド調停回路
R2 リードデータ選択回路
S1 スレーブ
W1 ライトコマンド調停回路
W2,W2a インターリーブ対応のライトバッファ
W3 ライトデータ調停回路
1,1a インターコネクト
2 リードバッファ使用履歴
3 ライトバッファ使用履歴
4 ライトデータ消去回路
5 ロック転送検出回路
6 ライトデータ退避バッファ
7 オーダ制限回路
8 オーダバッファ
9 先出しライトコマンド調査手段
10 先出しリードコマンド調査手段
11 ライトデータ予約バッファ

Claims (13)

  1. 少なくとも2つのマスタと少なくとも1つのスレーブが、ライトコマンドバス、ライトデータバス、リードコマンドバス、リードデータバスを介してを介してそれぞれ独立に接続された情報処理装置であって、
    前記マスタ毎に接続され、前記マスタが前記スレーブへ向けて送信するライトコマンド、リードコマンドを一時的に格納する複数のコマンドバッファと、
    前記マスタが前記スレーブへ向けて送信するライトデータを前記マスタ毎に一時的に格納するインターリーブ対応のライトバッファと、
    前記各コマンドバッファから前記スレーブに向けて送信されるライトコマンドを優先順位に基づいて調停するライトコマンド調停手段と、
    前記ライトバッファ内のデータ送信順を決定するライトデータ調停手段と、
    前記各コマンドバッファから前記スレーブに向けて送信されるリードコマンドを優先順位に基づいて調停するリードコマンド調停手段と、
    前記インターリーブ対応のライトバッファ内の情報を把握し、調査するライトバッファ管理手段と、
    前記スレーブから前記マスタへ送信されるリードデータと前記ライトバッファから前記マスタへ送信されるリードデータを選択するリードデータ選択手段とを備えた情報処理装置。
  2. 前記ライトバッファ管理手段は、前記リードコマンド調停手段での調停の前にリードデータが前記ライトバッファに格納されているかを調査するように構成されている請求項1に記載の情報処理装置。
  3. 前記リードコマンド調停手段は、前記ライトバッファの使用履歴を保持している請求項1または請求項2に記載の情報処理装置。
  4. 前記ライトデータ調停手段は、前記ライトバッファの使用履歴を保持している請求項1または請求項2に記載の情報処理装置。
  5. さらに、前記ライトバッファ内の同じアドレスのライトデータを消去するライトデータ消去手段を備える請求項1から請求項4までのいずれかに記載の情報処理装置。
  6. さらに、前記ライトバッファ内にロック転送を検出するロック転送検出手段を備える請求項1から請求項5までのいずれかに記載の情報処理装置。
  7. さらに、リードしたいデータが前記ライトバッファに格納されているとき、対象のライトデータを前記ライトバッファから転送退避し、さらに前記マスタに転送するライトデータ退避バッファを備える請求項1から請求項6までのいずれかに記載の情報処理装置。
  8. さらに、前記コマンドバッファに直近に出力される先出しリードコマンドが格納されているか調査する先出しリードコマンド調査手段を備え、
    前記ライトバッファ管理手段は、前記先出しリードコマンドにおいてリードしたいデータが前記ライトバッファに格納されているときは、そのデータが前記ライトバッファに残っているように、前記ライトデータ調停手段においてそのデータを前記スレーブに出力する優先順位を下げるように構成されている請求項1から請求項7までのいずれかに記載の情報処理装置。
  9. さらに、前記コマンドバッファに格納されているライトコマンドを調査する先出しライトコマンド調査手段と、
    前記リードコマンド調査手段によりアクセスが見込まれるライトデータを保持するライトデータ予約バッファとを備え、
    前記ライトバッファ管理手段は、前記両コマンド調査手段からの情報に基づく判断で、前記コマンドバッファからライトコマンドが出力され、その後にリードコマンドが出力されるときは、前記マスタから前記ライトバッファに出力されるライトデータを前記ライトデータ予約バッファにも格納し、その後、リードコマンドが発行されたときに、前記ライトデータ予約バッファからそのデータを読み出すように構成されている請求項8に記載の情報処理装置。
  10. さらに、前記コマンドバッファに格納されているライトコマンドを調査する先出しライトコマンド調査手段と、
    前記リードコマンド調査手段によりアクセスが見込まれるライトデータを保持するライトデータ予約バッファとを備え、
    前記ライトバッファ管理手段は、前記両コマンド調査手段からの情報に基づく判断で、前記コマンドバッファからライトコマンドが出力され、その後にリードコマンドが出力されるときは、前記ライトバッファに格納されているライトデータを前記ライトデータ予約バッファに転送し、その後、リードコマンドが発行されたときに、前記ライトデータ予約バッファからそのデータを読み出すように構成されている請求項8に記載の情報処理装置。
  11. さらに、前記ライトコマンドバス、前記ライトデータバス、前記リードコマンドバスおよび前記リードデータバスのインオーダ転送およびアウトオブオーダ転送を制限するオーダ制限手段を備える請求項1から請求項10までのいずれかに記載の情報処理装置。
  12. 前記ライトバッファ管理手段は、前記ライトバッファからのリード可能なアドレス領域を指定可能に構成されている請求項1から請求項11までのいずれかに記載の情報処理装置。
  13. 請求項1から請求項12までのいずれかに記載の情報処理装置が多重化されたマルチレイヤ構成とされ、複数の前記情報処理装置における個々の前記ライトバッファ管理手段はそれぞれ、すべての前記インターリーブ対応のライトバッファ内の情報を管理するように構成されている情報処理装置。
JP2005325740A 2005-11-10 2005-11-10 情報処理装置 Pending JP2007133633A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005325740A JP2007133633A (ja) 2005-11-10 2005-11-10 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005325740A JP2007133633A (ja) 2005-11-10 2005-11-10 情報処理装置

Publications (1)

Publication Number Publication Date
JP2007133633A true JP2007133633A (ja) 2007-05-31

Family

ID=38155244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005325740A Pending JP2007133633A (ja) 2005-11-10 2005-11-10 情報処理装置

Country Status (1)

Country Link
JP (1) JP2007133633A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012238089A (ja) * 2011-05-10 2012-12-06 Fujitsu Semiconductor Ltd 集積回路装置、検証装置及び検証方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012238089A (ja) * 2011-05-10 2012-12-06 Fujitsu Semiconductor Ltd 集積回路装置、検証装置及び検証方法

Similar Documents

Publication Publication Date Title
JPH10228417A (ja) データ処理システムにおけるメモリリクエスト再順序付け法
AU2003234641B2 (en) Inter-chip processor control plane
JP2003248622A (ja) 帯域幅を増加させるためのメモリシステム
US20080147906A1 (en) DMA Transferring System, DMA Controller, and DMA Transferring Method
JP2006099731A (ja) リソース管理装置
JP2007133633A (ja) 情報処理装置
US7254667B2 (en) Data transfer between an external data source and a memory associated with a data processor
US20160124772A1 (en) In-Flight Packet Processing
KR20110066526A (ko) 다중포트 메모리 콘트롤러 및 다중포트 캐시
JP4642531B2 (ja) データ要求のアービトレーション
CN102405466A (zh) 存储控制装置及其控制方法
US20230138057A1 (en) Method and Control Device for Returning of Command Response Information, and Electronic Device
JPH09153009A (ja) 階層構成バスのアービトレーション方法
JP2006091995A (ja) キャッシュメモリのライトバック装置
JP2010079536A (ja) メモリアクセス制御回路、メモリアクセス制御方法
JP2009199384A (ja) データ処理装置
JP3897028B2 (ja) 情報処理システム、共有データ処理方法、共有データ処理プログラム
JP2005285042A (ja) データ一括転送方法および装置
JP3447820B2 (ja) バスコントローラ
US20050060475A1 (en) Data transfer apparatus and data transfer method
JPH0833869B2 (ja) データ処理装置
JP3467188B2 (ja) 多重化バスの順序保証システム
JP3641347B2 (ja) 競合調停処理方式とその情報処理装置
JP2005063358A (ja) 命令供給制御装置および半導体装置
JP2003280980A (ja) 共有メモリ排他制御装置及び共有メモリ排他制御方法