(57)【要約】【課題】プログラムメモリを削減し、処理性能を低下させないプログラムダウンロード方式を実現し、プログラムの逐次ダウンロードを容易にする。【解決手段】第１の記憶手段に格納されているプログラムが第２の記憶手段のどのアドレスに格納されるかを予め記録し、管理情報テーブルに記憶しておく。さらにプロセッサのプログラムを動的に入れ換えるために、第２の記憶手段を独立にアクセス可能な複数のメモリマクロに分割して構成する。また、プログラムの実行とダウンロードとが同一のメモリマクロに対してなされたときはこれを検出し、プログラムのダウンロードの中断を行う。これらにより、プログラムの逐次ダウンロードが可能になるため、第２の記憶手段の容量を削減することが出来、低コスト、低消費電力を図ることが出来る。【選択図】　図１
2004013506.tif 000002
【特許請求の範囲】
【請求項１】
命令コードやデータから構成される複数のプログラムを記憶する第１の記憶手段と、
前記第１の記憶手段からダウンロードされたプログラムを記憶する第２の記憶手段と、
前記第２の記憶手段に記憶されたプログラムを読み出し、実行する命令実行手段と、
前記第１の記憶手段に記憶されている各プログラムが、前記第２の記憶手段のどのアドレスに記憶されるかの情報が予め記録された管理情報メモリと、
前記管理情報メモリに記録されているアドレス情報に基づいて、前記第１の記憶手段から前記第２の記憶手段への、プログラムのダウンロードを制御する転送制御手段と、
を備えたプロセッサのダウンロード装置。
【請求項２】
命令コードやデータから構成されるプログラムを記憶する第１の記憶手段と、
前記第１の記憶手段からダウンロードされたプログラムを記憶する第２の記憶手段と、
前記第２の記憶手段に記憶されたプログラムを読み出し、実行する命令実行手段と、
前記第１の記憶手段から前記第２の記憶手段への、プログラムのダウンロードを制御する転送制御手段とを備え、
前記第１の記憶手段はさらに、前記第１の記憶手段に記憶されている各プログラムが、前記第２の記憶手段のどのアドレスに記憶されるかの情報を予め記録しており、
前記転送制御手段は、前記第１の記憶手段に記録されたアドレス情報に基づいて、
プログラムのダウンロードを制御すること
を特徴とするプロセッサのダウンロード装置。
【請求項３】
前記第２の記憶手段は、独立してアクセス可能な複数のメモリマクロに分かれて構成されていること
を特徴とする請求項１または２いずれかに記載のプロセッサのダウンロード装置。
【請求項４】
前記転送制御手段は、
ダウンロードされているプログラムの前記第１の記憶手段における終了アドレスと、前記第１の記憶手段からダウンロード出力されるプログラムの命令コードやデータの、前記第１の記憶手段におけるアドレスとを比較し、一致か否かの比較結果を出力する第１の比較器と、
前記比較結果が、一致したことを示すものであるときにはプログラムのダウンロードを終了し、一致したことを示すものでないときにはダウンロードを続けるように制御を行う制御部と
を備えていることを特徴とする請求項３記載のプロセッサのダウンロード装置。
【請求項５】
前記転送制御手段は、
第２の記憶手段における所定のしきい値アドレスと、前記命令実行手段で実行されているプログラムの命令コードやデータの、前記第２の記憶手段上でのアドレスとを比較し、一致か否かの比較結果を出力する第２のアドレス比較器とを備え、
前記比較結果が、一致したことを示すものであるときには、次に実行すべきプログラムのダウンロードを開始する信号を出力する制御部とを備え、
前記しきい値アドレスは、現在実行しているプログラムの実行が終了するまでに、前記次に実行すべきプログラムのダウンロードが終了するように決定されること
を特徴とする請求項３記載のプロセッサのダウンロード装置。
【請求項６】
前記命令実行手段によってプログラムが実行されると、所定値のカウントを始めるタイマをさらに備え、
前記タイマのカウントが終わると、次に実行すべきプログラムのダウンロードが開始され、
前記所定値は、現在実行しているプログラムの実行が終了するまでに、次に実行すべきプログラムのダウンロードが終了するように決定されること
を特徴とする請求項３記載のプロセッサのダウンロード装置。
【請求項７】
前記転送制御手段は、
プログラムの実行とダウンロードが、前記複数のメモリマクロのうち同一のメモリマクロに対してされているか否かを検出すること
を特徴とする請求項３記載のプロセッサのダウンロード装置。
【請求項８】
前記転送制御手段は、
プログラムの実行とダウンロードが、前記複数のメモリマクロのうち同一のメモリマクロに対してされているときには、プログラムのダウンロードに優先して、プログラムの実行を行うこと
を特徴とする請求項７記載のプロセッサのダウンロード装置。
【請求項９】
前記転送制御手段は、
プログラムの実行とダウンロードが、前記複数のメモリマクロのうち同一のメモリマクロに対してされているときには、プログラムの実行を終了させること
を特徴とする請求項７記載のプロセッサのダウンロード装置。
【請求項１０】
前記管理情報テーブルは、前記第１の記憶手段に格納されている各プログラムが、前記第２の記憶手段において、有効となっているか否かを示す有効ビットをさらに記録していること
を特徴とする請求項３記載のプロセッサのダウンロード装置。
【請求項１１】
転送制御手段によって、第１の記憶手段から第２の記憶手段への、プログラムのダウンロードが制御されるプロセッサのダウンロード制御方法であって、
前記第１の記憶手段に、第１のリードアドレスが出力されるステップと、
前記第１のリードアドレスが示す前記第１の記憶手段における領域に格納された命令コードやデータが、前記第２の記憶手段へと出力されるステップと、
予め管理情報テーブルに記録された、前記第１のリードアドレスとライトアドレスとの対応に関する情報に基づいて、前記第２の記憶手段に、ライトアドレスが出力されるステップと、
前記ライトアドレスが示す前記第２の記憶手段における領域に、前記命令コードやデータが書き込まれるステップと、
を備えるプロセッサのダウンロード装置の制御方法。
【請求項１２】
転送制御手段によって、第１の記憶手段から複数のメモリマクロに分かれて構成されている第２の記憶手段への、プログラムのダウンロードが制御され、
前記第２の記憶手段に格納されたプログラムが、命令実行手段により実行されるプロセッサのダウンロード装置の制御方法であって、
前記命令実行手段におけるプログラムの実行と、前記第１の記憶手段から前記第２の記憶手段へのプログラムのダウンロードが、前記複数のメモリマクロのうち同一のメモリマクロに対して行われているか否かを検出すること
を特徴とするプロセッサのダウンロード装置の制御方法。
【請求項１３】
前記管理情報テーブルは、前記第１の記憶手段に格納されている各プログラムが、前記第２の記憶手段において、有効となっているか否かを示す有効ビットをさらに記憶していること
を特徴とする請求項１１または１２いずれかに記載のプロセッサのダウンロード装置の制御方法。
【請求項１４】
プログラムの実行とダウンロードが、前記複数のメモリマクロのうち同一のメモリマクロに対してされているときには、プログラムの実行を優先して行うこと
を特徴とする請求項１２記載のプロセッサのダウンロード装置の制御方法。
【請求項１５】
プログラムの実行とダウンロードが、前記複数のメモリマクロのうち同一のメモリマクロに対してされているときには、プログラムの実行を強制終了すること
を特徴とする請求項１２記載のプロセッサのダウンロード装置の制御方法。
【請求項１６】
前記転送制御手段が、前記管理情報テーブルに基づいて、ダウンロードの開始タイミングを算出し、
前記ダウンロードの開始タイミングは、現在実行しているプログラムの実行が終了するまでに、次に実行すべきプログラムのダウンロードが終了するように決定されること
を特徴とする請求項１３記載のプロセッサのダウンロード装置の制御方法。
【請求項１７】
予め複数のプログラムの実行シーケンスが定まっている場合に、前記管理情報テーブルに基づいて、プログラムの命令解析時に、ｎ＋１（ｎは自然数）番目に実行されるプログラムのダウンロードを開始する命令を、ｎ番目に実行されるプログラムの所定の位置に書き込むことを特徴とする請求項１２記載のプロセッサのダウンロード装置の制御方法。
【請求項１８】
前記所定の位置は、ｎ番目に実行されるプログラムの実行が終了するまでに、ｎ＋１番目に実行されるプログラムのダウンロードが終了するように決定されること
を特徴とする請求項１７記載のプロセッサのダウンロード装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプログラムやデータを書換え可能なメモリで構成したプロセッサのダウンロード技術に関するもので、更に詳述すれば、プログラムやデータの変更容易性を高めるとともに、メモリ容量を削減するために、必要最低容量のメモリを搭載し、逐次必要となる容量のみプログラムやデータを入れ換えるためのものである。
【０００２】
【従来の技術】
従来のプロセッサの構成について図面を参照しながら説明する。
【０００３】
図１は従来のプロセッサの構成例を示した図である。但し、ここで管理情報メモリ１０５及び選択信号１１６については本説明では用いない。
【０００４】
第１の記憶手段１００はプロセッサが実行するプログラムを保持し、プログラムをダウンロードする場合には、第２の記憶手段１０１へとプログラムが出力される。第２の記憶手段１０１には第１の記憶手段１００から出力されたプログラムが書き込まれ、プロセッサの命令実行時には命令実行手段１０３へとプログラムが出力される。通常、第１の記憶手段１００はマスクＲＯＭ、フラッシュメモリ等で構成され、第２の記憶手段１０１と比べると容量が大きい。又、第２の記憶手段１０１は書き換え可能なもの（ＳＲＡＭ、ＤＲＡＭ、フラッシュメモリ等）である必要がある。
【０００５】
まず、プロセッサが第１の記憶手段１００から第２の記憶手段１０１へプログラムをダウンロードする場合の動作について説明する。転送制御手段１０２は第１の記憶手段１００から第２の記憶手段１０１へのプログラムのダウンロードを制御するものであり、プログラムの転送要求１０４が入力されると、第１の記憶手段１００へ第１のリード信号１１２及び第１のリードアドレス１１０を出力する。さらに、転送制御手段１０２は第２の記憶手段１０１にライト信号１１３とライトアドレス１１１を出力する。第１のリード信号１１２を受け取った第１の記憶手段１００は第１のリードアドレス１１０に該当する命令コード１１７を出力する。ライト信号１１３を受け取った第２の記憶手段１０１はライトアドレス１１１に該当するアドレスに、第１の記憶手段１００から出力された命令コード１１７を書き込む。上記の動作をダウンロードすべきプログラムの終了まで繰り返すことにより、プログラムのダウンロードを行う。
【０００６】
次に、プロセッサが通常の命令実行を行う場合について説明する。ここでプロセッサが実行すべきプログラムはすでに第２の記憶手段１０１に保持されているものとする。命令実行手段１０３は第２の記憶手段から出力されるプログラムの実行を行うものであり、命令実行時には第２の記憶手段１０１に第２のリード信号１１５及び第２のリードアドレス１１４を出力する。第２のリード信号１１５を受け取った第２の記憶手段１０１は第２のリードアドレス１１４に該当する命令コード１１８を命令実行手段１０３へと出力する。命令実行手段１０３はこの命令コード１１８をデコードし、実行する。
【０００７】
以上のプログラムのダウンロード、命令実行を繰り返し行いながらプロセッサは動作する。
【０００８】
【発明が解決しようとする課題】
近年の携帯電話システムでは、従来の音声を中心にした通信から、ｉモードに代表されるように着信メロディーや画像データ等のデータ通信が主流となりつつあり、携帯電話システムにおけるプロセッサのプログラムはパソコン並の複雑さやプログラムサイズとなっている。しかし、サイズやコスト等の制約から十分な容量の第２の記憶手段を搭載することができず、プログラムを１度にダウンロードして実行するのではなく、ダウンロードしながら実行する必要性が生じている。
【０００９】
しかしながら、従来のようなプロセッサの構成では、プログラムのダウンロード中にプログラムの実行を行うことができず、プロセッサの実行を停止してダウンロードを行う必要があり、処理効率を低下させているといった第１の問題点がある。
【００１０】
また、プログラムが大規模化した場合に、そもそも実行する１つのプログラム全体を第２の記憶手段に書き込むことが難しい場合もある。すなわち、命令実行を行う第２の記憶手段上のアドレス領域を確保しながら、大規模な命令プログラム全体を書き込む第２の記憶手段上のアドレス領域を確保できないといった第２の問題がある。
【００１１】
さらに、複数のプログラムをダウンロードした場合に、第１の記憶手段と第２の記憶手段でのアドレスの対応が複雑化してしまうといった第３の問題がある。第３の問題点はプログラムの実行とダウンロードを並列に行った場合には、さらに対応が複雑化するものと考えられる。
【００１２】
本発明は、上記の課題を鑑みて、限られたメモリ（記憶手段）資源を有効に活用しつつ、かつ簡単な方法でプログラムの各メモリ上のアドレスを管理して、プログラムのダウンロードと命令実行を同時に行うプロセッサのダウンロード装置及び制御方法を提供しようとするものである。
【００１３】
【課題を解決するための手段】
上記課題を解決するために、本発明は、第１の記憶手段に記憶されているプログラムが、ダウンロードによって第２の記憶手段のどのアドレスに記憶されるかを予め記録した管理情報テーブルを用意し、転送制御手段はこの管理情報テーブルに基づいて、プログラムを第２の記憶手段のどのアドレスにダウンロードするかを決定する。管理情報テーブルは管理情報メモリに記憶しておいても良いし、管理情報メモリは設けずに第１の記憶手段の特定のアドレスに記憶しておくこともできる。
【００１４】
この管理情報テーブルによって、第１の記憶手段と第２の記憶手段でのアドレスの対応が複雑化することはない。
【００１５】
さらに本発明は、第２の記憶手段を、独立してアクセス可能な複数のメモリマクロに分けて構成している。
【００１６】
これによってプログラムの実行とダウンロードを同時に行うことができる。従来においては、第２の記憶手段を複数のメモリマクロに分けて構成することによって、第１の記憶手段と第２の記憶手段のアドレスの対応がより複雑化する可能性があったが、本発明においては、管理情報テーブルを予め用意するためにアドレスの対応は複雑化しない。
【００１７】
さらに本発明において、転送制御手段は、現在ダウンロードされているプログラムの終了アドレスを保持する転送終了レジスタを備えている。この転送終了レジスタの保持するアドレスと、ダウンロード中の命令コードやデータのアドレスとを比較することにより、ダウンロードの終了を判定する。
【００１８】
さらに本発明においては、管理情報テーブルに基づいて、現在実行しているプログラムが終了するまでに、次に実行すべきプログラムのダウンロードが終了するような第２の記憶手段におけるアドレスを、しきい値アドレスとしてしきい値アドレスレジスタに保持する。このしきい値アドレスと現在実行しているプログラムの第２の記憶手段におけるアドレスとの比較を行い、一致した場合には次に実行すべきプログラムのダウンロードを開始する。
【００１９】
これによって、プログラムのダウンロードによる待ち時間なく、従って命令実行能力を低下させることなく一連のプログラム全体の実行をすることができる。
【００２０】
また、プログラムの実行とともに、所定値からカウントを始めるタイマーを設けて、タイマのカウントが終了するとプログラムのダウンロードを開始するようにしても良い。これによって、プログラムのダウンロードによる待ち時間なく、従って命令実行能力を低下させることなく一連のプログラム全体の実行をすることができる。
【００２１】
さらに本発明においては、プログラムの実行とダウンロードが同一のメモリマクロに対してされているか否かの検出を行う。プログラムの実行とダウンロードが同一のメモリマクロに対してされているときには、プログラムのダウンロードに優先して命令実行を行う。
【００２２】
これによって、プログラムの実行とダウンロードが同一のメモリマクロに対してされるような異常事態にも対応することができる。
【００２３】
また、プログラムの実行とダウンロードが同一のメモリマクロに対してされているときには、プログラムの実行を強制終了しても良い。
【００２４】
また、本発明の管理情報テーブルに、第１の記憶手段に格納されているプログラムが、第２の記憶手段において有効であるか否かを示す有効ビットを追加しても良い。ここで有効とは、プログラムがダウンロードあるいは命令実行されていることをいう。
【００２５】
これによって、プログラムの実行とダウンロードが同一のメモリマクロにされているか否かを容易に検出することができる。また、現在第２の記憶手段に実装されているプログラムが何かを知ることができるので、プログラムのソースコードデバッグを容易に行うことができる。
【００２６】
さらに、予めプログラムの実行シーケンスが決まっているような場合には、コンパイルやアセンブル等のプログラムの静的解析時に、管理情報テーブルに基づいて、ｎ＋１番目に実行されるプログラムのダウンロードを開始する命令を、ｎ番目に実行されるプログラムに記述しておく。
【００２７】
これによって、新たなレジスタやタイマーを設けずとも、適当な時点でプログラムのダウンロードを開始することができる。
【００２８】
【発明の実施の形態】
本発明の実施の形態において、“プログラム”とは音声データや画像データ等を含み、第１の記憶手段に記憶されている全てを指す概念として定義する。
【００２９】
（実施の形態１）
本発明におけるプロセッサのダウンロード装置及び制御方法の実施の形態１について図面を参照しながら説明をする。
【００３０】
図２は本実施の形態におけるプロセッサのダウンロード装置のプログラムの管理情報テーブルを表わすものである。
【００３１】
プログラムは図２のように、予めプログラム名に対応して番号付けされ、第１の記憶手段上でのアドレスがソースコード情報として記録されている。本実施の形態においては、開始アドレスと終了アドレスによってプログラムが格納されている第１の記憶手段上でのアドレスを特定している。また、プログラムをダウンロードしたときに第２の記憶手段のどこに格納されるかもデスティネーション情報として記録されている。デスティネーション情報についてもソースコード情報と同様に開始アドレスと終了アドレスによって、プログラムが第２の記憶手段のどのアドレスに格納されるかを特定している。すなわち、プログラムは第１の記憶手段上でのアドレスだけでなく、第２の記憶手段のどのアドレスに格納されるべきかも予め決定され、管理されている。これによって、複数のプログラムがダウンロードされた場合においても、第１、第２の記憶手段上でのアドレスの対応が複雑化してしまうおそれがない。
【００３２】
次に、図１を用いて本実施の形態におけるプロセッサの構成について説明を加える。プロセッサは従来と同様に第１の記憶手段１００、第２の記憶手段１０１、転送制御手段１０２、命令実行手段１０３を備えている。従来との大きな構成上の違いは上記のプログラムの管理情報テーブルを格納した管理情報メモリ１０５を備え、第２の記憶手段１０１が独立にアクセス可能な複数のメモリマクロに分かれていることである。本実施の形態では第２の記憶手段が２つのメモリマクロから構成されているものとして説明を行う。本実施の形態におけるプロセッサのダウンロード装置の動作について、以下にその詳細について説明する。
【００３３】
従来と同様に転送要求１０４によってプログラムのダウンロードが開始されると、転送制御手段１０２は第１の記憶手段１００に第１のリードアドレス１１０と第１のリード信号１１２を出力し、第２の記憶手段１０１にライト信号１１３、ライトアドレス１１１を出力する。本実施の形態においてはさらに、選択信号１１６を第２の記憶手段１０１へと出力する。選択信号１１６によってどちらのメモリマクロにプログラムがダウンロードされるかが決定される。本実施の形態においては管理情報メモリ１０５によって、第１の記憶手段１００に格納されたプログラムが第２の記憶手段１０１のどのアドレスに格納されるかが予め決まっている。従って、ライトアドレス１１１及び選択信号１１６は管理情報メモリ１０５を参照することによって決定される。本実施の形態の説明においては、第２のメモリマクロにプログラムがダウンロードされる場合を例にとって説明する。
【００３４】
図３は本実施の形態における第２の記憶手段１０１の構成を示した図である。第２の記憶手段は２つのメモリマクロに分かれて構成されている。第１の記憶手段１００の動作としては、従来の動作と変わりはないものとする。転送制御手段１０２から出力されたライト信号１１３、ライトアドレス１１１、選択信号１１６、命令実行手段１０３から出力された第２のリード信号１１５、第２のリードアドレス１１４は第１の選択回路３０、第２の選択回路３１へと入力されている。ここで本実施の形態においては、ダウンロードされるプログラムが第２の記憶手段１０１のどのアドレスに格納されるかが予め決まっているので、ライトアドレス１１１はそのアドレスに対応した値となる。当然、どちらのメモリマクロが選択されるかも予め決定されており、プログラムの管理情報テーブルに記録されている。本実施の形態においては第２のメモリマクロ３３へとプログラムはダウンロードされる。選択信号１１６によって、第２のメモリマクロが選択されると、第２の選択回路３１は第２のメモリマクロ３３へ入力される第２のリード信号１１５を無効にし（３８）、ライト信号１１３を有効にする（３９）。また、第２の選択回路３１は第２のメモリマクロ３３に出力するアドレスとして、ライトアドレス１１１を選択し、第２のメモリマクロ３３へと出力する（３７）。これによって、第１の記憶手段１００で第１のリードアドレス１１０に該当するアドレスに格納されたデータ１１７が、第２のメモリマクロ３３のライトアドレス１１１へと書き込まれる。
【００３５】
次にプログラムのダウンロードと同時に、命令実行を行う場合について説明する。本実施の形態においては、第２の記憶手段１０１が独立にアクセス可能な２つのメモリマクロに分かれて構成されているので、第２のメモリマクロ３３にプログラムのダウンロードをしている場合は、第１のメモリマクロ３２に格納されているプログラムについて命令実行を行うことができる。第１のメモリマクロ３２に格納されているプログラムを実行する場合、第１の選択回路３０は第１のメモリマクロ３２に入力される第２のリード信号１１５を有効にし（３５）、ライト信号１１３を無効にする（３６）。また、第１の選択回路３０は第１のメモリマクロ３２に出力するアドレスとして、第２のリードアドレス１１４を選択し、第１のメモリマクロ３２へと出力する（３４）。第１のメモリマクロ３２は第２のリードアドレス１１４に該当する命令コード１１８を命令実行手段１０３へと出力する。
【００３６】
通常の命令実行についてもダウンロードと同時に命令実行を行う場合と変わりはない。但し、この場合においてはどちらのメモリマクロに対しても命令実行を行うことができる。
【００３７】
図４は本実施の形態における転送制御手段１０２の構成例を示した図である。転送制御手段１０２の転送終了アドレスレジスタ４４には、予め第１の記憶手段１００上でのダウンロードの終了アドレス４０１が保持されている。第１のアドレス比較器４２はこのダウンロードの終了アドレス４０１と第１のリードアドレス１１０が一致しているか否かの比較を行い、第１の比較結果４０２を制御部４３へと出力する。第１の比較結果４０２が一致を示すものでなかった場合、制御部４３は次の命令コードを転送するために、第１のアドレスカウンタ４０及び第２のアドレスカウンタ４１に対してアドレス更新信号４００を出力する。アドレス更新信号４００を受けた第１のアドレスカウンタ４０は、第１のリードアドレス１１０を出力する。アドレス更新信号４００を受けた第２のアドレスカウンタ４１はライトアドレス１１１を出力する。制御部４３は同時に第１のリード信号１１２とライト信号１１３を出力する。第１の比較結果４０２が一致を示すものであった場合には、制御部４３はアドレス更新信号４００を出力せず、プログラムのダウンロードは終了する。
【００３８】
なお、本実施の形態におけるプログラムの管理情報テーブルは、第１の記憶手段と第２の記憶手段におけるアドレスの対応関係に関する情報を予め記録しておくことが重要であり、その記録形式は問わない。例えば、プログラムの開始アドレスと終了アドレスではなく、開始アドレスとプログラムのサイズによって、第１の記憶手段１００、第２の記憶手段１０１上の領域を特定するようにしても良い。
【００３９】
また、本実施の形態においては、転送制御手段１０２が選択信号１１６を出力しなくて、第１の選択回路３０、第２の選択回路３１が、ダウンロードされてきたプログラムのアドレスから、どちらのメモリマクロに格納されるかを決定するようにしても良い。予め、選択回路に第２の記憶手段でのアドレスとメモリマクロとの対応関係を保持しておくことにより、これは実現される。
【００４０】
さらに、本実施の形態におけるプログラムの管理情報メモリはなく、第１の記憶手段１００の特定のアドレスにプログラムの管理情報テーブルを記憶するようにしても良い。こうすることにより新たに別のメモリを用意する必要はない。
【００４１】
また、プログラムが第２の記憶手段１０１の１つのメモリマクロに格納できないほどに大きい場合には、いくつかのプログラムに分割して第１の記憶手段１００に格納しておくことができる。図５はこのような場合におけるプログラムの管理情報テーブルを表わしたものであり、図２に示されたプログラムのうちの音楽２、画像３についてプログラムが分割されている。分割されたプログラムは分割単位ごとに、ダウンロードされ、実行される。
【００４２】
本実施の形態においてはプログラムのダウンロードを行いながら、プログラムの実行をすることもできるので、分割されたプログラムのうちの１つを実行しながら、次に実行すべきプログラムのダウンロードを別のメモリマクロへと行うこともできる。分割されたプログラムではなくとも、予め実行される順序の決まった一連のプログラム群における１つのプログラムを実行しながら、次に実行すべきプログラムのダウンロードを行い、プログラム実行の準備をしておくこともできる。
【００４３】
また、メモリマクロの分割は２つに限定されるものではなく、２以上のいくつに分割しても構わない。分割の数を増やすことにより、より多くの処理を並列に行うことができる。
【００４４】
（実施の形態２）
本発明におけるプロセッサのダウンロード装置及び制御方法の実施の形態２について図面を参照しながら説明をする。本実施の形態では転送制御手段１０３の構成が実施の形態１と異なっている。転送制御手段１０３以外の構成は実施の形態１と同様である。
【００４５】
図６は本発明の実施の形態２におけるプロセッサのダウンロード装置の転送制御手段１０２の構成の一例を示す図である。図４と同一の構成要素については同一の符号を付している。
【００４６】
本実施の形態が実施の形態１と異なるのは、ダウンロード開始タイミング（転送要求１０４）を生成するために、しきい値アドレスレジスタ６１０を新たに設けたことである。プログラムを実行している間、しきい値アドレスレジスタ６１０は自らに書き込まれているしきい値アドレス６１１を第２のアドレス比較器６５へと出力する。第２のアドレス比較器６５はしきい値アドレス６１１と第２のリードアドレス１１４とが一致しているか否かの比較を行い、第２の比較結果６０３を制御部４３へ出力する。第２の比較結果が、第２のリードアドレス１１４がしきい値アドレス６１１と一致したものであるとき、制御部４３は新しいプログラムの転送を開始する。すなわち、本実施の形態においてはこの第２の比較結果６０３を転送要求１０４として用いている。
【００４７】
本発明においては、プログラムの管理情報テーブルにそれぞれのプログラムの開始アドレス、終了アドレスが記録されている。この管理情報テーブルの情報、プログラムの転送速度、実行速度を参照することにより、現在実行しているプログラムの実行が終了するまでに新しいプログラムのダウンロードが終了するような値を、しきい値アドレス６１１として算出できる。しきい値アドレスレジスタ６１０は、このしきい値アドレス６１１を保持する。これにより、現在のプログラム実行が終了した時点では、すでに次に実行すべきプログラムのダウンロードが終了している。
【００４８】
図７（ａ）は本実施の形態におけるタイムチャートを示した図である。本実施の形態においてはプログラムＡの実行終了までにプログラムＢのダウンロードを終了する。プログラムＡが実行を開始すると（ｔ０）、しきい値アドレスレジスタ６１０はプログラムＡの実行が終了する（ｔ３）までに、プログラムＢのダウンロードが終了するアドレス（Ｘ‘３４００’）をしきい値アドレス６１１として保持する。第１のリードアドレスがしきい値アドレス６１１に到達すると（ｔ１）、プログラムＢのダウンロードが開始される。プログラムＢはプログラムＡの実行が終了するまでに、ダウンロードが完了する（ｔ２）。
【００４９】
プログラムＡの実行時間（ｔ３−ｔ０）がプログラムＢのダウンロード時間（ｔ２−ｔ１）よりも長いような場合は、プログラムＡの実行と同時にプログラムＢのダウンロードを開始するようにしきい値アドレスレジスタ６１０の値を設定する。図７（ｂ）はこの場合におけるタイムチャートを示した図である。プログラムＡの実行とプログラムＢのダウンロードは同時に行われている。
【００５０】
本実施の形態により、例えばプログラムが分割されている場合等、プログラムの実行、ダウンロードのシーケンスが決まっているよう場合に、プログラムのダウンロードによる待ち時間なく、従って命令実行能力を低下させることなく一連のプログラム全体の実行をすることができる。
【００５１】
また、プログラムＡの実行時間が（ｔ３−ｔ０）がプログラムＢのダウンロード時間よりも長いような場合において、第２の記憶手段１０１が３つ以上のメモリマクロに分かれて構成されているならば、プログラムＡの直前に実行されているプログラムＣのアドレスをしきい値アドレス６１１としても良い。２つ以上前に実行されるプログラムのアドレスをしきい値アドレスとして保持することにより、プログラムのダウンロード時間が直前のプログラムの実行時間よりも長いような場合においても、待ち時間なく一連のプログラムの実行をすることが出来る。
【００５２】
（実施の形態３）
本発明におけるプロセッサのダウンロード装置及び制御方法の実施の形態３について図面を参照しながら説明をする。本実施の形態の特徴はダウンロード開始タイミング（転送要求１０４）を生成するために、新たにタイマーを設けたことであり、それ以外の構成要素は実施の形態１と同様である。
【００５３】
図８は本発明の実施の形態３におけるプロセッサのダウンロード装置の構成図である。図１と同一の構成要素については同一の符号を付している。
【００５４】
命令実行手段１０３はプログラム実行開始時にタイマー起動信号８０２をタイマー８０１に出力する。タイマー起動信号８０２を受け取ったタイマー８０１は、命令実行手段１０３と共通のクロック８０３の入力に従って、予め設定された初期値よりダウンカウントを始める。ダウンカウントをし終えると、タイマー８０１は新たなプログラムを転送するための転送要求１０４を転送制御手段１０２へ出力する。転送要求１０４を受けた転送制御手段１０２は新たなプログラムのダウンロードを開始する。
【００５５】
実施の形態２と同様に、本発明においては、プログラムの管理情報テーブルにそれぞれのプログラムの開始アドレス、終了アドレスが記録されている。従って実施の形態２と同様に、これを参照することにより、現在実行しているプログラムの実行が終了するまでに新しいプログラムのダウンロードが終了するような値を、ダウンカウントの初期値として設定することができる。
【００５６】
本実施の形態により、実施の形態２と同様の効果を得ることができる。
【００５７】
（実施の形態４）
本発明におけるプロセッサのダウンロード装置及び制御方法の実施の形態４について図面を参照しながら説明をする。本実施の形態の特徴は、プログラムの実行とダウンロードが同一のメモリマクロにされた場合の異常を検出する手段を設けたことであり、それ以外の構成要素は実施の形態１と同様である。
【００５８】
図９は本発明の実施の形態４における転送制御手段１０２の構成図である。図４と同一の構成要素には同一の符号を付している。本実施の形態においては、プログラムの実行とダウンロードが同一のメモリマクロとなっていないかを検出することで、プログラムの実行とダウンロードが正しくなされているか否かを確認する。プログラムの実行とダウンロードが同一のメモリマクロになされているときには、転送制御手段１０２はプログラムのダウンロードを中止、あるいは中断して命令実行を行う。本実施の形態の転送制御手段１０２は新たに第３のアドレス比較器９５を有している。第３のアドレス比較器９５はダウンロード中のプログラムのライトアドレス１１１と、命令実行中のプログラムの第２のリードアドレス１１４との比較を行い、この２つのアドレスの属するメモリマクロが不一致であれば第３の比較結果９０３を無効とし、一致していれば第３の比較結果９０３を有効とする。第３の比較結果９０３が有効である場合、制御部４３はプログラムのダウンロード中に異常があったことを知り、プログラムのダウンロードを中止あるいは中断する。プログラムの実行が終了すると、転送制御手段１０２はプログラムのダウンロードを開始あるいは再開する。プログラムのダウンロードは開始あるいは再開しなくとも良い。
【００５９】
（実施の形態５）
本発明におけるプロセッサのダウンロード装置及び制御方法の実施の形態５について図面を参照しながら説明をする。本実施の形態においては、プログラムのダウンロード中に異常を検出した場合、命令実行を強制終了し、ダウンロードを優先させる点で実施の形態４と異なっている。
【００６０】
図１０は本発明の実施の形態５におけるプロセッサのダウンロード装置の構成図である。図１と同一の構成要素については同一の符号を付している。
【００６１】
本実施の形態においては、プログラムの実行とダウンロードが同一のメモリマクロとなっていた場合に、転送制御手段１０２はリセット信号１０００を命令実行手段に出力する。
【００６２】
図１１は本実施の形態における転送制御手段１０２の構成図である。図９と同一の構成要素については同一の符号を付し、説明を省略する。第３の比較結果が有効である場合、すなわちライトアドレス１１１と第２のリードアドレス１１４の属するメモリマクロが一致している場合に、制御部４３はリセット信号１０００を命令実行手段１０３へと出力する。リセット信号を受け取った命令実行手段はその命令実行を強制終了し、プログラムのダウンロードを優先する。
【００６３】
本実施の形態によれば、プログラムの実行とダウンロードが同一のメモリマクロに対してなされたとき、命令実行を強制終了し、対処を行う。
【００６４】
本実施の形態は実施の形態４と組合せて用いることでさらに効果を発揮する。すなわち異常検出された場合には、実行中のプログラムの種類により、命令実行を強制終了するか、ダウンロードに優先して命令実行を行うかを判断するようにしても良い。
【００６５】
（実施の形態６）
本発明におけるプロセッサのダウンロード装置及び制御方法の実施の形態６について図面を参照にしながら説明をする。
【００６６】
図１２は本実施の形態におけるプロセッサのダウンロード装置のプログラムの管理情報テーブルを表わすものである。
【００６７】
図１２のプログラムは図２のプログラムにさらに、どのプログラムが現在有効になっているかを示す有効ビットを設けている。ここでプログラムが有効になるとは、プログラムが第２の記憶手段にダウンロード中である、あるいは命令実行されていることをいう。有効ビットは書き換え可能であり、第２の記憶手段において、プログラムが有効となるたびに書き換わる。この有効ビットを設けることにより、現在第２の記憶手段上に実装されているプログラムが何であるかを検知することができ、実施の形態４、５のように特別なアドレス比較器を設けなくとも、プログラムの実行とダウンロードが同一のメモリマクロに対してされているといった異常を検出することができる。
【００６８】
また、プログラムのソースコードデバッグを行うことができる。具体的には有効ビットとデスティネーション側のアドレスを参照することにより、第２の記憶手段に実装され、実行されているプログラムの種類とそのアドレスを特定することができるので、ブレーク処理を行ってデバッグすることが容易となる。
【００６９】
（実施の形態７）
実施の形態７は本発明におけるプロセッサのダウンロード装置に記憶されるプログラムに、プログラムのダウンロードを開始する命令を付与することにより、実施の形態２、３のように新たにレジスタやタイマーと設けることなく、ダウンロード開始タイミングを生成するものである。
【００７０】
以下に図面を参照しながら、本実施の形態の説明を行う。図１３はダウンロードを開始する命令を付与する前のプログラムの一例であり、図１４はダウンロードを開始する命令を付与した後のプログラムの一例である。プログラムの実行の順序は予め定まっているものとする。本実施の形態では、プログラムを解析する命令解析ステップ（コンパイル、アセンブル時等）において、本プログラムの実行が終了するまでの間に、次に実行すべきプログラムをダウンロードすることが可能な時間に相当する実行番地（アドレス）を予め算出し、その番地以前に、次に実行すべきプログラムのダウンロードを開始する命令の挿入を行う。本発明においては、プログラムの管理情報テーブルに各々のプログラムの開始アドレス及び終了アドレス等の情報が記憶されているので、これを参照することにより、例えばソフトウェア開発時に別のプログラムにかける等によって、適切な位置にプログラムのダウンロードを開始する命令を挿入していくことができる。
【００７１】
図１４では例として、ＳＴＡＲＴ＿ＳＰＥＡＣＨのプログラムの実行が終わるまでの間に、ＬＯＡＤ＿ＡＵＤＩＯのプログラムのダウンロードが可能な実行番地を算出し、ダウンロードを開始する命令であるＢＲＩ　ＬＯＡＤ＿ＡＵＤＩＯを挿入している。
【００７２】
以上のように、本実施の形態によれば、プログラム自体に、次に実行すべきプログラムの転送準備を行う開始命令を挿入することで、予めプログラムの実行手順が決まっている場合等に、実施の形態２、３のような新たなレジスタやタイマーを設けることなく、適切な位置でダウンロードを開始することができる。
【００７３】
【発明の効果】
以上のように、本発明によれば、第１の記憶手段から第２の記憶手段へのプログラムのダウンロードと、それとは別のプログラムの実行とを並列に行うことができるので、プロセッサの処理効率を低下させることはない。
【００７４】
さらに、管理情報テーブルを設けることにより、第１の記憶手段と第２の記憶手段でのアドレスの対応が複雑化することはなく、プログラムが大規模化した場合にも、プログラムを分割して効率良くダウンロードと実行を行うことが可能である。また、プログラムのソースコードデバッグを容易に行うことも可能である。
【００７５】
また、管理情報テーブルを参照して、プログラムの静的解析時に、ダウンロード開始のタイミング等の命令をプログラムに直接付与することも可能である。
【図面の簡単な説明】
【図１】従来及び実施の形態１におけるプロセッサのダウンロード装置の構成図
【図２】実施の形態１におけるプログラムの管理情報テーブルを示した図
【図３】実施の形態１における第２の記憶手段の構成図
【図４】実施の形態１における転送制御手段の構成図
【図５】実施の形態１におけるプログラムの管理情報テーブルの別の形態を示した図
【図６】実施の形態２における転送制御手段の構成図
【図７】（ａ）実施の形態２におけるタイムチャート（実行時間＞ダウンロード時間）（ｂ）実施の形態２におけるタイムチャート（実行時間＜ダウンロード時間）
【図８】実施の形態３におけるプロセッサのダウンロード装置の構成図
【図９】実施の形態４における転送制御手段の構成図
【図１０】実施の形態５におけるプロセッサのダウンロード装置の構成図
【図１１】実施の形態５における転送制御手段の構成図
【図１２】実施の形態６におけるプログラムの管理情報テーブルを示した図
【図１３】実施の形態７においてダウンロードの開始命令を付加する前のソースコードを示した図
【図１４】実施の形態７においてダウンロードの開始命令を付加した後のソースコードを示した図
【符号の説明】
３０　第１の選択回路
３１　第２の選択回路
３２　第１のメモリマクロ
３３　第２のメモリマクロ
３４　第１のメモリマクロに出力されるアドレス
３５　第１のメモリマクロに出力される第２のリード信号
３６　第１のメモリマクロに出力されるライト信号
３７　第２のメモリマクロに出力されるアドレス
３８　第２のメモリマクロに出力される第２のリード信号
３９　第２のメモリマクロに出力されるライト信号
４０　第１のアドレスカウンタ
４１　第２のアドレスカウンタ
４２　第１のアドレス比較器
４３　制御部
４４　転送終了アドレスレジスタ
６５　第２のアドレス比較器
９５　第３のアドレス比較器
１００　第１の記憶手段
１０１　第２の記憶手段
１０２　転送制御手段
１０３　命令実行手段
１０４　転送要求
１０５　管理情報メモリ
１１０　第１のリードアドレス
１１１　ライトアドレス
１１２　第１のリード信号
１１３　ライト信号
１１４　第２のリードアドレス
１１５　第２のリード信号
１１６　選択信号
１１７　第１の記憶手段上で第１のリードアドレスに該当する命令コード
１１８　第２の記憶手段上で第２のリードアドレスに該当する命令コード
４００　アドレス更新信号
４０１　ダウンロードの終了アドレス
４０２　第１の比較結果
６０３　第２の比較結果
６１０　しきい値アドレスレジスタ
６１１　しきい値アドレス
８０１　タイマー
８０２　タイマー起動信号
８０３　クロック
９０３　第３の比較結果
１０００　リセット信号
【図１】
2004013506.tif 000003
【図２】
2004013506.tif 000004
【図３】
2004013506.tif 000005
【図４】
2004013506.tif 000006
【図５】
2004013506.tif 000007
【図６】
2004013506.tif 000008
【図７】
2004013506.tif 000009
【図８】
2004013506.tif 000010
【図９】
2004013506.tif 000011
【図１０】
2004013506.tif 000012
【図１１】
2004013506.tif 000013
【図１２】
2004013506.tif 000014
【図１３】
2004013506.tif 000015
【図１４】
2004013506.tif 000016