JP2001125781A - マイクロプロセッサ、およびマイクロプロセッサにおけるプログラム変更方法 - Google Patents
マイクロプロセッサ、およびマイクロプロセッサにおけるプログラム変更方法Info
- Publication number
- JP2001125781A JP2001125781A JP30814099A JP30814099A JP2001125781A JP 2001125781 A JP2001125781 A JP 2001125781A JP 30814099 A JP30814099 A JP 30814099A JP 30814099 A JP30814099 A JP 30814099A JP 2001125781 A JP2001125781 A JP 2001125781A
- Authority
- JP
- Japan
- Prior art keywords
- address
- instruction
- correction
- storage unit
- bit
- 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.)
- Pending
Links
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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
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)
- Microcomputers (AREA)
- Stored Programmes (AREA)
Abstract
(57)【要約】
【課題】 マイクロプロセッサとして、不要な分岐命令
や割り込み処理を伴わないプログラム変更機能を実現す
る。 【解決手段】 命令記憶部30は、処理対象のプログラ
ムを構成する命令を格納するROM31と、プログラム
変更のための修正命令を格納する修正命令記憶部32と
を有する。アドレス変換部20は、プログラムカウンタ
10から供給された命令アドレスの上位ビットが修正ア
ドレスの上位ビット(47)と一致するとき、修正命令
記憶部32で修正命令が格納された代替アドレスの上位
ビット(C0)に変換する。これにより、分岐命令や割
り込み処理を伴うことなく、連続した領域についてプロ
グラム変更を実現することができる。
や割り込み処理を伴わないプログラム変更機能を実現す
る。 【解決手段】 命令記憶部30は、処理対象のプログラ
ムを構成する命令を格納するROM31と、プログラム
変更のための修正命令を格納する修正命令記憶部32と
を有する。アドレス変換部20は、プログラムカウンタ
10から供給された命令アドレスの上位ビットが修正ア
ドレスの上位ビット(47)と一致するとき、修正命令
記憶部32で修正命令が格納された代替アドレスの上位
ビット(C0)に変換する。これにより、分岐命令や割
り込み処理を伴うことなく、連続した領域についてプロ
グラム変更を実現することができる。
Description
【0001】
【発明の属する技術分野】本発明は、マイクロプロセッ
サにおけるプログラム変更機能に関する技術に属する。
サにおけるプログラム変更機能に関する技術に属する。
【0002】
【従来の技術】マイクロプロセッサは、プログラムを構
成する命令を記憶装置から取得し、これをデコーダによ
って解読し、その内容に応じて、演算装置、入力装置、
出力装置、記憶装置または制御装置等の構成装置を制御
し、順次処理を進めるものである。なお、本願明細書で
は、「マイクロプロセッサ」は、マイクロコンピュー
タ、マイクロコントローラおよびディジタル・シグナル
・プロセッサを含むものとする。
成する命令を記憶装置から取得し、これをデコーダによ
って解読し、その内容に応じて、演算装置、入力装置、
出力装置、記憶装置または制御装置等の構成装置を制御
し、順次処理を進めるものである。なお、本願明細書で
は、「マイクロプロセッサ」は、マイクロコンピュー
タ、マイクロコントローラおよびディジタル・シグナル
・プロセッサを含むものとする。
【0003】図11はマイクロプロセッサの一般的な構
成の概略を示す図である。図11に示すように、プログ
ラムカウンタ10は次に実行すべき命令のアドレスをR
OM101(またはRAM)からなる命令記憶部100
に供給する。命令記憶部100は供給されたアドレスに
応じた命令データをデコーダ40に出力する。このよう
な動作によって、順次処理が実行される。
成の概略を示す図である。図11に示すように、プログ
ラムカウンタ10は次に実行すべき命令のアドレスをR
OM101(またはRAM)からなる命令記憶部100
に供給する。命令記憶部100は供給されたアドレスに
応じた命令データをデコーダ40に出力する。このよう
な動作によって、順次処理が実行される。
【0004】ここで、命令記憶部100を構成するRO
M101に格納されたプログラムについて不具合(バ
グ)や仕様変更が生じた場合を考える。この場合、RO
M101に格納された内容をマイクロプロセッサの製造
後において変更することは不可能であるので、プログラ
ム変更のためには、新たなROMを備えたマイクロプロ
セッサを改めて製造する必要がある。このような再製造
は、製造コストの増大や納期の遅れを招くことになり、
好ましくない。
M101に格納されたプログラムについて不具合(バ
グ)や仕様変更が生じた場合を考える。この場合、RO
M101に格納された内容をマイクロプロセッサの製造
後において変更することは不可能であるので、プログラ
ム変更のためには、新たなROMを備えたマイクロプロ
セッサを改めて製造する必要がある。このような再製造
は、製造コストの増大や納期の遅れを招くことになり、
好ましくない。
【0005】このような再製造を防ぐために、製造後に
おいてもプログラムの変更を可能にするいわゆるプログ
ラム変更機能を有するマイクロプロセッサが従来から用
いられている。
おいてもプログラムの変更を可能にするいわゆるプログ
ラム変更機能を有するマイクロプロセッサが従来から用
いられている。
【0006】図12は従来のプログラム変更機能を有す
るマイクロプロセッサの構成を示す図である。図12に
おいて、プログラムカウンタ10は命令アドレスバスを
介して命令記憶部100に命令アドレスを供給する。命
令記憶部100はプログラムが格納されたROM101
を備えている。命令変更部110において、修正アドレ
ス記憶部111は修正すべきROM101のアドレス値
を保持し、代替命令記憶部112は不具合のある命令と
置換する代替命令データを保持する。アドレス比較器1
13は修正アドレス記憶部111のアドレス値とプログ
ラムカウンタ10から出力されたアドレス値を各マシン
サイクルごとに比較し、一致しているか否かを示すアド
レス一致信号を命令セレクタ114に出力する。命令セ
レクタ114は、アドレス一致信号がアドレスの一致を
示しているときは代替命令記憶部112からの命令デー
タを選択する一方、アドレスの不一致を示しているとき
は命令記憶部100からの命令データを選択し、デコー
ダ40に出力する。
るマイクロプロセッサの構成を示す図である。図12に
おいて、プログラムカウンタ10は命令アドレスバスを
介して命令記憶部100に命令アドレスを供給する。命
令記憶部100はプログラムが格納されたROM101
を備えている。命令変更部110において、修正アドレ
ス記憶部111は修正すべきROM101のアドレス値
を保持し、代替命令記憶部112は不具合のある命令と
置換する代替命令データを保持する。アドレス比較器1
13は修正アドレス記憶部111のアドレス値とプログ
ラムカウンタ10から出力されたアドレス値を各マシン
サイクルごとに比較し、一致しているか否かを示すアド
レス一致信号を命令セレクタ114に出力する。命令セ
レクタ114は、アドレス一致信号がアドレスの一致を
示しているときは代替命令記憶部112からの命令デー
タを選択する一方、アドレスの不一致を示しているとき
は命令記憶部100からの命令データを選択し、デコー
ダ40に出力する。
【0007】このように、修正アドレスおよび代替命令
をペアで保持し、プログラムカウンタ10から供給され
る命令アドレスが修正アドレスと一致したとき、この命
令アドレスの命令データを代替命令データに置換してデ
コーダ40に供給することによって、プログラム変更機
能を実現している。
をペアで保持し、プログラムカウンタ10から供給され
る命令アドレスが修正アドレスと一致したとき、この命
令アドレスの命令データを代替命令データに置換してデ
コーダ40に供給することによって、プログラム変更機
能を実現している。
【0008】
【発明が解決しようとする課題】しかしながら、図12
に示すような従来の構成では、次のような問題がある。
に示すような従来の構成では、次のような問題がある。
【0009】まず、図12の構成では、基本的には1個
の命令を1個の命令によって置換することしかできな
い。複数個の命令を置換できるようにするためには、命
令変更部110の構成を複数個設けるか、または命令変
更部110を複数回動作させる必要がある。命令変更部
110の構成を複数個設けた場合には回路規模の増大を
招く。また命令変更部110を複数回動作させる場合に
は、必ず分岐命令または割り込み処理が必要になり、本
来なら不要である命令の実行処理のために無駄なマシン
サイクルが費やされてしまう。さらに、割り込み処理を
用いる場合には、ユーザーが利用可能な割り込み数がそ
の分だけ少なくなる。
の命令を1個の命令によって置換することしかできな
い。複数個の命令を置換できるようにするためには、命
令変更部110の構成を複数個設けるか、または命令変
更部110を複数回動作させる必要がある。命令変更部
110の構成を複数個設けた場合には回路規模の増大を
招く。また命令変更部110を複数回動作させる場合に
は、必ず分岐命令または割り込み処理が必要になり、本
来なら不要である命令の実行処理のために無駄なマシン
サイクルが費やされてしまう。さらに、割り込み処理を
用いる場合には、ユーザーが利用可能な割り込み数がそ
の分だけ少なくなる。
【0010】分岐命令や割り込み処理の増加は、近年の
製品レベルでは大きな問題となる。例えば、不具合のあ
る命令が繰り返しループの深い箇所にある場合には、1
回の実行の際の増加ステップがたとえ数ステップであっ
たとしても、実際にはその何十倍、何百倍ものステップ
が無駄に費やされることになる。特に、デジタル・シグ
ナル・プロセッサではその演算処理の特性上、繰り返し
ループが多重になっていることが多いので、この問題は
顕著に現れる。また、リアルタイム性が求められる用途
の製品については、たとえ数ステップの増加であっても
その影響は極めて大きい。
製品レベルでは大きな問題となる。例えば、不具合のあ
る命令が繰り返しループの深い箇所にある場合には、1
回の実行の際の増加ステップがたとえ数ステップであっ
たとしても、実際にはその何十倍、何百倍ものステップ
が無駄に費やされることになる。特に、デジタル・シグ
ナル・プロセッサではその演算処理の特性上、繰り返し
ループが多重になっていることが多いので、この問題は
顕著に現れる。また、リアルタイム性が求められる用途
の製品については、たとえ数ステップの増加であっても
その影響は極めて大きい。
【0011】また、命令数の増加を伴うプログラム変更
を行うためには、代替命令記憶部112とは別に命令追
加用記憶部を設ける必要があり、このため、回路規模が
増大するという問題が生じる。
を行うためには、代替命令記憶部112とは別に命令追
加用記憶部を設ける必要があり、このため、回路規模が
増大するという問題が生じる。
【0012】前記の問題に鑑み、本発明は、マイクロプ
ロセッサとして、不要な分岐命令や割り込み処理を伴わ
ないプログラム変更機能を実現することを課題とする。
また、命令数の増加を伴うプログラム変更を簡易な構成
によって実現することを課題とする。
ロセッサとして、不要な分岐命令や割り込み処理を伴わ
ないプログラム変更機能を実現することを課題とする。
また、命令数の増加を伴うプログラム変更を簡易な構成
によって実現することを課題とする。
【0013】
【課題を解決するための手段】前記の課題を解決するた
めに、請求項1の発明が講じた解決手段は、プログラム
変更機能を有するマイクロプロセッサとして、処理対象
のプログラムを構成する命令を格納するROMとプログ
ラム変更のための修正命令を格納する修正命令記憶部と
を有する命令記憶部と、前記ROMにおける命令の格納
位置を示す命令アドレスを入力とし、この命令アドレス
が修正を必要とする命令のアドレスである修正アドレス
と一致するとき、この命令アドレスを前記修正命令記憶
部において修正命令が格納された代替アドレスに変換す
るアドレス変換部とを備えたものである。
めに、請求項1の発明が講じた解決手段は、プログラム
変更機能を有するマイクロプロセッサとして、処理対象
のプログラムを構成する命令を格納するROMとプログ
ラム変更のための修正命令を格納する修正命令記憶部と
を有する命令記憶部と、前記ROMにおける命令の格納
位置を示す命令アドレスを入力とし、この命令アドレス
が修正を必要とする命令のアドレスである修正アドレス
と一致するとき、この命令アドレスを前記修正命令記憶
部において修正命令が格納された代替アドレスに変換す
るアドレス変換部とを備えたものである。
【0014】請求項1の発明によると、修正を必要とす
る命令については、命令記憶部に供給するアドレスを変
換することによって、修正命令記憶部に格納された修正
命令に変更することができる。このため、不要な分岐命
令や割り込み処理の実行を伴うことなく、プログラム変
更を実現することができる。また、連続するアドレス領
域の修正が可能となり、1ワード単位だけでなく数ワー
ドからなるブロック単位のプログラム変更も可能にな
る。
る命令については、命令記憶部に供給するアドレスを変
換することによって、修正命令記憶部に格納された修正
命令に変更することができる。このため、不要な分岐命
令や割り込み処理の実行を伴うことなく、プログラム変
更を実現することができる。また、連続するアドレス領
域の修正が可能となり、1ワード単位だけでなく数ワー
ドからなるブロック単位のプログラム変更も可能にな
る。
【0015】そして、請求項2の発明では、前記請求項
1のマイクロプロセッサにおけるアドレス変換部は、前
記修正アドレスの所定ビットの値を保持する修正アドレ
ス記憶部と、入力された命令アドレスの前記所定ビット
の値と前記修正アドレス記憶部に保持されたビット値と
を比較し、これらのビット値が一致するか否かを判定す
るアドレス比較器と、前記代替アドレスの前記所定ビッ
トの値を保持する代替アドレス記憶部と、前記アドレス
比較器の判定結果を受け、ビット値が一致していると判
定されたときは、前記代替アドレス記憶部に保持された
ビット値を新たな命令アドレスの前記所定ビットの値と
して出力する一方、そうでないときは、前記命令アドレ
スの前記所定ビットの値を前記新たな命令アドレスの前
記所定ビットの値として出力するアドレスセレクタとを
備えたものとする。
1のマイクロプロセッサにおけるアドレス変換部は、前
記修正アドレスの所定ビットの値を保持する修正アドレ
ス記憶部と、入力された命令アドレスの前記所定ビット
の値と前記修正アドレス記憶部に保持されたビット値と
を比較し、これらのビット値が一致するか否かを判定す
るアドレス比較器と、前記代替アドレスの前記所定ビッ
トの値を保持する代替アドレス記憶部と、前記アドレス
比較器の判定結果を受け、ビット値が一致していると判
定されたときは、前記代替アドレス記憶部に保持された
ビット値を新たな命令アドレスの前記所定ビットの値と
して出力する一方、そうでないときは、前記命令アドレ
スの前記所定ビットの値を前記新たな命令アドレスの前
記所定ビットの値として出力するアドレスセレクタとを
備えたものとする。
【0016】また、請求項3の発明では、前記請求項1
のマイクロプロセッサにおけるアドレス変換部は、命令
アドレスを代替アドレスに変換する際における変換対象
のビット幅が変更可能に構成されているものとする。
のマイクロプロセッサにおけるアドレス変換部は、命令
アドレスを代替アドレスに変換する際における変換対象
のビット幅が変更可能に構成されているものとする。
【0017】そして、請求項4の発明では、前記請求項
3のマイクロプロセッサにおけるアドレス変換部は、前
記修正アドレスの所定ビットの値を保持する修正アドレ
ス記憶部と、前記命令アドレスの前記所定ビットの値と
前記修正アドレス記憶部に保持されたビット値とを比較
し、これらのビット値が一致するか否かを判定するアド
レス比較器と、前記代替アドレスの前記所定ビットの値
を保持する代替アドレス記憶部と、前記アドレス比較器
の判定結果を受け、ビット値が一致していると判定され
たときは、前記代替アドレス記憶部に保持されたビット
値を新たな命令アドレスの前記所定ビットの値として出
力する一方、そうでないときは、前記命令アドレスの前
記所定ビットの値を前記新たな命令アドレスの前記所定
ビットの値として出力するアドレスセレクタと、前記所
定ビットを変換対象ビットとして指定するか否かを設定
可能に構成されており、前記所定ビットを変換対象ビッ
トとして指定しないとき、前記アドレスセレクタに、前
記アドレス比較器の判定結果に拘わらず、前記命令アド
レスの前記所定ビットの値を前記新たな命令アドレスの
前記所定ビットの値として出力させる変換範囲設定手段
とを備えたものとする。
3のマイクロプロセッサにおけるアドレス変換部は、前
記修正アドレスの所定ビットの値を保持する修正アドレ
ス記憶部と、前記命令アドレスの前記所定ビットの値と
前記修正アドレス記憶部に保持されたビット値とを比較
し、これらのビット値が一致するか否かを判定するアド
レス比較器と、前記代替アドレスの前記所定ビットの値
を保持する代替アドレス記憶部と、前記アドレス比較器
の判定結果を受け、ビット値が一致していると判定され
たときは、前記代替アドレス記憶部に保持されたビット
値を新たな命令アドレスの前記所定ビットの値として出
力する一方、そうでないときは、前記命令アドレスの前
記所定ビットの値を前記新たな命令アドレスの前記所定
ビットの値として出力するアドレスセレクタと、前記所
定ビットを変換対象ビットとして指定するか否かを設定
可能に構成されており、前記所定ビットを変換対象ビッ
トとして指定しないとき、前記アドレスセレクタに、前
記アドレス比較器の判定結果に拘わらず、前記命令アド
レスの前記所定ビットの値を前記新たな命令アドレスの
前記所定ビットの値として出力させる変換範囲設定手段
とを備えたものとする。
【0018】また、請求項5の発明では、前記請求項1
のマイクロプロセッサにおけるアドレス変換部は、入力
された命令アドレスに応じた変換アドレスを出力するメ
モリによって構成されているものとする。
のマイクロプロセッサにおけるアドレス変換部は、入力
された命令アドレスに応じた変換アドレスを出力するメ
モリによって構成されているものとする。
【0019】また、請求項6の発明では、前記請求項1
のマイクロプロセッサにおけるアドレス変換部は、入力
された命令アドレスに応じた変換アドレスを出力するフ
ィールドプログラマブルロジックによって構成されてい
るものとする。
のマイクロプロセッサにおけるアドレス変換部は、入力
された命令アドレスに応じた変換アドレスを出力するフ
ィールドプログラマブルロジックによって構成されてい
るものとする。
【0020】また、請求項7の発明では、前記請求項1
のマイクロプロセッサにおける修正命令記憶部は、プロ
グラム変更のための追加命令が格納されており、かつ、
前記代替アドレスが示す格納位置に前記追加命令が格納
された位置を分岐先とする分岐命令が格納されているも
のとする。
のマイクロプロセッサにおける修正命令記憶部は、プロ
グラム変更のための追加命令が格納されており、かつ、
前記代替アドレスが示す格納位置に前記追加命令が格納
された位置を分岐先とする分岐命令が格納されているも
のとする。
【0021】請求項7の発明によると、命令数の増加を
伴うプログラム変更を、簡易な構成によって実現するこ
とができる。
伴うプログラム変更を、簡易な構成によって実現するこ
とができる。
【0022】また、請求項8の発明が講じた解決手段
は、処理対象のプログラムを構成する命令を格納するR
OMと、プログラム変更のための修正命令を格納する修
正命令記憶部とを有する命令記憶部を備えたマイクロプ
ロセッサにおいて、プログラム変更を行う方法として、
前記ROMにおける命令の格納位置を示す命令アドレス
と、修正を必要とする命令のアドレスである修正アドレ
スとを比較し、前記命令アドレスと前記修正アドレスと
が一致するとき、この命令アドレスを前記修正命令記憶
部において修正命令が格納された代替アドレスに変換す
るものである。
は、処理対象のプログラムを構成する命令を格納するR
OMと、プログラム変更のための修正命令を格納する修
正命令記憶部とを有する命令記憶部を備えたマイクロプ
ロセッサにおいて、プログラム変更を行う方法として、
前記ROMにおける命令の格納位置を示す命令アドレス
と、修正を必要とする命令のアドレスである修正アドレ
スとを比較し、前記命令アドレスと前記修正アドレスと
が一致するとき、この命令アドレスを前記修正命令記憶
部において修正命令が格納された代替アドレスに変換す
るものである。
【0023】請求項8の発明によると、修正を必要とす
る命令については、命令記憶部に供給するアドレスを変
換することによって、修正命令記憶部に格納された修正
命令に変更することができる。このため、不要な分岐命
令や割り込み処理の実行を伴うことなく、プログラム変
更を実現することができる。また、連続するアドレス領
域の修正が可能となり、1ワード単位だけでなく数ワー
ドからなるブロック単位のプログラム変更も可能にな
る。
る命令については、命令記憶部に供給するアドレスを変
換することによって、修正命令記憶部に格納された修正
命令に変更することができる。このため、不要な分岐命
令や割り込み処理の実行を伴うことなく、プログラム変
更を実現することができる。また、連続するアドレス領
域の修正が可能となり、1ワード単位だけでなく数ワー
ドからなるブロック単位のプログラム変更も可能にな
る。
【0024】そして、請求項9の発明では、前記請求項
8のプログラム変更方法におけるアドレス比較の前に、
前記修正命令記憶部にプログラム変更のための追加命令
を格納し、前記代替アドレスが示す格納位置に前記追加
命令が格納された位置を分岐先とする分岐命令を格納す
るものとする。
8のプログラム変更方法におけるアドレス比較の前に、
前記修正命令記憶部にプログラム変更のための追加命令
を格納し、前記代替アドレスが示す格納位置に前記追加
命令が格納された位置を分岐先とする分岐命令を格納す
るものとする。
【0025】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照しながら具体的に説明する。
て、図面を参照しながら具体的に説明する。
【0026】図1は本発明の一実施形態に係るプログラ
ム変更機能を有するマイクロプロセッサの構成を示す図
である。図1において、プログラムカウンタ10はアド
レス変換部20に命令アドレスバスを介して命令アドレ
スを供給する。アドレス変換部20はプログラム変更の
ために必要なとき、入力された命令アドレスを変換す
る。命令記憶部30はプログラムカウンタ10から出力
された命令アドレス値ではなく、アドレス変換部20に
よってプログラム変更に応じて変換されたアドレス値を
受け取り、このアドレス値に応じた命令データをデコー
ダ40に出力する。
ム変更機能を有するマイクロプロセッサの構成を示す図
である。図1において、プログラムカウンタ10はアド
レス変換部20に命令アドレスバスを介して命令アドレ
スを供給する。アドレス変換部20はプログラム変更の
ために必要なとき、入力された命令アドレスを変換す
る。命令記憶部30はプログラムカウンタ10から出力
された命令アドレス値ではなく、アドレス変換部20に
よってプログラム変更に応じて変換されたアドレス値を
受け取り、このアドレス値に応じた命令データをデコー
ダ40に出力する。
【0027】命令記憶部30は本来の処理対象のプログ
ラムを構成する命令を格納するROM31と、プログラ
ム変更のための修正用の命令を格納する修正命令記憶部
32とを有している。ROM31および修正命令記憶部
32はいずれも、マイクロプロセッサがアクセス可能な
アドレス空間が割り当てられる。アドレス変換部20は
入力された命令アドレスが、修正を必要とする命令のア
ドレスである修正アドレスと一致するとき、この命令ア
ドレスを、修正命令記憶部32において修正命令が格納
された代替アドレスに変換する。
ラムを構成する命令を格納するROM31と、プログラ
ム変更のための修正用の命令を格納する修正命令記憶部
32とを有している。ROM31および修正命令記憶部
32はいずれも、マイクロプロセッサがアクセス可能な
アドレス空間が割り当てられる。アドレス変換部20は
入力された命令アドレスが、修正を必要とする命令のア
ドレスである修正アドレスと一致するとき、この命令ア
ドレスを、修正命令記憶部32において修正命令が格納
された代替アドレスに変換する。
【0028】図2は命令記憶部30のアドレス空間を表
すメモリマップの例を示す図であり、本実施形態に係る
アドレス変換の例を示す図である。図2では、ROM3
1は48Kワードの記憶容量を有し、0000番地から
BFFF番地までにマッピングされており、修正命令記
憶部32は4Kワードの記憶容量を有するメモリであ
り、C000番地からCFFF番地までにマッピングさ
れているものとする。
すメモリマップの例を示す図であり、本実施形態に係る
アドレス変換の例を示す図である。図2では、ROM3
1は48Kワードの記憶容量を有し、0000番地から
BFFF番地までにマッピングされており、修正命令記
憶部32は4Kワードの記憶容量を有するメモリであ
り、C000番地からCFFF番地までにマッピングさ
れているものとする。
【0029】いま、ROM31の1000番地に格納さ
れた命令に不具合が発生したものとする。この場合に
は、修正命令記憶部32の記憶領域内の代替アドレス
(図2ではC800番地)に、修正した命令データを記
録する。そして、アドレス変換部20を、入力された1
000番地の命令アドレスがC800番地の代替アドレ
スに変換されるように、設定する。これにより、プログ
ラム実行時にプログラムカウンタ10が1000番地を
命令アドレスとして出力した場合には、アドレス変換部
20によるアドレス変換によって、命令記憶部30に
は、1000番地の代わりに代替アドレスのC800番
地が与えられ、デコーダ40にはC800番地に格納さ
れた命令データが供給される。すなわち、1000番地
の命令をC800番地の命令に置換することができる。
れた命令に不具合が発生したものとする。この場合に
は、修正命令記憶部32の記憶領域内の代替アドレス
(図2ではC800番地)に、修正した命令データを記
録する。そして、アドレス変換部20を、入力された1
000番地の命令アドレスがC800番地の代替アドレ
スに変換されるように、設定する。これにより、プログ
ラム実行時にプログラムカウンタ10が1000番地を
命令アドレスとして出力した場合には、アドレス変換部
20によるアドレス変換によって、命令記憶部30に
は、1000番地の代わりに代替アドレスのC800番
地が与えられ、デコーダ40にはC800番地に格納さ
れた命令データが供給される。すなわち、1000番地
の命令をC800番地の命令に置換することができる。
【0030】このような方式によって、ROM31のい
ずれのアドレスの命令についても、修正命令記憶部32
の任意のアドレスの命令データと置換することが可能で
あり、プログラム変更を実現することができる。この命
令置換においては、分岐命令や割り込みは必要ないの
で、無駄なマシンサイクルは消費されず、ダイナミック
ステップ数は増加しない。
ずれのアドレスの命令についても、修正命令記憶部32
の任意のアドレスの命令データと置換することが可能で
あり、プログラム変更を実現することができる。この命
令置換においては、分岐命令や割り込みは必要ないの
で、無駄なマシンサイクルは消費されず、ダイナミック
ステップ数は増加しない。
【0031】図3は本実施形態に係るアドレス変換の他
の例を示す図である。図3では、修正命令記憶部32に
おいて、代替アドレスが示す格納位置すなわちC800
番地に分岐命令が格納されており、この分岐命令の分岐
先すなわちCA00番地からプログラム変更のための追
加命令が格納されている。これにより、命令数の増加を
伴うプログラム変更を容易に実現することができる。
の例を示す図である。図3では、修正命令記憶部32に
おいて、代替アドレスが示す格納位置すなわちC800
番地に分岐命令が格納されており、この分岐命令の分岐
先すなわちCA00番地からプログラム変更のための追
加命令が格納されている。これにより、命令数の増加を
伴うプログラム変更を容易に実現することができる。
【0032】すなわち、アドレス変換によって、命令ア
ドレス1000番地が代替アドレスC800番地に変更
されると、C800番地の分岐命令が実行される。これ
により、分岐先のCA00番地以降に格納された追加命
令が実行される。このように、マイクロプロセッサがア
クセス可能なアドレス空間に修正命令記憶部32が割り
当てられているため、命令置換用記憶部と命令追加用記
憶部とを共用することができるので、命令数が増加する
プログラム変更を新たな回路を追加することなく簡易な
構成によって実現することができる。
ドレス1000番地が代替アドレスC800番地に変更
されると、C800番地の分岐命令が実行される。これ
により、分岐先のCA00番地以降に格納された追加命
令が実行される。このように、マイクロプロセッサがア
クセス可能なアドレス空間に修正命令記憶部32が割り
当てられているため、命令置換用記憶部と命令追加用記
憶部とを共用することができるので、命令数が増加する
プログラム変更を新たな回路を追加することなく簡易な
構成によって実現することができる。
【0033】なお、修正命令記憶部32はRAM、EP
ROM、フラッシュメモリ、FeRAM若しくはFPG
A等の書き込み可能なメモリ、または読み出し専用メモ
リ(ROM)のいずれの構成によっても実現可能であ
る。修正命令記憶部32を書き込み可能なメモリによっ
て構成した場合は、製造後において任意のプログラム変
更が可能である。また、修正命令記憶部32をROMに
よって構成した場合は、製造時に予め設定したプログラ
ム変更のみが可能であるる。この場合、プログラム変更
の内容を予め複数種類設定しておき、マイクロプロセッ
サの用途に応じてプログラム変更の内容を選択すること
も可能である。
ROM、フラッシュメモリ、FeRAM若しくはFPG
A等の書き込み可能なメモリ、または読み出し専用メモ
リ(ROM)のいずれの構成によっても実現可能であ
る。修正命令記憶部32を書き込み可能なメモリによっ
て構成した場合は、製造後において任意のプログラム変
更が可能である。また、修正命令記憶部32をROMに
よって構成した場合は、製造時に予め設定したプログラ
ム変更のみが可能であるる。この場合、プログラム変更
の内容を予め複数種類設定しておき、マイクロプロセッ
サの用途に応じてプログラム変更の内容を選択すること
も可能である。
【0034】図4はアドレス変換部20の具体的な構成
例を示す図である。図4では、命令アドレスの上位Mビ
ットの変換を行う構成を示している。
例を示す図である。図4では、命令アドレスの上位Mビ
ットの変換を行う構成を示している。
【0035】アドレス変換部20では、命令アドレスの
全ビットについて変換を行う必要は必ずしもない。例え
ば、特定の上位ビットのみについて変換を行い、残りの
下位ビットについては変換を行わないものとすると、変
換対象のビット幅が小さくなるので、高速なアドレス変
換が可能となり、命令記憶部30の読み出し動作も高速
化できる。例えば、上記の1000番地からC8000
番地への変換は、命令アドレスの16ビットのうち上位
5ビットのみの変換を行うことによって実現できる。こ
の場合のプログラム変更は、下位の11ビットが表す2
Kワードの領域を単位として行われる。
全ビットについて変換を行う必要は必ずしもない。例え
ば、特定の上位ビットのみについて変換を行い、残りの
下位ビットについては変換を行わないものとすると、変
換対象のビット幅が小さくなるので、高速なアドレス変
換が可能となり、命令記憶部30の読み出し動作も高速
化できる。例えば、上記の1000番地からC8000
番地への変換は、命令アドレスの16ビットのうち上位
5ビットのみの変換を行うことによって実現できる。こ
の場合のプログラム変更は、下位の11ビットが表す2
Kワードの領域を単位として行われる。
【0036】図4において、修正アドレス記憶部21は
修正すべきアドレス領域を示す修正アドレスの所定のビ
ットとしての上位Mビットの値を保持し、代替アドレス
記憶部22は置換先のアドレス領域を示す代替アドレス
の上位Mビットの値を保持する。アドレス比較器23は
プログラムカウンタ10から出力された命令アドレスの
上位Mビットと、修正アドレス記憶部21に保持された
ビット値とを比較し、これらのビット値が一致するか否
かを判定し、この判定結果を示す信号をアドレスセレク
タ24に出力する。
修正すべきアドレス領域を示す修正アドレスの所定のビ
ットとしての上位Mビットの値を保持し、代替アドレス
記憶部22は置換先のアドレス領域を示す代替アドレス
の上位Mビットの値を保持する。アドレス比較器23は
プログラムカウンタ10から出力された命令アドレスの
上位Mビットと、修正アドレス記憶部21に保持された
ビット値とを比較し、これらのビット値が一致するか否
かを判定し、この判定結果を示す信号をアドレスセレク
タ24に出力する。
【0037】アドレスセレクタ24は、アドレス比較器
23から受けた信号が、ビット値が一致していることを
示すときすなわちアドレス比較器23によってビット値
が一致していると判定されたときは、代替アドレス記憶
部22に保持されたビット値を新たな命令アドレスの上
位Mビットして出力する。一方、アドレス比較器23か
ら受けた信号が、ビット値が一致していないことを示す
ときすなわちアドレス比較器23によってビット値が一
致していないと判定されたときは、プログラムカウンタ
10から出力された命令アドレスの上位Mビットを新た
な命令アドレスの上位Mビットして出力する。
23から受けた信号が、ビット値が一致していることを
示すときすなわちアドレス比較器23によってビット値
が一致していると判定されたときは、代替アドレス記憶
部22に保持されたビット値を新たな命令アドレスの上
位Mビットして出力する。一方、アドレス比較器23か
ら受けた信号が、ビット値が一致していないことを示す
ときすなわちアドレス比較器23によってビット値が一
致していないと判定されたときは、プログラムカウンタ
10から出力された命令アドレスの上位Mビットを新た
な命令アドレスの上位Mビットして出力する。
【0038】また、アドレス比較を行わない命令アドレ
スの下位(N−M)ビットは、プログラムカウンタ10
からそのまま命令記憶部30に入力される。命令記憶部
30は、アドレスセレクタ24から出力された新たな命
令アドレスの上位Mビットとプログラムカウンタ10か
ら出力された命令アドレスの下位(N−M)ビットとを
併せて新たな命令アドレスとし、この新たな命令アドレ
スに応じた命令データをデコーダ40に出力する。
スの下位(N−M)ビットは、プログラムカウンタ10
からそのまま命令記憶部30に入力される。命令記憶部
30は、アドレスセレクタ24から出力された新たな命
令アドレスの上位Mビットとプログラムカウンタ10か
ら出力された命令アドレスの下位(N−M)ビットとを
併せて新たな命令アドレスとし、この新たな命令アドレ
スに応じた命令データをデコーダ40に出力する。
【0039】なお、図4では図示していないが、修正ア
ドレス記憶部21および代替アドレス記憶部22に対し
て格納ビット値を書き換えるための書き換えパスを設け
て、プログラム実行前に格納ビット値を書き換え可能な
構成としてもかまわない。また、修正アドレス記憶部2
1および代替アドレス記憶部22を、例えばマイクロプ
ロセッサがアクセス可能な制御レジスタのようなプログ
ラム実行時においても書き換え可能な構成としてもかま
わない。これにより、アドレス比較器23が一個であっ
ても、複数箇所のプログラム変更が可能になる。
ドレス記憶部21および代替アドレス記憶部22に対し
て格納ビット値を書き換えるための書き換えパスを設け
て、プログラム実行前に格納ビット値を書き換え可能な
構成としてもかまわない。また、修正アドレス記憶部2
1および代替アドレス記憶部22を、例えばマイクロプ
ロセッサがアクセス可能な制御レジスタのようなプログ
ラム実行時においても書き換え可能な構成としてもかま
わない。これにより、アドレス比較器23が一個であっ
ても、複数箇所のプログラム変更が可能になる。
【0040】また、図4では命令アドレスの上位ビット
のみの変換を行う構成を示しているが、当然ながら全ビ
ットの変換も可能である。
のみの変換を行う構成を示しているが、当然ながら全ビ
ットの変換も可能である。
【0041】図5は図4に示す構成の動作の例を示す図
である。図5の例では、16ビットの命令アドレスのう
ち比較・変更を行う所定のビットを上位8ビットとし、
ROM31に格納されたプログラムを256ワードの領
域毎に置換修正するものとする。ROM31は48Kワ
ードの記憶容量を有し、0000番地からBFFF番地
にマッピングされており、修正命令記憶部32は4Kワ
ードのRAMによって構成され、C000番地からCF
FF番地にマッピングされている。
である。図5の例では、16ビットの命令アドレスのう
ち比較・変更を行う所定のビットを上位8ビットとし、
ROM31に格納されたプログラムを256ワードの領
域毎に置換修正するものとする。ROM31は48Kワ
ードの記憶容量を有し、0000番地からBFFF番地
にマッピングされており、修正命令記憶部32は4Kワ
ードのRAMによって構成され、C000番地からCF
FF番地にマッピングされている。
【0042】図5では、プログラムの不具合がROM3
1の4700番地から47FF番地の間に発生した場合
を想定している。このとき、修正アドレス記憶部21に
不具合が生じたアドレスの上位8ビット(すなわち“4
7”)を設定する。そして、プログラム変更用に、修正
命令記憶部32のC000番地からC0FF番地までの
領域を用いるものとし、代替アドレス記憶部22に代替
アドレスの上位8ビット(すなわち“C0”)を設定す
る。さらに、修正命令記憶部32のC000番地からC
0FF番地に修正後の命令データを書き込む。
1の4700番地から47FF番地の間に発生した場合
を想定している。このとき、修正アドレス記憶部21に
不具合が生じたアドレスの上位8ビット(すなわち“4
7”)を設定する。そして、プログラム変更用に、修正
命令記憶部32のC000番地からC0FF番地までの
領域を用いるものとし、代替アドレス記憶部22に代替
アドレスの上位8ビット(すなわち“C0”)を設定す
る。さらに、修正命令記憶部32のC000番地からC
0FF番地に修正後の命令データを書き込む。
【0043】プログラム実行時に、プログラムカウンタ
10が4700番地から47FF番地までのいずれかの
命令アドレスを出力したとき、アドレス比較器23はこ
の命令アドレスの上位8ビットの値と修正アドレス記憶
部21に格納されたビット値“47”とが一致するの
で、アドレスセレクタ23にビット値が一致する旨を示
す信号を出力する。この信号を受けて、アドレスセレク
タ24はプログラムカウンタ10から供給された命令ア
ドレスの上位8ビット“47”の代わりに代替アドレス
記憶部22に格納されたビット値“C0”を選択し、命
令記憶部30に出力する。
10が4700番地から47FF番地までのいずれかの
命令アドレスを出力したとき、アドレス比較器23はこ
の命令アドレスの上位8ビットの値と修正アドレス記憶
部21に格納されたビット値“47”とが一致するの
で、アドレスセレクタ23にビット値が一致する旨を示
す信号を出力する。この信号を受けて、アドレスセレク
タ24はプログラムカウンタ10から供給された命令ア
ドレスの上位8ビット“47”の代わりに代替アドレス
記憶部22に格納されたビット値“C0”を選択し、命
令記憶部30に出力する。
【0044】したがって、4700番地から47FF番
地までの命令アドレスをアクセスする際には、C000
番地からC0FF番地までの代替アドレスがそれぞれア
クセスされるため、これにより、256ワード単位のプ
ログラム変更を実現することができる。またこの場合、
C100番地からCFFF番地までは未使用のため、C
000番地からC0FF番地までの領域にC100番地
からCFFF番地までの領域内を分岐先とする分岐命令
を記述することによって、新たな回路を増やすことな
く、命令の追加挿入を実現することができる。
地までの命令アドレスをアクセスする際には、C000
番地からC0FF番地までの代替アドレスがそれぞれア
クセスされるため、これにより、256ワード単位のプ
ログラム変更を実現することができる。またこの場合、
C100番地からCFFF番地までは未使用のため、C
000番地からC0FF番地までの領域にC100番地
からCFFF番地までの領域内を分岐先とする分岐命令
を記述することによって、新たな回路を増やすことな
く、命令の追加挿入を実現することができる。
【0045】図6はアドレス変換部の他の構成例を示す
図である。図6では、アドレス変換部20Aは、命令ア
ドレスの上位Mビットの変換を行うためのアドレス変換
ユニット20a,20bを2個備えている。すなわち、
第1のアドレス変換ユニット20aは修正アドレス記憶
部21a、代替アドレス記憶部22aおよびアドレス比
較器23aを有し、第2のアドレス変換ユニット20b
は修正アドレス記憶部21b、代替アドレス記憶部22
bおよびアドレス比較器23bを有している。そして、
アドレスセレクタ25は第1および第2のアドレス変換
ユニット20a,20bによって共用されている。図6
に示すように、アドレス変換ユニットを複数個設けるこ
とによって、一連の処理における複数箇所のプログラム
変更が可能になる。
図である。図6では、アドレス変換部20Aは、命令ア
ドレスの上位Mビットの変換を行うためのアドレス変換
ユニット20a,20bを2個備えている。すなわち、
第1のアドレス変換ユニット20aは修正アドレス記憶
部21a、代替アドレス記憶部22aおよびアドレス比
較器23aを有し、第2のアドレス変換ユニット20b
は修正アドレス記憶部21b、代替アドレス記憶部22
bおよびアドレス比較器23bを有している。そして、
アドレスセレクタ25は第1および第2のアドレス変換
ユニット20a,20bによって共用されている。図6
に示すように、アドレス変換ユニットを複数個設けるこ
とによって、一連の処理における複数箇所のプログラム
変更が可能になる。
【0046】また、アドレス変換部は、命令アドレスを
代替アドレスに変換する際における変換対象のビット幅
が変更可能に構成することも可能である。
代替アドレスに変換する際における変換対象のビット幅
が変更可能に構成することも可能である。
【0047】図7はアドレス変換部の構成を示す図であ
り、アドレス変換を行うビット幅が可変である構成例を
示す図である。図7のアドレス変換部20Bは、アドレ
ス比較器およびアドレスセレクタをそれぞれ2個ずつ備
えている。第1のアドレス比較器54aおよび第1のア
ドレスセレクタ55aは上位M1ビットのアドレス比較
・変換を行い、第2のアドレス比較器54bおよび第2
のアドレスセレクタ55bは中位M2ビットのアドレス
比較・変換を行う。修正アドレス記憶部51は修正アド
レスの上位M1ビットと中位M2ビットとを格納し、上
位M1ビットを第1のアドレス比較器54aに供給する
とともに中位M2ビットを第2のアドレス比較器54b
に供給する。代替アドレス記憶部52は代替アドレスの
上位M1ビットと中位M2ビットとを格納し、上位M1
ビットを第1のアドレスセレクタ55aに供給するとと
もに中位M2ビットを第2のアドレスセレクタ55bに
供給する。
り、アドレス変換を行うビット幅が可変である構成例を
示す図である。図7のアドレス変換部20Bは、アドレ
ス比較器およびアドレスセレクタをそれぞれ2個ずつ備
えている。第1のアドレス比較器54aおよび第1のア
ドレスセレクタ55aは上位M1ビットのアドレス比較
・変換を行い、第2のアドレス比較器54bおよび第2
のアドレスセレクタ55bは中位M2ビットのアドレス
比較・変換を行う。修正アドレス記憶部51は修正アド
レスの上位M1ビットと中位M2ビットとを格納し、上
位M1ビットを第1のアドレス比較器54aに供給する
とともに中位M2ビットを第2のアドレス比較器54b
に供給する。代替アドレス記憶部52は代替アドレスの
上位M1ビットと中位M2ビットとを格納し、上位M1
ビットを第1のアドレスセレクタ55aに供給するとと
もに中位M2ビットを第2のアドレスセレクタ55bに
供給する。
【0048】修正範囲指定部53aは“0”または
“1”を保持し出力する。修正範囲指定部53aが保持
する値に応じて、アドレス変換するビット幅を設定変更
することができる。修正範囲指定部53aおよび3入力
ANDゲート53bによって、変換範囲設定手段53が
構成されている。
“1”を保持し出力する。修正範囲指定部53aが保持
する値に応じて、アドレス変換するビット幅を設定変更
することができる。修正範囲指定部53aおよび3入力
ANDゲート53bによって、変換範囲設定手段53が
構成されている。
【0049】修正範囲指定部53aが“0”を出力する
ときは、3入力ANDゲート53bの出力は第2のアド
レス比較器54bの出力信号の値に拘わらず“0”にな
るので、第2のアドレスセレクタ55bは第2のアドレ
ス比較器54bの判定結果に拘わらず、プログラムカウ
ンタ10から供給された命令アドレスの中位M2ビット
を出力する。これにより、プログラムカウンタ10から
供給される命令アドレスの上位M1ビットのみがアドレ
ス変換の対象となる。
ときは、3入力ANDゲート53bの出力は第2のアド
レス比較器54bの出力信号の値に拘わらず“0”にな
るので、第2のアドレスセレクタ55bは第2のアドレ
ス比較器54bの判定結果に拘わらず、プログラムカウ
ンタ10から供給された命令アドレスの中位M2ビット
を出力する。これにより、プログラムカウンタ10から
供給される命令アドレスの上位M1ビットのみがアドレ
ス変換の対象となる。
【0050】一方、修正範囲指定部53aが“1”を出
力するときは、第2のアドレスセレクタ55bは第1お
よび第2のアドレス比較器54a,54bの判定結果に
応じて、命令アドレスの中位M2ビットのアドレス変換
を行う。これにより、プログラムカウンタ10から供給
される命令アドレスの上位(M1+M2)ビットがアド
レス変換の対象となる。
力するときは、第2のアドレスセレクタ55bは第1お
よび第2のアドレス比較器54a,54bの判定結果に
応じて、命令アドレスの中位M2ビットのアドレス変換
を行う。これにより、プログラムカウンタ10から供給
される命令アドレスの上位(M1+M2)ビットがアド
レス変換の対象となる。
【0051】このように、修正範囲指定部53aの格納
値の設定によって、アドレス変換の対象となるビット幅
を、上位M1ビットまたは上位(M1+M2)ビットの
2通りに設定することができる。すなわち、中位M2ビ
ットは、修正範囲指定部53aに“1”を格納したとき
は変換対象ビットに含まれる一方、“0”を格納したと
きは変換対象ビットから除かれる。言い換えると、中位
M2ビットを変換対象ビットとして指定するか否かを、
修正範囲指定部53aの格納値によって設定することが
できる。
値の設定によって、アドレス変換の対象となるビット幅
を、上位M1ビットまたは上位(M1+M2)ビットの
2通りに設定することができる。すなわち、中位M2ビ
ットは、修正範囲指定部53aに“1”を格納したとき
は変換対象ビットに含まれる一方、“0”を格納したと
きは変換対象ビットから除かれる。言い換えると、中位
M2ビットを変換対象ビットとして指定するか否かを、
修正範囲指定部53aの格納値によって設定することが
できる。
【0052】したがって、図7に示すような変換範囲設
定手段53、第2のアドレス比較器54bおよび第2の
アドレスセレクタ55bを複数個設ければ、変換対象ビ
ット幅の設定変更パターンをさらに増やすことができ
る。さらに言えば、図7に示すような変換範囲設定手段
53、第2のアドレス比較器54bおよび第2のアドレ
スセレクタ55bを命令アドレスの各ビット毎に設けた
場合には、任意のビットを変換対象ビットとして設定可
能となる。
定手段53、第2のアドレス比較器54bおよび第2の
アドレスセレクタ55bを複数個設ければ、変換対象ビ
ット幅の設定変更パターンをさらに増やすことができ
る。さらに言えば、図7に示すような変換範囲設定手段
53、第2のアドレス比較器54bおよび第2のアドレ
スセレクタ55bを命令アドレスの各ビット毎に設けた
場合には、任意のビットを変換対象ビットとして設定可
能となる。
【0053】アドレス変換の対象となるビット幅を小さ
くすることによって、アドレス変換およびメモリアクセ
スを高速に行うことが可能である。逆に、アドレス変換
の対象となるビット幅を大きくすると、アドレス変換に
要する時間は増加するものの、一度に修正する領域が小
さくなるため修正命令記憶部をより多くの領域に分割し
て用いることが可能になる。したがって、アドレス変換
の対象となるビット幅をプログラム実行時に切り替える
ことによって、修正命令記憶部の記憶容量の有効活用が
実現でき、プログラム変更の自由度を高めることができ
る。
くすることによって、アドレス変換およびメモリアクセ
スを高速に行うことが可能である。逆に、アドレス変換
の対象となるビット幅を大きくすると、アドレス変換に
要する時間は増加するものの、一度に修正する領域が小
さくなるため修正命令記憶部をより多くの領域に分割し
て用いることが可能になる。したがって、アドレス変換
の対象となるビット幅をプログラム実行時に切り替える
ことによって、修正命令記憶部の記憶容量の有効活用が
実現でき、プログラム変更の自由度を高めることができ
る。
【0054】なお、図8に示すように、アドレス変換部
を、入力された命令アドレスに応じた変換アドレスを出
力するアドレス変換用メモリ20Cによって構成しても
よい。この場合、アドレス変換用メモリ20Cには図9
に示すようなアドレスの対応関係を記憶させておけばよ
い。図9では、16ビットのアドレスの上位8ビットの
みをアドレス変換の対象としており、命令アドレスが4
7XXのとき、代替アドレスとしてC0XXが出力され
るように設定されている。下位8ビットは変換せずに命
令記憶部30にそのまま供給する。これにより、回路の
簡略化およびアドレス変換の高速化を図ることができ
る。もちろん、アドレスの全てのビットを変換の対象と
してもかまわない。
を、入力された命令アドレスに応じた変換アドレスを出
力するアドレス変換用メモリ20Cによって構成しても
よい。この場合、アドレス変換用メモリ20Cには図9
に示すようなアドレスの対応関係を記憶させておけばよ
い。図9では、16ビットのアドレスの上位8ビットの
みをアドレス変換の対象としており、命令アドレスが4
7XXのとき、代替アドレスとしてC0XXが出力され
るように設定されている。下位8ビットは変換せずに命
令記憶部30にそのまま供給する。これにより、回路の
簡略化およびアドレス変換の高速化を図ることができ
る。もちろん、アドレスの全てのビットを変換の対象と
してもかまわない。
【0055】また、図10に示すように、アドレス変換
部を、入力された命令アドレスに応じた変換アドレスを
出力するフィールドプログラマブルロジック20Dによ
って構成してもかまわない。この場合も、フィールドプ
ログラマブルロジック20Dによって図9に示すような
アドレスの対応関係を論理的に実現させればよい。
部を、入力された命令アドレスに応じた変換アドレスを
出力するフィールドプログラマブルロジック20Dによ
って構成してもかまわない。この場合も、フィールドプ
ログラマブルロジック20Dによって図9に示すような
アドレスの対応関係を論理的に実現させればよい。
【0056】
【発明の効果】以上のように本発明によると、不要な分
岐命令や割り込み処理の実行を伴うことなく、プログラ
ム変更を実現することができる。また、連続するアドレ
ス領域の修正が可能となる。また、命令数の増加を伴う
プログラム変更を、簡易な構成によって実現することが
できる。
岐命令や割り込み処理の実行を伴うことなく、プログラ
ム変更を実現することができる。また、連続するアドレ
ス領域の修正が可能となる。また、命令数の増加を伴う
プログラム変更を、簡易な構成によって実現することが
できる。
【図1】本発明の一実施形態に係るプログラム変更機能
を有するマイクロプロセッサの構成を示す図である。
を有するマイクロプロセッサの構成を示す図である。
【図2】本発明の一実施形態に係るアドレス変換の例を
示す図である。
示す図である。
【図3】本発明の一実施形態に係るアドレス変換の他の
例を示す図である。
例を示す図である。
【図4】図1におけるアドレス変換部の具体的な構成例
を示す図である。
を示す図である。
【図5】図4のアドレス変換部の動作の例を示す図であ
る。
る。
【図6】図1におけるアドレス変換部の他の構成例を示
す図である。
す図である。
【図7】アドレス変換を行うビット幅が変更可能に構成
されたアドレス変換部の構成例を示す図である。
されたアドレス変換部の構成例を示す図である。
【図8】アドレス変換部をメモリによって構成した場合
の図である。
の図である。
【図9】アドレス変換のためのアドレスの対応関係の例
を示す図である。
を示す図である。
【図10】アドレス変換部をフィールドプログラマブル
ロジックによって構成した場合の図である。
ロジックによって構成した場合の図である。
【図11】マイクロプロセッサの一般的な構成を示す図
である。
である。
【図12】従来のプログラム変更機能を有するマイクロ
プロセッサの構成を示す図である。
プロセッサの構成を示す図である。
20,20A,20B アドレス変換部 20C アドレス変換用メモリ(アドレス変換部) 20D フィールドプログラマブルロジック(アドレス
変換部) 21 修正アドレス記憶部 22 代替アドレス記憶部 23 アドレス比較器 24 アドレスセレクタ 30 命令記憶部 31 ROM 32 修正命令記憶部 51 修正アドレス記憶部 52 代替アドレス記憶部 53 変換範囲設定手段 54b アドレス比較器 55b アドレスセレクタ
変換部) 21 修正アドレス記憶部 22 代替アドレス記憶部 23 アドレス比較器 24 アドレスセレクタ 30 命令記憶部 31 ROM 32 修正命令記憶部 51 修正アドレス記憶部 52 代替アドレス記憶部 53 変換範囲設定手段 54b アドレス比較器 55b アドレスセレクタ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成12年11月10日(2000.11.
10)
10)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】請求項1
【補正方法】変更
【補正内容】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】請求項8
【補正方法】変更
【補正内容】
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0013
【補正方法】変更
【補正内容】
【0013】
【課題を解決するための手段】前記の課題を解決するた
めに、請求項1の発明が講じた解決手段は、プログラム
変更機能を有するマイクロプロセッサとして、処理対象
のプログラムを構成する命令を格納するROMとプログ
ラム変更のための修正命令を格納する修正命令記憶部と
を有する命令記憶部と、前記ROMにおける命令の格納
位置を示す命令アドレスを入力とし、この命令アドレス
が修正を必要とする命令のアドレスである修正アドレス
と一致するとき、この命令アドレスを前記修正命令記憶
部において修正命令が格納された代替アドレスに変換す
るアドレス変換部とを備え、前記アドレス変換部は、変
換した代替アドレスを、前記命令アドレスの代わりに、
前記命令記憶部に出力するものである。
めに、請求項1の発明が講じた解決手段は、プログラム
変更機能を有するマイクロプロセッサとして、処理対象
のプログラムを構成する命令を格納するROMとプログ
ラム変更のための修正命令を格納する修正命令記憶部と
を有する命令記憶部と、前記ROMにおける命令の格納
位置を示す命令アドレスを入力とし、この命令アドレス
が修正を必要とする命令のアドレスである修正アドレス
と一致するとき、この命令アドレスを前記修正命令記憶
部において修正命令が格納された代替アドレスに変換す
るアドレス変換部とを備え、前記アドレス変換部は、変
換した代替アドレスを、前記命令アドレスの代わりに、
前記命令記憶部に出力するものである。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0022
【補正方法】変更
【補正内容】
【0022】また、請求項8の発明が講じた解決手段
は、処理対象のプログラムを構成する命令を格納するR
OMと、プログラム変更のための修正命令を格納する修
正命令記憶部とを有する命令記憶部を備えたマイクロプ
ロセッサにおいて、プログラム変更を行う方法として、
前記ROMにおける命令の格納位置を示す命令アドレス
と、修正を必要とする命令のアドレスである修正アドレ
スとを比較し、前記命令アドレスと前記修正アドレスと
が一致するとき、この命令アドレスを前記修正命令記憶
部において修正命令が格納された代替アドレスに変換
し、変換した代替アドレスを、前記命令アドレスの代わ
りに、前記命令記憶部に与えるものである。
は、処理対象のプログラムを構成する命令を格納するR
OMと、プログラム変更のための修正命令を格納する修
正命令記憶部とを有する命令記憶部を備えたマイクロプ
ロセッサにおいて、プログラム変更を行う方法として、
前記ROMにおける命令の格納位置を示す命令アドレス
と、修正を必要とする命令のアドレスである修正アドレ
スとを比較し、前記命令アドレスと前記修正アドレスと
が一致するとき、この命令アドレスを前記修正命令記憶
部において修正命令が格納された代替アドレスに変換
し、変換した代替アドレスを、前記命令アドレスの代わ
りに、前記命令記憶部に与えるものである。
Claims (9)
- 【請求項1】 プログラム変更機能を有するマイクロプ
ロセッサであって、 処理対象のプログラムを構成する命令を格納するROM
と、プログラム変更のための修正命令を格納する修正命
令記憶部とを有する命令記憶部と、 前記ROMにおける命令の格納位置を示す命令アドレス
を入力とし、この命令アドレスが、修正を必要とする命
令のアドレスである修正アドレスと一致するとき、この
命令アドレスを、前記修正命令記憶部において修正命令
が格納された代替アドレスに変換するアドレス変換部と
を備えたことを特徴とするマイクロプロセッサ。 - 【請求項2】 請求項1記載のマイクロプロセッサにお
いて、 前記アドレス変換部は、 前記修正アドレスの所定ビットの値を保持する修正アド
レス記憶部と、 入力された命令アドレスの前記所定ビットの値と前記修
正アドレス記憶部に保持されたビット値とを比較し、こ
れらのビット値が一致するか否かを判定するアドレス比
較器と、 前記代替アドレスの前記所定ビットの値を保持する代替
アドレス記憶部と、 前記アドレス比較器の判定結果を受け、ビット値が一致
していると判定されたときは、前記代替アドレス記憶部
に保持されたビット値を新たな命令アドレスの前記所定
ビットの値として出力する一方、そうでないときは、前
記命令アドレスの前記所定ビットの値を前記新たな命令
アドレスの前記所定ビットの値として出力するアドレス
セレクタとを備えたものであることを特徴とするマイク
ロプロセッサ。 - 【請求項3】 請求項1記載のマイクロプロセッサにお
いて、 前記アドレス変換部は、 命令アドレスを代替アドレスに変換する際における変換
対象のビット幅が、変更可能に構成されていることを特
徴とするマイクロプロセッサ。 - 【請求項4】 請求項3記載のマイクロプロセッサにお
いて、 前記アドレス変換部は、 前記修正アドレスの所定ビットの値を保持する修正アド
レス記憶部と、 前記命令アドレスの前記所定ビットの値と前記修正アド
レス記憶部に保持されたビット値とを比較し、これらの
ビット値が一致するか否かを判定するアドレス比較器
と、 前記代替アドレスの前記所定ビットの値を保持する代替
アドレス記憶部と、 前記アドレス比較器の判定結果を受け、ビット値が一致
していると判定されたときは、前記代替アドレス記憶部
に保持されたビット値を新たな命令アドレスの前記所定
ビットの値として出力する一方、そうでないときは、前
記命令アドレスの前記所定ビットの値を前記新たな命令
アドレスの前記所定ビットの値として出力するアドレス
セレクタと、 前記所定ビットを変換対象ビットとして指定するか否か
を設定可能に構成されており、前記所定ビットを変換対
象ビットとして指定しないとき、前記アドレスセレクタ
に、前記アドレス比較器の判定結果に拘わらず、前記命
令アドレスの前記所定ビットの値を前記新たな命令アド
レスの前記所定ビットの値として出力させる変換範囲設
定手段とを備えたものであることを特徴とするマイクロ
プロセッサ。 - 【請求項5】 請求項1記載のマイクロプロセッサにお
いて、 前記アドレス変換部は、入力された命令アドレスに応じ
た変換アドレスを出力するメモリによって構成されてい
ることを特徴とするマイクロプロセッサ。 - 【請求項6】 請求項1記載のマイクロプロセッサにお
いて、 前記アドレス変換部は、入力された命令アドレスに応じ
た変換アドレスを出力するフィールドプログラマブルロ
ジックによって構成されていることを特徴とするマイク
ロプロセッサ。 - 【請求項7】 請求項1記載のマイクロプロセッサにお
いて、 前記修正命令記憶部は、 プログラム変更のための追加命令が格納されており、か
つ、前記代替アドレスが示す格納位置に、前記追加命令
が格納された位置を分岐先とする分岐命令が格納されて
いることを特徴とするマイクロプロセッサ。 - 【請求項8】 処理対象のプログラムを構成する命令を
格納するROMと、プログラム変更のための修正命令を
格納する修正命令記憶部とを有する命令記憶部を備えた
マイクロプロセッサにおいて、プログラム変更を行う方
法であって、 前記ROMにおける命令の格納位置を示す命令アドレス
と、修正を必要とする命令のアドレスである修正アドレ
スとを比較し、 前記命令アドレスと前記修正アドレスとが一致すると
き、この命令アドレスを、前記修正命令記憶部において
修正命令が格納された代替アドレスに変換することを特
徴とするプログラム変更方法。 - 【請求項9】 請求項8記載のプログラム変更方法であ
って、 アドレス比較の前に、 前記修正命令記憶部に、プログラム変更のための追加命
令を格納し、 前記代替アドレスが示す格納位置に、前記追加命令が格
納された位置を分岐先とする分岐命令を格納することを
特徴とするプログラム変更方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30814099A JP2001125781A (ja) | 1999-10-29 | 1999-10-29 | マイクロプロセッサ、およびマイクロプロセッサにおけるプログラム変更方法 |
US09/697,429 US6889306B1 (en) | 1999-10-29 | 2000-10-27 | Microprocessor and program modification method in the microprocessor |
EP00123567A EP1096373A3 (en) | 1999-10-29 | 2000-10-27 | Microprocessor and program modification method in the microprocessor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30814099A JP2001125781A (ja) | 1999-10-29 | 1999-10-29 | マイクロプロセッサ、およびマイクロプロセッサにおけるプログラム変更方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001125781A true JP2001125781A (ja) | 2001-05-11 |
Family
ID=17977381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30814099A Pending JP2001125781A (ja) | 1999-10-29 | 1999-10-29 | マイクロプロセッサ、およびマイクロプロセッサにおけるプログラム変更方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6889306B1 (ja) |
EP (1) | EP1096373A3 (ja) |
JP (1) | JP2001125781A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004318886A (ja) * | 2003-04-14 | 2004-11-11 | Arm Ltd | データ・アクセス要求再マッピング・システム |
JP2017156908A (ja) * | 2016-03-01 | 2017-09-07 | ルネサスエレクトロニクス株式会社 | 組込み機器及びプログラムの更新方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200513850A (en) * | 2003-10-13 | 2005-04-16 | Design Technology Inc G | Patch and expansion method of memory program for digital signal processor |
ITMI20120944A1 (it) * | 2012-05-31 | 2013-12-01 | St Microelectronics Srl | Unità di controllo di circuiti di alimentazione per uno o più punti di carico di un sistema elettronico con nvm esterna di personalizzazione |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4603399A (en) * | 1983-12-27 | 1986-07-29 | International Business Machines Corporation | Data processing apparatus for address substitution |
US4897813A (en) * | 1988-02-19 | 1990-01-30 | Unisys Corporation | Partially programmable read-only memory system |
JPH02201648A (ja) | 1989-01-31 | 1990-08-09 | Nec Corp | メモリアクセス制御方式 |
US5274815A (en) * | 1991-11-01 | 1993-12-28 | Motorola, Inc. | Dynamic instruction modifying controller and operation method |
US5408672A (en) | 1991-11-18 | 1995-04-18 | Matsushita Electric Industrial Co. | Microcomputer having ROM to store a program and RAM to store changes to the program |
JPH05233266A (ja) | 1992-02-18 | 1993-09-10 | Nec Home Electron Ltd | 情報処理装置 |
US5481713A (en) * | 1993-05-06 | 1996-01-02 | Apple Computer, Inc. | Method and apparatus for patching code residing on a read only memory device |
JP3713312B2 (ja) * | 1994-09-09 | 2005-11-09 | 株式会社ルネサステクノロジ | データ処理装置 |
JPH09160768A (ja) | 1995-12-05 | 1997-06-20 | Sharp Corp | プログラム実行装置 |
JP3588951B2 (ja) | 1997-01-17 | 2004-11-17 | 松下電器産業株式会社 | マイクロコンピュータのプログラム変更装置 |
US5757690A (en) * | 1997-04-23 | 1998-05-26 | Exponential Technology, Inc. | Embedded ROM with RAM valid bits for fetching ROM-code updates from external memory |
GB9713094D0 (en) * | 1997-06-21 | 1997-08-27 | Philips Electronics Nv | Optical disc drive |
TW400469B (en) * | 1997-07-08 | 2000-08-01 | Winbond Electronics Corp | Device capable of fixing programs in embedded microprocessor |
JP2995030B2 (ja) * | 1998-03-31 | 1999-12-27 | 三洋電機株式会社 | コンピュータシステム、並びにコンピュータシステムにおけるプログラム及びデータの修正方法 |
US6308265B1 (en) * | 1998-09-30 | 2001-10-23 | Phoenix Technologies Ltd. | Protection of boot block code while allowing write accesses to the boot block |
US6078548A (en) * | 1999-03-08 | 2000-06-20 | Winbond Electronics Corporation | CPU capable of modifying built-in program codes thereof and method for the same |
JP3795744B2 (ja) * | 2000-11-21 | 2006-07-12 | 沖電気工業株式会社 | マイクロコントローラ |
-
1999
- 1999-10-29 JP JP30814099A patent/JP2001125781A/ja active Pending
-
2000
- 2000-10-27 US US09/697,429 patent/US6889306B1/en not_active Expired - Lifetime
- 2000-10-27 EP EP00123567A patent/EP1096373A3/en not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004318886A (ja) * | 2003-04-14 | 2004-11-11 | Arm Ltd | データ・アクセス要求再マッピング・システム |
JP2017156908A (ja) * | 2016-03-01 | 2017-09-07 | ルネサスエレクトロニクス株式会社 | 組込み機器及びプログラムの更新方法 |
US10642596B2 (en) | 2016-03-01 | 2020-05-05 | Renesas Electronics Corporation | Embedded device and program updating method |
Also Published As
Publication number | Publication date |
---|---|
EP1096373A2 (en) | 2001-05-02 |
EP1096373A3 (en) | 2007-05-30 |
US6889306B1 (en) | 2005-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6804772B2 (en) | Dynamic field patchable microarchitecture | |
US4542453A (en) | Program patching in microcomputer | |
US5938774A (en) | Apparatus for repairing faulty program segments in embedded microprocessor systems | |
KR100717110B1 (ko) | 롬 데이터 패치 회로, 이를 포함하는 임베디드 시스템 및롬 데이터 패치 방법 | |
JP2005063438A (ja) | Romプログラミングの誤り又は欠陥を修復するシステム | |
JP2001125781A (ja) | マイクロプロセッサ、およびマイクロプロセッサにおけるプログラム変更方法 | |
US20040025121A1 (en) | Method of and apparatus for information processing | |
US20100146332A1 (en) | Data correction circuit and semiconductor integrated circuit | |
US20040153829A1 (en) | Processor system, processor and arithmetic processing method | |
JP3105822B2 (ja) | マイクロプログラム制御装置 | |
JP2011154505A (ja) | 演算処理装置及び演算実行方法 | |
EP1244007A2 (en) | Dynamic microcode patching | |
JP2733692B2 (ja) | Rom装置 | |
GB2330428A (en) | ROM program patching in an embedded microprocessor | |
JPS60246100A (ja) | 試験パタ−ン発生器 | |
JP2002297408A (ja) | 半導体集積回路およびその構築方法 | |
JP2020009498A (ja) | メモリ制御装置及びメモリ制御方法 | |
US6931476B2 (en) | Electronic apparatus with ROM data correction function | |
JP2001256061A (ja) | 情報記憶装置 | |
JPH10149284A (ja) | 情報処理装置 | |
JPH1055275A (ja) | 情報処理装置 | |
US20020049935A1 (en) | Circuit for modifying stored data | |
KR19980017737A (ko) | 프로그램형 제어기의 비트 연산 처리방법 및 그 장치 | |
JPH1185495A (ja) | マイクロコンピュータ装置 | |
JPH05127893A (ja) | マイクロプログラム制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040413 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040614 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040817 |