(57)【要約】【課題】  少なくともバスを介しての処理要求があった場合には、その要求に対する処理結果の処理データが得られるまでは、予め設定された疑似データを、処理の応答結果として出力することで、要求元が次の処理に速やかに移行させることを可能にする。【解決手段】  装置全体の制御を行う制御部と、前記要求元から前記バスを介して処理の要求を受信するとともに、処理結果を出力するＩ／Ｆ部と、Ｉ/Ｆ部が処理の要求を受信した場合、当該要求に対して所定の処理を実行し、実行結果を示す処理データを出力する処理部と、該処理部から出力された処理データを格納するとともに、格納状態を表す状態情報を前記制御部に通知するメモリ部とを有する。そして、制御部は、Ｉ/Ｆ部で要求を受信した場合、メモリ部からの状態情報が処理データを格納したことを示すまでは、要求に対して予め設定された疑似データを要求に対する応答のデータとして返すように、Ｉ/Ｆ部を制御する。【選択図】  図１
2014215724.tif 000002
【特許請求の範囲】
【請求項１】
要求元とバスで接続され、クロック信号が供給されることにより動作する情報処理装置において、
装置全体の制御を行う制御部と、
前記要求元から前記情報処理装置に対して、処理データ取得の要求を受信する受信部と、
所定の処理を実行し、処理して得られた処理データを出力する処理部と、
該処理部から出力された前記処理データを格納するとともに、格納状態を表す状態情報を前記制御部に通知するメモリ部と、
該メモリ部に格納された前記処理データを前記要求元に対し、前記バスを介して応答する応答部とを有し、
前記制御部は、前記受信部が前記要求を受信した場合、前記メモリ部への処理データが格納されているか否かとは無関係に、応答の信号を返すよう前記応答部を制御する
ことを特徴とする情報処理装置。
【請求項２】
前記制御部は、前記メモリ部からの状態情報が処理データを格納したことを示すまでは、前記要求に対して予め設定された疑似データを前記要求に対する応答のデータとして返すように前記応答部を制御することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記処理部は、処理部に出力すべき処理データを有しているか否かを示す状態情報を前記制御部に通知し、
前記制御部は、
前記処理部に出力すべき処理データが存在せず、かつ、前記メモリ部に処理データが格納されていない場合には、エンプティを表す疑似データを応答のデータとして出力し、
前記処理部に出力すべき処理データを有し、かつ、前記メモリ部に処理データが格納されていない場合には、ビジーを表す疑似データを応答のデータとして出力し、
前記メモリ部に処理データが格納されていない場合には、当該格納されている処理データを応答のデータとして出力する
ように前記応答部を制御することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記メモリ部は、ＦＩＦＯ、または、レジスタの何れかを含むことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記処理部は、前記メモリ部からの前記状態情報を受信し、格納状態に応じて処理を実行することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記処理部は、タイマー処理を行うことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記処理部は、複数のメモリ領域の未使用、使用済のリソースの管理を行うため、
前記複数のメモリ領域のそれぞれにビットを割り当て、ビットの位置でＩＤを管理するメモリと、
該メモリの各ビットと前記複数のＩＤの各々とを双方に変換を行う変換部と
を有することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項８】
前記処理部は、乱数発生処理を行うことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項９】
前記疑似データを送信する場合は、前記受信部した要求をトリガとして予約処理を開始し、処理データを得た後、要求を受信した場合に、該処理データを出力することを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記要求元は、前記バスに接続された複数のＣＰＵで構成されることを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記要求元は、複数のＣＰＵで構成され、
前記受信部は、前記複数のＣＰＵのうち、どのＣＰＵから要求を受け付けたかを特定する情報を記録するメモリを具備し、
前記処理データは、前記メモリに記録されている要求元からの要求に対して応答する時に送信すること特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部からの要求に応じて処理データを提供する、情報処理装置に関する。
【背景技術】
【０００２】
従来、コンピュータ分野では、或る処理を行うに当たり、その一部をハードウェア（以下、Ｈ／Ｗと表記）で実行し、ＣＰＵの処理効率や機器全体の処理速度を向上させるといったことがなされてきた。ここでいう或る処理とは、以下の３つのものが考えられる。
【０００３】
1つ目は、メモリ領域等、各種リソースの管理処理である。ここで、ＩＤ管理機能の具備されたＨ／Ｗを使用したメモリリソース管理例について説明する。論理的または物理的に分散されたメモリ領域の各々にＩＤを、Ｈ／ＷまたはＣＰＵにより付与された状態において、Ｈ／Ｗは該当するＩＤ（に対応づけられたメモリ領域）が使用されているか否かを一元管理する。ＣＰＵがＩＤ（に対応づけられたメモリ領域）を使用したい場合は、Ｈ／ＷにＩＤの取得要求を送信する。取得要求を受信したＨ／Ｗは、Ｈ／ＷからＣＰＵに対し、まだ使用されていないＩＤを送信することにより、ＣＰＵに対してＩＤ（に対応づけられたメモリ領域）の使用許可を与える。併せて、Ｈ／Ｗは、該当ＩＤを他のＣＰＵに対して使用禁止状態として保持しておく。また、ＣＰＵが使用しているメモリを開放したい場合は、該メモリに対応づけられたＩＤの解放要求をＨ／Ｗ対して送信する。受信したＨ／Ｗは、該ＩＤを再び使用可能ＩＤとして管理する。
【０００４】
２つ目は、乱数生成処理である。ＣＰＵは、乱数生成をＨ／Ｗに要求し、Ｈ／Ｗは、ＣＰＵより高速に、また、よりランダム性の高い乱数を生成し、結果をＣＰＵに返すという処理がある。
【０００５】
３つ目は、タイマー処理である。タイマーのスタートをＨ／Ｗに通知し、一定時間経過後にＨ／Ｗにスタートからどの程度時間が経過したか、問い合わせるとＨ／Ｗから経過時間が返信されるといった処理である。
【０００６】
上記３つの例のいずれにも当てはまることは、ＣＰＵは一度Ｈ／Ｗに対して要求を送信し、その後Ｈ／Ｗから所望のデータを応答として受信するという点である。
【０００７】
資源の管理をするＨ／Ｗとして、特許文献１では、資源の仮予約要求を受け付ける資源管理装置について開示されている。仮予約要求を受理した資源管理装置は、仮予約識別情報を仮予約要求に対して応答方法について開示している。
【０００８】
また、特許文献２では資源管理方法について開示されている。具体的にはクライアント・サーバシステムに展開されたソフトウェア・アプリケーション用の資源管理方法である。ある要求に適応するために必要とされる資源グループが、クライアント・コンピュータ上のローカルに格納されているかを判断し、ローカルに格納されていない場合に、サーバシステムから取得するといった方法について記載されている。
【０００９】
また、特許文献３では、メモリリソースの管理方法について開示されている。データ処理装置において、使用するスペースの獲得要求に対応すべく、空スペースを確認し、該空スペースが充分に無い場合には、スペース獲得要求を待ち状態に置き、スペースが解放された時点で処理を行うようにする方法について記載されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００４−３０２７４８号公報
【特許文献２】特表２００３−５３６１３３号公報
【特許文献３】特開昭６３−２０１８２６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
Ｈ／Ｗで処理を実行し、結果をＣＰＵが受け取るといった構成の場合、以下の課題がある。ＣＰＵが処理結果の取得要求をＨ／Ｗに送信した際、Ｈ／Ｗで処理結果が得られるまでに時間がかかる場合、ＣＰＵが待たされることにある。すると、ＣＰＵは次の処理に移行できない。たとえば、該処理結果が得られなくても他のすべき処理があるのであれば、ＣＰＵは速やかに次の処理に移行できることが望ましい。
【課題を解決するための手段】
【００１２】
この課題を解決するため、例えば本発明の情報処理装置は以下の構成を備える。すなわち、
要求元とバスで接続され、クロック信号が供給されることにより動作する情報処理装置において、
装置全体の制御を行う制御部と、
前記要求元から前記情報処理装置に対して、処理データ取得の要求を受信する受信部と、
所定の処理を実行し、処理して得られた処理データを出力する処理部と、
該処理部から出力された前記処理データを格納するとともに、格納状態を表す状態情報を前記制御部に通知するメモリ部と、
該メモリ部に格納された前記処理データを前記要求元に対し、前記バスを介して応答する応答部とを有し、
前記制御部は、前記受信部が前記要求を受信した場合、前記メモリ部への処理データが格納されているか否かとは無関係に、応答の信号を返すよう前記応答部を制御する。
【発明の効果】
【００１３】
本発明によれは、少なくともバスを介しての処理データ取得の要求があった場合には、その要求に対する処理結果の処理データが得られるまでは、予め設定された疑似データを、処理の応答結果として出力することで、要求元が次の処理に速やかに移行させることができる。複数の要求元から、処理データ取得の要求を実行する場合であっても、１つの要求元が本装置のアクセスのためのバスを占有しないため、他の要求元も速やかに本装置をアクセスができる。
【図面の簡単な説明】
【００１４】
【図１】情報処理装置の全体ブロック図。
【図２】実施形態1における処理部の全体ブロック図。
【図３】制御部のフローチャート。
【図４】ＩＦ部及び、レジスタ部のフローチャート。
【図５】情報処理装置のタイミングチャート。
【図６】情報処理装置の全体ブロック図。
【図７】制御部の予約処理におけるブロック図。
【図８】実施形態における処理データ、疑似データの一覧表を示す図。
【発明を実施するための形態】
【００１５】
以下、本発明を適用した好適な実施形態を説明する。まず、全ての実施形態において共通となる部分について説明し、差異となる部分については各実施形態にて説明する。図１は、本発明の適用が可能な情報処理装置１０１のブロック図である。情報処理装置は、処理部１０７が具備されており処理部１０７から出力された処理データを、要求元からの要求に応じて提供する機能を有している。以下詳細に説明する。
【００１６】
１０２は、Ｃｌｏｃｋ信号（クロック信号）である。情報処理装置１０１の各機能部はこのＣｌｏｃｋ信号１０２の供給を受け、その立ち上がりエッジの検出をトリガに動作を行う。１０３は、Ｒｅｑｕｅｓｔ信号である。要求元（ＣＰＵ１２１乃至１２３）から情報処理装置１０１に対し、処理データの取得を要求する場合に、要求元は該信号を出力（‘１’にアサート）する。１０４は、Ｒｅｓｐｏｎｓｅ信号である。要求元からＲｅｑｕｅｓｔ信号１０３を受け取ると、その応答として、Ｒｅｓｐｏｎｓｅ信号１０４を出力（‘１’にアサート）する。１０５は、Ｒｅｓｐｏｎｓｅ Ｄａｔａである。要求元に対し、Ｒｅｓｐｏｎｓｅ信号１０４を出力する際、同時に出力するデータである。
【００１７】
１０６は、本装置全体の制御を司る制御部である。情報処理装置１０１の各種機能部の状態を管理し制御を行うものである。詳細は後述（図３，４にて説明）する。１０７は、処理部である。情報処理装置１０６の固有機能を有する部分であり、要求元より取得要求のある処理データは、処理部１０７で生成される。処理部１０７は、制御部１０６に対し、処理部１０７のステータス（Ｕｎｉｔ Ｓｔａｔｕｓ信号１１４）を出力する。本説明では、Ｕｎｉｔ  Ｓｔａｔｕｓは、処理部１０７の内部に処理データを格納しているか否かのステータス（Ｅｍｐｔｙ or Ｎｏｔ Ｅｍｐｔｙ）を出力するものとする。また、処理部１０７の外部に対し、処理データ（処理結果）を送信する（ＦＩＦＯ Ｉｎｐｕｔ Ｄａｔａ１１７）場合、併せて処理データ出力通知信号（ＦＩＦＯ Ｉｎｐｕｔ Ｅｎａｂｌｅ信号１１６）を送信する。また、処理部１０７は、処理データの生成を行うか否かの決定の指針に、外部のステータス信号（ＦＩＦＯ Ｓｔａｔｕｓ信号１１５）を受け付ける構成となっている。処理部１０７具体的な例については、各実施形態１〜３にて説明する。
【００１８】
１０８は、ＦＩＦＯ部である。処理部１０７からの処理データ（ＦＩＦＯ  Ｉｎｐｕｔ  Ｄａｔａ１１７）を受信する。また、制御部１０６からの指示（ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ）により、格納済み処理データを出力する（ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｄａｔａ１１９）。また、ＦＩＦＯ部１０８は、ＦＩＦＯの格納状態情報（ＦＩＦＯ  Ｓｔａｔｕｓ信号１１５）を出力する機能を有する。具体的には、（１）Ｅｍｐｔｙ／（２）Ｎｏｔ  Ｅｍｐｔｙ（≠Ｆｕｌl）／（３）Ｆｕｌｌの３状態のいずれかを出力する。
【００１９】
１０９は、要求を受信する受信部並びに応答する応答部として機能するＩＦ部である。要求元からの処理データ取得要求を受信し、要求元へ応答を返す機能を有する。応答（Ｒｅｓｐｏｎｓｅ信号１０４）の制御は応答部１１０が担う。また、ＩＦ部１１１には、レジスタ部１１１が具備され、Ｒｅｓｐｏｎｓｅ信号１０４が出力される時は、同時に、レジスタ部１１１に格納されたデータが出力される。ＩＦ部１０９は、レジスタ部１１１に格納されたデータ値（Ｒｅｇ Ｖａｌｕｅ１１２）を出力する機能を有する。また、ＩＦ部１０９は、ＩＦ部１０９の外部からレジスタ部１１１に入力すべきデータ（Ｒｅｇ  Ｉｎ  Ｄａｔａ１１３）を受信する機能を有する。
【００２０】
ＩＦ部１０９の処理について、図４（ｂ）を用いて詳細に説明する。図４（ｂ）は、Ｒｅｓｐｏｎｓｅ 信号１０４と、Ｒｅｓｐｏｎｓｅ  Ｄａｔａ１０５の処理を示すフローチャートである。各々の信号／データは、Ｃｌｏｃｋ信号１０２の立ち上がり時に、所定の条件により状態変化を行う。Ｃｌｏｃｋ信号１０２の立ち上がりまでは、信号／データとも、前の状態を保持する（Ｓ４０９）。Ｃｌｏｃｋ信号１０２の立ち上がり時（Ｓ４０９でＹｅｓ）、Ｒｅｑｕｅｓｔ信号１０３の状態を確認する（Ｓ４１０）。このとき、Ｒｅｑｕｅｓｔ信号１０３が、‘１’である場合には（Ｓ４１０でＹｅｓ）、Ｒｅｓｐｏｎｓｅ信号１０４を‘１’にし、応答を返す。同時に、Ｒｅｓｐｏｎｓｅ  Ｄａｔａ１０５は、レジスタ部１１１で保持されているデータを出力する（Ｓ４１１）。Ｒｅｑｕｅｓｔ信号１０３が‘１’で無い場合（Ｓ４１０でＮｏ）、Ｒｅｓｐｏｎｓｅ信号１０４を‘０’にし、同時にＲｅｓｐｏｎｓｅ  Ｄａｔａ１０５をＨｉｇｈインピーダンスにしておく（Ｓ４１２）。これは万が一にＲｅｓｐｏｎｓｅ  Ｄａｔａ１０５の接続先がデータを出力してきても、出力が衝突することによる機器破損を防ぐためである。以上が、図４の説明である。上記からも容易に理解できるように、Ｉ/Ｆ部１０９がＲｅｑｕｅｓｔ信号１０３が、‘１’である場合には、必ずＳ４１１の処理を行うので、処理データの有無とは無関係にＲｅｓｐｏｎｓｅ信号１０４を‘１’にし、応答を返すことになる。
【００２１】
図１の説明に戻る。１１０は、スイッチ部である。このスイッチ部１１０は、Ｉ／Ｆ部１０９内のレジスタ部１１１に出力するデータを、制御部１０６からの指示（Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０）を元に選択して、出力する機能を有する。選択は、処理部１０７より出力された処理データ、または、処理データではない疑似データから選択する。疑似データはスイッチ部１１０に格納されている。情報処理装置１０１では、処理部１０７が処理データの生成ができない状態で、かつ、ＦＩＦＯ部１０８にも処理データが入っていない場合に、Ｅｍｐｔｙ  Ｃｏｄｅ（エンプティコード）を疑似データとして出力するものとする。また、ＦＩＦＯ部１０８にデータはないが、処理部１０７にて処理中で有る場合には、Ｂｕｓｙ  Ｃｏｄｅ（ビジーコード）を疑似データとして出力するものとする。以上が、情報処理装置１０１の概要である。
【００２２】
次に、情報処理装置１０１に対する処理要求を行う要求元について説明する。１２１、１２２、１２３は、ＣＰＵである。本明細書では、３つのＣＰＵが、情報処理装置１０１への要求元となる場合を例にして説明する。ＣＰＵ１２１乃至１２３と、情報処理装置１０１は、Ｂｕｓ１２４で接続されるものとする。以上が、図１に関しての説明である。
【００２３】
次に、情報処理装置１０１に具備される制御部１０６について説明する。制御部１０６の主な処理は２つある。一つ目は、ＦＩＦＯからのデータ出力指示、すなわちＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ信号１１８の制御である。二つ目は、レジスタ部１１１へ入力するデータの選択、すなわち、Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０の制御である。各々の制御は、レジスタ部１１１に格納されているデータと、処理部１０７と、ＦＩＦＯ部１０８の状態を監視することにより行われる。すなわち、Ｒｅｇ  Ｖａｌｕｅ１１２と、Ｕｎｉｔ  Ｓｔａｔｕｓ１１４と、ＦＩＦＯ  Ｓｔａｔｕｓ１１５の監視である。二つの処理について、図３（ａ）、（ｂ）を用いて説明する。
【００２４】
まず、ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ信号１１８の制御について図３（ａ）を用いて説明する。同図は、ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ信号１１８の処理を示すフローチャートである。ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ信号１１８もＣｌｏｃｋ信号１０２の立ち上がり時（Ｓ３０１でＹｅｓ）、所定の条件により状態が変化するものである。Ｃｌｏｃｋ信号１０２が立ち上がっていることを条件に、以下に説明する（１）〜（３）の全ての条件がそろったときに、ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ信号１１８を‘１’にし、ＦＩＦＯ部１０８より処理データの出力を要求する（Ｓ３０５）。（１）〜（３）の条件のうち、いずれかの条件を満たさない時には、‘０’として、処理データの出力を促さない（Ｓ３０６）。以下に、条件（１）〜（３）について説明する。
（１）ＦＩＦＯ  Ｓｔａｔｕｓ信号１１５がＥｍｐｔｙではない（Ｓ３０２でＮｏ）。ＦＩＦＯ  Ｓｔａｔｕｓ信号１１５がＥｍｐｔｙの時は、ＦＩＦＯ部１０８より処理データを取り出すことができない状態なので処理データの出力を要求しない。
（２）Ｒｅｇ  Ｖａｌｕｅ信号１１２が、Ｅｍｐｔｙまたは、Ｂｕｓｙである（Ｓ３０３でＹｅｓ）。Ｒｅｇ  Ｖａｌｕｅ１１２が、ＥｍｐｔｙでもＢｕｓｙでもない、処理データである場合は、既にデータを渡す準備ができているので、ＦＩＦＯ部１０８へデータの出力を促さない。ただし、レジスタ部１１１に、常に処理部１０７からの最新の処理データが入っていることが望ましいケース（実施形態３にて説明）に関しては、この限りではない。
（３）ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ信号１１８が‘０’である（Ｓ３０４）。前にＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ信号１１８が、‘１’である場合は、既にＦＩＦＯ部１０８から処理データが出力されている状態なので、一度を停止する。ただし、ＦＩＦＯ部１０８がバーストリードを受け付ける場合は、レジスタ部１１１に最新処理データが格納されることが望ましい場合は、この限りではない。
【００２５】
以上が、ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ信号１１８の制御である。次に、Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０の制御ついて図３（ｂ）を用いて説明する。図は、Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０の処理を示すフローチャートである。Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０もＣｌｏｃｋ信号１０２の立ち上がり時（Ｓ３１１でＹｅｓ）、所定の条件により状態が変化するものである。
【００２６】
まず、ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ信号１１８が‘１’である場合（Ｓ３１２でＹｅｓの時）について説明する。この時は、ＦＩＦＯ部１０８より処理データが出力されるので、レジスタ部１１１に該処理データを格納すべく、Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０を‘０’にセットする。
【００２７】
Ｓ３１２でＮｏの場合は、各種条件により、Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０は、複数の値をとり得る。現在のＤａｔａ  Ｓｅｌｅｃｔ信号１２０が‘０’であり、かつ、Ｒｅｑｕｅｓｔ信号１０３が‘０’であるときは、レジスタ部１１１に処理データが格納されており、かつ、要求元へ出力されることがない。このことは、次の処理データ、または、疑似データを選択して格納する必要がないことを意味する。よって、Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０を切り換える必要が無い（結果として、Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０は‘０’を維持する）。Ｓ３１４でＮｏである場合は、ＦＩＦＯ  Ｓｔａｔｕｓ信号１１５とＵｎｉｔ  Ｓｔａｔｕｓ信号１１４の状態で、Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０の値が異なる。両方の状態がＥｍｐｔｙである場合は（Ｓ３１５でＹｅｓ）、Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０を‘２’にする（Ｓ３１７）。どちらかが、Ｅｍｐｔｙではない場合は（Ｓ３１５でＮｏ）、Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０を‘１’にする（Ｓ３１６）。以上が、Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０の制御方法である。
【００２８】
以上、制御部１０６で実施される２つの信号、（１）ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ信号１１８／（２）Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０の制御方法について説明した。この制御により、レジスタ部１１１に格納されるデータがどのように変化させるかについて、図４（ａ）を用いて説明する。同図は、レジスタ部１１１格納されるデータであるＲｅｇ  Ｖａｌｕｅ１１２の処理を示すフローチャートである。Ｒｅｇ  Ｖａｌｕｅ１１２もＣｌｏｃｋ信号１０２の立ち上がり時（Ｓ４０１でＹｅｓ）、所定の条件により状態が変化するものである。
【００２９】
まず、Ｒｅｑｕｅｓｔ信号１０３の状態により、処理が切り替わる。Ｒｅｑｕｅｓｔ信号１０３が‘０’であり（Ｓ４０２でＮｏ）、かつ、Ｒｅｇ  Ｖａｌｕｅ１１２が、ＢｕｓｙでもＥｍｐｔｙでもない（Ｓ４０５でＮｏ）の場合は、現在の処理データをそのまま保持する。Ｒｅｑｕｅｓｔ信号１０３が‘１’、または、Ｒｅｇ  Ｖａｌｕｅ１１２が疑似データ（Ｂｕｓｙ ｏｒ  Ｅｍｐｔｙ）である場合に、Ｓ４０３の条件へ移行する。Ｓ４０３以降は、ＤａｔａＳｅｌｅｃｔ信号１２０の値により、Ｒｅｇ  Ｖａｌｕｅ１１２が更新される。Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０が、‘０’である場合は、ＦＩＦＯ部１０８より、出力される処理データがあるので、Ｒｅｇ Ｖａｌｕｅ１１２をＦＩＦＯ部１０８より出力された処理データに更新を行う（Ｓ４０４）。Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０が、‘１’、または‘２’である場合は、それぞれＲｅｇ  Ｖａｌｕｅ１１２をＢｕｓｙ（Ｓ４０７）、または、Ｅｍｔｐｙ（Ｓ４０８）に更新させる。以上がＲｅｇ  Ｖａｌｕｅ１１２の処理である。以上、処理部１０７を除く、図１の主要な部分における構成・処理について説明した。
【００３０】
次に、要求元から要求であるＲｅｑｕｅｓｔ信号１０３も含め、外部ないし内部の主要なデータ／信号のタイミングチャートを図５に示す。同図は、情報処理装置１０１の外部、内部それぞれにおける信号／データを時間的にどのように遷移するかを示したものである。符号５０１は、図１におけるＣｌｏｃｋ信号１０２を示し、符号５０２はＲｅｑｕｅｓｔ信号１０３、符号５０３はＲｅｓｐｏｎｓｅ信号１０４、符号５０４はＲｅｓｐｏｎｓｅ  Ｄａｔａ１０５を示す。また、符号５０５は図１のＲｅｇ  Ｖａｌｕｅ１１２、符号５０６はＤａｔａ  Ｓｅｌｅｃｔ信号１２０、符号５０７はＦＩＦＯ  Ｏｕｔｐｕｔ  Ｄａｔａ１１９、符号５０８はＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ信号１１８を示す。そして、符号５０９は図１のＦＩＦＯ  Ｓｔａｔｕｓ信号１１５、符号５１０はＵｎｉｔ  Ｓｔａｔｕｓ信号１１４に対応している。Ｒｅｑｕｅｓｔ信号１０３が、‘１’であることを検出すると、即座にＲｅｓｐｏｎｓｅ信号１０４とともに、Ｒｅｓｐｏｎｓｅ  Ｄａｔａ１０５が出力されることが分かる。また、Ｒｅｇ  Ｖａｌｕｅ１１２の状態は、Ｒｅｇ  Ｖａｌｕｅ１１２の値により、Ｒｅｑｕｅｓｔ信号１０３の状態に依らず、バックグラウンドで更新されることが分かる。Ｄａｔａ  Ｓｅｌｅｃｔ信号１２０と、ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ信号１１８の制御により、ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｄａｔａ１１９とＲｅｇ  Ｖａｌｕｅ１１２が更新されていくことが分かる。
【００３１】
本説明では、レジスタ部１１１を具備し、また、ＦＩＦＯ部１０８は、１クロックサイクル出力したら、次のサイクルはリードしないＦＩＦＯを用いて説明した。しかし、ＦＩＦＯ部１０８がバーストリード、すなわち、ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ信号１１８が連続したクロックサイクルで‘１’になっても処理データの出力が可能であるものを用いても良い。その場合、Ｒｅｑｕｅｓｔ信号１０３をそのまま、制御部１０６で必要によりゲートし、ＦＩＦＯ部１０８に直接、ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ信号として入力する仕組みにしてもよい。その様にすることにより、Ｒｅｓｐｏｎｓｅ  Ｄａｔａ１０５より出力されるデータに、情報処理装置１０１の状態や処理結果に関して即応性を持たせることができる。
【００３２】
［第１の実施形態］
次に、第１の実施形態について説明する。本実施形態では、情報処理装置１０１をＩＤ管理装置に適用した場合について説明する。ＩＤ管理装置の動作の概要については、背景技術に記載したのでここでは割愛する。情報処理装置１０１をＩＤ管理装置に適用するには、処理部１０７がＩＤ管理処理の主要部分を担わせればよい。ＩＤ管理装置に適用したときの処理部１０７について詳細に説明する。図２は、処理部１０７の内部ブロック図である。なお、要求元から、ＩＤの解放要求を受け付ける場合においては、本発明の主となる部分ではないため割愛する。
【００３３】
２０１は、処理制御部である。ＦＩＦＯ  Ｓｔａｔｕｓ信号１１５を監視し、具体的な指示を処理検索部２０４やＩＤ操作部２０６に対し行う。また、Ｕｎｉｔ  Ｓｔａｔｕｓ信号１１４により、内部状態を外部に送信する。２０２は検索部である。処理制御部２０１からの指示により、メモリ部２０４に未使用ＩＤがあるか否かを検索する。検索のために必要なメモリＲｅａｄ操作をメモリ管理部２０５に送信する。また、処理結果について、処理制御部２０１に送信する。なお、検索部２０２は、未使用ＩＤの数を調べる機能を有していても良い。２０３は、ＩＤ操作部である。未使用ＩＤを外部に出力し、未使用ＩＤを使用済にする処理と、要求元より解放要求のあったＩＤに対して、処理制御部２０１からの情報により未使用状態に戻す処理を実行する。また、処理結果について、処理制御部２０１に送信する。ＩＤ操作のために必要なメモリＲｅａｄ／Ｗｒｉｔｅ操作をメモリ管理部２０５に送信する。また、登録されているＩＤを処理データとして外部に出力する際、取得してきたメモリ値を変換部２１０に送信する。
【００３４】
２０４はメモリ部である。メモリ部２０４に各ビットに、システムが有するリソースである各メモリ領域に一意に割り当てたＩＤについて、そのＩＤで示されるメモリ領域が未使用（値が‘１’）、または使用済（値が‘０’）である情報が格納されている。１つのＡｄｄｒｅｓｓには３２ビットが割り当てられ、各ビット位置がＩＤ番号に対応する。従って、Ａｄｄｒｅｓｓ０ｘ００００＿００００の３２ビットはＩＤ番号「０」乃至「３１」を管理するためのものである。ａｄｄｒｅｓｓ“０ｘ００００＿００００”番地には０ｂ０１０００１００＿００００００００＿００００００００＿０００１０００１（先頭の０ｂは二進数を示す）が格納されている。従って、ＩＤ番号０乃至３１のうち、４つのＩＤが未使用状態（１の数が４つ）となっていることを表す。また、Ａｄｄｒｅｓｓ０ｘ００００＿０００４の３２ビットは後続するＩＤ「３２」乃至「６３」を管理するためのものである。以下、同様である。このように各アドレスの各ビット毎にＩＤを対応づけることにより、ＩＤ番号をそのまま使用して管理するよりもメモリを削減できる効果がある。
【００３５】
２０５はメモリ管理部である。検索部２０２または、ＩＤ操作部２０３からの指示により、メモリ部２０４に対して、必要なメモリアクセス（Ｒｅａｄ／Ｗｒｉｔｅ）を実行する。メモリ部２０４には、アクセスがＲｅａｄまたはＷｒｉｔｅの種別を表すＲ／Ｗ信号２０６、アクセスの発生を示すＣＳ（Ｃｈｉｐ  Ｓｅｌｅｃｔ）信号２０７が具備されている。さらに、メモリ部２０４には、アクセス先アドレスを示すＡｄｄｒｅｓｓ２０８、Ｒｅａｄ／Ｗｒｉｔｅされるデータが現れるＭｅｍｏｒｙ  Ｄａｔａ２０９が具備される。
【００３６】
２１０は、変換部である。先に説明したように、メモリ部２０４では、各ＩＤを各アドレスのビットに割り当てて管理しているため、実際のＩＤ値とビットデータを双方に変換する処理を担う。また、外部にＩＤを処理データとして出力するインターフェイスを具備する。具体的には、ＦＩＦＯ  Ｉｎｐｕｔ  Ｅｎａｂｌｅ信号１１６とＦＩＦＯ  Ｉｎｐｕｔ  Ｄａｔａ１１７である。以上が第１の実施形態における処理部１０７の処理概要である。このように処理部１０７をＩＤ管理処理機能部として適用することにより、情報処理装置１０１をＩＤ管理装置として適用可能であることについて説明した。
【００３７】
［第２の実施形態］
第１の実施形態では、情報処理装置１０１をＩＤ管理装置に適用した場合について説明した。また、第１の実施形態では、複数の要求元に対し要求元を特定せず、要求受信時に提供できるＩＤがあればその値を処理データとして提供し、ＩＤがなければ、情報処理装置１０１のステータスを疑似データとして提供する。すなわち複数の要求元でも適用が可能である。ただし、処理部１０７の処理タイミングと、要求元からの要求受信タイミングにより、先に要求のあった要求先に、疑似データを提供し、後から要求のあった要求先に処理データを提供するといったことが起こり得る。そこで、先に取得要求のあった要求先に処理データを提供できない（つまり、疑似データを提供する）場合は、予約として受け付ける方法について説明する。
【００３８】
図６の符号６０１は予約処理に対応した情報処理装置である。情報処理装置１０１との差分について記載する。
【００３９】
まず、情報処理装置６０１は予約に対応するために、どの要求元に対して予約を行うかを決定するために要求元の特定を行う必要がある。そこで、要求元を特定するための信号である、Ｒｅｑ ＩＤ６０２を使用する。各要求元（ＣＰＵ１２１乃至１２３）からのＲｅｑｕｅｓｔ信号１０３発行時に、Ｒｅｑ  ＩＤを付与されるように構成される。Ｒｅｑ  ＩＤ６０２の付与は、バス６０３または要求元（ＣＰＵ１２１乃至１２３）のどちらでＲｅｑ  ＩＤ６０２を付与しても良い。なお、以後Ｒｅｑ  ＩＤ６０２を適用した場合の説明を続けるが、基本的に要求元を特定できればどのような方法でもよい。例えば、予め各要求元が、Ｒｅｑｕｅｓｔ信号１０３を発行する際に、取得データのＲｅａｄに指定するエリアのアドレスを要求元でそれぞれ異なるものを用いる等の交渉が成立していれば、アドレス情報を利用してもよい。
【００４０】
６０４は、予約に対応したＩＦ部である。予約に対応するためには、どの要求元からの取得要求化により返信するＲｅｓｐｏｎｓｅ  Ｄａｔａ１０５を切り換える必要があるため、そのためにレジスタを要求元毎に具備する。
【００４１】
６０８は、予約に対応した制御部である。予約に対応するためにＲｅｑ  ＩＤ６０２と各レジスタ部６０５乃至６０７に格納されたデータ値であるＲｅｇ1  Ｖａｌｕｅ／Ｒｅｇ２  Ｖａｌｕｅ／Ｒｅｇ３  Ｖａｌｕｅを受け取る構成になる。また、レジスタ部６０５乃至６０７毎に、レジスタ部へ入力するデータを選択するためにＤａｔａ  Ｓｅｌｅｃｔ信号を３つ出力する（６１２、６１３、６１４）。制御部６０８の詳細は後述する。また、情報処理装置６０１は、各レジスタ部のそれぞれに対応するために、スイッチ部１１０を３つ具備する。各々のスイッチ部１１０は、制御部６０８から各々のスイッチ部１１０に割り当てられたＤａｔａ  Ｓｅｌｅｃｔ信号により動作する。以上が情報処理装置６０１の全体概要である。
【００４２】
次に、制御部６０８の詳細について、図７を用いて説明する。なお、制御部１０６との大きな差分である予約機能についてここでは説明を行う。他の部分については、制御部１０６のそのまま、もしくは、若干の変更で適用できるため割愛する。
【００４３】
制御部６０８には、要求元の数だけタグを有している。図８では、ＴＡＧ１（７０１）、ＴＡＧ２（７０２）、ＴＡＧ３（７０３）の３つが、それぞれＣＰＵ１（１２１）、ＣＰＵ２（１２２）、ＣＰＵ３（１２３）の予約処理の管理に使用される。以下、タグがどのように使用され予約処理がされるかについて、説明する。
【００４４】
７０４は、要求元プールである。予約処理の必要が無い場合には、全てのタグは、要求元プール７０４に格納（記録）される。予約処理の必要が生じた際、つまり、Ｒｅｓｅｒｖｅ Ｒｅｑｕｅｓｔ７０６を受信した場合、予約の必要な要求元に対応づけられたタグが、要求元プールからＴｏ  Ｄｏ  Ｔａｇ７０７より、出力されて予約処理が開始される。なお、Ｒｅｓｅｒｖｅ  Ｒｅｑｕｅｓｔ７０６より、要求されたタグが、すでに予約処理に入っており、要求元プール７０４に存在しない場合は、特に何もしない。予約処理の終了、または、予約の必要が無くなった場合には、Ｄｏｎｅ  Ｔａｇ７１１より、要求元プールに該当タグは戻される。
【００４５】
７０５は予約発行部である。要求元プールに対して、予約要求であるＲｅｓｅｒｖｅ  Ｒｅｑｕｅｓｔ７０６を送信する。予約要求は、以下の条件のとき発行される。すなわち、Ｒｅｑｕｅｓｔ信号１０３が‘１’であることを検知したときに、Ｒｅｑ  ＩＤ（６０２）に対応するレジスタ部の値が疑似データで有った場合に予約が成立する。具体的には、取得要求の検知時、要求元がＲｅｑ  ＩＤ６０２より、ＣＰＵ1（１２１）とわかり、かつ、その時のレジスタ部１（６０５）のＲｅｇ１  Ｖａｌｕｅ６０９が疑似データであった時は、ＴＡＧ１（７０１）の予約が成立する。
この情報をＲｅｓｅｒｖｅ  Ｒｅｑｕｅｓｔ７０６へ送信する。
【００４６】
７０８は、予約元ＦＩＦＯである。予約処理の決まったタグを最初に格納される場所である。すでに予約処理が処理中である場合のバッファとして使用され、（要求先の数−１）の段数分のＦＩＦＯが具備される。予約元レジスタ７１０のタグが抜けるタイミング、もしくは、予約元レジスタ７１０が空の時、Ｎｅｘｔ  Ｄｏ  Ｔａｇ７０９より、予約元レジスタ７０３に格納しているタグから１つを送信する。
【００４７】
７１０は、予約元レジスタである。予約処理の実行を行うタグが格納される。図では、ＴＡＧ３（７０３）が格納されている状態である。予約処理の実行は、予約制御部７１２で処理され、予約元レジスタ７１１に格納されたタグを参照して処理を行う。
【００４８】
７１２は、予約制御部である。予約元レジスタ７０３に格納されているタグを元に予約すべき要求元を確認する。そして、どの３つ具備されるスイッチ部１１０のどのスイッチ部１１０に対し、ＦＩＦＯ部１０８からの処理データをレジスタ部へ伝搬させるか特定するための信号（Ｓｗｉｔｃｈ  Ｓｅｌｅｃｔ信号７１５）をデータセレクト部７１６に出力する。また、レジスタ部１（６０５）〜レジスタ部３（６０７）を監視し、有効データの格納を確認した場合は、予約を取り下げる。また、ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ信号１１８とＳｗｉｔｃｈ  Ｓｅｌｅｃｔ信号７１５を監視し、予約処理が完了したと判断した場合にも、予約を取り下げる。予約を取り下げる場合は、予約元レジスタ７１０に格納されているタグを要求元プールに戻す処理を行う。データセレクト部７１６は、基本的には図３の（ｂ）の処理となるが、Ｄａｔａ  Ｓｅｌｅｃｔ信号が３つになるため、処理が３つ動作することになる。また、Ｓｗｉｃｈ  Ｓｅｌｅｃｔ信号７１５の使用／未使用状況や、使用時の出力値（どの要求元への予約処理を行っているか）によって、Ｓ３１３のＤａｔａ  Ｓｅｌｅｃｔを‘０’にする処理への分岐の有無が変更される。以上が、第２の実施形態における予約方法の説明である。なお、第１の実施形態では、ＩＤ管理装置への適用を例にしたが、第２の実施形態で説明した予約方法は、特にＩＤ管理装置でなければ適用できないわけではないことはここまでの説明で明らかである。
【００４９】
［第３の実施の形態］
第１の実施形態、および、第２の実施形態では、ＩＤ管理装置に適用した場合について説明した。このとき、処理部１０７が出力する処理データ、および、処理部１０７からのデータではなく、スイッチ部１１０で生成される疑似データは、それぞれ、図８の符号８０１ようになる。図８では、ＩＤ管理装置が管理可能なＩＤ値は、０〜６５５３５までの範囲で６５５３５個の例であるが、ＩＤ値として許容しているデータと疑似データが重複しない限り、管理可能なＩＤ値の最大数は可変として適用可能である。
【００５０】
また、本発明はＩＤ管理装置以外にも適用が可能である。例えば、タイマー装置にも適用できる。ここでは、タイマー装置に、あるタイマー値がセットされてから、該タイマーにセットされた時刻になるまで、タイマー値を減算していくものを例に説明する。具体的には、図１における処理部１０７が、タイマー処理部となり、以下の機能を有するものとする。タイマー処理部は、予めセットされたタイマー値をカウンタにセットし、一定時間もしくは一定クロックサイクル経過ごとに、カウンタ値が零になるまで減算していく。また、タイマー処理部は、カウント値が更新されるたびに、カウント値を出力する。タイマー装置はその性質上、問い合わせを受信後、リアルタイマー値を出力必要があるため、ＦＩＦO部１０８は一段にする、あるいは、ＦＩＦＯをなくし、スイッチ部１１０のデータ入力部に直接、処理部１０７の出力ＩＦを接続する構成が望ましい。ＦＩＦＯ部１０８を実装しない場合は、ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ信号１１８を処理部１０７に入力し、処理部１０７より処理データの出力を促す構成にしてもよい。また、常に最新の処理データが入っていることが望ましいため、図３のＳ３０３の条件、Ｒｅｇ  Ｖａｌｕｅ１１２に処理データが入っている場合は、ＦＩＦＯ  Ｏｕｔｐｕｔ  Ｅｎａｂｌｅを‘０’にしない条件を削除してもよい。
【００５１】
タイマーがセットされていない場合は、レジスタ部に、Ｎｕｌｌ Ｃｏｄｅを表すデータを出力するように、スイッチ部１１０を構成すればよい。図８の符号８０２にタイマー装置に適用させたときの処理データおよび、疑似データについて記載する。図８では、Ｔｉｍｅｒクロックの周期が仮に１秒で有れば、タイマー装置は、最大６５５３５秒の時間を計時することが可能であることを示している。疑似データと処理データが重複しないようにスイッチ部１１０と処理部１０７を設定することで、さらに大きなカウンタ値を扱うことができるのは、ＩＤ管理装置と同様である。
【００５２】
さらに、本発明は乱数発生処理を行う装置への適用も可能である。ここでは、処理部１０７を乱数発生器として、乱数を生成するたびにＦＩＦＯ部１０８へ出力する機能を有するものとする。乱数発生器を、ＦＩＦＯ部１０８がＦｕｌｌになるまで、乱数の発生をする構成にすれば、要求元からの要求タイミングが連続しても、ＦＩＦＯ部１０８に処理データが残っている限り、データを切らすことなく乱数を提供することが可能である。図８の符号８０３に乱数発生装置に適用した場合の処理データ、疑似データについて記載する。図８の例では、この乱数発生装置は、０〜６５５３５までの乱数の発生が可能であることを示している。また、乱数の計算中は、Ｂｕｓｙ Ｃｏｄｅを出力することを表している。
【００５３】
疑似データと処理データが重複しないようにスイッチ部１１０と処理部１０７を設定することで、さらに大きなカウンタ値を扱うことができるのは、ＩＤ管理装置と同様である。
【００５４】
ここでは、ＩＤ管理装置以外に、タイマー装置、乱数発生装置に関して、本発明の適用例を示した。しかし、本発明は特にこれらに適用を限定するものではない。つまり、要求元からのデータ取得要求を元に処理部１０７からの処理データを提供するようなものであれば、どのような処理を情報処理装置が担っていても適用可能である。
【図１】
2014215724.tif 000003
【図２】
2014215724.tif 000004
【図３】
2014215724.tif 000005
【図４】
2014215724.tif 000006
【図５】
2014215724.tif 000007
【図６】
2014215724.tif 000008
【図７】
2014215724.tif 000009
【図８】
2014215724.tif 000010