特許第6739253号(P6739253)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三星電子株式会社の特許一覧

特許6739253マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム
<>
  • 特許6739253-マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム 図000002
  • 特許6739253-マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム 図000003
  • 特許6739253-マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム 図000004
  • 特許6739253-マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム 図000005
  • 特許6739253-マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム 図000006
  • 特許6739253-マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム 図000007
  • 特許6739253-マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム 図000008
  • 特許6739253-マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム 図000009
  • 特許6739253-マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム 図000010
  • 特許6739253-マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム 図000011
  • 特許6739253-マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム 図000012
  • 特許6739253-マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム 図000013
  • 特許6739253-マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6739253
(24)【登録日】2020年7月27日
(45)【発行日】2020年8月12日
(54)【発明の名称】マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム
(51)【国際特許分類】
   G06F 12/0831 20160101AFI20200730BHJP
【FI】
   G06F12/0831
【請求項の数】18
【全頁数】24
(21)【出願番号】特願2016-130528(P2016-130528)
(22)【出願日】2016年6月30日
(65)【公開番号】特開2017-16660(P2017-16660A)
(43)【公開日】2017年1月19日
【審査請求日】2019年4月30日
(31)【優先権主張番号】62/187365
(32)【優先日】2015年7月1日
(33)【優先権主張国】US
(31)【優先権主張番号】10-2016-0021651
(32)【優先日】2016年2月24日
(33)【優先権主張国】KR
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
(74)【代理人】
【識別番号】110000051
【氏名又は名称】特許業務法人共生国際特許事務所
(72)【発明者】
【氏名】全 宇 衡
(72)【発明者】
【氏名】金 軾
(72)【発明者】
【氏名】趙 成 旻
(72)【発明者】
【氏名】許 宰 榮
【審査官】 後藤 彰
(56)【参考文献】
【文献】 特開2008−026944(JP,A)
【文献】 特開平10−254774(JP,A)
【文献】 特開平10−177520(JP,A)
【文献】 特開2009−031938(JP,A)
【文献】 特表2010−517184(JP,A)
【文献】 国際公開第2006/057316(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/0831
(57)【特許請求の範囲】
【請求項1】
第1保安属性を有する第1マスタ装置と、
第2保安属性を有する第2マスタ装置と、
マスタサイドフィルタと、
前記第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つのアドレスを保存するメモリ装置と、
前記メモリ装置に連結され、前記第1保安属性と前記第2保安属性とを比較し、前記第1スヌープアドレスと前記少なくとも1つのアドレスのそれぞれとを比較する決定ロジック回路と、を含む請求項1に記載のアプリケーションプロセッサ。
【請求項7】
前記第1保安属性と前記第2保安属性とが一致し、前記第1スヌープアドレスと前記少なくとも1つのアドレスのうちマッチングアドレスとが一致する時、前記決定ロジック回路は、前記第1スヌープアドレスを前記第2マスタ装置に伝送し、
前記第1保安属性と前記第2保安属性とが一致しないか、又は前記第1スヌープアドレスと前記少なくとも1つのアドレスのそれぞれとが互いに異なる時、前記決定ロジック回路は、キャッシュミスを、前記キャッシュコヒーレントインターコネクトを通じて前記第1マスタ装置に伝送する請求項に記載のアプリケーションプロセッサ。
【請求項8】
前記メモリ装置は、各メモリ領域に対する保安属性を更に保存し、
前記決定ロジック回路は、前記第1保安属性が前記第2保安属性と同一であるか否かと、前記第1スヌープアドレスによって指示されたメモリ領域の第1アドレス属性が前記少なくとも1つのアドレスのうちマッチングアドレスによって指示されたメモリ領域の第2アドレス属性と同一であるか否かと、を判断し、
前記決定ロジック回路は、前記第1保安属性と前記第2保安属性とが一致し、且つ前記第1アドレスの属性と前記第2アドレスの属性とが一致する時、前記第1スヌープアドレスを前記第2マスタ装置に伝送する請求項に記載のアプリケーションプロセッサ。
【請求項9】
前記第1マスタ装置は、前記第2マスタ装置が前記保安モードから脱出し前記非保安モードに進入する時、前記第2マスタ装置が前記保安モードで動作する間前記第2マスタ装置のキャッシュに保存されたあらゆるデータを削除する請求項2に記載のアプリケーションプロセッサ。
【請求項10】
前記アプリケーションプロセッサは、前記キャッシュコヒーレントインターコネクトに連結され、前記第1マスタ装置から受信されたメモリアクセス要請に応答してメインメモリ装置アクセスするスレーブサイドフィルタを更に含み、
前記スレーブサイドフィルタは、前記マスタサイドフィルタによって実行される前記スヌープ動作を行わない請求項1に記載のアプリケーションプロセッサ。
【請求項11】
前記第1マスタ装置は、CPUであり、
前記第2マスタ装置は、GPU、GPGPU、又はDSPである請求項1に記載のアプリケーションプロセッサ。
【請求項12】
コントローラと、
前記コントローラの外部に配され、前記コントローラに連結されたメインメモリ装置と、を備え
前記コントローラは、
第1保安属性を有する第1マスタ装置と、
第2保安属性を有する第2マスタ装置と、
マスタサイドフィルタと、
スレーブサイドフィルタと、
前記第1マスタ装置から伝送された制御信号に応答して前記第2保安属性を決定し、専用伝送ラインを使って前記第2保安属性を前記マスタサイドフィルタに伝送する第2コントローラと、
前記第1マスタ装置、前記第2マスタ装置、前記マスタサイドフィルタ、及び前記スレーブサイドフィルタに接続されたキャッシュコヒーレントインターコネクトと、を含み、
前記第1マスタ装置は、前記第1保安属性を示す保安属性指示子と第1スヌープアドレスとを含むスヌープ要請を伝送し、
前記マスタサイドフィルタは
前記キャッシュコヒーレントインターコネクトと前記第2マスタ装置との間に連結され、
前記キャッシュコヒーレントインターコネクトを通じ前記第1マスタ装置から前記スヌープ要請を受信し、前記第2保安属性と前記スヌープ要請によって指示される前記第1保安属性とを比較し、
前記第1保安属性と前記第2保安属性とが互いに異なる時、前記第1スヌープアドレスを前記第2マスタ装置に伝送しないことを決定し、
前記第1保安属性と前記第2保安属性とが互いに同じである時、前記第1スヌープアドレスを前記第2マスタ装置に伝送することを決定しスヌープ動作を実行し、
前記スレーブサイドフィルタは、前記キャッシュコヒーレントインターコネクトと前記メインメモリ装置との間に連結され、前記キャッシュコヒーレントインターコネクトを通じて前記第1マスタ装置から受信されたメモリアクセス要請に応答して前記メインメモリ装置に対するメモリアクセス動作を直接行うデータ処理システム。
【請求項13】
前記第1保安属性は、前記第1マスタ装置に対する保安モード又は非保安モードを指示し、
前記第2保安属性は、前記第2マスタ装置に対する前記保安モード又は前記非保安モードを指示し、
前記第1スヌープアドレスを前記第2マスタ装置に伝送しないことを決定した場合、前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じ第1キャッシュミスを前記第1マスタ装置に伝送する請求項12に記載のデータ処理システム。
【請求項14】
前記第2マスタ装置は、
少なくとも1つのアドレスと前記少なくとも1つのアドレスに該当する各データを保存するキャッシュと、
前記少なくとも1つのアドレスのそれぞれと前記マスタサイドフィルタから伝送された前記第1スヌープアドレスとを比較し、前記少なくとも1つのアドレスのうちから前記第1スヌープアドレスマッチるマッチングアドレスに該当するデータを前記マスタサイドフィルタに伝送し、前記少なくとも1つのアドレスのうちから前記第1スヌープアドレスマッチるマッチングアドレスが存在しない時、第2キャッシュミスを前記マスタサイドフィルタに伝送するキャッシュコントローラと、を含む請求項13に記載のデータ処理システム。
【請求項15】
前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じて、前記第1キャッシュミス、前記データ、又は前記第2キャッシュミスのうちの何れか1つを前記第1マスタ装置に伝送する請求項14に記載のデータ処理システム。
【請求項16】
前記マスタサイドフィルタは、
少なくとも1つのアドレスを保存するメモリ装置と、
前記メモリ装置に連結され、前記第1保安属性と前記第2保安属性とを比較し、前記第1スヌープアドレスと前記少なくとも1つのアドレスのそれぞれとを比較する決定ロジック回路と、を含む請求項12に記載のデータ処理システム。
【請求項17】
キャッシュコヒーレントインターコネクトと、
前記キャッシュコヒーレントインターコネクトに連結され、第1保安属性を有する第1マスタ装置と、
第2保安属性を有する第2マスタ装置と、
前記キャッシュコヒーレントインターコネクトと前記第2マスタ装置との間に連結され、前記第1マスタ装置から伝送されたスヌープ要請に応答しスヌープ動作を行うマスタサイドフィルタと、
前記キャッシュコヒーレントインターコネクトと外部メモリ装置との間に連結され、前記第1マスタ装置から出力されたメモリアクセス要請に応答し前記外部メモリ装置に対するメモリアクセス動作を行うスレーブサイドフィルタと、
前記第1マスタ装置から伝送された制御信号に応答して前記第2保安属性を決定し、専用伝送ラインを使って前記第2保安属性を前記マスタサイドフィルタに伝送するコントローラと、備えるキャッシュコヒーレントシステム。
【請求項18】
前記マスタサイドフィルタは、
前記スヌープ要請を、前記キャッシュコヒーレントインターコネクトを通じて受信し、前記第2マスタ装置の第2保安属性と前記スヌープ要請に含まれ前記第1マスタ装置の第1保安属性とを比較し、
前記第1保安属性と前記第2保安属性とが互いに異なる時、前記スヌープ要請に含まれ第1アドレスを前記第2マスタ装置に伝送せず、キャッシュミスを前記キャッシュコヒーレントインターコネクトに伝送し、
前記第1保安属性と前記第2保安属性とが互いに同じである時、前記第1アドレスを前記第2マスタ装置に伝送する請求項17に記載のキャッシュコヒーレントシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、キャッシュコヒーレントシステム(cache coherent system)に係り、特に、保安チェックを行うマスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システムとに関する。
【背景技術】
【0002】
コンピュータ科学において、キャッシュコヒーレンシ(cache coherency)とは、共有メモリシステムでクライアント(または、プロセッサ)のそれぞれに含まれたローカルキャッシュ間のコヒーレンシを意味する。クライアントのそれぞれが自身のみのローカルキャッシュを含み、クライアントがメモリを共有している時、クライアントの何れか1つのキャッシュがアップデートされる時、キャッシュコヒーレンシの問題が発生する。
キャッシュコヒーレンシの問題が発生すれば、共有メモリシステムは、キャッシュコヒーレンシのための動作を行うので、共有メモリシステムが共有メモリにデータを書込む時、書込み動作のレイテンシが増加する。
【0003】
キャッシュコヒーレントインターフェース、このキャッシュコヒーレントインターフェースに連結されたCPU、及びこのキャッシュコヒーレントインターフェースに連結されたGPUを含む従来のシステムで、非保安モードで動作するCPUがスヌープ要請をGPUに出力し、このGPUのキャッシュでキャッシュヒットが発生すれば、キャッシュに保存されたキャッシュライン(すなわち、ラインデータ)は、システムに連結された外部メモリ装置にライトバック(write−back)される。このライトバックが完了した後、CPUは、外部メモリ装置にライトバックされたキャッシュラインを読出しするための命令を外部メモリ装置を制御するコントローラに伝送する。したがって、ライトバックに関連したライトバックトラフィックと外部メモリ装置に保存された前記キャッシュラインの読み取りに関連したメモリ読出し要請トラフィックとが増加する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許出願公開第2011/0153944号明細書
【特許文献2】米国特許第8930638号明細書
【特許文献3】米国特許第7650479号明細書
【特許文献4】米国特許第6862669号明細書
【特許文献5】米国特許第8677073号明細書
【特許文献6】米国特許第8812804号明細書
【特許文献7】米国特許出願公開第2014/0115279号明細書
【特許文献8】米国特許第6842828号明細書
【特許文献9】米国特許第5680577号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明が解決しようとする技術的な課題は、キャッシュ効率を高めるために、キャッシュコヒーレントインターコネクトに連結されたマスタの間でスヌープ要請を行う場合、保安チェックのために発生する付加的なライトバックトラフィックとメモリ読出し要請トラフィックとを除去するために、スヌープ要請に対して従来のスレーブサイドフィルタを代替して、保安チェックを行うマスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システムとを提供するところにある。
【課題を解決するための手段】
【0006】
本発明の実施形態によるアプリケーションプロセッサは、第1保安属性を有する第1マスタ装置と、第2保安属性を有する第2マスタ装置と、マスタサイドフィルタと、前記第1マスタ装置、前記第2マスタ装置、及び前記マスタサイドフィルタに接続されたキャッシュコヒーレントインターコネクトと、を含み、前記第1マスタ装置は、前記第1保安属性を示す保安属性指示子と第1スヌープアドレスとを含むスヌープ要請を通信し、前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じて、前記第1マスタ装置から前記スヌープ要請を受信し、前記第2保安属性と前記スヌープ要請によって指示される前記第1保安属性とを比較し、前記第1保安属性と前記第2保安属性とが互いに異なる時、前記第1スヌープアドレスを前記第2マスタ装置に伝送しないことを決定し、前記第1保安属性と前記第2保安属性とが互いに同じである時、前記第1スヌープアドレスを前記第2マスタ装置に伝送することを決定して、スヌープ動作を実行する。前記第1保安属性は、前記第1マスタ装置に対する保安モードまたは非保安モードを指示し、前記第2保安属性は、前記第2マスタ装置に対する前記保安モードまたは前記非保安モードを指示する。
【0007】
前記第1スヌープアドレスを前記第2マスタ装置に伝送しないことを決定すれば、前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じて、第1キャッシュミスを前記第1マスタ装置に伝送する。
前記第2マスタ装置は、少なくとも1つのアドレスと前記少なくとも1つのアドレスに該当する各データを保存するキャッシュと、前記少なくとも1つのアドレスのそれぞれと前記マスタサイドフィルタから伝送された前記第1スヌープアドレスとを比較し、前記少なくとも1つのアドレスのうちから前記第1スヌープアドレスとマッチされるマッチングアドレスに該当するデータを前記マスタサイドフィルタに伝送し、前記少なくとも1つのアドレスのうちから前記第1スヌープアドレスとマッチされるマッチングアドレスが存在しない時、第2キャッシュミスを前記マスタサイドフィルタに伝送するキャッシュコントローラと、を含む。
【0008】
前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じて、前記第1キャッシュミス、前記データ、または前記第2キャッシュミスのうちの何れか1つを前記第1マスタ装置に伝送する。
前記アプリケーションプロセッサは、前記第1マスタ装置から伝送された制御信号に応答して、前記第2保安属性を決定するコントローラをさらに含み、前記コントローラは、専用伝送ラインを使って前記第2保安属性を前記マスタサイドフィルタに伝送する。
前記マスタサイドフィルタは、少なくとも1つのアドレスを保存するメモリ装置と、前記メモリ装置に連結され、前記第1保安属性と前記第2保安属性とを比較し、前記第1スヌープアドレスと前記少なくとも1つのアドレスのそれぞれとを比較する決定ロジック回路と、を含む。
【0009】
前記第1保安属性と前記第2保安属性とが一致し、前記第1スヌープアドレスと前記少なくとも1つのアドレスのうちからマッチングアドレスとが一致する時、前記決定ロジック回路は、前記第1スヌープアドレスを前記第2マスタ装置に伝送し、前記第1保安属性と前記第2保安属性とが一致しないか、前記第1スヌープアドレスと前記少なくとも1つのアドレスのそれぞれとが互いに異なる時、前記決定ロジック回路は、キャッシュミスを、前記キャッシュコヒーレントインターコネクトを通じて、前記第1マスタ装置に伝送する。
【0010】
前記メモリ装置は、各メモリ領域に対する保安属性をさらに保存し、前記決定ロジック回路は、前記第1保安属性が前記第2保安属性と同一であるか否かと、前記第1スヌープアドレスによって指示されたメモリ領域の第1アドレス属性が、前記少なくとも1つのアドレスのうちからマッチングアドレスによって指示されたメモリ領域の第2アドレス属性と同一であるか否かと、を判断し、前記決定ロジック回路は、前記第1保安属性と前記第2保安属性とが一致し、前記第1アドレスの属性と前記第2アドレスの属性とが一致する時、前記第1スヌープアドレスを前記第2マスタ装置に伝送する。
前記第1マスタ装置は、前記第2マスタ装置が前記保安モードから脱出し、前記非保安モードに進入する時、前記第2マスタ装置が前記保安モードで動作する間に、前記第2マスタ装置のキャッシュに保存されたあらゆるデータを削除する。
【0011】
前記アプリケーションプロセッサは、前記キャッシュコヒーレントインターコネクトに連結され、前記第1マスタ装置から受信されたメモリアクセス要請に応答して、メインメモリ装置をアクセスするスレーブサイドフィルタをさらに含み、前記スレーブサイドフィルタは、前記マスタサイドフィルタによって実行される前記スヌープ動作を行わない。
前記第1マスタ装置は、CPUであり、前記第2マスタ装置は、GPU(Graphics Processing Unit)、GPGPU(General−Purpose Computing on Graphics Processing Units)、またはDSP(Digital Signal Processor)である。
【0012】
本発明の実施形態によるデータ処理システムは、コントローラと、前記コントローラの外部に配され、前記コントローラに連結されたメインメモリ装置と、を含む。前記コントローラは、第1保安属性を有する第1マスタ装置と、第2保安属性を有する第2マスタ装置と、マスタサイドフィルタと、スレーブサイドフィルタと、前記第1マスタ装置、前記第2マスタ装置、前記マスタサイドフィルタ、及び前記スレーブサイドフィルタに接続されたキャッシュコヒーレントインターコネクトと、を含み、前記第1マスタ装置は、前記第1保安属性を示す保安属性指示子と第1スヌープアドレスとを含むスヌープ要請を通信し、前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトと前記第2マスタ装置との間に連結され、前記キャッシュコヒーレントインターコネクトを通じて、前記第1マスタ装置から前記スヌープ要請を受信し、前記第2保安属性と前記スヌープ要請によって指示される前記第1保安属性とを比較し、前記第1保安属性と前記第2保安属性とが互いに異なる時、前記第1スヌープアドレスを前記第2マスタ装置に伝送しないことを決定し、前記第1保安属性と前記第2保安属性とが互いに同じである時、前記第1スヌープアドレスを前記第2マスタ装置に伝送することを決定して、スヌープ動作を実行し、前記スレーブサイドフィルタは、前記キャッシュコヒーレントインターコネクトと前記メインメモリ装置との間に連結され、前記キャッシュコヒーレントインターコネクトを通じて、前記第1マスタ装置から受信されたメモリアクセス要請に応答して、前記メインメモリ装置に対するメモリアクセス動作を直接行う。
【0013】
前記第1保安属性は、前記第1マスタ装置に対する保安モードまたは非保安モードを指示し、前記第2保安属性は、前記第2マスタ装置に対する前記保安モードまたは前記非保安モードを指示し、前記第1スヌープアドレスを前記第2マスタ装置に伝送しないことを決定すれば、前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じて、第1キャッシュミスを前記第1マスタ装置に伝送する。
【0014】
前記第2マスタ装置は、少なくとも1つのアドレスと前記少なくとも1つのアドレスに該当する各データを保存するキャッシュと、前記少なくとも1つのアドレスのそれぞれと前記マスタサイドフィルタから伝送された前記第1スヌープアドレスとを比較し、前記少なくとも1つのアドレスのうちから前記第1スヌープアドレスとマッチされるマッチングアドレスに該当するデータを前記マスタサイドフィルタに伝送し、前記少なくとも1つのアドレスのうちから前記第1スヌープアドレスとマッチされるマッチングアドレスが存在しない時、第2キャッシュミスを前記マスタサイドフィルタに伝送するキャッシュコントローラと、を含む。
【0015】
前記マスタサイドフィルタは、前記キャッシュコヒーレントインターコネクトを通じて、前記第1キャッシュミス、前記データ、または前記第2キャッシュミスのうちの何れか1つを前記第1マスタ装置に伝送する。
前記データ処理システムは、前記第1マスタ装置から伝送された制御信号に応答して、前記第2保安属性を決定するコントローラをさらに含み、前記コントローラは、専用伝送ラインを使って前記第2保安属性を前記マスタサイドフィルタに伝送する。
前記マスタサイドフィルタは、少なくとも1つのアドレスを保存するメモリ装置と、前記メモリ装置に連結され、前記第1保安属性と前記第2保安属性とを比較し、前記第1スヌープアドレスと前記少なくとも1つのアドレスのそれぞれとを比較する決定ロジック回路と、を含む。
【0016】
本発明の実施形態によるキャッシュコヒーレントシステムは、キャッシュコヒーレントインターコネクトと、前記キャッシュコヒーレントインターコネクトに連結された第1マスタ装置と、第2マスタ装置と、前記キャッシュコヒーレントインターコネクトと前記第2マスタ装置との間に連結され、前記第1マスタ装置から伝送されたスヌープ要請に応答して、スヌープ動作を行うマスタサイドフィルタと、前記キャッシュコヒーレントインターコネクトと外部メモリ装置との間に連結され、前記第1マスタ装置から出力されたメモリアクセス要請に応答して、前記外部メモリ装置に対するメモリアクセス動作を行うスレーブサイドフィルタと、を含む。
【0017】
前記マスタサイドフィルタは、前記スヌープ要請を、前記キャッシュコヒーレントインターコネクトを通じて受信し、前記第2マスタ装置の第2保安属性と前記スヌープ要請に含まれた前記第1マスタ装置の第1保安属性とを比較し、前記第1保安属性と前記第2保安属性とが互いに異なる時、前記スヌープ要請に含まれた第1アドレスを前記第2マスタ装置に伝送せず、キャッシュミスを前記キャッシュコヒーレントインターコネクトに伝送し、前記第1保安属性と前記第2保安属性とが互いに同じである時、前記第1アドレスを前記第2マスタ装置に伝送する。
【発明の効果】
【0018】
本発明の実施形態によるマスタサイドフィルタを含むアプリケーションプロセッサまたはキャッシュコヒーレントシステムは、保安モードと非保安モードとを支援するデータ処理システムでスヌープ動作時に、保安検索のためのライトバックトラフィックとメモリ読出し要請トラフィックとを除去することができる。マスタサイドフィルタは、フルキャッシュコヒーレンシ(full cache coherency)を管理することができる。
【0019】
本発明の実施形態によるアプリケーションプロセッサまたはキャッシュコヒーレントシステムが、キャッシュコヒーレントネットワーク内で内部キャッシュを含むマスタ装置を含む時、アプリケーションプロセッサまたはキャッシュコヒーレントシステムのオーバーヘッドを減らすか、除去することができる。
本発明の実施形態によるマスタサイドフィルタを含むアプリケーションプロセッサまたはキャッシュコヒーレントシステムは、キャッシュ−コヒーレントインターコネクトのためにハードウェアを変更しなくても良い。
【0020】
本発明の実施形態によるマスタサイドフィルタを含むアプリケーションプロセッサまたはキャッシュコヒーレントシステムは、非保安考慮(non−security awareness or non trustzone awareness)を有するマスタ装置のためにハードウェアを変更しなくても良い。
本発明の実施形態によるマスタサイドフィルタを含むアプリケーションプロセッサまたはキャッシュコヒーレントシステムは、従来のソリューション(solutions)と比較する時、キャッシュコヒーレントネットワークのためのタイミングオーバーヘッドを除去することができる。
【0021】
本発明の実施形態によるマスタサイドフィルタを含むアプリケーションプロセッサまたはキャッシュコヒーレントシステムは、保安モードと非保安モードとの間の変換(または、スイッチング)のためのソフトウェアを実行することができるので、保安決定ロジック回路のための領域オーバーヘッド(area overhead)を減らすか、最小化することができる。
【図面の簡単な説明】
【0022】
図1】本発明の実施形態によるデータ処理システムのブロック図。
図2図1に示された本発明の実施形態によるマスタサイドフィルタと第2マスタ装置のブロック図。
図3図1に示されたマスタサイドフィルタと第2マスタ装置の動作を説明するフローチャート。
図4図1に示されたマスタサイドフィルタと第2マスタ装置の動作を説明する第1テーブル。
図5図1の第1マスタから出力されたスヌープ要請に応じたマスタサイドフィルタの動作を説明する図。
図6図1に示された本発明の実施形態によるマスタサイドフィルタと第2マスタ装置のブロック図。
図7図6に示されたマスタサイドフィルタと第2マスタ装置の動作を説明するフローチャート。
図8図6に示されたマスタサイドフィルタと第2マスタ装置の動作を説明する第2テーブル。
図9図6に示されたマスタサイドフィルタと第2マスタ装置の動作を説明する第3テーブル。
図10図1の第1マスタ装置から出力されたスヌープ要請に応じたマスタサイドフィルタの動作を説明する図。
図11図1に示された第2マスタ装置の動作モードと動作モードのそれぞれでのソフトウェア動作を概念的に説明する図。
図12図8に関して説明したような方法を要約するフローチャート。
図13図9に関して説明したような方法を要約するフローチャート。
【発明を実施するための形態】
【0023】
以下、添付した図面を参照して、本発明を詳しく説明する。
図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)に使われる。
【0024】
コントローラ200は、メインメモリ装置300の動作を制御することができる。コントローラ200は、キャッシュコヒーレント(cache coherent)システム、キャッシュコヒーレントネットワーク、またはキャッシュコヒーレントコントローラを多様に意味する。コントローラ200は、異種のコアクラスタ(heterogeneous core clusters)を含む装置を意味する。例えば、異種のコアクラスタは、キャッシュコヒーレントインターコネクト210に連結されたCPU(Central Processing Unit)、GPU、GPGPU、及びDSPを含みうるが、これに限定されるものではない。
【0025】
また、コントローラ200は、集積回路(IC)、システム・オン・チップ(System on Chip;SoC)、プロセッサ、アプリケーションプロセッサ、モバイルアプリケーションプロセッサ、マザーボード(motherboard)、チップセット(chipset)、または半導体チップの集合を多様に意味する。例えば、コントローラ200とメインメモリ装置300は、パッケージオンパッケージ(Package−on−Package)製造技術を用いて具現されうる。
【0026】
コントローラ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)が減少する効果がある。
【0027】
構成要素220、230、250、260、270、及び280は、キャッシュコヒーレントインターコネクト210を通じて信号を送受信することができる。
第1マスタ装置220は、第2マスタ装置240の動作モードを保安モード(secure mode)または非保安モード(non−secure mode)に設定または定義するための第1制御信号CTR1を、キャッシュコヒーレントインターコネクト210を通じて、第2コントローラ230に伝送しうる。保安モードは、保安が必要なデータを処理する保安動作モードを意味し、非保安モードは、保安が必要ではないデータを処理する非保安動作モードを意味するが、これに限定されるものではない。
【0028】
第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のメモリ領域または位置を指示することができる。
【0029】
第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)として具現可能である。
【0030】
SFR235に保存された第1制御信号CTR1またはSFR235に保存された制御データの一部によって(または、応答して)、第2マスタ装置240に関連した保安属性、例えば、第2保安属性AT2が決定されうる。第2保安属性AT2は、伝送ラインTLを通じてマスタサイドフィルタ250に提供されうる。伝送ラインTLは、専用(dedicated)伝送ラインであり得る。第2保安属性AT2は、第2マスタ装置240の動作モードが保安モードであるか、または非保安モードであるかを表わす情報(または、データ)であり得る。
【0031】
第2マスタ装置240は、SFR235に設定された(または、保存された)第2保安属性AT2に基づいて、第2マスタ装置240の動作モードを保安モードまたは非保安モードに設定することができる。第2マスタ装置240は、GPU、GPGPU、またはDSPで多様に具現可能であるが、これに限定されるものではなく、その内部にキャッシュ(cache)を有しており、メモリアクセス(memory access)が可能なマスタをいずれも含みうる。例えば、第2マスタ装置240は、非保安考慮(non−security awareness)を有するマスタ装置または保安考慮のないマスタ装置であり得る。
【0032】
マスタサイドフィルタ250は、キャッシュコヒーレントインターコネクト210と第1マスタ装置220との間に連結されうる。本発明の実施形態によるマスタサイドフィルタ250または250−1は、スヌープ動作(snoop operation)またはキャッシュスヌープ動作において、保安検索を行うことができる。マスタサイドフィルタ250は、マスタサイド保安フィルタと呼ばれる。
【0033】
マスタサイドフィルタ250がスヌープ動作時に、またはこのスヌープ動作に応答して保安検索を行うことができるので、マスタサイドフィルタ250を含むデータ処理システム100は、あらゆるスヌープヒット(または、あらゆるキャッシュヒット)に対してスレーブサイドフィルタ280を用いて行われる保安検索に依存する従来のデータ処理システムと比較して、ライトバックトラフィック(write−back traffic)とメモリ読出し要請トラフィック(memory read request traffic)とを除去することができる効果がある。
【0034】
マスタサイドフィルタ250は、第1マスタ装置220から伝送された第1スヌープ要請SREQ1を、キャッシュコヒーレントインターコネクト210を通じて受信し、第2マスタ装置240の第2保安属性AT2と第1スヌープ要請SREQ1に含まれた第1マスタ装置220の第1保安属性AT1とを互いに比較し、該比較の結果によって、第1スヌープ要請SREQ1に含まれたアドレスADDを第2マスタ装置240に伝送するか否かを決定することができる。
【0035】
例えば、マスタサイドフィルタ250は、第1保安属性AT1と第2保安属性AT2とが互いに異なる時、第1スヌープ要請SREQ1に含まれたアドレスADDを第2マスタ装置240に伝送せず、キャッシュミスを、キャッシュコヒーレントインターコネクト210を通じて、第1マスタ装置220に直ちに伝送(または、リターン(return))することができる。
しかし、マスタサイドフィルタ250は、第1保安属性AT1と第2保安属性AT2とが互いに同じである時、第1スヌープ要請SREQ1に含まれたアドレスADDを第2マスタ装置240に伝送しうる。
【0036】
アドレスADDの受信に応答して第2マスタ装置240は、マスタサイドフィルタ250から伝送されたアドレスADDにマッチされるアドレス(マッチングアドレス)が第2マスタ装置240の内部キャッシュに存在するか否かを判断し、該判断(または、アドレス判断)の結果によって、キャッシュミスまたはキャッシュヒットを決定し、該決定の結果(例えば、キャッシュミスまたはキャッシュヒット)をマスタサイドフィルタ250に伝送しうる。
【0037】
マスタサイドフィルタ250は、スヌープ動作で一次保安検索を行う。しかし、スレーブサイドフィルタ280は、当該スヌープ動作で一次保安検索を行わず、メインメモリ装置300に対するメモリアクセス要請(例えば、データ読出し要請)を処理することができる。例えば、メモリアクセス要請は、マスタサイドフィルタ250から伝送されたスヌープ動作の結果、例えば、キャッシュミスに基づいて第1マスタ装置220によって発生することがある。
たとえ、図1に示されたデータ処理システム100がシステム構成(system configuration)と他の目的のために、スレーブサイドフィルタ280とメインメモリ装置200とを含むが、保安考慮スヌープ動作のためには、キャッシュコヒーレントインターコネクト210とマスタサイドフィルタ250のみが要求される。
【0038】
第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の動作モードが保安モードであるか、または非保安モードであるかを表わす情報(または、データ)であり得る。
【0039】
第3マスタ装置270は、SFR265に設定された第3保安属性AT3に基づいて、第3マスタ装置270の動作モードを保安モードまたは非保安モードに設定することができる。第3マスタ装置270は、GPU、GPGPU、またはDSPとして具現可能であるが、これに限定されるものではない。例えば、第3マスタ装置270は、非保安考慮を有するマスタ装置または保安考慮のないマスタ装置であり得る。例えば、第3マスタ装置270は、第3保安属性AT3とアドレスを含む第2スヌープ要請SREQ2を生成することができる。
【0040】
マスタサイドフィルタ250は、第3マスタ装置270から伝送された第2スヌープ要請SREQ2を、キャッシュコヒーレントインターコネクト210を通じて受信し、第2マスタ装置240の第2保安属性AT2と第2スヌープ要請SREQ2に含まれた第3マスタ装置270の第3保安属性AT3とを互いに比較し、該比較の結果によって、第2スヌープ要請SREQ2に含まれたアドレスを第2マスタ装置240に伝送するか否かを決定することができる。
【0041】
例えば、マスタサイドフィルタ250は、第1保安属性AT1と第3保安属性AT3とが互いに異なる時、第2スヌープ要請SREQ2に含まれたアドレス(スヌープアドレス)を第2マスタ装置240に伝送せず、キャッシュミスを、キャッシュコヒーレントインターコネクト210を通じて、第3マスタ装置270で直ちに伝送しうる。しかし、マスタサイドフィルタ250は、第1保安属性AT1と第3保安属性AT3とが互いに同じである時、第2スヌープ要請SREQ2に含まれたアドレスを第2マスタ装置240に伝送しうる。
【0042】
第2マスタ装置240は、マスタサイドフィルタ250から伝送されたアドレスにマッチされるアドレスが第2マスタ装置240の内部キャッシュに存在するか否かを判断し、該判断の結果によって、キャッシュミスまたはキャッシュヒットを決定し、該決定の結果をマスタサイドフィルタ250に伝送しうる。
メインメモリ装置300は、コントローラ200の動作に必要なファームウエアとユーザデータを保存することができる。例えば、メインメモリ装置300は、DRAM(Dynamic Random Access Memory)として具現可能である。
【0043】
図2は、図1に示された本発明の実施形態によるマスタサイドフィルタと第2マスタ装置のブロック図であり、図3は、図1に示されたマスタサイドフィルタと第2マスタ装置の動作を説明するフローチャートであり、図5は、図1の第1マスタ装置から出力されたスヌープ要請に応じたマスタサイドフィルタの動作を説明する図である。
第2マスタ装置240の第2保安属性AT2は、保安モードを示すと仮定し、第2マスタ装置240に含まれたキャッシュ244は、各アドレスADD1、ADD3、ADD4、及びADD5に該当するデータDATA1、DATA3、DATA4、及びDATA5を保存すると仮定する。
【0044】
図1図2図3、及び図5を参照すれば、第1マスタ装置220は、第1保安属性AT1と第1アドレス(ADD=ADD1)を含む第1スヌープ要請SREQ1をキャッシュコヒーレントインターコネクト210に伝送しうる。
マスタサイドフィルタ250は、キャッシュコヒーレントインターコネクト210を通じて、第1保安属性AT1と第1アドレスADD1を含む第1スヌープ要請SREQ1を受信することができる(ステップS110)。
【0045】
マスタサイドフィルタ250は、第1保安属性AT1と第2保安属性AT2とを互いに比較することができる(ステップS120)。第1保安属性AT1と第2保安属性AT2とが互いに異なる時(ステップS120のNO)、マスタサイドフィルタ250は、第1アドレス(ADD=ADD1)を第2マスタ装置240に伝送せず、スヌープミス(MISS)をキャッシュコヒーレントインターコネクト210に伝送しうる(ステップS130)。スヌープミスは、キャッシュミスを意味する。したがって、キャッシュミスは、キャッシュコヒーレントインターコネクト210を通じて第1マスタ装置220に伝送することができる。
【0046】
例えば、図5の場合3(CASE3)に示したように、第1スヌープ要請SREQ1は、第3指示ビットNSMBと第1アドレス(ADD=ADD1)とを含む。第3指示ビットNSMBは、第1マスタ装置220の動作モードが非保安モードであることを指示し、第3指示ビットNSMBは、第1保安属性AT1を示す。すなわち、第1マスタ装置220に対する第1保安属性AT1は、非保安モードを示す。
【0047】
第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)。
【0048】
例えば、図5の場合1(CASE1)に示したように、第1スヌープ要請SREQ1は、第1指示ビットSMBと第1アドレス(ADD=ADD1)とを含む。第1指示ビットSMBは、第1マスタ装置220の動作モードが保安モードであることを指示し、第1指示ビットSMBは、第1保安属性AT1を示す。すなわち、第1マスタ装置220に対する第1保安属性AT1は、保安モードを示す。
【0049】
キャッシュコントローラ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は、保安モードを示す。
【0050】
キャッシュコントローラ242は、第1アドレス(ADD=ADD2)にマッチするアドレスがキャッシュ244に存在するか否かを判断することができる。第1アドレス(ADD=ADD2)にマッチするアドレスADD2がキャッシュ244に存在しない時、すなわち、キャッシュミス(または、スヌープミス)が発生する時(ステップS150のNO)、キャッシュコントローラ242は、スヌープミスをマスタサイドフィルタ250に伝送しうる(ステップS130)。マスタサイドフィルタ250は、スヌープミスをキャッシュコヒーレントインターコネクト210に伝送する。マスタサイドフィルタ250から伝送されたキャッシュミスは、キャッシュコヒーレントインターコネクト210を通じて第1マスタ装置220に伝送することができる。
【0051】
図5の場合2(CASE2)によってスヌープミスが発生する時、第1マスタ装置220は、第1アドレスADD2を含むメモリアクセス要請(例えば、データ読出し要請)を生成する。メモリアクセス要請は、キャッシュコヒーレントインターコネクト210を通じてスレーブサイドフィルタ280に伝送される。スレーブサイドフィルタ280は、メモリアクセス要請に対する保安検索を行った後、第1アドレスADD2を含むメモリアクセス要請に応答して、第1アドレスADD2に該当するメモリ領域に保存されたデータを読出す。読出されたデータは、キャッシュコヒーレントインターコネクト210を通じて第1マスタ装置220に伝送される。
【0052】
図4は、図1に示されたマスタサイドフィルタと第2マスタ装置の動作を説明する第1テーブルである。図1から図4を参照すれば、テーブル1(TABLE1)に示したように、要請者(例えば、220または270)の動作モードとハンドラ(例えば、240)の動作モードとが互いに同一である時、すなわち、保安属性が同一である時、マスタサイドフィルタ250は、要請者(例えば、220または270)から伝送されたスヌープ要請SREQ1またはSREQ2に含まれたアドレスをキャッシュコントローラ242に伝送しうる。要請者(例えば、220または270)は、発送者(sender)を意味し、ハンドラ(例えば、240)は、受信器(receiver)を意味する。
【0053】
しかし、要請者(例えば、220または270)の動作モードとハンドラ(例えば、240)の動作モードとが互いに異なる時、すなわち、保安属性が一致しない時、マスタサイドフィルタ250は、要請者(例えば、220または270)から伝送されたスヌープ要請SREQ1またはSREQ2に含まれたアドレスをキャッシュコントローラ242に伝送せず、スヌープミスを、キャッシュコヒーレントインターコネクト210を通じて、要請者(例えば、220または270)に伝送しうる。
【0054】
例えば、要請者220によって第1スヌープ要請SREQ1が発生すれば、2つの決定がシーケンス(sequence)で行われる。第1に、マスタサイドフィルタ250は、第1スヌープ要請SREQ1に対する保安チェック(または、保安属性AT1、AT2の比較)を行う(ステップS120)。第2に、保安チェックの結果、保安イッシュ(security issue)のない場合(または、保安属性AT1、AT2が同一である時;ステップS120のYES)、ハンドラ(例えば、240)のキャッシュコントローラ242は、キャッシュヒットまたはキャッシュミスをチェックする(ステップS150)。
【0055】
図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の全体、全体の一部、及びライン(または、キャッシュラインに該当するライン)を意味する。
【0056】
図6に例示的に示したように、各アドレスADD1、ADD3に該当する各メモリ領域は、保安モードSMでアクセス可能なメモリ領域(例えば、保安メモリ領域)であることを表わすことができる。また、各アドレスADD4、ADD5に該当する各メモリ領域は、非保安モードNSMでアクセス可能なメモリ領域(例えば、非保安メモリ領域)であることを表わすことができる。
第1マスタ装置220は、第1保安属性AT1と第1アドレス(ADD=ADD1)を含む第1スヌープ要請SREQ1をキャッシュコヒーレントインターコネクト210に伝送しうる。
【0057】
マスタサイドフィルタ250−1の決定ロジック回路252は、キャッシュコヒーレントインターコネクト210を通じて、第1保安属性AT1と第1アドレスADD1を含む第1スヌープ要請SREQ1を受信することができる(ステップS210)。
決定ロジック回路252は、第1保安属性AT1と第2保安属性AT2とを互いに比較し、第1アドレス(ADD=ADD1)にマッチされるアドレスがメモリ装置254に存在するか否かを判断することができる(ステップS220)。前記比較と前記判断は、順次または並列に行われる。
【0058】
第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に伝送することができる。
【0059】
場合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でアクセス可能な保安メモリ領域である。
【0060】
第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)。
【0061】
例えば、図10の場合5(CASE5)に示したように、第1スヌープ要請SREQ1は、第5指示ビットSMBと第1アドレス(ADD=ADD2)とを含む。第5指示ビットSMBは、第1マスタ装置220の動作モードが保安モードであることを指示し、第5指示ビットSMBは、第1保安属性AT1を示す。したがって、第1アドレス(ADD=ADD2)に該当するメモリ領域は、非保安動作モードでアクセス可能な非保安メモリ領域である。
【0062】
保安モードを指示する第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)。
【0063】
場合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を示す。
【0064】
非保安モードを示す第1保安属性AT1と非保安モードを示す第2保安属性AT2は、互いに一致する。また、第1スヌープ要請SREQ1に含まれた第1アドレス(ADD=ADD2)は、非保安メモリ領域を指示し、メモリ装置254に保存されたアドレスADD2は、非保安メモリ領域を指示する。したがって、第1スヌープ要請SREQ1に含まれた第1アドレス(ADD=ADD2)の属性とメモリ装置254に保存されたアドレスADD4の属性は、互いに一致する。
【0065】
決定ロジック回路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を示す。
【0066】
非保安モードを示す第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)。
【0067】
図8は、図6に示されたマスタサイドフィルタと第2マスタ装置の動作を説明する第2テーブルである。図6から図8に示された実施形態を参照すれば、要請者220の動作モードとハンドラ240の動作モードとが互いに一致し、第1スヌープ要請SREQ1に含まれたアドレスADDに該当するアドレスがメモリ装置254に存在する時、スヌープヒットが発生する。スヌープヒットは、キャッシュコントローラ242が決定ロジック回路252から出力されたアドレスADDに該当するデータを決定ロジック回路252に伝送することを意味する。
【0068】
例えば、要請者220の動作モードが保安モードSMであり、第1スヌープ要請SREQ1に含まれた第1アドレスADDが保安メモリ領域を指示し、ハンドラ240の動作モードが保安モードであり、第1アドレスADDにマッチされる第2アドレスがメモリ装置254に保存され、前記第2アドレスが保安メモリ領域を指示する時、スヌープヒットが発生する。
【0069】
しかし、要請者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に伝送しない。
【0070】
実施形態によって、決定ロジック回路252は、要請者220の保安属性とハンドラ240の保安属性との一致如何を判断するだけではなく、要請者220から伝送された第1スヌープ要請SREQ1に含まれた第1アドレスADDにマッチする第2アドレスが、メモリ装置254に存在するか否かを判断し、該判断の結果によって、第1アドレスADDを第2マスタ装置240に伝送するか、第1アドレスADDの第2マスタ装置240への伝送を遮断することができる。
【0071】
この場合、決定ロジック回路252は、第1アドレスADDの属性と第2アドレスの属性との一致如何を考慮しない。すなわち、要請者220の保安属性とハンドラ240の保安属性とが互いに一致し、要請者220から伝送された第1スヌープ要請SREQ1に含まれた第1アドレスADDにマッチする第2アドレスがメモリ装置254に存在すれば、決定ロジック回路252は、第1アドレスADDを第2マスタ装置240に伝送する。
【0072】
実施形態によって、決定ロジック回路252は、要請者220の保安属性とハンドラ240の保安属性との一致如何を判断するだけではなく、要請者220から伝送された第1スヌープ要請SREQ1に含まれた第1アドレスADDの属性とメモリ装置254に保存された第2アドレスの属性との一致如何を判断し、該判断の結果によって、第1アドレスADDを第2マスタ装置240に伝送するか、第1アドレスADDの第2マスタ装置240への伝送を遮断することができる。この場合、決定ロジック回路252は、第1アドレスADDの属性と第2アドレスの属性との一致如何を考慮する。
ここで、アドレスの属性は、アドレスに該当するメモリ領域が保安メモリ領域であるか、または非保安メモリ領域であるかを表わす情報(または、データ)であり得る。
【0073】
図9は、図6に示されたマスタサイドフィルタと第2マスタ装置の動作を説明する第3テーブルである。図6図7、及び図9に示された実施形態を参照すれば、第2保安属性AT2が保安モードを示し、メモリ装置254に保存された第2アドレスが保安メモリ領域を指示する時、第1スヌープ要請SREQ1に含まれた第1保安属性AT1が保安モードを示し、第1スヌープ要請SREQ1に含まれた第1アドレスADDが保安メモリ領域を指示すれば、スヌープヒットが発生することがある。この際、第1アドレスADD1と第2アドレスは、同一であると仮定する。
【0074】
しかし、第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が保安メモリ領域を指示する時、スヌープミスが発生することがある。
【0075】
図8に示された実施形態は、要請者220とハンドラ240のそれぞれの属性とアドレス領域(または、アドレス)の属性とを共に参照する方法を示し、図9に示された実施形態は、要請者220の属性とアドレス領域(またはアドレス)の属性とを参照する方法を示す。
図12は、図8に関して説明したような方法を要約するフローチャートであり、図13は、図9に関して説明したような方法を要約するフローチャートである。ここで、要請者モードとハンドラモードとの第1決定が行われる(ステップS1200)。そして、ターゲット領域(例えば、キャッシュに保存されたスヌープアドレスまたはマッチングアドレスによって指定されたメモリ領域)の保安属性または非保安属性の第2決定が行われる(ステップS1210)。そして、2つの決定(ステップS1200とステップS1210)に基づいて、スヌープヒット/ミス決定が行われる(ステップS1220)。
【0076】
すなわち、各要請者と各ハンドラだけではなく、ターゲット領域の保安属性と非保安属性とに対する動作モードが考慮される間に、スヌープヒット/ミス決定は、要請者、ハンドラ、及びメモリ領域の間で多様に割り当てられる。図9図12図13とを比較すれば、要請者とハンドラの動作モードは、考慮する必要がない。その代りに、現在スヌープ要請は考慮され、スヌープ要請が保安または非保安動作モード(例えば、保安属性を指示するデータを考慮して)であるかに関する決定が行われる(ステップS1300)。スヌープ要請が保安モードである時(ステップS1300のYES)、ターゲットアドレス、例えば、スヌープアドレスが保安(メモリ)領域を指示するか否かの決定が行われる(ステップS1310)。ターゲットアドレスが保安領域を指示する時(ステップS1310のYES)、スヌープヒットが生成される(ステップS1330)。前記ターゲットアドレスが、前記保安領域を指示しない時(ステップS1310のNO)、スヌープミスが生成される(ステップS1340)。
【0077】
しかし、スヌープ要請が非保安モードである時(ステップS1300のNO)、ターゲットアドレス、例えば、スヌープアドレスが保安(メモリ)領域を指示するか否かの決定が行われる(ステップS1320)。このターゲットアドレスが、保安領域を指示する時(ステップS1320のYES)、スヌープミスが生成される(ステップS1340)。このターゲットアドレスが、保安領域を指示しない時(ステップS1320のNO)、スヌープヒットが生成される(ステップS1330)。
【0078】
図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は、保安モードを示す。
【0079】
ソフトウェア(SW)は、キャッシュ244に保存されたあらゆるデータを削除するために、キャッシュコントローラ242を制御することができる。キャッシュ244に保存されたあらゆるデータが削除されれば(CACHE FLUSH1)、ソフトウェア(SW)の制御によって、第2マスタ装置240は、保安モードで動作することができる。第2マスタ装置240が保安モードで動作する間に、キャッシュ244にはデータを保存することができる。
【0080】
次いで、第1マスタ装置220は、第2マスタ装置240の動作モードを非保安モードに設定するための第1制御信号CTR1を第2コントローラ230に伝送しうる。第2コントローラ230は、第1制御信号CTR1をSFR235に設定することができる。SFR235に設定された第1制御信号CTR1によって、第2保安属性AT2は、非保安モードを示す。
【0081】
ソフトウェア(SW)は、第2マスタ装置240が保安モードで動作する間に、キャッシュ244に保存されたあらゆるデータを削除するために、キャッシュコントローラ242を制御することができる。キャッシュ244に保存されたあらゆるデータが削除されれば(CACHE FLUSH2)、ソフトウェア(SW)の制御によって、第2マスタ装置240は、非保安モードで動作することができる。したがって、第2マスタ装置240が非保安モードで動作を始める前(または、直前)に、保安モードで動作する間に、キャッシュ244に保存されたあらゆるデータが削除されるので、コントローラ200の保安が向上する効果がある。
【0082】
すなわち、保安動作モードの開始(または、進入)と保安動作モードの終了(または、脱出(exit))でキャッシュフラッシュ(cache flush)動作(CACHE FLUSH1とCACHE FLUSH2)が行われる。したがって、キャッシュ244に保存されたあらゆるデータは削除される。例えば、キャッシュ244のアドレス別に、またはキャッシュ244のキャッシュライン別に、属性が支援されない時、または属性が確認されない時、前述したように、キャッシュ244に保存されたあらゆるデータは削除されうる。しかし、キャッシュ244のアドレス別に、またはキャッシュ244のキャッシュライン別に、属性が支援される時、または属性が確認される時、キャッシュ244に保存されたあらゆるデータは削除されないこともある。
【0083】
図1から図11を参照して説明したように、スヌープ制御(snoop control)のためにマスタサイドフィルタ250がコントローラ200に具現され、スヌープ動作(または、スヌープ動作で一次保安検索)がスレーブサイドフィルタ280の代わりに、マスタサイドフィルタ250で行われるので、スヌープ動作(または、スヌープ動作で一次保安検索)のためにスレーブサイドフィルタ280に対するアクセスは、これ以上要求されない。
スヌープ時間またはスヌープレイテンシは、第1マスタ装置220と第2マスタ装置240との間で送受信する信号のみで決定されうる。したがって、マスタサイドフィルタ250を含むコントローラ200でスヌープ動作のためのタイミングオーバーヘッド(timing overhead)は除去される。
【0084】
本発明は、図面に示された実施形態を参考にして説明されたが、これは例示的なものに過ぎず、当業者ならば、これより多様な変形及び均等な他実施形態が可能であるという点を理解できるであろう。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想によって決定されるべきである。
【産業上の利用可能性】
【0085】
本発明は、マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システムとに使われる。
【符号の説明】
【0086】
100:データ処理システム
200:コントローラ
210:キャッシュコヒーレントインターコネクト
220:第1マスタまたは第1マスタ装置
230:保安属性コントローラ
240:第2マスタまたは第2マスタ装置
242:キャッシュコントローラ
244:キャッシュ
250、250−1:マスタサイドフィルタ
252:決定ロジック回路
254:メモリ装置
280:スレーブサイドフィルタ
300:外部メモリ装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13