JP2010015560A - システム・オン・チップ内でデータ要求を経路指定する方法、装置及びコンピュータ・プログラム - Google Patents

システム・オン・チップ内でデータ要求を経路指定する方法、装置及びコンピュータ・プログラム Download PDF

Info

Publication number
JP2010015560A
JP2010015560A JP2009148910A JP2009148910A JP2010015560A JP 2010015560 A JP2010015560 A JP 2010015560A JP 2009148910 A JP2009148910 A JP 2009148910A JP 2009148910 A JP2009148910 A JP 2009148910A JP 2010015560 A JP2010015560 A JP 2010015560A
Authority
JP
Japan
Prior art keywords
caching
access table
bridge
routing
data request
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.)
Pending
Application number
JP2009148910A
Other languages
English (en)
Inventor
Glenn D Gilda
グレン・ディ・ギルダ
Adrian S Butter
エードリアン・エス・バター
M Foster Eric
エリック・エム・フォスター
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010015560A publication Critical patent/JP2010015560A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】システム・オン・チップ(SOC)内のデータ要求の経路指定をストリーム化し且つハードウェア要件を最小化することにより、システム性能を改良すること。
【解決手段】
システム・オン・チップのクロスバー内で、クロスバー・セグメント経路指定機能及びアクセス・テーブル・アドレス再マッピング機能が組み合わされる。このようにすると、セグメント経路指定に先行して、アドレス再マッピングを行うことができる。マスタ・ポートごとに、1つ以上のアクセス・テーブル用キャッシング・レジスタが設けられる。これらのキャッシング・レジスタは、各マスタに関連する1つ以上のアクセス・テーブル・エントリの迅速な検索を可能にするとともに、アクセス・テーブルにポートを追加することなく、複数のマスタによる同時的な検索を可能にする。セグメント識別子をこれらのキャッシング・レジスタ内に格納すると、一致する要求を適切なスレーブ・セグメントへ経路指定する方法を指示することができる。
【選択図】 図4

Description

本発明は、システム・オン・チップ(SOC)内のデータ要求の処理及び転送に係る。
一般に、複数の個別的な機能が、SOCに統合される。マイクロチップ上の種々のコンポーネントについて外部装置へのアクセスを保証することは、恒常的な設計課題である。例えば、比較的多数のSOCプロセスは、外部メモリ(例えば、DRAM)への同時アクセスを必要とする。従って、設計者は、資源への有効なアクセスを保証するために、種々の経路指定方式及び構成を使用しなければならない。
資源アクセスを可能にするための従来の1つのアプローチは、オンチップの各機能コンポーネントに対しバスを専用化するというものである。このアプローチは、通信チャンネルを保証するのに有効であるが、データの効率的な共有を可能にせず、そのためデータ転送のコストが高くなる。より一般的なアプローチは、SOCの1つ以上のコンポーネントが単一のポートを通して外部装置と通信することができるように、共通バスを使用するというものである。
後者のアプローチは、この共通バスによる資源の共有を可能にするという点で価値があるが、SOC内のコンテンツ又は他の機密データへのアクセスの制御に関してセキュリティ上の問題を生じる。例えば、SOC内で大きな共通メモリ・プールを使用する場合には、保護されたメモリ空間への無許可のアクセスを防止することが困難である。かかるメモリの例は、トランスポート・デマルチプレクサによってセット・トップ・ボックスのデコーダに供給される圧縮データを含む。この理由で、セキュア・ブリッジが、SOC内にしばしば組み入れられる。一般に、ブリッジは、種々のバス・アーキテクチャ間の接続を提供し且つサポートされるバス接続IPコアの数を拡張することにより、拡張されたシステム機能を提供する。また、ブリッジは、データ・バスをセグメント化することにより、競合トラフィックの量を減少させる。
また、ブリッジは、オペレーションが当該ブリッジを通して流れる際に、アドレスの再マッピング(再配置)を実行するという追加の機能を提供するとともに、オペレーション完了を許可又は拒否するという検査機能を提供する。かかるブリッジの1例は、セキュア・ブート・コードによって付与されたアクセス権限に基づきメモリ内の領域へのアクセスを制限する、1セットのセキュリティ機能を提供する。
ブリッジを使用する共通バス・アーキテクチャでは、各バス・マスタは、システム・バス上に要求を発行する。バス・コントローラ機能内のアービタは、諸マスタによってシステム・バス上に置かれた諸要求を選択し、それらの要求を全てのスレーブに経路指定する。もし、要求とともに供給されたアドレスが、スレーブが存在するメモリ領域の範囲内に含まれるならば、当該スレーブは、当該要求を肯定応答する。
このプロトコルに従ったバス・アーキテクチャは、複数のスレーブ・セグメントがバス上に存在する場合は、クロスバー実装を可能にする。クロス・ポイント又はマトリックス・スイッチとも呼ばれるクロスバーは、複数の入力を複数の出力にマトリックス式に接続するスイッチから成る。かかるシステムでは、諸マスタ要求は、クロスバーによって復号されるアドレス・ビットのサブセットに基づいて、諸スレーブ・セグメントに経路指定されるのが普通である。各セグメントは、当該セグメントに経路指定される諸要求を処理するための、それ自体のアービタ及びバス・コントローラ機能を有する。
ブリッジは、かかるバス上でクロスバーのバス・コントローラと諸スレーブとの間に挿入され、その場合、当該ブリッジは、クロスバーにとってはスレーブとして見え、諸スレーブにとってはバス・コントローラとして見える。このブリッジは、各要求アドレスを検査するためのアクセス・テーブルを含む。このブリッジに入来する各要求は、このアクセス・テーブルの全てのエントリに対して検査される。このアクセス・テーブルの各エントリは、入来する要求アドレスと突き合わせるために使用されるアドレスに加えて、アクセス権限、再マップ・アドレス及び他のパラメータへのポインタを有する。もし、アドレス一致が検出され且つアクセス権限が付与されるならば、当該要求は、一致するアクセス・テーブル・エントリからの新しい再マップ・アドレスとともに当該ブリッジを継続的に通過する。
かかるブリッジ実装の利点にも拘わらず、このブリッジの組み込みは、性能ペナルティ(例えば、遅延)を伴う。また、かかる実装は、追加のクロスバー兼調停機能を必要とし、その結果、ブリッジの設計がより複雑になり、コストも高くなる。さらに、かかるブリッジは、アクセス・テーブルに関連する諸スレーブ・セグメントを収容するために多数のポートを必要とし、その結果、コストがさらに高くなる。
従って、当分野では、経路指定をストリーム化し且つハードウェア要件を最小化することにより、システム性能を改良するための方法が必要とされている。
本発明の諸実施形態は、キャッシング・レジスタを有するブリッジにおいてデータ要求を受け取り且つ当該キャッシング・レジスタを使用して前記データ要求を経路指定情報と突き合わせることにより、SOC内でデータ要求を経路指定するための改良された方法、装置及びコンピュータ・プログラムを提供する。前記経路指定情報は、タグに関連する。前記データ要求は、前記経路指定情報を使用して経路指定される。
本発明の諸側面に従って、前記キャッシング・レジスタは、アクセス・テーブル・ヒットに応答して更新される。前記データ要求アドレスは、前記データ要求を経路指定する前に、前記キャッシング・レジスタを使用して、置換アドレスに置き換えられる。そのように構成される場合、前記ブリッジの他のキャッシング・レジスタを使用して、他のデータ要求を他の経路指定情報と同時に突き合わせることができる。
本発明の諸実施形態は、前記ブリッジ内のクロスバー・スイッチを含む。例えば、前記キャッシング・レジスタは、前記ブリッジのクロスバー・スイッチ内に配置される。諸実施形態は、前記ブリッジのクロスバー・スイッチ内に配置されたアクセス・テーブルを含む。1つの実施形態は、前記アクセス・テーブル及びクロスバー・ルータの代わりに、前記キャッシング・レジスタを使用して、前記データ要求を機能的なスレーブ・コンポーネントに関連する経路指定情報と突き合わせる。
本発明の他の側面に従って、前記ブリッジは、当該ブリッジのポートごとに少なくとも1つのキャッシング・レジスタを含む。前記経路指定を促進するために、前記キャッシング・レジスタ内にセグメント識別子が格納される。前記キャッシング・レジスタは、機能的なマスタ・コンポーネントによって最近に使用されたアクセス・テーブルのデータを格納する。前記キャッシング・レジスタ内に一致が存在しない場合は、データ要求を突き合わせるために、前記アクセス・テーブルが検索される。
本発明の諸実施形態は、データ要求の転送中に、クロスバー経路指定を1度だけ行う。必要に応じて、前記データ要求に関連するセキュリティ権限が決定される。他の決定は、前記データ要求に適切な経路指定セグメントを決定することに関係する。
本発明は、クロスバー内で、クロスバー・セグメント経路指定機能及びアクセス・テーブル・アドレス再マッピング機能を組み合わせることにより、セグメント経路指定に先行して、アドレス再マッピングを行うことができるという効果を奏する。また、本発明は、マスタ・ポートごとに、1つ以上のアクセス・テーブル用キャッシング・レジスタを追加することにより、各マスタに関連する1つ以上のアクセス・テーブル・エントリの迅速な検索を可能にするとともに、アクセス・テーブルにポートを追加することなく、複数のマスタによる同時的な検索を可能にするという効果を奏する。セグメント識別子をこれらのキャッシング・レジスタ内に格納すると、一致する要求を適切なスレーブ・セグメントへ経路指定する方法を指示することができる。
アクセス・テーブルを有するセキュア・ブリッジを含む、SOC実装のブロック図である。 SOC内のブリッジ実装のブロック図である。 SOC実装のタイミング図である。 本発明の基本原理に従った、組み合わせ式クロスバー兼アクセス・テーブル・ユニット兼キャッシング・レジスタを有する、ブリッジ実装のブロック図である。 キャッシングレジスタ・ヒットが生じる場合の、図4のブリッジ実装のタイミング図である。 キャッシングレジスタ・ミスが生じる場合の、図4のブリッジ実装のタイミング図である。 本発明の基本原理に従った、組み合わせ式クロスバー兼アクセス・テーブル・ユニット兼キャッシング・レジスタを有するブリッジ実装を含む、SOCのブロック図である。 本発明の基本原理に従った、キャッシング・レジスタを使用して、アクセス権限、再マップ・アドレス及びスレーブ・セグメントを決定するためのフローチャートである。
本発明の諸実施形態は、クロスバー内で、クロスバー・セグメント経路指定機能及びアクセス・テーブル・アドレス再マッピング機能を組み合わせる。このようにすると、セグメント経路指定に先行して、アドレス再マッピングを行うことができる。本発明の諸側面は、マスタ・ポートごとに、1つ以上のアクセス・テーブル用キャッシング・レジスタを追加する。これらのキャッシング・レジスタは、各マスタに関連する1つ以上のアクセス・テーブル・エントリの迅速な検索を可能にするとともに、前記アクセス・テーブルにポートを追加することなく、複数のマスタによる同時的な検索を可能にする。セグメント識別子をこれらのキャッシング・レジスタ内に格納すると、一致する要求を適切なスレーブ・セグメントへ経路指定する方法を指示することができる。
このように、アクセス・テーブルを検索する必要性を最小化することができる。というのは、アクセス・テーブルの完全な検索を行うのではなく、アクセス・テーブル用キャッシング・レジスタを使用すれば、必要とされる情報が高い確率で検出されるからである。これらのキャッシング・レジスタは、マスタによって最近に使用されたアクセス・テーブル・エントリを格納する。これらのキャッシング・レジスタには、エントリごとにスレーブ・セグメント情報を記憶するための複数のビットが追加される。
諸実施形態は、ブリッジ内の第2のクロスバー要求経路指定機能の必要性を排除する。本発明の諸側面は、クロスバー・アドレス経路指定を1度だけ実行することにより、システム性能を改良する。諸機構は、アクセス・テーブル内に複数のポートを設ける必要性を減少又は排除する。
図1に例示するシステムは、バス・コントローラのスレーブ・セグメントと複数のバス・スレーブとの間に挿入されたブリッジを有する。具体的には、図1のSOC 100は、バス制御ユニット130と通信関係にある複数のマスタ110を有する。バス制御ユニット130は、ブリッジ140を構成するアクセス制御ユニットと通信関係にある。ブリッジ140は、入来するマスタ要求と諸スレーブ120に引き渡される要求との間の調停を行う。ブリッジ140は、アクセス・テーブル150、アクセス・パラメータ160及び暗号化/暗号化解除ユニット170を有する。ブリッジ140は、複数のスレーブ120と通信する。さらに、図1は、簡略化したデータの説明及びパスを示す。
図2に例示するブリッジ実装200は、図1のSOC 100内で適用可能である。通常の設計の制限に焦点を当てるために、図1のデータフロー・パスに類似するものは、図2には示されていない。具体的には、図2に示すSOCの主要なコンポーネントのうち、クロスバー202は、図1のバス制御ユニット130に対応する。図1に示されていないのは、図2のクロスバー202に関連する、バス制御ユニット130とブリッジ140との間のインタフェースの複製である。クロスバー202は、マスタ204、206に接続する。セキュア・ブリッジ208は、スレーブ・セグメント要求インタフェースを介してクロスバー202に接続し、スレーブ210、212は、第1のスレーブ・セグメント・インタフェースを介してセキュア・ブリッジ208に結合する。スレーブ214、216は、第2のスレーブ・セグメント・インタフェースを介してセキュア・ブリッジ208に結合する。簡潔のために、これらのセグメントに接続される追加のスレーブは、図示されていない。図1に示されていないのは、図2のクロスバー208に関連する、ブリッジ140と諸スレーブ120との間のインタフェースの複製である。
クロスバー202は、クロスバー・アドレス経路指定ユニット218を含む。このクロスバー・アドレス経路指定ユニット218は、セグメント・アービタ220、222に選択的に接続する。ブリッジ208は、アクセス・テーブル224及びクロスバー・アドレス経路指定ユニット226を含む。このクロスバー・アドレス経路指定ユニット226は、セグメント・アービタ228、230に選択的に接続する。
前述のように、ブリッジ208内のアクセス・テーブル224は、入来するマスタ要求のための再マップ・アドレス(置換アドレス)を生成する。この新しい再マップ・アドレスは、当該要求が目標とするスレーブ・セグメントに影響することがある。クロスバー202が、要求を1つのスレーブ・セグメントへ経路指定するのに対し、ブリッジ208内のアクセス・テーブルが、他のスレーブ・セグメントを目標とする再マップ・アドレスを選択することがあり得る。その結果、ブリッジ208は、ブロック226、228及び230において第2のクロスバー兼調停機能を実装する必要がある。しかし、これらのプロセス及び関連するユニットは、ブリッジの設計をより複雑にするばかりか、コストを高くする。
さらに、ブリッジ208をSOC内に組み込むことに関連する性能ペナルティが存在する。具体的には、図2のシステム設計は、マスタ要求をスレーブ装置210〜216へ経路指定する場合に、特定のシーケンスに従うことを必要とする。第1に、バス・マスタ204、206が発行する要求は、アドレス・ビットのサブセットを使用して、クロスバー202を通して経路指定される。この要求はアドレスを含み、その一部は、諸スレーブ・セグメントへの経路指定を決定するために使用される。セキュア・ブリッジ208は、その入力ポートのうちの1つにおいてクロスバー202からの要求を受け取り、アクセス権限の検査及びアドレス再マッピングのために、当該要求をアクセス・テーブル224に送る。クロスバー経路指定機能226は、この新しい再マップ・アドレスを使用して、宛先のスレーブ・セグメントを決定する。
好ましい実施形態では、要求がマスタによって発行される時点と当該要求がスレーブによって肯定応答される時点との間には、理想的には、3サイクルの要求−肯定応答最小待ち時間が存在する。すなわち、このシーケンスのタイミングは、第1サイクル中に、バス・マスタがその要求を発行し、第2サイクル中に、PLBバス・アービタが選択された要求をスレーブに、そして第3サイクル中に、該当するスレーブが応答することを含む。しかし、セキュア・ブリッジ208をSOC内に組み込むと、この最小の待ち時間に少なくとも1サイクルが加わる。というのは、第2サイクル中には、アドレスをスレーブ210〜216に引き渡す準備ができていないからである。その代わりに、第2サイクル中には、このアドレスをアクセス・テーブル224内で検索しなければならない。また、第2サイクル中には、スレーブ・セグメントの決定も実行しなければならない。この実装に依存して、アクセス・テーブルの検索及びスレーブ・セグメントの決定を実行するためには、PLBクロック・サイクルの大部分を必要とする。第3サイクルまでは、その要求は、目標スレーブ210〜216に引き渡されない。従って、その後の第4サイクル中にだけ、スレーブ210〜216は、この要求に応答することができる。
図3は、前述のタイミング・シーケンスをグラフ式に示す。具体的には、図3は、ブリッジ実装200の諸コンポーネントによるデータ要求の転送に関するタイミング・シーケンス250を示す。図3は、クロスバー202及びスレーブ210〜216のそれぞれから見たタイミング・シーケンスを示す。
クロスバー202は、サイクル1中に発行される要求252を検知する。要求252は、クロスバー経路指定及びクロスバー調停と一致することがある。(クロスバー202から見た)サイクル2中のデータ要求の転送254は、サイクル1のクロスバー調停を獲得したことを仮定する。この転送254は、アクセス・テーブル224の検索及び適切な経路指定を含む。
サイクル3は、(クロスバー202から見た)肯定応答256及び(スレーブ210〜216から見た)データ要求の転送258を含む。サイクル4は、要求を受け取ったという肯定応答260を含む。タイミング・シーケンス250に示すように、セキュア・ブリッジ208は、少なくとも1サイクルだけ処理を遅延させる。
幾つかのSOCに関する他の問題は、セキュア・ブリッジ208内のアクセス・テーブル224に設けることが必要なポートの数に関係する。スレーブ・セグメントの数が増加するにつれて、アクセス・テーブル224を同時に検索するために必要とされるポートの数も増加する。同時的な検索は、2つの要求を異なるスレーブ・セグメントに同時に進行させることを可能にする。しかし、追加のポートを設けると、アクセス・テーブル224のサイズ及び読み取り時間が著しく増加する。
図4は、セキュア・ブリッジ301を含む、SOC 300の選択されたコンポーネントを示す。ブリッジ301は、組み合わせ式クロスバー兼アクセス・テーブル・ユニット302及びセグメント・アービタ316、318を有する。ブリッジ301は、マスタ308、310及びスレーブ装置320〜326と通信関係にあるように、配置することができる。
組み合わせ式クロスバー兼アクセス・テーブル・ユニット302は、クロスバー・アドレス経路指定ユニット304、アクセス・テーブル306及びアービタ307を含む。アービタ307は、共用資源へのアクセスを割り振るための電子装置から構成される。アービタは、同時的な複数の要求から共用資源へのアクセスの順序を選択する。このように、アービタ307は、2つのオペレーションが1度に生じるのを防止することができる。
さらに、組み合わせ式クロスバー兼アクセス・テーブル・ユニット302は、キャッシング・レジスタ312、314を含む。キャッシング・レジスタ312、314の一方又は両方は、ブリッジ301のマスタ・ポートを通して、マスタ308、310とそれぞれ通信する。
キャッシング・レジスタ312、314は、迅速にアクセス可能なメモリを含み、アクセス・テーブル306のオペレーションに取って代わるか又はこれを増強することができる。キャッシング・レジスタ312、314は、頻繁にアクセスされるデータを高速アクセスのために格納する一時記憶域を含む。一旦データがキャッシング・レジスタ312、314内に格納されると、オリジナル・データを再フェッチ又は再計算するのではなく、キャッシュされたコピーにアクセスして将来の使用を行うことができ、その結果、平均アクセス時間がより短くなる。従って、キャッシングは、データ・アクセスを促進するのを支援する。かかるデータは、アドレスを含む。
1つの実施形態では、各要求用の実アドレスの上位アドレス・ビットは、それぞれがタグを保持する、1つ以上のキャッシング・レジスタと比較される。タグは、キャッシング・レジスタの内容をデータ要求と突き合わせるための情報に加えて、アドレスを含む。キャッシング・レジスタごとに、追加の情報又は属性がリストされる。かかる追加の情報は、可能な置換アドレス、当該置換アドレスへの再マッピングが許可されるか否かを指示する情報、当該タグに関連するメモリ領域のサイズ及び当該エントリが全体として有効であるか否かを指示する情報を含む。さらに、各レジスタ・エントリは、マスタ識別子番号に基づく読み取り又は書き込み権限を含む。さらに、各レジスタ・エントリは、暗号化兼暗号化解除機構のようなセキュリティ機能に関係する情報を含む、別個のパラメータ・テーブル・エントリ(パラメータ・テーブルは図示されていない)を指定する。パラメータ・テーブル及び他の関連するセキュリティ機能は、本発明の要旨には直接的に関係しないので、これらについては説明を省略する。また、キャッシング・レジスタ内には、セグメント識別子が含まれる。このセグメント識別子は、要求をスレーブ・セグメントに経路指定するために使用される。この機構を使用すると、所与の要求を、メモリ領域サイズに基づく上位アドレス、マスタ識別子及びマスタ識別子番号に基づく読み取り又は書き込み権限指標と比較することにより、当該要求のためのアクセス・レベルを得ることができる。さらに、当該比較の結果に依存して、当該要求を、1セットのアクセス・パラメータに関連付けることができる。
キャッシング・レジスタ312、314を通して経路指定される要求は、アクセス・テーブル306を通しての経路指定又はクロスバー・アドレス経路指定ユニット304を必要とすることなく、セグメント・アービタ316、318に直接的に接続することができる。その意味で、キャッシング・レジスタ312、314は、セグメント・アービタ316、318への直接パスを提供し、最終的にはスレーブ装置320〜326への直接パスを提供する。
図4の拡張された組み合わせ式クロスバー兼アクセス・テーブル・ユニット302は、図2のクロスバー・アドレス経路指定機能218に置き換わるものである。この機構は、従来技術の反復的なクロスバー経路指定の要件を排除することができる。
クロスバーに対する任意のサイクル時間の影響を最小化するためには、アクセス・テーブルの検索機能は、それが置き換わるクロスバー・アドレス経路指定機能304のタイミング遅延を超過すべきでない。アクセス・テーブル306の完全な検索を行うと、恐らくクロスバー・アドレス経路指定機能304の検索時間を超過するであろう。キャッシング・レジスタ312、314は、この影響を減少させるか又は排除する。キャッシング・レジスタ312、314は、静的に又は動的に特定のマスタ308、310に関連付けることができる。
キャッシング・レジスタ312、314は、特定のマスタ308、310によって最近に使用されたアクセス・テーブル情報を捕捉する。キャッシング・レジスタ312、314の内容は、アクセス・テーブル306の一部である、新しい制御論理によって管理される。また、これらの内容は、ソフトウェアによって部分的に又は完全に管理することができる。この制御論理が置換のためにその内容を選択する場合、キャッシング・レジスタ312、314は、新しい値をロードされる。この選択が行われるのは、マスタ要求に対して一致するキャッシング・レジスタが検出されない場合である。一致するキャッシング・レジスタが検出されない場合、アクセス・テーブルの完全な検索が行われる。もし、一致するアクセス・テーブル・エントリが検出されるならば、当該エントリは、選択されたキャッシング・レジスタ312、314にロードされる。
マスタ・ポートは、特定の時間間隔にわたって、アクセス・テーブル・エントリによって定義された同じ領域に繰り返しアクセスすることが多い。このように、高いヒット率が生じ、キャッシング・レジスタ312、314が完全なアドレスと一致することが多くなる。しかし、複数チャネル直接メモリ・アクセス(DMA)コントローラのような特定のマスタが、異なる領域に対するマスタ要求活動の複数の同時ストリームを有することがあり得る。もし、かかるマスタがシステム内に存在すれば、このタイプのマスタのために複数のキャッシング・レジスタ312、314を割り振ることが望ましい。
各マスタ・ポートに割り振られるキャッシング・レジスタの数は、多くの方法で決定することができる。例えば、この数をレジスタ転送レベル(RTL)で静的に構成し、これを特定のSOC実装のために調整することができる。諸実施形態は、所与のマイクロチップ設計における1マスタ・ポート当たりのキャッシング・レジスタの特定の数をコミットする。代替的に、この数は、キャッシング・レジスタの集合から動的に構成することができる。ソフトウェアは、ハードウェア初期化時間において、1マスタ・ポート当たりのキャッシング・レジスタの特定の数を構成する。代替的に、ハードウェアは、通常のオペレーション中に、選択された割り振りポリシに基づいて1マスタ・ポート当たりのキャッシング・レジスタ312、314の数を動的に構成することができる。
所与の設計目標のために前述の割り振りスキームのどれを実装するかを決定することは、設計の柔軟性、複雑さ、エリア及びタイミングの間の適用可能なトレードオフを評価することを含む。例えば、最も簡単な構成は、各マスタに単一のキャッシング・レジスタを静的に割り振るというものである。
動的な割り振りスキームについては、追加的なマスタIDフィールドを各キャッシング・レジスタに設けることにより、1つ以上のキャッシング・レジスタを特定のマスタに割り振ることができる。このフィールドは、入来するマスタ要求を諸キャッシング・レジスタと突き合わせる機能の一部として使用することができる。
マスタ要求をセグメント・アービタに経路指定するために使用される突き合わせ機能は、当該アクセスを検証するために使用される突き合わせ機能と同じである必要はない。経路指定するための突き合わせ機能は、より簡単な機構(例えば、アドレス・ビットのサブセット)を使用する。完全なアドレスの突き合わせ及びアクセス権限の検証を並行に行い、その結果を、調停済みの要求をスレーブ装置に送ることを阻止するために使用することができる。この場合、ハードウェア又はソフトウェアは、適正なオペレーションを保証するためにキャッシング・レジスタ・エントリを管理しなければならない。例えば、各エントリは、経路指定のための一意的な一致を生成する。
また、キャッシングレジスタ・ミス(すなわち、入来する要求と完全に一致するキャッシング・レジスタが存在しない)の後に、キャッシング・レジスタをアクセス・テーブルの内容で更新する場合、当該キャッシング・レジスタにセグメント識別情報が追加される。マスタ要求が特定のポートに入来する場合、適切なキャッシング・レジスタからのセグメントIDを使用して、この要求を適切なセグメント・アービタに経路指定する。もし、このマスタ・ポート上に、単一の静的に構成されたキャッシング・レジスタだけが存在すれば、そのキャッシング・レジスタからのセグメントIDを経路指定のために使用する。もし、このマスタ・ポート上に、動的に割り振られた複数のキャッシング・レジスタが存在すれば、経路指定用の突き合わせ機能を使用して、複数のセグメントIDのうちの1つを選択する。
キャッシングレジスタ・ヒット(すなわち、入来する要求と完全に一致するキャッシング・レジスタが存在する)を仮定すると、再マップ・アドレスは、一致するキャッシング・レジスタから直接的に得ることができる。このアドレスは、もはやクロスバー経路指定のためには使用されないが、当該要求がセグメント・アービタによって選択される場合、諸スレーブに直接的に転送することができる。
図5は、キャッシングレジスタ・ヒットが生じる場合の、図4のSOC 300の諸コンポーネントのタイミング図350を示す。具体的には、タイミング・シーケンス350は、組み合わせ式クロスバー兼アクセス・テーブル・ユニット302、スレーブ装置320〜326から見た、複数サイクルの期間にわたるデータ要求通信を示す。
サイクル1中、要求352と同時に、キャッシング・レジスタ312は、検索を遂行し、キャッシング・レジスタ312からのセグメント識別子を使用して、要求352を経路指定する。また、サイクル1中、この要求は、経路指定に依存して、セグメント・アービタ316又は318によるクロスバー調停を獲得する。
サイクル2中に、組み合わせ式クロスバー兼アクセス・テーブル・ユニット302及び該当するスレーブ装置320の両方は、要求の転送354及び356をそれぞれ検知する。サイクル3中に、肯定応答358、360が発行される。留意すべきは、このオペレーションがサイクル3中に達成され、サイクル4中には如何なるプロセスも必要とされないということである。
図5は、マスタ要求が関連するキャッシング・レジスタ・エントリに一致し且つスレーブ・セグメント328のための調停を獲得することを示す。図3と対比すると、図5のタイミング図350は、キャッシングレジスタ・ヒットが生じる場合に、マスタ要求をスレーブに引き渡すことに関連する1サイクルが除去されることを示す。
もし、キャッシング・レジスタ312、314で一致が生じなければ、セグメント調停の結果が、スレーブ装置320〜326に伝播することを阻止しなければならない。同様に、アービタの状態情報の更新も阻止しなければならない。
キャッシングレジスタ・ミスが生じる場合は、アクセス・テーブルの完全な検索を行うことにより、要求中マスタ308のための有効なエントリがアクセス・テーブル306内にあるか否かを決定する。もし、この要求がアクセス・テーブル306の検索を必要とする唯一の要求であれば、アクセス・テーブルの完全な検索を、キャッシング・レジスタの突き合わせと並行に行うことができる。もし、2つ以上の要求がアクセス・テーブル306に同時に入ろうとしているならば、アービタ307を使用して、アクセス・テーブル306への入力を制御するための調停が行われる。アービタ307は、例えば、クロック・サイクルごとにアクセス・テーブル306への新しい要求を受け入れるように設計することができる。
そのように構成される場合、アクセス・テーブル306は、n個(但し、nは1より大きい正の整数)の要求ポートを実装し、アービタ307は、n個の未処理要求を選択することができる。アクセス・テーブル306上のポートの数は、複数の未処理マスタ要求の頻度、追加のポートを加えることによる結果的な性能効果、及びそれらを実装するのに必要とされる追加論理の関数として最適化することができる。アクセス・テーブルへのポートの数は、マスタ要求ポートの数と直接的な関係がない。
一旦、キャッシングレジスタ・ミスを伴う要求がアクセス・テーブル306への入力を獲得し、そしてアクセス・テーブル・ヒットを仮定すると、有効な再マップ・アドレスがこの要求に割り当てられる。その後、その要求は、クロスバー・アドレス経路指定及び適切なセグメント調停を経ることができる。キャッシング・レジスタは、選択されたアクセス・テーブル・エントリ及びセグメントIDを反映するように更新される。セグメントIDは、クロスバー・アドレス経路指定機能ユニット304の出力とすることができる。もし、要求中マスタ308に関連する複数のキャッシング・レジスタが存在し且つその何れも一致しなかったならば、最低使用頻度(LRU)選択プロセスのような標準的な選択スキームを使用して、キャッシング・レジスタ312が更新のために選択される。
図6は、キャッシングレジスタ・ミスが生じる場合の、図4のSOC 300の諸コンポーネントのタイミング図400を示す。図5のキャッシングレジスタ・ヒットのシナリオのように、図6のタイミング図400は、組み合わせ式クロスバー兼アクセス・テーブル・ユニット302及びスレーブ装置320〜326の1つの両方から見たものである。
タイミング図400のプロセスは、アクセス・テーブル306のポートが使用可能であり且つマスタ308からの要求が調停を獲得するも、キャッシングレジスタ・ミスを伴うことを仮定する。要求サイクルの終わりに、再マップ・アドレスが使用可能になり、次のサイクルで、この再マップ・アドレスを使用して当該要求を経路指定すべき適切なセグメントを決定する。この場合、1サイクルのペナルティを被る。もし、アクセス・テーブル306上のポートが直ちに使用可能でなければ、追加のペナルティ・サイクルが生じることがある。
タイミング図400を参照して具体的に説明する。サイクル1中に、組み合わせ式クロスバー兼アクセス・テーブル・ユニット302は、要求402を検知し、それと同時にキャッシング・レジスタ312におけるミスが生じる。組み合わせ式クロスバー兼アクセス・テーブル・ユニット302は、アービタ307及びアクセス・テーブル306を使用して、検索を遂行する。
サイクル2は、要求の転送404を含み、そこではアクセス・テーブル306からの再マップ・アドレスに基づいて、クロスバー・アドレス経路指定が遂行される。
サイクル3は、該当するスレーブ装置320から見た、肯定応答406及び要求の転送408を含む。サイクル4は、肯定応答410を含む。
図7は、本発明の基本原理に従った、クロスバー兼アクセス・テーブル・ユニット550を含む、SOC 500を示す。SOC 500は、 図1のSOC 100内に示されるのと同じ又は同様のコンポーネントの多くを含む。具体的には、図7は、複数の内部機能的マスタ510を有するSOC 500を示す。これらのマスタ510は、プロセッサから成り、プロセッサ・コア及びメモリ管理ユニット(図示せず)を含む。この例では、マスタ510は、共用バスのバス兼アクセス制御ユニット540に接続する。図7には、1つのスレーブ・セグメントだけが示されているが、クロスバー機能は、複数のスレーブ・セグメントの存在を暗示する。
クロスバー兼アクセス・テーブル・ユニット550は、バス兼アクセス制御ユニット540及び多数のスレーブ520の間のデータ要求パス内で調停を行う。データ要求のために使用される前述の経路指定は、当該要求に関連するデータについても使用される。また、図7は、バス制御アーキテクチャの諸信号を簡略的に示す。
1つの実装では、マスタ510からの要求は、その要求アドレス及び関連する制御信号(読み取り又は書き込み等)とともに、バス兼アクセス制御/ブリッジ540に送られる。クロスバー兼アクセス・テーブル・ユニット550は、要求アドレス、マスタID及び読み取り又は書き込み指標を、そのマスタ510に対する許可されたアクセス可能性の定義と比較する。所与の要求は、阻止(終了)されるか、平文で許可されるか、暗号化/暗号化解除ユニット570で許可されることがある。
もし、要求された転送を許可可能であれば、バス信号が、スレーブ520に伝播される。クロスバー兼アクセス・テーブル・ユニット550に基づく、当該要求に関連するアクセス・パラメータ560は、暗号化/暗号化解除が適用可能であれば、暗号化/暗号化解除ユニット570に送られる。暗号化/暗号化解除ユニット570は、関連するアクセス・パラメータ560を使用して、データが所与のスレーブ520に転送されるときに当該データを暗号化/書き込むか、又はデータが所与のスレーブ520から戻されるときに当該データを暗号化解除/読み取る。
バス兼アクセス制御ユニット540は、SOC 500内のスレーブ520への諸要求を調整し且つ統合することを促進する。例えば、第1のスレーブ520は、フラッシュ・メモリのような外部の不揮発性メモリ(図示せず)に接続される、外部バス・コントローラを含む。他のスレーブ520は、DRAMのような外部の揮発性メモリ(図示せず)に接続するメモリ・コントローラを含む。
一般に、諸機能は、メモリ・コストを最小化し且つ諸機能間のデータ転送を促進するために、SOC内の共通メモリ・プールを共有する。このように、全ての内部マスタ510は、不揮発性及び揮発性メモリの両方に対して同等のアクセスを有することができ、また、両者の記憶空間は、データ・アクセスに関する制限が存在しないことを意味するように、オープンであるとラベル付けされる。典型的には、不揮発性メモリは、電力が除去される場合でもデータを保持するための、永続的ストレージとして使用される。このメモリは、ブート・コード、オペレーティング・システム及びドライバのようなオペレーティング・コード及び任意の永続的データ構造を保持する。揮発性メモリは、セッション指向のストレージとして使用され、一般に、アプリケーション・データ及び他のマスタのデータ構造を保持する。揮発性メモリは、不揮発性メモリより速いので、揮発性メモリにオペレーティング・コードを移動させ、統合化された装置が動作可能である場合に、そこから命令を実行するのが一般的である。
SOC 500内の各マスタ510は、バス兼アクセス制御ユニット540に経路指定される要求信号の一部から成る、一意的なマスタ識別子を有する。複数の要求が提示される場合、バス兼アクセス制御ユニット540は、(バス優先順位に基づき)適切なマスタ510を選択し、そのマスタ510に肯定応答を返送する。
ブート・コード(初期化コード)は、マスタID及びアドレス範囲、並びにアクセス・パラメータに基づき、クロスバー兼アクセス・テーブル・ユニット550を含む、ブリッジ540及び許可されるトランザクションを指定する任意の関連するアクセス・レベルを構成することにより、要求をどのように処理すべきかを定義する。ブート・コードは、ソフトウェアの次のレベルに制御を引き渡す前に、アクセス・テーブルをロックすることにより、そこに識別されたアクセス・セキュリティ・レベルをその後に修正できないようにする。
図8は、本発明の基本原理に従った、組み合わせ式クロスバー兼アクセス・テーブル・ユニット302を使用して、マスタ要求を処理することに関係する諸ステップを含むフローチャート600を示す。具体的には、フローチャート600の諸ステップは、キャッシング・レジスタ312、314及びアクセス・テーブル306を使用して、マスタ要求を処理する方法を示す。
フローチャート600を参照して具体的に説明する。先ず、マスタ308からの要求が、ブリッジ301のポート上でアクティブとなる(ブロック602)。次に、組み合わせ式クロスバー兼アクセス・テーブル・ユニット302は、キャッシング・レジスタ312内にアドレス一致が存在するか否かを決定する(ブロック604)。アドレス一致が存在すれば、SOC 300は、アクセス権限を付与すべきか否かを決定する(ブロック606)。そうでなければ、SOC 300は、スレーブ・セグメント328又は329へのオペレーションの伝播を阻止する(ブロック608)。
代替的に、アクセス権限が付与される場合(ブロック606)、SOC 300は、キャッシング・レジスタ312からのセグメント識別子を使用して、当該データ要求を適切なセグメント・アービタ316、318に送る(ブロック610)。調停が獲得される場合(ブロック612)、セグメント・アービタ316又は318は、当該要求をスレーブ・セグメント328又は329に、そして当該セグメントには、再マップ・アドレスが送られる(ブロック614)。
該当するキャッシング・レジスタ312内でアドレス一致を検出することができない場合、アービタ307を使用して、アクセス・テーブル306へのアクセスを調停する(ブロック616)。調停が獲得される場合(ブロック618)、アクセス・テーブル306内でアドレス一致を検出することができるか否かを決定する(ブロック620)。アドレス一致が検出されない場合、オペレーションの伝播が変更される(ブロック608)。
代替的に、アドレス一致が検出される場合(ブロック620)、SOC 300は、アクセス権限を付与すべきか否かを決定する(ブロック622)。アクセス権限が付与されない場合、スレーブ・セグメント328又は329へのオペレーションの伝播が阻止される(ブロック608)。代替的に、アクセス権限が付与される場合(ブロック622)、再マップ・アドレスがクロスバー・アドレス経路指定ユニット304に送られる(ブロック624)。
当該要求は、セグメント・アービタ316又は318に送られる(ブロック626)。適切なキャッシング・レジスタ312が、更新される(ブロック628)。調停が獲得される場合(ブロック612)、セグメント・アービタ316又は318は、当該要求を再マップ・アドレスとともにスレーブ・セグメント328又は329に引き渡す(ブロック614)。
このように、図8は、組み合わせ式クロスバー兼アクセス・テーブル・ユニット302のキャッシング・レジスタ312、314及びアクセス・テーブル306を使用して、マスタ要求を処理する方法のフローチャート600を示す。論理的に順次に行われるものとして示されたフローチャート600の特定のプロセスは、前述のように、並行に実施することができる。例えば、完全なアドレス突き合わせ及びアクセス権限の検証に先行して、マスタ要求をセグメント・アービタに送ることができる。
本発明の諸実施形態は、コンピュータ使用可能な媒体を有する、製品(例えば、1つ以上のコンピュータ・プログラム)に含めることができる。かかる媒体は、その内部に、例えば、本発明の諸機能を提供し且つ促進するためのコンピュータ可読プログラム・コード手段を具体化する。かかる製品は、コンピュータ・システムの一部として含まれるか、又は別個に販売することができる。
本発明の諸側面は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、携帯電話、セット・トップ・ボックス、非ネットワーク式のスタンド・アロンの構成のような、単一のコンピュータ又は他のプログラム可能な電子装置内で実装することができる。
一般に、本発明の諸実施形態を実装するために実行されるルーチンは、オペレーティング・システム又は特定のアプリケーションの一部、コンポーネント、プログラム、モジュール、オブジェクト、モジュール又は命令のシーケンス、或いはそのサブセットとして実装されるか否かに拘わらず、本明細書では、これを「アルゴリズム」、「プログラム・コード」又は単に「プログラム」と称する。プログラム・コードは、典型的には、種々の時点においてコンピュータ内の種々のメモリ及びストレージに存在する1つ以上の命令から成り、そしてこれらの命令は、コンピュータ内の1つ以上のプロセッサによって読み取られ且つ実行されるとき、コンピュータに対し、本発明の種々の側面を具体化した諸ステップ又は諸要素を実行するのに必要な諸ステップを実行させるように作用する。
さらに、本発明は、SOC及びコンピュータ・システムの文脈で説明されたが、本発明の種々の実施形態は、種々の形式を有するプログラムとして配布することができ、そして本発明は、かかる配布を実際に行うために使用されるコンピュータ可読媒体の特定のタイプに拘わらず、同等に適用することができる。コンピュータ可読媒体の例は、有形的で、記録可能な媒体及び伝送媒体を含む。有形的で、記録可能な媒体の例は、揮発性及び不揮発性メモリ装置、フレキシブル及び他の取り外し可能なディスク、ハード・ディスク・ドライブ、磁気テープ及び光ディスク(CD−ROM、DVD等)を含む。伝送媒体の例は、デジタル及びアナログ通信リンクを含む。
また、本明細書中で説明された種々のプログラム・コードは、本発明の特定の実施形態で実装される、アプリケーションに基づいて識別することができる。しかし、本明細書中で使用される特定のプログラム名は、説明の便宜上のものであるに過ぎない。従って、本発明は、かかるプログラム名によって識別され又は暗示される特定のアプリケーションでのみ使用されるものと制限的に解すべきでない。
さらに、コンピュータ・プログラムをルーチン、手順、方法、モジュール、オブジェクト等として編成するための多数の態様が周知であり、しかもプログラム機能性をコンピュータ内に存在する種々のソフトウェア層(例えば、オペレーティング・システム、ライブラリ、API、アプリケーション、アプレット等)の間で割り振るための多数の態様が周知であることを考慮すると、本発明は、本明細書で説明された特定の編成及びプログラム機能性の割り振りに限定されないことが明らかである。
図8のフローチャートは、1例であるに過ぎない。本発明の精神から逸脱することなく、図8又はその諸ステップ(オペレーション)に対し多くの変形を施すことができる。例えば、諸ステップを異なる順序で実施したり、諸ステップを追加、除去又は修正することができる。これらの変形の全ては、本発明の範囲に属するものと考えられる。
本発明は、種々の実施形態の詳細な説明によって開示されているが、そのことは、如何なる意味においても本発明の範囲をかかる詳細事項に限定することを意図するものではない。例えば、1つの実施形態は、アクセス・テーブルをクロスバーに移動することなく、アクセス・テーブルのポートの数を減少させ且つタイミング制約を減少させるために、ブリッジ内にキャッシング・レジスタを含んでいる。従って、本発明は、そのより広い側面において、添付図面に示し且つ以上で説明した特定の詳細事項、代表的な装置及び方法、並びに説明上の具体例に限定されない。従って、本発明の一般的な発明概念の精神から逸脱することなく、かかる詳細事項から逸脱することができる。
300・・・・・・・システム・オン・チップ(SOC)
301・・・・・・・セキュア・ブリッジ
302・・・・・・・組み合わせ式クロスバー兼アクセス・テーブル・ユニット
304・・・・・・・クロスバー・アドレス経路指定ユニット
306・・・・・・・アクセス・テーブル
307・・・・・・・アービタ
308、310・・・マスタ
312、314・・・キャッシング・レジスタ
316、318・・・セグメント・アービタ
320〜326・・・スレーブ
500・・・・・・・システム・オン・チップ(SOC)
510・・・・・・・マスタ
520・・・・・・・スレーブ
540・・・・・・・バス兼アクセス制御ユニット
550・・・・・・・クロスバー兼アクセス・テーブル・ユニット
560・・・・・・・アクセス・パラメータ
570・・・・・・・暗号化/暗号化解除ユニット

Claims (20)

  1. システム・オン・チップ内でデータ要求を経路指定する方法であって、
    経路指定情報を含むキャッシング・レジスタを有するブリッジにおいて、データ要求を受け取るステップと、
    前記データ要求を前記キャッシング・レジスタ内の前記経路指定情報と突き合わせるステップと、
    前記キャッシング・レジスタ内の前記経路指定情報を使用して、前記データ要求を経路指定するステップとを含む、方法。
  2. アクセス・テーブル・ヒットを反映するように、前記キャッシング・レジスタを更新するステップをさらに含む、請求項1記載の方法。
  3. 前記データ要求を経路指定する前に、前記キャッシング・レジスタを使用して、前記データ要求アドレスを置換アドレスに置き換えるステップをさらに含む、請求項1記載の方法。
  4. 前記ブリッジの他のキャッシング・レジスタを使用して、他のデータ要求を他の経路指定情報と同時に突き合わせるステップをさらに含む、請求項1記載の方法。
  5. 前記キャッシング・レジスタを前記ブリッジのクロスバー・スイッチ内に配置するステップをさらに含む、請求項1記載の方法。
  6. アクセス・テーブルを前記ブリッジのクロスバー・スイッチ内に配置するステップをさらに含む、請求項1記載の方法。
  7. 前記ブリッジのポートごとに少なくとも1つのキャッシング・レジスタを含むように、前記ブリッジを構成するステップをさらに含む、請求項1記載の方法。
  8. 前記経路指定を促進するために、前記キャッシング・レジスタ内にセグメント識別子を格納するステップをさらに含む、請求項1記載の方法。
  9. 前記キャッシング・レジスタ内のマスタによって最近に使用されたアクセス・テーブルのデータを格納するステップをさらに含む、請求項1記載の方法。
  10. 前記キャッシング・レジスタ内に一致が存在しない場合は、アクセス・テーブル検索を使用して、他のデータ要求を突き合わせるステップをさらに含む、請求項1記載の方法。
  11. 前記経路指定するステップが、データ要求中に1度だけクロスバーを経路指定するステップをさらに含む、請求項1記載の方法。
  12. 前記データ要求に関連するセキュリティ権限を決定するステップをさらに含む、請求項1記載の方法。
  13. 前記キャッシング・レジスタ内のタグを使用して、前記データ要求を突き合わせるステップをさらに含む、請求項1記載の方法。
  14. 機能的なマスタ・コンポーネントと、
    機能的なスレーブ・セグメント・コンポーネントと、
    キャッシング・レジスタを有し且つ前記機能的なマスタ・コンポーネント及びスレーブ・セグメント・コンポーネントの両方と通信関係にあるブリッジとを備え、
    前記ブリッジが、前記機能的なマスタ・コンポーネントからデータ要求を受け取り、前記キャッシング・レジスタを使用して前記データ要求を前記機能的なスレーブ・セグメント・コンポーネントに関連する経路指定情報と突き合わせ、前記キャッシング・レジスタ内の経路指定情報を使用して前記データ要求を前記機能的なスレーブ・セグメント・コンポーネントへ経路指定するように構成される、装置。
  15. 前記キャッシング・レジスタが、アクセス・テーブル・ヒットを反映するように更新される、請求項14記載の装置。
  16. 前記データ要求を経路指定する前に、前記データ要求アドレスが、置換アドレスに置き換えられる、請求項14記載の装置。
  17. 前記キャッシング・レジスタを含むクロスバー・スイッチをさらに備える、請求項14記載の装置。
  18. 前記ブリッジが、アクセス・テーブル及びクロスバー・ルータの少なくとも1つをさらに含む、請求項14記載の装置。
  19. 前記ブリッジが、前記キャッシング・レジスタにおけるミスに応答して、前記アクセス・テーブルを使用する、請求項18記載の装置。
  20. 請求項1ないし請求項13の何れか1項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
JP2009148910A 2008-07-02 2009-06-23 システム・オン・チップ内でデータ要求を経路指定する方法、装置及びコンピュータ・プログラム Pending JP2010015560A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/166,571 US7934046B2 (en) 2008-07-02 2008-07-02 Access table lookup for bus bridge

Publications (1)

Publication Number Publication Date
JP2010015560A true JP2010015560A (ja) 2010-01-21

Family

ID=41465212

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009148910A Pending JP2010015560A (ja) 2008-07-02 2009-06-23 システム・オン・チップ内でデータ要求を経路指定する方法、装置及びコンピュータ・プログラム

Country Status (4)

Country Link
US (1) US7934046B2 (ja)
JP (1) JP2010015560A (ja)
KR (1) KR20100004048A (ja)
TW (1) TW201015337A (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797476B2 (en) * 2008-09-19 2010-09-14 Texas Instruments Incorporated Flexible connection scheme between multiple masters and slaves
US9444757B2 (en) 2009-04-27 2016-09-13 Intel Corporation Dynamic configuration of processing modules in a network communications processor architecture
US9461930B2 (en) 2009-04-27 2016-10-04 Intel Corporation Modifying data streams without reordering in a multi-thread, multi-flow network processor
US8489791B2 (en) * 2010-03-12 2013-07-16 Lsi Corporation Processor bus bridge security feature for network processors or the like
US8949500B2 (en) 2011-08-08 2015-02-03 Lsi Corporation Non-blocking processor bus bridge for network processors or the like
US8380904B2 (en) * 2010-03-09 2013-02-19 Qualcomm Incorporated Interconnect coupled to master device via at least two different bidirectional connections
KR101781617B1 (ko) * 2010-04-28 2017-09-25 삼성전자주식회사 통합 입출력 메모리 관리 유닛을 포함하는 시스템 온 칩
KR20120037785A (ko) * 2010-10-12 2012-04-20 삼성전자주식회사 부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법
US8527684B2 (en) * 2010-11-12 2013-09-03 Lsi Corporation Closed loop dynamic interconnect bus allocation method and architecture for a multi layer SoC
KR101841173B1 (ko) * 2010-12-17 2018-03-23 삼성전자주식회사 리오더 버퍼를 이용한 메모리 인터리빙 장치 및 그 메모리 인터리빙 방법
US8595366B2 (en) 2011-05-05 2013-11-26 Qualcomm Incorporated Method and system for dynamically creating and servicing master-slave pairs within and across switch fabrics of a portable computing device
GB2511975B (en) * 2011-12-21 2021-02-03 Intel Corp Incorporating access control functionality into a system on a chip (SoC)
CA2892512A1 (en) 2012-11-28 2014-06-05 Renewable Edge, Llc Custom wireless retrofitted solar powered public telephone
CN104899175A (zh) * 2014-03-04 2015-09-09 深圳市中兴微电子技术有限公司 一种基于片内总线协议的安全访问控制方法和装置
EP2983088A1 (en) * 2014-08-06 2016-02-10 Airbus Defence and Space GmbH Memory protection unit
US10180908B2 (en) * 2015-05-13 2019-01-15 Qualcomm Incorporated Method and apparatus for virtualized control of a shared system cache
DE102016222691A1 (de) * 2015-12-15 2017-06-22 Continental Teves Ag & Co. Ohg Mikrocontrollersystem und Verfahren zur Kontrolle von Speicherzugriffen in einem Mikrocontrollersystem
CN113495860B (zh) * 2020-03-20 2024-04-19 合肥杰发科技有限公司 Soc设备的数据传输方法、soc设备及具有存储功能的装置
EP4092556A1 (en) * 2021-05-20 2022-11-23 Nordic Semiconductor ASA Bus decoder
CN115314438B (zh) * 2022-10-09 2023-01-13 中科声龙科技发展(北京)有限公司 芯片的地址重构方法、装置以及电子设备、存储介质
CN115344515B (zh) * 2022-10-17 2022-12-27 中科声龙科技发展(北京)有限公司 实现访问控制的方法、片上计算系统及芯片
CN116521095B (zh) * 2023-07-03 2023-09-08 摩尔线程智能科技(北京)有限责任公司 响应输出系统、方法、电子设备、存储介质及程序产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11296473A (ja) * 1998-04-15 1999-10-29 Nec Corp データ幅可変型クロスバスイッチ装置及びその接続方法並びにその制御プログラムを記録した記録媒体
US6230241B1 (en) * 1998-09-09 2001-05-08 Cisco Technology, Inc. Apparatus and method for transferring data in a data communications device
JP2005523519A (ja) * 2002-04-18 2005-08-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 要求元マスタidおよびデータ・アドレスを用いて統合システム内でのデータ・アクセスを限定する制御機能

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4490782A (en) * 1981-06-05 1984-12-25 International Business Machines Corporation I/O Storage controller cache system with prefetch determined by requested record's position within data block
US6601126B1 (en) * 2000-01-20 2003-07-29 Palmchip Corporation Chip-core framework for systems-on-a-chip
US6769046B2 (en) * 2000-02-14 2004-07-27 Palmchip Corporation System-resource router
EP1358563A1 (en) * 2001-01-31 2003-11-05 International Business Machines Corporation Method and apparatus for controlling flow of data between data processing systems via a memory
US7076595B1 (en) * 2001-05-18 2006-07-11 Xilinx, Inc. Programmable logic device including programmable interface core and central processing unit
US7145903B2 (en) * 2001-09-06 2006-12-05 Meshnetworks, Inc. Multi-master bus architecture for system-on-chip designs
US7089419B2 (en) * 2002-04-18 2006-08-08 International Business Machines Corporation Control function with multiple security states for facilitating secure operation of an integrated system
US7107365B1 (en) * 2002-06-25 2006-09-12 Cypress Semiconductor Corp. Early detection and grant, an arbitration scheme for single transfers on AMBA advanced high-performance bus
US7139860B2 (en) * 2002-07-29 2006-11-21 Freescale Semiconductor Inc. On chip network with independent logical and physical layers
US7380018B2 (en) * 2003-05-15 2008-05-27 Broadcom Corporation Peripheral bus transaction routing using primary and node ID routing information
US6981074B2 (en) * 2003-10-14 2005-12-27 Broadcom Corporation Descriptor-based load balancing
US7240141B2 (en) * 2004-04-09 2007-07-03 Broadcom Corporation Programmable inter-virtual channel and intra-virtual channel instructions issuing rules for an I/O bus of a system-on-a-chip processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11296473A (ja) * 1998-04-15 1999-10-29 Nec Corp データ幅可変型クロスバスイッチ装置及びその接続方法並びにその制御プログラムを記録した記録媒体
US6230241B1 (en) * 1998-09-09 2001-05-08 Cisco Technology, Inc. Apparatus and method for transferring data in a data communications device
JP2005523519A (ja) * 2002-04-18 2005-08-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 要求元マスタidおよびデータ・アドレスを用いて統合システム内でのデータ・アクセスを限定する制御機能

Also Published As

Publication number Publication date
KR20100004048A (ko) 2010-01-12
US20100005213A1 (en) 2010-01-07
US7934046B2 (en) 2011-04-26
TW201015337A (en) 2010-04-16

Similar Documents

Publication Publication Date Title
JP2010015560A (ja) システム・オン・チップ内でデータ要求を経路指定する方法、装置及びコンピュータ・プログラム
JP6916751B2 (ja) ハイブリッドメモリーモジュール及びその動作方法
US7958298B2 (en) System and method for providing address decode and virtual function (VF) migration support in a peripheral component interconnect express (PCIE) multi-root input/output virtualization (IOV) environment
JP6381541B2 (ja) データ処理システム中で命令を処理する方法、回路構成、集積回路デバイス、プログラム製品(リモート処理ノード中のアドレス変換データ構造を更新するための変換管理命令)
US7093079B2 (en) Snoop filter bypass
KR101403233B1 (ko) 정보 처리 장치 및 부정 액세스 방지 방법
US9239791B2 (en) Cache swizzle with inline transposition
US20070050641A1 (en) Cryptography methods and apparatus
JP2008009982A (ja) メモリ・アドレスの変換およびピン止めのための方法およびシステム
WO2010035425A1 (ja) キャッシュメモリ、メモリシステム及びその制御方法
JP4945053B2 (ja) 半導体装置、バスインターフェース装置、およびコンピュータシステム
JP2006331426A (ja) データ処理装置用相互接続論理
KR20230150804A (ko) 메모리 타일을 갖는 데이터 처리 엔진 어레이 아키텍처
US7916720B2 (en) Slave network interface circuit for improving parallelism of on-chip network and system thereof
US11693777B2 (en) Network interface device supporting multiple interface instances to a common bus
US20050165783A1 (en) Secure direct memory access through system controllers and similar hardware devices
US20190384725A1 (en) Method, apparatus, and system for storing memory encryption realm key ids
GB2493340A (en) Address mapping of boot transactions between dies in a system in package
US9804959B2 (en) In-flight packet processing
US20010037426A1 (en) Interrupt handling via a proxy processor
US7181575B2 (en) Instruction cache using single-ported memories
US8010802B2 (en) Cryptographic device having session memory bus
US11681642B2 (en) Processing device comprising control bus
US8327070B2 (en) Method for optimizing sequential data fetches in a computer system
JP2008102759A (ja) メモリアクセス制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131114

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140107