JP2008015720A - プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法 - Google Patents

プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法 Download PDF

Info

Publication number
JP2008015720A
JP2008015720A JP2006185087A JP2006185087A JP2008015720A JP 2008015720 A JP2008015720 A JP 2008015720A JP 2006185087 A JP2006185087 A JP 2006185087A JP 2006185087 A JP2006185087 A JP 2006185087A JP 2008015720 A JP2008015720 A JP 2008015720A
Authority
JP
Japan
Prior art keywords
register
bank
user
application program
cpu core
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.)
Granted
Application number
JP2006185087A
Other languages
English (en)
Other versions
JP5289688B2 (ja
Inventor
Tsukasa Yamamoto
宰 山本
Hitoshi Suzuki
均 鈴木
Rika Ono
梨香 小野
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.)
NEC Electronics Corp
Original Assignee
NEC 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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2006185087A priority Critical patent/JP5289688B2/ja
Priority to US11/822,235 priority patent/US20080010426A1/en
Publication of JP2008015720A publication Critical patent/JP2008015720A/ja
Application granted granted Critical
Publication of JP5289688B2 publication Critical patent/JP5289688B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register

Abstract

【課題】機能ユニットの制御情報などを格納するシステムレジスタに対するアプリケーションプログラムによる不正なアクセスを防止する。
【解決手段】プロセッサシステム1は、CPUコア10、CPUコア10に接続される機能ユニット11A及びB、並びに、CPUコア10及び機能ユニット11A及びBの制御情報及び動作状態を格納するシステムレジスタバンク12を備える。システムレジスタバンク12は、それぞれが1又は複数のシステムレジスタを含む複数のバンクBK1乃至BK4に分割されている。さらに、バンクBK4は、CPUコア10で実行されるアプリケーションプログラムによるアクセスが許可されるユーザバンクであり、バンクBK4を除く他のバンクBK1乃至BK3に対するアプリケーションプログラムによるアクセスが禁止される。
【選択図】図1

Description

本発明は、機能ユニットの制御情報等を格納するシステムレジスタに対するアクセス制御機構を備えるプロセッサシステムに関する。
自動車、航空機等の輸送機械や、携帯電話機、交換機等の通信機器に組み込まれ、これらの機械、機器の制御を行うプロセッサシステムは組み込みシステムと呼ばれている。組み込みシステムは、処理時間の向上、リアルタイム性の確保、プログラムのソフトウェア部品化による生産性向上等を実現するため、一般にマルチプログラミング環境を備えている。マルチプログラミング環境とは、複数のアプリケーションプログラムを定期的に切り替えて実行したり、あるイベントの発生に応じて実行するアプリケーションプログラムを切り替えたりすることによって、複数のアプリケーションプログラムがあたかも並列実行されているような環境を意味する。このようなマルチプログラミング環境は、CPUと、CPUで実行されるアプリケーションプログラムのスケジューリングを担うプログラムであるオペレーティングシステムプログラム(OS:Operating System Program)によって実現される。
上述した組み込みシステム等のプロセッサシステムは、CPU(Central Processing Unit)コアに様々な機能ユニットが結合された構成を有している。従来のプロセッサシステムの概略構成を図13に示す。
CPUコアは、命令をフェッチして実行する処理ユニットであり、命令フェッチユニット、フェッチされた命令をデコードして実行する整数演算ユニット、汎用レジスタファイル、並びに、後述する機能ユニットとのインタフェース等を備える。ここで、汎用レジスタファイルは、複数の汎用レジスタの集合である。汎用レジスタは、アプリケーションプログラムが汎用的に用いることができるレジスタであり、整数演算ユニット等のオペランドや演算結果を一時的に保持するアキュムレータ、あるいはメモリアクセス時のアドレス指定を行うためのアドレスレジスタとして使用される。
機能ユニットは、CPUコアに接続され、CPUコアに対して各種機能を提供するものである。具体的には、浮動小数点演算ユニット(FPU)及び乗算・積和演算ユニット(MAC)等のコプロセッサ、メモリ保護ユニット(MPU)及びデバッグユニット等のCPUコアと密接に結合した機能を提供するユニット、並びに、シリアルインタフェース、タイマ、プログラマブル・カウンタ等の周辺装置が機能ユニットに相当する。
システムレジスタ群は、CPUコア、機能ユニット、及びCPUコアで実行されるプログラムに関する各種の状態の保持、並びに、CPUコア及び機能ユニットを特定の動作モードに設定するためのCPUコア及び機能ユニットの制御情報の保持といった特定の用途に使用されるシステムレジスタの集合である。システムレジスタの具体例は、(1)CPUコアで実行されるプログラムの状態を保持するPSW(Program Status Word)レジスタ、(2)整数演算ユニットやFPUにおけるオーバーフロー、アンダーフロー、ゼロ除算等の発生を示すステータスレジスタ、(3)CPUコアの動作モード、DRAM及びSDRAM等のリフレッシュレート、並びに、FPU、メモリ保護ユニット、デバッグユニット、メモリコントローラ、割り込みコントローラ、シリアル通信ポート、タイマ、及びプログラマブル・カウンタ等の機能ユニットに対する動作設定や動作状況の読み出しに用いるコントロールレジスタ、などである。
上述したように、CPUコア及び機能ユニットの制御や動作状態の取得のために用いられるシステムレジスタには様々な情報が格納される。このため、システムレジスタの中には、アプリケーションプログラムによるアクセスを許可すべきものと禁止すべきものが混在している。しかしながら、従来のプロセッサシステム、特に組み込みシステムは、固定された種類のアプリケーションプログラムを実行する目的で使用されることが多く、新たなアプリケーションプログラムを柔軟に追加する機構を持っていないため、アプリケーションプログラムによるシステムレジスタへのアクセスを制限する機構、つまり、アプリケーションプログラムからシステムレジスタを保護する機構は重要視されていなかった。
しかし、最近では新たなプログラムをダウンロードして実行することが可能な携帯電話機など、信頼性が保証されていないアプリケーションプログラムを実行する組み込みシステムが登場している。このようなプロセッサシステムでは、アプリケーションプログラムから保護されるべきシステムレジスタが、信頼性の保証されていないアプリケーションプログラムによってアクセスされてしまう危険性がある。
特開平5−165631号公報
上述したように、従来のプロセッサシステムは、アプリケーションプログラムによるアクセスを許可すべきシステムレジスタ及び禁止すべきシステムレジスタが混在しているため、システムレジスタの保護が不十分であるという問題がある。
なお、特許文献1には、複数のレジスタバンクの各々に制御レジスタを設けることとし、複数のレジスタバンクのいずれかをイネーブルとする際に、まず、イネーブルとするレジスタバンクが備えている制御レジスタにアクセスを行うこととしたマイクロコンピュータが記載されている。つまり、制御レジスタへのアクセスを契機として、レジスタバンクの切り替えを行うものである。しかしながら、特許文献1は、アプリケーションプログラムからシステムレジスタを保護する機構については何ら開示していない。
また、例えば、ARMプロセッサでは、16本の汎用レジスタについてレジスタバンク構成を採用し、1のレジスタバンクはアプリケーションプログラムによって使用可能であり、他のレジスタバンクは、OSなどの特権レベルのプログラムによってのみ使用可能としている。例えば、割り込み発生時のレジスタ退避・回復処理を回避するために、割り込みハンドラプログラムのみがアクセス可能なレジスタを設けている。このように、ARMプロセッサは、汎用レジスタにレジスタバンク構成を用いるアーキテクチャを有するが、レジスタバンク構成によってアプリケーションプログラムからシステムレジスタを保護するための機構については開示していない。
本発明にかかるプロセッサシステムは、CPUコアと、前記CPUコアに接続される機能ユニットと、前記機能ユニットの制御情報及び動作状態の少なくとも一方を格納するシステムレジスタ群とを備えるプロセッサシステムである。さらに、前記システムレジスタ群は、それぞれが1又は複数のシステムレジスタを含む複数のレジスタバンクに分割されており、前記複数のレジスタバンクの少なくとも1つは、前記CPUコアで実行されるアプリケーションプログラムによるアクセスが許可されるユーザバンクであり、前記ユーザバンクを除く他の非ユーザバンクに対する前記アプリケーションプログラムによるアクセスが禁止されるものである。
このような構成により、アプリケーションプログラムによるアクセスが許可されるシステムレジスタとアクセスが禁止されるシステムレジスタとを別々のバンクに分離し、アプリケーションプログラムによるシステムレジスタへのアクセス要求をバンク単位で制限することができる。これにより、アプリケーションプログラムによるシステムレジスタへの不正なアクセスを防止し、アプリケーションプログラムによるアクセスを禁止すべきシステムレジスタを確実に保護することができる。
本発明にかかる方法は、CPUコア、前記CPUコアに接続される機能ユニット、並びに、前記機能ユニットの制御情報及び動作状態の少なくとも一方を格納するシステムレジスタ群を備え、前記システムレジスタ群は、それぞれが1又は複数のシステムレジスタを含む複数のレジスタバンクに分割されているプロセッサシステムを動作させるためのオペレーティングシステムプログラムの処理方法である。具体的には、まず、前記CPUコアで実行されるプログラムの特権レベルを判定する。次に、前記CPUコアで実行されるプログラムが、特権レベルのないアプリケーションプログラムである場合には、前記複数のレジスタバンクのうち予めアプリケーションプログラムがアクセス可能な対象として割てられたユーザバンクを選択する。続いて、前記選択したレジスタバンクの変更権限を前記アプリケーションプログラムに与えない状態で、前記アプリケーションプログラムの実行を開始する。
このような方法によって、アプリケーションプログラムによるシステムレジスタへのアクセス要求をバンク単位で制限することができる。これにより、アプリケーションプログラムによるシステムレジスタへの不正なアクセスを防止し、アプリケーションプログラムによるアクセスを禁止すべきシステムレジスタを確実に保護することができる。
本発明により、アプリケーションプログラムによるシステムレジスタへの不正なアクセスを防止することが可能なプロセッサシステム、及び、プロセッサシステムを動作させるためのオペレーティングシステムプログラムの処理方法を提供することができる。
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
発明の実施の形態1.
本実施の形態にかかるプロセッサシステム1の構成を図1に示す。始めに、図1を参照して、プロセッサシステム1が備える構成要素を説明する。図1において、CPUコア10は、命令をフェッチしてこれをデコードし、命令に応じた処理、例えば、算術演算及び論理演算等の演算処理、機能ユニットへの命令発行、後述するシステムレジスタバンク12に含まれるシステムレジスタへのアクセスを実行する処理ユニットである。
機能ユニット11A及びBは、CPUコアに接続され、CPUコアに対して各種機能を提供するものである。上述したように、機能ユニットとは、FPU等のコプロセッサ、メモリ保護ユニット(MPU)、及びデバッグユニット等である。
システムレジスタバンク12は、システムレジスタ群を複数のバンクに分割したものである。1つのバンクは、1又は複数のシステムレジスタを備えている。図1には、システムレジスタバンク12が4つのバンクBK1乃至BK4を備えており、各バンクが32個のレジスタを備える構成を示している。各システムレジスタには、CPUコア、機能ユニット、及びCPUコアで実行されるプログラムに関する各種の状態、並びに、CPUコア及び機能ユニットを特定の動作モードに設定するためのCPUコア及び機能ユニットの制御情報等が保持される。
バンク選択ユニット13は、バンクBK1乃至BK4のうち現在選択されているバンクを示すバンク選択信号BSSを出力する。具体的には、現在選択されているバンクの識別情報が格納されるバンク選択レジスタ(BSR)131をバンク選択ユニット13に設け、バンク選択レジスタ131に格納された識別情報をバンク選択信号BSSによって出力する。なお、詳細は後述するが、プロセッサシステム1は、CPUコア10で実行されるアプリケーションプログラムがアクセス可能なバンクを特定のバンクに制限している。このため、バンク選択レジスタ131に対する書き込みは、特権レベルのプログラム、具体的にはOSによって可能とし、非特権プログラムであるアプリケーションプログラムの要求に基づくバンク選択レジスタ131への書き込みは禁止される。
デコーダ121乃至124は、CPUコア10が出力するシステムレジスタへのアクセス要求及びバンク選択ユニット13が出力するバンク選択信号BSSを入力する。さらに、デコーダ121乃至124は、アクセス要求に含まれるアクセス先レジスタ番号とバンク選択信号BSSに含まれるバンク識別情報の組合せにより、所定のシステムレジスタを選択する。例えば、バンク選択レジスタ131にバンクBK4の識別情報が設定されており、かつ、CPUコア10によるシステムレジスタへのアクセス要求がレジスタ番号"1"を示す場合には、デコーダ124によってレジスタSR4_1がアクセス先に選択される。
システムレジスタバス14は、CPUコア10からシステムレジスタバンク12へのアクセス要求が転送されるバスである。命令バス15は、CPUコア10から機能ユニット11A及びBへの命令転送に使用される命令バスである。また、データバス16は、CPUコア10と機能ユニット11A及び11Bの間でのデータ転送に使用されるパスである。
続いて、以下では、アプリケーションプログラムによるシステムレジスタへのアクセスを制限するための機構について詳しく説明する。プロセッサシステム1は、システムレジスタバンク12に含まれる少なくとも1つのバンクを、アプリケーションプログラムによるアクセスが許可されるバンクと定義しており、CPUコア10がアプリケーションプログラムを実行するときは、当該バンクが選択されることを特徴としている。以下では、アプリケーションプログラムによるアクセスが許可されるバンクを"ユーザバンク"と呼ぶ。
図1に示す構成では、バンクBK4をユーザバンクとしている。なお、バンクBK1は、CPUコア10及びCPUコア10で実行されるプログラムの状態及び制御情報を保持するためのシステムレジスタ群である。バンクBK2は、機能ユニット11Aの状態及び制御情報を保持するためのシステムレジスタ群である。また、バンクBK3は、機能ユニット11Bの状態及び制御情報を保持するためのシステムレジスタ群である。バンクBK4には、他のバンクBK1乃至BK3に含まれる複数のシステムレジスタのうち、アプリケーションプログラムの実行に必要なシステムレジスタが対応付けられている。以下では、ユーザバンク(BK4)のシステムレジスタと他のバンク(BK1乃至BK3)のシステムレジスタを対応付けることを"マッピング"と呼ぶ。
マッピングの一例を図2に示す。図2では、バンクBK1のレジスタSR1_2をユーザバンクBK4のレジスタSR4_1にマッピングし、レジスタSR1_3をユーザバンクBK4のレジスタSR4_2にマッピングしている。また、バンクBK2のレジスタSR2_3をユーザバンクBK4のレジスタSR4_3にマッピングし、バンクBK3のレジスタSR3_1をユーザバンクBK4のレジスタSR4_32にマッピングしている。なお、図2に示すように、1つのシステムレジスタの格納情報をユーザバンクBK4の1つのレジスタにマッピングするだけでなく、1つのシステムレジスタのビットの一部をユーザバンクBK4のレジスタにマッピングしてもよい。また、複数のシステムレジスタに含まれるビットを、ユーザバンクBK4の1つのレジスタにマッピングしてもよい。
図2に示すようなマッピングは、デコーダ121乃至124のデコード論理によって実現できる。具体的には、システムレジスタに書き込みを行う場合に、その書き込み要求に応じて、マッピングにより対応付けられたシステムレジスタに対して同時に書き込みを行えばよい。例えば、バンクBK4が選択されている時に、レジスタ番号"1"のレジスタに書き込み要求があった場合には、当該書き込み要求に応じて、デコーダ124がレジスタSR4_1を選択するとともに、デコーダ121がレジスタSR1_2を選択するよう、デコーダ121乃至124のデコード論理を決定すればよい。
次に、ユーザバンクBK4が選択される際のプロセッサシステム1の動作を説明する。プロセッサシステム1は、バンク選択レジスタ131及びデコーダ121乃至124によってアクセス可能なレジスタバンクが限定される構成とし、アプリケーションプログラムの実行時にOSがユーザバンクBK4を選択することによって、アプリケーションプログラムがアクセス可能なシステムレジスタを制限している。具体的には、図3のフローチャートに示すように、OSがアプリケーションプログラムを起床する際に、ユーザバンクBK4を選択した状態でアプリケーションプログラムの実行を開始する。ステップS11では、実行を開始するアプリケーションプラムのコンテキストを復元するために、OSがコンテキスト切り替え処理を行う。ステップS12では、OSによって、バンク選択レジスタ131にユーザバンクBK4の識別情報がセットされる。ステップS13では、OSがアプリケーションプログラムを起床し、アプリケーションプログラムの実行が開始される。
上述したように、本実施の形態にかかるプロセッサシステム1は、システムレジスタ群を複数のバンクに分割し、少なくとも1つのバンクをユーザバンクに設定する。さらに、ユーザバンクを選択した状態でアプリケーションプログラムの実行を行うこととしている。つまり、プロセッサシステム1は、アプリケーションプログラムによるアクセスが許可されるシステムレジスタとアクセスが禁止されるシステムレジスタとを別々のバンクに分離し、アプリケーションプログラムによるシステムレジスタへのアクセス要求をバンク単位で制限している。このような構成により、ユーザバンク以外のバンクをアプリケーションプログラムに対して隠蔽することができるため、アプリケーションプログラムによるシステムレジスタへの不正なアクセスを確実に防止することができる。
なお、1つのアプリケーションプログラムによってアクセスされるシステムレジスタは、1つのユーザバンクにマッピングすることが望ましい。これにより、アプリケーションプログラムの実行中はバンク切り替えが不要となるため、バンク切り替え処理にかかるオーバヘッドを削減できる。図4を用いて具体例を説明する。図4(a)は、ユーザバンクを設けずに、システムレジスタSR1_2、SR2_3、SR3_1の順にアクセス要求が発生する場合の処理を示している。一方、図4(b)は、ユーザバンクBK4を備えるプロセッサシステム1の処理を示している。図4(a)の場合、3つのシステムレジスタは異なるバンクに属するため、アクセス要求の都度バンク切り替えを実行する必要がある。このような処理は、アプリケーションプログラムに対するシステムレジスタの保護が不十分であるだけでなく、バンク切り替えの頻発によるオーバヘッドが大きくなる。これに対して図4(b)の場合は、バンク切り替えが不要であるため、バンク切り替えによるオーバヘッドを抑制することができる。
また、1つのアプリケーションプログラムにアクセスされるシステムレジスタを、1つのユーザバンクにマッピングしておけば、アプリケーションプログラムの開発者はバンクの存在を意識してプログラミングを行う必要がないため、プログラム開発の負担を軽減できる利点がある。
また、本実施の形態のプロセッサシステム1は、ユーザバンク内のシステムレジスタと他のバンクのシステムレジスタとのマッピングをデコーダ121乃至124のデコード論理によって設定しているが、これらマッピング情報を変更可能とする構成も可能である。これにより、システムレジスタのマッピングの変更、つまり、アプリケーションプログラムに開示するシステムレジスタの変更を、プロセッサシステム1のハードウェアの変更を伴わずに容易に実現できる。具体的な実現方法の例としては、ユーザバンク内のシステムレジスタと他のバンクのシステムレジスタとのマッピング情報をメモリ(不図示)に格納しておき、デコーダ121乃至124はメモリ内に格納されたマッピング情報に従ってシステムレジスタを選択すればよい。マッピング情報を格納するためのメモリにRAMを使用することで、動的にマッピングの変更を行うことも可能である。このような構成は、アプリケーションプログラムを特定しない汎用プロセッサシステム等の応用に有効である。
発明の実施の形態2.
本実施の形態にかかるプロセッサシステム2の構成を図5に示す。プロセッサシステム2は、ユーザバンクを他のバンクから独立した物理的なレジスタ群として設けず、デコーダ221乃至223のデコード論理によって仮想的に実現したことを特徴としている。一例として、仮想化されたユーザバンクBK4と他のバンクBK1乃至BK3との間で、図2に示したのと同じマッピング関係を持たせる場合を考える。バンクBK1のデコーダ221は、バンク選択レジスタ131によってバンクBK1が選択された状態で、CPUコア10からレジスタ番号"1"のレジスタにアクセス要求があった場合は、レジスタSR1_1を選択する。一方、ユーザバンクBK4が選択された状態で、CPUコア10からレジスタ番号"1"のレジスタにアクセス要求があった場合は、仮想化されたレジスタSR4_1にマッピングされたレジスタSR1_2を選択する。同様に、バンク選択レジスタ131によってユーザバンクBK4が選択された状態で、レジスタ番号"2"にアクセス要求があった場合、仮想化されたレジスタSR4_2にマッピングされたレジスタSR1_3がデコーダ221によって選択される。また、ユーザバンクBK4が選択された状態でレジスタ番号"3"にアクセス要求があった場合、仮想化されたレジスタSR4_3に対応するレジスタSR2_3がデコーダ222によって選択される。
なお、このようなデコーダ221乃至223の動作は、図2に示すマッピングの実現手法として説明した発明の実施の形態1にかかるデコーダ121乃至124の動作と同様である。上述したように、OSによって選択されたバンクの識別情報に基づいて、アクセス要求に反応すべきシステムレジスタをデコーダ221乃至223が選択する構成を採用することにより、ユーザバンクBK4を物理的に独立したレジスタ資源として設ける必要はなく、これを仮想化することができる。これにより、システムレジスタバンク22の冗長性を排除し、ユーザバンクとして割り当てる物理的なレジスタ資源を削減することができる。
発明の実施の形態3.
本実施の形態にかかるプロセッサシステム3は、アプリケーションプログラムによるユーザバンクへのアクセス要求を一律に許可するのではなく、プログラムに割り当てられた特権レベルに応じて特定種別のアクセス要求を禁止することを特徴としている。なお、以下で述べる特定種別のアクセス要求は、具体的にはライトアクセス要求である。
プロセッサシステム3の構成を図6に示す。プロセッサシステム3と発明の実施の形態1にかかるプロセッサシステム1の構成上の相違点は、特権ビット格納部35及びアクセス制御部36である。特権ビット格納部35は、システムレジスタバンク12へのライトアクセスが可能であるか否かを示す特権ビットを格納する。つまり、特権ビットは、アプリケーションログラムに割り当てられた権限レベルを示す権限情報に相当し、特権ビット格納部35は、権限情報格納部に相当する。
例えば、特権ビットを1ビットデータとし、ライトアクセスが許可される特権レベルを値"1"とし、ライトアクセスが禁止される非特権レベルを値"0"とすれば良い。特権ビット格納部35の値は、CPUコア30で実行されるOSによって書き換え可能であり、アプリケーションプログラムによる書き換えは禁止する。
アクセス制御部36は、システムレジスタへのアクセス要求をCPUコア30から入力し、アクセス要求種別がライトアクセスである場合は、特権ビット格納部35に格納された値が特権レベルを示す場合に限り、アクセス要求をシステムレジスタバス14に出力する。アクセス制御部36の処理を示すフローチャートを図7に示す。ステップS21では、システムレジスタへのアクセス要求がCPUコア30から入力される。アクセス制御部36は、入力されたアクセス要求がリードアクセス要求である場合は、当該アクセス要求をシステムレジスタバス14に出力する(ステップS22及び24)。ステップS21で入力されたアクセス要求がライトアクセス要求である場合は、特権ビット格納部35を参照し、特権レベルを示す値が設定されていれば、入力されたライトアクセス要求をシステムレジスタバス14に出力する(ステップS22乃至S24)。一方、特権ビット格納部35に特権レベルを示す値が設定されていない場合は、入力されたライトアクセス要求を拒絶する(ステップS25)。
上記の構成において、アプリケーションプログラムの実行時には、特権ビット格納部35に非特権レベルを示す値(例えばゼロ)を格納することにより、アプリケーションプログラムによるシステムレジスタへのリードアクセス要求を許可し、ライトアクセス要求を禁止することができる。なお、上述したアクセス制御部36による可否判定は、ユーザバンクBK4に含まれるレジスタ単位で行ってもよい。
本実施の形態にかかるプロセッサシステム3の別の構成例を図8に示す。図8のプロセッサシステム4は、アクセス制御部36の機能をデコーダ321乃至323のデコード論理によって実現するものである。具体的には、特権ビット格納部35の値を示す信号をデコーダ321乃至323に入力し、デコーダ321乃至323によるアクセス要求のデコードを、特権ビット格納部35の値を参照して行う構成としている。デコーダ321乃至323は、ライトアクセス要求を受信すると、特権ビットが特権レベルを示す場合に限りシステムレジスタを選択する。このように構成されたプロセッサシステム4によっても、非特権レベルのアプリケーションプログラムによるシステムレジスタへのライトアクセスを禁止することができる。
また、上述した特権ビット格納部35は、システムレジスタの1つとして実現できる。具体的には、CPUコア30で実行されるアプリケーションプログラムの特権レベルは、プログラム状態を格納するシステムレジスタ(PSWレジスタ)に保持されるため、システムレジスタに格納されたアプリケーションプログラムの特権レベルを示す情報を特権ビットとし、これをシステムレジスタへのライトアクセスの可否判定に使用すればよい。
発明の実施の形態4.
本実施の形態にかかるプロセッサシステム5は、複数のユーザバンクを備えており、CPUコアで実行するアプリケーションプログラムに応じて、アプリケーションプログラムがアクセス可能なユーザバンクを複数のユーザバンクの中から選択することを特徴としている。プロセッサシステム5の構成を図9に示す。プロセッサシステム5と発明の実施の形態1にかかるプロセッサシステム1の構成上の相違点は、システムレジスタバンク42が2つのユーザバンクBK4及びBK5を備える点である。
アプリケーションプログラムのアクセスが禁止される3つのバンクBK1乃至BK3と、2つのユーザバンクBK4及びBK5との間のマッピング例を図10に示す。図10は、ユーザバンクBK4及びBK5に同一のシステムレジスタがマッピングされる場合を示している。例えば、バンクBK1のレジスタSR1_1が、ユーザバンクBK4のレジスタSR4_1及びユーザバンクBK5のレジスタSR5_1にマッピングされる。なお、図10のマッピングは一例であり、ユーザバンクBK4とBK5に異なるシステムレジスタを割り当ててもよい。
次に、アプリケーションプログラムに応じてユーザバンクBK4又はBK5を選択する動作を、図11のフローチャートを参照して説明する。図11は、アプリケーションプログラムによるシステムレジスタへのノンブロッキングアクセスを認めるか否かに応じて、CPUコア40で実行されるオペレーティングシステムプログラム(OS)がユーザバンクBK4又はBK5を選択する場合を示したものである。ここでは、ユーザバンクBK4をノンブロッキングアクセスが禁止されるアプリケーションプログラム用のユーザバンクとし、ユーザバンクBK5をノンブロッキングアクセスが許可されるアプリケーションプログラム用のユーザバンクとしている。つまり、ユーザバンクBK5には、ノンブロッキングアクセスを認めても良いシステムレジスタがマッピングされている。
まずステップS31では、実行を開始するアプリケーションプラムのコンテキストを復元するために、OSがコンテキスト切り替え処理を行う。次に、ステップS32において、OSは、実行を開始するアプリケーションプログラムがシステムレジスタへのノンブロッキングアクセスが許可されるプログラムであるか否かを判定する。ステップS32において、ノンブロッキングアクセスを認めないアプリケーションプログラムであると判定した場合は、バンク選択レジスタ131にユーザバンクBK4の識別情報をセットする(ステップS33)。一方、ステップS32において、ノンブロッキングアクセスを許可するアプリケーションプログラムであると判定した場合は、バンク選択レジスタ131にユーザバンクBK5の識別情報をセットする(ステップS34)。ステップS35では、OSがアプリケーションプログラムを起床し、アプリケーションプログラムの実行が開始される。
システムレジスタへのノンブロッキングアクセスを許可する場合と許可しない場合の違いを図12(a)及び(b)により説明する。図12(a)及び(b)のタイミング図は共に、機能ユニット11A及びBのいずれかがコプロセッサであると仮定し、コプロセッサで実行される命令OP1及びシステムレジスタへのリードアクセス命令OP2が連続して実行される場合のCPUコア40のパイプライン処理を示している。ただし、図12(a)は、システムレジスタへのノンブロッキングアクセスが禁止される場合を示し、図12(b)は、ステムレジスタへのノンブロッキングアクセスが許可される場合を示す。
図12(a)では、ノンブロッキングアクセスが禁止されるアプリケーションプログラム用のユーザバンクであるユーザバンクBK4が選択されている。命令フェッチ(IF)ステージ、命令デコード(ID)ステージ及び命令実行(EX)ステージでは、命令OP1及びOP2が連続して実行される。しかし、命令OP2によるシステムレジスタ・アクセスは、コプロセッサ実行命令OP1の完了まで待たされるため、命令OP2のメモリアクセス(MEM)ステージにおいて、時刻t4〜t7の4クロック分だけパイプラインが停止する。したがって、ライトバック(WB)ステージでの命令OP2によるシステムレジスタ値の取得は、コプロセッサ実行命令OP1の完了後の時刻t9に実行される。
一方、図12(b)では、ノンブロッキングアクセスが許可されるアプリケーションプログラム用のユーザバンクであるユーザバンクBK5が選択されている。この場合は、命令OP2によるシステムレジスタへのリードアクセスは、コプロセッサ実行命令OP1の完了を待たずに行われる。このため、命令OP2によるシステムレジスタの格納値の取得は時刻t5に実行される。
上述したように、複数のユーザバンクを設け、ノンブロッキングアクセスを許可するアプリケーションプログラムの実行時にノンブロッキングアクセス用のユーザバンクを選択することにより、ノンブロッキングアクセス用のユーザバンクに含まれていないシステムレジスタを確実に保護することができる。
なお、システムレジスタへのノンブロキングアクセスを許可するか否か応じて使用するユーザバンクの選択を行う動作は一例である。例えば、複数のユーザバンクに互いに異なるシステムレジスタ群をマッピングしておき、アプリケーションプログラムに応じて使用するユーザバンクを切り替えてもよい。
その他の実施の形態.
上述した発明の実施の形態1乃至4では、独立したバンク選択ユニット13を設けることとした。しかしながら、バンク選択レジスタ131を各バンクのいずれかのシステムレジスタにマッピングする、つまり、バンク選択レジスタ131に保持すべきバンク識別情報を、各バンクのシステムレジスタに保持してもよい。この場合は、デコーダ121乃至124などがシステムレジスタに保持されたバンク識別情報を用いて、アクセス要求のデコードを行えばよい。
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
発明の実施の形態1にかかるプロセッサシステムの構成図である。 発明の実施の形態1にかかるプロセッサシステムにおけるユーザバンクへのマッピングの一例を示す図である。 発明の実施の形態1にかかるプロセッサシステムの動作を示すフローチャートである。 発明の実施の形態1にかかるプロセッサシステムの効果を説明するための図である。 発明の実施の形態2にかかるプロセッサシステムの構成図である。 発明の実施の形態3にかかるプロセッサシステムの構成図である。 発明の実施の形態3にかかるプロセッサシステムの動作を示すフローチャートである。 発明の実施の形態3にかかるプロセッサシステムの他の構成例を示す図である。 発明の実施の形態4にかかるプロセッサシステムの構成図である。 発明の実施の形態4にかかるプロセッサシステムが備えるシステムレジスタバンクの構成を示す図である。 発明の実施の形態4にかかるプロセッサシステムの動作を示すフローチャートである。 発明の実施の形態4にかかるプロセッサシステムの効果を説明するための図である。 従来のプロセッサシステムの概略構成を示す図である。
符号の説明
1〜5 プロセッサシステム
10、30、40 CPU(Central Processing Unit)コア
11A、11B 機能ユニット
12、22、32、42 システムレジスタバンク
13 バンク選択ユニット
131 バンク選択レジスタ
14 システムレジスタバス
15 命令バス
16 データバス
35 特権ビット格納部
36 アクセス制御部
121〜124、221〜223、321〜323、421〜425 デコーダ

Claims (16)

  1. CPUコアと、
    前記CPUコアに接続される機能ユニットと、
    前記機能ユニットの制御情報及び動作状態の少なくとも一方を格納するシステムレジスタ群とを備え、
    前記システムレジスタ群は、それぞれが1又は複数のシステムレジスタを含む複数のレジスタバンクに分割されているプロセッサシステムであって、
    前記複数のレジスタバンクの少なくとも1つは、前記CPUコアで実行されるアプリケーションプログラムによるアクセスが許可されるユーザバンクであり、
    前記ユーザバンクを除く他の非ユーザバンクに対する前記アプリケーションプログラムによるアクセスが禁止されるプロセッサシステム。
  2. 前記CPUコアで実行されるオペレーティングシステムプログラムは、前記複数のレジスタバンクのすべてにアクセス可能である、請求項1に記載のプロセッサシステム。
  3. 前記ユーザバンクに含まれるシステムレジスタは、前記非ユーザバンクに含まれるシステムレジスタのいずれかと対応付けられ、前記非ユーザバンクと独立した物理的なレジスタ資源として存在していないことを特徴とする、請求項1に記載のプロセッサシステム。
  4. 前記レジスタバンクの各々を一意に識別可能なバンク識別情報を保持可能なバンク選択部と、
    前記バンク識別情報、及び前記CPUコアが出力するシステムレジスタへのアクセス要求に含まれるレジスタ指定情報に基づいて、アクセス先システムレジスタを選択するデコーダを備える、請求項1又は2に記載のプロセッサシステム。
  5. 前記非ユーザバンクに含まれる少なくとも1つのシステムレジスタは、前記バンク選択部によって保持される前記バンク識別情報が前記非ユーザバンクを示す場合及び前記ユーザバンクを示す場合の両方の場合に、前記デコーダにより選択される、請求項4に記載のプロセッサシステム。
  6. 前記ユーザバンクに含まれるシステムレジスタは、前記デコーダによって前記非ユーザバンクに含まれるシステムレジスタのいずれかと対応付けられ、
    前記ユーザバンクに含まれるシステムレジスタは、前記非ユーザバンクと独立した物理的なレジスタ資源として存在しないことを特徴とする、請求項4に記載のプロセッサシステム。
  7. 前記デコーダは、前記バンク選択部によって保持される前記バンク識別情報が前記ユーザバンクを示す場合に、前記システムレジスタへの1つのアクセス要求に応じて、前記ユーザバンクに含まれるシステムレジスタ及び前記非ユーザバンクに含まれるシステムレジスタを選択する、請求項4に記載のプロセッサシステム。
  8. 前記デコーダがアクセス先システムレジスタを選択するためのデコード論理は、前記CPUコアで実行されるアプリケーションプログラムの種別に応じて変更可能である、請求項4に記載のプロセッサシステム。
  9. 前記非ユーザバンクが有するシステムレジスタのうち、前記アプリケーションプログラムによるアクセスが許可されるシステムレジスタには、前記ユーザバンクを構成するためのマッピング情報が付加されている、請求項1に記載のプロセッサシステム。
  10. 前記レジスタバンクの各々を一意に識別可能なバンク識別情報を保持するバンク選択部と、
    前記バンク識別情報と、前記CPUコアが出力するシステムレジスタへのアクセス要求に含まれるレジスタ指定情報と、前記マッピング情報とに基づいて、アクセス先システムレジスタを選択するデコーダを備える、請求項9に記載のプロセッサシステム。
  11. 前記アプリケーションプログラムに割り当てられた権限レベルに応じて、前記アプリケーションプロラムによる前記ユーザバンクへのアクセス要求を制限するアクセス制御部をさらに備える、請求項1に記載のプロセッサシステム。
  12. 複数の前記ユーザバンクを備え、
    前記アプリケーションプログラムの種別に応じて、前記アプリケーションプログラムがアクセス可能な前記ユーザバンクを切り替える、請求項1に記載のプロセッサシステム。
  13. 前記機能ユニットは、浮動小数点演算ユニット、乗算・積和演算ユニット、前記CPUコアによるメモリアクセス要求を制御するメモリ保護ユニット、前記CPUコアで実行されるプログラムの性能情報を収集するデバッグユニット、シリアルインタフェース、タイマ、及びプログラマブル・カウンタのいずれかである、請求項1乃至12のいずれかに記載のプロセッサシステム。
  14. 前記システムレジスタ群は、前記CPUコア、前記CPUコアで実行されるプログラム、及び前記機能ユニットに関する状態を保持する、請求項1乃至12のいずれかに記載のプロセッサシステム。
  15. CPUコア、前記CPUコアに接続される機能ユニット、並びに、前記機能ユニットの制御情報及び動作状態の少なくとも一方を格納するシステムレジスタ群を備え、前記システムレジスタ群は、それぞれが1又は複数のシステムレジスタを含む複数のレジスタバンクに分割されているプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法であって、
    前記CPUコアで実行されるプログラムの特権レベルを判定し、
    前記CPUコアで実行されるプログラムが、特権レベルのないアプリケーションプログラムである場合には、前記複数のレジスタバンクのうち予めアプリケーションプログラムがアクセス可能な対象として割り当てられたユーザバンクを選択し、
    アクセス可能なレジスタバンクの変更権限を前記アプリケーションプログラムに与えない状態で、前記アプリケーションプログラムの実行を開始することを特徴とする処理方法。
  16. 前記プロセッサシステムは、複数のユーザバンクを備えており、
    前記アプリケーションプログラムの種別に応じて、前記アプリケーションプログラムがアクセス可能なユーザバンクを前記複数のユーザバンクから選択することを特徴とする、請求項15に記載の処理方法。
JP2006185087A 2006-07-05 2006-07-05 プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法 Expired - Fee Related JP5289688B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006185087A JP5289688B2 (ja) 2006-07-05 2006-07-05 プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法
US11/822,235 US20080010426A1 (en) 2006-07-05 2007-07-03 Processor system and processing method for operating system program in processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006185087A JP5289688B2 (ja) 2006-07-05 2006-07-05 プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法

Publications (2)

Publication Number Publication Date
JP2008015720A true JP2008015720A (ja) 2008-01-24
JP5289688B2 JP5289688B2 (ja) 2013-09-11

Family

ID=38920330

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006185087A Expired - Fee Related JP5289688B2 (ja) 2006-07-05 2006-07-05 プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法

Country Status (2)

Country Link
US (1) US20080010426A1 (ja)
JP (1) JP5289688B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102844741B (zh) * 2010-02-23 2016-10-12 美国宇航公司 单处理器3级电子飞行包
US9697150B2 (en) * 2013-09-04 2017-07-04 Jory Schwach Real-time embedded system
US9727353B2 (en) * 2015-10-30 2017-08-08 International Business Machines Corporation Simultaneously capturing status information for multiple operating modes
US20190205061A1 (en) * 2017-12-29 2019-07-04 Intel Corporation Processor, method, and system for reducing latency in accessing remote registers
US10411705B1 (en) * 2018-09-28 2019-09-10 Arm Limited System, method and apparatus for electronic circuit

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04123230A (ja) * 1990-09-14 1992-04-23 Hitachi Ltd データ処理装置
JPH1011352A (ja) * 1996-06-19 1998-01-16 Hitachi Ltd データ処理装置およびそのレジスタアドレス変換方法
JP2000347863A (ja) * 1999-05-13 2000-12-15 Internatl Business Mach Corp <Ibm> 投機的プロセッサ内で非投機的イベントをカウントするための方法およびシステム
JP2001505679A (ja) * 1996-09-23 2001-04-24 エイアールエム リミテッド データ処理装置におけるレジスタ・アドレッシング
JP2001312405A (ja) * 2000-04-27 2001-11-09 Inst For The Development Of Emerging Architectures Llc コンピュータ・システム
JP2003519868A (ja) * 2000-01-14 2003-06-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサ内での動作モードの確立
JP2004520662A (ja) * 2001-05-31 2004-07-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 共通の名前を有する複数のレジスタへの選択的なアクセス
US20050033978A1 (en) * 2003-08-08 2005-02-10 Hyser Chris D. Method and system for securing a computer system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903919A (en) * 1997-10-07 1999-05-11 Motorola, Inc. Method and apparatus for selecting a register bank
JP2001005726A (ja) * 1999-04-20 2001-01-12 Nec Corp メモリアドレス空間拡張装置及びプログラムを記憶した記憶媒体
US6636971B1 (en) * 1999-08-02 2003-10-21 Intel Corporation Method and an apparatus for secure register access in electronic device
GB2385956B (en) * 2002-03-01 2004-06-02 3Com Corp Key based register locking mechanism
US7171539B2 (en) * 2002-11-18 2007-01-30 Arm Limited Apparatus and method for controlling access to a memory
US7149862B2 (en) * 2002-11-18 2006-12-12 Arm Limited Access control in a data processing apparatus

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04123230A (ja) * 1990-09-14 1992-04-23 Hitachi Ltd データ処理装置
JPH1011352A (ja) * 1996-06-19 1998-01-16 Hitachi Ltd データ処理装置およびそのレジスタアドレス変換方法
JP2001505679A (ja) * 1996-09-23 2001-04-24 エイアールエム リミテッド データ処理装置におけるレジスタ・アドレッシング
JP2000347863A (ja) * 1999-05-13 2000-12-15 Internatl Business Mach Corp <Ibm> 投機的プロセッサ内で非投機的イベントをカウントするための方法およびシステム
JP2003519868A (ja) * 2000-01-14 2003-06-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサ内での動作モードの確立
JP2001312405A (ja) * 2000-04-27 2001-11-09 Inst For The Development Of Emerging Architectures Llc コンピュータ・システム
JP2004520662A (ja) * 2001-05-31 2004-07-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 共通の名前を有する複数のレジスタへの選択的なアクセス
US20050033978A1 (en) * 2003-08-08 2005-02-10 Hyser Chris D. Method and system for securing a computer system

Also Published As

Publication number Publication date
US20080010426A1 (en) 2008-01-10
JP5289688B2 (ja) 2013-09-11

Similar Documents

Publication Publication Date Title
KR101485068B1 (ko) 복수의 프로세서들을 포함하는 시스템 및 그 동작 방법
US8850168B2 (en) Processor apparatus and multithread processor apparatus
JP4939387B2 (ja) データ処理装置及びアドレス空間保護方法
US7590774B2 (en) Method and system for efficient context swapping
US6230259B1 (en) Transparent extended state save
JP5044387B2 (ja) 情報処理装置及びそのスタックポインタ更新方法
US20060212687A1 (en) Dual thread processor
US7802252B2 (en) Method and apparatus for selecting the architecture level to which a processor appears to conform
JP2006503385A (ja) マルチスレッド・プロセッサの高速スレッド間割込みのための方法および装置
US10824467B2 (en) Data processing system with protected mode of operation for processing protected content
JP6005392B2 (ja) ルーティングのための方法及び装置
JP5289688B2 (ja) プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法
JP5414057B2 (ja) マイクロコンピュータ
CN112306669A (zh) 一种基于多核系统的任务处理方法及装置
TWI582635B (zh) 對於控制轉移指令的返回
EP1760580A1 (en) Processing operation information transfer control system and method
JP2009296195A (ja) 複数のcpuコアを備えたfpgaを用いた暗号装置
US20130104141A1 (en) Divided central data processing,
US9946665B2 (en) Fetch less instruction processing (FLIP) computer architecture for central processing units (CPU)
US7890740B2 (en) Processor comprising a first and a second mode of operation and method of operating the same
JP3659048B2 (ja) オペレーティングシステム及び計算機
JP2008225710A (ja) コンピュータシステム及び該システムで用いられるプロセス切替え方法
JP2022509722A (ja) 例外原因イベントをハンドリングするための装置及び方法
JP2009098819A (ja) メモリシステム、メモリシステムの制御方法、及びコンピュータシステム
JP2011198048A (ja) マイクロプロセッサ、電子制御ユニット、アドレス変換方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090413

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120605

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130329

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130410

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130605

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

LAPS Cancellation because of no payment of annual fees