JP2017016660A - マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム - Google Patents

マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム Download PDF

Info

Publication number
JP2017016660A
JP2017016660A JP2016130528A JP2016130528A JP2017016660A JP 2017016660 A JP2017016660 A JP 2017016660A JP 2016130528 A JP2016130528 A JP 2016130528A JP 2016130528 A JP2016130528 A JP 2016130528A JP 2017016660 A JP2017016660 A JP 2017016660A
Authority
JP
Japan
Prior art keywords
address
master device
security attribute
master
snoop
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.)
Granted
Application number
JP2016130528A
Other languages
English (en)
Other versions
JP6739253B2 (ja
Inventor
宇 衡 全
Woo Hyung Chun
宇 衡 全
軾 金
Sik Kim
軾 金
成 旻 趙
Seong Min Jo
成 旻 趙
宰 榮 許
Jae Young Hur
宰 榮 許
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020160021651A external-priority patent/KR102485999B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2017016660A publication Critical patent/JP2017016660A/ja
Application granted granted Critical
Publication of JP6739253B2 publication Critical patent/JP6739253B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Abstract

【課題】アプリケーションプロセッサを提供する。
【解決手段】アプリケーションプロセッサは第1保安属性を有する第1マスタ装置、第2保安属性を有する第2マスタ装置、マスタサイドフィルタと、第1マスタ装置、第2マスタ装置及びマスタサイドフィルタに接続されたキャッシュコヒーレントインターコネクトとを含む。第1マスタ装置は第1保安属性を示す保安属性指示子と第1スヌープアドレスとを含むスヌープ要請を通信し、マスタサイドフィルタはキャッシュコヒーレントインターコネクトを通じて第1マスタ装置からスヌープ要請を受信し、第2保安属性とスヌープ要請によって指示される第1保安属性とを比較し、第1保安属性と第2保安属性とが互いに異なる時第1スヌープアドレスを第2マスタ装置に伝送しないことを決定し、第1保安属性と第2保安属性とが互いに同じである時第1スヌープアドレスを第2マスタ装置に伝送することを決定してスヌープ動作を実行する。
【選択図】 図1

Description

本発明の実施形態は、キャッシュコヒーレントシステム(cache coherent system)に係り、特に、保安チェックを行うマスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システムとに関する。
コンピュータ科学において、キャッシュコヒーレンシ(cache coherency)とは、共有メモリシステムでクライアント(または、プロセッサ)のそれぞれに含まれたローカルキャッシュ間のコヒーレンシを意味する。クライアントのそれぞれが自身のみのローカルキャッシュを含み、クライアントがメモリを共有している時、クライアントの何れか1つのキャッシュがアップデートされる時、キャッシュコヒーレンシの問題が発生する。
キャッシュコヒーレンシの問題が発生すれば、共有メモリシステムは、キャッシュコヒーレンシのための動作を行うので、共有メモリシステムが共有メモリにデータを書込む時、書込み動作のレイテンシが増加する。
キャッシュコヒーレントインターフェース、このキャッシュコヒーレントインターフェースに連結されたCPU、及びこのキャッシュコヒーレントインターフェースに連結されたGPUを含む従来のシステムで、非保安モードで動作するCPUがスヌープ要請をGPUに出力し、このGPUのキャッシュでキャッシュヒットが発生すれば、キャッシュに保存されたキャッシュライン(すなわち、ラインデータ)は、システムに連結された外部メモリ装置にライトバック(write−back)される。このライトバックが完了した後、CPUは、外部メモリ装置にライトバックされたキャッシュラインを読出しするための命令を外部メモリ装置を制御するコントローラに伝送する。したがって、ライトバックに関連したライトバックトラフィックと外部メモリ装置に保存された前記キャッシュラインの読み取りに関連したメモリ読出し要請トラフィックとが増加する。
米国特許出願公開第2011/0153944号明細書 米国特許第8930638号明細書 米国特許第7650479号明細書 米国特許第6862669号明細書 米国特許第8677073号明細書 米国特許第8812804号明細書 米国特許出願公開第2014/0115279号明細書 米国特許第6842828号明細書 米国特許第5680577号明細書
本発明が解決しようとする技術的な課題は、キャッシュ効率を高めるために、キャッシュコヒーレントインターコネクトに連結されたマスタの間でスヌープ要請を行う場合、保安チェックのために発生する付加的なライトバックトラフィックとメモリ読出し要請トラフィックとを除去するために、スヌープ要請に対して従来のスレーブサイドフィルタを代替して、保安チェックを行うマスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システムとを提供するところにある。
本発明の実施形態によるアプリケーションプロセッサは、第1保安属性を有する第1マスタ装置と、第2保安属性を有する第2マスタ装置と、マスタサイドフィルタと、前記第1マスタ装置、前記第2マスタ装置、及び前記マスタサイドフィルタに接続されたキャッシュコヒーレントインターコネクトと、を含み、前記第1マスタ装置は、前記第1保安属性を示す保安属性指示子と第1スヌープアドレスとを含むスヌープ要請を通信し、前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じて、前記第1マスタ装置から前記スヌープ要請を受信し、前記第2保安属性と前記スヌープ要請によって指示される前記第1保安属性とを比較し、前記第1保安属性と前記第2保安属性とが互いに異なる時、前記第1スヌープアドレスを前記第2マスタ装置に伝送しないことを決定し、前記第1保安属性と前記第2保安属性とが互いに同じである時、前記第1スヌープアドレスを前記第2マスタ装置に伝送することを決定して、スヌープ動作を実行する。前記第1保安属性は、前記第1マスタ装置に対する保安モードまたは非保安モードを指示し、前記第2保安属性は、前記第2マスタ装置に対する前記保安モードまたは前記非保安モードを指示する。
前記第1スヌープアドレスを前記第2マスタ装置に伝送しないことを決定すれば、前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じて、第1キャッシュミスを前記第1マスタ装置に伝送する。
前記第2マスタ装置は、少なくとも1つのアドレスと前記少なくとも1つのアドレスに該当する各データを保存するキャッシュと、前記少なくとも1つのアドレスのそれぞれと前記マスタサイドフィルタから伝送された前記第1スヌープアドレスとを比較し、前記少なくとも1つのアドレスのうちから前記第1スヌープアドレスとマッチされるマッチングアドレスに該当するデータを前記マスタサイドフィルタに伝送し、前記少なくとも1つのアドレスのうちから前記第1スヌープアドレスとマッチされるマッチングアドレスが存在しない時、第2キャッシュミスを前記マスタサイドフィルタに伝送するキャッシュコントローラと、を含む。
前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じて、前記第1キャッシュミス、前記データ、または前記第2キャッシュミスのうちの何れか1つを前記第1マスタ装置に伝送する。
前記アプリケーションプロセッサは、前記第1マスタ装置から伝送された制御信号に応答して、前記第2保安属性を決定するコントローラをさらに含み、前記コントローラは、専用伝送ラインを使って前記第2保安属性を前記マスタサイドフィルタに伝送する。
前記マスタサイドフィルタは、少なくとも1つのアドレスを保存するメモリ装置と、前記メモリ装置に連結され、前記第1保安属性と前記第2保安属性とを比較し、前記第1スヌープアドレスと前記少なくとも1つのアドレスのそれぞれとを比較する決定ロジック回路と、を含む。
前記第1保安属性と前記第2保安属性とが一致し、前記第1スヌープアドレスと前記少なくとも1つのアドレスのうちからマッチングアドレスとが一致する時、前記決定ロジック回路は、前記第1スヌープアドレスを前記第2マスタ装置に伝送し、前記第1保安属性と前記第2保安属性とが一致しないか、前記第1スヌープアドレスと前記少なくとも1つのアドレスのそれぞれとが互いに異なる時、前記決定ロジック回路は、キャッシュミスを、前記キャッシュコヒーレントインターコネクトを通じて、前記第1マスタ装置に伝送する。
前記メモリ装置は、各メモリ領域に対する保安属性をさらに保存し、前記決定ロジック回路は、前記第1保安属性が前記第2保安属性と同一であるか否かと、前記第1スヌープアドレスによって指示されたメモリ領域の第1アドレス属性が、前記少なくとも1つのアドレスのうちからマッチングアドレスによって指示されたメモリ領域の第2アドレス属性と同一であるか否かと、を判断し、前記決定ロジック回路は、前記第1保安属性と前記第2保安属性とが一致し、前記第1アドレスの属性と前記第2アドレスの属性とが一致する時、前記第1スヌープアドレスを前記第2マスタ装置に伝送する。
前記第1マスタ装置は、前記第2マスタ装置が前記保安モードから脱出し、前記非保安モードに進入する時、前記第2マスタ装置が前記保安モードで動作する間に、前記第2マスタ装置のキャッシュに保存されたあらゆるデータを削除する。
前記アプリケーションプロセッサは、前記キャッシュコヒーレントインターコネクトに連結され、前記第1マスタ装置から受信されたメモリアクセス要請に応答して、メインメモリ装置をアクセスするスレーブサイドフィルタをさらに含み、前記スレーブサイドフィルタは、前記マスタサイドフィルタによって実行される前記スヌープ動作を行わない。
前記第1マスタ装置は、CPUであり、前記第2マスタ装置は、GPU(Graphics Processing Unit)、GPGPU(General−Purpose Computing on Graphics Processing Units)、またはDSP(Digital Signal Processor)である。
本発明の実施形態によるデータ処理システムは、コントローラと、前記コントローラの外部に配され、前記コントローラに連結されたメインメモリ装置と、を含む。前記コントローラは、第1保安属性を有する第1マスタ装置と、第2保安属性を有する第2マスタ装置と、マスタサイドフィルタと、スレーブサイドフィルタと、前記第1マスタ装置、前記第2マスタ装置、前記マスタサイドフィルタ、及び前記スレーブサイドフィルタに接続されたキャッシュコヒーレントインターコネクトと、を含み、前記第1マスタ装置は、前記第1保安属性を示す保安属性指示子と第1スヌープアドレスとを含むスヌープ要請を通信し、前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトと前記第2マスタ装置との間に連結され、前記キャッシュコヒーレントインターコネクトを通じて、前記第1マスタ装置から前記スヌープ要請を受信し、前記第2保安属性と前記スヌープ要請によって指示される前記第1保安属性とを比較し、前記第1保安属性と前記第2保安属性とが互いに異なる時、前記第1スヌープアドレスを前記第2マスタ装置に伝送しないことを決定し、前記第1保安属性と前記第2保安属性とが互いに同じである時、前記第1スヌープアドレスを前記第2マスタ装置に伝送することを決定して、スヌープ動作を実行し、前記スレーブサイドフィルタは、前記キャッシュコヒーレントインターコネクトと前記メインメモリ装置との間に連結され、前記キャッシュコヒーレントインターコネクトを通じて、前記第1マスタ装置から受信されたメモリアクセス要請に応答して、前記メインメモリ装置に対するメモリアクセス動作を直接行う。
前記第1保安属性は、前記第1マスタ装置に対する保安モードまたは非保安モードを指示し、前記第2保安属性は、前記第2マスタ装置に対する前記保安モードまたは前記非保安モードを指示し、前記第1スヌープアドレスを前記第2マスタ装置に伝送しないことを決定すれば、前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じて、第1キャッシュミスを前記第1マスタ装置に伝送する。
前記第2マスタ装置は、少なくとも1つのアドレスと前記少なくとも1つのアドレスに該当する各データを保存するキャッシュと、前記少なくとも1つのアドレスのそれぞれと前記マスタサイドフィルタから伝送された前記第1スヌープアドレスとを比較し、前記少なくとも1つのアドレスのうちから前記第1スヌープアドレスとマッチされるマッチングアドレスに該当するデータを前記マスタサイドフィルタに伝送し、前記少なくとも1つのアドレスのうちから前記第1スヌープアドレスとマッチされるマッチングアドレスが存在しない時、第2キャッシュミスを前記マスタサイドフィルタに伝送するキャッシュコントローラと、を含む。
前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じて、前記第1キャッシュミス、前記データ、または前記第2キャッシュミスのうちの何れか1つを前記第1マスタ装置に伝送する。
前記データ処理システムは、前記第1マスタ装置から伝送された制御信号に応答して、前記第2保安属性を決定するコントローラをさらに含み、前記コントローラは、専用伝送ラインを使って前記第2保安属性を前記マスタサイドフィルタに伝送する。
前記マスタサイドフィルタは、少なくとも1つのアドレスを保存するメモリ装置と、前記メモリ装置に連結され、前記第1保安属性と前記第2保安属性とを比較し、前記第1スヌープアドレスと前記少なくとも1つのアドレスのそれぞれとを比較する決定ロジック回路と、を含む。
本発明の実施形態によるキャッシュコヒーレントシステムは、キャッシュコヒーレントインターコネクトと、前記キャッシュコヒーレントインターコネクトに連結された第1マスタ装置と、第2マスタ装置と、前記キャッシュコヒーレントインターコネクトと前記第2マスタ装置との間に連結され、前記第1マスタ装置から伝送されたスヌープ要請に応答して、スヌープ動作を行うマスタサイドフィルタと、前記キャッシュコヒーレントインターコネクトと外部メモリ装置との間に連結され、前記第1マスタ装置から出力されたメモリアクセス要請に応答して、前記外部メモリ装置に対するメモリアクセス動作を行うスレーブサイドフィルタと、を含む。
前記マスタサイドフィルタは、前記スヌープ要請を、前記キャッシュコヒーレントインターコネクトを通じて受信し、前記第2マスタ装置の第2保安属性と前記スヌープ要請に含まれた前記第1マスタ装置の第1保安属性とを比較し、前記第1保安属性と前記第2保安属性とが互いに異なる時、前記スヌープ要請に含まれた第1アドレスを前記第2マスタ装置に伝送せず、キャッシュミスを前記キャッシュコヒーレントインターコネクトに伝送し、前記第1保安属性と前記第2保安属性とが互いに同じである時、前記第1アドレスを前記第2マスタ装置に伝送する。
本発明の実施形態によるマスタサイドフィルタを含むアプリケーションプロセッサまたはキャッシュコヒーレントシステムは、保安モードと非保安モードとを支援するデータ処理システムでスヌープ動作時に、保安検索のためのライトバックトラフィックとメモリ読出し要請トラフィックとを除去することができる。マスタサイドフィルタは、フルキャッシュコヒーレンシ(full cache coherency)を管理することができる。
本発明の実施形態によるアプリケーションプロセッサまたはキャッシュコヒーレントシステムが、キャッシュコヒーレントネットワーク内で内部キャッシュを含むマスタ装置を含む時、アプリケーションプロセッサまたはキャッシュコヒーレントシステムのオーバーヘッドを減らすか、除去することができる。
本発明の実施形態によるマスタサイドフィルタを含むアプリケーションプロセッサまたはキャッシュコヒーレントシステムは、キャッシュ−コヒーレントインターコネクトのためにハードウェアを変更しなくても良い。
本発明の実施形態によるマスタサイドフィルタを含むアプリケーションプロセッサまたはキャッシュコヒーレントシステムは、非保安考慮(non−security awareness or non trustzone awareness)を有するマスタ装置のためにハードウェアを変更しなくても良い。
本発明の実施形態によるマスタサイドフィルタを含むアプリケーションプロセッサまたはキャッシュコヒーレントシステムは、従来のソリューション(solutions)と比較する時、キャッシュコヒーレントネットワークのためのタイミングオーバーヘッドを除去することができる。
本発明の実施形態によるマスタサイドフィルタを含むアプリケーションプロセッサまたはキャッシュコヒーレントシステムは、保安モードと非保安モードとの間の変換(または、スイッチング)のためのソフトウェアを実行することができるので、保安決定ロジック回路のための領域オーバーヘッド(area overhead)を減らすか、最小化することができる。
本発明の実施形態によるデータ処理システムのブロック図。 図1に示された本発明の実施形態によるマスタサイドフィルタと第2マスタ装置のブロック図。 図1に示されたマスタサイドフィルタと第2マスタ装置の動作を説明するフローチャート。 図1に示されたマスタサイドフィルタと第2マスタ装置の動作を説明する第1テーブル。 図1の第1マスタから出力されたスヌープ要請に応じたマスタサイドフィルタの動作を説明する図。 図1に示された本発明の実施形態によるマスタサイドフィルタと第2マスタ装置のブロック図。 図6に示されたマスタサイドフィルタと第2マスタ装置の動作を説明するフローチャート。 図6に示されたマスタサイドフィルタと第2マスタ装置の動作を説明する第2テーブル。 図6に示されたマスタサイドフィルタと第2マスタ装置の動作を説明する第3テーブル。 図1の第1マスタ装置から出力されたスヌープ要請に応じたマスタサイドフィルタの動作を説明する図。 図1に示された第2マスタ装置の動作モードと動作モードのそれぞれでのソフトウェア動作を概念的に説明する図。 図8に関して説明したような方法を要約するフローチャート。 図9に関して説明したような方法を要約するフローチャート。
以下、添付した図面を参照して、本発明を詳しく説明する。
図1は、本発明の実施形態によるデータ処理システムのブロック図である。図1を参照すれば、データ処理システム100は、コントローラ200とメインメモリ装置300とを含みうる。データ処理システム100は、PC(Personal Computer)またはモバイル装置として具現可能である。モバイル装置は、ラップトップ(laptop)コンピュータ、携帯電話、スマートフォン、タブレットPC、PDA(Personal Digital Assistant)、EDA(Enterprise Digital Assistant)、デジタルスチル(still)カメラ、デジタルビデオ(video)カメラ、PMP(Portable Multimedia Player)、PND(Personal Navigation DeviceまたはPortable Navigation Device)、携帯用ゲームコンソール(handheld game console)、モバイルインターネット装置(Mobile Internet Device;MID)、ウェアラブルコンピュータ、モノのインターネット(Internet of Things;IoT)装置、万物のインターネット(Internet of Everything;IoE)装置、ドローン(drone)、または電子ブック(e−book)として具現可能である。また、データ処理システム100は、スマートカーまたは自動車システム(automotive system)に使われる。
コントローラ200は、メインメモリ装置300の動作を制御することができる。コントローラ200は、キャッシュコヒーレント(cache coherent)システム、キャッシュコヒーレントネットワーク、またはキャッシュコヒーレントコントローラを多様に意味する。コントローラ200は、異種のコアクラスタ(heterogeneous core clusters)を含む装置を意味する。例えば、異種のコアクラスタは、キャッシュコヒーレントインターコネクト210に連結されたCPU(Central Processing Unit)、GPU、GPGPU、及びDSPを含みうるが、これに限定されるものではない。
また、コントローラ200は、集積回路(IC)、システム・オン・チップ(System on Chip;SoC)、プロセッサ、アプリケーションプロセッサ、モバイルアプリケーションプロセッサ、マザーボード(motherboard)、チップセット(chipset)、または半導体チップの集合を多様に意味する。例えば、コントローラ200とメインメモリ装置300は、パッケージオンパッケージ(Package−on−Package)製造技術を用いて具現されうる。
コントローラ200は、キャッシュコヒーレントインターコネクト210、第1マスタ装置(または、第1マスタ)220、第2コントローラ(または、第1保安属性コントローラ)230、第2マスタ装置(または、第2マスタ)240、マスタサイドフィルタ250、及びスレーブサイドフィルタ280を含みうる。実施形態によって、コントローラ200は、第3コントローラ(または、第2保安属性コントローラ)260と第3マスタ装置(または、第3マスタ)270とをさらに含みうる。
マスタサイドフィルタ250がキャッシュコヒーレントインターコネクト210と第2マスタ装置240との間に連結され、保安チェック(security check)がマスタサイドフィルタ250で行われることによって、スヌープ時間(snoop time)またはスヌープレイテンシ(snoop latency)が減少する効果がある。
構成要素220、230、250、260、270、及び280は、キャッシュコヒーレントインターコネクト210を通じて信号を送受信することができる。
第1マスタ装置220は、第2マスタ装置240の動作モードを保安モード(secure mode)または非保安モード(non−secure mode)に設定または定義するための第1制御信号CTR1を、キャッシュコヒーレントインターコネクト210を通じて、第2コントローラ230に伝送しうる。保安モードは、保安が必要なデータを処理する保安動作モードを意味し、非保安モードは、保安が必要ではないデータを処理する非保安動作モードを意味するが、これに限定されるものではない。
第1マスタ装置220は、CPUとして具現可能である。例えば、第1マスタ装置220は、保安考慮(security awareness)能力を有するマスタ装置(例えば、CPU)であり得る。
第1マスタ装置220は、第1保安属性AT1とアドレスADD、例えば、スヌープアドレスADDを含む第1スヌープ要請SREQ1を生成することができる。
第1保安属性AT1は、第1マスタ装置220の動作モードが保安モードであるか、または非保安モードであるかを表わす情報(または、データまたは指示子(indicator))を意味し、アドレスADDは、第1マスタ装置220がアクセスしようとするメインメモリ装置300のメモリ領域または位置を指示することができる。
第1マスタ装置220は、ソフトウェア222を実行し、ソフトウェア222は、他のマスタ装置240及び/または270の動作及び/または連動(interoperation)の制御に使われる。
第2コントローラ230は、第1マスタ装置220から出力された第1制御信号CTR1を用いて、または応答して、第2マスタ装置240の動作モードを保安モードまたは非保安モードに設定することができる。第1制御信号CTR1は、第2コントローラ230に含まれたレジスタ235に保存することができる。例えば、レジスタ235は、SFR(Special Function Register)として具現可能である。
SFR235に保存された第1制御信号CTR1またはSFR235に保存された制御データの一部によって(または、応答して)、第2マスタ装置240に関連した保安属性、例えば、第2保安属性AT2が決定されうる。第2保安属性AT2は、伝送ラインTLを通じてマスタサイドフィルタ250に提供されうる。伝送ラインTLは、専用(dedicated)伝送ラインであり得る。第2保安属性AT2は、第2マスタ装置240の動作モードが保安モードであるか、または非保安モードであるかを表わす情報(または、データ)であり得る。
第2マスタ装置240は、SFR235に設定された(または、保存された)第2保安属性AT2に基づいて、第2マスタ装置240の動作モードを保安モードまたは非保安モードに設定することができる。第2マスタ装置240は、GPU、GPGPU、またはDSPで多様に具現可能であるが、これに限定されるものではなく、その内部にキャッシュ(cache)を有しており、メモリアクセス(memory access)が可能なマスタをいずれも含みうる。例えば、第2マスタ装置240は、非保安考慮(non−security awareness)を有するマスタ装置または保安考慮のないマスタ装置であり得る。
マスタサイドフィルタ250は、キャッシュコヒーレントインターコネクト210と第1マスタ装置220との間に連結されうる。本発明の実施形態によるマスタサイドフィルタ250または250−1は、スヌープ動作(snoop operation)またはキャッシュスヌープ動作において、保安検索を行うことができる。マスタサイドフィルタ250は、マスタサイド保安フィルタと呼ばれる。
マスタサイドフィルタ250がスヌープ動作時に、またはこのスヌープ動作に応答して保安検索を行うことができるので、マスタサイドフィルタ250を含むデータ処理システム100は、あらゆるスヌープヒット(または、あらゆるキャッシュヒット)に対してスレーブサイドフィルタ280を用いて行われる保安検索に依存する従来のデータ処理システムと比較して、ライトバックトラフィック(write−back traffic)とメモリ読出し要請トラフィック(memory read request traffic)とを除去することができる効果がある。
マスタサイドフィルタ250は、第1マスタ装置220から伝送された第1スヌープ要請SREQ1を、キャッシュコヒーレントインターコネクト210を通じて受信し、第2マスタ装置240の第2保安属性AT2と第1スヌープ要請SREQ1に含まれた第1マスタ装置220の第1保安属性AT1とを互いに比較し、該比較の結果によって、第1スヌープ要請SREQ1に含まれたアドレスADDを第2マスタ装置240に伝送するか否かを決定することができる。
例えば、マスタサイドフィルタ250は、第1保安属性AT1と第2保安属性AT2とが互いに異なる時、第1スヌープ要請SREQ1に含まれたアドレスADDを第2マスタ装置240に伝送せず、キャッシュミスを、キャッシュコヒーレントインターコネクト210を通じて、第1マスタ装置220に直ちに伝送(または、リターン(return))することができる。
しかし、マスタサイドフィルタ250は、第1保安属性AT1と第2保安属性AT2とが互いに同じである時、第1スヌープ要請SREQ1に含まれたアドレスADDを第2マスタ装置240に伝送しうる。
アドレスADDの受信に応答して第2マスタ装置240は、マスタサイドフィルタ250から伝送されたアドレスADDにマッチされるアドレス(マッチングアドレス)が第2マスタ装置240の内部キャッシュに存在するか否かを判断し、該判断(または、アドレス判断)の結果によって、キャッシュミスまたはキャッシュヒットを決定し、該決定の結果(例えば、キャッシュミスまたはキャッシュヒット)をマスタサイドフィルタ250に伝送しうる。
マスタサイドフィルタ250は、スヌープ動作で一次保安検索を行う。しかし、スレーブサイドフィルタ280は、当該スヌープ動作で一次保安検索を行わず、メインメモリ装置300に対するメモリアクセス要請(例えば、データ読出し要請)を処理することができる。例えば、メモリアクセス要請は、マスタサイドフィルタ250から伝送されたスヌープ動作の結果、例えば、キャッシュミスに基づいて第1マスタ装置220によって発生することがある。
たとえ、図1に示されたデータ処理システム100がシステム構成(system configuration)と他の目的のために、スレーブサイドフィルタ280とメインメモリ装置200とを含むが、保安考慮スヌープ動作のためには、キャッシュコヒーレントインターコネクト210とマスタサイドフィルタ250のみが要求される。
第3コントローラ260は、第1マスタ装置220から出力された第2制御信号CTR2を用いて、第3マスタ装置270の動作モードを保安モードまたは非保安モードに設定することができる。第2制御信号CTR2は、第3コントローラ260に含まれたレジスタ265に保存することができる。各制御信号CTR1、CTR2は、フラグ(flag)または少なくとも1つのビットを有するデジタル信号であり得る。
例えば、レジスタ265は、SFRとして具現可能である。SFR265に保存された第2制御信号CTR2によって第3マスタ装置270の第3保安属性AT3が決定されうる。第3保安属性AT3は、第3マスタ装置270の動作モードが保安モードであるか、または非保安モードであるかを表わす情報(または、データ)であり得る。
第3マスタ装置270は、SFR265に設定された第3保安属性AT3に基づいて、第3マスタ装置270の動作モードを保安モードまたは非保安モードに設定することができる。第3マスタ装置270は、GPU、GPGPU、またはDSPとして具現可能であるが、これに限定されるものではない。例えば、第3マスタ装置270は、非保安考慮を有するマスタ装置または保安考慮のないマスタ装置であり得る。例えば、第3マスタ装置270は、第3保安属性AT3とアドレスを含む第2スヌープ要請SREQ2を生成することができる。
マスタサイドフィルタ250は、第3マスタ装置270から伝送された第2スヌープ要請SREQ2を、キャッシュコヒーレントインターコネクト210を通じて受信し、第2マスタ装置240の第2保安属性AT2と第2スヌープ要請SREQ2に含まれた第3マスタ装置270の第3保安属性AT3とを互いに比較し、該比較の結果によって、第2スヌープ要請SREQ2に含まれたアドレスを第2マスタ装置240に伝送するか否かを決定することができる。
例えば、マスタサイドフィルタ250は、第1保安属性AT1と第3保安属性AT3とが互いに異なる時、第2スヌープ要請SREQ2に含まれたアドレス(スヌープアドレス)を第2マスタ装置240に伝送せず、キャッシュミスを、キャッシュコヒーレントインターコネクト210を通じて、第3マスタ装置270で直ちに伝送しうる。しかし、マスタサイドフィルタ250は、第1保安属性AT1と第3保安属性AT3とが互いに同じである時、第2スヌープ要請SREQ2に含まれたアドレスを第2マスタ装置240に伝送しうる。
第2マスタ装置240は、マスタサイドフィルタ250から伝送されたアドレスにマッチされるアドレスが第2マスタ装置240の内部キャッシュに存在するか否かを判断し、該判断の結果によって、キャッシュミスまたはキャッシュヒットを決定し、該決定の結果をマスタサイドフィルタ250に伝送しうる。
メインメモリ装置300は、コントローラ200の動作に必要なファームウエアとユーザデータを保存することができる。例えば、メインメモリ装置300は、DRAM(Dynamic Random Access Memory)として具現可能である。
図2は、図1に示された本発明の実施形態によるマスタサイドフィルタと第2マスタ装置のブロック図であり、図3は、図1に示されたマスタサイドフィルタと第2マスタ装置の動作を説明するフローチャートであり、図5は、図1の第1マスタ装置から出力されたスヌープ要請に応じたマスタサイドフィルタの動作を説明する図である。
第2マスタ装置240の第2保安属性AT2は、保安モードを示すと仮定し、第2マスタ装置240に含まれたキャッシュ244は、各アドレスADD1、ADD3、ADD4、及びADD5に該当するデータDATA1、DATA3、DATA4、及びDATA5を保存すると仮定する。
図1、図2、図3、及び図5を参照すれば、第1マスタ装置220は、第1保安属性AT1と第1アドレス(ADD=ADD1)を含む第1スヌープ要請SREQ1をキャッシュコヒーレントインターコネクト210に伝送しうる。
マスタサイドフィルタ250は、キャッシュコヒーレントインターコネクト210を通じて、第1保安属性AT1と第1アドレスADD1を含む第1スヌープ要請SREQ1を受信することができる(ステップS110)。
マスタサイドフィルタ250は、第1保安属性AT1と第2保安属性AT2とを互いに比較することができる(ステップS120)。第1保安属性AT1と第2保安属性AT2とが互いに異なる時(ステップS120のNO)、マスタサイドフィルタ250は、第1アドレス(ADD=ADD1)を第2マスタ装置240に伝送せず、スヌープミス(MISS)をキャッシュコヒーレントインターコネクト210に伝送しうる(ステップS130)。スヌープミスは、キャッシュミスを意味する。したがって、キャッシュミスは、キャッシュコヒーレントインターコネクト210を通じて第1マスタ装置220に伝送することができる。
例えば、図5の場合3(CASE3)に示したように、第1スヌープ要請SREQ1は、第3指示ビットNSMBと第1アドレス(ADD=ADD1)とを含む。第3指示ビットNSMBは、第1マスタ装置220の動作モードが非保安モードであることを指示し、第3指示ビットNSMBは、第1保安属性AT1を示す。すなわち、第1マスタ装置220に対する第1保安属性AT1は、非保安モードを示す。
第1マスタ装置220の第1保安属性AT1は、非保安モードを示し、第2マスタ装置240の第2保安属性AT2は、保安モードを示すので、マスタサイドフィルタ250は、第1アドレス(ADD=ADD1)を第2マスタ装置240に伝送せず、スヌープミスをキャッシュコヒーレントインターコネクト210に伝送しうる(ステップS130)。
第1保安属性AT1と第2保安属性AT2とが互いに同じである時(ステップS120のYES)、マスタサイドフィルタ250は、第1アドレス(ADD=ADD1)を第2マスタ装置240のキャッシュコントローラ242に伝送する。したがって、第2マスタ装置240のキャッシュコントローラ242は、内部キャッシュラインのためのスヌープ動作を行うことができる(ステップS140)。
例えば、図5の場合1(CASE1)に示したように、第1スヌープ要請SREQ1は、第1指示ビットSMBと第1アドレス(ADD=ADD1)とを含む。第1指示ビットSMBは、第1マスタ装置220の動作モードが保安モードであることを指示し、第1指示ビットSMBは、第1保安属性AT1を示す。すなわち、第1マスタ装置220に対する第1保安属性AT1は、保安モードを示す。
キャッシュコントローラ242は、第1アドレス(ADD=ADD1)にマッチするアドレスがキャッシュ244に存在するか否かを判断することができる。第1アドレス(ADD=ADD1)にマッチするアドレスADD1がキャッシュ244に存在する時、すなわち、スヌープヒット(または、キャッシュヒット)が発生する時(ステップS150のYES)、キャッシュコントローラ242は、キャッシュ244に保存され、第1アドレス(ADD=ADD1)に該当するデータDATA1をマスタサイドフィルタ250に伝送しうる(ステップS160)。マスタサイドフィルタ250は、第1アドレス(ADD=ADD1)に該当するデータDATA1をキャッシュコヒーレントインターコネクト210に伝送する。マスタサイドフィルタ250から伝送されたデータDATA1は、キャッシュコヒーレントインターコネクト210を通じて第1マスタ装置220に伝送することができる。
例えば、図5の場合2(CASE2)に示したように、第1スヌープ要請SREQ1は、第2指示ビットSMBと第1アドレス(ADD=ADD2)とを含む。第1マスタ装置220に対する第1保安属性AT1は、保安モードを示す。
キャッシュコントローラ242は、第1アドレス(ADD=ADD2)にマッチするアドレスがキャッシュ244に存在するか否かを判断することができる。第1アドレス(ADD=ADD2)にマッチするアドレスADD2がキャッシュ244に存在しない時、すなわち、キャッシュミス(または、スヌープミス)が発生する時(ステップS150のNO)、キャッシュコントローラ242は、スヌープミスをマスタサイドフィルタ250に伝送しうる(ステップS130)。マスタサイドフィルタ250は、スヌープミスをキャッシュコヒーレントインターコネクト210に伝送する。マスタサイドフィルタ250から伝送されたキャッシュミスは、キャッシュコヒーレントインターコネクト210を通じて第1マスタ装置220に伝送することができる。
図5の場合2(CASE2)によってスヌープミスが発生する時、第1マスタ装置220は、第1アドレスADD2を含むメモリアクセス要請(例えば、データ読出し要請)を生成する。メモリアクセス要請は、キャッシュコヒーレントインターコネクト210を通じてスレーブサイドフィルタ280に伝送される。スレーブサイドフィルタ280は、メモリアクセス要請に対する保安検索を行った後、第1アドレスADD2を含むメモリアクセス要請に応答して、第1アドレスADD2に該当するメモリ領域に保存されたデータを読出す。読出されたデータは、キャッシュコヒーレントインターコネクト210を通じて第1マスタ装置220に伝送される。
図4は、図1に示されたマスタサイドフィルタと第2マスタ装置の動作を説明する第1テーブルである。図1から図4を参照すれば、テーブル1(TABLE1)に示したように、要請者(例えば、220または270)の動作モードとハンドラ(例えば、240)の動作モードとが互いに同一である時、すなわち、保安属性が同一である時、マスタサイドフィルタ250は、要請者(例えば、220または270)から伝送されたスヌープ要請SREQ1またはSREQ2に含まれたアドレスをキャッシュコントローラ242に伝送しうる。要請者(例えば、220または270)は、発送者(sender)を意味し、ハンドラ(例えば、240)は、受信器(receiver)を意味する。
しかし、要請者(例えば、220または270)の動作モードとハンドラ(例えば、240)の動作モードとが互いに異なる時、すなわち、保安属性が一致しない時、マスタサイドフィルタ250は、要請者(例えば、220または270)から伝送されたスヌープ要請SREQ1またはSREQ2に含まれたアドレスをキャッシュコントローラ242に伝送せず、スヌープミスを、キャッシュコヒーレントインターコネクト210を通じて、要請者(例えば、220または270)に伝送しうる。
例えば、要請者220によって第1スヌープ要請SREQ1が発生すれば、2つの決定がシーケンス(sequence)で行われる。第1に、マスタサイドフィルタ250は、第1スヌープ要請SREQ1に対する保安チェック(または、保安属性AT1、AT2の比較)を行う(ステップS120)。第2に、保安チェックの結果、保安イッシュ(security issue)のない場合(または、保安属性AT1、AT2が同一である時;ステップS120のYES)、ハンドラ(例えば、240)のキャッシュコントローラ242は、キャッシュヒットまたはキャッシュミスをチェックする(ステップS150)。
図6は、図1に示された本発明の実施形態によるマスタサイドフィルタと第2マスタ装置のブロック図であり、図7は、図6に示されたマスタサイドフィルタと第2マスタから出力されたスヌープ要請に応じたマスタサイドフィルタの動作を説明する図である。
図1、図6、及び図7を参照すれば、マスタサイドフィルタ250−1は、決定ロジック回路252と保安属性ルックアップ(look−up)テーブルを保存するメモリ装置254とを含みうる。たとえ、図6では、マスタサイドフィルタ250−1がメモリ装置254を含む実施形態が示されているが、メモリ装置254は、マスタサイドフィルタ250−1の外部に具現されうる。実施形態によって、メモリ装置254は、SRAM(Static Random Access Memory)として具現可能である。実施形態によって、メモリ装置254は、コントローラ200の内部のどこにでも具現されうるので、メモリ装置254は、第2マスタ装置240に含まれることもある。
メモリ装置254は、各アドレスADD1、ADD3、ADD4、及びADD5に該当するメモリ領域の保安属性SM、NSMを保存することができる。本明細書において、メモリ領域は、メインメモリ装置300の全体、全体の一部、及びライン(または、キャッシュラインに該当するライン)を意味する。
図6に例示的に示したように、各アドレスADD1、ADD3に該当する各メモリ領域は、保安モードSMでアクセス可能なメモリ領域(例えば、保安メモリ領域)であることを表わすことができる。また、各アドレスADD4、ADD5に該当する各メモリ領域は、非保安モードNSMでアクセス可能なメモリ領域(例えば、非保安メモリ領域)であることを表わすことができる。
第1マスタ装置220は、第1保安属性AT1と第1アドレス(ADD=ADD1)を含む第1スヌープ要請SREQ1をキャッシュコヒーレントインターコネクト210に伝送しうる。
マスタサイドフィルタ250−1の決定ロジック回路252は、キャッシュコヒーレントインターコネクト210を通じて、第1保安属性AT1と第1アドレスADD1を含む第1スヌープ要請SREQ1を受信することができる(ステップS210)。
決定ロジック回路252は、第1保安属性AT1と第2保安属性AT2とを互いに比較し、第1アドレス(ADD=ADD1)にマッチされるアドレスがメモリ装置254に存在するか否かを判断することができる(ステップS220)。前記比較と前記判断は、順次または並列に行われる。
第1保安属性AT1と第2保安属性AT2とが互いに同一であり、第1アドレス(ADD=ADD1)にマッチするアドレスがメモリ装置254に存在する時(ステップS220のYES)、決定ロジック回路252は、第1スヌープ要請SREQ1に含まれた第1アドレス(ADD=ADD1)を第2マスタ装置240に伝送しうる。第2マスタ装置240のキャッシュコントローラ242は、キャッシュ244に保存され、第1アドレス(ADD=ADD1)に対応するデータDATA1をマスタサイドフィルタ250−1に伝送しうる(ステップS240)。マスタサイドフィルタ250−1の決定ロジック回路252は、データDATA1をキャッシュコヒーレントインターコネクト210に伝送しうる。マスタサイドフィルタ250から伝送されたデータDATA1は、キャッシュコヒーレントインターコネクト210を通じて第1マスタ装置220に伝送することができる。
場合4(CASE4)と場合5(CASE5)とを説明するために、第2マスタ装置240の第2保安属性AT2は、第2マスタ装置240の動作モードが保安モードであることを示すと仮定する。
例えば、図10の場合4(CASE4)に示したように、第1スヌープ要請SREQ1は、第4指示ビットSMBと第1アドレス(ADD=ADD1)とを含む。第4指示ビットSMBは、第1マスタ装置220の動作モードが保安モードであることを指示し、第4指示ビットSMBは、第1保安属性AT1を示す。したがって、第1アドレス(ADD=ADD1)に該当するメモリ領域は、保安モードSMでアクセス可能な保安メモリ領域である。
第1マスタ装置220の第1保安属性AT1が保安モードを示し、第2マスタ装置240の第2保安属性AT2は、保安モードを示し、第1アドレス(ADD=ADD1)に該当するメモリ領域が保安メモリ領域であり、メモリ装置254に保存されたアドレスADD1に該当するメモリ領域が保安メモリ領域なので、決定ロジック回路252は、第1スヌープ要請SREQ1に含まれた第1アドレス(ADD=ADD1)を第2マスタ装置240のキャッシュコントローラ242に伝送しうる(ステップS220のYES)。キャッシュコントローラ242の動作によってキャッシュヒットまたはスヌープヒットが発生する(ステップS240)。
例えば、図10の場合5(CASE5)に示したように、第1スヌープ要請SREQ1は、第5指示ビットSMBと第1アドレス(ADD=ADD2)とを含む。第5指示ビットSMBは、第1マスタ装置220の動作モードが保安モードであることを指示し、第5指示ビットSMBは、第1保安属性AT1を示す。したがって、第1アドレス(ADD=ADD2)に該当するメモリ領域は、非保安動作モードでアクセス可能な非保安メモリ領域である。
保安モードを指示する第1保安属性AT1と保安モードを指示する第2保安属性AT2は、互いに一致する。第1マスタ装置220の第1保安属性AT1が保安モードを示すので、第1マスタ装置220は、保安メモリ領域をアクセスすることができるアドレスを出力しなければならない。しかし、第1マスタ装置220の第1保安属性AT1が保安モードを示すにも拘らず、第1マスタ装置220によってアクセスされる第1アドレス(ADD=ADD2)は、非保安メモリ領域を指示する。
したがって、決定ロジック回路252は、第1アドレス(ADD=ADD1)を第2マスタ装置240のキャッシュコントローラ242に伝送せず、スヌープミスをキャッシュコヒーレントインターコネクト210に直ちに伝送する(ステップS220のNOとステップS230)。
場合6(CASE6)と場合7(CASE7)とを説明するために、第2マスタ装置240の第2保安属性AT2は、非保安モードを示すと仮定する。
例えば、図10の場合6(CASE6)に示したように、第1スヌープ要請SREQ1は、第6指示ビットNSMBと第1アドレス(ADD=ADD2)とを含む。第6指示ビットNSMBは、第1マスタ装置220の動作モードが非保安モードであることを指示し、第6指示ビットNSMBは、第1保安属性AT1を示す。
非保安モードを示す第1保安属性AT1と非保安モードを示す第2保安属性AT2は、互いに一致する。また、第1スヌープ要請SREQ1に含まれた第1アドレス(ADD=ADD2)は、非保安メモリ領域を指示し、メモリ装置254に保存されたアドレスADD2は、非保安メモリ領域を指示する。したがって、第1スヌープ要請SREQ1に含まれた第1アドレス(ADD=ADD2)の属性とメモリ装置254に保存されたアドレスADD4の属性は、互いに一致する。
決定ロジック回路252は、第1スヌープ要請SREQ1に含まれた第1アドレスADD2を第2マスタ装置240のキャッシュコントローラ242に伝送しうる。キャッシュコントローラ242の動作によって、キャッシュヒットまたはスヌープヒットが発生する。
例えば、図10の場合7(CASE7)に示したように、第1スヌープ要請SREQ1は、第7指示ビットNSMBと第1アドレス(ADD=ADD1)とを含む。第7指示ビットNSMBは、第1マスタ装置220の動作モードが非保安モードであることを指示し、第7指示ビットNSMBは、第1保安属性AT1を示す。
非保安モードを示す第1保安属性AT1と非保安モードを示す第2保安属性AT2は、互いに一致する。しかし、第1スヌープ要請SREQ1に含まれた第1保安属性AT1は、非保安モードを示し、第1スヌープ要請SREQ1に含まれた第1アドレス(ADD=ADD1)は、非保安メモリ領域を指示し、メモリ装置254に保存されたアドレスADD1は、保安メモリ領域を指示する。したがって、第1スヌープ要請SREQ1に含まれた第1アドレス(ADD=ADD1)の属性とメモリ装置254に保存されたアドレスADD2の属性は、互いに一致しない。決定ロジック回路252は、第1スヌープ要請SREQ1に含まれた第1アドレス(ADD=ADD2)を第2マスタ装置240のキャッシュコントローラ242に伝送せず、スヌープミスをキャッシュコヒーレントインターコネクト210に伝送する(ステップS220のNOとステップS230)。
図8は、図6に示されたマスタサイドフィルタと第2マスタ装置の動作を説明する第2テーブルである。図6から図8に示された実施形態を参照すれば、要請者220の動作モードとハンドラ240の動作モードとが互いに一致し、第1スヌープ要請SREQ1に含まれたアドレスADDに該当するアドレスがメモリ装置254に存在する時、スヌープヒットが発生する。スヌープヒットは、キャッシュコントローラ242が決定ロジック回路252から出力されたアドレスADDに該当するデータを決定ロジック回路252に伝送することを意味する。
例えば、要請者220の動作モードが保安モードSMであり、第1スヌープ要請SREQ1に含まれた第1アドレスADDが保安メモリ領域を指示し、ハンドラ240の動作モードが保安モードであり、第1アドレスADDにマッチされる第2アドレスがメモリ装置254に保存され、前記第2アドレスが保安メモリ領域を指示する時、スヌープヒットが発生する。
しかし、要請者220の動作モードが保安モードSMであり、第1スヌープ要請SREQ1に含まれた第1アドレスADDが保安メモリ領域を指示し、ハンドラ240の動作モードが保安モードであり、第1アドレスADDにマッチされる第3アドレスがメモリ装置254に保存され、第3アドレスが非保安メモリ領域を指示する時、スヌープミスが発生する。スヌープミスが発生する時、決定ロジック回路252は、第1スヌープ要請SREQ1に含まれた第1アドレスADDの第2マスタ装置240への伝送を遮断することができる。すなわち、決定ロジック回路252は、第1スヌープ要請SREQ1に含まれた第1アドレスADDを第2マスタ装置240に伝送しない。
実施形態によって、決定ロジック回路252は、要請者220の保安属性とハンドラ240の保安属性との一致如何を判断するだけではなく、要請者220から伝送された第1スヌープ要請SREQ1に含まれた第1アドレスADDにマッチする第2アドレスが、メモリ装置254に存在するか否かを判断し、該判断の結果によって、第1アドレスADDを第2マスタ装置240に伝送するか、第1アドレスADDの第2マスタ装置240への伝送を遮断することができる。
この場合、決定ロジック回路252は、第1アドレスADDの属性と第2アドレスの属性との一致如何を考慮しない。すなわち、要請者220の保安属性とハンドラ240の保安属性とが互いに一致し、要請者220から伝送された第1スヌープ要請SREQ1に含まれた第1アドレスADDにマッチする第2アドレスがメモリ装置254に存在すれば、決定ロジック回路252は、第1アドレスADDを第2マスタ装置240に伝送する。
実施形態によって、決定ロジック回路252は、要請者220の保安属性とハンドラ240の保安属性との一致如何を判断するだけではなく、要請者220から伝送された第1スヌープ要請SREQ1に含まれた第1アドレスADDの属性とメモリ装置254に保存された第2アドレスの属性との一致如何を判断し、該判断の結果によって、第1アドレスADDを第2マスタ装置240に伝送するか、第1アドレスADDの第2マスタ装置240への伝送を遮断することができる。この場合、決定ロジック回路252は、第1アドレスADDの属性と第2アドレスの属性との一致如何を考慮する。
ここで、アドレスの属性は、アドレスに該当するメモリ領域が保安メモリ領域であるか、または非保安メモリ領域であるかを表わす情報(または、データ)であり得る。
図9は、図6に示されたマスタサイドフィルタと第2マスタ装置の動作を説明する第3テーブルである。図6、図7、及び図9に示された実施形態を参照すれば、第2保安属性AT2が保安モードを示し、メモリ装置254に保存された第2アドレスが保安メモリ領域を指示する時、第1スヌープ要請SREQ1に含まれた第1保安属性AT1が保安モードを示し、第1スヌープ要請SREQ1に含まれた第1アドレスADDが保安メモリ領域を指示すれば、スヌープヒットが発生することがある。この際、第1アドレスADD1と第2アドレスは、同一であると仮定する。
しかし、第2保安属性AT2が保安モードを示し、メモリ装置254に保存された第2アドレスが保安メモリ領域を指示する時、第1スヌープ要請SREQ1に含まれた第1保安属性AT1が保安モードを示し、第1スヌープ要請SREQ1に含まれた第1アドレスADDが非保安メモリ領域を指示すれば、スヌープミスが発生することがある。他の例として、第2保安属性AT2が非保安モードを示し、メモリ装置254に保存された第2アドレスが非保安メモリ領域を指示する時、第1スヌープ要請SREQ1に含まれた第1保安属性AT1が非保安モードを示し、第1スヌープ要請SREQ1に含まれた第1アドレスADDが非保安メモリ領域を指示すれば、スヌープヒットが発生することがある。
しかし、第2保安属性AT2が非保安モードを示し、メモリ装置254に保存された第2アドレスが非保安メモリ領域を指示する時、第1スヌープ要請SREQ1に含まれた第1保安属性AT1が非保安モードを示し、第1スヌープ要請SREQ1に含まれた第1アドレスADDが保安メモリ領域を指示する時、スヌープミスが発生することがある。
図8に示された実施形態は、要請者220とハンドラ240のそれぞれの属性とアドレス領域(または、アドレス)の属性とを共に参照する方法を示し、図9に示された実施形態は、要請者220の属性とアドレス領域(またはアドレス)の属性とを参照する方法を示す。
図12は、図8に関して説明したような方法を要約するフローチャートであり、図13は、図9に関して説明したような方法を要約するフローチャートである。ここで、要請者モードとハンドラモードとの第1決定が行われる(ステップS1200)。そして、ターゲット領域(例えば、キャッシュに保存されたスヌープアドレスまたはマッチングアドレスによって指定されたメモリ領域)の保安属性または非保安属性の第2決定が行われる(ステップS1210)。そして、2つの決定(ステップS1200とステップS1210)に基づいて、スヌープヒット/ミス決定が行われる(ステップS1220)。
すなわち、各要請者と各ハンドラだけではなく、ターゲット領域の保安属性と非保安属性とに対する動作モードが考慮される間に、スヌープヒット/ミス決定は、要請者、ハンドラ、及びメモリ領域の間で多様に割り当てられる。図9、図12と図13とを比較すれば、要請者とハンドラの動作モードは、考慮する必要がない。その代りに、現在スヌープ要請は考慮され、スヌープ要請が保安または非保安動作モード(例えば、保安属性を指示するデータを考慮して)であるかに関する決定が行われる(ステップS1300)。スヌープ要請が保安モードである時(ステップS1300のYES)、ターゲットアドレス、例えば、スヌープアドレスが保安(メモリ)領域を指示するか否かの決定が行われる(ステップS1310)。ターゲットアドレスが保安領域を指示する時(ステップS1310のYES)、スヌープヒットが生成される(ステップS1330)。前記ターゲットアドレスが、前記保安領域を指示しない時(ステップS1310のNO)、スヌープミスが生成される(ステップS1340)。
しかし、スヌープ要請が非保安モードである時(ステップS1300のNO)、ターゲットアドレス、例えば、スヌープアドレスが保安(メモリ)領域を指示するか否かの決定が行われる(ステップS1320)。このターゲットアドレスが、保安領域を指示する時(ステップS1320のYES)、スヌープミスが生成される(ステップS1340)。このターゲットアドレスが、保安領域を指示しない時(ステップS1320のNO)、スヌープヒットが生成される(ステップS1330)。
図11は、図1に示された第2マスタ装置の動作モードと動作モードのそれぞれでのソフトウェア動作を概念的に説明する図である。図1と図11とを参照すれば、第1マスタ装置220は、保安モードを行うことができるソフトウェア(または、ファームウエア;SW)を実行することができる。第1マスタ装置220によって実行されるソフトウェア(SW)は、第2マスタ装置240の動作を制御することができる。
第1マスタ装置220は、第2マスタ装置240の動作モードを保安モードに設定するための第1制御信号CTR1を第2コントローラ230に伝送しうる。第2コントローラ230は、第1制御信号CTR1をSFR235に設定することができる。SFR235に設定された第1制御信号CTR1によって、第2保安属性AT2は、保安モードを示す。
ソフトウェア(SW)は、キャッシュ244に保存されたあらゆるデータを削除するために、キャッシュコントローラ242を制御することができる。キャッシュ244に保存されたあらゆるデータが削除されれば(CACHE FLUSH1)、ソフトウェア(SW)の制御によって、第2マスタ装置240は、保安モードで動作することができる。第2マスタ装置240が保安モードで動作する間に、キャッシュ244にはデータを保存することができる。
次いで、第1マスタ装置220は、第2マスタ装置240の動作モードを非保安モードに設定するための第1制御信号CTR1を第2コントローラ230に伝送しうる。第2コントローラ230は、第1制御信号CTR1をSFR235に設定することができる。SFR235に設定された第1制御信号CTR1によって、第2保安属性AT2は、非保安モードを示す。
ソフトウェア(SW)は、第2マスタ装置240が保安モードで動作する間に、キャッシュ244に保存されたあらゆるデータを削除するために、キャッシュコントローラ242を制御することができる。キャッシュ244に保存されたあらゆるデータが削除されれば(CACHE FLUSH2)、ソフトウェア(SW)の制御によって、第2マスタ装置240は、非保安モードで動作することができる。したがって、第2マスタ装置240が非保安モードで動作を始める前(または、直前)に、保安モードで動作する間に、キャッシュ244に保存されたあらゆるデータが削除されるので、コントローラ200の保安が向上する効果がある。
すなわち、保安動作モードの開始(または、進入)と保安動作モードの終了(または、脱出(exit))でキャッシュフラッシュ(cache flush)動作(CACHE FLUSH1とCACHE FLUSH2)が行われる。したがって、キャッシュ244に保存されたあらゆるデータは削除される。例えば、キャッシュ244のアドレス別に、またはキャッシュ244のキャッシュライン別に、属性が支援されない時、または属性が確認されない時、前述したように、キャッシュ244に保存されたあらゆるデータは削除されうる。しかし、キャッシュ244のアドレス別に、またはキャッシュ244のキャッシュライン別に、属性が支援される時、または属性が確認される時、キャッシュ244に保存されたあらゆるデータは削除されないこともある。
図1から図11を参照して説明したように、スヌープ制御(snoop control)のためにマスタサイドフィルタ250がコントローラ200に具現され、スヌープ動作(または、スヌープ動作で一次保安検索)がスレーブサイドフィルタ280の代わりに、マスタサイドフィルタ250で行われるので、スヌープ動作(または、スヌープ動作で一次保安検索)のためにスレーブサイドフィルタ280に対するアクセスは、これ以上要求されない。
スヌープ時間またはスヌープレイテンシは、第1マスタ装置220と第2マスタ装置240との間で送受信する信号のみで決定されうる。したがって、マスタサイドフィルタ250を含むコントローラ200でスヌープ動作のためのタイミングオーバーヘッド(timing overhead)は除去される。
本発明は、図面に示された実施形態を参考にして説明されたが、これは例示的なものに過ぎず、当業者ならば、これより多様な変形及び均等な他実施形態が可能であるという点を理解できるであろう。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想によって決定されるべきである。
本発明は、マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システムとに使われる。
100:データ処理システム
200:コントローラ
210:キャッシュコヒーレントインターコネクト
220:第1マスタまたは第1マスタ装置
230:保安属性コントローラ
240:第2マスタまたは第2マスタ装置
242:キャッシュコントローラ
244:キャッシュ
250、250−1:マスタサイドフィルタ
252:決定ロジック回路
254:メモリ装置
280:スレーブサイドフィルタ
300:外部メモリ装置

Claims (20)

  1. 第1保安属性を有する第1マスタ装置と、
    第2保安属性を有する第2マスタ装置と、
    マスタサイドフィルタと、
    前記第1マスタ装置、前記第2マスタ装置、及び前記マスタサイドフィルタに接続されたキャッシュコヒーレントインターコネクトと、を含み、
    前記第1マスタ装置は、前記第1保安属性を示す保安属性指示子と第1スヌープアドレスとを含むスヌープ要請を通信し、
    前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じて、前記第1マスタ装置から前記スヌープ要請を受信し、前記第2保安属性と前記スヌープ要請によって指示される前記第1保安属性とを比較し、前記第1保安属性と前記第2保安属性とが互いに異なる時、前記第1スヌープアドレスを前記第2マスタ装置に伝送しないことを決定し、前記第1保安属性と前記第2保安属性とが互いに同じである時、前記第1スヌープアドレスを前記第2マスタ装置に伝送することを決定して、スヌープ動作を実行するアプリケーションプロセッサ。
  2. 前記第1保安属性は、前記第1マスタ装置に対する保安モードまたは非保安モードを指示し、
    前記第2保安属性は、前記第2マスタ装置に対する前記保安モードまたは前記非保安モードを指示する請求項1に記載のアプリケーションプロセッサ。
  3. 前記第1スヌープアドレスを前記第2マスタ装置に伝送しないことを決定すれば、前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じて、第1キャッシュミスを前記第1マスタ装置に伝送する請求項2に記載のアプリケーションプロセッサ。
  4. 前記第2マスタ装置は、
    少なくとも1つのアドレスと前記少なくとも1つのアドレスに該当する各データを保存するキャッシュと、
    前記少なくとも1つのアドレスのそれぞれと前記マスタサイドフィルタから伝送された前記第1スヌープアドレスとを比較し、前記少なくとも1つのアドレスのうちから前記第1スヌープアドレスとマッチされるマッチングアドレスに該当するデータを前記マスタサイドフィルタに伝送し、前記少なくとも1つのアドレスのうちから前記第1スヌープアドレスとマッチされるマッチングアドレスが存在しない時、第2キャッシュミスを前記マスタサイドフィルタに伝送するキャッシュコントローラと、
    を含む請求項3に記載のアプリケーションプロセッサ。
  5. 前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じて、前記第1キャッシュミス、前記データ、または前記第2キャッシュミスのうちの何れか1つを前記第1マスタ装置に伝送する請求項4に記載のアプリケーションプロセッサ。
  6. 前記第1マスタ装置から伝送された制御信号に応答して、前記第2保安属性を決定するコントローラをさらに含み、
    前記コントローラは、専用伝送ラインを使って前記第2保安属性を前記マスタサイドフィルタに伝送する請求項1に記載のアプリケーションプロセッサ。
  7. 前記マスタサイドフィルタは、
    少なくとも1つのアドレスを保存するメモリ装置と、
    前記メモリ装置に連結され、前記第1保安属性と前記第2保安属性とを比較し、前記第1スヌープアドレスと前記少なくとも1つのアドレスのそれぞれとを比較する決定ロジック回路と、
    を含む請求項1に記載のアプリケーションプロセッサ。
  8. 前記第1保安属性と前記第2保安属性とが一致し、前記第1スヌープアドレスと前記少なくとも1つのアドレスのうちからマッチングアドレスとが一致する時、前記決定ロジック回路は、前記第1スヌープアドレスを前記第2マスタ装置に伝送し、
    前記第1保安属性と前記第2保安属性とが一致しないか、前記第1スヌープアドレスと前記少なくとも1つのアドレスのそれぞれとが互いに異なる時、前記決定ロジック回路は、キャッシュミスを、前記キャッシュコヒーレントインターコネクトを通じて、前記第1マスタ装置に伝送する請求項7に記載のアプリケーションプロセッサ。
  9. 前記メモリ装置は、各メモリ領域に対する保安属性をさらに保存し、
    前記決定ロジック回路は、前記第1保安属性が前記第2保安属性と同一であるか否かと、前記第1スヌープアドレスによって指示されたメモリ領域の第1アドレス属性が、前記少なくとも1つのアドレスのうちからマッチングアドレスによって指示されたメモリ領域の第2アドレス属性と同一であるか否かと、を判断し、
    前記決定ロジック回路は、前記第1保安属性と前記第2保安属性とが一致し、前記第1アドレスの属性と前記第2アドレスの属性とが一致する時、前記第1スヌープアドレスを前記第2マスタ装置に伝送する請求項7に記載のアプリケーションプロセッサ。
  10. 前記第1マスタ装置は、前記第2マスタ装置が前記保安モードから脱出し、前記非保安モードに進入する時、前記第2マスタ装置が前記保安モードで動作する間に、前記第2マスタ装置のキャッシュに保存されたあらゆるデータを削除する請求項2に記載のアプリケーションプロセッサ。
  11. 前記アプリケーションプロセッサは、前記キャッシュコヒーレントインターコネクトに連結され、前記第1マスタ装置から受信されたメモリアクセス要請に応答して、メインメモリ装置をアクセスするスレーブサイドフィルタをさらに含み、
    前記スレーブサイドフィルタは、前記マスタサイドフィルタによって実行される前記スヌープ動作を行わない請求項1に記載のアプリケーションプロセッサ。
  12. 前記第1マスタ装置は、CPUであり、
    前記第2マスタ装置は、GPU、GPGPU、またはDSPである請求項1に記載のアプリケーションプロセッサ。
  13. コントローラと、
    前記コントローラの外部に配され、前記コントローラに連結されたメインメモリ装置と、を含み、
    前記コントローラは、
    第1保安属性を有する第1マスタ装置と、
    第2保安属性を有する第2マスタ装置と、
    マスタサイドフィルタと、
    スレーブサイドフィルタと、
    前記第1マスタ装置、前記第2マスタ装置、前記マスタサイドフィルタ、及び前記スレーブサイドフィルタに接続されたキャッシュコヒーレントインターコネクトと、を含み、
    前記第1マスタ装置は、前記第1保安属性を示す保安属性指示子と第1スヌープアドレスとを含むスヌープ要請を通信し、
    前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトと前記第2マスタ装置との間に連結され、前記キャッシュコヒーレントインターコネクトを通じて、前記第1マスタ装置から前記スヌープ要請を受信し、前記第2保安属性と前記スヌープ要請によって指示される前記第1保安属性とを比較し、前記第1保安属性と前記第2保安属性とが互いに異なる時、前記第1スヌープアドレスを前記第2マスタ装置に伝送しないことを決定し、前記第1保安属性と前記第2保安属性とが互いに同じである時、前記第1スヌープアドレスを前記第2マスタ装置に伝送することを決定して、スヌープ動作を実行し、
    前記スレーブサイドフィルタは、前記キャッシュコヒーレントインターコネクトと前記メインメモリ装置との間に連結され、前記キャッシュコヒーレントインターコネクトを通じて、前記第1マスタ装置から受信されたメモリアクセス要請に応答して、前記メインメモリ装置に対するメモリアクセス動作を直接行うデータ処理システム。
  14. 前記第1保安属性は、前記第1マスタ装置に対する保安モードまたは非保安モードを指示し、
    前記第2保安属性は、前記第2マスタ装置に対する前記保安モードまたは前記非保安モードを指示し、
    前記第1スヌープアドレスを前記第2マスタ装置に伝送しないことを決定すれば、前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じて、第1キャッシュミスを前記第1マスタ装置に伝送する請求項13に記載のデータ処理システム。
  15. 前記第2マスタ装置は、
    少なくとも1つのアドレスと前記少なくとも1つのアドレスに該当する各データを保存するキャッシュと、
    前記少なくとも1つのアドレスのそれぞれと前記マスタサイドフィルタから伝送された前記第1スヌープアドレスとを比較し、前記少なくとも1つのアドレスのうちから前記第1スヌープアドレスとマッチされるマッチングアドレスに該当するデータを前記マスタサイドフィルタに伝送し、前記少なくとも1つのアドレスのうちから前記第1スヌープアドレスとマッチされるマッチングアドレスが存在しない時、第2キャッシュミスを前記マスタサイドフィルタに伝送するキャッシュコントローラと、
    を含む請求項14に記載のデータ処理システム。
  16. 前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じて、前記第1キャッシュミス、前記データ、または前記第2キャッシュミスのうちの何れか1つを前記第1マスタ装置に伝送する請求項15に記載のデータ処理システム。
  17. 前記第1マスタ装置から伝送された制御信号に応答して、前記第2保安属性を決定するコントローラをさらに含み、
    前記コントローラは、専用伝送ラインを使って前記第2保安属性を前記マスタサイドフィルタに伝送する請求項13に記載のデータ処理システム。
  18. 前記マスタサイドフィルタは、
    少なくとも1つのアドレスを保存するメモリ装置と、
    前記メモリ装置に連結され、前記第1保安属性と前記第2保安属性とを比較し、前記第1スヌープアドレスと前記少なくとも1つのアドレスのそれぞれとを比較する決定ロジック回路と、
    を含む請求項13に記載のデータ処理システム。
  19. キャッシュコヒーレントインターコネクトと、
    前記キャッシュコヒーレントインターコネクトに連結された第1マスタ装置と、
    第2マスタ装置と、
    前記キャッシュコヒーレントインターコネクトと前記第2マスタ装置との間に連結され、前記第1マスタ装置から伝送されたスヌープ要請に応答して、スヌープ動作を行うマスタサイドフィルタと、
    前記キャッシュコヒーレントインターコネクトと外部メモリ装置との間に連結され、前記第1マスタ装置から出力されたメモリアクセス要請に応答して、前記外部メモリ装置に対するメモリアクセス動作を行うスレーブサイドフィルタと、
    を含むキャッシュコヒーレントシステム。
  20. 前記マスタサイドフィルタは、
    前記スヌープ要請を、前記キャッシュコヒーレントインターコネクトを通じて受信し、前記第2マスタ装置の第2保安属性と前記スヌープ要請に含まれた前記第1マスタ装置の第1保安属性とを比較し、
    前記第1保安属性と前記第2保安属性とが互いに異なる時、前記スヌープ要請に含まれた第1アドレスを前記第2マスタ装置に伝送せず、キャッシュミスを前記キャッシュコヒーレントインターコネクトに伝送し、
    前記第1保安属性と前記第2保安属性とが互いに同じである時、前記第1アドレスを前記第2マスタ装置に伝送する請求項19に記載のキャッシュコヒーレントシステム。
JP2016130528A 2015-07-01 2016-06-30 マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム Active JP6739253B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562187365P 2015-07-01 2015-07-01
US62/187365 2015-07-01
KR10-2016-0021651 2016-02-24
KR1020160021651A KR102485999B1 (ko) 2015-07-01 2016-02-24 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템

Publications (2)

Publication Number Publication Date
JP2017016660A true JP2017016660A (ja) 2017-01-19
JP6739253B2 JP6739253B2 (ja) 2020-08-12

Family

ID=57582850

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016130528A Active JP6739253B2 (ja) 2015-07-01 2016-06-30 マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム

Country Status (4)

Country Link
US (1) US9864687B2 (ja)
JP (1) JP6739253B2 (ja)
CN (1) CN106326148B (ja)
DE (1) DE102016211986A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10628611B2 (en) * 2016-11-04 2020-04-21 Qualcomm Incorporated Exclusive execution environment within a system-on-a-chip computing system
CN110443360B (zh) * 2017-06-16 2021-08-06 上海兆芯集成电路有限公司 用于操作处理器的方法
JP6776292B2 (ja) * 2018-03-20 2020-10-28 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
US10521236B2 (en) * 2018-03-29 2019-12-31 Intel Corporation Branch prediction based on coherence operations in processors
CN112612726B (zh) * 2020-12-08 2022-09-27 海光信息技术股份有限公司 基于缓存一致性的数据存储方法、装置、处理芯片及服务器
US11044256B1 (en) * 2020-12-22 2021-06-22 AppOmni, Inc. Classification management
US11874783B2 (en) 2021-12-21 2024-01-16 Advanced Micro Devices, Inc. Coherent block read fulfillment

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680577A (en) 1995-04-27 1997-10-21 International Business Machines Corporation Method and system for processing multiple requests for data residing at the same memory address
US5966729A (en) * 1997-06-30 1999-10-12 Sun Microsystems, Inc. Snoop filter for use in multiprocessor computer systems
US6412047B2 (en) * 1999-10-01 2002-06-25 Stmicroelectronics, Inc. Coherency protocol
US6526430B1 (en) * 1999-10-04 2003-02-25 Texas Instruments Incorporated Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing)
CN1291747A (zh) * 2000-11-24 2001-04-18 李楠甍 高速缓存设备及其使用方法
US6839808B2 (en) 2001-07-06 2005-01-04 Juniper Networks, Inc. Processing cluster having multiple compute engines and shared tier one caches
US6842828B2 (en) 2002-04-30 2005-01-11 Intel Corporation Methods and arrangements to enhance an upbound path
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US7434008B2 (en) * 2004-04-23 2008-10-07 Hewlett-Packard Development Company, L.P. System and method for coherency filtering
US7373462B2 (en) 2005-03-29 2008-05-13 International Business Machines Corporation Snoop filter for filtering snoop requests
US7650479B2 (en) 2006-09-20 2010-01-19 Arm Limited Maintaining cache coherency for secure and non-secure data access requests
US20110153944A1 (en) 2009-12-22 2011-06-23 Klaus Kursawe Secure Cache Memory Architecture
US8612516B2 (en) * 2011-11-28 2013-12-17 Wyse Technology Inc. Deployment of a driver or an application on a client device having a write-filter
US20130318308A1 (en) * 2012-05-24 2013-11-28 Sonics, Inc. Scalable cache coherence for a network on a chip
US9129071B2 (en) 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit
US8930638B2 (en) 2012-11-27 2015-01-06 Qualcomm Technologies, Inc. Method and apparatus for supporting target-side security in a cache coherent system
CN104462007B (zh) * 2013-09-22 2018-10-02 南京中兴新软件有限责任公司 实现多核间缓存一致性的方法及装置
KR101700778B1 (ko) 2014-08-18 2017-01-31 정형진 멸치 자숙장치
US10078589B2 (en) * 2015-04-30 2018-09-18 Arm Limited Enforcing data protection in an interconnect

Also Published As

Publication number Publication date
US20170004084A1 (en) 2017-01-05
DE102016211986A1 (de) 2017-01-05
CN106326148A (zh) 2017-01-11
CN106326148B (zh) 2020-06-23
JP6739253B2 (ja) 2020-08-12
US9864687B2 (en) 2018-01-09

Similar Documents

Publication Publication Date Title
JP6739253B2 (ja) マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム
US11036650B2 (en) System, apparatus and method for processing remote direct memory access operations with a device-attached memory
US11237728B2 (en) Method for accessing extended memory, device, and system
US10705588B2 (en) Enabling a non-core domain to control memory bandwidth in a processor
US11526440B2 (en) Providing multiple memory modes for a processor including internal memory
US20080109624A1 (en) Multiprocessor system with private memory sections
US20190171392A1 (en) Method of operating storage device capable of reducing write latency
US9348740B2 (en) Memory access controller, multi-core processor system, memory access control method, and computer product
US10198357B2 (en) Coherent interconnect for managing snoop operation and data processing apparatus including the same
CN114860329B (zh) 动态一致性偏置配置引擎及方法
US9183150B2 (en) Memory sharing by processors
US20220114098A1 (en) System, apparatus and methods for performing shared memory operations
CN116324745A (zh) 读取可选命令和写入可选命令
US20220114099A1 (en) System, apparatus and methods for direct data reads from memory
KR20110127479A (ko) 멀티 프로세서 장치 및 그것의 인터 프로세스 통신 방법
US20230169022A1 (en) Operating method of an electronic device
KR102485999B1 (ko) 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템
US9183149B2 (en) Multiprocessor system and method for managing cache memory thereof
US11275707B2 (en) Multi-core processor and inter-core data forwarding method
JP2018510411A (ja) ロールベースキャッシュコヒーレンスバストラフィック制御
KR101416248B1 (ko) 데이터 처리장치 및 그 데이터 처리방법
JP2017146786A (ja) 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20161222

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20161228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190430

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200507

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200721

R150 Certificate of patent or registration of utility model

Ref document number: 6739253

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250