(57)【要約】【課題】複数のプロセッサと共有パラレルポートとを有する情報処理装置から周辺装置へのデータ転送において、安価な構成により、共有パラレルポートにおける排他制御に起因するデッドロックの発生を抑制する。【解決手段】複数のプロセッサと共有パラレルポート（ポート）とを含む情報処理装置と、データ分類手段及び複数の演算手段を含む周辺装置とを備えた情報処理システムであって、各プロセッサは、あるデータを表すことが可能な一連の符号のそれぞれに、各プロセッサ識別子を付加することにより、ポートのバス幅において１回で書き込み可能な書込単位を生成し、書込単位をポートへ排他制御を行わずに順次書き込み、データ分類手段は、ポートから書込単位を順次読み出し、書込単位に含まれる一連の符号を、書込単位に含まれるプロセッサ識別子に関連付けされた演算手段へ順次出力し、演算手段は一連の符号に基づいて元のデータを再構成する。【選択図】      図１
2018120323.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置と、データ分類手段、及び前記複数のプロセッサの台数以上の演算手段を含む周辺装置とを備えた情報処理システムであって、
各前記プロセッサは、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、前記共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込み、
前記データ分類手段は、
前記共有パラレルポートから前記書き込み単位を順次読み出し、
読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
前記演算手段は、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する
情報処理システム。
【請求項２】
前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをＬ（Ｌは２以上の整数）進数表現した場合における互いに異なる桁の値を表す
請求項１に記載の情報処理システム。
【請求項３】
前記周辺装置は、各前記プロセッサにおける割り込みのネストレベルを表すデータを保持する、前記プロセッサ識別子を表すデータに関連付けされたレベルカウンタを更に備え、
前記プロセッサは、前記転送対象データのうちのある転送対象データの転送開始を示す前記転送用符号であるスタート符号を、前記スタート符号を除く、該ある転送対象データを表現する前記一連の転送用符号の書き込み以前に前記共有パラレルポートへ書き込み、
前記データ分類手段は、
前記共有パラレルポートから前記書き込み単位を順次読み出し、
読み出した前記書き込み単位に前記スタート符号が含まれる場合に、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルを表すデータを１だけ増加させ、
読み出した前記書き込み単位に含まれる、前記スタート符号を除く前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータと、該プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルとから成るセットに関連付けされた前記演算手段へ順次出力し、
前記演算手段は、
前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成し、
該演算手段に関連付けされた前記プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルを表すデータを１だけ減少させる
請求項１又は２に記載の情報処理システム。
【請求項４】
各前記演算手段は、互いに異なる出力先に接続され、前記再構成した前記転送対象データを、該演算手段に接続された前記出力先へ出力する
請求項１乃至３の何れか１項に記載の情報処理システム。
【請求項５】
前記転送対象データは、前記情報処理装置の電源が投入された際に実行される自己診断処理における状態を示すコードであり、
前記周辺装置は、各前記演算手段に接続された、該演算手段により再構成された前記コードを表示する表示手段を更に備える
請求項１乃至４の何れか１項に記載の情報処理システム。
【請求項６】
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを備えた情報処理装置であって、
各前記プロセッサは、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、前記共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込む
情報処理装置。
【請求項７】
データ分類手段及び複数の演算手段を備えた周辺装置であって、
前記データ分類手段は、
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置が有する前記共有パラレルポートから、前記情報処理装置が転送する転送対象データを表すことが可能な一連の転送用符号のそれぞれに、前記情報処理装置が有する各前記プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、前記共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を順次読み出し、
読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
前記演算手段は、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する
周辺装置。
【請求項８】
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置と、データ分類手段、及び前記複数のプロセッサの台数以上の演算手段を含む周辺装置とを備えた情報処理システムにおけるデータ転送方法であって、
各前記プロセッサにより、転送対象データを構成可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、前記共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込み、
前記データ分類手段により、
前記共有パラレルポートから前記書き込み単位を順次読み出し、
読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
前記演算手段により、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記１つの転送対象データを再構成する
データ転送方法。
【請求項９】
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを備えた情報処理装置が備えるコンピュータに、
転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、前記共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込む処理
を実行させる情報処理装置のデータ転送プログラム。
【請求項１０】
データ分類手段及び複数の演算手段を備えた周辺装置が備えるコンピュータに、
前記データ分類手段により、
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置が有する前記共有パラレルポートから、前記情報処理装置が転送する転送対象データを表すことが可能な一連の転送用符号のそれぞれに、前記情報処理装置が有する各前記プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、前記共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を順次読み出し、
読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力する処理と、
前記演算手段により、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する処理と
を実行させる周辺装置のデータ転送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを有する情報処理装置から周辺装置へのデータ転送技術に関する。
【背景技術】
【０００２】
サーバ等のコンピュータが有するＢＩＯＳ（Basic Input/Output System）は、コンピュータの電源投入時に、電源投入時自己診断（ＰＯＳＴ：Power On Self Test）を実行する。ＢＩＯＳは、ＰＯＳＴにおいてエラー等のイベントが発生すると、例えば、特定のエラー又は状態を示す番号であるＰＯＳＴコードを出力する。ＢＩＯＳは、例えば、あるアドレスに関連付けされたＩ／Ｏ（Input Output）ポートへＰＯＳＴコードを出力する。Ｉ／Ｏポートへ出力されたＰＯＳＴコードは、例えば、コンピュータにロジックアナライザやＰＯＳＴカードを接続することにより、取得可能である。
【０００３】
近年のプロセッサにおける集積度の向上に伴い、複数のプロセッサ（マルチプロセッサ）が１台のサーバに実装される機会が増加した。マルチプロセッサを有するサーバにおいては、各プロセッサによる共有リソースに対する排他制御等に起因して、デッドロックが発生する可能性がある。本願において、「排他制御」とは、複数のプロセッサにより利用可能な共有リソースに対し、複数のプロセッサからの同時アクセスにより競合が発生する場合に、あるプロセッサに共有リソースを独占的に利用させている間には、他のプロセッサがその共有リソースを利用できないように制御する処理であることとする。又、本願において、「デッドロック」とは、複数のプロセッサのそれぞれにおける処理が、互いに他のプロセッサにおける処理を待つ結果、何れの処理も完了できないことであることとする。共有リソースに対する排他制御に関する状況の確認には、ＩＣＥ（In-Circuit Emulator、登録商標）等のデバッグ装置が利用できる。しかしながら、コンピュータの製造コスト削減等のためにデバッグ用回路が用意されていない結果、デバッグ装置を利用できないことがある。
【０００４】
マルチプロセッサを有するサーバにおいても、シングルプロセッサを有するサーバとの互換性を維持するために、ＰＯＳＴコードはＩ／Ｏポートへ出力されることが多い。ところが、プロセッサ毎にＩ／Ｏポートを設けると、コンピュータの製造コストが上昇する。そのため、マルチプロセッサを有するサーバにおいて、ＰＯＳＴコードは、各プロセッサにより共有されるＩ／Ｏポート（以下、「共有Ｉ／Ｏポート」と称する）へ出力されることがある。
【０００５】
マルチプロセッサを有するサーバにおいても、各プロセッサが有するＢＩＯＳにより共有Ｉ／Ｏポートへ出力されたＰＯＳＴコードを取得できることが望ましい。ところが、共有Ｉ／Ｏポートも各プロセッサにより共有されるので、共有Ｉ／Ｏポートに対する排他制御自体がデッドロックの発生に影響する可能性がある。
【０００６】
複数のメモリ管理手段が共有メモリにアクセスする技術の一例が、特許文献１に開示されている。特許文献１のデータストリーム解析システムは、データ記憶手段と、複数のメモリ管理手段と、１つ以上のメモリ格納手段と、対応関係記憶手段とを含む。
【０００７】
メモリ管理手段は、共有メモリ管理手段と、専用メモリ管理手段とに分けられる。共有メモリ管理手段は、排他制御を行った後にメモリプールに対する手続きを行う。専用メモリ管理手段は、排他制御を行わずにメモリプールに対する手続きを行う。データ記憶手段では、解析用にデータを格納するためのメモリ領域が、複数のメモリプールとして割り当てられる。各メモリ管理手段は、複数のメモリプールのうちの何れか１つのメモリプールと１対１の対応関係を有する。各メモリ管理手段は、当該メモリ管理手段と対応関係を有する１つのメモリプールに対する手続きをとりまとめて行う。メモリ格納手段は、予め区分けされたデータの種類別に独立して動作し、解析対象であるデータが発生すると、メモリ領域に当該データを格納する。対応関係記憶手段は、メモリ格納手段とメモリ管理手段との対応関係を示す情報を記憶する。メモリ格納手段は、解析対象であるデータが発生すると、当該メモリ格納手段と対応関係を有するメモリ管理手段を用いて、複数のメモリプールの何れかから確保したメモリ領域に当該データを格納する。
【０００８】
上記構成の結果、特許文献１のデータストリーム解析システムは、連続して発生する情報を逐次的に解析するデータストリーム解析システムにおいて、メモリの使用効率と実行速度とのバランスをとる。
【０００９】
しかしながら、特許文献１のデータストリーム解析システムには、共有メモリ管理手段が排他制御を行った後にメモリプールに対する手続きを行う必要があるという問題点がある。
【００１０】
複数のプロセッサが共通メモリ（共有メモリ）にアクセスする技術の一例が、特許文献２に開示されている。特許文献２のプロセッサ間におけるサービス要求制御方式は、共通バスに接続された主記憶装置（共有メモリ）と複数のＣＰＵ（Central Processing Unit）（２−１〜２−ｎ，ｎは自然数）とを含む。
【００１１】
主記憶装置には、ＣＰＵ（２−ｋ）からＣＰＵ（２−ｍ）（ｋ＝１〜ｎ，ｍ＝１〜ｎ，ｋ≠ｍ：ｋ，ｍはともに自然数）に転送するデータ（ｋ→ｍ）を格納するデータ領域（１０−ｉ：ｉ＝１〜ｎ）が割り当てられる。各ＣＰＵ（２−１〜２−ｎ）は、割込み要求レジスタ（３−１〜３−ｎ）を有する。ＣＰＵ（２−ｋ）は、送信データ（ｋ→ｍ）を主記憶装置におけるデータ領域（１０−ｉ）に格納した後、割込み要求レジスタ（３−ｍ）のｋビット目に１を書き込むことにより、ＣＰＵ（２−ｍ）に割込みを発生させてデータを送信したことを通知する。ＣＰＵ（２−ｍ）は、その割込み要求レジスタ（３−ｍ）の内容を読み込んで、オンであるビットを調べる。そして、ＣＰＵ（２−ｍ）は、ｋビット目に対応する主記憶装置のデータ転送領域（１０−ｉ）のデータ（ｋ→ｍ）を読み込むことにより、ＣＰＵ（２−ｋ）からＣＰＵ（２−ｍ）にデータ（ｋ→ｍ）を転送する。
【００１２】
上記構成の結果、特許文献２のサービス要求制御方式では、共通メモリの排他制御を意識することなく、プロセッサ間におけるサービス要求の受渡しが行われる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００９−８７１８９号公報
【特許文献２】特開平５−２１６７９２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、特許文献２のサービス要求制御方式では、ＣＰＵ毎にｎビットの割込み要求レジスタが必要である。つまり、特許文献２のサービス要求制御方式には、割込み要求レジスタが無い場合に比べて、製造コストが増加するという問題点がある。
【００１５】
本発明は、上記の課題に鑑みてなされたもので、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを有する情報処理装置から周辺装置へのデータ転送において、安価な構成により、共有パラレルポートにおける排他制御に起因するデッドロックの発生を抑制することを主たる目的とする。
【課題を解決するための手段】
【００１６】
本発明の一態様において、情報処理システムは、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置と、データ分類手段、及び複数のプロセッサの台数以上の演算手段を含む周辺装置とを備えた情報処理システムであって、各プロセッサは、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を生成し、生成した書き込み単位を共有パラレルポートへ共有パラレルポートにおける排他制御を行わずに順次書き込み、データ分類手段は、共有パラレルポートから書き込み単位を順次読み出し、読み出した書き込み単位に含まれる一連の転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータに関連付けされた演算手段へ順次出力し、演算手段は、データ分類手段により出力された一連の転送用符号に基づいて転送対象データを再構成する。
【００１７】
本発明の一態様において、情報処理装置は、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを備えた情報処理装置であって、各プロセッサは、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を生成し、生成した書き込み単位を共有パラレルポートへ共有パラレルポートにおける排他制御を行わずに順次書き込む。
【００１８】
本発明の一態様において、周辺装置は、データ分類手段及び複数の演算手段を備えた周辺装置であって、データ分類手段は、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置が有する共有パラレルポートから、情報処理装置が転送する転送対象データを表すことが可能な一連の転送用符号のそれぞれに、情報処理装置が有する各プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を順次読み出し、読み出した書き込み単位に含まれる一連の転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータに関連付けされた演算手段へ順次出力し、演算手段は、データ分類手段により出力された一連の転送用符号に基づいて転送対象データを再構成する。
【００１９】
本発明の一態様において、データ転送方法は、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置と、データ分類手段、及び複数のプロセッサの台数以上の演算手段を含む周辺装置とを備えた情報処理システムにおけるデータ転送方法であって、各プロセッサにより、転送対象データを構成可能な一連の転送用符号のそれぞれに、各プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を生成し、生成した書き込み単位を共有パラレルポートへ共有パラレルポートにおける排他制御を行わずに順次書き込み、データ分類手段により、共有パラレルポートから書き込み単位を順次読み出し、読み出した書き込み単位に含まれる一連の転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータに関連付けされた演算手段へ順次出力し、演算手段により、データ分類手段により出力された一連の転送用符号に基づいて１つの転送対象データを再構成する。
【００２０】
本発明の一態様において、データ転送プログラム又は、係るデータ転送プログラムが格納された記録媒体は、情報処理装置が備えるコンピュータに、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを備えた情報処理装置が備えるコンピュータに、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を生成し、生成した書き込み単位を共有パラレルポートへ共有パラレルポートにおける排他制御を行わずに順次書き込む処理を実行させる。
【００２１】
本発明の一態様において、データ転送プログラム又は、係るデータ転送プログラムが格納された記録媒体は、周辺装置が備えるコンピュータに、データ分類手段及び複数の演算手段を備えた周辺装置が備えるコンピュータに、データ分類手段により、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置が有する共有パラレルポートから、情報処理装置が転送する転送対象データを表すことが可能な一連の転送用符号のそれぞれに、情報処理装置が有する各プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を順次読み出し、読み出した書き込み単位に含まれる一連の転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータに関連付けされた演算手段へ順次出力する処理と、演算手段により、データ分類手段により出力された一連の転送用符号に基づいて転送対象データを再構成する処理とを実行させる。
【発明の効果】
【００２２】
本発明によれば、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを有する情報処理装置から周辺装置へのデータ転送において、安価な構成により、共有パラレルポートにおける排他制御に起因するデッドロックの発生を抑制することができるという効果がある。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１の実施形態における情報処理システムの構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態における情報処理装置の動作を示すフローチャートである。
【図３】本発明の第１の実施形態における周辺装置の動作を示すフローチャートである。
【図４】本発明の第１の実施形態における情報処理システムの動作例を説明する模式図である。
【図５】本発明の第１の実施形態における情報処理システムの別の動作例を説明する模式図である。
【図６】本発明の第２の実施形態における情報処理システムの構成の一例を示すブロック図である。
【図７】本発明の第２の実施形態における情報処理システムの実施例を示すブロック図である。
【図８】本発明の第２の実施形態における情報処理システムの動作例を説明する表である。
【図９】本発明の第２の実施形態における情報処理システムの別の動作例を説明する表である。
【図１０】本発明の第３の実施形態における情報処理システムの構成の一例を示すブロック図である。
【図１１】本発明の第３の実施形態における情報処理システムが適用される対象の構成の一例を示すブロック図である。
【図１２】本発明の各実施形態における情報処理装置又は周辺装置を実現可能なハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施形態について、図面を参照して詳細に説明する。なお、すべての図面において、同等な構成要素には同じ符号を付し、適宜説明を省略する。
（第１の実施形態）
本発明の各実施形態の基本である、本発明の第１の実施形態について説明する。
【００２５】
本実施形態における構成について説明する。
【００２６】
図１は、本発明の第１の実施形態における情報処理システムの構成の一例を示すブロック図である。
【００２７】
本実施形態における情報処理システム１００は、情報処理装置１１０と、周辺装置１５０とを含む。情報処理装置１１０と、周辺装置１５０とは、パラレルポート用のケーブルにより接続される。
【００２８】
情報処理装置１１０は、共有パラレルポート１３０と、複数のプロセッサ１２０とを含む。
【００２９】
共有パラレルポート１３０は、複数のデータ信号を互いに異なる通信線を経由して同時並行的に送受信する。共有パラレルポート１３０は、例えば、ＩＳＡ（Industry Standard Architecture）又はＩＥＥＥ（The Institute of Electrical and Electronics Engineers）１２８４に準拠する。共有パラレルポート１３０は、各プロセッサ１２０により共有される。
【００３０】
各プロセッサ１２０は、転送対象であるデータ（以下、「転送対象データ」と称する）を、共有パラレルポート１３０を利用して、周辺装置１５０へ送信する。以下では、情報処理装置１１０に含まれるプロセッサ１２０の台数は、ｎ（ｎは２以上の整数）台であることとする。そして、ｋ（ｋは０乃至ｎ−１の整数）番目のプロセッサ１２０を“プロセッサｋ”とも称す。
【００３１】
各プロセッサ１２０は、一連の転送用符号のそれぞれに、プロセッサ識別子を表すデータを付加することにより、書き込み単位を生成する。ここで、転送用符号は、転送対象データを表すことが可能な、共有パラレルポート１３０を経由して送受信される符号である。又、プロセッサ識別子は、各プロセッサ１２０の識別子である。プロセッサ識別子は、Ｑ（Ｑは１以上の整数）ビットで表現可能であることとする。又、書き込み単位は、共有パラレルポート１３０のバス幅において１回で書き込み可能なデータである。共有パラレルポート１３０のバス幅は、Ｗ（Ｗは２以上の整数）ビットであることとする。
【００３２】
一連の転送用符号に含まれる各転送用符号は、所定の順序で送信される。一連の転送用符号に含まれる各転送用符号は、例えば、転送対象データをＬ（Ｌは２以上の整数）進数表現した場合における互いに異なる桁の値を表す。ここで、Ｌは、（Ｗ−Ｑ）ビットの２進数表現で表現可能な最大の整数値以下である。
【００３３】
各プロセッサ１２０は、生成した書き込み単位を共有パラレルポート１３０へ共有パラレルポート１３０における排他制御を行わずに順次書き込む。各プロセッサ１２０により共有パラレルポート１３０へ書き込まれた書き込み単位は、周辺装置１５０へ送信される。
【００３４】
周辺装置１５０は、データ分類器１６０と、複数の演算器１７０とを含む。
【００３５】
データ分類器１６０は、共有パラレルポート１３０からプロセッサ１２０により書き込まれた書き込み単位を順次読み出す。
【００３６】
データ分類器１６０は、読み出した書き込み単位に含まれる転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータに関連付けされた演算器１７０へ順次出力する。ここで、各演算器１７０は、特定のプロセッサ識別子を表すデータに予め関連付けされることとする。又は、データ分類器１６０は、新規なプロセッサ識別子を表すデータを検出した際に、ある演算器１７０に、当該プロセッサ識別子を表すデータを動的に関連付けてもよい。ある演算器１７０とあるプロセッサ１２０との間の関連付けした状態を表すデータは、例えば、データ分類器１６０（図１２のＣＰＵ９０３等）が不図示のメモリ（図１２の記憶装置９０２等）に格納していることとする。以下では、周辺装置１５０に含まれる演算器１７０の台数は、ｍ（ｍは２以上且つｎ以下の整数）台であることとする。そして、ｋ（ｋは０乃至ｍ−１の整数）番目の演算器１７０を“演算器ｋ”とも称す。
【００３７】
各演算器１７０は、データ分類器１６０により出力された一連の転送用符号に基づいて、転送対象データを再構成する。ここで、「再構成する」とは、送信側装置により書き込まれた、ある転送対象データを表す一連の転送用符号を、受信側装置により読み出し、読み出した一連の転送用符号に基づいて、当該受信側装置において当該転送対象データを生成することとする。各演算器１７０は、例えば、所定の順序で読み出された、転送対象データをＬ進数表現した場合における互いに異なる桁の値を表す各転送用符号に基づいて、転送対象データを算出する。
【００３８】
本実施形態における動作について説明する。
【００３９】
図２は、本発明の第１の実施形態における情報処理装置の動作を示すフローチャートである。尚、図２に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
【００４０】
まず、各プロセッサ１２０は、一連の転送用符号のそれぞれに、プロセッサ識別子を表すデータを付加することにより、書き込み単位を生成する（ステップＳ２１０）。
【００４１】
次に、各プロセッサ１２０は、生成した書き込み単位を共有パラレルポート１３０へ共有パラレルポート１３０における排他制御を行わずに順次書き込む（ステップＳ２２０）。
【００４２】
図３は、本発明の第１の実施形態における周辺装置の動作を示すフローチャートである。尚、図３に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
【００４３】
まず、データ分類器１６０は、共有パラレルポート１３０からプロセッサ１２０により書き込まれた書き込み単位を順次読み出す（ステップＳ３１０）。
【００４４】
次に、データ分類器１６０は、読み出した書き込み単位に含まれる一連の転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータに関連付けされた演算器１７０へ順次出力する（ステップＳ３２０）。
【００４５】
続いて、各演算器１７０は、データ分類器１６０により出力された一連の転送用符号に基づいて、転送対象データを再構成する（ステップＳ３３０）。
【００４６】
本実施形態における動作の具体例について説明する。
【００４７】
図４は、本発明の第１の実施形態における情報処理システムの動作例を説明する模式図である。図４において、括弧内はビット表現であることとする。又、記号“％”は剰余演算を、記号“／”は除算を、記号“×”は乗算を示す（図５においても同様）。又、転送対象データは、８ビットのデータ（Ｄ＝ｂ０ｂ１ｂ２ｂ３ｂ４ｂ５ｂ６ｂ７）であることとする。又、共有パラレルポート１３０のバス幅（Ｗ）は、８ビットであることとする。又、プロセッサ識別子は、６ビットのデータ（Ｐ＝ｐ０ｐ１ｐ２ｐ３ｐ４ｐ５）で表現されることとする（Ｑ＝６）。又、一連の転送用符号に含まれる各転送用符号は、転送対象データを４進数表現した場合における互いに異なる桁の値を表すこととする（Ｌ＝（Ｗ−Ｑ）ビットの２進数表現で表現可能な最大の整数値＝４）。
【００４８】
まず、各プロセッサ１２０は、一連の転送用符号Ｄ０（ｂ０ｂ１）、Ｄ１（ｂ２ｂ３）、Ｄ２（ｂ４ｂ５）、Ｄ３（ｂ６ｂ７）のそれぞれに、プロセッサ識別子Ｐ（ｐ０ｐ１ｐ２ｐ３ｐ４ｐ５）を表すデータを付加することにより、書き込み単位を生成する（ステップＳ２１０）。ここで、転送用符号Ｄ０は、転送対象データＤを４１で除算した剰余である。又、転送用符号Ｄ１は、転送対象データＤを４１で除算した商である。又、転送用符号Ｄ２は、転送対象データＤを４２で除算した商である。又、転送用符号Ｄ３は、転送対象データＤを４３で除算した商である。但し、プロセッサ１２０は、除算を、シフト演算により実行してもよい。
【００４９】
次に、各プロセッサ１２０は、生成した書き込み単位を共有パラレルポート１３０へ共有パラレルポート１３０における排他制御を行わずに順次書き込む（ステップＳ２２０）。
【００５０】
続いて、データ分類器１６０は、共有パラレルポート１３０からプロセッサ１２０により書き込まれた書き込み単位を順次読み出す（ステップＳ３１０）。
【００５１】
続いて、データ分類器１６０は、読み出した書き込み単位に含まれる一連の転送用符号Ｄ０（ｂ０ｂ１）、Ｄ１（ｂ２ｂ３）、Ｄ２（ｂ４ｂ５）、Ｄ３（ｂ６ｂ７）を、読み出した書き込み単位に含まれるプロセッサ識別子Ｐ（ｐ０ｐ１ｐ２ｐ３ｐ４ｐ５）を表すデータに関連付けされた演算器１７０へ順次出力する（ステップＳ３２０）。
【００５２】
続いて、各演算器１７０は、データ分類器１６０により出力された一連の転送用符号に基づいて、転送対象データを再構成する（ステップＳ３３０）。ここで、転送対象データＤは、Ｄ０×４０＋Ｄ１×４１＋Ｄ２×４２＋Ｄ３×４３を算出することにより再構成される。但し、積算は、シフト演算により実行されてもよい。
【００５３】
本実施形態における動作の別の具体例について説明する。
【００５４】
図５は、本発明の第１の実施形態における情報処理システムの別の動作例を説明する模式図である。図５において、括弧内はビット表現であることとする。又、転送対象データは、８ビットのデータ（Ｄ＝ｂ０ｂ１ｂ２ｂ３ｂ４ｂ５ｂ６ｂ７）であることとする。又、共有パラレルポート１３０のバス幅（Ｗ）は、８ビットであることとする。又、プロセッサ識別子は、６ビットのデータ（Ｐ＝ｐ０ｐ１ｐ２ｐ３ｐ４ｐ５）で表現されることとする（Ｑ＝６）。又、一連の転送用符号に含まれる各転送用符号は、転送対象データを３進数表現した場合における互いに異なる桁の値を表すこととする（Ｌ＝（Ｗ−Ｑ）ビットの２進数表現で表現可能な最大の整数値−１＝３）。
【００５５】
まず、各プロセッサ１２０は、一連の転送用符号Ｄ０（ｔ０ｔ１）、Ｄ１（ｔ２ｔ３）、Ｄ２（ｔ４ｔ５）、Ｄ３（ｔ６ｔ７）、Ｄ４（ｔ８ｔ９）、Ｄ５（ｔ１０ｔ１１）のそれぞれに、プロセッサ識別子Ｐ（ｐ０ｐ１ｐ２ｐ３ｐ４ｐ５）を表すデータを付加することにより、書き込み単位を生成する（ステップＳ２１０）。ここで、転送用符号Ｄ０は、転送対象データＤを３１で除算した剰余である。又、転送用符号Ｄ１は、転送対象データＤを３１で除算した商である。又、転送用符号Ｄ２は、転送対象データＤを３２で除算した商である。又、転送用符号Ｄ３は、転送対象データＤを３３で除算した商である。又、転送用符号Ｄ４は、転送対象データＤを３４で除算した商である。又、転送用符号Ｄ５は、転送対象データＤを３５で除算した商である。但し、各プロセッサ１２０は、一連の転送用符号の先頭にスタート符号Ｓ（１１）を付加する。スタート符号Ｓ（１１）は、転送対象データのうちのある転送対象データＤの転送開始を示す転送用符号である。転送用符号がスタート符号Ｓ（１１）を含むので、１つの転送用符号で表現可能な値は、０以上且つ２以下である。
【００５６】
次に、各プロセッサ１２０は、生成した書き込み単位を共有パラレルポート１３０へ共有パラレルポート１３０における排他制御を行わずに順次書き込む（ステップＳ２２０）。
【００５７】
続いて、データ分類器１６０は、共有パラレルポート１３０からプロセッサ１２０により書き込まれた書き込み単位を順次読み出す（ステップＳ３１０）。
【００５８】
続いて、データ分類器１６０は、読み出した書き込み単位に含まれる一連の転送用符号Ｄ０（ｔ０ｔ１）、Ｄ１（ｔ２ｔ３）、Ｄ２（ｔ４ｔ５）、Ｄ３（ｔ６ｔ７）、Ｄ４（ｔ８ｔ９）、Ｄ５（ｔ１０ｔ１１）を、読み出した書き込み単位に含まれるプロセッサ識別子Ｐ（ｐ０ｐ１ｐ２ｐ３ｐ４ｐ５）を表すデータに関連付けされた演算器１７０へ順次出力する（ステップＳ３２０）。
【００５９】
続いて、各演算器１７０は、データ分類器１６０により出力された一連の転送用符号に基づいて、転送対象データを再構成する（ステップＳ３３０）。ここで、転送対象データＤは、Ｄ０×３０＋Ｄ１×３１＋Ｄ２×３２＋Ｄ３×３３＋Ｄ４×３４＋Ｄ５×３５を算出することにより再構成される。但し、スタート符号Ｓ（１１）は、転送対象データＤの算出に使用されず、各演算器１７０が保持するデータを初期化する契機として使用される。
【００６０】
以上説明したように、本実施形態の情報処理システム１００では、情報処理装置１１０の各プロセッサ１２０は、転送対象データを表す一連の転送用符号における各転送用符号に、プロセッサ１２０の識別番号を表すデータを付加して、共有パラレルポート１３０へ書き込む。そして、周辺装置１５０のデータ分類器１６０は、共有パラレルポート１３０から読み出した一連の転送用符号を、共有パラレルポート１３０から読み出したプロセッサ識別子に基づいて、各プロセッサ１２０に関連付けされた演算器１７０へ出力する。そして、周辺装置１５０の演算器１７０は、プロセッサ１２０毎に転送対象データを再構成する。ここで、情報処理システム１００において、プロセッサ１２０間で共有される割込み要求レジスタ等のような特別な構成要素は必要ない。従って、本実施形態の情報処理システム１００では、複数のプロセッサ１２０と複数のプロセッサ１２０により共有される共有パラレルポート１３０とを有する情報処理装置１１０から周辺装置１５０へのデータ転送において、安価な構成により、共有パラレルポート１３０における排他制御に起因するデッドロックの発生を抑制することができるという効果がある。
（第２の実施形態）
次に、本発明の第１の実施形態を基本とする、本発明の第２の実施形態について説明する。本実施形態における情報処理システムでは、情報処理装置の各プロセッサにより出力された転送対象データが、周辺装置により表示される。又、本実施形態における情報処理システムでは、各プロセッサによるデータ転送において割り込みが許容される。本願において、「割り込み」とは、あるプロセッサ１２０が、共有パラレルポート１３０において、第１のデータ転送の途中で第２のデータ転送を開始し、第２のデータ転送の終了後に、第１のデータ転送を継続することとする。同様に、より多重な「割り込み」も定義される。例えば、第２のデータ転送の途中で、更に第３のデータ転送の「割り込み」が行われてもよい。又、あるプロセッサが、ある時点において、いくつのデータに関して割り込みを行っているかを「割り込みのネストレベル」又は単に「ネストレベル」と称することとする。
【００６１】
本実施形態における構成について説明する。
【００６２】
図６は、本発明の第２の実施形態における情報処理システムの構成の一例を示すブロック図である。
【００６３】
本実施形態における情報処理システム１０５は、情報処理装置１１０と、周辺装置１５５とを含む。情報処理装置１１０と、周辺装置１５５とは、パラレルポート用のケーブルにより接続される。
【００６４】
情報処理装置１１０は、共有パラレルポート１３０と、複数のプロセッサ１２０とを含む。ここで、転送対象データは、例えば、各プロセッサ１２０のＢＩＯＳが出力するＰＯＳＴコードである。但し、プロセッサ１２０は、データ転送において割り込みを行ってもよい。又、プロセッサ１２０は、共有パラレルポート１３０に、ある転送対象データを表す転送用符号を書き込む前に、スタート符号を書き込む。プロセッサ１２０は、データ転送において割り込みを行う際には、元のデータ転送の途中において新たなスタート符号を書き込み、新たなデータ転送の完了後に、元のデータ転送を継続する。
【００６５】
周辺装置１５５は、データ分類器１６５と、複数の演算器１７５と、複数の表示器１８０と、複数のレベルカウンタ１９０とを含む。
【００６６】
レベルカウンタ１９０は、当該レベルカウンタ１９０に関連付けされたプロセッサ１２０によるデータ転送におけるネストレベルを保持する。ここで、各レベルカウンタ１９０は、各プロセッサ１２０に関連付けされる。つまり、レベルカウンタ１９０の台数は、プロセッサ１２０の台数ｎ以上である。あるレベルカウンタ１９０とあるプロセッサ１２０との間の関連付けした状態を表すデータは、例えば、データ分類器１６５（図１２のＣＰＵ９０３等）が不図示のメモリ（図１２の記憶装置９０２等）に格納していることとする。
【００６７】
データ分類器１６５は、情報処理装置１１０により共有パラレルポート１３０へ書き込まれた書き込み単位を順次読み出す。データ分類器１６５は、読み出した書き込み単位に含まれる転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータと、当該プロセッサ識別子が示すプロセッサ１２０のネストレベルの値とから成るセットに関連付けされた演算器１７５へ順次出力する。ある演算器１７５と、プロセッサ識別子及びネストレベルの値から成るあるセットとの間の関連付けした状態を表すデータは、例えば、データ分類器１６５（図１２のＣＰＵ９０３等）が不図示のメモリ（図１２の記憶装置９０２等）に格納していることとする。
【００６８】
各演算器１７５は、データ分類器１６５により出力された一連の転送用符号に基づいて、転送対象データを再構成する。ここで、各演算器１７５は、各プロセッサ１２０と当該プロセッサ１２０のネストレベルのある値とから成るセットに関連付けされることとする。各演算器１７５は、例えば、あるプロセッサ１２０と当該プロセッサ１２０のネストレベルのある値とから成るセットに予め関連付けされてもよい。又は、データ分類器１６５は、プロセッサ識別子を表すデータと当該プロセッサ識別子に関するネストレベルのある値との新規なセットを検出した際に、ある演算器１７５に、当該セットを識別するデータを動的に関連付けてもよい。つまり、演算器１７５の台数は、プロセッサ１２０の台数ｎにネストレベルの取り得る値の数を乗じた数以上である。
【００６９】
表示器１８０は、演算器１７５により再構成された転送対象データを表示する。表示器１８０は、例えば、各プロセッサ１２０のＢＩＯＳにより出力されたＰＯＳＴコードを表示する。ここで、各表示器１８０は、各演算器１７５に関連付けされることとする。つまり、表示器１８０の台数は、演算器１７５の台数以上である。
【００７０】
本実施形態におけるその他の構成は、第１の実施形態における構成と同じである。
【００７１】
図７は、本発明の第２の実施形態における情報処理システムの実施例を示すブロック図である。図７では、説明を簡単にするために、ネストレベルの取り得る値の数は２であることとする。又、プロセッサ１２０及びレベルカウンタ１９０それぞれの台数ｎは、６４台であることとする。又、演算器１７５及び表示器１８０それぞれの台数ｍは、１２８台であることとする。又、レベルカウンタ“０”、“１”、・・・、“６３”は順に、プロセッサ“０”、“１”、・・・、“６３”に予め関連付けされていることとする。又、演算器“００”、“１０”、・・・、“６３０”は順に、プロセッサ“０”、“１”、・・・、“６３”とネストレベル“１”とから成るセットに予め関連付けされていることとする。又、演算器“０１”、“１１”、・・・、“６３１”は順に、プロセッサ“０”、“１”、・・・、“６３”とネストレベル“２”とから成るセットに予め関連付けされていることとする。又、表示器“００”、“１０”、・・・、“６３０”は順に、演算器“００”、“１０”、・・・、“６３０”に予め関連付けされていることとする。又、表示器“０１”、“１１”、・・・、“６３１”は順に、演算器“０１”、“１１”、・・・、“６３１”に予め関連付けされていることとする。
【００７２】
本実施形態における動作について説明する。但し、図７に示した情報処理システムの実施例における動作について説明する。
（動作例１）
まず、割り込みが発生しない場合の動作について説明する。
【００７３】
図８は、本発明の第２の実施形態における情報処理システムの動作例を説明する表である。より具体的には、図８は、情報処理システム１０５における周辺装置１５５の動作例を示す。図８において、「タイミング」列は動作におけるタイミングを示す。又、「受信符号」列は、データ分類器１６５が受信した、プロセッサ識別子を表すデータと転送用符号とから成るセットを示す。ここで、“Ｐ０”はプロセッサ“０”の識別子を示し、“Ｐ１”はプロセッサ“１”の識別子を示す。“Ｓ”はスタート符号を示す。“Ｄ００”、“Ｄ０１”、・・・、“Ｄ０５”は、プロセッサ“０”の転送対象データ（転送対象データ“Ｄ０”）を表す一連の転送用符号を示す。“Ｄ１０”、“Ｄ１１”、・・・、“Ｄ１５”は、プロセッサ“１”の転送対象データ（転送対象データ“Ｄ１”）を表す一連の転送用符号を示す。「カウンタ０」列は、レベルカウンタ“０”が保持するデータが表す値を示す。「カウンタ１」列は、レベルカウンタ“１”が保持するデータが表す値を示す。「演算器００」列は、演算器“００”が保持するデータが表す値を示す。「演算器１０」列は、演算器“１０”が保持するデータが表す値を示す。
【００７４】
周辺装置１５５は、以下のように動作する。
【００７５】
タイミング１：
データ分類器１６５は、“Ｐ０”，“Ｓ”を読み出し、レベルカウンタ“０”を１だけ増加させ、演算器“００”を初期化（図８では「−」にて表記、以下同様）する。以下の各タイミングを含めて、言及していない他方の演算器は、以前の状態を保持しているので、当該演算器については個々の説明を省略する。
【００７６】
タイミング２：
データ分類器１６５は、“Ｐ１”，“Ｓ”を読み出し、レベルカウンタ“１”を１だけ増加させ、演算器“１０”を初期化する。
【００７７】
タイミング３：
データ分類器１６５は、“Ｐ１”，“Ｄ１０”を読み出し、演算器“１０”へ出力する。これに応じて、演算器“１０”は、入力された値“Ｄ１０”を保持する。
【００７８】
タイミング４：
データ分類器１６５は、“Ｐ０”，“Ｄ００”を読み出し、演算器“００”へ出力する。これに応じて、演算器“００”は、入力された値“Ｄ００”を保持する。
【００７９】
タイミング５：
データ分類器１６５は、“Ｐ１”，“Ｄ１１”を読み出し、演算器“１０”へ出力する。これに応じて、演算器“１０”は、入力された値“Ｄ１１”に３を乗じた値を、保持していた値“Ｄ１０”に加算する。
【００８０】
タイミング６：
データ分類器１６５は、“Ｐ０”，“Ｄ０１”を読み出し、演算器“００”へ出力する。これに応じて、演算器“００”は、入力された値“Ｄ０１”に３を乗じた値を、保持していた値“Ｄ００”に加算する。
【００８１】
タイミング７：
データ分類器１６５は、“Ｐ０”，“Ｄ０２”を読み出し、演算器“００”へ出力する。これに応じて、演算器“００”は、入力された値“Ｄ０２”に３２を乗じた値を、保持していた値“Ｄ００＋Ｄ０１×３”に加算する。
【００８２】
タイミング８：
データ分類器１６５は、“Ｐ１”，“Ｄ１２”を読み出し、演算器“１０”へ出力する。これに応じて、演算器“１０”は、入力された値“Ｄ１２”に３２を乗じた値を、保持していた値“Ｄ１０＋Ｄ１１×３”に加算する。
・・・（中略）・・・
タイミング１３：
データ分類器１６５は、“Ｐ０”，“Ｄ０５”を読み出し、演算器“００”へ出力する。これに応じて、演算器“００”は、入力された値“Ｄ０５”に３５を乗じた値を、保持していた値“Ｄ００＋Ｄ０１×３＋Ｄ０２×３２＋Ｄ０３×３３＋Ｄ０４×３４”に加算する。続いて、演算器“００”は、レベルカウンタ“０”を１だけ減少させる。本例においては、以上説明した動作により、演算器“００”は、転送対象データ“Ｄ０”の再構成を完了する。
【００８３】
タイミング１４：
データ分類器１６５は、“Ｐ１”，“Ｄ１５”を読み出し、演算器“１０”へ出力する。これに応じて、演算器“１０”は、入力された値“Ｄ１５”に３５を乗じた値を、保持していた値“Ｄ１０＋Ｄ１１×３＋Ｄ１２×３２＋Ｄ１３×３３＋Ｄ１４×３４”に加算する。続いて、演算器“１０”は、レベルカウンタ“１”を１だけ減少させる。本例においては、以上説明した動作により、演算器“１０”は、転送対象データ“Ｄ１”の再構成を完了する。
（動作例２）
次に、割り込みが発生する場合の動作について説明する。
【００８４】
図９は、本発明の第２の実施形態における情報処理システムの別の動作例を説明する表である。より具体的には、図９は、情報処理システム１０５における周辺装置１５５の動作例を示す。図９における記述方法は、図８における記述方法と同じである。但し、“Ｄ００”、“Ｄ０１”、・・・、“Ｄ０５”は、プロセッサ“０”の転送対象データ（転送対象データ“Ｄ０”）を表す一連の転送用符号を示す。又、“Ｄ１０”、“Ｄ１１”、・・・、“Ｄ１５”は、プロセッサ“０”の別の転送対象データ（転送対象データ“Ｄ１”）を表す一連の転送用符号を示す。又、「演算器０１」列は、演算器“０１”が保持するデータが表す値を示す。
【００８５】
周辺装置１５５は、以下のように動作する。
【００８６】
タイミング１：
データ分類器１６５は、“Ｐ０”，“Ｓ”を読み出し、レベルカウンタ“０”を１だけ増加させ、演算器“００”を初期化（図９では「−」にて表記、以下同様）する。以下の各タイミングを含めて、言及していない他方の演算器は、以前の状態を保持しているので、当該演算器については個々の説明を省略する。
【００８７】
タイミング２：
データ分類器１６５は、“Ｐ０”，“Ｄ００”を読み出し、演算器“００”へ出力する。これに応じて、演算器“００”は、入力された値“Ｄ００”を保持する。
【００８８】
タイミング３：
データ分類器１６５は、“Ｐ０”，“Ｄ０１”を読み出し、演算器“００”へ出力する。これに応じて、演算器“００”は、入力された値“Ｄ０１”に３を乗じた値を、保持していた値“Ｄ００”に加算する。
【００８９】
タイミング４：
データ分類器１６５は、“Ｐ０”，“Ｄ０２”を読み出し、演算器“００”へ出力する。これに応じて、演算器“００”は、入力された値“Ｄ０２”に３２を乗じた値を、保持していた値“Ｄ００＋Ｄ０１×３”に加算する。
【００９０】
タイミング５：
データ分類器１６５は、“Ｐ０”，“Ｓ”を読み出し、レベルカウンタ“０”を１だけ増加させ、演算器“０１”を初期化する。
【００９１】
タイミング６：
データ分類器１６５は、“Ｐ０”，“Ｄ１０”を読み出し、演算器“０１”へ出力する。これに応じて、演算器“０１”は、入力された値“Ｄ１０”を保持する。
【００９２】
タイミング７：
データ分類器１６５は、“Ｐ０”，“Ｄ１１”を読み出し、演算器“０１”へ出力する。これに応じて、演算器“０１”は、入力された値“Ｄ１１”に３を乗じた値を、保持していた値“Ｄ１０”に加算する。
【００９３】
タイミング８：
データ分類器１６５は、“Ｐ０”，“Ｄ１２”を読み出し、演算器“０１”へ出力する。これに応じて、演算器“０１”は、入力された値“Ｄ１２”に３２を乗じた値を、保持していた値“Ｄ１０＋Ｄ１１×３”に加算する。
・・・（中略）・・・
タイミング１１：
データ分類器１６５は、“Ｐ０”，“Ｄ１５”を読み出し、演算器“０１”へ出力する。これに応じて、演算器“０１”は、入力された値“Ｄ１５”に３５を乗じた値を、保持していた値“Ｄ１０＋Ｄ１１×３＋Ｄ１２×３２＋Ｄ１３×３３＋Ｄ１４×３４”に加算する。続いて、演算器“０１”は、レベルカウンタ“０”を１だけ減少させる。本例においては、以上説明した動作により、演算器“０１”は、転送対象データ“Ｄ１”の再構成を完了する。
・・・（中略）・・・
タイミング１４：
データ分類器１６５は、“Ｐ０”，“Ｄ０５”を読み出し、演算器“００”へ出力する。
これに応じて、演算器“００”は、入力された値“Ｄ０５”に３５を乗じた値を、保持していた値“Ｄ００＋Ｄ０１×３＋Ｄ０２×３２＋Ｄ０３×３３＋Ｄ０４×３４”に加算する。続いて、演算器“００”は、レベルカウンタ“０”を１だけ減少させる。本例においては、以上説明した動作により、演算器“００”は、転送対象データ“Ｄ０”の再構成を完了する。
【００９４】
本実施形態におけるその他の動作は、第１の実施形態における動作と同じである。
【００９５】
以上説明したように、本実施形態の情報処理システム１０５は、第１の実施形態の情報処理システム１００の構成要素を含む。従って、本実施形態の情報処理システム１０５は、第１の実施形態の情報処理システム１００と同じ効果を有する。
【００９６】
又、本実施形態の情報処理システム１０５は、第１の実施形態の情報処理システム１００の構成要素に加えて、レベルカウンタ１９０を含む。そして、本実施形態の情報処理システム１０５では、周辺装置１５５がレベルカウンタ１９０を有するので、データ転送の割り込みが可能である。従って、本実施形態の情報処理システム１０５は、第１の実施形態の情報処理システム１００における効果に加えて、データ転送の割り込みが可能であるという効果を有する。
【００９７】
又、本実施形態の情報処理システム１０５は、第１の実施形態の情報処理システム１００の構成要素に加えて、表示器１８０を含む。そして、本実施形態の情報処理システム１０５では、周辺装置１５５が表示器１８０を有するので、転送対象データの表示が可能である。従って、本実施形態の情報処理システム１０５は、第１の実施形態の情報処理システム１００における効果に加えて、転送対象データの表示が可能であるという効果を有する。
（第３の実施形態）
次に、本発明の第１の実施形態を基本とする、本発明の第３の実施形態について説明する。本実施形態における情報処理システムでは、情報処理装置の各プロセッサにより出力された転送対象データが、周辺装置に接続された外部の被制御装置へ中継される。
【００９８】
本実施形態における構成について説明する。
【００９９】
図１０は、本発明の第３の実施形態における情報処理システムの構成の一例を示すブロック図である。
【０１００】
本実施形態における情報処理システム１０６は、情報処理装置１１０と、周辺装置１５６と、複数の被制御装置２１０とを含む。情報処理装置１１０と、周辺装置１５６とは、パラレルポート用のケーブルにより接続される。周辺装置１５６と、各被制御装置２１０とは、それぞれ別のパラレルポート用のケーブルにより接続される。
【０１０１】
周辺装置１５６は、データ分類器１６０と、複数の演算器１７０と、複数の専用パラレルポート１３６とを含む。
【０１０２】
専用パラレルポート１３６は、演算器１７０により再構成された転送対象データを出力する。専用パラレルポート１３６は、例えば、各プロセッサ１２０により出力された被制御装置２１０に対する制御命令を出力する。ここで、各専用パラレルポート１３６は、各演算器１７０に関連付けされることとする。つまり、専用パラレルポート１３６の台数は、演算器１７０の台数以上である。
【０１０３】
被制御装置２１０は、周辺装置１５６により出力された転送対象データに基づいて動作する。被制御装置２１０は、例えば、専用パラレルポート１３６から受信した命令に基づいて動作する工作機械である。
【０１０４】
本実施形態におけるその他の構成は、第１の実施形態における構成と同じである。
【０１０５】
本実施形態における動作について説明する。
【０１０６】
図１１は、本発明の第３の実施形態における情報処理システムが適用される対象の構成の一例を示すブロック図である。
【０１０７】
本実施形態の適用対象である情報処理システム１０９は、情報処理装置１１９と、複数の被制御装置２１０とを含む。
【０１０８】
情報処理装置１１９は、複数のプロセッサ１２９と、複数の専用パラレルポート１３９とを含む。プロセッサ１２９同士は、互いにデータ通信可能でなくてもよい。各専用パラレルポート１３９は、当該専用パラレルポート１３９に予め関連付けされた１台のプロセッサ１２９により占有される。
【０１０９】
被制御装置２１０は、情報処理装置１１９により出力された転送対象データに基づいて動作する。被制御装置２１０は、例えば、専用パラレルポート１３９から受信した命令に基づいて動作する工作機械である。ここで、専用パラレルポート１３９は、専用パラレルポート１３６と互換性のあるインタフェースを有することとする。例えば、専用パラレルポート１３９と専用パラレルポート１３６とは、同じバス幅を有し、同じ規格に準拠する。
【０１１０】
情報処理装置１１９の各プロセッサ１２９上で動作していたプログラムを、本実施形態における情報処理装置１１０へ移植する場合について説明する。但し、情報処理装置１１０は、プロセッサ１２０毎の専用パラレルポートを含まないこととする。
【０１１１】
情報処理装置１１９の各プロセッサ１２９上で動作していたプログラム（移植対象プログラム）は、専用パラレルポート１３９へ書き込んだ転送対象データに基づいて、被制御装置２１０を動作させる。一方、情報処理装置１１０の各プロセッサ１２０上で動作するプログラム（移植後プログラム）は、共有パラレルポート１３０へ書き込んだ転送対象データに基づいて、被制御装置２１０を動作させる。移植対象プログラムと移植後プログラムとの違いは、転送対象データを書き込むパラレルポートが、専用パラレルポート１３９であるか又は共有パラレルポート１３０であるかの違いのみである。そして、共有パラレルポート１３０における排他制御は不要であるから、移植対象プログラムから移植後プログラムへの移植は容易である。
【０１１２】
そして、周辺装置１５６は、共有パラレルポート１３０から読み出したデータをプロセッサ１２０毎に異なる被制御装置２１０へ転送する。被制御装置２１０に対する情報処理システム１０６における専用パラレルポート１３６のインタフェースは、情報処理システム１０９における専用パラレルポート１３９と互換性を有する。
【０１１３】
以上説明したように、本実施形態の情報処理システム１０６では、情報処理システム１０９上で動作していたプログラムを移植することは容易である。そして、周辺装置１５６は、被制御装置２１０に対して、情報処理システム１０９におけるインタフェースと互換性のあるインタフェースを提供する。従って、本実施形態の情報処理システム１０６には、情報処理システム１０９上で動作していたプログラムの移植に要するコストを抑制できるという効果がある。
【０１１４】
図１２は、本発明の各実施形態における情報処理装置又は周辺装置を実現可能なハードウェア構成の一例を示すブロック図である。
【０１１５】
情報処理装置９０７又は周辺装置９０７は、記憶装置９０２と、ＣＰＵ（Central Processing Unit）９０３と、Ｉ／Ｏ（Input/Output）装置９０８とを備え、これらが内部バス９０６によって接続されている。情報処理装置９０７では、ＣＰＵ９０３は、マルチプロセッサを含む。情報処理装置９０７では、Ｉ／Ｏ装置９０８は、パラレルポートを含む。記憶装置９０２は、プロセッサ１２０、データ分類器１６０、演算器１７０等のＣＰＵ９０３の動作プログラムを格納する。ＣＰＵ９０３は、情報処理装置９０７又は周辺装置９０７全体を制御し、記憶装置９０２に格納された動作プログラムを実行し、Ｉ／Ｏ装置９０８を介してプロセッサ１２０、データ分類器１６０、演算器１７０等のプログラムの実行やデータの送受信を行なう。なお、上記の情報処理装置９０７又は周辺装置９０７の内部構成は一例である。周辺装置９０７は、表示器等を更に接続した装置構成であってもよい。
【０１１６】
上述した本発明の各実施形態における情報処理装置又は周辺装置は、専用の装置によって実現してもよいが、Ｉ／Ｏ装置９０８が外部との通信を実行するハードウェアの動作以外は、コンピュータ（情報処理装置）によっても実現可能である。本発明の各実施形態において、Ｉ／Ｏ装置９０８は、例えば、プロセッサ１２０、データ分類器１６０、演算器１７０等との入出力部である。この場合、係るコンピュータは、記憶装置９０２に格納されたソフトウェア・プログラムをＣＰＵ９０３に読み出し、読み出したソフトウェア・プログラムをＣＰＵ９０３において実行する。上述した各実施形態の場合、係るソフトウェア・プログラムには、上述したところの、図１、図６、又は図１０に示した情報処理装置又は周辺装置の各部の機能を実現可能な記述がなされていればよい。ただし、これらの各部には、適宜ハードウェアを含むことも想定される。そして、このような場合、係るソフトウェア・プログラム（コンピュータ・プログラム）は、本発明を構成すると捉えることができる。更に、係るソフトウェア・プログラムを格納した、コンピュータ読み取り可能な記憶媒体も、本発明を構成すると捉えることができる。
【０１１７】
以上、本発明を、上述した各実施形態及びその変形例によって例示的に説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態及びその変形例に記載した範囲に限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項により明らかである。
【０１１８】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置と、データ分類手段、及び前記複数のプロセッサの台数以上の演算手段を含む周辺装置とを備えた情報処理システムであって、
各前記プロセッサは、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、前記共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込み、
前記データ分類手段は、
前記共有パラレルポートから前記書き込み単位を順次読み出し、
読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
前記演算手段は、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する
情報処理システム。
（付記２）
前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをＬ（Ｌは２以上の整数）進数表現した場合における互いに異なる桁の値を表す
付記１に記載の情報処理システム。
（付記３）
前記周辺装置は、各前記プロセッサにおける割り込みのネストレベルを表すデータを保持する、前記プロセッサ識別子を表すデータに関連付けされたレベルカウンタを更に備え、
前記プロセッサは、前記転送対象データのうちのある転送対象データの転送開始を示す前記転送用符号であるスタート符号を、前記スタート符号を除く、該ある転送対象データを表現する前記一連の転送用符号の書き込み以前に前記共有パラレルポートへ書き込み、
前記データ分類手段は、
前記共有パラレルポートから前記書き込み単位を順次読み出し、
読み出した前記書き込み単位に前記スタート符号が含まれる場合に、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルを表すデータを１だけ増加させ、
読み出した前記書き込み単位に含まれる、前記スタート符号を除く前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータと、該プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルとから成るセットに関連付けされた前記演算手段へ順次出力し、
前記演算手段は、
前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成し、
該演算手段に関連付けされた前記プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルを表すデータを１だけ減少させる
付記１又は２に記載の情報処理システム。
（付記４）
各前記演算手段は、互いに異なる出力先に接続され、前記再構成した前記転送対象データを、該演算手段に接続された前記出力先へ出力する
付記１乃至３の何れか１項に記載の情報処理システム。
（付記５）
前記転送対象データは、前記情報処理装置の電源が投入された際に実行される自己診断処理における状態を示すコードであり、
前記周辺装置は、各前記演算手段に接続された、該演算手段により再構成された前記コードを表示する表示手段を更に備える
付記１乃至４の何れか１項に記載の情報処理システム。
（付記６）
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを備えた情報処理装置であって、
各前記プロセッサは、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、前記共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込む
情報処理装置。
（付記７）
データ分類手段及び複数の演算手段を備えた周辺装置であって、
前記データ分類手段は、
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置が有する前記共有パラレルポートから、前記情報処理装置が転送する転送対象データを表すことが可能な一連の転送用符号のそれぞれに、前記情報処理装置が有する各前記プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、前記共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を順次読み出し、
読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
前記演算手段は、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する
周辺装置。
（付記８）
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置と、データ分類手段、及び前記複数のプロセッサの台数以上の演算手段を含む周辺装置とを備えた情報処理システムにおけるデータ転送方法であって、
各前記プロセッサにより、転送対象データを構成可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、前記共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込み、
前記データ分類手段により、
前記共有パラレルポートから前記書き込み単位を順次読み出し、
読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
前記演算手段により、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記１つの転送対象データを再構成する
データ転送方法。
（付記９）
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを備えた情報処理装置が備えるコンピュータに、
転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、前記共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込む処理
を実行させる情報処理装置のデータ転送プログラム。
（付記１０）
データ分類手段及び複数の演算手段を備えた周辺装置が備えるコンピュータに、
前記データ分類手段により、
複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置が有する前記共有パラレルポートから、前記情報処理装置が転送する転送対象データを表すことが可能な一連の転送用符号のそれぞれに、前記情報処理装置が有する各前記プロセッサの識別子（以下、プロセッサ識別子）を表すデータを付加することにより、前記共有パラレルポートのバス幅において１回で書き込み可能な書き込み単位を順次読み出し、
読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力する処理と、
前記演算手段により、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する処理と
を実行させる周辺装置のデータ転送プログラム。
（付記１１）
前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをＬ（Ｌは２以上の整数）進数表現した場合における互いに異なる桁の値を表す
付記６に記載の情報処理装置。
（付記１２）
前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをＬ（Ｌは２以上の整数）進数表現した場合における互いに異なる桁の値を表す
付記７に記載の周辺装置。
（付記１３）
前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをＬ（Ｌは２以上の整数）進数表現した場合における互いに異なる桁の値を表す
付記８に記載のデータ転送方法。
（付記１４）
前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをＬ（Ｌは２以上の整数）進数表現した場合における互いに異なる桁の値を表す
付記９に記載情報処理装置のデータ転送プログラム。
（付記１５）
前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをＬ（Ｌは２以上の整数）進数表現した場合における互いに異なる桁の値を表す
付記１０に記載の周辺装置のデータ転送プログラム。
【産業上の利用可能性】
【０１１９】
本発明は、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを有する情報処理装置において、情報処理装置内部の共有パラレルポート、及び情報処理装置と周辺装置とを接続する共有パラレルポート等を実装する用途において利用できる。又、本発明は、複数のプロセッサ及び複数のプロセッサにより共有される共有パラレルポートを有する情報処理装置と、パラレルポートにより制御される非制御装置との間において、データ転送を中継する周辺装置を実装する用途において利用できる。
【符号の説明】
【０１２０】
１００、１０５、１０９  情報処理システム
１１０、１１９  情報処理装置
１２０、１２９  プロセッサ
１３０  共有パラレルポート
１３６、１３９  専用パラレルポート
１５０、１５５、１５６  周辺装置
１６０、１６５  データ分類器
１７０、１７５  演算器
１８０  表示器
１９０  レベルカウンタ
２１０  被制御装置
９０２  記憶装置
９０３  ＣＰＵ
９０６  内部バス
９０７  情報処理装置
９０８  Ｉ／Ｏ装置
【図１】
2018120323.tif 000003
【図２】
2018120323.tif 000004
【図３】
2018120323.tif 000005
【図４】
2018120323.tif 000006
【図５】
2018120323.tif 000007
【図６】
2018120323.tif 000008
【図７】
2018120323.tif 000009
【図８】
2018120323.tif 000010
【図９】
2018120323.tif 000011
【図１０】
2018120323.tif 000012
【図１１】
2018120323.tif 000013
【図１２】
2018120323.tif 000014