JP4363534B2 - マイクロコンピュータ及びマイクロコンピュータの動作設定方法 - Google Patents

マイクロコンピュータ及びマイクロコンピュータの動作設定方法 Download PDF

Info

Publication number
JP4363534B2
JP4363534B2 JP2007098015A JP2007098015A JP4363534B2 JP 4363534 B2 JP4363534 B2 JP 4363534B2 JP 2007098015 A JP2007098015 A JP 2007098015A JP 2007098015 A JP2007098015 A JP 2007098015A JP 4363534 B2 JP4363534 B2 JP 4363534B2
Authority
JP
Japan
Prior art keywords
exception
address
microcomputer
vector
candidates
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.)
Expired - Fee Related
Application number
JP2007098015A
Other languages
English (en)
Other versions
JP2008257418A (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.)
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 JP2007098015A priority Critical patent/JP4363534B2/ja
Priority to US12/078,621 priority patent/US8051278B2/en
Publication of JP2008257418A publication Critical patent/JP2008257418A/ja
Application granted granted Critical
Publication of JP4363534B2 publication Critical patent/JP4363534B2/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
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/328Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)

Description

本発明は、割り込み・例外事象の発生に応じてプログラムの切り替えを行うマイクロコンピュータに関する。
マイクロコンピュータは、割り込み又は例外の発生に応じて実行中のプログラムの処理を中断し、割り込み・例外処理を実行するための他のプログラムに分岐するよう設計されている。
本明細書では、マイクロコンピュータに接続された外部デバイスやマイクロコンピュータに内蔵される周辺ハードウェアによって要求されるハードウェア割り込み、アプリケーション・プログラム中に記述されたシステムコール命令やトラップ命令などによって発生するソフトウェア割り込み、並びに、プログラム実行中に発生したゼロ除算、オーバーフロー及びアドレスエラー等の異常な事象の発生によって実行中のプログラムの処理が中断される狭義の例外を総称して、「例外」と呼ぶ。
本明細書における「例外ハンドラ」の用語は、例外処理ルーチンが記述されており、例外発生時にそれまで実行されていたプログラムに替えて実行されるプログラムを意味する。また、「例外ハンドラ・アドレス」の用語は、例外ハンドラの先頭アドレスを意味する。
本明細書における「例外ベクタ」の用語は、例外発生時にどこに分岐すべきかを示す情報を意味する。例外ベクタは、例外ハンドラの先頭アドレス(例外ハンドラ・アドレス)とされる場合がある。また、直接的な例外ベクタは例外ハンドラへ分岐するための分岐命令の先頭アドレスとされ、分岐命令よるジャンプ先に例外ハンドラの本体が配置されている場合もある。
本明細書における「例外ハンドラ・アドレス・テーブル」の用語は、例外ハンドラ・アドレスが配列されたテーブル又は例外ハンドラ・アドレスへの分岐命令が配列されたテーブルを意味する。例外ハンドラ・アドレス・テーブルに配列された要素、すなわち例外ハンドラ・アドレス又は例外ハンドラ・アドレスへの分岐命令は、例外ベクタによって指定される。
なお、例外ハンドラ・アドレスが配列されたテーブルを「例外テーブル」や「ベクタテーブル」と呼ぶ場合や、特許文献1のように、例外ハンドラへの分岐命令が配列されたテーブルを「ジャンプテーブル(jump table)」と呼ぶ場合もあるが、本明細書では、これらのテーブルを総称して「例外ハンドラ・アドレス・テーブル」と呼ぶこととする。
また、本明細書における「例外ベクタ対応アドレス」の用語は、例外ベクタの内容を意味している。つまり、例外ベクタ対応アドレスは、例外ハンドラ・アドレス・テーブルの配列要素を指定するアドレスである。
上述したように、従来のマイクロコンピュータには、例外処理の開始時に参照される例外ハンドラ・アドレス・テーブルとして、例外ハンドラ・アドレスが直接配列されたテーブルを使用するものや、例外ハンドラ・アドレスへの分岐命令が配列されたテーブルを使用するものがある。
例えば、特許文献1には、例外要因に対応して予め定められたメモリ領域に例外ハンドラ(特許文献1では"exception routine")を直接格納する第1のメモリマップ(例外テーブル:exception table)と、例外要因に対応して定められ、第1のメモリマップより小さいメモリ領域に例外ハンドラ(exception routine)への分岐命令を格納する第2のメモリマップ(ジャンプテーブル:jump table)との間で、メモリマップを切り替える技術が開示されている。
米国特許第6079015号明細書 特開2000−267864号公報
マイクロコンピュータの動作モードによって例外ハンドラ・アドレス・テーブルのサイズを変更したいという要求がある。このような要求は、特に、使用可能なメモリサイズの制約が大きい組み込みシステム用のマイクロコンピュータにおいて顕著である。例えば、マイクロコンピュータの起動時やマイクロコンピュータが有するフラッシュROMの書き換え時などは、使用できるメモリサイズに制約がある一方、発生する可能性のある例外事象の種類(例外要因)は限定される。このため、起動処理やフラッシュROM書き換え処理のような保守作業を行うための動作モードのようにマイクロコンピュータが縮小動作モードにあるときは、マイクロコンピュータの通常動作モードに比べて例外ベクタ数を削減することにより例外ハンドラ・アドレス・テーブルを縮小できることが望ましい。
特許文献2には、例外ハンドラ・アドレス・テーブル(特許文献2では"割込みベクタテーブル")の未使用領域を開放することによって例外ハンドラ・アドレス・テーブルとして使用されるメモリ領域を縮小し、メモリの使用効率を向上させる技術が開示されている。しかしながら、特許文献2に開示された技術は、使用しない例外要因(特許文献2では"割り込み要因")に対応する例外ベクタ(特許文献2では、"割り込みベクタ")を用意しなくてもよいという思想、言い換えると使用しない例外要因に対応する例外ハンドラ・アドレス(特許文献2では"割り込みプログラム先頭アドレス")を保持しなくてよいという思想に基づいている。これにより、未使用の例外要因に対応する例外ハンドラ・アドレスを例外ハンドラ・アドレス・テーブルに保持しないことで例外ハンドラ・アドレス・テーブルのサイズを縮小させている。つまり、特許文献2に開示された技術は、例外ハンドラ・アドレス・テーブルのサイズ縮小が可能であるものの、1つの例外要因に対して1つの例外ベクタが対応付けられる対応関係を変更するものではない。
先のマイコン起動処理の例や、フラッシュROMの書き換え処理の例では、発生する可能性のある例外要因が限定されているとは言え、予期しない例外処理要求が入力されるという不測の状況に対処する必要がある。このため、縮小動作モードにおいても、マイクロコンピュータの通常動作モードにおいて発生する可能性のある例外要因に対応した例外ハンドラを全く用意しないわけにはいかない。このため、特許文献2に開示された技術では、削減できる例外ベクタに限界がある。つまり、従来のマイクロコンピュータは、例外要因と例外ベクタとの対応関係の変更に関して柔軟性(flexibility)を欠くため、例外ハンドラ・アドレス・テーブルの縮小が望まれる場合にこれを充分に縮小できないという問題がある。
上述した問題点を解決するため、本発明の第1の態様にかかるマイクロコンピュータは、複数のアドレス候補を出力可能なアドレス候補出力部と、例外要因に応じて前記複数のアドレス候補の中の1つを出力アドレスに選択するアドレス選択部と、前記出力アドレスにより指定されるメモリ領域にアクセスすることで例外処理ルーチンを開始する命令実行部と、前記複数のアドレス候補のうちで前記アドレス選択部における前記例外要因との対応付けに使用されるアドレス候補の数と、前記複数のアドレス候補に含まれる少なくとも1つのアドレス候補に対応付けられる前記例外要因の数を変更する対応関係変更部とを有する。なお、前記出力アドレスの一例は、例外ハンドラ・アドレス・テーブルの配列要素を指定する例外ベクタ対応アドレスである。上述の通り、例外ベクタ対応アドレスにより指定される先には、例外ハンドラ・アドレスが配置される場合や、例外ハンドラ・アドレスへの分岐命令が配置される場合がある。
このように、本発明の第1の態様にかかるマイクロコンピュータは、命令実行部に対して出力アドレス(例えば、例外ベクタ対応アドレス)を供給するアドレス選択部において、例外要因との対応付けに使用されるアドレス候補の数と、少なくとも1つのアドレス候補に対応付けられる例外要因の数を変更可能とした。これにより、例えば、マイクロコンピュータの動作モードを変更するに際して、例外ベクタ数を減少させるとともに、使用される例外ベクタに割り当てられる例外要因数を増加させることができる。つまり、受け付け可能な例外要因の数を削減することなく、例外ベクタ数を削減することが可能であるため、例外ハンドラ・アドレス・テーブルの縮小を充分に行うことができる。このように、本発明によって、例外要因と例外ベクタとの対応関係の変更に関する柔軟性を向上させることができる。
本発明の第2の態様にかかるマイクロコンピュータの動作設定方法は、(1)複数の例外処理ルーチンの各々の先頭アドレスへ分岐する複数の分岐命令を配列してなる例外ハンドラ・アドレス・テーブルを、マイクロコンピュータがアクセス可能なメモリに配置するステップと、(2)入力された例外要因に応じて複数のアドレス候補の中から選択された1つのアドレス候補を前記複数の分岐命令の1つを指定する例外ベクタ対応アドレスとして出力するよう構成された前記マイクロコンピュータが備えるアドレス選択部において、前記複数のアドレス候補のうちで前記アドレス選択部における前記例外要因との対応付けに使用されるアドレス候補の数と、前記複数のアドレス候補に含まれる少なくとも1つのアドレス候補に対応付けられる前記例外要因の数を変更するステップとを含む。
本発明の第2の態様にかかる方法は、マイクロコンピュータの命令実行部に対して例外ベクタを供給するアドレス選択部において、例外要因との対応付けに使用されるアドレス候補の数と、少なくとも1つのアドレス候補に対応付けられる例外要因の数を変更可能である。これにより、マイクロコンピュータが受け付け可能な例外要因の数を削減することなく、例外ベクタ数を削減することが可能であるため、例外ハンドラ・アドレス・テーブルの縮小を充分に行うことができる。このように、本発明によって、例外要因と例外ベクタとの対応関係の変更に関する柔軟性を向上させることができる。
本発明により、例外要因と例外ベクタとの対応関係の変更に関する柔軟性を向上させたマイクロコンピュータを提供することができる。
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
発明の実施の形態1.
本実施の形態にかかるマイクロコンピュータ1の構成を図1に示す。マイクロコンピュータ1は、例外ハンドラ・アドレスへの分岐命令が配列された例外ハンドラ・アドレス・テーブルを使用するマイクロコンピュータである。例外ハンドラ・アドレス・テーブルは、ROM11又はRAM12のメモリ領域に配置される。
図1において、命令実行部10は、ROM11又はRAM12から命令を読み出し、読み出した命令をデコードし、命令に応じた処理、例えば、算術演算及び論理演算等の演算処理や、ROM11又はRAM12に対するリードアクセス及びライトアクセスを実行する。
ROM11及びRAM12は、メモリバス13を介して命令実行部10と接続されている。ROM11及びRAM12は、命令実行部10に読み出されて実行されるプログラムの格納領域及びプログラムによって使用されるデータやプログラムによる演算結果データの格納領域として使用される。また、ROM11又はRAM12の一部が、例外ハンドラ本体の先頭アドレス(例外ハンドラ・アドレス)への分岐命令群が配置された例外ハンドラ・アドレス・テーブルとして使用される。
ベクタ候補出力部14は、ベクタ候補1〜Nを出力する回路である。ここで、ベクタ候補1〜Nは、例外要因に応じて選択される例外ベクタ対応アドレス(つまり本実施の形態では、例外ハンドラ・アドレス・テーブルの配列要素である分岐命令の格納場所を指定するアドレス)の候補値である。ベクタ候補1〜Nは、それぞれアドレス記憶部141〜14Nに記憶されている。なお、アドレス記憶部141〜14Nは、レジスタ、EEPROM等の半導体メモリ、又は組合せ回路等により具体的に構成すればよい。また、アドレス記憶部141〜14Nは、例外ベクタのベースアドレスを格納する1つのベースアドレスレジスタと、ベースアドレスに加算されるオフセット値を格納するN個のオフセットレジスタにより構成されてもよい。
例外要因判定部15は、例外処理要求EXR−1〜EXR−Nを受信し、受け付ける例外処理要求の種別(例外要因)に対応して予め決定されている例外ベクタ番号VNをアドレス選択部16に出力する。
アドレス選択部16は、例外要因判定部15から入力される例外ベクタ番号VNに応じて、ベクタ候補1〜Nの中から1つのアドレスを例外ベクタに選択し、例外ベクタを命令実行部10に供給する。アドレス選択部16から例外ベクタの供給を受けた命令実行部10は、例外ベクタにより指定されるメモリ領域(例外ハンドラ・アドレス・テーブル)にアクセスして分岐命令をフェッチし、当該分岐命令を実行することで例外処理ルーチンを開始する。
本実施の形態におけるアドレス選択部16は、例外ベクタ番号VNとN個の入力端子161〜16Nとの間の予め定められた対応関係に従って、入力端子161〜16Nの中から例外ベクタ番号VNに対応する1つの入力端子を選択するよう構成されている。例えば、例外ベクタ番号VNが"1"を示す場合に入力端子161を選択し、例外ベクタ番号VNが"2"を示す場合に入力端子162を選択し、以下同様にして、例外ベクタ番号VNが"N"を示す場合に入力端子16Nを選択する。
ここで、アドレス選択部16とベクタ候補出力部14との接続を具体的に説明する。アドレス選択部16の入力端子161〜16Nは、アドレス記憶部141〜14Nと直接又は後述する対応関係変更部17を介して接続されている。図1に示す本実施の形態の構成例では、例外ベクタ候補1〜3を保持するアドレス記憶部141〜143と入力端子161〜163との間は、一対一で接続されている。一方、例外ベクタ候補4〜Nを保持するアドレス記憶部144〜14Nと入力端子164〜16Nの間は、対応関係変更部17を介して接続されており、入力端子164〜16Nとの接続先は、対応関係変更部17によって変更される。
対応関係変更部17は、縮小設定レジスタ170と、N−3個のセレクタ回路を有している。なお、図1では、N−3個のセレクタ回路に含まれる2つのセレクタ回路171a及びbのみを図示している。セレクタ回路171aは、入力端子164の接続先をアドレス記憶部143と144の間で切り替えることにより、入力端子164に対してベクタ候補3又はベクタ候補4を選択的に供給する。同様に、セレクタ回路171bは、入力端子16Nの接続先をアドレス記憶部143と14Nの間で切り替えることにより、入力端子16Nに対してベクタ候補3又はベクタ候補Nを選択的に供給する。
セレクタ回路171a及びbを含むN−3個のセレクタ回路の選択設定は、縮小設定レジスタ170にセットされた値により決定される。縮小設定レジスタ170は、N−3ビットのデータを保持可能とし、N−3個のセレクタ回路のそれぞれの選択状態をそれぞれ1ビットで表せばよい。
続いて、例外ベクタ番号VNに応じたアドレス選択部16の動作と、縮小設定レジスタ170の設定値に応じたセレクタ回路171aの動作について図2(a)及び(b)を用いて説明する。図2(a)及び(b)は、例外要因判定部15から出力される例外ベクタ番号VNが"4"であるときにアドレス選択部16から出力される例外ベクタ対応アドレスを示している。図2(a)は、セレクタ回路171aにアドレス記憶部144を選択させるように縮小設定レジスタ170がセットされた状態を示している。この場合、アドレス選択部16から出力される例外ベクタ対応アドレスにはベクタ候補4が選択される。なお、セレクタ回路171aにアドレス記憶部144を選択させる縮小設定レジスタ170の設定は、後述する図2(b)の設定に比べて相対的に多くの例外ベクタ候補が使用される設定である。このため、図2(a)では、縮小設定レジスタ170の設定状態を"縮小設定OFF"と表示している。
一方、図2(b)は、セレクタ回路171aがアドレス記憶部143を選択するように縮小設定レジスタ170がセットされた状態(縮小設定ON)を示している。この場合、例外要因判定部15から出力される例外ベクタ番号VNが"4"であっても、アドレス選択部16から出力される例外ベクタ対応アドレスにはベクタ候補3が選択される。このように、マイクロコンピュータ1は、縮小設定レジスタ170に基づくセレクタ回路171aの動作によって、ベクタ番号VNが3及び4のいずれの場合であっても、例外ベクタ対応アドレスとしてベクタ候補4を選択することができる。つまり、マイクロコンピュータ1は、1つの例外ベクタ候補に対応付けられる例外要因の数を増減させることができる。具体的には、図1に示した構成であれば、ベクタ候補3に対応付けられる例外要因の数を1個からN−2個の間で増減することができる。また、このことは、例外要因との対応付けに使用される例外ベクタ候補の数をN個から3個の間で変更可能であることを示している。
縮小設定レジスタ170の設定切り替えによって、例外ベクタ・アドレス・テーブルのサイズ切り替えを行う具体例について、図3及び4を参照して説明する。図3は、サイズ縮小前の例外ハンドラ・アドレス・テーブル111を含むメモリマップを示している。つまり、図3は、縮小設定レジスタ170が縮小設定OFFにセットされている場合のメモリマップである。縮小設定レジスタ170の設定が縮小設定OFFであるとき、アドレス選択部16は、N通りの例外ベクタ番号に対応してN通りの例外ベクタ対応アドレス(ベクタ候補1〜N)を出力する。したがって、例外ハンドラ・アドレス・テーブル111には、N個の分岐命令が格納される。
一方、図4は、サイズ縮小後の例外ハンドラ・アドレス・テーブル122を含むメモリマップを示している。つまり、図4は、縮小設定レジスタ170が縮小設定ONにセットされている場合のメモリマップである。縮小設定レジスタ170の設定が縮小設定ONあるとき、アドレス選択部16は、N通りの例外ベクタ番号に対応して3通りの例外ベクタ対応アドレス(ベクタ候補1〜3)を出力する。したがって、例外ハンドラ・アドレス・テーブル122は、3個の分岐命令を格納できればよい。なお、縮小設定ONであるときの例外ベクタ番号3〜N(例外要因3〜N)の例外要因の識別は、例外要因を識別可能な例外コードが保持されている原因レジスタ(不図示)に保持された値を読み出すことで行えばよい。つまり、例外3〜Nハンドラは、原因レジスタから例外コードを読み出すことで例外要因3〜Nのいずれが発生したかを知り、例外要因に応じた処理ルーチンを実行する。
上述したように、本実施の形態にかかるマイクロコンピュータ1は、命令実行部10に例外ベクタ対応アドレスを供給するアドレス選択部16にて例外要因との対応付けに使用されるベクタ候補の数と、少なくとも1つのベクタ候補に対応付けられる例外要因の数とを変更可能とした。これにより、例えば、マイクロコンピュータ1の動作モードを変更するに際して、例外ベクタ数を減少させるとともに、使用される例外ベクタに対応付けられる例外要因数を増加させることができる。つまり、マイクロコンピュータ1は、受け付け可能な例外要因の数を削減することなく、例外ベクタ数のみを削減することが可能であるため、動作モードの変更に際して例外ハンドラ・アドレス・テーブルの縮小を充分に行うことができる。
このような、マイクロコンピュータ1の適用例として、フラッシュROMの書き換えを行う場合について説明する。ここでは、ROM11が書き換え可能なフラッシュROMであるとし、ROM11の書き換えを行う場合を例に説明する。図5(a)は、マイクロコンピュータ1が通常動作モードである場合の例外ハンドラ・アドレス・テーブル111(例外ハンドラ本体への分岐命令が配置される領域)の配置を示している。なお、通常動作モードとは、ROM11及びRAM12に記憶されたシステムプログラム及びアプリケーション・プログラムが命令実行部10において実行される動作モードである。通常動作モードは、ROM11及びRAM12の使用量の制約が後述する縮小動作モードと比べて小さく、例外処理ルーチンの実行についても高速動作が求められる。このため、通常動作モードでは、縮小設定レジスタ170が"縮小設定OFF"にセットされる。
一方、図5(b)は、マイクロコンピュータ1がROM11書き換えのための縮小動作モードである場合の例外ハンドラ・アドレス・テーブル122の配置を示している。ROM11書き換えのための縮小動作モードでは、RAM12に配置された書き換えプログラム121を実行することでROM11の書き換えが行われる。このときは、ROM11に配置されていた本来の例外ハンドラ・アドレス・テーブル111は利用不可能である。したがって、ROM11書き換え中に発生する例外処理要求に対応するために、一時的な例外ハンドラ・アドレス・テーブル122がRAM12に配置される。本実施の形態にかかるマイクロコンピュータ1であれば、縮小設定レジスタ170を"縮小設定ON"にセットして例外ベクタ数を削減することにより、RAM12に配置される一時的な例外ハンドラ・アドレス・テーブルのサイズを縮小することができる。
なお、図1には、縮小設定OFFであるときにN個のベクタ候補が例外ベクタとして使用され、縮小設定ONであるときに3〜(N−1)個のベクタ候補が例外ベクタとして使用される構成を示した。しかしながら、このような構成は一例に過ぎないことはもちろんである。つまり、アドレス記憶部141〜14Nとアドレス選択部16との間の配線上に設けられるセレクタ回路の数を変更することで、マイクロコンピュータ1は、N個のベクタ候補が例外ベクタとして使用される状態と、任意のM個(ただしM<N)のベクタ候補が例外ベクタとして使用される状態の間で切り替え可能である。
図1に示した構成の変形例を図6及び7に示す。図6の構成では、N−1個のアドレス記憶部142〜14Nとアドレス選択部16との間にそれぞれセレクタ回路が設けられている。このため、図6の構成を有するマイクロコンピュータ1は、N個のベクタ候補1〜Nが例外ベクタとして使用される状態と、1〜(N−1)個のベクタ候補が例外ベクタとして使用される状態の間で切り替え可能である。
図7の構成では、偶数番号のベクタ候補2及びベクタ候補4等を保持するアドレス記憶部とアドレス選択部16との間にそれぞれセレクタ回路が設けられている。図7の構成を有するマイクロコンピュータ1は、N個のベクタ候補1〜Nが例外ベクタとして使用される状態と、N/2〜(N−1)個のベクタ候補が例外ベクタとして使用される状態の間で切り替え可能である。
発明の実施の形態2.
本実施の形態にかかるマイクロコンピュータ2の構成を図8に示す。上述した発明の実施の形態1にかかるマイクロコンピュータ1は、ベクタ候補出力部14とアドレス選択部16との間の配線上に設けられたセレクタ回路171a及びb等の動作によって、例外要因との対応付けに使用される例外ベクタ数を変更可能とした。このような発明の実施の形態1の構成に代えて、本実施の形態にかかるマイクロコンピュータ2は、例外ベクタ番号VNに応じたアドレス選択部26の選択動作を決定する選択ロジックを変更することによって、例外要因との対応付けに使用される例外ベクタ数と、1つの例外ベクタに対応付けられる例外要因数の変更を行うものである。
例えば、図2に示したのと同様の動作をマイクロコンピュータ2に行わせるためには、
縮小設定レジスタ170が縮小設定OFFにセットされ、かつ、例外ベクタ番号VN=4が入力される場合に、アドレス選択部26が入力端子164を選択するように、アドレス選択部16の選択ロジックを設定すればよい。また、縮小設定レジスタ170が縮小設定ONにセットされ、かつ、例外ベクタ番号VN=4が入力される場合に、アドレス選択部26が入力端子163を選択するように、アドレス選択部16の選択ロジックを設定すればよい。
このように構成されたマイクロコンピュータ2は、命令実行部10に例外ベクタを供給するアドレス選択部26において、例外要因との対応付けに使用されるベクタ候補の数と、少なくとも1つのベクタ候補に割り当てられる例外要因の数とを変更可能である。これにより、例えば、マイクロコンピュータ2の動作モードを変更するに際して例外ベクタ数を削減するとともに、使用される例外ベクタに対応付けられる例外要因数を増加させることができる。つまり、マイクロコンピュータ2は、例外要因の数を削減することなく、例外ベクタ数のみを削減することが可能であるため、例外ハンドラ・アドレス・テーブルの縮小を充分に行うことができる。
発明の実施の形態3.
本実施の形態にかかるマイクロコンピュータ3の構成を図9に示す。マイクロコンピュータ3は、発明の実施の形態1にかかるマイクロコンピュータ1と同様の構成を有し、さらに、アドレス記憶部141〜14Nに保持されるベクタ候補1〜Nの値を変更可能としている。
ベクタ候補出力部34は、命令実行部30から候補変更要求が発行されると、これに続いて、ベクタ候補1〜Nのいずれかを指定する候補番号、及び、変更後のベクタ候補の値(アドレス)を示す候補アドレスを受信し、候補番号で指定されたベクタ候補が保持されているアドレス記憶部を候補アドレスによって書き換える。なお、ベクタ候補出力部34が有するアドレス記憶部141〜14Nは、レジスタにより構成すればよい。また、アドレス記憶部141〜14Nは、例外ベクタのベースアドレスを格納する1つのベースアドレスレジスタと、ベースアドレスに加算されるオフセット値を格納するN個のオフセットレジスタにより構成してもよい。
本実施の形態にかかるマイクロコンピュータ3は、ベクタ候補1〜Nの書き換えによって、例外ハンドラ・アドレス・テーブルの配置を移動することができる。さらに、ベクタ候補1〜Nを例外ハンドラの先頭アドレスによって書き換えることにより、例外ハンドラへの分岐命令を保持する例外ハンドラ・アドレス・テーブルが不要となるため、例外ハンドラ・アドレス・テーブルのさらなる縮小が可能である。
発明の実施の形態4.
上述した発明の実施の形態1にかかるマイクロコンピュータ1は、例外ハンドラ・アドレスへの分岐命令が配列された例外ハンドラ・アドレス・テーブルを使用するマイクロコンピュータであり、例外ベクタによって指定されるROM11又はRAM12のメモリ領域に例外ハンドラ本体への分岐命令が保持されるものである。これに対して、本実施の形態にかかるマイクロコンピュータ4は、例外ハンドラ・アドレスが直接配列された例外ハンドラ・アドレス・テーブルを使用するマイクロコンピュータである。例外ハンドラ・アドレス・テーブルは、マイクロコンピュータ1と同様に、ROM11又はRAM12のメモリ領域に配置される。
図10において、命令実行部40は、ROM11又はRAM12から命令を読み出し、読み出した命令をデコードし、命令に応じた処理、例えば、算術演算及び論理演算等の演算処理や、ROM11又はRAM12に対するリードアクセス及びライトアクセスを実行する。また、命令実行部40は、アドレス選択部16から例外ベクタ対応アドレス(本実施の形態では、例外ハンドラ・アドレス・テーブルの配列要素である例外ハンドラ・アドレスの格納場所を指定するアドレス)の供給を受け、例外ベクタ対応アドレスにより指定されるメモリ領域(例外ハンドラ・アドレス・テーブル)にアクセスして例外ハンドラ・アドレスを取得し、取得した例外ハンドラ・アドレスにジャンプすることで例外処理ルーチンを開始する。
なお、図8に示されたその他の構成要素は、発明の実施の形態1にかかるマイクロコンピュータ1が有する構成要素と同様であるから、これらの構成要素については図1と同一の符号を付して詳細な説明を省略する。
マイクロコンピュータ4における縮小設定レジスタ170の設定切り替えによって、例外ベクタ・アドレス・テーブルのサイズ切り替えを行う具体例についえ、図11及び12を参照して説明する。図11は、サイズ縮小前の例外ハンドラ・アドレス・テーブル411を含むメモリマップを示している。つまり、図11は、縮小設定レジスタ170が縮小設定OFFにセットされている場合のメモリマップである。縮小設定レジスタ170の設定が縮小設定OFFであるとき、アドレス選択部16は、N通りの例外ベクタ番号に対応してN通りの例外ベクタ対応アドレス(ベクタ候補1〜N)を出力する。したがって、例外ハンドラ・アドレス・テーブル411には、N個の例外ハンドラ・アドレスが格納される。
一方、図12は、サイズ縮小後の例外ハンドラ・アドレス・テーブル422を含むメモリマップを示している。つまり、図12は、縮小設定レジスタ170が縮小設定ONにセットされている場合のメモリマップである。縮小設定レジスタ170の設定が縮小設定ONあるとき、アドレス選択部16は、N通りの例外ベクタ番号に対応して3通りの例外ベクタ対応アドレス(ベクタ候補1〜3)を出力する。したがって、例外ハンドラ・アドレス・テーブル422は、3個の例外ハンドラ・アドレスを格納できればよい。
このように構成されたマイクロコンピュータ4は、命令実行部40に例外ベクタ対応アドレスを供給するアドレス選択部16において例外要因との対応付けに使用されるベクタ候補の数と、少なくとも1つのベクタ候補に対応付けられる例外要因の数とを変更可能とした。各々のベクタ候補は、例外ハンドラ・アドレス・テーブルに保持される例外ハンドラ・アドレスに一対一に対応する。言い換えると、ベクタ候補の数は、例外ハンドラ・アドレス・テーブルに保持される例外ハンドラ・アドレスの数に対応する。したがって、例えば、マイクロコンピュータ4の動作モードを変更するに際して例外ベクタ数を削減するとともに、使用される例外ベクタに対応付けられる例外要因数を増加させることができる。つまり、マイクロコンピュータ4は、受け付け可能な例外要因の数を削減することなく、例外ベクタ数を削減することが可能であるため、例外ハンドラ・アドレス・テーブルの縮小を充分に行うことができる。
なお、上述した発明の実施の形態1乃至4にかかるマイクロコンピュータ1乃至4の物理的な実装形態について特に制約はない。つまり、図1並びに図4乃至8に示された各構成要素は、単一のICチップにパッケージされてもよいし、複数のICチップに分割されてもよい。
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
本発明の実施の形態1にかかるマイクロコンピュータの構成図である。 本発明の実施の形態1にかかるマイクロコンピュータの動作を説明するための図である。 本発明の実施の形態1にかかるマイクロコンピュータによる例外ハンドラ・アドレス・テーブルのサイズ切り替えを説明するための図である。 本発明の実施の形態1にかかるマイクロコンピュータによる例外ハンドラ・アドレス・テーブルのサイズ切り替えを説明するための図である。 本発明の実施の形態1にかかるマイクロコンピュータの動作を説明するための図である。 本発明の実施の形態1にかかるマイクロコンピュータの変形例である。 本発明の実施の形態1にかかるマイクロコンピュータの変形例である。 本発明の実施の形態2にかかるマイクロコンピュータの構成図である。 本発明の実施の形態3にかかるマイクロコンピュータの構成図である。 本発明の実施の形態4にかかるマイクロコンピュータの構成図である。 本発明の実施の形態4にかかるマイクロコンピュータによる例外ハンドラ・アドレス・テーブルのサイズ切り替えを説明するための図である。 本発明の実施の形態4にかかるマイクロコンピュータによる例外ハンドラ・アドレス・テーブルのサイズ切り替えを説明するための図である。
符号の説明
1,2,3,4 マイクロコンピュータ
10,30,40 命令実行部
11 ROM(Read Only Memory)
12 RAM(Random Access Memory)
13 メモリバス
14,34 ベクタ候補出力部
15 例外要因判定部
16,26 アドレス選択部
17 対応関係変更部
141〜14N,441〜44N アドレス記憶部
171,171a,171b セレクタ回路

Claims (7)

  1. 複数のアドレス候補を出力可能なアドレス候補出力部と、
    例外要因に応じて前記複数のアドレス候補の中の1つを出力アドレスに選択するアドレス選択部と、
    前記出力アドレスにより指定されるメモリ領域にアクセスすることで例外処理ルーチンを開始する命令実行部と、
    前記複数のアドレス候補のうちで前記アドレス選択部における前記例外要因との対応付けに使用されるアドレス候補の数と、前記複数のアドレス候補に含まれる少なくとも1つのアドレス候補に対応付けられる前記例外要因の数を変更する対応関係変更部と、
    前記例外処理ルーチンを実行するためのN個(Nは2以上の整数)の例外処理ハンドラと当該N個の例外処理ハンドラの先頭位置に分岐するためのN個の分岐命令とを含む第1のテーブルと、
    前記N個の例外処理ハンドラのうち、K個分(Kは2以上かつN以下である整数)を共通の例外処理ハンドラとしたM個(MはN−K+1である整数)の例外処理ハンドラと、当該M個の例外処理ハンドラに分岐するためのM個の分岐命令とを含む第2のテーブルと、を備え、
    前記対応関係変更部による前記例外要因との対応付けに使用されるアドレス候補の数及び前記少なくとも1つのアドレス候補に対応付けられる前記例外要因の数の変更と、前記第1と第2のテーブルの切り替えとを、前記マイクロコンピュータの動作モードの切り替えに応じて行い、
    前記出力アドレスは例外ベクタであり、前記第1または第2のテーブルにおける分岐命令のそれぞれは、前記出力アドレスにより指定されるメモリ領域に格納されるマイクロコンピュータ。
  2. 書き換え可能な不揮発性メモリを更に備え、
    前記動作モードの切り替えは、前記命令実行部において前記不揮発性メモリに格納されたプログラムが実行される通常動作モードと前記不揮発性メモリの書き換え処理が行われる縮小動作モードの間の切り替えを含む請求項1に記載のマイクロコンピュータ。
  3. 前記書き換え対象の不揮発性メモリとは別のメモリを更に備え、

    前記第1のテーブルは前記不揮発性メモリに格納され、
    前記第2のテーブルは前記別のメモリに格納される請求項2に記載のマイクロコンピュータ。
  4. 前記第2のテーブルは、前記書き換え処理を行うために一時的に前記別のメモリに配置される請求項3に記載のマイクロコンピュータ。
  5. 前記アドレス候補出力部は、前記複数のアドレス候補が1つずつ保持される複数のアドレス記憶部を備え、
    前記対応関係変更部は、
    複数の前記例外要因と前記複数のアドレス記憶部の間の対応関係を指定する設定情報を保持するための設定情報保持回路と、
    前記複数のアドレス記憶部に含まれる少なくとも2つのアドレス記憶部と前記アドレス選択部の間を接続する配線上に設けられ、前記設定情報保持回路に保持される値に応じて、前記少なくとも2つのアドレス記憶部のいずれかに保持されたアドレス候補を前記アドレス選択部に対して選択的に供給するセレクタ回路とを備える請求項2乃至4のいずれか1つに記載のマイクロコンピュータ。
  6. N個(Nは2以上の整数)の例外処理ルーチンと当該N個の例外処理ルーチンの各々の先頭アドレスへ分岐するN個の分岐命令含む第1の例外ハンドラ・アドレス・テーブルと、前記N個のうちK個分(Kは2以上かつN以下である整数)を共通としたM個(MはN−K+1である整数)の例外処理ルーチンと当該M個の例外処理ルーチンの各々の先頭アドレスへ分岐するM個の分岐命令とを含む第2の例外ハンドラ・アドレス・テーブルとを、マイクロコンピュータがアクセス可能なメモリに配置するステップと、
    入力された例外要因に応じて複数のアドレス候補の中から選択された1つのアドレス候補を前記第1または第2の例外ハンドラ・アドレス・テーブルが有する複数の分岐命令の1つを指定する例外ベクタ対応アドレスとして出力するよう構成された前記マイクロコンピュータが備えるアドレス選択部において、前記マイクロコンピュータの動作モードの切り替えに応じて、前記複数のアドレス候補のうちで前記アドレス選択部における前記例外要因との対応付けに使用されるアドレス候補の数と、前記複数のアドレス候補に含まれる少なくとも1つのアドレス候補に対応付けられる前記例外要因の数を変更するステップと、
    前記マイクロコンピュータの動作モードの切り替えに応じて、前記第1と第2の例外ハンドラ・アドレス・テーブルの切り替えを行うステップとを含むマイクロコンピュータの動作設定方法。
  7. 前記動作モードの切り替えは、前記マイクロコンピュータが備える不揮発性メモリの書き換えモードへの切り替えであり、
    前記第1の例外ハンドラ・アドレス・テーブルは前記不揮発性メモリに配置され、前記第2の例外ハンドラ・アドレス・テーブルは前記不揮発性メモリとは別のメモリに一時的に配置され、
    前記例外ハンドラ・アドレス・テーブルの切り替えステップで、前記第1の例外ハンドラ・アドレス・テーブルから前記第2の例外ハンドラ・アドレス・テーブルへの切り替えが行われる請求項6に記載のマイクロコンピュータの動作設定方法。
JP2007098015A 2007-04-04 2007-04-04 マイクロコンピュータ及びマイクロコンピュータの動作設定方法 Expired - Fee Related JP4363534B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007098015A JP4363534B2 (ja) 2007-04-04 2007-04-04 マイクロコンピュータ及びマイクロコンピュータの動作設定方法
US12/078,621 US8051278B2 (en) 2007-04-04 2008-04-02 Microcomputer and method of setting operation of microcomputer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007098015A JP4363534B2 (ja) 2007-04-04 2007-04-04 マイクロコンピュータ及びマイクロコンピュータの動作設定方法

Publications (2)

Publication Number Publication Date
JP2008257418A JP2008257418A (ja) 2008-10-23
JP4363534B2 true JP4363534B2 (ja) 2009-11-11

Family

ID=39827997

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007098015A Expired - Fee Related JP4363534B2 (ja) 2007-04-04 2007-04-04 マイクロコンピュータ及びマイクロコンピュータの動作設定方法

Country Status (2)

Country Link
US (1) US8051278B2 (ja)
JP (1) JP4363534B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2469679B (en) * 2009-04-23 2012-05-02 Imagination Tech Ltd Object tracking using momentum and acceleration vectors in a motion estimation system
CN111868684A (zh) * 2020-01-17 2020-10-30 深圳市汇顶科技股份有限公司 为芯片打补丁的方法及芯片

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5027273A (en) * 1985-04-10 1991-06-25 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
US6079015A (en) * 1998-04-20 2000-06-20 Motorola, Inc. Data processing system having selectable exception table relocation and method therefor
JP2000267864A (ja) 1999-03-17 2000-09-29 Mitsubishi Electric Corp マイクロコンピュータ
JP2005346282A (ja) * 2004-06-01 2005-12-15 Matsushita Electric Ind Co Ltd 電気的に書き換え可能な不揮発性メモリを内蔵したマイクロコンピュータ
JP2006268282A (ja) 2005-03-23 2006-10-05 Nec Corp マルチ・パーティション・システムの割り込み制御方式

Also Published As

Publication number Publication date
JP2008257418A (ja) 2008-10-23
US20080250235A1 (en) 2008-10-09
US8051278B2 (en) 2011-11-01

Similar Documents

Publication Publication Date Title
US7386646B2 (en) System and method for interrupt distribution in a multithread processor
JP5680679B2 (ja) 例外イベントを取り扱うための装置および方法
US8726292B2 (en) System and method for communication in a multithread processor
US6959367B2 (en) System having read-modify-write unit
US9043806B2 (en) Information processing device and task switching method
US20100299471A1 (en) Microcontroller with an Interrupt Structure Having Programmable Priority Levels with each Priority Level Associated with a Different Register Set
KR920006614B1 (ko) 뱅크스위칭 방식의 데이터 처리 시스템에 있어서의 서브프로그램장치 및 그 방법
JP3773470B2 (ja) データ処理装置内でのコプロセッサ命令の取り扱い
US7290124B2 (en) Data processor employing register banks with overflow protection to enhance interrupt processing and task switching
US20030101301A1 (en) Interruption processing circuit having an interruption control unit having a short time between an interruption request and start of execution of interruption service routine
JP4363534B2 (ja) マイクロコンピュータ及びマイクロコンピュータの動作設定方法
JP5108690B2 (ja) Dma装置及びdma転送方法
US7076641B2 (en) Programmable controller
US20230315456A1 (en) Processing apparatus
JP4198016B2 (ja) 情報処理装置およびその割り込み制御方法
JP6603100B2 (ja) メモリ制御装置及びメモリ制御方法
JPH044630B2 (ja)
JPS6014435B2 (ja) 記憶装置
JP2003337668A (ja) 画像形成装置及びそのメモリクリア方法
JP2001134449A (ja) データ処理装置とその制御方法
JPH03280128A (ja) マイクロプログラム制御装置
JPS59177656A (ja) プログラム切替制御装置
JPH06110707A (ja) 高優先度割り込み方法及び該方法が採用されたマイクロプロセッサ
JPH0823852B2 (ja) 入出力処理装置
JP2014126977A (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090202

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20090204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090428

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20090420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090624

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090811

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120828

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4363534

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120828

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120828

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120828

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130828

Year of fee payment: 4

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