(58)【調査した分野】(Int.Cl.,DB名)
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置と、データ分類手段、及び前記複数のプロセッサの台数以上の演算手段を含む周辺装置とを備えた情報処理システムであって、
各前記プロセッサは、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込み、
前記データ分類手段は、
前記共有パラレルポートから前記書き込み単位を順次読み出し、
読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
前記演算手段は、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する
情報処理システム。
前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
請求項1に記載の情報処理システム。
前記周辺装置は、各前記プロセッサにおける割り込みのネストレベルを表すデータを保持する、前記プロセッサ識別子を表すデータに関連付けされたレベルカウンタを更に備え、
前記プロセッサは、前記転送対象データのうちのある転送対象データの転送開始を示す前記転送用符号であるスタート符号を、前記スタート符号を除く、該ある転送対象データを表現する前記一連の転送用符号の書き込み以前に前記共有パラレルポートへ書き込み、
前記データ分類手段は、
前記共有パラレルポートから前記書き込み単位を順次読み出し、
読み出した前記書き込み単位に前記スタート符号が含まれる場合に、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルを表すデータを1だけ増加させ、
読み出した前記書き込み単位に含まれる、前記スタート符号を除く前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータと、該プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルとから成るセットに関連付けされた前記演算手段へ順次出力し、
前記演算手段は、
前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成し、
該演算手段に関連付けされた前記プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルを表すデータを1だけ減少させる請求項1又は2に記載の情報処理システム。
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置と、データ分類手段、及び前記複数のプロセッサの台数以上の演算手段を含む周辺装置とを備えた情報処理システムにおけるデータ転送方法であって、
各前記プロセッサにより、転送対象データを構成可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込み、
前記データ分類手段により、
前記共有パラレルポートから前記書き込み単位を順次読み出し、
読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
前記演算手段により、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記1つの転送対象データを再構成する
データ転送方法。
【発明を実施するための形態】
【0024】
以下、本発明の実施形態について、図面を参照して詳細に説明する。なお、すべての図面において、同等な構成要素には同じ符号を付し、適宜説明を省略する。
(第1の実施形態)
本発明の各実施形態の基本である、本発明の第1の実施形態について説明する。
【0025】
本実施形態における構成について説明する。
【0026】
図1は、本発明の第1の実施形態における情報処理システムの構成の一例を示すブロック図である。
【0027】
本実施形態における情報処理システム100は、情報処理装置110と、周辺装置150とを含む。情報処理装置110と、周辺装置150とは、パラレルポート用のケーブルにより接続される。
【0028】
情報処理装置110は、共有パラレルポート130と、複数のプロセッサ120とを含む。
【0029】
共有パラレルポート130は、複数のデータ信号を互いに異なる通信線を経由して同時並行的に送受信する。共有パラレルポート130は、例えば、ISA(Industry Standard Architecture)又はIEEE(The Institute of Electrical and Electronics Engineers)1284に準拠する。共有パラレルポート130は、各プロセッサ120により共有される。
【0030】
各プロセッサ120は、転送対象であるデータ(以下、「転送対象データ」と称する)を、共有パラレルポート130を利用して、周辺装置150へ送信する。以下では、情報処理装置110に含まれるプロセッサ120の台数は、n(nは2以上の整数)台であることとする。そして、k(kは0乃至n−1の整数)番目のプロセッサ120を“プロセッサk”とも称す。
【0031】
各プロセッサ120は、一連の転送用符号のそれぞれに、プロセッサ識別子を表すデータを付加することにより、書き込み単位を生成する。ここで、転送用符号は、転送対象データを表すことが可能な、共有パラレルポート130を経由して送受信される符号である。又、プロセッサ識別子は、各プロセッサ120の識別子である。プロセッサ識別子は、Q(Qは1以上の整数)ビットで表現可能であることとする。又、書き込み単位は、共有パラレルポート130のバス幅において1回で書き込み可能なデータである。共有パラレルポート130のバス幅は、W(Wは2以上の整数)ビットであることとする。
【0032】
一連の転送用符号に含まれる各転送用符号は、所定の順序で送信される。一連の転送用符号に含まれる各転送用符号は、例えば、転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す。ここで、Lは、(W−Q)ビットの2進数表現で表現可能な最大の整数値以下である。
【0033】
各プロセッサ120は、生成した書き込み単位を共有パラレルポート130へ共有パラレルポート130における排他制御を行わずに順次書き込む。各プロセッサ120により共有パラレルポート130へ書き込まれた書き込み単位は、周辺装置150へ送信される。
【0034】
周辺装置150は、データ分類器160と、複数の演算器170とを含む。
【0035】
データ分類器160は、共有パラレルポート130からプロセッサ120により書き込まれた書き込み単位を順次読み出す。
【0036】
データ分類器160は、読み出した書き込み単位に含まれる転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータに関連付けされた演算器170へ順次出力する。ここで、各演算器170は、特定のプロセッサ識別子を表すデータに予め関連付けされることとする。又は、データ分類器160は、新規なプロセッサ識別子を表すデータを検出した際に、ある演算器170に、当該プロセッサ識別子を表すデータを動的に関連付けてもよい。ある演算器170とあるプロセッサ120との間の関連付けした状態を表すデータは、例えば、データ分類器160(
図12のCPU903等)が不図示のメモリ(
図12の記憶装置902等)に格納していることとする。以下では、周辺装置150に含まれる演算器170の台数は、m(mは2以上且つn以下の整数)台であることとする。そして、k(kは0乃至m−1の整数)番目の演算器170を“演算器k”とも称す。
【0037】
各演算器170は、データ分類器160により出力された一連の転送用符号に基づいて、転送対象データを再構成する。ここで、「再構成する」とは、送信側装置により書き込まれた、ある転送対象データを表す一連の転送用符号を、受信側装置により読み出し、読み出した一連の転送用符号に基づいて、当該受信側装置において当該転送対象データを生成することとする。各演算器170は、例えば、所定の順序で読み出された、転送対象データをL進数表現した場合における互いに異なる桁の値を表す各転送用符号に基づいて、転送対象データを算出する。
【0038】
本実施形態における動作について説明する。
【0039】
図2は、本発明の第1の実施形態における情報処理装置の動作を示すフローチャートである。尚、
図2に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
【0040】
まず、各プロセッサ120は、一連の転送用符号のそれぞれに、プロセッサ識別子を表すデータを付加することにより、書き込み単位を生成する(ステップS210)。
【0041】
次に、各プロセッサ120は、生成した書き込み単位を共有パラレルポート130へ共有パラレルポート130における排他制御を行わずに順次書き込む(ステップS220)。
【0042】
図3は、本発明の第1の実施形態における周辺装置の動作を示すフローチャートである。尚、
図3に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
【0043】
まず、データ分類器160は、共有パラレルポート130からプロセッサ120により書き込まれた書き込み単位を順次読み出す(ステップS310)。
【0044】
次に、データ分類器160は、読み出した書き込み単位に含まれる一連の転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータに関連付けされた演算器170へ順次出力する(ステップS320)。
【0045】
続いて、各演算器170は、データ分類器160により出力された一連の転送用符号に基づいて、転送対象データを再構成する(ステップS330)。
【0046】
本実施形態における動作の具体例について説明する。
【0047】
図4は、本発明の第1の実施形態における情報処理システムの動作例を説明する模式図である。
図4において、括弧内はビット表現であることとする。又、記号“%”は剰余演算を、記号“/”は除算を、記号“×”は乗算を示す(
図5においても同様)。又、転送対象データは、8ビットのデータ(D=b
0b
1b
2b
3b
4b
5b
6b
7)であることとする。又、共有パラレルポート130のバス幅(W)は、8ビットであることとする。又、プロセッサ識別子は、6ビットのデータ(P=p
0p
1p
2p
3p
4p
5)で表現されることとする(Q=6)。又、一連の転送用符号に含まれる各転送用符号は、転送対象データを4進数表現した場合における互いに異なる桁の値を表すこととする(L=(W−Q)ビットの2進数表現で表現可能な最大の整数値=4)。
【0048】
まず、各プロセッサ120は、一連の転送用符号D0(b
0b
1)、D1(b
2b
3)、D2(b
4b
5)、D3(b
6b
7)のそれぞれに、プロセッサ識別子P(p
0p
1p
2p
3p
4p
5)を表すデータを付加することにより、書き込み単位を生成する(ステップS210)。ここで、転送用符号D0は、転送対象データDを4
1で除算した剰余である。又、転送用符号D1は、転送対象データDを4
1で除算した商である。又、転送用符号D2は、転送対象データDを4
2で除算した商である。又、転送用符号D3は、転送対象データDを4
3で除算した商である。但し、プロセッサ120は、除算を、シフト演算により実行してもよい。
【0049】
次に、各プロセッサ120は、生成した書き込み単位を共有パラレルポート130へ共有パラレルポート130における排他制御を行わずに順次書き込む(ステップS220)。
【0050】
続いて、データ分類器160は、共有パラレルポート130からプロセッサ120により書き込まれた書き込み単位を順次読み出す(ステップS310)。
【0051】
続いて、データ分類器160は、読み出した書き込み単位に含まれる一連の転送用符号D0(b
0b
1)、D1(b
2b
3)、D2(b
4b
5)、D3(b
6b
7)を、読み出した書き込み単位に含まれるプロセッサ識別子P(p
0p
1p
2p
3p
4p
5)を表すデータに関連付けされた演算器170へ順次出力する(ステップS320)。
【0052】
続いて、各演算器170は、データ分類器160により出力された一連の転送用符号に基づいて、転送対象データを再構成する(ステップS330)。ここで、転送対象データDは、D0×4
0+D1×4
1+D2×4
2+D3×4
3を算出することにより再構成される。但し、積算は、シフト演算により実行されてもよい。
【0053】
本実施形態における動作の別の具体例について説明する。
【0054】
図5は、本発明の第1の実施形態における情報処理システムの別の動作例を説明する模式図である。
図5において、括弧内はビット表現であることとする。又、転送対象データは、8ビットのデータ(D=b
0b
1b
2b
3b
4b
5b
6b
7)であることとする。又、共有パラレルポート130のバス幅(W)は、8ビットであることとする。又、プロセッサ識別子は、6ビットのデータ(P=p
0p
1p
2p
3p
4p
5)で表現されることとする(Q=6)。又、一連の転送用符号に含まれる各転送用符号は、転送対象データを3進数表現した場合における互いに異なる桁の値を表すこととする(L=(W−Q)ビットの2進数表現で表現可能な最大の整数値−1=3)。
【0055】
まず、各プロセッサ120は、一連の転送用符号D0(t
0t
1)、D1(t
2t
3)、D2(t
4t
5)、D3(t
6t
7)、D4(t
8t
9)、D5(t
10t
11)のそれぞれに、プロセッサ識別子P(p
0p
1p
2p
3p
4p
5)を表すデータを付加することにより、書き込み単位を生成する(ステップS210)。ここで、転送用符号D0は、転送対象データDを3
1で除算した剰余である。又、転送用符号D1は、転送対象データDを3
1で除算した商である。又、転送用符号D2は、転送対象データDを3
2で除算した商である。又、転送用符号D3は、転送対象データDを3
3で除算した商である。又、転送用符号D4は、転送対象データDを3
4で除算した商である。又、転送用符号D5は、転送対象データDを3
5で除算した商である。但し、各プロセッサ120は、一連の転送用符号の先頭にスタート符号S(11)を付加する。スタート符号S(11)は、転送対象データのうちのある転送対象データDの転送開始を示す転送用符号である。転送用符号がスタート符号S(11)を含むので、1つの転送用符号で表現可能な値は、0以上且つ2以下である。
【0056】
次に、各プロセッサ120は、生成した書き込み単位を共有パラレルポート130へ共有パラレルポート130における排他制御を行わずに順次書き込む(ステップS220)。
【0057】
続いて、データ分類器160は、共有パラレルポート130からプロセッサ120により書き込まれた書き込み単位を順次読み出す(ステップS310)。
【0058】
続いて、データ分類器160は、読み出した書き込み単位に含まれる一連の転送用符号D0(t
0t
1)、D1(t
2t
3)、D2(t
4t
5)、D3(t
6t
7)、D4(t
8t
9)、D5(t
10t
11)を、読み出した書き込み単位に含まれるプロセッサ識別子P(p
0p
1p
2p
3p
4p
5)を表すデータに関連付けされた演算器170へ順次出力する(ステップS320)。
【0059】
続いて、各演算器170は、データ分類器160により出力された一連の転送用符号に基づいて、転送対象データを再構成する(ステップS330)。ここで、転送対象データDは、D0×3
0+D1×3
1+D2×3
2+D3×3
3+D4×3
4+D5×3
5を算出することにより再構成される。但し、スタート符号S(11)は、転送対象データDの算出に使用されず、各演算器170が保持するデータを初期化する契機として使用される。
【0060】
以上説明したように、本実施形態の情報処理システム100では、情報処理装置110の各プロセッサ120は、転送対象データを表す一連の転送用符号における各転送用符号に、プロセッサ120の識別番号を表すデータを付加して、共有パラレルポート130へ書き込む。そして、周辺装置150のデータ分類器160は、共有パラレルポート130から読み出した一連の転送用符号を、共有パラレルポート130から読み出したプロセッサ識別子に基づいて、各プロセッサ120に関連付けされた演算器170へ出力する。そして、周辺装置150の演算器170は、プロセッサ120毎に転送対象データを再構成する。ここで、情報処理システム100において、プロセッサ120間で共有される割込み要求レジスタ等のような特別な構成要素は必要ない。従って、本実施形態の情報処理システム100では、複数のプロセッサ120と複数のプロセッサ120により共有される共有パラレルポート130とを有する情報処理装置110から周辺装置150へのデータ転送において、安価な構成により、共有パラレルポート130における排他制御に起因するデッドロックの発生を抑制することができるという効果がある。
(第2の実施形態)
次に、本発明の第1の実施形態を基本とする、本発明の第2の実施形態について説明する。本実施形態における情報処理システムでは、情報処理装置の各プロセッサにより出力された転送対象データが、周辺装置により表示される。又、本実施形態における情報処理システムでは、各プロセッサによるデータ転送において割り込みが許容される。本願において、「割り込み」とは、あるプロセッサ120が、共有パラレルポート130において、第1のデータ転送の途中で第2のデータ転送を開始し、第2のデータ転送の終了後に、第1のデータ転送を継続することとする。同様に、より多重な「割り込み」も定義される。例えば、第2のデータ転送の途中で、更に第3のデータ転送の「割り込み」が行われてもよい。又、あるプロセッサが、ある時点において、いくつのデータに関して割り込みを行っているかを「割り込みのネストレベル」又は単に「ネストレベル」と称することとする。
【0061】
本実施形態における構成について説明する。
【0062】
図6は、本発明の第2の実施形態における情報処理システムの構成の一例を示すブロック図である。
【0063】
本実施形態における情報処理システム105は、情報処理装置110と、周辺装置155とを含む。情報処理装置110と、周辺装置155とは、パラレルポート用のケーブルにより接続される。
【0064】
情報処理装置110は、共有パラレルポート130と、複数のプロセッサ120とを含む。ここで、転送対象データは、例えば、各プロセッサ120のBIOSが出力するPOSTコードである。但し、プロセッサ120は、データ転送において割り込みを行ってもよい。又、プロセッサ120は、共有パラレルポート130に、ある転送対象データを表す転送用符号を書き込む前に、スタート符号を書き込む。プロセッサ120は、データ転送において割り込みを行う際には、元のデータ転送の途中において新たなスタート符号を書き込み、新たなデータ転送の完了後に、元のデータ転送を継続する。
【0065】
周辺装置155は、データ分類器165と、複数の演算器175と、複数の表示器180と、複数のレベルカウンタ190とを含む。
【0066】
レベルカウンタ190は、当該レベルカウンタ190に関連付けされたプロセッサ120によるデータ転送におけるネストレベルを保持する。ここで、各レベルカウンタ190は、各プロセッサ120に関連付けされる。つまり、レベルカウンタ190の台数は、プロセッサ120の台数n以上である。あるレベルカウンタ190とあるプロセッサ120との間の関連付けした状態を表すデータは、例えば、データ分類器165(
図12のCPU903等)が不図示のメモリ(
図12の記憶装置902等)に格納していることとする。
【0067】
データ分類器165は、情報処理装置110により共有パラレルポート130へ書き込まれた書き込み単位を順次読み出す。データ分類器165は、読み出した書き込み単位に含まれる転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータと、当該プロセッサ識別子が示すプロセッサ120のネストレベルの値とから成るセットに関連付けされた演算器175へ順次出力する。ある演算器175と、プロセッサ識別子及びネストレベルの値から成るあるセットとの間の関連付けした状態を表すデータは、例えば、データ分類器165(
図12のCPU903等)が不図示のメモリ(
図12の記憶装置902等)に格納していることとする。
【0068】
各演算器175は、データ分類器165により出力された一連の転送用符号に基づいて、転送対象データを再構成する。ここで、各演算器175は、各プロセッサ120と当該プロセッサ120のネストレベルのある値とから成るセットに関連付けされることとする。各演算器175は、例えば、あるプロセッサ120と当該プロセッサ120のネストレベルのある値とから成るセットに予め関連付けされてもよい。又は、データ分類器165は、プロセッサ識別子を表すデータと当該プロセッサ識別子に関するネストレベルのある値との新規なセットを検出した際に、ある演算器175に、当該セットを識別するデータを動的に関連付けてもよい。つまり、演算器175の台数は、プロセッサ120の台数nにネストレベルの取り得る値の数を乗じた数以上である。
【0069】
表示器180は、演算器175により再構成された転送対象データを表示する。表示器180は、例えば、各プロセッサ120のBIOSにより出力されたPOSTコードを表示する。ここで、各表示器180は、各演算器175に関連付けされることとする。つまり、表示器180の台数は、演算器175の台数以上である。
【0070】
本実施形態におけるその他の構成は、第1の実施形態における構成と同じである。
【0071】
図7は、本発明の第2の実施形態における情報処理システムの実施例を示すブロック図である。
図7では、説明を簡単にするために、ネストレベルの取り得る値の数は2であることとする。又、プロセッサ120及びレベルカウンタ190それぞれの台数nは、64台であることとする。又、演算器175及び表示器180それぞれの台数mは、128台であることとする。又、レベルカウンタ“0”、“1”、・・・、“63”は順に、プロセッサ“0”、“1”、・・・、“63”に予め関連付けされていることとする。又、演算器“00”、“10”、・・・、“630”は順に、プロセッサ“0”、“1”、・・・、“63”とネストレベル“1”とから成るセットに予め関連付けされていることとする。又、演算器“01”、“11”、・・・、“631”は順に、プロセッサ“0”、“1”、・・・、“63”とネストレベル“2”とから成るセットに予め関連付けされていることとする。又、表示器“00”、“10”、・・・、“630”は順に、演算器“00”、“10”、・・・、“630”に予め関連付けされていることとする。又、表示器“01”、“11”、・・・、“631”は順に、演算器“01”、“11”、・・・、“631”に予め関連付けされていることとする。
【0072】
本実施形態における動作について説明する。但し、
図7に示した情報処理システムの実施例における動作について説明する。
(動作例1)
まず、割り込みが発生しない場合の動作について説明する。
【0073】
図8は、本発明の第2の実施形態における情報処理システムの動作例を説明する表である。より具体的には、
図8は、情報処理システム105における周辺装置155の動作例を示す。
図8において、「タイミング」列は動作におけるタイミングを示す。又、「受信符号」列は、データ分類器165が受信した、プロセッサ識別子を表すデータと転送用符号とから成るセットを示す。ここで、“P0”はプロセッサ“0”の識別子を示し、“P1”はプロセッサ“1”の識別子を示す。“S”はスタート符号を示す。“D00”、“D01”、・・・、“D05”は、プロセッサ“0”の転送対象データ(転送対象データ“D0”)を表す一連の転送用符号を示す。“D10”、“D11”、・・・、“D15”は、プロセッサ“1”の転送対象データ(転送対象データ“D1”)を表す一連の転送用符号を示す。「カウンタ0」列は、レベルカウンタ“0”が保持するデータが表す値を示す。「カウンタ1」列は、レベルカウンタ“1”が保持するデータが表す値を示す。「演算器00」列は、演算器“00”が保持するデータが表す値を示す。「演算器10」列は、演算器“10”が保持するデータが表す値を示す。
【0074】
周辺装置155は、以下のように動作する。
【0075】
タイミング1:
データ分類器165は、“P0”,“S”を読み出し、レベルカウンタ“0”を1だけ増加させ、演算器“00”を初期化(
図8では「−」にて表記、以下同様)する。以下の各タイミングを含めて、言及していない他方の演算器は、以前の状態を保持しているので、当該演算器については個々の説明を省略する。
【0076】
タイミング2:
データ分類器165は、“P1”,“S”を読み出し、レベルカウンタ“1”を1だけ増加させ、演算器“10”を初期化する。
【0077】
タイミング3:
データ分類器165は、“P1”,“D10”を読み出し、演算器“10”へ出力する。これに応じて、演算器“10”は、入力された値“D10”を保持する。
【0078】
タイミング4:
データ分類器165は、“P0”,“D00”を読み出し、演算器“00”へ出力する。これに応じて、演算器“00”は、入力された値“D00”を保持する。
【0079】
タイミング5:
データ分類器165は、“P1”,“D11”を読み出し、演算器“10”へ出力する。これに応じて、演算器“10”は、入力された値“D11”に3を乗じた値を、保持していた値“D10”に加算する。
【0080】
タイミング6:
データ分類器165は、“P0”,“D01”を読み出し、演算器“00”へ出力する。これに応じて、演算器“00”は、入力された値“D01”に3を乗じた値を、保持していた値“D00”に加算する。
【0081】
タイミング7:
データ分類器165は、“P0”,“D02”を読み出し、演算器“00”へ出力する。これに応じて、演算器“00”は、入力された値“D02”に3
2を乗じた値を、保持していた値“D00+D01×3”に加算する。
【0082】
タイミング8:
データ分類器165は、“P1”,“D12”を読み出し、演算器“10”へ出力する。これに応じて、演算器“10”は、入力された値“D12”に3
2を乗じた値を、保持していた値“D10+D11×3”に加算する。
・・・(中略)・・・
タイミング13:
データ分類器165は、“P0”,“D05”を読み出し、演算器“00”へ出力する。これに応じて、演算器“00”は、入力された値“D05”に3
5を乗じた値を、保持していた値“D00+D01×3+D02×3
2+D03×3
3+D04×3
4”に加算する。続いて、演算器“00”は、レベルカウンタ“0”を1だけ減少させる。本例においては、以上説明した動作により、演算器“00”は、転送対象データ“D0”の再構成を完了する。
【0083】
タイミング14:
データ分類器165は、“P1”,“D15”を読み出し、演算器“10”へ出力する。これに応じて、演算器“10”は、入力された値“D15”に3
5を乗じた値を、保持していた値“D10+D11×3+D12×3
2+D13×3
3+D14×3
4”に加算する。続いて、演算器“10”は、レベルカウンタ“1”を1だけ減少させる。本例においては、以上説明した動作により、演算器“10”は、転送対象データ“D1”の再構成を完了する。
(動作例2)
次に、割り込みが発生する場合の動作について説明する。
【0084】
図9は、本発明の第2の実施形態における情報処理システムの別の動作例を説明する表である。より具体的には、
図9は、情報処理システム105における周辺装置155の動作例を示す。
図9における記述方法は、
図8における記述方法と同じである。但し、“D00”、“D01”、・・・、“D05”は、プロセッサ“0”の転送対象データ(転送対象データ“D0”)を表す一連の転送用符号を示す。又、“D10”、“D11”、・・・、“D15”は、プロセッサ“0”の別の転送対象データ(転送対象データ“D1”)を表す一連の転送用符号を示す。又、「演算器01」列は、演算器“01”が保持するデータが表す値を示す。
【0085】
周辺装置155は、以下のように動作する。
【0086】
タイミング1:
データ分類器165は、“P0”,“S”を読み出し、レベルカウンタ“0”を1だけ増加させ、演算器“00”を初期化(
図9では「−」にて表記、以下同様)する。以下の各タイミングを含めて、言及していない他方の演算器は、以前の状態を保持しているので、当該演算器については個々の説明を省略する。
【0087】
タイミング2:
データ分類器165は、“P0”,“D00”を読み出し、演算器“00”へ出力する。これに応じて、演算器“00”は、入力された値“D00”を保持する。
【0088】
タイミング3:
データ分類器165は、“P0”,“D01”を読み出し、演算器“00”へ出力する。これに応じて、演算器“00”は、入力された値“D01”に3を乗じた値を、保持していた値“D00”に加算する。
【0089】
タイミング4:
データ分類器165は、“P0”,“D02”を読み出し、演算器“00”へ出力する。これに応じて、演算器“00”は、入力された値“D02”に3
2を乗じた値を、保持していた値“D00+D01×3”に加算する。
【0090】
タイミング5:
データ分類器165は、“P0”,“S”を読み出し、レベルカウンタ“0”を1だけ増加させ、演算器“01”を初期化する。
【0091】
タイミング6:
データ分類器165は、“P0”,“D10”を読み出し、演算器“01”へ出力する。これに応じて、演算器“01”は、入力された値“D10”を保持する。
【0092】
タイミング7:
データ分類器165は、“P0”,“D11”を読み出し、演算器“01”へ出力する。これに応じて、演算器“01”は、入力された値“D11”に3を乗じた値を、保持していた値“D10”に加算する。
【0093】
タイミング8:
データ分類器165は、“P0”,“D12”を読み出し、演算器“01”へ出力する。これに応じて、演算器“01”は、入力された値“D12”に3
2を乗じた値を、保持していた値“D10+D11×3”に加算する。
・・・(中略)・・・
タイミング11:
データ分類器165は、“P0”,“D15”を読み出し、演算器“01”へ出力する。これに応じて、演算器“01”は、入力された値“D15”に3
5を乗じた値を、保持していた値“D10+D11×3+D12×3
2+D13×3
3+D14×3
4”に加算する。続いて、演算器“01”は、レベルカウンタ“0”を1だけ減少させる。本例においては、以上説明した動作により、演算器“01”は、転送対象データ“D1”の再構成を完了する。
・・・(中略)・・・
タイミング14:
データ分類器165は、“P0”,“D05”を読み出し、演算器“00”へ出力する。
これに応じて、演算器“00”は、入力された値“D05”に3
5を乗じた値を、保持していた値“D00+D01×3+D02×3
2+D03×3
3+D04×3
4”に加算する。続いて、演算器“00”は、レベルカウンタ“0”を1だけ減少させる。本例においては、以上説明した動作により、演算器“00”は、転送対象データ“D0”の再構成を完了する。
【0094】
本実施形態におけるその他の動作は、第1の実施形態における動作と同じである。
【0095】
以上説明したように、本実施形態の情報処理システム105は、第1の実施形態の情報処理システム100の構成要素を含む。従って、本実施形態の情報処理システム105は、第1の実施形態の情報処理システム100と同じ効果を有する。
【0096】
又、本実施形態の情報処理システム105は、第1の実施形態の情報処理システム100の構成要素に加えて、レベルカウンタ190を含む。そして、本実施形態の情報処理システム105では、周辺装置155がレベルカウンタ190を有するので、データ転送の割り込みが可能である。従って、本実施形態の情報処理システム105は、第1の実施形態の情報処理システム100における効果に加えて、データ転送の割り込みが可能であるという効果を有する。
【0097】
又、本実施形態の情報処理システム105は、第1の実施形態の情報処理システム100の構成要素に加えて、表示器180を含む。そして、本実施形態の情報処理システム105では、周辺装置155が表示器180を有するので、転送対象データの表示が可能である。従って、本実施形態の情報処理システム105は、第1の実施形態の情報処理システム100における効果に加えて、転送対象データの表示が可能であるという効果を有する。
(第3の実施形態)
次に、本発明の第1の実施形態を基本とする、本発明の第3の実施形態について説明する。本実施形態における情報処理システムでは、情報処理装置の各プロセッサにより出力された転送対象データが、周辺装置に接続された外部の被制御装置へ中継される。
【0098】
本実施形態における構成について説明する。
【0099】
図10は、本発明の第3の実施形態における情報処理システムの構成の一例を示すブロック図である。
【0100】
本実施形態における情報処理システム106は、情報処理装置110と、周辺装置156と、複数の被制御装置210とを含む。情報処理装置110と、周辺装置156とは、パラレルポート用のケーブルにより接続される。周辺装置156と、各被制御装置210とは、それぞれ別のパラレルポート用のケーブルにより接続される。
【0101】
周辺装置156は、データ分類器160と、複数の演算器170と、複数の専用パラレルポート136とを含む。
【0102】
専用パラレルポート136は、演算器170により再構成された転送対象データを出力する。専用パラレルポート136は、例えば、各プロセッサ120により出力された被制御装置210に対する制御命令を出力する。ここで、各専用パラレルポート136は、各演算器170に関連付けされることとする。つまり、専用パラレルポート136の台数は、演算器170の台数以上である。
【0103】
被制御装置210は、周辺装置156により出力された転送対象データに基づいて動作する。被制御装置210は、例えば、専用パラレルポート136から受信した命令に基づいて動作する工作機械である。
【0104】
本実施形態におけるその他の構成は、第1の実施形態における構成と同じである。
【0105】
本実施形態における動作について説明する。
【0106】
図11は、本発明の第3の実施形態における情報処理システムが適用される対象の構成の一例を示すブロック図である。
【0107】
本実施形態の適用対象である情報処理システム109は、情報処理装置119と、複数の被制御装置210とを含む。
【0108】
情報処理装置119は、複数のプロセッサ129と、複数の専用パラレルポート139とを含む。プロセッサ129同士は、互いにデータ通信可能でなくてもよい。各専用パラレルポート139は、当該専用パラレルポート139に予め関連付けされた1台のプロセッサ129により占有される。
【0109】
被制御装置210は、情報処理装置119により出力された転送対象データに基づいて動作する。被制御装置210は、例えば、専用パラレルポート139から受信した命令に基づいて動作する工作機械である。ここで、専用パラレルポート139は、専用パラレルポート136と互換性のあるインタフェースを有することとする。例えば、専用パラレルポート139と専用パラレルポート136とは、同じバス幅を有し、同じ規格に準拠する。
【0110】
情報処理装置119の各プロセッサ129上で動作していたプログラムを、本実施形態における情報処理装置110へ移植する場合について説明する。但し、情報処理装置110は、プロセッサ120毎の専用パラレルポートを含まないこととする。
【0111】
情報処理装置119の各プロセッサ129上で動作していたプログラム(移植対象プログラム)は、専用パラレルポート139へ書き込んだ転送対象データに基づいて、被制御装置210を動作させる。一方、情報処理装置110の各プロセッサ120上で動作するプログラム(移植後プログラム)は、共有パラレルポート130へ書き込んだ転送対象データに基づいて、被制御装置210を動作させる。移植対象プログラムと移植後プログラムとの違いは、転送対象データを書き込むパラレルポートが、専用パラレルポート139であるか又は共有パラレルポート130であるかの違いのみである。そして、共有パラレルポート130における排他制御は不要であるから、移植対象プログラムから移植後プログラムへの移植は容易である。
【0112】
そして、周辺装置156は、共有パラレルポート130から読み出したデータをプロセッサ120毎に異なる被制御装置210へ転送する。被制御装置210に対する情報処理システム106における専用パラレルポート136のインタフェースは、情報処理システム109における専用パラレルポート139と互換性を有する。
【0113】
以上説明したように、本実施形態の情報処理システム106では、情報処理システム109上で動作していたプログラムを移植することは容易である。そして、周辺装置156は、被制御装置210に対して、情報処理システム109におけるインタフェースと互換性のあるインタフェースを提供する。従って、本実施形態の情報処理システム106には、情報処理システム109上で動作していたプログラムの移植に要するコストを抑制できるという効果がある。
【0114】
図12は、本発明の各実施形態における情報処理装置又は周辺装置を実現可能なハードウェア構成の一例を示すブロック図である。
【0115】
情報処理装置907又は周辺装置907は、記憶装置902と、CPU(Central Processing Unit)903と、I/O(Input/Output)装置908とを備え、これらが内部バス906によって接続されている。情報処理装置907では、CPU903は、マルチプロセッサを含む。情報処理装置907では、I/O装置908は、パラレルポートを含む。記憶装置902は、プロセッサ120、データ分類器160、演算器170等のCPU903の動作プログラムを格納する。CPU903は、情報処理装置907又は周辺装置907全体を制御し、記憶装置902に格納された動作プログラムを実行し、I/O装置908を介してプロセッサ120、データ分類器160、演算器170等のプログラムの実行やデータの送受信を行なう。なお、上記の情報処理装置907又は周辺装置907の内部構成は一例である。周辺装置907は、表示器等を更に接続した装置構成であってもよい。
【0116】
上述した本発明の各実施形態における情報処理装置又は周辺装置は、専用の装置によって実現してもよいが、I/O装置908が外部との通信を実行するハードウェアの動作以外は、コンピュータ(情報処理装置)によっても実現可能である。本発明の各実施形態において、I/O装置908は、例えば、プロセッサ120、データ分類器160、演算器170等との入出力部である。この場合、係るコンピュータは、記憶装置902に格納されたソフトウェア・プログラムをCPU903に読み出し、読み出したソフトウェア・プログラムをCPU903において実行する。上述した各実施形態の場合、係るソフトウェア・プログラムには、上述したところの、
図1、
図6、又は
図10に示した情報処理装置又は周辺装置の各部の機能を実現可能な記述がなされていればよい。ただし、これらの各部には、適宜ハードウェアを含むことも想定される。そして、このような場合、係るソフトウェア・プログラム(コンピュータ・プログラム)は、本発明を構成すると捉えることができる。更に、係るソフトウェア・プログラムを格納した、コンピュータ読み取り可能な記憶媒体も、本発明を構成すると捉えることができる。
【0117】
以上、本発明を、上述した各実施形態及びその変形例によって例示的に説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態及びその変形例に記載した範囲に限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項により明らかである。
【0118】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置と、データ分類手段、及び前記複数のプロセッサの台数以上の演算手段を含む周辺装置とを備えた情報処理システムであって、
各前記プロセッサは、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込み、
前記データ分類手段は、
前記共有パラレルポートから前記書き込み単位を順次読み出し、
読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
前記演算手段は、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する
情報処理システム。
(付記2)
前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
付記1に記載の情報処理システム。
(付記3)
前記周辺装置は、各前記プロセッサにおける割り込みのネストレベルを表すデータを保持する、前記プロセッサ識別子を表すデータに関連付けされたレベルカウンタを更に備え、
前記プロセッサは、前記転送対象データのうちのある転送対象データの転送開始を示す前記転送用符号であるスタート符号を、前記スタート符号を除く、該ある転送対象データを表現する前記一連の転送用符号の書き込み以前に前記共有パラレルポートへ書き込み、
前記データ分類手段は、
前記共有パラレルポートから前記書き込み単位を順次読み出し、
読み出した前記書き込み単位に前記スタート符号が含まれる場合に、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルを表すデータを1だけ増加させ、
読み出した前記書き込み単位に含まれる、前記スタート符号を除く前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータと、該プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルとから成るセットに関連付けされた前記演算手段へ順次出力し、
前記演算手段は、
前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成し、
該演算手段に関連付けされた前記プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルを表すデータを1だけ減少させる
付記1又は2に記載の情報処理システム。
(付記4)
各前記演算手段は、互いに異なる出力先に接続され、前記再構成した前記転送対象データを、該演算手段に接続された前記出力先へ出力する
付記1乃至3の何れか1項に記載の情報処理システム。
(付記5)
前記転送対象データは、前記情報処理装置の電源が投入された際に実行される自己診断処理における状態を示すコードであり、
前記周辺装置は、各前記演算手段に接続された、該演算手段により再構成された前記コードを表示する表示手段を更に備える
付記1乃至4の何れか1項に記載の情報処理システム。
(付記6)
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを備えた情報処理装置であって、
各前記プロセッサは、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込む
情報処理装置。
(付記7)
データ分類手段及び複数の演算手段を備えた周辺装置であって、
前記データ分類手段は、
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置が有する前記共有パラレルポートから、前記情報処理装置が転送する転送対象データを表すことが可能な一連の転送用符号のそれぞれに、前記情報処理装置が有する各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を順次読み出し、
読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
前記演算手段は、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する
周辺装置。
(付記8)
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置と、データ分類手段、及び前記複数のプロセッサの台数以上の演算手段を含む周辺装置とを備えた情報処理システムにおけるデータ転送方法であって、
各前記プロセッサにより、転送対象データを構成可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込み、
前記データ分類手段により、
前記共有パラレルポートから前記書き込み単位を順次読み出し、
読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
前記演算手段により、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記1つの転送対象データを再構成する
データ転送方法。
(付記9)
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを備えた情報処理装置が備えるコンピュータに、
転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込む処理
を実行させる情報処理装置のデータ転送プログラム。
(付記10)
データ分類手段及び複数の演算手段を備えた周辺装置が備えるコンピュータに、
前記データ分類手段により、
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置が有する前記共有パラレルポートから、前記情報処理装置が転送する転送対象データを表すことが可能な一連の転送用符号のそれぞれに、前記情報処理装置が有する各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を順次読み出し、
読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力する処理と、
前記演算手段により、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する処理と
を実行させる周辺装置のデータ転送プログラム。
(付記11)
前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
付記6に記載の情報処理装置。
(付記12)
前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
付記7に記載の周辺装置。
(付記13)
前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
付記8に記載のデータ転送方法。
(付記14)
前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
付記9に記載情報処理装置のデータ転送プログラム。
(付記15)
前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
付記10に記載の周辺装置のデータ転送プログラム。