(57)【要約】【課題】マルチプロセッサにおいて、一方のローカルメモリを一方のプロセッサが高速アクセスでき、他方のプロセッサからもアクセス可能とすること。【解決手段】プロセッサ１にローカルバス１０２を介しローカルメモリ１０１が接続され、プロセッサ２にローカルバス２０２を介しローカルメモリ２０１が接続され、１０２とシステムバスＳＢにバスブリッジ（ＢＢ）１０３が接続され、２０２とＳＢとＢＢ２０３が接続され、ＳＢと１０１にバスインターフェースユニット（ＢＩＵ）３が接続され、ＳＢと２０１にＢＩＵ５が接続される。１から１０１へ１０２を介し高速アクセスする一方、１から１０２、１０３、ＳＢ、５のＰ１・Ｐ３を介し２からは２０２、２０３、ＳＢ、３のＰ２・Ｐ３を介し１０１をアクセスする。２から２０１へ２０２を介し高速アクセスする一方、２から２０２…３のＰ２・Ｐ３を介し１からは１０２…５のＰ１・Ｐ３を介し２０１をアクセスする。【選択図】図１
2008027305.tif 000002
【特許請求の範囲】
【請求項１】
第１プロセッサと、第２プロセッサと、第１ローカルメモリと、第２ローカルメモリと、第１ローカルバスと、第２ローカルバスと、第１バスブリッジと、第２バスブリッジと、第１システムバスと第２システムバスとを含むシステムバスと、第１バスインターフェースユニットと、第２バスインターフェースユニットとを具備して、
前記第１プロセッサには前記第１ローカルバスを介して前記第１ローカルメモリが接続され、前記第２プロセッサには前記第２ローカルバスを介して前記第２ローカルメモリが接続され、
前記第１バスブリッジの一方のポートと他方のポートとは前記第１ローカルバスと前記第１システムバスとにそれぞれ接続され、前記第２バスブリッジの一方のポートと他方のポートとは前記第２ローカルバスと前記第２システムバスとにそれぞれ接続され、
前記第１バスインターフェースユニットの第１ポートと第２ポートと第３ポートは前記第１システムバスと前記第２システムバスと前記第１ローカルメモリとにそれぞれ接続され、前記第２バスインターフェースユニットの第１ポートと第２ポートと第３ポートは前記第１システムバスと前記第２システムバスと前記第２ローカルメモリとにそれぞれ接続され、
前記第１プロセッサが前記第２ローカルメモリへのアクセスを要求する第１リクエスト信号を前記第１ローカルバスと前記第１バスブリッジと前記第１システムバスとを介して前記第２バスインターフェースユニットの前記第１ポートに供給して、前記第２バスインターフェースユニットが前記第１リクエスト信号を受領すると、前記第２バスインターフェースユニットは前記第１プロセッサによる前記第２ローカルメモリへのアクセスを許可する第１アクノリッジ信号を付与して、前記第１アクノリッジ信号に応答して前記第１プロセッサは前記第１ローカルバスと前記第１バスブリッジと前記第１システムバスと前記第２バスインターフェースユニットの前記第１ポートと前記第３ポートとを介して前記第２ローカルメモリをアクセスして、
前記第２プロセッサが前記第１ローカルメモリへのアクセスを要求する第２リクエスト信号を前記第２ローカルバスと前記第２バスブリッジと前記第２システムバスとを介して前記第１バスインターフェースユニットの前記第２ポートに供給して、前記第１バスインターフェースユニットが前記第２リクエスト信号を受領すると、前記第１バスインターフェースユニットは前記第２プロセッサによる前記第１ローカルメモリへのアクセスを許可する第２アクノリッジ信号を付与して、前記第２アクノリッジ信号に応答して前記第２プロセッサは前記第２ローカルバスと前記第２バスブリッジと前記第２システムバスと前記第１バスインターフェースユニットの前記第２ポートと前記第３ポートとを介して前記第１ローカルメモリをアクセスするデータ処理装置。
【請求項２】
前記第１プロセッサが前記第２ローカルメモリへの排他的アクセスを要求する第１排他アクセス要求信号を前記第１ローカルバスと前記第１バスブリッジと前記第１システムバスとを介して前記第２バスインターフェースユニットの前記第１ポートに供給して、前記第２バスインターフェースユニットが前記第１排他アクセス要求信号を受領すると、前記第２バスインターフェースユニットは前記第１プロセッサによる前記第２ローカルメモリへのアクセスを許可する前記第１アクノリッジ信号を付与して、前記第１アクノリッジ信号に応答して前記第１プロセッサは前記第１ローカルバスと前記第１バスブリッジと前記第１システムバスと前記第２バスインターフェースユニットの前記第１ポートと前記第３ポートとを介して前記第２ローカルメモリを排他的にアクセスして、
前記第２プロセッサが前記第１ローカルメモリへの排他的アクセスを要求する第２排他アクセス要求信号を前記第２ローカルバスと前記第２バスブリッジと前記第２システムバスとを介して前記第１バスインターフェースユニットの前記第２ポートに供給して、前記第１バスインターフェースユニットが前記第２排他アクセス要求信号を受領すると、前記第１バスインターフェースユニットは前記第２プロセッサによる前記第１ローカルメモリへのアクセスを許可する前記第２アクノリッジ信号を付与して、前記第２アクノリッジ信号に応答して前記第２プロセッサは前記第２ローカルバスと前記第２バスブリッジと前記第２システムバスと前記第１バスインターフェースユニットの前記第２ポートと前記第３ポートとを介して前記第１ローカルメモリを排他的にアクセスする請求項１に記載のデータ処理装置。
【請求項３】
前記第１プロセッサと前記第２プロセッサとが共有リソースをスピンロック方式で排他的にアクセスするための第１ローカル変数が前記第１ローカルメモリに格納され、
前記第１プロセッサと前記第２プロセッサとが前記共有リソースをスピンロック方式で排他的にアクセスするための第２ローカル変数が前記第２ローカルメモリに格納され、
前記第１ローカルメモリの前記第１ローカル変数は前記第１プロセッサと前記第２プロセッサとのいずれかにより排他的にアクセスされ、前記第２ローカルメモリの前記第２ローカル変数は前記第１プロセッサと前記第２プロセッサとのいずれかにより排他的にアクセスされる請求項２に記載のデータ処理装置。
【請求項４】
外部デバイスと接続可能な外部インターフェースユニットを更に具備して、
前記外部インターフェースユニットは、前記第１システムバスと前記第２システムバスとに接続され、
前記第１プロセッサと前記第２プロセッサとのいずれかは前記第１ローカルメモリに格納された前記第１ローカル変数と前記第２ローカルメモリに格納された前記第２ローカル変数とのいずれかを用いて前記外部インターフェースユニットを介して前記外部デバイスを排他的にアクセスする請求項３に記載のデータ処理装置。
【請求項５】
前記第１ローカルメモリは、前記第１プロセッサのみによってアクセス可能な第１非共有領域と、前記第１プロセッサと前記第２プロセッサとによってアクセス可能な第１共有領域とを含み、
前記第２ローカルメモリは、前記第２プロセッサのみによってアクセス可能な第２非共有領域と、前記第１プロセッサと前記第２プロセッサとによってアクセス可能な第２共有領域とを含む請求項１から請求項４のいずれかに記載のデータ処理装置。
【請求項６】
前記第１プロセッサによる前記第１ローカルメモリの前記第１非共有領域へのアクセスと前記第２プロセッサによる前記第２ローカルメモリの前記第２非共有領域へのアクセスとの並列実行が可能である請求項５に記載のデータ処理装置。
【請求項７】
前記第１ローカルメモリの前記第１共有領域と前記第２ローカルメモリの前記第２共有領域とはデータ処理装置の内蔵共有メモリとして動作する請求項５に記載のデータ処理装置。
【請求項８】
前記第１ローカルメモリの前記第１非共有領域および前記第１共有領域と前記第２ローカルメモリの前記第２非共有領域および前記第２共有領域とは、前記第１プロセッサおよび前記第２プロセッサからのアドレス信号によって指定される請求項５から請求項７のいずれかに記載のデータ処理装置。
【請求項９】
第１プロセッサと、第２プロセッサと、第１ローカルメモリと、第２ローカルメモリと、第１ローカルバスと、第２ローカルバスと、第１バスブリッジと、第２バスブリッジと、第１システムバスと第２システムバスとを含むシステムバスと、第１バスインターフェースユニットと、第２バスインターフェースユニットとを具備して、
前記第１プロセッサには前記第１ローカルバスが接続され、前記第２プロセッサには前記第２ローカルバスが接続され、
前記第１バスブリッジは前記第１ローカルバスと前記第１システムバス及び前記第２システムバスとの間に接続され、前記第２バスブリッジは前記第２ローカルバスと前記第１システムバス及び前記第２システムバスとの間に接続され、
前記第１バスインターフェースユニットの第１ポートと第２ポートと第３ポートとは前記第１ローカルバスと前記第２システムバスと前記第１ローカルメモリにそれぞれ接続され、前記第２バスインターフェースユニットの第１ポートと第２ポートと第３ポートとは前記第２ローカルバスと前記第１システムバスと前記第２ローカルメモリとにそれぞれ接続され、
前記第１プロセッサがアクセスを要求する第１リクエスト信号を前記第１ローカルバスを介して前記第１バスインターフェースユニットの前記第１ポートに供給して、前記第１バスインターフェースユニットが前記第１リクエスト信号を受領すると、前記第１バスインターフェースユニットは前記第１プロセッサによる前記アクセスを許可する第１アクノリッジ信号を付与して、前記第１アクノリッジ信号に応答して前記第１プロセッサは前記第１ローカルバスと前記第１バスインターフェースユニットの前記第１ポートと前記第３ポートとを介して前記第１ローカルメモリをアクセスして、
前記第１プロセッサが前記アクセスを要求する前記第１リクエスト信号を前記第１ローカルバスと前記第１バスブリッジと前記第１システムバスとを介して前記第２バスインターフェースユニットの前記第１ポートに供給して、前記第２バスインターフェースユニットが前記第１リクエスト信号を受領すると、前記第２バスインターフェースユニットは前記第１プロセッサによる前記アクセスを許可する前記第１アクノリッジ信号を付与して、前記第１アクノリッジ信号に応答して前記第１プロセッサは前記第１ローカルバスと前記第１バスブリッジと前記第１システムバスと前記第２バスインターフェースユニットの前記第１ポートと前記第３ポートとを介して前記第２ローカルメモリをアクセスして、
前記第２プロセッサがアクセスを要求する第２リクエスト信号を前記第２ローカルバスを介して前記第２バスインターフェースユニットの前記第２ポートに供給して、前記第２バスインターフェースユニットが前記第２リクエスト信号を受領すると、前記第２バスインターフェースユニットは前記第２プロセッサによる前記アクセスを許可する第２アクノリッジ信号を付与して、前記第２アクノリッジ信号に応答して前記第２プロセッサは前記第２ローカルバスと前記第２バスインターフェースユニットの前記第２ポートと前記第３ポートとを介して前記第２ローカルメモリをアクセスして、
前記第２プロセッサが前記アクセスを要求する前記第２リクエスト信号を前記第２ローカルバスと前記第２バスブリッジと前記第２システムバスとを介して前記第１バスインターフェースユニットの前記第２ポートに供給して、前記第１バスインターフェースユニットが前記第２リクエスト信号を受領すると、前記第１バスインターフェースユニットは前記第２プロセッサによる前記アクセスを許可する前記第２アクノリッジ信号を付与して、前記第２アクノリッジ信号に応答して前記第２プロセッサは前記第２ローカルバスと前記第２バスブリッジと前記第２システムバスと前記第１バスインターフェースユニットの前記第２ポートと前記第３ポートとを介して前記第１ローカルメモリをアクセスするデータ処理装置。
【請求項１０】
前記第１プロセッサが前記第２ローカルメモリへの排他的アクセスを要求する第１排他アクセス要求信号を前記第１ローカルバスと前記第１バスブリッジと前記第１システムバスとを介して前記第２バスインターフェースユニットの前記第１ポートに供給して、前記第２バスインターフェースユニットが前記第１排他アクセス要求信号を受領すると、前記第２バスインターフェースユニットは前記第１プロセッサによる前記第２ローカルメモリへのアクセスを許可する前記第１アクノリッジ信号を付与して、前記第１アクノリッジ信号に応答して前記第１プロセッサは前記第１ローカルバスと前記第１バスブリッジと前記第１システムバスと前記第２バスインターフェースユニットの前記第１ポートと前記第３ポートとを介して前記第２ローカルメモリを排他的にアクセスして、
前記第２プロセッサが前記第１ローカルメモリへの排他的アクセスを要求する第２排他アクセス要求信号を前記第２ローカルバスと前記第２バスブリッジと前記第２システムバスとを介して前記第１バスインターフェースユニットの前記第２ポートに供給して、前記第１バスインターフェースユニットが前記第２排他アクセス要求信号を受領すると、前記第１バスインターフェースユニットは前記第２プロセッサによる前記第１ローカルメモリへのアクセスを許可する前記第２アクノリッジ信号を付与して、前記第２アクノリッジ信号に応答して前記第２プロセッサは前記第２ローカルバスと前記第２バスブリッジと前記第２システムバスと前記第１バスインターフェースユニットの前記第２ポートと前記第３ポートとを介して前記第１ローカルメモリを排他的にアクセスする請求項９に記載のデータ処理装置。
【請求項１１】
前記第１プロセッサと前記第２プロセッサとが共有リソースをスピンロック方式で排他的にアクセスするための第１ローカル変数が前記第１ローカルメモリに格納され、
前記第１プロセッサと前記第２プロセッサとが前記共有リソースをスピンロック方式で排他的にアクセスするための第２ローカル変数が前記第２ローカルメモリに格納され、
前記第１ローカルメモリの前記第１ローカル変数は前記第１プロセッサと前記第２プロセッサとのいずれかにより排他的にアクセスされ、前記第２ローカルメモリの前記第２ローカル変数は前記第１プロセッサと前記第２プロセッサとのいずれかにより排他的にアクセスされる請求項９に記載のデータ処理装置。
【請求項１２】
外部デバイスと接続可能な外部インターフェースユニットを更に具備して、
前記外部インターフェースユニットは、前記第１システムバスと前記第２システムバスとに接続され、
前記第１プロセッサと前記第２プロセッサとのいずれかは前記第１ローカルメモリに格納された前記第１ローカル変数と前記第２ローカルメモリに格納された前記第２ローカル変数とのいずれかを用いて前記外部インターフェースユニットを介して前記外部デバイスを排他的にアクセスする請求項１１に記載のデータ処理装置。
【請求項１３】
前記第１ローカルメモリは第１バンクと第２バンクとを含み、前記第２ローカルメモリは第３バンクと第４バンクとを含み、
前記第１バスインターフェースユニットの第１ポートと第２ポートと第３ポートと第４ポートとは前記第１ローカルバスと前記第２システムバスと前記第１ローカルメモリの前記第１バンクと前記第１ローカルメモリの前記第２バンクにそれぞれ接続され、前記第２バスインターフェースユニットの第１ポートと第２ポートと第３ポートと第４ポートとは前記第１システムバスと前記第２ローカルバスと前記第２ローカルメモリの前記第３バンクと前記第２ローカルメモリの前記第４バンクとにそれぞれ接続され、
前記第１プロセッサが前記アクセスを要求する前記第１リクエスト信号を前記第１ローカルバスを介して前記第１バスインターフェースユニットの前記第１ポートに供給して、前記第１バスインターフェースユニットが前記第１リクエスト信号を受領すると、前記第１バスインターフェースユニットは前記第１プロセッサによる前記アクセスを許可する前記第１アクノリッジ信号を付与して、前記第１アクノリッジ信号に応答して前記第１プロセッサは前記第１ローカルバスと前記第１バスインターフェースユニットの前記第１ポートと前記第３ポートとを介して前記第１ローカルメモリの前記第１バンクをアクセスして、
前記第１プロセッサが前記アクセスを要求する前記第１リクエスト信号を前記第１ローカルバスと前記第１バスブリッジと前記第２システムバスとを介して前記第１バスインターフェースユニットの前記第２ポートに供給して、前記第１バスインターフェースユニットが前記第１リクエスト信号を受領すると、前記第１バスインターフェースユニットは前記第１プロセッサによる前記アクセスを許可する前記第１アクノリッジ信号を付与して、前記第１アクノリッジ信号に応答して前記第１プロセッサは前記第１ローカルバスと前記第１バスブリッジと前記第２システムバスと前記第１バスインターフェースユニットの前記第２ポートと前記第４ポートとを介して前記第１ローカルメモリの前記第２バンクをアクセスして、
前記第１プロセッサが前記アクセスを要求する前記第１リクエスト信号を前記第１ローカルバスと前記第１バスブリッジと前記第１システムバスとを介して前記第２バスインターフェースユニットの前記第１ポートに供給して、前記第２バスインターフェースユニットが前記第１リクエスト信号を受領すると、前記第２バスインターフェースユニットは前記第１プロセッサによる前記アクセスを許可する前記第１アクノリッジ信号を付与して、前記第１アクノリッジ信号に応答して前記第１プロセッサは前記第１ローカルバスと前記第１バスブリッジと前記第１システムバスと前記第２バスインターフェースユニットの前記第１ポートと前記第４ポートとを介して前記第２ローカルメモリの前記第４バンクをアクセスして、
前記第２プロセッサが前記アクセスを要求する前記第２リクエスト信号を前記第２ローカルバスを介して前記第２バスインターフェースユニットの前記第２ポートに供給して、前記第２バスインターフェースユニットが前記第２リクエスト信号を受領すると、前記第２バスインターフェースユニットは前記第２プロセッサによる前記アクセスを許可する前記第２アクノリッジ信号を付与して、前記第２アクノリッジ信号に応答して前記第２プロセッサは前記第２ローカルバスと前記第２バスインターフェースユニットの前記第１ポートと前記第３ポートとを介して前記第２ローカルメモリの前記第３バンクをアクセスして、
前記第２プロセッサが前記アクセスを要求する前記第２リクエスト信号を前記第２ローカルバスと前記第２バスブリッジと前記第２システムバスとを介して前記第１バスインターフェースユニットの前記第２ポートに供給して、前記第１バスインターフェースユニットが前記第２リクエスト信号を受領すると、前記第１バスインターフェースユニットは前記第２プロセッサによる前記アクセスを許可する前記第２アクノリッジ信号を付与して、前記第２アクノリッジ信号に応答して前記第２プロセッサは前記第２ローカルバスと前記第２バスブリッジと前記第２システムバスと前記第１バスインターフェースユニットの前記第２ポートと前記第４ポートとを介して前記第１ローカルメモリの前記第２バンクをアクセスして、
前記第２プロセッサが前記アクセスを要求する前記第２リクエスト信号を前記第２ローカルバスと前記第２バスブリッジと前記第１システムバスとを介して前記第２バスインターフェースユニットの前記第１ポートに供給して、前記第２バスインターフェースユニットが前記第２リクエスト信号を受領すると、前記第２バスインターフェースユニットは前記第２プロセッサによる前記アクセスを許可する前記第２アクノリッジ信号を付与して、前記第２アクノリッジ信号に応答して前記第２プロセッサは前記第２ローカルバスと前記第２バスブリッジと前記第１システムバスと前記第２バスインターフェースユニットの前記第１ポートと前記第４ポートとを介して前記第２ローカルメモリの前記第４バンクをアクセスする請求項９から請求項１２のいずれかに記載のデータ処理装置。
【請求項１４】
前記第１ローカルメモリは、前記第１プロセッサのみによってアクセス可能な第１非共有領域と、前記第１プロセッサと前記第２プロセッサとによってアクセス可能な第１共有領域とを含み、
前記第２ローカルメモリは、前記第２プロセッサのみによってアクセス可能な第２非共有領域と、前記第１プロセッサと前記第２プロセッサとによってアクセス可能な第２共有領域とを含む請求項９から請求項１２のいずれかに記載のデータ処理装置。
【請求項１５】
前記第１プロセッサによる前記第１ローカルメモリの前記第１非共有領域へのアクセスと前記第２プロセッサによる前記第２ローカルメモリの前記第２非共有領域へのアクセスとの並列実行が可能である請求項１４に記載のデータ処理装置。
【請求項１６】
前記第１ローカルメモリの前記第１共有領域と前記第２ローカルメモリの前記第２共有領域とはデータ処理装置の内蔵共有メモリとして動作する請求項１４に記載のデータ処理装置。
【請求項１７】
前記第１ローカルメモリの前記第１非共有領域および前記第１共有領域と前記第２ローカルメモリの前記第２非共有領域および前記第２共有領域とは、前記第１プロセッサおよび前記第２プロセッサからのアドレス信号によって指定される請求項１４から請求項１６のいずれかに記載のデータ処理装置
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを有するデータ処理装置に関し、特に複数のプロセッサが共有して使用する共有メモリ等の共有リソースのアクセスを容易とするとともにそれぞれのプロセッサのローカルメモリを排他的にアクセスするのに有益な技術に関する。
【背景技術】
【０００２】
下記非特許文献１には、それぞれローカルメモリを有する複数のプロセッサがトランザクターと呼ばれるバスブリッジを介してグローバルバスに接続されたマルチプロセッサアーキテクチャーが記載されている。グローバルバスにはグローバルメモリが接続され、グローバルバスと複数のバスブリッジとにはセントラルアービターが接続されている。セントラルアービターが、グローバルバス上のトランザクションを監視する。１つのマルチプロセッサが書き込みトランザクションを終了すると、セントラルアービターは処理順序で次のプロセッサのバスブリッジに読み出しトランザクションの生成を要求する。バスブリッジが読み出しトランザクションの要求を獲得した後、対応するプロセッサに割り込みを行い、ローカルメモリアドレスを獲得してグローバルメモリのデータをローカルメモリに格納する。
【０００３】
一方、従来よりマルチプロセッサの共有メモリを排他的にアクセスする方法として、スピンロック方式が知られている。スピンロック方式では、マルチプロセッサの一方のプロセッサが共有メモリをアクセスする前に共有メモリが使用可能かをロック変数から判断する。共有メモリが使用可能であれば、一方のプロセッサはロック変数を使用可能状態（例えば、“０”レベル）から使用状態（例えば、“１”レベル）に書き換えて、共有メモリを排他的にアクセスする。共有メモリのアクセスが完了すると、一方のプロセッサはロック変数を使用状態（例えば、“１”レベル）から使用可能状態（例えば、“０”レベル）に書き換える。スピンロック方式は、例えば、下記の非特許文献２に記載されている。
【０００４】
一方、ラウンドロビン方式では、前記スピンロック方式とは異なり、時分割マルチプレックススケジューリングによって複数のバスマスターにバスでの実行時間が順番にまた均等な複数の時間スロットが分割される。ラウンドロビン方式は、例えば、下記の非特許文献３に記載されている。
【０００５】
【非特許文献１】Ｊｉｎ  Ｌｅｅ  ｅｔ  ａｌ，“Ｏｒｔｈｏｇｏｎａｌｉｚｅｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  ＭＰ−ＳｏＣ  ｗｉｔｈ  Ｇｌｏｂａｌ  Ｂｕｓ”，  ２００５  Ｐｒｏｃｅｅｄｉｎｇｓ  Ｆｉｆｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｓｙｓｔｅｍ−ｏｎ−Ｃｈｉｐ  ｆｏｒ  Ｒｅａｌ−Ｔｉｍｅ−Ａｐｐｌｉｃａｔｉｏｎｓ，  ２０−２４  Ｊｕｌｙ  ２００５  ＰＰ．５４１−５４５．
【非特許文献２】ＴＨＯＭＡＳ  Ｅ．  ＡＮＤＥＲＳＯＮ，  “Ｔｈｅ  Ｐｅｒｆｏｒｍａｎｃｅ  ｏｆ  Ｓｐｉｎ  Ｌｏｃｋ  Ａｌｔｅｒｎａｔｉｖｅｓ  ｆｏｒ  Ｓｈａｒｅｄ−Ｍｅｍｏｒｙ  Ｍｕｌｔｉｐｒｏｃｅｓｓｏｒｓ”，  ＩＥＥＥ  ＴＲＡＮＳＡＣＴＩＯＮＳ  ＯＮ  ＰＡＲＡＬＬＥＬ  ＡＮＤ  ＤＩＳＴＲＩＢＵＴＥＤ  ＳＹＳＴＥＭＳ，  ＶＯＬ．１，ＮＯ．１，ＪＡＮＵＡＲＹ  １９９０，  ＰＰ．６−１６．
【非特許文献３】Ｃｈａｎｇ  Ｈｅｅ  Ｐｙｏｕｎ  ｅｔ  ａｌ，  “ＴＨＥ  ＥＦＦＩＣＥＮＴ  ＢＵＳ  ＡＲＢＩＴＲＡＴＩＯＮ  ＳＣＨＥＭＥ  ＩＮ  ＳＯＣ  ＥＮＶＩＲＯＮＭＥＮＴ“，  ２００３  Ｐｒｏｃｅｅｄｉｎｇｓ  Ｔｈｅ  ３ｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｓｙｓｔｅｍ−ｏｎ−Ｃｈｉｐ  ｆｏｒ  Ｒｅａｌ−Ｔｉｍｅ−Ａｐｐｌｉｃａｔｉｏｎｓ，  ３０  Ｊｕｎｅ  −２  Ｊｕｌｙ  ２００３  ＰＰ．３１１−３１５．
【発明の開示】
【発明が解決しようとする課題】
【０００６】
マルチタスク環境での近年のパーフォーマンスの増大に対応するために、上記のようにプロセッサを複数備えたマルチプロセッサ・アーキテクチャーのデータ処理装置が知られている。
【０００７】
マルチプロセッサ・アーキテクチャーにおいては、一方のプロセッサでの処理と他方のプロセッサでの処理とがそれぞれのプロセッサのレジスタファイルを使用することで実行可能で、２つの処理の実行のために内蔵ＲＡＭ、外部のメインメモリ、入出力装置、周辺装置の共有ハードウェアリソースの使用の競合が発生せずに２つの処理が独立であれば、２つの処理は並列に実行可能である。しかし、共有ハードウェアリソースの使用の競合が発生する場合には、２つの処理は並列に実行不可能となる。
【０００８】
一方、本発明に先立って本発明者等は、マルチプロセッサ・アーキテクチャーの一方のプロセッサによる処理結果を他方のプロセッサの処理に使用する連携処理を行うマイクロコントローラの開発に従事した。
【０００９】
この２つプロセッサ間の連携を行うに際して、一方のプロセッサによる処理結果を共有メモリに格納した後、他方のプロセッサが共有メモリをアクセスするのが最も単純な方法である。しかし、プロセッサとローカルメモリが接続されたローカルバス（ＣＰＵバス）と比較すると、共有メモリが接続されたシステムバスは低速度であるので、前記アクセス方法は低速度であることが本発明者等の検討により明らかとされた。
【００１０】
本発明は本発明に先立って本発明者等によって行われた上記のような検討の結果を基にしてなされたものであり、その目的とするところは、マルチプロセッサ・アーキテクチャーのデータ処理装置において、２つプロセッサ間の連携を行うに際に一方のローカルメモリを一方のプロセッサが高速アクセスできるとともに、他方のプロセッサからもアクセス可能とすることにある。
【００１１】
このように、一方のローカルメモリが他方のプロセッサからもアクセス可能となることにより、共有メモリだけでなくローカルメモリも共有ハードウェアリソースとなることにより、ローカルメモリの排他的アクセスを行うことが必要となることも本発明者等の検討により明らかとされた。
【００１２】
従って本発明の他の目的は、マルチプロセッサ・アーキテクチャーのデータ処理装置において、ローカルメモリの排他的アクセスを可能とすることにある。
【００１３】
また、ローカルメモリ、共有メモリ、周辺装置等の共有リソースの排他的アクセスを行う際には、スピンロック方式を実現するロック変数を低速度のシステムバスに接続された共有メモリに格納するのが最も単純な方法である。しかし、ロック変数の前記格納方法は低速度であることが、本発明者等の検討により明らかとされた。
【００１４】
従って本発明の更に他の目的は、マルチプロセッサ・アーキテクチャーのデータ処理装置において、ロック変数の高速な格納と高速の読み出しを可能とすることにある。
【００１５】
本発明の前記並びにその他の目的と新規な特徴とは、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１６】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記の通りである。
【００１７】
すなわち、本発明のひとつの形態によるデータ処理装置は、第１プロセッサ（１）と、第２プロセッサ（２）と、第１ローカルメモリ（１０１）と、第２ローカルメモリ（２０１）と、第１ローカルバス（１０２）と、第２ローカルバス（２０２）と、第１バスブリッジ（１０３）と、第２バスブリッジ（２０３）と、第１システムバス（１０５）と第２システムバス（２０５）とを含むシステムバス（ＳＢ）と、第１バスインターフェースユニット（３）と、第２バスインターフェースユニット（５）とを具備する。
【００１８】
前記第１プロセッサ（１）には前記第１ローカルバス（１０２）を介して前記第１ローカルメモリ（１０１）が接続され、前記第２プロセッサ（２）には前記第２ローカルバス（２０２）を介して前記第２ローカルメモリ（２０１）が接続される。前記第１バスブリッジ（１０３）の一方のポートと他方のポートとは前記第１ローカルバス（１０２）と前記第１システムバス（１０５）とにそれぞれ接続され、前記第２バスブリッジ（２０３）の一方のポートと他方のポートとは前記第２ローカルバス（２０２）と前記第２システムバス（２０５）とにそれぞれ接続される。
【００１９】
前記第１バスインターフェースユニット（３）の第１ポート（Ｐ１）と第２ポート（Ｐ２）と第３ポート（Ｐ３）は前記第１システムバス（１０５）と前記第２システムバス（２０５）と前記第１ローカルメモリ（１０１）とにそれぞれ接続され、前記第２バスインターフェースユニット（５）の第１ポート（Ｐ１）と第２ポート（Ｐ２）と第３ポート（Ｐ３）は前記第１システムバス（１０５）と前記第２システムバス（２０５）と前記第２ローカルメモリ（２０１）とにそれぞれ接続される。
【００２０】
前記第１プロセッサ（１）が前記第２ローカルメモリ（２０１）へのアクセスを要求する第１リクエスト信号（ｒｅｑ１）を前記第１ローカルバス（１０２）と前記第１バスブリッジ（１０３）と前記第１システムバス（１０５）とを介して前記第２バスインターフェースユニット（５）の前記第１ポート（Ｐ１）に供給する。前記第２バスインターフェースユニット（５）が前記第１リクエスト信号（ｒｅｑ１）を受領すると、前記第２バスインターフェースユニット（５）は前記第１プロセッサ（１）による前記第２ローカルメモリ（２０１）へのアクセスを許可する第１アクノリッジ信号（ａｃｋ１）を付与する。前記第１アクノリッジ信号（ａｃｋ１）に応答して前記第１プロセッサ（１）は前記第１ローカルバス（１０２）と前記第１バスブリッジ（１０３）と前記第１システムバス（１０５）と前記第２バスインターフェースユニット（５）の前記第１ポート（Ｐ１）と前記第３ポート（Ｐ３）とを介して前記第２ローカルメモリ（２０１）をアクセスする。
【００２１】
前記第２プロセッサ（２）が前記第１ローカルメモリ（１０１）へのアクセスを要求する第２リクエスト信号（ｒｅｑ２）を前記第２ローカルバス（２０２）と前記第２バスブリッジ（２０３）と前記第２システムバス（２０５）とを介して前記第１バスインターフェースユニット（３）の前記第２ポート（Ｐ２）に供給する。前記第１バスインターフェースユニット（３）が前記第２リクエスト信号（ｒｅｑ２）を受領すると、前記第１バスインターフェースユニット（３）は前記第２プロセッサ（２）による前記第１ローカルメモリ（１０１）へのアクセスを許可する第２アクノリッジ信号（ａｃｋ２）を付与する。前記第２アクノリッジ信号（ａｃｋ２）に応答して前記第２プロセッサ（２）は前記第２ローカルバス（２０２）と前記第２バスブリッジ（２０３）と前記第２システムバス（２０５）と前記第１バスインターフェースユニット（３）の前記第２ポート（Ｐ２）と前記第３ポート（Ｐ３）とを介して前記第１ローカルメモリ（１０１）をアクセスする（図１参照）。
【００２２】
本発明の前記ひとつの形態による手段によれば、マルチプロセッサ・アーキテクチャーのデータ処理装置において、２つプロセッサ間の連携を行うに際に一方のローカルメモリを一方のプロセッサが高速アクセスできるとともに、他方のプロセッサからもアクセス可能となる。
【００２３】
本発明のひとつの好適な形態によるデータ処理装置では、前記第１プロセッサ（１）が前記第２ローカルメモリ（２０１）への排他的アクセスを要求する第１排他アクセス要求信号（ｋｅｅｐ１）を前記第１ローカルバス（１０２）と前記第１バスブリッジ（１０３）と前記第１システムバス（１０５）とを介して前記第２バスインターフェースユニット（５）の前記第１ポート（Ｐ１）に供給する。前記第２バスインターフェースユニット（５）が前記第１排他アクセス要求信号（ｋｅｅｐ１）を受領すると、前記第２バスインターフェースユニット（５）は前記第１プロセッサ（１）による前記第２ローカルメモリ（２０１）へのアクセスを許可する前記第１アクノリッジ信号（ａｃｋ１）を付与する。前記第１アクノリッジ信号（ａｃｋ１）に応答して前記第１プロセッサ（１）は前記第１ローカルバス（１０２）と前記第１バスブリッジ（１０３）と前記第１システムバス（１０５）と前記第２バスインターフェースユニット（５）の前記第１ポート（Ｐ１）と前記第３ポート（Ｐ３）とを介して前記第２ローカルメモリ（２０１）を排他的にアクセスする。前記第２プロセッサ（２）が前記第１ローカルメモリ（１０１）への排他的アクセスを要求する第２排他アクセス要求信号（ｋｅｅｐ２）を前記第２ローカルバス（２０２）と前記第２バスブリッジ（２０３）と前記第２システムバス（２０５）とを介して前記第１バスインターフェースユニット（３）の前記第２ポート（Ｐ２）に供給する。前記第１バスインターフェースユニット（３）が前記第２排他アクセス要求信号（ｋｅｅｐ２）を受領すると、前記第１バスインターフェースユニット（３）は前記第２プロセッサ（２）による前記第１ローカルメモリ（１０１）へのアクセスを許可する前記第２アクノリッジ信号（ａｃｋ２）を付与する。前記第２アクノリッジ信号（ａｃｋ２）に応答して前記第２プロセッサ（２）は前記第２ローカルバス（２０２）と前記第２バスブリッジ（２０３）と前記第２システムバス（２０５）と前記第１バスインターフェースユニット（３）の前記第２ポート（Ｐ２）と前記第３ポート（Ｐ３）とを介して前記第１ローカルメモリ（１０１）を排他的にアクセスする（図１参照）。
【００２４】
本発明の前記ひとつの好適な形態による手段によれば、マルチプロセッサ・アーキテクチャーのデータ処理装置において、ローカルメモリの排他的アクセスが可能となる。
【００２５】
本発明の更に好適な形態によるデータ処理装置では、前記第１プロセッサ（１）と前記第２プロセッサ（２）とが共有リソースをスピンロック方式で排他的にアクセスするための第１ローカル変数（１０１＿ＬＶ）が前記第１ローカルメモリ（１０１）に格納され、前記第１プロセッサ（１）と前記第２プロセッサ（２）とが前記共有リソースをスピンロック方式で排他的にアクセスするための第２ローカル変数（２０１＿ＬＶ）が前記第２ローカルメモリ（２０１）に格納され、前記第１ローカルメモリ（１０１）の前記第１ローカル変数（１０１＿ＬＶ）は前記第１プロセッサ（１）と前記第２プロセッサ（２）とのいずれかにより排他的にアクセスされ、前記第２ローカルメモリ（２０１）の前記第２ローカル変数（２０１＿ＬＶ）は前記第１プロセッサ（１）と前記第２プロセッサ（２）とのいずれかにより排他的にアクセスされる（図１参照）。
【００２６】
本発明の前記更に好適な形態による手段によれば、ロック変数の高速な格納と高速の読み出しが可能となる。
【００２７】
本発明の更に好適な形態によるデータ処理装置は、外部デバイス（４０２、７０２）と接続可能な外部インターフェースユニット（４、７）を更に具備する。前記外部インターフェースユニット（４、７）は、前記第１システムバス（１０５）と前記第２システムバス（２０５）とに接続される。前記第１プロセッサ（１）と前記第２プロセッサ（２）とのいずれかは前記第１ローカルメモリ（１０１）に格納された前記第１ローカル変数（１０１＿ＬＶ）と前記第２ローカルメモリ（２０１）に格納された前記第２ローカル変数（２０１＿ＬＶ）とのいずれかを用いて前記外部インターフェースユニット（４、７）を介して前記外部デバイス（４０２、７０２）を排他的にアクセスする（図１参照）。
【００２８】
本発明の更に好適な形態によるデータ処理装置では、前記第１ローカルメモリ（１０１）は、前記第１プロセッサ（１）のみによってアクセス可能な第１非共有領域と、前記第１プロセッサ（１）と前記第２プロセッサ（２）とによってアクセス可能な第１共有領域とを含み、前記第２ローカルメモリ（２０１）は、前記第２プロセッサ（２）のみによってアクセス可能な第２非共有領域と、前記第１プロセッサ（１）と前記第２プロセッサ（２）とによってアクセス可能な第２共有領域とを含むものである（図２参照）。
【００２９】
本発明の更に好適な形態によるデータ処理装置では、前記第１プロセッサ（１）による前記第１ローカルメモリ（１０１）の前記第１非共有領域へのアクセスと前記第２プロセッサ（２）による前記第２ローカルメモリ（２０１）の前記第２非共有領域へのアクセスとの並列実行が可能である（図１参照）。
【００３０】
本発明の更に好適な形態によるデータ処理装置では、前記第１ローカルメモリ（１０１）の前記第１共有領域と前記第２ローカルメモリ（２０１）の前記第２共有領域とはデータ処理装置の内蔵共有メモリとして動作する（図１参照）。
【００３１】
本発明の更に好適な形態によるデータ処理装置では、前記第１ローカルメモリ（１０１）の前記第１非共有領域および前記第１共有領域と前記第２ローカルメモリ（２０１）の前記第２非共有領域および前記第２共有領域とは、前記第１プロセッサ（１）および前記第２プロセッサ（２）からのアドレス信号によって指定される（図２参照）。
【００３２】
また、本発明の他のひとつの形態によるデータ処理装置は、第１プロセッサ（１）と、第２プロセッサ（２）と、第１ローカルメモリ（１０１）と、第２ローカルメモリ（２０１）と、第１ローカルバス（１０２）と、第２ローカルバス（２０２）と、第１バスブリッジ（１０３）と、第２バスブリッジ（２０３）と、第１システムバス（１０５）と第２システムバス（２０５）とを含むシステムバス（ＳＢ）と、第１バスインターフェースユニット（３）と、第２バスインターフェースユニット（５）とを具備する。
【００３３】
前記第１プロセッサ（１）には前記第１ローカルバス（１０２）が接続され、前記第２プロセッサ（２）には前記第２ローカルバス（２０２）が接続される。前記第１バスブリッジ（１０３）は前記第１ローカルバス（１０２）と前記第１システムバス（１０５）及び前記第２システムバス（２０５）との間に接続され、前記第２バスブリッジ（２０３）は前記第２ローカルバス（２０２）と前記第１システムバス（１０５）及び前記第２システムバス（２０５）との間に接続される。
【００３４】
前記第１バスインターフェースユニット（３）の第１ポート（Ｐ１）と第２ポート（Ｐ２）と第３ポート（Ｐ３）とは前記第１ローカルバス（１０２）と前記第２システムバス（２０５）と前記第１ローカルメモリ（１０１）にそれぞれ接続され、前記第２バスインターフェースユニット（５）の第１ポート（Ｐ１）と第２ポート（Ｐ２）と第３ポート（Ｐ３）とは前記第２ローカルバス（２０２）と前記第１システムバス（１０５）と前記第２ローカルメモリ（２０１）とにそれぞれ接続される。
【００３５】
前記第１プロセッサ（１）がアクセスを要求する第１リクエスト信号（ｒｅｑ１）を前記第１ローカルバス（１０２）を介して前記第１バスインターフェースユニット（３）の前記第１ポート（Ｐ１）に供給する。前記第１バスインターフェースユニット（３）が前記第１リクエスト信号（ｒｅｑ１）を受領すると、前記第１バスインターフェースユニット（３）は前記第１プロセッサ（１）による前記アクセスを許可する第１アクノリッジ信号（ａｃｋ１）を付与する。前記第１アクノリッジ信号（ａｃｋ１）に応答して前記第１プロセッサ（１）は前記第１ローカルバス（１０２）と前記第１バスインターフェースユニット（３）の前記第１ポート（Ｐ１）と前記第３ポート（Ｐ３）とを介して前記第１ローカルメモリ（１０１）をアクセスする。
【００３６】
前記第１プロセッサ（１）が前記アクセスを要求する前記第１リクエスト信号（ｒｅｑ１）を前記第１ローカルバス（１０２）と前記第１バスブリッジ（１０３）と前記第１システムバス（１０５）とを介して前記第２バスインターフェースユニット（５）の前記第１ポート（Ｐ１）に供給する。前記第２バスインターフェースユニット（５）が前記第１リクエスト信号（ｒｅｑ１）を受領すると、前記第２バスインターフェースユニット（５）は前記第１プロセッサ（１）による前記アクセスを許可する前記第１アクノリッジ信号（ａｃｋ１）を付与する。前記第１アクノリッジ信号（ａｃｋ１）に応答して前記第１プロセッサ（１）は前記第１ローカルバス（１０２）と前記第１バスブリッジ（１０３）と前記第１システムバス（１０５）と前記第２バスインターフェースユニット（５）の前記第１ポート（Ｐ１）と前記第３ポート（Ｐ３）とを介して前記第２ローカルメモリ（２０１）をアクセスする。
【００３７】
前記第２プロセッサ（２）がアクセスを要求する第２リクエスト信号（ｒｅｑ２）を前記第２ローカルバス（２０２）を介して前記第２バスインターフェースユニット（５）の前記第２ポート（Ｐ２）に供給する。前記第２バスインターフェースユニット（５）が前記第２リクエスト信号（ｒｅｑ２）を受領すると、前記第２バスインターフェースユニット（５）は前記第２プロセッサ（２）による前記アクセスを許可する第２アクノリッジ信号（ａｃｋ２）を付与する。前記第２アクノリッジ信号（ａｃｋ２）に応答して前記第２プロセッサ（２）は前記第２ローカルバス（２０２）と前記第２バスインターフェースユニット（５）の前記第２ポート（Ｐ２）と前記第３ポート（Ｐ３）とを介して前記第２ローカルメモリ（２０１）をアクセスする。
【００３８】
前記第２プロセッサ（２）が前記アクセスを要求する前記第２リクエスト信号（ｒｅｑ２）を前記第２ローカルバス（２０２）と前記第２バスブリッジ（２０３）と前記第２システムバス（２０５）とを介して前記第１バスインターフェースユニット（３）の前記第２ポート（Ｐ２）に供給する。前記第１バスインターフェースユニット（３）が前記第２リクエスト信号（ｒｅｑ２）を受領すると、前記第１バスインターフェースユニット（３）は前記第２プロセッサ（２）による前記アクセスを許可する前記第２アクノリッジ信号（ａｃｋ２）を付与する。前記第２アクノリッジ信号（ａｃｋ２）に応答して前記第２プロセッサ（２）は前記第２ローカルバス（２０２）と前記第２バスブリッジ（２０３）と前記第２システムバス（２０５）と前記第１バスインターフェースユニット（３）の前記第２ポート（Ｐ２）と前記第３ポート（Ｐ３）とを介して前記第１ローカルメモリ（１０１）をアクセスする（図６参照）。
【００３９】
本発明の前記他のひとつの形態による手段によれば、マルチプロセッサ・アーキテクチャーのデータ処理装置において、２つプロセッサ間の連携を行うに際に一方のローカルメモリを一方のプロセッサが高速アクセスできるとともに、他方のプロセッサからもアクセス可能となる。
【００４０】
本発明の他のひとつの好適な形態によるデータ処理装置では、前記第１プロセッサ（１）が前記第２ローカルメモリ（２０１）への排他的アクセスを要求する第１排他アクセス要求信号（ｋｅｅｐ１）を前記第１ローカルバス（１０２）と前記第１バスブリッジ（１０３）と前記第１システムバス（１０５）とを介して前記第２バスインターフェースユニット（５）の前記第１ポート（Ｐ１）に供給する。前記第２バスインターフェースユニット（５）が前記第１排他アクセス要求信号（ｋｅｅｐ１）を受領すると、前記第２バスインターフェースユニット（５）は前記第１プロセッサ（１）による前記第２ローカルメモリ（２０１）へのアクセスを許可する前記第１アクノリッジ信号（ａｃｋ１）を付与する。前記第１アクノリッジ信号（ａｃｋ１）に応答して前記第１プロセッサ（１）は前記第１ローカルバス（１０２）と前記第１バスブリッジ（１０３）と前記第１システムバス（１０５）と前記第２バスインターフェースユニット（５）の前記第１ポート（Ｐ１）と前記第３ポート（Ｐ３）とを介して前記第２ローカルメモリ（２０１）を排他的にアクセスする。前記第２プロセッサ（２）が前記第１ローカルメモリ（１０１）への排他的アクセスを要求する第２排他アクセス要求信号（ｋｅｅｐ２）を前記第２ローカルバス（２０２）と前記第２バスブリッジ（２０３）と前記第２システムバス（２０５）とを介して前記第１バスインターフェースユニット（３）の前記第２ポート（Ｐ２）に供給する。前記第１バスインターフェースユニット（３）が前記第２排他アクセス要求信号（ｋｅｅｐ２）を受領すると、前記第１バスインターフェースユニット（３）は前記第２プロセッサ（２）による前記第１ローカルメモリ（１０１）へのアクセスを許可する前記第２アクノリッジ信号（ａｃｋ２）を付与する。前記第２アクノリッジ信号（ａｃｋ２）に応答して前記第２プロセッサ（２）は前記第２ローカルバス（２０２）と前記第２バスブリッジ（２０３）と前記第２システムバス（２０５）と前記第１バスインターフェースユニット（３）の前記第２ポート（Ｐ２）と前記第３ポート（Ｐ３）とを介して前記第１ローカルメモリ（１０１）を排他的にアクセスする（図６参照）。
【００４１】
本発明の前記他のひとつの好適な形態による手段によれば、マルチプロセッサ・アーキテクチャーのデータ処理装置において、ローカルメモリの排他的アクセスが可能となる。
【００４２】
本発明の更に他の好適な形態によるデータ処理装置では、前記第１プロセッサ（１）と前記第２プロセッサ（２）とが共有リソースをスピンロック方式で排他的にアクセスするための第１ローカル変数（１０１＿ＬＶ）が前記第１ローカルメモリ（１０１）に格納され、前記第１プロセッサ（１）と前記第２プロセッサ（２）とが前記共有リソースをスピンロック方式で排他的にアクセスするための第２ローカル変数（２０１＿ＬＶ）が前記第２ローカルメモリ（２０１）に格納され、前記第１ローカルメモリ（１０１）の前記第１ローカル変数（１０１＿ＬＶ）は前記第１プロセッサ（１）と前記第２プロセッサ（２）とのいずれかにより排他的にアクセスされ、前記第２ローカルメモリ（２０１）の前記第２ローカル変数（２０１＿ＬＶ）は前記第１プロセッサ（１）と前記第２プロセッサ（２）とのいずれかにより排他的にアクセスされる（図６参照）。
【００４３】
本発明の前記更に他の好適な形態による手段によれば、ロック変数の高速な格納と高速の読み出しが可能となる。
【００４４】
本発明の更に他の好適な形態によるデータ処理装置は、外部デバイス（４０２、７０２）と接続可能な外部インターフェースユニット（４、７）を更に具備する。前記外部インターフェースユニット（４、７）は、前記第１システムバス（１０５）と前記第２システムバス（２０５）とに接続される。前記第１プロセッサ（１）と前記第２プロセッサ（２）とのいずれかには前記第１ローカルメモリ（１０１）に格納された前記第１ローカル変数（１０１＿ＬＶ）と前記第２ローカルメモリ（２０１）に格納された前記第２ローカル変数（２０１＿ＬＶ）とのいずれかにを用いて前記外部インターフェースユニット（４、７）を介して前記外部デバイス（４０２、７０２）を排他的にアクセスする（図６参照）。
【００４５】
また、本発明の他のひとつの好適な形態によるデータ処理装置では、前記第１ローカルメモリ（１０１）は第１バンク（Ｂａｎｋ１）と第２バンク（Ｂａｎｋ３）とを含み、前記第２ローカルメモリ（２０１）は第３バンク（Ｂａｎｋ２）と第４バンク（Ｂａｎｋ３）とを含む。
【００４６】
前記第１バスインターフェースユニット（３）の第１ポート（Ｐ１）と第２ポート（Ｐ２）と第３ポート（Ｐ３）と第４ポート（Ｐ４）とは前記第１ローカルバス（１０２）と前記第２システムバス（２０５）と前記第１ローカルメモリ（１０１）の前記第１バンク（Ｂａｎｋ１）と前記第１ローカルメモリ（１０１）の前記第２バンク（Ｂａｎｋ３）にそれぞれ接続され、前記第２バスインターフェースユニット（５）の第１ポート（Ｐ１）と第２ポート（Ｐ２）と第３ポート（Ｐ３）と第４ポート（Ｐ４）とは前記第１システムバス（１０５）と前記第２ローカルバス（２０２）と前記第２ローカルメモリ（２０１）の前記第３バンク（Ｂａｎｋ２）と前記第２ローカルメモリ（２０１）の前記第４バンク（Ｂａｎｋ４）とにそれぞれ接続される。
【００４７】
前記第１プロセッサ（１）が前記アクセスを要求する前記第１リクエスト信号（ｒｅｑ１）を前記第１ローカルバス（１０２）を介して前記第１バスインターフェースユニット（３）の前記第１ポート（Ｐ１）に供給する。前記第１バスインターフェースユニット（３）が前記第１リクエスト信号（ｒｅｑ１）を受領すると、前記第１バスインターフェースユニット（３）は前記第１プロセッサ（１）による前記アクセスを許可する前記第１アクノリッジ信号（ａｃｋ１）を付与する。前記第１アクノリッジ信号（ａｃｋ１）に応答して前記第１プロセッサ（１）は前記第１ローカルバス（１０２）と前記第１バスインターフェースユニット（３）の前記第１ポート（Ｐ１）と前記第３ポート（Ｐ３）とを介して前記第１ローカルメモリ（１０１）の前記第１バンク（Ｂａｎｋ１）をアクセスする。
【００４８】
前記第１プロセッサ（１）が前記アクセスを要求する前記第１リクエスト信号（ｒｅｑ１）を前記第１ローカルバス（１０２）と前記第１バスブリッジ（１０３）と前記第２システムバス（２０５）とを介して、前記第１バスインターフェースユニット（３）の前記第２ポート（Ｐ２）に供給する。前記第１バスインターフェースユニット（３）が前記第１リクエスト信号（ｒｅｑ１）を受領すると、前記第１バスインターフェースユニット（３）は前記第１プロセッサ（１）による前記アクセスを許可する前記第１アクノリッジ信号（ａｃｋ１）を付与する。前記第１アクノリッジ信号（ａｃｋ１）に応答して前記第１プロセッサ（１）は、前記第１ローカルバス（１０２）と前記第１バスブリッジ（１０３）と前記第２システムバス（２０５）と前記第１バスインターフェースユニット（３）の前記第２ポート（Ｐ２）と前記第４ポート（Ｐ４）とを介して前記第１ローカルメモリ（１０１）の前記第２バンク（Ｂａｎｋ３）をアクセスする。
【００４９】
前記第１プロセッサ（１）が前記アクセスを要求する前記第１リクエスト信号（ｒｅｑ１）を前記第１ローカルバス（１０２）と前記第１バスブリッジ（１０３）と前記第１システムバス（１０５）とを介して前記第２バスインターフェースユニット（５）の前記第１ポート（Ｐ１）に供給する。前記第２バスインターフェースユニット（５）が前記第１リクエスト信号（ｒｅｑ１）を受領すると、前記第２バスインターフェースユニット（５）は前記第１プロセッサ（１）による前記アクセスを許可する前記第１アクノリッジ信号（ａｃｋ１）を付与する。前記第１アクノリッジ信号（ａｃｋ１）に応答して前記第１プロセッサ（１）は前記第１ローカルバス（１０２）と前記第１バスブリッジ（１０３）と前記第１システムバス（１０５）と前記第２バスインターフェースユニット（５）の前記第１ポート（Ｐ１）と前記第４ポート（Ｐ４）とを介して前記第２ローカルメモリ（２０１）の前記第４バンク（Ｂａｎｋ４）をアクセスする。
【００５０】
前記第２プロセッサ（２）が前記アクセスを要求する前記第２リクエスト信号（ｒｅｑ２）を前記第２ローカルバス（２０２）を介して前記第２バスインターフェースユニット（５）の前記第２ポート（Ｐ２）に供給する。前記第２バスインターフェースユニット（５）が前記第２リクエスト信号（ｒｅｑ２）を受領すると、前記第２バスインターフェースユニット（５）は前記第２プロセッサ（２）による前記アクセスを許可する前記第２アクノリッジ信号（ａｃｋ２）を付与する。前記第２アクノリッジ信号（ａｃｋ２）に応答して前記第２プロセッサ（２）は前記第２ローカルバス（２０２）と前記第２バスインターフェースユニット（５）の前記第１ポート（Ｐ１）と前記第３ポート（Ｐ３）とを介して前記第２ローカルメモリ（２０１）の前記第３バンク（Ｂａｎｋ２）をアクセスする。
【００５１】
前記第２プロセッサ（２）が前記アクセスを要求する前記第２リクエスト信号（ｒｅｑ２）を前記第２ローカルバス（２０２）と前記第２バスブリッジ（２０３）と前記第２システムバス（２０５）とを介して前記第１バスインターフェースユニット（３）の前記第２ポート（Ｐ２）に供給する。前記第１バスインターフェースユニット（３）が前記第２リクエスト信号（ｒｅｑ２）を受領すると、前記第１バスインターフェースユニット（３）は前記第２プロセッサ（２）による前記アクセスを許可する前記第２アクノリッジ信号（ａｃｋ２）を付与する。前記第２アクノリッジ信号（ａｃｋ２）に応答して前記第２プロセッサ（２）は前記第２ローカルバス（２０２）と前記第２バスブリッジ（２０３）と前記第２システムバス（２０５）と前記第１バスインターフェースユニット（３）の前記第２ポート（Ｐ２）と前記第４ポート（Ｐ４）とを介して前記第１ローカルメモリ（１０１）の前記第２バンク（Ｂａｎｋ３）をアクセスする。
【００５２】
前記第２プロセッサ（２）が前記アクセスを要求する前記第２リクエスト信号（ｒｅｑ２）を前記第２ローカルバス（２０２）と前記第２バスブリッジ（２０３）と前記第１システムバス（１０５）とを介して前記第２バスインターフェースユニット（５）の前記第１ポート（Ｐ１）に供給する。前記第２バスインターフェースユニット（５）が前記第２リクエスト信号（ｒｅｑ２）を受領すると、前記第２バスインターフェースユニット（５）は前記第２プロセッサ（２）による前記アクセスを許可する前記第２アクノリッジ信号（ａｃｋ２）を付与する。前記第２アクノリッジ信号（ａｃｋ２）に応答して前記第２プロセッサ（２）は前記第２ローカルバス（２０２）と前記第２バスブリッジ（２０３）と前記第１システムバス（１０５）と前記第２バスインターフェースユニット（５）の前記第１ポート（Ｐ１）と前記第４ポート（Ｐ４）とを介して前記第２ローカルメモリ（２０１）の前記第４バンク（Ｂａｎｋ４）をアクセスする（図６参照）。
【００５３】
本発明の更に他の好適な形態によるデータ処理装置では、前記第１ローカルメモリ（１０１）は前記第１プロセッサ（１）のみによってアクセス可能な第１非共有領域（Ｂａｎｋ１）と前記第１プロセッサ（１）と前記第２プロセッサ（２）とによってアクセス可能な第１共有領域（Ｂａｎｋ３）とを含み、前記第２ローカルメモリ（２０１）は前記第２プロセッサ（２）のみによってアクセス可能な第２非共有領域（Ｂａｎｋ２）と前記第１プロセッサ（１）と前記第２プロセッサ（２）とによってアクセス可能な第２共有領域（Ｂａｎｋ４）とを含むものである（図７参照）。
【００５４】
本発明の更に他の好適な形態によるデータ処理装置では、前記第１プロセッサ（１）による前記第１ローカルメモリ（１０１）の前記第１非共有領域（Ｂａｎｋ１）へのアクセスと前記第２プロセッサ（２）による前記第２ローカルメモリ（２０１）の前記第２非共有領域（Ｂａｎｋ２）へのアクセスとの並列実行が可能である（図６参照）。
【００５５】
本発明の更に好適な形態によるデータ処理装置では、前記第１ローカルメモリ（１０１）の前記第１共有領域（Ｂａｎｋ３）と前記第２ローカルメモリ（２０１）の前記第２共有領域（Ｂａｎｋ４）とはデータ処理装置の内蔵共有メモリとして動作する（図６参照）。
【００５６】
本発明の更に好適な形態によるデータ処理装置では、前記第１ローカルメモリ（１０１）の前記第１非共有領域（Ｂａｎｋ１）および前記第１共有領域（Ｂａｎｋ３）と前記第２ローカルメモリ（２０１）の前記第２非共有領域（Ｂａｎｋ２）および前記第２共有領域（Ｂａｎｋ４）とは、前記第１プロセッサ（１）および前記第２プロセッサ（２）からのアドレス信号によって指定される（図７参照）。
【発明の効果】
【００５７】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。
【００５８】
すなわち、本発明によれば、マルチプロセッサ・アーキテクチャーのデータ処理装置において、２つプロセッサ間の連携を行うに際に一方のローカルメモリを一方のプロセッサが高速アクセスできるとともに、他方のプロセッサからもアクセス可能とすることができる。
【００５９】
また、本発明によれば、マルチプロセッサ・アーキテクチャーのデータ処理装置において、ローカルメモリの排他的アクセスを可能とすることもできる。
【００６０】
更に、本発明によれば、ロック変数の高速な格納と高速の読み出しを可能とすることができる。
【発明を実施するための最良の形態】
【００６１】
≪マルチＣＰＵコアのデータ処理装置の構成≫
図１は、本発明の１つの実施形態によるマルチプロセッサ・アーキテクチャーのデータ処理装置を示す図である。
【００６２】
大きな四角で示されたデータプロセッサチップは、第１プロセッサ１と、第２プロセッサ２と、第１ローカルメモリ１０１と、第２ローカルメモリ２０１と、第１ローカルバス１０２と、第２ローカルバス２０２と、第１バスブリッジ１０３と、第２バスブリッジ２０３と、第１システムバス１０５と第２システムバス２０５とを含むシステムバスＳＢと、第１バスインターフェースユニット３と、第２バスインターフェースユニット５とを具備する。
【００６３】
第１プロセッサ１には第１ローカルバス１０２を介して第１ローカルメモリ１０１が接続され、第２プロセッサ２には第２ローカルバス２０２を介して第２ローカルメモリ２０１が接続される。第１バスブリッジ１０３の一方のポートと他方のポートとは第１ローカルバス１０２とシステムバスＳＢの第１システムバス１０５とにそれぞれ接続され、第２バスブリッジ２０３の一方のポートと他方のポートとは第２ローカルバス２０２とシステムバスＳＢの第２システムバス２０５とにそれぞれ接続される。
【００６４】
第１バスインターフェースユニット３の第１ポートＰ１と第２ポートＰ２と第３ポートＰ３は第１システムバス１０５と第２システムバス２０５と第１ローカルメモリ１０１とにそれぞれ接続され、第２バスインターフェースユニット５の第１ポートＰ１と第２ポートＰ２と第３ポートＰ３は第１システムバス１０５と第２システムバス２０５と第２ローカルメモリ２０１とにそれぞれ接続される。
【００６５】
尚、システムバスＳＢの第１システムバス１０５と第２システムバス２０５とには、例えばＲＯＭもしくはフラッシュメモリ等の不揮発性メモリで構成されたプログラムメモリ８が接続され、プログラムメモリ８には第１プロセッサ１と第２プロセッサ２とが実行するためのプログラムが格納されている。プログラムメモリ８から第１プロセッサ１が読み出したプログラムの命令は第１プロセッサ１のレベル１の第１キャッシュメモリ１１に格納され、プログラムメモリ８から第２プロセッサ２が読み出したプログラムの命令は第２プロセッサ２のレベル１の第２キャッシュメモリ２１に格納される。システムバスＳＢには、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）６が接続される。ＤＭＡＣ６は、システムバスＳＢの第１システムバス１０５と第２システムバス２０５とＤＭＡＣリードバス３０５とＤＭＡＣライトバス４０５とに接続されている。システムバスＳＢには、第３バスインターフェースユニット４と第４バスインターフェースユニット７とが接続され、第３バスインターフェースユニット４には外部バス４０１を介して外部同期ＤＲＡＭのような共有メモリ４０２が接続されることができ、第４バスインターフェースユニット７には外部バス７０１を介して外部周辺装置７０２が接続されることができる。
【００６６】
従って、図１に示したマルチプロセッサ・アーキテクチャーのデータ処理装置において、第１プロセッサ１と第２プロセッサに対して、第３バスインターフェースユニット４に接続される共有メモリ４０２と、第４バスインターフェースユニット７に接続される外部周辺装置７０２とが共有ハードウェアリソースとなるとともに、後に詳述するように第１ローカルメモリ１０１の一部の記憶領域と第２ローカルメモリ２０１の一部の記憶領域も共有リソースとなる。
【００６７】
また、図１に示したマルチプロセッサ・アーキテクチャーのデータ処理装置において、第１ローカルバス１０２、第１ローカルバス２０２、システムバスＳＢの第１システムバス１０５と第２システムバス２０５には第１プロセッサ１又は第２プロセッサ２からのコマンドやアドレスが転送されるとともに第１プロセッサ１又は第２プロセッサ２と第１ローカルメモリ１０１や第２ローカルメモリ２０１や共有メモリ４０２との間のデータがその間で双方向に転送されることができ、システムバスＳＢのＤＭＡＣリードバス３０５にはＤＭＡＣ６によるＤＭＡ転送元のアドレスが転送されＤＭＡ転送元からのデータも転送され、システムバスＳＢのＤＭＡＣライトバス３０５にはＤＭＡＣ６によるＤＭＡ転送先のアドレスが転送されＤＭＡ転送先へのデータも転送される。
【００６８】
尚、レベル１の第１キャッシュメモリ１１と第２キャッシュメモリ２１とはコピーバック方式でもライトスルー方式でも動作する。例えばデータプロセッサチップのパワーオンリセット等のシステム初期化に際して格別のモード設定を行わなければ、レベル１の第１キャッシュメモリ１１と第２キャッシュメモリ２１とはデォルト指定のコピーバック方式で動作する。従って、コピーバック方式では第１プロセッサ１と第２プロセッサ２とからの非共有のデータの書き込みは、レベル１の第１キャッシュメモリ１１と第２キャッシュメモリ２１と、第１ローカルメモリ１０１の非共有領域と、第２ローカルメモリ２０１の非共有領域にのみ書き込まれて、共有メモリ４０２や第１ローカルメモリ１０１の共有領域や第２ローカルメモリ２０１の共有領域には書き込まれることはない。また、第１プロセッサ１と第２プロセッサ２とからの共有のデータの書き込みは、レベル１の第１キャッシュメモリ１１と第２キャッシュメモリ２１と、第１ローカルメモリ１０１の共有領域と、第２ローカルメモリ２０１の共有領域にのみ書き込まれて、共有メモリ４０２には書き込まれることはない。一方、データプロセッサチップのシステム初期化に際してライトスルー方式のモードを指定すると、レベル１の第１キャッシュメモリ１１と第２キャッシュメモリ２１とはライトスルー方式で動作する。従って、ライトスルー方式では第１プロセッサ１と第２プロセッサ２とからの非共有又は共有のデータの書き込みは、レベル１の第１キャッシュメモリ１１と第２キャッシュメモリ２１とに書き込まれた後、共有メモリ４０２や第１ローカルメモリ１０１や第２ローカルメモリ２０１にも書き込まれる。
【００６９】
≪プロセッサの機能≫
第１プロセッサ１と第２プロセッサ２とは、プログラムメモリ８からプログラムの命令を読み出して、命令で指示された処理を実行する。処理としては、第１プロセッサ１内部の演算器とレジスタファイルや第２プロセッサ２内部の演算器とレジスタファイルと第１ローカルメモリ１０１の非共有領域（第１プロセッサ１が排他的に使用する領域）や第２ローカルメモリ２０１の非共有領域（第２プロセッサ２が排他的に使用する領域）のみを使用するマルチプロセッサの非共有リソースを使用する非共有処理（排他的処理）がある。第１プロセッサ１又は第２プロセッサによる非共有処理のためには、第１ローカルバス１０２又は第２ローカルバス２０２が使用される。次の処理は、第１ローカルメモリ１０１や第２ローカルメモリ２０１の共有領域や共有メモリ４０２からデータを読み出したり、第１ローカルメモリ１０１や第２ローカルメモリ２０１の共有領域や共有メモリ４０２へデータを書き込んだり、第１ローカルメモリ１０１や第２ローカルメモリ２０１の共有領域や共有メモリ４０２から外部周辺装置７０２へデータを転送したり、外部周辺装置７０２から第１ローカルメモリ１０１や第２ローカルメモリ２０１の共有領域や共有メモリ４０２へデータを転送するような、マルチプロセッサの共有リソースを使用する共有処理がある。第１プロセッサ１又は第２プロセッサ２による共有処理のためには、第１ローカルバス１０２と第２ローカルバス２０２だけではなく第１バスブリッジ１０３と第２バスブリッジ２０３と第１システムバス１０５と第２システムバス２０５とバスインターフェースユニット３、４、５、７とＤＭＡＣ６等の共有リソースとが使用される。
【００７０】
第１プロセッサ１は、共有処理のために第１ローカルメモリ１０１や第２ローカルメモリ２０１の共有領域や共有メモリ４０２やＤＭＡＣ６等のマルチプロセッサの共有リソースを使用するに際して、使用に先行して第１リクエスト信号ｒｅｑ１を発行する。
【００７１】
第２プロセッサ２も、第１プロセッサ１と同様に共有処理のために第１ローカルメモリ１０１や第２ローカルメモリ２０１の共有領域や共有メモリ４０２やダイレクトメモリアクセスコントローラ６等のマルチプロセッサの共有リソースを使用するに際して、使用に先行して第２リクエスト信号ｒｅｑ２を発行する。
【００７２】
更に第１プロセッサ１は、マルチプロセッサの共有リソースを使用するに際して、例えばスピンロック方式のためのロック変数等を排他的にアクセスする場合には、排他アクセスに先行して第１排他アクセス要求信号ｋｅｅｐ１を発行する。
【００７３】
更に第２プロセッサ２も、第１プロセッサ１と同様にマルチプロセッサの共有リソースを使用するに際して、例えばスピンロック方式のためのロック変数等を排他的にアクセスする場合には、排他アクセスに先行して第２排他アクセス要求信号ｋｅｅｐ２を発行する。
【００７４】
≪ローカルメモリ≫
第１ローカルメモリ１０１と第２ローカルメモリ２０１とは、非共有領域と共有領域とを持つことは上記で説明した通りである。
【００７５】
図２は、図１に示した本発明の１つの実施形態によるマルチプロセッサ・アーキテクチャーのデータ処理装置における第１ローカルメモリ１０１と第２ローカルメモリ２０１との非共有領域と共有領域のアドレスアロケーション（領域パーティション）を示す図である。
【００７６】
同図に示すようにプロセッサアドレスが“０ｘ０１００００００”の開始アドレスから“０ｘ０１ＦＦＦＦＦＦ”の終了アドレスまでのアドレス領域が、第１プロセッサ１のみによって第１ローカルバス１０２を経由して第１ローカルメモリ１０１が排他的にアクセスされる非共有処理に使用される第１ローカルメモリ１０１の第１非共有領域である。次に、プロセッサアドレスが“０ｘ０２００００００”の開始アドレスから“０ｘ０２ＦＦＦＦＦＦ”の終了アドレスまでのアドレス領域が、第２プロセッサ２のみによって第２ローカルバス２０２を経由して第２ローカルメモリ２０１が排他的にアクセスされる非共有処理に使用される第２ローカルメモリ２０１の第２非共有領域である。第１プロセッサ１から第１ローカルバス１０２を経由して第１ローカルメモリ１０１の第１非共有領域へのアクセスと第２プロセッサ２から第２ローカルバス２０２を経由して第２ローカルメモリ２０１の第２非共有領域へのアクセスとでは、システムバスＳＢの第１システムバス１０５又は第２システムバス２０５と第１バスインターフェースユニット３又は第２バスインターフェースユニット５とが使用されないので、高速アクセスが可能となると言う効果を奏する。また、第１プロセッサ１から第１ローカルバス１０２を経由して第１ローカルメモリ１０１の第１非共有領域へのアクセスと、第２プロセッサ２から第２ローカルバス２０２を経由して第２ローカルメモリ２０１の第２非共有領域へのアクセスとは、独立であるので、並列実行が可能となるとの効果も奏する。
【００７７】
更に、プロセッサアドレスが“０ｘ１１００００００”の開始アドレスから“０ｘ１１ＦＦＦＦＦＦ”の終了アドレスまでのアドレス領域が、第１プロセッサ１と第２プロセッサ２の両者によって第１バスブリッジ１０３又は第２バスブリッジ２０３とシステムバスＳＢの第１システムバス１０５又は第２システムバス２０５と第１バスインターフェースユニット３とを経由して第１ローカルメモリ１０１が共有アクセスされる共有処理に使用される第１ローカルメモリ１０１の第１共有領域である。最後に、プロセッサアドレスが“０ｘ１２００００００”の開始アドレスから“０ｘ１２ＦＦＦＦＦＦ”の終了アドレスまでのアドレス領域が、第１プロセッサ１と第２プロセッサ２の両者によって第１バスブリッジ１０３又は第２バスブリッジ２０３とシステムバスＳＢの第１システムバス１０５又は第２システムバス２０５と第２バスインターフェースユニット５とを経由して第２ローカルメモリ２０１が共有アクセスされる共有処理に使用される第２ローカルメモリ２０１の第２共有領域である。
【００７８】
従って、第３バスインターフェースユニット４に接続される外部同期型ＤＲＡＭのような共有メモリ４０２を経由しての第１プロセッサ１と第２プロセッサ２との間の低速連携と比較すると、第１バスインターフェースユニット３と第１共有領域を含む第１ローカルメモリ１０１との接続と、第２バスインターフェースユニット５と第２共有領域を含む第２ローカルメモリ２０１との接続と、システムバスＳＢによる第１プロセッサ１と第２プロセッサ２と第１バスインターフェースユニット３と第２バスインターフェースユニット５の相互接続とにより、第１プロセッサ１と第２プロセッサ２との間の高速連携が可能となると言う効果を奏する。更に、第１ローカルメモリ１０１の第１共有領域と第２ローカルメモリ２０１の第２共有領域とは、データプロセッサチップの内蔵共有メモリとして動作することができるとの効果も奏する。
【００７９】
≪バスブリッジ≫
第１バスブリッジ１０３は、第１プロセッサ１からマルチプロセッサの共有リソースを使用するに際して第１ローカルバス１０３に第１リクエスト信号ｒｅｑ１が発行された場合に、第１ローカルバス１０３上の第１リクエスト信号ｒｅｑ１、命令、データ、アドレス等の情報をシステムバスＳＢの第１システムバス１０５へ転送する。第２バスブリッジ２０３も、第１バスブリッジ１０３と同様に第２プロセッサ２からマルチプロセッサの共有リソースを使用するに際して第２ローカルバス２０３に第２リクエスト信号ｒｅｑ２が発行された場合に、第２ローカルバス２０３上の第２リクエスト信号ｒｅｑ２、命令、データ、アドレス等の情報をシステムバスＳＢの第２システムバス２０５へ転送する。第１リクエスト信号ｒｅｑ１と第２リクエスト信号ｒｅｑ２とが発行されない場合には、システムバスＳＢの第１システムバス１０５と第２システムバス２０５へは情報が転送されないので、システムバスＳＢ上の不必要なバストラフィックを低減することが可能となる。
【００８０】
≪バスインターフェースユニット≫
≪第１バスインターフェースユニット３≫
第１バスブリッジ１０３又は第２バスブリッジ２０３を介してシステムバスＳＢの第１システムバス１０５又は第２システムバス２０５に第１リクエスト信号ｒｅｑ１又は第２リクエスト信号ｒｅｑ２が転送されることにより、第１バスインターフェースユニット３が活性化される。
【００８１】
第１リクエスト信号ｒｅｑ１のみが転送された場合には、第１バスインターフェースユニット３は第１リクエスト信号ｒｅｑ１を受領して、第１プロセッサ１による第１ローカルメモリ１０１へのアクセスを許可する第１アクノリッジ信号ａｃｋ１を第１バスインターフェースユニット３が発行する。第１アクノリッジ信号ａｃｋ１に応答して第１プロセッサ１は、第１ローカルバス１０２、第１バスブリッジ１０３、システムバスＳＢの第１システムバス１０５、第１バスインターフェースユニット３の第１ポートＰ１・第３ポートＰ３を介して、第１ローカルメモリ１０１の“０ｘ１１００００００”の開始アドレスから“０ｘ１１ＦＦＦＦＦＦ”の終了アドレスまでのアドレス領域の第１共有領域をアクセスする。
【００８２】
第２リクエスト信号ｒｅｑ２のみが転送された場合には、第１バスインターフェースユニット３は第２リクエスト信号ｒｅｑ２を受領して、第２プロセッサ２による第１ローカルメモリ１０１へのアクセスを許可する第２アクノリッジ信号ａｃｋ２を第１バスインターフェースユニット３が発行する。第２アクノリッジ信号ａｃｋ２に応答して第２プロセッサ２は、第２ローカルバス２０２、第２バスブリッジ２０３、システムバスＳＢの第２システムバス２０５、第１バスインターフェースユニット３の第２ポートＰ２・第３ポートＰ３を介して、第１ローカルメモリ１０１の“０ｘ１１００００００”の開始アドレスから“０ｘ１１ＦＦＦＦＦＦ”の終了アドレスまでのアドレス領域の第１共有領域をアクセスする。
【００８３】
第１プロセッサ１と第２プロセッサ２とから第１排他アクセス要求信号ｋｅｅｐ１と第２排他アクセス要求信号ｋｅｅｐ２とが発行されること無く第１リクエスト信号ｒｅｑ１と第２リクエスト信号ｒｅｑ２とが同時に発行されたと想定する。すると、第１バスインターフェースユニット３は例えばラウンドロビン方式の時分割マルチプレックススケージューリングで第１リクエスト信号ｒｅｑ１と第２リクエスト信号ｒｅｑ２との一方を選択する。この選択された一方が第１リクエスト信号ｒｅｑ１であれば、第１バスインターフェースユニット３は第１プロセッサ１に第１アクノリッジ信号ａｃｋ１を発行する。すると、第１アクノリッジ信号ａｃｋ１に応答して第１プロセッサ１は第１ローカルバス１０２、第１バスブリッジ１０３、システムバスＳＢの第１システムバス１０５、第１バスインターフェースユニット３の第１ポートＰ１・第３ポートＰ３を介して、第１ローカルメモリ１０１の“０ｘ１１００００００”の開始アドレスから“０ｘ１１ＦＦＦＦＦＦ”の終了アドレスまでのアドレス領域の第１共有領域をアクセスする。
【００８４】
第１プロセッサ１と第２プロセッサ２とから第１リクエスト信号ｒｅｑ１と第２リクエスト信号ｒｅｑ２とが同時に発行され、第１プロセッサ１と第２プロセッサ２とから第１排他アクセス要求信号ｋｅｅｐ１と第２排他アクセス要求信号ｋｅｅｐ２とが同時に発行されたと想定する。すると、第１バスインターフェースユニット３は、例えばラウンドロビン方式の時分割マルチプレックススケジューリングで第１リクエスト信号ｒｅｑ１と第２リクエスト信号ｒｅｑ２との一方を選択する。この選択された一方が第１リクエスト信号ｒｅｑ１であれば、第１バスインターフェースユニット３は、第１プロセッサ１に第１アクノリッジ信号ａｃｋ１を発行する。すると、第１アクノリッジ信号ａｃｋ１に応答して第１プロセッサ１は第１ローカルバス１０２、第１バスブリッジ１０３、システムバスＳＢの第１システムバス１０５、第１バスインターフェースユニット３の第１ポートＰ１・第３ポートＰ３を介して、第１ローカルメモリ１０１の“０ｘ１１００００００”の開始アドレスから“０ｘ１１ＦＦＦＦＦＦ”の終了アドレスまでのアドレス領域の第１共有領域をアクセスする。以降、第１プロセッサ１が第１排他アクセス要求信号ｋｅｅｐ１を発行しなくなるまで、第１バスインターフェースユニット３は第２リクエスト信号ｒｅｑ２よりも第１リクエスト信号ｒｅｑ１の方を優先して、第１プロセッサ１に第１アクノリッジ信号ａｃｋ１を発行する。
【００８５】
また、第１バスインターフェースユニット３を使用することにより、第１プロセッサ１から第１ローカルバス１０２を経由して第１ローカルメモリ１０１の第１非共有領域へのアクセスと並列に、第２プロセッサ２から第２ローカルバス２０２、第２バスブリッジ２０３、システムバスＳＢの第２システムバス２０５、第１バスインターフェースユニット３の第２ポートＰ２・第３ポートＰ３を介して第２ローカルメモリ２０１の第２共有領域へのアクセスを行うことができる。
【００８６】
第１バスインターフェースユニット３と第２バスインターフェースユニット５とを使用することにより、第１プロセッサ１から第１ローカルバス１０２、第１バスブリッジ１０３、システムバスＳＢの第１システムバス１０５、第１バスインターフェースユニット３の第１ポートＰ１・第３ポートＰ３を介して第１ローカルメモリ１０１の第１共有領域へのアクセスと並列に、第２プロセッサ２から第２ローカルバス２０２、第２バスブリッジ２０３、システムバスＳＢの第２システムバス２０５、第２バスインターフェースユニット５の第２ポートＰ２・第３ポートＰ３を介して第２ローカルメモリ２０１の第２共有領域へのアクセスへのアクセスを行うこともできる。
【００８７】
≪第２バスインターフェースユニット５≫
第１バスブリッジ１０３又は第２バスブリッジ２０３を介してシステムバスＳＢの第１システムバス１０５又は第２システムバス２０５に第１リクエスト信号ｒｅｑ１又は第２リクエスト信号ｒｅｑ２が転送されることにより、第１バスインターフェースユニット３と同様に第２バスインターフェースユニット５が活性化される。
【００８８】
第２リクエスト信号ｒｅｑ２のみが転送された場合には、第２バスインターフェースユニット５は第２リクエスト信号ｒｅｑ２を受領して、第２プロセッサ２による第２ローカルメモリ２０１へのアクセスを許可する第２アクノリッジ信号ａｃｋ２を第２バスインターフェースユニット５が発行する。第２アクノリッジ信号ａｃｋ２に応答して第２プロセッサ２は第２ローカルバス２０２、第２バスブリッジ２０３、システムバスＳＢの第２システムバス２０５、第２バスインターフェースユニット５の第２ポートＰ２・第３ポートＰ３を介して、第２ローカルメモリ２０１の“０ｘ１２００００００”の開始アドレスから“０ｘ１２ＦＦＦＦＦＦ”の終了アドレスまでのアドレス領域の第２共有領域をアクセスする。
【００８９】
第１リクエスト信号ｒｅｑ１のみが転送された場合には、第２バスインターフェースユニット５は第１リクエスト信号ｒｅｑ１を受領して、第１プロセッサ１による第２ローカルメモリ２０１へのアクセスを許可する第１アクノリッジ信号ａｃｋ１を第２バスインターフェースユニット５が発行する。第１アクノリッジ信号ａｃｋ１に応答して第１プロセッサ１は第１ローカルバス１０２、第１バスブリッジ２０３、システムバスＳＢの第１システムバス１０５、第２バスインターフェースユニット５の第１ポートＰ１・第３ポートＰ３を介して、第２ローカルメモリ２０１の“０ｘ１２００００００”の開始アドレスから“０ｘ１２ＦＦＦＦＦＦ”の終了アドレスまでのアドレス領域の第２共有領域をアクセスする。
【００９０】
第１プロセッサ１と第２プロセッサ２とから第１排他アクセス要求信号ｋｅｅｐ１と第２排他アクセス要求信号ｋｅｅｐ２とが発行されること無く第１リクエスト信号ｒｅｑ１と第２リクエスト信号ｒｅｑ２とが同時に発行されたと想定する。すると、第２バスインターフェースユニット５は例えばラウンドロビン方式の時分割マルチプレックススケージューリングで第１リクエスト信号ｒｅｑ１と第２リクエスト信号ｒｅｑ２との一方を選択する。この選択された一方が第２リクエスト信号ｒｅｑ２であれば、第２バスインターフェースユニット５は第２プロセッサ２に第２アクノリッジ信号ａｃｋ２を発行する。すると、第２アクノリッジ信号ａｃｋ２に応答して第２プロセッサ２は第２ローカルバス２０２、第２バスブリッジ２０３、システムバスＳＢの第２システムバス２０５、第２バスインターフェースユニット５の第２ポートＰ２・第３ポートＰ３を介して、第２ローカルメモリ２０１の“０ｘ１２００００００”の開始アドレスから“０ｘ１２ＦＦＦＦＦＦ”の終了アドレスまでのアドレス領域の第２共有領域を排他的にアクセスする。
【００９１】
第１プロセッサ１と第２プロセッサ２とから第１リクエスト信号ｒｅｑ１と第２リクエスト信号ｒｅｑ２とが同時に発行され、第１プロセッサ１と第２プロセッサ２とから第１排他アクセス要求信号ｋｅｅｐ１と第２排他アクセス要求信号ｋｅｅｐ２とが同時に発行されたと想定する。すると、第２バスインターフェースユニット５は、例えばラウンドロビン方式の時分割マルチプレックススケジューリングで第１リクエスト信号ｒｅｑ１と第２リクエスト信号ｒｅｑ２との一方を選択する。この選択された一方が第２リクエスト信号ｒｅｑ２であれば、第２バスインターフェースユニット５は、第２プロセッサ２に第２アクノリッジ信号ａｃｋ２を発行する。すると、第２アクノリッジ信号ａｃｋ２に応答して第２プロセッサ２は第２ローカルバス２０２、第２バスブリッジ２０３、システムバスＳＢの第２システムバス２０５、第２バスインターフェースユニット５の第２ポートＰ２・第３ポートＰ３を介して、第２ローカルメモリ２０１の“０ｘ１２００００００”の開始アドレスから“０ｘ１２ＦＦＦＦＦＦ”の終了アドレスまでのアドレス領域の第２共有領域をアクセスする。以降、第２プロセッサ２が第２排他アクセス要求信号ｋｅｅｐ２を発行しなくなるまで、第２バスインターフェースユニット５は第１リクエスト信号ｒｅｑ１よりも第２リクエスト信号ｒｅｑ２の方を優先して、第２プロセッサ２に第２アクノリッジ信号ａｃｋ２を発行する。
【００９２】
また、第２バスインターフェースユニット５を使用することにより、第２プロセッサ２から第２ローカルバス２０２を経由して第２ローカルメモリ２０１の第２非共有領域へのアクセスと並列に、第１プロセッサ１から第１ローカルバス１０２、第１バスブリッジ１０３、システムバスＳＢの第１システムバス１０５、第２バスインターフェースユニット５の第１ポートＰ１・第３ポートＰ３を介して第１ローカルメモリ２０１の第１共有領域へのアクセスを行うことができる。
【００９３】
≪バスインターフェースユニットの内部構成≫
図３は、図１のデータプロセッサチップの内部の第１バスインターフェースユニット３と第２バスインターフェースユニット５の内部構成を示す図である。
【００９４】
同図は第１バスインターフェースユニット３の内部構成を示しているが、第２バスインターフェースユニット５も第１バスインターフェースユニット３と同様に構成されている。第１システムバス１０５の第１リクエスト信号ｒｅｑ１はＡＮＤ回路３１１の一方の入力に供給され、ＡＮＤ回路３１１の他方の反転入力にはＡＮＤ回路３１０の第２リクエストマスク信号ｒｅｑｍｓｋ２が供給される。ＡＮＤ回路３１１の第１リクエスト出力信号ｒｅｑ１＿ｉは優先順位判定回路３１３の一方の入力端子に供給される。第２システムバス２０５の第２リクエスト信号ｒｅｑ２はＡＮＤ回路３１２の一方の入力に供給され、ＡＮＤ回路３１２の他方の反転入力にはＡＮＤ回路３０５の第１リクエストマスク信号ｒｅｑｍｓｋ１が供給される。ＡＮＤ回路３１２の第２リクエスト出力信号ｒｅｑ２＿ｉは優先順位判定回路３１３の他方の入力端子に供給される。第１システムバス１０５の第１排他アクセス要求信号ｋｅｅｐ１はＡＮＤ回路３０１、３０２とＯＲ回路３０３とを介して第１データラッチ回路３０４のデータ入力Ｄに供給され、第１データラッチ回路３０４のデータ出力ＱはＡＮＤ回路３０５を介して第１リクエストマスク信号ｒｅｑｍｓｋ１としてＡＮＤ回路３１２の他方の反転入力に供給される。第２システムバス２０５の第２排他アクセス要求信号ｋｅｅｐ２はＡＮＤ回路３０６、３０７とＯＲ回路３０８とを介して第２データラッチ回路３０９のデータ入力Ｄに供給され、第２データラッチ回路３０９のデータ出力ＱはＡＮＤ回路３１０を介して第２リクエストマスク信号ｒｅｑｍｓｋ２としてＡＮＤ回路３１１の他方の反転入力に供給される。また、優先順位判定回路３１３からの第１アクノリッジ信号ａｃｋ１はＡＮＤ回路３０２とＯＲ回路３０３とを介して第１データラッチ回路３０４のデータ入力Ｄに供給され、優先順位判定回路３１３からの第２アクノリッジ信号ａｃｋ２はＡＮＤ回路３０７とＯＲ回路３０８とを介して第２データラッチ回路３０９のデータ入力Ｄに供給される。
【００９５】
≪バスインターフェースユニットによるバス調停≫
図５は、図３に示した第１バスインターフェースユニット３と第２バスインターフェースユニット５の動作を説明するための第１バスインターフェースユニット３の内部各部の波形図である。
【００９６】
図５のサイクル２で第１システムバス１０５の第１リクエスト信号ｒｅｑ１と第２システムバス２０５の第２リクエスト信号ｒｅｑ２とが”１”レベルにアサートされると、ＡＮＤ回路３１１の第１リクエスト出力信号ｒｅｑ１＿ｉとＡＮＤ回路３１２の第２リクエスト出力信号ｒｅｑ２＿ｉとは”１”レベルにアサートされる。ＡＮＤ回路３１１の”１”レベルの第１リクエスト出力信号ｒｅｑ１＿ｉとＡＮＤ回路３１２の”１”レベルの第２リクエスト出力信号ｒｅｑ２＿ｉとは優先順位判定回路３１３の２入力に供給されるが、ラウンドロビン方式で図５のサイクル２とサイクル４とでは一方（例えば、ＡＮＤ回路３１１の”１”レベルの第１リクエスト出力信号ｒｅｑ１＿ｉ）が優先順位判定回路３１３によって選択され、第１アクノリッジ信号ａｃｋ１が”１”レベルにアサートされる。しかし、図５のサイクル３とサイクル５では他方（ＡＮＤ回路３１２の”１”レベルの第２リクエスト出力信号ｒｅｑ２＿ｉ）が選択され、第２アクノリッジ信号ａｃｋ２が”１”レベルにアサートされる。その結果、サイクル２とサイクル４とでは第１プロセッサ１からのアドレス信号Ｃ１１、Ｃ１２により第１ローカルメモリ１０１の第１共有領域がアクセスされ、サイクル３とサイクル５とでは第２プロセッサ２からのアドレス信号Ｃ２１、Ｃ２２により第２ローカルメモリ２０１の第２共有領域がアクセスされる。
【００９７】
図５のサイクル６に示すように第１システムバス１０５の第１リクエスト信号ｒｅｑ１と第２システムバス２０５の第２リクエスト信号ｒｅｑ２とが”１”レベルに同時にアサートされ、更に第１システムバス１０５の第１排他アクセス要求信号ｋｅｅｐ１と第２システムバス２０５の第２排他アクセス要求信号ｋｅｅｐ２とが同時に”１”レベルにアサートされたと想定する。すると、ラウンドロビン方式でＡＮＤ回路３１１の”１”レベルの第１リクエスト出力信号ｒｅｑ１＿ｉが優先順位判定回路３１３によって選択されて、第１アクノリッジ信号ａｃｋ１が”１”レベルにアサートされるので、ＡＮＤ回路３０２の出力は”１”レベルにアサートされ、サイクル７で第１データラッチ回路３０４のデータ出力Ｑも”１”レベルにアサートされる。従って、サイクル７でＡＮＤ回路３０５の出力の第１リクエストマスク信号ｒｅｑｍｓｋ１も”１”レベルにアサートされ、ＡＮＤ回路３１２の第２リクエスト出力信号ｒｅｑ２＿ｉが”０”レベルにネゲートされる一方、ＡＮＤ回路３１１の第１リクエスト出力信号ｒｅｑ１＿ｉの”１”レベルのアサートは保持される。その結果、サイクル６からサイクル８の期間Ｔ１の間に第１アクノリッジ信号ａｃｋ１が”１”レベルにアサートされ、第２アクノリッジ信号ａｃｋ２が”０”レベルにネゲートされて、第１プロセッサ１が共有リソースを排他的にアクセスするものとなる。従って、サイクル６からサイクル８の期間Ｔ１の間には第１プロセッサ１からのアドレス信号Ｃ１３、Ｃ１４、Ｃ１５により、第１ローカルメモリ１０１の第１共有領域が排他的にアクセスされる。
【００９８】
次に図５のサイクル９に示すように、第１システムバス１０５の第１排他アクセス要求信号ｋｅｅｐ１が”０”レベルにネゲートされる一方、第２システムバス２０５の第２排他アクセス要求信号ｋｅｅｐ２の”１”レベルのアサートが保持されていると、ＡＮＤ回路３０５の出力の第１リクエストマスク信号ｒｅｑｍｓｋ１が”０”レベルにネゲートされ、サイクル１０でＡＮＤ回路３１０の第２リクエストマスク信号ｒｅｑｍｓｋ２が”１”レベルにアサートされる。従って、サイクル１０でＡＮＤ回路３１１の第１リクエスト出力信号ｒｅｑ１＿ｉが”０”レベルにネゲートされる。その結果、サイクル９からサイクル１１の期間Ｔ２の間に第２アクノリッジ信号ａｃｋ２が”１”レベルにアサートされ、第１アクノリッジ信号ａｃｋ１が”０”レベルにネゲートされて、第２プロセッサ２が共有リソースを排他的にアクセスするものとなる。従って、サイクル９からサイクル１１の期間Ｔ２の間には第２プロセッサ２からのアドレス信号Ｃ２３、Ｃ２４、Ｃ２５により、第１ローカルメモリ１０１の第１共有領域が排他的にアクセスされる。
【００９９】
外部インターフェースユニットとしての第３バスインターフェースユニット４と第４バスインターフェースユニット７も、図３に示した第１バスインターフェースユニット３や第２バスインターフェースユニット５と同様な内部構造により構成されることができる。
【０１００】
≪ローカルメモリのローカル変数を用いた共有リソースの排他的アクセス≫
図１に示すように、第１プロセッサ１と第２プロセッサ２とが共有リソースをスピンロック方式で排他的にアクセスするための第１ローカル変数１０１＿ＬＶが第１ローカルメモリ１０１の第１共有領域に格納され、同様に第１プロセッサ１と第２プロセッサ２とが共有リソースをスピンロック方式で排他的にアクセスするための第２ローカル変数２０１＿ＬＶが第２ローカルメモリ２０１の第２共有領域に格納される。第１ローカルメモリ１０１では第１ローカル変数１０１＿ＬＶが第１プロセッサ１と第２プロセッサ２とにより排他的にアクセスされ、第２ローカルメモリ２０１では第２ローカル変数２０１＿ＬＶが同様に第１プロセッサ１と第２プロセッサ２とにより排他的にアクセスされる。
【０１０１】
例えば、第１プロセッサ１又は第２プロセッサ２が、共有リソースのダイレクトメモリアクセスコントローラ（ＤＭＡＣ）６を使用して、共有リソースの外部周辺装置７０２と共有リソースの共有メモリ４０２との間のデータ転送を行う場合を想定する。これらの共通リソースが使用可能であれば、第１ローカルメモリ１０１の第１ローカル変数１０１＿ＬＶは、使用可能状態（“０”）となっている。
【０１０２】
今、第１プロセッサ１がこれらの共通リソースを使用する場合は、第１プロセッサ１が第１ローカルメモリ１０１の第１共有領域に格納された第１ローカル変数１０１＿ＬＶの値を読み出す。読み出された値は使用可能状態（“０”）となっているので、第１プロセッサ１はこれらの共通リソースが使用可能と判断して、第１プロセッサ１はこれらの共通リソースの使用を開始する。第１プロセッサ１による共通リソースの使用開始に際して、第１プロセッサ１は第１排他アクセス要求ｋｅｅｐ１の”１”レベルへのアサートによる第１ローカルメモリ１０１の第１共有領域の排他的アクセスにより第１ローカル変数１０１＿ＬＶの値を使用状態（”１”）に書き換える。この第１ローカル変数１０１＿ＬＶの値の使用状態（”１”）に書き換えによって、第１プロセッサ１が共有リソースのＤＭＡＣ６を使用して共有リソースの外部周辺装置７０２と共有リソースの共有メモリ４０２との間のデータ転送を行うことが可能となる。第１プロセッサ１による共有リソースの使用を終了する際には、第１プロセッサ１は第１ローカル変数１０１＿ＬＶの値を使用可能状態（“０”）に書き換える。
【０１０３】
第２プロセッサ２による共通リソースの使用開始に際して、第２プロセッサ２は第２排他アクセス要求ｋｅｅｐ２の”１”レベルへのアサートによる第１ローカルメモリ１０１の第１共有領域の排他的アクセスにより第１ローカル変数１０１＿ＬＶの値を使用状態（”１”）に書き換える。従って、第２プロセッサ２が共有リソースのＤＭＡＣ６、外部周辺装置７０２、共有メモリ４０２を使用することが可能となる。第２プロセッサ２による共有リソースの使用を終了する際には、第２プロセッサ２は第１ローカル変数１０１＿ＬＶの値を使用可能状態（“０”）に書き換える。
【０１０４】
≪ダイレクトメモリアクセスコントローラ６≫
ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）６は、第１プロセッサ１または第２プロセッサ２の指示により、第１ローカルメモリ１０１や第２ローカルメモリ２０１の共有領域や共有メモリ４０２から外部周辺装置７０２へデータを転送したり、外部周辺装置７０２から第１ローカルメモリ１０１や第２ローカルメモリ２０１の共有領域や共有メモリ４０２へデータを転送する。
【０１０５】
図４は、図１のデータプロセッサチップの内部のＤＭＡＣ６の内部構成を示す図である。同図に示すように、ＤＭＡＣ６は、ＤＭＡＣコア６１、ＤＭＡＣ要求調停ユニット６２、ＣＰＵインターフェース６３、内蔵メモリ６４、メモリインターフェース６５により構成されている。ＤＭＡＣコア６１は、第１ローカルメモリ１０１や第２ローカルメモリ２０１の共有領域や共有メモリ４０２からデータを受け取り、内部のデータバッファを経由して外部周辺装置７へデータを転送する。ＤＭＡＣ要求調停ユニット６２は、複数のＤＭＡ要求を調停してＤＭＡＣコア６１への要求信号を生成する。ＣＰＵインターフェース６３は、第１プロセッサ１又は第２プロセッサ２からのＤＭＡＣ６内部の種々のレジスタへのレジスタアクセスのリード・ライトの制御を行う。内蔵メモリ６４は、ＤＭＡＣ６の設定情報と転送情報とを格納する。メモリインターフェース６５は、第１プロセッサ１又は第２プロセッサ２やＤＭＡＣコア６１から内蔵メモリ６４へのメモリアクセスを制御する。ＤＭＡＣコア６１は、ＤＭＡ転送の制御を行うＤＭＡＣ制御回路６１１と、ＤＭＡＣ制御回路６１１が参照する種々のレジスタを含むワークレジスタ６１２とにより構成されている。ワークレジスタ６１２は、ＤＭＡ転送ビット数やデータサイズ等の設定モード情報を格納するモードレジスタ６１２Ａ、ＤＭＡ転送するバイト数の設定情報を格納するバイトカウンタ６１２Ｂ、ＤＭＡ転送先の開始アドレスを格納するディスティネーションアドレスレジスタ６１２Ｃ、ＤＭＡ転送元の開始アドレスを格納するソースアドレスレジスタ６１２Ｄ、内蔵メモリ６４のデータのロード・ストアの制御を行うメモリロード・ストア制御レジスタ６１２Ｅを含んでいる。内蔵メモリ６４は、離散配置された複数の領域への連続転送を可能とするリロード機能のためのリロードレジスタ６４Ａと、リロード機能を使用しないロード機能のためのロードレジスタ６４Ｂとを含んでいる。
【０１０６】
ＤＭＡＣ６のＤＭＡＣ要求調停ユニット６２には、第１プロセッサ１又は第２プロセッサ２からＤＭＡ転送の外部要求ＤＭＡ＿Ｒｅｑが供給される。ＤＭＡＣ６のＤＭＡＣ要求調停ユニット６２から第１プロセッサ１又は第２プロセッサ２には、ＤＭＡアクノリッジ信号ＤＭＡ＿ＡＣＫ、ＤＭＡアクティブ信号ＤＭＡ＿ＡＣＴ、ＤＭＡ終了信号ＤＭＡ＿ＥＮＤ、ＤＭＡ割り込み要求信号ＤＭＡ＿Ｉｎｔ＿Ｒｅｑ等が供給される。
【０１０７】
≪他の実施形態≫
図６は、本発明の他の１つの実施形態によるマルチプロセッサ・アーキテクチャーのデータ処理装置を示す図である。
【０１０８】
図６の実施形態が図１の実施形態と相違する点を以下に、説明する。
【０１０９】
図１の実施形態においては、第１ローカルバス１０２とシステムバスＳＢの第１システムバス１０５とは第１バスブリッジ１０３を介して接続され、第１バスブリッジ１０３は第１ローカルバス１０２の上の情報をシステムバスＳＢの第１システムバス１０５に伝達して、第２ローカルバス２０２とシステムバスＳＢの第２システムバス２０５とは第２バスブリッジ２０３を介して接続され、第２バスブリッジ２０３は第２ローカルバス２０２の上の情報をシステムバスＳＢの第２システムバス２０５に伝達して、第１バスインターフェースユニット３と第２バスインターフェースユニット５の第１ポートＰ１と第２ポートＰ２とは第１バスブリッジ１０３と第２バスブリッジ２０３とを介して第１ローカルメモリ１０１と第２ローカルメモリ２０１と接続され、第１ローカルバス１０２と第２ローカルバス２０２とは図２に示すように共有領域と非共有領域とに分割されている。
【０１１０】
しかし、図６の実施形態においては、第１バスインターフェースユニット３の第１ポートＰ１は第１ローカルバス１０２と直接接続され、第１バスインターフェースユニット３の第２ポートＰ２はシステムバスＳＢの第２システムバス２０５と第２バスブリッジ２０３を介して第２ローカルバス２０２と接続され、第２バスインターフェースユニット５の第２ポートＰ２は第２ローカルバス２０２と直接接続され、第２バスインターフェースユニット５の第１ポートＰ１はシステムバスＳＢの第１システムバス１０５と第１バスブリッジ１０３を介して第１ローカルバス１０２と接続され、第１ローカルメモリ１０１と第２ローカルメモリ２０１とは共有領域と非共有領域とに分割されても分割されていなくとも良い。従って、図６の実施形態においては、第１プロセッサ１から第１バスブリッジ１０３を介さずに第１バスインターフェースユニット３の第１ポートＰ１と第３ポートＰ３とを介した第１ローカルメモリ１０１へのアクセスが可能となり、また第２プロセッサ２から第２バスブリッジ２０３を介さずに第２バスインターフェースユニット５の第２ポートＰ２と第３ポートＰ３とを介した第２ローカルメモリ２０１へのアクセスが可能となる。
【０１１１】
また、図６の実施形態においては、第１バスブリッジ１０３は第１ローカルバス１０２の上の第１プロセッサ１から第１ローカルメモリ１０１や第２ローカルメモリ２０１へのアクセス情報を監視して、このアクセス情報をシステムバスＳＢの第１システムバス１０５や第２システムバス２０５に伝達して、第２バスブリッジ２０３は第２ローカルバス２０２の上の第２プロセッサ２から第１ローカルメモリ１０１や第２ローカルメモリ２０１へのアクセス情報を監視して、このアクセス情報をシステムバスＳＢの第１システムバス１０５や第２システムバス２０５に伝達する。尚、第１ローカルメモリ１０１と第２ローカルメモリ２０１とは、それぞれ複数のメモリバンクもしくは複数のメモリページに分割され、複数のメモリバンクもしくは複数のメモリページは第１プロセッサ１からの第１アドレス信号の上位ビットと第２プロセッサ１からの第２アドレス信号の上位ビットとにより指定される。図６では第１ローカルメモリ１０１は第１バンクＢａｎｋ１と第３バンクＢａｎｋ３とを含み、第２ローカルメモリ２０１は第２バンクＢａｎｋ２と第４バンクＢａｎｋ４とを含んでいる。第１ローカルメモリ１０１の第１バンクＢａｎｋ１は第１プロセッサ１からの第１アドレス信号の上位２ビットの”００”で指定され、第２ローカルメモリ２０１の第２バンクＢａｎｋ２は第２プロセッサ２からの第２アドレス信号の上位２ビットの”０１”で指定され、第１ローカルメモリ１０１の第３バンクＢａｎｋ３は第１プロセッサ１からの第１アドレス信号または第２プロセッサ１からの第２アドレス信号の上位２ビットの”１０”で指定され、第２ローカルメモリ２０１の第４バンクＢａｎｋ４は第１プロセッサ１からの第１アドレス信号または第２プロセッサ２からの第２アドレス信号の上位２ビットの”１１”で指定されることが可能である。
【０１１２】
更に、図６の実施形態においては、第１プロセッサ１による第１ローカルメモリ１０１の第１バンクＢａｎｋ１へのアクセスと第２プロセッサ２による第２ローカルメモリ２０１の第２バンクＢａｎｋ２へのアクセスとの並列実行が可能である。また、第１ローカルメモリ１０１の第３バンクＢａｎｋ３と第２ローカルメモリ２０１の第４バンクＢａｎｋ４とはデータ処理装置の内蔵共有メモリとして動作する。
【０１１３】
図７は図６のマルチプロセッサ・アーキテクチャーのデータ処理装置における第１ローカルメモリ１０１と第２ローカルメモリ２０１のバンク分割の一例を示す図である。
【０１１４】
図７の例では、プロセッサアドレスの上位２ビットの”００”で指定される第１ローカルメモリ１０１の第１バンクＢａｎｋ１は第１プロセッサ１のみにより第１バスブリッジ３とシステムバスＳＢの第１システムバス１０５と第２システムバス２０５とを介さずに第１ローカルバス１０２と第１バスインターフェースユニット３とを介してアクセス可能な非共有領域として使用され、プロセッサアドレスの上位２ビットの”０１”で指定される第２ローカルメモリ２０１の第２バンクＢａｎｋ２も第２プロセッサ２のみにより第２バスブリッジ５とシステムバスＳＢの第１システムバス１０５と第２システムバス２０５とを介さずに第２ローカルバス２０２と第２バスインターフェースユニット５を介してアクセス可能な非共有領域として使用され、プロセッサアドレスの上位２ビットの”１０”で指定される第１ローカルメモリ１０１の第３バンクＢａｎｋ３は第１プロセッサ１と第２プロセッサ２の両者により第１バスブリッジ３又は第２バスブリッジ５とシステムバスＳＢの第２システムバス２０５と第１バスインターフェースユニット３とを介してアクセス可能な共有領域として使用され、プロセッサアドレスの上位２ビットの”１１”で指定される第２ローカルメモリ２０１の第４バンクＢａｎｋ４は第１プロセッサ１と第２プロセッサ２の両者により第１バスブリッジ３又は第２バスブリッジ５とシステムバスＳＢの第１システムバス１０５と第２バスインターフェースユニット５とを介してアクセス可能な共有領域として使用される。
【０１１５】
また、第１ローカルメモリ１０１の第１バンクＢａｎｋ１と第３バンクＢａｎｋ３とはそれぞれ信号線１０７、１０８を介して第１バスインターフェースユニット３の第３ポートＰ３と第４ポートＰ４とに接続され、第２ローカルメモリ２０１の第２バンクＢａｎｋ２と第４バンクＢａｎｋ４とはそれぞれ信号線２０７、２０８を介して第２バスインターフェースユニット５の第３ポートＰ３と第４ポートＰ４とに接続されている。
【０１１６】
更に、図６の実施形態では、第１プロセッサ１から第１ローカルバス１０２、第１バスインターフェースの第１ポートＰ１・第３ポートＰ３を介しての第１ローカルメモリの第１バンクＢａｎｋ１へのアクセス又は第１プロセッサ１から第１ローカルバス１０２、第１バスブリッジ１０３、システムバスＳＢの第２システムバス２０５、第１バスインターフェースユニット３の第２ポートＰ２・第４ポートＰ４を介しての第１ローカルメモリの第３バンクＢａｎｋ３へのアクセスと並列に、第２プロセッサ２から第２ローカルバス２０２、第２バスインターフェースの第１ポートＰ１・第３ポートＰ３を介しての第２ローカルメモリの第２バンクＢａｎｋ２へのアクセス又は第２プロセッサ２から第２ローカルバス２０２、第２バスブリッジ１０３、システムバスＳＢの第１システムバス１０５、第２バスインターフェースユニット５の第１ポートＰ１・第４ポートＰ４を介しての第２ローカルメモリの第４バンクＢａｎｋ４へのアクセスを行うことができる。
【０１１７】
図８は、図６のデータプロセッサチップの内部の第１バスインターフェースユニット３と第２バスインターフェースユニット５の内部構成を示す図である。
【０１１８】
同図は第１バスインターフェースユニット３の内部構成を示しているが、第２バスインターフェースユニット５も第１バスインターフェースユニット３と同様に構成されている。
【０１１９】
図８が図３と相違しているのは、第１ローカルバス１０２の第１プロセッサ１からの第１アドレス信号ａｄｄｒ１の上位２ビットと第２システムバス２０５の第２プロセッサ２からの第２アドレス信号ａｄｄｒ１の上位２ビットとが優先順位判定回路３１３に供給されていることである。その結果、図７に示すように、プロセッサアドレスの上位２ビットに従って第１ローカルメモリ１０１の第１バンクＢａｎｋ１と第３バンクＢａｎｋ３と第２ローカルメモリ２０１の第２バンクＢａｎｋ２と第４バンクＢａｎｋ４とがアクセスされることができる。すなわち、第１プロセッサ１からの第１アドレスの上位２ビットにより第１ローカルメモリ１０１の非共有領域の第１バンクＢａｎｋ１が選択され、第１バスインターフェースユニット３の第３ポートＰ３の信号線１０７の第１プロセッサ１からの第１アドレスにより第１ローカルメモリ１０１の非共有領域の第１バンクＢａｎｋ１がアクセスされる。第２プロセッサ２からの第２アドレスの上位２ビットにより第２ローカルメモリ２０１の非共有領域の第２バンクＢａｎｋ２が選択され、第２バスインターフェースユニット５の第３ポートＰ３の信号線２０７の第２プロセッサ２からの第２アドレスにより第２ローカルメモリ２０１の非共有領域の第２バンクＢａｎｋ２がアクセスされる。また、第１プロセッサ１又は第２プロセッサ２からの第１アドレス又は第２アドレスの上位２ビットにより第１ローカルメモリ１０１の共有領域の第３バンクＢａｎｋ３が選択され、第１バスインターフェースユニット３の第４ポートＰ４の信号線１０８の第１プロセッサ１又は第２プロセッサ２からの第１アドレス又は第２アドレスにより第１ローカルメモリ１０１の共有領域の第３バンクＢａｎｋ３がアクセスされる。第１プロセッサ１又は第２プロセッサ２からの第１アドレス又は第２アドレスの上位２ビットにより第２ローカルメモリ２０１の共有領域の第４バンクＢａｎｋ４が選択され、第２バスインターフェースユニット５の第４ポートＰ４の信号線２０８の第１プロセッサ１又は第２プロセッサ２からの第１アドレス又は第２アドレスにより第２ローカルメモリ２０１の共有領域の第４バンクＢａｎｋ４がアクセスされる。
【０１２０】
また、図６の実施形態においても、第１排他アクセス要求ｋｅｅｐ１、第２排他アクセス要求ｋｅｅｐ２を使用すれば、第１プロセッサ１と第２プロセッサ２の両者によりアクセス可能な共有領域である第１ローカルメモリ１０１の第３バンクＢａｎｋ３と第２ローカルメモリ２０１の第４バンクＢａｎｋ４とにおいて第１プロセッサ１又は第２プロセッサ２による排他的なアクセスを行うことができる。また、第１プロセッサ１と第２プロセッサ２とが共有リソースをスピンロック方式で排他的にアクセスするための第１ローカル変数１０１＿ＬＶは第１ローカルメモリ１０１の第３バンクＢａｎｋ３に格納され、第１プロセッサ１と第２プロセッサ２とが共有リソースをスピンロック方式で排他的にアクセスするための第２ローカル変数２０１＿ＬＶは第２ローカルメモリ２０１の第４バンクＢａｎｋ４に格納され、第１排他アクセス要求ｋｅｅｐ１と第２排他アクセス要求ｋｅｅｐ２とを用いて第１プロセッサ１と第２プロセッサ２とが第１ローカルメモリ１０１の第３バンクＢａｎｋ３に格納された第１ローカル変数１０１＿ＬＶを排他的にアクセスして、第１排他アクセス要求ｋｅｅｐ１と第２排他アクセス要求ｋｅｅｐ２とを用いて第１プロセッサ１と第２プロセッサ２とが第２ローカルメモリ２０１の第４バンクＢａｎｋ４に格納された第２ローカル変数２０１＿ＬＶを排他的にアクセスすることができる。
【０１２１】
図９は、図８に示した第１バスインターフェースユニット３と第２バスインターフェースユニット５の動作を説明するための第１バスインターフェースユニット３の内部各部の波形図である。
【０１２２】
図９の波形図は、図５の波形図と類似しているが、サイクル２では第１バスインターフェースユニット３の第３ポートＰ３の信号線１０７から得られる第１プロセッサ１からのアドレス信号Ｃ１１により第１ローカルメモリ１０１の非共有領域の第１バンクＢａｎｋ１がアクセスされ、第２バスインターフェースユニット５の第４ポートＰ４の信号線２０８から得られる第２プロセッサ２からのアドレス信号Ｃ２１により第２ローカルメモリ２０１の共有領域の第４バンクＢａｎｋ４がアクセスされる。サイクル３では第２バスインターフェースユニット５の第３ポートＰ３の信号線２０７から得られる第２プロセッサ２からのアドレス信号Ｃ２２により第２ローカルメモリ２０１の非共有領域の第２バンクＢａｎｋ２がアクセスされ、第１バスインターフェースユニット３の第４ポートＰ４の信号線１０８から得られる第１プロセッサ１からのアドレス信号Ｃ１２により第１ローカルメモリ１０１の共有領域の第３バンクＢａｎｋ３がアクセスされる。サイクル４では、第１バスインターフェースユニット３の第４ポートＰ４の信号線１０８から得られる第１プロセッサ１からのアドレス信号Ｃ１３により第１ローカルメモリ１０１の共有領域の第３バンクＢａｎｋ３がアクセスされる。サイクル５では第２バスインターフェースユニット５の第４ポートＰ４の信号線２０８から得られる第２プロセッサ２からのアドレス信号Ｃ２３により第２ローカルメモリ２０１の共有領域の第４バンクＢａｎｋ４がアクセスされる。サイクル６からサイクル８の期間Ｔ１の間には第１バスインターフェースユニット３の第４ポートＰ４の信号線１０８から得られる第１プロセッサ１からのアドレス信号Ｃ１４、Ｃ１５により第１ローカルメモリ１０１の共有領域の第３バンクＢａｎｋ３が排他的にアクセスされ、サイクル９からサイクル１１の期間Ｔ２の間には第２バスインターフェースユニット５の第４ポートＰ４の信号線２０８から得られる第２プロセッサ２からのアドレス信号Ｃ２４、Ｃ２５、Ｃ２６により、第２ローカルメモリ２０１の共有領域の第４バンクＢａｎｋ４が排他的にアクセスされる。
【０１２３】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１２４】
例えば、データプロセッサチップ内部のプロセッサの数は２個以外の例えば４個とすることも可能であり、更に極めて多数のプロセッサを接続した超並列アーキテクチャーにも適用することも可能である。
【０１２５】
また本発明は、マイクロコントローラやマイクロプロセッサ以外に各種の用途に使用されるシステムＬＳＩやディジタル・アナログ・ミックスド・シグナルＬＳＩのように、マルチメディア画像データの高速処理のために複数のプロセッサを含むＬＳＩ全般に適用可能であることは言うまでもない。
【産業上の利用可能性】
【０１２６】
本発明は、複数のプロセッサを含むマルチプロセッサ・アーキテクチャーに広く実施することができる。
【図面の簡単な説明】
【０１２７】
【図１】図１は、本発明の１つの実施形態によるマルチプロセッサ・アーキテクチャーのデータ処理装置を示す図である。
【図２】図２は、図１に示した本発明の１つの実施形態によるマルチプロセッサ・アーキテクチャーのデータ処理装置における第１ローカルメモリと第２ローカルメモリとの非共有領域と共有領域のアドレスアロケーションを示す図である。
【図３】図３は、図１のデータプロセッサチップの内部の第１バスインターフェースユニットと第２バスインターフェースユニットの内部構成を示す図である。
【図４】図４は、図１のデータプロセッサチップの内部のダイレクトメモリアクセスコントローラの内部構成を示す図である。
【図５】図５は、図３に示した第１バスインターフェースユニットと第２バスインターフェースユニットの動作を説明するための第１バスインターフェースユニットの内部各部の波形図である。
【図６】図６は、本発明の他の１つの実施形態によるマルチプロセッサ・アーキテクチャーのデータ処理装置を示す図である。
【図７】図７は図６のマルチプロセッサ・アーキテクチャーのデータ処理装置における第１ローカルメモリと第２ローカルメモリのバンク分割の一例を示す図である。
【図８】図８は、図６のデータプロセッサチップの内部の第１バスインターフェースユニット３と第２バスインターフェースユニット５の内部構成を示す図である。
【図９】図９は、図８に示した第１バスインターフェースユニットと第２バスインターフェースユニットの動作を説明するための第１バスインターフェースユニット３の内部各部の波形図である。
【符号の説明】
【０１２８】
１  第１プロセッサ
２  第２プロセッサ
１０１  第１ローカルメモリ
２０１  第２ローカルメモリ
１０２  第１ローカルバス
２０２  第２ローカルバス
１０３  第１バスブリッジ
２０３  第２バスブリッジ
ＳＢ  システムバス
１０５  第１システムバス
２０５  第２システムバス
３  第１バスインターフェースユニット
５  第２バスインターフェースユニット
ｒｅｑ１  第１リクエスト信号
ａｃｋ１  第１アクノリッジ信号
ｒｅｑ２  第２リクエスト信号
ａｃｋ２  第２アクノリッジ信号
ｋｅｅｐ１  第１排他アクセス要求信号
ｋｅｅｐ２  第２排他アクセス要求信号
４  インターフェースニット
７  インターフェースニット
６  ＤＭＡＣ
８  プログラムメモリ
４０２  共有メモリ
７０２  外部周辺装置
【図１】
2008027305.tif 000003
【図２】
2008027305.tif 000004
【図３】
2008027305.tif 000005
【図４】
2008027305.tif 000006
【図５】
2008027305.tif 000007
【図６】
2008027305.tif 000008
【図７】
2008027305.tif 000009
【図８】
2008027305.tif 000010
【図９】
2008027305.tif 000011