JP2000339267A - Pciバス制御システム - Google Patents

Pciバス制御システム

Info

Publication number
JP2000339267A
JP2000339267A JP11149279A JP14927999A JP2000339267A JP 2000339267 A JP2000339267 A JP 2000339267A JP 11149279 A JP11149279 A JP 11149279A JP 14927999 A JP14927999 A JP 14927999A JP 2000339267 A JP2000339267 A JP 2000339267A
Authority
JP
Japan
Prior art keywords
pci
pci bus
function
data
control system
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.)
Granted
Application number
JP11149279A
Other languages
English (en)
Other versions
JP3791742B2 (ja
Inventor
Hideo Sudo
日出夫 須藤
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Data Corp
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 Oki Data Corp filed Critical Oki Data Corp
Priority to JP14927999A priority Critical patent/JP3791742B2/ja
Priority to US09/579,173 priority patent/US6678770B1/en
Publication of JP2000339267A publication Critical patent/JP2000339267A/ja
Application granted granted Critical
Publication of JP3791742B2 publication Critical patent/JP3791742B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】 PCIバスマスタが全てのデバイスに対して
アクセスする必要のないPCIバス制御システムを実現
する。 【解決手段】 PCIバス1経由の通信機能を有し、ノ
ン−インテリジェントデバイス4をオーナとして管理
し、ノン−インテリジェントデバイス4に対するデバイ
スドライバを持たないデバイスに対して、ノン−インテ
リジェントデバイス4のサービスを提供するインテリジ
ェントデバイス3を設ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、PCI(Peripher
al Component Interconnect)バス制御を行うPCIバ
ス制御システムに関するものである。
【0002】
【従来の技術】従来、パーソナルコンピュータ(PC)
等で採用しているPCIバス制御システムでは、デバイ
スは全てPCIバス制御をしないノン−インテリジェン
トデバイスで構成されている。よって、PCIバスマス
タ(PC側)が全てのPCI通信の制御を行っていた。
【0003】
【発明が解決しようとする課題】しかしながら、上記従
来のように、PCIバスマスタ側が全てのPCI通信の
制御を行う場合、次のような問題点があった。即ち、P
CIバスマスタが全てのデバイスに対してアクセスする
必要があり、PCIバスマスタに関係ないデバイス同士
のデータコピーを行う場合でもPCIバスマスタが制御
する必要があった。また、PCIバスマスタが全てのデ
バイスに対してアクセスするためのドライバを持つ必要
があった。
【0004】
【課題を解決するための手段】本発明は、前述の課題を
解決するため次の構成を採用する。 〈構成1〉単独ではPCI通信機能を持たないノン−イ
ンテリジェントデバイスと、PCIバス経由の通信機能
を有し、ノン−インテリジェントデバイスをオーナとし
て管理し、ノン−インテリジェントデバイスに対する他
のデバイスからのアクセス要求を中継するインテリジェ
ントデバイスとを備えたことを特徴とするPCIバス制
御システム。
【0005】〈構成2〉構成1に記載のPCIバス制御
システムにおいて、インテリジェントデバイスおよびノ
ン−インテリジェントデバイスは、各デバイスを初期化
する際に参照するコンフィグレーションレジスタの予め
決められた先頭ビット数を、インテリジェントデバイス
かノン−インテリジェントデバイスかを識別するための
値とすることを特徴とするPCIバス制御システム。
【0006】〈構成3〉構成1または2に記載のPCI
バス制御システムにおいて、PCIバスの共有メモリ領
域に、インテリジェントデバイスおよびノン−インテリ
ジェントデバイスにおけるPCIデバイスドライバの初
期化時に使用する通信用作業領域を設け、かつ、通信用
作業領域を各デバイスのメモリ領域の先頭に設けたこと
を特徴とするPCIバス制御システム。
【0007】〈構成4〉構成2に記載のPCIバス制御
システムにおいて、先頭ビット数は、各機能にマッピン
グする領域の先頭に設けた、PCIデバイスドライバの
初期化時に使用する通信用作業領域を有するか否かを示
す値であることを特徴とするPCIバス制御システム。
【0008】〈構成5〉構成1〜4のいずれかに記載の
PCIバス制御システムにおいて、送信側デバイスから
受信側デバイスへの送信データの先頭に、次の送信デー
タのPCIヘッダの先頭アドレスを示すネクストポイン
タと、送信データにおけるデータエリアのアドレスを示
すデータエリアポインタとを示すPCIヘッダを備え、
かつ、ネクストポインタの最下位ビットを、送信データ
が連続するか否かを示すフラグとしたことを特徴とする
PCIバス制御システム。
【0009】〈構成6〉構成1〜5のいずれかに記載の
PCIバス制御システムにおいて、PCIバスマスタお
よびインテリジェントデバイスは、全システム内に存在
する機能と一意に対応づけられ、各機能毎に設けられた
デバイスプロファイルを有し、各デバイスプロファイル
は、送信先のメールボックスのアドレスを示すメールボ
ックスポインタと、送信先の処理に割り込みを発生させ
る割り込み要求レジスタのアドレスを示す割り込み要求
レジスタポインタと、自分宛のコマンドとその引数を格
納するメールボックスとを備え、機能Xのデバイスプロ
ファイルYのメールボックスポインタは、機能Yのデバ
イスプロファイルXのメールボックスのアドレスを示
し、各機能のデバイスプロファイルXの割り込み要求レ
ジスタポインタは、機能Xの割り込み要求レジスタのア
ドレスを示すよう構成されていることを特徴とするPC
Iバス制御システム。
【0010】〈構成7〉構成6に記載のPCIバス制御
システムにおいて、PCIバスマスタは、各インテリジ
ェントデバイスの機能に対して、配布するデバイスプロ
ファイルのサイズと個数とを通知することによりコピー
する先頭アドレスを入手するコピー先アドレス問い合わ
せ処理部と、コピーする先頭アドレスに基づき、配布す
るデバイスプロファイルのメールボックスポインタを求
めるメールボックスポインタ計算処理部とを備えたこと
を特徴とするPCIバス制御システム。
【0011】〈構成8〉構成6または7に記載のPCI
バス制御システムにおいて、割り込み要求レジスタの各
ビットは、それぞれ、各機能と一意に対応づけられ、か
つ、各機能が他の機能に対して割り込みを要求する場合
は、自身のビットに書き込みを行うよう構成されている
ことを特徴とするPCIバス制御システム。
【0012】〈構成9〉構成1〜4、6〜8のいずれか
に記載のPCIバス制御システムにおいて、送信側デバ
イスから受信側デバイスへの送信データの先頭に、次の
送信データのPCIヘッダの先頭アドレスを示すネクス
トポインタと、送信データにおけるデータエリアのアド
レスを示すデータエリアポインタと、送信データのデー
タサイズとを示すPCIヘッダを備えたことを特徴とす
るPCIバス制御システム。
【0013】〈構成10〉構成1〜9のいずれかに記載
のPCIバス制御システムにおいて、PCIバスマスタ
およびインテリジェントデバイスは、階層処理構造にお
ける自層の処理を行うヘッダ情報中に、ヘッダのサイズ
を示す情報を含むと共に、ヘッダ情報の総データ量が特
定の値の倍数となるように可変長のデータであるパディ
ングを付加するようにしたことを特徴とするPCIバス
制御システム。
【0014】〈構成11〉構成1〜10のいずれかに記
載のPCIバス制御システムにおいて、インテリジェン
トデバイスは、予め決められた初期化時暫定マスタより
デバイスマスタ募集があった場合、自身がデバイスマス
タになれる条件を備えていた場合はデバイスマスタに応
募し、デバイスマスタが自身に決定した場合は他のデバ
イスの初期化処理を行うよう構成されていることを特徴
とするPCIバス制御システム。
【0015】
【発明の実施の形態】以下、本発明の実施の形態を具体
例を用いて詳細に説明する。 《具体例1》具体例1は、PCIバス上のPCIバスを
経由した通信を自ら行う機能(Initiator機能)を持た
ないデバイス(ノン−インテリジェントデバイス)をオ
ーナとして管理するインテリジェントデバイスを備える
ようにしたものである。
【0016】〈構成〉図1は本発明のPCIバス制御シ
ステムの具体例1を示す構成図である。図のシステム
は、PCIバス(PCI BUS)1上に接続されたプリンタ
(Printer)2、インテリジェントデバイス(PCI Devic
e (Intelligent)またはMFP(Intelligent))3、ノン−
インテリジェントデバイス(PCI Device (Non Intellig
ent))4からなる。
【0017】プリンタ2は、PCIバスマスタ(PCI BU
S Master)としての機能を有するデバイスである。イン
テリジェントデバイス3は、自身にCPUを持ち、PC
Iバス1を経由した通信を自ら行う機能(Initiator機
能)を持っているデバイスである。ノン−インテリジェ
ントデバイス4は、PCIバス1を経由した通信を行う
機能を持たないデバイスである。
【0018】即ち、インテリジェントデバイス3は、ノ
ン−インテリジェントデバイス4をオーナとして管理す
るデバイスであり、オーナとして管理するノン−インテ
リジェントデバイス4のデバイスドライバを備え、か
つ、そのノン−インテリジェントデバイス4へアクセス
する機能と、他のデバイスからそのノン−インテリジェ
ントデバイス4へのアクセス要求を取りまとめる(中継
する)機能とを有している。
【0019】図2は、本発明のPCIバス制御システム
のソフトウェア階層構造を示す説明図である。図示のよ
うに、PCIバス1を経由する二つのデバイス間通信
は、PCIデバイスドライバ(PCI Device Driver)の
上位層としてゲート(Gate)層を、ゲート層の上位層と
してIEEE1284.4(プロトコル層)とサービス
マネージャ(Service Maneger)を使用する。ここで、
PCIデバイスドライバは、PCIバスのデバイスドラ
イバ、ゲート層は、それぞれのデバイスを識別するPC
Iバスに接続されるボードレベルの制御を行う部分、サ
ービスマネージャは、例えば、印刷といったサービスを
制御する部分である。
【0020】動作的には、送信元PCIデバイスドライ
バが作成する送信データは送信先PCIデバイスドライ
バが処理する。送信元ゲートが作成する送信データは送
信先ゲートが処理する。送信元IEEE1284.4が
作成する送信データは送信先IEEE1284.4が処
理する。送信元IEEE1284.4の上位層が作成す
る送信データは送信先IEEE1284.4の上位層が
処理する。以上のような階層構造により構成される。
【0021】〈動作〉インテリジェントデバイス3が、
先ず自身を初期化し、ノン−インテリジェントデバイス
4は、インテリジェントデバイス(オーナ)3による初
期化待ちとなる。
【0022】図3は、ノン−インテリジェントデバイス
4の初期化の説明図である。具体例のPCIの初期化処
理(拡張PCI初期化処理、拡張Gate初期化処理)で
は、ノン−インテリジェントデバイス4に対してアクセ
ス可能な仮のオーナを決定するプロセスを実行する。ま
た、サービスマネージャの初期化では、仮サービスの認
識、オーナの募集を行う。
【0023】デバイスマスタ(PCI BUS Master:PCI
バスマスタ)は、仮オーナ決定処理を行う。よって、本
仕様ではPCIバスマスタ上に存在する各ノン−インテ
リジェントデバイス4は、仮オーナになれる機能をもっ
たインテリジェントデバイス3が必要である。仮オーナ
の役割は、オーナとなっているノン−インテリジェント
デバイス4の関連情報に対して、PCIバスマスタから
の問い合わせに回答することである。例えば、後述する
サービスマネージャの初期化で必要となる情報の収集が
行われるが、その際に、ノン−インテリジェントデバイ
ス4は、その要求に対応できないため、仮オーナとなっ
たインテリジェントデバイス3は代わりにそのデバイス
の情報を収集し送信する。
【0024】仮オーナを決定するため、PCIバスマス
タは先ず一つのノン−インテリジェントデバイス4に対
する仮オーナ要求を、存在する全インテリジェントデバ
イス3に順番に送信する。
【0025】図4は、仮オーナ決定処理の説明図であ
る。図示のように、PCIバスマスタは、ノン−インテ
リジェントデバイス4が複数存在する場合には、図4に
示すような処理を、そのノン−インテリジェントデバイ
ス4の数分繰り返す。例えばノン−インテリジェントデ
バイス4が5個ある場合は、図4に示す処理を5回繰り
返す。尚、PCIバスマスタは、ノン−インテリジェン
トデバイス4が存在しない場合には、仮オーナ要求を送
信しない。
【0026】ここで、各デバイス(インテリジェントデ
バイス3)は、PCIバスマスタから送信される「仮オ
ーナ要求」を示すコマンドを受信すると、以下のいずれ
かの応答をしなければならない。 (1)仮オーナ受諾:自デバイスが「仮オーナ」機能を有
している場合 (2)仮オーナ拒否:自デバイスが「仮オーナ」機能を有
していない場合
【0027】図5は、仮オーナ決定シーケンスの説明図
である。仮オーナ決定シーケンスにおいて、「仮オーナ
決定」を示すコマンドの送信は仮オーナ決定シーケンス
の最後に行われる。各仮オーナ決定シーケンスはPCI
バス1上に存在するノン−インテリジェントデバイス4
の数に対応している。よって、PCIバスマスタはPC
Iバス1上に存在するノン−インテリジェントデバイス
4の数と同数の仮オーナ決定コマンドを発行する。「仮
オーナ決定」を示すコマンドを受信したインテリジェン
トデバイス3は「受信応答」を示すコマンドを返信す
る。
【0028】また、いずれかの仮オーナとなったインテ
リジェントデバイス3であっても、PCIバスマスタか
らの次の「仮オーナ要求」を示すコマンドに対して「仮
オーナ受諾」を示すコマンドを返すことも可能とする。
これにより、複数のノン−インテリジェントデバイス4
の仮オーナになることが可能である。以上が、図3にお
ける拡張PCI初期化処理および拡張Gate初期化処理の
内容である。
【0029】次に、図3におけるサービスマネージャ
(Service Manager)初期化処理について説明する。サ
ービスマネージャの初期化はデバイスマスタとなったデ
バイスを中心に行う。一般にデバイスマスタはPCIバ
スマスタとなっているデバイスが担当し、PCIデバイ
スドライバおよびゲートの初期化以降の初期化を受け持
つ。
【0030】図6は、サービスマネージャの初期化時に
おける仮サービスの認識処理の説明図である。デバイス
マスタの他システムのディスカバリ処理として、各シス
テムが持つサービスの情報収集が行われる。この時に、
仮オーナは、デバイスマスタから「Pre-Service Profil
e送信要求」コマンドを受信すると、仮オーナとなって
いるノン−インテリジェントデバイス4のサービス情報
もまとめてデバイスマスタに連絡しなければならない。
仮オーナは、仮オーナとなっているノン−インテリジェ
ントデバイス4のサービス内容については判断できない
ため、仮オーナがデバイスマスタに通知する(「Pre-Se
rvice Profile送信」コマンドを送信する)サービスは
仮サービスと定義する。
【0031】デバイスマスタは、全システム中に仮サー
ビスが存在することを認識すると、その仮サービスを正
式なサービスにするために、その仮サービスに対するオ
ーナを唯一割り当てる処理を行う。
【0032】図7は、サービス整合処理の説明図であ
る。デバイスマスタは、全ノン−インテリジェントデバ
イス4に対しオーナの割り当てが終了(成功・不成功不
問)すると、オーナからのサービスの更新を待つ。オー
ナからサービスの更新があった場合は、再びサービスプ
ロファイル(Service Profile)を更新してサービスの
整合を行う。尚、サービスプロファイルとは、どのデバ
イスがどのようなサービスを提供するかを示す情報であ
る。
【0033】オーナは、その仮サービスに対する全権利
を持っているので自由な対応が可能である。以下に対応
例を示す。
【0034】対応例(1) 仮サービスを独占使用する場合は、「サービスの削除」
を行い、他の処理からアクセスできないようにする。そ
のサービス専用のデバイスドライバでアクセスする必要
がある。
【0035】対応例(2) 共有サービスの配布役をする場合は、サービスプロファ
イルに新サービスとして「サービスの変更」を行い、他
の処理からの要求に対して仮サービスの使用権を配布す
る。
【0036】対応例(3) 共有サービスのアクセスマスタを行う場合は、サービス
プロファイルに新サービスとして「サービスの変更」を
行い、他の処理からの要求に対して新サービスを提供す
る。
【0037】〈効果〉以上のように具体例1によれば、
PCIバスを介して通信する機能を持たないノン−イン
テリジェントデバイスのオーナとなるインテリジェント
デバイスを設けたので、以下のような効果が期待でき
る。
【0038】(1)PCIバスマスタが、必ず、接続され
るデバイス全てにアクセスする機能(デバイスドライ
バ)を持つ必要がなくなる。例えば、PCIバス経由の
SCSIボードが接続されていた場合、本具体例の仕様
により、PCIバスマスタはSCSIドライバを装備す
ることなくSCSIボードの提供するサービスを使用す
ることができる。同一のPCIバスに接続されているP
CIバスマスタ以外のデバイスについても同様の効果が
期待できる。
【0039】(2)本システムでは、インテリジェントデ
バイスの接続をサポートしているため、PCIバスマス
タのPCI通信における負荷を減少させることができ
る。
【0040】《具体例2》具体例2は、具体例1の構成
において、PCIバス上に接続されているデバイスが拡
張PCI仕様を有しているか、また、インテリジェント
デバイス/ノン−インテリジェントデバイスであるかを
識別するようにしたものである。尚、拡張PCI仕様と
は、PCIデバイスドライバの初期化時に使用する通信
用作業領域を、各機能にマッピングする領域の先頭に設
けている仕様を意味するが、これについては、具体例3
で説明する。
【0041】〈構成〉図8は、具体例2におけるコンフ
ィグレーションレジスタと拡張PCI初期化処理の説明
図である。コンフィグレーションレジスタ(Configurat
ion Register)のフォーマットは、図示のように、その
先頭にはデバイスID(Device ID)を格納するよう
構成されている。本具体例では、このデバイスIDの先
頭4ビットを、そのコンフィグレーションレジスタを有
するデバイスが拡張PCI仕様であるか、インテリジェ
ントデバイス/ノン−インテリジェントデバイスかを識
別するための値としている。
【0042】図9は、本具体例で設定するデバイスID
の説明図である。本具体例では、PCIコンフィグレー
ション空間に設けるコンフィグレーションレジスタのデ
バイスIDに、図9に示す拡張PCI仕様を設ける。即
ち、上位4ビットが16進数のA(1010)である場
合は、拡張PCI仕様のインテリジェントデバイスであ
り、16進数の5(0101)である場合は、拡張PC
I仕様のノン−インテリジェントデバイスである。ま
た、それ以外の値の場合は、拡張PCI仕様ではないデ
バイスであることを示している。尚、図中、×××は、
Don't Careを示している。
【0043】また、図中のDevice IDやVender ID
等、コンフィグレーションレジスタのフォーマット自体
は従来と同様であるため、ここでの各用語の説明は省略
する。
【0044】更に、本具体例では、PCIバスマスタ
が、標準のPCI初期化処理に加えて、拡張PCI仕様
であるか、インテリジェントデバイス/ノン−インテリ
ジェントデバイスであるかの識別処理を行うよう構成さ
れている。
【0045】先ず、標準のPCI初期化処理を行うため
のPCIバスマスタの処理構造について説明する。標準
のPCI初期化処理は、図8に示すように、大きく分け
て、デバイスボード発見処理81、発見したデバイスの
有効化処理82、メモリ・I/O空間割当て処理83、
割り込み設定処理84の四つから構成されている。
【0046】本具体例では、PCIバスマスタが行う標
準のPCI初期化処理に加え、以下の処理を追加する。
デバイスボード発見処理で、各デバイスのコンフィグレ
ーションレジスタのデバイスIDと、ベンダID(Vend
er ID)を確認する処理があるが、その部分に拡張P
CI仕様がサポートされているかを判断する処理85
と、確認したデバイスがインテリジェントデバイス3で
あるか、ノン−インテリジェントデバイス4であるかを
判断する処理86を追加する。
【0047】即ち、32ビットからなるデバイスIDの
うち、先頭4ビットを用いて、拡張PCI仕様サポート
判断処理85とインテリジェントデバイス/ノン−イン
テリジェントデバイス識別処理86を行う。
【0048】〈動作〉PCIコンフィグレーション空間
に設けるコンフィグレーションレジスタのデバイスID
に、図9に示す拡張PCI仕様の識別データを格納す
る。
【0049】PCIバスマスタは、各デバイスのコンフ
ィグレーションレジスタのデバイスIDを読み出し、そ
の上位4ビットにより、読み出しているコンフィグレー
ションレジスタが対応する機能がインテリジェントデバ
イス3であるかノン−インテリジェントデバイス4であ
るかを識別する。
【0050】図10は、具体例2の動作フローチャート
である。先ず、PCIバスマスタは、PCIコンフィグ
レーションレジスタのデバイスIDを読込み(ステップ
S101)、その先頭4ビットが16進数のA(101
0)であるか比較する(ステップS102)。
【0051】ステップS102において、16進数のA
(1010)であった場合は、以降、そのデバイスをイ
ンテリジェントデバイスとして扱う(ステップS10
3)。一方、ステップS102において、16進数のA
(1010)でなかった場合は、16進数の5(010
1)であるかを比較する(ステップS104)。
【0052】ステップS104において、16進数の5
(0101)であった場合は、以降、そのデバイスをノ
ン−インテリジェントデバイスとして扱う(ステップS
105)。また、ステップS102において16進数の
A(1010)でなく、かつ、ステップS104におい
て16進数の5(0101)でもない場合、拡張PCI
仕様をサポートしていないデバイスであるとし、以降、
システムからアクセスできないよう切り離し処理を行う
(ステップS106)。
【0053】〈効果〉以上説明したように、具体例2に
よれば、各デバイスを初期化する際に参照するコンフィ
グレーションレジスタの予め決められた先頭ビット数
を、拡張PCI仕様であるか、インテリジェントデバイ
スかノン−インテリジェントデバイスかを識別するため
の値としたので、以下のような効果が期待できる。
【0054】(1)PCIバスに接続されるデバイスがイ
ンテリジェントデバイスかノン−インテリジェントデバ
イスかが固定されていない場合でも容易に判別すること
ができる。 (2)コマンド等のレスポンスの有無によって、インテリ
ジェントデバイス/ノン−インテリジェントデバイスを
識別する場合に比べて判断に要する時間が短い。 (3)標準のPCI初期化処理と同一の処理において、拡
張PCI仕様のデバイスであるかの判定が可能である。
【0055】《具体例3》具体例3は、PCIデバイス
ドライバの初期化時に使用する通信用作業領域を、デバ
イス側に設け、かつ、各機能にマッピングする領域の先
頭に設けたものである。
【0056】〈構成〉図11は、具体例3の説明図であ
る。コミュニケーションエリア(Communication Area:
通信用作業領域)は、拡張PCIの初期化時にPCIバ
スマスタと各デバイスの機能間で通信するために使用す
る領域である。このコミュニケーションエリアは、PC
Iバスマスタと各デバイスの機能に対し各々一つ用意す
る。
【0057】ここで、本具体例では、PCIバスマスタ
用には、PCI空間の(00000000H)番地に固定的に割
り付ける。一方、各デバイスの機能毎には、各機能をマ
ッピングするPCI空間の先頭アドレスに割り当てる。
【0058】即ち、コミュニケーションエリアは、コミ
ュニケーションエリアを持つPCI機能に対して割り込
みを発生させる割り込み要求レジスタ(PCIInterrup
t Register(図中、PIRで示す))と、コミュニケー
ションエリアを持つPCI機能に対しての要求であるコ
マンドを格納するエリア1(Area1)と、エリア1に格
納するコマンドの引数を格納するエリア2(Area2)、
エリア3(Area3)からなる。
【0059】〈動作〉図12は、具体例3のPCIバス
マスタからデバイスへのコマンド送信動作の説明図であ
る。PCIバスマスタは、送信先デバイスのコミュニケ
ーションエリアのエリア1に、拡張PCIコマンドを、
エリア2、エリア3にコマンドの引数をそれぞれ格納す
る(図中、で示す)。
【0060】図13および図14は、コマンドの説明図
である。図示のように、PCIバスマスタからの、受信
要求、受信応答、受信否定応答といったコマンドに対す
る設定値が決められている。尚、“H→S”がPCIバ
スマスタから各デバイスへの送信可能なデータ、“S→
H”が各デバイスからPCIバスマスタへの送信可能な
データである。また、ノン−インテリジェントデバイス
4に対して使用するコマンドは、リセット要求とファク
トリーリセット要求のみとなる。
【0061】図12に戻り、PCIバスマスタは、送信
先デバイスのコミュニケーションエリアのPIRに(OO
OOOOO1H)を書き込む(図中で示す)。これにより、
送信先デバイスに対して割り込みが発生する(図中、
で示す)。送信先デバイスは、割り込み中でコミュニケ
ーションエリアのエリア1から拡張PCIコマンドを、
エリア2、エリア3からコマンドに対応する引数を読み
出す(図中)。尚、PCIバスマスタは、各コマンド
の送信に対するレスポンスを2秒間でタイムアウトとす
る。タイムアウトとなった場合は原則として再送は行わ
ない。このため、コマンドを受けたデバイスは2秒以内
に応答する必要がある。
【0062】図15は、各インテリジェントデバイスが
PCIバスマスタに拡張PCIコマンドを送信する場合
の説明図である。送信元デバイスは、送信元デバイスの
コミュニケーションエリアのエリア1に拡張PCIコマ
ンドを、エリア2、エリア3にコマンドの引数をそれぞ
れ格納する(図中、)。この場合のコマンドは、図1
3、図14中の“S→H”に示した通りである。
【0063】送信元デバイスは、送信元デバイスのコミ
ュニケーションエリアのPIRに(OOOOOOO0H)以外の
値を書き込む(図中、)。図示例では(00000001H)
を書き込んでいる。これにより、PCIバスマスタでは
割り込みが発生する(図中、)。PCIバスマスタ
は、割り込み中でコミュニケーションエリアのエリア1
から拡張PCIコマンドを、エリア2、エリア3からコ
マンドに対応する引数を読み出す(図中、)。
【0064】各デバイスは各コマンドの送信に対するレ
スポンスを2秒間をタイムアウトとする。タイムアウト
となった場合は原則として再送は行わない。コマンドの
受信を受けたPCIバスマスタは、2秒以内に応答する
必要がある。
【0065】〈効果〉以上説明したように、具体例3に
よれば、PCIデバイスドライバの初期化時に使用する
通信用作業領域をデバイス側に設け、かつ、各機能にマ
ッピングする領域の先頭に設けるようにしたので、以下
のような効果が期待できる。
【0066】(1)初期化通信のために使用する領域が、
共有メモリの先頭に集中しているため共有メモリを使用
しないデバイス(I/O空間のみ使用するデバイス)が
有っても最小限のメモリ領域を確保することで使用可能
となる。
【0067】(2)初期化通信のために使用する領域が、
共有メモリの先頭に集中しているため、各デバイスのメ
モリ空間の初期化がし易くなる。即ち、先頭領域を無条
件に通信用作業領域として認識すればよいため、初期化
処理においてPCIバスマスタ側の、各デバイスとやり
取りするための通信用作業領域を決定する処理を簡素化
することができる。
【0068】(3)コマンド書き込み領域エリア1〜エリ
ア3が各デバイス側にあるため、PCIバスマスタは各
デバイスを独立して初期化することができる。即ち、P
CIバスマスタ側は、各デバイスの応答を待たずに初期
化処理を進めることができる。
【0069】《具体例4》具体例4は、送信データのP
CIヘッダ中に、次の送信データが連続するか否かを示
す連続フラグ(Continue Flag)を設定するようにした
ものである。
【0070】〈構成〉図16は、具体例4の説明図であ
る。各デバイスには、送信側データ処理部の構成とし
て、送信データ受付部161、連続フラグ設定部(Cont
inue Flag設定部)162、コマンド送信処理部163
を、受信側データ処理部の構成として、コマンド判断処
理部164、連続フラグ判断処理部(Continue Flag判
断処理部)165、データコピー処理部166を備えて
いる。
【0071】送信データ受付部161は、上位層から送
信されるデータを受け取るための機能部である。連続フ
ラグ設定部162は、本具体例で新規に追加した機能部
であり、後述する連続フラグを設定する機能を有してい
る。
【0072】図17は、本具体例のPCIヘッダの構成
図である。PCIヘッダ(PCI Header)は、PCIヘッ
ダ同士をアドレスでつなぎ、リンク構造で管理する場合
に使用するネクストポインタ(Next Pointer)と、送信
するデータの先頭アドレスを示すデータエリアポインタ
(Data Area Pointer)と、送信するデータのサイズを
示すデータサイズ(Data Size)の各領域から構成され
る。そして、本具体例では、ネクストポインタの下位1
ビットを、そのデータが連続してコピーされる必要があ
るのか否かを示すための識別フラグF(連続フラグ)と
して使用するよう構成されている。
【0073】連続フラグは、0にセットしてある場合、
特に意味を持たないが、1にセットしてある場合、その
PCIヘッダが持つデータ領域と、ネクストポインタで
リンクするPCIヘッダの持つデータ領域は連続アドレ
ス空間にコピーされる必要があることを示している。
【0074】図16に戻り、コマンド送信処理部163
は、上位層から指定されたデバイスに対してデータを送
信するためのコマンドを送信する機能部である。
【0075】受信側データ処理部におけるコマンド判断
処理部164は、送信側から送られたコマンドを受信
し、その内容を解析する機能部である。連続フラグ判断
処理部165は、本具体例で新規に追加した機能部であ
り、送信側データ処理部の連続フラグ設定部162に対
応する受信側の構成である。データコピー処理部166
は、受信するデータをコピーする処理を行うための機能
部である。
【0076】〈動作〉PCIバスを経由して通信する上
位層は、通常プロトコル層を使用する。プロトコル層
は、データを送信する場合に上位層の用意したデータの
前にプロトコル層独自のヘッダ情報を添付する。この
時、上位層が用意したデータ領域の前の部分は必ずしも
未使用領域ではないため、プロトコル層のヘッダが挿入
できないという問題点が発生する。
【0077】図18は、この問題の説明図である。図示
のように、プロトコル層がデータを送信する際にヘッダ
情報の領域が空いていない場合、上位層の送信データを
他の空きエリアにコピーし、その領域にヘッダ情報を付
与する。ところが、このような手段を取る場合、上位層
の送信データは概して大量である場合が多いため、大量
であることを前提とする設計が必要である。これに対し
て、本具体例では、以下に示すような処理を行うことに
より、このような上位層の大量のデータをコピーするこ
となくヘッダ情報を挿入することが可能である。
【0078】図19は、具体例4の動作を示す説明図で
ある。図20は、具体例4におけるデータ送信の概念を
示す説明図である。
【0079】図19に示すように送信側が受信側に対し
て「受信要求」を示すコマンドを送信し、受信側は指定
されたデータをコピーする。コピー後、送信側に対して
「受信応答」を示すコマンドを送信する。
【0080】送信側が受信側に対して受信を要求する場
合に、指定するデータの先頭アドレスとサイズを通知す
る必要がある。そこで、本具体例では、図17に示した
ようなPCIヘッダを使用し、送信するデータを受信側
に通知する。
【0081】連続フラグは、0にセットしてある場合、
特に意味を持たないが、1にセットしてある場合、その
PCIヘッダが持つデータ領域と、ネクストポインタで
リンクするPCIヘッダの持つデータ領域は連続アドレ
ス空間にコピーされる必要があることを示している。
【0082】図20に示した例では、プロトコル層のヘ
ッダ情報がデータ領域(A)、上位層の送信データがデ
ータ領域(B)となる。ここで、連続フラグがON(=
1)であるため、受信側では、連続アドレスにコピーす
る。
【0083】一方、連続アドレスにコピーする必要のな
いものは、連続フラグをOFF(=0)とする。これに
より受信側では、所定のアドレスにデータをコピーす
る。
【0084】また、上位層が送信するデータサイズには
通常制限は存在しないが、プロトコル層の1回の送信サ
イズには制限があることが多い。よって、上位層の送信
データを複数に分割して送信する必要がある。このよう
な場合でも受信側としては受信データが分割せず、連続
した領域に一つの固まりとして受信できることが必要な
場合も多い。従って、このような場合においても、本具
体例により上位層の大量なデータをコピーすることなく
受信側へ効率のよい転送を行うことが可能となる。
【0085】例えば、図示例では、データ領域(B)の
連続フラグをON(=1)にし、更に、ネクストポイン
タにデータ領域(C)を管理するPCIヘッダをリンク
させ、更にデータ領域(D)を管理するPCIヘッダを
リンクさせる(データ領域(C)とデータ領域(D)は
図示省略している)。送信する上位層のデータを前半部
と後半部の二つに分割して送付すると仮定した場合、デ
ータ領域(D)を管理するPCIヘッダの連続フラグは
OFF(=0)となり、データ領域(A)とデータ領域
(C)がプロトコルヘッダ情報で、データ領域(B)が
上位層データ前半部、データ領域(D)が上位層データ
後半部となる。
【0086】尚、図19に示すように、本具体例では、
受信側が送信側から「受信要求」コマンドを受信し、デ
ータブロックをコピーするが、コピーに失敗し、何回か
リトライしてもコピーが成功しない場合、受信側から
「受信否定応答」コマンドを送信する。送信側からこの
「受信応答」コマンドを受信した場合、データを修復で
きない場合は、送信を断念する。
【0087】〈効果〉以上説明したように、具体例4に
よれば、PCIヘッダ情報としてネクストポインタの下
位ビットを連続データの識別を行うビットとしたので、
以下のような効果が期待できる。
【0088】(1)PCIバスを経由して通信する上位層
は通常プロトコル層を使用する。この場合において、上
位層の大量なデータをコピーすることなく、プロトコル
層のヘッダ情報を上位層データの前の領域に挿入するこ
とが可能となる。
【0089】(2)上位層の大量なデータをコピーするこ
となく、送信側の連続したデータを受信側へ連続した一
つのデータとして転送することができ、受信側の効率の
よい処理を助けることが可能となる。
【0090】(3)本具体例のPCIヘッダを使用するこ
とにより、受信側はネクストポインタを先行して辿るこ
とにより、受信用の連続空間として必要なサイズをコピ
ー前に知ることができる。
【0091】《具体例5》具体例5は、各機能間の通信
を共通の手順で行うためのデバイス管理用テーブルの構
造に関するものである。
【0092】〈構成〉図21は、具体例5の構成および
処理の説明図である。PCIバスを経由して接続してい
る複数のデバイス上に機能(Func)0〜機能(Func)5
までの6個の機能が搭載されているとする。そのそれぞ
れの機能に対して、次に示すような構造を持つデバイス
プロファイルを配列構造で機能数分だけ割り当てる。
【0093】図22は、デバイスプロファイルの構造図
である。図示のように、デバイスプロファイルは、各機
能の種類を識別するためのClassCodeと、デバイスプロ
ファイルのバージョンを特定するRev.と、送信先のメー
ルボックス(Mail Box)の先頭アドレスを特定するメー
ルボックスポインタ(&Mail Box)と、送信先処理に割
り込みを発生させる割り込み要求レジスタの先頭アドレ
スである割り込み要求レジスタポインタ(&PIR:以下、
PIRポインタという)と、自分宛のコマンドとその引
数を格納するメールボックス(Mail Box)と、コンフィ
グ アドレス フォーマット(CONFIG_ADDRESS Farma
t)と、フリーエリア(FREE Area)で構成されている。
【0094】次に、メールボックスポインタ(&Mail Bo
x)の構造について説明する。図23は、メールボック
スポインタの構造を示す説明図である。図示のように、
各機能に対して割り当てられたデバイスプロファイルの
配列は、全システム内に存在する機能(Func)の数と同
数であり、配列の添え字(0〜5)は機能番号(Func0
〜Func5)に対応している。
【0095】従って、例えば、機能4に割り当てられた
デバイスプロファイルの配列を例に取ると、デバイスプ
ロファイル[0]のメールボックスポインタ(&Mail Bo
x)は、機能0のデバイスプロファイル[4]のメール
ボックス(Mail Box)の先頭アドレスを指す。
【0096】以下、同様に、デバイスプロファイル
[1]のメールボックスポインタは、機能1のデバイス
プロファイル[4]のメールボックスの先頭アドレスを
指す。デバイスプロファイル[2]のメールボックスポ
インタは、機能2のデバイスプロファイル[4]のメー
ルボックスの先頭アドレスを指す。デバイスプロファイ
ル[3]のメールボックスポインタは、機能3のデバイ
スプロファイル[4]のメールボックスの先頭アドレス
を指す。デバイスプロファイル[4]のメールボックス
ポインタは、機能4のデバイスプロファイル[4]のメ
ールボックスの先頭アドレスを指す。デバイスプロファ
イル[5]のメールボックスポインタは、機能5のデバ
イスプロファイル[4]のメールボックスの先頭アドレ
スを指す。
【0097】即ち、機能Xのデバイスプロファイル
[Y]のメールボックスポインタは、機能Yのデバイス
プロファイル[X]のメールボックスの先頭アドレスを
示している。つまり、各機能は、お互いに他の機能に対
するメールボックスを持つよう構成されている。
【0098】次に、PIRポインタ(&PIR)の構造を説
明する。図24は、PIRポインタの構造を示す説明図
である。機能4に割り当てられたデバイスプロファイル
の配列を例に取ると、デバイスプロファイル[0]のP
IRポインタは、機能0のPIRの先頭アドレスを指
す。
【0099】以下、同様に、デバイスプロファイル
[1]のPIRポインタは、機能1のPIRの先頭アド
レスを指す。デバイスプロファイル[2]のPIRポイ
ンタは、機能2のPIRの先頭アドレスを指す。デバイ
スプロファイル[3]のPIRポインタは、機能3のP
IRの先頭アドレスを指す。デバイスプロファイル
[4]のPIRポインタは、機能4のPIRの先頭アド
レスを指す。デバイスプロファイル[5]のPIRポイ
ンタは、機能5のPIRの先頭アドレスを指す。
【0100】即ち、いずれかの機能のデバイスプロファ
イル[X]のPIRポインタは、機能XのPIRの先頭
アドレスを示している。つまり、各機能はお互いに他の
機能に対するPIRポインタを持つよう構成されてい
る。
【0101】次にメールボックスの構造について説明す
る。図25は、メールボックスの構造を示す説明図であ
る。機能4に割り当てられたデバイスプロファイルの配
列を例に取ると、機能0から機能4へのコマンド通知
は、デバイスプロファイル[0]のメールボックスに対
して行われる。尚、図中、デバイス1(Device1)中の
デバイスプロファイル(Device Profile)は、機能4の
デバイスプロファイルを示している。
【0102】以下、同様に、機能1から機能4へのコマ
ンド通知は、デバイスプロファイル[1]のメールボッ
クスに対して行われる。機能2から機能4へのコマンド
通知は、デバイスプロファイル[2]のメールボックス
に対して行われる。機能3から機能4へのコマンド通知
は、デバイスプロファイル[3]のメールボックスに対
して行われる。機能4から機能4へのコマンド通知は、
通常発生しないが、デバイスプロファイル[4]のメー
ルボックスに対して行われる。機能5から機能4へのコ
マンド通知は、デバイスプロファイル[5]のメールボ
ックスに対して行われる。
【0103】即ち、機能Xから機能Yへのコマンド通知
は、機能Yのデバイスプロファイル[X]のメールボッ
クスに対して行われる。つまり、各機能は、お互いに自
身に持つ他の機能宛のメールボックスにコマンド通知を
行うよう構成されている。
【0104】〈動作〉図26は、具体例5の動作フロー
チャートである。送信側デバイスの機能は、送信先デバ
イスの機能が持つメールボックスのアドレスを調べる
(ステップS261)。調べたメールボックスアドレス
に対してメールを投函する(ステップS262)。次
に、メールボックスのMBArea1にPCIコマンド
を格納し、MBArea2にMBArea1に格納した
PCIコマンドに対応する第一引数を格納し、MBAr
ea3に第二引数を格納する処理をメールボックスにメ
ールを投函すると定義する。
【0105】次に、送信先に割り込みを発生させ、メー
ルボックスに格納したコマンドを受信させるために、送
信先のPIR先頭アドレスを調べる(ステップS26
3)。調べたPIRアドレスに対して0以外の数値を書
き込む(ステップS264)。このオペレーションによ
り、送信先に対して割り込みが発生する。
【0106】受信側では、割り込みが発生すると送信元
の機能を識別する(ステップS265)。通常、デバイ
スプロファイルのメールボックスをデバイスプロファイ
ル[0]から順にチェックする等の処理を行う。
【0107】次に、メールボックスに書き込まれている
PCIコマンドを解析し、コマンドの内容に沿った処理
に分岐する(ステップS266)。仮に、データの受信
要求であった場合は、MBArea2より第一引数とし
てデータの先頭アドレスを読み出し、MBArea3よ
り第二引数としてデータのサイズを読み出し、自分のワ
ークエリアに対してコピーする(ステップS267)。
【0108】次に、上記ステップS261の送信先デバ
イス上の機能に対応するメールボックスアドレスの調べ
方を説明する。
【0109】図27は、送信先デバイス上の機能に対応
するメールボックスアドレスの調べ方の説明図である。
通信先のメールボックスアドレスは、通信元が持ってい
るデバイスプロファイル一式の中に存在している。通信
元のデバイスプロファイル一式中で、送信先に対応する
デバイスプロファイル中に、送信先のデバイスプロファ
イル一式中で送信元に対応するデバイスプロファイルの
メールボックスアドレスが格納されている。
【0110】例えば、機能4から機能0に対してPCI
コマンドを送信する場合を例とすると、機能0に割り当
てられているデバイスプロファイル配列のデバイスプロ
ファイル[4]中のメールボックスの先頭アドレスを格
納している。よって、機能4は機能0に対してPCIコ
マンドを送信する場合は、自分に割り当てられているデ
バイスプロファイル[0]のメールボックスポインタを
参照することにより、目的のメールボックスアドレスを
得ることができる。
【0111】次に、上記ステップS262のメールボッ
クスへのメールを投函する処理を説明する。図28は、
そのメールボックスへのメール投函処理の説明図であ
る。
【0112】ここで、機能4が機能3に対してデータを
送信するためにメールを送信する場合を例とする。機能
4は機能3が割り当てられたデバイスプロファイル配列
のデバイスプロファイル[4]中のメールボックスに対
して、MBArea1に「受信要求」を示すコマンド
を、MBArea2に送信データ先頭アドレスを、MB
Area3に送信データサイズを格納する。
【0113】次に、上記ステップS263の送信先デバ
イス上の機能に対応するPIRアドレスの調べ方を説明
する。図29は、その送信先デバイス上の機能に対応す
るPIRアドレスの調べ方の説明図である。
【0114】通信先のPIRアドレスは、通信元が持っ
ているデバイスプロファイル一式の中に存在している。
通信元のデバイスプロファイル一式中で、送信先に対応
するデバイスプロファイル中にPIRアドレスは格納さ
れている。
【0115】機能4から機能0に対してPCIコマンド
を送信する場合を例とすると、機能0が割り当てられて
いるデバイスプロファイル配列のデバイスプロファイル
[0]中のPIRポインタ(&PIR)を参照することによ
り、機能4は機能0に対して割り込みを発生させること
が可能となる。
【0116】〈効果〉以上のように、具体例5によれ
ば、各機能間の通信を共通の手順で行うためのデバイス
管理用テーブルを備えるようにしたので、以下のような
効果が期待できる。
【0117】図30は、具体例5の効果の説明図であ
る。 (1)図30に示すような接続環境において任意の機能か
らPCIバスマスタ上の機能への通信、複数機能を搭載
するデバイス上のそれぞれの機能への通信、単一機能を
搭載するデバイス上の機能への通信、そして、自デバイ
ス上の他の機能への通信を共通の手順で実現することが
可能となる。
【0118】(2)デバイス間の通信において必ずPCI
バスマスタを経由しなければならない必要がないため、
PCIバスマスタの通信における負荷を減少させること
ができる。
【0119】《具体例6》具体例6は、具体例5におけ
るデバイス管理用テーブルの作成手段に関するものであ
る。
【0120】〈構成〉図31は、具体例6の構成および
処理を示す説明図である。図示のように、PCIバスマ
スタは、コピー先アドレス問い合わせ処理部311と、
メールボックスポインタ計算処理部312を備えてい
る。
【0121】コピー先アドレス問い合わせ処理部311
は、各インテリジェントデバイスの機能に対して、配布
するデバイスプロファイルのサイズと個数とを通知する
ことによりコピーする先頭アドレスを入手する機能を有
している。また、メールボックスポインタ計算処理部3
12は、コピー先アドレス問い合わせ処理部311で求
めたコピーする先頭アドレスに基づき、配布するデバイ
スプロファイルのメールボックスポインタを求める機能
を有している。
【0122】〈動作〉本具体例では、具体例5で説明し
たデバイスプロファイル配列の作成をより効率的に行う
ようにしたものである。
【0123】デバイスプロファイル配列一式の作成は、
全てPCIバスマスタで行う。PCIバスマスタは、各
デバイスプロファイル配列作成後に、各インテリジェン
トデバイスに対してデバイスプロファイル配列を割り当
てる。
【0124】以下、メールボックスポインタの決定方法
についてその手順を説明する。メールボックスポインタ
の決定は以下の手順で行う。 (1)デバイスプロファイル配列のコピー先アドレス問い
合わせ処理 (2)メールボックスポインタ計算処理
【0125】先ず、コピー先アドレス問い合わせ処理部
311が行うデバイスプロファイル配列コピー先アドレ
ス問い合わせ処理について説明する。図32は、デバイ
スプロファイル配列のコピー先アドレス問い合わせ処理
の説明図である。図33は、デバイスプロファイル配列
のコピー先アドレス回答処理の説明図である。
【0126】PCIバスマスタは、自分の管理するPC
Iバス上に存在する全てのインテリジェントデバイスに
対して図32に示す手順でデバイスプロファイル配列の
コピー先アドレスを問い合わせる。
【0127】PCIバスマスタは、割り当てるべきデバ
イスプロファイル配列中のデバイスプロファイルの個数
と、デバイスプロファイル配列全体のサイズを割当先イ
ンテリジェントデバイスへ通知する。この通信手順は、
具体例3で説明した方法を使用した例である。
【0128】次に、PCIバスマスタよりデバイスプロ
ファイルに関する情報を受け取ったインテリジェントデ
バイスは、図33に示す手順で、デバイスプロファイル
配列のコピー先アドレスを回答する。本通信手順も具体
例3で説明したものを使用した例である。
【0129】図34は、メールボックスポインタ計算処
理の説明図である。先ず、図34において、PCIバス
マスタが全てのデバイスプロファイル配列のメールボッ
クスポインタを求める概念について説明する。
【0130】PCIバスマスタは、PCIバスに接続し
ている全機能に対してデバイスプロファイル配列を作成
する。例として、機能1(Func1)用のデバイスプロフ
ァイル配列を作成する場合を想定する。
【0131】先ず、デバイスプロファイル[0]のメー
ルボックスポインタを、デバイスプロファイル[1]は
自分用なので省略し、次にデバイスプロファイル[2]
のメールボックスポインタを、そして全機能分のメール
ボックスポインタを決定する。
【0132】例として、デバイスプロファイル[2]の
メールボックスポインタを設定する場合を想定する。先
ず、デバイスプロファイル[2]は、機能2(Func2)
に送信する場合のメールボックスのアドレスでなければ
ならないため、デバイスプロファイル配列を機能2にコ
ピーしたと仮定する(図中、で示す)。次に、機能1
が各機能にPCIコマンドを送信する場合は、各機能が
持つデバイスプロファイル配列の1番に書き込むわけな
ので、デバイスプロファイル[1]が対象となる(図
中、で示す)。
【0133】機能2にコピーした場合のデバイスプロフ
ァイル[1]中のメールボックスポインタのアドレスを
求める(図中、で示す)。求めたアドレスは作成中の
機能1用に割り当てるデバイスプロファイル[2]にお
けるメールボックスポインタに格納する(図中、で示
す)。
【0134】本具体例では、図中ので示す「デバイス
プロファイル配列を機能2にコピーしたと仮定する」処
理を、デバイスプロファイル配列コピー先アドレスを問
い合わせることにより求めている。
【0135】次に、PCIバスマスタの具体的なメール
ボックスポインタの設定手順を説明する。図35は、P
CIバスマスタの具体的なメールボックスポインタの設
定手順を示す説明図である。先ず、作成するデバイスプ
ロファイル配列を割り当てる機能番号をカレント番号と
してXに設定する(ステップS351)。次に、最後の
機能分の作成が終了したかを判断する(ステップS35
2)。ここで、全機能分のデバイスプロファイル配列の
作成が終了した場合は本処理を終了する。
【0136】現在カレントになっている機能のデバイス
プロファイル配列が全て作成終了しているかを判断する
(ステップS353)。ここで、デバイスプロファイル
配列の作成が終了している場合は、ステップS357に
移行する。
【0137】作成するデバイスプロファイルが対応する
機能が、インテリジェントデバイスであるかノン−イン
テリジェントデバイスであるかを判断する。即ち、機能
1に対応するデバイスプロファイルはデバイスプロファ
イル[1]、機能2に対応するデバイスプロファイルは
デバイスプロファイル[2]である。
【0138】ステップS354において、対応する機能
がノン−インテリジェントデバイスである場合はステッ
プS356に移行する。一方、ステップS354におい
て、対応する機能がインテリジェントデバイスである場
合は、メールボックスアドレスを算出し、デバイスプロ
ファイルのメールボックスポインタに格納する(ステッ
プS355)。現在カレントになっている機能番号を
X、デバイスプロファイルのサイズをZ、デバイスプロ
ファイルの先頭からメールボックスまでのオフセットを
M、現在処理しているデバイスプロファイル配列の添え
字をyとし、前工程で機能yから受信したデバイスプロ
ファイル配列コピー先アドレスをYとすると、メールボ
ックスアドレスは以下の式で求められる。
【0139】&Mail Box=XZ+Y+M そして、次のデバイスプロファイルへと移動し(ステッ
プS356)、その後、ステップS353に戻る。ここ
で、移動は、同一の機能用に作成しているデバイスプロ
ファイル配列中で一つ増加する方向へ移る。
【0140】ステップS353において、デバイスプロ
ファイルの残りがなかった場合、作成しているデバイス
プロファイル配列を割り当てる機能を次に移動する(ス
テップS357)。移動は、デバイスプロファイルの添
え字を0に戻し、機能番号を一つ増加する方向へ移る。
その後、ステップS352に移行する。
【0141】〈効果〉以上のように、具体例6によれ
ば、PCIバスマスタがデバイス管理用テーブルを作成
して各インテリジェントデバイスに配布するようにした
ので、次のような効果が期待できる。
【0142】(1)全てのデバイスプロファイルの初期化
をPCIバスマスタが行うため、各々のデバイスの開発
が容易となる。 (2)デバイスプロファイルの構造に項目が追加された場
合でも、PCIバスマスタ以外のデバイスの処理を変更
する必要がない。
【0143】《具体例7》具体例7は、具体例5におけ
る割り込み要求レジスタ(PIR)のビットを各機能に
割り当てるようにしたものである。
【0144】〈構成〉図36は、具体例7の割り込み要
求レジスタの構成図である。具体例7は、具体例5の構
成に加えて、図36に示すような割り込み要求レジスタ
を備えたものである。
【0145】割り込み要求レジスタ(PIR)は、最上
位ビット31がセット・クリアを示すフラグとなってお
り、ビット0〜ビット30のいずれかに1をセットし、
最上位ビット31に1をセットすることによりビット0
〜ビット30に対してセットした1が反映され、このP
IRが持つシステムに対して割り込みを発生させるよう
構成されている。
【0146】一度、ビット0〜ビット31に対して反映
された1は、反映されたビットを1にし、最上位ビット
31に0をセットすることにより、0にクリアすること
ができるよう構成されている。このような仕様を持つ割
り込み要求レジスタを各インテリジェントデバイスに対
して一つ設ける。
【0147】〈動作〉具体例5で説明したメールボック
スを使用する通信方法を使用した場合を例として以下に
説明する。図37は、送信側が行うPCIの割り込み要
求レジスタの使用方法の説明図である。図示例では、機
能4(Func4)が機能3(Func3)にコマンドを通知す
る処理を例としている。
【0148】先ず、機能4を持つインテリジェントデバ
イスは、送信するデータの情報(「受信要求」を示すコ
マンド、データの先頭アドレス、データのサイズ)を規
定されたメールボックスに対して格納する。
【0149】次に、格納したことを機能3に通知するた
めに機能3が持つPIRに対して決められた値を書き込
む。PIRに0以外の値が書き込まれたことにより機能
3に割り込みが発生する。
【0150】図38は、PIRの各ビットにおける意味
づけの説明図である。PIRの各ビットは、同一PCI
バス上に接続された各機能にそれぞれ対応している。ビ
ット0が機能0に、ビット1が機能1に、ビット2が機
能2にといったように、以下同様にしてビット30が機
能30の機能に対応する。但し、この対応は、ハードウ
ェア的な結線とは関係なくソフトウェア上で対応させて
いる状態を示す。
【0151】更に、PIRの仕様として、ビット0〜ビ
ット30は各機能に対応しているが、ビット31は〈構
成〉の項で説明したように、ビット0〜ビット30に対
してセットされた1のデータが割り込みを要求するもの
か、解除するものかを指定するビットとなっている。ビ
ット0〜ビット30に対する0の書き込みは何の意味も
なさない。よって、このレジスタが、(00000000 00000
000 00000000 10010000)である時に、(10000000 0000
0000 00000000 00000001)を書き込んだ時には(000000
00 00000000 00000000 10010001)となる構造を持つ。
即ち、セット時は各ビットのORとなる。
【0152】尚、クリア時はビット0〜ビット30のう
ち、1のデータのビットがクリアされる。例えば、図示
のように、(X0000000 00001000 10001000 10001000)
である時に、(00000000 00000000 00000000 1111111
1)を書き込んだ時には、ビット0〜ビット7の値がク
リアされるため、(X0000000 00001000 10001000 00000
000)となる。
【0153】次に、送信先のPIRに書き込む決められ
た値を説明する。図39は、送信先のPIRに書き込む
決められた値を示す説明図である。機能1が他の機能に
対して割り込みを入れる場合は、固定的にビット1とビ
ット31のみを1にしたデータを割り込み先のPIRに
対して書き込む。このことにより、受信側で割り込み要
求を出した機能を特定することが可能となる。
【0154】機能の番号は、初期化時にPCIバスマス
タより配布されたデバイスプロファイル配列とした時の
添え字に該当する。よって、ダイナミックに割り当てら
れる数値である。
【0155】受信側が行うPCIの割り込み要求レジス
タの使用方法を説明する。図40は、その受信側が行う
PCIの割り込み要求レジスタの使用方法の説明図であ
る。
【0156】図40では、割り込みが発生するとPIR
の値を読み込む。PIR中のデータは、図39に示すよ
うに割り込みの要求元を示している。機能4により割り
込みが要求された場合は、PIRのビット4が1にセッ
トされている。機能3は、PIRのビット4が1にセッ
トされていることにより、割り込みの要求元が機能4で
あることを知ることができる。
【0157】機能3は、割り込みの要求元が機能4と分
かることにより、機能4が対応するデバイスプロファイ
ル[4]のメールボックスにコマンドを格納しているこ
とを知り、コマンドを読み出し、コマンドの解析処理へ
移行する。
【0158】また、機能3の割り込み処理が起動した時
点で、複数の機能から割り込み要求が極めて短い時間に
発生した場合に複数のビットが1にセットされている可
能性がある。このような場合にも本具体例は対応するこ
とができる。
【0159】〈効果〉以上のように、具体例7によれ
ば、PIRの各ビットを、それぞれ各機能と一意に対応
づけるようにしたので、以下のような効果が期待でき
る。
【0160】(1)コマンドを受信したデバイス(機能)
は、PIRをチェックするだけでコマンド送信元のデバ
イス(機能)を特定することができる。 (2)複数の機能から割り込み要求が極めて短い時間に発
生した場合に複数のビットが1にセットされている可能
性があるが、特別な対応なく同じ手順で対応することが
できる。
【0161】《具体例8》具体例8は、PCIヘッダ中
に、次の送信データの情報と、データエリアのポインタ
と、データサイズとを備えるようにしたものである。
【0162】〈構成〉図41は、具体例8におけるPC
Iヘッダの構成図である。PCIヘッダ(PCI Header)
は、PCIヘッダ同士をアドレスでつなぎ、リンク構造
で管理する場合に使用するネクストポインタ(Next Poi
nter)と、送信するデータの先頭アドレスを示すデータ
エリアポインタ(Data Area Pointer)と、送信するデ
ータのサイズを示すデータサイズ(Data Size)の各領
域から構成される。尚、このPCIヘッダの構造は具体
例4で説明したPCIヘッダと基本的に同様である。
【0163】〈動作〉図42は、本具体例の動作の基本
的概念を示す説明図である。データ送信側のインテリジ
ェントデバイスは、受信側のインテリジェントデバイス
に対して送信するデータの情報(データ先頭アドレス、
データサイズ)と共にデータ「受信要求」を示すコマン
ドを送信する。
【0164】受信側は、「受信要求」を示すコマンドを
認識すると、データの情報(データ先頭アドレス、デー
タサイズ)を元にデータのコピーを行う。データのコピ
ー後、受信側は受信完了を送信側に対して連絡するため
「受信応答」を示すコマンドを送信する。
【0165】以上のようなコマンドによる逐次転送が基
本となっている。よって、送信側は、送信したコマンド
に対する応答が受信側より来る前に次のコマンドを送信
することができない仕組みになっている。この仕組みの
長所は確実なデータ転送ができる点にあるが、データの
高速転送には不向きである。
【0166】そこで、本具体例では、上記の長所を失う
ことなく高速な転送手段を提供する。先ず、本具体例で
使用するPCIデータの構造を図41を用いて説明す
る。
【0167】本具体例のPCI通信では、直接データを
扱わず、図に示すPCIヘッダを使用しデータを管理す
る。PCIヘッダは、データを先頭アドレスとデータサ
イズにより管理する。更に、上述したように、PCIヘ
ッダ同士をリンクするネクストポインタを含む構造を持
っている。
【0168】以上説明したデータ管理方法を使用し、高
速転送を行う手順を以下に説明する。送信側は、一つの
「受信要求」を示すコマンドに対する「受信応答」を示
すコマンドを受信するまでは、上位層より送信要求が来
ても同一の受信側に対しては「受信要求」を発信するこ
とはできない。
【0169】図43は、このような連続送信時の送信側
のシーケンスを示す説明図である。送信元PCIデバイ
スドライバは、最初の送信データ(1)を上位層から受
け付けると、PCIヘッダをデータ(1)にリンクさせ
る(図中、で示す)。この時点でPCIヘッダには0
を代入する。
【0170】送信元PCIデバイスドライバは、受信側
デバイスドライバに対して「受信要求」コマンドを送信
する(図中で示す)。送信元デバイスドライバは、受
信側デバイスドライバからの「受信応答」コマンドを受
信する前に次の送信データ(2)を上位層より受け付け
ると、PCIヘッダをデータ(2)にリンクさせ(図
中、で示す)、データ(1)を管理しているPCIヘ
ッダのネクストポインタをデータ(2)を管理している
PCIヘッダの先頭にリンクさせる(図中、で示
す)。送信元デバイスドライバは、受信側デバイスドラ
イバから「受信応答」コマンドを受信する前に更に次の
送信データ(3)を上位層より受け付けると、PCIヘ
ッダをデータ(3)にリンクさせ、データ(2)を管理
しているPCIヘッダのネクストポインタをデータ
(3)を管理しているPCIヘッダの先頭にリンクさせ
る(図中、で示す)。以上のように、受信側PCIデ
バイスドライバからの「受信応答」コマンドを受信する
までこのような操作を繰り返す。
【0171】以上の処理では、受信側がネクストポイン
タを見るタイミングにより、リンクしたことが受信側に
認識されない場合が発生する。このような場合を次に説
明する。
【0172】図44は、リンクしたことが受信側に認識
されない場合の説明図である。図において、のタイミ
ングと前後して受信側からデータ(2)まで受信完了し
たことを示す「受信応答」コマンドを受信すると(図
中、で示す)、送信側インテリジェントデバイスは、
データ(3)からの「受信要求」コマンドを送信する
(図中、で示す)。送信側は以上の処理が全てとな
る。
【0173】次に、連続送信時の受信側のシーケンスを
説明する。図45は、連続送信時の受信側のシーケンス
を示す説明図である。受信側のPCIデバイスドライバ
は、送信側PCIデバイスドライバから「受信要求」コ
マンドを受信すると(図中、で示す)、コマンドの引
数であるPCIヘッダの先頭アドレスと、PCIヘッダ
のサイズからPCIヘッダのコピーを行う(ステップS
451)。送信側上位層からの送信データの情報(先頭
アドレス、データサイズ)は、PCIヘッダ中で管理さ
れているため、PCIデバイスドライバ間でやり取りす
るコマンドの引数はPCIヘッダの情報となる。
【0174】次に、受信側のPCIデバイスドライバは
受信したPCIヘッダの管理する情報からデータの
(1)の先頭アドレスとデータサイズを読み出す(ステ
ップS452)。そして、その情報に従いデータをコピ
ーする(ステップS453)。
【0175】受信側のPCIデバイスドライバは、受信
したPCIヘッダの管理する情報からネクストポインタ
を読み出しNULLであるか判断する(ステップS45
4)。NULLである場合は後続のデータが存在しない
ことを意味するので、ステップS458に移行する。N
ULLでない場合は、後続のデータが存在することを意
味するので、ステップS455に移行する。受信側のP
CIデバイスドライバは、受信したPCIヘッダの管理
する情報からデータ(2)の先頭アドレスとデータサイ
ズを読み出す(ステップS456)。そして、その情報
に従いデータをコピーする(ステップS457)。
【0176】受信側のデバイスドライバは、以上の工程
で「受信要求」コマンドを受信してから一定時間内に
「受信応答」コマンドを送信する必要がある。図では、
データ(2)を受信したところでタイムアウトが迫った
ため、データ(3)の受信をあきらめ、応答を送信側P
CIデバイスドライバへ返している(ステップS45
8)。
【0177】また、ステップS454と同様の判断を各
データコピーの完了時に行い、PCIヘッダのネクスト
ポインタがNULLである場合も応答の送信を行う。
【0178】また、PCIヘッダのネクストポインタを
次々に先読みし、予め受信するデータの総容量を見積
り、その後にデータをコピーする手段をとることもでき
る。
【0179】図46は、予め受信するデータの総容量を
見積り、その後にデータをコピーする場合の説明図であ
る。即ち、図示のように、受信側PCIデバイスドライ
バでは、ネクストポインタが0となるまでPCIヘッダ
をコピーし(ステップS461〜ステップS464)、
その後データをコピーする(ステップS465〜ステッ
プS468)。尚、ネクストポインタが0か、コマンド
受信から2秒以内に受信応答を行う(ステップS46
9)のは、上記の連続送信時の受信側のシーケンスと同
様である。
【0180】また、受信側の都合により、一つのコマン
ド・レスポンスに対して一つのデータを送受信すること
も問題なくできる。つまり、本具体例の通信方式では受
信側の受信方法を柔軟に作成することができる。これ
は、様々なデバイスを接続しなければならないPCIバ
ス間の通信方法としては重要な項目である。
【0181】〈効果〉以上のように、具体例8によれ
ば、PCIヘッダ中に、次の送信データの情報と、デー
タエリアのポインタと、データサイズとを備えるように
したので、以下に示すような効果が期待できる。
【0182】(1)一つのデータブロック転送において、
一組のコマンド・レスポンスを必要としないため、高速
なデータ転送を実現することができる。 (2)一定時間毎にレスポンスを出すことのみが決まって
いるだけであるため、受信側の受信方法を柔軟に作成す
ることができる。これは、様々なデバイスを接続しなけ
ればならないPCIバス間の通信方法としては重要な項
目である。
【0183】《具体例9》具体例9は、自層の処理を行
うヘッダ情報中に、ヘッダのサイズを示す情報と、ヘッ
ダ情報のバイト数が特定の値の倍数となるような可変長
のデータであるパディングとを付加するようにしたもの
である。
【0184】〈構成〉具体例1の構成において、PCI
デバイスドライバの上位層としてゲート層を定義する。
【0185】図47は、ゲートヘッダの説明図である。
ゲートヘッダ(Gate Header)が付いたデータをゲート
パケット(Gate Packet)として図示の構成をとる。ゲ
ートヘッダは、ヘッダテールに上位層データの境界を調
節するパディング(Padding)領域と、そのパディング
領域を含めたゲートヘッダサイズを示すヘッダサイズ
(Header Size)領域を持つことを特徴とする。
【0186】図48は、ヘッダサイズ領域の説明図であ
る。図示のように、ゲートヘッダは、ヘッダテールに上
位層データの境界を調節するパディング領域と、このパ
ディング領域を含めたゲートヘッダサイズを示すヘッダ
サイズ領域を持つ。
【0187】〈動作〉通常、階層構造で構成されている
通信システムでは、送信データは、上位層データと、プ
ロトコル層のヘッダ情報と、下位層(デバイスドライバ
等)ヘッダとがアドレス的に接した構造をとっている。
【0188】図49は、パディング無しとパディングあ
りの場合の説明図であり、(a)はパディング無し、
(b)はパディングありの場合である。図の(a)に示
すような階層構造で構成されている場合、プロトコル層
で選択されるプロトコルによってヘッダのサイズが4バ
イト境界に揃わない場合が多い。これにより、上位層デ
ータが4バイト境界に揃わなくなり、このようなデータ
を受信した上位層は、DMA等の高速データ転送手段が
使用できなくなる。
【0189】本具体例では、下位層と上位層(プロトコ
ル層)との通信経路を制御するゲート層をデバイスドラ
イバとプロトコル層の間に設け、そのヘッダ構造にパデ
ィング領域を設ける。このパディング領域を使用するこ
とにより、プロトコル層のヘッダ情報部のサイズに関係
なく、全データ若しくは上位層データの開始位置を4バ
イト境界に揃えることができる。
【0190】送信側動作について以下に説明する。通常
の送信手順では、4バイト境界に沿って上位層が送信デ
ータを作成する。次に上位層データの前部に接するよう
にプロトコル層のヘッダ情報を作成する。
【0191】図50は、上位層のデータがゲート層に来
た時点の動作を示すフローチャートである。ゲート層
は、プロトコル層からの送信データを受信すると(ステ
ップS501)。受信した送信データの先頭アドレスを
4で割り、その余りを計算する(ステップS502)。
その余りが0であった場合は、パディングの添付は行わ
ず、ヘッダサイズにゲートヘッダのサイズである12を
格納する(ステップS503)。
【0192】ステップS502において、余りが1であ
った場合、送信データの先頭アドレスの最後の数値は
1、5、9、Dのどれかであるから、パディングを一つ
添付する(ステップS504)。そして、ヘッダサイズ
にゲートヘッダのサイズである12+1を格納する(ス
テップS505)。
【0193】ステップS502において、余りが2であ
った場合、送信データの先頭アドレスの最後の数値は
2、6、A、Eのどれかであるから、パディングを二つ
添付する(ステップS506)。そして、ヘッダサイズ
にゲートヘッダのサイズである12+2を格納する(ス
テップS507)。
【0194】ステップS502において、余りが3であ
った場合、送信データの先頭アドレスの最後の数値は
3、7、B、Fのどれかであるから、パディングを三つ
添付する(ステップS508)。そして、ヘッダサイズ
にゲートヘッダのサイズである12+3を格納する(ス
テップS509)。
【0195】次に、受信側の処理において、デバイスド
ライバ(PCIデバイスドライバ)から受信データを受
け取った時点の動作について説明する。
【0196】図51は、受信側の動作を示すフローチャ
ートである。ゲート層は、デバイスドライバが受信した
データを受け取ると(ステップS511)、ゲートヘッ
ダ中のヘッダサイズをチェックする(ステップS51
2)。その値が12である時、ゲートヘッダにパディン
グは付いていないと判断し、プロトコル層へ渡すアドレ
スを受信データ先頭アドレスにゲートヘッダ分を加えた
位置に移動させる。
【0197】ステップS512でチェックした結果、そ
の値が13である時、ゲートヘッダにパディングが一つ
付いていると判断し、プロトコル層に渡すアドレスを受
信データ先頭アドレスにゲートヘッダ+2を加えた位置
に移動させる(ステップS514)。
【0198】ステップS512でチェックした結果、そ
の値が14である時、ゲートヘッダにパディングが二つ
付いていると判断し、プロトコル層に渡すアドレスを受
信データ先頭アドレスにゲートヘッダ+3を加えた位置
に移動させる(ステップS515)。
【0199】ステップS512でチェックした結果、そ
の値が15である時、ゲートヘッダにパディングが三つ
付いていると判断し、プロトコル層に渡すアドレスを受
信データ先頭アドレスにゲートヘッダ+3を加えた位置
に移動させる(ステップS516)。
【0200】ゲート層は、上記ステップS513〜ステ
ップS516で求めた先頭アドレスをプロトコル層へ通
知する(ステップS517)。
【0201】〈効果〉以上のように、具体例9によれ
ば、自層の処理を行うヘッダ情報中に、ヘッダのサイズ
を示す情報と、ヘッダ情報のバイト数が特定の値の倍数
となるような可変長のデータであるパディングとを付加
するようにしたので、以下のような効果が期待できる。
【0202】(1)プロトコル層のヘッダ情報部のサイズ
に関係なく、上位層データの開始位置を4バイト境界に
揃えることができる。 (2)プロトコル層のヘッダ情報部に関係なく、全データ
の開始位置を4バイト境界に揃えることができる。
【0203】《具体例10》具体例10は、各インテリ
ジェントデバイスに、システムの初期化を行う機能を備
えるようにしたものである。
【0204】〈構成〉図52は、具体例10の構成およ
び処理の説明図である。具体例10は、具体例1の構成
に対し、PCIバスマスタが唯一の初期化時に暫定的に
初期化の主導権を持つ初期化時暫定マスタの機能を持つ
点と、その他デバイスが他のデバイスを初期化する機能
を持つ点とを付加している。
【0205】図示のように、初期化時暫定マスタ側は、
ゲートID振り分け処理と、マスタ募集処理とを行うよ
う構成され、デバイス側は、ゲートID入手処理と、マ
スタへの立候補処理とを行うよう構成されている。ま
た、デバイス側は、デバイスマスタが自身に決定した場
合は、他のデバイスの初期化処理を行うよう構成されて
いる。
【0206】〈動作〉本具体例では、PCIデバイスド
ライバレベルの初期化をPCIバスマスタが行った後
に、暫定的に初期化の主導権を持つ初期化時暫定マスタ
機能がPCIバスマスタの上位層として動作する。
【0207】本処理は、先ず上位層同士でお互いを認識
するためのIDを割り当てる処理を実行する。次に暫定
初期化以降の初期化の主導権を持つマスタの募集処理を
実行する。この時に、PCIバスマスタ以外のデバイス
はマスタになるための機能を有している場合は初期化時
暫定マスタからのマスタ募集に対して立候補することが
できる。そして、初期化時暫定マスタからマスタ権を譲
られた場合には、今後マスタとなり、全システム間の初
期化を取りまとめる。初期化時暫定マスタは、他のデバ
イスにマスタ権を譲った場合は、以降一般のデバイスと
して動作する。
【0208】マスタとして動作するための機能をデバイ
スマスタと定義し、新しいデバイスマスタを決定するま
での手順を以下に説明する。
【0209】図53は、デバイスマスタの決定処理の説
明図である。先ず、PCIバスマスタが持つ初期化時暫
定マスタの処理について説明する。初期化時暫定マスタ
は、各インテリジェントデバイスに対してマスタを募集
することを示す「デバイスマスタ募集」コマンドを送信
する(ステップS531a)。そのコマンドの応答とし
てマスタになることができる/またはできないことを意
味する「デバイスマスタ応募」コマンドを受信する(ス
テップS532a)。
【0210】「デバイスマスタ募集」コマンドを送信し
た全てのインテリジェントデバイスより、「デバイスマ
スタ応募」コマンドを受信すると、その中から一つマス
タとなるインテリジェントデバイスを選定する(ステッ
プS533a)。
【0211】初期化時暫定マスタは、マスタと選定した
インテリジェントデバイスに対しては、以降のデバイス
間初期化を依頼することを示す「デバイスマスタ決定」
コマンドを、それ以外のインテリジェントデバイスに対
しては、マスタとして選定しなかったことを示す「デバ
イスマスタ不採用」コマンドを送信する(ステップS5
34a)。
【0212】次に、PCIバスマスタ以外のデバイスの
処理について説明する。各インテリジェントデバイス
は、初期化時暫定マスタからの「デバイスマスタ募集」
コマンドを受信すると(ステップS531b)、自機能
の中にデバイスマスタ機能が含まれているかを確認する
(ステップS532b)。含まれていない場合は引数で
マスタに立候補しないことを示して初期化時暫定マスタ
に対して「デバイスマスタ応募」コマンドを送信する
(ステップS533b)。引数を使用する代わりにマス
タに応募しないことを示す「デバイスマスタ非応募」コ
マンドを使用してもよい。
【0213】「デバイスマスタ応募」コマンド、若しく
は「デバイスマスタ非応募」コマンドを、初期化時暫定
マスタに送信した後に、初期化時暫定マスタより「デバ
イスマスタ決定」コマンドまたは、「デバイスマスタ不
採用」コマンドを受信する(ステップS534b)。
「デバイスマスタ決定」コマンドを受信した場合は、以
降マスタとなり、システム間初期化の主導権を取る。
「デバイスマスタ不採用」コマンドを受信した場合は、
引き続き一般のデバイスとして動作する。
【0214】ところで、本具体例の構成では、PCIデ
バイスドライバの上位にゲート層を設けている。ゲート
層は主に複数の上位層(プロトコル層)と複数の下位層
(デバイスドライバ)間の経路選択、経路制御を行う階
層である。
【0215】よって、デバイスマスタは、ゲートの初期
化後、ゲートの通信機能を使用して各システム間のその
他のイニシャルの主導権を握る。組み込み上、ゲート自
身がデバイスマスタとしての機能を持つ必要はないが、
以下のデバイスマスタの動作例ではデバイスマスタ機能
がゲートに存在するものとして説明する。
【0216】図54は、デバイスマスタになるための条
件を示す説明図である。デバイスマスタは自システムの
上位層が各システム間で初期化を行う時のキック(起
動)をかける処理を受け持つ。各システム上の全ての上
位層は、システム間で初期化開始を行う場合、デバイス
マスタからの初期化開始要求を使用することにより他の
システム上の同一上位層との同期を取ることができ、双
方で初期化を開始してしまう等の問題を回避できる。
【0217】図55は、デバイスマスタの初期化概要の
説明図である。本具体例では、上位層間初期化を行う上
位層の例としてXXXマネージャ、YYYマネージャを
使用する(XXXマネージャ、YYYマネージャは任意
の上位層)。
【0218】デバイスマスタは上位層に対して「(主導
権付き)初期化要求」を発信する。ここでは、XXXマ
ネージャとYYYマネージャに対して行っている。スレ
ーブゲートは、上位層に対して「(主導権なし)初期化
要求」を出す(出す/出さないは各システムのプログラ
ム仕様による)。
【0219】図示例では、デバイスマスタにより「(主
導権付き)初期化要求」を受信したXXXマネージャ、
YYYマネージャはそれぞれ他システムのXXXマネー
ジャ、YYYマネージャに対して主導権を持ち初期化を
行っている。
【0220】〈効果〉以上のように、具体例10によれ
ば、システムの初期化を行うデバイスをPCIバスマス
タ固定ではなく、各デバイス間とのやり取りで決定し、
他のデバイスが受け持つことができるようにしたので、
以下の効果が期待できる。
【0221】(1)PCIバスマスタを持つシステムと対
等の関係にあるシステムを開発し、バスに接続する場合
にそのシステムにデバイスマスタを持たせる構造で開発
することができるため、開発単位としてまとまる効果が
ある。よって、そのシステムの開発が容易になり、アウ
トソーシング等の戦略が取りやすい。
【0222】(2)PCIバスマスタの初期化機能が正常
に動作しない場合のバックアップ機能となる。よって、
全システムの信頼性、保全性が向上する。
【図面の簡単な説明】
【図1】本発明のPCIバス制御システムの具体例1を
示す構成図である。
【図2】本発明のPCIバス制御システムのソフトウェ
ア階層構造を示す説明図である。
【図3】ノン−インテリジェントデバイス4の初期化の
説明図である。
【図4】仮オーナ決定処理の説明図である。
【図5】仮オーナ決定シーケンスの説明図である。
【図6】サービスマネージャの初期化時における仮サー
ビスの認識処理の説明図である。
【図7】サービス整合処理の説明図である。
【図8】具体例2におけるコンフィグレーションレジス
タと拡張PCI初期化処理の説明図である。
【図9】具体例2で設定するデバイスIDの説明図であ
る。
【図10】具体例2の動作フローチャートである。
【図11】具体例3の説明図である。
【図12】具体例3のPCIバスマスタからデバイスへ
のコマンド送信動作の説明図である。
【図13】コマンドの説明図(その1)である。
【図14】コマンドの説明図(その2)である。
【図15】各インテリジェントデバイスがPCIバスマ
スタに拡張PCIコマンドを送信する場合の説明図であ
る。
【図16】具体例4の説明図である。
【図17】具体例4のPCIヘッダの構成図である。
【図18】具体例4に関する問題の説明図である。
【図19】具体例4の動作を示す説明図である。
【図20】具体例4におけるデータ送信の概念を示す説
明図である。
【図21】具体例5の構成および処理の説明図である。
【図22】デバイスプロファイルの構造図である。
【図23】メールボックスポインタの構造を示す説明図
である。
【図24】PIRポインタの構造を示す説明図である。
【図25】メールボックスの構造を示す説明図である。
【図26】具体例5の動作フローチャートである。
【図27】送信先デバイス上の機能に対応するメールボ
ックスアドレスの調べ方の説明図である。
【図28】メールボックスへのメール投函処理の説明図
である。
【図29】送信先デバイス上の機能に対応するPIRア
ドレスの調べ方の説明図である。
【図30】具体例5の効果の説明図である。
【図31】具体例6の構成および処理を示す説明図であ
る。
【図32】デバイスプロファイル配列のコピー先アドレ
ス問い合わせ処理の説明図である。
【図33】デバイスプロファイル配列のコピー先アドレ
ス回答処理の説明図である。
【図34】メールボックスポインタ計算処理の説明図で
ある。
【図35】PCIバスマスタの具体的なメールボックス
ポインタの設定手順を示す説明図である。
【図36】具体例7の割り込み要求レジスタの構成図で
ある。
【図37】送信側が行うPCIの割り込み要求レジスタ
の使用方法の説明図である。
【図38】PIRの各ビットにおける意味づけの説明図
である。
【図39】送信先のPIRに書き込む決められた値を示
す説明図である。
【図40】受信側が行うPCIの割り込み要求レジスタ
の使用方法の説明図である。
【図41】具体例8におけるPCIヘッダの構成図であ
る。
【図42】具体例8の動作の基本的概念を示す説明図で
ある。
【図43】連続送信時の送信側のシーケンスを示す説明
図である。
【図44】リンクしたことが受信側に認識されない場合
の説明図である。
【図45】連続送信時の受信側のシーケンスを示す説明
図である。
【図46】予め受信するデータの総容量を見積り、その
後にデータをコピーする場合の説明図である。
【図47】具体例9におけるゲートヘッダの説明図であ
る。
【図48】ヘッダサイズ領域の説明図である。
【図49】パディング無しとパディングありの場合の説
明図である。
【図50】上位層のデータがゲート層に来た時点の動作
を示すフローチャートである。
【図51】具体例9の受信側の動作を示すフローチャー
トである。
【図52】具体例10の構成および処理の説明図であ
る。
【図53】デバイスマスタの決定処理の説明図である。
【図54】デバイスマスタになるための条件を示す説明
図である。
【図55】デバイスマスタの初期化概要の説明図であ
る。
【符号の説明】
1 PCIバス 2 プリンタ(PCIバスマスタ) 3 インテリジェントデバイス 4 ノン−インテリジェントデバイス

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 単独ではPCI通信機能を持たないノン
    −インテリジェントデバイスと、 PCIバス経由の通信機能を有し、前記ノン−インテリ
    ジェントデバイスをオーナとして管理し、当該ノン−イ
    ンテリジェントデバイスに対する他のデバイスからのア
    クセス要求を中継するインテリジェントデバイスとを備
    えたことを特徴とするPCIバス制御システム。
  2. 【請求項2】 請求項1に記載のPCIバス制御システ
    ムにおいて、 インテリジェントデバイスおよびノン−インテリジェン
    トデバイスは、 各デバイスを初期化する際に参照するコンフィグレーシ
    ョンレジスタの予め決められた先頭ビット数を、インテ
    リジェントデバイスかノン−インテリジェントデバイス
    かを識別するための値とすることを特徴とするPCIバ
    ス制御システム。
  3. 【請求項3】 請求項1または2に記載のPCIバス制
    御システムにおいて、 PCIバスの共有メモリ領域に、インテリジェントデバ
    イスおよびノン−インテリジェントデバイスにおけるP
    CIデバイスドライバの初期化時に使用する通信用作業
    領域を設け、かつ、当該通信用作業領域を各デバイスの
    メモリ領域の先頭に設けたことを特徴とするPCIバス
    制御システム。
  4. 【請求項4】 請求項2に記載のPCIバス制御システ
    ムにおいて、 先頭ビット数は、各機能にマッピングする領域の先頭に
    設けた、PCIデバイスドライバの初期化時に使用する
    通信用作業領域を有するか否かを示す値であることを特
    徴とするPCIバス制御システム。
  5. 【請求項5】 請求項1〜4のいずれかに記載のPCI
    バス制御システムにおいて、 送信側デバイスから受信側デバイスへの送信データの先
    頭に、次の送信データのPCIヘッダの先頭アドレスを
    示すネクストポインタと、当該送信データにおけるデー
    タエリアのアドレスを示すデータエリアポインタとを示
    すPCIヘッダを備え、かつ、前記ネクストポインタの
    最下位ビットを、送信データが連続するか否かを示すフ
    ラグとしたことを特徴とするPCIバス制御システム。
  6. 【請求項6】 請求項1〜5のいずれかに記載のPCI
    バス制御システムにおいて、 PCIバスマスタおよびインテリジェントデバイスは、 全システム内に存在する機能と一意に対応づけられ、各
    機能毎に設けられたデバイスプロファイルを有し、 各デバイスプロファイルは、送信先のメールボックスの
    アドレスを示すメールボックスポインタと、送信先の処
    理に割り込みを発生させる割り込み要求レジスタのアド
    レスを示す割り込み要求レジスタポインタと、自分宛の
    コマンドとその引数を格納するメールボックスとを備
    え、 機能XのデバイスプロファイルYのメールボックスポイ
    ンタは、機能YのデバイスプロファイルXのメールボッ
    クスのアドレスを示し、各機能のデバイスプロファイル
    Xの割り込み要求レジスタポインタは、機能Xの割り込
    み要求レジスタのアドレスを示すよう構成されているこ
    とを特徴とするPCIバス制御システム。
  7. 【請求項7】 請求項6に記載のPCIバス制御システ
    ムにおいて、 PCIバスマスタは、 各インテリジェントデバイスの機能に対して、配布する
    デバイスプロファイルのサイズと個数とを通知すること
    によりコピーする先頭アドレスを入手するコピー先アド
    レス問い合わせ処理部と、 前記コピーする先頭アドレスに基づき、配布するデバイ
    スプロファイルのメールボックスポインタを求めるメー
    ルボックスポインタ計算処理部とを備えたことを特徴と
    するPCIバス制御システム。
  8. 【請求項8】 請求項6または7に記載のPCIバス制
    御システムにおいて、 割り込み要求レジスタの各ビットは、それぞれ、各機能
    と一意に対応づけられ、かつ、各機能が他の機能に対し
    て割り込みを要求する場合は、自身のビットに書き込み
    を行うよう構成されていることを特徴とするPCIバス
    制御システム。
  9. 【請求項9】 請求項1〜4、6〜8のいずれかに記載
    のPCIバス制御システムにおいて、 送信側デバイスから受信側デバイスへの送信データの先
    頭に、次の送信データのPCIヘッダの先頭アドレスを
    示すネクストポインタと、当該送信データにおけるデー
    タエリアのアドレスを示すデータエリアポインタと、当
    該送信データのデータサイズとを示すPCIヘッダを備
    えたことを特徴とするPCIバス制御システム。
  10. 【請求項10】 請求項1〜9のいずれかに記載のPC
    Iバス制御システムにおいて、 PCIバスマスタおよびインテリジェントデバイスは、 階層処理構造における自層の処理を行うヘッダ情報中
    に、ヘッダのサイズを示す情報を含むと共に、当該ヘッ
    ダ情報の総データ量が特定の値の倍数となるように可変
    長のデータであるパディングを付加するようにしたこと
    を特徴とするPCIバス制御システム。
  11. 【請求項11】 請求項1〜10のいずれかに記載のP
    CIバス制御システムにおいて、 インテリジェントデバイスは、 予め決められた初期化時暫定マスタよりデバイスマスタ
    募集があった場合、自身がデバイスマスタになれる条件
    を備えていた場合はデバイスマスタに応募し、デバイス
    マスタが自身に決定した場合は他のデバイスの初期化処
    理を行うよう構成されていることを特徴とするPCIバ
    ス制御システム。
JP14927999A 1999-05-28 1999-05-28 Pciバス制御システム Expired - Fee Related JP3791742B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP14927999A JP3791742B2 (ja) 1999-05-28 1999-05-28 Pciバス制御システム
US09/579,173 US6678770B1 (en) 1999-05-28 2000-05-25 PCI bus control system having intelligent devices that own and manage non-intelligent devices for relaying information from non-intelligent devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14927999A JP3791742B2 (ja) 1999-05-28 1999-05-28 Pciバス制御システム

Publications (2)

Publication Number Publication Date
JP2000339267A true JP2000339267A (ja) 2000-12-08
JP3791742B2 JP3791742B2 (ja) 2006-06-28

Family

ID=15471742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14927999A Expired - Fee Related JP3791742B2 (ja) 1999-05-28 1999-05-28 Pciバス制御システム

Country Status (2)

Country Link
US (1) US6678770B1 (ja)
JP (1) JP3791742B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100391170B1 (ko) * 2000-12-28 2003-07-12 엘지전자 주식회사 메인 프로세싱 회로 데이터 보드

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100612003B1 (ko) * 2000-02-26 2006-08-11 삼성전자주식회사 통신망에서 비트 스트림 송수신 장치 및 그 방법
GB0028353D0 (en) * 2000-11-21 2001-01-03 Aspex Technology Ltd Improvements relating to digital data communications
US20020178316A1 (en) * 2001-05-23 2002-11-28 Schmisseur Mark A. System and method for defining private functions of a multi-function peripheral device
US7243167B2 (en) * 2003-09-19 2007-07-10 Intel Corporation Managing peripheral device address space resources using a tunable bin-packing/knapsack algorithm
US7853742B2 (en) * 2004-04-26 2010-12-14 Intel Corporation System and method to conditionally shrink an executable module
KR100599112B1 (ko) * 2004-05-08 2006-07-13 삼성전자주식회사 Pci 시스템에서 에이전트간 통신 방법 및 통신 장치
CN1877537A (zh) * 2005-06-10 2006-12-13 鸿富锦精密工业(深圳)有限公司 外围部件互连设备信息识别系统及方法
KR101172885B1 (ko) * 2008-12-18 2012-08-10 한국전자통신연구원 디바이스 식별자를 이용한 디바이스 프로파일 제공 시스템 및 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994010632A1 (de) * 1992-11-04 1994-05-11 Siemens Aktiengesellschaft Anordnung mit mehreren aktiven und passiven busteilnehmern
US5515516A (en) * 1994-03-01 1996-05-07 Intel Corporation Initialization mechanism for symmetric arbitration agents
US5848249A (en) * 1995-06-15 1998-12-08 Intel Corporation Method and apparatus for enabling intelligent I/O subsystems using PCI I/O devices
US5838935A (en) * 1995-06-15 1998-11-17 Intel Corporation Method and apparatus providing programmable decode modes for secondary PCI bus interfaces
US5790811A (en) * 1996-05-17 1998-08-04 Advanced Micro Devices, Inc. System and method for performing data transfers during PCI idle clock cycles
US5842025A (en) * 1996-08-27 1998-11-24 Mmc Networks, Inc. Arbitration methods and apparatus
US5815731A (en) * 1996-10-31 1998-09-29 International Business Machines Corporation Method and system for providing device driver configurations on demand
US6041364A (en) * 1996-12-19 2000-03-21 Intel Corporation Method and system for adding a device entry to a device tree upon detecting the connection of a device
US5983024A (en) * 1997-11-26 1999-11-09 Honeywell, Inc. Method and apparatus for robust data broadcast on a peripheral component interconnect bus
US6023736A (en) * 1997-12-19 2000-02-08 International Business Machines Corporation System for dynamically configuring I/O device adapters where a function configuration register contains ready/not ready flags corresponding to each I/O device adapter
JPH11238030A (ja) * 1998-02-20 1999-08-31 Mitsubishi Electric Corp Pci−pciブリッジおよびそのための先入れ先出しメモリ
US6073198A (en) * 1998-03-31 2000-06-06 Micron Electronics, Inc. System for peer-to-peer mastering over a computer bus
US6266770B1 (en) * 1998-04-14 2001-07-24 Micron Technology, Inc. Method for autonomous configuration of peer devices
US6119191A (en) * 1998-09-01 2000-09-12 International Business Machines Corporation Performing PCI access cycles through PCI bridge hub routing
US6230216B1 (en) * 1999-01-28 2001-05-08 Vlsi Technology, Inc. Method for eliminating dual address cycles in a peripheral component interconnect environment
US6223232B1 (en) * 1999-02-22 2001-04-24 Vlsi Technology, Inc. System and method to predict configuration of a bus target
US6493777B1 (en) * 1999-09-15 2002-12-10 Lucent Technologies Inc. Method for dynamically reconfiguring data bus control

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100391170B1 (ko) * 2000-12-28 2003-07-12 엘지전자 주식회사 메인 프로세싱 회로 데이터 보드

Also Published As

Publication number Publication date
JP3791742B2 (ja) 2006-06-28
US6678770B1 (en) 2004-01-13

Similar Documents

Publication Publication Date Title
US7587536B2 (en) Method and apparatus for distributing USB hub functions across a network
US6073205A (en) System and method of write posting in a universal serial bus system
US7761642B2 (en) Serial advanced technology attachment (SATA) and serial attached small computer system interface (SCSI) (SAS) bridging
US5991797A (en) Method for directing I/O transactions between an I/O device and a memory
EP0889623B1 (en) System and method for efficient remote disk I/O
US7581015B2 (en) Communication device having transmitting and receiving units supports RDMA communication
US6185607B1 (en) Method for managing network data transfers with minimal host processor involvement
US7953878B1 (en) Multi-threaded internet small computer system interface (iSCSI) socket layer
US5781741A (en) Message communications system in a parallel computer
KR19980070053A (ko) 통신 시스템내에서 상대적으로 대규모인 데이터 객체의 전송을 제어하기 위한 시스템 및 그 방법
WO2001018988A1 (en) Bridge between parallel buses over a packet-switched network
JP2002149592A (ja) ネットワーク上でのpciブリッジ
KR20180071967A (ko) 데이터 처리
JP2002358167A5 (ja)
CN1331070C (zh) 数据通信的方法及设备
JP2000339267A (ja) Pciバス制御システム
JP4208506B2 (ja) 高性能記憶装置アクセス環境
JP2003114823A5 (ja)
CN104571934A (zh) 一种内存访问的方法、设备和系统
US7240167B2 (en) Storage apparatus
KR100653178B1 (ko) 전송제어프로토콜 오프로드 엔진 기반의 전송제어프로토콜전송정보 생성 및 관리 장치 및 그 방법
CN105491082A (zh) 远程资源访问方法和交换设备
KR20030083572A (ko) 상위버스와 하위버스를 가지며, 네트워크에서의 데이터액세스의 제어를 행하는 마이크로 컴퓨터 시스템
CN104580328A (zh) 虚拟机迁移方法、装置及系统
JP3644158B2 (ja) 並列計算機におけるデータ送受信方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060110

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060330

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100414

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100414

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110414

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110414

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130414

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20140414

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees