(57)【要約】【課題】  シリアルバスシステムにおけるリードレイテンシーの異なる複数の宛先に対する複数のリードリクエストが混在しても、各宛先に対するリードリクエストが円滑に処理されていくようにする。【解決手段】  リクエストバッファー４３は、所定の数のリクエストをキューイング可能であって、リクエストの宛先ごとに未処理リードリクエストの数の上限値を設定されている。調停部４２は、新たなリードリクエストが受け付けられると、受け付けられたリードリクエストの宛先を特定し、特定した宛先についてのリクエストバッファー内の未処理リードリクエストの数が、特定した宛先についての上限値に到達している場合には、特定した宛先より優先度の低い宛先についての上限値を低くした上で、特定した宛先についての上限値を高くする。【選択図】図２
2013077043.tif 000002
【特許請求の範囲】
【請求項１】
所定の数のリードリクエストをバッファリング可能であって、リードリクエストの宛先ごとに未処理リードリクエストの数の上限値を設定されているリクエストバッファーと、
新たなリードリクエストが受け付けられると、受け付けられた前記リードリクエストの宛先を特定し、特定した前記宛先についての前記リクエストバッファー内の前記未処理リードリクエストの数が、特定した前記宛先についての前記上限値に到達している場合には、特定した前記宛先より優先度の低い宛先についての前記上限値を低くした上で、特定した前記宛先についての前記上限値を高くする調停部と、
を備えることを特徴とする電子機器。
【請求項２】
前記優先度は、前記宛先のリードレイテンシーが大きいほど低くなることを特徴とする請求項１記載の電子機器。
【請求項３】
リードリクエストをシリアルバスシステムで送信する通信回路をさらに備えることを特徴とする請求項１または請求項２記載の電子機器。
【請求項４】
前記リードリクエストは、ＰＣＩｅのアウトスタンディングリードリクエストであることを特徴とする請求項３記載の電子機器。
【請求項５】
前記リードリクエストは、メモリーリードリクエストであることを特徴とする請求項４記載の電子機器。
【請求項６】
複数の処理回路モジュールを有する第１ＩＣチップと、
第１メモリーへのアクセスを行う第１メモリーコントローラーを有し、前記シリアルバスシステムで前記第１ＩＣチップに接続されている第２ＩＣチップと、
第２メモリーへのアクセスを行う第２メモリーコントローラーを有し、前記シリアルバスシステムで前記第２ＩＣチップに接続されている第３ＩＣチップとを備え、
前記リクエストバッファーおよび前記調停部は、前記第１ＩＣチップ内に設けられ、
前記リードリクエストは、前記第１メモリーコントローラーまたは前記第２メモリーコントローラーを前記宛先として前記複数の処理回路モジュールのいずれかにより発行されたメモリーリードリクエストであること、
を特徴とする請求項５記載の電子機器。
【請求項７】
前記優先度は、前記シリアルバスシステムにおいて前記宛先までの中継回数が多いほど低くなることを特徴とする請求項３記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器に関するものである。
【背景技術】
【０００２】
電子機器内の複数の集積回路（ＩＣ：Integrated Circuit）チップの接続にＰＣＩｅ（Peripheral Component Interconnect Express）などのシリアルバスシステムが使用されることがある（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２４９８１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
図５は、複数のＩＣチップをＰＣＩｅバスシステムで接続した電子機器の一例を示すブロック図である。図５に示す電子機器では、ＩＣチップ１０１にＩＣチップ２がＰＣＩｅのシリアルバスで接続され、ＩＣチップ２にＩＣチップ３がＰＣＩｅのシリアルバスで接続されている。ＩＣチップ２にはメモリー４が接続されており、ＩＣチップ３にはメモリー５が接続されている。
【０００５】
ＩＣチップ２では、ＰＣＩｅ通信回路２１、メモリー４用のメモリーコントローラー２２、およびＰＣＩｅ通信回路２３が内部バス２４で互いに接続されており、ＩＣチップ３では、ＰＣＩｅ通信回路３１、およびメモリー５用のメモリーコントローラー３２が内部バス３３で互いに接続されている。
【０００６】
ＩＣチップ１０１では、複数の処理回路モジュール１１１，１１２とＰＣＩｅ通信回路１１３とが内部バス１１４で接続されている。各処理回路モジュール１１１，１１２は、ＰＣＩｅバスシステムで、ＩＣチップ２に接続されたメモリー４およびＩＣチップ３に接続されたメモリー５にアクセス可能となっている。
【０００７】
図５に示す電子機器において、例えば、処理回路モジュール１１１は、ＰＣＩｅ通信回路１１３，２１，２３，３１を介して、メモリーコントローラー３２と通信してメモリー５にアクセスし、処理回路モジュール１１２は、ＰＣＩｅ通信回路１１３，２１を介して、メモリーコントローラー２２と通信してメモリー４にアクセスする。この場合、２つの処理回路モジュール１１１，１１２がＰＣＩｅ通信回路１１３によるシリアルバスを使用するため、調停が行われる。
【０００８】
この場合、処理回路モジュール１１１とメモリー５との間のデータ転送がＩＣチップ２で中継されているため、処理回路モジュール１１１からメモリー５へのリードレイテンシー（リードリクエストの送信からデータ受信までの時間）は、処理回路モジュール１１２からメモリー４へのリードレイテンシーより大きくなる。
【０００９】
ＰＣＩｅの送信回路は、一般に、リクエストバッファーを有しており、このリクエストバッファーは、アウトスタンディングリード（Outstanding read）リクエストをキューイングされ、所定の数のアウトスタンディングリードリクエストをバッファリング可能である。リクエストバッファーにバッファリングされているアウトスタンディングリードリクエストが順次送信され、送信されたリクエストに対応するデータが受信されると、そのリクエストがリクエストバッファーから消去される。
【００１０】
このため、リードレイテンシーが大きいメモリー５へのリードリクエストが多いと、リクエストバッファーがフルになり、リードレイテンシーが小さいメモリー４へのリードリクエストを処理回路モジュール１１２が発行しようしても、少なくとも１つの、メモリー５へのリードリクエストが完了するまで、メモリー４へのリードリクエストの発行（つまり、リクエストバッファーへのキューイング）を待たなければならない。
【００１１】
このように、シリアルバスシステムにおけるリードレイテンシーの異なる複数の宛先に対する複数のリードリクエストが混在する場合、リードレイテンシーが小さい宛先に対するリードリクエストに待ち時間が発生しやすくなる。
【００１２】
なお、例えば特開平１０−１０５５１２号公報にシリアル通信の調停が開示されているが、この技術を通常のシリアルバスに適用することは困難である。また、例えば特開２００４−３１８８７６号公報にプロセッサー内部のコア実行ユニットとＬ２キャッシュとの間における調停が開示されているが、この技術を通常のシリアルバスに適用することは困難である。
【００１３】
本発明は、上記の問題に鑑みてなされたものであり、シリアルバスシステムにおけるリードレイテンシーの異なる複数の宛先に対する複数のリードリクエストが混在しても、各宛先に対するリードリクエストを円滑に処理していく電子機器を得ることを目的とする。
【課題を解決するための手段】
【００１４】
上記の課題を解決するために、本発明では以下のようにした。
【００１５】
本発明に係る電子機器は、所定の数のリードリクエストをバッファリング可能であって、リードリクエストの宛先ごとに未処理リードリクエストの数の上限値を設定されているリクエストバッファーと、新たなリードリクエストが受け付けられると、受け付けられたリードリクエストの宛先を特定し、特定した宛先についてのリクエストバッファー内の未処理リードリクエストの数が、特定した宛先についての上限値に到達している場合には、特定した宛先より優先度の低い宛先についての上限値を低くした上で、特定した宛先についての上限値を高くする調停部とを備える。
【００１６】
これにより、シリアルバスシステムなどにおけるリードレイテンシーの異なる複数の宛先に対する複数のリードリクエストが混在しても、各宛先に対するリードリクエストが円滑に処理されていく。
【００１７】
また、本発明に係る電子機器は、上記の電子機器に加え、次のようにしてもよい。この場合、上述の優先度は、宛先のリードレイテンシーが大きいほど低くなる。
【００１８】
これにより、リードレイテンシーが大きい宛先へのリードリクエストよりリードレイテンシーが小さい宛先へのリードリクエストが優先されるため、リクエストバッファーがフルになりにくい。
【００１９】
また、本発明に係る電子機器は、上記の電子機器のいずれかに加え、次のようにしてもよい。この場合、電子機器は、リードリクエストをシリアルバスシステムに送信する通信回路をさらに備える。
【００２０】
また、本発明に係る電子機器は、上記の電子機器のいずれかに加え、次のようにしてもよい。この場合、上述のリードリクエストは、ＰＣＩｅのアウトスタンディングリードリクエストである。
【００２１】
また、本発明に係る電子機器は、上記の電子機器のいずれかに加え、次のようにしてもよい。この場合、上述のリードリクエストは、メモリーリードリクエストである。
【００２２】
また、本発明に係る電子機器は、上記の電子機器のいずれかに加え、次のようにしてもよい。この場合、電子機器は、複数の処理回路モジュールを有する第１ＩＣチップと、第１メモリーへのアクセスを行う第１メモリーコントローラーを有しシリアルバスシステムで第１ＩＣチップに接続されている第２ＩＣチップと、第２メモリーへのアクセスを行う第２メモリーコントローラーを有しシリアルバスシステムで第２ＩＣチップに接続されている第３ＩＣチップとを備える。そして、リクエストバッファーおよび調停部は、第１ＩＣチップ内に設けられ、リードリクエストは、第１メモリーコントローラーまたは第２メモリーコントローラーを宛先として複数の処理回路モジュールのいずれかにより発行されたメモリーリードリクエストである。
【００２３】
また、本発明に係る電子機器は、上記の電子機器のいずれかに加え、次のようにしてもよい。この場合、上述の優先度は、シリアルバスシステムにおいて宛先までの中継回数が多いほど低くなる。
【００２４】
これにより、シリアルバスシステムの構成に基づいて設計段階で各宛先の優先度を決定し実装することができる。
【発明の効果】
【００２５】
本発明によれば、電子機器において、リードレイテンシーの異なる複数の宛先に対する複数のリードリクエストが混在しても、各宛先に対するリードリクエストが円滑に処理されていく。
【図面の簡単な説明】
【００２６】
【図１】図１は、本発明の実施の形態１に係る電子機器の構成を示すブロック図である。
【図２】図２は、図１におけるＰＣＩｅ通信回路の構成例を示すブロック図である。
【図３】図３は、図２に示すＰＣＩｅ通信回路の調停制御を説明するフローチャートである。
【図４】図４は、本発明の実施の形態２に係る電子機器の構成を示すブロック図である。
【図５】図５は、複数のＩＣチップをＰＣＩｅバスシステムで接続した電子機器の一例を示すブロック図である。
【発明を実施するための形態】
【００２７】
以下、図に基づいて本発明の実施の形態を説明する。
【００２８】
実施の形態１．
【００２９】
図１は、本発明の実施の形態１に係る電子機器の構成を示すブロック図である。図１に示す電子機器では、ＩＣチップ１にＩＣチップ２がＰＣＩｅのシリアルバスで接続され、ＩＣチップ２にＩＣチップ３がＰＣＩｅのシリアルバスで接続されている。ＩＣチップ２にはメモリー４が接続されており、ＩＣチップ３にはメモリー５が接続されている。
【００３０】
ＩＣチップ１は、複数の処理回路モジュール１１，１２を有し、主にデータ処理を行う。ＩＣチップ２，３は、それぞれ固有の機能を有し、その機能において取り扱うデータをメモリー４，５にそれぞれ記憶する。メモリー４，５は、例えば同一のＤＲＡＭ（Dynamic Random Access Memory）である。ＩＣチップ１の各処理回路モジュール１１，１２は、メモリー４，５からデータを読み出し、そのデータに対して所定の処理を行う。
【００３１】
ＩＣチップ２では、ＰＣＩｅ通信回路２１、メモリー４用のメモリーコントローラー２２、およびＰＣＩｅ通信回路２３が内部バス２４で互いに接続されており、ＩＣチップ３では、ＰＣＩｅ通信回路３１、およびメモリー５用のメモリーコントローラー３２が内部バス３３で互いに接続されている。
【００３２】
ＩＣチップ１では、処理回路モジュール１１，１２とＰＣＩｅ通信回路１３とが内部バス１４で接続されている。各処理回路モジュール１１，１２は、ＰＣＩｅバスシステムで、ＩＣチップ２に接続されたメモリー４およびＩＣチップ３に接続されたメモリー５にアクセス可能となっている。
【００３３】
この電子機器におけるＰＣＩｅバスシステムでは、例えば、ＰＣＩｅ通信回路１３，２３は、ルートコンプレックスであり、ＰＣＩｅ通信回路２１，３１は、エンドポイントであり、ＰＣＩｅ通信回路１３とＰＣＩｅ通信回路２１がシリアル接続され、ＰＣＩｅ通信回路２３とＰＣＩｅ通信回路３１がシリアル接続されている。そして、処理回路モジュール１１，１２がマスターであり、メモリーコントローラー２２，３２がスレーブである。
【００３４】
ＩＣチップ１のＰＣＩｅ通信回路１３では、リードレイテンシーの異なる複数の宛先（メモリーコントローラー２２，３２）についての調停が行われる。図２は、図１におけるＰＣＩｅ通信回路１３の構成例を示すブロック図である。
【００３５】
図２に示すように、ＰＣＩｅ通信回路１３は、リクエスト処理部４１、調停部４２、リクエストバッファー４３、コントローラー４４、および通信コアモジュール４５を有する。
【００３６】
リクエスト処理部４１は、処理回路モジュール１１，１２から内部バス１４を介してリードリクエストを受け付けるとともに、そのリードリクエストに対応する応答データを要求元へ、内部バス１４を介して送信する。
【００３７】
調停部４２は、リクエスト処理部４１が新たなリードリクエストを受け付けると、（ａ）受け付けたリードリクエストの宛先を特定し、（ｂ）特定した宛先についてのリクエストバッファー４３内の未処理リードリクエストの数ｎを特定し、（ｃ）その未処理リードリクエストの数ｎが、特定した宛先についての上限値Ｎ１に到達している場合には、特定した宛先より優先度の低い宛先についての上限値Ｎ２を所定の値（例えば１）だけ低くした上で、特定した宛先についての上限値Ｎ１をその所定の値だけ高くする。
【００３８】
調停部４２は、各宛先についての、リクエストバッファー４３内に保持できるリードリクエストの上限値（デフォルト値）を示す上限値データ５１を内蔵しており、その上限値データ５１を参照して、各宛先についての上限値を特定する。また、調停部４２は、宛先と優先度との対応関係を示す宛先優先度データ５２を内蔵しており、その宛先優先度データ５２を参照して、各宛先の優先度を特定する。
【００３９】
この優先度は、宛先のリードレイテンシーが大きいほど低くなるように設定される。例えば、この優先度は、ＰＣＩｅバスシステム内での通信の中継回数が多いほど低くなる。図１におけるシステムでは、メモリーコントローラー３２が宛先の場合の中継回数が、メモリーコントローラー２２が宛先の場合の中継回数より多いため、メモリーコントローラー３２についての優先度は、メモリーコントローラー２２についての優先度より低くなる。
【００４０】
リクエストバッファー４３は、シリアルバスシステムのリードリクエストをキューイングされ、所定の数Ｎのリクエストをバッファリング可能な記憶領域を有する。リードリクエストの宛先ごとに、リクエストバッファー４３内の未処理リードリクエスト（完了していないリードリクエスト）の数の上限値が設定されている。
【００４１】
実施の形態１では、リードリクエストは、ＰＣＩｅのアウトスタンディングリードリクエストである。また、実施の形態１では、リードリクエストは、メモリーリードリクエストである。
【００４２】
コントローラー４４は、通信コアモジュール４５を制御し、リクエストバッファー４３内のリードリクエストを通信コアモジュール４５で送信させるとともに、通信コアモジュール４５で受信された、リードリクエストの応答データを取得する。
【００４３】
通信コアモジュール４５は、通信相手とＰＣＩｅでデータ通信を行う通信回路である。通信コアモジュール４５は、トランザクション層以下の処理を行う。特に、通信コアモジュール４５は、リードリクエストをＰＣＩｅでシリアルバスシステムに送信する通信回路である。
【００４４】
次に、上記電子機器の調停制御について説明する。図３は、図２に示すＰＣＩｅ通信回路１３の調停制御を説明するフローチャートである。
【００４５】
リクエスト処理部４１が処理回路モジュール１１または処理回路モジュール１２から内部バス１４を介してリードリクエストを受け付けると（ステップＳ１）、調停部４２は、そのリードリクエストの宛先を特定し（ステップＳ２）、リクエストバッファー４３内の、その宛先の未処理リードリクエストの数を特定する（ステップＳ３）。
【００４６】
そして、調停部４２は、上限値データ５１を参照して、その宛先についての上限値を特定し、その宛先の未処理リードリクエストの数が、その上限値に到達しているか否かを判定する（ステップＳ４）。
【００４７】
その宛先の未処理リードリクエストの数がその上限値に到達していない場合、調停部４２は、そのリードリクエストをリクエストバッファー４３にキューイングする（ステップＳ５）。
【００４８】
調停部４２は、シリアルバスシステム内の宛先と同数のカウンターを有し、リクエストバッファー４３にリードリクエストをキューイングするときに、各宛先についての未処理リードリクエストの数のカウンターを１だけインクリメントし、リードリクエストの応答データを受信すると、そのリードリクエストをリクエストバッファー４３から削除するとともに、そのリードリクエストの宛先についてのカウンターを１だけデクリメントする。このため、調停部４２は、ステップＳ３では、その宛先についてのカウンターの値を参照して、その宛先の未処理リードリクエストの数を特定する。
【００４９】
一方、その宛先の未処理リードリクエストの数がその上限値に到達している場合、調停部４２は、その宛先より優先度が低く、かつ未処理リードリクエストの数が上限値に到達していない宛先を検索し、その宛先より優先度が低く、かつ未処理リードリクエストの数が上限値に到達していない宛先があるか否かを判定する（ステップＳ６）。
【００５０】
その受け付けたリクエストの宛先より優先度が低く、かつ未処理リードリクエストの数が上限値に到達していない宛先がある場合、調停部４２は、その優先度の低い宛先についての上限値を低くするとともに、その受け付けたリクエストの宛先の上限値を高くする（ステップＳ７）。
【００５１】
なお、すべての宛先についての上限値の総和が、リクエストバッファー４３がバッファリング可能なリクエストの数Ｎ以下の所定の値Ｎ０となるように、各宛先についての上限値Ｎｉが制御される。図１に示すバスシステムでは、宛先がメモリーコントローラー２２，３２の２つであるので、メモリーコントローラー２２についての上限値をＮ１とし、メモリーコントローラー３２についての上限値をＮ２とすると、次式が成り立つように、調停部４２はＮ１とＮ２を増減させる。
【００５２】
Ｎ≧Ｎ０＝（Ｎ１＋Ｎ２）
【００５３】
ステップＳ７の処理により、受け付けたリクエストの宛先の未処理リードリクエスト数の上限値に到達していない状態となるので、調停部４２は、そのリードリクエストをリクエストバッファー４３にキューイングする（ステップＳ８）。
【００５４】
一方、その受け付けたリクエストの宛先より優先度が低く、かつ未処理リードリクエストの数が上限値に到達していない宛先がない場合、調停部４２は、そのリクエストを破棄して、リクエスト処理部４１は、そのリクエストの発行元（処理回路モジュール１１または処理回路モジュール１２）にエラー通知する（ステップＳ９）。
【００５５】
このようにして、調停部４２は、リードリクエストをリクエストバッファー４３にキューイングしていく。そして、調停部４２は、リクエストバッファー４３内のリードリクエストを順番に読み出して、コントローラー４４および通信コアモジュール４５で、そのリードリクエストを送信する。
【００５６】
以上のように、上記実施の形態１によれば、リクエストバッファー４３は、所定の数のリクエストをバッファリング可能であって、リクエストの宛先ごとに未処理リードリクエストの数の上限値を設定されている。調停部４２は、新たなリードリクエストが受け付けられると、受け付けられたリードリクエストの宛先を特定し、特定した宛先についてのリクエストバッファー内の未処理リードリクエストの数が、特定した宛先についての上限値に到達している場合には、特定した宛先より優先度の低い宛先についての上限値を低くした上で、特定した宛先についての上限値を高くする。
【００５７】
これにより、ＰＣＩｅバスシステムにおけるリードレイテンシーの異なる複数の宛先に対する複数のリードリクエストが混在しても、各宛先に対するリードリクエストが円滑に処理されていく。
【００５８】
実施の形態２．
【００５９】
図４は、本発明の実施の形態２に係る電子機器の構成を示すブロック図である。図４に示す電子機器では、ＩＣチップ８１に、アクセス速度の異なる複数のメモリー８２，８３が接続されている。例えばメモリー８２は高速なＤＲＡＭであり、メモリー８３は低速なフラッシュメモリーである。
【００６０】
ＩＣチップ８１は、複数の処理回路モジュール９１，９２と、メモリー８２，８３用のメモリーコントローラー９３，９４と、調停部９５とを有している。
【００６１】
処理回路モジュール９１，９２は、上述の処理回路モジュール１１，１２と同様のものである。調停部９５は、上述の調停部４２と同様の構成を有し、処理回路モジュール９１，９２からメモリーコントローラー９３，９４へのリードリクエストについて同様の調停制御を行う。
【００６２】
以上のように、上記実施の形態２によれば、ＩＣチップ８１内のシステムにおいてリードレイテンシーの異なる複数の宛先に対する複数のリードリクエストが混在しても、各宛先に対するリードリクエストが円滑に処理されていく。
【００６３】
なお、上述の各実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【００６４】
例えば、上記実施の形態１，２において、変更後の上限値で上限値データ５１を更新するようにしてもよい。あるいは、変更後の上限値で上限値データ５１を更新せず、電子機器の起動時に常に、上限値データ５１で上限値を初期化するようにしてもよい。
【００６５】
また、上記実施の形態１，２において、調停部４２，９５は、各宛先についてのリードレイテンシーを計測し、その計測結果から各宛先についての優先度を決定するようにしてもよい。
【００６６】
また、上記実施の形態１，２において、調停部４２，９５は、各リードリクエストにより読み出されるデータのサイズに応じて優先度を調整し、ステップＳ６において調整後の優先度を使用するようにしてもよい。
【産業上の利用可能性】
【００６７】
本発明は、例えば、プリンター、複合機などの画像形成装置に適用可能である。
【符号の説明】
【００６８】
１  ＩＣチップ（第１ＩＣチップの一例）
２  ＩＣチップ（第２ＩＣチップの一例）
３  ＩＣチップ（第３ＩＣチップの一例）
４  メモリー（第１メモリーの一例）
５  メモリー（第２メモリーの一例）
２２  メモリーコントローラー（第１メモリーコントローラーの一例）
３２  メモリーコントローラー（第２メモリーコントローラーの一例）
４２  調停部
４３  リクエストバッファー
４５  通信コアモジュール（通信回路の一例）
【図１】
2013077043.tif 000003
【図２】
2013077043.tif 000004
【図３】
2013077043.tif 000005
【図４】
2013077043.tif 000006
【図５】
2013077043.tif 000007