説明

データプロセッサ

【課題】プロセッサコアのローカルメモリや共有メモリの所要のアドレスに対して小さな回路規模で排他制御を行うことができるデータプロセッサを提供する。
【解決手段】要求に従ってバスロック設定と解除が可能にされるシステムバス(5)を共有する複数個のプロセッサコア(20,40)が相互に互いの内部リソース(22,42)を共有するデータプロセッサ(1)において、プロセッサコアが内部リソースの第1アドレス(ロック変数割り当てアドレス)へアクセスを行うときバスロックの要求を伴って当該アクセス要求をシステムバスに出力することによりシステムバスにバスをロックさせると共にシステムバスから当該プロセッサコアに帰還されるのを待って当該アクセス要求を処理し、プロセッサコアが内部の第2アドレスへアクセスを行うとき当該アクセス要求をプロセッサコアの内部で処理する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数個のプロセッサコアを有するデータプロセッサにおけるバスインタフェース技術に関し、例えばプロセッサコアがロック変数を操作してリソースに対する排他的な使用権の獲得と解放を行なうデータプロセッサに適用して有効な技術に関する。
【背景技術】
【0002】
複数個のプロセッサコアを有するデータプロセッサ(マルチコアプロセッサ)においてプロセッサコアの間で共有するデータを格納するのにプロセッサコアに配置されたローカルメモリ、あるいは複数個のプロセッサコアが共有する共有バスに接続された共有メモリを利用する場合がある。データプロセッサの外部メモリを用いる場合に比べてはアクセスレイテンシを格段に短くすることができる。
【0003】
特許文献1にはマルチコアプロセッサにおいて主記憶ユニットが接続する主記憶バスに夫々キャッシュメモリを介在させてプロセッサが接続され、夫々のプロセッサユニットはキャッシュメモリを介して主記憶ユニットのデータを共有する構成が示される。この構成においてもキャッシュヒットである限りアクセスレイテンシを短くすることができる。特に特許文献1では、データの一貫性を保つために一つのプロセッサに主記憶バスの使用を認め、その他のプロセッサが主記憶バスを一時的に使用できないようにするバスロックを行わずに、排他制御を行う技術が開示される。即ち、排他制御が要求されているアドレスに対するバスからのアクセスに対しては抑制し、それ以外のアクセスに対するバスからのアクセスに対して許容するようにして、アクセス要求とそれに対するレスポンスとを分離するセパレートトランザクション方式のバスプロトコルを採用する場合にも、高速な排他制御を行おうとするものである。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平8−161228号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1の技術は、プロセッサとバスの間に配置されたキャッシュメモリがプロセッサから出力されるロック信号とアクセスアドレスを用いた制御機能により実現するものであり、キャッシュメモリのキャッシュ制御機能が必須となる。キャッシュ非対象のアドレスに対してはその排他制御を適用することができない。
【0006】
本発明の目的は、プロセッサコアのローカルメモリや共有メモリの所要のアドレスに対して小さな回路規模で排他制御を行うことができるデータプロセッサを提供することにある。
【0007】
本発明の目的は、プロセッサコアのローカルメモリや共有メモリに対する所要のアクセスに対して小さな回路規模で排他制御を行うことができるデータプロセッサを提供することにある。
【0008】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0009】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0010】
すなわち、排他制御状態を維持するバスロック設定と解除が可能にされるシステムバスを共有する複数個のプロセッサコアが互いに他の内部リソースを共有するデータプロセッサにおいて、プロセッサコアが内部リソースの第1アドレスへアクセスを行うときバスロックの要求を伴って当該アクセス要求をシステムバスに出力することによりシステムバスにバスをロックさせると共にシステムバスから当該プロセッサコアに帰還されるのを待って当該アクセス要求を処理し、プロセッサコアが内部の第2アドレスへアクセスを行うとき当該アクセス要求をプロセッサコアの内部で処理する。
【0011】
これにより、プロセッサコアは他のプロセッサコアの内部リソースの第1アドレスに対してはバスロックを伴ったアクセス要求を発行すればシステムバスを介して連続的に排他的なアクセスを行うことができる。更に、プロセッサコアは自らの内部リソースの第1アドレスに対してもバスロックを伴ったアクセス要求を発行すればシステムバスをロックして連続的に排他的なアクセスを行うことができる。プロセッサコアは自らの内部リソースの第2アドレスに対しては内部だけで高速なアクセス動作を行うことが保証されている。
【発明の効果】
【0012】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【0013】
すなわち、プロセッサコアのローカルメモリや共有メモリの所要のアドレスに対して小さな回路規模で排他制御を行うことができる。
【図面の簡単な説明】
【0014】
【図1】図1は本発明の一実施の形態に係るデータプロセッサの全体的な構成を例示するブロック図である。
【図2】図2は実施の形態1に係るマルチプロセッサコア(MLTPRCR)を例示するブロック図である。
【図3】図3はバスロックを併用したスピンロックによる排他制御のフローチャートである。
【図4】図4はバスインタフェース回路がCPUによるローカルメモリへのアクセス要求がロック変数へのアクセス要求であるときバスロックの要求を伴って当該アクセス要求をシステムバスを経由してパケットルータに与えると共に前記パケットルータからアクセス要求が帰還されるのを待って前記ローカルメモリに伝達されるときのアクセス経路を示す説明図である。
【図5】図5はCPUによるローカルメモリへのアクセスがロック変数以外のアドレスへのアクセス要求であるときシステムバスを通さずに当該アクセス要求を前記ローカルメモリに伝達するときのアクセス経路を示す説明図である。
【図6】図6はCPUがシステムバスを経由して他のプロセッサコアのローカルメモリをアクセスするときバスインタフェース回路がそのアクセス要求をシステムバスに出力するときのアクセス経路を示す説明図である。
【図7】図7はシステムバスを経由する他のプロセッサコアからローカルメモリに対するアクセスに対してバスインタフェース回路が内部のCPUとのアクセス競合を回避する制御を行ってそのアクセス要求に答える制御を行うときのアクセス経路を示す説明図である。
【図8】図8はバスロックを併用したスピンロックによるロック変数の排他制御、それによって獲得した使用権に基づくリソースの排他的使用、及び排他的使用後のロック変数操作による排他的使用権の解除について一連の動作を例示するフローチャートである。
【図9】図9は図8のステップS10〜S21におけるプロセッサコアとシステムバスとの間におけるデータ転送動作のタイミングチャートである。
【図10】図10はバスインタフェース回路の詳細を例示するブロック図である。
【図11】図11は排他制御領域指定レジスタのセットデータを例示する説明図である。
【図12】図12は排他制御領域指定レジスタ及びLRAM領域指定レジスタの設定状態に従ったプロセッサコアのアクセス形態を整理して示した説明図である。
【図13】図13はプロセッサコアのローカルメモリに対してバスロックによる排他制御が可能にされたデータプロセッサの全体的なアドレス空間においてバスロックによる排他制御領域を例示したアドレスマップである。
【図14】図14は実施の形態2に係るマルチプロセッサコア(MLTPRCR)のブロック図である。
【図15】図15はCPUが共有メモリのロック変数へのアクセス要求とバスロックの要求を発行したときバスインタフェース回路がバスロックの要求を伴って当該アクセス要求のリクエストパケットを内部バスに出力し、内部バスのパケットルータがその要求を受け入れると当該リクエストパケットをバスインタフェース回路に与えると共にその伝播経路にバスロックを設定するときのアクセス経路を示す説明図である。
【図16】図16はCPUによる共有メモリへのアクセスがそれロック変数以外のアドレスへのアクセス要求であるときはバスインタフェース回路がシステムバスを通さずに当該アクセス要求を共有メモリに伝達するときのアクセス経路を示す説明図である。
【図17】図17はCPUがシステムバスを経由して他のリソースをアクセスするときバスインタフェース回路がそのアクセス要求をシステムバスに出力するときのアクセス経路を示す説明図である。
【図18】図18はシステムバスを経由する他のイニシエータから共有メモリのアクセスに対してバスインタフェース回路がCPU等の内部バス上のバスアクセス主体とのアクセス競合を回避する制御を行ってそのアクセス要求に答える制御を行うときのアクセス経路を示す説明図である。
【図19】図19はバスインタフェース回路の詳細を例示するブロック図である。
【図20】図20は排他制御領域指定レジスタ及びSHRAM領域指定レジスタの設定状態に従ったプロセッサコアのアクセス形態を整理して示した説明図である。
【図21】図21はプロセッサコアのローカルメモリに対してバスロックによる排他制御が可能にされたデータプロセッサの全体的なアドレス空間においてバスロックによる排他制御領域を示したアドレスマップである。
【図22】図22はSDRAMが保有するロック変数のアドレステーブルの説明図である。
【図23】図23は実施の形態4に係るデータプロセッサを例示するブロック図である。
【図24】図24はMMUが保有するアドレス変換バッファ(TLB)のTLBエントリを例示する説明図である。
【図25】図25は本発明の実施の形態5に係るデータプロセッサを例示するブロック図である。
【図26】図26にはアドレス管理回路の構成を例示するブロック図である。
【図27】図27はバスロックによる排他制御を行う領域がMEM,SDRAM,SRAMに限定されている場合を比較例として示すアドレスマップである。
【図28】図28はロック変数をSDRAMの特定のアドレス領域にマッピングした状態を比較例として示す説明図である。
【図29】図29はSDRAMにマッピングされたロック変数とリソースの関係を比較例として示した説明図である。
【発明を実施するための形態】
【0015】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0016】
〔1〕<プロセッサコア内部のアクセス動作における外部バスのバスロック選択>
本発明の代表的な実施の形態に係るデータプロセッサ(1)は、排他制御状態を維持するバスロックの設定と解除が可能にされるシステムバス(5)を共有する複数個のプロセッサコア(20,40)が互いに他方の内部のメモリリソース(22,42)を共有する。前記プロセッサコアが内部のメモリリソースの第1アドレス(ロック変数割り当てアドレス)へアクセスを行うときバスロックの要求を伴って当該アクセス要求を前記システムバスに出力することによりシステムバスにバスをロックさせると共にシステムバスから帰還されるのを待ってプロセッサコアが当該アクセス要求を処理する。また、プロセッサコアが内部の第2アドレス(ロック変数非割り当てアドレス)へアクセスを行うとき当該アクセス要求をプロセッサコアの内部で処理する。
【0017】
これにより、プロセッサコアは他のプロセッサコアの内部リソースの第1アドレスに対してはバスロックを伴ったアクセス要求を発行すればシステムバスを介して連続的に排他的なアクセスを行うことができる。更に、プロセッサコアは自らの内部リソースの第1アドレスに対してもバスロックを伴ったアクセス要求を発行すればシステムバスをロックして連続的に排他的なアクセスを行うことができる。自らの第1アドレスに対するアクセスに対してもシステムバスのバスロック機能を利用できるようにしたからである。それを実現するのに、自らの特定の内部アクセスに対してもバスロックの要求を伴ってシステムバスにアクセス要求を出力するという構成を採用したから、プロセッサコアの自らの内部メモリリソースに対する排他制御を小さな回路規模で実現することができる。また、プロセッサコアは自らの内部リソースの第2アドレスに対しては内部だけで高速なアクセス動作を行うことが保証されている。
【0018】
〔2〕<外部からプロセッサコア内部へのアクセス動作における外部バスのバスロック選択>
項1のデータプロセッサにおいて、プロセッサコアが他のプロセッサコアの内部のメモリリソースの第1アドレスへアクセスを行うとき、当該プロセッサコアはバスロックの要求(Lock)を伴って当該アクセス要求を前記システムバスに出力する。
【0019】
〔3〕<ロック変数の格納に割り当てられた第1アドレス>
項1又は2のデータプロセッサにおいて、前記複数個のプロセッサコアがリソースを共有し、リソースに対応するロック変数(FlagN)を操作して当該リソースに対する排他的な使用権の獲得と解放を行なうとき、前記第1アドレスは前記リソースに対する排他的な使用権の獲得と解放を行なうためのロック変数の格納に割り当てられるアドレスである。
【0020】
ロック変数に対する操作に複数回のアクセスを要するとき、その間、前記バスロックによる排他制御状態を維持することが可能になる。
【0021】
〔4〕<解放状態のロック変数の操作>
項3のデータプロセッサにおいて、前記プロセッサコアは、自又は他のプロセッサコアにおける第1アドレスからロック変数をリードしてロック状態が解放されていることを検出したとき前記ロック変数にロック状態を示す値を書き込んで、当該ロック変数のリソースに対するアクセス権を獲得し、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴う。
【0022】
自又は他のプロセッサコアにおけるロック変数をリード・モディファイ・ライトによって操作する間、前記バスロックによる排他制御状態を維持することが可能になる。
【0023】
〔5〕<ロック状態のロック変数の操作>
項4のデータプロセッサにおいて、前記プロセッサコアは、自又は他のプロセッサコアにおける第1アドレスからロック変数をリードして既にロック状態であることを検出したとき前記ロック変数にロック状態を示す値を書き込んでロック状態の解放を待ち、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴う。
【0024】
ロック状態を確保できなかった場合もロック状態を確保できる場合と同様の手順でロック変数に対するリード・モディファイ・ライトの操作を行うことができる。
【0025】
〔6〕<プロセッサコア内部のアクセス動作における外部バスのバスロック選択>
本発明の別の実施の形態の係るデータプロセッサ(1)は、複数個のプロセッサコア(20,40)と、前記複数個のプロセッサコアに接続されていて排他制御状態を維持するバスロックの設定と解除が可能にされるバス調停回路(6)を有するシステムバス(5)と、を有する。前記プロセッサコアは、命令を実行する中央処理装置(CPU、21,41)と、前記中央処理装置又は前記システムバスからアクセスされるローカルメモリ(22,42)と、前記中央処理装置又は前記システムバスから供給されるアクセス要求に応答するバスインタフェース回路(25,45)とを有する。前記バスインタフェース回路は、前記中央処理装置による前記ローカルメモリへのアクセス要求が第1アドレス(ロック変数割り当てアドレス)へのアクセス要求であるときバスロックの要求を伴って当該アクセス要求を前記バス調停回路に与えると共に前記バス調停回路からアクセス要求が帰還されるのを待って前記ローカルメモリに伝達し、前記中央処理装置による前記ローカルメモリへのアクセスが第2アドレス(ロック変数非割り当てアドレス)へのアクセス要求であるときシステムバスを通さずに当該アクセス要求を前記ローカルメモリに伝達する。
【0026】
このように、プロセッサコアは自らのローカルメモリの第2アドレスに対しては内部だけで高速なアクセス動作を保証することができ、自らのローカルメモリの第1アドレスに対してはバスロックを伴ったアクセス要求を発行することによってシステムバスをロックした連続的な排他的アクセスを可能とする。項1と同様に、自らのローカルメモリの内部アクセスに対してもバスロックの要求を伴ってシステムバスにアクセス要求を出力するという構成を採用したから、プロセッサコアの自らのローカルメモリに対する排他制御を小さな回路規模で実現することができる。
【0027】
〔7〕<ロック変数の格納に割り当てられる第1アドレス>
項6のデータプロセッサにおいて、前記複数個のプロセッサはリソースを共有し、リソースに対応するロック変数(FlagN)を操作して当該リソースに対する排他的な使用権の獲得と解放を行ない、前記第1アドレスは前記ロック変数の格納に割り当てられるアドレスである。
【0028】
ロック変数に対する操作に複数回のアクセスを要するとき、その間、前記バスロックによる排他制御状態を維持することが可能になる。
【0029】
〔8〕<解放状態のロック変数の操作>
項7のデータプロセッサにおいて、前記中央処理装置は、自又は他のプロセッサコアにおける第1アドレスからロック変数をリードしてロック状態が解放されていることを検出したとき前記ロック変数にロック状態を示す値を書き込んで、当該ロック変数のリソースに対するアクセス権を獲得し、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴う。
【0030】
自又は他のプロセッサコアにおけるロック変数をリード・モディファイ・ライトによって操作する間、前記バスロックによる排他制御状態を維持することが可能になる。
【0031】
〔9〕<ロック状態のロック変数の操作>
項8のデータプロセッサにおいて、前記中央処理装置は、自又は他のプロセッサコアにおける第1アドレスからロック変数をリードして既にロック状態であることを検出したとき前記ロック変数にロック状態を示す値を書き込んでロック状態の解放を待ち、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴う。
【0032】
ロック状態を確保できなかった場合もロック状態を確保できる場合と同様の手順でロック変数に対するリード・モディファイ・ライトの操作を行うことができる。
【0033】
〔10〕<スプリットトランザクションバス>
項6乃至9のデータプロセッサにおいて、前記システムバスは、前記バス調停回路としてパケットルータ(6)を有するスプリットトランザクションバス(5)である。
【0034】
このバスは、イニシエータからのアクセス要求をターゲット毎に分離し、また、アクセス要求とその応答をリクエストパケットとレスポンスパケットに分離するから、バスアクセス効率の向上が実現される。
【0035】
〔11〕<ロック信号>
項10のデータプロセッサにおいて、前記パケットルータは、前記イニシエータからバスロックの指示(Lock)を伴うリクエストパケットを受け取ったとき、同じイニシエータからバスロックの解除を伴うリクエストパケットを受け取るまで他のイニシエータからのリクエストパケットを同じターゲットに転送することを抑止する。
【0036】
リクエストパケットとレスポンスパケットのルーティングの制御を行うパケットルータを用いて、バスロックの設定と解除を制御することができる。
【0037】
〔12〕<アドレス判定回路>
項6乃至11のデータプロセッサにおいて、前記バスインタフェース回路は、前記中央処理装置からのアクセス要求が前記ローカルメモリの第1アドレスであるか、前記ローカルメモリの第2アドレスであるか、又はそれ以外の第3アドレスであるかを判別するアドレス判定回路(60)を有する。前記バスインタフェース回路は、前記アドレス判定回路で判定された第3アドレスへのアクセス要求を前記バス調停回路に与え、前記アドレス判定回路で判定された第1アドレスへのアクセス要求をシステムバス経由のアクセスと同等に前記バス調停回路に与えて、第1アドレスへのアクセス要求に応答するためのアクセスにシステムバスを経由させ、前記アドレス判定回路で判定された第2アドレスへのアクセス要求を前記ローカルメモリに与える。
【0038】
アドレス判定回路を設けることによって、自らのローカルメモリの特定の内部アクセスに対してバスロックの要求を伴ったアクセス要求をシステムバスに出力する構成を特に容易に実現することができる。
【0039】
〔13〕<第1、2アドレスの設定用レジスタ>
項12のデータプロセッサにおいて、前記第1アドレスと第2アドレスが夫々書換え可能にセットされるアドレスレジスタ(63,64)を有する。前記アドレス判定回路は、前記アドレスレジスタにセットされたアドレスに基づいて前記中央処理装置によるアクセスアドレスが前記第1アドレス乃至第3アドレスの何れに対するアクセスであるかを判別する。
【0040】
前記第1アドレス及び第2アドレスをプログラマブルに設定可能であるから、ロック変数の割り当てやローカルメモリに対する高速アクセスエリアの設定を、データプロセッサを用いるデータ処理システムの構成に応じて任意に決定する自由度が増す。
【0041】
〔14〕<CPUによるアドレスレジスタのセット>
項13のデータプロセッサにおいて、前記アドレスレジスタは前記中央処理装置のアドレス空間にマッピングされる。
【0042】
前記第1アドレス及び第2アドレスの設定を中央処理装置のリセット処理プログラム等を用いて容易に行うことができる。
【0043】
〔15〕<CACHE内蔵>
項6乃至14の何れかのデータプロセッサにおいて、前記プロセッサコアは前記バスインタフェース回路に接続されるキャッシュメモリ(23,43)を有し、前記キャッシュメモリは前記第1アドレスをキャッシュ非対象とする。
【0044】
キャッシュミスのペナルティによる一時的なスループットの低下が発生したとしても、キャッシュメモリを持つことによって前記ローカルメモリの記憶容量に比べて大きなメモリ空間に対する高速アクセスが可能になる。キャッシュミスのペナルティによる一時的なスループットの発生を回避すべきデータに対してはローカルメモリの第2アドレスに格納して利用すればよい。ローカルメモリの第1アドレスに対してキャッシュ非対象とすることによって、バスロックを伴ったアクセス要求を発行することによってシステムバスをロックして第1アドレスの連続的な排他的アクセスを保証することができる。
【0045】
〔16〕<プロセッサコアの共有メモリリソースアクセスにおける内部バスのバスロック選択>
本発明の更に別の実施の形態に係るデータプロセッサ(1)は、内部バス(80)を共有する複数個のプロセッサコア(20,40)がバスインタフェース回路(87)に接続されるメモリリソース(87)を共有すると共に前記バスインタフェース回路に接続されるシステムバス(5)の回路モジュールも前記メモリリソースを共有するデータプロセッサである。即ち、上記実施の形態に係るデータプロセッサでは個々のプロセッサコア(20,40)が内蔵するローカルメモリ(22,42)を排他制御の対象としたが、ここでは、複数のプロセッサコアの外に配置された共有メモリ(87)を排他制御の対象とする。即ち、前記システムバスは排他制御状態を維持するバスロックの設定と解除が可能にされる。前記プロセッサコアが前記メモリリソースの第1アドレス(ロック変数割り当てアドレス)へアクセスを行うとき前記バスインタフェース回路はバスロックの要求を伴って当該アクセス要求を前記システムバスに伝達することによりシステムバスにバスをロックさせると共にシステムバスから帰還されるのを待って前記メモリリソースに供給する。プロセッサコアが前記メモリリソースの第2アドレス(ロック変数非割り当てアドレス)へアクセスを行うとき前記バスインタフェース回路は当該アクセス要求をシステムバスを通らずに前記メモリリソースに伝達する。
【0046】
これにより、プロセッサコアはメモリリソースの第1アドレスに対してはバスロックを伴ったアクセス要求を発行すればシステムバスおよび内部バスからメモリリソースの第1アドレスへの他のアクセス要求を排除して連続的に排他的なアクセスを行うことができる。内部バスを経由するメモリリソースの第1アドレスに対するアクセスに対してもシステムバスのバスロック機能を利用できるようにしたからである。それを実現するのに、メモリリソースの第1アドレスに対するアクセスに対してもバスロックの要求を伴ってシステムバスにアクセス要求を出力するという構成を採用したから、プロセッサコアによるメモリリソースの第1アドレスに対するアクセスの排他制御を小さな回路規模で実現することができる。また、プロセッサコアはメモリリソースの第2アドレスに対してはシステムバスを介すること無く高速なアクセス動作を行うことが保証されている。
【0047】
〔17〕<ロック変数の格納に割り当てられた第1アドレス>
項16のデータプロセッサにおいて、前記複数個のプロセッサコアはリソースを共有し、リソースに対応するロック変数(FlagN)を操作して当該リソースに対する排他的な使用権の獲得と解放を行なう。前記第1アドレスは前記リソースに対する排他的な使用権の獲得と解放を行なうためのロック変数の格納に割り当てられるアドレスである。
【0048】
ロック変数に対する操作に複数回のアクセスを要するとき、その間、前記バスロックによる排他制御状態を維持することが可能になる。
【0049】
〔18〕<解放状態のロック変数の操作>
項17のデータプロセッサにおいて、前記プロセッサコアは、自又は他のプロセッサコアにおける第1アドレスからロック変数をリードしてロック状態が解放されていることを検出したとき前記ロック変数にロック状態を示す値を書き込んで、当該ロック変数のリソースに対するアクセス権を獲得し、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴う。
【0050】
メモリリソースに格納されたロック変数をリード・モディファイ・ライトによって操作する間、前記バスロックによる排他制御状態を維持することが可能になる。
【0051】
〔19〕<ロック状態のロック変数の操作>
項18のデータプロセッサにおいて、前記プロセッサコアは、自又は他のプロセッサコアにおける第1アドレスからロック変数をリードして既にロック状態であることを検出したとき前記ロック変数にロック状態を示す値を書き込んでロック状態の解放を待ち、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴う。
【0052】
ロック状態を確保できなかった場合もロック状態を確保できる場合と同様の手順でロック変数に対するリード・モディファイ・ライトの操作を行うことができる。
【0053】
〔20〕<プロセッサコアの共有メモリリソースアクセスにおける内部バスのバスロック選択>
本発明の更に別の実施の形態に係るデータプロセッサも、項16と同様に複数のプロセッサコアの外に配置された共有メモリを排他制御の対象とする。即ち、データプロセッサ(1)は、複数個のプロセッサコアと、前記複数個のプロセッサコア(20,40)に接続され内部バス調停回路(81)を有する内部バス(80)と、排他制御状態を維持するバスロックの設定と解除が可能にされるシステムバス調停回路(6)を有するシステムバス(5)と、前記内部バス及び前記システムバスに接続され前記プロセッサコア又は前記システムバスから供給されるアクセス要求に応答するバスインタフェース回路(84)と、前記バスインタフェース回路に接続された共有メモリ(87)と、を有する。前記バスインタフェース回路は、前記プロセッサコアによる前記共有メモリへのアクセスが第1アドレス(ロック変数割り当てアドレス)へのアクセス要求であるときバスロックの要求を伴って当該アクセス要求を前記システムバス調停回路に与えると共にシステムバス調停回路から帰還されるのを待って当該アクセス要求を前記共有メモリに伝達する。前記プロセッサコアによる前記共有メモリのアクセス要求が第2アドレス(ロック変数非割り当てアドレス)へのアクセス要求であるとき前記システムバスを通さずに当該アクセス要求を前記共有メモリに伝達する。
【0054】
このように、プロセッサコアは共有メモリの第2アドレスに対しては高速なアクセス動作を保証することができ、共有メモリの第1アドレスに対してはバスロックを伴ったアクセス要求を発行することによってシステムバスをロックした連続的な排他的アクセスを可能とする。項16と同様に、共有メモリの内部アクセスに対してもバスロックの要求を伴ってシステムバスにアクセス要求を出力するという構成を採用したから、プロセッサコアの自らのローカルメモリに対する排他制御を小さな回路規模で実現することができる。
【0055】
〔21〕<ロック変数の格納に割り当てられる第1アドレス>
項20のデータプロセッサにおいて、前記複数個のプロセッサはリソースを共有し、リソースに対応するロック変数(FlagN)を操作して当該リソースに対する排他的な使用権の獲得と解放を行ない、前記第1アドレスは前記ロック変数の格納に割り当てられるアドレスである。
【0056】
ロック変数に対する操作に複数回のアクセスを要するとき、その間、前記バスロックによる排他制御状態を維持することが可能になる。
【0057】
〔22〕<解放状態のロック変数の操作>
項21のデータプロセッサにおいて、前記プロセッサコアは、自又は他のプロセッサコアにおける第1アドレスからロック変数をリードしてロック状態が解放されていることを検出したとき前記ロック変数にロック状態を示す値を書き込んで、当該ロック変数のリソースに対するアクセス権を獲得し、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴う。
【0058】
共有メモリのロック変数をリード・モディファイ・ライトによって操作する間、前記バスロックによる排他制御状態を維持することが可能になる。
【0059】
〔23〕<ロック状態のロック変数の操作>
項22のデータプロセッサにおいて、前記プロセッサコアは、自又は他のプロセッサコアにおける第1アドレスからロック変数をリードして既にロック状態であることを検出したとき前記ロック変数にロック状態を示す値を書き込んでロック状態の解放を待ち、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴う。
【0060】
ロック状態を確保できなかった場合もロック状態を確保できる場合と同様の手順でロック変数に対するリード・モディファイ・ライトの操作を行うことができる。
【0061】
〔24〕<スプリットトランザクションバス>
項23のデータプロセッサにおいて、前記システムバスは、前記システムバス調停回路としてパケットルータ(6)を有するスプリットトランザクションバス(5)である。
【0062】
このバスは、イニシエータからのアクセス要求をターゲット毎に分離し、また、アクセス要求とその応答をリクエストパケットとレスポンスパケットに分離するから、バスアクセス効率の向上が実現される。
【0063】
〔25〕<ロック信号>
項24のデータプロセッサにおいて、前記パケットルータは、前記イニシエータからバスロックの指示(Lock)を伴うリクエストパケットを受け取ったとき、同じイニシエータからバスロックの解除を伴うリクエストパケットを受け取るまで他のイニシエータからのリクエストパケットを同じターゲットに転送することを抑止する。
【0064】
〔26〕<アドレス判定回路>
項20乃至25のデータプロセッサにおいて、前記バスインタフェース回路は、前記プロセッサコアからのアクセス要求が前記共有メモリの第1アドレスであるか、前記共有メモリの第2アドレスであるか、又はそれ以外の第3アドレスであるかを判別するアドレス判定回路(90)を有する。前記バスインタフェース回路は、前記アドレス判定回路で判定された第3アドレスへのアクセス要求を前記システムバス調停回路に与え、前記アドレス判定回路で判定された第1アドレスへのアクセス要求をシステムバス経由のアクセスと同等に前記システムバス調停回路に与えて、第1アドレスへのアクセス要求に応答するためのアクセスにシステムバスを経由させ、前記アドレス判定回路で判定された第2アドレスへのアクセス要求を前記共有メモリに与える。
【0065】
アドレス判定回路を設けることによって、共有メモリの第1アドレスへのアクセスに対してバスロックの要求を伴ったアクセス要求をシステムバスに出力する構成を特に容易に実現することができる。
【0066】
〔27〕<第1、2アドレスの設定用レジスタ>
項26のデータプロセッサにおいて、前記第1アドレスと第2アドレスが夫々書換え可能にセットされるアドレスレジスタ(93,94)を有し、前記アドレス判定回路は、前記アドレスレジスタにセットされたアドレスに基づいて前記プロセッサコアによるアクセスアドレスが前記第1アドレス乃至第3アドレスの何れに対するアクセスであるかを判別する。
【0067】
前記第1アドレス及び第2アドレスをプログラマブルに設定可能であるから、ロック変数の割り当てやローカルメモリに対する高速アクセスエリアの設定を、データプロセッサを用いるデータ処理システムの構成に応じて任意に決定する自由度が増す。
【0068】
〔28〕<プロセッサコアによるアドレスレジスタのセット>
項27のデータプロセッサにおいて、前記アドレスレジスタは前記プロセッサコアのアドレス空間にマッピングされる。
【0069】
前記第1アドレス及び第2アドレスの設定を中央処理装置のリセット処理プログラム等を用いて容易に行うことができる。
【0070】
〔29〕<TLBエントリを用いたアクセス経路の指定>
本発明の更に別の実施の形態に係るデータプロセッサ(1A)は、リソースを共有する複数個のプロセッサコア(20A,40A)がリソースに対応するロック変数(FlagN)を操作して当該リソースに対する排他的な使用権の獲得と解放を行なう。前記複数個のプロセッサコアは、排他制御状態を維持するバスロックの設定と解除が可能にされるバス調停回路(6)を有するシステムバス(5)に共通接続される。前記プロセッサコアは、命令を実行する中央処理装置(21,41)と、アドレス変換バッファ(24A,44A)と、前記中央処理装置又は前記システムバスからアクセスされるローカルメモリ(22,42)と、前記中央処理装置又は前記システムバスから供給されるアクセス要求に応答するバスインタフェース回路(25A,45A)と、を有する。前記アドレス変換バッファは、中央処理装置が出力する論理アドレスを物理アドレスに変換するアドレス変換エントリ(Entry1〜Entry63)を有し、前記アドレス変換エントリは排他制御ビット(ATM)を有する。前記バスインタフェース回路は、前記ローカルメモリの物理アドレスが有効な排他制御ビットを伴うとき、バスロックの要求を伴って当該物理アドレスへのアクセス要求を前記バス調停回路に与えると共に前記バス調停回路から帰還されるのを待って当該物理アドレスへのアクセス要求を前記ローカルメモリに伝達し、前記ローカルメモリの物理アドレスが有効な排他制御ビットを伴わないときはシステムバスを通さずに当該物理アドレスへのアクセス要求を前記ローカルメモリに伝達する。
【0071】
これによれば、いままで説明した第1アドレスに対するバスロックを用いた排他制御と同様の作用をアドレス変換エントリの排他制御ビットを用いて奏することができる、これにおいても上記同様に、プロセッサコアの自らのローカルメモリに対する排他制御を小さな回路規模で実現することができる。
〔30〕<プロセッサコア内のPAMによる保護>
本発明の更に別の実施の形態に係るデータプロセッサ(1B)は、バス調停回路(6)を有するシステムバス(5)にリソースとプロセッサコア(2)が共通接続されたデータプロセッサであって、前記システムバスとプロセッサコアとの間、及び前記システムバスとリソースとの間に夫々アドレス管理回路(120)を有し、前記アドレス管理回路はシステムバスから供給されるアクセス要求が所定の条件を満足するとき当該アクセス要求を後段に伝達する。前記プロセッサコアは、命令を実行する中央処理装置と、前記中央処理装置又は前記システムバスからアクセスされるローカルメモリと、前記中央処理装置又は前記システムバスから供給されるアクセス要求に応答するバスインタフェース回路とを有する。前記バスインタフェース回路は、前記中央処理装置による前記ローカルメモリへのアクセス要求が第1アドレスへのアクセス要求であるとき当該アクセス要求を一旦前記バス調停回路に与えて前記アドレス管理回路に伝達させ、前記中央処理装置による前記ローカルメモリへのアクセス要求が第2アドレスへのアクセス要求であるときはシステムバスを通さずに当該アクセス要求を当該プロセッサコアの前記ローカルメモリに伝達する。
【0072】
上記によれば、前記システムバスからプロセッサコアやリソースに対するアクセスの適否を管理するアドレス管理回路を用いて、プロセッサコアのローカルメモリに対する中央処理装置によるアクセスの適否を判別することができる。中央処理装置のメモリ保護機能を前記アドレス管理回路を用いて補強することが可能に成る。
【0073】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0074】
[実施の形態1]
《データプロセッサ》
図1には本発明の一実施の形態に係るデータプロセッサの全体的な構成が例示される。データプロセッサ(情報処理装置、データ処理装置、マイクロコンピュータ、MCU)1は複数個のプロセッサコアを備えたマルチプロセッサコア2を有し、マルチプロセッサコア(MLTPRCR)2が接続されるシステムバス(SBUS)5には画像処理や暗号化復号処理等を行なうアクセラレータのような複数個のハードウェアIPモジュール(HWIP)3,4、シンクロナスDRAM(SDRAM)16等メモリ制御を行うメモリコントローラ(MEMC)7、スタティックRAM(SRAM)19等に接続される外部バスコントローラ(EXBSC)8、ダイレクトメモリアクセスコントローラ(DMAC)9、及び内部メモリ(MEM)19等が接続される。
【0075】
前記システムバス5は周辺バスコントローラ10を介して周辺バス(PBUS)11に接続される。周辺バス11には、代表的に示された、内部の同期クロック信号を生成するパルスジェネレータ(CPG)12、割り込み要求に対するマスク制御や優先制御を行ってマルチプロセッサコア2に割り込み信号を供給する割り込みコントローラ(INTC)12、タイマユニット(TMU)14、及び汎用入出力ポート(GPIO)15が接続される。
【0076】
マルチプロセッサコア(MLTPRCR)2には例えば図2に例示される構成を採用することが可能である。図2に示されるマルチプロセッサコア2は、システムバス5に接続された複数のプロセッサコア(Core0,Core1,…)20,40を有する。
【0077】
プロセッサコア20は、命令を実行する中央処理装置(CPU)21と、CPU21又は前記システムバス5からアクセスされるローカルメモリ(LRAM)22と、回路ユニット26とを有し、それらはオペランドバス27と命令バス28に共通接続される。回路ユニット26はキャッシュメモリ(CACHE)23、メモリマネージメントユニット(MMU)24及びバスインタフェース回路(BIFC)25を備える。バスインタフェース回路25はCPU21又はシステムバス5から供給されるアクセス要求に応答してバスインタフェース制御を行う。特に制限されないが、キャッシュメモリ23及びメモリマネージメントユニット24はバスインタフェース回路25に接続され、バスインタフェース回路25はオペランドバス27と命令バス28に接続されると共に、ローカルバス29を介してローカルメモリ22に接続され、且つシステムバス5に接続される。
【0078】
プロセッサコア40は、命令を実行する中央処理装置(CPU)41と、CPU41又は前記システムバス5からアクセスされるローカルメモリ(LRAM)42と、回路ユニット46とを有し、それらはオペランドバス47と命令バス48に共通接続される。回路ユニット46はキャッシュメモリ(CACHE)43、メモリマネージメントユニット(MMU)44及びバスインタフェース回路(BIFC)45を備える。バスインタフェース回路45はCPU41又はシステムバス5から供給されるアクセス要求に応答してバスインタフェース制御を行う。特に制限されないが、キャッシュメモリ43及びメモリマネージメントユニット44はバスインタフェース回路45に接続され、バスインタフェース回路45はオペランドバス47と命令バス48に接続されると共に、ローカルバス49を介してローカルメモリ42に接続され、且つシステムバス5に接続される。
【0079】
前記システムバス5は、バス調停回路としてパケットルータ(SRTR)6を有するスプリットトランザクションバスである。このバスは、イニシエータからのアクセス要求をターゲット毎に分離し、また、アクセス要求とその応答をリクエストパケットとレスポンスパケットに分離することによって、バスアクセス効率を向上させようとするものである。即ち、イニシエータはリクエストコマンドを発行してバスアクセスを要求する回路であって、プロセッサコア20,40、ハードウェアIP3,4及びDMAC9等のバスアクセス主体と成り得る回路である。ターゲットはイニシエータによるアクセス対象とされる回路である。イニシエータであってもターゲットとして機能する回路もあり、例えばDMAC9はデータ転送制御を行うときはイニシエータとして機能するが、その転送制御レジスタはプロセッサコアによって転送制御データがセットされるターゲットになる。前記リクエストコマンドには、コマンド発行元のイニシエータを特定するイニシエータID、アクセス先であるターゲットを特定するターゲットID、アクセスアドレス、書き込みアクセスの場合の書き込みデータ等を含む。パケットルータ6はリクエストパケットを受け取ると、それが指示するアクセス先のターゲットが他のアクセス要求に競合しているか等を判別し、競合していなければ当該イニシエータへの信号バスを介して当該リクエストパケットを転送するようにルーティングの制御を行う。リクエストパケットに対する応答はレスポンスパケットとしてターゲットからパケットルータ6に与えられ、パケットルータはレスポンスパケットをアクセス要求元のイニシエータに返す。例えば、パケットルータ6によるルーティング制御によって一つのリクエストパケットを所要のターゲットに転送するために割り当てられた信号バスは、それに応答するレスポンスパケットがパケットルータ6に送られてアクセス要求元のイニシエータに返されるまでそのアクセス要求に占有される。要するに、スプリットトランザクションバスにおいては、イニシエータからパケットルータまでの経路はターゲット毎に個別化され、パケットルータからターゲットへの経路はターゲット毎に個別化され、パケットルータ6はそのルーティング制御によってイニシエータをターゲットに接続する制御を行い、接続された経路は、アクセス要求が受け付けられて完了されるまで当該イニシエータによるアクセスに占有される。
【0080】
更に、パケットルータ6はリクエストパケットに応答してターゲットに接続した経路を当該アクセス要求が受け付けられて完了されるまで占有させる排他制御の状態を当該アクセス完了後も維持させるバスロックの設定と解除の機能を備える。具体的には、前記パケットルータ6は、前記イニシエータからバスロックの指示(アサートされたバスロック信号)を伴うリクエストパケットを受け取ったとき、同じイニシエータからバスロックの解除(ネゲートされたバスロック信号)を伴うリクエストパケットを受け取るまで他のイニシエータからのリクエストパケットを同じターゲットに転送することを抑止する。このように、パケットルータ6はバスアクセスに対する競合を排除するための排他制御(バス排他制御)を行うと共に、バス排他制御による排他制御の状態をバスロック信号によって維持するためのバスロックによる排他制御を行う。
【0081】
更にデータプロセッサはもう一つの排他制御としてスピンロックによる排他制御を行う。即ち、SDRAM16、SRAM17、LRAM22,42、タイマ(TMU)14、汎用入出力回路(GPIO)15、及び図示しないその他の周辺回路等のリソースを共有する複数個のCPU21,41がリソースに対応するロック変数を操作して当該リソースに対する排他的な使用権の獲得と解放を行なう。ロック変数はSDRAM16、SRAM17及びLRAM22,42等のメモリデバイスの所定のアドレスに割り当てられる。スピンロックによる排他制御は排他的な使用権を獲得しようとするリソースに対応するロック変数に対するリード・モディファイ・ライトのメモリ操作によって行われる。即ち、特定のリソースを排他的に使用しようとするCPUは当該リソースに対するロック変数のリードアクセスを行い、リードしたロック変数によってロック状態が解放されていることを検出したとき、前記ロック変数にロック状態を示す値を書き込むライトアクセスを行って、当該ロック変数のリソースに対する使用権を獲得する。このリードアクセスとライトアクセスの間で他のCPUが当該ロック変数をリード又はライトアクセスすると、夫々のCPU間でのロック変数の意義が失われてしまう。そこで、CPUは前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴うようにし、これによってリード・モディファイ・ライトのアクセス期間中にシステムバス5経由で他のCPUによって当該ロック変数が不所望にアクセスされることのないように考慮される。また、リードしたロック変数が既にロック状態であることを検出したときも上記同様に前記ロック変数にロック状態を示す値を書き込んでから、ロック状態の解放を待ち、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴うようにする。ロック状態を確保できなかった場合もロック状態を確保できる場合と同様の手順でロック変数に対するリード・モディファイ・ライトの操作を行うことができる。
【0082】
《バスロックを併用したスピンロックによる排他制御》
図3にはバスロックを併用したスピンロックによる排他制御のフローチャートが示される。例えばメモリ領域Nを排他的に使用しようとするCPUは当該リソースに対するロック変数FlagNのリードアクセスを行い(S1)、リードしたロック変数によってロック状態が解放されているか否かを判別し(S2)、ロック状態が解放されていること(FlagN=0)を検出したとき、前記ロック変数FlagNにロック状態を示す値“1”を書き込むライトアクセスを行って(S3)、メモリ領域Nに対する使用権を獲得できたことを認識して当該領域Nに対して処理を行ない(S5)、処理終了後に、ロック変数FlagNの“0”をライトして領域Nに対する使用権を放棄する(S6)。ステップS2においてロック変数が既にロック状態であることを検出したとき(FlagN=1)は、ステップS3と同様にロック変数FlagNにロック状態を示す値“1”を書き込んでから、ステップS1に戻り、ロック状態の解除を待ってステップS3以降に進む。ステップS1〜S4の処理期間においてシステムバス5はバスロック状態にされる。
【0083】
このようにスピンロックによる排他制御にバスロックを併用することによってリード・モディファイ・ライトのアクセス期間中にシステムバス5経由で他のCPUによって当該ロック変数が不所望にアクセスされる事態は防止される。スピンロックによる排他制御にバスロックを併用するという点で、ロック変数のアクセスがシステムバス5を経由する場合にだけ効果がある。例えば図27に例示されるようにバスロックによる排他制御を行う領域がMEM,SDRAM,SRAMに限定されている場合であり、図28に例示されるように、例えばロック変数はSDRAMの特定のアドレス領域にマッピングされ、マッピングされたロック変数は図29に示されたリソースの使用権の獲得と解除に用いられる。
【0084】
一方、図2で説明したように、プロセッサコア20,21がローカルメモリ22,42を持ち、複数のプロセッサコアが互いに他のプロセッサコアのローカルメモリを共有する場合、ローカルメモリ22,42は複数のCPU21,41の共有リソースとなり、前記スピンロックによる排他制御を行って特定のCPUが排他的に利用できるようにしておくことが必要になる。その場合に、スピンロックによる排他制御のためのロック変数はローカルに配置することが最適であると考えられる。例えばローカルメモリ22のロック変数は自らのローカルメモリ22に配置する。自らが自らのローカルメモリを利用するのにロック変数に対するアクセス速度に点で好適だからである。但し、ロック変数のアクセスをプロセッサコアの内部で閉じて行う場合にはシステムバス5によるバスロックを併用することができず、リード・モディファイ・ライトのアクセスの途中でシステムバスから当該ローカルメモリのロック変数がアクセスされる可能性がある。
【0085】
そこで、バスインタフェース回路25は、図4に例示されるように、CPU21による前記ローカルメモリ22へのアクセス要求が第1アドレスとしてのロック変数へのアクセス要求であるときバスロックの要求を伴って当該アクセス要求をシステムバス5を経由してパケットルータ6に与えると共に前記パケットルータ6からアクセス要求が帰還されるのを待って前記ローカルメモリ22に伝達する。前記CPU21による前記ローカルメモリ22へのアクセスがそれ以外の第2アドレスへのアクセス要求であるときは図5に例示されるようにシステムバス5を通さずに当該アクセス要求を前記ローカルメモリ22に伝達する。また、図6に例示されるようにCPU21がシステムバス5を経由して他のプロセッサコア40のローカルメモリ42をアクセスするときバスインタフェース回路25はそのアクセス要求をシステムバス5に出力する。このとき、CPU21がローカルメモリ42上のロック変数を操作するときはそのアクセス要求にバスロックの要求を伴うことになる。また、図7に例示されるように、システムバス5を経由する他のプロセッサコア40からローカルメモリ22に対するアクセスに対してバスインタフェース回路25はCPU21とのアクセス競合を回避する制御を行って、そのアクセス要求に答える制御を行う。他方のプロセッサコア40に関しても上記と同様であるのでその詳細な説明は省略する。
【0086】
図8にはバスロックを併用したスピンロックによるロック変数の排他制御、それによって獲得した使用権に基づくリソースの排他的使用、及び排他的使用後のロック変数操作による排他的使用権の解除について一連の動作フローが示される。ここでは、プロセッサコア20のCPU21がロック変数の操作を行い、当該ロック変数はLRAM22の第1アドレスに格納され、そのロック変数に対応されるリソースをDMAC9とする。ここではリソースであるDMAC9に対するアクセス対象はデータ転送制御データが格納されるデータ転送制御レジスタとし、それを領域Nとして図示し、対応するロック変数をFlagNとして図示する。
【0087】
図8においてS10〜S21はバスロックを併用したスピンロックによるロック変数の操作によって領域Nの使用権を獲得する処理、S22〜S27は獲得した使用権をもとに領域Nを排他的に使用する処理、S28〜S33は領域Nの使用権を開放する処理である。
【0088】
先ず、プロセッサコア20のCPU21はLRAM22の第1アドレスからロック変数FlagNをリードするためにバスロックの要求を伴ってロード要求を発行する。このロード要求にしたがってプロセッサコア20のバスインタフェース回路25はバスロックの要求信号をアサートしてロード要求に応ずるリクエストパケットをシステムバス5に出力する(S10)。これに応答してシステムバス5のパケットルータ6はリクエストパケットを受け付けたことをグラント信号によってプロセッサコア20に返し(S11)、そのリクエストにしたがってターゲットであるLRAM22への経路の調停を行い、他のイニシエータとの競合がないところで、LRAM22への経路に対するバスロックを行って当該リクエストパケットをバスインタフェース回路25に帰還させ(S12)、LRAM22はそのリード要求を受け付けたことをグラント信号によってパケットルータ6に返してそのリード要求に応ずる読み出し動作を行い(S13)、リードデータをレスポンスパケットによってシステムバス5に返す(S14)。このリードデータはパケットルータ6を経由してプロセッサコア20のCPU21が受け取って(S15)、その値を判別する。例えば判別結果はFlagN=0であったとする。判別後、プロセッサコア20のCPU21はLRAM22の第1アドレスのロック変数FlagNに値“1”を書きこむためにストア要求を発行する。このストア要求にしたがってプロセッサコア20のバスインタフェース回路25はバスロックの要求信号をネゲートしてストア要求に応ずるリクエストパケットをシステムバス5に出力する(S16)。これに応答してシステムバス5のパケットルータ6は、リクエストパケットを受け付けたことをグラント信号によってプロセッサコア20に返し(S17)、そのリクエストにしたがって上記バスロックされているLRAM22への経路を用いて当該リクエストパケットをバスインタフェース回路25に帰還させ(S18)、LRAM22はそのライト要求を受け付けたことをグラント信号によってパケットルータ6に返してそのライト要求に応ずる書き込み動作を行い(S19)、書き込み完了をレスポンスパケットによってシステムバス5に返す(S20)。このレスポンスパケットはパケットルータ6を経由してプロセッサコア20のCPU21が受け取る(S21)。これによってロック変数FlagNを値“1”に設定したプロセッサコア20が領域Nに対する排他的使用権を獲得する。ロック変数FlagNのリード・モディファイ・ライトによる操作期間中はパケットルータ6によるバスロックによってLRAM22に対するアクセス権はCPU21が占有するから、その途中で他のCPUがロック変数FlagNを参照したり書き込んだりすることが確実に排除されている。
【0089】
領域Nの使用権を獲得したCPU21は、領域NとしてのDMAC9のレジスタに制御データを書きこむためにストア要求を発行する。このストア要求にしたがってプロセッサコア20のバスインタフェース回路25は当該ストア要求に応ずるリクエストパケットをシステムバス5に出力する(S22)。これに応答してシステムバス5のパケットルータ6は、リクエストパケットを受け付けたことをグラント信号によってプロセッサコア20に返し(S23)、そのリクエストにしたがってDMAC9への経路を用いて当該リクエストパケットを供給する(S24)。このとき、CPU21が領域Nの使用権を獲得しているから、換言すれば、領域Nのロック変数FlagNは値“1”に設定されているので他のCPUは自律的に領域Nへのアクセスを控えているから、システムバス5上でDMAC9へのアクセスが他のCPUと競合しないことが保証されている。DMAC9はそのライト要求を受け付けたことをグラント信号によってパケットルータ6に返してそのライト要求に応ずる書き込み動作を行い(S25)、書き込み完了をレスポンスパケットによってシステムバス5に返す(S26)。このレスポンスパケットはパケットルータ6を経由してプロセッサコア20のCPU21が受け取る(S27)。これによってCPU21はDMAC9に転送制御データを書き込んでDMA転送をさせることができる。
【0090】
CPU21はステップS27のレスポンスに応答して、LRAM22の第1アドレスのロック変数FlagNに値“0”を書きこむためにストア要求を発行する。このストア要求の発行にはバスロックの要求は伴わない。このストア要求にしたがってプロセッサコア20のバスインタフェース回路25はストア要求に応ずるリクエストパケットをシステムバス5に出力する(S28)。これに応答してシステムバス5のパケットルータ6は、リクエストパケットを受け付けたことをグラント信号によってプロセッサコア20に返し(S29)、そのリクエストにしたがってLRAM22への経路を用いて当該リクエストパケットをバスインタフェース回路25に帰還させ(S30)、LRAM22はそのライト要求を受け付けたことをグラント信号によってパケットルータ6に返してそのライト要求に応ずる書き込み動作を行い(S31)、書き込み完了をレスポンスパケットによってシステムバス5に返す(S32)。このレスポンスパケットはパケットルータ6を経由してプロセッサコア20のCPU21が受け取る(S33)。これによってプロセッサコア20による領域Nの排他的使用権が開放される。
【0091】
図9には図8のステップS10〜S21におけるプロセッサコアとシステムバスとの間におけるデータ転送動作のタイミングチャートが例示される。ここではプロセッサコア(Core0)20が先にシステムバス5のバス権を獲得してロック変数の操作を行う(ステップS10〜S21)、その間、プロセッサコア(Core1)40が同じロック変数の操作を行うためにシステムバスのアクセスを待っている状態が示される。リクエストパケット(Request)の関係信号としてリクエスト信号(Req)、グラント信号(Gnt)、バスコマンド(Command)、ライトデータ(Write Data)、ロック信号(Lock)が例示され、レスポンスパケットの関係信号としてレスポンスバリッド信号(R_Valid)、レスポンスデータ(R_Data)が示される。プロセッサコア20とシステムバス5との間の動作タイミングにおいて、Aは図8のステップS10〜S13の動作に対応され、Bは図8のステップS14,S15の動作に対応され、Cは図8のステップS16〜S19の動作に対応され、Dは図8のステップS20,S21の動作に対応される。時刻t2から時刻t7までがバスロックの期間とされ、この期間においては、プロセッサコア20からのるクエスト信号Reqがネゲートされていても、プロセッサコア40はLRAM21へのシステムバス5上のバス権を取得することはできず、プロセッサコア40が発行するアクセス(例えばロック変数Flagをリード)するためのリクエストパケットはルータ6に受理されない。プロセッサコア40はリクエストパケットを維持することにより、バスロック状態が解除された後に、ロック変数FlagN等のリードアクセスが可能になる。仮に、プロセッサコア40が当該ロック変数FlagNをリードできてもその値が“0”である限り、ロック変数FlagNによるDMACのスピンロック状態は開放されていないので、図8で説明したように、ステップ33の処理が終了するのを待つ必要がある。
【0092】
《バスインタフェース回路の具体例》
図10にはバスインタフェース回路25の詳細が例示される。バスインタフェース回路25は、代表的に示されたアドレス判定回路60、バスインタフェースロジック(BIFLGC)61及びセレクタ62を有し、アドレス判定回路60には排他制御領域指定レジスタ63及びLRAM領域指定レジスタ64に設定されたアドレス情報が供給され、供給されたアドレス情報とCPU21が出力するアクセスアドレス信号Addとを比較判別する判別論理を有する。判別論理として、アドレス信号Addがレジスタ64に指定されているアドレスの範囲にあるか否かを判別する判別回路70、アドレス信号Addがレジスタ63に指定されているアドレスの範囲にあるか否かを判別する判別回路71、判別回路70による判別結果の非反転信号と判別回路71による判別結果の反転信号との論理積をとるアンドゲート72、判別回路70による判別結果の反転信号と判別回路71による判別結果の非反転信号との論理和をとるオアゲート73、アンドゲート72の出力とリクエスト信号Reqとの論理積をとるアンドゲート74、及びオアゲート73の出力とリクエスト信号Reqとの論理積をとるアンドゲート75を備える。
【0093】
LRAM領域指定レジスタ64はLRAM22がマッピングされるアドレス領域を指定し、例えば先頭アドレスと領域のサイズによってそのアドレス領域を指定する。排他制御領域指定レジスタ63はリード・モディファイ・ライトのアクセス期間中に排他制御が行われるべきLRAM22上のアドレス領域、例えばロック変数が格納されるアドレス領域を指定し、例えば図11に例示されるように、先頭アドレスS_Addressと領域のサイズSIZEによってそのアドレス領域を指定し、指定の有効性を示すイネーブルビットENを有する。
【0094】
判別回路70,71は一致の判別結果を得るまでローレベルを出力し、一致を判別したときハイレベルを出力する。イネーブルビットENが非活性であれば判別回路71の出力は不一致の出力と同じにされる。
【0095】
上記アドレス判定回路60により、CPU21が出力するアドレス信号Addが、レジスタ63に指定されたロック変数のアドレスに一致し且つイネーブルビットENが活性であれば、バスリクエスト信号BREQがアサートされる。CPU21が出力するアドレス信号Addが、レジスタ64に指定されたアドレスに一致又はイネーブルビットENが非活性であれば、メモリリクエスト信号LREQがアサートされる。CPU21が出力するアドレス信号Addがレジスタ64に指定されたアドレスに不一致であれば、バスリクエスト信号BREQがアサートされる。
【0096】
メモリリクエスト信号LREQがアサートされるとLRAM22はそのときのCPU21からのアクセス要求に従ってメモリ動作を行い、CPU21からの書き込みデータWDataが書き込まれ、セレクタ62を介して読出しデータRDataがCPU21に供給される。この時のアクセスはMMU24を通らないので、アドレスはCPU21の論理アドレスで行われる。つまり、メモリリクエスト信号LREQがアサートされるとき、LRAM22はCPUから直接メモリアクセスされることが可能となる。要するに、メモリリクエスト信号LREQがアサートされるときは、従来通りのバスを経由しないバイパス経路を介してLRAMアクセスを行う。
【0097】
バスリクエスト信号BREQがアサートされると、バスインタフェースロジック25はそのときのCPU21からのアドレス信号に応じたバスアクセス動作等を行う。すなわち、アドレス信号Addがレジスタ63に設定されたアドレスであれば、バスインタフェース回路25は、LRAM22のアクセス対象アドレス(例えばロック変数FlagNのアドレス)をターゲットとするリクエストパケットをバスロックの要求を伴って出力し、それに対するルータ6からのグラント信号の入力を待って当該リクエストパケットに応ずるLRAM22のアクセスをバス29を経由して行う。その動作は図8及び図9等に基づいて説明した通りである。この時のアクセスアドレスがMMU24によるアドレス変換の対象であれば、アドレス信号AddをMMU24で物理アドレスに変換したアドレスをリクエストパケットに含めてシステムバス5に出力し、LRAM22はバス29から供給されるアドレス信号を物理アドレスとしてデコードする処理を行なう。また、そのときのアドレス信号Addがレジスタ63に設定されたアドレスでなければ、必要に応じてMMU24によるアドレス変換を行い、キャッシュメモリ23によるキャッシュの対象であればキャッシュメモリ23を動作させ、システムバス5のアクセスが必要であればリクエストパケットを生成してシステムバス5に出力する。バスリクエスト信号BREQがアサートされるとき、LRAM22は、バスを介してCPUからアクセスされることが可能となる。つまり、バスリクエスト信号BREQがアサートされたとき、CPUはバスを経由したアクセス経路によって、LRAM22をアクセスすることが可能となる。
【0098】
上述した排他制御領域指定レジスタ63及びLRAM領域指定レジスタ64の設定状態に従ったプロセッサコアのアクセス形態を整理すると図12のようになる。プロセッサコア20を例に採れば、CPU21によるLRAM22以外のアドレス(他領域)に対してはバスリクエストBREQがアサートされ、バスロックによる排他制御が可能にされる。レジスタ63で指定されていないLRAM22の排他制御対象外アドレスに対してはメモリリクエストLREQがアサートされ、バスロックによる排他制御は不可能にされる。一方、レジスタ63で指定される排他制御対象アドレスに対するアクセスは、イネーブルビットENが活性であればバスリクエストBREQがアサートされて、バスロックによる排他制御が可能にされ、イネーブルビットENが非活性であればメモリリクエストLREQがアサートされてバスロックによる排他制御は不可能にされる。
【0099】
尚、他のプロセッサコア40も上記同様であるからその詳細な説明は省略する。
【0100】
プロセッサコア20,40のローカルメモリLRAM22,42に対してバスロックによる排他制御が可能にされたデータプロセッサの全体的なアドレス空間において、バスロックによる排他制御領域は図13に例示されるようになる。ここではプロセッサコアCore0〜Core3のローカルメモリLRAMは夫々の排他制御領域指定レジスタ63の設定内容次第でバスロックの排他制御の対象又は非対象にすることが選択可能にされる。
【0101】
実施の形態1によれば以下の作用効果を得る。
【0102】
〔1〕プロセッサコア20(40)は他のプロセッサコア40(20)の内部リソースであるローカルメモリ42(22)の特定アドレスのロック変数に対してバスロックを伴ったアクセス要求を発行すればシステムバス5を介して連続的に排他的なアクセスを行うことができる。更に、プロセッサコア20(40)は自らの内部リソースであるローカルメモリ22(42)の特定アドレスのロック変数に対してもバスロックを伴ったアクセス要求を発行すればシステムバスをロックして連続的に排他的なアクセスを行うことができる。自らの特定アドレスのロック変数へのアクセスに対してもシステムバス5のバスロック機能を利用できるようにしたからである。それを実現するのに、自らの特定アドレスへの内部アクセスに対してもバスロックの要求を伴ってシステムバス5にアクセス要求を出力するという構成を採用したから、プロセッサコア20(40)の自らの内部メモリリソースであるローカルメモリ22(42)に対する排他制御を小さな回路規模で実現することができる。また、プロセッサコア20(40)は自らの内部リソースであるローカルメモリ22(42)のロック変数以外のアドレス領域に対しては内部だけで高速なアクセス動作を行うことが保証されている。
【0103】
〔2〕上記より、スピンロックによる排他制御のためにロック変数に対する操作に複数回のアクセスを要するとき、その間、前記バスロックによる排他制御状態を維持することが可能になる。したがって、自又は他のプロセッサコアにおけるロック変数をリード・モディファイ・ライトによって操作する間、前記バスロックによる排他制御状態を維持することが可能になる。
【0104】
〔3〕排他制御領域指定レジスタ63とLRAM領域指定レジスタ64への領域設定をリセット時等の初期化処理又はCPUのプログラム処理によってプログラマブルに行うことができるから、ロック変数の割り当てやローカルメモリに対する高速アクセスエリアの設定を、データプロセッサを用いるデータ処理システムの構成に応じて任意に決定する自由度を得ることができる。
【0105】
〔4〕キャッシュミスのペナルティによる一時的なスループットの低下が発生したとしても、キャッシュメモリ23(43)を持つことによって前記ローカルメモリ22(42)の記憶容量に比べて大きなメモリ空間に対する高速アクセスが可能になる。キャッシュミスのペナルティによる一時的なスループットの発生を回避すべきデータはローカルメモリ22(42)のロック変数用の特定アドレス以外の領域に格納して利用すればよい。ローカルメモリ22(42)のロック変数用の特定アドレスに対してキャッシュ非対象とすることによって、バスロックを伴ったアクセス要求を発行することによってシステムバスをロックして第1アドレスの連続的な排他的アクセスを保証することができる。
【0106】
[実施の形態2]
実施の形態2として図1のデータプロセッサにおけるマルチプロセッサコア(MLTPRCR)2の構成が異なる場合について説明する。
【0107】
図14にはマルチプロセッサコア(MLTPRCR)2の別の例が示される。図2との相違点はプロセッサコア20、40が直接システムバス5に接続されず、マルチプロセッサコア(MLTPRCR)2の内部バス80に接続され、バスインタフェース回路(L2BIFC)84を介してシステムバス6に接続可能にされる。バスインタフェース回路84には共有メモリ(SHRAM)87が接続される。内部バス80はバス調停回路81を有し、特に制限されないが、内部バス80がスプリットトランザクションバスとされるときバス調停回路81はパケットルータ(IRTR)によって構成される。スプリットトランザクションバスとしての内部バス80の機能はシステムバス5について説明した内容と同じであり、その詳細な説明は省略する。
【0108】
プロセッサコア20,40は実施の形態1で説明した構成と実質的に同じであるが、上述したLRAM22,42に対するバスロックによる排他制御においてバスインタフェース回路25,45がバスロックの要求を伴うリクエストパケットを出力する出力先はシステムバス5ではなく内部バス80とされる点が相違する。
【0109】
バスインタフェース回路84はプロセッサコア20,40から供給されるアクセス要求に応答してシステムバス5に対するバスインタフェース制御、共有メモリ87に対するインタフェース制御、更にシステムバス5から共有メモリ87又はLRAM22,42に対するアクセスのインタフェース制御を行う。従って共有メモリ87は内部バス80側からもシステムバス5側からもアクセス可能される。
【0110】
図14の構成においてプロセッサコア20、40と内部バス80との関係は実施の形態1で説明したプロセッサコア20、40とシステムバス5との関係と同じであるからその詳細な説明は省略する。以下では、共有メモリ87に割り当てられたロック変数をスピンロックによる排他制御のために操作するときのバスロックの制御について説明する。スピンロックによる排他制御手順は図3で説明したのと同じである。
【0111】
例えばCPU21が前記共有メモリ87のロック変数へのアクセス要求とバスロックの要求を発行すると、図15に例示されるように、バスインタフェース回路25はバスロックの要求を伴って当該アクセス要求のリクエストパケットを内部バス80に出力し、内部バス80のパケットルータ81がその要求を受け入れると当該リクエストパケットをバスインタフェース回路84に与えると共にその伝播経路にバスロックを設定する。バスインタフェース回路84は、アクセス要求先が前記共有メモリ87のロック変数へのアクセス要求であることを判別すると、バスロックの要求を伴って当該アクセス要求のリクエストパケットをシステムバス5を経由してパケットルータ6に与えると共に前記パケットルータ6からアクセス要求が帰還されるのを待って前記共有メモリ87に伝達する。
【0112】
前記CPU21による前記共有メモリ87へのアクセスがそれ以外のアドレスへのアクセス要求であるときは図16に例示されるようにバスインタフェース回路84はシステムバス5を通さずに当該アクセス要求を前記共有メモリ87に伝達する。
【0113】
また、図17に例示されるようにCPU21がシステムバス5を経由して他のリソースをアクセスするときバスインタフェース回路84はそのアクセス要求をシステムバス5に出力する。このとき、システムバス6上でのリソースアクセスにバスロックを必要としないときはシステムバス6へのアクセス要求にはバスロックの要求を伴うことを要しない。
【0114】
また、図18に例示されるように、システムバス5を経由する他のイニシエータから共有メモリ87のアクセスに対してバスインタフェース回路84はCPU21、41等の内部バス88上のバスアクセス主体とのアクセス競合を回避する制御を行って、そのアクセス要求に答える制御を行う。他のプロセッサコア40が共有メモリのロック変数をアクセスする場合に関しても上記と同様であるのでその詳細な説明は省略する。
【0115】
バスロックを併用したスピンロックによるロック変数の排他制御、それによって獲得した使用権に基づくリソースの排他的使用、及び排他的使用後のロック変数操作による排他的使用権の解除の動作については図8で説明した動作に対して尚部バス80の動作が介在されるだけであり、ほぼ同様であるからその詳細な説明は省略する。
【0116】
図19にはバスインタフェース回路84の詳細が例示される。バスインタフェース回路84は、代表的に示されたアドレス判定回路90、バスインタフェースロジック(BIFLGC)91及びセレクタ92を有し、アドレス判定回路90には排他制御領域指定レジスタ93及びSHRAM領域指定レジスタ94に設定されたアドレス情報が供給され、供給されたアドレス情報とプロセッサコア20,40が出力するアクセスアドレス信号Addとを比較判別する判別論理を有する。判別論理として、アドレス信号Addがレジスタ94に指定されているアドレスの範囲にあるか否かを判別する判別回路70、アドレス信号Addがレジスタ93に指定されているアドレスの範囲にあるか否かを判別する判別回路71、判別回路70による判別結果の非反転信号と判別回路71による判別結果の反転信号との論理積をとるアンドゲート72、判別回路70による判別結果の反転信号と判別回路71による判別結果の非反転信号との論理和をとるオアゲート73、アンドゲート72の出力とリクエスト信号Reqとの論理積をとるアンドゲート74、及びオアゲート73の出力とリクエスト信号Reqとの論理積をとるアンドゲート75を備える。
【0117】
SHRAM領域指定レジスタ94はSHRAM87がマッピングされるアドレス領域を指定し、例えば先頭アドレスと領域のサイズによってそのアドレス領域を指定する。排他制御領域指定レジスタ93はリード・モディファイ・ライトのアクセス期間中に排他制御が行われるべきSHRAM87上のアドレス領域、例えばロック変数が格納されるアドレス領域指定し、図11で説明したのと同様に、先頭アドレスS_Addressと領域のサイズSIZEによってそのアドレス領域を指定し、指定の有効性を示すイネーブルビットENを有する。
【0118】
判別回路70,71は一致の判別結果を得るまでローレベルを出力し、一致を判別したときハイレベルを出力する。イネーブルビットENが非活性であれば判別回路71の出力は不一致の出力と同じにされる。
【0119】
上記アドレス判定回路60により、プロセッサコア20,40が出力するアドレス信号Addが、レジスタ93に指定されたロック変数のアドレスに一致し且つイネーブルビットENが活性であれば、バスリクエスト信号BREQがアサートされる。プロセッサコア20,40が出力するアドレス信号Addが、レジスタ94に指定されたアドレスに一致又はイネーブルビットENが非活性であれば、メモリリクエスト信号SHREQがアサートされる。プロセッサコア20,40が出力するアドレス信号Addがレジスタ94に指定されたアドレスに不一致であれば、バスリクエスト信号BREQがアサートされる。
【0120】
メモリリクエスト信号SHREQがアサートされるとSHRAM87はそのときのプロセッサコア20,40からのアクセス要求に従ってメモリ動作を行い、内部バス80からの書き込みデータWDataが書き込まれ、セレクタ92を介して読出しデータRDataが内部バス80に供給される。
【0121】
バスリクエスト信号BREQがアサートされると、バスインタフェースロジック91はそのときの内部バス80からのアドレス信号に応じたバスアクセス動作等を行う。すなわち、アドレス信号Addがレジスタ93に設定されたアドレスであれば、バスインタフェース回路91は、SHRAM87のアクセス対象アドレス(例えばロック変数FlagNのアドレス)をターゲットとするリクエストパケットをバスロックの要求を伴って出力し、それに対するルータ6からのグラント信号の入力を待って当該リクエストパケットに応ずるSHRAM87のアクセスを行う。また、そのときのアドレス信号Addがレジスタ93に設定されたアドレスでなければ、システムバス5のアクセスが必要であればリクエストパケットを生成してシステムバス5に出力する。
【0122】
上述した排他制御領域指定レジスタ93及びSHRAM領域指定レジスタ94の設定状態に従ったプロセッサコアのアクセス形態を整理すると図20のようになる。プロセッサコア20を例に採れば、CPU21によるSHRAM87以外のアドレス(他領域)に対してはバスリクエストBREQがアサートされ、バスロックによる排他制御が可能にされる。レジスタ93で指定されていないSHRAM87の排他制御対象外アドレスに対してはメモリリクエストSHREQがアサートされ、バスロックによる排他制御は不可能にされる。一方、レジスタ93で指定される排他制御対象アドレスに対するアクセスは、イネーブルビットENが活性であればバスリクエストBREQがアサートされて、バスロックによる排他制御が可能にされ、イネーブルビットENが非活性であればメモリリクエストSHREQがアサートされてバスロックによる排他制御は不可能にされる。
【0123】
プロセッサコア20,40のローカルメモリLRAM22,42に対してバスロックによる排他制御が可能にされたデータプロセッサの全体的なアドレス空間において、バスロックによる排他制御領域は図21に例示されるようになる。ここでは、共有メモリ87は排他制御領域指定レジスタ93の設定内容次第でバスロックの排他制御の対象又は非対象にすることが選択可能にされる。更に、実施の形態1で説明したように、プロセッサコアCore0〜Core3のローカルメモリLRAMは夫々の排他制御領域指定レジスタ63の設定内容次第でバスロックの排他制御の対象又は非対象にすることが選択可能にされる。
【0124】
[実施の形態3]
ロック変数のアドレステーブルについて説明する。図2及び図14のプロセッサコア20,40に例示されるように、プロセッサコアがキャッシュメモリ(CACHE)と一緒にローカルメモリ(LRAM)を内蔵するのは、前述の通り、キャッシュメモリにおけるキャッシュミスペナルティによるデータ処理のスループット低下を予測することができない場合があり、それを回避するためには、必要なデータをローカルメモリ(LRAM)に転送し、当該データに対してキャッシュ非対象にするためである。
【0125】
その場合に、当該データのアクセスがスピンロックによる排他制御の対象にされている場合、もともとそのデータがSDRAMに配置されている場合、その一部をローカルメモリ(LRAM)に転送してキャッシュ非対象で使用する場合には、ロック変数とこれに対応するメモリ領域との関係も一時的に更新することが必要になる場合がある。
【0126】
そこで、図22に例示されるように、SDRAMにロック変数のアドレステーブル100を形成し、このテーブルを参照することによって、これからアクセスしようとするデータのロック変数がどこに配置されているかを知ることができる。例えば、あるメモリリソースのロック変数FlagB1はSDRAMのアドレスaに割り当てられると共に、当メモリリソースのデータがコピーされて格納されるローカルメモリに関してロック変数FlagB1cを割り当て、これをローカルメモリLRAMのアドレスeに配置する、というように定義されたロック変数のアドレステーブルを用意しておく。CPUはパワーオンリセット等で当該テーブルを自分のローカルメモリにストアし、必要に応じてこれを参照しながらスピンロックによるロック変数の操作を行えばよい。
【0127】
実施の形態2によれば、複数個のプロセッサコア20,40が共有する共有メモリ87にロック変数の領域が設定された場合にも、スピンロックによる排他制御のためのロック変数の操作にバスロックの機能を適用することによって、実施の形態1と同様の作用効果を得ることができる。
【0128】
[実施の形態4]
上記実施の形態で説明したバスロックによる排他制御はバスインタフェース回路におけるアドレス判定動作を用いて行ったが、実施の形態4ではTLBエントリを用いてアクセス経路の指定を行う構成について説明する。
【0129】
図23には実施の形態4に係るデータプロセッサが例示される。データプロセッサ1Aは、リソースを共有する複数個のプロセッサコア20A,40Aがリソースに対応するロック変数を操作して当該リソースに対する排他的な使用権の獲得と解放を行なうものである。図ではシステムバス5に接続する周辺回路等のその他の回路モジュールの図示を省略している。
【0130】
プロセッサコア20A,40Aは図2で説明したプロセッサコア20,40とはMMU24A,44AとBIFC25A,45Aに構成が相違される。BIFC25A,45AはBIFC25,45に対して、アドレス判定回路60によるアドレス判定動作の結果を用いて特定のアドレスに対してバスロックによる排他制御を適用可能にする制御機能が省かれている点が相違される。
【0131】
MMU24A,44AはMMU24,44に対してTLBエントリを用いてバスロックによる排他制御を適用可能にする制御機能が付加された点が相違される。以下この点について詳細に説明する。
【0132】
MMU25Aは、CPU21が出力する論理アドレスを物理アドレスに変換するアドレス変換エントリを有し、前記アドレス変換エントリは排他制御ビットを有する。前記バスインタフェース回路25Aは、前記ローカルメモリ22の物理アドレスが有効な排他制御ビットを伴うとき、バスロックの要求を伴って当該物理アドレスへのアクセス要求をシステムバス5のパケットルータ6に与えると共にパケットルータ6から帰還されるのを待って当該物理アドレスへのアクセス要求を前記LRAM22に伝達し、前記LRAM22の物理アドレスが有効な排他制御ビットを伴わないときはシステムバス5を通さずに当該物理アドレスへのアクセス要求を前記ローカルメモリ22に伝達する。
【0133】
図24にはMMU25Aが保有するアドレス変換バッファ(TLB)110のTLBエントリが例示される。TLBエントリ(Entry1〜Entry63)は、アドレス空間識別子(ASID)、仮想ページ番号(VPN)、有効ビット(V)、物理ページ番号(PPN)、ページサイズビット(SZ)、共有状態ビット(SH)、キャッシング可能ビット(C)、保護キーデータ(PR)、ダーティビット(D)、ライトスルービット(WT)、及び排他制御ビット(ATM)を有する。尚、TLBエントリを用いた連想動作は公知であるからその詳細な説明は省略する。
【0134】
図示はしないが、他方のプロセッサコア40に対しても同様に構成される。また、図14の構成を有するデータプロセッサに対しても上記同様に適用可能である。
【0135】
このように、アドレス判定回路による判定結果に応じてバスロックを用いる排他制御と同様の作用をアドレス変換エントリの排他制御ビットを用いて奏することができる。これにおいても上記同様に、プロセッサコアの自らのローカルメモリに対する排他制御を小さな回路規模で実現することができる。
【0136】
[実施の形態5]
実施の形態5ではバスからの不正アクセスをアドレス管理回路(PAM)を用いて抑制する構成を備えたデータプロセッサにおいて、プロセッサコア内で閉じたアクセス動作にもPAMによるアクセス保護機能を適用可能にしたデータプロセッサについて説明する。
【0137】
図25には本発明の実施の形態5に係るデータプロセッサ1Bが例示される。図1のデータプロセッサ1との相違は、システムバス5と夫々の回路モジュール2,3,4,7,8,9,10との間のPAMを配置した点である。マルチプロセッサコア2の構成は前述のバスロックを用いた排他制御機能を備える。
【0138】
図26にはアドレス管理回路(PAM)120の構成が例示される。PAM120はシステムバス5から供給されるアクセス要求が所定の条件を満足するとき当該アクセス要求を後段に伝達する機能を備える。即ち、アクセスを許可すべきアドレス範囲が設定される許可アドレス範囲レジスタ130、アクセスを許可すべきアクセスタイプ(リード又はライト等のバスコマンドによって指定可能なアクセスタイプ)が設定される許可アクセスタイプレジスタ131、アクセスを許可すべきイニシエータのIDが設定される許可IDレジスタ132が設けられ、システムバス5からアドレス信号Addをレジスタ130の設定値と比較する比較回路133、システムバス5からアドレス信号Addをレジスタ131の設定値と比較する比較回路134、システムバス5からアドレス信号Addをレジスタ132の設定値と比較する比較回路134が配置される。夫々のレジスタ130〜132はデータプロセッサ1Bの初期化処理で初期設定される。比較回路133〜135は比較一致を持ってハイレベルを出力する。比較回路133〜135の出力の反転信号はアンドゲート136で論理積が採られ、比較回路133〜135の出力の非反転信号はアンドゲート137で論理積が採られ、夫々の論理積信号はシステムバス5からのリクエスト信号Reqとアンドゲート138,139で論理積が採られる。アンドゲート139の出力は後段の回路モジュールにリクエスト信号Reqとして供給される。したがって、システムバス5から供給されるリクエストパケットに含まれるアドレス信号Add,コマンドCmd,及びイニシエータIDが前記レジスタ130〜132の設定内容に全て一致するとき、後段に供給されるリクエスト信号Reqが活性化される。図示は省略するが、このときアドレス信号Add,コマンドCmd,及びイニシエータIDは後段の回路モジュールに供給される。一方、アンドゲート138の出力は後段の回路モジュールからシステムバス5へのレスポンス信号Resの経路に配置されたセレクタ140の選択信号とされ、システムバス5から供給されたリクエストパケットに含まれるアドレス信号Add,コマンドCmd,及びイニシエータIDが前記レジスタ130〜132の設定内容に全て一致するときだけセレクタ140が後段回路モジュールからのレスポンス信号Resをシステムバス5に供給し、一つでも不一致の時は代理レスポンス生成回路141が生成するダミー信号をセレクタ140が選択してシステムバス5に出力する。図示は省略するがレスポンスパケットに含まれるその他の情報はシステムバス5に供給される。
【0139】
実施の形態5におけるプロセッサコアのバスインタフェース回路は内部のCPU又はシステムバス5から供給されるアクセス要求に応答する論理を有し、CPUによるローカルメモリ(LRAM)又は共有メモリ(SHRAM)へのアクセス要求がロック変数を指す特定のアドレスへのアクセス要求であるとき当該アクセス要求を一旦前記パケットルータ6等に与えて前記アドレス管理回路120に伝達させる。前記CPUによる前記ローカルメモリ(LRAM)又は共有メモリ(SHRAM)へのアクセス要求が前記特定アドレスへのアクセス要求でないときはシステムバス5を通さずに当該アクセス要求を当該プロセッサコアの前記ローカルメモリ(LRAM)又は共有メモリ(SHRAM)に伝達するという制御を行う。
【0140】
上記によれば、前記システムバス5からプロセッサコアやリソースに対するアクセスの適否を管理するアドレス管理回路120を用いて、プロセッサコア2のローカルメモリ(LRAM)や共有メモリ(SHRAM)に対するCPUによるアクセスの適否を判別することができる。CPUのメモリ保護機能を前記アドレス管理回路120を用いて補強することが可能になる。例えばMMUのメモリ保護機能が無くてもCPUによるローカルメモリ(LRAM)や共有メモリ(SHRAM)のアクセスに対するメモリ保護機能を実現することができる。
【0141】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0142】
上記実施の形態1乃至5は適宜組合わせて併用可能である。データプロセッサが備えるプロセッサコアの数、バス構成及び内蔵リソース、更にデータプロセッサが備えるその他の回路モジュールの種類や機能等は適宜変更可能である。また、ロック変数の操作手順等も適宜変更可能である。また、システムバスや内部バスはスプリットトランザクションバスに限定されず、アクセス要求とレスポンスを分離させず回路モジュールに共通のバス信号線を用いて一つのバスマスタにバスを占有させるバス調停方式を採用するバスであってもよい。
【符号の説明】
【0143】
1 データプロセッサ(MCU)
2 マルチプロセッサコア(MLTPRCR)
5 システムバス(SBUS)
16 シンクロナスDRAM(SDRAM)
19 スタティックRAM(SRAM)
9 ダイレクトメモリアクセスコントローラ(DMAC)
19 内部メモリ(MEM)
20,40 プロセッサコア(Core0,Core1)
21、41 中央処理装置(CPU)
22、42 ローカルメモリ(LRAM)
26、46 回路ユニット
27、47 オペランドバス
28、48 命令バス
23、43 キャッシュメモリ(CACHE)
24、44 メモリマネージメントユニット(MMU)
25、45 バスインタフェース回路(BIFC)
6 パケットルータ(SRTR)
FlagN ロック変数
60 アドレス判定回路
61 バスインタフェースロジック(BIFLGC)
62 セレクタ
63 排他制御領域指定レジスタ
64 LRAM領域指定レジスタ
Req リクエスト信号
LREQ メモリリクエスト信号
BREQ バスリクエスト信号
80 内部バス
84 バスインタフェース回路(L2BIFC)
87 共有メモリ(SHRAM)
81 パケットルータ(IRTR)
90 アドレス判定回路90
91 バスインタフェースロジック(BIFLGC)
92 セレクタ
93 排他制御領域指定レジスタ
94 SHRAM領域指定レジスタ
100 ロック変数のアドレステーブル
1A データプロセッサ
20A,40A プロセッサコア
24A,44A MMU
25A,45A BIFC
110 アドレス変換バッファ(TLB)
Entry1〜Entry63 TLBエントリ
ATM 排他制御ビット
120 アドレス管理回路(PAM)
130 許可アドレス範囲レジスタ
131 許可アクセスタイプレジスタ
132 許可IDレジスタ
133〜135 比較回路

【特許請求の範囲】
【請求項1】
排他制御状態を維持するバスロックの設定と解除が可能にされるシステムバスを共有する複数個のプロセッサコアが互いに他の内部のメモリリソースを共有するデータプロセッサであって、
前記プロセッサコアが内部のメモリリソースの第1アドレスへアクセスを行うときバスロックの要求を伴って当該アクセス要求を前記システムバスに出力することによりシステムバスにバスをロックさせると共にシステムバスから帰還されるのを待ってプロセッサコアが当該アクセス要求を処理し、
プロセッサコアが内部の第2アドレスへアクセスを行うとき当該アクセス要求をプロセッサコアの内部で処理する、データプロセッサ。
【請求項2】
プロセッサコアが他のプロセッサコアの内部のメモリリソースの第1アドレスへアクセスを行うとき、当該プロセッサコアはバスロックの要求を伴って当該アクセス要求を前記システムバスに出力する、請求項1記載のデータプロセッサ。
【請求項3】
前記複数個のプロセッサコアはリソースを共有し、リソースに対応するロック変数を操作して当該リソースに対する排他的な使用権の獲得と解放を行ない、
前記第1アドレスは前記リソースに対する排他的な使用権の獲得と解放を行なうためのロック変数の格納に割り当てられるアドレスである、請求項2記載のデータプロセッサ。
【請求項4】
前記プロセッサコアは、自又は他のプロセッサコアにおける第1アドレスからロック変数をリードしてロック状態が解放されていることを検出したとき前記ロック変数にロック状態を示す値を書き込んで、当該ロック変数のリソースに対するアクセス権を獲得し、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴う、請求項3記載のデータプロセッサ。
【請求項5】
前記プロセッサコアは、自又は他のプロセッサコアにおける第1アドレスからロック変数をリードして既にロック状態であることを検出したとき前記ロック変数にロック状態を示す値を書き込んでロック状態の解放を待ち、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴う、請求項4記載のデータプロセッサ。
【請求項6】
複数個のプロセッサコアと、
前記複数個のプロセッサコアに接続されていて排他制御状態を維持するバスロックの設定と解除が可能にされるバス調停回路を有するシステムバスと、を有し、
前記プロセッサコアは、命令を実行する中央処理装置と、前記中央処理装置又は前記システムバスからアクセスされるローカルメモリと、前記中央処理装置又は前記システムバスから供給されるアクセス要求に応答するバスインタフェース回路とを有し、
前記バスインタフェース回路は、前記中央処理装置による前記ローカルメモリへのアクセス要求が第1アドレスへのアクセス要求であるときバスロックの要求を伴って当該アクセス要求を前記バス調停回路に与えると共に前記バス調停回路からアクセス要求が帰還されるのを待って前記ローカルメモリに伝達し、前記中央処理装置による前記ローカルメモリへのアクセスが第2アドレスへのアクセス要求であるときシステムバスを通さずに当該アクセス要求を前記ローカルメモリに伝達する、データプロセッサ。
【請求項7】
前記複数個のプロセッサはリソースを共有し、リソースに対応するロック変数を操作して当該リソースに対する排他的な使用権の獲得と解放を行ない、
前記第1アドレスは前記ロック変数の格納に割り当てられるアドレスである、請求項6記載のデータプロセッサ。
【請求項8】
前記中央処理装置は、自又は他のプロセッサコアにおける第1アドレスからロック変数をリードしてロック状態が解放されていることを検出したとき前記ロック変数にロック状態を示す値を書き込んで、当該ロック変数のリソースに対するアクセス権を獲得し、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴う、請求項7記載のデータプロセッサ。
【請求項9】
前記中央処理装置は、自又は他のプロセッサコアにおける第1アドレスからロック変数をリードして既にロック状態であることを検出したとき前記ロック変数にロック状態を示す値を書き込んでロック状態の解放を待ち、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴う、請求項8記載のデータプロセッサ。
【請求項10】
前記システムバスは、前記バス調停回路としてパケットルータを有するスプリットトランザクションバスである、請求項9記載のデータプロセッサ。
【請求項11】
前記パケットルータは、前記イニシエータからバスロックの指示を伴うリクエストパケットを受け取ったとき、同じイニシエータからバスロックの解除を伴うリクエストパケットを受け取るまで他のイニシエータからのリクエストパケットを同じターゲットに転送することを抑止する、請求項10記載のデータプロセッサ。
【請求項12】
前記バスインタフェース回路は、前記中央処理装置からのアクセス要求が前記ローカルメモリの第1アドレスであるか、前記ローカルメモリの第2アドレスであるか、又はそれ以外の第3アドレスであるかを判別するアドレス判定回路を有し、
前記バスインタフェース回路は、前記アドレス判定回路で判定された第3アドレスへのアクセス要求を前記バス調停回路に与え、前記アドレス判定回路で判定された第1アドレスへのアクセス要求をシステムバス経由のアクセスと同等に前記バス調停回路に与えて、第1アドレスへのアクセス要求に応答するためのアクセスにシステムバスを経由させ、前記アドレス判定回路で判定された第2アドレスへのアクセス要求を前記ローカルメモリに与える、請求項6記載のデータプロセッサ。
【請求項13】
前記第1アドレスと第2アドレスが夫々書換え可能にセットされるアドレスレジスタを有し、
前記アドレス判定回路は、前記アドレスレジスタにセットされたアドレスに基づいて前記中央処理装置によるアクセスアドレスが前記第1アドレス乃至第3アドレスの何れに対するアクセスであるかを判別する、請求項12記載のデータプロセッサ。
【請求項14】
前記アドレスレジスタは前記中央処理装置のアドレス空間にマッピングされる、請求項13記載のデータプロセッサ。
【請求項15】
前記プロセッサコアは前記バスインタフェース回路に接続されるキャッシュメモリを有し、前記キャッシュメモリは前記第1アドレスをキャッシュ非対象とする、請求項6記載のデータプロセッサ。
【請求項16】
内部バスを共有する複数個のプロセッサコアがバスインタフェース回路に接続されるメモリリソースを共有すると共に前記バスインタフェース回路に接続されるシステムバスの回路モジュールも前記メモリリソースを共有するデータプロセッサであって、
前記システムバスは排他制御状態を維持するバスロックの設定と解除が可能にされ、
前記プロセッサコアが前記メモリリソースの第1アドレスへアクセスを行うとき前記バスインタフェース回路はバスロックの要求を伴って当該アクセス要求を前記システムバスに伝達することによりシステムバスにバスをロックさせると共にシステムバスから帰還されるのを待って前記メモリリソースに供給し、
プロセッサコアが前記メモリリソースの第2アドレスへアクセスを行うとき前記バスインタフェース回路は当該アクセス要求をシステムバスを通らずに前記メモリリソースに伝達する、データプロセッサ。
【請求項17】
前記複数個のプロセッサコアはリソースを共有し、リソースに対応するロック変数を操作して当該リソースに対する排他的な使用権の獲得と解放を行ない、
前記第1アドレスは前記リソースに対する排他的な使用権の獲得と解放を行なうためのロック変数の格納に割り当てられるアドレスである、請求項16記載のデータプロセッサ。
【請求項18】
前記プロセッサコアは、自又は他のプロセッサコアにおける第1アドレスからロック変数をリードしてロック状態が解放されていることを検出したとき前記ロック変数にロック状態を示す値を書き込んで、当該ロック変数のリソースに対するアクセス権を獲得し、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴う、請求項17記載のデータプロセッサ。
【請求項19】
前記プロセッサコアは、自又は他のプロセッサコアにおける第1アドレスからロック変数をリードして既にロック状態であることを検出したとき前記ロック変数にロック状態を示す値を書き込んでロック状態の解放を待ち、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴う、請求項18記載のデータプロセッサ。
【請求項20】
複数個のプロセッサコアと、
前記複数個のプロセッサコアに接続され内部バス調停回路を有する内部バスと、
排他制御状態を維持するバスロックの設定と解除が可能にされるシステムバス調停回路を有するシステムバスと、
前記内部バス及び前記システムバスに接続され前記プロセッサコア又は前記システムバスから供給されるアクセス要求に応答するバスインタフェース回路と、
前記バスインタフェース回路に接続された共有メモリと、を有し、
前記バスインタフェース回路は、前記プロセッサコアによる前記共有メモリへのアクセスが第1アドレスへのアクセス要求であるときバスロックの要求を伴って当該アクセス要求を前記システムバス調停回路に与えると共にシステムバス調停回路から帰還されるのを待って当該アクセス要求を前記共有メモリに伝達し、前記プロセッサコアによる前記共有メモリのアクセス要求が第2アドレスへのアクセス要求であるとき前記システムバスを通さずに当該アクセス要求を前記共有メモリに伝達する、データプロセッサ。
【請求項21】
前記複数個のプロセッサはリソースを共有し、リソースに対応するロック変数を操作して当該リソースに対する排他的な使用権の獲得と解放を行ない、
前記第1アドレスは前記ロック変数の格納に割り当てられるアドレスである、請求項20記載のデータプロセッサ。
【請求項22】
前記プロセッサコアは、自又は他のプロセッサコアにおける第1アドレスからロック変数をリードしてロック状態が解放されていることを検出したとき前記ロック変数にロック状態を示す値を書き込んで、当該ロック変数のリソースに対するアクセス権を獲得し、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴う、請求項21記載のデータプロセッサ。
【請求項23】
前記プロセッサコアは、自又は他のプロセッサコアにおける第1アドレスからロック変数をリードして既にロック状態であることを検出したとき前記ロック変数にロック状態を示す値を書き込んでロック状態の解放を待ち、前記ロック変数をリードするアクセス要求に前記バスロックの要求を伴い、前記ロック変数を書き込むアクセス要求に前記バスロックの解除要求を伴う、請求項22記載のデータプロセッサ。
【請求項24】
前記システムバスは、前記システムバス調停回路としてパケットルータを有するスプリットトランザクションバスである、請求項23記載のデータプロセッサ。
【請求項25】
前記パケットルータは、前記イニシエータからバスロックの指示を伴うリクエストパケットを受け取ったとき、同じイニシエータからバスロックの解除を伴うリクエストパケットを受け取るまで他のイニシエータからのリクエストパケットを同じターゲットに転送することを抑止する、請求項24記載のデータプロセッサ。
【請求項26】
前記バスインタフェース回路は、前記プロセッサコアからのアクセス要求が前記共有メモリの第1アドレスであるか、前記共有メモリの第2アドレスであるか、又はそれ以外の第3アドレスであるかを判別するアドレス判定回路を有し、
前記バスインタフェース回路は、前記アドレス判定回路で判定された第3アドレスへのアクセス要求を前記システムバス調停回路に与え、前記アドレス判定回路で判定された第1アドレスへのアクセス要求をシステムバス経由のアクセスと同等に前記システムバス調停回路に与えて、第1アドレスへのアクセス要求に応答するためのアクセスにシステムバスを経由させ、前記アドレス判定回路で判定された第2アドレスへのアクセス要求を前記共有メモリに与える、請求項20記載のデータプロセッサ。
【請求項27】
前記第1アドレスと第2アドレスが夫々書換え可能にセットされるアドレスレジスタを有し、
前記アドレス判定回路は、前記アドレスレジスタにセットされたアドレスに基づいて前記プロセッサコアによるアクセスアドレスが前記第1アドレス乃至第3アドレスの何れに対するアクセスであるかを判別する、請求項26記載のデータプロセッサ。
【請求項28】
前記アドレスレジスタは前記プロセッサコアのアドレス空間にマッピングされる、請求項27記載のデータプロセッサ。
【請求項29】
リソースを共有する複数個のプロセッサコアがリソースに対応するロック変数を操作して当該リソースに対する排他的な使用権の獲得と解放を行なうデータプロセッサであって、
前記複数個のプロセッサコアは、排他制御状態を維持するバスロックの設定と解除が可能にされるバス調停回路を有するシステムバスに共通接続され、
前記プロセッサコアは、命令を実行する中央処理装置と、アドレス変換バッファと、前記中央処理装置又は前記システムバスからアクセスされるローカルメモリと、前記中央処理装置又は前記システムバスから供給されるアクセス要求に応答するバスインタフェース回路と、を有し、
前記アドレス変換バッファは、中央処理装置が出力する論理アドレスを物理アドレスに変換するアドレス変換エントリを有し、前記アドレス変換エントリは排他制御ビットを有し、
前記バスインタフェース回路は、前記ローカルメモリの物理アドレスが有効な排他制御ビットを伴うとき、バスロックの要求を伴って当該物理アドレスへのアクセス要求を前記バス調停回路に与えると共に前記バス調停回路から帰還されるのを待って当該物理アドレスへのアクセス要求を前記ローカルメモリに伝達し、前記ローカルメモリの物理アドレスが有効な排他制御ビットを伴わないときはシステムバスを通さずに当該物理アドレスへのアクセス要求を前記ローカルメモリに伝達する、データプロセッサ。
【請求項30】
バス調停回路を有するシステムバスにリソースとプロセッサコアが共通接続されたデータプロセッサであって、
前記システムバスとプロセッサコアとの間、及び前記システムバスとリソースとの間に夫々アドレス管理回路を有し、
前記アドレス管理回路はシステムバスから供給されるアクセス要求が所定の条件を満足するとき当該アクセス要求を後段に伝達し、
前記プロセッサコアは、命令を実行する中央処理装置と、前記中央処理装置又は前記システムバスからアクセスされるローカルメモリと、前記中央処理装置又は前記システムバスから供給されるアクセス要求に応答するバスインタフェース回路とを有し、
前記バスインタフェース回路は、前記中央処理装置による前記ローカルメモリへのアクセス要求が第1アドレスへのアクセス要求であるとき当該アクセス要求を一旦前記バス調停回路に与えて前記アドレス管理回路に伝達させ、前記中央処理装置による前記ローカルメモリへのアクセス要求が第2アドレスへのアクセス要求であるときはシステムバスを通さずに当該アクセス要求を当該プロセッサコアの前記ローカルメモリに伝達する、データプロセッサ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate


【公開番号】特開2011−221931(P2011−221931A)
【公開日】平成23年11月4日(2011.11.4)
【国際特許分類】
【出願番号】特願2010−92777(P2010−92777)
【出願日】平成22年4月14日(2010.4.14)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】