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

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

Info

Publication number
JP4768990B2
JP4768990B2 JP2004551691A JP2004551691A JP4768990B2 JP 4768990 B2 JP4768990 B2 JP 4768990B2 JP 2004551691 A JP2004551691 A JP 2004551691A JP 2004551691 A JP2004551691 A JP 2004551691A JP 4768990 B2 JP4768990 B2 JP 4768990B2
Authority
JP
Japan
Prior art keywords
address
register
protection
hardware
service module
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.)
Expired - Lifetime
Application number
JP2004551691A
Other languages
English (en)
Other versions
JP2006505867A5 (ja
JP2006505867A (ja
Inventor
チョウ,チャン−チュン
トムリンソン,ジェイ・エス
ウェバー,ウォルフ−ディートリッヒ
ウィンガード,ドリュー・イー
カセッティ,スリカラン
Original Assignee
ソニックス・インコーポレーテッド
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=32176015&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP4768990(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by ソニックス・インコーポレーテッド filed Critical ソニックス・インコーポレーテッド
Publication of JP2006505867A publication Critical patent/JP2006505867A/ja
Publication of JP2006505867A5 publication Critical patent/JP2006505867A5/ja
Application granted granted Critical
Publication of JP4768990B2 publication Critical patent/JP4768990B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Description

本発明はオンチップ・システムに関する。より詳細には、本発明は、オンチップ・システム用の構成可能アドレス・マッピングと保護アーキテクチャ及びハードウェアに関する方法及び装置に関する。
ほとんどのコンピュータ及び/又はオンチップ・システムに関するオペレーショナル・モデルは、1つ又は複数の処理ユニットからシステム内の1つ又は複数のサービス・モジュールに要求を送る。処理ユニットから要求(すなわち命令)を受け取った際に、サービス・モジュールは要求されたタスクを完了する。次いで、サービスモジュールから処理ユニットに返すべき応答があるであろう。処理ユニットとサービス・モジュールのどちらとしても振る舞うシステム内の構成要素を有することもごく一般的である。
処理ユニットとサービス・モジュールとの間で要求や応答を送るのに、多くの異なる方式を使用することができる。要求を送るのに最も頻繁に用いられる方法の1つは、アドレス指定(及び記憶保護チェック)による方法である。例えば、要求に「宛先アドレス」と「ソース保護識別(ID)」をタグ付けする。宛先アドレスは、サービス・モジュールがどこに位置するか、及び/又は要求をどのようにしてサービス・モジュールに送るかを示す。ソース保護IDによって処理ユニットを識別し、サービス・モジュールが要求を実行すべきかどうか、又は要求をサービス・モジュールに送ることができるかどうかを判定するのに使用され、したがってソース識別に応じて、選択的にサービス・モジュールへアクセスする。通常は、アドレス復号化及び保護IDチェックに充てられる(例えば集積回路上の)ハードウェア・モジュールのトランジスタ(「ゲート」とも呼ばれる)の数と結果としてのゲート・サイズ(すなわち面積)が比較的大きい。オペレーション中にこの復号化ハードウェア及びチェック・ハードウェアを動的(すなわち構成可能)にするために、より多くの電力を消費する追加の回路も必要となる。ワイヤレス・デバイスでは、特にチップ・ダイ・サイズを小さくし、電力消費を低くする要求が高く、大型で電力を消費するアドレス復号化及び保護チェック・モジュールは受け入れられない。これにより問題が提起される。
限定ではなく例示により、添付の図面の各図で本発明を説明する。各図では同様の参照番号は同様の要素を示す。
オンチップ・システム用の構成可能アドレス・マッピングと保護アーキテクチャ及びハードウェアに関する方法及び装置を説明する。
図1に、記載の技法を適用することができるネットワーク環境100を示す。ネットワーク環境100は、S個のサーバ104−1から104−SとC個のクライアント108−1から108−Cを接続するネットワーク102を有する。以下でより詳しい詳細を説明する。
図2に、図1に示すクライアント及び/又はサーバのいずれかを代表するコンピュータ・システム200をブロック図形式で示す。以下でさらに詳細を説明する。
この文書で使用するIPという用語は知的財産を表す。機能を有する設計を表すのにIPという用語をそれ自体で使用することがあり、又はコアなどの他の用語と共に使用することがある。例えば、IPコア又は略してIPは、回路、バス、通信リンク、マイクロプロセッサなどからなる。加えて、IPを様々な方式で実装することができ、集積回路上などに製作することができる。着信パケットが複製され、ほとんどのチップ、システムなどにわたって、あらゆる経路に対して送出される通信を表すのに、フラッディング(flooding)という用語を使用する。
本開示では、オンチップ・システム用の構成可能アドレス・マッピングと保護アーキテクチャ及びハードウェアに関する方法及び装置を説明する。本発明の一実施形態では、必要なアドレス・マッピングと保護機能を提供する回路がハードウェアとして提供される。別の実施形態では、本発明により、製品設計者が設計時にアドレス・マッピングと保護モジュールを構成することが可能となり、それによって最小の指定のマッピングと保護だけがハードウェアで実装される。したがって、アドレス・マッピングと保護ハードウェア・モジュールの最終ゲート・サイズや電力消費が、製品の仕様によって決定される。さらに、各サービス・モジュールのアドレス幅やデータ・ワード幅も考慮に入れることができ、それを使用して、サービス・モジュールへの/からの信号ワイヤの数を最小限に抑えることができる。この結果、過剰設計されず、かつ製品のゲート・カウントや電力消費要件をより容易に満たすことができるハードウェアを得ることができる。
開示の発明である「オンチップ・システム用の構成可能アドレス・マッピングと保護アーキテクチャ及びハードウェア」は以下を提供することができる。
1.オンチップ・システム用の集中型構成可能アドレス・マッピングと保護アーキテクチャ。
2.最終アドレス・マッピングと保護ハードウェア・モジュールについて、全ゲート・サイズの削減、電力消費の削減、及び/又は不要な信号ワイヤの省略を行うことができる1組の構成パラメータ。
3.設計者が、仕様言語を使用して設計時にアドレス・マッピングと保護ハードウェア・モジュールを構成し、最小限に抑えたハードウェア実装を生成するという目標を達成できるようにする能力。
図4に、最適化されたアドレス・マッピングと保護ハードウェアを生成するのに使用することができる処理フローを示す。まず、製品設計者は構成可能アーキテクチャを理解しなければならない(403)。アーキテクチャ(423)は、アドレス・マッピング方式の定義、保護方式の定義、構成パラメータ・セットの定義、仕様言語の定義を含む。次いで設計者は、製品要件に基づいて、最小のハードウェアでアドレス・マッピングと保護モジュールを設計することができる(405)。製品要件とユーザ・モデルに基づいて、設計者は、例えばシステム内のサービス・モジュールの数、サービス・モジュールに関するアドレス領域の数、アドレス領域の情報をどのように使用するかを決定すべきである(443)。
次に、設計者は、与えられた仕様言語を使用してアドレス・マッピングと保護ハードウェア・モジュールを指定する必要がある(407及び425)。終りに(409)、設計仕様を入力とす後処理ツールを使用し、アドレス・マッピングと保護ハードウェアに関して、最適化されたハードウェア・ゲート・レベル・ネットリスト(427)を生成する。
図3に、頂部にN個の処理ユニット(302−0、302−1から302−N)を備え、底部にM個のサービス・モジュール(318−0、318−1から318−M)を備えるオンチップ・システムを有する本発明の一実施形態のブロック図を示す。システムの中央には、アドレス・マッピングと保護モジュール306があり、アドレス・マッピング308と保護キー・マップ310と、その後に続く要求配信モジュール314が示されている。図3は、システムの要求配信側だけを示していることに留意されたい(すなわち、要求側であり、戻り側は示されていない)。本発明の一実施形態では、システムの使用モデルは以下の通りである。
・要求が処理ユニット(320−Nなど)からアドレス・マッピングと保護モジュール(306)に送られる。
・アドレス・マッピングと保護モジュール306では、「宛先アドレス」と「ソース保護ID」が要求(304で示すものなど)から抽出される。アドレスが復号され、アドレス・マップ(308)と比較され、サービス・モジュールがどこにあるか、及びどのように要求をモジュールに送るかが判明する。与えられた保護IDが保護キー・マップ(310)に対してチェックされ、要求をサービス・モジュールに送ることが保護により許可されるのでそれを送るべきかどうかが判定される。図3には図示していないが、要求内の他の可能なフィールドは、「要求タイプ・フィールド」、「データ・フィールド」、(例えば、それがバースト・データ・ストリームであることを示すための)「データ・タイプ・フィールド」、「ユーザ提供要求情報」(例えば、ユーザがこのフィールドを使用して所有権、サブ要求タイプを与えることができる)であることに留意されたい。
・次に、要求(312や316で示すものなど)が、要求配信モジュール(314)によってサービス・モジュール(318−2など)に送られる。
上述のオンチップ・システムに対するセグメント化とアドレス領域を使用する構成可能アドレス・マッピングと保護アーキテクチャを有する本発明の一実施形態をここで説明する。概念的には、オンチップ・システム全体のアドレス空間をR個のアドレス領域に分割する。システム内の各サービス・モジュールは複数のアドレス領域を有することができる。R個のアドレス領域の1つと突き合わせる複雑さを低減するために、複数のアドレス領域を1つのアドレス・セグメントとしてグループ化することができる。システム内に最大S個のセグメントが存在することができる。特定のサービス・モジュールに要求を送るために、処理ユニットは、モジュールのアドレス領域内のアドレスで要求をタグ付けする必要がある。アドレス領域についての情報は、アドレス・マップ・ハードウェアに格納される領域レジスタに保たれる。アドレス・セグメントについての情報は、やはりアドレス・マップ・ハードウェアに格納されるセグメント・レジスタに保たれる。
システム内に最大K個の異なる保護キーが存在することができる。各保護キーは、保護キー・マップ・ハードウェア内にある1つの保護キー・レジスタに保たれる。各アドレス領域は少なくとも1つの保護キーと関連付けられ、各処理ユニットには1つ又は複数の保護IDが割り当てられる。要求が処理ユニットから送られるとき、その要求に処理ユニットの保護ID(図5に示す515など)をタグ付けする。要求の宛先アドレスが復号され、サービス・モジュールのアドレス領域が識別されると、保護IDが、そのアドレス領域に関連する保護キーに対してチェックされ、要求をサービス・モジュールに転送することが安全かどうかが確認される。
図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)。
さらに、要求のセグメント・アドレスが、セグメント・レジスタの1つと突き合わせるのに使用され(509)、領域アドレスが、アドレス・マップに保たれる領域レジスタの1つ又は複数と突き合わせるのに使用される。合致する2つの信号を組み合わせることにより、通常のケースでは1つの単一マッチが生じる(511)。望ましい場合は、重複するマッチや失敗したマッチをエラーとして検出することができることに留意されたい。
単一マッチが生じた場合、領域に関連する保護キー・レジスタ番号が返され(519)、目標とするサービス・モジュールに関する経路指定情報も返される(513)。保護キー・レジスタ番号(519)は、保護キー・マップ・モジュール(517)から生じる無関係のマッチをフィルタするのに使用される。正のセキュリティ・オーケー信号(521)は、要求をサービス・モジュールに送ることができることを示す。
表1に、通常のマッチング・ケース(すなわち、単一アドレス・マッチが識別され、セキュリティ・チェックもオーケーであるケース)及びエラー・ケースの組合せと結果のまとめを示す。単一マッチが識別されたとき、宛先サービス・モジュールについての(合致した領域レジスタに含まれる)情報が下流側モジュールに転送される。例えば、
・セキュリティ・チェックを完了するために、保護キーIDが「セキュリティ・チェック・オーケー」回路に転送される。
宛先サービス・モジュールのデータ・ワード幅と物理ターゲットID(物理ターゲットIDはサービス・モジュールの物理位置情報を含む)が、要求配信モジュールに転送される。
Figure 0004768990
1組の構成パラメータ及びレジスタ(加えて、レジスタの各タイプ内のレジスタ・フィールド)も上述のアーキテクチャに対して識別され、設計者は、アドレス・マッピングと保護モジュールを最小ハードウェアで構築するためにそれらを調整することができる。最終目標は、ハードウェア・モジュールのゲート・サイズ、電力消費、信号ワイヤを低減することである。以下に、構成パラメータ、その定義、及びそれがどのようにハードウェアに影響を及ぼす可能性があるかを列挙する。
・DataWidth:このパラメータは、要求のデータ・ワードのサイズを表す。異なる処理ユニットから来る要求に対して異なるデータ・ワード・サイズが可能である。しかし、ここでは単一のデータ幅パラメータだけを使用する。したがって、処理ユニットから来る要求は、同一のデータ・ワード・サイズを有する。このパラメータを必要なデータ・ワード・サイズだけに設定することにより、ハードウェア・モジュール内のゲートとワイヤを節約することができる。
・AddrWidth:このパラメータは、オンチップ・システムに関するアドレス・タグ幅、すなわちアドレス・マッピングと保護モジュールの寸法を表す。このパラメータを必要なアドレス幅だけに設定することにより、ハードウェア・モジュール内の多数のゲート及びワイヤを節約することができる。
・NumSegments:このパラメータは、システム内にセグメント・レジスタがいくつ存在することができるかを示し、不要なセグメント・レジスタを除去するのに使用される。
・各セグメント・レジスタについて、
SegmentSizeレジスタ・フィールド:このフィールドはセグメントのサイズを示す。このフィールドを使用して、セグメント・レジスタに関するビット数を削減することができる。
SegmentBaseレジスタ・フィールド:このフィールドは、アドレス・セグメントのセグメント・ベース・アドレスを示す。
・NumRegions:このパラメータは、システム内に領域レジスタがいくつ存在することができるかを示し、不要な領域レジスタを除去するのに使用される。
・各領域レジスタについて、
RegionSizeレジスタ・フィールド:このフィールドは、アドレス領域のサイズを示す。これを使用して、領域レジスタに関するビット数を削減することができる。
RegionBaseレジスタ・フィールド:このフィールドは、アドレス領域の領域ベース・アドレスを示す。
RegionProtectionKeyRegisterNum(RPKRN)レジスタ・フィールド:このフィールドは、単一マッチがこのアドレス領域上で生じたときに、セキュリティ・チェック・ロジックでどの保護キー・レジスタを使用すべきかを示す。このタイプの複数のレジスタ・フィールドが存在することができるが、ここでは1つだけを使用する。
RegionDataWidthレジスタ・フィールド:このフィールドは、アドレス領域をリンクするサービス・モジュールのデータ・ワード幅を示す。可能なら、これを使用して、サービス・モジュールに接続されるデータ・バス・ワイヤを削減することができる。データ・パッキング又はデータ・アンパッキングが必要であるかどうかを示すのにこれを使用することもできる。パッキング又はアンパッキングは、要求のソース処理ユニットのデータ・ワード・サイズが要求の宛先サービス・モジュールのデータ・ワード・サイズと異なるときに必要となる可能性がある。
RegionPhysicalTargetID(RPTID)レジスタ・フィールド:このフィールドは、アドレス領域とサービス・モジュールの間の物理リンケージを記述する。この物理リンケージは、例えば(1)要求をサービス・モジュールに送るために要求配信モジュールに渡すべきハードウェア経路指定情報、又は(2)ハードウェア信号ビット位置でよく、それによって、要求配信モジュールが信号をアサートするときに、要求がサービス・モジュールに送られる。
RegionAddressSpace(RAS)レジスタ・フィールド:このフィールドは、サービス・モジュールのアドレス領域をさらに区分することを可能にする。
RegionEnableレジスタ・フィールド:このフィールドは、この領域レジスタが現設計に対して使用されるかどうかを示し、又は領域が現在利用可能かどうかを示す。
・NumProtectionKeys:このパラメータは、システム内で保護キー・レジスタがいくつ存在することができるかを示し、不要な保護キー・レジスタを除去するのに使用される。加えて、保護キー番号が格納される場合、各領域レジスタ内のビットも保存することができる。
・各保護キー・レジスタについて、
ProtectionKeyBitVectorレジスタ・フィールド:このビット・ベクトルは、この保護キー・レジスタを指し示す領域レジスタによってリンクされるサービス・モジュールにどの保護IDがアクセスすることを許可されるかを示す。位置N中のビット1は、保護IDのNでタグ付けされた要求が、要求の宛先サービス・モジュールにアクセスすることが許可されることを示す。
・NumProtectionIDs:このパラメータは、システム内で異なる保護IDがいくつ存在することができるかを示し、ProtectionKeyBitVectorレジスタ・フィールド内の不要な保護キー・ビットを除去するのに使用される。
・Endianess:このパラメータは、アーキテクチャでビッグ・エンディアンが適用されるか、それともリトル・エンディアンが適用されるかを示す。このパラメータは、データ・パッキング/アンパッキングから来るアドレス・バイト位置及びデータ・バイト・シーケンスを決定する。
さらに、各レジスタのレジスタ・フィールドが以下の3つの使用タイプの1つであると指定することもでき、その結果、最小の論理設計を適用してハードウェアを構築し、面積及び電力を節約することができる。
・アクセス不能(NA)レジスタ・フィールド:レジスタ・フィールドがパワーオン値に固定され、読み取ることも書き込むこともできない。
・読取り専用(RO)レジスタ・フィールド:レジスタ・フィールドがパワーオン値に固有であり、オペレーション中にソフトウェア可視(読取り専用)である必要がある。この場合、レジスタ・フィールドのソフトウェア読取りアクセスを可能にするために余分なゲートが必要である。
・読取り書込み(RW)レジスタ・フィールド:レジスタ・フィールドをソフトウェアで動的に読み取ることができ、書き込むことができる。このタイプのレジスタ・フィールドでは、ソフトウェア変更を可能にするために(例えばフリップ・フロップ及びゲートの形態の)余分な回路が必要である。
加えて、各レジスタ・フィールドを「エクスポーティング・コンスタント」(EC)レジスタ・フィールドとして使用することもでき、それによって、レジスタ・フィールドのネットリスト部分が最終ネットリストのトップ・レベルにエクスポートされる。これにより、全チップ生成プロセス中の終りに製品によって必要とされる、レジスタ・フィールドのパワーオン値の手動での修正がより容易となる。例えば、各保護キー・レジスタのProtectionKeyBitVectorレジスタ・フィールドを「エクスポーティング・コンスタント」フィールドとして宣言することができる。したがって、最終保護キー・マップを製品生成プロセスの終りにチップに入れることが可能となる。
図6及び図7に、2つのほぼ同一のアドレス・マッピングと保護構成を示す。図6のレジスタ・フィールドはRO、RW、又はNAタイプである。しかし、図7では、すべてのレジスタ・フィールドがNAタイプであり、加えて未使用領域レジスタ1が除去される。1次推定から、図7で節約されるフリップ・フロップ(フロップとも呼ぶ)の数は82である。すなわち、図3の中央に示すように、アドレス・マップ(308)と保護キー・マップ(310)ではフロップが使用されない。さらに、(1)ハードウェア・モジュールのアドレス幅が20から17に削減され、(2)保護IDの数が8に減らされる場合、図6の場合と比べて、追加のバッファ・レジスタ・ビット及び信号ワイヤを節約できることに留意されたい。
前述のように、設計者が製品に対して最小の設計を容易に指定できるように仕様言語を提供する必要がある。以下に、本発明の一実施形態における、図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}
}
上記の例(図6にも示す)では、2つのセグメントと5つのアドレス領域が存在する。アドレス領域1は初期化時に使用不能にされる(すなわち、領域レジスタのRegionEnableフィールドが「No」にセットされる)が、このフィールドは読取り/書込み可能であるので、実行時に再構成することができる。2つの保護キー・レジスタが存在し、それぞれが16ビットのビット・ベクトルを有する。この例はまた、パワーオン時に以下を指定する。
・要求アドレス幅が20ビットであり、データ・ワード・サイズが16ビットである。
・4つのサービス・モジュールServiceModule0、1、2、及び3が存在する。
・アドレス領域0、1、2がアドレス・セグメント0内に存在し、それぞれアドレス0x00100、0x01000、0x0000に基づき、サイズが256バイト、4Kバイト、16バイトである。領域レジスタ1は現時点では使用可能にされないが、後の追加として使用することができる。
・アドレス領域3、4がアドレス・セグメント1内に存在し、それぞれアドレス0x10000、0x11000に基づき、どちらもサイズが4Kバイトである。
・保護ID 0、1、3、4、5、6(ProtectionKeyBitVector0x007B)を使用する処理ユニットから来る要求は、要求アドレスに応じてServiceModule 0、1、3に行くことができる。保護ID 0、2、7(ProtectionKeyBitVector0x0085)を使用する処理ユニットから来る要求は、要求アドレスがアドレス領域3に入る場合、ServiceModule 2に行くことができる。
図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}
}
この説明で述べ、図4で示すように、最終ステージの1つでは、指定の設計(上記で示した仕様テキストなど)を入力とする後処理ツールが使用され、後処理ツールは、アドレス・マッピングと保護ハードウェアに関する最適化ハードウェア・ネットリストを生成する。
したがって、オンチップ・システム用の構成可能アドレス・マッピングと保護ハードウェアの方法と装置を開示した。
図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の間の通信は、そのような各通信デバイスが通信の開始と通信への応答ができる場合にピアツーピアと見ることができる。
図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のシステムに対して多くの変形形態が可能である。
本発明を議論し、理解するために、技法及び手法を記述するのに当業者によって様々な用語が使用されることを理解されたい。さらにこの説明では、説明の都合上、本発明の完全な理解を与えるために多数の特定の詳細が説明される。しかし、こうした特定の詳細なしに本発明を実施できることは当業者には明らかであろう。ある場合には、本発明をあいまいにするのを避けるために、周知の構造やデバイスを詳細に示さずに、ブロック図の形式で示する。当業者が本発明を実施することが可能となるようにこうした実施形態を十分詳細に説明するが、本発明の範囲から逸脱することなく他の実施形態も使用できること、論理的、機械的、電気的、その他の変更を行えることを理解されたい。
アルゴリズムと、例えばコンピュータ・メモリ内のデータ・ビットに対するオペレーションの記号表現とによって説明の一部が提示されている。こうしたアルゴリズム的説明及び表現は、データ処理技術の技術者により、他の当業者に研究の内容を最も効率的に伝えるために使用される手段である。ここでは、また一般に、アルゴリズムは、所望の結果を得る首尾一貫した一続きの動作であると表現される。動作は、物理量の物理的操作を必要とするものである。通常は、必須ではないが、こうした量は、格納、転送、結合、比較、又は操作することのできる電気的、磁気、又は光学的信号の形を取る。原理的には公共的用途で、こうした信号をビット、値、要素、シンボル、文字、用語、数字などとして参照することが時には好都合であることが実証されている。
しかし、上記及び類似の用語のすべてを適切な物理量と関連付けるべきであり、それらは、単にこうした量に適用される好都合なラベルに過ぎないことに留意されたい。具体的に述べるのでない限り、議論から明らかなように、説明全体を通して、「処理」、「コンピューティング」、「計算」、「決定」、「通信」、「表示」などの用語を使用する議論は、電子デバイス又はコンピュータ・システムのレジスタ及びメモリ内の物理(電子)量として表されるデータを、電子デバイス及び/又はコンピュータ・システム・メモリ又はレジスタあるいはその他のそのような情報記憶、伝送、又は表示デバイス内の物理量として同様に表される他のデータに操作及び変換するコンピュータ・システム又は電子デバイスの動作及びプロセスを指すことがある。
本発明は、本明細書のオペレーションを実行する装置によって実装することができる。この装置は、必要とされる目的のために特別に構築することができ、又はコンピュータ内に格納されたコンピュータ・プログラムによって選択的に活動化又は再構成される汎用コンピュータを含むことができる。このようなコンピュータ・プログラムは、限定はしないが、フロッピィ・ディスク、ハード・ディスク、光ディスク、コンパクト・ディスク読取り専用メモリ(CD−ROM)、デジタル・バーサタイル・ディスク(DVD)、磁気光ディスク、読取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、電気プログラム可能読取り専用メモリ(EPROM)、電気消去可能プログム可能読取り専用メモリ(EEPROM)、フラッシュ・メモリ、磁気又は光学式カードなどを含む任意のタイプのディスク、コンピュータに対してローカル又はリモートの電子命令を格納するのに適した任意のタイプの媒体などのコンピュータ可読記憶媒体に格納することができる。
本明細書で提示したアルゴリズム及び表示は、何らかの特定のコンピュータ又はその他の装置に本質的に関係するわけではない。本明細書の教示に従って様々な汎用システムをプログラムと共に使用することができ、又はこの必要とされる方法を実施するのに、より特殊化された装置を構築することが好都合であることが判明することがある。例えば、本発明による方法のいずれかをハードワイヤード回路として実装することができ、汎用プロセッサをプログラミングすることによって実装することができ、又はハードウェアとソフトウェアの任意の組合せによって実装することができる。ハンドヘルド・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベース又はプログラム可能な消費者向け電子装置、デジタル信号処理(DSP)デバイス、セット・トップ・ボックス、ネットワークPC、ミニコンピュータ、メインフレーム・コンピュータなどを含む、記載以外のコンピュータ・システム構成で本発明を実施できることを当業者は直ちに理解されよう。本発明はまた、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実施することができる。この通信ネットワークは、サイズによって限定されず、例えばオンチップ通信から、インターネットなどのWANにまで及ぶことがある。
本発明の方法は、コンピュータ・ソフトウェアを使用して実現することができる。認識される規格に準拠するプログラミング言語で書かれる場合、方法を実施するように設計された命令のシーケンスを、様々なハードウェア・プラットフォーム上で実行し、様々なオペレーティング・システムとインターフェースするようにコンパイルすることができる。様々なプログラミング言語を使用して本明細書に記載の発明の教示を実現できることを理解されよう。さらに、ある形態又は別の形態(例えば、プログラム、プロシージャ、アプリケーション、ドライバ、...)のソフトウェアが動作し、又は結果を引き起こすと述べることは当技術分野で一般的である。このような表現は単に、コンピュータによるソフトウェアの実行が、コンピュータのプロセッサに動作を実行させ、又は結果を生成させると述べることを簡略化したものに過ぎない。
通信、プロトコル、アプリケーション、実装、機構などを記述するのに様々な用語及び技法が当業者によって使用されることを理解されたい。そのような一技法は、技法の実装をアルゴリズム又は数式によって記述することである。すなわち、例えば技法をコンピュータ上の実行コードとして実装することができるが、その技法の表現は、公式、アルゴリズム、又は数式としてより適切かつ簡明に伝達及び通信される。したがって、A+B=Cを表すブロックが、そのハードウェア及び/又はソフトウェアとしての実装が2つの入力(A及びB)を取って合計出力(C)を生成する加法関数であることを当業者は理解されよう。したがって、公式、アルゴリズム、又は数式を記述として使用することは、少なくともハードウェア及び/又はソフトウェア(本発明の技法を実施形態として実施ならびに実装できるコンピュータ・システムなど)としての物理的実施形態を有すると理解すべきである。
機械可読媒体は、マシン(例えばコンピュータ)によって読取り可能な形式の情報を格納及び伝送する任意の機構を含むと理解される。例えば、機械可読媒体は、読取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュ・メモリ・デバイス、電気的、光学的、音響的、又はその他の形態の伝播信号(例えば搬送波、赤外線信号、デジタル信号など)などを含む。
したがって、オンチップ・システム用の構成可能アドレス・マッピングと保護アーキテクチャ及びハードウェアのための方法及び装置を説明した。
本発明の方法及び装置を実施することができるネットワーク環境を示す図である。 コンピュータ・システムのブロック図である。 N個の処理ユニット、M個のサービス・モジュール、アドレス・マッピングと保護モジュール、及び要求配信モジュールを備えるオンチップ・システムをブロック図形式で示す本発明の一実施形態を示す図である。 最適化されたアドレス・マッピングと保護ハードウェアを生成する際のプロセスを流れ図形式で示す本発明の一実施形態を示す図である。 構成可能アドレス・マッピングと保護アーキテクチャのためのハードウェア実装をブロック図形式で示す本発明の一実施形態を示す図である。 いくつかの可能な読取り専用、読取り書込み、又はアクセス不能構成パラメータの定義を表形式で示す本発明の一実施形態を示す図である。 いくつかの可能なアクセス不能構成パラメータの定義を表形式で示す本発明の一実施形態を示す図である。

Claims (10)

  1. 構成可能アドレス・マッピングと保護アーキテクチャをオンチップ・システムに持たせるための方法であって、
    サービス・モジュールに第1のアドレス位置を関連付ける構成パラメータをアドレス・セグメント・レジスタおよびアドレス領域レジスタに入力するステップと、
    保護パラメータを保護キー・レジスタに入力するステップであって、前記保護パラメータ前記オンチップ・システム内の各アドレス領域に対して存在する相異なる保護キーおよび前記オンチップ・システム内の処理ユニットに対して存在する相異なる保護IDから成るグループから選択されるステップと、
    前記入力された保護パラメータおよび前記サービス・モジュールの第1のアドレス位置に基づいて前記オンチップ・システム内の前記処理ユニットからの要求を前記サービス・モジュールに伝え、かつ実行するか否かを決定するためにセキュリティ・チェック・ロジックを使用するステップと
    を含み、
    前記オンチップ・システムのハードウェアに実装される前記アドレス・セグメント・レジスタ、前記アドレス領域レジスタおよび前記保護キー・レジスタは設計時に設定される
    方法。
  2. 前記構成パラメータおよび前記保護パラメータが、アドレス幅、セグメント数、セグメント・サイズ、セグメント・ベース、領域数からなるグループから選択される請求項1に記載の方法。
  3. 前記領域数の各領域について、領域アドレス・サイズ、領域ベース・アドレス、領域保護キー・レジスタ番号、領域使用可能、領域アドレス空間、前記領域に接続されたサービス・モジュールの幅、前記領域に接続されたサービス・モジュールの物理リンケージ情報からなるグループから選択されたフィールドをさらに含む請求項2に記載の方法。
  4. 前記領域に接続されたサービス・モジュールの前記物理リンケージ情報が、経路指定情報と位置からなるグループから選択された情報をさらに含み、そして
    前記経路指定情報が、前記サービス・モジュールに要求を送るために要求配信モジュールに渡されるハードウェア経路指定情報を含む
    請求項3に記載の方法。
  5. 前記位置が、ハードウェア信号ビット位置を含み、そして
    要求配信モジュールが前記ハードウェア信号ビット位置で信号をアサートする場合、要求が前記サービス・モジュールに送られる
    請求項4に記載の方法。
  6. 回路を構成するためのデータベースを生成するステップを含み、
    前記回路が、さらにレジスタを有し、
    前記構成の結果として、アクセス不能レジスタ、読取り専用レジスタ、読取り書込みレジスタからなるグループから選択された動作モードが得られ、そして
    前記レジスタの前記構成が、前記レジスタをエクスポート・コンスタントとして指定することをさらに含み、その結果前記データベースにおいて、前記レジスタのネットリスト部分がネットリストのトップ・レベルにエクスポートされる
    請求項1に記載の方法。
  7. 一組の要求を実行するときに請求項1に記載の方法を行うプロセッサを備えてなる演算処理システム。
  8. 実行されるときに請求項1に記載の方法を行う命令を記憶している機械可読記憶媒体。
  9. 最適化されたアドレス・マッピングと保護ハードウェアのための最適化されたハードウェア・ネットリストを生成するステップをさらに含んでなる請求項1に記載の方法。
  10. 構成可能アドレス・マッピングおよび保護アーキテクチャを有するオンチップ・システムにおいて、
    少なくとも第1のアドレス位置サービス・モジュール関連付ける構成パラメータを入力するためのアドレス・セグメント・レジスタおよびアドレス領域レジスタと、
    保護パラメータを入力するための保護キー・レジスタであって、前記保護パラメータが、前記オンチップ・システム内の各アドレス領域に対して存在する相異なる保護キーおよび前記オンチップ・システム内の処理ユニットに対して存在する相異なる保護IDから成るグループから選択される、保護キー・レジスタと、そして
    前記入力された保護パラメータおよび前記サービス・モジュールの第1のアドレス位置に基づいて前記オンチップ・システム内の前記処理ユニットからの要求を前記サービス・モジュールに伝えるか否か、かつ実行するか否かを決定するためのセキュリティ・チェッキング・ロジックと
    を備え、
    一組の構成レジスタが、前記構成パラメータを設計時に受信して、前記オンチップ・システムのハードウェア内に実装される前記アドレス・セグメント・レジスタ、前記アドレス領域レジスタおよび前記保護キー・レジスタを設定する
    オンチップ・システム。
JP2004551691A 2002-11-05 2003-11-03 オンチップ・システム用の構成可能アドレス・マッピングと保護アーキテクチャ及びハードウエアに関する方法及び装置 Expired - Lifetime JP4768990B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/288,973 2002-11-05
US10/288,973 US7266786B2 (en) 2002-11-05 2002-11-05 Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
PCT/US2003/035022 WO2004044681A2 (en) 2002-11-05 2003-11-03 A method for configurable address mapping

Publications (3)

Publication Number Publication Date
JP2006505867A JP2006505867A (ja) 2006-02-16
JP2006505867A5 JP2006505867A5 (ja) 2006-12-14
JP4768990B2 true JP4768990B2 (ja) 2011-09-07

Family

ID=32176015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004551691A Expired - Lifetime JP4768990B2 (ja) 2002-11-05 2003-11-03 オンチップ・システム用の構成可能アドレス・マッピングと保護アーキテクチャ及びハードウエアに関する方法及び装置

Country Status (6)

Country Link
US (3) US7266786B2 (ja)
EP (1) EP1561175B1 (ja)
JP (1) JP4768990B2 (ja)
KR (1) KR100982145B1 (ja)
AU (1) AU2003287494A1 (ja)
WO (1) WO2004044681A2 (ja)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6925540B2 (en) * 2002-05-02 2005-08-02 Intel Corporation Systems and methods for chassis identification
US7266786B2 (en) * 2002-11-05 2007-09-04 Sonics, Inc. Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
US8504992B2 (en) * 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
JP4526111B2 (ja) * 2003-12-19 2010-08-18 インターナショナル・ビジネス・マシーンズ・コーポレーション マイクロコンピュータおよびデバッグ方法
US7358761B1 (en) * 2005-01-21 2008-04-15 Csitch Corporation Versatile multiplexer-structures in programmable logic using serial chaining and novel selection schemes
JP4346587B2 (ja) * 2005-07-27 2009-10-21 富士通株式会社 システムシミュレーション方法
US7694249B2 (en) * 2005-10-07 2010-04-06 Sonics, Inc. Various methods and apparatuses for estimating characteristics of an electronic system's design
EP1801700B1 (en) * 2005-12-23 2013-06-26 Texas Instruments Inc. Method and systems to restrict usage of a DMA channel
US8719526B2 (en) * 2006-01-05 2014-05-06 Broadcom Corporation System and method for partitioning multiple logical memory regions with access control by a central control agent
US8020124B2 (en) * 2006-11-20 2011-09-13 Sonics, Inc. Various methods and apparatuses for cycle accurate C-models of components
US8868397B2 (en) 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
US20080120082A1 (en) * 2006-11-20 2008-05-22 Herve Jacques Alexanian Transaction Co-Validation Across Abstraction Layers
US8631468B2 (en) * 2008-11-10 2014-01-14 Samsung Electronics Co., Ltd. Active access monitoring for safer computing environments and systems
US8190804B1 (en) * 2009-03-12 2012-05-29 Sonics, Inc. Various methods and apparatus for a memory scheduler with an arbiter
US8789170B2 (en) * 2010-09-24 2014-07-22 Intel Corporation Method for enforcing resource access control in computer systems
KR101724590B1 (ko) * 2011-01-31 2017-04-11 삼성전자주식회사 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법
US9021156B2 (en) 2011-08-31 2015-04-28 Prashanth Nimmala Integrating intellectual property (IP) blocks into a processor
US8930602B2 (en) 2011-08-31 2015-01-06 Intel Corporation Providing adaptive bandwidth allocation for a fixed priority arbiter
US8805926B2 (en) 2011-09-29 2014-08-12 Intel Corporation Common idle state, active state and credit management for an interface
US8713240B2 (en) * 2011-09-29 2014-04-29 Intel Corporation Providing multiple decode options for a system-on-chip (SoC) fabric
US8929373B2 (en) 2011-09-29 2015-01-06 Intel Corporation Sending packets with expanded headers
US8713234B2 (en) * 2011-09-29 2014-04-29 Intel Corporation Supporting multiple channels of a single interface
US8775700B2 (en) 2011-09-29 2014-07-08 Intel Corporation Issuing requests to a fabric
US8874976B2 (en) 2011-09-29 2014-10-28 Intel Corporation Providing error handling support to legacy devices
US8711875B2 (en) 2011-09-29 2014-04-29 Intel Corporation Aggregating completion messages in a sideband interface
US9053251B2 (en) 2011-11-29 2015-06-09 Intel Corporation Providing a sideband message interface for system on a chip (SoC)
US9805221B2 (en) * 2011-12-21 2017-10-31 Intel Corporation Incorporating access control functionality into a system on a chip (SoC)
US9740518B2 (en) 2012-09-12 2017-08-22 Nxp Usa, Inc. Conflict detection circuit for resolving access conflict to peripheral device by multiple virtual machines
US9336411B2 (en) 2012-11-23 2016-05-10 Freescale Semiconductor, Inc. System on chip
WO2014080248A1 (en) * 2012-11-23 2014-05-30 Freescale Semiconductor, Inc. System on chip
KR101769757B1 (ko) * 2013-06-28 2017-08-21 인텔 코포레이션 소스 동기식 회선 교환 네트워크 온 칩(noc)을 위한 방법, 장치 및 시스템
US9781120B2 (en) * 2013-07-18 2017-10-03 Nxp Usa, Inc. System on chip and method therefor
CN103543980B (zh) * 2013-11-07 2021-10-22 吴胜远 数字数据处理的方法及装置
US20150331043A1 (en) * 2014-05-15 2015-11-19 Manoj R. Sastry System-on-chip secure debug
US9690719B2 (en) 2014-09-11 2017-06-27 Nxp Usa, Inc. Mechanism for managing access to at least one shared integrated peripheral of a processing unit and a method of operating thereof
JPWO2017168753A1 (ja) * 2016-04-01 2018-11-22 富士通株式会社 通信システムおよび通信方法
DE102016220639A1 (de) 2016-10-20 2018-04-26 Infineon Technologies Ag Speicherschutzeinheit und Verfahren zum Schützen eines Speicheradressraumes
US10911261B2 (en) 2016-12-19 2021-02-02 Intel Corporation Method, apparatus and system for hierarchical network on chip routing
US10846126B2 (en) * 2016-12-28 2020-11-24 Intel Corporation Method, apparatus and system for handling non-posted memory write transactions in a fabric
US20190007212A1 (en) 2017-06-30 2019-01-03 Intel Corporation Secure unlock systems for locked devices
US10318455B2 (en) * 2017-07-19 2019-06-11 Dell Products, Lp System and method to correlate corrected machine check error storm events to specific machine check banks
US11281810B1 (en) * 2018-12-11 2022-03-22 Xilinx, Inc. Memory access protection in programmable logic device
US11886877B1 (en) * 2021-09-24 2024-01-30 Apple Inc. Memory select register to simplify operand mapping in subroutines

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128347A (ja) * 1995-06-07 1997-05-16 Tandem Comput Inc フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
US5995736A (en) * 1997-07-24 1999-11-30 Ati Technologies, Inc. Method and system for automatically modelling registers for integrated circuit design

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3747946A (en) 1970-12-21 1973-07-24 R Edens Tool holders
US4298208A (en) 1980-01-31 1981-11-03 Erickson Tool Company Spring actuated chuck
US4665395A (en) * 1984-12-14 1987-05-12 Ness Bradford O Van Automatic access control system for vehicles
US4814982A (en) 1984-12-24 1989-03-21 General Electric Company Reconfigurable, multiprocessor system with protected, multiple, memories
US5790776A (en) 1992-12-17 1998-08-04 Tandem Computers Incorporated Apparatus for detecting divergence between a pair of duplexed, synchronized processor elements
US5513337A (en) * 1994-05-25 1996-04-30 Intel Corporation System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type
US5991895A (en) 1995-05-05 1999-11-23 Silicon Graphics, Inc. System and method for multiprocessor partitioning to support high availability
US6072944A (en) * 1995-09-08 2000-06-06 Iq Systems, Inc. Methods and apparatus for distributed processing and rapid ASIC development
US6101590A (en) * 1995-10-10 2000-08-08 Micro Unity Systems Engineering, Inc. Virtual memory system with local and global virtual address translation
US6023565A (en) * 1996-03-29 2000-02-08 Xilinx, Inc. Method for configuring circuits over a data communications link
US5774647A (en) * 1996-05-15 1998-06-30 Hewlett-Packard Company Management of memory modules
US6209123B1 (en) * 1996-11-01 2001-03-27 Motorola, Inc. Methods of placing transistors in a circuit layout and semiconductor device with automatically placed transistors
US6006022A (en) * 1996-11-15 1999-12-21 Microsystem Synthesis, Inc. Cross-linked development and deployment apparatus and method
US6516456B1 (en) * 1997-01-27 2003-02-04 Unisys Corporation Method and apparatus for selectively viewing nets within a database editor tool
GB2325061B (en) 1997-04-30 2001-06-06 Advanced Risc Mach Ltd Memory access protection
US5987557A (en) 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US5948089A (en) * 1997-09-05 1999-09-07 Sonics, Inc. Fully-pipelined fixed-latency communications system with a real time dynamic bandwidth allocation
US6367058B1 (en) * 1998-03-26 2002-04-02 Altera Corporation Partitioning using hardware
US6182193B1 (en) * 1998-05-28 2001-01-30 3Com Corporation Caching system using cache indexes for call group data of call requests in ATM network devices
US6286083B1 (en) 1998-07-08 2001-09-04 Compaq Computer Corporation Computer system with adaptive memory arbitration scheme
US6182183B1 (en) * 1998-11-13 2001-01-30 Sonics, Inc. Communications system and method with multilevel connection identification
US6311316B1 (en) * 1998-12-14 2001-10-30 Clear Logic, Inc. Designing integrated circuit gate arrays using programmable logic device bitstreams
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6484227B1 (en) * 1999-08-23 2002-11-19 Advanced Micro Devices, Inc. Method and apparatus for overlapping programmable address regions
US6519690B1 (en) * 1999-08-23 2003-02-11 Advanced Micro Devices, Inc. Flexible address programming with wrap blocking
US6330225B1 (en) * 2000-05-26 2001-12-11 Sonics, Inc. Communication system and method for different quality of service guarantees for different data flows
US6543043B1 (en) * 2000-06-01 2003-04-01 Cadence Design Systems, Inc. Inter-region constraint-based router for use in electronic design automation
US7080011B2 (en) * 2000-08-04 2006-07-18 International Business Machines Corporation Speech label accelerators and techniques for using same
US7165094B2 (en) 2001-03-09 2007-01-16 Sonics, Inc. Communications system and method with non-blocking shared interface
US6662251B2 (en) 2001-03-26 2003-12-09 International Business Machines Corporation Selective targeting of transactions to devices on a shared bus
US6785753B2 (en) * 2001-06-01 2004-08-31 Sonics, Inc. Method and apparatus for response modes in pipelined environment
US6775750B2 (en) 2001-06-29 2004-08-10 Texas Instruments Incorporated System protection map
US7107374B1 (en) * 2001-09-05 2006-09-12 Xilinx, Inc. Method for bus mastering for devices resident in configurable system logic
US6578117B2 (en) 2001-10-12 2003-06-10 Sonics, Inc. Method and apparatus for scheduling requests using ordered stages of scheduling criteria
US6854039B1 (en) 2001-12-05 2005-02-08 Advanced Micro Devices, Inc. Memory management system and method providing increased memory access security
US6715085B2 (en) * 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US6976106B2 (en) 2002-11-01 2005-12-13 Sonics, Inc. Method and apparatus for speculative response arbitration to improve system latency
US7266786B2 (en) * 2002-11-05 2007-09-04 Sonics, Inc. Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
US7149829B2 (en) 2003-04-18 2006-12-12 Sonics, Inc. Various methods and apparatuses for arbitration among blocks of functionality
US20040210696A1 (en) 2003-04-18 2004-10-21 Meyer Michael J. Method and apparatus for round robin resource arbitration
US7062695B2 (en) * 2003-05-23 2006-06-13 Lsi Logic Corporation Memory implementation for handling integrated circuit fabrication faults
CA2622404A1 (en) * 2004-09-15 2006-03-23 Adesso Systems, Inc. System and method for managing data in a distributed computer system
US7324922B2 (en) 2005-10-26 2008-01-29 International Business Machines Corporation Run-time performance verification system
US20070162268A1 (en) 2006-01-12 2007-07-12 Bhaskar Kota Algorithmic electronic system level design platform
US8516418B2 (en) 2006-06-30 2013-08-20 Oracle America, Inc. Application of a relational database in integrated circuit design
US8032329B2 (en) 2008-09-04 2011-10-04 Sonics, Inc. Method and system to monitor, debug, and analyze performance of an electronic design

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128347A (ja) * 1995-06-07 1997-05-16 Tandem Comput Inc フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
US5995736A (en) * 1997-07-24 1999-11-30 Ati Technologies, Inc. Method and system for automatically modelling registers for integrated circuit design

Also Published As

Publication number Publication date
US20110067114A1 (en) 2011-03-17
EP1561175A4 (en) 2008-12-24
EP1561175B1 (en) 2017-03-22
US8443422B2 (en) 2013-05-14
EP1561175A2 (en) 2005-08-10
AU2003287494A1 (en) 2004-06-03
US7793345B2 (en) 2010-09-07
US20060129747A1 (en) 2006-06-15
KR100982145B1 (ko) 2010-09-14
KR20050084639A (ko) 2005-08-26
WO2004044681A2 (en) 2004-05-27
WO2004044681A3 (en) 2004-09-23
US7266786B2 (en) 2007-09-04
WO2004044681B1 (en) 2004-11-18
US20040088566A1 (en) 2004-05-06
JP2006505867A (ja) 2006-02-16
AU2003287494A8 (en) 2004-06-03

Similar Documents

Publication Publication Date Title
JP4768990B2 (ja) オンチップ・システム用の構成可能アドレス・マッピングと保護アーキテクチャ及びハードウエアに関する方法及び装置
TWI486810B (zh) 在狀態機晶格中之計數器操作
CN107113084B (zh) 用于处理数据错误的装置和方法
CN110851378A (zh) 双列直插式存储器模块(dimm)可编程加速卡
Stuecheli et al. IBM POWER9 opens up a new era of acceleration enablement: OpenCAPI
US8769180B2 (en) Upbound input/output expansion request and response processing in a PCIe architecture
EP4002099A1 (en) Firmware component with self-descriptive dependency information
AU2014331142B2 (en) An asset management device and method in a hardware platform
US20200387470A1 (en) Pci express chain descriptors
US20220197648A1 (en) Static Identifications in Object-based Memory Access
US9753883B2 (en) Network interface device that maps host bus writes of configuration information for virtual NIDs into a small transactional memory
CN115827502A (zh) 一种内存访问系统、方法及介质
US20050114549A1 (en) Mechanism for extensible binary mappings for adaptable hardware/software interfaces
US20130159591A1 (en) Verifying data received out-of-order from a bus
US8688608B2 (en) Verifying correctness of regular expression transformations that use a post-processor
US9535851B2 (en) Transactional memory that performs a programmable address translation if a DAT bit in a transactional memory write command is set
CN114579189B (zh) 单核以及多核访问寄存器数据的方法、处理器和系统
US20230418773A1 (en) Device, system, and method for inspecting direct memory access requests
CN112463214B (zh) 数据处理方法及装置、计算机可读存储介质以及电子设备
US20240128982A1 (en) Hardware acceleration of data reduction operations
US20230075534A1 (en) Masked shifted add operation
US9524202B2 (en) Communication software stack optimization using distributed error checking
US20080127007A1 (en) Method to combine address anonymous hash array with clock, data pack and bit anonymous arrays to gather data of registers

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061027

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110418

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: 20110607

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: 20110617

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4768990

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140624

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term