説明

オンチップ・システム用の構成可能アドレス・マッピングと保護アーキテクチャ及びハードウエアに関する方法及び装置

オンチップ・システム用の構成可能アドレス・マッピングと保護アーキテクチャ及びハードウェアに関する方法及び装置が説明される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はオンチップ・システムに関する。より詳細には、本発明は、オンチップ・システム用の構成可能アドレス・マッピングと保護アーキテクチャ及びハードウェアに関する方法及び装置に関する。
【背景技術】
【0002】
ほとんどのコンピュータ及び/又はオンチップ・システムに関するオペレーショナル・モデルは、1つ又は複数の処理ユニットからシステム内の1つ又は複数のサービス・モジュールに要求を送る。処理ユニットから要求(すなわち命令)を受け取った際に、サービス・モジュールは要求されたタスクを完了する。次いで、サービスモジュールから処理ユニットに返すべき応答があるであろう。処理ユニットとサービス・モジュールのどちらとしても振る舞うシステム内の構成要素を有することもごく一般的である。
【発明の開示】
【発明が解決しようとする課題】
【0003】
処理ユニットとサービス・モジュールとの間で要求や応答を送るのに、多くの異なる方式を使用することができる。要求を送るのに最も頻繁に用いられる方法の1つは、アドレス指定(及び記憶保護チェック)による方法である。例えば、要求に「宛先アドレス」と「ソース保護識別(ID)」をタグ付けする。宛先アドレスは、サービス・モジュールがどこに位置するか、及び/又は要求をどのようにしてサービス・モジュールに送るかを示す。ソース保護IDによって処理ユニットを識別し、サービス・モジュールが要求を実行すべきかどうか、又は要求をサービス・モジュールに送ることができるかどうかを判定するのに使用され、したがってソース識別に応じて、選択的にサービス・モジュールへアクセスする。通常は、アドレス復号化及び保護IDチェックに充てられる(例えば集積回路上の)ハードウェア・モジュールのトランジスタ(「ゲート」とも呼ばれる)の数と結果としてのゲート・サイズ(すなわち面積)が比較的大きい。オペレーション中にこの復号化ハードウェア及びチェック・ハードウェアを動的(すなわち構成可能)にするために、より多くの電力を消費する追加の回路も必要となる。ワイヤレス・デバイスでは、特にチップ・ダイ・サイズを小さくし、電力消費を低くする要求が高く、大型で電力を消費するアドレス復号化及び保護チェック・モジュールは受け入れられない。これにより問題が提起される。
【発明を実施するための最良の形態】
【0004】
限定ではなく例示により、添付の図面の各図で本発明を説明する。各図では同様の参照番号は同様の要素を示す。
【0005】
オンチップ・システム用の構成可能アドレス・マッピングと保護アーキテクチャ及びハードウェアに関する方法及び装置を説明する。
【0006】
図1に、記載の技法を適用することができるネットワーク環境100を示す。ネットワーク環境100は、S個のサーバ104−1から104−SとC個のクライアント108−1から108−Cを接続するネットワーク102を有する。以下でより詳しい詳細を説明する。
【0007】
図2に、図1に示すクライアント及び/又はサーバのいずれかを代表するコンピュータ・システム200をブロック図形式で示す。以下でさらに詳細を説明する。
【0008】
この文書で使用するIPという用語は知的財産を表す。機能を有する設計を表すのにIPという用語をそれ自体で使用することがあり、又はコアなどの他の用語と共に使用することがある。例えば、IPコア又は略してIPは、回路、バス、通信リンク、マイクロプロセッサなどからなる。加えて、IPを様々な方式で実装することができ、集積回路上などに製作することができる。着信パケットが複製され、ほとんどのチップ、システムなどにわたって、あらゆる経路に対して送出される通信を表すのに、フラッディング(flooding)という用語を使用する。
【0009】
本開示では、オンチップ・システム用の構成可能アドレス・マッピングと保護アーキテクチャ及びハードウェアに関する方法及び装置を説明する。本発明の一実施形態では、必要なアドレス・マッピングと保護機能を提供する回路がハードウェアとして提供される。別の実施形態では、本発明により、製品設計者が設計時にアドレス・マッピングと保護モジュールを構成することが可能となり、それによって最小の指定のマッピングと保護だけがハードウェアで実装される。したがって、アドレス・マッピングと保護ハードウェア・モジュールの最終ゲート・サイズや電力消費が、製品の仕様によって決定される。さらに、各サービス・モジュールのアドレス幅やデータ・ワード幅も考慮に入れることができ、それを使用して、サービス・モジュールへの/からの信号ワイヤの数を最小限に抑えることができる。この結果、過剰設計されず、かつ製品のゲート・カウントや電力消費要件をより容易に満たすことができるハードウェアを得ることができる。
【0010】
開示の発明である「オンチップ・システム用の構成可能アドレス・マッピングと保護アーキテクチャ及びハードウェア」は以下を提供することができる。
1.オンチップ・システム用の集中型構成可能アドレス・マッピングと保護アーキテクチャ。
2.最終アドレス・マッピングと保護ハードウェア・モジュールについて、全ゲート・サイズの削減、電力消費の削減、及び/又は不要な信号ワイヤの省略を行うことができる1組の構成パラメータ。
3.設計者が、仕様言語を使用して設計時にアドレス・マッピングと保護ハードウェア・モジュールを構成し、最小限に抑えたハードウェア実装を生成するという目標を達成できるようにする能力。
【0011】
図4に、最適化されたアドレス・マッピングと保護ハードウェアを生成するのに使用することができる処理フローを示す。まず、製品設計者は構成可能アーキテクチャを理解しなければならない(403)。アーキテクチャ(423)は、アドレス・マッピング方式の定義、保護方式の定義、構成パラメータ・セットの定義、仕様言語の定義を含む。次いで設計者は、製品要件に基づいて、最小のハードウェアでアドレス・マッピングと保護モジュールを設計することができる(405)。製品要件とユーザ・モデルに基づいて、設計者は、例えばシステム内のサービス・モジュールの数、サービス・モジュールに関するアドレス領域の数、アドレス領域の情報をどのように使用するかを決定すべきである(443)。
【0012】
次に、設計者は、与えられた仕様言語を使用してアドレス・マッピングと保護ハードウェア・モジュールを指定する必要がある(407及び425)。終りに(409)、設計仕様を入力とす後処理ツールを使用し、アドレス・マッピングと保護ハードウェアに関して、最適化されたハードウェア・ゲート・レベル・ネットリスト(427)を生成する。
【0013】
図3に、頂部にN個の処理ユニット(302−0、302−1から302−N)を備え、底部にM個のサービス・モジュール(318−0、318−1から318−M)を備えるオンチップ・システムを有する本発明の一実施形態のブロック図を示す。システムの中央には、アドレス・マッピングと保護モジュール306があり、アドレス・マッピング308と保護キー・マップ310と、その後に続く要求配信モジュール314が示されている。図3は、システムの要求配信側だけを示していることに留意されたい(すなわち、要求側であり、戻り側は示されていない)。本発明の一実施形態では、システムの使用モデルは以下の通りである。
【0014】
・要求が処理ユニット(320−Nなど)からアドレス・マッピングと保護モジュール(306)に送られる。
【0015】
・アドレス・マッピングと保護モジュール306では、「宛先アドレス」と「ソース保護ID」が要求(304で示すものなど)から抽出される。アドレスが復号され、アドレス・マップ(308)と比較され、サービス・モジュールがどこにあるか、及びどのように要求をモジュールに送るかが判明する。与えられた保護IDが保護キー・マップ(310)に対してチェックされ、要求をサービス・モジュールに送ることが保護により許可されるのでそれを送るべきかどうかが判定される。図3には図示していないが、要求内の他の可能なフィールドは、「要求タイプ・フィールド」、「データ・フィールド」、(例えば、それがバースト・データ・ストリームであることを示すための)「データ・タイプ・フィールド」、「ユーザ提供要求情報」(例えば、ユーザがこのフィールドを使用して所有権、サブ要求タイプを与えることができる)であることに留意されたい。
【0016】
・次に、要求(312や316で示すものなど)が、要求配信モジュール(314)によってサービス・モジュール(318−2など)に送られる。
【0017】
上述のオンチップ・システムに対するセグメント化とアドレス領域を使用する構成可能アドレス・マッピングと保護アーキテクチャを有する本発明の一実施形態をここで説明する。概念的には、オンチップ・システム全体のアドレス空間をR個のアドレス領域に分割する。システム内の各サービス・モジュールは複数のアドレス領域を有することができる。R個のアドレス領域の1つと突き合わせる複雑さを低減するために、複数のアドレス領域を1つのアドレス・セグメントとしてグループ化することができる。システム内に最大S個のセグメントが存在することができる。特定のサービス・モジュールに要求を送るために、処理ユニットは、モジュールのアドレス領域内のアドレスで要求をタグ付けする必要がある。アドレス領域についての情報は、アドレス・マップ・ハードウェアに格納される領域レジスタに保たれる。アドレス・セグメントについての情報は、やはりアドレス・マップ・ハードウェアに格納されるセグメント・レジスタに保たれる。
【0018】
システム内に最大K個の異なる保護キーが存在することができる。各保護キーは、保護キー・マップ・ハードウェア内にある1つの保護キー・レジスタに保たれる。各アドレス領域は少なくとも1つの保護キーと関連付けられ、各処理ユニットには1つ又は複数の保護IDが割り当てられる。要求が処理ユニットから送られるとき、その要求に処理ユニットの保護ID(図5に示す515など)をタグ付けする。要求の宛先アドレスが復号され、サービス・モジュールのアドレス領域が識別されると、保護IDが、そのアドレス領域に関連する保護キーに対してチェックされ、要求をサービス・モジュールに転送することが安全かどうかが確認される。
【0019】
図5に、上述のアドレス・マッピングと保護アーキテクチャのハードウェア実装を有する本発明の一実施形態を示す。図5では、要求が、その宛先アドレス・タグ及び保護IDタグ(図3の304で示したものなど)と共に示されている。宛先アドレスは、セグメント(ベース)アドレス部分501a、領域(ベース)アドレス部分501b、領域内のオフセット501cという3つの部分を含む。アドレス・マッピング・ハードウェアは、S個のセグメント・レジスタ(503)とR個の領域レジスタ(例えば505a、b、c。また図3に示すようにさらに多くの領域ページが存在することができる)を含む。各アドレス・セグメントは、複数のアドレス領域を含むことができる。このことを、領域レジスタの1ページを各セグメント・レジスタに関連付けることによって示す(ページ505a、505b、505cが、例えばそれぞれセグメント・レジスタ0、セグメント・レジスタ1、セグメント・レジスタ2に関連付けられる)。図5はまた、アドレス・セグメント0が5つの領域レジスタを有することも示す(505a)。
【0020】
さらに、要求のセグメント・アドレスが、セグメント・レジスタの1つと突き合わせるのに使用され(509)、領域アドレスが、アドレス・マップに保たれる領域レジスタの1つ又は複数と突き合わせるのに使用される。合致する2つの信号を組み合わせることにより、通常のケースでは1つの単一マッチが生じる(511)。望ましい場合は、重複するマッチや失敗したマッチをエラーとして検出することができることに留意されたい。
【0021】
単一マッチが生じた場合、領域に関連する保護キー・レジスタ番号が返され(519)、目標とするサービス・モジュールに関する経路指定情報も返される(513)。保護キー・レジスタ番号(519)は、保護キー・マップ・モジュール(517)から生じる無関係のマッチをフィルタするのに使用される。正のセキュリティ・オーケー信号(521)は、要求をサービス・モジュールに送ることができることを示す。
【0022】
表1に、通常のマッチング・ケース(すなわち、単一アドレス・マッチが識別され、セキュリティ・チェックもオーケーであるケース)及びエラー・ケースの組合せと結果のまとめを示す。単一マッチが識別されたとき、宛先サービス・モジュールについての(合致した領域レジスタに含まれる)情報が下流側モジュールに転送される。例えば、
・セキュリティ・チェックを完了するために、保護キーIDが「セキュリティ・チェック・オーケー」回路に転送される。
宛先サービス・モジュールのデータ・ワード幅と物理ターゲットID(物理ターゲットIDはサービス・モジュールの物理位置情報を含む)が、要求配信モジュールに転送される。
【0023】
【表1】

【0024】
1組の構成パラメータ及びレジスタ(加えて、レジスタの各タイプ内のレジスタ・フィールド)も上述のアーキテクチャに対して識別され、設計者は、アドレス・マッピングと保護モジュールを最小ハードウェアで構築するためにそれらを調整することができる。最終目標は、ハードウェア・モジュールのゲート・サイズ、電力消費、信号ワイヤを低減することである。以下に、構成パラメータ、その定義、及びそれがどのようにハードウェアに影響を及ぼす可能性があるかを列挙する。
【0025】
・DataWidth:このパラメータは、要求のデータ・ワードのサイズを表す。異なる処理ユニットから来る要求に対して異なるデータ・ワード・サイズが可能である。しかし、ここでは単一のデータ幅パラメータだけを使用する。したがって、処理ユニットから来る要求は、同一のデータ・ワード・サイズを有する。このパラメータを必要なデータ・ワード・サイズだけに設定することにより、ハードウェア・モジュール内のゲートとワイヤを節約することができる。
【0026】
・AddrWidth:このパラメータは、オンチップ・システムに関するアドレス・タグ幅、すなわちアドレス・マッピングと保護モジュールの寸法を表す。このパラメータを必要なアドレス幅だけに設定することにより、ハードウェア・モジュール内の多数のゲート及びワイヤを節約することができる。
【0027】
・NumSegments:このパラメータは、システム内にセグメント・レジスタがいくつ存在することができるかを示し、不要なセグメント・レジスタを除去するのに使用される。
【0028】
・各セグメント・レジスタについて、
SegmentSizeレジスタ・フィールド:このフィールドはセグメントのサイズを示す。このフィールドを使用して、セグメント・レジスタに関するビット数を削減することができる。
SegmentBaseレジスタ・フィールド:このフィールドは、アドレス・セグメントのセグメント・ベース・アドレスを示す。
【0029】
・NumRegions:このパラメータは、システム内に領域レジスタがいくつ存在することができるかを示し、不要な領域レジスタを除去するのに使用される。
【0030】
・各領域レジスタについて、
RegionSizeレジスタ・フィールド:このフィールドは、アドレス領域のサイズを示す。これを使用して、領域レジスタに関するビット数を削減することができる。
RegionBaseレジスタ・フィールド:このフィールドは、アドレス領域の領域ベース・アドレスを示す。
RegionProtectionKeyRegisterNum(RPKRN)レジスタ・フィールド:このフィールドは、単一マッチがこのアドレス領域上で生じたときに、セキュリティ・チェック・ロジックでどの保護キー・レジスタを使用すべきかを示す。このタイプの複数のレジスタ・フィールドが存在することができるが、ここでは1つだけを使用する。
RegionDataWidthレジスタ・フィールド:このフィールドは、アドレス領域をリンクするサービス・モジュールのデータ・ワード幅を示す。可能なら、これを使用して、サービス・モジュールに接続されるデータ・バス・ワイヤを削減することができる。データ・パッキング又はデータ・アンパッキングが必要であるかどうかを示すのにこれを使用することもできる。パッキング又はアンパッキングは、要求のソース処理ユニットのデータ・ワード・サイズが要求の宛先サービス・モジュールのデータ・ワード・サイズと異なるときに必要となる可能性がある。
RegionPhysicalTargetID(RPTID)レジスタ・フィールド:このフィールドは、アドレス領域とサービス・モジュールの間の物理リンケージを記述する。この物理リンケージは、例えば(1)要求をサービス・モジュールに送るために要求配信モジュールに渡すべきハードウェア経路指定情報、又は(2)ハードウェア信号ビット位置でよく、それによって、要求配信モジュールが信号をアサートするときに、要求がサービス・モジュールに送られる。
RegionAddressSpace(RAS)レジスタ・フィールド:このフィールドは、サービス・モジュールのアドレス領域をさらに区分することを可能にする。
RegionEnableレジスタ・フィールド:このフィールドは、この領域レジスタが現設計に対して使用されるかどうかを示し、又は領域が現在利用可能かどうかを示す。
【0031】
・NumProtectionKeys:このパラメータは、システム内で保護キー・レジスタがいくつ存在することができるかを示し、不要な保護キー・レジスタを除去するのに使用される。加えて、保護キー番号が格納される場合、各領域レジスタ内のビットも保存することができる。
【0032】
・各保護キー・レジスタについて、
ProtectionKeyBitVectorレジスタ・フィールド:このビット・ベクトルは、この保護キー・レジスタを指し示す領域レジスタによってリンクされるサービス・モジュールにどの保護IDがアクセスすることを許可されるかを示す。位置N中のビット1は、保護IDのNでタグ付けされた要求が、要求の宛先サービス・モジュールにアクセスすることが許可されることを示す。
【0033】
・NumProtectionIDs:このパラメータは、システム内で異なる保護IDがいくつ存在することができるかを示し、ProtectionKeyBitVectorレジスタ・フィールド内の不要な保護キー・ビットを除去するのに使用される。
【0034】
・Endianess:このパラメータは、アーキテクチャでビッグ・エンディアンが適用されるか、それともリトル・エンディアンが適用されるかを示す。このパラメータは、データ・パッキング/アンパッキングから来るアドレス・バイト位置及びデータ・バイト・シーケンスを決定する。
【0035】
さらに、各レジスタのレジスタ・フィールドが以下の3つの使用タイプの1つであると指定することもでき、その結果、最小の論理設計を適用してハードウェアを構築し、面積及び電力を節約することができる。
【0036】
・アクセス不能(NA)レジスタ・フィールド:レジスタ・フィールドがパワーオン値に固定され、読み取ることも書き込むこともできない。
【0037】
・読取り専用(RO)レジスタ・フィールド:レジスタ・フィールドがパワーオン値に固有であり、オペレーション中にソフトウェア可視(読取り専用)である必要がある。この場合、レジスタ・フィールドのソフトウェア読取りアクセスを可能にするために余分なゲートが必要である。
【0038】
・読取り書込み(RW)レジスタ・フィールド:レジスタ・フィールドをソフトウェアで動的に読み取ることができ、書き込むことができる。このタイプのレジスタ・フィールドでは、ソフトウェア変更を可能にするために(例えばフリップ・フロップ及びゲートの形態の)余分な回路が必要である。
【0039】
加えて、各レジスタ・フィールドを「エクスポーティング・コンスタント」(EC)レジスタ・フィールドとして使用することもでき、それによって、レジスタ・フィールドのネットリスト部分が最終ネットリストのトップ・レベルにエクスポートされる。これにより、全チップ生成プロセス中の終りに製品によって必要とされる、レジスタ・フィールドのパワーオン値の手動での修正がより容易となる。例えば、各保護キー・レジスタのProtectionKeyBitVectorレジスタ・フィールドを「エクスポーティング・コンスタント」フィールドとして宣言することができる。したがって、最終保護キー・マップを製品生成プロセスの終りにチップに入れることが可能となる。
【0040】
図6及び図7に、2つのほぼ同一のアドレス・マッピングと保護構成を示す。図6のレジスタ・フィールドはRO、RW、又はNAタイプである。しかし、図7では、すべてのレジスタ・フィールドがNAタイプであり、加えて未使用領域レジスタ1が除去される。1次推定から、図7で節約されるフリップ・フロップ(フロップとも呼ぶ)の数は82である。すなわち、図3の中央に示すように、アドレス・マップ(308)と保護キー・マップ(310)ではフロップが使用されない。さらに、(1)ハードウェア・モジュールのアドレス幅が20から17に削減され、(2)保護IDの数が8に減らされる場合、図6の場合と比べて、追加のバッファ・レジスタ・ビット及び信号ワイヤを節約できることに留意されたい。
【0041】
前述のように、設計者が製品に対して最小の設計を容易に指定できるように仕様言語を提供する必要がある。以下に、本発明の一実施形態における、図6に示す例示的仕様を列挙する。
Address Mapping and Protection Module{
DataWidth:16
AddrWidth:20
Endianess:little
NumSegments:2
NumRegions:5
NumProtectionKeys:2
NumProtectionKeyIDs:16
SEGMENT(0){
SegmentSize:64KB{access RO}
SegmentBase:0x00000{access RW}
}
SEGMENT(1){
SegmentSize:64KB{access RO}
SegmentBase:0x10000{access RW}
}
REGION(0){
Inside SEGMENT(0)
RegionSize:256B{access RO}
RegionBase:0x00100{access RW}
RegionProtectionKeyRegisterNum:0{access RW}
RegionDataWidth:2B{access NA}
RegionPhysicalTargetID:link to ServiceModule 1 using "targetselect pin 1"{access NA}
RegionAddressSpace:0{access RO}
RegionEnable:Yes{access RW}
}
REGION(1){
Inside SEGMENT(O)
RegionSize:4KB{access RO}
RegioriBase:0x01000{access RW}
RegionProtectionKeyRegisterNum:1{access RW}
RegionDataWidth:2B{access NA}
RegionPhysicalTargetID:link to ServiceModule 1 using "targetselect pin 1"{access NA}
RegionAddressSpace:1{access RO}
RegionEnable:No{access RW}
}
REGION(2){
Inside SEGMENT(O)
RegionSize:16B{access RO}
RegionBase:0x00000{access RW}
RegionProtectionKeyRegisterNum:0{access RW}
RegionDataWidth:4B{access NA}
RegionPhysicalTargetID:link to ServiceModule 0 using "targetselect pin 0"{access NA}
RegionAddressSpace:0{access RO}
RegionEnable:Yes{access RW}
}
REGION(3){
Inside SEGMENT(1)
RegionSize:4KB{access RO}
RegionBase:0x10000{access RW}
RegionProtectionKeyRegisterNum:1{access RW}
RegionDataWidth:1B{access NA}
RegionPhysicalTargetID:link to ServiceModule 2 using "targetselect pin 2"{access NA}
RegionAddressSpace:0{access RO}
RegionEnable:Yes{access RW}
}
REGION(4){
Inside SEGMENT(1)
RegionSize:4KB{access RO}
RegionBase:0x11000{access RW}
RegionProtectionKeyRegisterNum:0{access RW}
RegionDataWidth:4B{access NA}
RegionPhysicalTargetID:link to ServiceModule 3 using "targetselect pin 3"{access NA}
RegionAddressSpace:0{access RO}
RegionEnable:Yes{access RW}
}
PROTECTIONKEY(0){
ProtectionKeyBitVector:Ox007B{access RW and EC}
}
PROTECTIONKEY(1){
ProtectionKeyBitVector:0x0085{access RW and EC}
}
【0042】
上記の例(図6にも示す)では、2つのセグメントと5つのアドレス領域が存在する。アドレス領域1は初期化時に使用不能にされる(すなわち、領域レジスタのRegionEnableフィールドが「No」にセットされる)が、このフィールドは読取り/書込み可能であるので、実行時に再構成することができる。2つの保護キー・レジスタが存在し、それぞれが16ビットのビット・ベクトルを有する。この例はまた、パワーオン時に以下を指定する。
【0043】
・要求アドレス幅が20ビットであり、データ・ワード・サイズが16ビットである。
【0044】
・4つのサービス・モジュールServiceModule0、1、2、及び3が存在する。
【0045】
・アドレス領域0、1、2がアドレス・セグメント0内に存在し、それぞれアドレス0x00100、0x01000、0x0000に基づき、サイズが256バイト、4Kバイト、16バイトである。領域レジスタ1は現時点では使用可能にされないが、後の追加として使用することができる。
【0046】
・アドレス領域3、4がアドレス・セグメント1内に存在し、それぞれアドレス0x10000、0x11000に基づき、どちらもサイズが4Kバイトである。
【0047】
・保護ID 0、1、3、4、5、6(ProtectionKeyBitVector0x007B)を使用する処理ユニットから来る要求は、要求アドレスに応じてServiceModule 0、1、3に行くことができる。保護ID 0、2、7(ProtectionKeyBitVector0x0085)を使用する処理ユニットから来る要求は、要求アドレスがアドレス領域3に入る場合、ServiceModule 2に行くことができる。
【0048】
図7に示す設計では、その仕様は以下のようになる。
Address Mapping and Protection Module{
DataWidth:16
AddrWidth:20
Endianess:little
NumSegments:2
NumRegions:4
NumProtectionKeys:2
NumProtectionKeyIDs:16
SEGMENT(0){
SegmentSize:64KB{access NA}
SegmentBase:0x00000{access NA}
}
SEGMENT(1){
SegmentSize:64KB{access NA}
SegmentBase:0x10000{access NA}
}
REGION(0){
Inside SEGMENT(0)
RegionSize:256B{access NA}
RegionBase:0x00100{access NA}
RegionProtectionKeyRegisterNum:0{access NA}
RegionDataWidth:2B{access NA}
RegionPhysicalTargetID:link to ServiceModule 1 using "targetselect pin 1"{access NA}
RegionAddressSpace:0{access NA}
RegionEnable:Yes{access NA}
}
REGION(2){
Inside SEGMENT(O)
RegionSize:16B{access NA}
RegioriBase:0x00000{access NA}
RegionProtectionKeyRegisterNum:0{access NA}
RegionDataWidth:4B{access NA}
RegionPhysicalTargetID:link to ServiceModule 0 using "targetselect pin 0"{access NA}
RegionAddressSpace:0{access NA}
RegionEnable:Yes{access NA}
}
REGION(3){
Inside SEGMENT(1)
RegionSize:4KB{access NA}
RegionBase:0x10000{access NA}
RegionProtectionKeyRegisterNum:1{access NA}
RegionDataWidth:1B{access NA}
RegionPhysicalTargetID:link to ServiceModule 2 using "targetselect pin 2"{access NA}
RegionAddressSpace:0{access NA}
RegionEnable:Yes{access NA}
}
REGION(4){
Inside SEGMENT(1)
RegionSize:4KB{access NA}
RegionBase:0x11000{access NA}
RegionProtectionKeyRegisterNum:0{access NA}
RegionDataWidth:4B{access NA}
RegionPhysicalTargetID:link to ServiceModule 3 using "targetselect pin 3"{access NA}
RegionAddressSpace:0{access NA}
RegionEnable:Yes{access NA}
}
PROTECTIONKEY(0){
ProtectionKeyBitVector:0x007B{access NA and EC}
}
PROTECTIONKEY(1){
ProtectionKeyBitVector:0x0085{access NA and EC}
}
【0049】
この説明で述べ、図4で示すように、最終ステージの1つでは、指定の設計(上記で示した仕様テキストなど)を入力とする後処理ツールが使用され、後処理ツールは、アドレス・マッピングと保護ハードウェアに関する最適化ハードウェア・ネットリストを生成する。
【0050】
したがって、オンチップ・システム用の構成可能アドレス・マッピングと保護ハードウェアの方法と装置を開示した。
【0051】
図1に戻ると、図1は、記載の技法を適用することができるネットワーク環境100を示す。ネットワーク環境100は、S個のサーバ104−1から104−Sと、C個のクライアント108−1から108−Cを接続するネットワーク102を有する。図示するように、S個のサーバ104−1から104−SとC個のクライアント108−1から108−Cの形態のいくつかのシステムが、ネットワーク102を介して互いに接続されている。ネットワーク102は例えばオンチップ通信ネットワークでよい。あるいは、ネットワーク102は、チップ間通信通信、光ネットワーク、インターネット、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、サテライト・リンク、ファイバ・ネットワーク、ケーブル・ネットワーク、あるいはこれら及び/又はその他の組合せでよく、又はその1つ又は複数を含むことができることに留意されたい。サーバは、例えばチップ上のマスタ・デバイス、メモリ、マイクロプロセッサ通信インターフェースなどの知的財産コア、ディスク記憶システム、及び/又はコンピューティング資源を表すことができる。同様に、クライアントは、コンピューティング機能、ストレージ機能、及び閲覧機能を有することができる。本明細書に記載の方法及び装置は、LAN、WAN、システム・バス、オンチップ・バスなど、ローカルであってもリモートであっても、本質的にどんなタイプの通信手段又はデバイスにも適用することができる。クライアント及びサーバという用語の使用は、誰が通信を開始し(クライアント)、誰が応答するか(サーバ)を指定する際の明確さのためであることをさらに理解されたい。明示的に述べるのでない限り、階層は示唆されない。両方の機能が単一通信デバイス内にある可能性があり、その場合、クライアント−サーバ及びサーバ−クライアント関係はピアツーピアと見ることができる。したがって、108−1と104−Sなどの2つのデバイスがどちらも通信を開始し、通信に応答することができる場合、その通信はピアツーピアと見ることができる。同様に、104−1と104−Sの間の通信や108−1と108−Cの間の通信は、そのような各通信デバイスが通信の開始と通信への応答ができる場合にピアツーピアと見ることができる。
【0052】
図2に戻ると、図2は、図1に示すクライアント及び/又はサーバのいずれかを表すことのできるシステム200をブロック図形式で示す。ブロック図は高レベルの概念的表現であり、様々な方式や様々なアーキテクチャで実装することができる。バス・システム202は中央演算処理ユニット(CPU)204、読取り専用メモリ(ROM)206、ランダム・アクセス・メモリ(RAM)208、ストレージ210、ディスプレイ220、オーディオ222、キーボード224、ポインタ226、種々の入出力(I/O)デバイス228、通信230を相互接続する。バス・システム202は、例えば、オンチップ・バス、システム・バス、PCI(Peripheral Component Interconnect)、AGP(Advanced Graphics Port)、SCSI(Small Computer System Interface)、米国電気電子学会(IEEE)規格番号1394(FireWire)、ユニバーサル・シリアル・バス(USB)などのうちの1つ又は複数でよい。CPU204は、単一のコンピューティング資源、複数のコンピューティング資源、さらには分散コンピューティング資源でよい。ストレージ210は、コンパクト・ディスク(CD)、デジタル・バーサタイル・ディスク(DVD)、ハード・ディスク(HD)、光ディスク、テープ、フラッシュ、メモリ・スティック、ビデオ・レコーダなどでよい。ディスプレイ220は、例えば陰極線管(CRT)、液晶ディスプレイ(LCD)、プロジェクション・システム、テレビジョン(TV)などでよい。システムの実際の実装に応じて、システムは、ブロック図の構成要素の一部、すべて、さらに多くの構成要素、又はブロック図の構成要素の再構成を含むことができることに留意されたい。例えば、集積回路上のオンチップ通信システムは、ディスプレイ220、キーボード224、ポインタ226がない可能性がある。別の例は、シン・クライアントが、例えば従来のキーボードのないワイヤレス・ハンドヘルド・デバイスであっても良い。すなわち、図2のシステムに対して多くの変形形態が可能である。
【0053】
本発明を議論し、理解するために、技法及び手法を記述するのに当業者によって様々な用語が使用されることを理解されたい。さらにこの説明では、説明の都合上、本発明の完全な理解を与えるために多数の特定の詳細が説明される。しかし、こうした特定の詳細なしに本発明を実施できることは当業者には明らかであろう。ある場合には、本発明をあいまいにするのを避けるために、周知の構造やデバイスを詳細に示さずに、ブロック図の形式で示する。当業者が本発明を実施することが可能となるようにこうした実施形態を十分詳細に説明するが、本発明の範囲から逸脱することなく他の実施形態も使用できること、論理的、機械的、電気的、その他の変更を行えることを理解されたい。
【0054】
アルゴリズムと、例えばコンピュータ・メモリ内のデータ・ビットに対するオペレーションの記号表現とによって説明の一部が提示されている。こうしたアルゴリズム的説明及び表現は、データ処理技術の技術者により、他の当業者に研究の内容を最も効率的に伝えるために使用される手段である。ここでは、また一般に、アルゴリズムは、所望の結果を得る首尾一貫した一続きの動作であると表現される。動作は、物理量の物理的操作を必要とするものである。通常は、必須ではないが、こうした量は、格納、転送、結合、比較、又は操作することのできる電気的、磁気、又は光学的信号の形を取る。原理的には公共的用途で、こうした信号をビット、値、要素、シンボル、文字、用語、数字などとして参照することが時には好都合であることが実証されている。
【0055】
しかし、上記及び類似の用語のすべてを適切な物理量と関連付けるべきであり、それらは、単にこうした量に適用される好都合なラベルに過ぎないことに留意されたい。具体的に述べるのでない限り、議論から明らかなように、説明全体を通して、「処理」、「コンピューティング」、「計算」、「決定」、「通信」、「表示」などの用語を使用する議論は、電子デバイス又はコンピュータ・システムのレジスタ及びメモリ内の物理(電子)量として表されるデータを、電子デバイス及び/又はコンピュータ・システム・メモリ又はレジスタあるいはその他のそのような情報記憶、伝送、又は表示デバイス内の物理量として同様に表される他のデータに操作及び変換するコンピュータ・システム又は電子デバイスの動作及びプロセスを指すことがある。
【0056】
本発明は、本明細書のオペレーションを実行する装置によって実装することができる。この装置は、必要とされる目的のために特別に構築することができ、又はコンピュータ内に格納されたコンピュータ・プログラムによって選択的に活動化又は再構成される汎用コンピュータを含むことができる。このようなコンピュータ・プログラムは、限定はしないが、フロッピィ・ディスク、ハード・ディスク、光ディスク、コンパクト・ディスク読取り専用メモリ(CD−ROM)、デジタル・バーサタイル・ディスク(DVD)、磁気光ディスク、読取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、電気プログラム可能読取り専用メモリ(EPROM)、電気消去可能プログム可能読取り専用メモリ(EEPROM)、フラッシュ・メモリ、磁気又は光学式カードなどを含む任意のタイプのディスク、コンピュータに対してローカル又はリモートの電子命令を格納するのに適した任意のタイプの媒体などのコンピュータ可読記憶媒体に格納することができる。
【0057】
本明細書で提示したアルゴリズム及び表示は、何らかの特定のコンピュータ又はその他の装置に本質的に関係するわけではない。本明細書の教示に従って様々な汎用システムをプログラムと共に使用することができ、又はこの必要とされる方法を実施するのに、より特殊化された装置を構築することが好都合であることが判明することがある。例えば、本発明による方法のいずれかをハードワイヤード回路として実装することができ、汎用プロセッサをプログラミングすることによって実装することができ、又はハードウェアとソフトウェアの任意の組合せによって実装することができる。ハンドヘルド・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベース又はプログラム可能な消費者向け電子装置、デジタル信号処理(DSP)デバイス、セット・トップ・ボックス、ネットワークPC、ミニコンピュータ、メインフレーム・コンピュータなどを含む、記載以外のコンピュータ・システム構成で本発明を実施できることを当業者は直ちに理解されよう。本発明はまた、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実施することができる。この通信ネットワークは、サイズによって限定されず、例えばオンチップ通信から、インターネットなどのWANにまで及ぶことがある。
【0058】
本発明の方法は、コンピュータ・ソフトウェアを使用して実現することができる。認識される規格に準拠するプログラミング言語で書かれる場合、方法を実施するように設計された命令のシーケンスを、様々なハードウェア・プラットフォーム上で実行し、様々なオペレーティング・システムとインターフェースするようにコンパイルすることができる。様々なプログラミング言語を使用して本明細書に記載の発明の教示を実現できることを理解されよう。さらに、ある形態又は別の形態(例えば、プログラム、プロシージャ、アプリケーション、ドライバ、...)のソフトウェアが動作し、又は結果を引き起こすと述べることは当技術分野で一般的である。このような表現は単に、コンピュータによるソフトウェアの実行が、コンピュータのプロセッサに動作を実行させ、又は結果を生成させると述べることを簡略化したものに過ぎない。
【0059】
通信、プロトコル、アプリケーション、実装、機構などを記述するのに様々な用語及び技法が当業者によって使用されることを理解されたい。そのような一技法は、技法の実装をアルゴリズム又は数式によって記述することである。すなわち、例えば技法をコンピュータ上の実行コードとして実装することができるが、その技法の表現は、公式、アルゴリズム、又は数式としてより適切かつ簡明に伝達及び通信される。したがって、A+B=Cを表すブロックが、そのハードウェア及び/又はソフトウェアとしての実装が2つの入力(A及びB)を取って合計出力(C)を生成する加法関数であることを当業者は理解されよう。したがって、公式、アルゴリズム、又は数式を記述として使用することは、少なくともハードウェア及び/又はソフトウェア(本発明の技法を実施形態として実施ならびに実装できるコンピュータ・システムなど)としての物理的実施形態を有すると理解すべきである。
【0060】
機械可読媒体は、マシン(例えばコンピュータ)によって読取り可能な形式の情報を格納及び伝送する任意の機構を含むと理解される。例えば、機械可読媒体は、読取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュ・メモリ・デバイス、電気的、光学的、音響的、又はその他の形態の伝播信号(例えば搬送波、赤外線信号、デジタル信号など)などを含む。
【0061】
したがって、オンチップ・システム用の構成可能アドレス・マッピングと保護アーキテクチャ及びハードウェアのための方法及び装置を説明した。
【図面の簡単な説明】
【0062】
【図1】本発明の方法及び装置を実施することができるネットワーク環境を示す図である。
【図2】コンピュータ・システムのブロック図である。
【図3】N個の処理ユニット、M個のサービス・モジュール、アドレス・マッピングと保護モジュール、及び要求配信モジュールを備えるオンチップ・システムをブロック図形式で示す本発明の一実施形態を示す図である。
【図4】最適化されたアドレス・マッピングと保護ハードウェアを生成する際のプロセスを流れ図形式で示す本発明の一実施形態を示す図である。
【図5】構成可能アドレス・マッピングと保護アーキテクチャのためのハードウェア実装をブロック図形式で示す本発明の一実施形態を示す図である。
【図6】いくつかの可能な読取り専用、読取り書込み、又はアクセス不能構成パラメータの定義を表形式で示す本発明の一実施形態を示す図である。
【図7】いくつかの可能なアクセス不能構成パラメータの定義を表形式で示す本発明の一実施形態を示す図である。

【特許請求の範囲】
【請求項1】
アドレス・マップを入力すること、
保護パラメータを入力すること、
構成パラメータを入力すること、
回路を構成するためにデータベースを生成することを含む方法。
【請求項2】
前記構成パラメータが、アドレス幅、セグメント数、セグメント・サイズ、セグメント・ベース、領域数からなるグループから選択される請求項1に記載の方法。
【請求項3】
前記領域数の各領域について、領域アドレス・サイズ、領域ベース・アドレス、領域保護キー・レジスタ番号、領域使用可能、領域アドレス空間、前記領域に接続されたサービス・モジュールの幅、前記領域に接続されたサービス・モジュールの物理リンケージ情報からなるグループから選択されたフィールドをさらに含む請求項2に記載の方法。
【請求項4】
前記領域に接続されたサービス・モジュールの前記物理リンケージ情報が、経路指定情報と位置からなるグループから選択された情報をさらに含む請求項3に記載の方法。
【請求項5】
前記経路指定情報が、前記サービス・モジュールに要求を送るために要求配信モジュールに渡されるハードウェア経路指定情報を含む請求項4に記載の方法。
【請求項6】
前記位置が、ハードウェア信号ビット位置を含む請求項4に記載の方法。
【請求項7】
要求配信モジュールが前記ハードウェア信号ビット位置で信号をアサートする場合、要求が前記サービス・モジュールに送られる請求項6に記載の方法。
【請求項8】
前記回路がレジスタをさらに備える請求項1に記載の方法。
【請求項9】
前記構成の結果として、アクセス不能レジスタ、読取り専用レジスタ、読取り書込みレジスタからなるグループから選択された動作モードが得られる請求項8に記載の方法。
【請求項10】
前記レジスタの前記構成が、前記レジスタをエクスポート・コンスタントとして指定することをさらに含み、その結果前記データベースにおいて、前記レジスタのネットリスト部分がネットリストのトップ・レベルにエクスポートされる請求項8に記載の方法。
【請求項11】
前記構成が、前記レジスタの前記構成後の時間に前記ネットリストを構成することをさらに含む請求項10に記載の方法。
【請求項12】
アドレス・マップを入力する手段と、
保護パラメータを入力する手段と、
構成パラメータを入力する手段と、
回路を構成するためにデータベースを生成する手段とを備える装置。
【請求項13】
前記構成構成パラメータが、アドレス幅、セグメント数、セグメント・サイズ、セグメント・ベース、領域数からなるグループから選択される請求項12に記載の装置。
【請求項14】
領域数の第1領域であって、経路指定情報と前記領域に接続されたサービス・モジュールの位置とを含むフィールドを有する第1領域をさらに含む請求項13に記載の装置。
【請求項15】
前記経路指定情報が、サービス・モジュールに要求を送るために要求配信モジュールに渡されるハードウェア経路指定情報を含む請求項14に記載の装置。
【請求項16】
前記位置がハードウェア信号ビット位置を含む請求項14に記載の装置。
【請求項17】
要求配信モジュールが前記ハードウェア信号ビット位置で信号をアサートする場合、要求が前記サービス・モジュールに送られる請求項15に記載の方法。
【請求項18】
前記回路の構成が、レジスタをエクスポート・コンスタントとして指定することによって構成されるレジスタでよく、その結果前記データベースにおいて、前記レジスタのネットリスト部分がネットリストのトップ・レベルにエクスポートされる請求項12に記載の装置。
【請求項19】
前記構成が、前記レジスタの前記構成後の時間に前記ネットリストを構成することをさらに含む請求項18に記載の装置。
【請求項20】
前記レジスタを、アクセス不能レジスタ、読取り専用レジスタ、読取り書込みレジスタからなるグループから選択することができる請求項18に記載の装置。
【請求項21】
前記レジスタが、アクセス不能レジスタ・フィールド、読取り専用レジスタ・フィールド、読取り書込みレジスタ・フィールドからなるグループから選択されたレジスタ・フィールドを有する請求項18に記載の装置。
【請求項22】
入力された保護及び構成パラメータを、集積回路に関する設計時に設定された事前定義基準と突き合わせてチェックする手段をさらに備える請求項12に記載の装置。
【請求項23】
前記事前定義基準が、保護ID、宛先アドレス、要求タイプ、データ、データ・タイプ、ユーザ提供要求情報からなるグループから選択される請求項12に記載の装置。
【請求項24】
チェックする前記手段が、セグメント・アドレスを1つ又は複数のセグメント・レジスタ・フィールドと突き合わせてチェックし、領域アドレスを1つ又は複数の領域レジスタ・フィールドと突き合わせてチェックする請求項22に記載の装置。
【請求項25】
チェックする前記手段が、保護キーを1つ又は複数の保護レジスタ・フィールドと突き合わせてチェックする請求項22に記載の装置。
【請求項26】
チェックする前記手段が、複数のソース・ユニットから受け取った要求をアドレス・マップと保護キー・マップと突き合わせてチェックする請求項22に記載の装置。
【請求項27】
事前定義を満たす場合に追加のパラメータを求める要求を生成する手段をさらに備える請求項22に記載の装置。
【請求項28】
製品仕様を受け取る手段と、
ネットリストを生成する手段とをさらに備える請求項12に記載の装置。
【請求項29】
1組の要求を実行するときに請求項1に記載の方法を実施するプロセッサを備える処理システム。
【請求項30】
実行されるときに請求項1に記載の方法を実施する要求が格納された機械可読媒体。
【請求項31】
製品仕様を受け取ること、及び
最適化されたアドレス・マッピング及びハードウェア保護を表すネットリストを生成することをさらに含む請求項1に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2006−505867(P2006−505867A)
【公表日】平成18年2月16日(2006.2.16)
【国際特許分類】
【出願番号】特願2004−551691(P2004−551691)
【出願日】平成15年11月3日(2003.11.3)
【国際出願番号】PCT/US2003/035022
【国際公開番号】WO2004/044681
【国際公開日】平成16年5月27日(2004.5.27)
【出願人】(500107083)ソニックス・インコーポレーテッド (8)
【Fターム(参考)】