(57)【要約】【課題】  命令ＲＡＭに対するプログラム転送処理に起因する処理性能の低下を改善すると共に、転送元となる外部メモリの種類やプログラムの転送範囲等の変更が容易なマイクロコンピュータを提供する。【解決手段】  外部メモリから転送されたプログラムを一時的に保持する命令ＲＡＭと、命令ＲＡＭから専用のフェッチバスを介してプログラムを読み出し、該プログラムにしたがって処理を実行するＣＰＵと、外部メモリから命令ＲＡＭに専用の転送バスを介してプログラムを直接転送する命令転送制御回路と、外部メモリに格納された、命令転送制御回路による外部メモリから命令ＲＡＭへのプログラムの転送に必要な情報である命令転送情報を一時的に保持する転送情報レジスタとを有する構成とする。【選択図】  図１
2005276104.tif 000002
【特許請求の範囲】
【請求項１】
外部メモリから転送されたプログラムを一時的に保持する命令ＲＡＭと、
前記命令ＲＡＭから専用のフェッチバスを介して前記プログラムを読み出し、該プログラムにしたがって処理を実行するＣＰＵと、
前記外部メモリから前記命令ＲＡＭに専用の転送バスを介して前記プログラムを直接転送する命令転送制御回路と、
前記外部メモリに格納された、前記命令転送制御回路による前記外部メモリから前記命令ＲＡＭへの前記プログラムの転送に必要な情報である命令転送情報を一時的に保持する転送情報レジスタと、
を有するマイクロコンピュータ。
【請求項２】
外部メモリから転送されたプログラムを一時的に保持する複数の命令ＲＡＭと、
前記命令ＲＡＭから専用のフェッチバスを介して前記プログラムを読み出し、該プログラムにしたがって処理を実行するＣＰＵと、
前記外部メモリから前記命令ＲＡＭに専用の転送バスを介して前記プログラムを直接転送すると共に、各命令ＲＡＭに対するプログラムの転送が完了する度に対応するプログラムの転送完了を示す転送完了信号を生成する命令転送制御回路と、
前記外部メモリに格納された、前記命令転送制御回路による前記外部メモリから前記命令ＲＡＭへの前記プログラムの転送に必要な情報である命令転送情報を一時的に保持する転送情報レジスタと、
前記転送完了信号と前記ＣＰＵが前記命令ＲＡＭから読み出すプログラムとを監視し、前記ＣＰＵが読み出すプログラムが前記命令ＲＡＭへの転送が完了していない場合、前記ＣＰＵに該プログラムの読み出しを待機させるためのウェイト命令を送出する監視回路と、
を有するマイクロコンピュータ。
【請求項３】
前記外部メモリから転送されたリセットベクタや初期設定用のプログラムを一時的に保持する初期設定ＲＡＭを備え、
前記命令転送制御回路は、
前記外部メモリから前記初期設定ＲＡＭに専用の転送バスを介して前記リセットベクタや前記初期設定用のプログラムを直接転送し、
転送情報レジスタは、
前記外部メモリに格納された、前記命令転送制御回路による前記外部メモリから前記初期設定ＲＡＭへの前記リセットベクタや前記初期設定用のプログラムの転送に必要な情報である命令転送情報を一時的に保持する請求項１または２記載のマイクロコンピュータ。
【請求項４】
前記ＣＰＵの制御により前記外部メモリに対するプログラムやデータの読み出し／書き込みを実行する、前記ＣＰＵとシステムバスで接続されたメモリ制御回路と、
前記メモリ制御回路を介して外部メモリから読み出した前記ＣＰＵで実行する処理に必要なプログラムやデータを一時的に保持する、前記システムバスに接続されたキャッシュメモリと、
を有する請求項１または２記載のマイクロコンピュータ。
【請求項５】
前記ＣＰＵの制御により前記外部メモリに対するプログラムやデータの読み出し／書き込みを実行する、前記ＣＰＵとシステムバスで接続されたメモリ制御回路と、
前記メモリ制御回路を介して外部メモリから読み出した前記ＣＰＵで実行する処理に必要な、内蔵メモリに対するプログラムやデータのＤＭＡ転送を制御する、前記システムバスに接続されたＤＭＡコントローラと、
を有する請求項１または２記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロコンピュータに関し、特にＣＰＵで実行するプログラムを一時的に保持するための命令ＲＡＭを内蔵したマイクロコンピュータに関する。
【背景技術】
【０００２】
近年のマイクロコンピュータは、内蔵するＣＰＵの処理速度がより高速化された結果、メモリに対するアクセス時間の遅れがＣＰＵの処理時間を制限する要因になってきている。そのため、プログラムを不揮発性の外部メモリから高速な内蔵ＲＡＭに一旦転送し、該内蔵ＲＡＭからプログラムを読み出すことで、ＣＰＵによるメモリウェイトを低減して処理時間を短縮する構成が一般的に採用されている。このようなプログラムを一時的に保持するためのＲＡＭ（以下、命令ＲＡＭと称す）を内蔵した従来のマイクロコンピュータの一例を図５に示す。なお、図５に示すような構成のマイクロコンピュータは、例えば特許文献１で開示されている。
【０００３】
図５は従来のマイクロコンピュータの構成を示すブロック図である。
【０００４】
図５に示すように、従来のマイクロコンピュータ３は、ＣＰＵ３１と、ＣＰＵ３１で実行するプログラムを一時的に保持する命令ＲＡＭ３２と、ＣＰＵ３１からの指示にしたがって外部メモリ４からプログラムを読み出し命令ＲＡＭ３２へ転送するメモリ制御回路（ＭＥＭＣ）３３と、外部メモリ４から命令ＲＡＭ３２へのプログラム転送を制御するためのブートプログラムやＣＰＵのリセット時の動作を規定する情報であるリセットベクタが格納されたブートＲＯＭ３４とを有する構成である。ＣＰＵ３１とブートＲＯＭ３４及び命令ＲＡＭ３２とはプログラムを読み出すための専用バス（フェッチバス）でそれぞれ接続され、ＣＰＵ３１とメモリ制御回路３３とはシステムバスを介して接続されている。システムバス及びフェッチバスは、アドレス信号を転送するためのアドレスバス（Add）及びプログラム(Ins)やデータ(Data)を転送するためのデータバスによって構成される。
【０００５】
このような構成において、図５に示すマイクロコンピュータが起動すると、ＣＰＵ３１は、ブートＲＯＭ３４からリセットベクタ及びブートプログラムをそれぞれ読み出し、最初にリセットベクタにしたがって周知のリセット処理を実行する。リセット処理が終了すると、ＣＰＵ３１はブートプログラムにしたがって外部メモリ４から命令ＲＡＭ３２へシステムバスを介してプログラムを転送する。そして、命令ＲＡＭ３２の容量やプログラム規模に応じた所定サイズのプログラム転送が終了すると、ＣＰＵ３１は、フェッチバスを介して命令ＲＡＭ３２に転送されたプログラムを読み出し、該プログラムにしたがって初期設定や所定の処理を順次実行する。
【特許文献１】特開２００１−１９５２６１号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように従来のマイクロコンピュータでは、外部メモリから内蔵する命令ＲＡＭへのプログラム転送をＣＰＵで制御するため、命令ＲＡＭへのプログラム転送期間はＣＰＵで他の処理を実行することができない。したがって、命令ＲＡＭへのプログラム転送の終了を待つことにより処理が遅れるため、マイクロコンピュータとしての処理性能が低下してしまう問題がある。
【０００７】
また、不揮発性メモリであるブートＲＯＭに格納されたブートプログラムにしたがって外部メモリから命令ＲＡＭへプログラムを転送するため、転送元である外部メモリの種類に応じたウェイト情報や動作モード、あるいはプログラムの転送先や転送量等の変更が容易にできない問題がある。
【０００８】
さらに、システムバスを介してＣＰＵからメモリ制御回路にリード命令／ライト命令を繰り返し発行することで、外部メモリの指定アドレスからプログラムを読み出し、読み出したプログラムを命令ＲＡＭの指定アドレスへ書き込むため、プログラムの転送速度が遅い問題もある。
【０００９】
本発明は上記したような従来の技術が有する問題点を解決するためになされたものであり、命令ＲＡＭに対するプログラム転送処理に起因する処理性能の低下を改善すると共に、転送元となる外部メモリの種類やプログラムの転送範囲等の変更が容易なマイクロコンピュータを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため本発明のマイクロコンピュータは、外部メモリから転送されたプログラムを一時的に保持する命令ＲＡＭと、
前記命令ＲＡＭから専用のフェッチバスを介して前記プログラムを読み出し、該プログラムにしたがって処理を実行するＣＰＵと、
前記外部メモリから前記命令ＲＡＭに専用の転送バスを介して前記プログラムを直接転送する命令転送制御回路と、
前記外部メモリに格納された、前記命令転送制御回路による前記外部メモリから前記命令ＲＡＭへの前記プログラムの転送に必要な情報である命令転送情報を一時的に保持する転送情報レジスタと、
を有する構成とする。
【００１１】
または、外部メモリから転送されたプログラムを一時的に保持する複数の命令ＲＡＭと、
前記命令ＲＡＭから専用のフェッチバスを介して前記プログラムを読み出し、該プログラムにしたがって処理を実行するＣＰＵと、
前記外部メモリから前記命令ＲＡＭに専用の転送バスを介して前記プログラムを直接転送すると共に、各命令ＲＡＭに対するプログラムの転送が完了する度に対応するプログラムの転送完了を示す転送完了信号を生成する命令転送制御回路と、
前記外部メモリに格納された、前記命令転送制御回路による前記外部メモリから前記命令ＲＡＭへの前記プログラムの転送に必要な情報である命令転送情報を一時的に保持する転送情報レジスタと、
前記転送完了信号と前記ＣＰＵが前記命令ＲＡＭから読み出すプログラムとを監視し、前記ＣＰＵが読み出すプログラムが前記命令ＲＡＭへの転送が完了していない場合、前記ＣＰＵに該プログラムの読み出しを待機させるためのウェイト命令を送出する監視回路と、
を有する構成とする。
【発明の効果】
【００１２】
上記のように構成されたマイクロコンピュータでは、命令転送制御回路によって外部メモリから命令ＲＡＭへのプログラム転送を実行しつつ、ＣＰＵによる処理を実行できるため、命令ＲＡＭに対するプログラム転送処理に起因するマイクロコンピュータの処理性能の低下が抑制される。
【００１３】
また、プログラムの転送に必要な命令転送情報を外部メモリから転送情報レジスタに転送し、該命令転送情報を参照して外部メモリから命令ＲＡＭへのプログラム転送を制御するため、命令ＲＡＭへのプログラムの転送処理を外部メモリの種類やプログラムサイズに応じて最適に実施できる。
【００１４】
また、命令転送制御回路によって外部メモリから命令ＲＡＭへ専用の転送バスを介してプログラムを直接転送するため、プログラムの転送速度が向上する。
【００１５】
さらに、複数の命令ＲＡＭと、転送完了信号とＣＰＵが命令ＲＡＭから読み出すプログラムとを監視する監視回路を備えることで、プログラムに分岐命令（ジャンプ命令等）が含まれている場合でも、簡易な構成で、命令ＲＡＭに分岐先のプログラムが転送されるまでＣＰＵにプログラムのフェッチを待機させることができる。特に、比較的少ない容量の命令ＲＡＭを多数備えた構成とすれば、ＣＰＵによるウェイト時間を短縮できる。
【発明を実施するための最良の形態】
【００１６】
次に本発明について図面を参照して説明する。
【００１７】
（第１の実施の形態）
図１は本発明のマイクロコンピュータの第１の実施の形態の構成を示すブロック図であり、図２は図１に示した外部メモリ及びマイクロコンピュータのメモリマップを示す模式図である。
【００１８】
図１に示すように、第１の実施の形態のマイクロコンピュータ１は、ＣＰＵ１１と、ＣＰＵ１１で実行するプログラムを一時的に保持する命令ＲＡＭ１２と、リセットベクタや初期設定用のプログラム（初期設定プログラム）を一時的に保持する初期設定ＲＡＭ１６と、命令ＲＡＭ１２及び初期設定ＲＡＭ１６に対する外部メモリ２からのプログラム転送を制御する命令転送制御回路１４と、外部メモリ２からのプログラム転送に必要な命令転送情報を一時的に保持する転送情報レジスタ１５と、ＣＰＵ１１からの指示にしたがって外部メモリ２に対するプログラムやデータの読み出し／書き込みを制御するメモリ制御回路（ＭＥＭＣ）１３とを有する構成である。命令転送制御回路１４と命令ＲＡＭ１２及び初期設定ＲＡＭ１６とはプログラムを転送ための専用バス（転送バス）で接続され、ＣＰＵ１１と命令ＲＡＭ１２及び初期設定ＲＡＭ１６とはプログラムを読み出すための専用バス（フェッチバス）で接続されている。また、ＣＰＵ１１とメモリ制御回路１３とはシステムバスで接続されている。
【００１９】
システムバス、転送バス及びフェッチバスは、アドレス信号を転送するためのアドレスバス（Add）及びプログラム(Ins)やデータ(Data)を転送するためのデータバスによってそれぞれ構成される。転送情報レジスタ１５に格納される命令転送情報には、プログラムを読み出す外部メモリ２の種類、プログラムの転送先アドレス、転送回数、外部メモリ２のウェイト設定や動作モード等の情報が含まれる。
【００２０】
なお、図１に示すように、システムバスには、不図示の内蔵メモリに対するプログラムやデータのＤＭＡ（Direct Memory Access）転送を制御するＤＭＡコントローラ（ＤＭＡＣ）１７が接続されていてもよく、メモリ制御回路１３を介して外部メモリから読み出したプログラムやデータを一時的に保持するキャッシュメモリ１８が接続されていてもよい。キャッシュメモリ１８を有する構成では、ＣＰＵ１１は、メモリ制御回路１３に接続された複数の外部メモリ２のうち、任意の外部メモリ２からキャッシュメモリ１８にプログラムやデータを転送し、キャッシュメモリ１８からプログラムやデータを読み出すことで処理を実行できる。その場合、ＣＰＵ１１は、キャッシュメモリ１８に対するプログラムフェッチが発生すると、命令転送制御回路１４の動作を一旦停止させ、メモリ制御回路１３にリード命令／ライト命令を繰り返し発行することで、外部メモリ２の指定アドレスからプログラムを読み出し、読み出したプログラムをキャッシュメモリ１８の指定アドレスへ書き込めばよい。
【００２１】
このような構成において、本実施形態のマイクロコンピュータ１では、外部メモリ２から命令ＲＡＭ１２あるいは初期設定ＲＡＭ１６へのプログラム転送が命令転送制御回路１４で制御される。
【００２２】
マイクロコンピュータの起動時（電源投入時）、命令転送制御回路１４は、最初に外部メモリ２からリセットベクタ、上記命令転送情報、及び初期設定プログラムをそれぞれ読み出し、初期設定ＲＡＭ１６にリセットベクタ及び初期設定用プログラムを書き込み、転送情報レジスタ１５に命令転送情報を書き込む（図２参照）。続いて、命令転送制御回路１４は、外部メモリ２からプログラム（図２ではプログラム０）を順次読み出し、転送情報レジスタ１５に格納された命令転送情報を参照して読み出したプログラムを命令ＲＡＭ１２へ転送し、命令転送情報で指定されたアドレスに格納する。命令転送制御回路１４から初期設定ＲＡＭ１６及び命令ＲＡＭ１２には、周知のＤＭＡと同様に転送バスを介してプログラムが直接転送される。
【００２３】
初期設定ＲＡＭ１６に対するリセットベクタ及び初期設定用プログラムの転送が完了すると、ＣＰＵ１１は、該リセットベクタ及び初期設定用プログラムを初期設定ＲＡＭ１６から読み出し、それらのプログラムにしたがって所定のリセット処理や初期設定処理等を実行する。
【００２４】
命令転送制御回路１４は、ＣＰＵ１１によるリセット処理及び初期設定処理時も、外部メモリ２からプログラムを順次読み出し、命令ＲＡＭ１２に転送する。ＣＰＵ１１は、初期設定処理が完了すると、その時点までに命令ＲＡＭ１２に転送されているプログラムを順次読み出し、該プログラムにしたがって所定の処理を実行する。
【００２５】
したがって、本実施形態の構成によれば、命令転送制御回路１４により外部メモリ２から命令ＲＡＭ１２へのプログラム転送を実行しつつＣＰＵ１１による処理を実行できるため、命令ＲＡＭ１２に対するプログラム転送処理に起因するマイクロコンピュータ１の処理性能の低下が抑制される。
【００２６】
また、プログラムの転送先アドレス、転送回数、外部メモリ２のウェイト設定や動作モード等の情報を含む命令転送情報を外部メモリ２で保存し、マイクロコンピュータ１の起動時にそれらの情報を外部メモリ２から転送情報レジスタ１５に転送し、該命令転送情報を参照して外部メモリ２から命令ＲＡＭ１２へのプログラム転送を制御するため、プログラム転送処理を外部メモリ２の種類やプログラムサイズに応じて最適に実施できる。さらに、命令転送制御回路１４によりプログラムを外部メモリ２から命令ＲＡＭ１２へ専用の転送バスを介して直接転送するため、プログラムの転送速度が向上する。
【００２７】
（第２の実施の形態）
第１の実施の形態のマイクロコンピュータ１は、外部メモリ２から命令ＲＡＭ１２への所定サイズのプログラム転送が完了する前にＣＰＵ１１で命令ＲＡＭ１２からプログラムを読み出し、該プログラムの処理を開始する。そのため、プログラムに分岐命令（ジャンプ命令等）が含まれていると、ＣＰＵ１１は分岐先のプログラムが命令転送制御回路１４によって命令ＲＡＭ１２に転送されるまで処理を待機する必要がある（ウェイト処理）。第２の実施の形態のマイクロコンピュータ１は、このウェイト処理を簡易に実現できる構成を提案する。
【００２８】
図３は本発明のマイクロコンピュータの第２の実施の形態の構成を示すブロック図であり、図４は図３に示した外部メモリ及びマイクロコンピュータのメモリマップを示す模式図である。
【００２９】
図３に示すように、第２の実施の形態のマイクロコンピュータは、第１の実施の形態で示したマイクロコンピュータ１に、複数の命令ＲＡＭ０〜ｎ（ｎは正の整数）を備え、さらに各命令ＲＡＭ０〜ｎに対するプログラムの転送が完了したか否かを監視する監視回路１９を追加した構成である。また、本実施形態の命令転送制御回路１４は、外部メモリ２から読み出したプログラムを命令ＲＡＭ０〜ｎに所定のアドレス順に格納すると共に（図４参照）、各命令ＲＡＭ０〜ｎに対するプログラム転送が完了する度に対応するプログラムの転送完了を示す転送完了信号を生成し、監視回路１９に送信する。その他の構成は第１の実施の形態と同様であるため、その説明は省略する。なお、図３では、命令ＲＡＭ０〜ｎに対して符号１２0〜１２nを付与した様子を示している。
【００３０】
監視回路１９は、例えば各命令ＲＡＭ０〜ｎに対応するプログラムの転送範囲（アドレス）と転送完了信号との関係を示すテーブルを備え、ＣＰＵ１１から発行される、命令ＲＡＭ０〜ｎに対するプログラムの読み出しアドレスと、命令転送制御回路１４から送信される転送完了信号とを比較し、プログラムの読み出しアドレスがプログラムの転送範囲を越えている場合、すなわちＣＰＵで読み出すプログラムが命令ＲＡＭ０〜ｎに転送されていない場合は、ＣＰＵ１１にプログラムの読み出しを待機させるためのウェイト命令を送出する。ＣＰＵ１１は、監視回路１９からウェイト命令を受信すると、該ウェイト命令が解除されるまで命令ＲＡＭ０〜ｎからのプログラムフェッチを停止する。なお、本実施形態のマイクロコンピュータの構成では、命令ＲＡＭ０〜ｎとして比較的容量の少ないものを使用し、それらを多数備えた構成とすれば、転送が終了したプログラムの範囲をより細かいサイズ毎に検出できる。その場合、読み出し対象のプログラムが転送されてから転送完了信号が出力されるまでの時間が短縮されるため、ＣＰＵ１１によるウェイト時間が短縮される。
【００３１】
第２の実施の形態の構成によれば、第１の実施の形態と同様の効果に加えて、プログラムに分岐命令（ジャンプ命令等）が含まれている場合でも、簡易な構成で、命令ＲＡＭ０〜ｎに分岐先のプログラムが転送されるまでＣＰＵ１１にプログラムのフェッチを待機させることができる。特に、比較的少ない容量の命令ＲＡＭを多数備えた構成とすれば、ＣＰＵ１１によるウェイト時間を短縮できる。
【図面の簡単な説明】
【００３２】
【図１】本発明のマイクロコンピュータの第１の実施の形態の構成を示すブロック図である。
【図２】図１に示した外部メモリ及びマイクロコンピュータのメモリマップを示す模式図である。
【図３】本発明のマイクロコンピュータの第２の実施の形態の構成を示すブロック図である。
【図４】図３に示した外部メモリ及びマイクロコンピュータのメモリマップを示す模式図である。
【図５】従来のマイクロコンピュータの構成を示すブロック図である。
【符号の説明】
【００３３】
１    マイクロコンピュータ
２    外部メモリ
１１    ＣＰＵ
１２、１２0〜１２n    命令ＲＡＭ
１３    メモリ制御回路
１４    命令転送制御回路
１５    転送情報レジスタ
１６    初期設定ＲＡＭ
１７    ＤＭＡコントローラ
１８    キャッシュメモリ
１９    監視回路
【図１】
2005276104.tif 000003
【図２】
2005276104.tif 000004
【図３】
2005276104.tif 000005
【図４】
2005276104.tif 000006
【図５】
2005276104.tif 000007