説明

電子機器

【課題】 シリアルバスシステムにおけるリードレイテンシーの異なる複数の宛先に対する複数のリードリクエストが混在しても、各宛先に対するリードリクエストが円滑に処理されていくようにする。
【解決手段】 リクエストバッファー43は、所定の数のリクエストをキューイング可能であって、リクエストの宛先ごとに未処理リードリクエストの数の上限値を設定されている。調停部42は、新たなリードリクエストが受け付けられると、受け付けられたリードリクエストの宛先を特定し、特定した宛先についてのリクエストバッファー内の未処理リードリクエストの数が、特定した宛先についての上限値に到達している場合には、特定した宛先より優先度の低い宛先についての上限値を低くした上で、特定した宛先についての上限値を高くする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子機器に関するものである。
【背景技術】
【0002】
電子機器内の複数の集積回路(IC:Integrated Circuit)チップの接続にPCIe(Peripheral Component Interconnect Express)などのシリアルバスシステムが使用されることがある(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−249816号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
図5は、複数のICチップをPCIeバスシステムで接続した電子機器の一例を示すブロック図である。図5に示す電子機器では、ICチップ101にICチップ2がPCIeのシリアルバスで接続され、ICチップ2にICチップ3がPCIeのシリアルバスで接続されている。ICチップ2にはメモリー4が接続されており、ICチップ3にはメモリー5が接続されている。
【0005】
ICチップ2では、PCIe通信回路21、メモリー4用のメモリーコントローラー22、およびPCIe通信回路23が内部バス24で互いに接続されており、ICチップ3では、PCIe通信回路31、およびメモリー5用のメモリーコントローラー32が内部バス33で互いに接続されている。
【0006】
ICチップ101では、複数の処理回路モジュール111,112とPCIe通信回路113とが内部バス114で接続されている。各処理回路モジュール111,112は、PCIeバスシステムで、ICチップ2に接続されたメモリー4およびICチップ3に接続されたメモリー5にアクセス可能となっている。
【0007】
図5に示す電子機器において、例えば、処理回路モジュール111は、PCIe通信回路113,21,23,31を介して、メモリーコントローラー32と通信してメモリー5にアクセスし、処理回路モジュール112は、PCIe通信回路113,21を介して、メモリーコントローラー22と通信してメモリー4にアクセスする。この場合、2つの処理回路モジュール111,112がPCIe通信回路113によるシリアルバスを使用するため、調停が行われる。
【0008】
この場合、処理回路モジュール111とメモリー5との間のデータ転送がICチップ2で中継されているため、処理回路モジュール111からメモリー5へのリードレイテンシー(リードリクエストの送信からデータ受信までの時間)は、処理回路モジュール112からメモリー4へのリードレイテンシーより大きくなる。
【0009】
PCIeの送信回路は、一般に、リクエストバッファーを有しており、このリクエストバッファーは、アウトスタンディングリード(Outstanding read)リクエストをキューイングされ、所定の数のアウトスタンディングリードリクエストをバッファリング可能である。リクエストバッファーにバッファリングされているアウトスタンディングリードリクエストが順次送信され、送信されたリクエストに対応するデータが受信されると、そのリクエストがリクエストバッファーから消去される。
【0010】
このため、リードレイテンシーが大きいメモリー5へのリードリクエストが多いと、リクエストバッファーがフルになり、リードレイテンシーが小さいメモリー4へのリードリクエストを処理回路モジュール112が発行しようしても、少なくとも1つの、メモリー5へのリードリクエストが完了するまで、メモリー4へのリードリクエストの発行(つまり、リクエストバッファーへのキューイング)を待たなければならない。
【0011】
このように、シリアルバスシステムにおけるリードレイテンシーの異なる複数の宛先に対する複数のリードリクエストが混在する場合、リードレイテンシーが小さい宛先に対するリードリクエストに待ち時間が発生しやすくなる。
【0012】
なお、例えば特開平10−105512号公報にシリアル通信の調停が開示されているが、この技術を通常のシリアルバスに適用することは困難である。また、例えば特開2004−318876号公報にプロセッサー内部のコア実行ユニットとL2キャッシュとの間における調停が開示されているが、この技術を通常のシリアルバスに適用することは困難である。
【0013】
本発明は、上記の問題に鑑みてなされたものであり、シリアルバスシステムにおけるリードレイテンシーの異なる複数の宛先に対する複数のリードリクエストが混在しても、各宛先に対するリードリクエストを円滑に処理していく電子機器を得ることを目的とする。
【課題を解決するための手段】
【0014】
上記の課題を解決するために、本発明では以下のようにした。
【0015】
本発明に係る電子機器は、所定の数のリードリクエストをバッファリング可能であって、リードリクエストの宛先ごとに未処理リードリクエストの数の上限値を設定されているリクエストバッファーと、新たなリードリクエストが受け付けられると、受け付けられたリードリクエストの宛先を特定し、特定した宛先についてのリクエストバッファー内の未処理リードリクエストの数が、特定した宛先についての上限値に到達している場合には、特定した宛先より優先度の低い宛先についての上限値を低くした上で、特定した宛先についての上限値を高くする調停部とを備える。
【0016】
これにより、シリアルバスシステムなどにおけるリードレイテンシーの異なる複数の宛先に対する複数のリードリクエストが混在しても、各宛先に対するリードリクエストが円滑に処理されていく。
【0017】
また、本発明に係る電子機器は、上記の電子機器に加え、次のようにしてもよい。この場合、上述の優先度は、宛先のリードレイテンシーが大きいほど低くなる。
【0018】
これにより、リードレイテンシーが大きい宛先へのリードリクエストよりリードレイテンシーが小さい宛先へのリードリクエストが優先されるため、リクエストバッファーがフルになりにくい。
【0019】
また、本発明に係る電子機器は、上記の電子機器のいずれかに加え、次のようにしてもよい。この場合、電子機器は、リードリクエストをシリアルバスシステムに送信する通信回路をさらに備える。
【0020】
また、本発明に係る電子機器は、上記の電子機器のいずれかに加え、次のようにしてもよい。この場合、上述のリードリクエストは、PCIeのアウトスタンディングリードリクエストである。
【0021】
また、本発明に係る電子機器は、上記の電子機器のいずれかに加え、次のようにしてもよい。この場合、上述のリードリクエストは、メモリーリードリクエストである。
【0022】
また、本発明に係る電子機器は、上記の電子機器のいずれかに加え、次のようにしてもよい。この場合、電子機器は、複数の処理回路モジュールを有する第1ICチップと、第1メモリーへのアクセスを行う第1メモリーコントローラーを有しシリアルバスシステムで第1ICチップに接続されている第2ICチップと、第2メモリーへのアクセスを行う第2メモリーコントローラーを有しシリアルバスシステムで第2ICチップに接続されている第3ICチップとを備える。そして、リクエストバッファーおよび調停部は、第1ICチップ内に設けられ、リードリクエストは、第1メモリーコントローラーまたは第2メモリーコントローラーを宛先として複数の処理回路モジュールのいずれかにより発行されたメモリーリードリクエストである。
【0023】
また、本発明に係る電子機器は、上記の電子機器のいずれかに加え、次のようにしてもよい。この場合、上述の優先度は、シリアルバスシステムにおいて宛先までの中継回数が多いほど低くなる。
【0024】
これにより、シリアルバスシステムの構成に基づいて設計段階で各宛先の優先度を決定し実装することができる。
【発明の効果】
【0025】
本発明によれば、電子機器において、リードレイテンシーの異なる複数の宛先に対する複数のリードリクエストが混在しても、各宛先に対するリードリクエストが円滑に処理されていく。
【図面の簡単な説明】
【0026】
【図1】図1は、本発明の実施の形態1に係る電子機器の構成を示すブロック図である。
【図2】図2は、図1におけるPCIe通信回路の構成例を示すブロック図である。
【図3】図3は、図2に示すPCIe通信回路の調停制御を説明するフローチャートである。
【図4】図4は、本発明の実施の形態2に係る電子機器の構成を示すブロック図である。
【図5】図5は、複数のICチップをPCIeバスシステムで接続した電子機器の一例を示すブロック図である。
【発明を実施するための形態】
【0027】
以下、図に基づいて本発明の実施の形態を説明する。
【0028】
実施の形態1.
【0029】
図1は、本発明の実施の形態1に係る電子機器の構成を示すブロック図である。図1に示す電子機器では、ICチップ1にICチップ2がPCIeのシリアルバスで接続され、ICチップ2にICチップ3がPCIeのシリアルバスで接続されている。ICチップ2にはメモリー4が接続されており、ICチップ3にはメモリー5が接続されている。
【0030】
ICチップ1は、複数の処理回路モジュール11,12を有し、主にデータ処理を行う。ICチップ2,3は、それぞれ固有の機能を有し、その機能において取り扱うデータをメモリー4,5にそれぞれ記憶する。メモリー4,5は、例えば同一のDRAM(Dynamic Random Access Memory)である。ICチップ1の各処理回路モジュール11,12は、メモリー4,5からデータを読み出し、そのデータに対して所定の処理を行う。
【0031】
ICチップ2では、PCIe通信回路21、メモリー4用のメモリーコントローラー22、およびPCIe通信回路23が内部バス24で互いに接続されており、ICチップ3では、PCIe通信回路31、およびメモリー5用のメモリーコントローラー32が内部バス33で互いに接続されている。
【0032】
ICチップ1では、処理回路モジュール11,12とPCIe通信回路13とが内部バス14で接続されている。各処理回路モジュール11,12は、PCIeバスシステムで、ICチップ2に接続されたメモリー4およびICチップ3に接続されたメモリー5にアクセス可能となっている。
【0033】
この電子機器におけるPCIeバスシステムでは、例えば、PCIe通信回路13,23は、ルートコンプレックスであり、PCIe通信回路21,31は、エンドポイントであり、PCIe通信回路13とPCIe通信回路21がシリアル接続され、PCIe通信回路23とPCIe通信回路31がシリアル接続されている。そして、処理回路モジュール11,12がマスターであり、メモリーコントローラー22,32がスレーブである。
【0034】
ICチップ1のPCIe通信回路13では、リードレイテンシーの異なる複数の宛先(メモリーコントローラー22,32)についての調停が行われる。図2は、図1におけるPCIe通信回路13の構成例を示すブロック図である。
【0035】
図2に示すように、PCIe通信回路13は、リクエスト処理部41、調停部42、リクエストバッファー43、コントローラー44、および通信コアモジュール45を有する。
【0036】
リクエスト処理部41は、処理回路モジュール11,12から内部バス14を介してリードリクエストを受け付けるとともに、そのリードリクエストに対応する応答データを要求元へ、内部バス14を介して送信する。
【0037】
調停部42は、リクエスト処理部41が新たなリードリクエストを受け付けると、(a)受け付けたリードリクエストの宛先を特定し、(b)特定した宛先についてのリクエストバッファー43内の未処理リードリクエストの数nを特定し、(c)その未処理リードリクエストの数nが、特定した宛先についての上限値N1に到達している場合には、特定した宛先より優先度の低い宛先についての上限値N2を所定の値(例えば1)だけ低くした上で、特定した宛先についての上限値N1をその所定の値だけ高くする。
【0038】
調停部42は、各宛先についての、リクエストバッファー43内に保持できるリードリクエストの上限値(デフォルト値)を示す上限値データ51を内蔵しており、その上限値データ51を参照して、各宛先についての上限値を特定する。また、調停部42は、宛先と優先度との対応関係を示す宛先優先度データ52を内蔵しており、その宛先優先度データ52を参照して、各宛先の優先度を特定する。
【0039】
この優先度は、宛先のリードレイテンシーが大きいほど低くなるように設定される。例えば、この優先度は、PCIeバスシステム内での通信の中継回数が多いほど低くなる。図1におけるシステムでは、メモリーコントローラー32が宛先の場合の中継回数が、メモリーコントローラー22が宛先の場合の中継回数より多いため、メモリーコントローラー32についての優先度は、メモリーコントローラー22についての優先度より低くなる。
【0040】
リクエストバッファー43は、シリアルバスシステムのリードリクエストをキューイングされ、所定の数Nのリクエストをバッファリング可能な記憶領域を有する。リードリクエストの宛先ごとに、リクエストバッファー43内の未処理リードリクエスト(完了していないリードリクエスト)の数の上限値が設定されている。
【0041】
実施の形態1では、リードリクエストは、PCIeのアウトスタンディングリードリクエストである。また、実施の形態1では、リードリクエストは、メモリーリードリクエストである。
【0042】
コントローラー44は、通信コアモジュール45を制御し、リクエストバッファー43内のリードリクエストを通信コアモジュール45で送信させるとともに、通信コアモジュール45で受信された、リードリクエストの応答データを取得する。
【0043】
通信コアモジュール45は、通信相手とPCIeでデータ通信を行う通信回路である。通信コアモジュール45は、トランザクション層以下の処理を行う。特に、通信コアモジュール45は、リードリクエストをPCIeでシリアルバスシステムに送信する通信回路である。
【0044】
次に、上記電子機器の調停制御について説明する。図3は、図2に示すPCIe通信回路13の調停制御を説明するフローチャートである。
【0045】
リクエスト処理部41が処理回路モジュール11または処理回路モジュール12から内部バス14を介してリードリクエストを受け付けると(ステップS1)、調停部42は、そのリードリクエストの宛先を特定し(ステップS2)、リクエストバッファー43内の、その宛先の未処理リードリクエストの数を特定する(ステップS3)。
【0046】
そして、調停部42は、上限値データ51を参照して、その宛先についての上限値を特定し、その宛先の未処理リードリクエストの数が、その上限値に到達しているか否かを判定する(ステップS4)。
【0047】
その宛先の未処理リードリクエストの数がその上限値に到達していない場合、調停部42は、そのリードリクエストをリクエストバッファー43にキューイングする(ステップS5)。
【0048】
調停部42は、シリアルバスシステム内の宛先と同数のカウンターを有し、リクエストバッファー43にリードリクエストをキューイングするときに、各宛先についての未処理リードリクエストの数のカウンターを1だけインクリメントし、リードリクエストの応答データを受信すると、そのリードリクエストをリクエストバッファー43から削除するとともに、そのリードリクエストの宛先についてのカウンターを1だけデクリメントする。このため、調停部42は、ステップS3では、その宛先についてのカウンターの値を参照して、その宛先の未処理リードリクエストの数を特定する。
【0049】
一方、その宛先の未処理リードリクエストの数がその上限値に到達している場合、調停部42は、その宛先より優先度が低く、かつ未処理リードリクエストの数が上限値に到達していない宛先を検索し、その宛先より優先度が低く、かつ未処理リードリクエストの数が上限値に到達していない宛先があるか否かを判定する(ステップS6)。
【0050】
その受け付けたリクエストの宛先より優先度が低く、かつ未処理リードリクエストの数が上限値に到達していない宛先がある場合、調停部42は、その優先度の低い宛先についての上限値を低くするとともに、その受け付けたリクエストの宛先の上限値を高くする(ステップS7)。
【0051】
なお、すべての宛先についての上限値の総和が、リクエストバッファー43がバッファリング可能なリクエストの数N以下の所定の値N0となるように、各宛先についての上限値Niが制御される。図1に示すバスシステムでは、宛先がメモリーコントローラー22,32の2つであるので、メモリーコントローラー22についての上限値をN1とし、メモリーコントローラー32についての上限値をN2とすると、次式が成り立つように、調停部42はN1とN2を増減させる。
【0052】
N≧N0=(N1+N2)
【0053】
ステップS7の処理により、受け付けたリクエストの宛先の未処理リードリクエスト数の上限値に到達していない状態となるので、調停部42は、そのリードリクエストをリクエストバッファー43にキューイングする(ステップS8)。
【0054】
一方、その受け付けたリクエストの宛先より優先度が低く、かつ未処理リードリクエストの数が上限値に到達していない宛先がない場合、調停部42は、そのリクエストを破棄して、リクエスト処理部41は、そのリクエストの発行元(処理回路モジュール11または処理回路モジュール12)にエラー通知する(ステップS9)。
【0055】
このようにして、調停部42は、リードリクエストをリクエストバッファー43にキューイングしていく。そして、調停部42は、リクエストバッファー43内のリードリクエストを順番に読み出して、コントローラー44および通信コアモジュール45で、そのリードリクエストを送信する。
【0056】
以上のように、上記実施の形態1によれば、リクエストバッファー43は、所定の数のリクエストをバッファリング可能であって、リクエストの宛先ごとに未処理リードリクエストの数の上限値を設定されている。調停部42は、新たなリードリクエストが受け付けられると、受け付けられたリードリクエストの宛先を特定し、特定した宛先についてのリクエストバッファー内の未処理リードリクエストの数が、特定した宛先についての上限値に到達している場合には、特定した宛先より優先度の低い宛先についての上限値を低くした上で、特定した宛先についての上限値を高くする。
【0057】
これにより、PCIeバスシステムにおけるリードレイテンシーの異なる複数の宛先に対する複数のリードリクエストが混在しても、各宛先に対するリードリクエストが円滑に処理されていく。
【0058】
実施の形態2.
【0059】
図4は、本発明の実施の形態2に係る電子機器の構成を示すブロック図である。図4に示す電子機器では、ICチップ81に、アクセス速度の異なる複数のメモリー82,83が接続されている。例えばメモリー82は高速なDRAMであり、メモリー83は低速なフラッシュメモリーである。
【0060】
ICチップ81は、複数の処理回路モジュール91,92と、メモリー82,83用のメモリーコントローラー93,94と、調停部95とを有している。
【0061】
処理回路モジュール91,92は、上述の処理回路モジュール11,12と同様のものである。調停部95は、上述の調停部42と同様の構成を有し、処理回路モジュール91,92からメモリーコントローラー93,94へのリードリクエストについて同様の調停制御を行う。
【0062】
以上のように、上記実施の形態2によれば、ICチップ81内のシステムにおいてリードレイテンシーの異なる複数の宛先に対する複数のリードリクエストが混在しても、各宛先に対するリードリクエストが円滑に処理されていく。
【0063】
なお、上述の各実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【0064】
例えば、上記実施の形態1,2において、変更後の上限値で上限値データ51を更新するようにしてもよい。あるいは、変更後の上限値で上限値データ51を更新せず、電子機器の起動時に常に、上限値データ51で上限値を初期化するようにしてもよい。
【0065】
また、上記実施の形態1,2において、調停部42,95は、各宛先についてのリードレイテンシーを計測し、その計測結果から各宛先についての優先度を決定するようにしてもよい。
【0066】
また、上記実施の形態1,2において、調停部42,95は、各リードリクエストにより読み出されるデータのサイズに応じて優先度を調整し、ステップS6において調整後の優先度を使用するようにしてもよい。
【産業上の利用可能性】
【0067】
本発明は、例えば、プリンター、複合機などの画像形成装置に適用可能である。
【符号の説明】
【0068】
1 ICチップ(第1ICチップの一例)
2 ICチップ(第2ICチップの一例)
3 ICチップ(第3ICチップの一例)
4 メモリー(第1メモリーの一例)
5 メモリー(第2メモリーの一例)
22 メモリーコントローラー(第1メモリーコントローラーの一例)
32 メモリーコントローラー(第2メモリーコントローラーの一例)
42 調停部
43 リクエストバッファー
45 通信コアモジュール(通信回路の一例)

【特許請求の範囲】
【請求項1】
所定の数のリードリクエストをバッファリング可能であって、リードリクエストの宛先ごとに未処理リードリクエストの数の上限値を設定されているリクエストバッファーと、
新たなリードリクエストが受け付けられると、受け付けられた前記リードリクエストの宛先を特定し、特定した前記宛先についての前記リクエストバッファー内の前記未処理リードリクエストの数が、特定した前記宛先についての前記上限値に到達している場合には、特定した前記宛先より優先度の低い宛先についての前記上限値を低くした上で、特定した前記宛先についての前記上限値を高くする調停部と、
を備えることを特徴とする電子機器。
【請求項2】
前記優先度は、前記宛先のリードレイテンシーが大きいほど低くなることを特徴とする請求項1記載の電子機器。
【請求項3】
リードリクエストをシリアルバスシステムで送信する通信回路をさらに備えることを特徴とする請求項1または請求項2記載の電子機器。
【請求項4】
前記リードリクエストは、PCIeのアウトスタンディングリードリクエストであることを特徴とする請求項3記載の電子機器。
【請求項5】
前記リードリクエストは、メモリーリードリクエストであることを特徴とする請求項4記載の電子機器。
【請求項6】
複数の処理回路モジュールを有する第1ICチップと、
第1メモリーへのアクセスを行う第1メモリーコントローラーを有し、前記シリアルバスシステムで前記第1ICチップに接続されている第2ICチップと、
第2メモリーへのアクセスを行う第2メモリーコントローラーを有し、前記シリアルバスシステムで前記第2ICチップに接続されている第3ICチップとを備え、
前記リクエストバッファーおよび前記調停部は、前記第1ICチップ内に設けられ、
前記リードリクエストは、前記第1メモリーコントローラーまたは前記第2メモリーコントローラーを前記宛先として前記複数の処理回路モジュールのいずれかにより発行されたメモリーリードリクエストであること、
を特徴とする請求項5記載の電子機器。
【請求項7】
前記優先度は、前記シリアルバスシステムにおいて前記宛先までの中継回数が多いほど低くなることを特徴とする請求項3記載の電子機器。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−77043(P2013−77043A)
【公開日】平成25年4月25日(2013.4.25)
【国際特許分類】
【出願番号】特願2011−214886(P2011−214886)
【出願日】平成23年9月29日(2011.9.29)
【出願人】(000006150)京セラドキュメントソリューションズ株式会社 (13,173)
【Fターム(参考)】