JP5414057B2 - マイクロコンピュータ - Google Patents
マイクロコンピュータ Download PDFInfo
- Publication number
- JP5414057B2 JP5414057B2 JP2010049377A JP2010049377A JP5414057B2 JP 5414057 B2 JP5414057 B2 JP 5414057B2 JP 2010049377 A JP2010049377 A JP 2010049377A JP 2010049377 A JP2010049377 A JP 2010049377A JP 5414057 B2 JP5414057 B2 JP 5414057B2
- Authority
- JP
- Japan
- Prior art keywords
- access
- mode
- general
- register
- storage means
- 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
Links
- 238000012545 processing Methods 0.000 claims description 63
- 238000010586 diagram Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 22
- 238000000034 method Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 16
- 230000000694 effects Effects 0.000 description 8
- 230000007704 transition Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30138—Extension of register space, e.g. register cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
Description
図1は、本発明の第1の実施の形態におけるマイクロコンピュータの概略構成を示すブロック図である。このマイコンは、CPU1と、周辺回路2と、メモリ3と、バスインタフェース4とを含み、それぞれが内部バス5を介して接続される。CPU1は、内部バス5に接続されるバスインタフェース4を介してマイコン外部のメモリや周辺機器にアクセスすることが可能である。
本発明の第2の実施の形態におけるマイクロコンピュータは、特権レベルのサポートにより階層的な保護機能(リングプロテクション)を実現する。以下、特権レベル0〜2の3階層をサポートする場合について説明するが、これに限られるものではなく、特権レベルが4階層以上であってもよい。なお、特権レベル0が最も権限が高く、特権レベル1、特権レベル2の順に低くなるものとする。
本発明の第3の実施の形態におけるマイクロコンピュータは、汎用レジスタへのアクセスの種類に応じて、アクセス許可/アクセス禁止を設定できるようにしたものである。なお、本実施の形態におけるマイクロコンピュータの概略構成などは、第1の実施の形態において説明したものと同様である。したがって、重複する構成および機能の詳細な説明は繰り返さない。
本発明の第4の実施の形態におけるマイクロコンピュータは、汎用レジスタをグループ化し、モード1においてどのグループに属する汎用レジスタに対するアクセスを許可するかを設定するものである。なお、本実施の形態におけるマイクロコンピュータの概略構成などは、第1の実施の形態において説明したものと同様である。したがって、重複する構成および機能の詳細な説明は繰り返さない。
本発明の第5の実施の形態におけるマイクロコンピュータは、バイト単位など、nビットの可変長単位で汎用レジスタに対するアクセスの許可/禁止を設定できるようにしたものである。一例として、バイト単位で汎用レジスタに対するアクセスの許可/禁止を設定する場合について以下に説明する。なお、本実施の形態におけるマイクロコンピュータの概略構成などは、第1の実施の形態において説明したものと同様である。したがって、重複する構成および機能の詳細な説明は繰り返さない。
本発明の第6の実施の形態におけるマイクロコンピュータは、プロセッサモードが複数ある場合に、特権レベルの階層ごとに汎用レジスタに対するアクセスの許可/禁止を設定できるようにしたものである。なお、本実施の形態におけるマイクロコンピュータの概略構成などは、第1の実施の形態において説明したものと同様である。したがって、重複する構成および機能の詳細な説明は繰り返さない。
第1〜第6の実施の形態においては、モードに応じてアクセス許可される汎用レジスタを変更する場合について説明した。すなわち、モードによってアクセス許可される汎用レジスタの本数が減るため、命令コードにおけるレジスタ指定フィールドのビット数を少なくすることができる。本発明の第7の実施の形態におけるマイクロコンピュータは、使用しないレジスタ指定フィールドを別の意味で使用し、同じビットパターンの命令コードであっても、モードによって別命令として解釈して実行するものである。
本発明の第8の実施の形態におけるマイクロコンピュータは、GRAレジスタなどの制御レジスタがアドレス空間にマッピングされるものである。なお、本実施の形態におけるマイクロコンピュータの概略構成、レジスタアクセス許可判定回路33の論理構成などは、第1〜第7の実施の形態において説明したものと同様である。したがって、重複する構成および機能の詳細な説明は繰り返さない。
本発明の第9の実施の形態におけるマイクロコンピュータは、GRA情報をCPUの外部から設定できるようにしたものである。なお、本実施の形態におけるマイクロコンピュータの概略構成、レジスタアクセス許可判定回路33の論理構成などは、第1〜第8の実施の形態において説明したものと同様である。したがって、重複する構成および機能の詳細な説明は繰り返さない。
Claims (16)
- 複数の汎用レジスタにアクセスしながら命令を実行するプロセッサを含んだマイクロコンピュータであって、
命令コードのデコード結果に応じて、命令の実行を制御する制御手段と、
前記複数の汎用レジスタのそれぞれに対するアクセス属性を記憶するアクセス属性記憶手段と、
前記プロセッサの動作を制御するためのモードを記憶するモード記憶手段と、
前記制御手段から汎用レジスタに対してアクセス要求がある場合に、前記アクセス属性記憶手段に記憶されるアクセス属性および前記モード記憶手段に記憶されるモードに応じて、当該汎用レジスタに対するアクセスを許可するか否かを判定するアクセス判定手段とを含み、
例外要求が発生したとき、前記アクセス属性記憶手段に記憶されるアクセス属性が他の記憶領域に退避されるとともに、前記モード記憶手段に記憶されるモードが変更される、マイクロコンピュータ。 - 前記アクセス判定手段は、汎用レジスタに対するアクセスを許可しない場合には、前記制御手段に対して例外要求を出力する、請求項1記載のマイクロコンピュータ。
- 前記アクセス判定手段は、前記モード記憶手段に記憶されるモードが第1のモードの場合に、前記アクセス属性記憶手段に記憶されるアクセス属性によってアクセス許可が設定される汎用レジスタに対するアクセスのみを許可し、
前記モード記憶手段に記憶されるモードが第2のモードの場合に、すべての汎用レジスタに対するアクセスを許可する、請求項1または2記載のマイクロコンピュータ。 - 前記アクセス判定手段は、前記モード記憶手段に記憶されるモードが第1のモードの場合に、前記アクセス属性記憶手段に記憶されるアクセス属性によってアクセス許可が設定される汎用レジスタに対するアクセスのみを許可し、
前記モード記憶手段に記憶されるモードが第2のモードの場合に、前記アクセス属性記憶手段に記憶されるアクセス属性によってアクセス禁止が設定される汎用レジスタに対するアクセスのみを許可する、請求項1または2記載のマイクロコンピュータ。 - 前記第1のモードはユーザモードに対応し、前記第2のモードはスーパバイザモードに対応する、請求項3または4記載のマイクロコンピュータ。
- 前記第1のモードはアプリケーションプログラムを実行するモードに対応し、前記第2のモードは割り込み処理ルーチンを実行するモードに対応する、請求項3または4記載のマイクロコンピュータ。
- 前記プロセッサは、複数の特権レベルを有し、
前記第1のモードに前記複数の特権レベルの一部が割り当てられ、前記第2のモードに他の特権レベルが割り当てられる、請求項3〜6のいずれかに記載のマイクロコンピュータ。 - 前記アクセス属性記憶手段は、前記複数の汎用レジスタのそれぞれに対して許可するアクセスの種類を記憶し、
前記アクセス判定手段は、前記制御手段から汎用レジスタに対してアクセス要求がある場合に、前記アクセス属性記憶手段に記憶される許可するアクセスの種類および前記モード記憶手段に記憶されるモードに応じて、当該汎用レジスタに対するアクセスを許可するか否かを判定する、請求項1記載のマイクロコンピュータ。 - 前記複数の汎用レジスタは、複数のグループに分けられており、
前記アクセス属性記憶手段は、前記複数のグループのいずれのグループに対するアクセスを許可するかを記憶し、
前記アクセス判定手段は、前記制御手段から汎用レジスタに対してアクセス要求がある場合に、前記アクセス属性記憶手段に記憶されるアクセスを許可するグループおよび前記モード記憶手段に記憶されるモードに応じて、当該汎用レジスタに対するアクセスを許可するか否かを判定する、請求項1記載のマイクロコンピュータ。 - 前記アクセス属性記憶手段は、前記複数の汎用レジスタのそれぞれに対してどの所定単位のデータにアクセスを許可するかを記憶し、
前記アクセス判定手段は、前記制御手段から汎用レジスタに対してアクセス要求がある場合に、前記アクセス属性記憶手段に記憶されるどの所定単位のデータにアクセスを許可するかに関する情報および前記モード記憶手段に記憶されるモードに応じて、当該汎用レジスタに対するアクセスを許可するか否かを判定する、請求項1記載のマイクロコンピュータ。 - 前記プロセッサは、複数の特権レベルを有しており、
前記アクセス属性記憶手段は、前記複数の汎用レジスタのそれぞれに対してどの特権レベルからのアクセスを許可するかを記憶し、
前記アクセス判定手段は、前記制御手段から汎用レジスタに対してアクセス要求がある場合に、前記アクセス属性記憶手段に記憶されるどの特権レベルからのアクセスを許可するかに関する情報および前記モード記憶手段に記憶されるモードに応じて、当該汎用レジスタに対するアクセスを許可するか否かを判定する、請求項1記載のマイクロコンピュータ。 - 前記マイクロコンピュータはさらに、命令コードを第1のモードに対応する命令コードと解釈してデコードする第1のデコード手段と、
前記命令コードを第2のモードに対応する命令コードと解釈してデコードする第2のデコード手段と、
前記モード記憶手段に記憶されるモードに応じて、前記第1のデコード手段によるデコード結果と前記第2のデコード手段によるデコード結果とのいずれかを選択的に前記制御手段に出力する選択手段とを含む、請求項1記載のマイクロコンピュータ。 - 前記第1のデコード手段は、命令コードに含まれる部分であって前記第2のデコード手段によればレジスタ指定フィールドと解釈してデコードされる部分の一部をオペコードと解釈してデコードする、請求項12記載のマイクロコンピュータ。
- 前記アクセス属性記憶手段は、制御レジスタとして実装される、請求項1記載のマイクロコンピュータ。
- 前記アクセス属性記憶手段は、アドレス空間にマッピングされる、請求項1記載のマイクロコンピュータ。
- 前記アクセス属性記憶手段は、前記プロセッサの外部から受けた情報を記憶する、請求項1記載のマイクロコンピュータ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010049377A JP5414057B2 (ja) | 2009-05-22 | 2010-03-05 | マイクロコンピュータ |
US12/783,252 US8789169B2 (en) | 2009-05-22 | 2010-05-19 | Microcomputer having a protection function in a register |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009124244 | 2009-05-22 | ||
JP2009124244 | 2009-05-22 | ||
JP2010049377A JP5414057B2 (ja) | 2009-05-22 | 2010-03-05 | マイクロコンピュータ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011008760A JP2011008760A (ja) | 2011-01-13 |
JP5414057B2 true JP5414057B2 (ja) | 2014-02-12 |
Family
ID=43125448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010049377A Active JP5414057B2 (ja) | 2009-05-22 | 2010-03-05 | マイクロコンピュータ |
Country Status (2)
Country | Link |
---|---|
US (1) | US8789169B2 (ja) |
JP (1) | JP5414057B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8788653B2 (en) * | 2011-01-05 | 2014-07-22 | F-Secure Corporation | Controlling access to web content |
CN106851029A (zh) * | 2012-06-14 | 2017-06-13 | 微软技术许可有限责任公司 | 通信事件的通知 |
GB2547912B (en) * | 2016-03-02 | 2019-01-30 | Advanced Risc Mach Ltd | Register access control |
GB2549774B (en) * | 2016-04-28 | 2019-04-10 | Imagination Tech Ltd | Method for handling exceptions in exception-driven system |
US10296338B2 (en) * | 2016-12-09 | 2019-05-21 | Intel Corporation | System, apparatus and method for low overhead control transfer to alternate address space in a processor |
KR102446733B1 (ko) * | 2017-11-30 | 2022-09-23 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치를 포함하는 전자 장치 |
US10929141B1 (en) | 2018-03-06 | 2021-02-23 | Advanced Micro Devices, Inc. | Selective use of taint protection during speculative execution |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63261449A (ja) * | 1987-04-20 | 1988-10-28 | Hitachi Ltd | デ−タ処理装置 |
JPS63271553A (ja) * | 1987-04-28 | 1988-11-09 | Nec Corp | 情報処理装置 |
JP2936603B2 (ja) * | 1989-11-06 | 1999-08-23 | 日本電気株式会社 | メモリ管理装置 |
JPH06282431A (ja) * | 1993-03-29 | 1994-10-07 | Hitachi Ltd | マイクロプロセッサ |
JP3822885B2 (ja) * | 1994-09-09 | 2006-09-20 | 株式会社ルネサステクノロジ | 1チップデータプロセッサ |
US5634046A (en) * | 1994-09-30 | 1997-05-27 | Microsoft Corporation | General purpose use of a stack pointer register |
JP3861925B2 (ja) * | 1994-12-09 | 2006-12-27 | セイコーエプソン株式会社 | エミュレーション装置およびその方法 |
US5812868A (en) * | 1996-09-16 | 1998-09-22 | Motorola Inc. | Method and apparatus for selecting a register file in a data processing system |
JP2000137619A (ja) * | 1998-11-02 | 2000-05-16 | Hitachi Ltd | マイクロコンピュータ |
US7065633B1 (en) * | 1999-01-28 | 2006-06-20 | Ati International Srl | System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU |
US7111176B1 (en) * | 2000-03-31 | 2006-09-19 | Intel Corporation | Generating isolated bus cycles for isolated execution |
JP3957948B2 (ja) * | 2000-04-12 | 2007-08-15 | 富士通株式会社 | 演算処理装置 |
US6666383B2 (en) * | 2001-05-31 | 2003-12-23 | Koninklijke Philips Electronics N.V. | Selective access to multiple registers having a common name |
GB2396034B (en) * | 2002-11-18 | 2006-03-08 | Advanced Risc Mach Ltd | Technique for accessing memory in a data processing apparatus |
AU2003278342A1 (en) * | 2002-11-18 | 2004-06-15 | Arm Limited | Security mode switching via an exception vector |
US7171539B2 (en) * | 2002-11-18 | 2007-01-30 | Arm Limited | Apparatus and method for controlling access to a memory |
US7383587B2 (en) * | 2002-11-18 | 2008-06-03 | Arm Limited | Exception handling control in a secure processing system |
GB2396713B (en) * | 2002-11-18 | 2005-09-14 | Advanced Risc Mach Ltd | Apparatus and method for controlling access to a memory unit |
US7149862B2 (en) * | 2002-11-18 | 2006-12-12 | Arm Limited | Access control in a data processing apparatus |
DE60304602T2 (de) * | 2002-11-18 | 2006-12-28 | Arm Ltd., Cherry Hinton | Ausnahmearten innerhalb eines sicheren verarbeitungssystems |
JP2007334432A (ja) * | 2006-06-12 | 2007-12-27 | Nec Electronics Corp | 情報処理装置及びそのアクセス制御方法 |
-
2010
- 2010-03-05 JP JP2010049377A patent/JP5414057B2/ja active Active
- 2010-05-19 US US12/783,252 patent/US8789169B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2011008760A (ja) | 2011-01-13 |
US8789169B2 (en) | 2014-07-22 |
US20100299751A1 (en) | 2010-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10360162B2 (en) | Processing systems and methods for transitioning between privilege states based on an address of a next instruction to be fetched | |
TWI769595B (zh) | 用以保護影子堆疊之處理器、方法、系統和指令 | |
EP3105681B1 (en) | Region identifying operation for identifying region of a memory attribute unit corresponding to a target memory address | |
JP5414057B2 (ja) | マイクロコンピュータ | |
JP5571201B2 (ja) | ハードウェアモードおよびセキュリティフラグに基づく、読み出される命令用のメモリエリアの制限 | |
US8010772B2 (en) | Protected function calling | |
TWI516937B (zh) | 用於資料讀取/寫入延伸分頁表違例之處理的決策動作決定技術之方法、裝置及非暫態機器可讀媒體 | |
US8074274B2 (en) | User-level privilege management | |
TWI770721B (zh) | 硬體處理器及處理器 | |
WO2006041758A1 (en) | Overriding processor configuration settings | |
JP5688165B2 (ja) | 特権レベルに関わらずセグメントレジスタの読み取りおよび書き込みを行うプログラム、コンピュータプロセッサ、および方法 | |
US10999284B2 (en) | Protecting supervisor mode information | |
JP5289688B2 (ja) | プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法 | |
EP3885950B1 (en) | Shadow stack isa extensions to support fast return and event delivery (fred) architecture | |
CN114691213A (zh) | 用于允许可信执行环境对异步退出作出反应的指令的装置、方法和系统 | |
CN116340033A (zh) | 受信任执行环境中的高效异常处置 | |
TW202416123A (zh) | 硬體處理器及處理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120724 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130711 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130723 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130920 |
|
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: 20131015 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131108 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5414057 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |