JP2003150382A - マイクロコントローラおよびコンパイラ - Google Patents
マイクロコントローラおよびコンパイラInfo
- Publication number
- JP2003150382A JP2003150382A JP2001347101A JP2001347101A JP2003150382A JP 2003150382 A JP2003150382 A JP 2003150382A JP 2001347101 A JP2001347101 A JP 2001347101A JP 2001347101 A JP2001347101 A JP 2001347101A JP 2003150382 A JP2003150382 A JP 2003150382A
- Authority
- JP
- Japan
- Prior art keywords
- program
- memory
- address
- data
- arithmetic unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Stored Programmes (AREA)
Abstract
(57)【要約】
【課題】 外部メモリから内蔵メモリにプログラムを転
送しながら、同時に転送したプログラムを実行できるマ
イクロコントローラとコンパイラを提供する。 【解決手段】 プログラム転送装置3に外部メモリ5か
ら読み出したプログラムを蓄え、プログラム転送装置3
から演算装置1に対してウェイト信号13が出力され、
まとめてプログラムを内蔵メモリ2に書き込む。未転送
のアドレスの読み出し要求がきた場合、バリッドビット
部4によって演算装置1にウェイト信号13が出力され
る。内蔵メモリ2には未転送だが転送装置3に転送され
たアドレスに読み出し要求がきたときにはプログラム転
送装置3から演算装置1に対してプログラムが転送され
る。外部メモリ5のデータはアドレスデータとプログラ
ムデータの対になっており、これはソースプログラムに
プライオリティを設定し、そのプライオリティにしたが
ってコンパイラで処理し、データを作成する手段で実現
する。
送しながら、同時に転送したプログラムを実行できるマ
イクロコントローラとコンパイラを提供する。 【解決手段】 プログラム転送装置3に外部メモリ5か
ら読み出したプログラムを蓄え、プログラム転送装置3
から演算装置1に対してウェイト信号13が出力され、
まとめてプログラムを内蔵メモリ2に書き込む。未転送
のアドレスの読み出し要求がきた場合、バリッドビット
部4によって演算装置1にウェイト信号13が出力され
る。内蔵メモリ2には未転送だが転送装置3に転送され
たアドレスに読み出し要求がきたときにはプログラム転
送装置3から演算装置1に対してプログラムが転送され
る。外部メモリ5のデータはアドレスデータとプログラ
ムデータの対になっており、これはソースプログラムに
プライオリティを設定し、そのプライオリティにしたが
ってコンパイラで処理し、データを作成する手段で実現
する。
Description
【0001】
【発明の属する技術分野】本発明は、外部記憶装置から
内蔵記憶装置に命令プログラムを転送して内蔵記憶装置
から命令を実行するマイクロコントローラ、上記命令プ
ログラムを構成するブロックの配列順序を実行順序に並
べ替えるコンパイラ、および上記命令プログラムの配列
順序を実行順序に並べ替える変換手段を有するマイクロ
コントローラに関するものである。
内蔵記憶装置に命令プログラムを転送して内蔵記憶装置
から命令を実行するマイクロコントローラ、上記命令プ
ログラムを構成するブロックの配列順序を実行順序に並
べ替えるコンパイラ、および上記命令プログラムの配列
順序を実行順序に並べ替える変換手段を有するマイクロ
コントローラに関するものである。
【0002】
【従来の技術】従来例(特開平4−10535号公報)
の構成を以下に示す。図22は従来のマイクロコントロ
ーラであり、501はプログラムを記憶しておく外部メ
モリ、502は動作時にプログラムを格納しておく内蔵
メモリ、503は起動時に外部メモリ501と内蔵メモ
リ502とに共通にアドレス511を与えると同時に、
内蔵メモリ502に書き込み信号512を与えるシーケ
ンサ、504は外部メモリ501から内蔵メモリ502
へプログラムの転送終了後における、動作時に内蔵メモ
リ502にアドレス513を与えるアドレスカウンタ、
505は内蔵メモリ502に与えるアドレス511,5
13を切り替えるセレクタ、506は内蔵メモリ502
に格納されたプログラムを実行する演算装置である。5
14はセレクタ505を切り替える選択信号で、シーケ
ンサ503からセレクタ505に与えられる。
の構成を以下に示す。図22は従来のマイクロコントロ
ーラであり、501はプログラムを記憶しておく外部メ
モリ、502は動作時にプログラムを格納しておく内蔵
メモリ、503は起動時に外部メモリ501と内蔵メモ
リ502とに共通にアドレス511を与えると同時に、
内蔵メモリ502に書き込み信号512を与えるシーケ
ンサ、504は外部メモリ501から内蔵メモリ502
へプログラムの転送終了後における、動作時に内蔵メモ
リ502にアドレス513を与えるアドレスカウンタ、
505は内蔵メモリ502に与えるアドレス511,5
13を切り替えるセレクタ、506は内蔵メモリ502
に格納されたプログラムを実行する演算装置である。5
14はセレクタ505を切り替える選択信号で、シーケ
ンサ503からセレクタ505に与えられる。
【0003】起動時には、シーケンサ503が動作し外
部メモリ501から内蔵メモリ502にプログラムを転
送し、すべてのプログラムが内蔵メモリ502に転送さ
れるまで演算装置506は動作せず、プログラムが内蔵
メモリ502にすべて転送されてから、演算装置506
がプログラムを実行する。また、外部メモリ501に格
納されているプログラムは内蔵メモリ502にそのまま
の形でプログラムの先頭から転送される。
部メモリ501から内蔵メモリ502にプログラムを転
送し、すべてのプログラムが内蔵メモリ502に転送さ
れるまで演算装置506は動作せず、プログラムが内蔵
メモリ502にすべて転送されてから、演算装置506
がプログラムを実行する。また、外部メモリ501に格
納されているプログラムは内蔵メモリ502にそのまま
の形でプログラムの先頭から転送される。
【0004】
【発明が解決しようとする課題】上記従来の構成では、
プログラムを外部メモリ501から内蔵メモリ502に
対して転送を終了しなければ、演算装置506でプログ
ラムを実行することが不可能なため、プログラムが大き
くなるとプログラム実行に入るまでに時間がかかるとい
う問題点があった。
プログラムを外部メモリ501から内蔵メモリ502に
対して転送を終了しなければ、演算装置506でプログ
ラムを実行することが不可能なため、プログラムが大き
くなるとプログラム実行に入るまでに時間がかかるとい
う問題点があった。
【0005】また、マイクロプロセッサの内蔵メモリ
に、外部からプログラムを書き込みながら実行する場
合、実行されるプログラムを優先的に内蔵メモリへ書き
込む必要がある。
に、外部からプログラムを書き込みながら実行する場
合、実行されるプログラムを優先的に内蔵メモリへ書き
込む必要がある。
【0006】本発明は上記問題点を解決するもので、外
部メモリから内蔵メモリに、実行されるプログラムを優
先的に転送しながら、同時にプログラムを実行すること
を可能にしたマイクロコントローラおよびコンパイラを
提供することを目的とする。
部メモリから内蔵メモリに、実行されるプログラムを優
先的に転送しながら、同時にプログラムを実行すること
を可能にしたマイクロコントローラおよびコンパイラを
提供することを目的とする。
【0007】
【課題を解決するための手段】本発明の請求項1記載の
マイクロコントローラは、プログラムを実行する演算装
置と、演算装置の実行するプログラムを記憶しておく第
1のメモリと、演算装置から第1のメモリに対してプロ
グラムアドレスを指定する第1のアドレスバスと、プロ
グラムアドレスに対応したプログラムを第1のメモリか
ら演算装置に伝える第1のデータバスと、第1のメモリ
にプログラムを転送するプログラム転送装置と、プログ
ラム転送装置から第1のメモリに対してアドレスを指定
する第2のアドレスバスと、プログラム転送装置から第
1のメモリに対してプログラムを伝える第2のデータバ
スと、プログラム転送装置によってプログラムが書き込
まれた第1のメモリのアドレスを記憶しておき、演算装
置から第1のメモリに対して与えられるアドレスが記憶
されていないときに演算装置をウェイトさせるバリッド
ビット部と、プログラム転送装置によって第1のメモリ
に転送するプログラムを記憶しておく第2のメモリと、
第2のメモリからプログラム転送装置にデータを転送す
る第3のデータバスとを備え、プログラム転送装置は第
2のメモリからの所定のデータ数のプログラムの転送が
完了する毎に第2のメモリから転送されたプログラムを
第1のメモリに転送し、第1のメモリへのプログラムの
転送期間中は演算装置をウェイトさせるようにしてい
る。
マイクロコントローラは、プログラムを実行する演算装
置と、演算装置の実行するプログラムを記憶しておく第
1のメモリと、演算装置から第1のメモリに対してプロ
グラムアドレスを指定する第1のアドレスバスと、プロ
グラムアドレスに対応したプログラムを第1のメモリか
ら演算装置に伝える第1のデータバスと、第1のメモリ
にプログラムを転送するプログラム転送装置と、プログ
ラム転送装置から第1のメモリに対してアドレスを指定
する第2のアドレスバスと、プログラム転送装置から第
1のメモリに対してプログラムを伝える第2のデータバ
スと、プログラム転送装置によってプログラムが書き込
まれた第1のメモリのアドレスを記憶しておき、演算装
置から第1のメモリに対して与えられるアドレスが記憶
されていないときに演算装置をウェイトさせるバリッド
ビット部と、プログラム転送装置によって第1のメモリ
に転送するプログラムを記憶しておく第2のメモリと、
第2のメモリからプログラム転送装置にデータを転送す
る第3のデータバスとを備え、プログラム転送装置は第
2のメモリからの所定のデータ数のプログラムの転送が
完了する毎に第2のメモリから転送されたプログラムを
第1のメモリに転送し、第1のメモリへのプログラムの
転送期間中は演算装置をウェイトさせるようにしてい
る。
【0008】この構成によれば、第1のメモリにプログ
ラムを転送するプログラム転送装置を設け、バリッドビ
ット部を設けてプログラム転送装置によってプログラム
が書き込まれた第1のメモリのアドレスを記憶してお
き、演算装置から第1のメモリに対して与えられるアド
レスが記憶されていないときに演算装置をウェイトさせ
るようにし、プログラム転送装置では第2のメモリから
の所定のデータ数のプログラムの転送が完了する毎に第
2のメモリから転送されたプログラムを第1のメモリに
転送し、第1のメモリへのプログラムの転送期間中は演
算装置をウェイトさせるようにしたので、プログラムを
転送しながら同時にプログラムの実行も可能とする。
ラムを転送するプログラム転送装置を設け、バリッドビ
ット部を設けてプログラム転送装置によってプログラム
が書き込まれた第1のメモリのアドレスを記憶してお
き、演算装置から第1のメモリに対して与えられるアド
レスが記憶されていないときに演算装置をウェイトさせ
るようにし、プログラム転送装置では第2のメモリから
の所定のデータ数のプログラムの転送が完了する毎に第
2のメモリから転送されたプログラムを第1のメモリに
転送し、第1のメモリへのプログラムの転送期間中は演
算装置をウェイトさせるようにしたので、プログラムを
転送しながら同時にプログラムの実行も可能とする。
【0009】本発明の請求項2記載のマイクロコントロ
ーラは、請求項1記載のマイクロコントローラにおい
て、プログラム転送装置が、第2のメモリから転送され
る第1のメモリのアドレスを記憶しておくアドレスバッ
ファと、第1のメモリに転送するプログラムを記憶して
おくデータバッファと、データバッファに転送されたデ
ータ数をカウントし、データバッファがバッファフルに
なる回数データが転送されると、第1のメモリに対して
書き込み要求信号を発するとともに、演算装置に対して
第1のメモリからプログラムを読み出すことを待たせる
ウェイト信号を発するカウンタとからなる。
ーラは、請求項1記載のマイクロコントローラにおい
て、プログラム転送装置が、第2のメモリから転送され
る第1のメモリのアドレスを記憶しておくアドレスバッ
ファと、第1のメモリに転送するプログラムを記憶して
おくデータバッファと、データバッファに転送されたデ
ータ数をカウントし、データバッファがバッファフルに
なる回数データが転送されると、第1のメモリに対して
書き込み要求信号を発するとともに、演算装置に対して
第1のメモリからプログラムを読み出すことを待たせる
ウェイト信号を発するカウンタとからなる。
【0010】この構成によれば、プログラム転送装置の
データバッファがいっぱいになるまでの間、つまり、プ
ログラムを外部メモリからプログラム転送装置へ書き込
む期間は、演算装置は内蔵メモリをアクセスしてプログ
ラムの実行が可能であり、演算装置のプログラムの実行
が停止するのは、プログラム転送装置から内蔵メモリへ
プログラムを書き込む期間だけである。
データバッファがいっぱいになるまでの間、つまり、プ
ログラムを外部メモリからプログラム転送装置へ書き込
む期間は、演算装置は内蔵メモリをアクセスしてプログ
ラムの実行が可能であり、演算装置のプログラムの実行
が停止するのは、プログラム転送装置から内蔵メモリへ
プログラムを書き込む期間だけである。
【0011】本発明の請求項3記載のマイクロコントロ
ーラは、請求項1記載のマイクロコントローラにおい
て、プログラム転送装置が、第2のメモリから転送され
る第1のメモリのアドレスを記憶しておくアドレスバッ
ファと、第1のメモリに転送するプログラムを記憶して
おくデータバッファと、データバッファに転送されたデ
ータ数をカウントしデータバッファがバッファフルにな
る回数データが転送されると、第1のメモリに対して書
き込み要求信号を発するとともに、演算装置に対して第
1のメモリからプログラムを読み出すことを待たせるウ
ェイト信号を発するカウンタと、演算装置から第1のメ
モリに対して読み出し要求が出た時に第1のアドレスバ
スの値がアドレスバッファの値以上でかつアドレスバッ
ファの値とカウンタの値の合計値以下であるかどうかを
比較する比較器からなり、比較器の比較結果を基にデー
タバッファ中に演算装置から読み出し要求のあったアド
レスのプログラムが存在することを検出した場合、読み
出し要求のあったアドレスのプログラムをデータバッフ
ァから演算装置に対して転送する。
ーラは、請求項1記載のマイクロコントローラにおい
て、プログラム転送装置が、第2のメモリから転送され
る第1のメモリのアドレスを記憶しておくアドレスバッ
ファと、第1のメモリに転送するプログラムを記憶して
おくデータバッファと、データバッファに転送されたデ
ータ数をカウントしデータバッファがバッファフルにな
る回数データが転送されると、第1のメモリに対して書
き込み要求信号を発するとともに、演算装置に対して第
1のメモリからプログラムを読み出すことを待たせるウ
ェイト信号を発するカウンタと、演算装置から第1のメ
モリに対して読み出し要求が出た時に第1のアドレスバ
スの値がアドレスバッファの値以上でかつアドレスバッ
ファの値とカウンタの値の合計値以下であるかどうかを
比較する比較器からなり、比較器の比較結果を基にデー
タバッファ中に演算装置から読み出し要求のあったアド
レスのプログラムが存在することを検出した場合、読み
出し要求のあったアドレスのプログラムをデータバッフ
ァから演算装置に対して転送する。
【0012】この構成によれば、プログラムが内蔵メモ
リに書き込まれていない場合であっても、プログラム転
送装置に書き込まれてあれば、演算装置はそのプログラ
ムを実行することができる。
リに書き込まれていない場合であっても、プログラム転
送装置に書き込まれてあれば、演算装置はそのプログラ
ムを実行することができる。
【0013】本発明の請求項4記載のマイクロコントロ
ーラは、請求項1記載のマイクロコントローラにおい
て、バリッドビット部が、プログラム転送装置から第1
のメモリのアドレスに対してデータの転送が完了したか
否かを記憶する記憶手段と、プログラム転送装置によっ
て転送されていないアドレスに対して演算装置からのプ
ログラムの読み出し要求に対して読み出しを待たせるウ
ェイト信号を発するウェイト信号発生手段とを有してい
る。
ーラは、請求項1記載のマイクロコントローラにおい
て、バリッドビット部が、プログラム転送装置から第1
のメモリのアドレスに対してデータの転送が完了したか
否かを記憶する記憶手段と、プログラム転送装置によっ
て転送されていないアドレスに対して演算装置からのプ
ログラムの読み出し要求に対して読み出しを待たせるウ
ェイト信号を発するウェイト信号発生手段とを有してい
る。
【0014】この構成によれば、内蔵メモリへのデータ
の転送が完了していないプログラムについては、演算装
置における実行を待たせることができる。
の転送が完了していないプログラムについては、演算装
置における実行を待たせることができる。
【0015】本発明の請求項5記載のマイクロコントロ
ーラは、プログラムを実行する演算装置と、演算装置の
実行するプログラムを記憶しておく第1のメモリと、演
算装置から第1のメモリに対してプログラムアドレスを
指定する第1のアドレスバスと、プログラムアドレスに
対応したプログラムを第1のメモリから演算装置に伝え
る第1のデータバスと、プログラムの書き込みが可能な
第2のメモリと、第2のメモリにプログラムを転送する
プログラム転送装置と、演算装置によって第1のメモリ
から読み出されたプログラムのプログラムアドレスを記
憶し、記憶内容に基づき演算装置によって第1のメモリ
から読み出されたプログラムが初回読み出しであるかど
うかを判定し、初回読み出しであるときにのみ初回読み
出しのプログラムを第1のメモリから読み出す読み出し
命令を実行するバリッドビット部と、バリッドビット部
からの読み出し命令に対応して第1のメモリとプログラ
ム転送装置に対してプログラムアドレスを伝える第2の
アドレスバスと、バリッドビット部の読み出し命令と第
2のアドレスバスのプログラムアドレスに応じて第1の
メモリからプログラム転送装置に対してプログラムを伝
える第2のデータバスと、プログラム転送装置から第2
のメモリに対してプログラムを伝える第3のデータバス
とを備えている。
ーラは、プログラムを実行する演算装置と、演算装置の
実行するプログラムを記憶しておく第1のメモリと、演
算装置から第1のメモリに対してプログラムアドレスを
指定する第1のアドレスバスと、プログラムアドレスに
対応したプログラムを第1のメモリから演算装置に伝え
る第1のデータバスと、プログラムの書き込みが可能な
第2のメモリと、第2のメモリにプログラムを転送する
プログラム転送装置と、演算装置によって第1のメモリ
から読み出されたプログラムのプログラムアドレスを記
憶し、記憶内容に基づき演算装置によって第1のメモリ
から読み出されたプログラムが初回読み出しであるかど
うかを判定し、初回読み出しであるときにのみ初回読み
出しのプログラムを第1のメモリから読み出す読み出し
命令を実行するバリッドビット部と、バリッドビット部
からの読み出し命令に対応して第1のメモリとプログラ
ム転送装置に対してプログラムアドレスを伝える第2の
アドレスバスと、バリッドビット部の読み出し命令と第
2のアドレスバスのプログラムアドレスに応じて第1の
メモリからプログラム転送装置に対してプログラムを伝
える第2のデータバスと、プログラム転送装置から第2
のメモリに対してプログラムを伝える第3のデータバス
とを備えている。
【0016】この構成によれば、バリッドビット部を設
け、演算装置によって第1のメモリから読み出されたプ
ログラムのプログラムアドレスを記憶し、記憶内容に基
づき演算装置によって第1のメモリから読み出されたプ
ログラムが初回読み出しであるかどうかを判定し、初回
読み出しであるときにのみ初回読み出しのプログラムを
第1のメモリから読み出す読み出し命令を実行するよう
にしたので、演算装置によって実行された順番に第1の
メモリのプログラムを並べ替え、第2のメモリに格納す
ることを可能とする。
け、演算装置によって第1のメモリから読み出されたプ
ログラムのプログラムアドレスを記憶し、記憶内容に基
づき演算装置によって第1のメモリから読み出されたプ
ログラムが初回読み出しであるかどうかを判定し、初回
読み出しであるときにのみ初回読み出しのプログラムを
第1のメモリから読み出す読み出し命令を実行するよう
にしたので、演算装置によって実行された順番に第1の
メモリのプログラムを並べ替え、第2のメモリに格納す
ることを可能とする。
【0017】本発明の請求項6記載のマイクロコントロ
ーラは、請求項5記載のマイクロコントローラにおい
て、バリッドビット部は、第1のアドレスバスによって
伝えられるプログラムアドレスを逐次記憶するレジスタ
と、第1のメモリのすべてのアドレスに一対一で対応し
書き換えが可能なビットの集合体であるバリッドビット
アレイと、レジスタに記憶されたプログラムアドレスを
デコードしプログラムアドレスに対応するバリッドビッ
トアレイのビットを選択するデコーダと、デコーダによ
って選択されたバリッドビットアレイのビットの値に応
じて第1のメモリに対してプログラム読み出し要求信号
を発し、レジスタに対してレジスタから第2のアドレス
バスへレジスタが記憶しているプログラムアドレスを読
み出すための読み出し要求信号を発し、選択されたバリ
ッドビットアレイのビットに対して書き込み要求信号を
発する制御装置とを備え、演算装置によって第1のメモ
リから読み出されたプログラムアドレスをバリッドビッ
トアレイで記憶し、第1のメモリの各アドレスに格納さ
れているプログラムを1度だけプログラム転送装置へ転
送をするように制御する。
ーラは、請求項5記載のマイクロコントローラにおい
て、バリッドビット部は、第1のアドレスバスによって
伝えられるプログラムアドレスを逐次記憶するレジスタ
と、第1のメモリのすべてのアドレスに一対一で対応し
書き換えが可能なビットの集合体であるバリッドビット
アレイと、レジスタに記憶されたプログラムアドレスを
デコードしプログラムアドレスに対応するバリッドビッ
トアレイのビットを選択するデコーダと、デコーダによ
って選択されたバリッドビットアレイのビットの値に応
じて第1のメモリに対してプログラム読み出し要求信号
を発し、レジスタに対してレジスタから第2のアドレス
バスへレジスタが記憶しているプログラムアドレスを読
み出すための読み出し要求信号を発し、選択されたバリ
ッドビットアレイのビットに対して書き込み要求信号を
発する制御装置とを備え、演算装置によって第1のメモ
リから読み出されたプログラムアドレスをバリッドビッ
トアレイで記憶し、第1のメモリの各アドレスに格納さ
れているプログラムを1度だけプログラム転送装置へ転
送をするように制御する。
【0018】この構成によれば、一度読み出したプログ
ラムは2度と第2のメモリへ転送されることがないよう
にすることができる。
ラムは2度と第2のメモリへ転送されることがないよう
にすることができる。
【0019】本発明の請求項7記載のマイクロコントロ
ーラは、請求項5記載のマイクロコントローラにおい
て、プログラム転送装置は、第2のアドレスバスによっ
て伝えられたプログラムアドレスと第2のデータバスに
よって伝えられたプログラムを対にして第3のデータバ
スに出力する。
ーラは、請求項5記載のマイクロコントローラにおい
て、プログラム転送装置は、第2のアドレスバスによっ
て伝えられたプログラムアドレスと第2のデータバスに
よって伝えられたプログラムを対にして第3のデータバ
スに出力する。
【0020】この構成によれば、第2のメモリにおける
プログラムのデータの管理が容易である。
プログラムのデータの管理が容易である。
【0021】本発明の請求項8記載のマイクロコントロ
ーラは、請求項5記載のマイクロコントローラにおい
て、第1のメモリが、演算装置からの読み出し要求に対
しては第1のアドレスバスに対応するアドレスのプログ
ラムを第1のデータバスに出力し、バリッドビット部か
らの読み出し要求に対しては第2のアドレスバスに対応
するアドレスのプログラムを第2のデータバスに出力す
る。
ーラは、請求項5記載のマイクロコントローラにおい
て、第1のメモリが、演算装置からの読み出し要求に対
しては第1のアドレスバスに対応するアドレスのプログ
ラムを第1のデータバスに出力し、バリッドビット部か
らの読み出し要求に対しては第2のアドレスバスに対応
するアドレスのプログラムを第2のデータバスに出力す
る。
【0022】この構成によれば、請求項5記載のマイク
ロコントローラと同様に作用する。
ロコントローラと同様に作用する。
【0023】本発明の請求項9記載のマイクロコントロ
ーラは、請求項5記載のマイクロコントローラにおい
て、第2のメモリは、外部制御機器に備えられ、予め定
められた所定のプロトコルで書き込みが行われる。
ーラは、請求項5記載のマイクロコントローラにおい
て、第2のメモリは、外部制御機器に備えられ、予め定
められた所定のプロトコルで書き込みが行われる。
【0024】この構成によれば、請求項5記載のマイク
ロコントローラと同様に作用する。
ロコントローラと同様に作用する。
【0025】本発明の請求項10記載のコンパイラは、
ソースプログラムより第1のバイナリデータを生成する
データ生成手段と、第1のバイナリデータをソースプロ
グラムによって決定されるプライオリティを有する複数
のブロックに分割する分割手段と、第1のバイナリデー
タ生成時に割り当てられるアドレスデータをプライオリ
ティを有する複数のブロックにそれぞれ付加し、プライ
オリティとアドレスデータを有する複数のブロックを生
成するブロック生成手段と、プライオリティとアドレス
データを有する複数のブロックを一定のアドレス領域毎
に分割することでプライオリティとアドレスデータを有
する複数の単位ブロックを生成する単位ブロック生成手
段と、プライオリティとアドレスデータを有する複数の
単位ブロックの物理的配列順序をプライオリティに従っ
て並べ替えて第2のバイナリデータを生成する並べ替え
処理手段とを備えている。
ソースプログラムより第1のバイナリデータを生成する
データ生成手段と、第1のバイナリデータをソースプロ
グラムによって決定されるプライオリティを有する複数
のブロックに分割する分割手段と、第1のバイナリデー
タ生成時に割り当てられるアドレスデータをプライオリ
ティを有する複数のブロックにそれぞれ付加し、プライ
オリティとアドレスデータを有する複数のブロックを生
成するブロック生成手段と、プライオリティとアドレス
データを有する複数のブロックを一定のアドレス領域毎
に分割することでプライオリティとアドレスデータを有
する複数の単位ブロックを生成する単位ブロック生成手
段と、プライオリティとアドレスデータを有する複数の
単位ブロックの物理的配列順序をプライオリティに従っ
て並べ替えて第2のバイナリデータを生成する並べ替え
処理手段とを備えている。
【0026】この構成によれば、ソースプログラムを複
数のブロックに分割し、複数のブロックにアドレスデー
タを付加し、複数のブロックの配列順序を実行順序に基
づいて並べ替えたバイナリデータを生成することを可能
とするものであり、バイナリデータを第2のメモリに記
憶し、第2のメモリの先頭アドレスからバイナリデータ
を第1のメモリに転送することで、演算装置によって実
行される順序で第1のメモリへのプログラムの転送を可
能とする。
数のブロックに分割し、複数のブロックにアドレスデー
タを付加し、複数のブロックの配列順序を実行順序に基
づいて並べ替えたバイナリデータを生成することを可能
とするものであり、バイナリデータを第2のメモリに記
憶し、第2のメモリの先頭アドレスからバイナリデータ
を第1のメモリに転送することで、演算装置によって実
行される順序で第1のメモリへのプログラムの転送を可
能とする。
【0027】
【発明の実施の形態】従来技術の課題を解決するため
に、本発明のマイクロコントローラは、プログラムを実
行する演算装置と、演算装置の実行するプログラムを記
憶しておく内蔵メモリと、内蔵メモリにプログラムを転
送するプログラム転送装置と、プログラム転送装置によ
って内蔵メモリに書き込まれたアドレスを記憶しておく
バリッドビット部と、プログラム転送装置によって内蔵
メモリに転送するプログラムを記憶しておく外部メモリ
とを備えている。プログラム転送装置は転送されてきた
アドレスを記憶するアドレスバッファとデータを記憶す
るデータバッファと外部メモリから前記プログラム転送
装置に転送されたデータ数をカウントして記憶しておく
カウンタからなる。
に、本発明のマイクロコントローラは、プログラムを実
行する演算装置と、演算装置の実行するプログラムを記
憶しておく内蔵メモリと、内蔵メモリにプログラムを転
送するプログラム転送装置と、プログラム転送装置によ
って内蔵メモリに書き込まれたアドレスを記憶しておく
バリッドビット部と、プログラム転送装置によって内蔵
メモリに転送するプログラムを記憶しておく外部メモリ
とを備えている。プログラム転送装置は転送されてきた
アドレスを記憶するアドレスバッファとデータを記憶す
るデータバッファと外部メモリから前記プログラム転送
装置に転送されたデータ数をカウントして記憶しておく
カウンタからなる。
【0028】この構成によって、外部メモリから転送さ
れたプログラムは一度プログラム転送装置に蓄えられ、
内蔵メモリに転送される。プログラム転送装置にいくつ
データが送られたかをカウンタでカウントする。外部メ
モリからプログラム転送装置に対してデータバッファが
いっぱいになる回数データが転送されると、カウンタは
内蔵メモリに対して書き込み要求を出し、演算装置に対
して読み出しを禁止するウェイト信号を出す。このとき
プログラム転送装置内のアドレスバッファのアドレスに
対応した内蔵メモリのアドレスに対して、データバッフ
ァのデータを一度に書き込みに行く。演算装置は、ウェ
イト信号が出されるまで内蔵メモリの内容を読み出すこ
とができるので、プログラムの実行が可能となる。
れたプログラムは一度プログラム転送装置に蓄えられ、
内蔵メモリに転送される。プログラム転送装置にいくつ
データが送られたかをカウンタでカウントする。外部メ
モリからプログラム転送装置に対してデータバッファが
いっぱいになる回数データが転送されると、カウンタは
内蔵メモリに対して書き込み要求を出し、演算装置に対
して読み出しを禁止するウェイト信号を出す。このとき
プログラム転送装置内のアドレスバッファのアドレスに
対応した内蔵メモリのアドレスに対して、データバッフ
ァのデータを一度に書き込みに行く。演算装置は、ウェ
イト信号が出されるまで内蔵メモリの内容を読み出すこ
とができるので、プログラムの実行が可能となる。
【0029】バリッドビットレジスタ部は、内蔵メモリ
のアドレスに対して転送済みか否かを記憶しておく。演
算装置から内蔵メモリに対して読み出し要求が出たと
き、読み出し要求のきたアドレスが内蔵メモリ部にプロ
グラムが転送されていないアドレスだった場合、バリッ
ドビット部は演算装置に対してウェイト信号を出し、要
求のあったアドレスのデータが外部メモリから転送され
るまで演算装置を待たせる。
のアドレスに対して転送済みか否かを記憶しておく。演
算装置から内蔵メモリに対して読み出し要求が出たと
き、読み出し要求のきたアドレスが内蔵メモリ部にプロ
グラムが転送されていないアドレスだった場合、バリッ
ドビット部は演算装置に対してウェイト信号を出し、要
求のあったアドレスのデータが外部メモリから転送され
るまで演算装置を待たせる。
【0030】演算装置から、内蔵メモリには転送されて
いないがプログラム転送装置のデータバッファに転送さ
れているデータに対して読み出し要求がきた場合、プロ
グラム転送装置はデータバッファ中のデータを内蔵メモ
リを直接演算装置に転送する。
いないがプログラム転送装置のデータバッファに転送さ
れているデータに対して読み出し要求がきた場合、プロ
グラム転送装置はデータバッファ中のデータを内蔵メモ
リを直接演算装置に転送する。
【0031】本発明のコンパイラは、ソースプログラム
を構成する複数のブロックについて、実行順序になるよ
うにブロックの並べ替えを行うとともに、並べ替え実施
後のブロックに対して内蔵メモリに書き込む際のアドレ
スデータを付加することを目的としている。
を構成する複数のブロックについて、実行順序になるよ
うにブロックの並べ替えを行うとともに、並べ替え実施
後のブロックに対して内蔵メモリに書き込む際のアドレ
スデータを付加することを目的としている。
【0032】この課題を解決するため本発明のコンパイ
ラは、ソースプログラムを構成する複数のブロックに挿
入された実行順序を示すコメント文に基づいて、ブロッ
クの配列順序を並べ替えること、およびブロックの配列
順序を並べ替えた後も、内蔵メモリに書き込む際のアド
レスデータを保持すること特徴とする。
ラは、ソースプログラムを構成する複数のブロックに挿
入された実行順序を示すコメント文に基づいて、ブロッ
クの配列順序を並べ替えること、およびブロックの配列
順序を並べ替えた後も、内蔵メモリに書き込む際のアド
レスデータを保持すること特徴とする。
【0033】本発明のプログラムソート方式を備えたマ
イクロコントローラは、マイクロコントローラの実使用
を想定したシミュレーションを実施し、演算装置から内
蔵メモリに対して読み出し要求が出たとき、読み出し要
求のきたアドレスがシミュレーション開始後初めて読み
出し要求のきたアドレスであるかをバリッドビット部に
おいて比較し、シミュレーション開始後初めての読み出
し要求だった場合、内蔵メモリに対して内蔵メモリから
プログラム転送装置への読み出し要求を出し、前記アド
レスと前記アドレスのデータをプログラム転送装置に転
送する。
イクロコントローラは、マイクロコントローラの実使用
を想定したシミュレーションを実施し、演算装置から内
蔵メモリに対して読み出し要求が出たとき、読み出し要
求のきたアドレスがシミュレーション開始後初めて読み
出し要求のきたアドレスであるかをバリッドビット部に
おいて比較し、シミュレーション開始後初めての読み出
し要求だった場合、内蔵メモリに対して内蔵メモリから
プログラム転送装置への読み出し要求を出し、前記アド
レスと前記アドレスのデータをプログラム転送装置に転
送する。
【0034】バリッドビット部は、内蔵メモリに対して
内蔵メモリからプログラム転送装置への読み出し要求を
出した後、読み出し要求を出したアドレスに対応するビ
ットを反転させることで、内蔵メモリのアドレスに対し
て演算装置から読み出し要求が出たか否かを記憶する。
また、バリッドビット部は前記マイクロコントローラの
実使用を想定したシミュレーションを終了する際、演算
装置から内蔵メモリに対して読み出し要求のなかった内
蔵メモリのすべてのアドレスに対して、下位のアドレス
から順番にプログラム転送装置への読み出し要求を出
す。
内蔵メモリからプログラム転送装置への読み出し要求を
出した後、読み出し要求を出したアドレスに対応するビ
ットを反転させることで、内蔵メモリのアドレスに対し
て演算装置から読み出し要求が出たか否かを記憶する。
また、バリッドビット部は前記マイクロコントローラの
実使用を想定したシミュレーションを終了する際、演算
装置から内蔵メモリに対して読み出し要求のなかった内
蔵メモリのすべてのアドレスに対して、下位のアドレス
から順番にプログラム転送装置への読み出し要求を出
す。
【0035】プログラム転送装置は、内蔵メモリから転
送されたアドレスとデータを対にして出力することで、
内蔵メモリに格納されている第1のプログラムデータを
実行順序に並べ替えた、第2のプログラムデータを生成
する。第2のプログラムデータは、第1のプログラムデ
ータとアドレスの配列順序が異なるが、第2のプログラ
ムデータを外部メモリに格納し、外部メモリの先頭アド
レスから順番にデータを内蔵メモリに書き込む際、第1
のプログラムデータと同じアドレスの配列順序に戻すた
めのアドレスデータを保持することを特徴とする。
送されたアドレスとデータを対にして出力することで、
内蔵メモリに格納されている第1のプログラムデータを
実行順序に並べ替えた、第2のプログラムデータを生成
する。第2のプログラムデータは、第1のプログラムデ
ータとアドレスの配列順序が異なるが、第2のプログラ
ムデータを外部メモリに格納し、外部メモリの先頭アド
レスから順番にデータを内蔵メモリに書き込む際、第1
のプログラムデータと同じアドレスの配列順序に戻すた
めのアドレスデータを保持することを特徴とする。
【0036】プログラム転送装置から前記第2のプログ
ラムデータを出力する際、外部メモリへの書き込み要求
を合わせて出力することで、第2のプログラムデータを
直接外部メモリに格納することも可能である。
ラムデータを出力する際、外部メモリへの書き込み要求
を合わせて出力することで、第2のプログラムデータを
直接外部メモリに格納することも可能である。
【0037】以下、本発明の第1の実施の形態につい
て、図面を参照しながら説明する。
て、図面を参照しながら説明する。
【0038】図1は本発明の第1の実施の形態における
マイクロコントローラのブロック図である。図1におい
て、1は演算装置、2は内蔵メモリ、3はプログラム転
送装置、4はバリッドビット部、5は外部メモリ、6は
内蔵メモリ2からプログラムを演算装置1に転送するデ
ータバス、7は演算装置1が内蔵メモリ2より読み出す
アドレスを指定するアドレスバス、8はプログラム転送
装置3から内蔵メモリ2へプログラムを転送するデータ
バス、9はプログラム転送装置3から内蔵メモリ2に対
して書き込むアドレスを指定するアドレスバス、10は
外部メモリ5とプログラム転送装置3を接続するデータ
バス、11は演算装置1から内蔵メモリ2に対してプロ
グラムの読み出し要求を出力する読み出し要求信号、1
2はプログラム転送装置3から内蔵メモリ2に出力され
る書き込み要求信号、13は演算装置1の内蔵メモリ2
への読み出しを禁止するウェイト信号、15はソースプ
ログラム、14はコンパイラである。ソースプログラム
15、コンパイラ14については後述する。
マイクロコントローラのブロック図である。図1におい
て、1は演算装置、2は内蔵メモリ、3はプログラム転
送装置、4はバリッドビット部、5は外部メモリ、6は
内蔵メモリ2からプログラムを演算装置1に転送するデ
ータバス、7は演算装置1が内蔵メモリ2より読み出す
アドレスを指定するアドレスバス、8はプログラム転送
装置3から内蔵メモリ2へプログラムを転送するデータ
バス、9はプログラム転送装置3から内蔵メモリ2に対
して書き込むアドレスを指定するアドレスバス、10は
外部メモリ5とプログラム転送装置3を接続するデータ
バス、11は演算装置1から内蔵メモリ2に対してプロ
グラムの読み出し要求を出力する読み出し要求信号、1
2はプログラム転送装置3から内蔵メモリ2に出力され
る書き込み要求信号、13は演算装置1の内蔵メモリ2
への読み出しを禁止するウェイト信号、15はソースプ
ログラム、14はコンパイラである。ソースプログラム
15、コンパイラ14については後述する。
【0039】プログラム転送装置3は、図2に示すよう
な構成になっている。図2において、301は外部メモ
リ5から転送されたデータ数をカウントするカウンタ、
302はプログラムを内蔵メモリ2に書き込むアドレス
を記憶するアドレスバッファ、303は外部メモリ5か
ら転送されたプログラムを記憶するデータバッファ、3
04は演算装置1が出力するアドレスバス7の値がアド
レスバッファ302の値以上でかつアドレスバッファ3
02の値とカウンタ301の値の合計値以下であるかど
うかを比較する比較器である。比較器304において、
上記条件が成立した場合、演算装置1から読み出し要求
のあったプログラムデータがプログラム転送装置3内に
存在していることを示すので、データバッファ303か
らプログラムデータを演算装置1に転送する。
な構成になっている。図2において、301は外部メモ
リ5から転送されたデータ数をカウントするカウンタ、
302はプログラムを内蔵メモリ2に書き込むアドレス
を記憶するアドレスバッファ、303は外部メモリ5か
ら転送されたプログラムを記憶するデータバッファ、3
04は演算装置1が出力するアドレスバス7の値がアド
レスバッファ302の値以上でかつアドレスバッファ3
02の値とカウンタ301の値の合計値以下であるかど
うかを比較する比較器である。比較器304において、
上記条件が成立した場合、演算装置1から読み出し要求
のあったプログラムデータがプログラム転送装置3内に
存在していることを示すので、データバッファ303か
らプログラムデータを演算装置1に転送する。
【0040】また、外部メモリ5に記憶されるデータは
図3に示すとおり、アドレスデータとプログラムデータ
とが対になり、これらが複数個、0x0000番地から
順に並んでいる。すなわち、内蔵メモリ2に記憶される
アドレスを示すアドレスデータと、演算装置1で実行さ
れるプログラムデータとが対になった形で外部メモリ5
に記憶されている。
図3に示すとおり、アドレスデータとプログラムデータ
とが対になり、これらが複数個、0x0000番地から
順に並んでいる。すなわち、内蔵メモリ2に記憶される
アドレスを示すアドレスデータと、演算装置1で実行さ
れるプログラムデータとが対になった形で外部メモリ5
に記憶されている。
【0041】アドレスバッファ302の大きさとデータ
バッファ303の大きさとデータバス10のバス幅とカ
ウンタ301とを任意に構成することで、外部メモリ5
から内蔵メモリ2へのプログラムの書き込みを制御す
る。ここでは、アドレスバッファ302は16ビット、
データバス10は8ビット、データバッファ303は2
048ビット、データバス8は2048ビットとする。
バッファ303の大きさとデータバス10のバス幅とカ
ウンタ301とを任意に構成することで、外部メモリ5
から内蔵メモリ2へのプログラムの書き込みを制御す
る。ここでは、アドレスバッファ302は16ビット、
データバス10は8ビット、データバッファ303は2
048ビット、データバス8は2048ビットとする。
【0042】以上のように構成されたマイクロコントロ
ーラについて、以下その動作を説明する。外部メモリ5
に記憶されたデータはデータバス10を使ってプログラ
ム転送装置3に転送される。データバスが8ビットであ
るので、転送されるデータはアドレスデータが2回、プ
ログラムデータが256回、再びアドレスデータが2
回、プログラムデータが256回、という形を繰り返し
て転送される。アドレスデータはアドレスバッファ30
2に記憶され、プログラムデータはデータバッファ30
3に記憶される。
ーラについて、以下その動作を説明する。外部メモリ5
に記憶されたデータはデータバス10を使ってプログラ
ム転送装置3に転送される。データバスが8ビットであ
るので、転送されるデータはアドレスデータが2回、プ
ログラムデータが256回、再びアドレスデータが2
回、プログラムデータが256回、という形を繰り返し
て転送される。アドレスデータはアドレスバッファ30
2に記憶され、プログラムデータはデータバッファ30
3に記憶される。
【0043】カウンタ301は転送回数をカウントす
る。転送回数がアドレスバッファ302およびデータバ
ッファ303がいっぱいになる258回転送が行われる
と、カウンタ301はプログラム転送装置3の書き込み
動作と演算装置1の読み出し動作が同時に起こらないよ
うに、演算装置1に内蔵メモリ2からのプログラム読み
出しを禁止するウェイト信号13を出力し、アドレスバ
ス9にアドレスバッファ302の値と、データバス10
にデータバッファ303の値と、内蔵メモリ2およびバ
リッドビット部4に書き込み要求信号12をそれぞれ出
力してデータバッファ303のプログラムデータを内蔵
メモリ2に書き込む。
る。転送回数がアドレスバッファ302およびデータバ
ッファ303がいっぱいになる258回転送が行われる
と、カウンタ301はプログラム転送装置3の書き込み
動作と演算装置1の読み出し動作が同時に起こらないよ
うに、演算装置1に内蔵メモリ2からのプログラム読み
出しを禁止するウェイト信号13を出力し、アドレスバ
ス9にアドレスバッファ302の値と、データバス10
にデータバッファ303の値と、内蔵メモリ2およびバ
リッドビット部4に書き込み要求信号12をそれぞれ出
力してデータバッファ303のプログラムデータを内蔵
メモリ2に書き込む。
【0044】内蔵メモリ2の書き込みが終わると、カウ
ンタ301はウェイト信号13を止め、カウント値を零
に戻して、再び転送回数をカウントする。
ンタ301はウェイト信号13を止め、カウント値を零
に戻して、再び転送回数をカウントする。
【0045】バリッドビット部4は、カウンタ301か
らの書き込み要求信号12を受けると、アドレスバス9
の値に対応するビットを1にする。また、演算部1から
読み出し要求信号11を受けると、アドレスバス7に対
応するビットが1であるか否かを比較し、0である場合
には、演算装置1に対して、内蔵メモリ2からのプログ
ラムの読み出しを待たせるウェイト信号13を出力す
る。バリッドビット部4によって演算装置1が内蔵メモ
リ2から書き込まれていないアドレスを読み出すのを禁
止する。
らの書き込み要求信号12を受けると、アドレスバス9
の値に対応するビットを1にする。また、演算部1から
読み出し要求信号11を受けると、アドレスバス7に対
応するビットが1であるか否かを比較し、0である場合
には、演算装置1に対して、内蔵メモリ2からのプログ
ラムの読み出しを待たせるウェイト信号13を出力す
る。バリッドビット部4によって演算装置1が内蔵メモ
リ2から書き込まれていないアドレスを読み出すのを禁
止する。
【0046】上記したバリッドビット部4は、図21に
示すように、デコーダ4aとバリッドビットアレイ4b
からなっている。デコーダ4aは書き込み要求信号12
を受けると、アドレスバス9をデコードし、読み出し要
求信号11を受けると、アドレスバス7をデコードし、
デコードした値をバリッドビットアレイアドレスとして
出力する。バリッドビットアレイ4bは、内蔵メモリ2
の各アドレスに1対1に対応し、内蔵メモリ2のアドレ
スは上記デコーダ4aによってバリッドビットのアドレ
スに1対1に変換される。バリッドビットアレイ4bの
初期値は零である。バリッドビットアレイ4bは書き込
み要求信号12を受けると、バリッドビットアレイアド
レスに対応するバリッドビットアレイ4bのアドレスの
値を1にする。バリッドビットアレイ4bは読み出し要
求がきたとき、バリッドビットアレイアドレスに対応し
たアドレスの値を、ウェイト信号として出力する。
示すように、デコーダ4aとバリッドビットアレイ4b
からなっている。デコーダ4aは書き込み要求信号12
を受けると、アドレスバス9をデコードし、読み出し要
求信号11を受けると、アドレスバス7をデコードし、
デコードした値をバリッドビットアレイアドレスとして
出力する。バリッドビットアレイ4bは、内蔵メモリ2
の各アドレスに1対1に対応し、内蔵メモリ2のアドレ
スは上記デコーダ4aによってバリッドビットのアドレ
スに1対1に変換される。バリッドビットアレイ4bの
初期値は零である。バリッドビットアレイ4bは書き込
み要求信号12を受けると、バリッドビットアレイアド
レスに対応するバリッドビットアレイ4bのアドレスの
値を1にする。バリッドビットアレイ4bは読み出し要
求がきたとき、バリッドビットアレイアドレスに対応し
たアドレスの値を、ウェイト信号として出力する。
【0047】内蔵メモリ2はカウンタ301からの書き
込み要求信号12を受けて、アドレスバス9に対応した
アドレスに対して、データバス8の値を記憶する。
込み要求信号12を受けて、アドレスバス9に対応した
アドレスに対して、データバス8の値を記憶する。
【0048】演算装置1は、ウェイト信号13が出力さ
れていなければ、内蔵メモリ2からプログラムを読み出
し実行する。ウェイト信号13が出力されている場合、
内蔵メモリ2からの読み出しを待機する。
れていなければ、内蔵メモリ2からプログラムを読み出
し実行する。ウェイト信号13が出力されている場合、
内蔵メモリ2からの読み出しを待機する。
【0049】内蔵メモリ2には転送されていないが、プ
ログラム転送装置3に既に転送されている場合には、比
較器304が読み出し要求の出たアドレスと、アドレス
バッファ302の値およびカウンタ301の値とを比較
すると、演算装置1からの読み出し要求の出たアドレス
が、アドレスバッファ302の値以上、かつアドレスバ
ッファ302の値とカウンタ301の値の合計値以下で
あるので、読み出し要求のあったプログラムデータはデ
ータバッファ303内にあることが検出でき、データバ
ッファ303から直接演算装置1にプログラムデータを
転送する。
ログラム転送装置3に既に転送されている場合には、比
較器304が読み出し要求の出たアドレスと、アドレス
バッファ302の値およびカウンタ301の値とを比較
すると、演算装置1からの読み出し要求の出たアドレス
が、アドレスバッファ302の値以上、かつアドレスバ
ッファ302の値とカウンタ301の値の合計値以下で
あるので、読み出し要求のあったプログラムデータはデ
ータバッファ303内にあることが検出でき、データバ
ッファ303から直接演算装置1にプログラムデータを
転送する。
【0050】この実施の形態のマイクロコントローラに
よれば、内蔵メモリ2にプログラムを転送するプログラ
ム転送装置3を設け、バリッドビット部4を設けてプロ
グラム転送装置3によってプログラムが書き込まれた内
蔵メモリ2のアドレスを記憶しておき、演算装置1から
内蔵メモリ2に対して与えられるアドレスが記憶されて
いないときに演算装置1をウェイトさせるようにし、プ
ログラム転送装置3では外部メモリ5からの所定のデー
タ数のプログラムの転送が完了する毎に外部メモリ5か
ら転送されたプログラムを内部メモリ2に転送し、内部
メモリ2へのプログラムの転送期間中は演算装置1をウ
ェイトさせるようにしたので、プログラムを転送しなが
ら同時にプログラムの実行も可能とする。
よれば、内蔵メモリ2にプログラムを転送するプログラ
ム転送装置3を設け、バリッドビット部4を設けてプロ
グラム転送装置3によってプログラムが書き込まれた内
蔵メモリ2のアドレスを記憶しておき、演算装置1から
内蔵メモリ2に対して与えられるアドレスが記憶されて
いないときに演算装置1をウェイトさせるようにし、プ
ログラム転送装置3では外部メモリ5からの所定のデー
タ数のプログラムの転送が完了する毎に外部メモリ5か
ら転送されたプログラムを内部メモリ2に転送し、内部
メモリ2へのプログラムの転送期間中は演算装置1をウ
ェイトさせるようにしたので、プログラムを転送しなが
ら同時にプログラムの実行も可能とする。
【0051】以下、本発明の第1の実施の形態における
コンパイラの構成について、図4から図13を用いて説
明する。
コンパイラの構成について、図4から図13を用いて説
明する。
【0052】図4に本発明の並べ替え処理を行うコンパ
イラの一例の構成を示す。図中の符号14はコンパイ
ラ、15はソースプログラム、16は内蔵メモリに格納
するバイナリデータ、17は並べ替え処理手段、18は
外部メモリに格納するバイナリデータを表している。
イラの一例の構成を示す。図中の符号14はコンパイ
ラ、15はソースプログラム、16は内蔵メモリに格納
するバイナリデータ、17は並べ替え処理手段、18は
外部メモリに格納するバイナリデータを表している。
【0053】コンパイラ14は、与えられたソースプロ
グラム15に対して内蔵メモリに格納するバイナリデー
タ16への変換を行った上で、並べ替え処理手段17を
用いて実際に実行される順序にプログラムの物理的配列
順序を変換し、外部メモリに格納するバイナリデータ1
8を生成する。図14は、コンパイラ14の動作を示す
フローチャートである。
グラム15に対して内蔵メモリに格納するバイナリデー
タ16への変換を行った上で、並べ替え処理手段17を
用いて実際に実行される順序にプログラムの物理的配列
順序を変換し、外部メモリに格納するバイナリデータ1
8を生成する。図14は、コンパイラ14の動作を示す
フローチャートである。
【0054】図5にソースプログラムの例を示す。一般
にソースプログラムはメインプログラム(main())と、
メインプログラム(main())内で呼び出しを行う関数な
どのサブプログラム(例えば、program A(),program
B(),program C())とによって構成される。図5に示す
ソースプログラムを作成する段階で、このソースプログ
ラムによって制御されるシステムが起動後に実行する命
令を把握することは可能である。
にソースプログラムはメインプログラム(main())と、
メインプログラム(main())内で呼び出しを行う関数な
どのサブプログラム(例えば、program A(),program
B(),program C())とによって構成される。図5に示す
ソースプログラムを作成する段階で、このソースプログ
ラムによって制御されるシステムが起動後に実行する命
令を把握することは可能である。
【0055】本発明の第1の実施の形態では、ソースプ
ログラムを作成する段階で、ソースプログラムを、実際
に実行される順序に基づいてプライオリティを設定した
ブロックに分割する。
ログラムを作成する段階で、ソースプログラムを、実際
に実行される順序に基づいてプライオリティを設定した
ブロックに分割する。
【0056】図6は、本発明の第1の実施の形態におけ
る、プライオリティを設定したブロックを表す。図中の
符号100はブロックの開始位置を表すコメント文であ
る。図中の符号101はブロックの終了位置を表すコメ
ント文である。
る、プライオリティを設定したブロックを表す。図中の
符号100はブロックの開始位置を表すコメント文であ
る。図中の符号101はブロックの終了位置を表すコメ
ント文である。
【0057】図6(a)を例にした場合、ブロックの開
始位置を表すコメント文100とブロックの終了位置を
表すコメント文101に囲まれたソースプログラムの領
域を1つのブロックとする。このブロック分割の処理
は、図14に示すように、ソースプログラムにブロック
開始コメントの有無の判定と、ソースプログラムにブロ
ック終了コメントの有無の判定に基づいて行われる。
始位置を表すコメント文100とブロックの終了位置を
表すコメント文101に囲まれたソースプログラムの領
域を1つのブロックとする。このブロック分割の処理
は、図14に示すように、ソースプログラムにブロック
開始コメントの有無の判定と、ソースプログラムにブロ
ック終了コメントの有無の判定に基づいて行われる。
【0058】図6(b)、図6(c)を例にした場合、
同じくブロックの開始位置を表すコメント文100とブ
ロックの終了位置を表すコメント文101に囲まれたソ
ースプログラムの領域を1つのブロックとする。
同じくブロックの開始位置を表すコメント文100とブ
ロックの終了位置を表すコメント文101に囲まれたソ
ースプログラムの領域を1つのブロックとする。
【0059】また、ブロックの開始位置を表すコメント
文100に含まれる数値は、前記ブロックのプライオリ
ティを表す。ここで、便宜上、プライオリティ1のブロ
ックをブロック1、プライオリティ2のブロックをブロ
ック2、同様にプライオリティiのブロックをブロック
iとする。
文100に含まれる数値は、前記ブロックのプライオリ
ティを表す。ここで、便宜上、プライオリティ1のブロ
ックをブロック1、プライオリティ2のブロックをブロ
ック2、同様にプライオリティiのブロックをブロック
iとする。
【0060】図7は、本発明の第1の実施の形態によっ
て分割されたソースプログラムを表す。図5に示してい
たソースプログラムは、実際に実行される順序に基づい
てプライオリティを設定したブロック1からブロックi
に分割されている。
て分割されたソースプログラムを表す。図5に示してい
たソースプログラムは、実際に実行される順序に基づい
てプライオリティを設定したブロック1からブロックi
に分割されている。
【0061】また、本発明の第1の実施の形態では、上
記各ブロックに対して、内蔵メモリに格納する際に必要
となるアドレスデータを付加する。
記各ブロックに対して、内蔵メモリに格納する際に必要
となるアドレスデータを付加する。
【0062】ブロック1からブロックiに分割されたソ
ースプログラム15は、図14の符号201に示すステ
ップとして内蔵メモリに格納するバイナリデータ16へ
の変換が行われる。この動作は、ソースプログラムに続
きがなくなるまで続けられる。
ースプログラム15は、図14の符号201に示すステ
ップとして内蔵メモリに格納するバイナリデータ16へ
の変換が行われる。この動作は、ソースプログラムに続
きがなくなるまで続けられる。
【0063】図8は内蔵メモリ2に格納するバイナリデ
ータ16における上記各ブロック1〜iの物理的配列順
序の一例を示している。図4に示すコンパイラ14によ
って内蔵メモリ2に格納するバイナリデータ16に変換
されたブロック1〜iには、図8に示すように各々アド
レスデータが与えられる。
ータ16における上記各ブロック1〜iの物理的配列順
序の一例を示している。図4に示すコンパイラ14によ
って内蔵メモリ2に格納するバイナリデータ16に変換
されたブロック1〜iには、図8に示すように各々アド
レスデータが与えられる。
【0064】ここでの上記ブロック1〜iの物理的配列
順序は、上記アドレスデータに基づいており、ブロック
1〜i毎に設定されたプライオリティは考慮されていな
い。また、最終的には図4に示す外部メモリ5に格納す
るバイナリデータ18を上記のシステム構成に従って、
256バイトを1回の書き込みの単位として内蔵メモリ
2への書き込みを実行することを考慮すると、上記ブロ
ックは256アドレス毎に分割されていることが望まし
い。本発明の第1の実施の形態では、上記ブロック1〜
iをそれぞれ256アドレス毎の書き込み単位ブロック
に分割する。
順序は、上記アドレスデータに基づいており、ブロック
1〜i毎に設定されたプライオリティは考慮されていな
い。また、最終的には図4に示す外部メモリ5に格納す
るバイナリデータ18を上記のシステム構成に従って、
256バイトを1回の書き込みの単位として内蔵メモリ
2への書き込みを実行することを考慮すると、上記ブロ
ックは256アドレス毎に分割されていることが望まし
い。本発明の第1の実施の形態では、上記ブロック1〜
iをそれぞれ256アドレス毎の書き込み単位ブロック
に分割する。
【0065】図9は、図8に示す内蔵メモリ2に格納す
るバイナリデータへの変換の際に本発明のコンパイラに
よって生成されるテーブルを示している。
るバイナリデータへの変換の際に本発明のコンパイラに
よって生成されるテーブルを示している。
【0066】図9のテーブルは、ブロック1からブロッ
クiに対して割り当てられた開始アドレスおよび終了ア
ドレスのアドレスデータを表している。この図9のテー
ブルをもとに各ブロック1〜iを256アドレス毎の書
き込み単位ブロックに分割する。図9のブロック1を例
にとると、ブロック1には0110から0220までの
アドレスデータが割り当てられている。
クiに対して割り当てられた開始アドレスおよび終了ア
ドレスのアドレスデータを表している。この図9のテー
ブルをもとに各ブロック1〜iを256アドレス毎の書
き込み単位ブロックに分割する。図9のブロック1を例
にとると、ブロック1には0110から0220までの
アドレスデータが割り当てられている。
【0067】ここで、ブロック1の開始アドレスを01
00、終了アドレスを02FFと変換し、この2つのア
ドレスデータによって構成される領域をブロック1’と
すれば、上記ブロック1’はその領域の中に上記ブロッ
ク1の領域を包括するとともに、上記ブロック1’は0
100から01FF、0200から02FFのアドレス
で示される2つの書き込み単位ブロックに分割すること
が可能となる。
00、終了アドレスを02FFと変換し、この2つのア
ドレスデータによって構成される領域をブロック1’と
すれば、上記ブロック1’はその領域の中に上記ブロッ
ク1の領域を包括するとともに、上記ブロック1’は0
100から01FF、0200から02FFのアドレス
で示される2つの書き込み単位ブロックに分割すること
が可能となる。
【0068】図10、図11、図12に図9のテーブル
を本発明のコンパイラによって処理した結果を示す。図
14の符号202に示すステップとして、図9のテーブ
ルに示されるブロック1からブロックiの各々に対応す
る開始アドレスデータおよび終了アドレスデータにおい
て、開始アドレスデータの下2桁を00に切り捨て、か
つ終了アドレスデータの下2桁をFFに切り上げること
で、ブロック1の領域を包括するブロック1’の領域、
ブロック2の領域を包括するブロック2’の領域、同様
にブロックiの領域を包括するブロックi’の領域に変
換し、図10に示すテーブルを生成する。
を本発明のコンパイラによって処理した結果を示す。図
14の符号202に示すステップとして、図9のテーブ
ルに示されるブロック1からブロックiの各々に対応す
る開始アドレスデータおよび終了アドレスデータにおい
て、開始アドレスデータの下2桁を00に切り捨て、か
つ終了アドレスデータの下2桁をFFに切り上げること
で、ブロック1の領域を包括するブロック1’の領域、
ブロック2の領域を包括するブロック2’の領域、同様
にブロックiの領域を包括するブロックi’の領域に変
換し、図10に示すテーブルを生成する。
【0069】そして、生成された図10のテーブルに対
し、開始アドレスデータおよび終了アドレスデータにて
表されるブロック1’からブロックi’の各々の領域を
256アドレス毎に分割することで、書き込み単位ブロ
ックを生成するテーブルを得る。なお、ここでは本発明
の第1の実施の形態の一例として書き込み単位ブロック
を256アドレスを分割の単位としたが、256アドレ
ス以外の分割単位で書き込み単位アドレスに分割するこ
とも可能である。
し、開始アドレスデータおよび終了アドレスデータにて
表されるブロック1’からブロックi’の各々の領域を
256アドレス毎に分割することで、書き込み単位ブロ
ックを生成するテーブルを得る。なお、ここでは本発明
の第1の実施の形態の一例として書き込み単位ブロック
を256アドレスを分割の単位としたが、256アドレ
ス以外の分割単位で書き込み単位アドレスに分割するこ
とも可能である。
【0070】図11に、書き込み単位ブロックを生成す
るテーブルを示す。ここで、さらに図11のテーブルに
対し、ブロック1’からブロックi’までをプライオリ
ティの昇順に並べ替えることにより、図12に示すテー
ブルを得る。図12に示すテーブルが、本発明のコンパ
イラで生成するテーブルの最終形となる。
るテーブルを示す。ここで、さらに図11のテーブルに
対し、ブロック1’からブロックi’までをプライオリ
ティの昇順に並べ替えることにより、図12に示すテー
ブルを得る。図12に示すテーブルが、本発明のコンパ
イラで生成するテーブルの最終形となる。
【0071】図14の符号203に示すステップとし
て、図12に示すテーブルに従い、図8に示す内蔵メモ
リ2に格納するバイナリデータ16を変換することで、
外部メモリ5に格納するバイナリデータ18を得る。
て、図12に示すテーブルに従い、図8に示す内蔵メモ
リ2に格納するバイナリデータ16を変換することで、
外部メモリ5に格納するバイナリデータ18を得る。
【0072】つぎに、図14の符号204に示すステッ
プで生成される、外部メモリへ格納するバイナリデータ
18の物理的配列順序を図13に示す。図13に示すよ
うに、プライオリティの高い順序でブロックが並べ替え
られており、また上記各ブロック1’〜i’は、256
バイトの書き込み単位ブロックに分割されており、なお
かつ上記書き込み単位ブロックは図12のテーブルによ
り、アドレスデータを付加されている。図13の符号2
00は付加された上記アドレスデータを示す。
プで生成される、外部メモリへ格納するバイナリデータ
18の物理的配列順序を図13に示す。図13に示すよ
うに、プライオリティの高い順序でブロックが並べ替え
られており、また上記各ブロック1’〜i’は、256
バイトの書き込み単位ブロックに分割されており、なお
かつ上記書き込み単位ブロックは図12のテーブルによ
り、アドレスデータを付加されている。図13の符号2
00は付加された上記アドレスデータを示す。
【0073】上記外部メモリ5に格納されたバイナリデ
ータを、プログラム転送装置3に転送し、内蔵メモリ2
への書き込みを実施する際、付加された上記アドレスデ
ータに従って書き込みを行うことで、図8に示す並べ替
え処理前の物理的配列構造を持つバイナリデータに戻し
ながら書き込みを実現することができる。
ータを、プログラム転送装置3に転送し、内蔵メモリ2
への書き込みを実施する際、付加された上記アドレスデ
ータに従って書き込みを行うことで、図8に示す並べ替
え処理前の物理的配列構造を持つバイナリデータに戻し
ながら書き込みを実現することができる。
【0074】この実施の形態のコンパイラによれば、ソ
ースプログラムを複数のブロックに分割し、複数のブロ
ックにアドレスデータを付加し、複数のブロックの配列
順序を実行順序に基づいて並べ替えたバイナリデータを
生成することを可能とするものであり、バイナリデータ
を外部メモリ5に記憶し、外部メモリ5の先頭アドレス
からバイナリデータを内蔵メモリ2に転送することで、
演算装置1によって実行される順序で内蔵メモリ2への
プログラムの転送を可能とする。
ースプログラムを複数のブロックに分割し、複数のブロ
ックにアドレスデータを付加し、複数のブロックの配列
順序を実行順序に基づいて並べ替えたバイナリデータを
生成することを可能とするものであり、バイナリデータ
を外部メモリ5に記憶し、外部メモリ5の先頭アドレス
からバイナリデータを内蔵メモリ2に転送することで、
演算装置1によって実行される順序で内蔵メモリ2への
プログラムの転送を可能とする。
【0075】以下、プログラムの並べ替え処理を行うた
めの、本発明の第2の実施の形態として、プログラムソ
ート方式を備えたマイクロコントローラについて、図面
を参照しながら説明する。
めの、本発明の第2の実施の形態として、プログラムソ
ート方式を備えたマイクロコントローラについて、図面
を参照しながら説明する。
【0076】図15は本発明の第2の実施の形態におけ
るプログラムソート方式を備えたマイクロコントローラ
のブロック図である。図15において、19は演算装
置、20は内蔵メモリ、21はプログラム転送装置、2
2はバリッドビット部、23は内蔵メモリ20からプロ
グラムを演算装置19に転送するデータバス、24は演
算装置19が内蔵メモリ20より読み出すアドレスを指
定するアドレスバス、25は演算装置19から内蔵メモ
リ20に対してプログラムの読み出し要求を出力する読
み出し要求信号、26はバリッドビット部22から内蔵
メモリ20に対して出力する内蔵メモリ20からプログ
ラム転送装置21へのプログラム読み出し要求信号、2
7はプログラム読み出し要求信号26が出力されるとき
に、内蔵メモリ20とプログラム転送装置21にアドレ
スを転送するアドレスバス、28は内蔵メモリ20から
プログラム転送装置21へプログラムを転送するデータ
バス、29はプログラム転送装置21から出力されるデ
ータを格納するトレースメモリ、30はプログラム転送
装置21とトレースメモリ29を接続するデータバス、
31はソートプログラム、32はマイクロコントローラ
の外部から演算装置19に入力されるシミュレーション
開始信号、33はマイクロコントローラの外部から演算
装置19に入力されるシミュレーション終了信号であ
る。
るプログラムソート方式を備えたマイクロコントローラ
のブロック図である。図15において、19は演算装
置、20は内蔵メモリ、21はプログラム転送装置、2
2はバリッドビット部、23は内蔵メモリ20からプロ
グラムを演算装置19に転送するデータバス、24は演
算装置19が内蔵メモリ20より読み出すアドレスを指
定するアドレスバス、25は演算装置19から内蔵メモ
リ20に対してプログラムの読み出し要求を出力する読
み出し要求信号、26はバリッドビット部22から内蔵
メモリ20に対して出力する内蔵メモリ20からプログ
ラム転送装置21へのプログラム読み出し要求信号、2
7はプログラム読み出し要求信号26が出力されるとき
に、内蔵メモリ20とプログラム転送装置21にアドレ
スを転送するアドレスバス、28は内蔵メモリ20から
プログラム転送装置21へプログラムを転送するデータ
バス、29はプログラム転送装置21から出力されるデ
ータを格納するトレースメモリ、30はプログラム転送
装置21とトレースメモリ29を接続するデータバス、
31はソートプログラム、32はマイクロコントローラ
の外部から演算装置19に入力されるシミュレーション
開始信号、33はマイクロコントローラの外部から演算
装置19に入力されるシミュレーション終了信号であ
る。
【0077】バリッドビット部22は図17に示すよう
な構成になっている。図17において、401はアドレ
スバス24の値を格納するレジスタ、402はレジスタ
402から送られてきたアドレスの値をデコードするデ
コーダ、403は内蔵メモリ20の各アドレスに一対一
で対応するバリッドビットを持つバリッドビットアレイ
で初期状態では全て0になっている。404はバリッド
ビットアレイ403より読み出されたバリッドビットの
値が0か1かを比較判定し、判定結果に応じてプログラ
ム読み出し要求信号26と、レジスタ402への読み出
し要求信号405と、バリッドビットアレイ403への
書き込み要求信号406の出力を制御する制御装置であ
る。
な構成になっている。図17において、401はアドレ
スバス24の値を格納するレジスタ、402はレジスタ
402から送られてきたアドレスの値をデコードするデ
コーダ、403は内蔵メモリ20の各アドレスに一対一
で対応するバリッドビットを持つバリッドビットアレイ
で初期状態では全て0になっている。404はバリッド
ビットアレイ403より読み出されたバリッドビットの
値が0か1かを比較判定し、判定結果に応じてプログラ
ム読み出し要求信号26と、レジスタ402への読み出
し要求信号405と、バリッドビットアレイ403への
書き込み要求信号406の出力を制御する制御装置であ
る。
【0078】演算装置19にシミュレーション開始信号
32が入力されると、マイクロコントローラはトレース
モードに入る。以下、トレースモードでのマイクロコン
トローラの動作について説明する。
32が入力されると、マイクロコントローラはトレース
モードに入る。以下、トレースモードでのマイクロコン
トローラの動作について説明する。
【0079】演算装置19から内蔵メモリ20に読み出
し要求信号25が出力されると、読み出し先となる内蔵
メモリ20のアドレスの値がアドレスバス24によって
バリッドビット部22のレジスタ401に格納された
後、デコーダ402に送られる。アドレスの値はデコー
ダ402でデコードされ、対応するバリッドビットアレ
イ403のバリッドビットの値が制御装置404に出力
される。
し要求信号25が出力されると、読み出し先となる内蔵
メモリ20のアドレスの値がアドレスバス24によって
バリッドビット部22のレジスタ401に格納された
後、デコーダ402に送られる。アドレスの値はデコー
ダ402でデコードされ、対応するバリッドビットアレ
イ403のバリッドビットの値が制御装置404に出力
される。
【0080】制御装置404はバリッドビットアレイ4
03から出力されたバリッドビットの値が0か1かを比
較し、バリッドビットの値が0のときのみ、内蔵メモリ
20からプログラム転送装置21へのプログラム読み出
し要求信号26と、レジスタ401への読み出し要求信
号405と、バリッドビットアレイ403への書き込み
要求信号406を出力し、レジスタ401の値に対応す
るバリッドビットへ1を書き込む。
03から出力されたバリッドビットの値が0か1かを比
較し、バリッドビットの値が0のときのみ、内蔵メモリ
20からプログラム転送装置21へのプログラム読み出
し要求信号26と、レジスタ401への読み出し要求信
号405と、バリッドビットアレイ403への書き込み
要求信号406を出力し、レジスタ401の値に対応す
るバリッドビットへ1を書き込む。
【0081】また、レジスタ402への読み出し要求信
号405によって、レジスタ402の値をアドレスバス
27に読み出し、アドレスの値を内蔵メモリ20とプロ
グラム転送装置21に転送する。
号405によって、レジスタ402の値をアドレスバス
27に読み出し、アドレスの値を内蔵メモリ20とプロ
グラム転送装置21に転送する。
【0082】以上説明したように、バリッドビット部2
2によって、演算装置19から読み出し要求のあった内
蔵メモリ20のアドレスが、シミュレーション開始後初
めて読み出し要求をされるアドレスか否かを判定し、初
めて読み出し要求をされるアドレスであった場合にのみ
アドレスの値をアドレスバス27に乗せてプログラム転
送装置21に転送し、またアドレスバス27に乗せられ
たアドレスの値をプログラム読み出し要求信号26と合
わせて内蔵メモリ20に転送する。
2によって、演算装置19から読み出し要求のあった内
蔵メモリ20のアドレスが、シミュレーション開始後初
めて読み出し要求をされるアドレスか否かを判定し、初
めて読み出し要求をされるアドレスであった場合にのみ
アドレスの値をアドレスバス27に乗せてプログラム転
送装置21に転送し、またアドレスバス27に乗せられ
たアドレスの値をプログラム読み出し要求信号26と合
わせて内蔵メモリ20に転送する。
【0083】内蔵メモリ20はプログラム読み出し要求
信号26を受けると、アドレスバス27の値に対応する
アドレスのデータをデータバス28によってプログラム
転送装置21に転送する。
信号26を受けると、アドレスバス27の値に対応する
アドレスのデータをデータバス28によってプログラム
転送装置21に転送する。
【0084】バリッドビット部22において、シミュレ
ーション開始後初めて読み出し要求をされるアドレスに
対してのみ、アドレスバス27でのアドレスの転送と読
み出し要求信号26の出力を実行することで、内蔵メモ
リ20に格納されている同じアドレスのデータが重複し
てプログラム転送装置21へ転送されることを禁止す
る。
ーション開始後初めて読み出し要求をされるアドレスに
対してのみ、アドレスバス27でのアドレスの転送と読
み出し要求信号26の出力を実行することで、内蔵メモ
リ20に格納されている同じアドレスのデータが重複し
てプログラム転送装置21へ転送されることを禁止す
る。
【0085】プログラム転送装置21は、アドレスバス
27とデータバス28によって転送されたアドレスとデ
ータを対にしてデータバス30に出力し、トレースメモ
リ29の先頭アドレスから順番にトレースを行う。トレ
ースメモリ29はパーソナルコンピュータのような制御
機器上のハードディスクドライブとして実現することが
可能であり、またデータバス30は制御機器とマイクロ
コントローラを接続するパラレルケーブルとして実現す
ることが可能である。
27とデータバス28によって転送されたアドレスとデ
ータを対にしてデータバス30に出力し、トレースメモ
リ29の先頭アドレスから順番にトレースを行う。トレ
ースメモリ29はパーソナルコンピュータのような制御
機器上のハードディスクドライブとして実現することが
可能であり、またデータバス30は制御機器とマイクロ
コントローラを接続するパラレルケーブルとして実現す
ることが可能である。
【0086】トレースメモリ29を制御機器上に設ける
ことで、プログラム転送装置21からデータバス30に
対してアドレスとデータを出力する際、制御機器に対応
する所定のプロトコルに従って出力することによって、
制御機器はデータバス30から送られてきたアドレスと
データをトレースメモリ29に対して書き込むことがで
きる。
ことで、プログラム転送装置21からデータバス30に
対してアドレスとデータを出力する際、制御機器に対応
する所定のプロトコルに従って出力することによって、
制御機器はデータバス30から送られてきたアドレスと
データをトレースメモリ29に対して書き込むことがで
きる。
【0087】トレースメモリ29にトレースされるプロ
グラムは、内蔵メモリ20に格納されているプログラム
を実際に演算装置19によって実行された順番に1アド
レス単位で並べ替えたプログラムとなる。
グラムは、内蔵メモリ20に格納されているプログラム
を実際に演算装置19によって実行された順番に1アド
レス単位で並べ替えたプログラムとなる。
【0088】演算装置19にシミュレーション終了信号
33が入力されると、演算装置19はバリッドビットア
レイ403のすべてのバリッドビットの値を読み出すた
めに、読み出し要求信号25をバリッドビット部22に
のみ出力し、アドレスの値をインクリメントしながらア
ドレスバス24に乗せて同じくバリッドビット部22に
のみ出力する。
33が入力されると、演算装置19はバリッドビットア
レイ403のすべてのバリッドビットの値を読み出すた
めに、読み出し要求信号25をバリッドビット部22に
のみ出力し、アドレスの値をインクリメントしながらア
ドレスバス24に乗せて同じくバリッドビット部22に
のみ出力する。
【0089】その結果、バリッドビット部22は演算装
置19から順次送られてくる読み出し要求とアドレスの
値に従ってバリッドビットアレイ403からバリッドビ
ットの値を制御装置404に読み出し、バリッドビット
の値が0か1かを比較判定することで、シミュレーショ
ン終了信号33が演算装置19に入力されるまでの間に
読み出し要求のなかったアドレスを例えば下位から順に
選別して、読み出し要求のなかったアドレスについては
アドレスの値をアドレスバス27に乗せてプログラム転
送装置21に転送し、またアドレスバス27に乗せられ
たアドレスの値をプログラム読み出し要求信号26と合
わせて内蔵メモリ20に転送する。
置19から順次送られてくる読み出し要求とアドレスの
値に従ってバリッドビットアレイ403からバリッドビ
ットの値を制御装置404に読み出し、バリッドビット
の値が0か1かを比較判定することで、シミュレーショ
ン終了信号33が演算装置19に入力されるまでの間に
読み出し要求のなかったアドレスを例えば下位から順に
選別して、読み出し要求のなかったアドレスについては
アドレスの値をアドレスバス27に乗せてプログラム転
送装置21に転送し、またアドレスバス27に乗せられ
たアドレスの値をプログラム読み出し要求信号26と合
わせて内蔵メモリ20に転送する。
【0090】内蔵メモリ20はプログラム読み出し要求
信号26を受けると、アドレスバス27の値に対応する
アドレスのデータをデータバス28によってプログラム
転送装置21に転送する。プログラム転送装置21は、
アドレスバス27とデータバス28によって転送された
アドレスとデータを対にしてデータバス30に出力し、
トレースメモリ29の空き領域にトレースを行う。
信号26を受けると、アドレスバス27の値に対応する
アドレスのデータをデータバス28によってプログラム
転送装置21に転送する。プログラム転送装置21は、
アドレスバス27とデータバス28によって転送された
アドレスとデータを対にしてデータバス30に出力し、
トレースメモリ29の空き領域にトレースを行う。
【0091】バリッドビット部22ですべてのバリッド
ビットの値が比較され、内蔵メモリ20に格納されてい
るすべてのアドレスのデータがトレースメモリ29にト
レースされたとき、マイクロコントローラはトレースモ
ードから抜け出し、シミュレーションを完了する。
ビットの値が比較され、内蔵メモリ20に格納されてい
るすべてのアドレスのデータがトレースメモリ29にト
レースされたとき、マイクロコントローラはトレースモ
ードから抜け出し、シミュレーションを完了する。
【0092】シミュレーションが完了した段階で、トレ
ースメモリ29にはソートプログラム31が作成され
る。ソートプログラム31は、内蔵メモリ20に格納さ
れているプログラムのアドレスとデータが対になったも
のを1つの単位とし、その単位を演算装置19によって
実行される順序に従って並べ替えたものであり、かつ内
蔵メモリ20に格納されているプログラムのすべてのア
ドレスとデータを有するものである。
ースメモリ29にはソートプログラム31が作成され
る。ソートプログラム31は、内蔵メモリ20に格納さ
れているプログラムのアドレスとデータが対になったも
のを1つの単位とし、その単位を演算装置19によって
実行される順序に従って並べ替えたものであり、かつ内
蔵メモリ20に格納されているプログラムのすべてのア
ドレスとデータを有するものである。
【0093】また、本発明の目的は、図22に示すよう
なマイクロコントローラにおいて、マイクロコントロー
ラの外部メモリからマイクロコントローラの内蔵メモリ
にプログラムを転送しながら演算装置によりプログラム
を実行することである。そこで図16に示すように、シ
ミュレーションを実行する段階でマイクロコントローラ
と外部メモリ34をデータバス35によりオンボード上
で接続し、プログラム転送装置21は、アドレスバス2
7とデータバス28によって転送されたアドレスとデー
タを対にしてデータバス35を介して外部メモリ34に
転送し、合わせてプログラム転送装置21から外部メモ
リ34にプログラム書き込み要求信号36を出力するこ
とで、シミュレーションを実行しながら直接、外部メモ
リ34にソートプログラム31を作成することも可能で
ある。
なマイクロコントローラにおいて、マイクロコントロー
ラの外部メモリからマイクロコントローラの内蔵メモリ
にプログラムを転送しながら演算装置によりプログラム
を実行することである。そこで図16に示すように、シ
ミュレーションを実行する段階でマイクロコントローラ
と外部メモリ34をデータバス35によりオンボード上
で接続し、プログラム転送装置21は、アドレスバス2
7とデータバス28によって転送されたアドレスとデー
タを対にしてデータバス35を介して外部メモリ34に
転送し、合わせてプログラム転送装置21から外部メモ
リ34にプログラム書き込み要求信号36を出力するこ
とで、シミュレーションを実行しながら直接、外部メモ
リ34にソートプログラム31を作成することも可能で
ある。
【0094】図15に示すように制御機器上のトレース
メモリ29にソートプログラム31を作成した場合、最
終的には作成されたソートプログラム31を図1の外部
メモリ5に書き込むという工数を必要とするが、図16
に示すソートプログラムの作成方法では直接外部メモリ
5に書き込むことでその工数を必要としないため、開発
効率の向上を図ることができる。
メモリ29にソートプログラム31を作成した場合、最
終的には作成されたソートプログラム31を図1の外部
メモリ5に書き込むという工数を必要とするが、図16
に示すソートプログラムの作成方法では直接外部メモリ
5に書き込むことでその工数を必要としないため、開発
効率の向上を図ることができる。
【0095】以上、本発明の第2の実施の形態における
プログラムソート方式によるプログラム変換の様子を図
18、図19、図20を用いて説明する。
プログラムソート方式によるプログラム変換の様子を図
18、図19、図20を用いて説明する。
【0096】図18は内蔵メモリ20に格納されている
プログラムである。内蔵メモリ20の先頭アドレス0x
0000番地にデータA、0x0001番地にデータ
B、0x0002番地にデータC、0x0003番地に
データD、0x0004番地にデータE、0x0005
番地にデータF、以降の各アドレスにもデータが格納さ
れているものとする。
プログラムである。内蔵メモリ20の先頭アドレス0x
0000番地にデータA、0x0001番地にデータ
B、0x0002番地にデータC、0x0003番地に
データD、0x0004番地にデータE、0x0005
番地にデータF、以降の各アドレスにもデータが格納さ
れているものとする。
【0097】図19は、上記シミュレーションにより、
図18に示す内蔵メモリ20に格納されているプログラ
ムに対して、演算装置19から読み出し要求のあったア
ドレスのデータを、読み出し要求のあった順番に並べた
ものである。演算装置19からの読み出し先アドレスは
ジャンプ命令等により必ずしも読み出し先のアドレスを
インクリメントしたものになるとは限らない。
図18に示す内蔵メモリ20に格納されているプログラ
ムに対して、演算装置19から読み出し要求のあったア
ドレスのデータを、読み出し要求のあった順番に並べた
ものである。演算装置19からの読み出し先アドレスは
ジャンプ命令等により必ずしも読み出し先のアドレスを
インクリメントしたものになるとは限らない。
【0098】図19で演算装置19は、アドレス0x0
000番地のデータA、0x0001番地のデータBを
実行した後、0x0004番地のデータE、0x000
5番地のデータFを実行している。
000番地のデータA、0x0001番地のデータBを
実行した後、0x0004番地のデータE、0x000
5番地のデータFを実行している。
【0099】図20はプログラムソート方式によって変
換されたソートプログラム31である。図19に示した
演算装置19の実行順序に従って、アドレスとデータの
対を並べ替えたアドレスの配列構造へと変換される。ソ
ートプログラム31はトレースメモリ29もしくは外部
メモリ34の先頭アドレスから順番に、データAとアド
レス番号0x0000の対、データBとアドレス番号0
x0001の対、データEとアドレス番号0x0004
の対、データFとアドレス番号0x0005の対という
配列構造に変換されて格納される。
換されたソートプログラム31である。図19に示した
演算装置19の実行順序に従って、アドレスとデータの
対を並べ替えたアドレスの配列構造へと変換される。ソ
ートプログラム31はトレースメモリ29もしくは外部
メモリ34の先頭アドレスから順番に、データAとアド
レス番号0x0000の対、データBとアドレス番号0
x0001の対、データEとアドレス番号0x0004
の対、データFとアドレス番号0x0005の対という
配列構造に変換されて格納される。
【0100】この実施の形態のマイクロコントローラに
よれば、並べ替えたプログラムを記憶しておくトレース
メモリ29または外部メモリ34と、トレースメモリ2
9または外部メモリ34にプログラムを転送するプログ
ラム転送装置21と、バリッドビット部22を設け、演
算装置19によって内蔵メモリ20から読み出されたプ
ログラムのプログラムアドレスを記憶し、記憶内容に基
づき演算装置19によって内蔵メモリ20から読み出さ
れたプログラムが初回読み出しであるかどうかを判定
し、初回読み出しであるときにのみ初回読み出しのプロ
グラムを内蔵メモリ20から読み出す読み出し命令を実
行するようにしたので、演算装置19によって実行され
た順番に内蔵メモリ20のプログラムを並べ替え、トレ
ースメモリ29または外部メモリ34に格納することを
可能とする。
よれば、並べ替えたプログラムを記憶しておくトレース
メモリ29または外部メモリ34と、トレースメモリ2
9または外部メモリ34にプログラムを転送するプログ
ラム転送装置21と、バリッドビット部22を設け、演
算装置19によって内蔵メモリ20から読み出されたプ
ログラムのプログラムアドレスを記憶し、記憶内容に基
づき演算装置19によって内蔵メモリ20から読み出さ
れたプログラムが初回読み出しであるかどうかを判定
し、初回読み出しであるときにのみ初回読み出しのプロ
グラムを内蔵メモリ20から読み出す読み出し命令を実
行するようにしたので、演算装置19によって実行され
た順番に内蔵メモリ20のプログラムを並べ替え、トレ
ースメモリ29または外部メモリ34に格納することを
可能とする。
【0101】
【発明の効果】以上のように、本発明の第1のマイクロ
コントローラによれば、第1のメモリにプログラムを転
送するプログラム転送装置を設け、バリッドビット部を
設けてプログラム転送装置によってプログラムが書き込
まれた第1のメモリのアドレスを記憶しておき、演算装
置から第1のメモリに対して与えられるアドレスが記憶
されていないときに演算装置をウェイトさせるように
し、プログラム転送装置では第2のメモリからの所定の
データ数のプログラムの転送が完了する毎に第2のメモ
リから転送されたプログラムを第1のメモリに転送し、
第1のメモリへのプログラムの転送期間中は演算装置を
ウェイトさせるようにしたので、プログラムを転送しな
がら同時にプログラムの実行も可能とする。
コントローラによれば、第1のメモリにプログラムを転
送するプログラム転送装置を設け、バリッドビット部を
設けてプログラム転送装置によってプログラムが書き込
まれた第1のメモリのアドレスを記憶しておき、演算装
置から第1のメモリに対して与えられるアドレスが記憶
されていないときに演算装置をウェイトさせるように
し、プログラム転送装置では第2のメモリからの所定の
データ数のプログラムの転送が完了する毎に第2のメモ
リから転送されたプログラムを第1のメモリに転送し、
第1のメモリへのプログラムの転送期間中は演算装置を
ウェイトさせるようにしたので、プログラムを転送しな
がら同時にプログラムの実行も可能とする。
【0102】また、本発明のプログラムソート方式を備
えた第2のマイクロコントローラによれば、バリッドビ
ット部を設け、演算装置によって第1のメモリから読み
出されたプログラムのプログラムアドレスを記憶し、記
憶内容に基づき演算装置によって第1のメモリから読み
出されたプログラムが初回読み出しであるかどうかを判
定し、初回読み出しであるときにのみ初回読み出しのプ
ログラムを第1のメモリから読み出す読み出し命令を実
行するようにしたので、演算装置によって実行された順
番に第1のメモリのプログラムを並べ替え、第2のメモ
リに格納することを可能とする。
えた第2のマイクロコントローラによれば、バリッドビ
ット部を設け、演算装置によって第1のメモリから読み
出されたプログラムのプログラムアドレスを記憶し、記
憶内容に基づき演算装置によって第1のメモリから読み
出されたプログラムが初回読み出しであるかどうかを判
定し、初回読み出しであるときにのみ初回読み出しのプ
ログラムを第1のメモリから読み出す読み出し命令を実
行するようにしたので、演算装置によって実行された順
番に第1のメモリのプログラムを並べ替え、第2のメモ
リに格納することを可能とする。
【0103】また、本発明のコンパイラによれば、ソー
スプログラムを複数のブロックに分割し、複数のブロッ
クにアドレスデータを付加し、複数のブロックの配列順
序を実行順序に基づいて並べ替えたバイナリデータを生
成することを可能とするものであり、バイナリデータを
第2のメモリに記憶し、第2のメモリの先頭アドレスか
らバイナリデータを第1のメモリに転送することで、演
算装置によって実行される順序で第1のメモリへのプロ
グラムの転送を可能とする。
スプログラムを複数のブロックに分割し、複数のブロッ
クにアドレスデータを付加し、複数のブロックの配列順
序を実行順序に基づいて並べ替えたバイナリデータを生
成することを可能とするものであり、バイナリデータを
第2のメモリに記憶し、第2のメモリの先頭アドレスか
らバイナリデータを第1のメモリに転送することで、演
算装置によって実行される順序で第1のメモリへのプロ
グラムの転送を可能とする。
【図1】本発明の第1の実施の形態におけるマイクロコ
ントローラの構成を示すブロック図である。
ントローラの構成を示すブロック図である。
【図2】本発明の第1の実施の形態におけるプログラム
転送装置の構成を示すブロック図である。
転送装置の構成を示すブロック図である。
【図3】本発明の第1の実施の形態における外部メモリ
内のデータの物理的順序の例を示す模式図である。
内のデータの物理的順序の例を示す模式図である。
【図4】本発明の第1の実施の形態におけるコンパイラ
の実施の形態を示す模式図である。
の実施の形態を示す模式図である。
【図5】本発明の第1の実施の形態におけるソースプロ
グラムの例を示す模式図である。
グラムの例を示す模式図である。
【図6】本発明の第1の実施の形態におけるプライオリ
ティを設定したソースプログラムのブロックを示す模式
図である。
ティを設定したソースプログラムのブロックを示す模式
図である。
【図7】本発明の第1の実施の形態のコンパイラによっ
て分割されたソースプログラムを示す模式図である。
て分割されたソースプログラムを示す模式図である。
【図8】本発明の第1の実施の形態における内蔵メモリ
に格納するバイナリデータを構成するブロックの物理的
配列順序の例を示す模式図である。
に格納するバイナリデータを構成するブロックの物理的
配列順序の例を示す模式図である。
【図9】本発明の第1の実施の形態におけるコンパイラ
により生成されたテーブルを示す模式図である。
により生成されたテーブルを示す模式図である。
【図10】本発明の第1の実施の形態におけるコンパイ
ラにより生成されたテーブルを示す模式図である。
ラにより生成されたテーブルを示す模式図である。
【図11】本発明の第1の実施の形態におけるコンパイ
ラにより生成されたテーブルを示す模式図である。
ラにより生成されたテーブルを示す模式図である。
【図12】本発明の第1の実施の形態におけるコンパイ
ラにより生成されたテーブルを示す模式図である。
ラにより生成されたテーブルを示す模式図である。
【図13】本発明の第1の実施の形態におけるコンパイ
ラにより処理された結果を示す模式図である。
ラにより処理された結果を示す模式図である。
【図14】本発明の第1の実施の形態におけるコンパイ
ラの処理態様を表すフローチャートである。
ラの処理態様を表すフローチャートである。
【図15】本発明の第2の実施の形態におけるプログラ
ムソート方式を備えたマイクロコントローラの構成を示
すブロック図である。
ムソート方式を備えたマイクロコントローラの構成を示
すブロック図である。
【図16】本発明の第2の実施の形態におけるプログラ
ムソート方式を備えたマイクロコントローラの他の構成
を示すブロック図である。
ムソート方式を備えたマイクロコントローラの他の構成
を示すブロック図である。
【図17】本発明の第2の実施の形態におけるバリッド
ビット部の構成を示すブロック図である。
ビット部の構成を示すブロック図である。
【図18】本発明の第2の実施の形態における内蔵メモ
リ内のプログラムの例を示す模式図である。
リ内のプログラムの例を示す模式図である。
【図19】本発明の第2の実施の形態におけるシミュレ
ーションによる演算装置のプログラム実行例を示す模式
図である。
ーションによる演算装置のプログラム実行例を示す模式
図である。
【図20】本発明の第2の実施の形態におけるソートプ
ログラムの例を示す模式図である。
ログラムの例を示す模式図である。
【図21】バリッドビット部の具体構成を示すブロック
図である。
図である。
【図22】従来のマイクロコントローラの構成を示すブ
ロック図である。
ロック図である。
1 演算装置
2 内蔵メモリ
3 プログラム転送装置
4 バリッドビット部
5 外部メモリ
6 データバス
7 アドレスバス
8 データバス
9 アドレスバス
10 データバス
11 読み出し要求信号
12 書き込み要求信号
13 ウェイト信号
14 コンパイラ
15 ソースプログラム
16 内蔵メモリ5に格納するバイナリデータ
17 並べ替え処理手段
18 外部メモリに格納するバイナリデータ
19 演算装置
20 内蔵メモリ
21 プログラム転送装置
22 バリッドビット部
23 データバス
24 アドレスバス
25 読み出し要求信号
26 読み出し要求信号
27 アドレスバス
28 データバス
29 トレースメモリ
30 データバス
31 ソートプログラム
32 シミュレーション開始信号
33 シミュレーション終了信号
34 外部メモリ
35 データバス
36 書き込み要求信号
100 ブロック開始位置を示すコメント文
101 ブロック終了位置を示すコメント文
200 書き込み単位ブロックに付加されたアドレス
データ 201 プライオリティ付きブロックに変換したバイ
ナリデータ 202 書き込み単位ブロック生成ステップ 203 並べ替えステップ 204 外部メモリに格納するバイナリデータ 301 カウンタ 302 アドレスバッファ 303 データバッファ 304 比較器 401 レジスタ 402 デコーダ 403 バリッドビットアレイ 404 制御装置 405 読み出し要求信号 406 書き込み要求信号 501 外部メモリ 502 内蔵メモリ 503 シーケンサ 504 アドレスカウンタ 505 セレクタ 506 演算装置
データ 201 プライオリティ付きブロックに変換したバイ
ナリデータ 202 書き込み単位ブロック生成ステップ 203 並べ替えステップ 204 外部メモリに格納するバイナリデータ 301 カウンタ 302 アドレスバッファ 303 データバッファ 304 比較器 401 レジスタ 402 デコーダ 403 バリッドビットアレイ 404 制御装置 405 読み出し要求信号 406 書き込み要求信号 501 外部メモリ 502 内蔵メモリ 503 シーケンサ 504 アドレスカウンタ 505 セレクタ 506 演算装置
─────────────────────────────────────────────────────
フロントページの続き
(51)Int.Cl.7 識別記号 FI テーマコート゛(参考)
G06F 12/00 560 G06F 12/08 505B 5B081
12/06 522 551Z
12/08 505 563
551 15/78 510C
563 9/06 610J
15/78 510 9/44 322F
Fターム(参考) 5B005 JJ11 MM01 MM21 NN12 NN22
NN71 UU15
5B033 AA04 BC05 BF00 BF02 DB01
DB12
5B060 CB01
5B062 CC02 FF02
5B076 BA04 BA05 BB00 BB16 BB17
5B081 CC00 CC21 CC27
Claims (10)
- 【請求項1】 プログラムを実行する演算装置と、 前記演算装置の実行するプログラムを記憶しておく第1
のメモリと、 前記演算装置から前記第1のメモリに対してプログラム
アドレスを指定する第1のアドレスバスと、 前記プログラムアドレスに対応したプログラムを前記第
1のメモリから前記演算装置に伝える第1のデータバス
と、 前記第1のメモリにプログラムを転送するプログラム転
送装置と、 前記プログラム転送装置から前記第1のメモリに対して
アドレスを指定する第2のアドレスバスと、 前記プログラム転送装置から前記第1のメモリに対して
プログラムを伝える第2のデータバスと、 前記プログラム転送装置によってプログラムが書き込ま
れた前記第1のメモリのアドレスを記憶しておき、前記
演算装置から前記第1のメモリに対して与えられるアド
レスが記憶されていないときに前記演算装置をウェイト
させるバリッドビット部と、 前記プログラム転送装置によって前記第1のメモリに転
送するプログラムを記憶しておく第2のメモリと、 前記第2のメモリからプログラム転送装置にデータを転
送する第3のデータバスとを備え、 前記プログラム転送装置は前記第2のメモリからの所定
のデータ数のプログラムの転送が完了する毎に前記第2
のメモリから転送されたプログラムを前記第1のメモリ
に転送し、前記第1のメモリへのプログラムの転送期間
中は前記演算装置をウェイトさせるようにしたことを特
徴とするマイクロコントローラ。 - 【請求項2】 前記プログラム転送装置は、前記第2の
メモリから転送される前記第1のメモリのアドレスを記
憶しておくアドレスバッファと、 前記第1のメモリに転送するプログラムを記憶しておく
データバッファと、 前記データバッファに転送されたデータ数をカウント
し、前記データバッファがバッファフルになる回数デー
タが転送されると、前記第1のメモリに対して書き込み
要求信号を発するとともに、前記演算装置に対して前記
第1のメモリからプログラムを読み出すことを待たせる
ウェイト信号を発するカウンタとからなることを特徴と
する請求項1記載のマイクロコントローラ。 - 【請求項3】 前記プログラム転送装置は、前記第2の
メモリから転送される前記第1のメモリのアドレスを記
憶しておくアドレスバッファと、 前記第1のメモリに転送するプログラムを記憶しておく
データバッファと、 前記データバッファに転送されたデータ数をカウントし
前記データバッファがバッファフルになる回数データが
転送されると、前記第1のメモリに対して書き込み要求
信号を発するとともに、前記演算装置に対して前記第1
のメモリからプログラムを読み出すことを待たせるウェ
イト信号を発するカウンタと、前記演算装置から前記第
1のメモリに対して読み出し要求が出た時に前記第1の
アドレスバスの値が前記アドレスバッファの値以上でか
つ前記アドレスバッファの値と前記カウンタの値の合計
値以下であるかどうかを比較する比較器とからなり、 前記比較器の比較結果を基に前記データバッファ中に前
記演算装置から読み出し要求のあったアドレスのプログ
ラムが存在することを検出した場合、読み出し要求のあ
ったアドレスのプログラムを前記データバッファから前
記演算装置に対して転送することを特徴とする請求項1
記載のマイクロコントローラ。 - 【請求項4】 前記バリッドビット部は、前記プログラ
ム転送装置から前記第1のメモリのアドレスに対してデ
ータの転送が完了したか否かを記憶する記憶手段と、前
記プログラム転送装置によって転送されていないアドレ
スに対して前記演算装置からのプログラムの読み出し要
求に対して読み出しを待たせるウェイト信号を発するウ
ェイト信号発生手段とを有していることを特徴とする請
求項1記載のマイクロコントローラ。 - 【請求項5】 プログラムを実行する演算装置と、 前記演算装置の実行するプログラムを記憶しておく第1
のメモリと、 前記演算装置から前記第1のメモリに対してプログラム
アドレスを指定する第1のアドレスバスと、 プログラムアドレスに対応したプログラムを前記第1の
メモリから前記演算装置に伝える第1のデータバスと、 プログラムの書き込みが可能な第2のメモリと、 前記第2のメモリにプログラムを転送するプログラム転
送装置と、 前記演算装置によって前記第1のメモリから読み出され
たプログラムのプログラムアドレスを記憶し、記憶内容
に基づき前記演算装置によって前記第1のメモリから読
み出されたプログラムが初回読み出しであるかどうかを
判定し、初回読み出しであるときにのみ初回読み出しの
プログラムを前記第1のメモリから読み出す読み出し命
令を実行するバリッドビット部と、 前記バリッドビット部からの前記読み出し命令に対応し
て前記第1のメモリと前記プログラム転送装置に対して
プログラムアドレスを伝える第2のアドレスバスと、 前記バリッドビット部の読み出し命令と前記第2のアド
レスバスのプログラムアドレスに応じて前記第1のメモ
リから前記プログラム転送装置に対してプログラムを伝
える第2のデータバスと、 前記プログラム転送装置から前記第2のメモリに対して
プログラムを伝える第3のデータバスとを備えたマイク
ロコントローラ。 - 【請求項6】 前記バリッドビット部は、前記第1のア
ドレスバスによって伝えられるプログラムアドレスを逐
次記憶するレジスタと、 前記第1のメモリのすべてのアドレスに一対一で対応し
書き換えが可能なビットの集合体であるバリッドビット
アレイと、 前記レジスタに記憶されたプログラムアドレスをデコー
ドしプログラムアドレスに対応する前記バリッドビット
アレイのビットを選択するデコーダと、 前記デコーダによって選択された前記バリッドビットア
レイのビットの値に応じて前記第1のメモリに対してプ
ログラム読み出し要求信号を発し、前記レジスタに対し
て前記レジスタから前記第2のアドレスバスへ前記レジ
スタが記憶しているプログラムアドレスを読み出すため
の読み出し要求信号を発し、選択された前記バリッドビ
ットアレイのビットに対して書き込み要求信号を発する
制御装置とを備え、 前記演算装置によって前記第1のメモリから読み出され
たプログラムアドレスを前記バリッドビットアレイで記
憶し、前記第1のメモリの各アドレスに格納されている
プログラムを1度だけ前記プログラム転送装置へ転送を
するように制御することを特徴とする請求項5記載のマ
イクロコントローラ。 - 【請求項7】 前記プログラム転送装置は、前記第2の
アドレスバスによって伝えられたプログラムアドレスと
前記第2のデータバスによって伝えられたプログラムを
対にして前記第3のデータバスに出力することを特徴と
する請求項5記載のマイクロコントローラ。 - 【請求項8】 前記第1のメモリは、前記演算装置から
の読み出し要求に対しては前記第1のアドレスバスに対
応するアドレスのプログラムを前記第1のデータバスに
出力し、前記バリッドビット部からの読み出し要求に対
しては前記第2のアドレスバスに対応するアドレスのプ
ログラムを前記第2のデータバスに出力することを特徴
とする請求項5記載のマイクロコントローラ。 - 【請求項9】 前記第2のメモリは、外部制御機器に備
えられ、予め定められた所定のプロトコルで書き込みが
行われることを特徴とする請求項5記載のマイクロコン
トローラ。 - 【請求項10】 ソースプログラムより第1のバイナリ
データを生成するデータ生成手段と、 前記第1のバイナリデータをソースプログラムによって
決定されるプライオリティを有する複数のブロックに分
割する分割手段と、 前記第1のバイナリデータ生成時に割り当てられるアド
レスデータを前記プライオリティを有する複数のブロッ
クにそれぞれ付加し、プライオリティとアドレスデータ
を有する複数のブロックを生成するブロック生成手段
と、 前記プライオリティとアドレスデータを有する複数のブ
ロックを一定のアドレス領域毎に分割することでプライ
オリティとアドレスデータを有する複数の単位ブロック
を生成する単位ブロック生成手段と、 前記プライオリティとアドレスデータを有する複数の単
位ブロックの物理的配列順序をプライオリティに従って
並べ替えて第2のバイナリデータを生成する並べ替え処
理手段とを備えたコンパイラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001347101A JP2003150382A (ja) | 2001-11-13 | 2001-11-13 | マイクロコントローラおよびコンパイラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001347101A JP2003150382A (ja) | 2001-11-13 | 2001-11-13 | マイクロコントローラおよびコンパイラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003150382A true JP2003150382A (ja) | 2003-05-23 |
Family
ID=19160159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001347101A Pending JP2003150382A (ja) | 2001-11-13 | 2001-11-13 | マイクロコントローラおよびコンパイラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003150382A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008065434A (ja) * | 2006-09-05 | 2008-03-21 | Matsushita Electric Ind Co Ltd | プログラム起動制御装置 |
JP2008234492A (ja) * | 2007-03-22 | 2008-10-02 | Sony Computer Entertainment Inc | コンパイラおよびコンパイル方法 |
-
2001
- 2001-11-13 JP JP2001347101A patent/JP2003150382A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008065434A (ja) * | 2006-09-05 | 2008-03-21 | Matsushita Electric Ind Co Ltd | プログラム起動制御装置 |
JP2008234492A (ja) * | 2007-03-22 | 2008-10-02 | Sony Computer Entertainment Inc | コンパイラおよびコンパイル方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6202106B1 (en) | Method for providing specific knowledge of a structure of parameter blocks to an intelligent direct memory access controller | |
CN102193885B (zh) | 支持虚拟信道的非挥发性存储器控制器 | |
US5377339A (en) | Computer for simultaneously executing instructions temporarily stored in a cache memory with a corresponding decision result | |
US20220237041A1 (en) | Parallel processing system performing in-memory processing | |
US20040054864A1 (en) | Memory controller | |
JPH05205005A (ja) | ロジック・シミュレーション・マシン用ホスト・インタフェース | |
CN102855199A (zh) | 数据处理设备和数据处理装置 | |
CN101421705A (zh) | 具有高储存容量的多媒体卡 | |
CN108538332B (zh) | 与非门闪存的读取方法 | |
US6883041B2 (en) | Direct memory access device | |
JP2009181579A (ja) | 機能を呼び出す方法、サブシステムおよびシステム | |
JP2003150382A (ja) | マイクロコントローラおよびコンパイラ | |
CN116661825A (zh) | 一种实现在线升级的系统 | |
JPH06103225A (ja) | チェーン式dma方式及びそのためのdmaコントローラ | |
JPH05314248A (ja) | レジスタ・アクセス制御方式 | |
JP4363431B2 (ja) | データ転送方式 | |
JP5025521B2 (ja) | 半導体装置 | |
JP2002278774A (ja) | プロセッサ内の機能単位の制御時に命令語を生成する方法と装置 | |
EP0817085A1 (en) | Addressing means and method | |
JPH04104345A (ja) | Ecc機構付主記憶装置の部分書き換えデータの書き込み制御方式 | |
JP2594611B2 (ja) | Dma転送制御装置 | |
JPH0567035A (ja) | Dma転送におけるデータアライメント方式 | |
JPH10161927A (ja) | ロードバッファ装置 | |
JPH05127903A (ja) | 並列処理マイクロプロセツサ | |
JPH0561761A (ja) | 主記憶制御方式 |