JP5137171B2 - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP5137171B2
JP5137171B2 JP2006201036A JP2006201036A JP5137171B2 JP 5137171 B2 JP5137171 B2 JP 5137171B2 JP 2006201036 A JP2006201036 A JP 2006201036A JP 2006201036 A JP2006201036 A JP 2006201036A JP 5137171 B2 JP5137171 B2 JP 5137171B2
Authority
JP
Japan
Prior art keywords
bus
processor
local
interface unit
port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006201036A
Other languages
English (en)
Other versions
JP2008027305A (ja
Inventor
今朝巳 萩原
健 片岡
尚和 佐藤
俊一 岩田
賢一 清重
明彦 冨田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2006201036A priority Critical patent/JP5137171B2/ja
Priority to US11/779,189 priority patent/US7581054B2/en
Publication of JP2008027305A publication Critical patent/JP2008027305A/ja
Application granted granted Critical
Publication of JP5137171B2 publication Critical patent/JP5137171B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Description

本発明は、複数のプロセッサを有するデータ処理装置に関し、特に複数のプロセッサが共有して使用する共有メモリ等の共有リソースのアクセスを容易とするとともにそれぞれのプロセッサのローカルメモリを排他的にアクセスするのに有益な技術に関する。
下記非特許文献1には、それぞれローカルメモリを有する複数のプロセッサがトランザクターと呼ばれるバスブリッジを介してグローバルバスに接続されたマルチプロセッサアーキテクチャーが記載されている。グローバルバスにはグローバルメモリが接続され、グローバルバスと複数のバスブリッジとにはセントラルアービターが接続されている。セントラルアービターが、グローバルバス上のトランザクションを監視する。1つのマルチプロセッサが書き込みトランザクションを終了すると、セントラルアービターは処理順序で次のプロセッサのバスブリッジに読み出しトランザクションの生成を要求する。バスブリッジが読み出しトランザクションの要求を獲得した後、対応するプロセッサに割り込みを行い、ローカルメモリアドレスを獲得してグローバルメモリのデータをローカルメモリに格納する。
一方、従来よりマルチプロセッサの共有メモリを排他的にアクセスする方法として、スピンロック方式が知られている。スピンロック方式では、マルチプロセッサの一方のプロセッサが共有メモリをアクセスする前に共有メモリが使用可能かをロック変数から判断する。共有メモリが使用可能であれば、一方のプロセッサはロック変数を使用可能状態(例えば、“0”レベル)から使用状態(例えば、“1”レベル)に書き換えて、共有メモリを排他的にアクセスする。共有メモリのアクセスが完了すると、一方のプロセッサはロック変数を使用状態(例えば、“1”レベル)から使用可能状態(例えば、“0”レベル)に書き換える。スピンロック方式は、例えば、下記の非特許文献2に記載されている。
一方、ラウンドロビン方式では、前記スピンロック方式とは異なり、時分割マルチプレックススケジューリングによって複数のバスマスターにバスでの実行時間が順番にまた均等な複数の時間スロットが分割される。ラウンドロビン方式は、例えば、下記の非特許文献3に記載されている。
Jin Lee et al,"Orthogonalized Communication Architecture for MP−SoC with Global Bus", 2005 Proceedings Fifth International Workshop on System−on−Chip for Real−Time−Applications, 20−24 July 2005 PP.541−545. THOMAS E. ANDERSON, "The Performance of Spin Lock Alternatives for Shared−Memory Multiprocessors", IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL.1,NO.1,JANUARY 1990, PP.6−16. Chang Hee Pyoun et al, "THE EFFICENT BUS ARBITRATION SCHEME IN SOC ENVIRONMENT", 2003 Proceedings The 3rd International Workshop on System−on−Chip for Real−Time−Applications, 30 June −2 July 2003 PP.311−315.
マルチタスク環境での近年のパーフォーマンスの増大に対応するために、上記のようにプロセッサを複数備えたマルチプロセッサ・アーキテクチャーのデータ処理装置が知られている。
マルチプロセッサ・アーキテクチャーにおいては、一方のプロセッサでの処理と他方のプロセッサでの処理とがそれぞれのプロセッサのレジスタファイルを使用することで実行可能で、2つの処理の実行のために内蔵RAM、外部のメインメモリ、入出力装置、周辺装置の共有ハードウェアリソースの使用の競合が発生せずに2つの処理が独立であれば、2つの処理は並列に実行可能である。しかし、共有ハードウェアリソースの使用の競合が発生する場合には、2つの処理は並列に実行不可能となる。
一方、本発明に先立って本発明者等は、マルチプロセッサ・アーキテクチャーの一方のプロセッサによる処理結果を他方のプロセッサの処理に使用する連携処理を行うマイクロコントローラの開発に従事した。
この2つプロセッサ間の連携を行うに際して、一方のプロセッサによる処理結果を共有メモリに格納した後、他方のプロセッサが共有メモリをアクセスするのが最も単純な方法である。しかし、プロセッサとローカルメモリが接続されたローカルバス(CPUバス)と比較すると、共有メモリが接続されたシステムバスは低速度であるので、前記アクセス方法は低速度であることが本発明者等の検討により明らかとされた。
本発明は本発明に先立って本発明者等によって行われた上記のような検討の結果を基にしてなされたものであり、その目的とするところは、マルチプロセッサ・アーキテクチャーのデータ処理装置において、2つプロセッサ間の連携を行うに際に一方のローカルメモリを一方のプロセッサが高速アクセスできるとともに、他方のプロセッサからもアクセス可能とすることにある。
このように、一方のローカルメモリが他方のプロセッサからもアクセス可能となることにより、共有メモリだけでなくローカルメモリも共有ハードウェアリソースとなることにより、ローカルメモリの排他的アクセスを行うことが必要となることも本発明者等の検討により明らかとされた。
従って本発明の他の目的は、マルチプロセッサ・アーキテクチャーのデータ処理装置において、ローカルメモリの排他的アクセスを可能とすることにある。
また、ローカルメモリ、共有メモリ、周辺装置等の共有リソースの排他的アクセスを行う際には、スピンロック方式を実現するロック変数を低速度のシステムバスに接続された共有メモリに格納するのが最も単純な方法である。しかし、ロック変数の前記格納方法は低速度であることが、本発明者等の検討により明らかとされた。
従って本発明の更に他の目的は、マルチプロセッサ・アーキテクチャーのデータ処理装置において、ロック変数の高速な格納と高速の読み出しを可能とすることにある。
本発明の前記並びにその他の目的と新規な特徴とは、本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記の通りである。
すなわち、本発明のひとつの形態によるデータ処理装置は、第1プロセッサ(1)と、第2プロセッサ(2)と、第1ローカルメモリ(101)と、第2ローカルメモリ(201)と、第1ローカルバス(102)と、第2ローカルバス(202)と、第1バスブリッジ(103)と、第2バスブリッジ(203)と、第1システムバス(105)と第2システムバス(205)とを含むシステムバス(SB)と、第1バスインターフェースユニット(3)と、第2バスインターフェースユニット(5)とを具備する。
前記第1プロセッサ(1)には前記第1ローカルバス(102)を介して前記第1ローカルメモリ(101)が接続され、前記第2プロセッサ(2)には前記第2ローカルバス(202)を介して前記第2ローカルメモリ(201)が接続される。前記第1バスブリッジ(103)の一方のポートと他方のポートとは前記第1ローカルバス(102)と前記第1システムバス(105)とにそれぞれ接続され、前記第2バスブリッジ(203)の一方のポートと他方のポートとは前記第2ローカルバス(202)と前記第2システムバス(205)とにそれぞれ接続される。
前記第1バスインターフェースユニット(3)の第1ポート(P1)と第2ポート(P2)と第3ポート(P3)は前記第1システムバス(105)と前記第2システムバス(205)と前記第1ローカルメモリ(101)とにそれぞれ接続され、前記第2バスインターフェースユニット(5)の第1ポート(P1)と第2ポート(P2)と第3ポート(P3)は前記第1システムバス(105)と前記第2システムバス(205)と前記第2ローカルメモリ(201)とにそれぞれ接続される。
前記第1プロセッサ(1)が前記第2ローカルメモリ(201)へのアクセスを要求する第1リクエスト信号(req1)を前記第1ローカルバス(102)と前記第1バスブリッジ(103)と前記第1システムバス(105)とを介して前記第2バスインターフェースユニット(5)の前記第1ポート(P1)に供給する。前記第2バスインターフェースユニット(5)が前記第1リクエスト信号(req1)を受領すると、前記第2バスインターフェースユニット(5)は前記第1プロセッサ(1)による前記第2ローカルメモリ(201)へのアクセスを許可する第1アクノリッジ信号(ack1)を付与する。前記第1アクノリッジ信号(ack1)に応答して前記第1プロセッサ(1)は前記第1ローカルバス(102)と前記第1バスブリッジ(103)と前記第1システムバス(105)と前記第2バスインターフェースユニット(5)の前記第1ポート(P1)と前記第3ポート(P3)とを介して前記第2ローカルメモリ(201)をアクセスする。
前記第2プロセッサ(2)が前記第1ローカルメモリ(101)へのアクセスを要求する第2リクエスト信号(req2)を前記第2ローカルバス(202)と前記第2バスブリッジ(203)と前記第2システムバス(205)とを介して前記第1バスインターフェースユニット(3)の前記第2ポート(P2)に供給する。前記第1バスインターフェースユニット(3)が前記第2リクエスト信号(req2)を受領すると、前記第1バスインターフェースユニット(3)は前記第2プロセッサ(2)による前記第1ローカルメモリ(101)へのアクセスを許可する第2アクノリッジ信号(ack2)を付与する。前記第2アクノリッジ信号(ack2)に応答して前記第2プロセッサ(2)は前記第2ローカルバス(202)と前記第2バスブリッジ(203)と前記第2システムバス(205)と前記第1バスインターフェースユニット(3)の前記第2ポート(P2)と前記第3ポート(P3)とを介して前記第1ローカルメモリ(101)をアクセスする(図1参照)。
本発明の前記ひとつの形態による手段によれば、マルチプロセッサ・アーキテクチャーのデータ処理装置において、2つプロセッサ間の連携を行うに際に一方のローカルメモリを一方のプロセッサが高速アクセスできるとともに、他方のプロセッサからもアクセス可能となる。
本発明のひとつの好適な形態によるデータ処理装置では、前記第1プロセッサ(1)が前記第2ローカルメモリ(201)への排他的アクセスを要求する第1排他アクセス要求信号(keep1)を前記第1ローカルバス(102)と前記第1バスブリッジ(103)と前記第1システムバス(105)とを介して前記第2バスインターフェースユニット(5)の前記第1ポート(P1)に供給する。前記第2バスインターフェースユニット(5)が前記第1排他アクセス要求信号(keep1)を受領すると、前記第2バスインターフェースユニット(5)は前記第1プロセッサ(1)による前記第2ローカルメモリ(201)へのアクセスを許可する前記第1アクノリッジ信号(ack1)を付与する。前記第1アクノリッジ信号(ack1)に応答して前記第1プロセッサ(1)は前記第1ローカルバス(102)と前記第1バスブリッジ(103)と前記第1システムバス(105)と前記第2バスインターフェースユニット(5)の前記第1ポート(P1)と前記第3ポート(P3)とを介して前記第2ローカルメモリ(201)を排他的にアクセスする。前記第2プロセッサ(2)が前記第1ローカルメモリ(101)への排他的アクセスを要求する第2排他アクセス要求信号(keep2)を前記第2ローカルバス(202)と前記第2バスブリッジ(203)と前記第2システムバス(205)とを介して前記第1バスインターフェースユニット(3)の前記第2ポート(P2)に供給する。前記第1バスインターフェースユニット(3)が前記第2排他アクセス要求信号(keep2)を受領すると、前記第1バスインターフェースユニット(3)は前記第2プロセッサ(2)による前記第1ローカルメモリ(101)へのアクセスを許可する前記第2アクノリッジ信号(ack2)を付与する。前記第2アクノリッジ信号(ack2)に応答して前記第2プロセッサ(2)は前記第2ローカルバス(202)と前記第2バスブリッジ(203)と前記第2システムバス(205)と前記第1バスインターフェースユニット(3)の前記第2ポート(P2)と前記第3ポート(P3)とを介して前記第1ローカルメモリ(101)を排他的にアクセスする(図1参照)。
本発明の前記ひとつの好適な形態による手段によれば、マルチプロセッサ・アーキテクチャーのデータ処理装置において、ローカルメモリの排他的アクセスが可能となる。
本発明の更に好適な形態によるデータ処理装置では、前記第1プロセッサ(1)と前記第2プロセッサ(2)とが共有リソースをスピンロック方式で排他的にアクセスするための第1ローカル変数(101_LV)が前記第1ローカルメモリ(101)に格納され、前記第1プロセッサ(1)と前記第2プロセッサ(2)とが前記共有リソースをスピンロック方式で排他的にアクセスするための第2ローカル変数(201_LV)が前記第2ローカルメモリ(201)に格納され、前記第1ローカルメモリ(101)の前記第1ローカル変数(101_LV)は前記第1プロセッサ(1)と前記第2プロセッサ(2)とのいずれかにより排他的にアクセスされ、前記第2ローカルメモリ(201)の前記第2ローカル変数(201_LV)は前記第1プロセッサ(1)と前記第2プロセッサ(2)とのいずれかにより排他的にアクセスされる(図1参照)。
本発明の前記更に好適な形態による手段によれば、ロック変数の高速な格納と高速の読み出しが可能となる。
本発明の更に好適な形態によるデータ処理装置は、外部デバイス(402、702)と接続可能な外部インターフェースユニット(4、7)を更に具備する。前記外部インターフェースユニット(4、7)は、前記第1システムバス(105)と前記第2システムバス(205)とに接続される。前記第1プロセッサ(1)と前記第2プロセッサ(2)とのいずれかは前記第1ローカルメモリ(101)に格納された前記第1ローカル変数(101_LV)と前記第2ローカルメモリ(201)に格納された前記第2ローカル変数(201_LV)とのいずれかを用いて前記外部インターフェースユニット(4、7)を介して前記外部デバイス(402、702)を排他的にアクセスする(図1参照)。
本発明の更に好適な形態によるデータ処理装置では、前記第1ローカルメモリ(101)は、前記第1プロセッサ(1)のみによってアクセス可能な第1非共有領域と、前記第1プロセッサ(1)と前記第2プロセッサ(2)とによってアクセス可能な第1共有領域とを含み、前記第2ローカルメモリ(201)は、前記第2プロセッサ(2)のみによってアクセス可能な第2非共有領域と、前記第1プロセッサ(1)と前記第2プロセッサ(2)とによってアクセス可能な第2共有領域とを含むものである(図2参照)。
本発明の更に好適な形態によるデータ処理装置では、前記第1プロセッサ(1)による前記第1ローカルメモリ(101)の前記第1非共有領域へのアクセスと前記第2プロセッサ(2)による前記第2ローカルメモリ(201)の前記第2非共有領域へのアクセスとの並列実行が可能である(図1参照)。
本発明の更に好適な形態によるデータ処理装置では、前記第1ローカルメモリ(101)の前記第1共有領域と前記第2ローカルメモリ(201)の前記第2共有領域とはデータ処理装置の内蔵共有メモリとして動作する(図1参照)。
本発明の更に好適な形態によるデータ処理装置では、前記第1ローカルメモリ(101)の前記第1非共有領域および前記第1共有領域と前記第2ローカルメモリ(201)の前記第2非共有領域および前記第2共有領域とは、前記第1プロセッサ(1)および前記第2プロセッサ(2)からのアドレス信号によって指定される(図2参照)。
また、本発明の他のひとつの形態によるデータ処理装置は、第1プロセッサ(1)と、第2プロセッサ(2)と、第1ローカルメモリ(101)と、第2ローカルメモリ(201)と、第1ローカルバス(102)と、第2ローカルバス(202)と、第1バスブリッジ(103)と、第2バスブリッジ(203)と、第1システムバス(105)と第2システムバス(205)とを含むシステムバス(SB)と、第1バスインターフェースユニット(3)と、第2バスインターフェースユニット(5)とを具備する。
前記第1プロセッサ(1)には前記第1ローカルバス(102)が接続され、前記第2プロセッサ(2)には前記第2ローカルバス(202)が接続される。前記第1バスブリッジ(103)は前記第1ローカルバス(102)と前記第1システムバス(105)及び前記第2システムバス(205)との間に接続され、前記第2バスブリッジ(203)は前記第2ローカルバス(202)と前記第1システムバス(105)及び前記第2システムバス(205)との間に接続される。
前記第1バスインターフェースユニット(3)の第1ポート(P1)と第2ポート(P2)と第3ポート(P3)とは前記第1ローカルバス(102)と前記第2システムバス(205)と前記第1ローカルメモリ(101)にそれぞれ接続され、前記第2バスインターフェースユニット(5)の第1ポート(P1)と第2ポート(P2)と第3ポート(P3)とは前記第1システムバス(105)と前記第2ローカルバス(202)と前記第2ローカルメモリ(201)とにそれぞれ接続される。
前記第1プロセッサ(1)がアクセスを要求する第1リクエスト信号(req1)を前記第1ローカルバス(102)を介して前記第1バスインターフェースユニット(3)の前記第1ポート(P1)に供給する。前記第1バスインターフェースユニット(3)が前記第1リクエスト信号(req1)を受領すると、前記第1バスインターフェースユニット(3)は前記第1プロセッサ(1)による前記アクセスを許可する第1アクノリッジ信号(ack1)を付与する。前記第1アクノリッジ信号(ack1)に応答して前記第1プロセッサ(1)は前記第1ローカルバス(102)と前記第1バスインターフェースユニット(3)の前記第1ポート(P1)と前記第3ポート(P3)とを介して前記第1ローカルメモリ(101)をアクセスする。
前記第1プロセッサ(1)が前記アクセスを要求する前記第1リクエスト信号(req1)を前記第1ローカルバス(102)と前記第1バスブリッジ(103)と前記第1システムバス(105)とを介して前記第2バスインターフェースユニット(5)の前記第1ポート(P1)に供給する。前記第2バスインターフェースユニット(5)が前記第1リクエスト信号(req1)を受領すると、前記第2バスインターフェースユニット(5)は前記第1プロセッサ(1)による前記アクセスを許可する前記第1アクノリッジ信号(ack1)を付与する。前記第1アクノリッジ信号(ack1)に応答して前記第1プロセッサ(1)は前記第1ローカルバス(102)と前記第1バスブリッジ(103)と前記第1システムバス(105)と前記第2バスインターフェースユニット(5)の前記第1ポート(P1)と前記第3ポート(P3)とを介して前記第2ローカルメモリ(201)をアクセスする。
前記第2プロセッサ(2)がアクセスを要求する第2リクエスト信号(req2)を前記第2ローカルバス(202)を介して前記第2バスインターフェースユニット(5)の前記第2ポート(P2)に供給する。前記第2バスインターフェースユニット(5)が前記第2リクエスト信号(req2)を受領すると、前記第2バスインターフェースユニット(5)は前記第2プロセッサ(2)による前記アクセスを許可する第2アクノリッジ信号(ack2)を付与する。前記第2アクノリッジ信号(ack2)に応答して前記第2プロセッサ(2)は前記第2ローカルバス(202)と前記第2バスインターフェースユニット(5)の前記第2ポート(P2)と前記第3ポート(P3)とを介して前記第2ローカルメモリ(201)をアクセスする。
前記第2プロセッサ(2)が前記アクセスを要求する前記第2リクエスト信号(req2)を前記第2ローカルバス(202)と前記第2バスブリッジ(203)と前記第2システムバス(205)とを介して前記第1バスインターフェースユニット(3)の前記第2ポート(P2)に供給する。前記第1バスインターフェースユニット(3)が前記第2リクエスト信号(req2)を受領すると、前記第1バスインターフェースユニット(3)は前記第2プロセッサ(2)による前記アクセスを許可する前記第2アクノリッジ信号(ack2)を付与する。前記第2アクノリッジ信号(ack2)に応答して前記第2プロセッサ(2)は前記第2ローカルバス(202)と前記第2バスブリッジ(203)と前記第2システムバス(205)と前記第1バスインターフェースユニット(3)の前記第2ポート(P2)と前記第3ポート(P3)とを介して前記第1ローカルメモリ(101)をアクセスする(図6参照)。
本発明の前記他のひとつの形態による手段によれば、マルチプロセッサ・アーキテクチャーのデータ処理装置において、2つプロセッサ間の連携を行うに際に一方のローカルメモリを一方のプロセッサが高速アクセスできるとともに、他方のプロセッサからもアクセス可能となる。
本発明の他のひとつの好適な形態によるデータ処理装置では、前記第1プロセッサ(1)が前記第2ローカルメモリ(201)への排他的アクセスを要求する第1排他アクセス要求信号(keep1)を前記第1ローカルバス(102)と前記第1バスブリッジ(103)と前記第1システムバス(105)とを介して前記第2バスインターフェースユニット(5)の前記第1ポート(P1)に供給する。前記第2バスインターフェースユニット(5)が前記第1排他アクセス要求信号(keep1)を受領すると、前記第2バスインターフェースユニット(5)は前記第1プロセッサ(1)による前記第2ローカルメモリ(201)へのアクセスを許可する前記第1アクノリッジ信号(ack1)を付与する。前記第1アクノリッジ信号(ack1)に応答して前記第1プロセッサ(1)は前記第1ローカルバス(102)と前記第1バスブリッジ(103)と前記第1システムバス(105)と前記第2バスインターフェースユニット(5)の前記第1ポート(P1)と前記第3ポート(P3)とを介して前記第2ローカルメモリ(201)を排他的にアクセスする。前記第2プロセッサ(2)が前記第1ローカルメモリ(101)への排他的アクセスを要求する第2排他アクセス要求信号(keep2)を前記第2ローカルバス(202)と前記第2バスブリッジ(203)と前記第2システムバス(205)とを介して前記第1バスインターフェースユニット(3)の前記第2ポート(P2)に供給する。前記第1バスインターフェースユニット(3)が前記第2排他アクセス要求信号(keep2)を受領すると、前記第1バスインターフェースユニット(3)は前記第2プロセッサ(2)による前記第1ローカルメモリ(101)へのアクセスを許可する前記第2アクノリッジ信号(ack2)を付与する。前記第2アクノリッジ信号(ack2)に応答して前記第2プロセッサ(2)は前記第2ローカルバス(202)と前記第2バスブリッジ(203)と前記第2システムバス(205)と前記第1バスインターフェースユニット(3)の前記第2ポート(P2)と前記第3ポート(P3)とを介して前記第1ローカルメモリ(101)を排他的にアクセスする(図6参照)。
本発明の前記他のひとつの好適な形態による手段によれば、マルチプロセッサ・アーキテクチャーのデータ処理装置において、ローカルメモリの排他的アクセスが可能となる。
本発明の更に他の好適な形態によるデータ処理装置では、前記第1プロセッサ(1)と前記第2プロセッサ(2)とが共有リソースをスピンロック方式で排他的にアクセスするための第1ローカル変数(101_LV)が前記第1ローカルメモリ(101)に格納され、前記第1プロセッサ(1)と前記第2プロセッサ(2)とが前記共有リソースをスピンロック方式で排他的にアクセスするための第2ローカル変数(201_LV)が前記第2ローカルメモリ(201)に格納され、前記第1ローカルメモリ(101)の前記第1ローカル変数(101_LV)は前記第1プロセッサ(1)と前記第2プロセッサ(2)とのいずれかにより排他的にアクセスされ、前記第2ローカルメモリ(201)の前記第2ローカル変数(201_LV)は前記第1プロセッサ(1)と前記第2プロセッサ(2)とのいずれかにより排他的にアクセスされる(図6参照)。
本発明の前記更に他の好適な形態による手段によれば、ロック変数の高速な格納と高速の読み出しが可能となる。
本発明の更に他の好適な形態によるデータ処理装置は、外部デバイス(402、702)と接続可能な外部インターフェースユニット(4、7)を更に具備する。前記外部インターフェースユニット(4、7)は、前記第1システムバス(105)と前記第2システムバス(205)とに接続される。前記第1プロセッサ(1)と前記第2プロセッサ(2)とのいずれかには前記第1ローカルメモリ(101)に格納された前記第1ローカル変数(101_LV)と前記第2ローカルメモリ(201)に格納された前記第2ローカル変数(201_LV)とのいずれかにを用いて前記外部インターフェースユニット(4、7)を介して前記外部デバイス(402、702)を排他的にアクセスする(図6参照)。
また、本発明の他のひとつの好適な形態によるデータ処理装置は、第1プロセッサ(1)と、第2プロセッサ(2)と、第1ローカルメモリ(101)と、第2ローカルメモリ(201)と、第1ローカルバス(102)と、第2ローカルバス(202)と、第1バスブリッジ(103)と、第2バスブリッジ(203)と、第1システムバス(105)と第2システムバス(205)とを含むシステムバス(SB)と、第1バスインターフェースユニット(3)と、第2バスインターフェースユニット(5)とを具備する。
前記第1プロセッサ(1)には前記第1ローカルバス(102)が接続され、前記第2プロセッサ(2)には前記第2ローカルバス(202)が接続される。前記第1バスブリッジ(103)は前記第1ローカルバス(102)と前記第1システムバス(105)及び前記第2システムバス(205)との間に接続され、前記第2バスブリッジ(203)は前記第2ローカルバス(202)と前記第1システムバス(105)及び前記第2システムバス(205)との間に接続される。前記第1ローカルメモリ(101)は第1バンク(Bank1)と第2バンク(Bank3)とを含み、前記第2ローカルメモリ(201)は第3バンク(Bank2)と第4バンク(Bank)とを含む。
前記第1バスインターフェースユニット(3)の第1ポート(P1)と第2ポート(P2)と第3ポート(P3)と第4ポート(P4)とは前記第1ローカルバス(102)と前記第2システムバス(205)と前記第1ローカルメモリ(101)の前記第1バンク(Bank1)と前記第1ローカルメモリ(101)の前記第2バンク(Bank3)にそれぞれ接続され、前記第2バスインターフェースユニット(5)の第1ポート(P1)と第2ポート(P2)と第3ポート(P3)と第4ポート(P4)とは前記第1システムバス(105)と前記第2ローカルバス(202)と前記第2ローカルメモリ(201)の前記第3バンク(Bank2)と前記第2ローカルメモリ(201)の前記第4バンク(Bank4)とにそれぞれ接続される。
前記第1プロセッサ(1)がアクセスを要求する第1リクエスト信号(req1)を前記第1ローカルバス(102)を介して前記第1バスインターフェースユニット(3)の前記第1ポート(P1)に供給する。前記第1バスインターフェースユニット(3)が前記第1リクエスト信号(req1)を受領すると、前記第1バスインターフェースユニット(3)は前記第1プロセッサ(1)による前記アクセスを許可する前記第1アクノリッジ信号(ack1)を付与する。前記第1アクノリッジ信号(ack1)に応答して前記第1プロセッサ(1)は前記第1ローカルバス(102)と前記第1バスインターフェースユニット(3)の前記第1ポート(P1)と前記第3ポート(P3)とを介して前記第1ローカルメモリ(101)の前記第1バンク(Bank1)をアクセスする。
前記第1プロセッサ(1)が前記アクセスを要求する前記第1リクエスト信号(req1)を前記第1ローカルバス(102)と前記第1バスブリッジ(103)と前記第2システムバス(205)とを介して、前記第1バスインターフェースユニット(3)の前記第2ポート(P2)に供給する。前記第1バスインターフェースユニット(3)が前記第1リクエスト信号(req1)を受領すると、前記第1バスインターフェースユニット(3)は前記第1プロセッサ(1)による前記アクセスを許可する前記第1アクノリッジ信号(ack1)を付与する。前記第1アクノリッジ信号(ack1)に応答して前記第1プロセッサ(1)は、前記第1ローカルバス(102)と前記第1バスブリッジ(103)と前記第2システムバス(205)と前記第1バスインターフェースユニット(3)の前記第2ポート(P2)と前記第4ポート(P4)とを介して前記第1ローカルメモリ(101)の前記第2バンク(Bank3)をアクセスする。
前記第1プロセッサ(1)が前記アクセスを要求する前記第1リクエスト信号(req1)を前記第1ローカルバス(102)と前記第1バスブリッジ(103)と前記第1システムバス(105)とを介して前記第2バスインターフェースユニット(5)の前記第1ポート(P1)に供給する。前記第2バスインターフェースユニット(5)が前記第1リクエスト信号(req1)を受領すると、前記第2バスインターフェースユニット(5)は前記第1プロセッサ(1)による前記アクセスを許可する前記第1アクノリッジ信号(ack1)を付与する。前記第1アクノリッジ信号(ack1)に応答して前記第1プロセッサ(1)は前記第1ローカルバス(102)と前記第1バスブリッジ(103)と前記第1システムバス(105)と前記第2バスインターフェースユニット(5)の前記第1ポート(P1)と前記第4ポート(P4)とを介して前記第2ローカルメモリ(201)の前記第4バンク(Bank4)をアクセスする。
前記第2プロセッサ(2)がアクセスを要求する第2リクエスト信号(req2)を前記第2ローカルバス(202)を介して前記第2バスインターフェースユニット(5)の前記第2ポート(P2)に供給する。前記第2バスインターフェースユニット(5)が前記第2リクエスト信号(req2)を受領すると、前記第2バスインターフェースユニット(5)は前記第2プロセッサ(2)による前記アクセスを許可する前記第2アクノリッジ信号(ack2)を付与する。前記第2アクノリッジ信号(ack2)に応答して前記第2プロセッサ(2)は前記第2ローカルバス(202)と前記第2バスインターフェースユニット(5)の前記第2ポート(P2)と前記第3ポート(P3)とを介して前記第2ローカルメモリ(201)の前記第3バンク(Bank2)をアクセスする。
前記第2プロセッサ(2)が前記アクセスを要求する前記第2リクエスト信号(req2)を前記第2ローカルバス(202)と前記第2バスブリッジ(203)と前記第2システムバス(205)とを介して前記第1バスインターフェースユニット(3)の前記第2ポート(P2)に供給する。前記第1バスインターフェースユニット(3)が前記第2リクエスト信号(req2)を受領すると、前記第1バスインターフェースユニット(3)は前記第2プロセッサ(2)による前記アクセスを許可する前記第2アクノリッジ信号(ack2)を付与する。前記第2アクノリッジ信号(ack2)に応答して前記第2プロセッサ(2)は前記第2ローカルバス(202)と前記第2バスブリッジ(203)と前記第2システムバス(205)と前記第1バスインターフェースユニット(3)の前記第2ポート(P2)と前記第4ポート(P4)とを介して前記第1ローカルメモリ(101)の前記第2バンク(Bank3)をアクセスする。
前記第2プロセッサ(2)が前記アクセスを要求する前記第2リクエスト信号(req2)を前記第2ローカルバス(202)と前記第2バスブリッジ(203)と前記第1システムバス(105)とを介して前記第2バスインターフェースユニット(5)の前記第1ポート(P1)に供給する。前記第2バスインターフェースユニット(5)が前記第2リクエスト信号(req2)を受領すると、前記第2バスインターフェースユニット(5)は前記第2プロセッサ(2)による前記アクセスを許可する前記第2アクノリッジ信号(ack2)を付与する。前記第2アクノリッジ信号(ack2)に応答して前記第2プロセッサ(2)は前記第2ローカルバス(202)と前記第2バスブリッジ(203)と前記第1システムバス(105)と前記第2バスインターフェースユニット(5)の前記第1ポート(P1)と前記第4ポート(P4)とを介して前記第2ローカルメモリ(201)の前記第4バンク(Bank4)をアクセスする(図6参照)。
本発明の更に他の好適な形態によるデータ処理装置では、前記第1ローカルメモリ(101)は前記第1プロセッサ(1)のみによってアクセス可能な第1非共有領域(Bank1)と前記第1プロセッサ(1)と前記第2プロセッサ(2)とによってアクセス可能な第1共有領域(Bank3)とを含み、前記第2ローカルメモリ(201)は前記第2プロセッサ(2)のみによってアクセス可能な第2非共有領域(Bank2)と前記第1プロセッサ(1)と前記第2プロセッサ(2)とによってアクセス可能な第2共有領域(Bank4)とを含むものである(図7参照)。
本発明の更に他の好適な形態によるデータ処理装置では、前記第1プロセッサ(1)による前記第1ローカルメモリ(101)の前記第1非共有領域(Bank1)へのアクセスと前記第2プロセッサ(2)による前記第2ローカルメモリ(201)の前記第2非共有領域(Bank2)へのアクセスとの並列実行が可能である(図6参照)。
本発明の更に好適な形態によるデータ処理装置では、前記第1ローカルメモリ(101)の前記第1共有領域(Bank3)と前記第2ローカルメモリ(201)の前記第2共有領域(Bank4)とはデータ処理装置の内蔵共有メモリとして動作する(図6参照)。
本発明の更に好適な形態によるデータ処理装置では、前記第1ローカルメモリ(101)の前記第1非共有領域(Bank1)および前記第1共有領域(Bank3)と前記第2ローカルメモリ(201)の前記第2非共有領域(Bank2)および前記第2共有領域(Bank4)とは、前記第1プロセッサ(1)および前記第2プロセッサ(2)からのアドレス信号によって指定される(図7参照)。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。
すなわち、本発明によれば、マルチプロセッサ・アーキテクチャーのデータ処理装置において、2つプロセッサ間の連携を行うに際に一方のローカルメモリを一方のプロセッサが高速アクセスできるとともに、他方のプロセッサからもアクセス可能とすることができる。
また、本発明によれば、マルチプロセッサ・アーキテクチャーのデータ処理装置において、ローカルメモリの排他的アクセスを可能とすることもできる。
更に、本発明によれば、ロック変数の高速な格納と高速の読み出しを可能とすることができる。
≪マルチCPUコアのデータ処理装置の構成≫
図1は、本発明の1つの実施形態によるマルチプロセッサ・アーキテクチャーのデータ処理装置を示す図である。
大きな四角で示されたデータプロセッサチップは、第1プロセッサ1と、第2プロセッサ2と、第1ローカルメモリ101と、第2ローカルメモリ201と、第1ローカルバス102と、第2ローカルバス202と、第1バスブリッジ103と、第2バスブリッジ203と、第1システムバス105と第2システムバス205とを含むシステムバスSBと、第1バスインターフェースユニット3と、第2バスインターフェースユニット5とを具備する。
第1プロセッサ1には第1ローカルバス102を介して第1ローカルメモリ101が接続され、第2プロセッサ2には第2ローカルバス202を介して第2ローカルメモリ201が接続される。第1バスブリッジ103の一方のポートと他方のポートとは第1ローカルバス102とシステムバスSBの第1システムバス105とにそれぞれ接続され、第2バスブリッジ203の一方のポートと他方のポートとは第2ローカルバス202とシステムバスSBの第2システムバス205とにそれぞれ接続される。
第1バスインターフェースユニット3の第1ポートP1と第2ポートP2と第3ポートP3は第1システムバス105と第2システムバス205と第1ローカルメモリ101とにそれぞれ接続され、第2バスインターフェースユニット5の第1ポートP1と第2ポートP2と第3ポートP3は第1システムバス105と第2システムバス205と第2ローカルメモリ201とにそれぞれ接続される。
尚、システムバスSBの第1システムバス105と第2システムバス205とには、例えばROMもしくはフラッシュメモリ等の不揮発性メモリで構成されたプログラムメモリ8が接続され、プログラムメモリ8には第1プロセッサ1と第2プロセッサ2とが実行するためのプログラムが格納されている。プログラムメモリ8から第1プロセッサ1が読み出したプログラムの命令は第1プロセッサ1のレベル1の第1キャッシュメモリ11に格納され、プログラムメモリ8から第2プロセッサ2が読み出したプログラムの命令は第2プロセッサ2のレベル1の第2キャッシュメモリ21に格納される。システムバスSBには、ダイレクトメモリアクセスコントローラ(DMAC)6が接続される。DMAC6は、システムバスSBの第1システムバス105と第2システムバス205とDMACリードバス305とDMACライトバス405とに接続されている。システムバスSBには、第3バスインターフェースユニット4と第4バスインターフェースユニット7とが接続され、第3バスインターフェースユニット4には外部バス401を介して外部同期DRAMのような共有メモリ402が接続されることができ、第4バスインターフェースユニット7には外部バス701を介して外部周辺装置702が接続されることができる。
従って、図1に示したマルチプロセッサ・アーキテクチャーのデータ処理装置において、第1プロセッサ1と第2プロセッサに対して、第3バスインターフェースユニット4に接続される共有メモリ402と、第4バスインターフェースユニット7に接続される外部周辺装置702とが共有ハードウェアリソースとなるとともに、後に詳述するように第1ローカルメモリ101の一部の記憶領域と第2ローカルメモリ201の一部の記憶領域も共有リソースとなる。
また、図1に示したマルチプロセッサ・アーキテクチャーのデータ処理装置において、第1ローカルバス102、第1ローカルバス202、システムバスSBの第1システムバス105と第2システムバス205には第1プロセッサ1又は第2プロセッサ2からのコマンドやアドレスが転送されるとともに第1プロセッサ1又は第2プロセッサ2と第1ローカルメモリ101や第2ローカルメモリ201や共有メモリ402との間のデータがその間で双方向に転送されることができ、システムバスSBのDMACリードバス305にはDMAC6によるDMA転送元のアドレスが転送されDMA転送元からのデータも転送され、システムバスSBのDMACライトバス305にはDMAC6によるDMA転送先のアドレスが転送されDMA転送先へのデータも転送される。
尚、レベル1の第1キャッシュメモリ11と第2キャッシュメモリ21とはコピーバック方式でもライトスルー方式でも動作する。例えばデータプロセッサチップのパワーオンリセット等のシステム初期化に際して格別のモード設定を行わなければ、レベル1の第1キャッシュメモリ11と第2キャッシュメモリ21とはデォルト指定のコピーバック方式で動作する。従って、コピーバック方式では第1プロセッサ1と第2プロセッサ2とからの非共有のデータの書き込みは、レベル1の第1キャッシュメモリ11と第2キャッシュメモリ21と、第1ローカルメモリ101の非共有領域と、第2ローカルメモリ201の非共有領域にのみ書き込まれて、共有メモリ402や第1ローカルメモリ101の共有領域や第2ローカルメモリ201の共有領域には書き込まれることはない。また、第1プロセッサ1と第2プロセッサ2とからの共有のデータの書き込みは、レベル1の第1キャッシュメモリ11と第2キャッシュメモリ21と、第1ローカルメモリ101の共有領域と、第2ローカルメモリ201の共有領域にのみ書き込まれて、共有メモリ402には書き込まれることはない。一方、データプロセッサチップのシステム初期化に際してライトスルー方式のモードを指定すると、レベル1の第1キャッシュメモリ11と第2キャッシュメモリ21とはライトスルー方式で動作する。従って、ライトスルー方式では第1プロセッサ1と第2プロセッサ2とからの非共有又は共有のデータの書き込みは、レベル1の第1キャッシュメモリ11と第2キャッシュメモリ21とに書き込まれた後、共有メモリ402や第1ローカルメモリ101や第2ローカルメモリ201にも書き込まれる。
≪プロセッサの機能≫
第1プロセッサ1と第2プロセッサ2とは、プログラムメモリ8からプログラムの命令を読み出して、命令で指示された処理を実行する。処理としては、第1プロセッサ1内部の演算器とレジスタファイルや第2プロセッサ2内部の演算器とレジスタファイルと第1ローカルメモリ101の非共有領域(第1プロセッサ1が排他的に使用する領域)や第2ローカルメモリ201の非共有領域(第2プロセッサ2が排他的に使用する領域)のみを使用するマルチプロセッサの非共有リソースを使用する非共有処理(排他的処理)がある。第1プロセッサ1又は第2プロセッサによる非共有処理のためには、第1ローカルバス102又は第2ローカルバス202が使用される。次の処理は、第1ローカルメモリ101や第2ローカルメモリ201の共有領域や共有メモリ402からデータを読み出したり、第1ローカルメモリ101や第2ローカルメモリ201の共有領域や共有メモリ402へデータを書き込んだり、第1ローカルメモリ101や第2ローカルメモリ201の共有領域や共有メモリ402から外部周辺装置702へデータを転送したり、外部周辺装置702から第1ローカルメモリ101や第2ローカルメモリ201の共有領域や共有メモリ402へデータを転送するような、マルチプロセッサの共有リソースを使用する共有処理がある。第1プロセッサ1又は第2プロセッサ2による共有処理のためには、第1ローカルバス102と第2ローカルバス202だけではなく第1バスブリッジ103と第2バスブリッジ203と第1システムバス105と第2システムバス205とバスインターフェースユニット3、4、5、7とDMAC6等の共有リソースとが使用される。
第1プロセッサ1は、共有処理のために第1ローカルメモリ101や第2ローカルメモリ201の共有領域や共有メモリ402やDMAC6等のマルチプロセッサの共有リソースを使用するに際して、使用に先行して第1リクエスト信号req1を発行する。
第2プロセッサ2も、第1プロセッサ1と同様に共有処理のために第1ローカルメモリ101や第2ローカルメモリ201の共有領域や共有メモリ402やダイレクトメモリアクセスコントローラ6等のマルチプロセッサの共有リソースを使用するに際して、使用に先行して第2リクエスト信号req2を発行する。
更に第1プロセッサ1は、マルチプロセッサの共有リソースを使用するに際して、例えばスピンロック方式のためのロック変数等を排他的にアクセスする場合には、排他アクセスに先行して第1排他アクセス要求信号keep1を発行する。
更に第2プロセッサ2も、第1プロセッサ1と同様にマルチプロセッサの共有リソースを使用するに際して、例えばスピンロック方式のためのロック変数等を排他的にアクセスする場合には、排他アクセスに先行して第2排他アクセス要求信号keep2を発行する。
≪ローカルメモリ≫
第1ローカルメモリ101と第2ローカルメモリ201とは、非共有領域と共有領域とを持つことは上記で説明した通りである。
図2は、図1に示した本発明の1つの実施形態によるマルチプロセッサ・アーキテクチャーのデータ処理装置における第1ローカルメモリ101と第2ローカルメモリ201との非共有領域と共有領域のアドレスアロケーション(領域パーティション)を示す図である。
同図に示すようにプロセッサアドレスが“0x01000000”の開始アドレスから“0x01FFFFFF”の終了アドレスまでのアドレス領域が、第1プロセッサ1のみによって第1ローカルバス102を経由して第1ローカルメモリ101が排他的にアクセスされる非共有処理に使用される第1ローカルメモリ101の第1非共有領域である。次に、プロセッサアドレスが“0x02000000”の開始アドレスから“0x02FFFFFF”の終了アドレスまでのアドレス領域が、第2プロセッサ2のみによって第2ローカルバス202を経由して第2ローカルメモリ201が排他的にアクセスされる非共有処理に使用される第2ローカルメモリ201の第2非共有領域である。第1プロセッサ1から第1ローカルバス102を経由して第1ローカルメモリ101の第1非共有領域へのアクセスと第2プロセッサ2から第2ローカルバス202を経由して第2ローカルメモリ201の第2非共有領域へのアクセスとでは、システムバスSBの第1システムバス105又は第2システムバス205と第1バスインターフェースユニット3又は第2バスインターフェースユニット5とが使用されないので、高速アクセスが可能となると言う効果を奏する。また、第1プロセッサ1から第1ローカルバス102を経由して第1ローカルメモリ101の第1非共有領域へのアクセスと、第2プロセッサ2から第2ローカルバス202を経由して第2ローカルメモリ201の第2非共有領域へのアクセスとは、独立であるので、並列実行が可能となるとの効果も奏する。
更に、プロセッサアドレスが“0x11000000”の開始アドレスから“0x11FFFFFF”の終了アドレスまでのアドレス領域が、第1プロセッサ1と第2プロセッサ2の両者によって第1バスブリッジ103又は第2バスブリッジ203とシステムバスSBの第1システムバス105又は第2システムバス205と第1バスインターフェースユニット3とを経由して第1ローカルメモリ101が共有アクセスされる共有処理に使用される第1ローカルメモリ101の第1共有領域である。最後に、プロセッサアドレスが“0x12000000”の開始アドレスから“0x12FFFFFF”の終了アドレスまでのアドレス領域が、第1プロセッサ1と第2プロセッサ2の両者によって第1バスブリッジ103又は第2バスブリッジ203とシステムバスSBの第1システムバス105又は第2システムバス205と第2バスインターフェースユニット5とを経由して第2ローカルメモリ201が共有アクセスされる共有処理に使用される第2ローカルメモリ201の第2共有領域である。
従って、第3バスインターフェースユニット4に接続される外部同期型DRAMのような共有メモリ402を経由しての第1プロセッサ1と第2プロセッサ2との間の低速連携と比較すると、第1バスインターフェースユニット3と第1共有領域を含む第1ローカルメモリ101との接続と、第2バスインターフェースユニット5と第2共有領域を含む第2ローカルメモリ201との接続と、システムバスSBによる第1プロセッサ1と第2プロセッサ2と第1バスインターフェースユニット3と第2バスインターフェースユニット5の相互接続とにより、第1プロセッサ1と第2プロセッサ2との間の高速連携が可能となると言う効果を奏する。更に、第1ローカルメモリ101の第1共有領域と第2ローカルメモリ201の第2共有領域とは、データプロセッサチップの内蔵共有メモリとして動作することができるとの効果も奏する。
≪バスブリッジ≫
第1バスブリッジ103は、第1プロセッサ1からマルチプロセッサの共有リソースを使用するに際して第1ローカルバス103に第1リクエスト信号req1が発行された場合に、第1ローカルバス103上の第1リクエスト信号req1、命令、データ、アドレス等の情報をシステムバスSBの第1システムバス105へ転送する。第2バスブリッジ203も、第1バスブリッジ103と同様に第2プロセッサ2からマルチプロセッサの共有リソースを使用するに際して第2ローカルバス203に第2リクエスト信号req2が発行された場合に、第2ローカルバス203上の第2リクエスト信号req2、命令、データ、アドレス等の情報をシステムバスSBの第2システムバス205へ転送する。第1リクエスト信号req1と第2リクエスト信号req2とが発行されない場合には、システムバスSBの第1システムバス105と第2システムバス205へは情報が転送されないので、システムバスSB上の不必要なバストラフィックを低減することが可能となる。
≪バスインターフェースユニット≫
≪第1バスインターフェースユニット3≫
第1バスブリッジ103又は第2バスブリッジ203を介してシステムバスSBの第1システムバス105又は第2システムバス205に第1リクエスト信号req1又は第2リクエスト信号req2が転送されることにより、第1バスインターフェースユニット3が活性化される。
第1リクエスト信号req1のみが転送された場合には、第1バスインターフェースユニット3は第1リクエスト信号req1を受領して、第1プロセッサ1による第1ローカルメモリ101へのアクセスを許可する第1アクノリッジ信号ack1を第1バスインターフェースユニット3が発行する。第1アクノリッジ信号ack1に応答して第1プロセッサ1は、第1ローカルバス102、第1バスブリッジ103、システムバスSBの第1システムバス105、第1バスインターフェースユニット3の第1ポートP1・第3ポートP3を介して、第1ローカルメモリ101の“0x11000000”の開始アドレスから“0x11FFFFFF”の終了アドレスまでのアドレス領域の第1共有領域をアクセスする。
第2リクエスト信号req2のみが転送された場合には、第1バスインターフェースユニット3は第2リクエスト信号req2を受領して、第2プロセッサ2による第1ローカルメモリ101へのアクセスを許可する第2アクノリッジ信号ack2を第1バスインターフェースユニット3が発行する。第2アクノリッジ信号ack2に応答して第2プロセッサ2は、第2ローカルバス202、第2バスブリッジ203、システムバスSBの第2システムバス205、第1バスインターフェースユニット3の第2ポートP2・第3ポートP3を介して、第1ローカルメモリ101の“0x11000000”の開始アドレスから“0x11FFFFFF”の終了アドレスまでのアドレス領域の第1共有領域をアクセスする。
第1プロセッサ1と第2プロセッサ2とから第1排他アクセス要求信号keep1と第2排他アクセス要求信号keep2とが発行されること無く第1リクエスト信号req1と第2リクエスト信号req2とが同時に発行されたと想定する。すると、第1バスインターフェースユニット3は例えばラウンドロビン方式の時分割マルチプレックススケージューリングで第1リクエスト信号req1と第2リクエスト信号req2との一方を選択する。この選択された一方が第1リクエスト信号req1であれば、第1バスインターフェースユニット3は第1プロセッサ1に第1アクノリッジ信号ack1を発行する。すると、第1アクノリッジ信号ack1に応答して第1プロセッサ1は第1ローカルバス102、第1バスブリッジ103、システムバスSBの第1システムバス105、第1バスインターフェースユニット3の第1ポートP1・第3ポートP3を介して、第1ローカルメモリ101の“0x11000000”の開始アドレスから“0x11FFFFFF”の終了アドレスまでのアドレス領域の第1共有領域をアクセスする。
第1プロセッサ1と第2プロセッサ2とから第1リクエスト信号req1と第2リクエスト信号req2とが同時に発行され、第1プロセッサ1と第2プロセッサ2とから第1排他アクセス要求信号keep1と第2排他アクセス要求信号keep2とが同時に発行されたと想定する。すると、第1バスインターフェースユニット3は、例えばラウンドロビン方式の時分割マルチプレックススケジューリングで第1リクエスト信号req1と第2リクエスト信号req2との一方を選択する。この選択された一方が第1リクエスト信号req1であれば、第1バスインターフェースユニット3は、第1プロセッサ1に第1アクノリッジ信号ack1を発行する。すると、第1アクノリッジ信号ack1に応答して第1プロセッサ1は第1ローカルバス102、第1バスブリッジ103、システムバスSBの第1システムバス105、第1バスインターフェースユニット3の第1ポートP1・第3ポートP3を介して、第1ローカルメモリ101の“0x11000000”の開始アドレスから“0x11FFFFFF”の終了アドレスまでのアドレス領域の第1共有領域をアクセスする。以降、第1プロセッサ1が第1排他アクセス要求信号keep1を発行しなくなるまで、第1バスインターフェースユニット3は第2リクエスト信号req2よりも第1リクエスト信号req1の方を優先して、第1プロセッサ1に第1アクノリッジ信号ack1を発行する。
また、第1バスインターフェースユニット3を使用することにより、第1プロセッサ1から第1ローカルバス102を経由して第1ローカルメモリ101の第1非共有領域へのアクセスと並列に、第2プロセッサ2から第2ローカルバス202、第2バスブリッジ203、システムバスSBの第2システムバス205、第1バスインターフェースユニット3の第2ポートP2・第3ポートP3を介して第2ローカルメモリ201の第2共有領域へのアクセスを行うことができる。
第1バスインターフェースユニット3と第2バスインターフェースユニット5とを使用することにより、第1プロセッサ1から第1ローカルバス102、第1バスブリッジ103、システムバスSBの第1システムバス105、第1バスインターフェースユニット3の第1ポートP1・第3ポートP3を介して第1ローカルメモリ101の第1共有領域へのアクセスと並列に、第2プロセッサ2から第2ローカルバス202、第2バスブリッジ203、システムバスSBの第2システムバス205、第2バスインターフェースユニット5の第2ポートP2・第3ポートP3を介して第2ローカルメモリ201の第2共有領域へのアクセスへのアクセスを行うこともできる。
≪第2バスインターフェースユニット5≫
第1バスブリッジ103又は第2バスブリッジ203を介してシステムバスSBの第1システムバス105又は第2システムバス205に第1リクエスト信号req1又は第2リクエスト信号req2が転送されることにより、第1バスインターフェースユニット3と同様に第2バスインターフェースユニット5が活性化される。
第2リクエスト信号req2のみが転送された場合には、第2バスインターフェースユニット5は第2リクエスト信号req2を受領して、第2プロセッサ2による第2ローカルメモリ201へのアクセスを許可する第2アクノリッジ信号ack2を第2バスインターフェースユニット5が発行する。第2アクノリッジ信号ack2に応答して第2プロセッサ2は第2ローカルバス202、第2バスブリッジ203、システムバスSBの第2システムバス205、第2バスインターフェースユニット5の第2ポートP2・第3ポートP3を介して、第2ローカルメモリ201の“0x12000000”の開始アドレスから“0x12FFFFFF”の終了アドレスまでのアドレス領域の第2共有領域をアクセスする。
第1リクエスト信号req1のみが転送された場合には、第2バスインターフェースユニット5は第1リクエスト信号req1を受領して、第1プロセッサ1による第2ローカルメモリ201へのアクセスを許可する第1アクノリッジ信号ack1を第2バスインターフェースユニット5が発行する。第1アクノリッジ信号ack1に応答して第1プロセッサ1は第1ローカルバス102、第1バスブリッジ203、システムバスSBの第1システムバス105、第2バスインターフェースユニット5の第1ポートP1・第3ポートP3を介して、第2ローカルメモリ201の“0x12000000”の開始アドレスから“0x12FFFFFF”の終了アドレスまでのアドレス領域の第2共有領域をアクセスする。
第1プロセッサ1と第2プロセッサ2とから第1排他アクセス要求信号keep1と第2排他アクセス要求信号keep2とが発行されること無く第1リクエスト信号req1と第2リクエスト信号req2とが同時に発行されたと想定する。すると、第2バスインターフェースユニット5は例えばラウンドロビン方式の時分割マルチプレックススケージューリングで第1リクエスト信号req1と第2リクエスト信号req2との一方を選択する。この選択された一方が第2リクエスト信号req2であれば、第2バスインターフェースユニット5は第2プロセッサ2に第2アクノリッジ信号ack2を発行する。すると、第2アクノリッジ信号ack2に応答して第2プロセッサ2は第2ローカルバス202、第2バスブリッジ203、システムバスSBの第2システムバス205、第2バスインターフェースユニット5の第2ポートP2・第3ポートP3を介して、第2ローカルメモリ201の“0x12000000”の開始アドレスから“0x12FFFFFF”の終了アドレスまでのアドレス領域の第2共有領域を排他的にアクセスする。
第1プロセッサ1と第2プロセッサ2とから第1リクエスト信号req1と第2リクエスト信号req2とが同時に発行され、第1プロセッサ1と第2プロセッサ2とから第1排他アクセス要求信号keep1と第2排他アクセス要求信号keep2とが同時に発行されたと想定する。すると、第2バスインターフェースユニット5は、例えばラウンドロビン方式の時分割マルチプレックススケジューリングで第1リクエスト信号req1と第2リクエスト信号req2との一方を選択する。この選択された一方が第2リクエスト信号req2であれば、第2バスインターフェースユニット5は、第2プロセッサ2に第2アクノリッジ信号ack2を発行する。すると、第2アクノリッジ信号ack2に応答して第2プロセッサ2は第2ローカルバス202、第2バスブリッジ203、システムバスSBの第2システムバス205、第2バスインターフェースユニット5の第2ポートP2・第3ポートP3を介して、第2ローカルメモリ201の“0x12000000”の開始アドレスから“0x12FFFFFF”の終了アドレスまでのアドレス領域の第2共有領域をアクセスする。以降、第2プロセッサ2が第2排他アクセス要求信号keep2を発行しなくなるまで、第2バスインターフェースユニット5は第1リクエスト信号req1よりも第2リクエスト信号req2の方を優先して、第2プロセッサ2に第2アクノリッジ信号ack2を発行する。
また、第2バスインターフェースユニット5を使用することにより、第2プロセッサ2から第2ローカルバス202を経由して第2ローカルメモリ201の第2非共有領域へのアクセスと並列に、第1プロセッサ1から第1ローカルバス102、第1バスブリッジ103、システムバスSBの第1システムバス105、第2バスインターフェースユニット5の第1ポートP1・第3ポートP3を介して第1ローカルメモリ201の第1共有領域へのアクセスを行うことができる。
≪バスインターフェースユニットの内部構成≫
図3は、図1のデータプロセッサチップの内部の第1バスインターフェースユニット3と第2バスインターフェースユニット5の内部構成を示す図である。
同図は第1バスインターフェースユニット3の内部構成を示しているが、第2バスインターフェースユニット5も第1バスインターフェースユニット3と同様に構成されている。第1システムバス105の第1リクエスト信号req1はAND回路311の一方の入力に供給され、AND回路311の他方の反転入力にはAND回路310の第2リクエストマスク信号reqmsk2が供給される。AND回路311の第1リクエスト出力信号req1_iは優先順位判定回路313の一方の入力端子に供給される。第2システムバス205の第2リクエスト信号req2はAND回路312の一方の入力に供給され、AND回路312の他方の反転入力にはAND回路305の第1リクエストマスク信号reqmsk1が供給される。AND回路312の第2リクエスト出力信号req2_iは優先順位判定回路313の他方の入力端子に供給される。第1システムバス105の第1排他アクセス要求信号keep1はAND回路301、302とOR回路303とを介して第1データラッチ回路304のデータ入力Dに供給され、第1データラッチ回路304のデータ出力QはAND回路305を介して第1リクエストマスク信号reqmsk1としてAND回路312の他方の反転入力に供給される。第2システムバス205の第2排他アクセス要求信号keep2はAND回路306、307とOR回路308とを介して第2データラッチ回路309のデータ入力Dに供給され、第2データラッチ回路309のデータ出力QはAND回路310を介して第2リクエストマスク信号reqmsk2としてAND回路311の他方の反転入力に供給される。また、優先順位判定回路313からの第1アクノリッジ信号ack1はAND回路302とOR回路303とを介して第1データラッチ回路304のデータ入力Dに供給され、優先順位判定回路313からの第2アクノリッジ信号ack2はAND回路307とOR回路308とを介して第2データラッチ回路309のデータ入力Dに供給される。
≪バスインターフェースユニットによるバス調停≫
図5は、図3に示した第1バスインターフェースユニット3と第2バスインターフェースユニット5の動作を説明するための第1バスインターフェースユニット3の内部各部の波形図である。
図5のサイクル2で第1システムバス105の第1リクエスト信号req1と第2システムバス205の第2リクエスト信号req2とが”1”レベルにアサートされると、AND回路311の第1リクエスト出力信号req1_iとAND回路312の第2リクエスト出力信号req2_iとは”1”レベルにアサートされる。AND回路311の”1”レベルの第1リクエスト出力信号req1_iとAND回路312の”1”レベルの第2リクエスト出力信号req2_iとは優先順位判定回路313の2入力に供給されるが、ラウンドロビン方式で図5のサイクル2とサイクル4とでは一方(例えば、AND回路311の”1”レベルの第1リクエスト出力信号req1_i)が優先順位判定回路313によって選択され、第1アクノリッジ信号ack1が”1”レベルにアサートされる。しかし、図5のサイクル3とサイクル5では他方(AND回路312の”1”レベルの第2リクエスト出力信号req2_i)が選択され、第2アクノリッジ信号ack2が”1”レベルにアサートされる。その結果、サイクル2とサイクル4とでは第1プロセッサ1からのアドレス信号C11、C12により第1ローカルメモリ101の第1共有領域がアクセスされ、サイクル3とサイクル5とでは第2プロセッサ2からのアドレス信号C21、C22により第2ローカルメモリ201の第2共有領域がアクセスされる。
図5のサイクル6に示すように第1システムバス105の第1リクエスト信号req1と第2システムバス205の第2リクエスト信号req2とが”1”レベルに同時にアサートされ、更に第1システムバス105の第1排他アクセス要求信号keep1と第2システムバス205の第2排他アクセス要求信号keep2とが同時に”1”レベルにアサートされたと想定する。すると、ラウンドロビン方式でAND回路311の”1”レベルの第1リクエスト出力信号req1_iが優先順位判定回路313によって選択されて、第1アクノリッジ信号ack1が”1”レベルにアサートされるので、AND回路302の出力は”1”レベルにアサートされ、サイクル7で第1データラッチ回路304のデータ出力Qも”1”レベルにアサートされる。従って、サイクル7でAND回路305の出力の第1リクエストマスク信号reqmsk1も”1”レベルにアサートされ、AND回路312の第2リクエスト出力信号req2_iが”0”レベルにネゲートされる一方、AND回路311の第1リクエスト出力信号req1_iの”1”レベルのアサートは保持される。その結果、サイクル6からサイクル8の期間T1の間に第1アクノリッジ信号ack1が”1”レベルにアサートされ、第2アクノリッジ信号ack2が”0”レベルにネゲートされて、第1プロセッサ1が共有リソースを排他的にアクセスするものとなる。従って、サイクル6からサイクル8の期間T1の間には第1プロセッサ1からのアドレス信号C13、C14、C15により、第1ローカルメモリ101の第1共有領域が排他的にアクセスされる。
次に図5のサイクル9に示すように、第1システムバス105の第1排他アクセス要求信号keep1が”0”レベルにネゲートされる一方、第2システムバス205の第2排他アクセス要求信号keep2の”1”レベルのアサートが保持されていると、AND回路305の出力の第1リクエストマスク信号reqmsk1が”0”レベルにネゲートされ、サイクル10でAND回路310の第2リクエストマスク信号reqmsk2が”1”レベルにアサートされる。従って、サイクル10でAND回路311の第1リクエスト出力信号req1_iが”0”レベルにネゲートされる。その結果、サイクル9からサイクル11の期間T2の間に第2アクノリッジ信号ack2が”1”レベルにアサートされ、第1アクノリッジ信号ack1が”0”レベルにネゲートされて、第2プロセッサ2が共有リソースを排他的にアクセスするものとなる。従って、サイクル9からサイクル11の期間T2の間には第2プロセッサ2からのアドレス信号C23、C24、C25により、第1ローカルメモリ101の第1共有領域が排他的にアクセスされる。
外部インターフェースユニットとしての第3バスインターフェースユニット4と第4バスインターフェースユニット7も、図3に示した第1バスインターフェースユニット3や第2バスインターフェースユニット5と同様な内部構造により構成されることができる。
≪ローカルメモリのローカル変数を用いた共有リソースの排他的アクセス≫
図1に示すように、第1プロセッサ1と第2プロセッサ2とが共有リソースをスピンロック方式で排他的にアクセスするための第1ローカル変数101_LVが第1ローカルメモリ101の第1共有領域に格納され、同様に第1プロセッサ1と第2プロセッサ2とが共有リソースをスピンロック方式で排他的にアクセスするための第2ローカル変数201_LVが第2ローカルメモリ201の第2共有領域に格納される。第1ローカルメモリ101では第1ローカル変数101_LVが第1プロセッサ1と第2プロセッサ2とにより排他的にアクセスされ、第2ローカルメモリ201では第2ローカル変数201_LVが同様に第1プロセッサ1と第2プロセッサ2とにより排他的にアクセスされる。
例えば、第1プロセッサ1又は第2プロセッサ2が、共有リソースのダイレクトメモリアクセスコントローラ(DMAC)6を使用して、共有リソースの外部周辺装置702と共有リソースの共有メモリ402との間のデータ転送を行う場合を想定する。これらの共通リソースが使用可能であれば、第1ローカルメモリ101の第1ローカル変数101_LVは、使用可能状態(“0”)となっている。
今、第1プロセッサ1がこれらの共通リソースを使用する場合は、第1プロセッサ1が第1ローカルメモリ101の第1共有領域に格納された第1ローカル変数101_LVの値を読み出す。読み出された値は使用可能状態(“0”)となっているので、第1プロセッサ1はこれらの共通リソースが使用可能と判断して、第1プロセッサ1はこれらの共通リソースの使用を開始する。第1プロセッサ1による共通リソースの使用開始に際して、第1プロセッサ1は第1排他アクセス要求keep1の”1”レベルへのアサートによる第1ローカルメモリ101の第1共有領域の排他的アクセスにより第1ローカル変数101_LVの値を使用状態(”1”)に書き換える。この第1ローカル変数101_LVの値の使用状態(”1”)に書き換えによって、第1プロセッサ1が共有リソースのDMAC6を使用して共有リソースの外部周辺装置702と共有リソースの共有メモリ402との間のデータ転送を行うことが可能となる。第1プロセッサ1による共有リソースの使用を終了する際には、第1プロセッサ1は第1ローカル変数101_LVの値を使用可能状態(“0”)に書き換える。
第2プロセッサ2による共通リソースの使用開始に際して、第2プロセッサ2は第2排他アクセス要求keep2の”1”レベルへのアサートによる第1ローカルメモリ101の第1共有領域の排他的アクセスにより第1ローカル変数101_LVの値を使用状態(”1”)に書き換える。従って、第2プロセッサ2が共有リソースのDMAC6、外部周辺装置702、共有メモリ402を使用することが可能となる。第2プロセッサ2による共有リソースの使用を終了する際には、第2プロセッサ2は第1ローカル変数101_LVの値を使用可能状態(“0”)に書き換える。
≪ダイレクトメモリアクセスコントローラ6≫
ダイレクトメモリアクセスコントローラ(DMAC)6は、第1プロセッサ1または第2プロセッサ2の指示により、第1ローカルメモリ101や第2ローカルメモリ201の共有領域や共有メモリ402から外部周辺装置702へデータを転送したり、外部周辺装置702から第1ローカルメモリ101や第2ローカルメモリ201の共有領域や共有メモリ402へデータを転送する。
図4は、図1のデータプロセッサチップの内部のDMAC6の内部構成を示す図である。同図に示すように、DMAC6は、DMACコア61、DMAC要求調停ユニット62、CPUインターフェース63、内蔵メモリ64、メモリインターフェース65により構成されている。DMACコア61は、第1ローカルメモリ101や第2ローカルメモリ201の共有領域や共有メモリ402からデータを受け取り、内部のデータバッファを経由して外部周辺装置7へデータを転送する。DMAC要求調停ユニット62は、複数のDMA要求を調停してDMACコア61への要求信号を生成する。CPUインターフェース63は、第1プロセッサ1又は第2プロセッサ2からのDMAC6内部の種々のレジスタへのレジスタアクセスのリード・ライトの制御を行う。内蔵メモリ64は、DMAC6の設定情報と転送情報とを格納する。メモリインターフェース65は、第1プロセッサ1又は第2プロセッサ2やDMACコア61から内蔵メモリ64へのメモリアクセスを制御する。DMACコア61は、DMA転送の制御を行うDMAC制御回路611と、DMAC制御回路611が参照する種々のレジスタを含むワークレジスタ612とにより構成されている。ワークレジスタ612は、DMA転送ビット数やデータサイズ等の設定モード情報を格納するモードレジスタ612A、DMA転送するバイト数の設定情報を格納するバイトカウンタ612B、DMA転送先の開始アドレスを格納するディスティネーションアドレスレジスタ612C、DMA転送元の開始アドレスを格納するソースアドレスレジスタ612D、内蔵メモリ64のデータのロード・ストアの制御を行うメモリロード・ストア制御レジスタ612Eを含んでいる。内蔵メモリ64は、離散配置された複数の領域への連続転送を可能とするリロード機能のためのリロードレジスタ64Aと、リロード機能を使用しないロード機能のためのロードレジスタ64Bとを含んでいる。
DMAC6のDMAC要求調停ユニット62には、第1プロセッサ1又は第2プロセッサ2からDMA転送の外部要求DMA_Reqが供給される。DMAC6のDMAC要求調停ユニット62から第1プロセッサ1又は第2プロセッサ2には、DMAアクノリッジ信号DMA_ACK、DMAアクティブ信号DMA_ACT、DMA終了信号DMA_END、DMA割り込み要求信号DMA_Int_Req等が供給される。
≪他の実施形態≫
図6は、本発明の他の1つの実施形態によるマルチプロセッサ・アーキテクチャーのデータ処理装置を示す図である。
図6の実施形態が図1の実施形態と相違する点を以下に、説明する。
図1の実施形態においては、第1ローカルバス102とシステムバスSBの第1システムバス105とは第1バスブリッジ103を介して接続され、第1バスブリッジ103は第1ローカルバス102の上の情報をシステムバスSBの第1システムバス105に伝達して、第2ローカルバス202とシステムバスSBの第2システムバス205とは第2バスブリッジ203を介して接続され、第2バスブリッジ203は第2ローカルバス202の上の情報をシステムバスSBの第2システムバス205に伝達して、第1バスインターフェースユニット3と第2バスインターフェースユニット5の第1ポートP1と第2ポートP2とは第1バスブリッジ103と第2バスブリッジ203とを介して第1ローカルメモリ101と第2ローカルメモリ201と接続され、第1ローカルバス102と第2ローカルバス202とは図2に示すように共有領域と非共有領域とに分割されている。
しかし、図6の実施形態においては、第1バスインターフェースユニット3の第1ポートP1は第1ローカルバス102と直接接続され、第1バスインターフェースユニット3の第2ポートP2はシステムバスSBの第2システムバス205と第2バスブリッジ203を介して第2ローカルバス202と接続され、第2バスインターフェースユニット5の第2ポートP2は第2ローカルバス202と直接接続され、第2バスインターフェースユニット5の第1ポートP1はシステムバスSBの第1システムバス105と第1バスブリッジ103を介して第1ローカルバス102と接続され、第1ローカルメモリ101と第2ローカルメモリ201とは共有領域と非共有領域とに分割されても分割されていなくとも良い。従って、図6の実施形態においては、第1プロセッサ1から第1バスブリッジ103を介さずに第1バスインターフェースユニット3の第1ポートP1と第3ポートP3とを介した第1ローカルメモリ101へのアクセスが可能となり、また第2プロセッサ2から第2バスブリッジ203を介さずに第2バスインターフェースユニット5の第2ポートP2と第3ポートP3とを介した第2ローカルメモリ201へのアクセスが可能となる。
また、図6の実施形態においては、第1バスブリッジ103は第1ローカルバス102の上の第1プロセッサ1から第1ローカルメモリ101や第2ローカルメモリ201へのアクセス情報を監視して、このアクセス情報をシステムバスSBの第1システムバス105や第2システムバス205に伝達して、第2バスブリッジ203は第2ローカルバス202の上の第2プロセッサ2から第1ローカルメモリ101や第2ローカルメモリ201へのアクセス情報を監視して、このアクセス情報をシステムバスSBの第1システムバス105や第2システムバス205に伝達する。尚、第1ローカルメモリ101と第2ローカルメモリ201とは、それぞれ複数のメモリバンクもしくは複数のメモリページに分割され、複数のメモリバンクもしくは複数のメモリページは第1プロセッサ1からの第1アドレス信号の上位ビットと第2プロセッサ1からの第2アドレス信号の上位ビットとにより指定される。図6では第1ローカルメモリ101は第1バンクBank1と第3バンクBank3とを含み、第2ローカルメモリ201は第2バンクBank2と第4バンクBank4とを含んでいる。第1ローカルメモリ101の第1バンクBank1は第1プロセッサ1からの第1アドレス信号の上位2ビットの”00”で指定され、第2ローカルメモリ201の第2バンクBank2は第2プロセッサ2からの第2アドレス信号の上位2ビットの”01”で指定され、第1ローカルメモリ101の第3バンクBank3は第1プロセッサ1からの第1アドレス信号または第2プロセッサ1からの第2アドレス信号の上位2ビットの”10”で指定され、第2ローカルメモリ201の第4バンクBank4は第1プロセッサ1からの第1アドレス信号または第2プロセッサ2からの第2アドレス信号の上位2ビットの”11”で指定されることが可能である。
更に、図6の実施形態においては、第1プロセッサ1による第1ローカルメモリ101の第1バンクBank1へのアクセスと第2プロセッサ2による第2ローカルメモリ201の第2バンクBank2へのアクセスとの並列実行が可能である。また、第1ローカルメモリ101の第3バンクBank3と第2ローカルメモリ201の第4バンクBank4とはデータ処理装置の内蔵共有メモリとして動作する。
図7は図6のマルチプロセッサ・アーキテクチャーのデータ処理装置における第1ローカルメモリ101と第2ローカルメモリ201のバンク分割の一例を示す図である。
図7の例では、プロセッサアドレスの上位2ビットの”00”で指定される第1ローカルメモリ101の第1バンクBank1は第1プロセッサ1のみにより第1バスブリッジ3とシステムバスSBの第1システムバス105と第2システムバス205とを介さずに第1ローカルバス102と第1バスインターフェースユニット3とを介してアクセス可能な非共有領域として使用され、プロセッサアドレスの上位2ビットの”01”で指定される第2ローカルメモリ201の第2バンクBank2も第2プロセッサ2のみにより第2バスブリッジ5とシステムバスSBの第1システムバス105と第2システムバス205とを介さずに第2ローカルバス202と第2バスインターフェースユニット5を介してアクセス可能な非共有領域として使用され、プロセッサアドレスの上位2ビットの”10”で指定される第1ローカルメモリ101の第3バンクBank3は第1プロセッサ1と第2プロセッサ2の両者により第1バスブリッジ3又は第2バスブリッジ5とシステムバスSBの第2システムバス205と第1バスインターフェースユニット3とを介してアクセス可能な共有領域として使用され、プロセッサアドレスの上位2ビットの”11”で指定される第2ローカルメモリ201の第4バンクBank4は第1プロセッサ1と第2プロセッサ2の両者により第1バスブリッジ3又は第2バスブリッジ5とシステムバスSBの第1システムバス105と第2バスインターフェースユニット5とを介してアクセス可能な共有領域として使用される。
また、第1ローカルメモリ101の第1バンクBank1と第3バンクBank3とはそれぞれ信号線107、108を介して第1バスインターフェースユニット3の第3ポートP3と第4ポートP4とに接続され、第2ローカルメモリ201の第2バンクBank2と第4バンクBank4とはそれぞれ信号線207、208を介して第2バスインターフェースユニット5の第3ポートP3と第4ポートP4とに接続されている。
更に、図6の実施形態では、第1プロセッサ1から第1ローカルバス102、第1バスインターフェースの第1ポートP1・第3ポートP3を介しての第1ローカルメモリの第1バンクBank1へのアクセス又は第1プロセッサ1から第1ローカルバス102、第1バスブリッジ103、システムバスSBの第2システムバス205、第1バスインターフェースユニット3の第2ポートP2・第4ポートP4を介しての第1ローカルメモリの第3バンクBank3へのアクセスと並列に、第2プロセッサ2から第2ローカルバス202、第2バスインターフェースの第1ポートP1・第3ポートP3を介しての第2ローカルメモリの第2バンクBank2へのアクセス又は第2プロセッサ2から第2ローカルバス202、第2バスブリッジ103、システムバスSBの第1システムバス105、第2バスインターフェースユニット5の第1ポートP1・第4ポートP4を介しての第2ローカルメモリの第4バンクBank4へのアクセスを行うことができる。
図8は、図6のデータプロセッサチップの内部の第1バスインターフェースユニット3と第2バスインターフェースユニット5の内部構成を示す図である。
同図は第1バスインターフェースユニット3の内部構成を示しているが、第2バスインターフェースユニット5も第1バスインターフェースユニット3と同様に構成されている。
図8が図3と相違しているのは、第1ローカルバス102の第1プロセッサ1からの第1アドレス信号addr1の上位2ビットと第2システムバス205の第2プロセッサ2からの第2アドレス信号addr1の上位2ビットとが優先順位判定回路313に供給されていることである。その結果、図7に示すように、プロセッサアドレスの上位2ビットに従って第1ローカルメモリ101の第1バンクBank1と第3バンクBank3と第2ローカルメモリ201の第2バンクBank2と第4バンクBank4とがアクセスされることができる。すなわち、第1プロセッサ1からの第1アドレスの上位2ビットにより第1ローカルメモリ101の非共有領域の第1バンクBank1が選択され、第1バスインターフェースユニット3の第3ポートP3の信号線107の第1プロセッサ1からの第1アドレスにより第1ローカルメモリ101の非共有領域の第1バンクBank1がアクセスされる。第2プロセッサ2からの第2アドレスの上位2ビットにより第2ローカルメモリ201の非共有領域の第2バンクBank2が選択され、第2バスインターフェースユニット5の第3ポートP3の信号線207の第2プロセッサ2からの第2アドレスにより第2ローカルメモリ201の非共有領域の第2バンクBank2がアクセスされる。また、第1プロセッサ1又は第2プロセッサ2からの第1アドレス又は第2アドレスの上位2ビットにより第1ローカルメモリ101の共有領域の第3バンクBank3が選択され、第1バスインターフェースユニット3の第4ポートP4の信号線108の第1プロセッサ1又は第2プロセッサ2からの第1アドレス又は第2アドレスにより第1ローカルメモリ101の共有領域の第3バンクBank3がアクセスされる。第1プロセッサ1又は第2プロセッサ2からの第1アドレス又は第2アドレスの上位2ビットにより第2ローカルメモリ201の共有領域の第4バンクBank4が選択され、第2バスインターフェースユニット5の第4ポートP4の信号線208の第1プロセッサ1又は第2プロセッサ2からの第1アドレス又は第2アドレスにより第2ローカルメモリ201の共有領域の第4バンクBank4がアクセスされる。
また、図6の実施形態においても、第1排他アクセス要求keep1、第2排他アクセス要求keep2を使用すれば、第1プロセッサ1と第2プロセッサ2の両者によりアクセス可能な共有領域である第1ローカルメモリ101の第3バンクBank3と第2ローカルメモリ201の第4バンクBank4とにおいて第1プロセッサ1又は第2プロセッサ2による排他的なアクセスを行うことができる。また、第1プロセッサ1と第2プロセッサ2とが共有リソースをスピンロック方式で排他的にアクセスするための第1ローカル変数101_LVは第1ローカルメモリ101の第3バンクBank3に格納され、第1プロセッサ1と第2プロセッサ2とが共有リソースをスピンロック方式で排他的にアクセスするための第2ローカル変数201_LVは第2ローカルメモリ201の第4バンクBank4に格納され、第1排他アクセス要求keep1と第2排他アクセス要求keep2とを用いて第1プロセッサ1と第2プロセッサ2とが第1ローカルメモリ101の第3バンクBank3に格納された第1ローカル変数101_LVを排他的にアクセスして、第1排他アクセス要求keep1と第2排他アクセス要求keep2とを用いて第1プロセッサ1と第2プロセッサ2とが第2ローカルメモリ201の第4バンクBank4に格納された第2ローカル変数201_LVを排他的にアクセスすることができる。
図9は、図8に示した第1バスインターフェースユニット3と第2バスインターフェースユニット5の動作を説明するための第1バスインターフェースユニット3の内部各部の波形図である。
図9の波形図は、図5の波形図と類似しているが、サイクル2では第1バスインターフェースユニット3の第3ポートP3の信号線107から得られる第1プロセッサ1からのアドレス信号C11により第1ローカルメモリ101の非共有領域の第1バンクBank1がアクセスされ、第2バスインターフェースユニット5の第4ポートP4の信号線208から得られる第2プロセッサ2からのアドレス信号C21により第2ローカルメモリ201の共有領域の第4バンクBank4がアクセスされる。サイクル3では第2バスインターフェースユニット5の第3ポートP3の信号線207から得られる第2プロセッサ2からのアドレス信号C22により第2ローカルメモリ201の非共有領域の第2バンクBank2がアクセスされ、第1バスインターフェースユニット3の第4ポートP4の信号線108から得られる第1プロセッサ1からのアドレス信号C12により第1ローカルメモリ101の共有領域の第3バンクBank3がアクセスされる。サイクル4では、第1バスインターフェースユニット3の第4ポートP4の信号線108から得られる第1プロセッサ1からのアドレス信号C13により第1ローカルメモリ101の共有領域の第3バンクBank3がアクセスされる。サイクル5では第2バスインターフェースユニット5の第4ポートP4の信号線208から得られる第2プロセッサ2からのアドレス信号C23により第2ローカルメモリ201の共有領域の第4バンクBank4がアクセスされる。サイクル6からサイクル8の期間T1の間には第1バスインターフェースユニット3の第4ポートP4の信号線108から得られる第1プロセッサ1からのアドレス信号C14、C15により第1ローカルメモリ101の共有領域の第3バンクBank3が排他的にアクセスされ、サイクル9からサイクル11の期間T2の間には第2バスインターフェースユニット5の第4ポートP4の信号線208から得られる第2プロセッサ2からのアドレス信号C24、C25、C26により、第2ローカルメモリ201の共有領域の第4バンクBank4が排他的にアクセスされる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、データプロセッサチップ内部のプロセッサの数は2個以外の例えば4個とすることも可能であり、更に極めて多数のプロセッサを接続した超並列アーキテクチャーにも適用することも可能である。
また本発明は、マイクロコントローラやマイクロプロセッサ以外に各種の用途に使用されるシステムLSIやディジタル・アナログ・ミックスド・シグナルLSIのように、マルチメディア画像データの高速処理のために複数のプロセッサを含むLSI全般に適用可能であることは言うまでもない。
本発明は、複数のプロセッサを含むマルチプロセッサ・アーキテクチャーに広く実施することができる。
図1は、本発明の1つの実施形態によるマルチプロセッサ・アーキテクチャーのデータ処理装置を示す図である。 図2は、図1に示した本発明の1つの実施形態によるマルチプロセッサ・アーキテクチャーのデータ処理装置における第1ローカルメモリと第2ローカルメモリとの非共有領域と共有領域のアドレスアロケーションを示す図である。 図3は、図1のデータプロセッサチップの内部の第1バスインターフェースユニットと第2バスインターフェースユニットの内部構成を示す図である。 図4は、図1のデータプロセッサチップの内部のダイレクトメモリアクセスコントローラの内部構成を示す図である。 図5は、図3に示した第1バスインターフェースユニットと第2バスインターフェースユニットの動作を説明するための第1バスインターフェースユニットの内部各部の波形図である。 図6は、本発明の他の1つの実施形態によるマルチプロセッサ・アーキテクチャーのデータ処理装置を示す図である。 図7は図6のマルチプロセッサ・アーキテクチャーのデータ処理装置における第1ローカルメモリと第2ローカルメモリのバンク分割の一例を示す図である。 図8は、図6のデータプロセッサチップの内部の第1バスインターフェースユニット3と第2バスインターフェースユニット5の内部構成を示す図である。 図9は、図8に示した第1バスインターフェースユニットと第2バスインターフェースユニットの動作を説明するための第1バスインターフェースユニット3の内部各部の波形図である。
符号の説明
1 第1プロセッサ
2 第2プロセッサ
101 第1ローカルメモリ
201 第2ローカルメモリ
102 第1ローカルバス
202 第2ローカルバス
103 第1バスブリッジ
203 第2バスブリッジ
SB システムバス
105 第1システムバス
205 第2システムバス
3 第1バスインターフェースユニット
5 第2バスインターフェースユニット
req1 第1リクエスト信号
ack1 第1アクノリッジ信号
req2 第2リクエスト信号
ack2 第2アクノリッジ信号
keep1 第1排他アクセス要求信号
keep2 第2排他アクセス要求信号
4 インターフェースニット
7 インターフェースニット
6 DMAC
8 プログラムメモリ
402 共有メモリ
702 外部周辺装置

Claims (17)

  1. 第1プロセッサと、第2プロセッサと、第1ローカルメモリと、第2ローカルメモリと、第1ローカルバスと、第2ローカルバスと、第1バスブリッジと、第2バスブリッジと、第1システムバスと第2システムバスとを含むシステムバスと、第1バスインターフェースユニットと、第2バスインターフェースユニットとを具備して、
    前記第1プロセッサには前記第1ローカルバスを介して前記第1ローカルメモリが接続され、前記第2プロセッサには前記第2ローカルバスを介して前記第2ローカルメモリが接続され、
    前記第1バスブリッジの一方のポートと他方のポートとは前記第1ローカルバスと前記第1システムバスとにそれぞれ接続され、前記第2バスブリッジの一方のポートと他方のポートとは前記第2ローカルバスと前記第2システムバスとにそれぞれ接続され、
    前記第1バスインターフェースユニットの第1ポートと第2ポートと第3ポートは前記第1システムバスと前記第2システムバスと前記第1ローカルメモリとにそれぞれ接続され、前記第2バスインターフェースユニットの第1ポートと第2ポートと第3ポートは前記第1システムバスと前記第2システムバスと前記第2ローカルメモリとにそれぞれ接続され、
    前記第1プロセッサが前記第2ローカルメモリへのアクセスを要求する第1リクエスト信号を前記第1ローカルバスと前記第1バスブリッジと前記第1システムバスとを介して前記第2バスインターフェースユニットの前記第1ポートに供給して、前記第2バスインターフェースユニットが前記第1リクエスト信号を受領すると、前記第2バスインターフェースユニットは前記第1プロセッサによる前記第2ローカルメモリへのアクセスを許可する第1アクノリッジ信号を付与して、前記第1アクノリッジ信号に応答して前記第1プロセッサは前記第1ローカルバスと前記第1バスブリッジと前記第1システムバスと前記第2バスインターフェースユニットの前記第1ポートと前記第3ポートとを介して前記第2ローカルメモリをアクセスして、
    前記第2プロセッサが前記第1ローカルメモリへのアクセスを要求する第2リクエスト信号を前記第2ローカルバスと前記第2バスブリッジと前記第2システムバスとを介して前記第1バスインターフェースユニットの前記第2ポートに供給して、前記第1バスインターフェースユニットが前記第2リクエスト信号を受領すると、前記第1バスインターフェースユニットは前記第2プロセッサによる前記第1ローカルメモリへのアクセスを許可する第2アクノリッジ信号を付与して、前記第2アクノリッジ信号に応答して前記第2プロセッサは前記第2ローカルバスと前記第2バスブリッジと前記第2システムバスと前記第1バスインターフェースユニットの前記第2ポートと前記第3ポートとを介して前記第1ローカルメモリをアクセスするデータ処理装置。
  2. 前記第1プロセッサが前記第2ローカルメモリへの排他的アクセスを要求する第1排他アクセス要求信号を前記第1ローカルバスと前記第1バスブリッジと前記第1システムバスとを介して前記第2バスインターフェースユニットの前記第1ポートに供給して、前記第2バスインターフェースユニットが前記第1排他アクセス要求信号を受領すると、前記第2バスインターフェースユニットは前記第1プロセッサによる前記第2ローカルメモリへのアクセスを許可する前記第1アクノリッジ信号を付与して、前記第1アクノリッジ信号に応答して前記第1プロセッサは前記第1ローカルバスと前記第1バスブリッジと前記第1システムバスと前記第2バスインターフェースユニットの前記第1ポートと前記第3ポートとを介して前記第2ローカルメモリを排他的にアクセスして、
    前記第2プロセッサが前記第1ローカルメモリへの排他的アクセスを要求する第2排他アクセス要求信号を前記第2ローカルバスと前記第2バスブリッジと前記第2システムバスとを介して前記第1バスインターフェースユニットの前記第2ポートに供給して、前記第1バスインターフェースユニットが前記第2排他アクセス要求信号を受領すると、前記第1バスインターフェースユニットは前記第2プロセッサによる前記第1ローカルメモリへのアクセスを許可する前記第2アクノリッジ信号を付与して、前記第2アクノリッジ信号に応答して前記第2プロセッサは前記第2ローカルバスと前記第2バスブリッジと前記第2システムバスと前記第1バスインターフェースユニットの前記第2ポートと前記第3ポートとを介して前記第1ローカルメモリを排他的にアクセスする請求項1に記載のデータ処理装置。
  3. 前記第1プロセッサと前記第2プロセッサとが共有リソースをスピンロック方式で排他的にアクセスするための第1ローカル変数が前記第1ローカルメモリに格納され、
    前記第1プロセッサと前記第2プロセッサとが前記共有リソースをスピンロック方式で排他的にアクセスするための第2ローカル変数が前記第2ローカルメモリに格納され、
    前記第1ローカルメモリの前記第1ローカル変数は前記第1プロセッサと前記第2プロセッサとのいずれかにより排他的にアクセスされ、前記第2ローカルメモリの前記第2ローカル変数は前記第1プロセッサと前記第2プロセッサとのいずれかにより排他的にアクセスされる請求項2に記載のデータ処理装置。
  4. 外部デバイスと接続可能な外部インターフェースユニットを更に具備して、
    前記外部インターフェースユニットは、前記第1システムバスと前記第2システムバスとに接続され、
    前記第1プロセッサと前記第2プロセッサとのいずれかは前記第1ローカルメモリに格納された前記第1ローカル変数と前記第2ローカルメモリに格納された前記第2ローカル変数とのいずれかを用いて前記外部インターフェースユニットを介して前記外部デバイスを排他的にアクセスする請求項3に記載のデータ処理装置。
  5. 前記第1ローカルメモリは、前記第1プロセッサのみによってアクセス可能な第1非共有領域と、前記第1プロセッサと前記第2プロセッサとによってアクセス可能な第1共有領域とを含み、
    前記第2ローカルメモリは、前記第2プロセッサのみによってアクセス可能な第2非共有領域と、前記第1プロセッサと前記第2プロセッサとによってアクセス可能な第2共有領域とを含む請求項1から請求項4のいずれかに記載のデータ処理装置。
  6. 前記第1プロセッサによる前記第1ローカルメモリの前記第1非共有領域へのアクセスと前記第2プロセッサによる前記第2ローカルメモリの前記第2非共有領域へのアクセスとの並列実行が可能である請求項5に記載のデータ処理装置。
  7. 前記第1ローカルメモリの前記第1共有領域と前記第2ローカルメモリの前記第2共有領域とはデータ処理装置の内蔵共有メモリとして動作する請求項5に記載のデータ処理装置。
  8. 前記第1ローカルメモリの前記第1非共有領域および前記第1共有領域と前記第2ローカルメモリの前記第2非共有領域および前記第2共有領域とは、前記第1プロセッサおよび前記第2プロセッサからのアドレス信号によって指定される請求項5から請求項7のいずれかに記載のデータ処理装置。
  9. 第1プロセッサと、第2プロセッサと、第1ローカルメモリと、第2ローカルメモリと、第1ローカルバスと、第2ローカルバスと、第1バスブリッジと、第2バスブリッジと、第1システムバスと第2システムバスとを含むシステムバスと、第1バスインターフェースユニットと、第2バスインターフェースユニットとを具備して、
    前記第1プロセッサには前記第1ローカルバスが接続され、前記第2プロセッサには前記第2ローカルバスが接続され、
    前記第1バスブリッジは前記第1ローカルバスと前記第1システムバス及び前記第2システムバスとの間に接続され、前記第2バスブリッジは前記第2ローカルバスと前記第1システムバス及び前記第2システムバスとの間に接続され、
    前記第1バスインターフェースユニットの第1ポートと第2ポートと第3ポートとは前記第1ローカルバスと前記第2システムバスと前記第1ローカルメモリにそれぞれ接続され、前記第2バスインターフェースユニットの第1ポートと第2ポートと第3ポートとは前記第1システムバスと前記第2ローカルバスと前記第2ローカルメモリとにそれぞれ接続され、
    前記第1プロセッサがアクセスを要求する第1リクエスト信号を前記第1ローカルバスを介して前記第1バスインターフェースユニットの前記第1ポートに供給して、前記第1バスインターフェースユニットが前記第1リクエスト信号を受領すると、前記第1バスインターフェースユニットは前記第1プロセッサによる前記アクセスを許可する第1アクノリッジ信号を付与して、前記第1アクノリッジ信号に応答して前記第1プロセッサは前記第1ローカルバスと前記第1バスインターフェースユニットの前記第1ポートと前記第3ポートとを介して前記第1ローカルメモリをアクセスして、
    前記第1プロセッサが前記アクセスを要求する前記第1リクエスト信号を前記第1ローカルバスと前記第1バスブリッジと前記第1システムバスとを介して前記第2バスインターフェースユニットの前記第1ポートに供給して、前記第2バスインターフェースユニットが前記第1リクエスト信号を受領すると、前記第2バスインターフェースユニットは前記第1プロセッサによる前記アクセスを許可する前記第1アクノリッジ信号を付与して、前記第1アクノリッジ信号に応答して前記第1プロセッサは前記第1ローカルバスと前記第1バスブリッジと前記第1システムバスと前記第2バスインターフェースユニットの前記第1ポートと前記第3ポートとを介して前記第2ローカルメモリをアクセスして、
    前記第2プロセッサがアクセスを要求する第2リクエスト信号を前記第2ローカルバスを介して前記第2バスインターフェースユニットの前記第2ポートに供給して、前記第2バスインターフェースユニットが前記第2リクエスト信号を受領すると、前記第2バスインターフェースユニットは前記第2プロセッサによる前記アクセスを許可する第2アクノリッジ信号を付与して、前記第2アクノリッジ信号に応答して前記第2プロセッサは前記第2ローカルバスと前記第2バスインターフェースユニットの前記第2ポートと前記第3ポートとを介して前記第2ローカルメモリをアクセスして、
    前記第2プロセッサが前記アクセスを要求する前記第2リクエスト信号を前記第2ローカルバスと前記第2バスブリッジと前記第2システムバスとを介して前記第1バスインターフェースユニットの前記第2ポートに供給して、前記第1バスインターフェースユニットが前記第2リクエスト信号を受領すると、前記第1バスインターフェースユニットは前記第2プロセッサによる前記アクセスを許可する前記第2アクノリッジ信号を付与して、前記第2アクノリッジ信号に応答して前記第2プロセッサは前記第2ローカルバスと前記第2バスブリッジと前記第2システムバスと前記第1バスインターフェースユニットの前記第2ポートと前記第3ポートとを介して前記第1ローカルメモリをアクセスするデータ処理装置。
  10. 前記第1プロセッサが前記第2ローカルメモリへの排他的アクセスを要求する第1排他アクセス要求信号を前記第1ローカルバスと前記第1バスブリッジと前記第1システムバスとを介して前記第2バスインターフェースユニットの前記第1ポートに供給して、前記第2バスインターフェースユニットが前記第1排他アクセス要求信号を受領すると、前記第2バスインターフェースユニットは前記第1プロセッサによる前記第2ローカルメモリへのアクセスを許可する前記第1アクノリッジ信号を付与して、前記第1アクノリッジ信号に応答して前記第1プロセッサは前記第1ローカルバスと前記第1バスブリッジと前記第1システムバスと前記第2バスインターフェースユニットの前記第1ポートと前記第3ポートとを介して前記第2ローカルメモリを排他的にアクセスして、
    前記第2プロセッサが前記第1ローカルメモリへの排他的アクセスを要求する第2排他アクセス要求信号を前記第2ローカルバスと前記第2バスブリッジと前記第2システムバスとを介して前記第1バスインターフェースユニットの前記第2ポートに供給して、前記第1バスインターフェースユニットが前記第2排他アクセス要求信号を受領すると、前記第1バスインターフェースユニットは前記第2プロセッサによる前記第1ローカルメモリへのアクセスを許可する前記第2アクノリッジ信号を付与して、前記第2アクノリッジ信号に応答して前記第2プロセッサは前記第2ローカルバスと前記第2バスブリッジと前記第2システムバスと前記第1バスインターフェースユニットの前記第2ポートと前記第3ポートとを介して前記第1ローカルメモリを排他的にアクセスする請求項9に記載のデータ処理装置。
  11. 前記第1プロセッサと前記第2プロセッサとが共有リソースをスピンロック方式で排他的にアクセスするための第1ローカル変数が前記第1ローカルメモリに格納され、
    前記第1プロセッサと前記第2プロセッサとが前記共有リソースをスピンロック方式で排他的にアクセスするための第2ローカル変数が前記第2ローカルメモリに格納され、
    前記第1ローカルメモリの前記第1ローカル変数は前記第1プロセッサと前記第2プロセッサとのいずれかにより排他的にアクセスされ、前記第2ローカルメモリの前記第2ローカル変数は前記第1プロセッサと前記第2プロセッサとのいずれかにより排他的にアクセスされる請求項9に記載のデータ処理装置。
  12. 外部デバイスと接続可能な外部インターフェースユニットを更に具備して、
    前記外部インターフェースユニットは、前記第1システムバスと前記第2システムバスとに接続され、
    前記第1プロセッサと前記第2プロセッサとのいずれかは前記第1ローカルメモリに格納された前記第1ローカル変数と前記第2ローカルメモリに格納された前記第2ローカル変数とのいずれかを用いて前記外部インターフェースユニットを介して前記外部デバイスを排他的にアクセスする請求項11に記載のデータ処理装置。
  13. 第1プロセッサと、第2プロセッサと、第1ローカルメモリと、第2ローカルメモリと、第1ローカルバスと、第2ローカルバスと、第1バスブリッジと、第2バスブリッジと、第1システムバスと第2システムバスとを含むシステムバスと、第1バスインターフェースユニットと、第2バスインターフェースユニットとを具備して、
    前記第1プロセッサには前記第1ローカルバスが接続され、前記第2プロセッサには前記第2ローカルバスが接続され、
    前記第1バスブリッジは前記第1ローカルバスと前記第1システムバス及び前記第2システムバスとの間に接続され、前記第2バスブリッジは前記第2ローカルバスと前記第1システムバス及び前記第2システムバスとの間に接続され、
    前記第1ローカルメモリは第1バンクと第2バンクとを含み、前記第2ローカルメモリは第3バンクと第4バンクとを含み、
    前記第1バスインターフェースユニットの第1ポートと第2ポートと第3ポートと第4ポートとは前記第1ローカルバスと前記第2システムバスと前記第1ローカルメモリの前記第1バンクと前記第1ローカルメモリの前記第2バンクにそれぞれ接続され、前記第2バスインターフェースユニットの第1ポートと第2ポートと第3ポートと第4ポートとは前記第1システムバスと前記第2ローカルバスと前記第2ローカルメモリの前記第3バンクと前記第2ローカルメモリの前記第4バンクとにそれぞれ接続され、
    前記第1プロセッサがアクセスを要求する第1リクエスト信号を前記第1ローカルバスを介して前記第1バスインターフェースユニットの前記第1ポートに供給して、前記第1バスインターフェースユニットが前記第1リクエスト信号を受領すると、前記第1バスインターフェースユニットは前記第1プロセッサによる前記アクセスを許可する第1アクノリッジ信号を付与して、前記第1アクノリッジ信号に応答して前記第1プロセッサは前記第1ローカルバスと前記第1バスインターフェースユニットの前記第1ポートと前記第3ポートとを介して前記第1ローカルメモリの前記第1バンクをアクセスして、
    前記第1プロセッサが前記アクセスを要求する前記第1リクエスト信号を前記第1ローカルバスと前記第1バスブリッジと前記第2システムバスとを介して前記第1バスインターフェースユニットの前記第2ポートに供給して、前記第1バスインターフェースユニットが前記第1リクエスト信号を受領すると、前記第1バスインターフェースユニットは前記第1プロセッサによる前記アクセスを許可する前記第1アクノリッジ信号を付与して、前記第1アクノリッジ信号に応答して前記第1プロセッサは前記第1ローカルバスと前記第1バスブリッジと前記第2システムバスと前記第1バスインターフェースユニットの前記第2ポートと前記第4ポートとを介して前記第1ローカルメモリの前記第2バンクをアクセスして、
    前記第1プロセッサが前記アクセスを要求する前記第1リクエスト信号を前記第1ローカルバスと前記第1バスブリッジと前記第1システムバスとを介して前記第2バスインターフェースユニットの前記第1ポートに供給して、前記第2バスインターフェースユニットが前記第1リクエスト信号を受領すると、前記第2バスインターフェースユニットは前記第1プロセッサによる前記アクセスを許可する前記第1アクノリッジ信号を付与して、前記第1アクノリッジ信号に応答して前記第1プロセッサは前記第1ローカルバスと前記第1バスブリッジと前記第1システムバスと前記第2バスインターフェースユニットの前記第1ポートと前記第4ポートとを介して前記第2ローカルメモリの前記第4バンクをアクセスして、
    前記第2プロセッサがアクセスを要求する第2リクエスト信号を前記第2ローカルバスを介して前記第2バスインターフェースユニットの前記第2ポートに供給して、前記第2バスインターフェースユニットが前記第2リクエスト信号を受領すると、前記第2バスインターフェースユニットは前記第2プロセッサによる前記アクセスを許可する第2アクノリッジ信号を付与して、前記第2アクノリッジ信号に応答して前記第2プロセッサは前記第2ローカルバスと前記第2バスインターフェースユニットの前記第2ポートと前記第3ポートとを介して前記第2ローカルメモリの前記第3バンクをアクセスして、
    前記第2プロセッサが前記アクセスを要求する前記第2リクエスト信号を前記第2ローカルバスと前記第2バスブリッジと前記第2システムバスとを介して前記第1バスインターフェースユニットの前記第2ポートに供給して、前記第1バスインターフェースユニットが前記第2リクエスト信号を受領すると、前記第1バスインターフェースユニットは前記第2プロセッサによる前記アクセスを許可する前記第2アクノリッジ信号を付与して、前記第2アクノリッジ信号に応答して前記第2プロセッサは前記第2ローカルバスと前記第2バスブリッジと前記第2システムバスと前記第1バスインターフェースユニットの前記第2ポートと前記第4ポートとを介して前記第1ローカルメモリの前記第2バンクをアクセスして、
    前記第2プロセッサが前記アクセスを要求する前記第2リクエスト信号を前記第2ローカルバスと前記第2バスブリッジと前記第1システムバスとを介して前記第2バスインターフェースユニットの前記第1ポートに供給して、前記第2バスインターフェースユニットが前記第2リクエスト信号を受領すると、前記第2バスインターフェースユニットは前記第2プロセッサによる前記アクセスを許可する前記第2アクノリッジ信号を付与して、前記第2アクノリッジ信号に応答して前記第2プロセッサは前記第2ローカルバスと前記第2バスブリッジと前記第1システムバスと前記第2バスインターフェースユニットの前記第1ポートと前記第4ポートとを介して前記第2ローカルメモリの前記第4バンクをアクセスするデータ処理装置。
  14. 前記第1ローカルメモリは、前記第1プロセッサのみによってアクセス可能な第1非共有領域と、前記第1プロセッサと前記第2プロセッサとによってアクセス可能な第1共有領域とを含み、
    前記第2ローカルメモリは、前記第2プロセッサのみによってアクセス可能な第2非共有領域と、前記第1プロセッサと前記第2プロセッサとによってアクセス可能な第2共有領域とを含む請求項9から請求項12のいずれかに記載のデータ処理装置。
  15. 前記第1プロセッサによる前記第1ローカルメモリの前記第1非共有領域へのアクセスと前記第2プロセッサによる前記第2ローカルメモリの前記第2非共有領域へのアクセスとの並列実行が可能である請求項14に記載のデータ処理装置。
  16. 前記第1ローカルメモリの前記第1共有領域と前記第2ローカルメモリの前記第2共有領域とはデータ処理装置の内蔵共有メモリとして動作する請求項14に記載のデータ処理装置。
  17. 前記第1ローカルメモリの前記第1非共有領域および前記第1共有領域と前記第2ローカルメモリの前記第2非共有領域および前記第2共有領域とは、前記第1プロセッサおよび前記第2プロセッサからのアドレス信号によって指定される請求項14から請求項16のいずれかに記載のデータ処理装置。
JP2006201036A 2006-07-24 2006-07-24 データ処理装置 Active JP5137171B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006201036A JP5137171B2 (ja) 2006-07-24 2006-07-24 データ処理装置
US11/779,189 US7581054B2 (en) 2006-07-24 2007-07-17 Data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006201036A JP5137171B2 (ja) 2006-07-24 2006-07-24 データ処理装置

Publications (2)

Publication Number Publication Date
JP2008027305A JP2008027305A (ja) 2008-02-07
JP5137171B2 true JP5137171B2 (ja) 2013-02-06

Family

ID=38972702

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006201036A Active JP5137171B2 (ja) 2006-07-24 2006-07-24 データ処理装置

Country Status (2)

Country Link
US (1) US7581054B2 (ja)
JP (1) JP5137171B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110168631A1 (en) * 2006-12-15 2011-07-14 General Electric Company Methods and apparatuses for water filtration using polyarylether membranes
JP5079342B2 (ja) * 2007-01-22 2012-11-21 ルネサスエレクトロニクス株式会社 マルチプロセッサ装置
US9342445B2 (en) 2009-07-23 2016-05-17 Hgst Technologies Santa Ana, Inc. System and method for performing a direct memory access at a predetermined address in a flash storage
US8473661B2 (en) * 2009-08-14 2013-06-25 Cadence Design Systems, Inc. System and method for providing multi-process protection using direct memory mapped control registers
JP5068300B2 (ja) 2009-11-24 2012-11-07 インターナショナル・ビジネス・マシーンズ・コーポレーション データフロー及びプロセッサのメモリ共有化ための装置、方法及びプログラム
US8591741B2 (en) 2010-09-30 2013-11-26 General Electric Company Thin film composite membranes incorporating carbon nanotubes
GB2511672B (en) 2011-11-04 2020-04-15 Univ Waseda Processor system and accelerator
KR20150090621A (ko) * 2014-01-29 2015-08-06 삼성전자주식회사 스토리지 장치 및 데이터 처리 방법
CN104572529A (zh) * 2015-02-09 2015-04-29 浪潮电子信息产业股份有限公司 一种适用异构多核dsp的高效总线仲裁系统
GB201801572D0 (en) * 2018-01-31 2018-03-14 Nordic Semiconductor Asa Inter-processor communication
KR20210081636A (ko) * 2019-12-24 2021-07-02 에스케이하이닉스 주식회사 우선 순위 결정 회로 및 그 동작 방법
CN116662228B (zh) * 2023-06-16 2024-01-30 深圳市东方聚成科技有限公司 分时复用局部存储器的访问方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5833766A (ja) * 1981-08-22 1983-02-28 Nippon Signal Co Ltd:The マルチマイクロコンピユ−タ
JPH01154272A (ja) * 1987-12-10 1989-06-16 Matsushita Electric Ind Co Ltd マルチプロセッサ装置
JP2656543B2 (ja) * 1988-05-26 1997-09-24 東京電力株式会社 ブロードキャストメモリ方式分散コンピュータシステム
JPH02127758A (ja) * 1988-11-08 1990-05-16 Matsushita Graphic Commun Syst Inc データ処理装置
JP2846888B2 (ja) * 1989-03-17 1999-01-13 株式会社日立製作所 分散共有メモリを持つマルチプロセッサシステム
JPH03228160A (ja) * 1990-02-02 1991-10-09 Nippon Telegr & Teleph Corp <Ntt> 情報処理システムのバスロック解放方式
US6128677A (en) * 1997-10-15 2000-10-03 Intel Corporation System and method for improved transfer of data between multiple processors and I/O bridges
US6446149B1 (en) * 1998-03-03 2002-09-03 Compaq Information Technologies Group, L.P. Self-modifying synchronization memory address space and protocol for communication between multiple busmasters of a computer system
US6601126B1 (en) * 2000-01-20 2003-07-29 Palmchip Corporation Chip-core framework for systems-on-a-chip
US6745274B1 (en) * 2000-04-25 2004-06-01 Hewlett-Packard Development Company, L.P. Apparatus and method for synchronizing multiple accesses to common resources
US6742072B1 (en) * 2000-08-31 2004-05-25 Hewlett-Packard Development Company, Lp. Method and apparatus for supporting concurrent system area network inter-process communication and I/O
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
US7131020B2 (en) * 2003-10-14 2006-10-31 Broadcom Corporation Distributed copies of configuration information using token ring
US7921250B2 (en) * 2004-07-29 2011-04-05 International Business Machines Corporation Method to switch the lock-bits combination used to lock a page table entry upon receiving system reset exceptions
US7765351B2 (en) * 2007-03-12 2010-07-27 International Business Machines Corporation High bandwidth low-latency semaphore mapped protocol (SMP) for multi-core systems on chips

Also Published As

Publication number Publication date
JP2008027305A (ja) 2008-02-07
US7581054B2 (en) 2009-08-25
US20080022030A1 (en) 2008-01-24

Similar Documents

Publication Publication Date Title
JP5137171B2 (ja) データ処理装置
JP5787629B2 (ja) マシンビジョン用マルチプロセッサシステムオンチップ
US7650453B2 (en) Information processing apparatus having multiple processing units sharing multiple resources
JP6746572B2 (ja) ノンブロッキング高性能トランザクションクレジットシステムを備えるマルチコアバスアーキテクチャ
US5524235A (en) System for arbitrating access to memory with dynamic priority assignment
JP5241737B2 (ja) プロセッサ・システムにおいて命令レベルでのリソース割り当ての識別を可能にする方法および装置
CN110109847B (zh) Apb总线多个主设备的仲裁方法、系统及存储介质
JP2012038293A5 (ja)
US20040022107A1 (en) Unidirectional bus architecture for SoC applications
US11163710B2 (en) Information processor with tightly coupled smart memory unit
US20120311266A1 (en) Multiprocessor and image processing system using the same
US7996592B2 (en) Cross bar multipath resource controller system and method
JP2007219816A (ja) マルチプロセッサシステム
US8458411B2 (en) Distributed shared memory multiprocessor and data processing method
US8359419B2 (en) System LSI having plural buses
JP2001043180A (ja) マイクロプロセッサおよびそのための記憶装置
EP1207457A1 (en) External bus arbitration technique for multicore DSP device
JP6294732B2 (ja) データ転送制御装置及びメモリ内蔵装置
JP2011221931A (ja) データプロセッサ
WO2001025941A1 (en) Multiprocessor computer systems with command fifo buffer at each target device
JP2010092101A (ja) 情報処理装置
JP4214521B2 (ja) 情報処理システム及びマルチプロセッサ・システム
KR20040056293A (ko) 프로세서 번호 할당 및 순차적 부팅이 가능한에이엠비에이 버스 기반 멀티프로세서 시스템
JP2004213142A (ja) 半導体集積回路装置
Kim et al. Fast and flexible pipelined multi-processor architecture for multimedia device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090714

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120821

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121024

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121108

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121109

R150 Certificate of patent or registration of utility model

Ref document number: 5137171

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151122

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350