JP6758222B2 - 半導体装置及びそのメモリアクセス制御方法 - Google Patents

半導体装置及びそのメモリアクセス制御方法 Download PDF

Info

Publication number
JP6758222B2
JP6758222B2 JP2017031933A JP2017031933A JP6758222B2 JP 6758222 B2 JP6758222 B2 JP 6758222B2 JP 2017031933 A JP2017031933 A JP 2017031933A JP 2017031933 A JP2017031933 A JP 2017031933A JP 6758222 B2 JP6758222 B2 JP 6758222B2
Authority
JP
Japan
Prior art keywords
calculation unit
memory
access
sub
unit
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.)
Active
Application number
JP2017031933A
Other languages
English (en)
Other versions
JP2017211980A (ja
Inventor
誠二 望月
誠二 望月
勝重 松原
勝重 松原
連 今岡
連 今岡
植田 浩司
浩司 植田
亮司 橋本
亮司 橋本
俊之 加谷
俊之 加谷
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to US15/582,252 priority Critical patent/US10241706B2/en
Priority to EP17168956.5A priority patent/EP3246821B1/en
Priority to TW106115531A priority patent/TWI752956B/zh
Priority to CN201710343722.0A priority patent/CN107402892B/zh
Publication of JP2017211980A publication Critical patent/JP2017211980A/ja
Application granted granted Critical
Publication of JP6758222B2 publication Critical patent/JP6758222B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は半導体装置及びそのメモリアクセス制御方法に関し、例えばプログラムを実行する主演算部と、前記プログラムの一部の処理を実行する副演算部と、主演算部と副演算部とにより共有される共有メモリと、を有する半導体装置及びそのメモリアクセス制御方法に関する。
プログラムに基づき各種処理を行う半導体装置では、1つの半導体装置上で複数のプログラムが実行されることがある。このような半導体装置では、複数のプログラム間で利用するメモリ空間が干渉することを防ぐメモリ保護機構が求められる。そこで、メモリ保護機構の一例が特許文献1に開示されている。
特許文献1に記載の半導体装置は、制御対象装置の駆動制御を行う駆動制御部と前記駆動制御に係る安全制御を行う安全制御部とが1つのプロセッサ上に備えられる安全制御システムであって、予め駆動制御部、安全制御部それぞれに係るデータ格納領域として所定の記憶領域が割り当てられており、駆動制御部がアクセス不可の記憶領域として、安全制御部に割り当てられた記憶領域が登録されるメモリ保護情報記憶手段と、駆動制御部によるメモリアクセス実行の際、当該アクセス先とメモリ保護情報記憶手段に登録された登録情報を参照し、当該アクセス先が前記アクセス不可の記憶領域であった場合、駆動制御部による安全制御部に割り当てられた記憶領域へのメモリアクセスを阻止するメモリ保護手段と、を備える。
特開2014−48849号公報
半導体装置では、多様な処理を行う主演算部に加えて、当該主演算部で実行されるプログラムの一部の特定の処理を高速に実行する副演算部を備えることで、処理速度を向上させている。また、主演算部と副演算部とを有する半導体装置では、主演算部と副演算部とで共用される共用メモリを有する。このような半導体装置では、処理速度を高めるために副演算部が共用メモリに直接アクセスを行う。ここで、特許文献1に記載の技術では、主演算部上で発生する共用メモリに対するメモリ保護を行うことができる。しかしながら、主演算部も利用する共用メモリに副演算部が直接アクセスを行う場合、特許文献1の起技術では、副演算部による共用メモリへのアクセスに対するメモリ保護を行うことが出来ない問題が生じる。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、半導体装置及びそのメモリアクセス制御方法は、主演算部で実行されるプログラムの一部の処理を実行する副演算部と、主演算部と副演算部とにより共用される共用メモリを有し、副演算部が、主演算部から与えられるアクセス許可範囲アドレス値に基づき副演算部で実行される処理に起因して発生する共用メモリに対するアクセスを許可又は不許可とするメモリ保護部を有する。
一実施の形態によれば、半導体装置及びそのメモリアクセス制御方法は、副演算部から共用メモリへのアクセスに対してメモリ保護を行うことができる。
実施の形態1にかかる半導体装置のブロック図である。 実施の形態1にかかるハードウェアIPのブロック図である。 実施の形態1にかかる半導体装置において、信頼済みでないプログラムから利用要求があった時のメモリ配置とアクセス許可範囲との関係を説明する図である。 実施の形態1にかかる半導体装置において、信頼済みのプログラムから利用要求があった時のメモリ配置とアクセス許可範囲との関係を説明する図である。 実施の形態1にかかるハードウェアIPの起動シーケンス及びレジスタ設定シーケンスを説明するシーケンス図である。 実施の形態1にかかるハードウェアIPのメモリアクセスシーケンスの第1の例を説明するシーケンス図である。 実施の形態1にかかるハードウェアIPのメモリアクセスシーケンスの第2の例を説明するシーケンス図である。 実施の形態1にかかるハードウェアIPにおいてメモリアクセス違反が生じ他場合の半導体装置の処理シーケンスを説明するシーケンス図である。 実施の形態2にかかるハードウェアIPのブロック図である。 実施の形態2にかかるハードウェアIPの起動シーケンスを説明するシーケンス図である。 実施の形態2にかかるハードウェアIPの終了シーケンスを説明するシーケンス図である。 実施の形態2にかかるハードウェアIPに設定されたアクセス許可範囲のメモリ配置を説明する図である。 実施の形態3にかかる半導体装置のブロック図である。 実施の形態3にかかる半導体装置におけるメモリ配置とアクセス許可範囲との関係を説明する図である。 実施の形態4にかかるハードウェアIPのブロック図である。 実施の形態4にかかる半導体装置におけるメモリ配置とアクセス許可範囲との関係を説明する図である。
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
実施の形態1
図1に実施の形態1にかかる半導体装置1のブロック図を示す。図1に示すように、実施の形態1にかかる半導体装置1は、主演算装置(例えば、CPU10)、共有メモリ21、副演算装置(例えば、ハードウェアIP22、23)を有する。この明細書において、副演算装置(ハードウェアIP)とは、演算装置の内部に処理命令を格納するレジスタを有する演算装置であって、レジスタに設定された処理命令に基づいて処理を行う演算装置のことを言う。処理命令は、特定の処理内容を表すよう予め定義された数値であっても構わない。このとき、レジスタの値は、例えば主演算装置によって設定される。また、図1では、副演算装置として、それぞれが同一構成となる複数のハードウェアIPを有する例を示したが、ハードウェアIPの構成は、異なる構成であっても構わない。
CPU10は、プログラムを実行する。半導体装置1では、CPU10で実行されるプログラムによりハードウェアIP22、23及び共有メモリ21へのアクセスが生じる。CPU10は、プログラムを実行する演算部11を有する。図1では図示を省略したが、半導体装置1は、メモリコントローラ、内部メモリ、入出力インタフェース回路等を含み、それらはCPU10に含まれても良い。図1に示す例では、演算部11上でオペレーティングシステム(以下、OSと称す)と、アプリケーションプログラムAPPa、APPbとが実行されている。
OS及びアプリケーションプログラムAPPa、APPbは、高いレベルの検証が行われ、機能安全上若しくはセキュリティ上の保護が十分になされている信頼性が高いプログラム(以下、信頼済みプログラムと称す)と、検証のレベルが低く、機能安全上もしくはセキュリティ上の保護が十分になされていないプログラム(以下、信頼済みでないプログラム)が混在している。信頼済みプログラムであるか、それとも信頼済みでないプログラムであるかの情報はプログラムの中に予め含まれている。その基準は、たとえば国際標準化機構に定める基準に則って定められる。なお、実施の形態ではOSが1つの場合で説明を行っているが、実際にはこの限りではなく、複数のOSが存在していても良い。
信頼済みプログラムの一例としては、例えば、自動車における自動運転アプリケーションなどがあげられる。一方、信頼済みでないプログラムの一例としては動画再生アプリケーションなどがあげられる。信頼済みプログラムと信頼済みでないプログラムが同じCPU上で実行されるとき、信頼済みでないプログラムと信頼済みプログラムとの間でデータ干渉が起こらないようにする必要がある。なお、自動車の例をあげたが、実際にはこれらのアプリケーションに限定されるものでない。
共有メモリ21は、例えば、DRAM(Dynamic Random Access Memory)等の揮発性のメモリ、或いは、FLASHメモリ等の不揮発性のメモリである。共有メモリ21は、CPU10とハードウェアIP22、23からのアクセスを受ける。なお、共有メモリ21は、半導体装置1が利用するものであれば良く、CPU10及びハードウェアIP22、23とは別の半導体チップ上に設けられていても良い。
ハードウェアIP22、23は、CPU10で実行されるプログラムの一部の処理を実行するハードウェアである。ハードウェアIP22、23は、例えば、符号化画像の復号処理、画像認識処理の一処理として行われる画像変換処理、特徴点抽出処理等の特定の処理を専ら行う。図1では、ハードウェアIP22、ハードウェアIP23は同じ構成であるため、ハードウェアIP22を例にハードウェアIPの構成を説明する。
そこで、図2に実施の形態1にかかるハードウェアIP22のブロック図を示す。図2に示すように、ハードウェアIP22は、情報処理部31、レジスタ群32、メモリアクセスコマンド生成部33、メモリ保護部34を有する。
情報処理部31は、CPU10から与えられる動作命令に応じて所定の処理を行う。レジスタ群32は、複数のレジスタを有する。図2に示す例では、複数のレジスタのうち1つのレジスタにCPU10から与えられる処理命令を格納する。この処理命令は、ハードウェアIP22が如何なる動作を行うものかを指示するものである。また、複数のレジスタのうち2つのレジスタにCPU10から与えられるアクセス許可範囲アドレス値を格納する。また、このアクセス許可範囲アドレス値は、アクセス許可範囲の先頭のアドレスを示すアクセス許可先頭アドレスと、アクセス許可範囲の最終のアドレスを示すアクセス許可最終アドレスと、を含む。また、レジスタ群32に含まれるレジスタには、情報処理部31が処理すべきデータ、データ処理に用いる動作パラメータ等も格納される。なお、ハードウェアIP22、23では、アクセス許可先頭アドレスとアクセス許可最終アドレスを格納するレジスタの代わりに、アクセス許可先頭アドレスとアクセス許可領域サイズを格納するレジスタによりアクセス許可範囲を指定することもできる。
メモリアクセスコマンド生成部33は、情報処理部31でアクセス要求が発生した際に、そのアクセス要求に対応する共有メモリ21のアドレスを生成し、当該アクセスアドレスを付したアクセス要求を出力する。例えば、情報処理部31で共有メモリ21に格納されている画像の特定座標の画素値へのアクセス要求が発生した際に、メモリアクセスコマンド生成部33は情報処理部31から座標にて指定された当該画素が格納されている共有メモリ21のアドレスを生成する。
メモリ保護部34は、情報処理部31から共有メモリ21に発せられたアクセス要求のうち、アクセス許可範囲アドレス値により指定されたアクセス許可範囲内に対するアクセス要求を共有メモリに与え、アクセス許可範囲アドレス値により指定されたアクセス許可範囲外に対するアクセス要求を遮断する。なお、ハードウェアIP22では、メモリ保護部34が受信するアクセス要求はメモリアクセスコマンド生成部33から出力される。
また、メモリ保護部34は、アクセス許可範囲アドレス値により指定されたアクセス許可範囲外に対するアクセス要求を検出した場合には、CPU10にエラー通知ERR1を出力する。そして、CPU10は、エラー通知ERR1に応じてハードウェアIP22の動作停止処理、ハードウェアIP22を利用するプログラムの停止処理の少なくとも1つを割込処理として実行する。
上記したように、実施の形態1にかかる半導体装置1では、ハードウェアIP22に、情報処理部31から共有メモリ21に発せられたアクセス要求を有効に共有メモリ21に与えるか否を、CPU10により設定されたアクセス許可範囲アドレス値に基づき判断する。そこで、図3に実施の形態1にかかる半導体装置1におけるメモリ配置とアクセス許可範囲との関係を説明する図を示す。
図3及び図4では、半導体装置1上のメモリ及びレジスタに対する利用権限を示すメモリ空間をメモリ配置として示した。実施の形態1にかかる半導体装置1では、CPU10が信頼済みプログラム(例えば、機能安全アプリケーション)と信頼済みでないプログラム(例えば、非機能安全アプリケーション)を実行するため、CPU10は最も高い信頼性が要求されるメモリ空間であるシステム領域を含む全メモリ空間にアクセスが可能である。一方、ハードウェアIPについては、処理命令が非機能安全アプリケーションによる命令である場合、図3に示すように非機能安全アプリケーションに許可されたアクセス範囲のうちレジスタ群32に格納されたアクセス許可先頭アドレスからアクセス許可最終アドレスまでのメモリ空間にしかアクセスが許可されない。
処理命令が機能安全アプリケーションによる命令である場合も同様に、図4に示すように機能安全アプリケーションに許可されたアクセス範囲のうちレジスタ群32に格納されたアクセス許可先頭アドレスからアクセス許可最終アドレスまでのメモリ空間にしかアクセスが許可されない。
続いて、実施の形態1にかかる半導体装置1の動作について説明する。以下の説明では、半導体装置1の動作を、ハードウェアIPの起動動作及びハードウェアIPのレジスタ設定動作、ハードウェアIPのメモリアクセス動作、及び、メモリアクセス違反発生の動作に分けて説明を行う。
まず、図5に実施の形態1にかかるハードウェアIPの起動シーケンス及びレジスタ設定シーケンスを説明するシーケンス図を示す。図5に示す例における半導体装置1では、アプリケーションが起動した後にハードウェアIPに対する利用要求を発生させる。そして、アプリケーションは、ハードウェアIPの利用要求の発生に伴い、ハードウェアIP22に対してレジスタ設定命令を出力する。
アプリケーションは、ハードウェアIPの動作パラメータの1つとしてアクセス許可範囲アドレス値を含むレジスタ設定命令を機能安全アプリケーション(図5では、OSと記載)に出力する。OSは、アプリケーションからレジスタ設定命令を受け取ったことに応じて、ハードウェアIPにレジスタ設定命令を出力する。
そして、ハードウェアIPは、レジスタ設定命令に含まれる動作パラメータをレジスタ群32に保存する。また、ハードウェアIPは、レジスタ群32に格納された動作パラメータに含まれるアクセス許可範囲アドレス値に基づきメモリ保護部34にアクセス許可範囲を設定する。
そして、アプリケーションは、ハードウェアIPに対する具体的な処理指示を生成し、この処理内容を処理命令としてハードウェアIPに与える。ハードウェアIPは、この処理命令に応じて処理を開始する。
上述したように、CPU10は、ハードウェアIPのレジスタ群32に対するアクセス許可範囲アドレス値の格納処理をハードウェアIPの起動前に行う。
続いて、図6に実施の形態1にかかるハードウェアIPのメモリアクセスシーケンスの第1の例を説明するシーケンス図を示す。図6に示すように、実施の形態1にかかるハードウェアIPは、情報処理部31における処理によりメモリアクセスが発生した場合、情報処理部31がメモリアクセスコマンド生成部33にメモリアクセス要求を出力し、メモリアクセスコマンド生成部33がアクセスアドレスを生成する。そして、ハードウェアIPは、メモリアクセスコマンド生成部33で生成されたアクセスアドレスを用いて共有メモリ21へのアクセスを行う。このとき、ハードウェアIPでは、メモリアクセスコマンド生成部33で生成されたアクセスアドレスがアクセス許可範囲内にあるときは、アクセス要求を共有メモリ21に出力する。一方、ハードウェアIPでは、メモリアクセスコマンド生成部33で生成されたアクセスアドレスがアクセス許可範囲外にあるときは、アクセス要求を遮断してエラー通知ERR1をCPU10に通知する。
また、図7に実施の形態1にかかるハードウェアIPのメモリアクセスシーケンスの第2の例を説明するシーケンス図を示す。図7に示すように、ハードウェアIPのメモリアクセスシーケンスの第2の例では、メモリアクセスコマンド生成部33で生成されたアクセスアドレスがアクセス許可範囲外にあるときのメモリ保護部34の動作が第1の例と異なる。第2の例では、メモリ保護部34は、メモリアクセスコマンド生成部33で生成されたアクセスアドレスがアクセス許可範囲外にある、メモリアクセスコマンド生成部33から与えられたアクセスアドレスをアクセス範囲内のアドレスに丸め込む処理を行った後にアクセス要求を共有メモリ21に出力する。また、第2の例においても、メモリ保護部34は、メモリアクセス違反が生じた場合にはエラー通知ERR1をCPU10に通知する。
ハードウェアIPのメモリアクセスシーケンスの第1の例及び第2の例に示すように、メモリアクセス違反が生じた場合のメモリ保護部34の処理は、仕様に応じて様々なアクセス要求の遮断方法が考えられる。
続いて、図8に実施の形態1にかかるハードウェアIPにおいてメモリアクセス違反が生じた場合の半導体装置の処理シーケンスを説明するシーケンス図を示す。図8に示すように、実施の形態1にかかる半導体装置1は、ハードウェアIPからCPU10にエラー通知ERR1が通知された場合には、エラー通知ERR1の割り込み処理P1〜P3の少なくとも1つを行うことで発生原因となった処理を停止させる。
割り込み処理P1では、OSがハードウェアIPに対するリセット命令を発行する。ハードウェアIPは、このリセット命令に基づき情報処理部31、レジスタ群32、メモリアクセスコマンド生成部33、メモリ保護部34を初期状態に戻す初期化処理を実行し、待機状態に移行する。
割り込み処理P2では、OSがハードウェアIPを利用するアプリケーションに対して処理停止命令を発行する。処理停止命令を受けたアプリケーションは、その時点での処理状態にかかわらず終了処理を実行し、処理を停止する。
割り込み処理P3では、OSがハードウェアIPを利用するアプリケーションに関連するタスクを、その時点の処理状態にかかわらずに終了させる。図8に示す例では、割り込み処理P1〜P3が終了した時点でOSがエラー通知ERR1に応じて実行した割り込み処理を終了させる。
上記の説明より、実施の形態1にかかる半導体装置1では、ハードウェアIPに設けられるメモリ保護部34がCPU10から与えられるメモリアクセス範囲内のアクセス要求のみを共有メモリ21に出力する。これにより、実施の形態1にかかる半導体装置1では、CPU10からハードウェアIPのアクセス範囲を制限することができる。そして、実施の形態1にかかる半導体装置1では、ハードウェアIPのアクセス範囲を制限することで、CPU10上で動作するアプリケーションの不具合、或いは、ハッキング等に起因してハードウェアIPが他のアプリケーション利用領域に保持されているデータを破壊してしまうことを防止することができる。
また、実施の形態1にかかる半導体装置1では、CPU10で実行されるプログラムの一部の処理をハードウェアIPで処理することで、高い処理性能を実現することができる。そして、上記のハードウェアIPにおけるメモリ保護機構を有することで、実施の形態1にかかる半導体装置1は、高い処理性能と高い信頼性を共に実現することができる。
実施の形態2
実施の形態2では、ハードウェアIP22の別の形態となるハードウェアIP22aについて説明する。なお、実施の形態2の説明において、実施の形態1と同じ構成要素については、実施の形態1と同じ符号を付して説明を省略する。
図9に実施の形態2にかかるハードウェアIP22aのブロック図を示す。図9に示すように、実施の形態2にかかるハードウェアIP22aは、実施の形態1にかかるハードウェアIP22に対して、内部メモリ41及びリセット制御回路42を追加したものである。
内部メモリ41は、CPU10が利用するメモリ空間上にメモリ空間が定義されず、ハードウェアIP22aのみが利用可能なメモリである。内部メモリ41は例えばSRAM(Static Random Access Memory)である。
リセット制御回路42は、レジスタ群32、情報処理部31、メモリ保護部34、内部メモリ41、及び、共有メモリ21を少なくとも初期化する初期化処理を行う。また、リセット制御回路42は、ハードウェアIP22aの起動時及び終了時の少なくともどちらかで初期化処理を行う。図9に示す例では、リセット制御回路42は、CPU10から発せられる処理命令が処理命令格納レジスタに格納したことに応じて起動命令WKUが発せられたと認識して、当該起動命令WKUに基づき起動時の初期化処理を行い、情報処理部31が出力する終了通知信号END又はCPU10から発せられる停止命令STPに基づき終了時の初期化処理を行う。また、図9に示す例では、リセット制御回路42は、初期化信号RST1により内部メモリ41を初期化し、初期化信号RST2により情報処理部31を初期化し、初期化信号RST3によりメモリアクセスコマンド生成部33を初期化し、初期化信号RST4によりメモリ保護部34を初期化し、初期化信号RST5によりレジスタ群32を初期化する。また、リセット制御回路42は、共有メモリ21を初期化する際にレジスタ群32に格納されたアクセス許可範囲アドレス値を参照する。
続いて、実施の形態2にかかるハードウェアIP22aの動作について説明する。そこで、図10に実施の形態2にかかるハードウェアIPの起動シーケンスを説明するシーケンス図を示す。
図10に示すように、CPU10は、レジスタ設定命令をハードウェアIP22aに与える。ハードウェアIP22aは、レジスタ設定命令を受けて、レジスタ群32にレジスタ設定値を保存する。また、ハードウェアIP22aは、レジスタ群32に格納されたレジスタ設定値に含まれるアクセス許可範囲アドレス値に基づきメモリ保護部34にアクセス許可範囲を設定する。その後、CPU10は、処理命令をハードウェアIPに与える。
ハードウェアIP22aは、CPU10から処理命令が通知されたことに応じて、まず内部リセット処理を実行する。この内部リセット処理では、内部メモリ41、情報処理部31を少なくともリセットする。その後、ハードウェアIP22aのリセット制御回路42は、レジスタ群32に格納されたアクセス許可範囲アドレス値により指定されるアクセス許可範囲の共有メモリ21に対して初期化処理を行う外部リセット処理を実行する。この外部リセット処理が完了した後、ハードウェアIP22aは、処理命令に応じた処理を開始する。
続いて、図11に実施の形態2にかかるハードウェアIPの終了シーケンスを説明するシーケンス図を示す。図11では、ハードウェアIP22aにおいて所定の処理が完了した後の終了シーケンスを示したが、CPU10からの停止命令STPに基づき実行される終了シーケンスでも停止命令STPに基づき動作終了処理以降の処理が行われるのみで実質的には同じ動作となる。
図11に示すように、ハードウェアIP22aは、情報処理部31での処理が終了すると動作終了処理を開始する。この動作終了処理では、まず、ハードウェアIP22aのリセット制御回路42が、レジスタ群32に格納されたアクセス許可範囲アドレス値により指定されるアクセス許可範囲の共有メモリ21に対して初期化処理を行う外部リセット処理を実行する。その後、ハードウェアIP22aは、少なくとも、内部メモリ41、情報処理部31、レジスタ群32をリセットする内部リセット処理を実行する。そして、この内部リセット処理が完了したことに応じて、ハードウェアIP22aは、処理完了通知をCPU10に出力し、次の動作命令を待機する待機状態に移行する。
上記説明では、終了シーケンスでのリセット処理において、レジスタ群32、及び、共有メモリ21上のアクセス許可範囲に対応する領域全体を初期化する例を説明した。しかしながら、ハードウェアIP22aの利用した処理を行う場合、ハードウェアIP22aの動作終了後にアプリケーションがハードウェアIP22aの処理結果を参照するために、処理結果を残す必要が生じる場合がある。このような場合、ハードウェアIP22aは、残すべき処理結果をリセット制御回路42による初期化処理で初期化されない領域に保存する必要がある。そこで、リセット制御回路42が実施する外部リセット処理の別の例を図12を参照して説明する。
図12は実施の形態2にかかるハードウェアIPに設定されたアクセス許可範囲のメモリ配置を説明する図である。図12に示す例では、アクセス許可先頭アドレスとアクセス許可終了アドレスとにより指定されるアクセス許可範囲がハードウェアIP22の終了シーケンス中にリセットされない領域と、リセットされる領域とに分けられる。ハードウェアIP22aは、保存すべき情報を、例えば、終了シーケンス中にリセットされない領域に保存する。図12に示す例では、終了シーケンス中にリセットされない領域に動作完了時アドレス保存領域、処理結果保存領域、及び、アクセスログ保存領域が定義されている。そして、リセット制御回路42は、終了シーケンスの外部リセット処理では、終了シーケンス中にリセットされる領域のみを初期化する。終了シーケンスの外部リセット処理おいてリセットされない領域は、例えば、レジスタ群32に格納されるレジスタ設定値の1つとして指定される。レジスタ群32についても、終了シーケンス中にリセットされない領域と、リセットされる領域とを定義することで、残すべき処理結果をリセット制御回路42による初期化処理で初期化されないようにすることが可能である。また、レジスタ群32のうち残すべき処理結果を、共有メモリ21上のアクセス許可範囲内のリセットされない領域に保存してもよい。
ハードウェアIPは、複数のアプリケーションにより利用されることがある。このようなハードウェアIPでは、前の処理に利用したレジスタ設定値或いは処理結果が残っていると、残った情報により後でハードウェアIPを利用するアプリケーションの誤動作を引き起こす、或いは、残った情報をきっかけにアプリケーション間でハッキングが可能になる等の不具合が生じる。
しかしながら、実施の形態2にかかるハードウェアIP22aでは、ハードウェアIP22aの起動時及び終了時に利用していた情報を初期化する。これにより、実施の形態2にかかるハードウェアIP22aを有する半導体装置では、アプリケーション間のデータ干渉による不具合の回避、及び、ハッキングの可能性の低減を実現することができる。
特に、実施の形態2にかかるハードウェアIP22aに設けられる内部メモリ41は、CPU10が認識するメモリ空間上に定義されないメモリ空間となる。この内部メモリ41は、CPU10に認識されないため、通常はリセットすることができない。しかしながら、実施の形態2にかかるハードウェアIP22aでは、この内部メモリ41の初期化を実行することができる。これにより、内部メモリ41に残った情報による不具合を回避することができる。
実施の形態3
実施の形態3では、実施の形態1にかかる半導体装置1の別の形態となる半導体装置2について説明する。なお、実施の形態3の説明において、実施の形態1と同じ構成要素については、実施の形態1と同じ符号を付して説明を省略する。
図13に実施の形態3にかかる半導体装置2のブロック図を示す。図13に示すように、実施の形態3にかかる半導体装置2は、実施の形態1にかかる半導体装置1にメモリ管理ユニット51を追加したものである。メモリ管理ユニット51は、CPU10で実行されるプログラム毎にアクセス範囲を制御する。
図14に実施の形態3にかかる半導体装置2におけるメモリ配置とアクセス許可範囲との関係の一例を説明する図を示す。図14に示すように、実施の形態3にかかる半導体装置2では、メモリ管理ユニット51により、CPU10で実行されるプログラムのうち機能安全アプリケーションに対しては全てのメモリ空間にアクセスを許可する、一方、CPU10で実行されるプログラムのうち非機能安全アプリケーションに対しては、メモリ空間のうち機能安全アプリケーションに割り当てられた領域をメモリ管理ユニット51によりアクセス不可とすることができる。
上記説明より、実施の形態3にかかる半導体装置2では、メモリ管理ユニット51によりアプリケーション毎にアクセス許可範囲を設定することができる。実施の形態3にかかる半導体装置2は、アプリケーション間の干渉を防止することで、実施の形態1にかかる半導体装置1よりも信頼性を高めることができる。
実施の形態4
実施の形態4では、実施の形態1にかかるハードウェアIP22の別の形態となるハードウェアIP22bを説明する。なお、実施の形態4にかかる半導体装置は、実施の形態3にかかる半導体装置2のハードウェアIP22をハードウェアIP22bに置き換えたものとして説明するが、メモリ管理ユニット51を有していなくてもハードウェアIP22bを利用することは可能である。
図15に実施の形態4にかかるハードウェアIP22bのブロック図を示す。図15に示すようにハードウェアIP22bは、実施の形態1にかかるハードウェアIP22に動作パラメータ読込部61を追加したものである。動作パラメータ読込部61は、共有メモリ21のアクセス許可範囲内に設定されたパラメータ設定領域に格納された動作パラメータを読み込む。また、実施の形態4にかかるメモリアクセスコマンド生成部33は、パラメータ読込部61から与えられた動作パラメータに基づき共有メモリに対するアクセスアドレスを生成する。
実施の形態4にかかる半導体装置は、ハードウェアIP22bがCPU10のアプリケーションから指示された処理単位毎に異なるメモリ範囲をアクセス許可されて利用する。また、ハードウェアIP22bがCPU10のアプリケーションから指示された処理を実行している最中に利用するワークメモリを共有メモリ21に格納された動作パラメータにて指定する。
そこで、図16に実施の形態4にかかる半導体装置におけるメモリ配置とアクセス許可範囲との関係を説明する図を示す。図16に示す例は、ハードウェアIP22bを動画再生に利用されるものである。この動画再生処理では、フレーム毎に画像の復号を行う必要があり、ハードウェアIP22bはこの復号処理を行うものとする。また、図16に示す例では、ハードウェアIP22bがアプリケーションAPPaにより利用されるものである。さらに、図16に示す例は、ハードウェアIP22bがメモリ管理ユニット51により設定されるアプリケーションAPPaのアクセス許可範囲のうちフレーム0処理時のアクセス許可範囲を利用して復号処理を行うものである。
図16に示すように、ハードウェアIP22bが利用するアクセス許可範囲は、ハードウェアIP22bのレジスタ群32に設定されるアクセス許可範囲となる。つまり、ハードウェアIP22bのレジスタ群32に格納されるアクセス許可範囲アドレス値は、メモリ管理ユニット51においてハードウェアIP22bを利用するプログラムに許可されたメモリ管理領域内のアドレス値を有する。
そして、実施の形態4にかかる半導体装置では、ハードウェアIP22bのアクセス許可範囲内にワークメモリ0の先頭アドレス及びワークメモリ1の先頭アドレスが格納される。このワークメモリの先頭アドレスは、アプリケーションAPPaによりアクセス許可範囲内のアドレスが設定される。そして、ハードウェアIP22bは、動作パラメータ読込部61により、ワークメモリの先頭アドレスをハードウェアIP22bの処理単位毎に読み出し、アクセス許可範囲内のアドレスをワークメモリとして利用する。
上記説明より、実施の形態4にかかる半導体装置では、ハードウェアIP22bが利用する共有メモリ21上のワークメモリを、アプリケーションAPPaから自由に設定することが可能となる。一方で、ワークメモリの先頭アドレスを共有メモリ21上に設定することから、共有メモリ21の故障やアプリケーションAPPaの不具合により不正なアドレスを動作パラメータ読込部61が読み込み、さらに不正なアドレスがMMUにより設定されたアクセス許可範囲内であった場合には、異なるフレームでアクセス許可されたメモリ範囲を破壊する危険性がある。その場合でも、実施の形態4にかかる半導体装置は、メモリ保護部34によりフレーム毎に設定されたアクセス許可範囲外にアクセスし、異なるフレームで利用されるメモリ範囲を破壊することはない。これにより、実施の形態4にかかる半導体装置は、ハードウェアIP22bが利用する共有メモリ21条のワークメモリの配置に高い自由度を持ちながら、CPU10上で動作するアプリケーションの不具合、或いは、ハッキング等に起因してハードウェアIP22bが異なるフレームで利用するメモリ領域に保持されているデータを破壊してしまうことを防止することができる。
また、実施の形態4にかかる半導体装置は、メモリ管理ユニット51により設定されるハードウェアIP22bを利用するプログラムにアクセスが許可されるメモリ管理領域内に、さらにハードウェアIP22bのアクセス許可範囲を設定する。これにより、ハードウェアIP22bを利用するプログラム、又は、ハードウェアIP22bを利用するプログラムにより用いられる他のハードウェアIPによる共有メモリ21上の情報の破壊を防止することができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。例えば、上記説明では、機能安全アプリケーションと非機能安全アプリケーションとを用いた説明をしたが、機能安全アプリケーションと非機能安全アプリケーションとをホストOSとゲストOSに置き換えることもできる。
1、2 半導体装置
2 半導体装置
10 CPU
11 演算部
21 共有メモリ
22、22a、22b、23 ハードウェアIP
31 情報処理部
32 レジスタ群
33 メモリアクセスコマンド生成部
34 メモリ保護部
41 内部メモリ
42 リセット制御回路
51 メモリ管理ユニット
61 動作パラメータ読込部
ERR1、ERR2 エラー通知
RST1〜RST5 初期化信号

Claims (17)

  1. プログラムを実行する主演算部と、
    前記主演算部で実行されるプログラムの一部の処理を実行する副演算部と、
    前記主演算部と前記副演算部からのアクセスを受ける共有メモリと、を有し、
    前記副演算部は、
    前記主演算部から与えられるアクセス許可範囲アドレス値を格納するレジスタと、
    前記主演算部から与えられる動作命令に応じて所定の処理を行う情報処理部と、
    前記情報処理部から前記共有メモリに発せられたアクセス要求のうち、前記アクセス許可範囲アドレス値により指定されたアクセス許可範囲内に対するアクセス要求を前記共有メモリに与え、前記アクセス許可範囲アドレス値により指定されたアクセス許可範囲外に対するアクセス要求を遮断するメモリ保護部と、
    を有する半導体装置。
  2. 前記主演算部では、前記プログラムとして高い信頼性の信頼済みプログラムと信頼済みプログラムよりも信頼性が低い信頼済みでないプログラムとが実行され、前記副演算部の前記レジスタに対する前記アクセス許可範囲アドレス値の格納処理は、前記信頼済みプログラムにより行われる請求項1に記載の半導体装置。
  3. 前記主演算部は、前記副演算部の前記レジスタに対する前記アクセス許可範囲アドレス値の格納処理を前記副演算部の起動前に行う請求項1に記載の半導体装置。
  4. 前記メモリ保護部は、前記アクセス許可範囲アドレス値により指定されたアクセス許可範囲外に対するアクセス要求を検出した場合には、前記主演算部にエラー通知を行い、
    前記主演算部は、前記エラー通知に応じて前記副演算部の動作停止処理、前記副演算部を利用するプログラムの停止処理の少なくとも1つを割込処理として実行する請求項1に記載の半導体装置。
  5. 前記副演算部は、前記主演算部が利用するメモリ空間上にメモリ空間が定義されず、前記副演算部のみが利用可能な内部メモリと、
    前記レジスタ、前記情報処理部、前記メモリ保護部、前記内部メモリ、及び、前記共有メモリを初期化する初期化処理を行うリセット制御回路と、を有し、
    前記リセット制御回路は、前記副演算部の起動時及び終了時に前記初期化処理を行う請求項1に記載の半導体装置。
  6. 前記リセット制御回路は、前記アクセス許可範囲のうち前記主演算部から指定された特定アクセス許可範囲については前記初期化処理を行わない請求項5に記載の半導体装置。
  7. 前記主演算部で実行されるプログラム毎にアクセス範囲を制御するメモリ管理ユニットを更に有する請求項1に記載の半導体装置。
  8. 前記副演算部の前記レジスタに格納される前記アクセス許可範囲アドレス値は、前記メモリ管理ユニットにおいて前記副演算部を利用するプログラムに許可されたメモリ管理領域内のアドレス値を有する請求項7に記載の半導体装置。
  9. 前記副演算部は、
    前記共有メモリの前記アクセス許可範囲内に設定されたパラメータ設定領域に格納された動作パラメータを読み込むパラメータ読込部と、
    前記パラメータ読込部から与えられた前記動作パラメータに基づき前記共有メモリに対するアクセスアドレスを生成するアクセスアドレス生成部と、を更に有する請求項1に記載の半導体装置。
  10. 前記共有メモリは、前記主演算部及び前記副演算部とは別の半導体チップ上に設けられる請求項1に記載の半導体装置。
  11. プログラムを実行する主演算部と、
    前記主演算部で実行されるプログラムの一部の処理を実行し、前記主演算部から与えられるアクセス許可範囲アドレス値を格納するレジスタを含む副演算部と、
    前記主演算部と前記副演算部からのアクセスを受ける共有メモリと、を有する半導体装置におけるメモリアクセス制御方法であって、
    前記副演算部は、
    前記主演算部から与えられる動作命令に応じて所定の処理を行い、
    前記所定の処理に応じて前記共有メモリに発せられたアクセス要求のうち、前記アクセス許可範囲アドレス値により指定されたアクセス許可範囲内に対するアクセス要求を前記共有メモリに与え、前記アクセス許可範囲アドレス値により指定されたアクセス許可範囲外に対するアクセス要求を遮断する半導体装置のメモリアクセス制御方法。
  12. 前記主演算部では、前記プログラムとして高い信頼性の信頼済みプログラムと信頼済みプログラムよりも信頼性が低い信頼済みでないプログラムとが実行され、前記副演算部の前記レジスタに対する前記アクセス許可範囲アドレス値の格納処理は、前記信頼済みプログラムにより行われる請求項11に記載の半導体装置のメモリアクセス制御方法。
  13. 前記主演算部は、前記副演算部の前記レジスタに対する前記アクセス許可範囲アドレス値の格納処理を前記副演算部の起動前に行う請求項11に記載の半導体装置のメモリアクセス制御方法。
  14. 前記副演算部は、前記アクセス許可範囲アドレス値により指定されたアクセス許可範囲外に対するアクセス要求を検出した場合には、前記主演算部にエラー通知を行い、
    前記主演算部は、前記エラー通知に応じて前記副演算部の動作停止処理、前記副演算部を利用するプログラムの停止処理の少なくとも1つを割込処理として実行する請求項11に記載の半導体装置のメモリアクセス制御方法。
  15. 前記副演算部は、前記主演算部が利用するメモリ空間上にメモリ空間が定義されず、前記副演算部のみが利用可能な内部メモリを有し、
    前記副演算部の起動時及び終了時に前記内部メモリの初期化処理を行う請求項11に記載の半導体装置のメモリアクセス制御方法。
  16. 前記副演算部は、前記共有メモリ上の前記アクセス許可範囲のうち前記主演算部から指定された特定アクセス許可範囲については前記初期化処理を行わない請求項15に記載の半導体装置のメモリアクセス制御方法。
  17. 前記副演算部は、
    前記共有メモリの前記アクセス許可範囲内に設定されたパラメータ設定領域に格納された動作パラメータを読み込み、
    読み出した前記動作パラメータに基づき前記共有メモリに対するアクセスアドレスを生成する請求項11に記載の半導体装置のメモリアクセス制御方法。
JP2017031933A 2016-05-20 2017-02-23 半導体装置及びそのメモリアクセス制御方法 Active JP6758222B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US15/582,252 US10241706B2 (en) 2016-05-20 2017-04-28 Semiconductor device and its memory access control method
EP17168956.5A EP3246821B1 (en) 2016-05-20 2017-05-02 Semiconductor device and its memory access control method
TW106115531A TWI752956B (zh) 2016-05-20 2017-05-11 半導體裝置及其記憶體存取控制方法
CN201710343722.0A CN107402892B (zh) 2016-05-20 2017-05-16 半导体器件及其存储器访问控制方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016101282 2016-05-20
JP2016101282 2016-05-20

Publications (2)

Publication Number Publication Date
JP2017211980A JP2017211980A (ja) 2017-11-30
JP6758222B2 true JP6758222B2 (ja) 2020-09-23

Family

ID=60476204

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017031933A Active JP6758222B2 (ja) 2016-05-20 2017-02-23 半導体装置及びそのメモリアクセス制御方法

Country Status (1)

Country Link
JP (1) JP6758222B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023084879A (ja) 2021-12-08 2023-06-20 ルネサスエレクトロニクス株式会社 半導体装置及びハードウェア仮想化方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5908991B2 (ja) * 2011-12-21 2016-04-26 インテル・コーポレーション 安全なダイレクトメモリアクセス
JP2013156760A (ja) * 2012-01-27 2013-08-15 Renesas Electronics Corp データ処理装置
JP5962354B2 (ja) * 2012-09-06 2016-08-03 株式会社リコー 情報処理装置、プログラム及びシステム
JP5651209B2 (ja) * 2013-05-27 2015-01-07 ルネサスエレクトロニクス株式会社 マルチプロセッサシステム

Also Published As

Publication number Publication date
JP2017211980A (ja) 2017-11-30

Similar Documents

Publication Publication Date Title
US10509568B2 (en) Efficient secure boot carried out in information processing apparatus
US8627140B2 (en) Failure management method and computer
US10754991B2 (en) Method to isolate real-time or safety-critical software and operating system from non-critical software and operating system
US10552345B2 (en) Virtual machine memory lock-down
CN112417470B (zh) 实现gpu数据安全访问的方法、装置、电子设备及存储介质
TW201712593A (zh) 載入和虛擬化密碼金鑰
US9122894B2 (en) Method and apparatus for encryption
CN104798054A (zh) 安全区域内的分页
JP2007249323A (ja) マイクロコンピュータ
CN112818327A (zh) 基于TrustZone的用户级代码和数据安全可信保护方法及装置
US8843742B2 (en) Hypervisor security using SMM
CN112749397A (zh) 一种系统和方法
JP2005071303A (ja) プログラム起動装置
CN107402892B (zh) 半导体器件及其存储器访问控制方法
JP6758222B2 (ja) 半導体装置及びそのメモリアクセス制御方法
CN117234729B (zh) 动态内存保护方法、装置、计算机设备及存储介质
US10754967B1 (en) Secure interrupt handling between security zones
EP3619635B1 (en) Execution of subset of driver code in separate protection domain
JP2010146117A (ja) 情報処理装置、情報処理方法および情報処理プログラム
TW201502846A (zh) 安全事件偵測技術
CN108369558B (zh) 用于运行微控制器的方法
JP2015171008A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
US20240054250A1 (en) Method and system for dynamically updating stack canary
JP2005209178A (ja) メモリ保護装置、メモリ保護方法及びメモリ保護プログラム
JP2017208058A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191018

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200812

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200901

R150 Certificate of patent or registration of utility model

Ref document number: 6758222

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150