プログラムカウンタと、命令を実行する演算部とを含むCPUCentralProcessingUnitと、第1のパルス信号の立上りと立下りの片方と他方を夫々第1のエッジと第2のエッジとした場合に、前記第1のパルス信号が第2のエッジになったときに、前記演算部が次に実行する命令の全ての内容をメモリからフェッチするために必要なフェッチ回数NN:1以上の整数を算出すると共に、N回のフェッチを実行して、前記メモリから前記命令の内容を逐次前記CPUに読み込むフェッチ部とを有し、前記演算部は、前記第2のエッジの次の第2のエッジまでに、前記フェッチ部がフェッチした前記命令を実行すると共に、前記次の第2のエッジのときに、次に実行する命令の前記メモリにおける先頭アドレスを前記プログラムカウンタと前記フェッチ部に出力し、前記フェッチ部は、前記N回のフェッチのうちの1回目のときに、フェッチアドレスとして前記演算部が出力した前記先頭アドレスを用い、前記N回のフェッチのうちのK回目K:2以上の整数のときに、前記Kと、前記プログラムカウンタの値と、1度のアクセスで前記メモリから読み出せるデータ量を示すデータバス幅とからフェッチアドレスを算出することを特徴とするプロセッサ。前記第1のパルス信号は、前記フェッチ部により生成され、前記フェッチ部は、前記N回のフェッチのうちのN回目のフェッチの完了後に前記第1のパルス信号が第1のエッジになり、前記第1のエッジから所定の時間経過後に前記第1のパルス信号が第2のエッジになるように前記第1のパルスを生成することを特徴とする請求項1に記載のプロセッサ。前記フェッチ部は、前記フェッチ回数Nの算出と、フェッチの実行とを行うフェッチ実行部と、非同期制御回路とを有し、前記非同期制御回路は、初期化完了時に前記第1のパルス信号が第1のエッジになり、前記所定時間経過後に前記第1のパルス信号が第2のエッジになるように前記第1のパルス信号を出力し、前記第1のパルス信号の第2のエッジに応じて前記フェッチ実行部による前記N回のフェッチのうちの1回目のフェッチの開始後、n回目1≦n<N回目のフェッチが完了する度にn1回目のフェッチの開始を指示するタイミング信号を前記フェッチ実行部に出力すると共に、N回目のフェッチに対応する前記タイミング信号の出力後、初期化を開始することを特徴とする請求項2に記載のプロセッサ。前記第1のパルス信号は、前記演算部と前記フェッチ部に供されるクロック信号であることを特徴とする請求項1記載のプロセッサ。前記フェッチ部は、前記フェッチ回数Nの算出と、フェッチの実行とを行うフェッチ実行部と、非同期制御回路とを有し、前記非同期制御回路は、前記クロック信号の第2のエッジに応じて前記フェッチ実行部による前記N回のフェッチのうちの1回目のフェッチの開始後、n回目1≦n<N回目のフェッチが完了する度にn1回目のフェッチの開始を指示するタイミング信号を前記フェッチ実行部に出力すると共に、N回目のフェッチに対応する前記タイミング信号の出力後、初期化を開始することを特徴とする請求項4に記載のプロセッサ。前記CPUは、固定命令長の命令セットを有し、前記フェッチ部は、前記演算部が次に実行する命令の前記メモリにおける先頭アドレスと、前記データバス幅と、前記固定命令長とに基づいて、前記フェッチ回数Nを算出することを特徴とする請求項1から5のいずれかに記載のプロセッサ。前記CPUは、可変命令長の命令セットを有し、前記フェッチ部によりフェッチした命令を一時的格納して前記演算部に供する命令レジスタをさらに備え、前記フェッチ部は、前記命令に対する1回目のフェッチにより前記命令レジスタに格納された内容に基づいて該命令の命令長を生成する命令長生成部をさらに有し、前記命令の1回目のフェッチ後に、前記命令の前記メモリにおける先頭アドレスと、前記データバス幅と、前記命令長生成部が生成した命令長とに基づいて、前記フェッチ回数Nを算出することを特徴とする請求項1から5のいずれか1項に記載のプロセッサ。前記フェッチ部に対して、前記データバス幅Wを設定可能であることを特徴とする請求項1から7のいずれか1項に記載のプロセッサ。特許文献1の技術は、分岐の有無に関わらず、今後利用することが予測される一定量の命令をまとめて内部メモリに読み込む所謂先読みによりCPUの性能低下の防止を図っている。これでは、実際に実行されない命令も読み込んでいるため、メインメモリに対する無駄なリードアクセスが発生し、消費電力も増大する。本発明は、上記事情に鑑みてなされたものであり、命令を格納したメモリへの無駄なアクセスを回避すると共に、CPUの性能低下を防ぐメモリアクセス技術を提供する。本発明の1つの態様は、プロセッサである。該プロセッサは、プログラムカウンタと、命令を実行する演算部とを含むCPUと、前記演算部が実行する命令をメモリからフェッチするフェッチ部を有する。第1のパルス信号の立上りと立下りの片方と他方を夫々第1のエッジと第2のエッジとした場合に、前記演算部と前記フェッチ部は、下記のように動作する。フェッチ部は、前記第1のパルス信号が第2のエッジになったときに、前記演算部が次に実行する命令の全ての内容を前記メモリからフェッチするために必要なフェッチ回数NN:1以上の整数を算出すると共に、N回のフェッチを実行して、前記メモリから前記命令の内容を逐次前記CPUに読み込む。前記演算部は、前記第2のエッジの次の第2のエッジまでに、前記フェッチ部がフェッチした前記命令を実行すると共に、前記次の第2のエッジのときに、次に実行する命令の前記メモリにおける先頭アドレスを前記プログラムカウンタと前記フェッチ部に出力する。なお、前記フェッチ部は、前記N回のフェッチのうちの1回目のときに、フェッチアドレスとして前記演算部が出力した前記先頭アドレスを用い、前記N回のフェッチのうちのK回目K:2以上の整数のときに、前記Kと、前記プログラムカウンタの値と、1度のアクセスで前記メモリから読み出せるデータ量を示すデータバス幅とからフェッチアドレスを算出する。なお、上記態様のプロセッサを方法、半導体集積回路やマイクロコンピュータなどに置換えて表示したものなども、本発明の態様としては有効である。本発明にかかる技術によれば、命令のフェッチに際して、命令を格納したメモリへの無駄なアクセスを回避すると共に、CPUの性能低下を防ぐことができる。以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェアとソフトウェアプログラムの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、ハードウェアとソフトウェアのいずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体non-transitorycomputerreadablemediumを用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体tangiblestoragemediumを含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ、光磁気記録媒体例えば光磁気ディスク、CD-ROMReadOnlyMemoryCD-R、CD-R/W、半導体メモリ例えば、マスクROM、PROMProgrammableROM、EPROMErasablePROM、フラッシュROM、RAMRandomAccessMemoryを含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体transitorycomputerreadablemediumによってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。本発明の具体的な実施の形態を説明する前に、まず、図1に示すプロセッサ100を参照して、本発明にかかる技術の原理を説明する。図1に示すプロセッサ100は、CPU110、フェッチ部150、メモリ190を備える。メモリ190は、CPU110が実行する命令を格納している。CPU110は、演算部120、命令レジスタ130、プログラムカウンタ以下PCという140を有する。命令レジスタ130は、メモリ190から出力された命令を一時的に格納して、演算部120に供する。演算部120は、命令レジスタ130に格納された命令を実行する。PC140は、演算部120による命令の実行中に該命令の先頭アドレスを格納しており、演算部120により該命令の実行完了と同時に、演算部120により、次に実行すべき命令の先頭アドレスに更新される。演算部120により現在実行中の命令に分岐が含まれない場合には、演算部120が次に実行すべき命令の先頭アドレスは、演算部120が実行中の命令の先頭アドレスに、実行中の命令の命令長を加算して得たアドレスであり、演算部120により現在実行中の命令に分岐が含まれる場合には、演算部120が次に実行すべき命令の先頭アドレスは、上記分岐の分岐先のアドレスになる。演算部120とフェッチ部150は、第1のパルスCLK1が供給されている。第1のパルスCLK1の立上りと立下りの片方と他方を夫々第1のエッジと第2のエッジとした場合に、演算部120とフェッチ部150は、下記のように動作する。フェッチ部150は、第1のパルスCLK1が第2のエッジになったときに、演算部120が次に実行する命令の全ての内容をメモリ190からフェッチするために必要なフェッチ回数NN:1以上の整数を算出すると共に、N回のフェッチを実行して、メモリ190から該命令の内容を逐次CPU110に読み込む。演算部120は、第1のパルスCLK1の上記第2のエッジの次の第2のエッジまでに、フェッチ部150がフェッチした命令を実行すると共に、上記次の第2のエッジのときに、次に実行する命令のメモリ190における先頭アドレスを、PC140とフェッチ部150に出力する。なお、演算部120は、具体的には、フェッチ部150による上記N回のフェッチの完了に伴って該N回のフェッチにより読み込まれた命令を実行し、上記第2のエッジの次の第2のエッジまでに該命令の実行を完了する。さらに、フェッチ部150は、上記N回のフェッチのうちの1回目のときに、フェッチアドレスとして演算部120が出力した先頭アドレスを用い、2回目以降、すなわちN回のフェッチのうちのK回目K:2以上の整数のときに、Kと、PC140の値と、1度のアクセスで前記メモリから読み出せるデータ量データバス幅とからフェッチアドレスを算出する。なお、フェッチアドレスは、フェッチ部150がフェッチ時にメモリに出力するアドレスを意味する。分かりやすいように、以下において、例として、第1のパルスCLK1の立上りを第1のエッジとし、立下りを第2のエッジとして説明する。逆に、第1のパルスCLK1の立下りを第1のエッジとし、立上りを第2のエッジとしてもよい。図2は、プロセッサ100による処理の流れの一例を示すタイミングチャートである。該例において、命令A、B、Cの先頭アドレスを夫々A、B、Cで示しており、これらの命令の内容を夫々DA、DB、DCで示している。なお、命令Bについては、全ての内容をメモリ190から読み出すために2回のフェッチが必要であり、命令Cについては、1回のフェッチで全ての内容がメモリ190から読み出されるとする。図2の例において、タイミングT0において、命令Aのフェッチが完了し、命令Aの全ての内容がCPU110に読み出されたとする。図示のように、このとき、PC140には命令Aの先頭アドレスが格納されており、命令レジスタ130には、命令Aの全ての内容DAが格納されている。そのため、演算部110は、タイミングT0において、命令Aの実行を開始する。なお、図2の例では、タイミングT0において、第1のパルスCLK1が立ち上がる演算部120は、命令Aの実行が完了すると、次に実行する命令命令Bの先頭アドレスをPC140とフェッチ部150に出力する。そのため、図2に示すように、タイミングT1における第1のパルスCLK1の立下り時に、PC140には、命令Bの先頭アドレスが格納されている。タイミングT1における第1のパルスCLK1の立下りに応じて、フェッチ部150は、演算部120から受信した命令Bの先頭アドレスをメモリ190に出力して命令Bの1回目のフェッチB1を行うと共に、命令Bの全ての内容をメモリ190から読み出すために必要なフェッチ回数Nを算出する。ここでは、フェッチ回数Nが2である。命令Bの1回目のフェッチにより命令Bの内容の一部DB1が命令レジスタ130に読み込まれる。また、フェッチ回数Nが2であるため、フェッチ部150は、1回目のフェッチB1が完了するとタイミングT2、続いて命令Bの2回目のフェッチB2を行う。なお、フェッチ部150は、1回目のフェッチB1のときに、演算部120から受信した命令Bの先頭アドレスをフェッチアドレスとしてメモリ190に出力するが、2回目のフェッチB2のときには、PC140の値命令Bの先頭アドレスにK-1×データバス幅を加算して得たアドレスをフェッチアドレスとしてメモリ190に出力する。なお、ここでは、Kは、2である。図示のように、タイミングT3において、命令Bの2回目のフェッチにより命令Bの残りの内容も命令レジスタ130に読み込まれ、命令レジスタ130には、命令Bの全ての内容DBが格納される。命令Bの全ての内容DBが命令レジスタ130に格納されると、演算部120は、命令Bを実行する。また、命令Aのときと同様に、命令Bの実行が完了すると、次の命令命令Cの先頭アドレスをPC140とフェッチ部150に出力する。そのため、第1のパルスCLK1のタイミングT1における立下りの次の立下り時タイミングT5に、PC140には、命令Cの先頭アドレスが格納されている。また、タイミングT5における第1のパルスCLK1の立下りに応じて、フェッチ部150は、演算部120から受信したアドレス命令Cの先頭アドレスをメモリ190に出力して命令Cの1回目のフェッチC1を行うと共に、命令Cの全ての内容をメモリ190から読み出すために必要なフェッチ回数Nを算出する。ここでは、フェッチ回数Nが1である。命令Cの1回目のフェッチにより命令Cの全ての内容DCが命令レジスタ130に読み込まれるタイミングT6と、演算部120は、該命令を実行するタイミングT6~また、フェッチ回数Nが1であるため、フェッチ部150は、命令Cについて2回目以降のフェッチをしない。図2の例では、第1のパルスCLK1の立下りから立上りまでの1周期内に、フェッチ部150による命令のN回のフェッチと、演算部120による該命令の実行とが交互に行われ、命令の必要なフェッチ回数Nが2以上であっても、該命令の全ての内容がCPU110に読み込まれるまでフェッチが繰り返される。従って、本発明にかかる技術によれば、複数回のフェッチが必要な命令のときにCPU110をウェイトさせる必要が無く、CPUの処理効率の低下を回避することができる。フェッチ部150は、演算部120による現在の命令の実行完了後、すなわち次の命令の先頭アドレスが確定してから次の命令のフェッチを開始する。そのため、演算部120が次に実行すべき命令のみがフェッチされ、メモリ190に対する無駄なアクセスをせず、消費電力の増大を回避することができる。図3は、プロセッサ100による処理の流れの別の例を示すタイミングチャートである。該図において、図2と同様に、命令A、B、Cの先頭アドレスを夫々A、B、Cで示しており、これらの命令の内容を夫々DA、DB、DCで示している。なお、命令Bについては、全ての内容をメモリ190から読み出すために2回のフェッチが必要であり、命令Cについては、1回のフェッチで全ての内容がメモリ190から読み出されるとする。図2に示す例では、演算部120とフェッチ部150には、同一の第1のパルスCLK1が供給されるようになっている。図3の例では、第1のパルスCLK1は、フェッチ部150により生成され、演算部120に供される。なお、図2に示す例と比較するために、図2における各タイミングTも図3に示している。フェッチ部150は、フェッチする命令について、該命令のN回目のフェッチの完了後、望ましくはN回目のフェッチの完了直後に第1のパルスCLK1が立ち上がり、該立上りから所定の時間経過後に第1のパルスCLK1が立ち下がるように第1のパルスCLK1を生成する。図3に示すように、タイミングt0タイミングT0と同一であるとするにおいて、フェッチ部150は、命令Aのフェッチが完了したため、第1のパルスCLK1を立ち上げる。このとき、PC140には命令Aの先頭アドレスが格納されており、命令レジスタ130には、命令Aの全ての内容DAが格納されている。また、フェッチ部150は、タイミングt0から所定時間経過後、第1のパルスCLK1を立ち下げる。この所定時間は、演算部120による1つの命令の実行に所要する最大時間以上であればよく、上記最大時間と同長であることが好ましい。ここでは、比較しやすいように、例えば、図2に示す第1のパルスCLK1の周期の半分と同長であるとする。そのため、第1のパルスCLK1が立ち下がるタイミングt1は、図2におけるタイミングT1と同じである。タイミングt0において、命令Aのフェッチが完了したため、演算部120は、命令Aを実行すると共に、タイミングt1タイミングT1における第1のパルスCLK1の立下りに応じて、次に実行する命令命令Bの先頭アドレスをPC140に格納する。また、タイミングt1において、フェッチ部150は、第1のパルスCLK1を立ち下げると共に、PC140に格納されたアドレスをメモリ190に出力して命令Bの1回目のフェッチB1を行い、命令Bの全ての内容をメモリ190から読み出すために必要なフェッチ回数Nを算出する。前述したように、命令Bに対応するフェッチ回数Nが2である。命令Bの1回目のフェッチにより命令Bの内容の一部DB1が命令レジスタ130に読み込まれる。また、フェッチ回数Nが2であるため、フェッチ部150は、1回目のフェッチB1が完了するとタイミングt2=T2、続いて命令Bの2回目のフェッチB2を行う。図示のように、タイミングt3=T3において、命令Bの2回目のフェッチにより命令Bの残りの内容も命令レジスタ130に読み込まれ、命令レジスタ130には、命令Bの全ての内容DBが格納される。ここで、演算部120は、命令Bの実行を開始する。また、フェッチ部150は、直に第1のパルスCLK1を立ち上げる。タイミングt4では、上述した所定の時間が経過したため、フェッチ部150は、第1のパルスCLK1を立ち下げる。第1のパルスCLK1の立下りに応じて、演算部120は、次に実行する命令命令Cの先頭アドレスをPC140に格納する。また、タイミングt4において、フェッチ部150は、第1のパルスCLK1を立ち下げると共に、PC140に格納されたアドレスをメモリ190に出力して命令Cの1回目のフェッチC1を行い、命令Cの全ての内容をメモリ190から読み出すために必要なフェッチ回数Nを算出する。前述したように、命令Cに対応するフェッチ回数Nが1である。命令Cの1回目のフェッチにより命令Cの全ての内容DCが命令レジスタ130に読み込まれるタイミングt5=T5。また、フェッチ回数Nが1であるため、フェッチ部150は、命令Cについて2回目以降のフェッチをせずに、直に第1のパルスCLK1を立ち上げる。また、タイミングt5において、命令Cの全ての内容が読み込まれたため、演算部120は、命令Cを実行する。図2と図3を比較すると分かるように、図2の例の場合、タイミングT5において命令Cのフェッチが行われ、イミングT6において命令Cの実行が開始されるが、図3の例の場合、タイミングT5と同時刻のタイミングt5において、既に命令Cの実行が開始されている。図3に示す例の場合は、図2に示す例と同様の効果を得ることができると共に、フェッチ部150がフェッチの進捗状況に応じた第1のパルスCLK1を生成するため、命令のフェッチと実行をより効率良く行うことができる。次いで、フェッチ部150によるフェッチ回数Nの算出を具体的に説明する。CPUの命令体系は、固定長命令体系と可変長命令体系に分けることができる。ここで、CPU110の命令体系が固定長命令体系であるときに、演算部120が現在実行している命令に分岐無しと分岐有りの場合別に説明する。<固定長命令体系><<分岐無し>>この場合、演算部120は、実行が完了した命令の先頭アドレスに命令長固定値を加算して得たアドレスをPC140とフェッチ部150に出力する。また、命令長が固定であるため、フェッチ対象の命令の先頭アドレスが確定した時点で、フェッチ部150は、該命令のフェッチ回数Nを算出することができる。具体的には、フェッチ部150は、命令長固定値と、該命令の先頭アドレスと、メモリ190のデータバス幅とに基づいてフェッチ回数Nを算出する。前述したように、命令はメモリ上に隙間なく配置されるため、命令のデータは、ミスアライン配置されることがある。従って、同じ命令長の命令でも、それらの格納位置によって必要なフェッチ回数が異なる可能性がある。例えば、データバス幅が2バイトであり、命令長も2バイトである。ミスアラインに配置されていない命令は、1回のフェッチでその全てが読み出されるが、ミスアラインに配置された命令は、全てが読み出されるために2回のフェッチが必要である。従って、フェッチ部150は、フェッチ回数Nを算出する際に、フェッチ対象の命令の先頭アドレスを参照する必要がある。<<分岐有り>>この場合、演算部120は、実行が完了した命令に含まれる分岐により示される分岐先のアドレスをPC140とフェッチ部150に出力する。このアドレスは、次に実行すべき命令の先頭アドレスになる。フェッチ部150は、分岐無しの場合と同様に、次に実行すべき命令の先頭アドレスが確定した時点で、該先頭アドレスと、命令長固定値と、データバス幅とから、フェッチ回数Nを算出する。フェッチ部150も、分岐無しの場合と同様に、算出したN回のフェッチを実行する。なお、フェッチ部150は、当該命令について、算出したN回のフェッチを行うが、1回目のフェッチの開始は、フェッチ回数Nの算出後である必要はない。1回目のフェッチは、必ず行われる。そのため、例えば、フェッチ対象の命令の先頭アドレスが確定した時点で、フェッチ部150は、1回目のフェッチを行うと共に、フェッチ回数Nの算出を行う。1回目のフェッチ後、フェッチ部150は、算出したフェッチ回数Nを参照し、Nが1である場合には、2回目以降のフェッチを行わない一方、Nが2以上である場合には、さらにN-1回のフェッチを行う。次に、CPU110の命令体系が可変長命令体系であるときに説明する。<可変長命令体系><<分岐無し>>この場合、固定長命令体系のときと同様に、フェッチ対象の命令の先頭アドレスは、演算部120が現在実行中の命令の先頭アドレスに命令長を加算したアドレスになる。可変長命令体系の場合、命令長は、通常、当該命令の先頭例えば1バイト目により示される。そのため、フェッチする命令の先頭アドレスが確定した時点では、フェッチ部150は、まだ該命令の命令長を知らず、フェッチ回数Nを算出することができない。従って、この場合、フェッチする命令の先頭アドレスが確定した時点で、まず、フェッチ部150は、1回目のフェッチを行う。これにより、当該命令の少なくとも先頭部分は、命令レジスタ130に格納される。そして、フェッチ部150は、1回目のフェッチにより命令レジスタ130に格納された命令の内容から命令長を生成すると共に、生成した命令長と、データバス幅と、該命令の先頭アドレスとから、フェッチ回数Nを算出する。その後のフェッチ部150の動作は、固定命令長体系の場合と同様であり、ここで説明を省略する。<<分岐有り>>演算部120は、実行が完了した命令に含まれる分岐により示される分岐先のアドレスをPC140とフェッチ部150に出力する。このアドレスは、次に実行すべき命令の先頭アドレスになる。フェッチ部150は、1回目のフェッチを行う。これにより、該命令の少なくとも先頭部分が命令レジスタ130に格納される。フェッチ部150は、分岐無しのときと同様に、1回目のフェッチにより命令レジスタ130に格納された命令の内容から命令長を生成すると共に、生成した命令長と、データバス幅と、該命令の先頭アドレスとから、フェッチ回数Nを算出する。その後のフェッチ部150の動作は、分岐無しのときと同様である。図1において、フェッチ部150がCPU110の外部に設けられているが、フェッチ部150の全部や、または、一部例えば命令長を生成する機能ブロックの部分をCPU110の内部に設けるようにしてもよい。以上の本発明にかかる技術の原理を踏まえて、本発明にかかる実施の形態を説明する。図4は、本発明の実施の形態にかかるマイクロコンピュータ200を示す。マイクロコンピュータ200は、メモリ210、CPU220、非同期制御回路300、フェッチ実行部360を備える。メモリ210は、CPU220が実行する命令を格納しており、フェッチ実行部360からアドレスを示す信号ADRが入力され、該アドレスに格納されたデータ命令または命令の一部。以下リードデータINSというを出力する。なお、信号ADRは、フェッチ毎にフェッチ実行部360からメモリ210に出力され、該信号ADRが示すアドレスは、フェッチアドレスに該当する。CPU220は、命令を実行する演算部222、分配部224、命令レジスタ226、プログラムカウンタPC228、命令長生成部230を備える。例として、CPU220内の全てのレジスタ命令レジスタ226やPC228などは、全て立下り駆動であるとする。分配部224は、メモリ210から出力されたリードデータINSを、フェッチ実行部360からの分配信号ATRに従って命令レジスタ226に分配する。分配信号ATRは、メモリ210からのリードデータINSを命令レジスタ226内に格納する際の格納位置例えば何バイト目かを示す信号であり、分配部224は、分配信号ATRに応じて、当該回のフェッチによりメモリ210から出力されたリードデータINSを適切に命令レジスタ226に分配する。命令レジスタ226は、分配部224により分配されたリードデータINSを格納する。なお、命令レジスタ226は、非同期制御回路300からのパルス信号CLK0以下格納パルスというに応じて動作する。PC228は、演算部222が次に実行すべき命令のメモリ210における先頭アドレスを格納するものである。演算部222は、現在の命令を実行した結果、分岐が無い場合にはPC228に格納されたアドレスに現在の命令の長さを加算したアドレスを格納する一方、分岐がある場合には分岐先のアドレスをPC228に設定する。なお、演算部222は、次の命令の先頭アドレスをC228に設定する際に、該先頭アドレスをフェッチ実行部360にも出力する。本実施の形態のプロセッサ100において、CPU220が、可変命令長の命令体系を有する。命令長生成部230は、命令レジスタ226に格納された命令の長さを取得してフェッチ実行部360に供するものである。本実施の形態において、命令長生成部230は、当該命令の1回目のフェッチにより命令レジスタ226に格納された内容から該命令の命令長LGHを生成してフェッチ実行部360に出力する。なお、命令長生成部230と、非同期制御回路300と、フェッチ実行部360は、フェッチ部250を構成する。フェッチ実行部360は、フェッチ対象の命令のフェッチ回数Nの算出と、該命令のフェッチの実行を行う。非同期制御回路300は、初期化完了時に第1のパルスCLK1を立ち上げ、所定時間経過後に第1のパルスCLK1を立ち下げる。また、非同期制御回路300は、第1のパルスCLK1の立下りに応じてフェッチ実行部360による命令の1回目のフェッチの開始後、n回目1≦n<N回目のフェッチが完了する度にn1回目のフェッチの開始を指示するタイミング信号後述する第2の制御信号CTR2、第3の制御信号CTR3、第4の制御信号CTR4をフェッチ実行部360に出力する。また、非同期制御回路300は、N回目のフェッチに対応する上記タイミング信号の出力後、初期化を開始する。フェッチ実行部360と非同期制御回路300をより具体的に説明する。フェッチ実行部360は、演算部222から出力されたアドレス演算部222が次に実行する命令の先頭アドレスと、メモリ210のデータバス幅Wと、命令長生成部230からの命令長LGHとに基づいて、該命令をメモリ210からCPU220に読み込むために必要な回数フェッチ回数Nを算出する。本実施の形態において、例として、フェッチ回数Nがなり得る最大値が4であるとする。また、本実施の形態において、フェッチ実行部360に対してデータバス幅Wが設定可能になっており、フェッチ実行部360は、フェッチ回数Nの算出に、設定されたデータバス幅Wを用いる。なお、このデータバス幅Wの設定は、マイクロコンピュータ200の外部からなされてもよいし、例えばCPU110に備えられた該設定用のレジスタから設定されるようにしてもよい。フェッチ実行部360は、算出フェッチ回数Nに応じた値を、3つの選択制御信号第1の選択制御信号BR1、第2の選択制御信号BR2、第3の選択制御信号BR3に出力する。具体的には、Nが1である場合には、フェッチ実行部360は、全ての選択信号に0を出力する。Nが2である場合には、フェッチ実行部360は、第1の選択制御信号BR1にのみ1を出力し、他の選択制御信号には0を出力する。また、Nが3である場合には、フェッチ実行部360は、第1の選択制御信号BR1と第2の選択制御信号BR2に1を出力し、第3の選択制御信号BR3に0を出力する。さらに、Nが4である場合には、フェッチ実行部360は、全ての選択制御信号に1を出力する。フェッチ実行部360は、さらに、フェッチアドレスADR、分配信号ATRを出力する。フェッチアドレスADRは、フェッチが行われる度にメモリ210に出力される。分配信号ATRは、フェッチが行われる度に分配部224に出力される。非同期制御回路300は、インバータ302、制御回路304、デマルチプレクサDMUX310、制御回路312、DMUX320、制御回路322、OR回路324、DMUX330、制御回路332、OR回路334、OR回路340、OR回路350を有する。制御回路304は、入力IN1に応じて、第1のパルスCLK1をCPU220とOR回路350に出力し、出力OUT1をDMUX310に出力する。図5は、制御回路304を示す。制御回路304は、通常知られているQモジュール400である。Qモジュール400は、AND回路401、遅延素子402、C素子403、インバータ404、インバータ405、AND回路406を備える。C素子403は、MullerのC素子であり、全ての入力値が一致したときにのみ出力がその入力値に遷移する記憶素子である。図示のように、入力IN1は、AND回路401とC素子403に入力される。AND回路401は、入力IN1と、インバータ404により反転されたC素子403の出力との論理積を遅延素子402に出力する。遅延素子402は、AND回路401の出力を所定量遅延する。遅延素子402の出力は、第1のパルスCLK1である。この第1のパルスCLK1は、CPU220より具体的には、CPU220の演算部222とOR回路350に出力される。第1のパルスCLK1は、C素子403とインバータ405に出力される。C素子403の出力は、インバータ404と、AND回路406に出力される。AND回路406は、C素子403の出力と、インバータ405により反転された第1のパルスCLK1との論理積を出力する。この論理積は、出力OUT1であり、DMUX310に出力される。図6は、制御回路304すなわちQモジュール400において、入力IN1の変化に伴った他の各信号の遷移例を示す。図示のように、タイミングt0において、入力IN1が立ち上がると、遅延素子402の遅延量の分の時間t1-t2が経過してタイミングt1になると、第1のパルスCLK1が立ち上がる。C素子403の2つの入力入力IN1、第1のパルスCLK1が共に1となったため、C素子403の出力は0から1に遷移する。C素子403の出力が1になると、インバータ404を介してAND回路401に入力される信号が0になるため、AND回路401の出力も0になる。そして、遅延素子402の遅延量分の時間が経過してタイミングt2になると、第1のパルスCLK1も立ち下がる。これに応じて、出力OUT1は、立ち上がる。その後、タイミングt3において、入力IN1が立ち下がると、C素子403の2つの入力が共に0となったため、C素子403の出力は1から0に遷移する。そのため、直後のタイミングt4において、出力OUT1も立ち下がる。その後、タイミングt5で入力IN1が再び立ち上がると、前述したタイミングt0からの信号遷移が繰り返される。制御回路304からの出力OUT1は、DMUX310に入力される。DMUX310は、1入力2出力デマルチプレクサであり、DMUX310からの第1の選択制御信号BR1に応じて、出力OUT1を第1の出力X1と第2の出力Y1のいずれかに出力する。具体的には、DMUX310は、第1の選択制御信号BR1が0であるときに、出力OUT1を第1の出力X1に出力し、第1の選択制御信号BR1が1である場合には、出力OUT1を第2の出力Y1に出力する。つまり、出力OUT1が0である場合には、第1の選択制御信号BR1に関わらず、第1の出力X1と第2の出力Y1は、共に0である。出力OUT1が1である場合には、第1の選択制御信号BR1が0であるときに第1の出力X1が1であり第2の出力Y1が0である一方、第1の選択制御信号BR1が1であるときに、第1の出力X1が0であり、第2の出力Y1が1である。DMUX310の第1の出力X1は、OR回路324に出力され、第2の出力Y1は、制御回路312に出力される。以下、DMUX310の第2の出力Y1を、制御回路312の入力信号入力IN2ともいう。制御回路312は、入力IN2に応じて、第2の制御信号CTR2をフェッチ実行部360に出力し、第2のパルスCLK2をOR回路350に出力する。図7を参照して制御回路312を説明する。図7に示すように、制御回路312は、Qモジュール400、AND回路410、インバータ412を有する。Qモジュール400は、入力IN2を入力され、第2のパルスCLK2と出力OUT2を出力する。図5に示す制御回路304のときに既にQモジュール400を説明したため、ここで詳細な説明を省略する。制御回路312では、入力IN2は、AND回路410に入力される。また、出力OUT2は、インバータ412により反転されてAND回路410に入力される。図8は、制御回路312において、入力IN2の変化に伴った他の各信号の遷移例を示す。第2のパルスCLK2と出力OUT2の入力IN2の変化に伴った遷移は、第1のパルスCLK1と出力OUT1の入力IN1の変化に伴った遷移と同様である。第2の制御信号CTR2は、入力IN2の立上りに応じて立ち上がりt10、t15、出力OUT2の立ち上がりに応じて立ち下がるt12。この第2の制御信号CTR2は、前述したように、フェッチ実行部360に出力される。制御回路312の出力OUT2は、DMUX320に入力される。DMUX320も、1入力2出力のデマルチプレクサであり、フェッチ実行部360からの第2の選択制御信号BR2に応じて、入力出力OUT2を第1の出力X2と第2の出力Y2のいずれかに出力する。DMUX320の第1の出力X2はOR回路324に出力され、第2の出力Y2は制御回路322に出力される。以下、DMUX320の第2の出力Y2を、制御回路322の入力信号入力IN3ともいう。なお、OR回路324は、DMUX310の第1の出力X1と、DMUX320の第1の出力X2の論理和をOR回路334に出力する。制御回路322は、制御回路312と同様の構成を有し、入力IN3に応じて、第3のパルスCLK3をOR回路350に出力し、第3の制御信号CTR3をフェッチ実行部360に出力し、出力OUT3をDMUX330に出力する。制御回路312に対して行った説明に対して、入力IN2、第2のパルスCLK2、第2の制御信号CTR2、出力OUT2を夫々入力IN3、第3のパルスCLK3、第3の制御信号CTR3、出力OUT3に置換えれば、制御回路322の説明になるので、ここで制御回路322の詳細な説明を省略する。制御回路322の出力OUT3は、DMUX330に入力される。DMUX330も、1入力2出力のデマルチプレクサであり、フェッチ実行部360からの第3の選択制御信号BR3に応じて、入力出力OUT3を第1の出力X3と第2の出力Y3のいずれかに出力する。DMUX330の第1の出力X3はOR回路334に出力され、第2の出力Y2は制御回路332に出力される。以下、DMUX330の第2の出力Y3を、制御回路332の入力信号入力IN4ともいう。なお、OR回路334は、OR回路324の出力と、DMUX330の第1の出力X3の論理和をOR回路340に出力する。制御回路332は、制御回路312及び制御回路322と同様の構成を有し、入力IN4に応じて、第4のパルスCLK4をOR回路350に出力し、第4の制御信号CTR4をフェッチ実行部360に出力し、出力OUT4をOR回路340に出力する。制御回路312に対して行った説明に対して、入力IN2、第2のパルスCLK2、第2の制御信号CTR2、出力OUT2を夫々入力IN4、第4のパルスCLK4、第4の制御信号CTR4、出力OUT4に置換えれば、制御回路332の説明になるので、ここで制御回路332の詳細な説明も省略する。OR回路340は、OR回路334の出力と、制御回路332からの出力OUT4との論理和をインバータ302に出力する。インバータ302は、OR回路340の出力を反転させて制御回路304に出力する。インバータ302の出力は、制御回路304の入力IN1になる。また、OR回路350は、4入力のOR回路であり、制御回路304からの第1のパルスCLK1、制御回路312からの第2のパルスCLK2、制御回路322からの第3のパルスCLK3、制御回路332からの第4のパルスCLK4の論理和を命令レジスタ226に出力する。OR回路350の出力は、格納パルスCLK0である。非同期制御回路300とフェッチ実行部360の動作をまとめる。初期状態において、非同期制御回路300内の全ての信号が0であるとすると、インバータ302により入力IN1が立ち上がる。制御回路304の内部動作の後、出力OUT1が立ち上がる。その後、第1の選択制御信号BR1、第2の選択制御信号BR2、第3の選択制御信号BR3の値によって、制御回路312、制御回路322、制御回路332の動作が異なる。例えば、第1の選択制御信号BR1、第2の選択制御信号BR2、第3の選択制御信号BR3が全て0であれば、出力OUT1の立上りにより、OR回路324、OR回路334、OR回路340の出力が順々に立ち上がる。この場合、制御回路312、制御回路322、制御回路332は、動作しない。一方、第1の選択制御信号BR1、第2の選択制御信号BR2、第3の選択制御信号BR3が全て1であれば、制御回路312、制御回路322、制御回路332は順々に動作し、最終的にOR回路340の出力が立ち上がる。OR回路340の出力の立上りにより、制御回路304の入力IN1が立ち下がり、さらに、出力OUT1も立ち下がる。これにより、制御回路304は、初期状態に戻る。同様に、他の制御回路も入力IN2~IN4の立下りにより初期化されていき、最終的には、OR回路340の出力も立ち下がり、非同期制御回路300は初期状態に戻る。なお、入力IN1の立ち下がりから、非同期制御回路300全体が初期状態に戻るまでの動作を初期化と呼ぶ。フェッチ実行部360は、フェッチ対象の命令の1回目のフェッチ時に、演算部222から受信したアドレス演算部222が次に実行する命令のメモリ210における先頭アドレスをメモリ210に出力すると共に、該フェッチによりメモリ210から出力されるデータの格納すべき位置を示す分配信号ATRを分配部224に出力する。1回目のフェッチによりリードデータINSが命令レジスタ226に格納されると、フェッチ実行部360は、フェッチ回数Nを算出すると共に、算出したフェッチ回数Nに応じた値を第1の選択制御信号BR1、第2の選択制御信号BR2、第3の選択制御信号BR3に出力する。その後、非同期制御回路300からフェッチを示すタイミング信号第2の制御信号CTR2、第3の制御信号CTR3、第4の制御信号CTR4が入力されれば、入力された制御信号に応じてフェッチを行う。なお、フェッチ実行部360は、K回K:2以上の整数目のフェッチ用のフェッチアドレスとして、PC228の値に、K-1×データバス幅Wを加算して得たアドレスを算出する。図9は、フェッチ実行部360に入力される各信号と、フェッチ実行部360が出力する各信号の真理値の対応関係の一例を示す。図9において、xドントケアであることを示す。PC値とは、演算部222による更新直前の、PC228に格納されているアドレスを意味する。また、アドレスADRのの欄に書かれているPCとは上記PC値を示す。なお、アドレスADRは、フェッチ実行部360が出力するフェッチアドレスを意味し、該アドレスADRは、各命令について、1回目のフェッチ時には、演算部222からフェッチ実行部360とPC228に出力される値から、2回目以降のフェッチ時には、フェッチ実行部360により、PC228の値更新後の値から算出されるようになっている。分配信号ATRについては、0、1、2、3は、夫々命令レジスタ226の0バイト目、1バイト目、2バイト目、3バイト目を示す。なお、データバス幅Wと命令長LGHをバイト単位で表している。また、図9は、あくまで一例を示すものであり、データバス幅Wや命令長LGHの取りうる範囲によって変化する。また、図9の1列目の各欄では、英字は命令を示し、英字の後の数字は、該命令の何回目のフェッチが完了した状態であるのかを示す。例えば、C1とC2は、同一の命令Cの1回目のフェッチが完了した状態であることと2回目のフェッチが完了した状態であることを夫々示す。図9のA1の行が示すように、データバス幅Wが1バイトであり、命令長LGHが1バイトである場合に、演算部222がPC228とフェッチ実行部360に出力した次の命令の先頭アドレスがPC値命令長LGHであり、フェッチ実行部360は、次の命令の1回目のフェッチ時に該先頭アドレスをフェッチアドレスADRとしてメモリ210に出力する。同時に、今回のフェッチによりメモリ210から出力されたリードデータINSの格納位置を示す分配信号ATRとして0を分配部224に出力する。なお、この場合、フェッチ実行部360は、第1の選択制御信号BR1、第2の選択制御信号BR2、第3の選択制御信号BR3を出力しない。第1の選択制御信号BR1、第2の選択制御信号BR2、第3の選択制御信号BR3が共に0であるため、第2の制御信号CTR2、第3の制御信号CTR3、第4の制御信号CTR4の出力もない。すなわち、該命令は、1回のフェッチで全てがCPU220に読み込まれる。一方、C1~C3の3行が示すように、データバス幅Wが1バイトであり、命令長LGHが3バイトである場合に、PC228の現在の値がPC値であり、フェッチ実行部360は、2回目のフェッチ時にPC228の現在の値PC値にK-1×データバス幅Wの1を加算して得たPC値1をフェッチアドレスADRとしてメモリ210に出力すると共に、分配信号ATRとして1を分配部224に出力する。また、フェッチ実行部360は、第1の選択制御信号BR1、第2の選択制御信号BR2に1を出力し、第3の選択制御信号BR3を出力しない。3回目のフェッチC2時に、フェッチ実行部360は、PC228の現在の値PC値にK-1×データバス幅Wの2を加算して得たPC値2をフェッチアドレスADRとしてメモリ210に出力し、分配信号ATRとして2を分配部224に出力する。また、次の命令の1回目のフェッチ時にPC値命令長をフェッチアドレスADRとしてメモリ210に出力し、分配信号ATRとして0を分配部224に出力する。すなわち、該命令Cは、3回のフェッチにより全てがCPU220に読み込まれる。なお、前述したように、メモリ210における命令の配置がミスアラインになっているか否かによって、命令長LGHが同一である2つの命令でも、必要なフェッチ回数が異なる可能性がある。例えば、J1の行が示すように、データバス幅Wが4バイトであり、PC値が00である場合には、命令長LGHが1、2、3、4のいずれであるときにも、フェッチ実行部360は、第1の選択制御信号BR1、第2の選択制御信号BR2、第3の選択制御信号BR3を出力せず、次の命令の1回目のフェッチとなるPC値命令長LGHをフェッチアドレスADRとしてメモリ210に出力する。すなわち、1回のフェッチで該命令の全てがCPU220に読み込まれる。ところで、データバス幅Wが4バイトであり、命令長LGHが4バイトであっても、PC値が01である場合には、該命令がミスアラインに配置されているため、1回のフェッチではその全てを読み出すことができない。そのため、L1~L2の行が示すように、フェッチ実行部360は、2回のフェッチを行うために、第1の選択制御信号BR1に1に出力すると共に、1回目のフェッチL1時にPC値3バイトをフェッチアドレスADRとしてメモリ210に出力し、2回目のフェッチL2時にPC値命令長LGHをメモリ210に出力する。ここで、フェッチする命令の具体例を参照してマイクロコンピュータ200の各機能ブロックの動作をより詳細に説明する。図10は、メモリ210に格納され、フェッチ実行部360により順次フェッチされる複数命令の例を示す。なお、メモリ210のデータバス幅Wは、16ビットであり、フェッチ実行部360とフェッチ実行部360に対して設定されている。また、分かりやすいように、各命令に分岐が含まれないと仮定して説明する。図11は、フェッチ実行部360が図10に示す複数の命令をフェッチする際のタイミングチャートである。なお、全てのレジスタが立下り駆動であるとする。タイミングT10において制御回路304の入力IN1が立ち上がると、第1のパルスCLK1は、その後のタイミングT11において立ち上がり、タイミングT12で立ち下がる。タイミングT11~タイミングT12までの間に、演算部222は、命令ffeeを実行する。この期間において、PC228には、該命令の先頭アドレス110EHを格納している。該命令の命令長LGH2バイトは、命令長生成部230により命令レジスタ226の1バイト目から生成され、フェッチ実行部360に供されている。タイミングT12における第1のパルスCLK1の立下りに応じて、演算部222は、PC228や命令レジスタ226などのCPU220内の各レジスタを更新する。これにより、PC228には、タイミングT12の後に演算部222が実行する命令の先頭アドレスとして、更新前のPC値に命令長LGHの2バイトを加算して得た新しいPC値1110Hが格納される。また、演算部222は、このアドレスをフェッチ実行部360にも出力する。タイミングT12における第1のパルスCLK1の立下りに応じて、フェッチ実行部360は、1110Hをメモリ210に出力する。これにより、メモリ210からリードデータINSとしてaaccが出力され、命令レジスタ226に格納される。ここで、ccHの命令が1バイトであるとする。命令長生成部230は命令ccHの命令長LGH1を取得して、フェッチ実行部360に出力する。なお、命令ccHが1バイトであるため、図示のように、命令レジスタ226には、ccHのみが格納されている。さらに、PC値と命令長LGHが確定したことにより、フェッチ実行部360は、これ以上フェッチは必要ないと判断し選択信号BR1~BR3を全て0のままにする。そのため、制御回路304、制御回路312、制御回路322、制御回路332は動作することなく、タイミングT22における第1のパルスCLK1の立下りに応じてフェッチアドレスADRも1111Hに確定する。フェッチアドレスADRに対応するリードデータINSは、aaHである。なお、タイミングT12~T20の間に非同期制御回路300の初期化が行われ、タイミングT20において、再び制御回路304の入力IN1が立ち上がる。これにより、第1のパルスCLK1は、その後のタイミングT21において立ち上がり、タイミングT22で立ち下がる。演算部222は、タイミングT22における第1のパルスCLK1の立下りに応じて、実行が完了した命令ccHの次の命令の先頭アドレスをフェッチ実行部360に実行すると共に、この先頭アドレスでPC228を更新する。そのため、タイミングT22において、PC228や命令レジスタ226などのCPU220内の各レジスタが更新される。PC228は、新たなPC値として1111Hを保持し、命令レジスタ226には、フェッチアドレスADRが示すメモリ210の1111H番地からのリードデータINSaaHが読み込まれる。ここで、aaHの命令コードは4バイト命令であるとする。命令長LGHが4バイトを示すため、フェッチ実行部360は、フェッチ回数Nとして3を算出する。そのため、フェッチ実行部360は、後2回のフェッチが必要と判断し、第1の選択制御信号BR1と第2の選択制御信号BR2に1を出力する。これにより、まず、制御回路312の入力IN2が立ち上がり、直に第2の制御信号CTR2も立ち上がるタイミングT22。これに応じて、フェッチ実行部360から次のフェッチアドレスADRとして1112Hがメモリ210に出力され、メモリ210からは、1112Hに格納されたデータ1133Hが読み出される。その後、第2のパルスCLK2は、タイミングT23で立ち上がり、タイミングT24で立ち下がる。タイミングT24における第2のパルスCLK2の立下りにより、メモリ210からリードデータINS1133Hが命令レジスタ226にフェッチされる。さらに、タイミングT24において、第2の制御信号CTR2も立ち下がり、入力IN3が立ち上がり、直に第3の制御信号CTR3が立ち上がる。これにより、フェッチアドレスADRは1114Hを示し、メモリ210からのリードデータINSは、9977Hに変化する。その後、第3のパルスCLK3は、タイミングT25で立ち上がり、タイミングT26で立ち下がる。タイミングT26における第3のパルスCLK3の立下りによりメモリ210からデータ9977Hが命令レジスタ226にフェッチされ、命令レジスタ226は、771133aaHに更新される。この時点タイミングT26において、1命令分のコード771133aaHが揃う。本実施の形態のマイクロコンピュータ200は、本発明にかかる技術の原理を具現化したものであり、原理の説明時に述べた各々の効果を得ることができる。さらに、本実施の形態のマイクロコンピュータ200では、フェッチ実行部360に対してデータバス幅Wを設定可能であるため、様々なバス幅Wの外部メモリにも対応でき、ユーザに外部メモリを柔軟に選択させることができる。以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した実施の形態に対してさまざまな変更、増減を行ってもよい。これらの変更、増減が行われた変形例も本発明の範囲にあることは当業者に理解されるところである。