(57)【要約】【課題】排他処理に伴って抑止されるべきアクセス要求を調停前に排除することができ、調停によって受理されるべきアクセス要求を早く確定することができる半導体装置を提供する。【解決手段】排他的アクセスの対象となるアドレス情報などを排他情報バッファ（８１）に保持し、イニシエータ（６０，６１，６２）が出力するアドレス情報と前記保持されたアドレス情報を比較する。これにより、排他的アクセスの対象であるアドレスを対象とするピンポイントの排他処理を実現する。調停処理に先立って排他処理に伴うアクセス要求の排除を行う。このため、排他処理に伴って抑止されるべきアクセス要求が調停処理されることを防止し、イニシエータがアクセス要求を行ってからアクセス要求が受理されるまでの時間を短くすることが出来る。【選択図】図１
2010140130.tif 000002
【特許請求の範囲】
【請求項１】
アクセスを要求することが可能な複数のイニシエータと、アクセスに応答することが可能な複数のターゲットと、アクセスを要求するイニシエータから与えられるリクエストパケットをアクセス要求に応答するターゲットに与える制御を行うリクエストリソース及びアクセス要求に応答するターゲットから与えられるレスポンスパケットをアクセス要求元のイニシエータに返す制御を行うレスポンスリソースを備えたパケットルータとを有し、
前記リクエストリソースは、排他処理要求を含むリクエストパケットを受理したとき当該要求元から排他処理要求があったことを示す排他情報と当該リクエストパケットに含まれるアクセス情報を保持する排他情報バッファと、
前記排他情報バッファに格納された情報とイニシエータから与えられるリクエストパケットに含まれるアクセス情報とを比較して、その比較結果を出力する比較回路と、
前記比較回路による比較結果に基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化するアクセス要求無効化回路と、
前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理し、受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う調停回路と、を有する半導体装置。
【請求項２】
前記調停回路は、前記イニシエータ毎にグラント信号を出力し、前記イニシエータからアクセス要求を入力した場合、アクセス要求元のイニシエータに対応するグラント信号を一旦アサートした後は、前記アクセス要求無効化回路によりそのアクセス要求が有効とされた場合も無効とされた場合も、前記グラント信号のアサート状態を、当該アクセス要求に伴うリクエストパケットを応答先のターゲットに転送開始するまで維持する、請求項１記載の半導体装置。
【請求項３】
前記イニシエータは、アクセスを要求した場合、入力されるグラント信号のディアサート状態によってアクセス要求が受理されていないと判定し、入力されるグラント信号がアサート状態であることにより、アクセス要求が受理されたと判定する、請求項１記載の半導体装置。
【請求項４】
前記排他情報バッファが保持するアクセス情報はアクセス対象アドレス情報であり、
前記アクセス要求無効化回路は、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるイニシエータからのアクセス要求を無効化する、請求項１記載の半導体装置。
【請求項５】
前記排他情報バッファが保持するアクセス情報は、アクセス対象アドレス情報とそのアクセス対象アドレス情報を用いるプロセスのプロセスＩＤ情報であり、
前記アクセス要求無効化回路は、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とはプロセスＩＤが異なるアクセス要求を無効化する、請求項１記載の半導体装置。
【請求項６】
前記排他情報バッファは、前記調停回路が並列的に受理可能な排他処理要求を伴うアクセス要求毎のアクセス情報を格納可能な記憶容量を有する、請求項５記載の半導体装置。
【請求項７】
前記排他情報バッファが保持するアクセス情報は、複数バイトのアクセス対象の先頭を示すアクセス対象アドレス情報と、複数バイトのアクセス対象範囲内の有効性をバイト単位で示すバイトイネーブル情報であり、
前記アクセス要求無効化回路は、アクセス対象アドレス情報のアドレスを先頭とする複数バイトのアクセス対象範囲内においてバイトイネーブル情報で有効性とされるアドレスと重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化する、請求項１記載の半導体装置。
【請求項８】
前記排他情報バッファが保持するアクセス情報は、複数バイトのアクセス対象の先頭を示すアクセス対象アドレス情報と、複数バイトのアクセス対象範囲内の有効性をバイト単位で示すバイトイネーブル情報と、アクセス対象のアドレス情報を用いるプロセスのプロセスＩＤ情報であり、
前記アクセス要求無効化回路は、アクセス対象アドレス情報のアドレスを先頭とする複数バイトのアクセス対象範囲内においてバイトイネーブル情報で有効性とされるアドレスと重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とはプロセスＩＤが異なるアクセス要求を無効化する、請求項１記載の半導体装置。
【請求項９】
前記排他情報バッファは、前記調停回路が並列的に受理可能な排他処理要求を伴うアクセス要求毎のアクセス情報を格納可能な記憶容量を有する、請求項８記載の半導体装置。
【請求項１０】
排他制御の対象とするアクセスの属性を保持する排他制御レジスタを更に有し、
前記アクセス要求無効化回路は、前記比較回路による比較結果と前記排他制御レジスタに保持されたアクセスの属性情報と基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化する、請求項１記載の半導体装置。
【請求項１１】
前記排他制御レジスタには、アクセス属性として、アクセス方向が設定され、
前記アクセス要求無効化回路は、前記比較回路による比較結果と前記排他制御レジスタに保持されたアクセスの属性情報と基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異り且つ前記排他制御レジスタに設定されたアクセス方向へのアクセス要求を無効化する、請求項１０記載の半導体装置。
【請求項１２】
前記排他制御レジスタには、アクセス属性として、イニシエータの識別情報が設定され、
前記アクセス要求無効化回路は、前記比較回路による比較結果と前記排他制御レジスタに保持されたアクセスの属性情報と基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異り且つ前記排他制御レジスタに設定されたイニシエータからのアクセス要求を無効化する、請求項１０記載の半導体装置。
【請求項１３】
前記イニシエータとして機能し得る複数のＣＰＵと、前記ターゲットとして機能し得るメモリ及び割り込みコントローラを備え、
前記メモリは前記複数のＣＰＵの共有メモリであり、
前記パケットルータは、一のＣＰＵから前記共有メモリに対する排他的な処理の要求を伴うリクエストパケットを受理した場合、そのアクセス対象アドレスと重なる範囲で、受理されている排他処理要求を伴うアクセス要求とは異なるライトアクセス要求があったことを、前記割り込みコントローラに通知する、請求項１記載の半導体装置。
【請求項１４】
前記ターゲットとして機能し得るメモリ及び割り込みコントローラを備え、
前記メモリは複数のイニシエータの共有メモリであり、
前記パケットルータは、一のイニシエータから前記共有メモリに対する排他処理要求を伴うリクエストパケットを受理した場合、そのアクセス対象アドレスと重なる範囲で、受理されている排他処理要求を伴うアクセス要求とは異なるライトアクセス要求があったことを、前記割り込みコントローラに通知する、請求項１記載の半導体装置。
【請求項１５】
アクセスを要求することが可能な複数のイニシエータと、アクセスに応答することが可能な複数のターゲットと、アクセスを要求するイニシエータから与えられるリクエストパケットをアクセス要求に応答するターゲットに与える制御を行う第１のリクエストリソース及び第２のリクエストリソース並びにアクセス要求に応答するターゲットから与えられるレスポンスパケットをアクセス要求元のイニシエータに返す制御を行うレスポンスリソースを備えたパケットルータとを有し、
前記第１のリクエストリソースは特定の一のターゲットを対象とするリクエストパケットに対する制御を行い、
前記第２のリクエストリソースは他の複数のターゲットを対象とするリクエストパケットに対する制御を行い、
前記第１及びｓ第２のリクエストリソースは、排他処理要求を含むリクエストパケットを受理したとき当該要求元から排他処理要求があったことを示す排他情報と当該リクエストパケットに含まれるアクセス情報を保持する排他情報バッファと、
前記排他情報バッファに格納された情報とイニシエータから与えられるリクエストパケットに含まれるアクセス情報とを比較して、その比較結果を出力する比較回路と、
前記比較回路による比較結果に基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化するアクセス要求無効化回路と、
前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理し、受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う調停回路と、を有する半導体装置。
【請求項１６】
アクセスを要求することが可能な複数のイニシエータと、
アクセスに応答することが可能な複数のターゲットと、
前記イニシエータから与えられるリクエストパケットをアクセス要求に応答するターゲットに与える制御を行うリクエストリソース及びアクセス要求に応答するターゲットから与えられるレスポンスパケットをアクセス要求元のイニシエータに返す制御を行うレスポンスリソースを備えた複数のパケットルータと、を備え、
前記複数のパケットルータが中継回路を介して複数階層に直列接続されているとき、前記夫々のパケットルータのリクエストリソースは、イニシエータから所要のターゲットに対するアクセス要求に伴う排他処理要求を受理する排他処理機能を備える、半導体装置。
【請求項１７】
前記排他処理機能を備えるリクエストリソースは、
排他処理要求を含むリクエストパケットを受理したとき当該要求元から排他処理要求があったことを示す排他情報と当該リクエストパケットに含まれるアクセス情報を保持する排他情報バッファと、
前記排他情報バッファに格納された情報とイニシエータから与えられるリクエストパケットに含まれるアクセス情報とを比較して、その比較結果を出力する比較回路と、
前記比較回路による比較結果に基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化するアクセス要求無効化回路と、
前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理し、受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う調停回路と、を有する請求項１６記載の半導体装置。
【請求項１８】
アクセスを要求することが可能な複数のイニシエータと、
アクセスに応答することが可能な複数のターゲットと、
前記イニシエータから与えられるリクエストパケットをアクセス要求に応答するターゲットに与える制御を行うリクエストリソース及びアクセス要求に応答するターゲットから与えられるレスポンスパケットをアクセス要求元のイニシエータに返す制御を行うレスポンスリソースと備えた複数のパケットルータと、を備え、
前記複数のパケットルータが中継回路を介して複数階層に直列接続されているとき、前記夫々のパケットルータのリクエストリソースは、イニシエータから所要のターゲットに対する排他的な処理要求を受理する排他処理機能を備え、
排他処理要求を伴うアクセスを要求するイニシエータは、同一階層のパケットルータに集約して結合される、半導体装置。
【請求項１９】
前記排他処理機能を備えるリクエストリソースは、
排他処理要求を含むリクエストパケットを受理したとき当該要求元から排他処理要求があったことを示す排他情報と当該リクエストパケットに含まれるアクセス情報を保持する排他情報バッファと、
前記排他情報バッファに格納された情報とイニシエータから与えられるリクエストパケットに含まれるアクセス情報とを比較して、その比較結果を出力する比較回路と、
前記比較回路による比較結果に基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化するアクセス要求無効化回路と、
前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理し、受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う調停回路と、を有する請求項１８記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスインタフェースにおける、共有リソースに対するアクセスの排他処理に関し、例えば半導体集積回路化されたマイクロコンピュータ、システム・オン・チップ（ＳＯＣ）化されたデータプロセッシングデバイス、チップセット、マルチチップを用いてシステム・イン・パッケージ化されたデータ処理モジュールなどの半導体装置におけるスプリットトランザクションによるパケット交換方式のバスインタフェースに適用して有効な技術に関する。
【背景技術】
【０００２】
バスインタフェースには、バスアクセスのリクエスト中は他のリクエストを受け付けないというインターロック方式のほかに、スプリットトランザクションによるパケット交換方式がある。この方式は、アクセスを要求する回路が、アクセス要求の内容を含むリクエストパケットを、アクセス要求に応答する回路に送信し、アクセス要求に応答する回路は応答内容を含むレスポンスパケットを、アクセスを要求した回路に送信する、という処理を行なうものである。リクエストパケットとレスポンスパケットを含む一連の処理をトランザクションと称し、１つのトランザクションをパケットの転送毎に分離して、バスアクセス効率を向上させることができる。アクセスを要求する回路をイニシエータ、アクセス要求に答える回路をターゲットと呼ぶ。回路の種類によってはイニシエータとターゲットの双方の機能を備えるものもある。イニシエータとターゲットはリクエストパケットとレスポンスパケットの中継を行うパケットルータがある。パケットルータは、一つのターゲットに対して複数のイニシエータがアクセスを要求したときの調停、共有リソースなどに対する排他制御のために後のアクセス要求を無効化する制御などを行う。リソース単位で排他処理を行なう場合、排他処理中には、排他処理要求が受理されたイニシエータ以外のイニシエータによる、排他的アクセスの実行対象であるターゲットへのアクセスを抑止するという、プロトコルが従来から採用さてれている。例えば、ターゲットがメモリコントローラであれば，排他処理中はメモリに対する他イニシエータのアクセスが全て抑止される。
【０００３】
特許文献１には、マルチＣＰＵのシステムにおいて共有リソースに対するアクセスの排他処理について記載がある。これによれば、ＣＰＵ単位の排他制御ではなく、ＣＰＵが排他処理を要求したとき、当該ＣＰＵのアクセス対象領域について他のＣＰＵからのアクセス要求を排他する制御を行う。
【０００４】
【特許文献１】特開平５−２２５１１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
今後普及が見込まれるマルチコアＳＯＣ（一つのチップに複数のＣＰＵを搭載するＳＯＣ）では、シングルコアＳＯＣ（一つのチップに単一のＣＰＵを搭載するＳＯＣ）に比して排他処理が多用されることが考えられるため、ターゲット単位の排他処理では、排他処理に伴う転送性能（バスアクセス性能）の低下が大きいため、排他処理単位の縮小が必要であると考えられる。特許文献１ではその点が考慮され、アドレス領域単位の排他制御を行う。
【０００６】
しかしながら、特許文献１に記載の技術ではアクセス要求に対して先に優先度やアクセス要求の競合状態に基づいてバス調停部で許可候補信号を生成し、許可候補のアクセス要求に係るアドレス情報をセレクタで選択し、選択したアドレス情報が、先に受理された排他制御対象のアドレス領域に重なるかが判別され、重なる場合には、先に許可候補としたＣＰＵにバス使用不許可を返す、という制御を行う。要するに、アクセス要求が排他処理によって抑止されるべきものか否かが、調停処理の後に判明する。このため、特許文献１に記載の技術では、排他処理に伴って抑止されるべきアクセス要求を調停前に排除できず、調停によって受理されるべきアクセス要求を早く確定することができない。このため、アクセス要求に対する処理効率が低く、この点においてデータ処理の高速化を阻む結果となる。
【０００７】
また、スプリットトランザクションによるパケット交換方式のバスインタフェースでは、排他処理を伴うアクセス要求が一時的に抑止される場合でもイニシエータは単に待たされるだけであるが、特許文献１に記載の技術をそれに適用する場合を想定すると、アクセス要求が受理されないＣＰＵなどのイニシエータにはバス使用不許可の信号が返されることになり、イニシエータは単に待つだけでは済まされず、再度アクセス要求を行うなどの処理が必要になり、イニシエータの実装が通常よりも複雑になる。
【０００８】
本発明の目的は、排他処理に伴って抑止されるべきアクセス要求を調停前に排除することができ、調停によって受理されるべきアクセス要求を早く確定することができる半導体装置を提供することにある。
【０００９】
本発明の別の目的は、アクセス要求に対する処理効率が高く、この点においてデータ処理の高速化に寄与することができる半導体装置を提供することにある。
【００１０】
本発明の更に別の目的は、排他処理を伴うアクセス要求が一時的に抑止される場合でもイニシエータは単に待つだけで済まされ、イニシエータの実装が容易な半導体装置を提供することにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１３】
すなわち、排他的アクセスの対象となるアドレス情報などを保持し、イニシエータが出力するアドレス情報と前記保持されたアドレス情報を比較する。これにより、排他的アクセスの対象であるアドレスを対象とするピンポイントの排他処理を実現する。
【００１４】
そして、調停処理に先立って排他処理に伴うアクセス要求の排除を行う。このため、排他処理に伴って抑止されるべきアクセス要求が調停処理されることを防止し、イニシエータがアクセス要求を行ってからアクセス要求が受理されるまでの時間を短くすることが出来る。
【００１５】
また、本発明では，階層的インターコネクトを構成する複数のパケットルータの全てに上記排他処理のための回路を搭載する。これにより、ハングアップ（アクセス要求が処理できなくなる状態に陥ること）を発生させることなく、ピンポイントで排他処理を行うことができ、しかもこのピンポイントの排他処理に伴って排他処理によって抑止されないアクセス要求を排他的処理を必要とするアクセス要求の完了まで抑止することがない。
【００１６】
また、本発明では、排他的アクセスに対して不正なアクセスがなされたことを検出して割り込みを発生する。これにより、ソフトウエアやハードウエアのデバッグが容易になる。
【発明の効果】
【００１７】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１８】
すなわち、排他処理に伴って抑止されるべきアクセス要求を調停前に排除することができ、調停によって受理されるべきアクセス要求を早く確定することができる。
【００１９】
アクセス要求に対する処理効率が高く、この点においてデータ処理の高速化に寄与することができる。
【００２０】
排他処理を伴うアクセス要求が一時的に抑止される場合でもイニシエータは単に待つだけで済まされ、イニシエータの実装が容易である。
【発明を実施するための最良の形態】
【００２１】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００２２】
〔１〕《アドレス比較による排他制御》
本発明に係る半導体装置は、アクセスを要求することが可能な複数のイニシエータと、アクセスに応答することが可能な複数のターゲットと、アクセスを要求するイニシエータから与えられるリクエストパケットをアクセス要求に応答するターゲットに与える制御を行うリクエストリソース及びアクセス要求に応答するターゲットから与えられるレスポンスパケットをアクセス要求元のイニシエータに返す制御を行うレスポンスリソースを備えたパケットルータとを有する。前記パケットルータのリクエストリソース（８０）は、排他情報バッファ（８１）、比較回路（９０，９１，９２）、アクセス要求無効化回路（１００，１０１，１０２）、及び調停回路（８０）を有する。排他情報バッファは、排他処理要求を含むリクエストパケット(ＲＥＱＰＣＫＴ)を受理したとき当該要求元から排他処理要求があったことを示す排他情報と当該リクエストパケットに含まれるアクセス情報を保持する。比較回路は、前記排他情報バッファに格納された情報とイニシエータから与えられるリクエストパケットに含まれるアクセス情報とを比較して、その比較結果を出力する。アクセス要求無効化回路は、前記比較回路による比較結果に基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化する。調停回路は、前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理し、受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う。
【００２３】
上記によれば、排他的アクセスの対象となるアドレス情報などのアクセス情報を保持し、イニシエータが出力するアクセス情報と前記保持されたアクセス情報を比較し、アクセス対象アドレスが重なる範囲を最大限として他のアクセス要求を無効化するから、ターゲット単位よりも細かなアドレスを対象とするピンポイントの排他処理を実現することができる。
【００２４】
そして、調停回路の処理に先立って排他処理要求を伴うアクセス要求に対する選択的な無効化の処理を行うから、排他的な制御により抑止されるべきアクセス要求が調停回路による調停処理の対象にはされず、この点において、イニシエータがアクセス要求を行ってからアクセス要求が受理されるまでの時間を短縮するのに寄与する。
【００２５】
〔２〕《調停回路によるグラント信号の処理》
項１の半導体装置において、例えば前記調停回路は、前記イニシエータ毎にグラント信号（ＧＮＴ）を出力し、前記イニシエータからアクセス要求を入力した場合、前記アクセス要求無効化回路によりそのアクセス要求が有効とされ、かつ、調停によって前記イニシエータからのアクセス要求を受理した場合に前記グラント信号をアサート状態とし、前記アクセス要求無効化回路によりそのアクセス要求が無効とされた場合や、調停によって前記イニシエータからのアクセス要求を受理しない場合には、前記グラント信号をディアサート状態とする。
【００２６】
調停回路は、アクセス要求の無効化に関わらず、イニシエータからのアクセス要求を受理したときにのみグラント信号をアサートするから、これを受けるイニシエータは、アクセス要求の後、これが受理されたか無効化されたかを感知することなく、グラント信号のアサートを待てばよい。
【００２７】
したがって、スプリットトランザクションによるパケット交換方式のバスインタフェースでは、排他処理を伴うアクセス要求が一時的に抑止される場合でもイニシエータは単に待てばよく、再度アクセス要求を行うなどの処理は不要であり、ピンポイントの無効化を採用してもイニシエータの実装は容易である。
【００２８】
〔３〕《イニシエータによるグラント信号の把握》
項２の半導体装置において、前記イニシエータは、例えばアクセスを要求した場合、入力されるグラント信号がディアサート状態であることによってアクセス要求が受理されていないと判定し、入力されるグラント信号がアサート状態であることにより、アクセス要求が受理されたと判定する。
【００２９】
〔４〕《アドレス比較による排他制御》
項１の半導体装置において、前記排他情報バッファが保持するアクセス情報は例えばアクセス対象アドレス情報であり、この場合、前記アクセス要求無効化回路は、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるイニシエータからの新たなアクセス要求を無効化する（図５）。
【００３０】
〔５〕《プロセスＩＤの比較による排他制御》
項１の半導体装置において、前記排他情報バッファが保持するアクセス情報は、例えばアクセス対象アドレス情報とそのアクセス対象アドレス情報を用いるプロセスのプロセスＩＤ情報であり、この場合、前記アクセス要求無効化回路は、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とはプロセスＩＤが異なるアクセス要求を無効化する。同じイニシエータによる排他的アクセス要求に対してプロセスＩＤを考慮してアクセス要求の無効化に対処することができる。
【００３１】
〔６〕《排他情報バッファのエントリ数》
項５の半導体装置において、前記排他情報バッファは、前記調停回路が並列的に受理可能な排他処理要求を伴うアクセス要求毎のアクセス情報を格納可能な記憶容量を有する。要するに、前記排他情報バッファが保持するアクセス情報には例えばアクセス対象アドレス情報とそのアクセス対象アドレス情報を用いるプロセスのプロセスＩＤ情報を含む。この場合、前記アクセス要求無効化回路は、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とはプロセスＩＤが異なるアクセス要求を無効化する。１つのイニシエータが複数の排他処理要求を伴うアクセスを要求して並列的に受理される場合にもアクセス要求の無効化に対処することができる。
【００３２】
〔７〕《アドレス情報及びバイトイネーブル比較による排他制御》
項１の半導体装置において、前記排他情報バッファが保持するアクセス情報は、例えば複数バイトのアクセス対象の先頭を示すアクセス対象アドレス情報と、複数バイトのアクセス対象範囲内の有効性をバイト単位で示すバイトイネーブル情報（ＢＥ）である。このとき、前記アクセス要求無効化回路は、アクセス対象アドレス情報のアドレスを先頭とする複数バイトのアクセス対象範囲内においてバイトイネーブル情報で有効性とされるアドレスと重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化する。これにより、アクセスアドレスを先頭アドレスとバイトイネーブルによって特定する場合にもアクセス要求の無効化に対処することができる（図６）。
【００３３】
〔８〕《プロセスＩＤの比較による排他制御》
項１の半導体装置において、前記排他情報バッファが保持するアクセス情報は、例えば、複数バイトのアクセス対象の先頭を示すアクセス対象アドレス情報と、複数バイトのアクセス対象範囲内の有効性をバイト単位で示すバイトイネーブル情報と、アクセス対象のアドレス情報を用いるプロセスのプロセスＩＤ情報である。このとき、前記アクセス要求無効化回路は、アクセス対象アドレス情報のアドレスを先頭とする複数バイトのアクセス対象範囲内においてバイトイネーブル情報で有効性とされるアドレスと重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とはプロセスＩＤが異なるアクセス要求を無効化する。これにより、アクセスアドレスを先頭アドレスとバイトイネーブルによって特定する場合を考慮し、且つ、同じイニシエータによる排他的アクセス要求に対してプロセスＩＤを考慮して、アクセス要求の無効化に対処することができる。
【００３４】
〔９〕《排他情報バッファのエントリ数》
項８の半導体装置において、前記排他情報バッファは、前記調停回路が並列的に受理可能な排他処理要求を伴うアクセス要求毎のアクセス情報を格納可能な記憶容量を有する。要するに、前記排他情報バッファが保持するアクセス情報には例えばアクセス対象先頭アドレス、バイトイネーブル情報及びそのアクセス要求に係るプロセスのプロセスＩＤ情報を含む。この場合、前記アクセス要求無効化回路は、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とはプロセスＩＤが異なるアクセス要求を無効化する。１つのイニシエータが複数の排他的処理のアクセスを要求して並列的に受理される場合にもアクセス要求の無効化に対処することができる。
【００３５】
〔１０〕《排他制御レジスタ》
項１の半導体装置において、排他制御の対象とするアクセスの属性を保持する排他制御レジスタ(２７)を更に有する。前記アクセス要求無効化回路は、前記比較回路による比較結果と前記排他制御レジスタに保持されたアクセスの属性情報と基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化する。アクセス要求の無効化条件を排他制御レジスタにプログラマブルに設定することが可能になる（図７）。
【００３６】
〔１１〕《排他制御レジスタに設定されるアクセス属性》
項１０の半導体装置において、前記排他制御レジスタには、アクセス属性として、例えばアクセス方向が設定される。前記アクセス要求無効化回路は、前記比較回路による比較結果と前記排他制御レジスタに保持されたアクセスの属性情報と基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なり且つ前記排他制御レジスタに設定されたアクセス方向へのアクセス要求を無効化する。特定のアクセス方向に対してアクセス要求を無効化することができる。
【００３７】
〔１２〕《排他制御レジスタに設定されるアクセス属性》
項１０の半導体装置において、前記排他制御レジスタには、アクセス属性として、例えばイニシエータの識別情報が設定される。前記アクセス要求無効化回路は、前記比較回路による比較結果と前記排他制御レジスタに保持されたアクセスの属性情報と基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異り且つ前記排他制御レジスタに設定されたイニシエータからのアクセス要求を無効化する。特定のイニシエータに限ってアクセス要求を無効化することができる。
【００３８】
〔１３〕《排他処理に競合するアクセスに関するデバッグ支援》
項１の半導体装置は、前記イニシエータとして機能し得る複数のＣＰＵと、前記ターゲットとして機能し得るメモリ及び割り込みコントローラを備える。前記メモリは前記複数のＣＰＵの共有メモリである。前記パケットルータは、一のＣＰＵから前記共有メモリに対する排他的な処理の要求を伴うリクエストパケットを受理した場合、そのアクセス対象アドレスと重なる範囲で、受理されている排他処理要求を伴うアクセス要求とは異なるライトアクセス要求があったことを、前記割り込みコントローラに通知する。ＣＰＵによる排他処理に競合するライトアクセスのあったことを割込みを通じてデバッグ支援のための装置に通知することができる。
【００３９】
〔１４〕《排他処理に競合するアクセスに関するデバッグ支援》
項１の半導体装置は、前記ターゲットとして機能し得るメモリ及び割り込みコントローラを備える。前記メモリは複数のイニシエータの共有メモリである。前記パケットルータは、一のイニシエータから前記共有メモリに対する排他処理要求を伴うリクエストパケットを受理した場合、そのアクセス対象アドレスと重なる範囲で、受理されている排他処理要求を伴うアクセス要求とは異なるライトアクセス要求があったことを前記割り込みコントローラに通知する。一のイニシエータによる排他処理に競合するライトアクセスのあったことを割込みを通じてデバッグ支援のための装置に通知することができる。
【００４０】
〔１５〕《ターゲット単位の排他制御の併用》
別の観点による半導体装置は、アクセスを要求することが可能な複数のイニシエータと、アクセスに応答することが可能な複数のターゲットと、アクセスを要求するイニシエータから与えられるリクエストパケットをアクセス要求に応答するターゲットに与える制御を行う第１のリクエストリソース（１３１）及び第２のリクエストリソース（１３２）並びにアクセス要求に応答するターゲットから与えられるレスポンスパケットをアクセス要求元のイニシエータに返す制御を行うレスポンスリソースを備えたパケットルータとを有する。前記第１のリクエストリソースには特定の一のターゲットを対象とするリクエストパケットだけが振り分けられる。前記第２のリクエストリソースは他の複数のターゲットを対象とするリクエストパケットが振り分けられる。前記第１及び第２のリクエストリソースは、排他処理要求を含むリクエストパケットを受理したとき当該要求元から排他処理要求があったことを示す排他情報と当該リクエストパケットに含まれるアクセス情報を保持する排他情報バッファと、前記排他情報バッファに格納された情報とイニシエータから与えられるリクエストパケットに含まれるアクセス情報とを比較して、その比較結果を出力する比較回路と、前記比較回路による比較結果に基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化するアクセス要求無効化回路と、前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理し、受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う調停回路と、を有する。
【００４１】
前記第１のリクエストリソースには特定の一のターゲットを対象とするリクエストパケットだけが振り分けられるから、ターゲット単位の排他制御にはアドレス比較を要せず、一のターゲットを対象として他のイニシエータが発行した排他処理要求が既に受理されているか否か判定すればよい。
【００４２】
〔１６〕《階層化ルータの排他処理》
別の観点による半導体装置は、アクセスを要求することが可能な複数のイニシエータと、アクセスに応答することが可能な複数のターゲットと、前記イニシエータから与えられるリクエストパケットをアクセス要求に応答するターゲットに与える制御を行うリクエストリソース及びアクセス要求に応答するターゲットから与えられるレスポンスパケットをアクセス要求元のイニシエータに返す制御を行うレスポンスリソースを備えた複数のパケットルータと、を備える。前記複数のパケットルータが中継回路を介して複数階層に直列接続されているとき、前記夫々のパケットルータのリクエストリソースは、イニシエータから所要のターゲットに対するアクセス要求に伴う排他処理要求を受理する排他処理機能を備える（図１０）。
【００４３】
階層的インターコネクトを構成する複数のパケットルータのうち、アクセス要求の上流（イニシエータに近い側）のパケットルータに排他処理機構を持たない場合、上流側パケットルータに接続された一のイニシエータからの排他処理要求を伴うアクセスに続いて同じ階層のパケットルータに接続された別のイニシエータが前記アクセス要求と同じアドレスに対してアクセス要求を送信したときに、ハングアップが発生する。これは、パケットルータ間の中継回路（キューイングバッファ）が前記一のイニシエータのリクエストパケットをパケットルータに送信したときに下位階層のパケットルータが排他処理によって前記別のイニシエータのアクセス要求を抑止するために、当該一のイニシエータが排他処理停止要求を通知するアクセス要求が中継回路を通れずに下流のパケットルータに送信できないからである。
【００４４】
また、アクセス要求の下流のパケットルータに排他処理機能を持たない場合は、排他処理機能を有する上流のパケットルータに接続するイニシエータからの排他処理要求を下流のパケットルータが受理しないため、排他性を保証することができない。
【００４５】
〔１７〕
項１６の半導体装置において、前記排他処理機能を備えるパケットルータのリクエストリソースは、排他処理要求を含むリクエストパケットを受理したとき当該要求元から排他処理要求があったことを示す排他情報と当該リクエストパケットに含まれるアクセス情報を保持する排他情報バッファと、前記排他情報バッファに格納された情報とイニシエータから与えられるリクエストパケットに含まれるアクセス情報とを比較して、その比較結果を出力する比較回路と、前記比較回路による比較結果に基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化するアクセス要求無効化回路と、前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理し、受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う調停回路と、を有する。
【００４６】
〔１８〕《階層化ルータの排他処理》
別の観点による半導体装置は、アクセスを要求することが可能な複数のイニシエータと、アクセスに応答することが可能な複数のターゲットと、前記イニシエータから与えられるリクエストパケットをアクセス要求に応答するターゲットに与える制御を行うリクエストリソース及びアクセス要求に応答するターゲットから与えられるレスポンスパケットをアクセス要求元のイニシエータに返す制御を行うレスポンスリソースを備えた複数のパケットルータと、を備える。前記複数のパケットルータが中継回路を介して複数階層に直列接続されているとき、前記夫々のパケットルータのリクエストリソースは、イニシエータから所要のターゲットに対する排他的な処理要求を受理する排他処理機能を備える。排他処理要求を伴うアクセスを要求するイニシエータは、同一階層のパケットルータに集約して結合される（図１１、図１２）。
【００４７】
排他処理要求を行なうイニシエータを、排他処理要求を行なわないイニシエータに混在させて上流及び下流のパケットルータに分散配置した場合、上流及び下流のイニシエータがそれと同一アドレスについて排他的なアクセスを要求したときには、上流側で排他処理を要求しないイニシエータからのアクセス要求は、それが前記排他的なアクセス要求によって抑止されるべきものか否かにかかわらず、抑止される。これは、中継回路において、先に上流側のイニシエータから下流側のパケットルータに転送されるべき排他処理要求のアクセス要求が、下流側のイニシエータの排他的アクセス終了まで、下流側への伝達が抑止されるためである。
【００４８】
〔１９〕
項１８の半導体装置において、前記排他処理機能を備えるパケットルータのリクエストリソースは、排他処理要求を含むリクエストパケットを受理したとき当該要求元から排他処理要求があったことを示す排他情報と当該リクエストパケットに含まれるアクセス情報を保持する排他情報バッファと、前記排他情報バッファに格納された情報とイニシエータから与えられるリクエストパケットに含まれるアクセス情報とを比較して、その比較結果を出力する比較回路と、前記比較回路による比較結果に基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化するアクセス要求無効化回路と、前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理し、受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う調停回路と、を有する。
【００４９】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００５０】
《スプリットトランザクションによるパケット交換》
図２にはスプリットトランザクションによるパケット交換方式のシステムの概念が例示される。このシステムでは、マスタとしてのイニシエータ（ＩＮＩＴ）１がアクセス要求としてのリクエストパケット（ＲＥＱＰＣＫＴ）をスレーブとしてのターゲット（ＴＧＥＴ）２に送信し、ターゲットがイニシエータにアクセス応答としてのレスポンスパケット（ＲＥＳＰＣＫＴ）を送信することで転送が行われる。パケットルータ（ＰＣＫＴＲＴ）３は、同時に転送されるリクエストパケットやレスポンスパケットの調停を行う。パケットルータ３は、アクセスを要求するイニシエータ１から与えられるリクエストパケットをアクセス要求に応答するターゲット２に与える制御を行うリクエストリソース（ＲＥＱＲＳＣ）３Ａ及びアクセス要求に応答するターゲット２から与えられるレスポンスパケットをアクセス要求元のイニシエータ１に返す制御を行うレスポンスリソース（ＲＥＳＲＳＣ）３Ｂを備える。実際のシステムではイニシエータ１とターゲット２は適宜の数だけ配置される。また、イニシエータ１とターゲット２は必ずしも別々の回路であることを要せず、システム動作上、ある局面ではイニシエータ１となり、別の局面ではターゲット２とされる場合もあり、例えばＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）はＣＰＵによってデータ転送条件が設定されるときはターゲット２、設定された転送条件に従ってＤＭＡ転送を行うときはイニシエータ１となる。
【００５１】
リクエストパケットＲＥＱＰＣＫＴは、例えば、リクエストＲＥＱ、グラントＧＮＴ、エンドオブパケットＥＯＰ，ロックＬＣＫ、アドレスＡＤＤ、オペコードＯＰＣ、データＤＡＴＡ、バイトイネーブルＢＥ、ソースＳＲＣの各信号から成る。
【００５２】
リクエストＲＥＱは、イニシエータがイニシエータポートのリクエストパケット転送に使用される信号のうち、ＬＣＫ、ＡＤＤ、ＯＰＣ、ＤＡＴＡ、ＢＥ、ＳＲＣなどに有効な値を出力していることを示す。本信号とＧＮＴが共にアサート状態であるときに、リクエストパケットがイニシエータからパケットルータに向けて転送される。本信号が非アサート状態のとき、パケットルータは上記各信号を無視する。イニシエータはＧＮＴの状態に関わらず本信号をアサートできるが、ひとたび本信号をアサートしたら、ＧＮＴがアサートされてリクエストパケットの最初のセルの転送が完了するまで、アサート状態に保持しなければならない。
【００５３】
グラント信号ＧＮＴは、対応するターゲットがリクエストパケットのセルを受信可能であることを示す。ＲＥＱと本信号が共にアサート状態であるときに、リクエストパケットのセルが、イニシエータからパケットルータに転送される。パケットルータはＲＥＱの状態とは無関係に本信号をアサート、ディアサートすることができる。
【００５４】
エンドオブパケットＥＯＰは、イニシエータがリクエストパケットの最終セルをイニシエータポートに出力していることを示す。ターゲットは、転送されたセルの数ではなく、本信号がアサート状態にあることを、リクエストパケット終端の検出条件としなければならない。イニシエータは、セルの転送を開始してからそのセルの転送が完了するまで、本信号を一定値に保持しなければならない。
【００５５】
ロックＬＣＫは、排他的にトランザクション（リクエストパケットの転送からレスポンスパケットを受領するまでの一連の処理）を実行するために、システムをロックすることを要求する信号である。イニシエータは、リクエストパケット送信時において、ターゲットを排他的にアクセスするときに本信号をアサート状態とし、排他的アクセス要求を解除するときは本信号を非アサート（ネゲート）状態とする。排他的トランザクション実行をサポートするパケットルータは、本信号がアサート状態であるリクエストパケットをターゲットに転送してから、同じイニシエータからの本信号が非アサート状態であるリクエストパケットを転送するまでの間は、他のイニシエータからのリクエストパケットをターゲットに転送してはならない。
【００５６】
アドレス信号ＡＤＤはトランザクションのターゲットアドレスを示す。本信号によるアドレス指定の最小単位は８バイトである。
【００５７】
オペコードＯＰＣはロード、ストア等のトランザクションの種類と転送サイズを示す信号である。イニシエータは、リクエストパケットの転送を開始してからそのリクエストパケットの転送が完了するまで、ＲＥＱがアサート状態にある間は、本信号を一定値に保持する。
【００５８】
データＤＡＴＡはイニシエータからターゲットに転送されるデータである。
【００５９】
バイトイネーブルＢＥはターゲットが処理を行うべきバイトを指定する８ビットのデータである。バイトイネーブルとアドレスの関係は、例えばバイトアドレス０＋８ｎ、…、７＋８ｎに対して、バイトイネーブルビットＢＥ＿０、…、ＢＥ＿７が対応される。
【００６０】
ソースＳＲＣはパケットルータがレスポンスパケットを中継するときに、レスポンスパケットの送信先のイニシエータを特定できるようにするために、イニシエータが出力する識別子である。ターゲットは、リクエストパケット受信時に本信号の値を保存し、対応するレスポンスパケットを送信する際に後述するＲ＿ＳＲＣとして出力する。そして、パケットルータは、Ｒ＿ＳＲＣによってレスポンスパケットの送信先を決定する。したがって、イニシエータＶＣは、必ずレスポンスパケットが自らに返るように、本信号を出力しなければならない。
【００６１】
レスポンスパケットＲＥＳＰＣＫＴは、例えば、レスポンスバリッドＲ＿ＶＬＤ（レスポンスリクエストＲ＿ＲＥＱ）、レスポンスグラントＲ＿ＧＮＴ、レスポンスエンドオブパケットＲ＿ＥＯＰ、レスポンスロックＲ＿ＬＣＫ、レスポンスオペコードＲ＿ＯＰＣ、レスポンスデータＲ＿ＤＡＴＡ、レスポンスソースＲ＿ＳＲＣの各信号から成る。
【００６２】
レスポンスリクエストＲ＿ＲＥＱは、ターゲットが出力するＲ＿ＲＣＫ、Ｒ＿ＯＰＣ、Ｒ＿ＤＡＴＡ、Ｒ＿ＳＲＣなどの有効性を示す。ターゲットは、Ｒ＿ＧＮＴの値に関わらず本信号をアサートできる。ただし、ひとたび本信号をアサートしたら、Ｒ＿ＧＮＴがアサートされてレスポンスパケットの最初のセルの転送が完了するまでは、本信号をアサート状態に保持しなければならない。
【００６３】
レスポンスバリッドＲ＿ＶＬＤは、レスポンスパケットの有効性を示す信号であり、Ｒ＿ＥＯＰ、Ｒ＿ＬＣＫ、Ｒ＿ＯＰＣ、Ｒ＿ＤＡＴＡなどが有効であることをイニシエータに示すための信号である。
【００６４】
レスポンスエンドオブパケットＲ＿ＥＯＰはレスポンスパケットの最終セルをイニシエータに出力していることを示す。
【００６５】
レスポンスロックＲ＿ＬＣＫは  イニシエータで受信されたレスポンスパケットが排他的に送信されたものであるか否かを示す。レスポンスパケットの転送を開始してからそのレスポンスパケットの転送が完了するまで、Ｒ＿ＶＬＤがアサート状態にある間は、レスポンスロックＲ＿ＬＣＫは一定値に保持されなければならない。排他的トランザクション実行をサポートするパケットルータは、本信号がアサート状態であるレスポンスパケットを転送してから、同じターゲットからの本信号が非アサート状態であるレスポンスパケットを転送するまでの間は、他のターゲットからのレスポンスパケットをイニシエータに転送してはならない。
【００６６】
レスポンスオペコードＲ＿ＯＰＣは、ロードやストア等のトランザクションの結果を示すレスポンスオペコードである。
【００６７】
レスポンスデータＲ＿ＤＡＴＡはイニシエータに転送されるデータである。
【００６８】
レスポンスソースＲ＿ＳＲＣは対応するリクエストパケットの送信時にイニシエータが出力したソースＳＲＣと同じ値の信号であり、レスポンスパケットの転送を開始してからそのレスポンスパケットの転送が完了するまで、Ｒ＿ＶＬＤがアサート状態にある間は、一定値に保持される。本信号は、パケットルータがレスポンスパケットをルーティングする際に、レスポンスパケットの送信先（イニシエータ）を特定できるようにするための識別子である。ターゲットは、リクエストパケット受信時にＳＲＣの値を保存し、対応するレスポンスパケットを送信する際にＲ＿ＳＲＣとして出力する。パケットルータは、Ｒ＿ＳＲＣによってレスポンスパケットの送信先を決定する。
【００６９】
レスポンスググラントＲ＿ＧＮＴはレスポンスパケットを受信可能であることを示す。
【００７０】
《マイクロコンピュータとチップセット》
図３にはスプリットトランザクションによるパケット交換を適用したマイクロコンピュータ及びその周辺機能の拡張に用いる拡張デバイスからなるチップセットのブロック図が示される。チップセットはモジュール化されていてもいし、マザーボード上に単なるマルチチップとして実装されていてもよい。
【００７１】
マイクロコンピュータ１０及び拡張デバイス１１はそれぞれ異なる半導体チップに形成され、デュアルチップでチップセットを構成する。
【００７２】
マイクロコンピュータ１０はスプリットトランザクションによるパケット交換によってデータなどの転送を行うために、階層化されたパケットルータ１２、１３を有し、パケットルータ１２、１３の間には中継回路としてキューイングバッファ（ＱＵＥＢＵＦ）１４が配置される。ここでは、拡張デバイス１１にもスプリットトランザクションによるパケット交換方式が採用され、パケットルータ１５が設けられている。特に制限されないが、マイクロコンピュータ１０と拡張デバイス１１はシリアル入出力回路（ＳＩＯ）３０と４０によって接続される。
【００７３】
パケットルータ１２には中央処理装置（ＣＰＵ）２０〜２３、割り込みコントローラ（ＩＮＴＣ）２４、ＲＯＭアクセスコントローラ（ＲＯＭＣ）２５、周辺制御部（ＰＲＰＨＣ）２６、及びルーティングコントローラレジスタ（ＲＣＲＥＧ）２７が接続される。ＲＯＭＣ２５には例えばＲＯＭ５０が外付けされる。
【００７４】
パケットルータ１３には表示制御部（ＤＩＳＰＣ）３１、ハードディスク制御部（ＨＤＤＣ）３２、ダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）３３、フラッシュメモリコントローラ（ＦＭＲＹＣ）３４、シンクロナスＤＲＡＭコントローラ（ＤＭＲＹＣ）３５、周辺制御部（ＰＲＰＨＣ）３６、及びＳＩＯ３０が接続される。ＨＤＤＣ３２にはハードディスク（ＨＤＤ）５１が外付けされ、ＤＩＳＰＣ３１にはディスプレイ(ＤＩＳＰ)５２が外付けされ、ＦＭＲＹＣ３４にはフラッシュメモリ(ＦＭＲＹ)５１が外付けされ、ＤＭＲＹＣ３５にはシンクロナスＤＲＡＭ（ＤＭＲＹ）５４が外付けされる。
【００７５】
パケットルータ１５には周辺制御部（ＰＲＰＨＣ）４１〜４４、及びルーティングコントローラレジスタ(ＲＣＲＥＧ)４５が接続される。
【００７６】
ルーティングコントロールレジスタ２７はパケットルータ１２，１３に対する制御データが例えばＣＰＵ２０によってプログラマブルに設定され、設定された制御データはパケットルータ１２，１３に供給される。同様に、ルーティングコントロールレジスタ４５はパケットルータ１５に対する制御データが例えばＣＰＵ２０によってプログラマブルに設定され、設定された制御データはパケットルータ４５に供給される。ルーティングコントロールレジスタ２７は、後述するリクエストリソースによる排他制御の対象とするアクセスの属性を保持する排他制御レジスタとして機能される。
【００７７】
キューイングバッファ１４はパケットルータ１２で受理されたリクエストパケットをＦＩＦＯ形態一時的に保持する。キューイングバッファ１４が現に最初に保持するリクエストパケットはパケットルータ１３に出力され、パケットルータ１３がこれを受理することによって、キューイングバッファ１４は当該リクエストパケットのリードが完了されたと認識する。また、キューイングバッファ１４はパケットルータ１３で受理されたレスポンスパケットをＦＩＦＯ形態一時的に保持する。キューイングバッファ１４が現に最初に保持するレスポンスパケットはパケットルータ１２に出力され、パケットルータ１２がこれを受理することによって、キューイングバッファ１４は当該レスポンスパケットのリードが完了されたと認識する。
【００７８】
マイクロコンピュータ１０においてパケットルータ１２，１３は２階層で階層化される。パケットリクエストを基点とするトランザクションに対してパケットルータ１２が上位階層、パケットルータ１３が下位階層をなす。チップセットにおいては、パケットルータ１５はパケットルータ１３のさらに下位階層をなす。
【００７９】
ここで、図３のチップセットを構成する各回路モジュールにおいて、どれがイニシエータで、どれがターゲットから、そのバスマスタ機能とバススレーブ機能によって決まり、例えば、前述の如くＤＭＡＣ３３はその動作形態によってイニシエータとなったり、ターゲットになったりし、また、ＲＣＲＥＧ２７はターゲットだけとして機能される。
【００８０】
図３のチップセットにおいて、パケットルータ１２，１３，１５は一つのターゲットに対して複数のイニシエータがアクセスを要求したときの調停、そして共有リソースなどに対する排他制御のために後のアクセス要求を無効化する制御などを行う。例えば、マイクロコンピュータ１０のＣＰＵは、ＴＡＳ（Test And Set）命令実行時にセマフォに対してリード・モディファイ・ライトを行う。ＣＰＵはイニシエータとしてＴＡＳ命令によるセマフォのリードアクセスを行うときにパケットルータに排他処理を要求し、ＴＡＳ命令の後半のライトアクセスを行うときにパケットルータに排他処理終了を通知する。リソース単位で排他処理を行なう場合に、排他処理要求が受理されたイニシエータ以外のイニシエータによる排他的アクセス対象へのアクセスをターゲット単位で抑止する、というプロトコルは従来から採用さてれている。マイクロコンピュータ１０のような、マルチコアＳＯＣ（一つのチップに複数のＣＰＵを搭載するＳＯＣ）では、シングルコアＳＯＣ（一つのチップに単一のＣＰＵを搭載するＳＯＣ）に比して排他処理が多用されることが考えられる。ターゲット単位の排他処理では、排他処理に伴う転送性能（バスアクセス性能）の低下が大きいから、図３のチップセットにおいては、排他処理単位を縮小するために、少なくともアドレス領域単位の排他制御を行うようになっている。以下、排他処理を中心にパケットルータの具体例を説明する。
【００８１】
《アドレス比較を行うリクエストリソース》
図１にはパケットルータ１２、１３、１５のリクエストリソース（ＲＥＱＲＳＣ）８０について原理的構成が具体的に例示される。リクエストリソース８０はリクエストリソース３Ａの一例である。ここでは、説明を解り易くするために、リクエストリソース８０には３個のイニシエータ６０，６１，６２と３個のターゲット７０、７１、７２が接続される例を示す。
【００８２】
リクエストリソース８０は、排他情報バッファ（ＥＸＣＬＢＵＦ）８１、比較回路(ＣＯＭＰ)９０，９１，９２、アクセス要求無効化回路（ＤＳＡＢＬ）１００，１０１，１０２、及び調停回路（ＡＲＢＴＲ）８２を有する。調停回路８２は調停ロジック（ＡＲＢＬＧＣ）８３とセレクタ（ＳＬＣＴＲ）８４から成る。
【００８３】
排他情報バッファ８１は、たとえば図４に例示されるように、排他処理要求としてのロックＬＣＫがアサートされたリクエストパケットを受理したとき当該要求元としてのイニシエータ番号ＩＮＩＴＩＤに対応して、排他処理要求の有無を示す排他情報ＥＸＣＬ、当該リクエストパケットに含まれるアドレス情報ＡＤＤ、アクセスデータサイズＤＳＺ、及びバイトイネーブルＢＥを保持する。図４に示される対象イニシエータ番号ＴＧＩＮＩＴと、リード又はライトのようなアクセス方向Ｒ／Ｗの情報とは排他制御レジスタ２７が保持する。アクセスデータサイズＤＳＺは、アドレス範囲の全てをアドレス情報で指定しない場合に、先頭アドレスとアクセスデータサイズによって指定する場合に用いるデータである。対象イニシエータ番号ＴＧＩＮＩＴと、アクセス方向Ｒ／Ｗに応ずる情報はそもそもリクエストパケットで指定される情報ではなく、ＣＰＵが排他制御レジスタ２７に指定するデータである。イニシエータＩＤ＃０の対象イニシエータ番号ＴＧＩＮＩＴは“#１=１／０，＃２＝１／０”となり、１は排他処理の対象、０は排他処理の非対象を意味する。例えばイニシエータＩＤ＃０の対象イニシエータ番号ＴＧＩＮＩＴは“１１”すなわち“#１=１，＃２＝１”であり、イニシエータ＃０が出力する排他処理要求に対しては、イニシエータＩＤ＃１、＃２の何れからのアクセス要求に対しても排他処理の対象とする。イニシエータＩＤ＃１の対象イニシエータ番号ＴＧＩＮＩＴは“#０=１／０，＃２＝１／０”となり、例えばイニシエータＩＤ＃１の対象イニシエータ番号ＴＧＩＮＩＴは“０１”すなわち“#０=０，＃２＝１”であり、イニシエータ＃１が出力する排他処理要求に対しては、イニシエータＩＤ＃０からのアクセス要求に対しては排他処理の対象とはせず、イニシエータＩＤ＃２からのアクセス要求に対しては排他処理の対象とする。
【００８４】
例えば比較回路９０、９１、９２は、前記排他情報バッファ８１等に格納された情報と対応するイニシエータ６０、６１、６２から与えられるリクエストパケットに含まれるアドレス情報とを比較して、その比較結果を出力する。例えば比較回路９０は、前記排他情報バッファ８１が保持しイニシエータＩＤが＃１、＃２のエントリデータと、イニシエータ６０が出力するリクエストパケットに含まれていてそのエントリデータに対応するデータとを比較する。比較回路９１は、前記排他情報バッファ８１が保持しイニシエータＩＤが＃０、＃２のエントリデータと、イニシエータ６０が出力するリクエストパケットに含まれていてそのエントリデータに対応するデータとを比較する。比較回路９２は、前記排他情報バッファ８１が保持しイニシエータＩＤが＃０、＃１のエントリデータと、イニシエータ６０が出力するリクエストパケットに含まれていてそのエントリデータに対応するデータとを比較する。ここでは、夫々の比較回路９０，９１，９２は、夫々の比較項目で排他条件に一致しなければハイレベル（“Ｈ”）を出力する。
【００８５】
アクセス要求無効化回路（ＤＳＡＢＬ）１００，１０１，１０２は、対応する比較回路９０，９１，９２の出力が“Ｌ”のとき、対応するアクセス要求を無効化する。即ち、アクセス要求無効化回路１００は、比較回路９０の出力とイニシエータ６９からのリクエストＲＥＱとの論理積を採り、当該リクエストＲＥＱのハイレベルによってアクセスが要求されているとき、比較回路９０の出力が“Ｈ”でなければ対応するリクエストＲＥＱによるアクセス理要求を無効化する。アクセス要求無効化回路１０１は、比較回路９１の出力とリクエストＲＥＱとの論理積を採り、当該リクエストＲＥＱのハイレベルによってアクセスが要求されているとき、比較回路９１の出力が“Ｈ”でなければ対応するリクエストＲＥＱによるアクセス要求を無効化する。アクセス要求無効化回路１０２は、比較回路９２の出力とリクエストＲＥＱとの論理積を採り、当該リクエストＲＥＱのハイレベルによってアクセスが要求されているとき、比較回路９２の出力が“Ｈ”でなければ対応するリクエストＲＥＱによるアクセス要求を無効化する。要するに、アクセス要求無効化回路１００，１０１，１０２は、アクセス対象アドレスに着目すれば、比較回路による比較結果に基づいて、既に受理されている排他処理要求とアクセス対象アドレスが重なる範囲を最大限として、既に受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化するものである。アクセス対象アドレスが重なる範囲とは、同一のイニシエータ上でアクセスアドレスが重なることを意味する。
【００８６】
調停ロジック８３は、前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理する。セレクタ８４は、調停ロジック８３が受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う。更にセレクタ８４は、排他処理要求を伴って受理されたアクセス要求のリクエストパケットの情報によって排他情報バッファ８１の対応するエントリの情報を更新する。
【００８７】
尚、図１ではリクエストパケットＲＥＱＰＣＫＴの中のリクエストＲＥＱとグラントＧＮＴの所在を明示しているが、その他の信号はそれとは別の信号線に含まれる。
【００８８】
上記によれば、排他的アクセスの対象となるアドレス情報などのアクセス情報を保持し、イニシエータが出力するアクセス情報と前記保持されたアクセス情報を比較し、アクセス対象アドレスが重なる範囲を最大限として他のアクセス要求を無効化するから、ターゲット単位よりも細かなアドレスを対象とするピンポイントの排他処理を実現することができる。
【００８９】
そして、調停回路の処理に先立って排他処理要求を伴うアクセス要求に対する選択的な無効化の処理を行うから、排他的な制御により抑止されるべきアクセス要求が調停回路による調停処理の対象にはされず、この点において、イニシエータがアクセス要求を行ってからアクセス要求が受理されるまでの時間を短縮するのに寄与する。
【００９０】
図１において、前記調停ロジック８３は、前記イニシエータ毎にグラントＧＮＴを出力し、前記イニシエータからリクエストＲＥＱによりアクセス要求を入力した場合、前記アクセス要求無効化回路１００によりそのアクセス要求が有効とされ、かつ、調停によって前記イニシエータからのアクセス要求が無効とされた場合や、調停によって前記イニシエータからのアクセス要求を受理しない場合には、グラントＧＮＴをディアサート状態とする。調停ロジック８３は、アクセス要求の無効化に関わらず、イニシエータからのアクセス要求を受理したときにのみグラントＧＮＴをアサートするから、これを受けるイニシエータは、アクセス要求の後、これが受理されたか無効化されたかを感知することなく、グラントＧＮＴのアサートを待てばよい。したがって、スプリットトランザクションによるパケット交換方式のバスインタフェースでは、排他処理を伴うアクセス要求が一時的に抑止される場合でもイニシエータは単に待てばよく、再度アクセス要求を行うなどの処理は不要であり、ピンポイントの無効化を採用してもイニシエータの実装は容易である。
【００９１】
図１において、前記イニシエータは、例えばアクセスを要求した場合、入力されるグラントＧＮＴのディアサート状態によってアクセス要求が受理されていないと判定し、入力されるグラントＧＮＴがアサート状態であることにより、アクセス要求が受理されたと判定する。
【００９２】
図５には比較回路（ＣＯＭＰ＃０）９０の一例としてアドレス比較と排他要求比較を行なう例が示される。１１０は、排他情報バッファ８１におけるイニシエータＩＤ＃１のエントリのアドレス情報ＡＤＤと、イニシエータＩＤ＃０のイニシエータ６０から出力されるアドレスＡＤＤとを比較するアドレス比較器であり、比較一致によって“Ｈ”を出力する。１１１は、排他情報バッファ８１におけるイニシエータＩＤ＃２のエントリのアドレス情報ＡＤＤと、イニシエータＩＤ＃０のイニシエータ６０から出力されるアドレスＡＤＤとを比較するアドレス比較器であり、比較一致によって“Ｈ”を出力する。アンドゲート１１２は排他情報バッファ８１におけるイニシエータＩＤ＃１のエントリの排他情報ＥＸＣＬと、アドレス比較器１１０の比較結果を２入力として論理積を採る。アンドゲート１１３は排他情報バッファ８１におけるイニシエータＩＤ＃２のエントリの排他情報ＥＸＣＬと、アドレス比較器１１１の比較結果を２入力として論理積を採る。エントリの排他情報ＥＸＣＬは対応するイニシエータが排他処理を要求していれば“Ｈ”とされる。負論理和ゲート（ノアゲート）１１４はアンドゲート１１２、１１３の出力を２入力として、負論理和を採る。アクセス要求無効化回路１００はイニシエータＩＤ＃０が出力するリクエストＲＥＱとナンドゲート１１４の出力を２入力とするアンドゲートによって構成される。したがって、イニシエータ＃１が排他処理を要求しており（ＩＮＴ１，ＥＸＣＬ（ＥＸＣＬＢＵＦ）＝“Ｈ”）且つアドレス比較器１１０による比較が一致であるときアンドゲート１１２の出力が“Ｈ”、また、イニシエータ＃２が排他処理を要求しており（ＩＮＴ２，ＥＸＣＬ（ＥＸＣＬＢＵＦ）＝“Ｈ”）且つアドレス比較器１１１による比較が一致であるときアンドゲート１１３の出力が“Ｈ”となるから、その何れの場合においても、イニシエータ＃０からのアクセス要求は無効化される。他の比較回路の場合も上記と同様である。
【００９３】
このように、アドレス比較と排他要求比較を行なう比較回路を採用する場合、一つのイニシエータからアクセス要求があったとき、それによるアクセスアドレスと重なるアドレスについて既に別のイニシエータからの排他処理要求が受理されている場合に、当該一つのイニシエータからのアクセス要求を無効化する。
【００９４】
図６には比較回路（ＣＯＭＰ＃０）９０の一例としてアドレス比較、排他要求比較及びバイトイネーブル比較を行なう例が示される。１２０は図５の比較器１１０と同じであり、１２１は図５の比較器１１１と同じである。比較器１２５は排他情報バッファ８１におけるイニシエータＩＤ＃１のエントリのバイトイネーブルＢＥと、イニシエータＩＤ＃０のイニシエータ６０から出力されるバイトイネーブルＢＥとを比較するアドレス比較器であり、比較一致によって“Ｈ”を出力する。１２６は、排他情報バッファ８１におけるイニシエータＩＤ＃２のエントリのバイトイネーブルＢＥと、イニシエータＩＤ＃０のイニシエータ６０から出力されるバイトイネーブルＢＥとを比較するアドレス比較器であり、比較一致によって“Ｈ”を出力する。アンドゲート１２２は排他情報バッファ８１におけるイニシエータＩＤ＃１のエントリの排他情報ＥＸＣＬ、アドレス比較器１２０の比較結果、及びアドレス比較器１２５の比較結果を３入力として論理積を採る。アンドゲート１２３は排他情報バッファ８１におけるイニシエータＩＤ＃２のエントリの排他情報ＥＸＣＬ、アドレス比較器１１１の比較結果、及びアドレス比較器１１１の比較結果を３入力として論理積を採る。エントリの排他情報ＥＸＣＬは対応するイニシエータが排他処理を要求していれば“Ｈ”とされる。負論理和ゲート（ノアゲート）１２４はアンドゲート１２２、１２３の出力を２入力として、負論理和を採る。アクセス要求無効化回路１００はイニシエータＩＤ＃０が出力するリクエストＲＥＱとナンドゲート１２４の出力を２入力とするアンドゲートによって構成される。したがって、イニシエータ＃１が排他処理を要求しており（ＩＮＴ１，ＥＸＣＬ（ＥＸＣＬＢＵＦ）＝“Ｈ”）且つアドレス比較器１２０による比較及びアドレス比較器１２５による比較が夫々一致であるときアンドゲート１２２の出力が“Ｈ”、また、イニシエータ＃２が排他処理を要求しており（ＩＮＴ２，ＥＸＣＬ（ＥＸＣＬＢＵＦ）＝“Ｈ”）且つアドレス比較器１２１による比較及びアドレス比較器１２６による比較が一致であるときアンドゲート１２３の出力が“Ｈ”となるから、その何れの場合においても、イニシエータ＃０からのアクセス要求は無効化される。他の比較回路の場合も上記と同様である。
【００９５】
このように、アドレス比較、排他要求比較及びバイトイネーブル比較を行なう比較回路を採用する場合、一つのイニシエータからアクセス要求があったとき、それによる指定アクセスアドレスと重なり、バイトイネーブルによるアクセス対象バイトが重なっている、既に別のイニシエータからの排他処理要求が受理されている場合に、当該一つのイニシエータからのアクセス要求を無効化する。
【００９６】
図７には図６に対して更に対象イニシエータ番号ＴＧＩＮＩＴも比較対象にした比較回路（ＣＯＭＰ＃０）９０の一例が示される。図６との相違点は１２２，１２３のアンドゲートを４入力とし、ＩＮＩＴＩＤ＃１に関するアンドゲート１３２には排他情報バッファ８１におけるＩＮＩＴＩＤ＃１のエントリが保有する対象イニシエータ番号ＴＧＩＮＩＴのＩＮＩＴ＃０に対応する値を入力し、ＩＮＩＴＩＤ＃２に関するアンドゲート１３３には排他情報バッファ８１におけるＩＮＩＴＩＤ＃２のエントリが保有する対象イニシエータ番号ＴＧＩＮＩＴのＩＮＩＴ＃０に対応する値を入力する。図４の例に従えば、ＩＮＩＴＩＤ＃１のエントリにおいて、対象イニシエータ番号ＴＧＩＮＩＴは“#０、#２”＝“０１”であるから、ＩＮＩＴ＃１，ＴＧＩＮＩＴ（ＩＮＩＴ＃０）＝０がアンドゲート１３２に、ＩＮＩＴＩＤ＃２のエントリにおいて、対象イニシエータ番号ＴＧＩＮＩＴは“#０、#１”＝“１０”であるから、ＩＮＩＴ＃２，ＴＧＩＮＩＴ（ＩＮＩＴ＃０）＝０がアンドゲート１３３に供給される。これにより、イニシエータ６０（ＩＮＩＴＩＤ＃０）からのアクセス要求は、イニシエータ６１（ＩＮＩＴＩＤ＃１）による排他処理要求がすでに受理されていてもそれによって排除されず、イニシエータ６２（ＩＮＩＴＩＤ＃２）による排他処理要求がすでに受理されていていればそれによって排除される。
【００９７】
このように対象イニシエータ番号ＴＧＩＮＩＴも比較対象にしてアドレス比較などを行えば、レジスタ２７の設定内容で特定される一部のイニシエータからのアクセス要求に限って無効化することができるようになる。
【００９８】
上記比較回路の具体例は図１に例示されるように３個のイニシエータ６０，６１，６２の場合を例としており、イニシエータの数に応じてアンドゲート１２２，１２３（１３２，１３３）に係る構成を増やせばよい。
【００９９】
《ターゲットを最小単位とする排他制御用のリクエストリソースの併用》
上記説明では、アクセス対象ターゲットが既に受理された排他処理の対象ターゲットと同じであるかはアドレス比較を用いた。ターゲット単位でアクセスの無効化を行う場合には、図８に例示されるように、ターゲットへの接続を変えたリクエストリソース（ＲＥＱＲＳＣ）１３０、１３１を設け、リクエストリソース１３０，１３１へのリクエストパケットの振り分けを行う振り分け回路（ＰＣＫＴＳＲＴ）１３２を用いればよい。すなわち、リクエストリソース１３０にはターゲットＴＧＴ７０，７１を接続し、リクエストリソース１３１には１個のターゲットＴＧＴ７２を接続する。振り分け回路１３２はリクエストリソースに含まれるアクセスアドレスＡＤＤからアクセス対象ターゲットを判別し、ターゲット７０又は７１をアクセス対象とするリクエストパケットをリクエストリソース１３０に供給し、ターゲット７２をアクセス対象とするリクエストパケットをリクエストリソース１３１に供給する。リクエストリソース１３０は接続されるターゲットが相違される点を除いて図１で説明したリクエストリソース８０と同じ構成を備えるから、その詳細な説明は省略する。リクエストリソース１３１はターゲットを最小単位として排他処理要求に対する制御を行う点が図１のリクエストリソース８０と相違される。即ち、リクエストリソース１３１の比較回路１４０は、図９に例示される。図９には比較回路（ＣＯＭＰ＃０）１４０の一例が示される。同図に示される比較回路１４０は、排他情報バッファ８１におけるイニシエータＩＤ＃１のエントリの排他情報ＥＸＣＬと、排他情報バッファ８１におけるイニシエータＩＤ＃２のエントリの排他情報ＥＸＣＬとが直接負論理和ゲート（ノアゲート）１１４に供給される。イニシエータ＃１が排他処理を要求している状態（ＩＮＴ１，ＥＸＣＬ（ＥＸＣＬＢＵＦ）＝“Ｈ”）、又はイニシエータ＃２が排他処理を要求している状態（ＩＮＴ２，ＥＸＣＬ（ＥＸＣＬＢＵＦ）＝“Ｈ”）の場合に、イニシエータ＃０からのターゲット７２へのアクセス要求は無効化される。
【０１００】
リクエストリソース１３１には特定の一のターゲット７０を対象とするリクエストパケットだけが振り分けられるから、ターゲット単位の排他制御にはアドレス比較を要せず、一のターゲット７０を対象として他のイニシエータが発行した排他処理要求が既に受理されているか否か判定すれば、一のターゲット７０に対してはこれを最小単位とする排他制御を行うことができる。
【０１０１】
《イニシエータを単位とする排他制御》
排他制御を要求したイニシエータがＣＰＵであれば、パケットルータが、排他制御期間内に別のイニシエータによる別のアドレスへのアクセスを許可しても問題はない。一方，イニシエータの中には、他のイニシエータを排除して自己のアクセス頻度を高めることを目的として、排他的アクセスを要求するものがある。例えばＤＭＡＣ等である。このようなイニシエータによる排他処理要求に対しては、アドレス等によるピンポイントの排他処理ではなく、ターゲットに対する全アクセスを対象とする排他処理が有効である。このため、排他処理を要求するイニシエータを単位として、全アクセスで排他制御を行う回路と、ピンポイントで排他制御を行う回路を混在させるのがよい。
【０１０２】
具体的には，イニシエータがＣＰＵであれば図１で説明したように、アドレスを限定した排他処理を行い、イニシエータがＣＰＵ以外であれば、アドレスを限定しない排他処理を行う。パケットルータに直接イニシエータが接続されている場合、イニシエータがＣＰＵであるかＣＰＵ以外であるかはＳＯＣや半導体装置の開発段階で決まるため、イニシエータのタイプがＣＰＵかＣＰＵ以外かを識別する回路を特別に設けることは不要である。パケットルータに、イニシエータが接続されている場合、リクエストパケットに含まれる属性の一つであるイニシエータ識別情報（シースＳＲＣ）に基づいてイニシエータタイプの判定を行えばよい。
【０１０３】
《排他情報バッファのエントリ数》
排他情報バッファのオーバーフローにより、排他処理が正常に行われないことがあってはならない。このため，排他情報バッファ８１のエントリ数は、イニシエータが同時に実行できる排他的アクセスの合計値以上とする。例えば図４の例では一つのイニシエータＩＤが格納するアクセス情報は一つである。階層インターコネクトのように、パケットルータにパケットルータが接続されている場合、排他情報バッファのエントリ数はパケットルータに接続された全てのイニシエータが同時に実行できる排他的アクセスの合計数となる。
【０１０４】
一つのＣＰＵが同時に実行できる排他的アクセス数が複数ある場合に、その識別をプロセスＩＤを用いて行ってもよい。この場合には、前記排他情報バッファが保持するアクセス情報には、アクセス対象アドレス情報と共に、そのアクセス対象アドレス情報を用いるプロセスのプロセスＩＤ情報を含める。この場合、前記アクセス要求無効化回路は、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とはプロセスＩＤが異なるアクセス要求を無効化する。同じイニシエータによる排他的アクセス要求に対してプロセスＩＤを考慮してアクセス要求の無効化に対処することができる。
【０１０５】
《排他処理に競合するアクセスに関するデバッグ支援》
セマフォを実現するために排他処理を使う場合、通常はＣＰＵが排他的アクセスを要求中のアドレスに対して以下の事象が発生することはなく、発生した場合、その原因はソフトウエアやハードウエアの不具合である可能性が高い。その事象とは、排他処理を要求しているイニシエータ（ＣＰＵ）以外のＣＰＵからのライトアクセス、ＣＰＵ以外のイニシエータからの任意のアクセス、があることである。図３に例示されるように、パケットルータ１２，１３は、上記事象を検出したときに、割込みコントローラ２４に割込み要求信号ＩＲＱ１，ＩＲＱ２を出力し、ＣＰＵ２３に割り込み信号をＩＮＴ出力する。これにより、ソフトウエアやハードウエアの不具合の早期発見に資することができる。
【０１０６】
《階層化ルータの排他処理》
図１０には複数のパケットルータを階層的に組み合わせてオンチップインターコネクトを構築した例が示される。パケットルータ１５０，１５１の間には中継回路として例えばキューイングバッファ（ＱＵＥＢＵＦ）１５２は配置される。パケットルータ１５０にはイニシエータ１６０，１６１が接続され、パケットルータ１５１にはイニシエータ１６２，１６３が接続される。代表的に示されたターゲット１６４はパケットルータ１５１に接続される。このように、複数のパケットルータ１５０，１５１がキューイングバッファ１５２を介して複数階層に直列接続されているとき、夫々のパケットルータ１５０，１５１のリクエストリソースは、イニシエータから所要のターゲットに対するアクセス要求に伴う排他処理要求を受理する排他処理機能を備える。例えばリクエストリソースは図１で説明したように構成される。この場合、パケットルータ１５０のセレクタ８４の出力は例えばワイヤード・オアでキューイングバッファ１５２の上流側ポートに接続される。キューイングバッファ１５２の下流側ポートは、一つのイニシエータとしてパケットルータ１５１のリクエストリソースに接続されればよい。
【０１０７】
階層的インターコネクトを構成する複数のパケットルータ１５０，１５１のうち、アクセス要求の上流（イニシエータに近い側）のパケットルータ１５０に排他処理機構を持たない場合、上流側パケットルータ１５０に接続された一のイニシエータ１６０からの排他処理要求を伴うアクセスに続いて同じ階層のパケットルータ１５０に接続された別のイニシエータ１６１が前記アクセス要求と同じアドレスに対してアクセス要求を送信したときに、ハングアップが発生する。これは、パケットルータ間の中継回路（キューイングバッファ）１５２が前記一のイニシエータ１６０のリクエストパケットをパケットルータに送信したときに下位階層のパケットルータ１５１が排他処理によって前記別のイニシエータ１６１のアクセス要求を抑止するために、当該一のイニシエータ１６０が排他処理停止要求を通知するアクセス要求が中継回路１５２を通れずに下流のパケットルータ１５１に送信できないからである。
【０１０８】
また、アクセス要求の下流のパケットルータ１５１に排他処理機能を持たない場合は、排他処理機能を有する上流のパケットルータ１５０に接続するイニシエータ１６０，１６１からの排他処理要求を下流のパケットルータ１５１が受理しないため、排他性を保証することができない。
【０１０９】
図１１と図１２には複数のパケットルータを階層的に組み合わせてオンチップインターコネクトを構築したとき、排他処理を要求するイニシエータを同一階層のパケットルータに集約して接続した例が示される。図１１及び図１２においてパケットルータ１５０、１５１及びキューイングバッファ１５２は図１０と同じであり、パケットルータ１５０、１５１は共に排他制御機能を備える。図１１及び図１２ではイニシエータ１７０，１７１は排他処理を要求するイニシエータとされ、イニシエータ１７２，１７３は排他処理を要求しないイニシエータとされる。このように、排他処理要求を伴うアクセスを要求するイニシエータは、同一階層のパケットルータに集約して結合される。
【０１１０】
図１３に例示されるように、排他処理要求を行なうイニシエータ１７０，１７１を、排他処理要求を行なわないイニシエータ１７２，１７３に混在させて上流及び下流のパケットルータ１５０，１５１に分散配置した場合、上流及び下流のイニシエータ１７０，１７１がそれと同一アドレスについて排他的なアクセスを要求したときには、上流側で排他処理を要求しないイニシエータ１７２からのアクセス要求は、それが前記排他的なアクセス要求によって抑止されるべきものか否かにかかわらず、抑止される。これは、中継回路１５２において、先に上流側のイニシエータ１７０から下流側のパケットルータ１５１に転送されるべき排他処理要求のアクセス要求が、下流側のイニシエータ１７１の排他的アクセス終了まで、下流側への伝達が抑止されるためである。
【０１１１】
以上説明した実施の形態によれば以下の作用効果がある。
【０１１２】
（１）排他処理対象アドレスを対象とした、ピンポイントの排他処理ができる。このため，排他処理に伴う転送性能を向上させることができる。本発明では排他情報保持バッファに排他処理対象アドレスを保持し，アクセス要求が排他処理対象アドレスに該当するか否かを判定し，該当するアクセス要求だけを排除するからである。
【０１１３】
（２）排他処理対象アドレスに限定した排他処理と、（スループット向上を目的とした）排他処理対象アドレスを限定しない排他処理を、一つのＳＯＣ若しくはチップに混在できる。本発明ではアクセス要求先のアドレスを振り分け回路で判定してリクエストパケットを所定のリクエストリソースに簡単に振り分けることができるからである。
【０１１４】
（３）単一のイニシエータによる複数の排他的アクセスを同時に処理できる。排他情報保持バッファに、プロセス識別情報(プロセスＩＤ)を記憶させ、アクセス要求が排他処理対象プロセスＩＤに該当するか否かを判定し、該当するアクセス要求だけを排除するからである。
【０１１５】
（４）排他処理に伴って抑止されるアクセス要求を調停前に排除するので、排他処理に伴って抑止されるアクセス要求が調停処理によって受理されることがない。結果として有効な（排他処理に伴って排除されない）アクセスが早く受理され、高いデータ転送性能を得る。イニシエータと調停回路の間にイニシエータ毎に比較回路を配置するから、調停前に排他処理によって抑止すべきアクセス要求を抑止し、調停回路が排他処理によって抑止されないアクセス要求だけを調停対象とするからである。
【０１１６】
（５）階層インターコネクトにおいて、排他処理によるハングアップを回避できる。複数のパケットルータを用いて階層的に構成されたインターコネクトにおいて、上流（イニシエータに近い側）のパケットルータが、排他処理によって抑止されるべきアクセス要求を抑止するためである。この抑止動作により、下流（ターゲットに近い側）のパケットルータによる排他処理によって抑止されるリクエストパケットが中継回路に滞留しないようにするためである。下流のパケットルータによる排他処理によって抑止されるアクセス要求が中継回路に滞留すると、下流のパケットルータに排他的アクセスの終了を通知するアクセス要求を転送できなくなり、これによってハングアップ状態に陥る。
【０１１７】
（６）階層インターコネクトにおいて、排他処理に伴って、排他処理によって排除されないアクセスが排他処理完了まで抑止され続けることがない。排他制御を要求するイニシエータを異なるパケットルータに接続しないため、排他制御によって抑止されるべきアクセス要求が、排他制御によって抑止されないアクセス要求の処理を阻害しないからである。
【０１１８】
（７）排他的処理の対象となっているアドレスに対する不正なアクセスを検出することにより、ソフトウエアやハードウエアの不具合の早期発見を容易にする。ＣＰＵによる排他処理の対象となるアドレスに対して、前記ＣＰＵ以外のＣＰＵがライトアクセスを実行したり、前記ＣＰＵ以外の非ＣＰＵであるイニシエータがアクセスしたりすることは、通常意図的に発生しない事象であり、不具合である可能性が高い。排他処理の対象となるアドレスに対する前記ＣＰＵ以外のＣＰＵによるライトアクセスと、前記ＣＰＵ以外の非ＣＰＵであるイニシエータによるアクセスを検出し、これによって割り込み信号をアサートできるからである。
【０１１９】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【図面の簡単な説明】
【０１２０】
【図１】図１はパケットルータのリクエストリソースについて原理的構成を具体的に例示するブロック図である。
【図２】図２はスプリットトランザクションによるパケット交換方式のシステムの概念を例示するブロック図である。
【図３】図３はスプリットトランザクションによるパケット交換を適用したマイクロコンピュータ及び拡張デバイスからなるチップセットのブロック図である。
【図４】図４は排他情報バッファが保有する排他情報と排他制御レジスタが保有する制御情報を例示する説明図である。
【図５】図５は比較回路９０の一例としてアドレス比較と排他要求比較を行なう構成を例示する論理回路図である。
【図６】図６は比較回路９０の一例としてアドレス比較、排他要求比較及びバイトイネーブル比較を行なう構成を例示する論理回路図である。
【図７】図７は図６に対して更に対象イニシエータ番号ＴＧＩＮＩＴも比較対象にした比較回路９０の一例を例示する論理回路図である。
【図８】図８はターゲット単位でアクセスの無効化を行うために振り分け回路を採用したリクエストリソースを例示するブロック図である。
【図９】図９はターゲットを最小単位として排他処理要求に対する制御を行うための比較回路を例示する論理回路図である。
【図１０】図１０は複数のパケットルータを階層的に組み合わせてオンチップインターコネクトを構築するときのパケットルータの排他処理機能に着目した説明図である。
【図１１】図１１は複数のパケットルータを階層的に組み合わせてオンチップインターコネクトを構築するときの排他処理を要求するイニシエータの集約配置に着目した説明図である。
【図１２】図１２は複数のパケットルータを階層的に組み合わせてオンチップインターコネクトを構築するときの排他処理を要求するイニシエータの別の集約配置に着目した説明図である。
【図１３】図１３は排他処理を要求するイニシエータを分散配置したときの問題点に着目した説明図である。
【符号の説明】
【０１２１】
１  イニシエータ（ＩＮＩＴ）
２  ターゲット（ＴＧＥＴ）
３  パケットルータ（ＰＣＫＴＲＴ）
３Ａ  リクエストリソース（ＲＥＱＲＳＣ）
３Ｂ  レスポンスリソース（ＲＥＳＲＳＣ）
ＲＥＱＰＣＫＴ  リクエストパケット
ＲＥＱ  リクエスト
ＧＮＴ  グラント
ＡＤＤ  アドレス
ＢＥ  バイトイネーブル
ＬＣＫ  ロック
ＲＥＳＰＣＫＴ  レスポンスパケット
１０  マイクロコンピュータ
１１  拡張デバイス
１２，１３パケットルータ
１４  キューイングバッファ（ＱＵＥＢＵＦ）
１５  パケットルータ
２０〜２３  中央処理装置（ＣＰＵ）
２４  割り込みコントローラ（ＩＮＴＣ）
２５  ＲＯＭアクセスコントローラ（ＲＯＭＣ）
２６  周辺制御部（ＰＲＰＨＣ）
２７  ルーティングコントローラレジスタ（ＲＣＲＥＧ）
３１  表示制御部（ＤＩＳＰＣ）
３２  ハードディスク制御部（ＨＤＤＣ）
３３  ダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）
３４  フラッシュメモリコントローラ（ＦＭＲＹＣ）
３５  シンクロナスＤＲＡＭコントローラ（ＤＭＲＹＣ）
３６  周辺制御部（ＰＲＰＨＣ）
８０  リクエストリソース（ＲＥＱＲＳＣ）
６０，６１，６２  イニシエータ
７０、７１、７２  ターゲット
８１  排他情報バッファ（ＥＸＣＬＢＵＦ）
９０，９１，９２  比較回路(ＣＯＭＰ)
１００，１０１，１０２  アクセス要求無効化回路（ＤＳＡＢＬ）
８２  調停回路（ＡＲＢＴＲ）
８３  調停ロジック（ＡＲＢＬＧＣ）
８４  セレクタ（ＳＬＣＴＲ）
１３０、１３１  リクエストリソース（ＲＥＱＲＳＣ）
１５０，１５１  パケットルータ
１５２  キューイングバッファ（ＱＵＥＢＵＦ）
１６０，１６１、１６２，１６３  イニシエータ
１７０，１７１，１７２，１７３  イニシエータ
【図１】
2010140130.tif 000003
【図２】
2010140130.tif 000004
【図３】
2010140130.tif 000005
【図４】
2010140130.tif 000006
【図５】
2010140130.tif 000007
【図６】
2010140130.tif 000008
【図７】
2010140130.tif 000009
【図８】
2010140130.tif 000010
【図９】
2010140130.tif 000011
【図１０】
2010140130.tif 000012
【図１１】
2010140130.tif 000013
【図１２】
2010140130.tif 000014
【図１３】
2010140130.tif 000015