(57)【特許請求の範囲】
【請求項１】
演算処理を行う中央演算処理装置と、
独立した命令バスおよびデータバスによって前記中央演算処理装置に接続されたバス制御ユニットと、
前記命令バスおよび前記バス制御ユニットのメモリバスを受けて命令アクセスは前記命令バスを経由して行い、データアクセスは前記メモリバスを経由して行うようにしたメモリインタフェース回路と、
前記命令アクセスおよび前記データアクセスが前記メモリインタフェース回路を経由して行われるメモリと、
を備えていることを特徴とするマイクロコントローラ。
【請求項２】
前記メモリインタフェース回路は、前記メモリバスを受ける第１バスインタフェース回路と、前記命令バスを受ける第２バスインタフェース回路と、前記第１バスインタフェース回路および前記第２バスインタフェース回路の２つのバス信号を調停するバス調停回路と、前記バス信号を取り込んで前記メモリへの制御信号を生成するメモリ制御回路とを備えていることを特徴とする請求項１記載のマイクロコントローラ。
【請求項３】
前記バス調停回路は、前記第１バスインタフェース回路が前記メモリバスからのデータアクセスを受けると同時に前記第２バスインタフェース回路が前記命令バスからの命令アクセスを受けた場合に、ウエイト信号を出力して前記中央演算処理装置からの命令アクセスをウエイトするようにしたことを特徴とする請求項２記載のマイクロコントローラ。
【請求項４】
前記メモリインタフェース回路は、前記第２バスインタフェース回路が前記命令バスから受けた命令アクセスが前記メモリに対するアクセスの場合に、前記バス制御ユニットにキャッシュミス判定信号を出力するメモリ領域判定回路を備えていることを特徴とする請求項２記載のマイクロコントローラ。
【請求項５】
前記メモリインタフェース回路は、命令アクセス時に前記メモリインタフェースを経由するかどうかを設定する設定レジスタを備えていることを特徴とする請求項２記載のマイクロコントローラ。
【請求項６】
前記設定レジスタは、前記メモリバスを経由してデータアクセスをすることで設定され、設定されたキャッシュイネーブル信号を前記バス制御ユニットに与えるようにしたことを特徴とする請求項５記載のマイクロコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマイクロコントローラに関し、特にメモリに対する命令のアクセス効率を向上させたマイクロコントローラに関する。
【０００２】
近年のシステムＬＳＩ化に伴ない、メモリロジック混載ＬＳＩが要求されている。さらに、そのＬＳＩを搭載する家電製品の高性能化に伴ない、回路の高速化を図り、プログラムをより効率的に処理を行う必要がある。
【０００３】
【従来の技術】
図６は従来のマイクロコントローラの構成例を示す図である。ここでは、マイクロコントローラに内蔵するメモリとして、フラッシュメモリの場合を例に説明する。
【０００４】
従来構成のマイクロコントローラは、中央演算処理装置（CPU:Central Processing Unit）１０１を備え、この中央演算処理装置１０１は、２つの独立した命令専用の命令バスＩｂｕｓおよびデータ専用のデータバスＤｂｕｓによってバス制御ユニット１０２に接続されている。このバス制御ユニット１０２は、また、フラッシュメモリバスＦｂｕｓを経由してフラッシュインタフェース回路１０３に接続され、このフラッシュインタフェース回路１０３にフラッシュメモリ１０４が接続されている。また、中央演算処理装置１０１とバス制御ユニット１０２との間に設けられた命令バスＩｂｕｓには、命令の実行効率を上げるための命令キャッシュメモリ１０５が接続されている。さらに、中央演算処理装置１０１とバス制御ユニット１０２と命令キャッシュメモリ１０５との間には、キャッシュ制御信号を伝達する制御線１０６が設けられている。
【０００５】
このように、フラッシュメモリ１０４は、命令アクセスおよびデータアクセスの両方を行うため、通常は、命令バスＩｂｕｓとデータバスＤｂｕｓ以外のプリンストンバスと呼ばれるフラッシュメモリバスＦｂｕｓに接続されている。
【０００６】
以上の構成のマイクロコントローラの動作をタイムチャートを参照して説明する。
図７はマイクロコントローラの動作を説明する命令アクセスのタイミングチャートである。
【０００７】
この図において、上からクロック信号、命令バスアドレスＩＡ、命令バスデータＩＤ、フラッシュメモリバスアドレスＦＡ、フラッシュメモリバスデータＦＤ、キャッシュミス判定信号を示している。
【０００８】
中央演算処理装置１０１からフラッシュメモリ１０４に命令アクセスを行うには、まず、中央演算処理装置１０１は命令バスＩｂｕｓに命令バスアドレスＩＡを出力する。ここで、命令キャッシュメモリ１０５に該当するアドレスの命令バスデータＩＤが存在する、つまりキャッシュヒットすると、その命令バスアドレスＩＡに対して直ちに応答し、１サイクルで、ヒットした命令バスデータＩＤを命令キャッシュメモリ１０５から取り出すことができる。
【０００９】
もし、命令キャッシュメモリ１０５にデータが残っていない場合は、もう一度フラッシュメモリ１０４までアクセスしにいかなければならない。命令キャッシュメモリ１０５にアクセスする際には、命令キャッシュメモリ１０５にデータがあるかないかを判断する判定サイクルがある。この判定サイクルで、キャッシュミスした場合、２サイクル目にキャッシュミス判定信号が制御線１０６を経由してバス制御ユニット１０２に送られる。バス制御ユニット１０２は、キャッシュミス判定信号を認識し、３サイクル目にフラッシュメモリバスＦｂｕｓにフラッシュメモリバスアドレスＦＡを出す。すなわち、バス制御ユニット１０２は、２サイクル目に命令バスアドレスＩＡを取得し、３サイクル目にフラッシュメモリバスアドレスＦＡを出すことから、結果的に出力が１サイクル遅れることになり、２サイクル目がペナルティサイクルとなる。そして、フラッシュインタフェース回路１０３は、４サイクル目にフラッシュメモリ１０４にアクセスしてキャッシュミスしたデータであるフラッシュメモリバスデータＦＤをフラッシュメモリバスＦｂｕｓに出し、これが命令バスデータＩＤとなる。つまり、キャッシュミスした場合に、全体として４サイクルかかり、キャッシュヒットした場合には、１サイクルアクセスが可能となっている。
【００１０】
ちなみに、命令キャッシュメモリがない場合は、キャッシュヒットすることがないので、すべてフラッシュメモリ１０４にアクセスすることになる。また、ペナルティサイクルが不要であるため、アクセスするのに３サイクルで済む。すなわち、図８に示したように、最初の１サイクルで命令バスアドレスＩＡが出され、次の１サイクルでフラッシュメモリバスアドレスＦＡに対応するフラッシュメモリバスデータＦＤを取得し、次の１サイクルでフラッシュメモリバスデータＦＤが命令バスデータＩＤとして取得される。
【００１１】
このように、中央演算処理装置１０１からフラッシュメモリ１０４に命令アクセスを行うには、回路を高速で動作させるためにバス制御ユニット１０２で２サイクルの制御時間が必要なことから、命令キャッシュメモリ１０５がない場合は、確実に最低３サイクルかかってしまう。一方、命令の実行効率を上げるために、命令バスＩｂｕｓに命令キャッシュメモリ１０５を搭載した場合には、命令キャシュメモリヒット時は命令アクセスが１サイクルで行うことが可能である。しかし、キャッシュミス時には、ペナルティサイクルが加わるので、命令アクセスが命令キャッシュメモリ１０５がない場合に比べ１サイクル多い４サイクルかかってしまう。キャッシュのヒット率を上げるためには、命令キャッシュメモリ１０５の容量を上げる方法があるが、この場合、チップ面積が大きくなり、マイクロコントローラのコストが高くなってしまう。
【００１２】
ここで、フラッシュメモリアクセスを１サイクルで行う方法として、フラッシュメモリを命令バスに接続する方法があり、その回路構成を図９に示す。
図９は従来のマイクロコントローラの別の構成例を示す図である。
【００１３】
このマイクロコントローラによれば、命令バスＩｂｕｓにフラッシュインタフェース回路１０３およびフラッシュメモリ１０４を配置し、フラッシュメモリ１０４をより中央演算処理装置１０１に近い位置に置いている。これにより、中央演算処理装置１０１は、フラッシュメモリ１０４に対して、バス制御ユニット１０２を経由せずにアクセスできることから、１サイクルでデータアクセスが可能である。
【００１４】
【発明が解決しようとする課題】
しかしながら、命令バスにフラッシュメモリを接続する構造では、元々命令バスが命令専用のバスであるため、フラッシュメモリに対して命令アクセスのみならずデータアクセスも可能なようにバスプロトコルの変更が必要になり、それによるバス制御ユニットの変更も必要になるため、バス制御ユニットの制御を複雑化させるという問題点がある。
【００１５】
また、データアクセスしている間は、基本的には中央演算処理装置が命令を読み込むことはできず、命令アクセスが止まってしまうことになるため、命令アクセスおよびデータアクセス専用の命令バスおよびデータバスを分けて設けたことで回路を高速に動作させるというメリットが失われるという問題点がある。
【００１６】
本発明はこのような点に鑑みてなされたものであり、従来のキャッシュメモリ内蔵の回路構成を変更することなく容易に組み込むことが可能で、かつ１サイクルで中央演算処理装置からのメモリアクセスが可能なマイクロコントローラを提供することを目的とする。
【００１７】
【課題を解決するための手段】
図１は上記目的を達成する本発明の原理図である。
本発明によるマイクロコントローラは、中央演算処理装置１とバス制御ユニット２とを備え、これらは命令専用の命令バスＩｂｕｓおよびデータ専用のデータバスＤｂｕｓによって接続されている。メモリインタフェース回路３は、中央演算処理装置１とバス制御ユニット２との間の命令バスＩｂｕｓに接続され、バス制御ユニット２からのメモリバス５に接続され、さらに、メモリ４に接続されている。
【００１８】
メモリインタフェース回路３は、命令バスＩｂｕｓ上の命令バスアドレスがメモリ４へのアクセスであった場合、命令キャッシュメモリが接続されていたときのキャッシュヒットに対応する動作をし、１サイクルで命令バスデータを出すことができる。しかも、メモリ４へのアクセスは、すべてキャッシュヒットとなるため、キャッシュミスしたときのペナルティはない。これにより、命令のアクセスの効率が向上することになる。
【００１９】
【発明の実施の形態】
まず、本発明の概略について図面を参照して説明する。
図１は本発明によるマイクロコントローラの原理的な構成を示す図である。
【００２０】
本発明によるマイクロコントローラは、中央演算処理装置１と、バス制御ユニット２と、メモリインタフェース回路３と、メモリ４とを備えている。中央演算処理装置１とバス制御ユニット２とは、命令専用の命令バスＩｂｕｓおよびデータ専用のデータバスＤｂｕｓの２つの独立したバスによって接続されている。メモリインタフェース回路３は、中央演算処理装置１とバス制御ユニット２との間に接続された命令バスＩｂｕｓに接続され、また、バス制御ユニット２からのメモリバス５に接続されている。そして、このメモリインタフェース回路３は、メモリ４に接続されている。
【００２１】
以上の構成において、中央演算処理装置１から命令バスＩｂｕｓ上に出された命令バスアドレスがメモリ４に対するアクセスであった場合を説明する。中央演算処理装置１から出された命令バスＩｂｕｓ上の命令バスアドレスがメモリ４へのアクセスであった場合、メモリインタフェース回路３を経由してメモリ４にアクセスする。メモリ４には、その命令バスアドレスに命令バスデータが格納されているので、その命令バスデータを１サイクルで取り出すことができる。
【００２２】
このように、命令バスＩｂｕｓ上の命令バスアドレスがメモリ４に対するものであった場合、バス制御ユニット２をバイパスするような形で、メモリインタフェース回路３を経由して直接メモリ４に命令アクセスが行われる。これは、従来の命令キャッシュメモリを有するときのキャッシュヒットに対応する動作と同じ動作である。しかも、この命令アクセスは、ヒットミスがなく、１００％ヒットが保証された動作になるため、１サイクルアクセスが可能であり、キャッシュミスした場合のペナルティサイクルも発生しない。これにより、命令のアクセスの効率が向上することになる。
【００２３】
また、メモリインタフェース回路３は、中央演算処理装置１およびバス制御ユニット２の周辺回路およびバスプロトコルをまったく変更することなく、命令キャッシュメモリの代わりとしてマイクロコントローラに容易に組み込むことが可能である。
【００２４】
次に、本発明の実施の形態を、メモリとしてフラッシュメモリを搭載したマイクロコントローラの場合を例にして説明する。
図２は本発明によるマイクロコントローラの回路構成を示す図である。
【００２５】
このマイクロコントローラは、中央演算処理装置１０と、バス制御ユニット２０と、フラッシュインタフェース回路３０と、フラッシュメモリ４０とを備え、好ましくは、全体として１つの集積回路によって構成されている。
【００２６】
中央演算処理装置１０とバス制御ユニット２０との間には、命令専用の命令バスＩｂｕｓおよびデータ専用のデータバスＤｂｕｓが接続され、その命令バスＩｂｕｓは、フラッシュインタフェース回路３０にも接続されている。中央演算処理装置１０とバス制御ユニット２０とフラッシュインタフェース回路３０との間には、キャッシュ制御信号を伝達する制御線が接続されている。この制御線は、フラッシュインタフェース回路３０から中央演算処理装置１０にウエイト信号ＷＡＩＴを送る制御線５１と、フラッシュインタフェース回路３０からバス制御ユニット２０にキャッシュイネーブル信号ＣＡＣＨＥＢＬおよびキャッシュミス判定信号＄ＭＩＳＳを送る制御線５２，５３とから成っている。また、フラッシュインタフェース回路３０は、バス制御ユニット２０との間がフラッシュメモリバスＦｂｕｓによって接続され、フラッシュメモリ４０との間がフラッシュメモリ制御信号のために制御線５４およびメモリデータのためにデータ線５５によって接続されている。なお、バス制御ユニット２０は、図示はしないが、フラッシュメモリ４０以外の外部のメモリにも接続できるよう構成され、さらに、周辺装置がフラッシュメモリ４０を参照する際に中央演算処理装置１０を経由せずに直接アクセスする制御を行うダイレクトメモリアクセスコントローラも接続されている。
【００２７】
図３はフラッシュインタフェース回路の回路構成を示す図である。
フラッシュインタフェース回路３０は、フラッシュメモリバスＦｂｕｓに接続された設定レジスタ３１およびフラッシュバスインタフェース回路３２と、命令バスＩｂｕｓに接続された命令バスインタフェース回路３３と、命令バスインタフェース回路３３に接続されてフラッシュメモリ４０へのアクセスかどうかを判定するメモリ領域判定回路３４と、フラッシュメモリバスＦｂｕｓからのデータアクセスと命令バスＩｂｕｓからの命令アクセスとが同時に発生したときにバスの調停を行うバス調停回路３５と、フラッシュバスインタフェース回路３２および命令バスインタフェース回路３３のフラッシュメモリバス信号および命令バス信号を取り込んでフラッシュメモリ４０への制御信号を生成するフラッシュメモリ制御回路３６とを備えている。
【００２８】
設定レジスタ３１は、バス制御ユニット２０を通らずにフラッシュインタフェース回路３０を経由した命令アクセスとするか、バス制御ユニット２０を経由した命令アクセスとするかを設定するもので、フラッシュメモリバスＦｂｕｓを経由してデータアクセスをすることで設定される。ここでは、設定レジスタ３１に設定されたキャッシュイネーブル信号ＣＡＣＨＥＢＬがたとえばハイレベルの論理信号の場合、バス制御ユニット２０に対してバス制御ユニット２０を経由しない命令アクセスであることを通知する。また、キャッシュイネーブル信号ＣＡＣＨＥＢＬがローレベルの論理信号の場合には、バス制御ユニット２０に対してバス制御ユニット２０を経由した命令アクセスであることを通知するとともに、フラッシュメモリ制御回路３６に対して命令バスインタフェース回路３３からの命令バス信号を受け付けないようにし、かつ、メモリ領域判定回路３４に対してその動作を無効にする。
【００２９】
バス調停回路３５は、フラッシュバスインタフェース回路３２がデータアクセスを受けると同時に命令バスインタフェース回路３３が命令アクセスを受けた場合、フラッシュメモリ制御回路３６にフラッシュメモリバスＦｂｕｓのデータアクセスを優先するようにし、命令バスＩｂｕｓからの命令アクセスに対しては、中央演算処理装置１０にウエイト信号ＷＡＩＴを出力する。
【００３０】
フラッシュインタフェース回路３０は、また、フラッシュメモリ４０のメモリデータをフラッシュバスインタフェース回路３２または命令バスインタフェース回路３３に供給するよう構成されている。
【００３１】
以上の回路構成をもとにして、命令アクセスのタイミングチャートを参照しながらマイクロコントローラの動作を説明する。
図４はマイクロコントローラの命令アクセス動作を説明した命令アクセスのタイミングチャートである。
【００３２】
まず、中央演算処理装置１０から命令バスＩｂｕｓに命令バス信号が出されると、その命令バス信号はフラッシュインタフェース回路３０の命令バスインタフェース回路３３に取り込まれる。取り込まれた命令バス信号は、メモリ領域判定回路３４にてフラッシュメモリ４０へのアクセスかどうかが判定される。
【００３３】
ここで、メモリ領域判定回路３４がフラッシュメモリ４０へのアクセスであると判定すると、ローレベルのキャッシュミス判定信号＄ＭＩＳＳを出力し、バス制御ユニット２０に通知してバス制御ユニット２０を経由したフラッシュメモリ４０へのアクセスを無効にし、フラッシュインタフェース回路３０の命令バスインタフェース回路３３が命令バス信号の受け付けを行うようにする。そこで、フラッシュインタフェース回路３０のフラッシュメモリ制御回路３６を経由してフラッシュメモリ４０にアクセスして、１サイクルで、命令バスＩｂｕｓに命令バスデータＩＤを出す。すなわち、フラッシュメモリ４０への命令アクセスの場合には、バス制御ユニット２０を通らないようバイパスしてフラッシュインタフェース回路３０経由でフラッシュメモリ４０にアクセスする。つまり、命令キャッシュメモリを備えた従来の構成にて、命令キャッシュメモリへアクセスし、キャッシュヒットした動作と見かけ上同じ動作となる。
【００３４】
このとき、すべてのアクセスがヒットするようなアクセスとなる。したがって、図４に示したように、ヒットミスがないことから、ペナルティサイクルもなくなり、バス制御ユニット２０を経由しての命令アクセスもなくなる。
【００３５】
また、従来の命令キャッシュメモリを持つ回路構成およびキャッシュ制御信号のための周辺回路構成をそのまま利用しているため、フラッシュインタフェース回路３０を、従来のバスプロトコルや周辺回路を変更することなくそのまま組み込むことができる。
【００３６】
なお、フラッシュメモリ４０へデータアクセスを行う場合は、従来のデータアクセスと同様に、データバスＤｂｕｓからバス制御ユニット２０、フラッシュメモリバスＦｂｕｓおよびフラッシュインタフェース回路３０を経由してデータアクセスを行う。
【００３７】
なお、フラッシュインタフェース回路３０は、命令バスＩｂｕｓとフラッシュメモリバスＦｂｕｓとの両方受けているが、フラッシュメモリバスＦｂｕｓの方がデータバスＤｂｕｓを経由してバス制御ユニット２０から来るデータアクセスなので、これらが両方同時にアクセスする可能性がある。このデータアクセスと命令アクセスとが同時に発生した場合について、命令アクセスのタイミングチャートを参照しながらマイクロコントローラの動作を説明する。
【００３８】
図５はマイクロコントローラのバス調停動作を説明した命令アクセスのタイミングチャートである。
同一サイクル内に、命令バスインタフェース回路３３が中央演算処理装置１０からの命令バスアドレスＩＡ１を受けるとともにフラッシュバスインタフェース回路３２がバス制御ユニット２０からデータアクセスのためのフラッシュメモリバスアドレスＦＡ１を受けた場合、バス調停回路３５は、命令アクセスを待たせてデータアクセスを優先的に処理するよう調停する。すなわち、バス調停回路３５は、ウエイト信号ＷＡＩＴを中央演算処理装置１０に出して命令バスアドレスＩＡ１を継続して出力させるようにする。そのサイクルの間、フラッシュメモリバスアドレスＦＡ１に対応するフラッシュメモリバスデータＦＤ１がフラッシュメモリ４０から取り出される。
【００３９】
データアクセスが終了した次のサイクルでは、ウエイト信号ＷＡＩＴはなくなり、引き続き出力されている命令バスアドレスＩＡ１に対応する命令バスデータＩＤ１がフラッシュメモリ４０から取り出される。
【００４０】
もし、次のサイクルで命令バスアドレスＩＡ２が出された場合には、図示の例ではデータアクセスがないため、その命令バスアドレスＩＡ２に対応する命令バスデータＩＤ２が同じサイクル内でフラッシュメモリ４０から取り出される。
【００４１】
以上、本発明をその好適な実施の形態について詳述したが、本発明は、その特定の実施の形態に限定されるものではなく、本発明の精神の範囲内で幾多の変化変形が可能である。たとえば、好適な実施の形態では、メモリとしてフラッシュメモリの場合を例に説明したが、あらゆるメモリに適用することができる。
【００４２】
【発明の効果】
以上説明したように本発明では、従来命令キャッシュメモリを接続していた位置に命令バスおよびメモリバスに接続可能なメモリへのメモリインタフェース回路を配置するように構成した。これにより、キャッシュ搭載可能な構成を有する回路およびバスプロトコルをまったく変更しないで、メモリインタフェース回路の組み込みが可能である。また、命令キャッシュメモリ搭載時のキャッシュヒット動作と同じ動作が常に発生することから、キャッシュミスしたときのペナルティサイクルがなく、１サイクルで命令アクセスが可能になり、これにより命令のアクセス効率が向上し、マイクロコントローラの命令処理性能を向上させることができる。
【図面の簡単な説明】
【図１】本発明によるマイクロコントローラの原理的な構成を示す図である。
【図２】本発明によるマイクロコントローラの回路構成を示す図である。
【図３】フラッシュインタフェース回路の回路構成を示す図である。
【図４】マイクロコントローラの命令アクセス動作を説明した命令アクセスのタイミングチャートである。
【図５】マイクロコントローラのバス調停動作を説明した命令アクセスのタイミングチャートである。
【図６】従来のマイクロコントローラの構成例を示す図である。
【図７】マイクロコントローラの動作を説明する命令アクセスのタイミングチャートである。
【図８】命令キャッシュメモリがない場合の動作を説明する命令アクセスのタイミングチャートである。
【図９】従来のマイクロコントローラの別の構成例を示す図である。
【符号の説明】
１  中央演算処理装置
２  バス制御ユニット
３  メモリインタフェース回路
４  メモリ
５  メモリバス
１０  中央演算処理装置
２０  バス制御ユニット
３０  フラッシュインタフェース回路
３１  設定レジスタ
３２  フラッシュバスインタフェース回路
３３  命令バスインタフェース回路
３４  メモリ領域判定回路
３５  バス調停回路
３６  フラッシュメモリ制御回路
４０  フラッシュメモリ
５１，５２，５３，５４  制御線
５５  データ線
１０１  中央演算処理装置
１０２  バス制御ユニット
１０３  フラッシュインタフェース回路
１０４  フラッシュメモリ
１０５  命令キャッシュメモリ
１０６  制御線
【図１】
0004178268.tif 000002
【図２】
0004178268.tif 000003
【図３】
0004178268.tif 000004
【図４】
0004178268.tif 000005
【図５】
0004178268.tif 000006
【図６】
0004178268.tif 000007
【図７】
0004178268.tif 000008
【図８】
0004178268.tif 000009
【図９】
0004178268.tif 000010