(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-25
(54)【発明の名称】アドレス変換サービスバッファ
(51)【国際特許分類】
G06F 12/1027 20160101AFI20240118BHJP
G06F 13/28 20060101ALI20240118BHJP
【FI】
G06F12/1027
G06F12/1027 100
G06F13/28 310M
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023537303
(86)(22)【出願日】2021-12-14
(85)【翻訳文提出日】2023-07-31
(86)【国際出願番号】 IB2021061723
(87)【国際公開番号】W WO2022144660
(87)【国際公開日】2022-07-07
(32)【優先日】2020-12-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】508301087
【氏名又は名称】エーティーアイ・テクノロジーズ・ユーエルシー
【氏名又は名称原語表記】ATI TECHNOLOGIES ULC
【住所又は居所原語表記】One Commerce Valley Drive East, Markham, Ontario, L3T 7X6 Canada
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】フィリップ ン
(72)【発明者】
【氏名】ビナイ パテル
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205KK16
5B205MM51
5B205PP21
5B205RR01
(57)【要約】
PCIe(Peripheral Component Interface Express)ATS(Address Translation Services)プロトコルをPCIe準拠デバイス内でエミュレート又は実装するために、アドレス変換バッファ、すなわちATBが提供される。ATBは、アドレス変換キャッシュ(ATC)の代わりに(又はそれに加えて)動作するが、永続的なハードウェアキャッシュ(例えば、キャッシュ制御及びルックアップ用の回路)に関連するロバストなリソースセットを必要とせずに、ファームウェア又はハードウェアで実装される。デバイスのコンポーネント(例えば、DMAエンジン)は、例えば、ホスト入出力メモリ管理ユニットを介して、未変換アドレスの変換を要求し、応答(変換済みアドレスを含む)は、単一のDMA動作(PCIeバスにわたる複数のトランザクションを伴い得る)に使用するためにATBに記憶される。
【選択図】
図2
【特許請求の範囲】
【請求項1】
電子デバイスであって、
ダイレクトメモリアクセス(DMA)エンジンと、
アドレス変換バッファと、を備え、
前記DMAエンジンは、
未変換アドレスに関する変換要求をホストコンピュータシステムに発行することと、
前記未変換アドレスに対応する変換済みアドレスを含むアドレス変換を受信することと、
を行うように構成されており、
前記アドレス変換バッファは、
前記アドレス変換を記憶するように構成されている、
電子デバイス。
【請求項2】
前記DMAエンジンは、
前記アドレス変換バッファから前記アドレス変換を削除することと、
前記変換済みアドレスを使用してDMA動作を開始することと、
を行うように構成されている、
請求項1の電子デバイス。
【請求項3】
前記DMAエンジンは、
前記変換要求を発行し、前記アドレス変換を受信するように構成された変換コンポーネントと、
前記DMA動作を開始するように構成されたDMAコンポーネントと、を備える、
請求項1の電子デバイス。
【請求項4】
前記DMAエンジンは、前記アドレス変換バッファを備える、
請求項1の電子デバイス。
【請求項5】
前記アドレス変換バッファは、先入れ先出しキューとして実装されている、
請求項1の電子デバイス。
【請求項6】
前記アドレス変換バッファは、コンテンツ連想メモリとして実装されている、
請求項1の電子デバイス。
【請求項7】
前記アドレス変換は、使用時に前記バッファからパージされる、
請求項1の電子デバイス。
【請求項8】
前記DMAエンジンは、
前記ホストコンピュータシステムから無効化要求を受信することと、
前記バッファに記憶されたアドレス変換のスナップショットを生成することと、
スナップショットが生成された前記アドレス変換を前記バッファからフラッシュすることと、
を行うように構成されている、
請求項1の電子デバイス。
【請求項9】
前記DMAエンジンは、
前記ホストコンピュータシステムから無効化要求を受信することであって、前記無効化要求は1つ以上のターゲットアドレスを識別する、ことと、
前記1つ以上のターゲットアドレスに一致する、前記バッファに記憶されたアドレス変換を識別することと、
識別された全てのアドレス変換が前記バッファから削除されるまで、前記バッファからアドレス変換をフラッシュすることと、
を行うように構成されている、
請求項1の電子デバイス。
【請求項10】
電子デバイス内でアドレス変換をバッファリングする方法であって、
未変換アドレスを受信することと、
前記未変換アドレスを変換する要求をホストコンピュータシステムにディスパッチすることと、
前記未変換アドレスに対応する変換済みアドレスを含むアドレス変換を前記ホストコンピュータシステムから受信することと、
前記アドレス変換をバッファに記憶することと、を含む、
方法。
【請求項11】
前記バッファから前記アドレス変換を削除することと、
前記アドレス変換を前記電子デバイスに存在するプロセッサに配信することと、
前記変換済みアドレスを使用してダイレクトメモリアクセス動作を開始することと、を含む、
請求項10の方法。
【請求項12】
前記バッファは、先入れ先出しキューとして実装されている、
請求項10の方法。
【請求項13】
前記ホストコンピュータシステムから無効化要求を受信することと、
前記バッファに記憶されたアドレス変換のスナップショットを生成することと、
スナップショットが生成された前記アドレス変換を前記バッファからフラッシュすることと、を含む、
請求項10の方法。
【請求項14】
前記ホストコンピュータシステムから無効化要求を受信することであって、前記無効化要求は1つ以上のターゲットアドレスを識別する、ことと、
前記1つ以上のターゲットアドレスに一致する、前記バッファに記憶されたアドレス変換を識別することと、
識別された全てのアドレス変換が前記バッファから削除されるまで、前記バッファからアドレス変換をフラッシュすることと、を含む、
請求項10の方法。
【請求項15】
命令を記憶するコンピュータ可読記憶媒体であって、
前記命令は、プロセッサによって実行されると、電子デバイス内でアドレス変換をバッファリングさせる方法を前記プロセッサに実行させ、
前記方法は、
未変換アドレスを受信することと、
前記未変換アドレスを変換する要求をホストコンピュータシステムにディスパッチすることと、
前記未変換アドレスに対応する変換済みアドレスを含むアドレス変換を前記ホストコンピュータシステムから受信することと、
前記アドレス変換をバッファに記憶することと、を含む、
コンピュータ可読記憶媒体。
【請求項16】
前記方法は、
前記バッファから前記アドレス変換を削除することと、
前記アドレス変換を前記電子デバイスに存在するプロセッサに配信することと、
前記変換済みアドレスを使用してダイレクトメモリアクセス動作を開始することと、を含む、
請求項15のコンピュータ可読記憶媒体。
【請求項17】
前記バッファは、先入れ先出しキューとして実装されている、
請求項15のコンピュータ可読記憶媒体。
【請求項18】
前記アドレス変換は、使用時に前記バッファからパージされる、
請求項15のコンピュータ可読記憶媒体。
【請求項19】
前記方法は、
前記ホストコンピュータシステムから無効化要求を受信することと、
前記バッファに記憶されたアドレス変換のスナップショットを生成することと、
スナップショットが生成された前記アドレス変換を前記バッファからフラッシュすることと、を含む、
請求項15のコンピュータ可読記憶媒体。
【請求項20】
前記方法は、
前記ホストコンピュータシステムから無効化要求を受信することであって、前記無効化要求は1つ以上のターゲットアドレスを識別する、ことと、
前記1つ以上のターゲットアドレスに一致する、前記バッファに記憶されたアドレス変換を識別することと、
識別された全てのアドレス変換が前記バッファから削除されるまで、前記バッファからアドレス変換をフラッシュすることと、を含む、
請求項15のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
PCIe(Peripheral Component Interface Express)ファブリック内で動作する電子デバイスは、未変換(仮想)アドレスと変換済み(物理)アドレスとの変換を容易にするために、PCIe ATS(Address Translation Services)プロトコルを実装し得る。これらのデバイスは、通常、再利用のために変換をキャッシュするハードウェアATC(アドレス変換キャッシュ)を含む。
【0002】
しかしながら、ハードウェアキャッシュは、キャッシュを制御し、ルックアップを実行し、及び/又は、他の動作をサポートするための専用メモリ及び対応する回路を必要とする。例えば、キャッシュ(又はキャッシュ用のプロセッサ若しくはコントローラ)が無効化要求を受信すると、キャッシュでは、一致するエントリが検索され、適切なアクションが実行される必要がある。したがって、ハードウェアキャッシュを実装し、サポートすることは、他の目的のために使用され得るリソースを必要とする。更に、キャッシュされた変換の相当な割合が、無効化されるか又はキャッシュから追い出される前に1回しか使用されない場合等のように、環境によっては、ATCは非効率的であり得る。
【図面の簡単な説明】
【0003】
【
図1】いくつかの実施形態による、アドレス変換バッファを実装する電子デバイスのブロック図である。
【
図2】いくつかの実施形態による、アドレス変換バッファを使用する方法を示すフロー図である。
【
図3A】いくつかの実施形態による、電子デバイス内でアドレス変換バッファに対する無効化要求を処理するための代替プロセスを示すフロー図である。
【
図3B】いくつかの実施形態による、電子デバイス内でアドレス変換バッファに対する無効化要求を処理するための代替プロセスを示すフロー図である。
【発明を実施するための形態】
【0004】
以下の記載は、任意の当業者が開示された実施形態を実現し、使用することを可能にするために提示され、1つ以上の特定の用途及びそれらの要件のコンテキストにおいて提供される。開示される実施形態に対する様々な変更は、当業者には容易に明らかであり、本明細書に記載の一般原理は、開示されるものの範囲から逸脱することなく、他の実施形態及び用途に適用され得る。したがって、本発明は、示される実施形態に限定されることを意図するものではなく、むしろ、本開示と一致する最も広い範囲が認められるべきである。
【0005】
(アドレス変換バッファ)
いくつかの実施形態では、アドレス変換バッファ(ATB)は、PCIe(Peripheral Component Interface Express)ファブリックの一部として動作するデバイス内で、PCIe ATS(Address Translation Services)プロトコルに従ってアドレス変換を容易にするために提供される。これらの実施形態では、ATBは、専用ハードウェアリソース及び従来のアドレス変換キャッシュ(ATC)に関連する複雑さを必要とせず、ATCと比較して同等以上の性能を可能にしつつも、より低いコスト及びより少ないシリコン面積を有し得る構成である。ATBはファームウェアで実装され得る。この場合、ATBは専用ハードウェアリソースを全く必要としないか、又は、ATCによって必要とされるリソースフットプリントなしにハードウェアで実装され得る。
【0006】
ATBは、例示的に、先入れ先出し(FIFO)キューを実装するリングバッファであり得るが、他の形態又は形式が用いられ得る。例えば、1つの代替例として、ATBは、コンテンツ連想メモリ又はキューとして実装され得る。この代替的な実装形態は、エントリ(すなわち、アドレス変換)が未変換アドレスを使用して検索可能であるために、アドレス変換が(それぞれの変換要求の順序に関して)順不同で受信され、並べ替えられない環境に特に適している。
【0007】
ATBを用いるデバイスの本質は、未変換アドレス(UTA)と変換済みアドレス(TA)との変換を要求するタイプであること以外は限定されない。例えば、デバイスは、デバイスとホストコンピュータシステムとの間、ホストシステム内の記憶場所の間、ホストシステム上で実行する仮想マシン間、仮想マシンとハイパーバイザとの間、異なる処理スレッド間、スレッドと別のエンティティとの間等でデータを移動させるように機能し得る。したがって、いくつかの例示的な実施形態では、デバイスは、データコントローラ、ネットワークインターフェース、記憶(例えば、ディスク、SSD)コントローラ、圧縮エンジン、グラフィックコントローラ、暗号化コントローラ等であり得るか、これらを含み得る。
【0008】
図1は、本明細書に記載の1つ以上の実施形態による、アドレス変換バッファを実装する電子デバイスのブロック図である。
【0009】
これらの実施形態では、デバイス100は、PCIeバス150及び/又は他のパスを介して様々なリソースをデバイスにアクセス可能にするホストシステム内で、又は、ホストシステムとともに動作する。ホストリソースは、中央処理装置(CPU)、入出力メモリ管理ユニット(IOMMU)、一次及び/又は二次記憶装置、通信コントローラ(例えば、ネットワーク、USB)、グラフィックコントローラ等を含み得る。
【0010】
デバイス100は、1つ以上のプロセッサ又はマイクロコントローラ102(例えば、プロセッサ102A~102N)、バス104、及び、DMA(ダイレクトメモリアクセス)エンジン110を特徴とする。他のデバイスコンポーネント及びインターフェースは、明確にするために省略されている。DMAエンジン110は、ローカルレジスタ112と、アドレス変換バッファ(ATB)114と、を含む。DMAエンジンは、プロセッサ102のうち1つ以上によって実行される命令に従って動作する。
【0011】
デバイス100の動作中、プロセッサ102は、DMA動作を可能にするために(又は何らかの他の理由で)、1つ以上の未変換(例えば、仮想)アドレスのセットを変換するようにDMAエンジン110に命令する。それに応じて、DMAエンジン110は、PCIeバス150を介してホストIOMMUに対して1つ以上の対応する変換要求を発行し、対応する変換済み(例えば、物理)アドレスを含む1つ以上の応答を受信し、応答をATB114に記憶する。アドレス変換バッファは、異なる実装形態では異なる数(例えば、64、128、256)のアドレス変換応答を記憶するように構成され得る。バッファリングされた応答は、識別子(例えば、ジョブID)、未変換アドレス、変換済みアドレス、及び/又は、他の情報によって識別され得る。
【0012】
やがて、プロセッサは、バッファリングされた応答を受信するか又は取り出し、対応するI/O(例えば、メモリの読み書き)を開始するために、又は、何らかの他の目的でその応答を使用し得る。プロセッサによってATBから応答を受信すると、応答は、関連するメモリアクセスを開始する又は実行するために使用される前に、プロセッサキャッシュ又はプロセッサ用の他の一時記憶装置(例えば、スタティックランダムアクセスメモリ、すなわちSRAM)に一時的に記憶され得る。
【0013】
いくつかの実施形態では、DMAエンジン110の機能は、複数の個別のコンポーネント間で分割され得る。例えば、1つのコンポーネント(例えば、変換コンポーネント)は、アドレス変換要求を発行し、応答をATBに記憶し、次に、各応答をプロセッサ及び/又は第2のコンポーネントに配信することを担い得る。第2のコンポーネント(例えば、DMAコンポーネント)は、応答を使用してデータ転送又はコピーを実行することを担い得る。これらの実施形態では、ATB114は、両コンポーネントにまたがると考えられ得る。
【0014】
ローカルレジスタ112は、ATSのエミュレーション又は実装をサポートするために、PCIeバス150を介してホストシステムに対して送受信される信号及びメッセージを一時的に記憶する。
図1ではアドレス変換バッファ114とは別に示されているが、いくつかの実施形態では、ローカルレジスタ112はATB114を包含し得る。
【0015】
ATB114は、複数のクロックドメインにまたがり得る。例えば、プロセッサ102は、第1のクロックドメイン内で動作し、DMAエンジン110の一部又は全部(例えば、DMAエンジンとPCIeバス150との間のインターフェース)は、第2のドメイン内で動作する。
【0016】
いくつかの実装形態又は状況では、アドレス変換要求に対する応答は、バッファリングされる代わりに、何らかの方法で直ちに使用され得るか又は消費され得ることに留意されたい。例えば、新たに受信した応答をATBに記憶する代わりに、応答は最初にデバイスプロセッサ102に配信され得る。プロセッサは、ATBに応答を記憶することなく(例えば、DMAエンジン110を介してI/O動作を開始するために)応答を使用してよいか、検査後に記憶するためにATBに応答を中継してよいか、又は、更なる処理の前に(例えば、プロセッサキャッシュ又はスタティックRAMに)応答を一時的に記憶してよい。
【0017】
1つ以上の実施形態では、デバイス100は、ATB114に加えて、
図1には示されていないアドレス変換キャッシュ(ATC)を含み得る。これらの実施形態では、再利用の可能性が高いアドレス変換応答はATCに記憶され、再利用の可能性が低い応答はATBに記憶され得る。
【0018】
図2は、本明細書に記載の1つ以上の実施形態による、アドレス変換バッファを使用するためのプロセスを示すフロー図である。
【0019】
図示したプロセスは、ホストシステムプロセッサ及び/又はデバイス上に存在するプロセッサ若しくはコントローラによる、電子デバイスのDMAエンジンのプログラミングから始まる(ステップ200)。プログラミングステップは、デバイスドライバをロードすること、アドレス変換バッファをインスタンス化及び/又は構成すること、DMAエンジンのローカルレジスタを初期化すること等を含み得る。
【0020】
次いで、所望のDMA動作を識別する(ステップ202)。これは、場合によっては、未変換アドレスを含むデバイスプロセッサによって行われる。単一のDMA動作は、最終的には、デバイスのPCIeバスを介したデータの複数の移動を必要とし得る。具体的には、ターゲットDMA動作は、単一のバストランザクションで対応され得るよりも多くの量のデータを転送することを含み得る。したがって、デバイスプロセッサは転送を単一の動作と見なし得るが、DMAエンジンは、1つの変換済みアドレスを使用していくつかのトランザクションを実行しなければならない場合がある(個別のバストランザクションの実行時に適切に増分される)。
【0021】
DMAエンジンは、ホストシステム(例えば、ホストIOMMU)に対して1つ以上の対応する変換要求を同時に発行する(ステップ204)。単一のDMA動作が複数のアドレス変換を必要とする場合があることに留意されたい。例えば、マルチページデータ転送は、ページごとに別々の変換を必要とする場合がある。
【0022】
その後、未変換アドレスに関連する変換済みアドレスを含む応答を受信し、変換要求ごとにATBに記憶する(ステップ206)。変換済みアドレスに加えて、応答は、変換応答を対応する変換要求に一致させる目的で及び/又は他の目的で、変換済みアドレスとともにATBに記憶される関連メタデータを含み得る。そのようなメタデータは、例示的に、識別子又はタグ、未変換アドレス、タイムスタンプ等を含み得る。
【0023】
将来のある時点で、ATBから読み取った1つ以上の変換済みアドレスを用いて、応答に対応するDMA動作を実行する(ステップ208)。例えば、応答は、応答内の変換済みアドレス及び/又は他の情報を使用して、メモリの読み書き又は何らかの他の動作を実行するようにDMAエンジンに命令するプロセッサに転送され得る。DMA動作の完了後、対応するアドレス変換をATBからパージし(ステップ210)、図示した方法は終了する。
【0024】
図3A~
図3Bは、本明細書に記載の1つ以上の実施形態による、アドレス変換バッファを実装する電子デバイス内で無効化要求を処理するための代替プロセスを示すフロー図である。
図3Aに示されるプロセスは、概して、
図3Bに示されるプロセスと比較して少ない処理オーバーヘッドを必要とするが、動作環境に応じてより長い時間がかかる場合がある。例えば、無効化要求に一致する、バッファリングされた変換要求が存在しない場合、
図3Bに示されるプロセスは、無効化要求に対するより早い応答を可能にし得る。
【0025】
図3Aのプロセスは、電子デバイス内のDMAエンジンにおいて無効化要求を受信することから始まる。この要求は、無効化されるメモリアドレスを指定する(ステップ300)。これに応じて、DMAエンジンのATBのコンテンツのスナップショットを生成する(ステップ302)。スナップショットは、無効化要求よりも前に記憶された全てのATBエントリ/応答を記憶する。
【0026】
次いで、デバイスは、バッファの先頭にあるアドレス変換応答を削除し(ステップ304)、1つ以上のメモリアクセス及び/又は他の関連するアクションを実行するために応答を処理し(ステップ306)、スナップショットを生成した全ての応答がATBからフラッシュされたかどうかを判定する(ステップ308)ことによって、スナップショットを生成したバッファのコンテンツをフラッシュする。ステップ304~308は、必要に応じて繰り返され得る。
【0027】
無効化要求の受信時にバッファリングされた全てのアドレス変換応答を処理し、アドレス変換を伴う関連するDMA動作が完了すると、デバイスは無効化要求に応答する(ステップ310)。スナップショットを生成した応答の何れもが無効化要求において指定されたアドレスを含んでいなくてよい、又は、その一部又は全てが無効化要求において指定されたアドレスを含んでよいことに留意されたい。ステップ310の後、
図3Aのプロセスは完了する。
【0028】
図3Bのプロセスは、電子デバイス内のDMAエンジンにおいて無効化要求を受信することから始まる(ステップ350)。この要求を検査して、無効化されるメモリアドレスを識別する(ステップ352)。
【0029】
これらの実施形態では、ATBに記憶されたアドレス変換応答は、ホストIOMMU(又は他のホストコンポーネント)にディスパッチされた、対応するアドレス変換要求に含まれる未変換アドレス及び変換済みアドレスの両方、並びに/又は、アドレス変換応答を対応する変換要求と一致させるための他のデータ若しくはメタデータを含み得る。
【0030】
ターゲットアドレスの識別後、ATBをスキャンして、無効化要求に一致する全てのエントリ(アドレス変換応答)を識別する(ステップ354)。識別したエントリ(存在する場合)のスナップショットを生成する(ステップ356)。
【0031】
スナップショットを生成した全てのエントリを処理する(ステップ358)まで、ATBの先頭に存在するアドレス変換応答を削除し、メモリアクセス及び/又は他の関連するアクションを実行するように処理する(ステップ360)。その後、プロセスはステップ358に戻る。スナップショットを生成した全てのエントリを処理すると、デバイスは無効化要求に応答する(ステップ362)。無効化要求に一致するATBエントリが存在しない場合、ステップ360が実行されることがないことに留意されたい。この場合、ステップ356において応答のスナップショットは生成されない。すなわち、ステップ356又は358の直後にステップ362が続くことを意味する。
【0032】
いくつかの実施形態では、少なくとも1つの電子デバイス(例えば、電子デバイス100)が、非一時的なコンピュータ可読記憶媒体に記憶されたコード及び/又はデータを使用して、本明細書に記載の動作の一部又は全てを実行する。より詳細には、少なくとも1つの電子デバイスは、コンピュータ可読記憶媒体からコード及び/又はデータを読み取り、記載の動作を実行する場合にコードを実行し及び/又はデータを使用する。コンピュータ可読記憶媒体は、電子デバイスによって使用されるコード及び/又はデータを記憶する任意のデバイス、媒体又はそれらの組み合わせであり得る。例えば、コンピュータ可読記憶媒体は、フラッシュメモリ、ランダムアクセスメモリ(例えば、eDRAM、RAM、SRAM、DRAM、DDR4 SDRAM等)、不揮発性RAM(例えば、位相変化メモリ、強誘電性ランダムアクセスメモリ、スピントランスファーランダムアクセスメモリ、磁気抵抗ランダムアクセスメモリ等)、読み取り専用メモリ(ROM)、及び/又は、磁気若しくは光記憶媒体(例えば、ディスクドライブ、磁気テープ、CD、DVD等)を含み得るが、これらに限定されない。
【0033】
いくつかの実施形態では、1つ以上のハードウェアモジュールが、本明細書に記載の動作を実行する。例えば、ハードウェアモジュールは、1つ以上の中央処理ユニット(CPU)/CPUコア、グラフィック処理ユニット(GPU)/GPUコア、特定用途向け集積回路(ASIC)チップ、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、コンプレッサ又はエンコーダ、計算ユニット、埋め込みプロセッサ、加速処理ユニット(accelerated processing unit、APU)、コントローラ、及び/又は、他の機能ブロックを含むことができるが、これらに限定されない。そのようなハードウェアモジュール内の回路構成(例えば、集積回路素子、ディスクリート回路素子等)がアクティブ化されると、回路構成は、動作の一部又は全部を実行する。幾つかの実施形態において、ハードウェアモジュールは、命令(例えば、プログラムコード、ファームウェア等)の実行時に動作を実行する実行パイプライン、計算又は処理ユニット等の汎用回路を含む。いくつかの実施形態では、ハードウェアモジュールは、動作を実行する特定用途向け又は専用の回路構成を含み、場合によっては、命令を実行することなく「ハードウェア内の」動作の一部又は全部を実行する回路構成を含む。
【0034】
いくつかの実施形態では、本明細書に記載の機能ブロック及び回路素子(例えば、電子デバイス100、プロセッサ102、DMAエンジン110)の一部又は全てを表すデータ構造は、電子デバイスによって読み取られ、機能ブロック及び回路素子を含むハードウェアを加工するための直接的又は間接的に使用され得るデータベース又は他のデータ構造を含む非一時的なコンピュータ可読記憶媒体に記憶される。例えば、データ構造は、Verilog又はVHDL等の高レベル設計言語(high-level design language、HDL)におけるハードウェア機能の行動レベルの記述又はレジスタ転送レベル(register-transfer level、RTL)の記述であり得る。記述は、記述を合成して、上記の機能ブロック及び回路要素を含むハードウェアの機能を表す合成ライブラリからのトランジスタ/回路素子のリストを含むネットリストを生成することができる合成ツールによって読み取られ得る。ネットリストは、次いで、マスクに適用される幾何学的形状を記述するデータセットを生成するために配置され、ルーティングされ得る。マスクは、次いで、上記の機能ブロック及び回路要素に対応する半導体回路又は回路(例えば、集積回路)を製造するために、様々な半導体加工ステップで使用され得る。代替的に、コンピュータアクセス可能格納媒体上のデータベースは、所望に応じて、ネットリスト(合成ライブラリの有無にかかわらず)若しくはデータセット、又は、グラフィックデータシステム(Graphic Data System、GDS)IIデータであり得る。
【0035】
この記載では、変数又は不特定の値(すなわち、値の特定の例を含まない値の一般的な説明)は、N、M及びX等の文字によって表される。本明細書で使用されるように、この記載において異なる場所で類似の文字を使用する可能性があるにもかかわらず、各場合における変数及び不特定の値は、必ずしも同じではなく、すなわち、一般的な変数及び不特定値のいくつか又は全てに対して意図される変数及び値が存在し得る。言い換えれば、Nの特定の値の例、並びに、この記載における変数及び指定されていない値を表すために使用される任意の他の文字は、必ずしも互いに関連しない。
【0036】
本明細書で使用される場合、「その他」又は「等」という表現は、1つの及び/又は事例、すなわち、その他が関連付けられるリスト内の要素「のうち少なくとも1つ」の等価物を提示することが意図される。例えば、「電子デバイスが第1の動作、第2の動作等を実行する」という記述では、電子デバイスは、第1の動作、第2の動作及び他の動作のうち少なくとも1つを実行する。加えて、1つ等に関連付けられたリスト内の要素は、一組の例の中からの例に過ぎず、実施例の少なくともいくつかは、いくつかの実施形態では現れない場合がある。
【0037】
上記の実施形態は、例示及び説明の目的でのみ提示されている。それらは、網羅的であること又は本開示を開示された形態に限定することを意図するものではない。したがって、多くの修正及び変形が当業者には明らかであろう。実施形態の範囲は、上記の開示ではなく、添付の特許請求の範囲によって定義される。
【国際調査報告】