JP2006201999A - バスシステム、スレーブ装置、バスシステム制御方法及びプログラム - Google Patents

バスシステム、スレーブ装置、バスシステム制御方法及びプログラム Download PDF

Info

Publication number
JP2006201999A
JP2006201999A JP2005012366A JP2005012366A JP2006201999A JP 2006201999 A JP2006201999 A JP 2006201999A JP 2005012366 A JP2005012366 A JP 2005012366A JP 2005012366 A JP2005012366 A JP 2005012366A JP 2006201999 A JP2006201999 A JP 2006201999A
Authority
JP
Japan
Prior art keywords
master
processing
master device
request
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.)
Granted
Application number
JP2005012366A
Other languages
English (en)
Other versions
JP4612425B2 (ja
Inventor
Mitsuto Iketani
光人 池谷
Tetsuya Okiyama
哲也 沖山
Shigeki Saito
茂樹 齋藤
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.)
NEC Platforms Ltd
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
NEC AccessTechnica 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 NEC Electronics Corp, NEC AccessTechnica Ltd filed Critical NEC Electronics Corp
Priority to JP2005012366A priority Critical patent/JP4612425B2/ja
Publication of JP2006201999A publication Critical patent/JP2006201999A/ja
Application granted granted Critical
Publication of JP4612425B2 publication Critical patent/JP4612425B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 ライブロックが発生しないようにしたスレーブ装置と、ライブロックが発生する危険性はあるが、優先順位が高いマスタ装置が優先的に使用できるスレーブ装置とを混在させたバスシステムを提供する。
【解決手段】 バスアービタ3は、複数のマスタ装置がバス使用要求があった場合、固定的に定められている優先順位に従ってバス使用権を与えるマスタ装置を決定する。スレーブ装置2-1〜2-nの内、一部のスレーブ装置は、或るマスタ装置1-iから処理要求が送られてきたとき、他のマスタ装置1-jからの処理要求に従った処理を実行中であれば、そのマスタ装置1-iのマスタ番号を保持しておき、上記処理要求に従った処理が完了した後、保持しているマスタ番号に従って、次に優先的に処理要求を受け付ける優先マスタ装置を決定する。
【選択図】 図29

Description

本発明は、複数台のマスタ装置と、複数台のスレーブ装置と、バスアービタとを備えたバスシステムに関し、特に、ライブロックが発生しないようにしたスレーブ装置と、ライブロックが発生する可能性はあるが、優先順位が高いマスタ装置が、優先的に使用できるスレーブ装置とを混在させたバスシステムに関する。
データ処理装置の分野においては、従来から図29に示すようなバスシステムが使用されている。図29に示したバスシステムは、内部バス4に接続された複数台のマスタ装置1−1〜1−m及びスレーブ装置2−1〜2−nと、各マスタ装置1−1〜1−mからのバス使用要求を調停するバスアービタ3とから構成されている。
ところで、バスアービタ3としては、従来から種々の方式のものが知られており、例えば、複数のマスタ装置からバス使用要求があった場合、予め固定的に定められている各マスタ装置の優先順位に従ってバス使用権を与えるマスタ装置を決定する優先順位方式のバスアービタが知られている。バスアービタ3として、このような優先順位方式のバスアービタを使用した場合、バスシステムの動作は次のようになる。
各マスタ装置1−1〜1−mは、スレーブ装置2−1〜2−nに対して処理要求(リード要求やライト要求)を送出する際、それに先立ってバスアービタ3に対してバス使用要求を出力する。
バスアービタ3は、複数のマスタ装置(例えば、マスタ装置1−1,1−2,1−3)から同時にバス使用要求が入力されると、予め固定的に定められているマスタ装置1−1〜1−mの優先順位(例えば、マスタ装置1−1>マスタ装置1−2>…>マスタ装置1−m)に基づいてバス使用権を与えるマスタ装置を決定し、そのマスタ装置に対してバス使用許可信号を出力する。この例の場合には、バス使用要求を出力したマスタ装置1−1,1−2,1−3の内、マスタ装置1−1の優先順位が最も高いので、バスアービタ3は、マスタ装置1−1に対してバス使用許可信号を出力する。
これにより、マスタ装置1−1は、スレーブ装置2−k(1<k<n)に対して処理要求を出力し、スレーブ装置2−kは、マスタ装置1−1からの処理要求に従った処理を実行する。
上記処理が完了した後、マスタ装置1−1,1−2,1−3が再びバスアービタ3に対してバス使用要求を出力すると、この場合も優先順位が最も高いマスタ装置1−1にバス使用権が与えられ、マスタ1−1の処理要求が処理される。このように、バスアービタ3として優先順位方式のバスアービタを使用した場合には、優先順位の高いマスタ装置がスレーブ装置を優先的に使用することが可能になる。
また、優先順位方式のバスアービタ以外にも、複数個の優先順位パターンを用意しておき、調停処理を行う毎に、使用する優先順位パターンを切り替えるラウンドロビン方式のバスアービタも従来から知られている(例えば、特許文献1参照)。バスアービタ3として、このようなラウンドロビン方式のバスアービタを使用した場合の、バスシステムの動作は、次のようになる。
バスアービタ3は、マスタ装置1−1,1−2,1−3からバス使用要求が送られてくると、第1の優先順位パターン(マスタ装置1−1>マスタ装置1−2>マスタ装置1−3とする)を使用してバス使用権を与えるマスタ装置を決定し、そのマスタ装置にバス使用許可信号を出力する。この場合、マスタ装置1−1にバス使用権が与えられる。その後、バスアービタは、調停に使用する優先順位パターンを、第1の優先順位パターンから第2の優先順位パターン(マスタ装置1−2>マスタ装置1−3>マスタ装置1−1とする)に変更する。
バス使用権を獲得したマスタ装置1−1は、スレーブ装置2−kに処理要求を出し、スレーブ装置2−kは、マスタ装置1−1からの処理要求を処理する。
上記処理が完了した後、マスタ装置1−1,1−2,1−3が再びバスアービタ3に対してバス使用要求を出力すると、バスアービタ3は、第2の優先順位パターンを用いて、バス使用権を与えるマスタ装置を決定する。第2の優先順位パターンは、前述したように、マスタ装置1−2>マスタ装置1−3>マスタ装置1−1となっているので、マスタ装置1−2にバス使用権が与えられる。その後、バスアービタ3は、調停に使用する優先順位パターンを第3の優先順位パターン(マスタ装置1−3>マスタ装置1−1>マスタ装置1−2とする)に変更する。バス使用権を獲得したマスタ装置1−2は、スレーブ装置2−kに処理要求を出し、スレーブ装置2−kは、マスタ装置1−2からの処理要求を処理する。このように、ラウンドロビン方式のバスアービタを使用すると、各マスタ装置がスレーブ装置を均等に使用することが可能になる。
特開平11−73397号公報
上述したように、優先順位方式のバスアービタを採用したバスシステムでは、優先順位の高いマスタ装置が、優先的にスレーブ装置を利用することができるが、優先度の低いマスタ装置の処理要求が長時間受け付けられないというライブロックが発生する場合があるという問題がある。一方、ラウンドロビン方式のバスアービタを採用したバスシステムでは、ライブロックの発生を防止することができるが、特定のマスタ装置に優先的にスレーブ装置を利用させることができないという問題がある。このように、従来の技術では、バスアービタの仕様が、内部バスに接続されている全てのスレーブ装置に及ぶため、ライブロックを発生しないようにしたスレーブ装置と、優先順位が高いマスタ装置が優先的に使用できるスレーブ装置とを混在させたバスシステムを実現することはできなかった。
〔発明の目的〕
そこで、本発明の目的は、ライブロックが発生しないようにしたスレーブ装置を提供することにある。
本発明にかかる第1のバスシステムは、
バスに接続された複数のマスタ装置と、前記バスに接続された1または複数のスレーブ装置と、バスアービタとを備えたバスシステムにおいて、
前記バスアービタが、
バス使用要求を出力した複数のマスタ装置の中から予め固定的に定められている第一の優先順位に基づいてバス使用権を与えるマスタ装置を決定する調停手段を備え、
前記スレーブ装置が、
前記バスを介して入力された処理要求の入力順序に基づいてマスタ装置に対する第二の優先順位を決定する構成と、前記バスを介してバス使用権を獲得したマスタ装置から処理要求が送られてきたとき、前記第二の優先順位に基づいて前記マスタ装置から送られてきた処理要求を処理するか否かを決定すると共に要求元のマスタ装置に対して待機レスポンスを返す構成と、処理要求に従った処理が完了した後、少なくとも前記処理が完了した処理要求の要求元のマスタ装置及び待機レスポンスを返したマスタ装置の内の、第二の優先順位が最も高いマスタ装置に待機解除通知を返す構成とを有する要求管理手段を備え、
前記各マスタ装置が、
自装置内に処理要求が発生したとき、前記バスアービタに対してバス使用要求を出力し、前記バスアービタによりバス使用権が与えられたとき、スレーブ装置に処理要求を出力し、スレーブ装置から待機レスポンスが送られてきたとき、前記バスを開放すると共にバス使用要求の出力が不可能な待機状態となり、スレーブ装置から待機解除通知が送られてきたときバス使用要求が出力可能な状態に復帰する制御手段を備えたことを特徴とする。
本発明にかかる第2のバスシステムは、
バスに接続された複数のマスタ装置と、前記バスに接続された複数のスレーブ装置と、バスアービタとを備えたバスシステムにおいて、
前記バスアービタが、
バス使用要求を出力した複数のマスタ装置の中から予め固定的に定められているマスタ装置の優先順位に基づいてバス使用権を与えるマスタ装置を決定する調停手段を備え、
前記複数のスレーブ装置の内の一部のスレーブ装置が、
バス使用権を獲得したマスタ装置から前記バスを介して処理要求が送られてきたとき、他の処理要求に従った処理を実行中でなく、且つ前記マスタ装置が優先マスタ装置であれば、前記処理要求に従った処理を開始すると共に前記マスタ装置に待機レスポンスを返し、他の処理要求に従った処理を実行中であるか、或いは前記マスタ装置が優先マスタ装置でなければ、前記マスタ装置のマスタ番号を保持すると共に前記マスタ装置に待機レスポンスを返し、処理要求に従った処理が完了した後、前記保持しているマスタ番号の保持順に基づいて優先マスタ装置を決定すると共に、少なくとも前記処理が完了した処理要求の要求元のマスタ装置及び前記優先マスタ装置に待機解除通知を返す要求管理手段を備え、
前記各マスタ装置が、
自装置内に処理要求が発生したとき、前記バスアービタに対してバス使用要求を出力し、前記バスアービタによりバス使用権が与えられたとき、スレーブ装置に処理要求を出力し、スレーブ装置から待機レスポンスが送られてきたとき、前記バスを開放すると共にバス使用要求の出力が不可能な待機状態となり、スレーブ装置から待機解除通知が送られてきたときバス使用要求が出力可能な状態に復帰する制御手段を備えたことを特徴とする。
本発明にかかる第3のバスシステムは、第2のバスシステムにおいて、
前記複数のスレーブ装置の内の一部のスレーブ装置が、
複数のマスタ番号を格納可能なマスタ番号保持レジスタと、
処理要求に従った処理を実行する処理手段と、
バス使用権を獲得したマスタ装置から前記バスを介して処理要求が送られてきたとき、前記処理手段が処理を実行中でなく、且つ前記マスタ装置が優先マスタ装置であれば、前記処理手段に前記処理要求に従った処理を実行させると共に前記マスタ装置に待機レスポンスを返し、前記処理手段が処理を実行中であるか、或いは前記マスタ装置が優先マスタ装置でなければ、前記マスタ装置のマスタ番号を処理要求の発生順に前記マスタ番号保持レジスタに格納すると共に前記マスタ装置に待機レスポンスを返し、前記処理手段が処理要求に従った処理を完了した後、前記マスタ番号保持レジスタに格納されているマスタ番号の格納順に基づいて優先マスタ装置を決定すると共に、少なくとも前記処理が完了した処理要求の要求元のマスタ装置及び前記優先マスタ装置に待機解除通知を返す要求管理手段とを備えたことを特徴とする。
本発明にかかる第4のバスシステムは、第3のバスシステムにおいて、
前記要求管理手段が、
前記処理手段による処理が完了した場合、前記マスタ番号保持レジスタにマスタ番号が格納されているマスタ装置の内の、マスタ番号の格納順が最も古いマスタ装置を優先マスタ装置に決定すると共に、前記マスタ番号保持レジスタの内容を消去する構成を有することを特徴とする。
本発明にかかる第5のバスシステムは、第3のバスシステムにおいて、
前記要求管理手段が、
前記処理手段による処理が完了した場合、前記マスタ番号保持レジスタに保持されている未選択のマスタ番号の内の、最も格納順が古いマスタ番号を選択し、該選択したマスタ番号のマスタ装置を優先マスタ装置とする構成を有することを特徴とする。
本発明にかかる第6のバスシステムは、第3のバスシステムにおいて、
前記複数のスレーブ装置の内の一部のスレーブ装置が、
動作モードを第1モードにするのか、第2モードにするのかを設定するモード設定手段を備え、且つ、
前記要求管理手段が、
前記モード設定手段により第1モードが設定されている場合は、前記処理手段による処理が完了した場合、前記マスタ番号保持レジスタにマスタ番号が格納されているマスタ装置の内の、マスタ番号の格納順が最も古いマスタ装置を優先マスタ装置に決定すると共に、前記マスタ番号保持レジスタの内容を消去し、前記モード設定手段により第2モードが設定されている場合は、前記処理手段による処理が完了した場合、前記マスタ番号保持レジスタに保持されている未選択のマスタ番号の内の、最も格納順が古いマスタ番号を選択し、該選択したマスタ番号のマスタ装置を優先マスタ装置とする構成を有することを特徴とする。
本発明にかかる第7のバスシステムは、第6のバスシステムにおいて、
前記モード設定手段が、第1モード及び第2モードに加え、第3モードも設定可能な構成を有し、且つ、
前記要求管理手段が、前記モード設定手段により第3モードが設定されている場合は、バス使用権を獲得したマスタ装置から前記バスを介して処理要求が送られてきたとき、前記処理手段が処理を実行中でなければ、前記処理手段に前記処理要求に従った処理を開始させると共に前記マスタ装置に待機レスポンスを返し、処理を実行中であれば、前記マスタ装置に待機レスポンスを返し、前記処理手段が処理要求に従った処理を完了したとき、前記処理要求の要求元のマスタ装置に待機解除通知を返す構成を有することを特徴とする。
本発明にかかる第1のスレーブ装置は、
バス使用権を獲得したマスタ装置からバスを介して処理要求が送られてきたとき、他の処理要求に従った処理を実行中でなく、且つ前記マスタ装置が優先マスタ装置であれば、前記処理要求に従った処理を開始すると共に前記マスタ装置に待機レスポンスを返し、他の処理要求に従った処理を実行中であるか、或いは前記マスタ装置が優先マスタ装置でなければ、前記マスタ装置のマスタ番号を保持すると共に前記マスタ装置に待機レスポンスを返し、処理要求に従った処理が完了した後、前記保持しているマスタ番号の保持順に基づいて優先マスタ装置を決定すると共に、少なくとも前記処理が完了した処理要求の要求元のマスタ装置及び前記優先マスタ装置に待機解除通知を返す要求管理手段を備えたことを特徴とする。
本発明にかかる第2のスレーブ装置は、第1のスレーブ装置において、
複数のマスタ番号を格納可能なマスタ番号保持レジスタと、
処理要求に従った処理を実行する処理手段と、
バス使用権を獲得したマスタ装置からバスを介して処理要求が送られてきたとき、前記処理手段が処理を実行中でなく、且つ前記マスタ装置が優先マスタ装置であれば、前記処理手段に前記処理要求に従った処理を実行させると共に前記マスタ装置に待機レスポンスを返し、前記処理手段が処理を実行中であるか、或いは前記マスタ装置が優先マスタ装置でなければ、前記マスタ装置のマスタ番号を処理要求の発生順に前記マスタ番号保持レジスタに格納すると共に前記マスタ装置に待機レスポンスを返し、前記処理手段が処理要求に従った処理を完了した後、前記マスタ番号保持レジスタに格納されているマスタ番号の格納順に基づいて優先マスタ装置を決定すると共に、少なくとも前記処理が完了した処理要求の要求元のマスタ装置及び前記優先マスタ装置に待機解除通知を返す要求管理手段とを備えたことを特徴とする。
本発明にかかる第3のスレーブ装置は、第2のスレーブ装置において、
前記要求管理手段が、
前記処理手段による処理が完了した場合、前記マスタ番号保持レジスタにマスタ番号が格納されているマスタ装置の内の、マスタ番号の格納順が最も古いマスタ装置を優先マスタ装置に決定すると共に、前記マスタ番号保持レジスタの内容を消去する構成を有することを特徴とする。
本発明にかかる第4のスレーブ装置は、第2のスレーブ装置において、
前記要求管理手段が、
前記処理手段による処理が完了した場合、前記マスタ番号保持レジスタに保持されている未選択のマスタ番号の内の、最も格納順が古いマスタ番号を選択し、該選択したマスタ番号のマスタ装置を優先マスタ装置とする構成を有することを特徴とする。
本発明にかかる第5のスレーブ装置は、第2のスレーブ装置において、
前記複数のスレーブ装置の内の一部のスレーブ装置が、
動作モードを第1モードにするのか、第2モードにするのかを設定するモード設定手段を備え、且つ、
前記要求管理手段が、
前記モード設定手段により第1モードが設定されている場合は、前記処理手段による処理が完了した場合、前記マスタ番号保持レジスタにマスタ番号が格納されているマスタ装置の内の、マスタ番号の格納順が最も古いマスタ装置を優先マスタ装置に決定すると共に、前記マスタ番号保持レジスタの内容を消去し、前記モード設定手段により第2モードが設定されている場合は、前記処理手段による処理が完了した場合、前記マスタ番号保持レジスタに保持されている未選択のマスタ番号の内の、最も格納順が古いマスタ番号を選択し、該選択したマスタ番号のマスタ装置を優先マスタ装置とする構成を有することを特徴とする。
本発明にかかる第6のスレーブ装置は、第5のスレーブ装置において、
前記モード設定手段が、第1モード及び第2モードに加え、第3モードも設定可能な構成を有し、且つ、
前記要求管理手段が、前記モード設定手段により第3モードが設定されている場合は、バス使用権を獲得したマスタ装置から前記バスを介して処理要求が送られてきたとき、前記処理手段が処理を実行中でなければ、前記処理手段に前記処理要求に従った処理を開始させると共に前記マスタ装置に待機レスポンスを返し、処理を実行中であれば、前記マスタ装置に待機レスポンスを返し、前記処理手段が処理要求に従った処理を完了したとき、前記処理要求の要求元のマスタ装置に待機解除通知を返す構成を有することを特徴とする。
本発明にかかるバス制御方法は、
バスに接続された複数のマスタ装置と、前記バスに接続された複数のスレーブ装置と、バスアービタとを備えたバスシステムにおいて、
前記バスアービタが、
バス使用要求を出力した複数のマスタ装置の中から予め固定的に定められているマスタ装置の優先順位に基づいてバス使用権を与えるマスタ装置を決定する調停ステップを実行し、
前記複数のスレーブ装置の内の一部のスレーブ装置が、
バス使用権を獲得したマスタ装置から前記バスを介して処理要求が送られてきたとき、他の処理要求に従った処理を実行中でなく、且つ前記マスタ装置が優先マスタ装置であれば、前記処理要求に従った処理を開始すると共に前記マスタ装置に待機レスポンスを返し、他の処理要求に従った処理を実行中であるか、或いは前記マスタ装置が優先マスタ装置でなければ、前記マスタ装置のマスタ番号を保持すると共に前記マスタ装置に待機レスポンスを返し、処理要求に従った処理が完了した後、前記保持しているマスタ番号の保持順に基づいて優先マスタ装置を決定すると共に、少なくとも前記処理が完了した処理要求の要求元のマスタ装置及び前記優先マスタ装置に待機解除通知を返す要求管理ステップを実行し、
前記各マスタ装置が、
自装置内に処理要求が発生したとき、前記バスアービタに対してバス使用要求を出力し、前記バスアービタによりバス使用権が与えられたとき、スレーブ装置に処理要求を出力し、スレーブ装置から待機レスポンスが送られてきたとき、前記バスを開放すると共にバス使用要求の出力が不可能な待機状態となり、スレーブ装置から待機解除通知が送られてきたときバス使用要求が出力可能な状態に復帰する制御ステップを実行することを特徴とする。
本発明にかかるプログラムは、
コンピュータを、
バス使用権を獲得したマスタ装置からバスを介して処理要求が送られてきたとき、他の処理要求に従った処理を実行中でなく、且つ前記マスタ装置が優先マスタ装置であれば、前記処理要求に従った処理を開始すると共に前記マスタ装置に待機レスポンスを返し、他の処理要求に従った処理を実行中であるか、或いは前記マスタ装置が優先マスタ装置でなければ、前記マスタ装置のマスタ番号を保持すると共に前記マスタ装置に待機レスポンスを返し、処理要求に従った処理が完了した後、前記保持しているマスタ番号の保持順に基づいて優先マスタ装置を決定すると共に、少なくとも前記処理が完了した処理要求の要求元のマスタ装置及び前記優先マスタ装置に待機解除通知を返す要求管理手段として機能させる。
〔作用〕
バスアービタは、複数のマスタ装置a,b,c(優先順位がa>b>cであるとする)からバス使用要求があると、その内の最も優先順位の高いマスタ装置aにバス使用権を与える。バス使用権を獲得したマスタ装置aは、スレーブ装置に対して処理要求を送る。スレーブ装置は、マスタ装置aからの処理要求に従った処理を開始すると共に、マスタ装置aに待機レスポンスを返す。これにより、マスタ装置aは、バスを開放し、待機状態となる。
バスが開放されるとバスアービタは、バスアービタに対してバス使用要求を出しているマスタ装置b,cのうち、優先順位が高い方のマスタ装置bにバス使用権を与える。バス使用権を獲得したマスタ装置bは、スレーブ装置に処理要求を送る。スレーブ装置は、マスタ装置aからの処理要求を処理中なので、マスタ装置bに待機レスポンスを返すと共に、マスタ装置bのマスタ番号を保持する。マスタ装置bは、待機レスポンスが返されると、バスを開放し、待機状態となる。
バスが開放されると、マスタ装置cがバスの使用権を獲得し、スレーブ装置に処理要求を送る。スレーブ装置は、マスタ装置aからの処理要求を処理中なので、マスタ装置cに待機レスポンスを返すと共に、マスタ装置cのマスタ番号を保持する。マスタ装置cは、待機レスポンスが返されると、バスを開放し、待機状態となる。
その後、マスタ装置aからの処理要求に対する処理が完了すると、スレーブ装置は、保持しているマスタ装置b,cのマスタ番号に基づいて、マスタ装置bを優先マスタ装置にすることを決定する。更に、スレーブ装置は、各マスタ装置a,b,cに待機解除通知を送る。
その後、各マスタ装置a,b,cが、バスアービタに対してバス使用要求を行うと、優先順位の高いマスタ装置aにバス使用権が与えられ、マスタ装置aがスレーブ装置に対して処理要求を送る。しかし、スレーブ装置は、処理要求の要求元のマスタ装置aが優先マスタ装置bでないので、上記処理要求は処理せず、要求元のマスタ装置aに待機レスポンス返す。
その後、バス使用権を獲得したマスタ装置bから処理要求を送られてくると、マスタ装置bが優先マスタ装置なので、上記処理要求を処理する。
本発明によれば、ライブロックが発生しないスレーブ装置を実現することが可能になる。その理由は、スレーブ装置自身が、バスを介して入力された処理要求の入力順序に基づいてマスタ装置に対する第二の優先順位を決定する構成を有する要求管理手段を備えているからである。つまり、バスアービタによって決まる第一の優先順位と異なる、処理要求の入力順によって決まる第二の優先順位に従って各マスタ装置からの処理要求を処理するようにしているからである。
次に本発明の実施の形態について図面を参照して詳細に説明する。
〔第1の実施の形態の構成〕
本発明にかかるバスシステムの第1の実施の形態は、図29に示すバスシステムにおいて、マスタ装置1−1〜1−m,スレーブ装置2−1〜2−n及びバスアービタ3として、それぞれ図1,図2,図4に示す構成を有するマスタ装置,スレーブ装置,バスアービタを使用することにより実現される。
図1を参照すると、マスタ装置1−1〜1−mは、制御手段11と、リード要求手段12と、ライト要求手段13と、応答受信手段14と、バス獲得手段15とを備えている。
リード要求手段12は、制御手段11の指示に従って、自マスタ装置を特定するマスタ番号(本実施の形態では、マスタ装置1−1〜1−mにそれぞれマスタ番号M1〜Mmが付与されているとする)および処理の依頼先となるスレーブ装置を特定するスレーブ番号(本実施の形態では、スレーブ装置2−1〜2−nにそれぞれスレーブ番号SL1〜SLnが付与されているとする)を含んだリード要求を内部バス4へ出力する機能や、スレーブ装置から内部バス4を介して送られてくるリードデータを制御手段11に渡す機能を有する。
ライト要求手段13は、制御手段11の指示に従って、自マスタ装置のマスタ番号および処理の依頼先となるスレーブ装置のスレーブ番号を含んだライト要求を内部バス4へ出力する機能や、制御手段11の指示に従ってライトデータを内部バス4へ出力する機能を有する。
応答受信手段14は、内部バス4を介してスレーブ装置2−1〜2−nから送られてくる待機レスポンスや待機解除通知を制御手段11に渡す機能を有する。
バス獲得手段15は、制御手段11の指示に従ってバスアービタ3に対してバス使用要求を送信する機能や、バスアービタ3によってバス使用権が与えられたか否かを制御手段11に通知する機能を有する。
制御手段11は、各手段12〜15を制御する機能を有する。
なお、マスタ装置1−1〜1−mは、CPU(コンピュータ)によって実現可能なものであり、コンピュータによって実現する場合は、例えば、次のようにする。コンピュータをマスタ装置として機能させるためのプログラムを記録したディスク,半導体メモリ,その他の記録媒体を用意し、上記プログラムをコンピュータに読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に制御手段11,リード要求手段12,ライト要求手段13,応答受信手段14およびバス獲得手段15を実現する。
図2を参照すると、スレーブ装置2−1〜2−nは、要求管理手段20と、リード処理手段21と、リードバッファ有効フラグレジスタ211と、ライト処理手段22と、リード用マスタ番号保持レジスタ23と、ライト用マスタ番号保持レジスタ24と、リード処理フラグ保持レジスタ25と、ライト処理フラグ保持レジスタ26と、ライトバッファ27と、リードバッファ28と、モード設定手段29とを備えている。
要求管理手段20は、要求種別判定手段201と、リード要求元管理手段202と、ライト要求元管理手段203と、リード用格納位置保持部204と、リード用読み出し位置保持部205と、ライト用格納位置保持部206と、ライト用読み出し位置保持部207とを備えている。
リード用マスタ番号保持レジスタ23は、図3に示すように、16個のエントリ#0〜#15から構成される。各エントリ#0〜#15には、それぞれエントリ番号「0」〜「15」が付与されている。ライト用マスタ番号保持レジスタ24もリード用マスタ番号保持レジスタ23と同様に、16個のエントリから構成される。
リード処理フラグレジスタ25には、リード処理手段21がリード処理を実行中であるか否かを示すリード処理フラグ(リード処理中は“1”となり、リード処理中でない場合は“0”となる)が格納される。ライト処理フラグレジスタ26には、ライト処理手段22がライト処理を実行中であるか否かを示すライト処理フラグ(ライト処理中は“1”となり、ライト処理中でない場合は“0”となる)が格納される。
リード用格納位置保持部204には、リード要求元管理手段202がマスタ番号をリード用マスタ番号保持レジスタ23に格納する際の格納位置(エントリ番号)が保持される。
リード用読み出し位置保持部205には、リード要求元管理手段202が優先マスタ装置のマスタ番号をリード用マスタ番号保持レジスタ23から読み出す際の読み出し位置(エントリ番号)が保持される。
ライト用格納位置保持部206には、ライト要求元管理手段203がマスタ番号をライト用マスタ番号保持レジスタ24に格納する際の格納位置が保持される。
ライト用読み出し位置保持部207には、ライト要求元管理手段203が優先マスタ装置のマスタ番号をライト用マスタ番号保持レジスタ24から読み出す際の読み出し位置が保持される。
リードバッファ有効フラグ保持レジスタ211には、リードバッファ28に有効なリードデータが格納されているか否かを示すリードバッファ有効フラグ(有効なリードデータが格納されている場合は“1”となり、格納されていない場合は“0”となる)が格納されている。
モード設定手段29は、例えば、3つの状態を取ることができるスイッチ等により実現されるものであり、動作モードを第1,第2,第3モードの何れにするのかを指定する。「第1モード」は、或るマスタ装置からの処理要求に従った処理を実行中に、他のマスタ装置から処理要求が入力された場合、最初に処理要求を出力したマスタ装置だけを優先させるモードである。「第2モード」は、或るマスタ装置からの処理要求に従った処理を実行中に、他のマスタ装置から処理要求が入力された場合、処理要求の入力順に優先させるマスタ装置を切り替えていくモードである。「第3モード」は、バスアービタ3の持つマスタ装置の優先順位に従って処理を行うモードである。
要求種別判定手段201は、内部バス4を介して自スレーブ装置に送られてきた処理要求がリード要求なのかライト要求なのかを判定し、リード要求であればリード要求元管理手段202に渡し、ライト要求であればライト要求元管理手段203に渡す機能を有する。
リード要求元管理手段202は、次のような機能を有する。
・リード処理手段21がリード処理を実行している時に(リード処理フラグが“1”の時に)、要求種別判定手段201からリード要求が渡された場合、および、リード処理手段21がリード処理を実行していない時に(リード処理フラグが“0”の時に)、要求種別判定手段201からリード要求が渡され、且つそのリード要求が優先マスタ装置(リード用読み出し位置保持部205が指し示しているリード用マスタ番号保持レジスタ23中のエントリに格納されているマスタ番号のマスタ装置)以外のマスタ装置からのものである場合は、リード用マスタ番号保持レジスタ23にリード要求元のマスタ番号を格納すると共に、待機レスポンスをリード要求元のマスタ装置に返す。なお、マスタ番号の格納位置は、リード用格納位置保持部204に保持されているエントリ番号のエントリとする。また、マスタ番号を格納後、リード要求元管理手段202は、リード用格納位置保持部204に保持されているエントリ番号を+1する。但し、エントリ番号が「15」である場合には、「0」に更新する。
・リード処理手段21がリード処理を実行していないときに、要求種別判定手段201からリード要求が渡され、その要求元が優先マスタ装置である場合には、リードバッファ有効フラグレジスタ211を参照することにより、リードバッファ28に有効なリードデータが格納されているか否かを調べる。そして、有効なリードデータが格納されていない場合(リードバッファ有効フラグが“0”の場合)は、リード要求をリード処理手段21に渡すと共に要求元に待機レスポンスを返し、有効なリードデータが格納されている場合には、リード処理手段21に対してリードデータの転送を指示する。
・リード処理手段21に対してリードデータの転送を指示した後、モード設定手段29に設定されている動作モードに応じて次のような処理を行う。動作モードが「第1モード」の場合は、リード用読み出し位置保持部205に保持されているエントリ番号をインクリメントすることにより、優先マスタ装置を変更する処理と、リード処理を待機中のマスタ装置に待機解除通知を送信する処理と、リード用格納位置保持部204に保持されているエントリ番号をリード用読み出し位置保持部205に保持されているエントリ番号の次のエントリ番号とすることにより、リード用マスタ番号保持レジスタ23に登録されているマスタ番号を優先マスタ装置のマスタ番号のみにする処理とを行う。動作モードが「第2モード」の場合は、リード用読み出し位置保持部205に保持されているエントリ番号をインクリメントすることにより、優先マスタ装置を変更する処理と、優先マスタ装置に待機解除通知を送信する処理とを行う。動作モードが「第3モード」の場合は、リード処理を待機中のマスタ装置に待機解除を送信する処理と、リード用格納位置保持部204とリード用読み出し位置保持部205とに同一のエントリ番号(本実施の形態では、エントリ番号#0とする)を格納することにより、リード用マスタ番号保持レジスタ23に格納されているマスタ番号を全て削除する処理を行う。
・リード処理手段21からリード処理の完了が通知された時、優先マスタ装置に待機解除を返す。以上が、リード要求元管理手段202が備えている主な機能である。
ライト要求元管理手段203は、次のような機能を有する。電源投入直後やリセット直後、あるいはアイドル時などの初期状態にあるときにライト要求があった場合には、ライト要求をライト処理手段22に渡すが、初期状態にない場合には次のような動作となる。
・ライト処理手段22がライト処理を実行している時(ライト処理フラグが“1”の時)に、要求種別判定手段201からライト要求が渡された場合、ライト用マスタ番号保持レジスタ24にライト要求元のマスタ番号を格納すると共に、待機レスポンスをライト要求元のマスタ装置に返す。なお、マスタ番号の格納位置は、ライト用格納位置保持部206に保持されているエントリ番号のエントリとする。また、マスタ番号を格納後、ライト要求元管理手段203は、ライト用格納位置保持部207に保持されているエントリ番号を+1する。但し、ライト用格納位置保持部207に保持されているエントリ番号が「15」の場合には「0」に更新する。
・ライト処理手段22がライト処理を実行していない時(ライト処理フラグが“0”の時)に、要求種別判定手段201からライト要求が渡された場合は、モード設定手段29に設定されている動作モードに応じて次のような処理を行う。動作モードが「第1モード」の場合および「第2モード」の場合は、ライト要求の要求元が優先マスタ装置(ライト用読み出し位置保持部207が指し示しているライト用マスタ番号保持レジスタ24中のエントリに格納されているマスタ番号のマスタ装置)であるか否かを調べる。そして、優先マスタ装置である場合は、ライト要求をライト処理手段22に渡し、優先マスタ装置でない場合は、ライト用マスタ番号保持レジスタ24のエントリの内の、ライト用格納位置保持部206が指し示しているエントリに、ライト要求元のマスタ番号を格納する。また、動作モードが「第3モード」の場合は、ライト要求をライト処理手段22に渡す。
・ライト処理手段22からライト処理完了が通知されたとき、モード設定手段29に設定されている動作モードに応じた処理を行う。動作モードが「第1モード」の場合は、ライト処理を待機中のマスタ装置に待機解除を送信する処理や、ライト用格納位置保持部206に保持されているエントリ番号をライト用読み出し位置保持部207が保持しているエントリ番号の次のエントリ番号に更新することにより、ライト用マスタ番号保持レジスタ24に格納されているマスタ番号を優先マスタ装置のマスタ番号のみにする処理を行う。動作モードが「第2モード」の場合は、優先マスタ装置に待機解除通知を送信する処理を行う。動作モードが「第3モード」の場合は、ライト処理を待機中のマスタ装置に待機解除通知を送信する処理や、ライト用格納位置保持部206とライト用読み出し位置保持部207に同一エントリ番号(本実施の形態では、エントリ番号#0)を格納することにより、ライト用マスタ番号保持レジスタ24に格納されているマスタ番号を全て削除する処理を行う。
リード処理手段21は、リード要求元管理手段202から渡されたリード要求に従ってメモリ(図示せず)からデータを読み込み、読み込んだデータをリードバッファ28に格納する機能や、リードバッファ28へのデータの格納が完了したとき、リード要求元管理手段202に対してリード処理の完了を通知する機能や、リード要求元管理手段202からリードデータの転送が指示されたとき、リードバッファ28に格納されているリードデータを内部バス4へ出力する機能や、リード要求元管理手段202からリード要求が渡されたとき、リード処理フラグレジスタ25に設定されているリード処理フラグを“1”にし、リード処理が完了したときリード処理フラグを“0”にする機能を有する。
ライト処理手段22は、ライト要求元管理手段203からライト要求が渡されたとき、内部バス4にライト許可を出力することにより、ライト要求元のマスタ装置にライトデータの転送動作を行わせる機能や、ライトバッファ27に格納されたライトデータをライト要求に従ってメモリ(図示せず)に格納する機能や、ライト処理の完了をライト要求元管理手段203に通知する機能や、ライト要求元管理手段203からライト要求が渡されたとき、ライト処理フラグレジスタ26に格納されているライト処理フラグを“1”にし、ライト処理が完了したときライト処理フラグを“0”にする機能を有する。
なお、スレーブ装置2−1〜2−nは、CPU(コンピュータ)によって実現可能なものであり、コンピュータによって実現する場合は、例えば、次のようにする。コンピュータをスレーブ装置として機能させるためのプログラムを記録したディスク,半導体メモリ,その他のメモリを用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に、要求管理手段20、リード処理手段21およびライト処理手段22を実現する。
図4を参照するとバスアービタ3は、調停手段31と、優先順位保持部32とを備えている。
優先順位保持部32には、各マスタ装置1−1〜1−mの優先順位が格納されている。なお、本実施の形態では、マスタ装置の優先順位は、マスタ装置1−1>マスタ装置1−2>…>マスタ装置1−m(マスタ装置1−1が最も優先順位が高く、マスタ装置1−mが最も優先順位が低い)となっている。調停手段31は、複数のマスタ装置から同時にバス使用要求があった場合、最も優先順位が高いマスタ装置にバス使用権を与える機能を有する。
〔実施の形態の動作〕
次に本実施の形態の動作について詳細に説明する。なお、以下の説明では、スレーブ装置2−1,2−2,2−3の動作モードがそれぞれ「第1モード」,「第2モード」,「第3モード」になっているとする。
〔第1モードの動作〕
今、例えば、3台のマスタ装置1−1,1−2,1−3において、スレーブ装置2−1(動作モード=「第1モード」)に対するリード要求R11,R21,R31が同時に発生したとする。各マスタ装置1−1〜1−3内の制御手段11は、バス獲得手段15を用いてバスアービタ3にバス使用要求を送る。バスアービタ3内の調停手段31は、マスタ装置1−1〜1−3からバス使用要求が送られてくると、最も優先順位が高いマスタ装置1−1にバス使用権を与える。
マスタ装置1−1内の制御手段11は、バス使用権を獲得すると、リード要求手段12を用いて内部バス4上にリード要求R11を出力する(図5参照)。このリード要求R11には、マスタ装置1−1のマスタ番号M1と、スレーブ装置2−1のスレーブ番号SL1と、リードアドレスとが含まれている。
スレーブ装置2−1内の要求種別判定手段201は、マスタ装置1−1からの処理要求がリード要求であることを認識すると(図11のステップS1111がYES)、リード要求R11をリード要求元管理手段202に渡す。
リード要求元管理手段202は、要求種別判定手段201からリード要求R11が渡されると、それが電源投入後に最初に入力されたリード要求であるか否かを判断する(ステップS1112)。今、リード要求R11が前述したような初期状態時に入力されたリード要求であるとすると、リード要求元管理手段202は、リード要求R11をリード処理手段21に渡す(ステップS1112がYES,S1113)。
リード処理手段21は、リード要求R11が渡されると、図16のフローチャートに示す処理を開始する。同図に示すように、リード処理手段21は、リード要求R11が渡されると、リード処理フラグレジスタ25中のリード処理フラグを“1”にしてリード処理中であることを表示した後、リード要求R11に従ってメモリからデータを読み込み、読み込んだデータをリードバッファ28に格納する(ステップS161,S162)。なお、ライト処理手段22が上記メモリに対してデータの書き込み処理を行っている場合は、ライト処理手段22による書き込み処理が完了した後、上記メモリからデータを読み込む。その後、リード処理手段21は、リード処理フラグを“0”にしてリード処理が完了したことを表示し、更に、リードバッファ有効フラグレジスタ211中のリードバッファ有効フラグを“1”とすることにより、リードバッファ28に有効なリードデータが格納されていることを表示する(ステップS163,S164)。以上の処理が終了すると、リード要求手段21は、リード要求元管理手段202に対してリード処理が完了したことを通知する(ステップS165)。なお、リード処理手段21において上述した処理が行われている間も、リード要求元管理手段202においては以下の処理が並行して行われている。
リード要求元管理手段202は、図11のステップS1113においてリード処理手段21にリード要求R11を渡すと、リード用格納位置保持部204からマスタ番号の格納位置(エントリ番号)を取得する(ステップS1114)。なお、電源投入時(初期状態)には、リード用格納位置保持部204には、エントリ番号「0」が保持されているとする。また、リード用読み出し位置保持部205,ライト用格納位置保持部206,ライト用読み出し位置保持部207にも電源投入時にはエントリ番号「0」が保持されているとする。
リード要求元管理手段202は、リード用格納位置保持部204からエントリ番号「0」を取得すると、リード用マスタ番号保持レジスタ23のエントリ番号「0」のエントリ#0にリード要求元のマスタ装置1−1のマスタ番号M1を書き込む(ステップS1115)。その後、リード要求元管理手段202は、リード用格納位置保持部204に保持されているエントリ番号「0」を+1し、「1」にする(ステップS1116)。この時点でのリード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が示すマスタ番号の格納位置W、及びリード用読み出し位置保持部205が示すマスタ番号の読み出し位置Rは、図19(A)に示すものとなる。その後、リード要求元管理手段202は、リード要求元のマスタ装置1−1に待機レスポンスを返す(ステップS1117)。
マスタ装置1−1内の制御手段11は、応答受信手段14を介して待機レスポンスを受信すると、内部バス4を開放し、待機状態になる。待機状態中は、バスアービタ3に対してバス使用要求を出力不可能な状態になる。内部バス4が開放されると、バスアービタ3は、バス使用要求を出力しているマスタ装置1−2,1−3の内の優先順位が高いマスタ装置1−2にバス使用権を与える。マスタ装置1−2は、バス使用権を獲得すると、内部バス4にリード要求R21を出力する。このリード要求には、マスタ装置1−2のマスタ番号M2と、スレーブ装置2−1のスレーブ番号SL1と、リードアドレスとが含まれている。
スレーブ装置2−1内の要求種別判定手段201は、マスタ装置1−2が内部バス4上に出力したリード要求R21を取り込むと(S1111がYES)、それをリード要求元管理手段202に渡す。
リード要求元管理手段202は、リード要求R21が最初のリード要求でないので(ステップS1112がNO)、リード処理フラグレジスタ25を参照することにより、リード処理手段21がリード処理を実行中であるか否かを調べる(ステップS1118)。この時点で、リード処理手段21によるリード要求R11の処理が完了していないとすると、ステップS1118の判断結果がYESとなるので、リード要求元管理手段202は、前述したステップS1114〜S1117の処理を行う。ステップS1114〜S1116の処理が行われることにより、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、及びリード用読み出し位置保持部205が指し示す読み出し位置Rは、図19(B)に示すものとなる。また、ステップS1117の処理が行われることにより、リード要求R21の要求元のマスタ装置1−2が待機状態となる。
その後、マスタ装置1−3がバス使用権を獲得し、内部バス4にリード要求R31(マスタ装置1−3のマスタ番号M3と、スレーブ装置2−1のスレーブ番号SL1と、リードアドレスとを含む)を出力すると、スレーブ装置2−1内の要求種別判定手段201がリード要求R31を取り込み、それをリード要求元管理手段202に渡す(ステップS1111がYES)。
リード要求元管理手段202は、リード要求R31が最初のリード要求でないので(ステップS1112がNO)、リード処理フラグレジスタ25を参照することにより、リード処理手段21がリード処理を実行中であるか否かを調べる(ステップS1118)。この時点で、リード処理手段21によるリード要求R11の処理が完了していないとすると、ステップS1118の判断結果がYESとなるので、リード要求元管理手段202は、前述したステップS1114〜S1117の処理を行う。この結果、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、及びリード用読み出し位置保持部205が指し示す読み出し位置Rは、図19(C)に示すものとなる。また、リード要求R31の要求元のマスタ装置1−3が待機状態となる。
その後、リード処理手段21がリード要求R11に対する処理を完了し、リード要求元管理手段202に対してリード処理の完了を通知したとする。
リード要求元管理手段202は、リード処理手段21からリード処理の完了が通知されると、図14のフローチャートに示す処理を行う。ステップS141では、リード用読み出し位置保持部205からリード用読み出し位置(この例の場合、エントリ番号「0」)を取得する。ここで、リード用読み出し位置保持部205によって指し示されているリード用マスタ番号保持レジスタ23のエントリには、優先マスタ装置のマスタ番号が登録されている。次のステップS142では、リード用マスタ番号保持レジスタ23のエントリ番号「0」のエントリ#0に登録されているマスタ番号を入力する。この例の場合、リード用マスタ番号保持レジスタ23の内容は、図19(C)に示すものとなっているので、リード要求元管理手段202は、優先マスタ装置のマスタ番号として「M1」を入力することになる。次のステップS143では、リード要求元管理手段202は、マスタ番号「M1」の優先マスタ装置1−1に対して待機解除通知を送る。
優先マスタ装置1−1内の制御手段11は、応答受信手段14を介して待機解除通知を受信すると、バス使用要求を出力可能な状態に復帰するので、バスアービタ3にバス使用要求を送り、バスアービタ3の調停によってバス使用権を獲得すると、待機中のリード要求R11を内部バス4に出力する。
スレーブ装置2−1内の要求種別判定手段201は、マスタ装置1−1からのリード要求R11をリード要求元管理手段202に渡す(図11のステップS1111がYES)。リード要求元管理手段202は、リード要求R11が渡されると、それが最初のリード要求でないので、リード処理フラグレジスタ25を参照し、リード処理手段21がリード処理を実行しているか否かを調べる(ステップS1118)。この例では、リード処理手段21は、リード要求R11に対する処理を既に完了し、リード処理フラグレジスタ25中のリード処理フラグを“0”にしているので、ステップS1118の判断結果はNOとなる。
ステップS1118の判断結果がNOとなると、現在の動作モードが「第3モード」でないので(ステップS1118-1がNO)、リード要求元管理手段202は、リード用マスタ番号保持レジスタ23のエントリの内の、リード用読み出し位置保持部205が指し示しているエントリから優先マスタ装置のマスタ番号を読み込む(ステップS1119,S1120)。この時点では、リード用読み出し位置保持部205にはエントリ番号「0」が登録され、また、リード用マスタ番号保持レジスタ23の内容は図19(C)に示すものであるので、リード要求元管理手段202は、優先マスタ装置のマスタ番号として「M1」を取得することになる。
その後、リード要求元管理手段202は、ステップS1120で取得した優先マスタ装置のマスタ番号「M1」と、要求種別判定手段201から渡されたリード要求R11中のマスタ番号とが一致するか否かを調べる(ステップS1121)。この例の場合、リード要求R11に含まれているマスタ番号は「M1」であるので、ステップS1121の判断結果はYESとなる。ステップS1121の判断結果がYESとなると、リード要求元管理手段202は、リードバッファ有効フラグレジスタ211を参照することにより、リードバッファ28に有効なリードデータが格納されているか否かを調べる(ステップS1122)。この例の場合、リードバッファ有効フラグレジスタ211中のリードバッファ有効フラグは、“1”となっており、有効なリードデータが格納されていることを示しているので(ステップS1122がYES)、リード要求元管理手段202はリード処理手段21に対してリードデータの転送を指示した後、リードバッファ有効フラグを“0”とし、リードバッファ28に有効なリードデータが格納されていないことを表示する(ステップS1123,S1124)。
一方、リード処理手段21は、リード要求元管理手段202から転送指示が入力されると、図17のフローチャートに示すように、リードバッファ28に格納されているリードデータをマスタ装置1−1へ転送する(ステップS171)。また、マスタ装置1−1内の制御手段11は、応答受信手段14を介してリードデータを受信すると、内部バス4を開放する。
リード要求元管理手段202は、図11のステップS1124の処理が終了すると、図12のフローチャートに示す処理を行う。ステップS120では、モード設定手段29によって設定されている動作モードが、「第1モード」,「第2モード」,「第3モード」の何れであるかを調べる。この例の場合、モード設定手段29には、動作モードとして「第1モード」が設定されているので、リード要求元管理手段202は、リード処理を待機中のマスタ装置1−2,1−3に対して待機解除通知を送る(ステップS121)。なお、リード処理を待機中のマスタ装置は、リード用マスタ番号保持レジスタ23,リード用格納位置保持部204,リード用読み出し位置保持部205の内容に基づいて求めることができる。即ち、リード用マスタ番号保持レジスタ23中のエントリの内の、リード用読み出し位置保持部205が指し示しているエントリ#0の次のエントリ#1からリード用格納位置保持部204が指し示しているエントリ#3の1つ前のエントリ#2までに、マスタ番号M2,M3が格納されているマスタ装置1−2,1−3が、リード処理を待機しているマスタ装置となる(図19(C)参照)。
その後、リード要求元管理手段202は、リード用読み出し位置保持部205に格納されているエントリ番号「0」を+1して「1」に更新し、更に、リード用格納位置保持部204にリード用読み出し位置保持部205に格納されているエントリ番号「1」の次のエントリ番号「2」を格納する(ステップS122,S123)。この結果、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、及びリード用読み出し位置保持部205が指し示すリード位置Rは、図19(D)に示すものとなる。即ち、上記したステップS122の処理を行うことにより、優先マスタ装置のマスタ番号が「M2」に変更されると共に、リード処理が完了したマスタ装置1−1のマスタ番号「M1」が消去されることになる。また、上記したステップS123の処理を行うことにより、マスタ装置1−3のマスタ番号「M3」が消去されることになる。
一方、待機解除通知を受信したマスタ装置1−2,1−3及び既に待機解除されているマスタ装置1−1は、バスアービタ3に対してバス使用要求を出力し、バスアービタ3は、優先順位が最も高いマスタ装置1−1にバス使用権を与える。マスタ装置1−1は、バス使用権を獲得すると、リード要求R12(マスタ番号M1,スレーブ番号SL1,リードアドレスを含む)を内部バス4に出力する。
スレーブ装置2−1内の要求種別判定手段201は、リード要求R12をリード要求元管理手段202に渡す(図11のステップS1111がYES)。リード要求元管理手段202は、リード要求R12が最初のリード要求でもなく(ステップS1112がNO)、リード処理手段21がリード処理を実行中でもなく(ステップS1118がNO)、動作モードが「第3モード」でもないので(ステップS1118-1がNO)、リード用マスタ番号保持レジスタ23のエントリ番号「1」のエントリ#1に登録されている優先マスタ装置のマスタ番号M2と、リード要求R12中のマスタ番号M1とを比較する(ステップS1119〜S1121)。この例の場合、両者が不一致なので(ステップS1121がNO)、リード要求元管理手段202は、前述したステップS1114〜S1117の処理を行う。これにより、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、およびリード用読み出し位置保持部205が指し示す読み出し位置Rは、図19(E)に示すものとなる。また、リード要求元のマスタ装置1−1に待機レスポンスが返される。マスタ装置1−1は、待機レスポンスが返されると、内部バス4を開放し、待機状態となる。
その後、バスアービタ3は、バス使用要求を出力しているマスタ装置1−2,1−3のうち、優先順位が高いマスタ装置1−2にバス使用権を与える。マスタ装置1−2は、バス使用権を獲得すると、リード要求R21をスレーブ装置2−1に送信する。
スレーブ装置2−1内の要求種別判定手段201は、マスタ装置1−2からのリード要求R21をリード要求元管理手段202に渡す(図11のステップS1111がYES)。リード要求元管理手段202は、リード要求R21が最初のリード要求でもなく(ステップS1112がNO)、リード処理手段21がリード処理中でもなく(ステップS1118がNO)、動作モードが「第3モード」でもないので(ステップS1118-1がNO)、リード用マスタ番号保持レジスタ23のエントリ番号「1」のエントリ#1の格納されている優先マスタ装置のマスタ番号M2とリード要求21中のマスタ装置M2とを比較する(ステップS1119〜S1121)。この例の場合、両者が共に「M2」であるので(ステップS1121がYES)、リード要求元管理手段202は、リードバッファ有効フラグレジスタ211を参照し、リードバッファ28に有効なリードデータが格納されているか否かを調べる(ステップS1122)。この例の場合、リードバッファ有効フラグは“0”となっており、リードバッファ28に有効なデータが格納されていないことを示しているので(ステップS1122がNO)、リード要求元管理手段202は、リード要求R21をリード処理手段21に渡した後(ステップS1113)、前述したステップS1114〜S1117の処理を行う。
リード処理手段21は、リード要求R21が渡されると、前述した図16のフローチャートに示す処理を行う。また、ステップS1114〜S1116の処理が行われることにより、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、およびリード用読み出し位置保持部205が指し示す読み出し位置Rは、図19(F)に示すものとなる。また、ステップS1117の処理が行われることにより、マスタ装置1−2に待機レスポンスが返される。マスタ装置1−2は、待機レスポンスが返されると、内部バス4を開放し、待機状態となる。
内部バス4が開放されると、待機状態になっていないマスタ装置1−3がバス使用権を獲得し、リード要求R31をスレーブ装置2−1に対して出力する。
スレーブ装置2−1内の要求種別判定手段201は、リード要求R31をリード要求元管理手段202に渡す(図11のステップS1111がYES)。リード要求元管理手段202は、リード要求R21が最初のリード要求でなく(ステップS1112がNO)、且つ、リード処理手段21がリード処理を実行中なので(ステップS1118がYES)、前述したステップS1114〜S1117の処理を行う。この結果、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、およびリード用読み出し位置保持部205が指し示す読み出し位置Rは、図19(G)に示すものとなる。また、リード要求元のマスタ装置1−3へ待機レスポンスが返される。
その後、リード処理手段21がリード要求R21に従ったリード処理を完了し、リード要求元管理手段202に対してリード処理の完了を通知すると、リード要求元管理手段202は、図14のステップS141〜S143の処理を行い、優先マスタ装置1−2に待機解除通知を返す。これにより、マスタ装置1−2は、バス使用権を獲得した後、リード要求R21をスレーブ装置2−1へ送信する。
スレーブ装置2−1内の要求種別判定手段201は、リード要求R21をリード要求元管理手段202に渡す(図11のステップS1111がYES)。リード要求元管理手段202は、リード要求R21が最初のリード要求でなく、リード処理手段21がリード処理を実行中でなく、且つ「第3モード」でないので(ステップS1112,S1118,S1118-1が共にNO)、リード用マスタ番号保持レジスタ23のエントリ#1に格納されている優先マスタ装置のマスタ番号M2と、リード要求M2とが一致するか否かを調べる(ステップS1121)。この場合、両者が一致するので(ステップS1121がYES)、リードバッファ有効フラグレジスタ211を参照してリードバッファ28に有効なデータが格納されているか否かを調べる(ステップS1122)。この例の場合、リードバッファ有効フラグレジスタ211には“1”が設定されているので(ステップS1122がYES)、リード要求元管理手段202は、リード処理手段21に対してリードデータの転送を指示した後、リードバッファ有効フラグを“0”に変更する(ステップS1123,S1124)。
リード処理手段21は、リードデータの転送が指示されると、図17のフローチャートに示すように、リードバッファ28に格納されているリードデータをマスタ装置1−2へ転送する(ステップS171)。
一方、リード要求元管理手段202は、図11のステップS1124の処理が終了すると、図12のフローチャートに示す処理を行う。この場合、動作モードが「第1モード」に設定されているので(ステップS120)、リード要求元管理手段202は、前述したステップS121〜S123の処理を行う。これにより、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、およびリード用読み出し位置保持部205が指し示す読み出し位置Rは、図19(H)に示すものとなる。即ち、優先マスタ装置のマスタ番号が「M1」に変更され、他のマスタ番号は全て消去されることになる。また、リード処理を待機中のマスタ装置1−1,1−3に待機解除が送られる。
次に、3台のマスタ装置1−1,1−2,1−3において、同時にスレーブ装置2−1に対するライト要求W11,W21,W31が発生した場合を例にとって、動作モードが「第1モード」の時の動作を説明する。
マスタ装置1−1〜1−3は、ライト要求W11,W21,W31が発生すると、バスアービタ3にバス使用要求を送り、バスアービタ3は、最も優先順位が高いマスタ装置1−1にバス使用権を与える。
マスタ装置1−1内の制御手段11は、バス使用権を獲得すると、ライト要求手段13を使用して内部バス4上へライト要求W11を出力する(図6参照)。このライト要求W11には、マスタ番号M1と、スレーブ番号SL1と、ライトアドレスとが含まれている。
スレーブ装置2−1内の要求種別判定手段201は、マスタ装置1−1からライト要求W11が送られてくると(図11のステップS1111がNO)、それをライト要求元管理手段203に渡す。
ライト要求元管理手段203は、ライト要求W11が渡されると、それが電源投入後に渡された最初のライト要求であるか否かを判断する(図13のステップS1301)。今、例えば、ライト要求W11が最初のライト要求であるとすると(ステップS1301がYES)、ライト要求元管理手段203は、ライト要求W11をライト処理手段22に渡す(ステップS1302)。
ライト処理手段22はライト要求W11が渡されると、図18のフローチャートに示す処理を実行する。図18のステップS181では、ライト処理フラグレジスタ26中のライト処理フラグを“1”に変更することにより、ライト処理中であることを表示し、次のステップS182では、ライト要求元のマスタ装置1−1にライト許可を返す。
これにより、マスタ装置1−1内の制御手段11は、ライト要求手段13を利用して内部バス4にライトデータを出力し、その後、バスを開放する。
マスタ装置1−1が出力したライトデータは、スレーブ装置2−1内のライトバッファ27に格納される。ライト処理手段22は、ライトバッファ27に格納されているライトデータを、ライト要求W11に従ってメモリに書き込む(ステップS183)。但し、リード処理手段21が上記メモリからデータを読み出している場合は、リード処理手段21の処理が終わるのを待って、データの書き込みを行う。
また、バスアービタ3は、バス使用要求を出力しているマスタ装置1−2,1−3の内、優先順位が高いマスタ装置1−2にバス使用権を与える。バス使用権を獲得したマスタ装置1−2は、ライト要求W21を内部バス4に出力する。このライト要求W21には、マスタ番号M2と、スレーブ番号SL1と、ライトアドレスとが含まれている。
スレーブ装置2−1内の要求種別判定手段201は、マスタ装置1−2からのライト要求W21を受信すると、それをライト要求元管理手段203に渡す(図11のステップS1111がNO)。ライト要求元管理手段203はライト要求W21が渡されると、それが最初のライト要求でないので(図13のステップS1301がNO)、ライト処理フラグレジスタ26を参照することにより、ライト処理手段22がライト処理を実行中であるか否かを判断する(ステップS1303)。今、ライト処理手段22が、ライト要求W11に従って図18のステップS183の処理を行っているとすると、ライト処理フラグは“1”になっているので、ライト要求元管理手段203は、ライト用格納位置保持部206からマスタ番号の格納位置(初期状態においてはエントリ番号「0」になっている)を取得し、ライト用マスタ番号保持レジスタ24のエントリ#0にライト要求W21の要求元のマスタ番号M2を格納する(ステップS1310,S1311)。その後、ライト要求元管理手段203は、ライト用格納位置保持部206に格納されているエントリ番号「0」を+1して「1」に更新する(ステップS1312)。この結果、ライト用マスタ番号保持レジスタ24の内容、ライト用格納位置保持部206が指し示す格納位置W、およびライト用読み出し位置保持部207が指し示す読み出し位置Rは、図20(A)に示すものとなる。その後、ライト要求元管理手段203は、ライト要求W21の要求元のマスタ装置1−2に待機レスポンスを返す(ステップS1313)。
これにより、マスタ装置1−2は、内部バス4を開放し、待機状態となる。また、内部バスが開放されることにより、マスタ装置1−3がバス使用権を獲得し、ライト要求W31を内部バス4に出力する。ライト要求W31には、マスタ番号M3,スレーブ番号SL1及びライトアドレスが含まれている。
スレーブ装置2−1内の要求種別判定手段201は、マスタ装置1−3からのライト要求W31を受信すると、それをライト要求元管理手段203に渡す(図11のステップS1111がNO)。ライト要求元管理手段203は、ライト要求W31が最初のライト要求でないので(図13のステップS1301がNO)、ライト処理フラグレジスタ26を参照することにより、ライト処理手段22がライト処理を実行中であるか否かを調べる(ステップS1303)。今、例えば、ライト処理手段22が、マスタ装置1−1からのライト要求W11に従ったライト処理を実行中であるとすると(ステップS1303がYES)、ライト要求元管理手段203は、前述したステップS1310〜S1313の処理を行う。これにより、ライト用マスタ番号保持レジスタ24の内容、ライト用格納位置保持部206が指し示す格納位置W、ライト用読み出し位置保持部207が指し示す書き込み位置Rは、図20(B)に示すものとなる。また、マスタ装置1−3に待機レスポンスが返される。マスタ装置1−3は、待機レスポンスが返されると、内部バス4を開放し、待機状態となる。
その後、ライト処理手段22がライト要求W11に従ったライト処理を完了し、ライト要求元管理手段203に対してライト処理完了を通知したとする(図18のステップS185)。
ライト要求元管理手段203は、ライト処理手段22からライト処理完了が通知されると、図15のフローチャートに示す処理を行う。ライト要求元管理手段203は、ステップS151において、モード設定手段29によって設定されている動作モードが「第1モード」であることを認識すると、待機中のマスタ装置1−2,1−3に待機解除通知を送信する(ステップS152)。その後、ライト要求元管理手段203は、ライト用格納位置保持部206に登録されているエントリ番号「2」を、ライト用読み出し位置保持部207に登録されているエントリ番号「0」の次のエントリ番号「1」に変更する(ステップS153)。この結果、ライト用格納位置保持部206が指し示す格納位置Wは、図20(C)に示すように、エントリ#2からエントリ#1に変更される。即ち、ステップS153の処理を行うことにより、優先マスタ装置1−2以外のマスタ装置のマスタ番号は、ライト用マスタ番号保持レジスタ24から消去されることになる。
その後、マスタ装置1−1において、第2番目のライト要求W12が発生したとする。マスタ装置1−1及び待機解除通知を受信したマスタ装置1−2,1−3は、バスアービタ3に対してバス使用要求を送信し、バスアービタ3は優先順位が高いマスタ装置1−1にバス使用権を与える。
マスタ装置1−1は、バス使用権を獲得すると、ライト要求W12をスレーブ装置2−1へ送信する。
スレーブ装置2−1内のライト要求元管理手段203は、要求種別判定手段201を介してマスタ装置1−1からのライト要求W12を受け取ると(図11のステップS1111がNO)、それが最初のライト要求でなく(ステップS1301がNO)、且つ、ライト処理手段22がライト処理を実行していないので(ステップS1303がNO)、現在の動作モードを調べる(ステップS1304)。この例の場合、モード設定手段29は、動作モードとして「第1モード」を設定しているので、ライト要求元管理手段203は、ライト用読み出し位置保持部207に格納されているエントリ番号「0」が指し示しているライト用マスタ番号保持レジスタ24のエントリ#0から優先マスタ装置のマスタ番号M2を取得する(ステップS1305,S1306)。その後、ライト要求元管理手段203は、ステップS1306で取得したマスタ番号M2とライト要求W12の要求元のマスタ番号M1とが不一致であるので(ステップS1307がNO)、前述したステップS1310〜1313の処理を行う。この結果、ライト用マスタ番号保持レジスタ24の内容、ライト用格納位置保持部206が指し示す格納位置W、及びライト用読み出し位置保持部207が指し示す読み出し位置Rは、図20(D)に示すものとなる。また、ライト要求元のマスタ装置1−1へ待機レスポンスが送られる。
マスタ装置1−1は、待機レスポンスが送られてくると、内部バス4を開放し、待機状態となる。内部バス4が開放されると、バスアービタ3は、バス使用要求を出力しているマスタ装置1−2,1−3の内、優先順位が高いマスタ装置1−2にバス使用権を与える。マスタ装置1−2は、バス使用権を獲得すると、スレーブ装置2−1に対してライト要求W21を送信する。
スレーブ装置2−1内のライト要求元管理手段203は、要求種別判定手段201を介してライト要求W21を受信すると(図11のステップS1111がNO)、ライト要求W21が最初のライト要求ではなく(ステップS1301がNO)、且つ、ライト処理手段22がライト処理を実行中でないので(ステップS1303がNO)、モード設定手段29に設定されている動作モードを調べる(ステップS1304)。この場合、「第1モード」が設定されているので、ライト要求元管理手段203は、ライト用読み出し位置保持部207が指し示している、ライト用マスタ番号保持レジスタ24中のエントリ#0から優先マスタ装置のマスタ番号M2を取得し(図20(D)参照)、ライト要求W21中のマスタ番号M2と比較する(ステップS1307)。この場合、両者が一致するので、ライト要求元管理手段203は、ライト要求W21をライト処理手段22に渡す(ステップS1308)。これにより、ライト処理手段22は、前述した図18のステップS181〜S185の処理を実行し、マスタ装置1−2から送られてきたデータをメモリに書き込む。また、ライト要求元管理手段203は、ステップS1308を実行後、ライト用読み出し位置保持部207に格納されているエントリ番号「0」を+1し、「1」に更新する(ステップS1309)。これにより、ライト用読み出し位置保持部207が指し示す読み出し位置Rは、図20(E)に示すように、エントリ#0からエントリ#1に変更される。即ち、優先マスタ装置が、マスタ装置1−2からマスタ装置1−1に変更される。
ライトデータの転送処理を終えたマスタ装置1−2が内部バス4を開放すると、マスタ装置1−3がバス使用権を獲得し、スレーブ装置2−1に対してライト要求W31を出力する。
スレーブ装置2−1内のライト要求元管理手段203は、要求種別判定手段201を介してライト要求W31を受け取ると(図11のステップS1111がNO)、ライト要求W31が最初のライト要求ではなく(図13のステップS1301がNO)、且つライト処理手段22がライト処理を実行中であるので(ステップS1303がYES)、前述したステップS1310〜S1313の処理を行う。この結果、ライト用マスタ番号保持レジスタ24に内容、ライト用格納位置保持部206が指し示す格納位置W、及びライト用読み出し位置保持部207が指し示す読み出し位置Rは、図20(F)に示すものとなる。
その後、ライト処理手段22がライト要求W21に対する処理を完了すると、ライト要求元管理手段203は、前述した図15のステップS151〜S153の処理を行う。これにより、待機中のマスタ装置1−1,1−3に対して待機解除通知が送られ、ライト用格納位置保持部206が指し示す書き込み位置が、図20(G)に示すように、エントリ#3からエントリ#2に変更される。
〔第2モードの動作〕
今、例えば、3台のマスタ装置1−1,1−2,1−3において、動作モードが「第2モード」となっているスレーブ装置2−2に対するリード要求R11,R21,R31が同時に発生したとする。各マスタ装置1−1〜1−3内の制御手段11は、バスアービタ3にバス使用要求を送り、バスアービタ3は最も優先順位の高いマスタ装置1−1にバス使用権を与える。
マスタ装置1−1は、バス使用権を獲得すると、スレーブ装置2−2に対してリード要求R11を送信する(図7参照)。このリード要求R11には、マスタ番号M1,スレーブ番号SL2,リードアドレスが含まれている。
スレーブ装置2−2内の要求種別判定手段201は、マスタ装置1−1からの処理要求がリード要求であることを認識すると(図11のステップS1111がYES)、リード要求R11をリード要求元管理手段202に渡す。
リード要求元管理手段202は、要求種別判定手段201からリード要求R11が渡されると、それが電源投入後に最初に入力されたリード要求であるか否かを判断する(ステップS1112)。今、リード要求R11が電源投入後に最初に入力されたリード要求であるとすると、リード要求元管理手段202は、リード要求R11をリード処理手段21に渡す(ステップS1112がYES,S1113)。
リード処理手段21は、リード要求R11が渡されると、前述した図16のフローチャートのステップS161〜165に示す処理を実行し、リード要求R11によって要求されたデータをメモリから読み出し、リードバッファ28に格納する。なお、リード処理手段21において上述した処理が行われている間も、リード要求元管理手段202において以下の処理が並行して行われている。
リード要求元管理手段202は、図11のステップS1113においてリード処理手段21にリード要求R11を渡すと、リード用格納位置保持部204からマスタ番号の格納位置(初期状態においてはエントリ番号「0」になっている)を取得する(ステップS1114)。
リード要求元管理手段202は、リード用格納位置保持部204からエントリ番号「0」を取得すると、リード用マスタ番号保持レジスタ23のエントリ番号「0」のエントリ#0にリード要求元のマスタ装置1−1のマスタ番号M1を書き込む(ステップS1115)。その後、リード要求元管理手段202は、リード用格納位置保持部204に保持されているエントリ番号「0」を+1し、「1」にする(ステップS1116)。この時点でのリード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が示すマスタ番号の格納位置W、及びリード用読み出し位置保持部205が示すマスタ番号の読み出し位置Rは、図21(A)に示すものとなる。その後、リード要求元管理手段202は、リード要求元のマスタ装置1−1に待機レスポンスを返す(ステップS1117)。
マスタ装置1−1は、待機レスポンスを受信すると、内部バス4を開放し、待機状態となる。内部バス4が開放されると、バスアービタ3は、バス使用要求を出力しているリード要求R21,R31の内、優先順位の高いマスタ装置1−2にバス使用権を与える。マスタ装置1−2は、バス使用権を獲得すると、内部バス4にリード要求R21を出力する。このリード要求R21には、マスタ装置1−2のマスタ番号M2と、スレーブ装置2−2のスレーブ番号SL2と、リードアドレスとが含まれている。
スレーブ装置2−2内の要求種別判定手段201は、マスタ装置1−2が内部バス4上に出力したリード要求R21を取り込むと(S1111がYES)、それをリード要求元管理手段202に渡す。
リード要求元管理手段202は、リード要求R21が最初のリード要求でないので(ステップS1112がNO)、リード処理フラグレジスタ25を参照することにより、リード処理手段21がリード処理を実行中であるか否かを調べる(ステップS1118)。この時点で、リード処理手段21によるリード要求R11の処理が完了していないとすると、ステップS1118の判断結果がYESとなるので、リード要求元管理手段202は、前述したステップS1114〜S1117の処理を行う。この結果、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、及びリード用読み出し位置保持部205が指し示す読み出し位置Rは、図21(B)に示すものとなる。また、リード要求R21の要求元のマスタ装置1−2も待機状態となる。
その後、マスタ装置1−3がバス使用権を獲得し、内部バス4にリード要求R31(マスタ装置1−3のマスタ番号M3と、スレーブ装置2−2のスレーブ番号SL2と、リードアドレスとを含む)を出力すると、スレーブ装置2−2内の要求種別判定手段201がリード要求R31を取り込み、それをリード要求元管理手段202に渡す(ステップS1111がYES)。
リード要求元管理手段202は、リード要求R31が最初のリード要求でないので(ステップS1112がNO)、リード処理フラグレジスタ25を参照することにより、リード処理手段21がリード処理を実行中であるか否かを調べる(ステップS1118)。この時点で、リード処理手段21によるリード要求R11の処理が完了していないとすると、ステップS1118の判断結果がYESとなるので、リード要求元管理手段202は、前述したステップS1114〜S1117の処理を行う。この結果、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、及びリード用読み出し位置保持部205が指し示す読み出し位置Rは、図21(C)に示すものとなる。また、リード要求R21の要求元のマスタ装置1−2も待機状態となる。
その後、リード処理手段21がリード要求R11に対する処理を完了し、リード要求元管理手段202に対してリード処理の完了を通知したとする。
リード要求元管理手段202は、リード処理手段21からリード処理の完了が通知されると、前述した図14のフローチャートのステップS141〜143の処理を行い、優先マスタ装置1−1に対して待機解除通知を送る。
優先マスタ装置1−1待機解除通知を受信すると、バスアービタ3に対してバス使用要求を送り、バスアービタ3によってバス使用権を獲得すると、待機中のリード要求R11を内部バス4に出力する。
スレーブ装置2−2内の要求種別判定手段201は、マスタ装置1−1からのリード要求R11をリード要求元管理手段202に渡す(図11のステップS1111がYES)。リード要求元管理手段202は、リード要求R11が渡されると、それが最初のリード要求でないので、リード処理フラグレジスタ25を参照し、リード処理手段21がリード処理を実行しているか否かを調べる(ステップS1118)。この例では、リード処理手段21は、リード要求R11に対する処理を既に完了し、リード処理フラグレジスタ25中のリード処理フラグを“0”にしているので、ステップS1118の判断結果はNOとなる。
ステップS1118の判断結果がNOとなると、「第3モード」でないので(ステップS1118-1がNO)、リード要求元管理手段202は、リード用マスタ番号保持レジスタ23のエントリの内の、リード用読み出し位置保持部205が指し示しているエントリから優先マスタ装置のマスタ番号を読み込む(ステップS1119,S1120)。この時点では、リード用読み出し位置保持部205にはエントリ番号「0」が登録され、また、リード用マスタ番号保持レジスタ23の内容は図21(C)に示すものであるので、リード要求元管理手段202は、優先マスタ装置のマスタ番号として「M1」を取得することになる。
その後、リード要求元管理手段202は、ステップS1120で取得した優先マスタ装置のマスタ番号「M1」と、要求種別判定手段201から渡されたリード要求R11中のマスタ番号とが一致するか否かを調べる(ステップS1121)。この例の場合、リード要求R11に含まれているマスタ番号は「M1」であるので、ステップS1121の判断結果はYESとなる。ステップS1121の判断結果がYESとなると、リード要求元管理手段202は、リードバッファ有効フラグレジスタ211を参照することにより、リードバッファ28に有効なリードデータが格納されているか否かを調べる(ステップS1122)。この例の場合、リードバッファ有効フラグレジスタ211中のリードバッファ有効フラグは、“1”となっており、有効なリードデータが格納されていることを示しているので(ステップS1122がYES)、リード要求元管理手段202はリード処理手段21に対してリードデータの転送を指示した後、リードバッファ有効フラグを“0”とし、リードバッファ28に有効なリードデータが格納されていないことを表示する(ステップS1123,S1124)。
一方、リード処理手段21は、リード要求元管理手段202から転送指示が入力されると、図17のフローチャートに示すように、リードバッファ28に格納されているリードデータをマスタ装置1−1へ転送する(ステップS171)。また、マスタ装置1−1内の制御手段11は、リードデータを受信すると、内部バス4を開放する。
リード要求元管理手段202は、図11のステップS1124の処理が終了すると、図12のフローチャートに示す処理を行う。ステップS120では、モード設定手段29によって設定されている動作モードが、「第1モード」,「第2モード」,「第3モード」の何れであるかを調べる。この例の場合、モード設定手段29には、動作モードとして「第2モード」が設定されているので、ステップS124〜S126の処理を行う。ステップS124では、リード用読み出し位置保持部205に保持されているエントリ番号「0」を+1して「1」の変更し、ステップS125では、リード用マスタ番号保持レジスタ23のエントリ#1から優先マスタ装置1−2のマスタ番号M2を入力し、ステップS126では、優先マスタ装置1−2に待機解除通知を送る。この時点での、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、及びリード用読み出し位置保持部205が指し示すリード位置Rは、図21(D)に示すものとなる。即ち、上記したステップS124の処理を行うことにより、優先マスタ装置のマスタ番号が「M1」から「M2」に変更されることになる。
一方、待機解除通知を受信したマスタ装置1−2及び既に待機解除されているマスタ装置1−1は、バスアービタ3に対してバス使用要求を出力し、バスアービタ3は、優先順位が最も高いマスタ装置1−1にバス使用権を与える。マスタ装置1−1は、バス使用権を獲得すると、リード要求R12を内部バス4に出力する。
スレーブ装置2−2内の要求種別判定手段201は、リード要求R12をリード要求元管理手段202に渡す(図11のステップS1111がYES)。リード要求元管理手段202は、リード要求R12が最初のリード要求でもなく(ステップS1112がNO)、リード処理手段21がリード処理を実行中でもなく(ステップS1118がNO)、動作モードが「第3モード」でもないので(ステップS1118-1がNO)、リード用マスタ番号保持レジスタ23のエントリ番号「1」のエントリ#1に登録されている優先マスタ装置のマスタ番号M2と、リード要求R12中のマスタ番号M1とを比較する(ステップS1119〜S1121)。この例の場合、両者が不一致なので(ステップS1121がNO)、リード要求元管理手段202は、前述したステップS1114〜S1117の処理を行う。これにより、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、およびリード用読み出し位置保持部205が指し示す読み出し位置Rは、図21(E)に示すものとなる。また、リード要求元のマスタ装置1−1に待機レスポンスが返される。マスタ装置1−1は、待機レスポンスが返されると、内部バス4を開放し、待機状態となる。
その後、待機解除状態にあるマスタ装置1−2がバス使用権を獲得し、リード要求R21をスレーブ装置2−2に送信する。
スレーブ装置2−2内の要求種別判定手段201は、マスタ装置1−2からのリード要求R21をリード要求元管理手段202に渡す(図11のステップS1111がYES)。リード要求元管理手段202は、リード要求R21が最初のリード要求でもなく(ステップS1112がNO)、リード処理手段21がリード処理中でもなく(ステップS1118がNO)、「第3モード」でもないので(ステップS1118-1がNO)、リード用マスタ番号保持レジスタ23のエントリ番号「1」のエントリ#1の格納されている優先マスタ装置のマスタ番号M2とリード要求21中のマスタ装置M2とを比較する(ステップS1119〜S1121)。この例の場合、両者が共に「M2」であるので(ステップS1121がYES)、リード要求元管理手段202は、リードバッファ有効フラグレジスタ211を参照し、リードバッファ28に有効なリードデータが格納されているか否かを調べる(ステップS1122)。この例の場合、リードバッファ有効フラグは“0”となっており、リードバッファ28に有効なデータが格納されていないことを示しているので(ステップS1122)、リード要求元管理手段202は、リード要求R21をリード処理手段21に渡した後(ステップS1113)、ステップS1114〜S1117の処理を行う。
リード処理手段21は、リード要求R21が渡されると、前述した図16のフローチャートに示す処理を行う。また、ステップS1114〜S1116の処理が行われることにより、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、およびリード用読み出し位置保持部205が指し示す読み出し位置Rは、図21(F)に示すものとなる。また、ステップS1117の処理が行われることにより、マスタ装置1−2に待機レスポンスが返される。マスタ装置1−2は、待機レスポンスが返されると、内部バス4を開放し、待機状態となる。
そのリード処理手段21がリード要求R21に従った処理を完了すると、リード要求元管理手段202は、優先マスタ装置1−2に待機解除通知を送信する(図14のステップS141〜S143)。これにより、マスタ装置1−2は、バスアービタ3にバス使用要求を送り、バスアービタ3の調停によってバス使用権を獲得すると、待機中のリード要求R21をスレーブ装置2−2へ送信する。
スレーブ装置2−2内の要求種別判定手段201は、リード要求R21をリード要求元管理手段202に渡す(図11のステップS1111がYES)。リード要求元管理手段202は、リード要求R21が最初のリード要求でなく(ステップS1112がNO)、リード処理手段21がリード処理を実行中でなく(ステップS1118がNO)、「第3モード」でないので(ステップS1118-1がNO)、リード用マスタ番号保持レジスタ23のエントリ#1から優先マスタ装置1−2のマスタ番号M2を入力し、リード要求R21中のマスタ番号M2と一致するか否かを調べる(ステップS1121)。この例の場合、両者は一致するので、リード要求元管理手段202は、リードバッファ有効フラグレジスタ211を参照することにより、リードバッファ28に有効なデータが格納されていか否かを調べる(ステップS1122)。この時点では、リードバッファ有効フラグが“1”がなっているので、リード要求元管理手段202は、リード処理手段21に対してリードデータの転送を指示した後、リードバッファ有効フラグを“0”に変更する(ステップS1123,S1124)。
リード処理手段21は、リードデータの転送が指示されると、リードバッファ28に格納されているデータをマスタ装置1−2へ転送する(図17のステップS171)。
一方、リード要求元管理手段202は、図11のステップS1124の処理が終了すると、図12のステップS120,S124〜S126の処理を行う。これにより、リード用読み出し位置保持部205が指し示す優先マスタ装置のマスタ番号が、図21(G)に示すように、「M2」から「M3」に更新されると共に、優先マスタ装置1−3に待機解除通知が送られる。
マスタ装置1−3は、待機解除通知を受信すると、バスアービタ3にバス使用要求を送り、バスアービタ3の調停によってバス使用権を獲得すると、待機中のリード要求R31をスレーブ装置2−2へ送信する。
スレーブ装置2−2内の要求種別判定手段201は、リード要求R31を受信すると、それをリード要求元管理手段202に渡す(図11のステップS1111がYES)。リード要求元管理手段202は、リード要求R31が渡されると、それが最初のリード要求でなく(ステップS1112がNO)、リード処理手段21がリード処理を実行中でなく(ステップS1118がNO)、「第3モード」でないので(ステップS1118-1がNO)、リード要求R31中のマスタ番号M3と、リード用読み出し位置保持部205が指し示している優先マスタ装置のマスタ番号とが一致しているか否かを調べる(ステップS1119〜S1121)。この場合、リード用読み出し位置保持部205は、図21(G)に示すようにリード用マスタ番号保持レジスタ23のエントリ#2を指し示しており、このエントリ#2にはマスタ番号「M3」が登録されているので、両者は一致する。そして、両者が一致することを認識すると、リード要求元管理手段202は、リードバッファ有効フラグレジスタ211を参照することによりリードバッファ28に有効なデータが格納されているか否かを調べる(ステップS1122)。この場合、リードバッファ有効フラグは“0”となっているので、リード要求元管理手段202は、前述したステップS1113〜S1117の処理を行う。これにより、リード用マスタ番号保持レジスタ23に内容、リード用格納位置保持部204が指し示す格納位置W、及びリード用読み出し位置保持部205が指し示す読み出し位置Rは、図21(H)に示すものとなり、また、マスタ装置1−3に待機レスポンスが送られ、マスタ装置1−3は、内部バス4を開放し、待機状態となる。
その後、リード処理手段21がリード要求R31に従った処理を完了すると、リード要求元管理手段202は、図14のフローチャートのステップS141〜S143の処理を行い、優先マスタ装置1−3に待機解除を送信する。これにより、マスタ装置1−3は、バスアービタ3にバス使用要求を出力し、バスアービタ3の調停によってバス使用権を獲得すると、待機中のリード要求R31をスレーブ装置2−2へ送信する。
スレーブ装置2−2内のリード要求元管理手段202は、要求種別判定手段201を介してリード要求R31を受け取ると(図11のステップS1111がYES)、リード要求R31は最初のリード要求でなく(ステップS1112がNO)、リード処理手段21がリード処理を実行しておらず(ステップS1118がNO)、「第3モード」でないので(ステップS1118-1がNO)、リード用読み出し位置保持部205によって指し示されている優先マスタ装置のマスタ番号とリード要求R31中のマスタ番号M3とを比較する(ステップS1121)。この場合、図21(H)に示すように、リード用読み出し位置保持部205は、エントリ#2を指し示しており、このエントリ#2にはマスタ番号M3が格納されている。従って、ステップS1121の判断結果がYESとなるので、リード要求元管理手段202は、リードバッファ有効フラグレジスタ211を参照することにより、リードバッファ28に有効なデータが格納されているか否かを調べる(ステップS1122)。この場合、リードバッファ有効フラグは“1”になっているので(ステップS1122がYES)、リード要求元管理手段202は、リード処理手段21に対してデータの転送を指示した後、リードバッファ有効フラグを“0”に変更する(ステップS1123,S1124)。
リード処理手段21は、データの転送が指示されると、リードバッファ28に格納されているデータをマスタ装置1−3へ転送する(図17のステップS171)。これにより、マスタ装置1−3は内部バス4を開放する。
一方、スレーブ装置2−2内のリード要求元管理手段202は、図11のステップS1124の処理が終了すると、図12のステップS120,S124〜S126の処理を行う。これにより、図20(I)に示すように、リード用読み出し位置保持部205が指し示す優先マスタ装置のマスタ番号が「M3」から「M1」に変更され、新たな優先マスタ装置1−1に待機解除通知が送られる。
次に、3台のマスタ装置1−1,1−2,1−3において、同時にスレーブ装置2−2に対するライト要求W11,W21,W31が発生した場合を例にとって、動作モードが「第2モード」の時の動作を説明する。
マスタ装置1−1〜1−3は、ライト要求W11,W21,W31が発生すると、バスアービタ3にバス使用要求を送り、バスアービタ3は、最も優先順位が高いマスタ装置1−1にバス使用権を与える。
マスタ装置1−1内の制御手段11は、バス使用権を獲得すると、内部バス4上へライト要求W11を出力する(図8参照)。
スレーブ装置2−2内のライト要求元管理手段203は、要求種別判定手段201を介してライト要求W11を受信すると(図11のステップS1111がNO)、それが電源投入後に渡された最初のライト要求であるか否かを判断する(図13のステップS1301)。今、例えば、ライト要求W11が最初のライト要求であるとすると(ステップS1301がYES)、ライト要求元管理手段203は、ライト要求W11をライト処理手段22に渡す(ステップS1302)。
ライト処理手段22はライト要求W11が渡されると、前述した図18のステップS181〜185の処理を実行し、マスタ装置1−1から送られてきたライトデータをメモリに書き込む。また、マスタ装置1−1は、ライトデータの転送処理が完了すると、内部バス4を開放する。
マスタ装置1−1がバスを開放すると、バスアービタ3は、バス使用要求を出力しているマスタ装置1−2,1−3の内、優先順位が高いマスタ装置1−2にバス使用権を与える。バス使用権を獲得したマスタ装置1−2は、ライト要求W21を内部バス4に出力する。
スレーブ装置2−2内のライト要求元管理手段203は、要求種別判定手段201を介してライト要求W21を受信すると(図11のステップS1111がNO)、ライト要求W21が最初のライト要求でなく(図13のステップS1301がNO)、且つライト処理手段22がライト処理を実行中であるので(ステップS1303がYES)であるので、前述したステップS1310〜S1313の処理を実行する。この結果、ライト用マスタ番号保持レジスタ24の内容、ライト用格納位置保持部206が指し示す格納位置W、およびライト用読み出し位置保持部207が指し示す読み出し位置Rは、図22(A)に示すものとなる。その後、ライト要求元管理手段203は、ライト要求W21の要求元のマスタ装置1−2に待機レスポンスを返す(ステップS1313)。
これにより、マスタ装置1−2は、内部バス4を開放し、待機状態となる。また、内部バス4が開放されることにより、マスタ装置1−3がバス使用権を獲得し、ライト要求W31を内部バス4に出力する。
スレーブ装置2−2内のライト要求元管理手段203は、要求種別判定手段201を介してライト要求W31を受信すると(図11のステップS1111がNO)、ライト要求W31が最初のライト要求でなく(図13のステップS1301がNO)、且つ、ライト処理手段22がライト処理を実行中なので(ステップS1303がYES)、前述したステップS1310〜S1313の処理を行う。これにより、ライト用マスタ番号保持レジスタ24の内容、ライト用格納位置保持部206が指し示す格納位置W、ライト用読み出し位置保持部207が指し示す書き込み位置Rは、図22(B)に示すものとなる。また、マスタ装置1−3に待機レスポンスが返される。マスタ装置1−3は、待機レスポンスが返されると、内部バス4を開放し、待機状態となる。
その後、ライト処理手段22がライト要求W11に従ったライト処理を完了し、ライト要求元管理手段203に対してライト処理完了を通知したとする(図18のステップS185)。
ライト要求元管理手段203は、ライト処理手段22からライト処理完了が通知されると、図15のフローチャートに示す処理を行う。ライト要求元管理手段203は、ステップS151において、モード設定手段29によって設定されている動作モードが「第2モード」であることを認識すると、ライト用読み出し位置保持部207に格納されているエントリ番号「0」に基づいて、ライト用マスタ番号保持レジスタ24のエントリ#0から優先マスタ装置のマスタ番号M2を入力し(ステップS154,S155)、上記マスタ番号M2によって特定されるマスタ装置1−2に待機解除通知を送信する(ステップS156)。
その後、マスタ装置1−1において、第2番目のライト要求W12が発生したとする。マスタ装置1−1及び待機解除通知を受信したマスタ装置1−2は、バスアービタ3に対してバス使用要求を送信し、バスアービタ3は優先順位が高いマスタ装置1−1にバス使用権を与える。マスタ装置1−1は、バス使用権を獲得すると、ライト要求W12をスレーブ装置2−2へ送信する。
スレーブ装置2−2内のライト要求元管理手段203は、要求種別判定手段201を介してマスタ装置1−1からのライト要求W12を受け取ると(図11のステップS1111がNO)、それが最初のライト要求でなく(ステップS1301がNO)、且つ、ライト処理手段22がライト処理を実行していないので(ステップS1303がNO)、現在の動作モードを調べる(ステップS1304)。この例の場合、モード設定手段29は、動作モードとして「第2モード」を設定しているので、ライト要求元管理手段203は、ライト用読み出し位置保持部207に格納されているエントリ番号「0」が指し示しているライト用マスタ番号保持レジスタ24のエントリ#0から優先マスタ装置のマスタ番号M2を取得する(ステップS1305,S1306)。その後、ライト要求元管理手段203は、ステップS1306で取得したマスタ番号M2とライト要求W12の要求元のマスタ番号M1とが不一致であるので、前述したステップS1310〜1313の処理を行う。この結果、ライト用マスタ番号保持レジスタ24の内容、ライト用格納位置保持部206が指し示す格納位置W、及びライト用読み出し位置保持部207が指し示す読み出し位置Rは、図22(C)に示すものとなる。また、ライト要求元のマスタ装置1−1へ待機レスポンスが送られる。
マスタ装置1−1は、待機レスポンスが送られてくると、内部バス4を開放し、待機状態となる。内部バス4が開放されると、待機解除状態にあるマスタ装置1−2がバス使用権を獲得し、スレーブ装置2−2に対してライト要求W21を送信する。
スレーブ装置2−2内のライト要求元管理手段203は、要求種別判定手段201を介してライト要求W21を受信すると(図11のステップS1111がNO)、ライト要求W21が最初のライト要求ではなく(ステップS1301がNO)、且つ、ライト処理手段22がライト処理を実行中でないので(ステップS1303がNO)、モード設定手段29に設定されている動作モードを調べる(ステップS1304)。この場合、「第2モード」が設定されているので、ライト要求元管理手段203は、ライト用読み出し位置保持部207が指し示している、ライト用マスタ番号保持レジスタ24中のエントリ#0から優先マスタ装置のマスタ番号M2を取得し(図22(C)参照)、ライト要求W21中のマスタ番号M2と比較する(ステップS1307)。この場合、両者が一致するので(ステップS1307がYES)、ライト要求元管理手段203は、ライト要求W21をライト処理手段22に渡す(ステップS1308)。これにより、ライト処理手段22は、前述した図18のステップS181〜S185の処理を実行し、マスタ装置1−2から送られてきたデータをメモリに書き込む。また、ライト要求元管理手段203は、ステップS1308を実行後、ライト用読み出し位置保持部207に格納されているエントリ番号「0」を+1し、「1」に更新する(ステップS1309)。これにより、ライト用読み出し位置保持部207が指し示す読み出し位置Rは、図22(D)に示すように、エントリ#0からエントリ#1に変更される。
その後、ライト処理手段22がライト要求W21に対するライト処理を完了すると、前述した図15のステップS151,S154〜S156の処理を行う。これにより、優先マスタ装置1−3に待機解除通知が送られる。待機解除通知を受けたマスタ装置1−3は、バス使用権を獲得した後、ライト要求W31をスレーブ装置2−2へ送信する。
スレーブ装置2−2内のライト要求元管理手段203は、要求種別判定手段201を介してライト要求W31を受信すると(図11のステップS1111がNO)、ライト要求W31が最初のライト要求ではなく(図13のステップS1301がNO)、ライト処理手段22がライト処理を実行中でなく(ステップS1303がNO)、且つ動作モードが「第2モード」であるので(ステップS1304)、ライト用読み出し位置保持部207が指し示しているライト用マスタ番号保持レジスタ24のエントリ#1に格納されている優先マスタ装置のマスタ番号M3(図22(D)参照)と、ライト要求W31中のマスタ番号M3とを比較する(ステップS1305〜S1307)。この場合、両者が一致するので(ステップS1307がYES)、ライト要求元管理手段203は、マスタ装置1−3からのライト要求W31をライト処理手段22に渡す(ステップS1308)。ライト要求を渡されたライト処理手段22は、前述した図18のフローチャートに示す処理を実行する。また、ライト要求元管理手段203は、ステップS1308を実行後、ライト用読み出し位置保持部207に格納されているエントリ番号「1」を+1し、「2」に更新する(ステップS1309)。この結果、ライト用読み出し位置保持部207が指し示す読み出し位置Rは、図22(E)に示すように、エントリ#1からエントリ#2に変更される。即ち、マスタ番号M1のマスタ装置1−1が新たな優先マスタとなる。
〔第3モードの動作〕
今、例えば、3台のマスタ装置1−1,1−2,1−3において、動作モードが「第3モード」となっているスレーブ装置2−3に対するリード要求R11,R21,R31が発生したとする。各マスタ装置1−1〜1−3は、バスアービタ3にバス使用要求を送り、バスアービタ3は、最も優先順位が高いマスタ装置1−1にバス使用権を与える。マスタ装置1−1は、バス使用権を獲得すると、内部バス4上にリード要求R11を出力する(図9参照)。
スレーブ装置2−3内のリード要求元管理手段202は、要求種別判定手段201を介してリード要求R11を受信すると(図11のステップS1111がYES)、それが電源投入後に最初に入力されたリード要求であるか否かを判断する(ステップS1112)。今、リード要求R11が電源投入後に最初に入力されたリード要求であるとすると、リード要求元管理手段202は、リード要求R11をリード処理手段21に渡す(ステップS1112がYES,S1113)。リード処理手段21は、リード要求R11が渡されると、前述した図16のフローチャートに示す処理を実行する。
リード要求元管理手段202は、ステップS1113を実行後、前述したステップS1114〜S1116の処理を行う。これにより、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が示すマスタ番号の格納位置W、及びリード用読み出し位置保持部205が示すマスタ番号の読み出し位置Rは、図23(A)に示すものとなる。その後、リード要求元管理手段202は、リード要求元のマスタ装置1−1に待機レスポンスを返す(ステップS1117)。
マスタ装置1−1は、待機レスポンスを受信すると、内部バス4を開放し、待機状態となる。内部バス4が開放されると、バスアービタ3が、バス使用要求を出力しているマスタ装置1−2,1−3の内、優先順位の高いマスタ装置1−2にバス使用権を与える。マスタ装置1−2は、バス使用権を獲得すると、内部バス4にリード要求R21を出力する。
スレーブ装置2−3内のリード要求元管理手段202は、要求種別判定手段201を介してリード要求R21を受信すると(S1111がYES)、リード要求R21が最初のリード要求でなく(ステップS1112がNO)、且つリード処理手段21がリード処理を実行中であるので(ステップS1118がYES)、前述したステップS1114〜S1117の処理を行う。この結果、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、及びリード用読み出し位置保持部205が指し示す読み出し位置Rは、図23(B)に示すものとなる。また、リード要求R21の要求元のマスタ装置1−2も待機状態となる。
その後、マスタ装置1−3がバス使用権を獲得し、内部バス4にリード要求R31を出力すると、スレーブ装置2−3内の要求種別判定手段201がリード要求R31を取り込み、それをリード要求元管理手段202に渡す(ステップS1111がYES)。
リード要求元管理手段202は、リード要求R31が最初のリード要求でなく(ステップS1112がNO)、且つ、リード処理手段21がリード処理中なので(ステップS1118がYES)、前述したステップS1114〜S1117の処理を行う。この結果、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、及びリード用読み出し位置保持部205が指し示す読み出し位置Rは、図23(C)に示すものとなる。また、リード要求R31の要求元のマスタ装置1−3も待機状態となる。
その後、リード処理手段21がリード要求R11に対する処理を完了し、リード要求元管理手段202に対してリード処理の完了を通知したとする。
リード要求元管理手段202は、リード処理手段21からリード処理の完了が通知されると、図14のフローチャートに示す処理を行い、優先マスタ装置1−1に待機解除通知を送信する。優先マスタ装置1−1は、待機解除通知を受信すると、バス使用権を獲得後、リード要求R11を内部バス4に出力する。
スレーブ装置2−3内のリード要求元管理手段202は、要求種別判定手段201を介してマスタ装置1−1からのリード要求R11を受信すると(図11のステップS1111がYES)、リード要求R11が最初のリード要求ではなく(ステップS1112がNO)、リード処理手段21がリード処理を実行中でないので(ステップS1118がNO)、動作モードが「第3モード」であるか否かを調べる(ステップS1118-1)。この場合、「第3モード」なので、リードバッファ28に有効なデータが格納されているか否かを調べる(ステップS1118-2)。この場合、有効なデータが格納されているので(ステップS1118-2がYES)、リード要求元管理手段202はリード処理手段21に対してリードデータの転送を指示した後、リードバッファ有効フラグを“0”とする(ステップS1123,S1124)。
一方、リード処理手段21は、リード要求元管理手段202から転送指示が入力されると、リードバッファ28に格納されているリードデータをマスタ装置1−1へ転送する(図17のステップS171)。また、マスタ装置1−1は、リードデータを受信すると、内部バス4を開放する。
リード要求元管理手段202は、図11のステップS1124の処理が終了すると、図12のフローチャートに示す処理を行う。リード要求元管理手段202は、ステップS120で、動作モードが「第3モード」であることを認識すると、待機中のマスタ装置1−2,1−3に待機解除通知を送信する(ステップS127)。その後、リード要求元管理手段202は、リード用格納位置保持部204とリード用読み出し位置保持部205に同一のエントリ番号(本実施の形態では「0」とする)を格納する(ステップS128)。これにより、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、及びリード用読み出し位置保持部205が指し示すリード位置Rは、図23(D)に示すものとなる。即ち、上記したステップS128の処理を行うことにより、リード用マスタ番号保持レジスタ23に格納されていた全てのマスタ番号が削除されることになる。
一方、待機解除通知を受信したマスタ装置1−2,1−3及び既に待機解除されているマスタ装置1−1は、バスアービタ3に対してバス使用要求を出力し、バスアービタ3は、優先順位が最も高いマスタ装置1−1にバス使用権を与える。マスタ装置1−1は、バス使用権を獲得すると、リード要求R12を内部バス4に出力する。
スレーブ装置2−3内のリード要求元管理手段202は、要求種別判定手段201を介してリード要求R12を受信すると(ステップS1111がYES)、リード要求R12が最初のリード要求でもなく(ステップS1112がNO)、リード処理手段21がリード処理を実行中でもないので(ステップS1118がNO)、動作モードが「第3モード」か否かを調べる(ステップS1181-1)。この場合、「第3モード」なので、リードバッファ28に有効なデータが格納されているか否かを調べる(ステップS1181-2)。この場合、有効なデータが格納されていないので、ステップS1113〜S1117の処理を行う。これにより、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、およびリード用読み出し位置保持部205が指し示す読み出し位置Rは、図23(E)に示すものとなる。また、リード要求元のマスタ装置1−1に待機レスポンスが返される。マスタ装置1−1は、待機レスポンスが返されると、内部バス4を開放し、待機状態となる。
その後、バスアービタ3が、バス使用要求を出力しているマスタ装置1−2,1−3のうち、優先順位が高いマスタ装置1−2にバス使用権を与える。マスタ装置1−2は、バス使用権を獲得すると、リード要求R21をスレーブ装置2−3に送信する。
スレーブ装置2−3内のリード要求元管理手段202は、要求種別判定手段201を介してリード要求R21を受信すると(ステップS1111がYES)、それが最初のリード要求でなく(ステップS1112がNO)、且つ、リード処理手段21がリード処理中なので(ステップS1118がYES)、前述したステップS1114〜S1117の処理を行う。これにより、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、及びリード用読み出し位置保持部205が指し示す読み出し位置Rは、図23(F)に示すものとなる。また、マスタ装置1−2へ待機レスポンスが返され、マスタ装置1−2は内部バス4を開放し、待機状態となる。
内部バス4が開放されると、待機状態になっていないマスタ装置1−3がバス使用権を獲得し、リード要求R31をスレーブ装置2−3に対して出力する。
スレーブ装置2−3内のリード要求元管理手段202は、要求種別判定手段201を介してリード要求R31を受信すると(ステップS1111がYES)、それが最初のリード要求でなく(ステップS1112がNO)、且つ、リード処理手段21がリード処理を実行中なので(ステップS1118がYES)、前述したステップS1114〜S1117の処理を行う。この結果、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、およびリード用読み出し位置保持部205が指し示す読み出し位置Rは、図23(G)に示すものとなる。また、リード要求元のマスタ装置1−3へ待機レスポンスが返される。
その後、リード処理手段21が、マスタ装置1−1から送られてきたリード要求R12に従ったリード処理を完了し、リード要求元管理手段202に対してリード処理の完了を通知すると、リード要求元管理手段202は、図14のステップS141〜S143の処理を行い、優先マスタ装置1−1に待機解除通知を返す。これにより、マスタ装置1−1は、バス使用権を獲得した後、リード要求R12をスレーブ装置2−3へ送信する。
スレーブ装置2−3内のリード要求元管理手段202は、要求種別判定手段201を介してマスタ装置1−1からのリード要求R12を受信すると、ステップS1112がNO、ステップS1118がNO、ステップS1118-1がYES、ステップS1118-2がYESとなるので、リード処理手段21に対してリードデータの転送を指示した後、リードバッファ有効フラグを“0”に変更する(ステップS1123,S1124)。リード処理手段21は、転送指示が与えられると、リードバッファ28に格納されているリードデータをマスタ装置1−1へ転送する(図17のステップS171)。一方、リード要求元管理手段202は、ステップS1124の処理を行った後、図12のステップS120,S127,S128の処理を行う。これにより、リード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、及びリード用読み出し位置保持部205が指し示す読み出し位置Rは、図23(H)に示すものとなる。即ち、リード用マスタ番号保持レジスタ23に格納されているマスタ番号は、全て消去されたことになる。
次に、3台のマスタ装置1−1,1−2,1−3において、同時にスレーブ装置2−3に対するライト要求W11,W21,W31が発生した場合を例に挙げて、動作モードが「第3モード」の時の動作を説明する。
マスタ装置1−1〜1−3は、ライト要求W11,W21,W31が発生すると、バスアービタ3にバス使用要求を送り、バスアービタ3は、最も優先順位が高いマスタ装置1−1にバス使用権を与える。マスタ装置1−1は、バス使用権を獲得すると、内部バス4上へライト要求W11を出力する(図10参照)。
スレーブ装置2−3内のライト要求元管理手段203は、要求種別判定手段201を介してライト要求W11を受信すると(図11のステップS1111がNO)、それが電源投入後に渡された最初のライト要求であるか否かを判断する(図13のステップS1301)。今、例えば、ライト要求W11が最初のライト要求であるとすると(ステップS1301がYES)、ライト要求元管理手段203は、ライト要求W11をライト処理手段22に渡す(ステップS1302)。
ライト処理手段22はライト要求W11が渡されると、前述した図18のフローチャートに示す処理を実行する。また、マスタ装置1−1は、ライトデータを転送後、内部バス4を開放する。
また、マスタ装置1−1がバスを開放すると、バスアービタ3は、バス使用要求を出力しているマスタ装置1−2,1−3の内、優先順位が高いマスタ装置1−2にバス使用権を与える。バス使用権を獲得したマスタ装置1−2は、ライト要求W21を内部バス4に出力する。
スレーブ装置2−3内のライト要求元管理手段203は、要求種別判定手段201を介してライト要求W21を受信すると、それが最初のライト要求でなく(図13のステップS1301がNO)、且つライト処理手段22がライト処理を実行中なので(ステップS1303がYES)、前述したステップS1310〜S1312の処理を行う。この結果、ライト用マスタ番号保持レジスタ24の内容、ライト用格納位置保持部206が指し示す格納位置W、およびライト用読み出し位置保持部207が指し示す読み出し位置Rは、図24(A)に示すものとなる。その後、ライト要求元管理手段203は、ライト要求W21の要求元のマスタ装置1−2に待機レスポンスを返す(ステップS1313)。
これにより、マスタ装置1−2は、内部バス4を開放し待機状態となる。また、内部バス4が開放されることにより、マスタ装置1−3がバス使用権を獲得し、ライト要求W31を内部バス4に出力する。
スレーブ装置2−3のライト要求元管理手段203は、要求種別判定手段201を介してライト要求W31を受信すると、ステップS1301がNO、ステップS1303がYESとなるので、前述したステップS1310〜S1312の処理を行う。これにより、ライト用マスタ番号保持レジスタ24の内容、ライト用格納位置保持部206が指し示す格納位置W、ライト用読み出し位置保持部207が指し示す書き込み位置Rは、図24(B)に示すものとなる。その後、ライト要求元管理手段203は、マスタ装置1−3に待機レスポンスを返す(ステップS1313)。これにより、マスタ装置1−3は、内部バス4を開放し、待機状態となる。
その後、ライト処理手段22がライト要求W11に従ったライト処理を完了し、ライト要求元管理手段203に対してライト処理完了を通知したとする(図18のステップS185)。
ライト要求元管理手段203は、ライト処理手段22からライト処理完了が通知されると、図15のフローチャートに示す処理を行う。ライト要求元管理手段203は、ステップS151において、モード設定手段29によって設定されている動作モードが「第3モード」であることを認識すると、待機中のマスタ装置1−2,1−3に待機解除通知を送り(ステップS157)、その後、ライト用格納位置保持部206とライト用読み出し位置保持部207に同一のエントリ番号(本実施の形態ではエントリ番号「0」とする)を書き込む(ステップS158)。この結果、ライト用マスタ番号保持レジスタ24に内容は、図24(C)に示すものとなる。即ち、ステップS158の処理を行うことにより、ライト用マスタ番号保持レジスタ24に格納されていた全てのマスタ番号が削除されたことになる。
その後、マスタ装置1−1において、第2番目のライト要求W12が発生したとする。マスタ装置1−1及び待機解除通知を受信したマスタ装置1−2,1−3は、バスアービタ3に対してバス使用要求を送信し、バスアービタ3は優先順位が高いマスタ装置1−1にバス使用権を与える。マスタ装置1−1は、バス使用権を獲得すると、ライト要求W12をスレーブ装置2−3へ送信する。
スレーブ装置2−3内のライト要求元管理手段203は、要求種別判定手段201を介してマスタ装置1−1からのライト要求W12を受け取ると(図11のステップS1111がNO)、それが最初のライト要求でなく(ステップS1301がNO)、且つ、ライト処理手段22がライト処理を実行していないので(ステップS1303がNO)、現在の動作モードを調べる(ステップS1304)。この例の場合、モード設定手段29は、動作モードとして「第3モード」を設定しているので(ステップS1304)、ライト要求元管理手段203は、ライト要求W12をライト処理手段22に渡す(ステップS1302)。
ライト処理手段22は、ライト要求W12が渡されると、図18のフローチャートに示す処理を行う。また、マスタ装置1−1は、ライトデータを転送後、内部バス4を開放状態にする。内部バスが開放されると、バスアービタ3は、バス使用要求を出力しているマスタ装置1−2,1−3の内、優先順位の高いマスタ装置1−2にバス使用権を与える。マスタ装置1−2は、バス使用権を獲得すると、ライト要求W21をスレーブ装置2−3へ送信する。
スレーブ装置2−3内のライト要求元管理手段203は、要求種別判定手段201を介してライト要求W21を受信すると(ステップS1111がNO)、ライト要求W21が最初のライト要求でなく(ステップS1301がNO)、且つ、ライト処理手段22がライト処理中なので(ステップS1303がYES)、前述したステップS1310〜S1312の処理を行う。これにより、ライト用マスタ番号保持レジスタ24の内容、ライト用格納位置保持部206が指し示す格納位置W、及びライト用読み出し位置保持部207が指し示す読み出し位置Rは、図24(D)に示すものとなる。その後、ライト要求元管理手段203は、マスタ装置1−2に対して待機レスポンスを返す(ステップS1313)。これにより、マスタ装置1−2は、内部バス4を開放し、待機状態になる。内部バス4が開放されると、マスタ装置1−3がバス使用権を獲得し、内部バス上にライト要求W31を出力する。
スレーブ装置2−3内のライト要求元管理手段203は、ライト要求W31を受信すると、ステップS1111がNO、ステップS1301がNO、ステップS1303がYESとなるので、前述したステップS1310〜S1312の処理を行う。これにより、ライト用マスタ番号保持レジスタ24に内容、ライト用格納位置保持部206が指し示す格納位置W、及びライト用読み出し位置保持部207が指し示す読み出し位置Rは、図24(E)に示すものとなる。
その後、ライト処理手段22がライト要求W12に従ったライト処理を完了すると、ライト要求元管理手段203は、図15のフローチャートのステップS151,S157,S158の処理を行う。これにより、ライト用マスタ番号保持レジスタ24の内容、ライト用格納位置保持部206が指し示す格納位置W、及びライト用読み出し位置保持部207が指し示す読み出し位置Rは、図24(F)に示すものとなる。即ち、ライト用マスタ番号保持レジスタ24に登録されているマスタ番号が全て削除されることになる。
図25(A),(B),(C)は、それぞれ動作モードを「第1モード」,「第2モード」,「第3モード」とした場合の、スレーブ装置2−3における要求選択結果を示す図である。なお、図25は、マスタ装置1−1が8個のリード要求R11〜R18を連続的に出力し、マスタ装置1−2が3個のリード要求R21〜R23を連続的に出力し、マスタ装置1−3が1個のリード要求R31を出力した場合についてのものである。また、各マスタ装置1−1〜1−3の優先順位は、1マスタ装置1−1>マスタ装置1−2>マスタ装置1−3になっているとする。
動作モードを「第1モード」とした場合は、図25(A)に示すように、優先順位が最も高いマスタ装置1−1において8個のリード要求R11〜R18が連続的に発生しても、2番目に優先順位が高いマスタ装置1−2で発生したリード要求R21,R22,R23が時刻T2,T4,T6において選択されている。「第1モード」は、リード要求に従ったリード処理を実行中に最初に入力されたリード要求の要求元マスタ装置だけを優先させるため、マスタ装置1−3が出力したリード要求R31は、マスタ装置1−2の処理が完了するまで、選択されることはない。しかし、マスタ装置1−2の処理が完了すれば、優先順位が最も高いマスタ装置1−1が処理中であっても、リード要求R31は選択される(時刻T8)。
動作モードを「第2モード」とした場合は、図25(B)に示すように、優先順位が最も高いマスタ装置1−1において8個のリード要求R11〜R18が連続的に発生しても、2番目に優先順位が高いマスタ装置1−2で発生したリード要求R21,R22,R23が時刻T2,T5,T7で選択され、最も優先順位が低いマスタ装置1−3で発生したリード要求も時刻T3で選択されている。
動作モードを「第3モード」とした場合は、図25(C)に示すように、先ず、最も優先順位が高いマスタ装置1−1のリード要求R11〜R18が時刻T1〜T8において選択され、その後、第2番目に優先順位が高いマスタ装置1−2のリード要求R21〜R23が時刻T9〜T11において選択され、最後に、最も優先順位が低いマスタ装置1−3のリード要求が時刻T12において選択される。このように、動作モードを「第3モード」とした場合には、各マスタ装置の優先順位の順番でリード要求が処理されることになる。
なお、図25では、リード要求の場合を例にとって説明したがライト要求の場合も、同様である。
〔第1の実施の形態の効果〕
本実施の形態によれば、ライブロックが発生しないスレーブ装置を実現することが可能になる。その理由は、スレーブ装置自身が、内部バス4を介して入力された処理要求の入力順序に基づいてマスタ装置に対する第二の優先順位を決定する構成を有する要求管理手段20を備えているからである。つまり、バスアービタによって決まる第一の優先順位と異なる、処理要求の入力順によって決まる第二の優先順位に従って各マスタ装置からの処理要求を処理するようにしているからである。
また、本実施の形態によれば、ライブロックが発生しないようにしたスレーブ装置と、ライブロックが発生するのを承知の上で、優先順位が高いマスタ装置が優先的に使用できるスレーブ装置とを混在させたバスシステムを実現することが可能となる。その理由は、バスアービタとして、バス使用要求を出力した複数のマスタ装置の中から予め固定的に定められているマスタ装置の優先順位に基づいてバス使用権を与えるマスタ装置を決定するバスアービタ3を使用し、且つ内部バス4に接続されている一部のスレーブ装置に、マスタ装置から処理要求が送られてきたとき、他のマスタ装置からの処理要求に従った処理を実行中であれば、要求元のマスタ装置のマスタ番号を保持しておき、処理要求に従った処理が完了した後、保持しているマスタ番号に従って、次に優先的に処理要求を受け付ける優先マスタ装置を決定する要求管理手段20を設けたからである。
また、本実施の形態によれば、1台のスレーブ装置を、優先順位の高いマスタ装置からの処理要求を優先的に受け付けるスレーブ装置として動作させることも、ライブロックが発生しないようにしたスレーブ装置として動作させることも可能になる。その理由は、要求管理手段20の動作モードを切り替えるモード切り替え手段29を備えているからである。
〔発明の第2の実施の形態〕
本発明の第2の実施の形態は、図29において、図2に示したスレーブ装置2−1〜2−nの代わりに、図26に示すスレーブ装置2−1a〜2−naを使用することにより実現される。
スレーブ装置2−1a〜2−naと、スレーブ装置2−1〜2−nとの相違点は、特定マスタ設定手段30が追加されている点、要求管理手段20の代わりに要求管理手段20aを備えている点、リード要求元管理手段202の代わりにリード要求元管理手段202aを備えている点、及びライト要求元管理手段203の代わりにライト要求元管理手段203aを備えている点である。
特定マスタ設定手段30には、利用者によって、処理要求を優先的に処理するマスタ装置(優先マスタ装置)のマスタ番号が1個設定される。
要求管理手段20aは、リード要求元管理手段202,ライト要求元管理手段203の代わりにリード要求元管理手段202a,ライト要求元管理手段203aを備えている点が、要求管理手段20と相違している。
リード要求元管理手段202aは、図12のステップS124〜S126の代わりに、図27のステップS271〜S276の処理を行う点がリード要求元管理手段202と相違している。
ライト要求元管理手段203aは、図15のステップS152,S153の代わりに図28のステップS281〜S286の処理を行う点がライト要求元管理手段203と相違している。
以下では、この相違部分についてのみ説明する。
利用者は、動作モードを「第1モード」に設定したスレーブ装置において、優先的に処理要求を受け付けるマスタ装置(特定マスタ装置)を設定したい場合は、特定マスタ設定手段30を用いて特定マスタ装置のマスタ番号を設定する。例えば、スレーブ装置2−1において、マスタ装置1−3からの処理を優先的に受け付けるようにする場合には、特定マスタ手段30を用いてマスタ装置1−3のマスタ番号M3を設定しておく。
リード要求元管理手段202aは、図12のステップS120において、スレーブ装置2−1の動作モードが「第1モード」であると認識すると、ステップS124〜S126の代わりに、図27のステップS271〜S276の処理を行う。
ステップS271では、特定マスタ設定手段30に特定マスタ装置のマスタ番号が設定されているか否かを調べる。そして、特定マスタ番号が設定されていない場合(ステップS271がNO)は、図12のステップS121〜S123と同様の処理を行う。これに対して、特定マスタ番号が設定されている場合は、リード用マスタ番号保持レジスタ23に特定マスタ番号が格納されているか否かを調べる(ステップS271-1)。そして、格納されていない場合(ステップS271-1がNO)は、ステップS276の処理を行う。これに対して格納されている場合(ステップS271-1がYES)は、リード用マスタ番号保持レジスタ23のエントリの内の、リード用読み出し位置保持部205が指し示しているエントリの次のエントリに特定マスタ装置のマスタ番号を格納し、その後、リード用読み出し位置保持部205に保持されているエントリ番号を+1する(ステップS272,S273)。これにより、特定マスタ装置からのリード要求を優先的に受け付ける状態(特定マスタ装置が優先マスタ装置となる)になる。その後、リード要求元管理手段202aはリード用格納位置保持部204に格納されているエントリ番号を、リード用読み出し位置保持部205が指し示しているエントリの次のエントリ番号に更新する(ステップS274)。これにより、リード用マスタ番号保持レジスタ23から特定マスタ装置のマスタ番号以外が消去されることになる。その後、リード要求元管理手段202aは、待機中のマスタ装置に待機解除を返す(ステップS275)。
また、ライト要求元管理手段203aは、図15のステップS151において、スレーブ装置2−1の動作モードが「第1モード」であると判断すると、図15のステップS152,S153の代わりに、図28のステップS281〜S286の処理を行う。
ステップS281では、特定マスタ設定手段30に、特定マスタ装置のマスタ番号が設定されているか否かを判断する。そして、設定されていない場合(ステップS281がNO)は、図15のステップS152,S153と同様の処理を行う(ステップS286)。これに対して、特定マスタ装置のマスタ番号が設定されている場合(ステップS281がYES)は、ライト用マスタ番号保持レジスタ24に特定マスタ番号が格納されているか否かを調べる(ステップS281-1)。そして、格納されていない場合(ステップS281-1がNO)は、ステップS286の処理を行う。これに対して、格納されている場合(ステップS281-1がYES)は、ライト用マスタ番号保持レジスタ24のエントリの内の、ライト用読み出し位置保持部207が指し示しているエントリの次のエントリに、特定マスタ装置のマスタ番号を格納し、その後、ライト用格納位置保持部206に保持されているエントリ番号を+1する(ステップS282,S283)。これにより、特定マスタ装置からのライト要求を優先的に受け付ける状態(特定マスタ装置が優先マスタ装置となる)になる。その後、ライト要求元管理手段203aは、ライト用格納位置保持部206に保持されているエントリ番号を、ライト用読み出し位置保持部207の保持されているエントリ番号の次のエントリ番号に更新する(ステップS284)。これにより、ライト用マスタ番号保持レジスタ24からは、特定マスタ装置のマスタ番号以外は消去されることになる。その後、ライト要求元管理手段203aは、待機中のマスタ装置へ待機解除通知を送信する(ステップS285)。
〔第2の実施の形態の効果〕
本実施の形態によれば、第1の実施の形態が有している効果に加え、スレーブ装置において処理実行中に、利用者によって指定されているマスタ装置から処理要求があった場合、上記マスタ装置からの処理要求を優先的に処理することが可能になるという効果を得ることができる。その理由は、利用者によってマスタ番号が設定される特定マスタ設定手段30を備え、且つ、要求管理手段20aが、特定マスタ設定手段30に設定されているマスタ番号がリード用マスタ番号保持レジスタ23,ライト用マスタ番号保持レジスタ24に保持されている場合、そのマスタ番号のマスタ装置を優先マスタ装置にする構成を有しているからである。
本発明は、デジタルビデオカメラ等のデジタル信号処理における、内部バスシステム上のメモリインターフェース回路などに利用可能である。
本発明の第1の実施の形態で使用するマスタ装置1−1〜1−mの構成例を示すブロック図である。 本発明の第1の実施の形態で使用するスレーブ装置2−1〜2−nの構成例を示すブロック図である。 リード用マスタ番号保持レジスタ23の一例を示す図である。 バスアービタ3の構成例を示すブロック図である。 スレーブ装置の動作モードを「第1モード」とした状態において、複数台のマスタ装置で同時にリード要求が発生した時の動作例を示す図である。 スレーブ装置の動作モードを「第1モード」とした状態において、複数台のマスタ装置で同時にライト要求が発生した時の動作例を示す図である。 スレーブ装置の動作モードを「第2モード」とした状態において、複数台のマスタ装置で同時にリード要求が発生した時の動作例を示す図である。 スレーブ装置の動作モードを「第2モード」とした状態において、複数台のマスタ装置で同時にライト要求が発生した時の動作例を示す図である。 スレーブ装置の動作モードを「第3モード」とした状態において、複数台のマスタ装置で同時にリード要求が発生した時の動作例を示す図である。 スレーブ装置の動作モードを「第3モード」とした状態において、複数台のマスタ装置で同時にライト要求が発生した時の動作例を示す図である。 要求管理手段20の処理例(主にリード要求があった時の処理)を示すフローチャートである。 要求管理手段20の処理例(主にリード要求があった時の処理)を示すフローチャートである。 要求管理手段20の処理例(主にライト要求があった時の処理)を示すフローチャートである。 リード処理手段21によるリード処理が完了したときの要求管理手段20の処理例を示すフローチャートである。 ライト処理手段22によるライト処理が完了したときの要求管理手段20の処理例を示すフローチャートである。 リード処理手段21の処理例を示すフローチャートである。 転送指示を受けたときの、リード処理手段21の処理例を示すフローチャートである。 ライト処理手段22の処理例を示すフローチャートである。 動作モードを「第1モード」としたときのリード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、及びリード用読み出し位置保持部205が指し示す読み出し位置Rを示す図である。 動作モードを「第1モード」としたときのライト用マスタ番号保持レジスタ24の内容、ライト用格納位置保持部206が指し示す格納位置W、及びライト用読み出し位置保持部207が指し示す読み出し位置Rを示す図である。 動作モードを「第2モード」としたときのリード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、及びリード用読み出し位置保持部205が指し示す読み出し位置Rを示す図である。 動作モードを「第2モード」としたときのライト用マスタ番号保持レジスタ24の内容、ライト用格納位置保持部206が指し示す格納位置W、及びライト用読み出し位置保持部207が指し示す読み出し位置Rを示す図である。 動作モードを「第3モード」としたときのリード用マスタ番号保持レジスタ23の内容、リード用格納位置保持部204が指し示す格納位置W、及びリード用読み出し位置保持部205が指し示す読み出し位置Rを示す図である。 動作モードを「第3モード」としたときのライト用マスタ番号保持レジスタ24の内容、ライト用格納位置保持部206が指し示す格納位置W、及びライト用読み出し位置保持部207が指し示す読み出し位置Rを示す図である。 動作モードを第1,第2,第3モードとしたときの、マスタ選択結果を示した図である。 本発明の第2の実施の形態で使用するスレーブ装置2−1a〜2−naの構成例を示すブロック図である。 要求管理手段20aの処理例の一部を示すフローチャートである。 要求管理手段20aの処理例の一部を示すフローチャートである。 バスシステムの構成例を示す図である。
符号の説明
1−1〜1−m…マスタ装置
11…制御手段
12…リード要求手段
13…ライト要求手段
14…応答受信手段
15…バス獲得手段
2−1〜2−n,2−1a〜2−na…スレーブ装置
20,20a…要求管理手段
201…要求種別判定手段
202,202a…リード要求元管理手段
203,203a…ライト要求元管理手段
204…リード用格納位置保持部
205…リード用読み出し位置保持部
206…ライト用格納位置保持部
207…ライト用読み出し位置保持部207
211…リードバッファ有効フラグレジスタ
21…リード処理手段
22…ライト処理手段
23…リード用マスタ番号保持レジスタ
24…ライト用マスタ番号保持レジスタ
25…リード処理フラグレジスタ
26…ライト処理フラグレジスタ
27…ライトバッファ
28…リードバッファ
29…モード設定手段
30…特定マスタ設定手段
3…バスアービタ
31…調停手段
32…優先順位保持部
4…内部バス

Claims (15)

  1. バスに接続された複数のマスタ装置と、前記バスに接続された1または複数のスレーブ装置と、バスアービタとを備えたバスシステムにおいて、
    前記バスアービタが、
    バス使用要求を出力した複数のマスタ装置の中から予め固定的に定められている第一の優先順位に基づいてバス使用権を与えるマスタ装置を決定する調停手段を備え、
    前記スレーブ装置が、
    前記バスを介して入力された処理要求の入力順序に基づいてマスタ装置に対する第二の優先順位を決定する構成と、前記バスを介してバス使用権を獲得したマスタ装置から処理要求が送られてきたとき、前記第二の優先順位に基づいて前記マスタ装置から送られてきた処理要求を処理するか否かを決定すると共に要求元のマスタ装置に対して待機レスポンスを返す構成と、処理要求に従った処理が完了した後、少なくとも前記処理が完了した処理要求の要求元のマスタ装置及び待機レスポンスを返したマスタ装置の内の、第二の優先順位が最も高いマスタ装置に待機解除通知を返す構成とを有する要求管理手段を備え、
    前記各マスタ装置が、
    自装置内に処理要求が発生したとき、前記バスアービタに対してバス使用要求を出力し、前記バスアービタによりバス使用権が与えられたとき、スレーブ装置に処理要求を出力し、スレーブ装置から待機レスポンスが送られてきたとき、前記バスを開放すると共にバス使用要求の出力が不可能な待機状態となり、スレーブ装置から待機解除通知が送られてきたときバス使用要求が出力可能な状態に復帰する制御手段を備えたことを特徴とするバスシステム。
  2. バスに接続された複数のマスタ装置と、前記バスに接続された複数のスレーブ装置と、バスアービタとを備えたバスシステムにおいて、
    前記バスアービタが、
    バス使用要求を出力した複数のマスタ装置の中から予め固定的に定められているマスタ装置の優先順位に基づいてバス使用権を与えるマスタ装置を決定する調停手段を備え、
    前記複数のスレーブ装置の内の一部のスレーブ装置が、
    バス使用権を獲得したマスタ装置から前記バスを介して処理要求が送られてきたとき、他の処理要求に従った処理を実行中でなく、且つ前記マスタ装置が優先マスタ装置であれば、前記処理要求に従った処理を開始すると共に前記マスタ装置に待機レスポンスを返し、他の処理要求に従った処理を実行中であるか、或いは前記マスタ装置が優先マスタ装置でなければ、前記マスタ装置のマスタ番号を保持すると共に前記マスタ装置に待機レスポンスを返し、処理要求に従った処理が完了した後、前記保持しているマスタ番号の保持順に基づいて優先マスタ装置を決定すると共に、少なくとも前記処理が完了した処理要求の要求元のマスタ装置及び前記優先マスタ装置に待機解除通知を返す要求管理手段を備え、
    前記各マスタ装置が、
    自装置内に処理要求が発生したとき、前記バスアービタに対してバス使用要求を出力し、前記バスアービタによりバス使用権が与えられたとき、スレーブ装置に処理要求を出力し、スレーブ装置から待機レスポンスが送られてきたとき、前記バスを開放すると共にバス使用要求の出力が不可能な待機状態となり、スレーブ装置から待機解除通知が送られてきたときバス使用要求が出力可能な状態に復帰する制御手段を備えたことを特徴とするバスシステム。
  3. 請求項2記載のバスシステムにおいて、
    前記複数のスレーブ装置の内の一部のスレーブ装置が、
    複数のマスタ番号を格納可能なマスタ番号保持レジスタと、
    処理要求に従った処理を実行する処理手段と、
    バス使用権を獲得したマスタ装置から前記バスを介して処理要求が送られてきたとき、前記処理手段が処理を実行中でなく、且つ前記マスタ装置が優先マスタ装置であれば、前記処理手段に前記処理要求に従った処理を実行させると共に前記マスタ装置に待機レスポンスを返し、前記処理手段が処理を実行中であるか、或いは前記マスタ装置が優先マスタ装置でなければ、前記マスタ装置のマスタ番号を処理要求の発生順に前記マスタ番号保持レジスタに格納すると共に前記マスタ装置に待機レスポンスを返し、前記処理手段が処理要求に従った処理を完了した後、前記マスタ番号保持レジスタに格納されているマスタ番号の格納順に基づいて優先マスタ装置を決定すると共に、少なくとも前記処理が完了した処理要求の要求元のマスタ装置及び前記優先マスタ装置に待機解除通知を返す要求管理手段とを備えたことを特徴とするバスシステム。
  4. 請求項3記載のバスシステムにおいて、
    前記要求管理手段が、
    前記処理手段による処理が完了した場合、前記マスタ番号保持レジスタにマスタ番号が格納されているマスタ装置の内の、マスタ番号の格納順が最も古いマスタ装置を優先マスタ装置に決定すると共に、前記マスタ番号保持レジスタの内容を消去する構成を有することを特徴とするバスシステム。
  5. 請求項3記載のバスシステムにおいて、
    前記要求管理手段が、
    前記処理手段による処理が完了した場合、前記マスタ番号保持レジスタに保持されている未選択のマスタ番号の内の、最も格納順が古いマスタ番号を選択し、該選択したマスタ番号のマスタ装置を優先マスタ装置とする構成を有することを特徴とするバスシステム。
  6. 請求項3記載のバスシステムにおいて、
    前記複数のスレーブ装置の内の一部のスレーブ装置が、
    動作モードを第1モードにするのか、第2モードにするのかを設定するモード設定手段を備え、且つ、
    前記要求管理手段が、
    前記モード設定手段により第1モードが設定されている場合は、前記処理手段による処理が完了した場合、前記マスタ番号保持レジスタにマスタ番号が格納されているマスタ装置の内の、マスタ番号の格納順が最も古いマスタ装置を優先マスタ装置に決定すると共に、前記マスタ番号保持レジスタの内容を消去し、前記モード設定手段により第2モードが設定されている場合は、前記処理手段による処理が完了した場合、前記マスタ番号保持レジスタに保持されている未選択のマスタ番号の内の、最も格納順が古いマスタ番号を選択し、該選択したマスタ番号のマスタ装置を優先マスタ装置とする構成を有することを特徴とするバスシステム。
  7. 請求項6記載のバスシステムにおいて、
    前記モード設定手段が、第1モード及び第2モードに加え、第3モードも設定可能な構成を有し、且つ、
    前記要求管理手段が、前記モード設定手段により第3モードが設定されている場合は、バス使用権を獲得したマスタ装置から前記バスを介して処理要求が送られてきたとき、前記処理手段が処理を実行中でなければ、前記処理手段に前記処理要求に従った処理を開始させると共に前記マスタ装置に待機レスポンスを返し、処理を実行中であれば、前記マスタ装置に待機レスポンスを返し、前記処理手段が処理要求に従った処理を完了したとき、前記処理要求の要求元のマスタ装置に待機解除通知を返す構成を有することを特徴とするバスシステム。
  8. バス使用権を獲得したマスタ装置からバスを介して処理要求が送られてきたとき、他の処理要求に従った処理を実行中でなく、且つ前記マスタ装置が優先マスタ装置であれば、前記処理要求に従った処理を開始すると共に前記マスタ装置に待機レスポンスを返し、他の処理要求に従った処理を実行中であるか、或いは前記マスタ装置が優先マスタ装置でなければ、前記マスタ装置のマスタ番号を保持すると共に前記マスタ装置に待機レスポンスを返し、処理要求に従った処理が完了した後、前記保持しているマスタ番号の保持順に基づいて優先マスタ装置を決定すると共に、少なくとも前記処理が完了した処理要求の要求元のマスタ装置及び前記優先マスタ装置に待機解除通知を返す要求管理手段を備えたことを特徴とするスレーブ装置。
  9. 請求項8記載のスレーブ装置において、
    複数のマスタ番号を格納可能なマスタ番号保持レジスタと、
    処理要求に従った処理を実行する処理手段と、
    バス使用権を獲得したマスタ装置からバスを介して処理要求が送られてきたとき、前記処理手段が処理を実行中でなく、且つ前記マスタ装置が優先マスタ装置であれば、前記処理手段に前記処理要求に従った処理を実行させると共に前記マスタ装置に待機レスポンスを返し、前記処理手段が処理を実行中であるか、或いは前記マスタ装置が優先マスタ装置でなければ、前記マスタ装置のマスタ番号を処理要求の発生順に前記マスタ番号保持レジスタに格納すると共に前記マスタ装置に待機レスポンスを返し、前記処理手段が処理要求に従った処理を完了した後、前記マスタ番号保持レジスタに格納されているマスタ番号の格納順に基づいて優先マスタ装置を決定すると共に、少なくとも前記処理が完了した処理要求の要求元のマスタ装置及び前記優先マスタ装置に待機解除通知を返す要求管理手段とを備えたことを特徴とするスレーブ装置。
  10. 請求項9記載のスレーブ装置において、
    前記要求管理手段が、
    前記処理手段による処理が完了した場合、前記マスタ番号保持レジスタにマスタ番号が格納されているマスタ装置の内の、マスタ番号の格納順が最も古いマスタ装置を優先マスタ装置に決定すると共に、前記マスタ番号保持レジスタの内容を消去する構成を有することを特徴とするスレーブ装置。
  11. 請求項9記載のスレーブ装置において、
    前記要求管理手段が、
    前記処理手段による処理が完了した場合、前記マスタ番号保持レジスタに保持されている未選択のマスタ番号の内の、最も格納順が古いマスタ番号を選択し、該選択したマスタ番号のマスタ装置を優先マスタ装置とする構成を有することを特徴とするスレーブ装置。
  12. 請求項9記載のスレーブ装置において、
    前記複数のスレーブ装置の内の一部のスレーブ装置が、
    動作モードを第1モードにするのか、第2モードにするのかを設定するモード設定手段を備え、且つ、
    前記要求管理手段が、
    前記モード設定手段により第1モードが設定されている場合は、前記処理手段による処理が完了した場合、前記マスタ番号保持レジスタにマスタ番号が格納されているマスタ装置の内の、マスタ番号の格納順が最も古いマスタ装置を優先マスタ装置に決定すると共に、前記マスタ番号保持レジスタの内容を消去し、前記モード設定手段により第2モードが設定されている場合は、前記処理手段による処理が完了した場合、前記マスタ番号保持レジスタに保持されている未選択のマスタ番号の内の、最も格納順が古いマスタ番号を選択し、該選択したマスタ番号のマスタ装置を優先マスタ装置とする構成を有することを特徴とするスレーブ装置。
  13. 請求項12記載のスレーブ装置において、
    前記モード設定手段が、第1モード及び第2モードに加え、第3モードも設定可能な構成を有し、且つ、
    前記要求管理手段が、前記モード設定手段により第3モードが設定されている場合は、バス使用権を獲得したマスタ装置から前記バスを介して処理要求が送られてきたとき、前記処理手段が処理を実行中でなければ、前記処理手段に前記処理要求に従った処理を開始させると共に前記マスタ装置に待機レスポンスを返し、処理を実行中であれば、前記マスタ装置に待機レスポンスを返し、前記処理手段が処理要求に従った処理を完了したとき、前記処理要求の要求元のマスタ装置に待機解除通知を返す構成を有することを特徴とするスレーブ装置。
  14. バスに接続された複数のマスタ装置と、前記バスに接続された複数のスレーブ装置と、バスアービタとを備えたバスシステムにおいて、
    前記バスアービタが、
    バス使用要求を出力した複数のマスタ装置の中から予め固定的に定められているマスタ装置の優先順位に基づいてバス使用権を与えるマスタ装置を決定する調停ステップを実行し、
    前記複数のスレーブ装置の内の一部のスレーブ装置が、
    バス使用権を獲得したマスタ装置から前記バスを介して処理要求が送られてきたとき、他の処理要求に従った処理を実行中でなく、且つ前記マスタ装置が優先マスタ装置であれば、前記処理要求に従った処理を開始すると共に前記マスタ装置に待機レスポンスを返し、他の処理要求に従った処理を実行中であるか、或いは前記マスタ装置が優先マスタ装置でなければ、前記マスタ装置のマスタ番号を保持すると共に前記マスタ装置に待機レスポンスを返し、処理要求に従った処理が完了した後、前記保持しているマスタ番号の保持順に基づいて優先マスタ装置を決定すると共に、少なくとも前記処理が完了した処理要求の要求元のマスタ装置及び前記優先マスタ装置に待機解除通知を返す要求管理ステップを実行し、
    前記各マスタ装置が、
    自装置内に処理要求が発生したとき、前記バスアービタに対してバス使用要求を出力し、前記バスアービタによりバス使用権が与えられたとき、スレーブ装置に処理要求を出力し、スレーブ装置から待機レスポンスが送られてきたとき、前記バスを開放すると共にバス使用要求の出力が不可能な待機状態となり、スレーブ装置から待機解除通知が送られてきたときバス使用要求が出力可能な状態に復帰する制御ステップを実行することを特徴とするバスシステム制御方法。
  15. コンピュータを、
    バス使用権を獲得したマスタ装置からバスを介して処理要求が送られてきたとき、他の処理要求に従った処理を実行中でなく、且つ前記マスタ装置が優先マスタ装置であれば、前記処理要求に従った処理を開始すると共に前記マスタ装置に待機レスポンスを返し、他の処理要求に従った処理を実行中であるか、或いは前記マスタ装置が優先マスタ装置でなければ、前記マスタ装置のマスタ番号を保持すると共に前記マスタ装置に待機レスポンスを返し、処理要求に従った処理が完了した後、前記保持しているマスタ番号の保持順に基づいて優先マスタ装置を決定すると共に、少なくとも前記処理が完了した処理要求の要求元のマスタ装置及び前記優先マスタ装置に待機解除通知を返す要求管理手段として機能させるためのプログラム。
JP2005012366A 2005-01-20 2005-01-20 バスシステム、スレーブ装置、バスシステム制御方法及びプログラム Expired - Fee Related JP4612425B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005012366A JP4612425B2 (ja) 2005-01-20 2005-01-20 バスシステム、スレーブ装置、バスシステム制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005012366A JP4612425B2 (ja) 2005-01-20 2005-01-20 バスシステム、スレーブ装置、バスシステム制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2006201999A true JP2006201999A (ja) 2006-08-03
JP4612425B2 JP4612425B2 (ja) 2011-01-12

Family

ID=36959949

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005012366A Expired - Fee Related JP4612425B2 (ja) 2005-01-20 2005-01-20 バスシステム、スレーブ装置、バスシステム制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP4612425B2 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62229353A (ja) * 1986-03-29 1987-10-08 Toshiba Corp 共通バス調停方式
JPS63155249A (ja) * 1986-12-18 1988-06-28 Fujitsu Ltd 装置間通信方式
JPH0455972A (ja) * 1990-06-25 1992-02-24 Mitsubishi Electric Corp 共通バス裁定方法及びデータ処理装置
JPH05101002A (ja) * 1991-10-09 1993-04-23 Nec Corp バス要求方式
JPH0587647U (ja) * 1992-04-22 1993-11-26 三菱電機株式会社 バス調停回路
JPH0844662A (ja) * 1994-07-26 1996-02-16 Fuji Xerox Co Ltd 情報処理装置
JPH0844661A (ja) * 1994-07-26 1996-02-16 Fuji Xerox Co Ltd 情報処理装置
JPH09305527A (ja) * 1996-05-13 1997-11-28 Brother Ind Ltd Dmaコントローラ

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62229353A (ja) * 1986-03-29 1987-10-08 Toshiba Corp 共通バス調停方式
JPS63155249A (ja) * 1986-12-18 1988-06-28 Fujitsu Ltd 装置間通信方式
JPH0455972A (ja) * 1990-06-25 1992-02-24 Mitsubishi Electric Corp 共通バス裁定方法及びデータ処理装置
JPH05101002A (ja) * 1991-10-09 1993-04-23 Nec Corp バス要求方式
JPH0587647U (ja) * 1992-04-22 1993-11-26 三菱電機株式会社 バス調停回路
JPH0844662A (ja) * 1994-07-26 1996-02-16 Fuji Xerox Co Ltd 情報処理装置
JPH0844661A (ja) * 1994-07-26 1996-02-16 Fuji Xerox Co Ltd 情報処理装置
JPH09305527A (ja) * 1996-05-13 1997-11-28 Brother Ind Ltd Dmaコントローラ

Also Published As

Publication number Publication date
JP4612425B2 (ja) 2011-01-12

Similar Documents

Publication Publication Date Title
KR20200113264A (ko) 메모리 컨트롤러
TW200817900A (en) Data processing system having address translation bypass and method therefor
US8255914B1 (en) Information retrieval techniques involving the use of prioritized object requests
JP4357473B2 (ja) データ処理システムおよびプログラム
US20150134871A1 (en) Reduced host data command processing
KR102403653B1 (ko) Fpga 기반 가속화를 위한 새로운 ssd 구조
JPH0474229A (ja) 情報処理装置
JP5287301B2 (ja) ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
TW200925871A (en) Dynamic logical data channel assignment using time-grouped allocations
JP5518103B2 (ja) 伝送制御装置及び前記伝送制御装置を備えたplc
JP6406027B2 (ja) 情報処理システム、情報処理装置、メモリアクセス制御方法
JP4612425B2 (ja) バスシステム、スレーブ装置、バスシステム制御方法及びプログラム
JP4748609B2 (ja) 画像処理システム
US20180181308A1 (en) Storage apparatus, storage apparatus backup method, storage apparatus backup system, and storage medium
US7774529B2 (en) Bus communication apparatus that uses shared memory
US8041855B1 (en) Dual-bus system for communicating with a processor
JP2013015990A (ja) 情報処理システム、情報処理プログラム、情報処理方法
US8862793B2 (en) Storage system, control device, and storage system control method of controlling storage system
US9430427B2 (en) Structured block transfer module, system architecture, and method for transferring
US8244919B2 (en) Data transfer apparatus, system and method using the same
JPWO2013008450A1 (ja) 仮想計算機システム、メモリ管理方法、メモリ管理プログラム、記録媒体および集積回路
JP2018005762A (ja) 情報処理装置及びコンフィグレーション方法
TW201738730A (zh) 資料儲存裝置、其控制單元及其任務排序方法
JP2016157282A (ja) データ処理装置、データ処理システム及びコンピュータプログラム
US9971968B2 (en) Determination method, system and recording medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071214

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090615

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090615

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100720

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100915

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100916

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: 20101005

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101015

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

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4612425

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees