説明

情報処理装置

【課題】プロセッサからの不正なアドレスへのキャッシュアクセスを遮断する機構を、キャッシュアクセスにかかる時間に対するオーバーヘッドを少なく実現する。
【解決手段】本発明は、アクセスが許可されるアドレス範囲が異なる複数のアプリケーション群100、101からキャッシュメモリ120へのアクセスを制御し、不正アドレスへのアクセスを遮断するキャッシュメモリである。各アプリケーション群にそれぞれIDを付け、キャッシュメモリのタグフィールドを拡張し、キャッシュフィルを行う際にこのIDを記録しておく。ヒット判定の際に拡張タグフィールドとアクセス元のアプリケーション群のIDを比較することでアクセス制御を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置に関するものであり、特に計算機の中央処理装置(CPU)に用いられるキャッシュメモリに関するものである。
【背景技術】
【0002】
今日のプロセッサ、特に組み込み機器用途のマイコンでは、汎用的処理を行うCPUコアと、特定処理向けの複数の周辺IPを1チップに構成し、この上で複数のアプリケーションソフトウェアが動作するようなシステムを構成する手法が用いられている。このようなシステムでは、複数のアプリケーションが一つのメインメモリ上の領域を分割して利用することとなる。
【0003】
プロセッサ内の、CPUコアからは、(1)ソフトウェアバグ、(2)ハードウェアバグ、(3)一時的なハード障害(α線によるソフトエラー等)、(4)悪意あるソフトウェアによって本来意図しないアクセスをアプリケーションプログラムが利用しているメモリ領域に対して発生することがある。このようなアクセスを、不正アドレスアクセスと呼ぶこととする。特に組み込み機器用途では、ソフトウェアバグによる製品の不良が問題となることが多い。
【0004】
前記の不正アドレスアクセスによる他のアプリケーションに対しての悪影響を防止するために、各アプリケーションごとにアクセス可能なアドレス範囲を設定し、不正アドレスアクセスを遮断するアクセス制御装置が必要となる。メインメモリに対しての不正アドレスアクセスを検出し遮断するアクセス制御装置については特許文献1において開示されている。
【0005】
【特許文献1】特開2004−334410号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
上述の不正アドレスアクセスを遮断するアクセス制御装置を備えた計算機システムにおいて、アクセス可能なアドレス範囲が異なるアプリケーション群ごとに専用のキャッシュメモリを用意すると、非常に大きなチップ面積が必要となるため、各アプリケーション群で共有のキャッシュメモリとしなければならない場合が存在する。
【0007】
アクセス可能なアドレス範囲が異なるアプリケーション群でキャッシュメモリを共有すると、キャッシュメモリにはアクセス制御装置を介さずにアクセスできるため、キャッシュメモリに対する不正アドレスアクセスが遮断できない。図1はキャッシュメモリに対する不正アドレスアクセスが起こる例を示したものである。100と101はそれぞれアクセス可能なアドレス範囲が異なるアプリケーション群であり、110と111に示すCPUコア上で動作している。CPUコア110と111はキャッシュメモリ120を共有しており、キャッシュメモリ120からシステムバス130とアクセス制御装置140を介して、メインメモリ150に繋がっている。200はアプリケーション100からのみアクセス可能なメインメモリ上のデータ210のコピーであり、201はアプリケーション101からのみアクセス可能なメインメモリ上のデータ211のコピーである。アプリ100を実行するCPUコア110とアプリ101を実行するCPUコア111がキャッシュメモリ120を共有していることで、220と221の正常なアクセス以外にも、222と223の不正アドレスアクセスが起こる可能性がある。
【0008】
上述のキャッシュメモリに対する不正アドレスアクセスを遮断するために、アクセス制御の機構がキャッシュメモリに必要となる。キャッシュメモリとは計算機システムの効率を向上させるための装置である。そのため、キャッシュメモリにアクセス制御の機構を付加する際になるべくキャッシュメモリアクセスにかかる時間を増加させないようにする必要がある。
【課題を解決するための手段】
【0009】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記の通りである。CPUコア、キャッシュメモリ、メインメモリ、CPUコアで実行中のアプリケーションに割り振られたドメインIDを検出する回路及び、ドメインIDとアクセス先アドレスから、メインメモリに対する不正なアクセスを検出し遮断するアクセス制御装置を備える情報処理装置であって、キャッシュメモリは、拡張されたタグフィールドにメインメモリでアクセスが許可された際のドメインIDを記録し、ヒット判定時に拡張されたタグフィールドとアクセス元のドメインIDとを比較し不一致のときはキャッシュミスとして扱う制御回路を有する。ここでのドメインIDとは、アクセスが許可されるアドレスが同じアプリケーション郡にまとめて割り振ったIDを示す。
【0010】
もしくは、CPUコアで実行するアプリケーション群を固定化し、CPUコアで実行中のアプリケーション群のドメインIDを検出する回路およびドメインIDの代わりにCPUコアIDを使用する。
【発明の効果】
【0011】
本発明により信頼性の高い情報処理装置を実現できる。
【発明を実施するための最良の形態】
【0012】
以下、本発明に係る情報処理装置の好適な実施の形態について、添付図面を参照しながら説明する。特に制限されないが、実施の形態の各ブロックを構成する回路素子は、公知のCMOS(相補型MOSトランジスタ)やバイポーラトランジスタ等の半導体集積回路技術によって、単結晶シリコンのような1個の半導体基板上に形成される。
【0013】
《実施の形態1》
図2は、第一の実施の形態のシステム構成を示したもので、CPUコア、キャッシュメモリ、アクセス制御装置、メインメモリ及びその上で動作するアプリケーション群によって構成されている。アプリケーション群100と101はそれぞれアクセス可能なアドレス範囲が異なるアプリケーション群であり、それぞれ、アプリケーション100はCPUコア110上でのみ、アプリケーション101はCPUコア111上でのみ動作している。CPUコア110と111はキャッシュメモリ120を共有しており、キャッシュメモリ120からシステムバス130とアクセス制御装置140を介して、メインメモリ150に繋がっている。
【0014】
アクセス制御装置140は、図3に示したように、アクセスが許可される、アクセス先アドレス範囲300と、アクセス元のドメインID310をテーブルとして持ち、システムバス130からメインメモリ150に対してアクセスリクエストがきた時に、アクセス先のアドレス320とアクセス元のドメインID330をテーブルの各エントリのアドレス範囲300とドメインID310を比較することで、不正なアクセスを検出しアクセス許可信号340を遮断する。本実施の形態では、アプリケーション群100はCPUコア110で実行され、アプリケーション群101はCPUコア111で実行されるため、アプリケーション群100、111とCPUコア110、111の組み合わせが一意に決まり、ドメインIDとしてCPUコアのIDを使用することができる。
【0015】
図4はCPUコア110とキャッシュメモリ120の間の接続を表したもので、リクエスト制御線400、アドレス線410、ドメイン線420、ライトデータ線430、リードデータ線440から構成される。リクエスト制御線400はCPUコア110からキャッシュメモリ120に対してのデータ書き込み/読み込みリクエストの制御信号、アドレス線410はデータ書き込み/読み込みのリクエスト先のアドレス、ドメイン線はデータ書き込み/読み込みのリクエスト元のドメインID(なお、本実施の形態ではCPUコアIDと同じとなる)、ライトデータ線は書き込みデータ、リードデータ線は読み込みデータをそれぞれ伝える信号線である。CPUコア111とキャッシュメモリ120、キャッシュメモリ120とシステムバス130、システムバス130とアクセス制御装置140、アクセス制御装置140とメインメモリ150の間の接続も同様である。
【0016】
キャッシュメモリにおいて、不正アドレスアクセスを遮断する仕組みを、図5、図6を用いて説明する。図5は、キャッシュメモリ構成とキャッシュヒット判定動作の模式図であり、図6は、データアクセスのフローチャートを示している。キャッシュメモリ内には、従来のキャッシュメモリからある、タグ311、キャッシュライン有効かどうかを表すVビット312、LRU313、データ314を各キャッシュラインごとに保持している。さらに、タグのフィールドを拡張し、拡張したタグフィールド310に、CPUコアから通知されてくるドメインID421を記録できる。
【0017】
CPUコアからデータアクセスリクエストが来た時、通知されるアドレス411から、キャッシュタグ412とキャッシュエントリ413を求める。キャッシュエントリ413からデータが記録されているキャッシュメモリのキャッシュラインのエントリ番号が分かり、そこに記録されているドメインID310、タグ311をCPUコアから通知されてきたドメインID421、キャッシュタグ412を比較回路500によって比較し、さらにVビット312との論理積回路501によって論理積を取ることでキャッシュのヒット判定を行う。
【0018】
キャッシュヒット判定において、Vビットが0又はタグが不一致だった場合は、キャッシュメモリ上にアクセスリクエストのアドレスのデータが存在しないので、システムバス130にメインメモリアクセスリクエストを出す。その要求がアクセス制御装置140で受け付けられ、アクセス判定が行われ、不正アドレスアクセスは遮断され、アクセス可能な場合はメインメモリ150からデータが返ってくる。アクセスが許可されキャッシュメモリにデータが返ってきた時、返ってきたデータをCPUコア110からデータアクセスリクエストと同時に通知されてくる、ドメインID421、キャッシュタグ412と共に、キャッシュエントリ413が示すキャッシュラインに記録する。
【0019】
キャッシュヒット判定において、Vビットが1、かつ、タグが一致、かつ、ドメインが一致の場合は、キャッシュメモリ上にアクセスリクエストのアドレスのデータが存在し、データアクセスリクエストのアドレス411、ドメインID421と同じアドレス、ドメインIDの組が以前にアクセスがメインメモリにアクセスを行いアクセスが許可されおり、アクセス判定はアドレス411とドメインID421によって行われるので、アクセスは許可されるべきものであり、不正アドレスアクセスではない。したがって、キャッシュメモリ上のデータにアクセスを行う。
【0020】
キャッシュヒット判定において、Vビットが1、かつ、タグが一致、かつ、ドメインが不一致の場合は、キャッシュメモリ上にアクセスリクエストのアドレスのデータは存在するが、キャッシュメモリにおいてはアクセスが許可されるかどうか判断することができない。したがって、この場合もキャッシュミスとして扱い前記キャッシュメモリ上にデータが存在しない場合と同様にシステムバス130にメインメモリアクセスリクエストを出し、アクセス制御装置140で不正アドレスアクセスを検出し遮断する。
【0021】
以上の通り、本実施の形態では、拡張されたタグフィールドとCPUコアID(または、ドメインID)の比較で一致の場合は、以前同様のアクセスが許可されたことを示しており、キャッシュメモリ上のアクセスは許可されるべきものである。また、拡張されたタグフィールドとCPUコアID(または、ドメインID)の比較で不一致の場合は、キャッシュメモリではアクセスが許可されるべきかどうかが判別できないため、キャッシュミスと同様に扱いキャッシュメモリ上のデータにはアクセスさせず、アクセス制御装置及びメインメモリにアクセスを行う。許可されるべきアクセスは、アクセス制御装置でアクセスが許可され、メインメモリのデータにアクセスすることができる。また、許可されるべきではない不正アドレスアクセスは、アクセス制御装置でアクセスが遮断され、キャッシュメモリに対してもメインメモリに対しても不正アドレスアクセスを遮断することができる。さらに、従来のキャッシュメモリと比して、本発明では、タグフィールドの幅がわずかに広げるだけなので、キャッシュメモリアクセスにかかる時間に対するオーバーヘッドは少ないものとなる。
【0022】
《実施の形態2》
図7は、第二の実施の形態のシステム構成を示したもので、CPUコア、キャッシュメモリ、アクセス制御装置、メインメモリ及びその上で動作するアプリケーション群によって構成されている。アプリケーション群100と101はそれぞれアクセス可能なアドレス範囲が異なるアプリケーション群であり、それぞれ、CPUコアに静的に割り当てられる。第二の実施の形態では、アプリケーション100はCPUコア110と111上のどちらかで、アプリケーション101はCPUコア112上でのみ動作する。CPUコア110と111と112はキャッシュメモリ120を共有しており、キャッシュメモリ120からシステムバス130とアクセス制御装置140を介して、メインメモリ150に繋がっている。
【0023】
第一の実施の形態においてCPUコアからキャッシュメモリにデータアクセスリクエスト共に通知されるドメインID421としてCPUコアIDを使用していたのに代えて、図8に示すような、CPUコア110と111からは同じIDを、CPUコア112からは110と111とは違うIDを固定的に出力するドメインID出力回路600を備えることで、アクセス元のアプリケーション群を検出することができる。他の仕組みは実施の形態1と同様とすることで、キャッシュメモリ上での不正アドレスの遮断を行うことができる。
【図面の簡単な説明】
【0024】
【図1】キャッシュメモリにおいて不正アドレスアクセスが起こる例を示す図である。
【図2】実施の形態1におけるシステム構成例を示す図である。
【図3】アクセス制御装置におけるアクセス許可テーブルを示す図である。
【図4】実施の形態1におけるCPUコアとキャッシュメモリの接続図である。
【図5】キャッシュメモリ構成とキャッシュヒット判定動作を示す図である。
【図6】データアクセスのフローチャートである。
【図7】実施の形態2におけるシステム構成例を示す図である。
【図8】実施の形態2におけるCPUコアとキャッシュメモリの接続図である。
【符号の説明】
【0025】
100、101 アクセス可能なアドレス範囲が異なるアプリケーション群
110、111、112 CPUコア
120 キャッシュメモリ
130 システムバス
140 アクセス制御装置
150 メインメモリ
220、221、222、223 CPUコアからキャッシュメモリデータに対するアクセス
200、201 キャッシュメモリ上のデータ
210、211 メインメモリ上のデータ
300 アクセスが許可されるアドレス範囲
310 アクセスが許可されるアクセス元
320 バスアクセスのアクセス先アドレス
330 バスアクセスのアクセス元ドメインID
340 メインメモリに対するアクセス許可信号
400 データアクセスリクエスト制御線
410 データアクセスアドレス線
411 データアクセスアドレス
412 データアクセスキャッシュタグ
413 データアクセスキャッシュエントリ
420データアクセスドメイン線
421データアクセスドメインID
430 データアクセスライトデータ線
440 データアクセスリードデータ線
500 比較回路
501 論理積回路
510 キャッシュヒット判定結果
600 ドメインID出力回路

【特許請求の範囲】
【請求項1】
アクセス可能なアドレス範囲の異なる複数のアプリケーション群が動作する情報処理装置において、
前記複数のアプリケーション群を実行する少なくとも一つのCPUと、
前記少なくとも一つのCPUにアクセスされ、前記アクセスに対応するデータを保持しているか否かを判定する判定回路を有するキャッシュメモリとを具備し、
前記キャッシュメモリは、
前記複数のアプリケーション群の夫々に割り当てられたID情報と、
前記キャッシュメモリに格納されているデータに対応するアドレス情報とを保持し、
前記少なくとも一つのCPUは、前記キャッシュメモリに対して、前記複数のアプリケーション群のうち実行しているアプリケーションに対応するID情報とアクセスアドレスとを出力し、
前記判定回路は、前記アクセスアドレスが前記キャッシュメモリに保持されているデータのアドレスと一致した場合であっても、前記ID情報が一致しない場合は、キャッシュミスとして判定することを特徴とする情報処理装置。
【請求項2】
請求項1において、
前記キャッシュメモリは、複数のエントリを有し、
前記複数のエントリの夫々は、前記ID情報、前記アドレス情報、および、前記キャッシュメモリに格納されているデータが有効か否かを示すVビットを有し、
前記判定回路は、前記アクセスアドレスにより指定されるエントリに保持された前記ID情報、前記アドレス情報、および、前記Vビットを用いて前記判定を行うことを特徴とする情報処理装置。
【請求項3】
請求項1において、
前記情報処理装置は、複数のCPUを有し、
前記複数のアプリケーション群は、夫々別のCPUにより実行され、
前記ID情報は、前記CPUのIDであることを特徴とする情報処理装置。
【請求項4】
請求項1において、
前記情報処理装置は、複数のCPUを有し、
前記複数のアプリケーション群のうち第1のアプリケーション群は、前記複数のCPUのうち2以上の第1のCPU群で実行され、
前記複数のアプリケーション群のうち第2のアプリケーション群は、前記複数のCPUのうち少なくとも一つの第2のCPU群で実行され、
前記第1のCPU群は、前記キャッシュメモリにアクセスする場合に、第1の前記ID情報を固定的に出力する第1のID情報出力回路を有し、
前記第2のCPU群は、前記キャッシュメモリにアクセスする場合に、前記第1のID情報とは異なる第2のID情報を固定的に出力する第2のID情報出力回路を有することを特徴とする情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2010−79765(P2010−79765A)
【公開日】平成22年4月8日(2010.4.8)
【国際特許分類】
【出願番号】特願2008−249483(P2008−249483)
【出願日】平成20年9月29日(2008.9.29)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】