TOP特許意匠商標
特許ウォッチ Twitter
10個以上の画像は省略されています。
公開番号2024119606
公報種別公開特許公報(A)
公開日2024-09-03
出願番号2023026627
出願日2023-02-22
発明の名称マイクロプロセッサ及びマイクロプロセッサの処理方法
出願人富士通株式会社
代理人弁理士法人フィールズ国際特許事務所
主分類G06F 9/38 20180101AFI20240827BHJP(計算;計数)
要約【課題】
悪意のプログラムによる投機実行を防止し、分岐予測機構の分岐予測バッファの規模を抑制する。
【解決手段】
実行コンテキストに紐づく数ビットのセキュリティIDをコンテキストテーブルに登録し、分岐予測機構の分岐予測バッファ内のエントリのタグに過去に実行した命令アドレスとその実行時のセキュリティIDを記憶しておく。分岐予測機構が、分岐予測時に、分岐予測対象の命令アドレスと実行コンテキストに紐づくセキュリティIDで分岐予測バッファ内のエントリを検索し、一致するエントリの分岐ターゲットアドレスを命令アドレス生成部に応答する。セキュリティIDのビット数は、実行コンテキスト及び実行コンテキストに含まれるプロセスを識別するプログラムIDのビット数より少ない。
【選択図】図5
特許請求の範囲【請求項1】
命令のフェッチ先である命令アドレスを生成し、前記命令アドレスを出力して命令フェッチを実行する命令アドレス生成部と、
プロセスに紐づけられた実行コンテキストを、前記実行コンテキストを識別可能なセキュリティIDと紐づけてそれぞれ記憶するM個の第1エントリを含むコンテキストバッファを有し、実行中のプロセスの前記実行コンテキストに紐付けられた前記セキュリティIDを取り出すコンテキストテーブル処理部と、
過去に実行された分岐命令の分岐命令アドレスと前記分岐命令が実行されたときの前記セキュリティIDとを記憶するタグと、前記過去に実行された分岐命令の分岐ターゲットアドレスとをそれぞれ記憶するN個の第2エントリを含む分岐予測バッファを有し、前記Nは前記Mより大きく、前記M及びNは2以上の自然数であり、
前記命令アドレス生成部が出力する命令アドレス及び前記コンテキストテーブル処理部から取り出された前記セキュリティIDと、前記第2エントリのタグ内の前記分岐命令アドレス及び前記セキュリティIDとを比較し、
前記比較で一致した前記第2エントリ内の前記分岐ターゲットアドレスを前記命令アドレス生成部に出力する分岐予測機構とを有し、
前記命令アドレス生成部は、前記分岐予測機構から出力された前記分岐ターゲットアドレスに基づいて前記命令フェッチを実行する、マイクロプロセッサ。
続きを表示(約 3,600 文字)【請求項2】
前記コンテキストテーブル処理部は、
前記実行コンテキストが切り替わったときに前記切り替わった実行コンテキストで前記M個の第1エントリを検索し、
前記切り替わった実行コンテキストがいずれかの前記第1エントリ内に登録がされている場合、ヒットした第1エントリ内の前記セキュリティIDを取り出し、
前記登録がされてなくかつ前記第1エントリに空きがある場合、前記切り替わった実行コンテキストを前記切り替わった実行コンテキストを識別するセキュリティIDと紐づけて前記第1エントリの空きエントリに登録し、登録した前記セキュリティIDを取り出し、
前記登録がされてなくかつ前記第1エントリに空きがない場合、前記切り替わった実行コンテキストを前記切り替わった実行コンテキストを識別するセキュリティIDと紐づけて前記第1エントリに上書き登録し、無効化要求を前記分岐予測機構に送信し、
前記分岐予測機構は、前記無効化要求に応答して、少なくとも前記上書き登録された元のセキュリティIDを記憶する前記第2エントリを無効化する、請求項1に記載のマイクロプロセッサ。
【請求項3】
前記コンテキストテーブル処理部は、
前記第1エントリに上書き登録するとき、前記セキュリティIDを昇順または降順に更新して、前記切り替わった実行コンテキストに前記更新したセキュリティIDを紐づけて前記第1エントリに上書き登録し、
前記セキュリティIDの更新が一周したとき、前記第2エントリ全てを無効化する無効化要求を前記分岐予測機構に送信し、
前記分岐予測機構は、前記無効化要求に応答して、前記第2エントリの全てを無効化する、請求項2に記載のマイクロプロセッサ。
【請求項4】
前記セキュリティIDは、前記第1エントリのエントリ番号であり、
前記コンテキストテーブル処理部は、前記第1エントリに上書き登録するとき、前記セキュリティIDとして前記第1エントリのエントリ番号を昇順または降順に更新する、請求項3に記載のマイクロプロセッサ。
【請求項5】
前記コンテキストテーブル処理部は、前記M個の第1エントリそれぞれに、更に前記実行コンテキストに紐付けられた追加セキュリティIDを記憶し、
前記分岐予測機構は、前記N個の第2エントリそれぞれのタグに、前記命令アドレスと前記追加セキュリティIDのハッシュと前記セキュリティIDを記憶する、請求項1に記載のマイクロプロセッサ。
【請求項6】
前記コンテキストテーブル処理部は、
前記実行コンテキストが切り替わったときに前記切り替わった実行コンテキストで前記M個の第1エントリを検索し、
前記切り替わった実行コンテキストがいずれかの前記第1エントリ内に登録がされている場合、ヒットした第1エントリ内の前記セキュリティID及び追加セキュリティIDを取り出し、
前記登録がされてなくかつ前記第1エントリに空きがある場合、前記切り替わった実行コンテキストを前記切り替わった実行コンテキストを識別するセキュリティID及び追加セキュリティと紐づけて前記第1エントリの空きエントリに登録し、登録した前記セキュリティID及び追加セキュリティIDを取り出し、
前記登録がされてなくかつ前記第1エントリに空きがない場合、前記切り替わった実行コンテキストを前記切り替わった実行コンテキストを識別するセキュリティID及び追加セキュリティと紐づけて前記第1エントリに上書き登録する、請求項5に記載のマイクロプロセッサ。
【請求項7】
前記セキュリティIDのビット数は、前記実行コンテキスト及び前記実行コンテキストに含まれる前記プロセスを識別するプログラムIDのビット数より少ない、請求項1に記載のマイクロプロセッサ。
【請求項8】
データのフェッチ先であるオペランドアドレスを生成し、前記オペランドアドレスを出力してデータフェッチを実行するオペランドアドレス生成部と、
プロセスに紐づけられた実行コンテキストを、前記実行コンテキストを識別可能なセキュリティIDと紐づけてそれぞれ記憶するM個の第1エントリを含むコンテキストバッファを有し、実行中のプロセスの前記実行コンテキストに紐付けられた前記セキュリティIDを取り出すコンテキストテーブル処理部と、
データをフェッチするデータ要求に応答して1次データキャッシュでキャッシュミスが発生したときのオペランドアドレスと、前記データ要求が実行されたときの前記セキュリティIDとを記憶するタグそれぞれ記憶するN個の第2エントリを含むプリフェッチキューを有し、前記Nは前記Mより大きく、前記M及びNは2以上の自然数であり、
前記オペランドアドレスが出力するオペランドアドレス及び前記コンテキストテーブル処理部から取り出された前記セキュリティIDと、前記第2エントリのタグ内の前記オペランドアドレスに隣接する1対のオペランドアドレス及び前記セキュリティIDとを比較し、
前記1対のオペランドアドレスのうち前記比較で一致したオペランドアドレスに基づいて、前記1次データキャッシュより下位のキャッシュまたはメインメモリにデータプリフェッチを実行するプリフェッチ制御部とを有する、マイクロプロセッサ。
【請求項9】
命令のフェッチ先である命令アドレスを生成し、前記命令アドレスを出力して命令フェッチを実行する命令アドレス生成部と、
プロセスに紐づけられた実行コンテキストを、前記実行コンテキストを識別可能なセキュリティIDと紐づけてそれぞれ記憶するM個の第1エントリを含むコンテキストバッファを有し、実行中のプロセスの前記実行コンテキストに紐付けられた前記セキュリティIDを取り出すコンテキストテーブル処理部と、
N個の第2エントリを含む分岐予測バッファを有する分岐予測機構とを有し、前記Nは前記Mより大きく、前記M及びNは2以上の自然数であり、
前記分岐予測機構は、
過去に実行された分岐命令の分岐命令アドレスと前記分岐命令が実行されたときの前記セキュリティIDとを記憶するタグと、前記過去に実行された分岐命令の分岐ターゲットアドレスとを前記N個の第2エントリそれぞれに記憶し、
前記命令アドレス生成部が出力する命令アドレス及び前記コンテキストテーブル処理部から取り出された前記セキュリティIDと、前記第2エントリのタグ内の前記分岐命令アドレス及び前記セキュリティIDとを比較し、
前記比較で一致した前記第2エントリ内の前記分岐ターゲットアドレスを前記命令アドレス生成部に出力し、
前記命令アドレス生成部は、前記分岐予測機構から出力された前記分岐ターゲットアドレスに基づいて前記命令フェッチを実行する、マイクロプロセッサの処理方法。
【請求項10】
データのフェッチ先であるオペランドアドレスを生成し、前記オペランドアドレスを出力してデータフェッチを実行するオペランドアドレス生成部と、
プロセスに紐づけられた実行コンテキストを、前記実行コンテキストを識別可能なセキュリティIDと紐づけてそれぞれ記憶するM個の第1エントリを含むコンテキストバッファを有し、実行中のプロセスの前記実行コンテキストに紐付けられた前記セキュリティIDを取り出すコンテキストテーブル処理部と、
N個の第2エントリを含むプリフェッチキューを有するプリフェッチ制御部とを有し、前記Nは前記Mより大きく、前記M及びNは2以上の自然数であり、
前記プリフェッチ制御部は、
データをフェッチするデータ要求に応答して1次データキャッシュでキャッシュミスが発生したときのオペランドアドレスと、前記データ要求が実行されたときの前記セキュリティIDとを前記N個の第2エントリそれぞれに記憶し、
前記オペランドアドレスが出力するオペランドアドレス及び前記コンテキストテーブル処理部から取り出された前記セキュリティIDと、前記第2エントリのタグ内の前記オペランドアドレスに隣接する1対のオペランドアドレス及び前記セキュリティIDとを比較し、
前記1対のオペランドアドレスのうち前記比較で一致したオペランドアドレスに基づいて、前記1次データキャッシュより下位のキャッシュまたはメインメモリにデータプリフェッチを実行する、マイクロプロセッサの処理方法。

発明の詳細な説明【技術分野】
【0001】
本発明は、マイクロプロセッサ(演算処理装置)及びマイクロプロセッサの処理方法に関する。
続きを表示(約 2,100 文字)【背景技術】
【0002】
マイクロプロセッサは、演算処理回路が形成された半導体チップまたは演算処理装置である。以下、マイクロプロセッサを略してプロセッサと称する。
【0003】
マイクロプロセッサは、分岐予測機構やプリフェッチ制御部などメモリアクセスを投機実行する回路を有する。分岐予測機構は、分岐命令の分岐先アドレスを分岐履歴に基づいて予測し、予測した分岐先アドレスの命令をプリフェッチし投機実行する。プリフェッチ制御部は、将来のメモリアクセス先を予測し、予測したアドレスのデータを予めメインメモリ等から読み出し、キャッシュに登録する。
【0004】
分岐予測機構について説明すると、プロセッサはプログラムの命令順に処理を実行する。そして、分岐命令(条件分岐、間接分岐等)を実行する場合、条件分岐の条件の成否により分岐先アドレスが確定し、間接分岐のレジスタ内の分岐先アドレスにより間接分岐の分岐先が確定する。いずれの分岐命令も、分岐命令に対して先行する命令の処理が完了しないと分岐先の命令アドレスが確定しない。この待ち時間による無駄をなくすために、分岐予測機構は、メモリからフェッチしようとする命令のアドレスについて、そのアドレスの命令が分岐命令か否か、分岐命令が分岐するか否か、分岐先アドレスがどこかなどを予測し、分岐先以降の命令を投機実行する。
【0005】
プリフェッチ制御部について説明すると、プロセッサがデータを連続してアクセスする場合、1次キャッシュでキャッシュミスすると下位のキャッシュやメインメモリにアクセスしてデータを読み出す必要がある。下位のキャッシュやメインメモリからデータを読み出す場合レイテンシが長いので、その待ち時間が無駄になる。そこで、プリフェッチ制御部は、メモリアクセスを実行して1次キャッシュでキャッシュミスするとそのアドレスを記憶し、次のメモリアクセスのアドレスに基づいてメモリアクセスのアドレスの方向を判別し、それによりその次のメモリアクセスのアドレスを予測する。そして、予測したアドレスでデータをプリフェッチすると、プリフェッチしたデータが1次キャッシュに格納される。そのため、その後プリフェッチしたデータについてメモリアクセスが発生したとき、1次キャッシュで確実にキャッシュヒットし、短時間でデータをフェッチすることができる。
【0006】
一方、非特許文献1によれば、プロセッサによる投機実行には、悪意の第三者により秘密のデータが盗まれるリスクがある。即ち、本来のプログラムが実行しない命令でも分岐予測機構やプリフェッチ機構により投機的に実行される。そのため、本来ならアクセスが禁止されている秘密のデータが投機実行されたロード命令により読み出され、読み出した秘密のデータをアドレスとするロード命令の投機実行行うとキャッシュメモリ内の秘密のデータのアドレスにロードデータが格納される。その後、キャッシュメモリをスキャンすると秘密のデータのアドレスへのレイテンシの短さにより、その秘密のデータが判明する。
【0007】
特許文献1には、上記のプロセッサの脆弱性の対策として、分岐予測機構内のバッファの各エントリの分岐履歴情報に、コンテキストやコンテキストに含まれるプログラム識別情報(プログラムID)を含めておき、実行中のプロセスのコンテキストやプログラムIDに対応する分岐履歴情報に基づいて分岐予測をすることが記載されている。コンテキストとは、実行中のプログラムのプロセスに紐付けられたパラメータ情報である。これにより、実行中のプログラムが残した分岐履歴情報による分岐予測が許可されて、悪意の第三者のプログラムが残した分岐履歴の分岐ターゲットアドレスの命令が投機実行されることが防止される。
【先行技術文献】
【特許文献】
【0008】
特表2021-516384号公報
特表2021-524621号公報
【非特許文献】
【0009】
https://googleprojectzero.blogspot.jp/2018/01/reading-privileged-memory-with-side.html?m=1
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、コンテキストやコンテキストに含まれるプログラムIDはそれ自体ビット数が長い。コンテキストのビット数は例えば100ビット以上であり、プログラムIDのビット数は例えば16ビット以上である。一方、分岐予測機構内の分岐予測バッファのエントリ数は通常数百から数千のオーダである。そのため、分岐予測機構内のバッファの各エントリの分岐履歴情報に、コンテキストやプログラムIDを含めると、分岐予測機構の回路規模が膨大になりプロセッサの面積増加と電力増加を招く。プリフェッチ機構も同様の課題を有する。
(【0011】以降は省略されています)

この特許をJ-PlatPatで参照する

関連特許

富士通株式会社
受信器および適応等化処理方法
8日前
富士通株式会社
半導体装置の製造方法及び基板
4日前
富士通株式会社
深層信念ネットワークのトレーニング
8日前
富士通株式会社
説明可能な人工知能のためのグラフ縮小
4日前
富士通株式会社
演算処理装置および演算処理装置の制御方法
5日前
富士通株式会社
データ制御方法およびデータ制御プログラム
5日前
富士通株式会社
表示プログラム、表示方法および情報処理装置
4日前
富士通株式会社
探索プログラム、探索方法および情報処理装置
5日前
富士通株式会社
演算プログラム、演算方法、および情報処理装置
8日前
富士通株式会社
グラフェン素子およびグラフェン素子の製造方法
5日前
富士通株式会社
表示プログラム,情報処理装置および表示制御方法
5日前
富士通株式会社
プログラム、データ処理方法およびデータ処理装置
5日前
富士通株式会社
情報処理プログラム,情報処理方法および情報処理装置
5日前
富士通株式会社
領域特定プログラム、領域特定装置、及び領域特定方法
4日前
富士通株式会社
情報処理装置、情報処理方法及びコンピュータプログラム
4日前
富士通株式会社
情報処理プログラム、情報処理方法、および情報処理装置
5日前
富士通株式会社
評価支援プログラム、評価支援方法、および情報処理装置
4日前
富士通株式会社
情報処理プログラム、情報処理装置、および情報処理方法
4日前
富士通株式会社
ミラー制御方法、ミラー制御プログラム及びミラー制御装置
5日前
富士通株式会社
設置場所検出プログラム、システムおよび設置場所検出方法
5日前
富士通株式会社
ニューラルネットワークのドメイン適応訓練の方法及び装置
4日前
富士通株式会社
リーフセルのトランジスタ配置プログラム、リーフセルのトランジスタ配置方法、および情報処理装置
8日前
個人
防災情報システム
25日前
個人
情報処理システム
12日前
日本精機株式会社
表示装置
5日前
個人
指先受の付いたマウス。
8日前
個人
家計支援システム2
1か月前
個人
介護者指名システム
19日前
コクヨ株式会社
収納ケース
1か月前
有限会社マイコム
制御盤のAI見積
1か月前
株式会社Haul
採用支援方法
20日前
キヤノン株式会社
情報処理装置
1か月前
エムケー精工株式会社
洗車場システム
21日前
中国電力株式会社
販売支援方法
1か月前
個人
施解錠制御システム
1か月前
個人
生活困窮者相談業務支援システム
1か月前
続きを見る