(57)【要約】  典型的に、任意の長さの命令に対して、入力データのストローブ動作は、データがデータバス（１１０）上で未だ利用できないときでさえ、すべてのクロックサイクル（２０１，２１０）の間に実行される。一部の命令に対し、２個以上のクロックサイクル（２０１，２１０）が、データをデータバス（１１０）に供給するために必要とされるので、不必要なストローブ動作が電力を浪費する。本発明の実施形態は、入力バス（１１０）上でデータの準備ができているときに限り入力データのストローブ動作を行い、よって、可変入力フェーズを提供することにより、この制限を解決するために役立つ。入力データのストローブ動作は、命令タイプ、命令のアドレスモード、内部アクセス、外部アクセス、および、命令の実行中にマイクロコントローラ（１０２）によって利用されるバス幅のような、命令の特性に依存する。よって、異なる特性を有する命令は異なる入力フェーズを有する。
2007504527.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号遷移を有するクロック信号を発生するクロック回路を準備するステップと、
命令処理時間中に命令を処理するマイクロコントローラに前記命令を供給するステップと、
前記命令に関連した少なくとも一つの特性を決定するためにその命令をデコードするステップと、
前記命令に関連した前記少なくとも一つの特性に依存して、いくつかのクロック信号遷移が関連付けられた前記命令の入力フェーズを決定するステップと、
前記命令処理時間中の１つおきのクロック信号遷移またはその付近での前記入力フェーズの間における前記入力データのラッチを行わず、前記命令処理時間中に前記いくつかのクロック信号遷移が発生するのに応じて前記マイクロコントローラによって使用される入力データをラッチするステップを含む、方法。
【請求項２】
前記ラッチするステップを実行する時期を決定するために、前記命令処理時間中に発生する１つおきのクロック信号遷移の個数をカウントするステップを含む、請求項１に記載の方法。
【請求項３】
前記ラッチするステップを実行する時期を決定するために、前記命令処理時間中に発生するクロック信号遷移の個数をカウントするステップを含む、請求項１に記載の方法。
【請求項４】
前記カウントするステップは、前記ラッチするステップを実行する前の各命令に対して実行される、請求項３に記載の方法。
【請求項５】
前記入力フェーズは、前記いくつかのクロック信号遷移が発生し、前記ラッチするステップが実行されたときに終了される、請求項１に記載の方法。
【請求項６】
前記命令の前記特性は、命令タイプ、前記命令のアドレスモード、内部アクセス、および、外部アクセスのうちの少なくとも一つである、請求項１に記載の方法。
【請求項７】
前記命令の特性は、前記命令の実行中に前記マイクロコントローラによって利用されるバス幅に依存する、請求項１に記載の方法。
【請求項８】
前記ラッチは、前記命令処理時間中に前記いくつかのクロック信号遷移が発生する前以外で実行される、請求項１に記載の方法。
【請求項９】
２クロックサイクル命令に対し、前記命令の前記入力フェーズは約１．５クロックサイクルの長さである、請求項１に記載の方法。
【請求項１０】
３クロックサイクル命令に対し、前記命令の前記入力フェーズは約２．５クロックサイクルの長さである、請求項１に記載の方法。
【請求項１１】
決定された特性が異なる命令に対し、それにより決定された前記クロック信号遷移の個数が異なる、請求項１に記載の方法。
【請求項１２】
データ入力バスと、
クロック信号遷移によって示されるクロックサイクルを有するクロック信号を発生するクロック回路と、
前記クロック信号を受信し、現在の命令に関係するデータを受信し、前記現在の命令に関係する前記データをデコードし、前記現在の命令の特性および命令処理時間を決定する命令デコードブロックと、
前記データ入力バスに接続され、該データ入力バスから入力データを受信し、前記現在の命令の実行中に使用される前記入力データを内部に格納するデータ入力レジスタと、
前記データ入力レジスタに接続され、該データ入力レジスタの内部に格納された前記入力データを処理するプロセッサと、
前記クロック信号を受信し、前記現在の命令の入力フェーズを決定し、ストローブ信号を発生するシーケンサブロックを含み、
前記命令処理時間中にいくつかのクロック信号遷移が発生したときに、前記入力データの前記データ入力レジスタへのラッチが実行され、前記命令処理時間中の１つおきのクロック信号遷移の付近において前記入力データのラッチは行われない、マイクロコントローラアーキテクチャ。
【請求項１３】
前記マイクロコントローラアーキテクチャの外部にメモリを含み、
前記命令の前記入力フェーズは、前記現在の命令が前記外部メモリにアクセスするための命令データを含むかどうかに依存する、請求項１に記載のマイクロコントローラアーキテクチャ。
【請求項１４】
前記入力データを前記データ入力レジスタにラッチするときを決定するために、前記シーケンサブロックは前記命令処理時間中に発生するクロック信号遷移の個数をカウントする回路を含む、請求項１２に記載のマイクロコントローラアーキテクチャ。
【請求項１５】
前記カウントするステップが命令毎に実行される、請求項１４に記載のマイクロコントローラアーキテクチャ。
【請求項１６】
前記入力フェーズは、前記ストローブ信号が発生したときに、かつ、前記データが前記データ入力レジスタへラッチされたときに、終了する、請求項１２に記載のマイクロコントローラアーキテクチャ。
【請求項１７】
前記命令の前記特性は、命令タイプ、前記命令のアドレスモード、内部アクセス、および、外部アクセスのうちの少なくとも一つである、請求項１２に記載のマイクロコントローラアーキテクチャ。
【請求項１８】
前記命令の前記特性は、前記命令の実行中に前記マイクロコントローラによって利用されるバス幅に依存する、請求項１２に記載のマイクロコントローラアーキテクチャ。
【請求項１９】
２クロックサイクル命令に対し、前記命令の前記入力フェーズは約１．５クロックサイクルの長さである、請求項１２に記載のマイクロコントローラアーキテクチャ。
【請求項２０】
３クロックサイクル命令に対し、前記命令の前記入力フェーズは約２．５クロックサイクルの長さである、請求項１２に記載のマイクロコントローラアーキテクチャ。
【請求項２１】
決定された特性が異なる命令に対し、前記決定されたクロック信号遷移の個数が異なる、請求項１２に記載のマイクロコントローラアーキテクチャ。
【請求項２２】
命令処理時間中に命令を処理するマイクロコントローラに前記命令を供給する第１の命令データと、
前記命令に関連した少なくとも一つの特性を判定するためにその命令をデコードする第２の命令データと、
前記命令に関連した前記少なくとも一つの特性に依存して、いくつかのクロック信号遷移が関連付けられた前記命令の入力フェーズを決定する第３の命令データと、
前記命令処理時間中に前記いくつかのクロック信号遷移が発生するのに応じて、前記マイクロコントローラによって使用される入力データをラッチし、前記命令処理時間中の１つおきのクロック信号遷移またはその付近での前記入力フェーズの間における前記入力データのラッチを行わない、第４の命令データを含む、処理システムを実施するためのデータが記憶された記憶媒体。
【請求項２３】
クロック信号遷移を有するクロック信号を発生するクロック回路をもたらす第５の命令データを含む、請求項２２に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロコントローラの分野に係わり、より詳細には、命令データの処理の分野に関する。
【背景技術】
【０００２】
縮小命令セット（ＲＩＳＣ）処理システムでは、多数の縮小命令はそれらを処理するため単一クロックサイクルだけを必要とする。複合命令セットコンピュータ（ＣＩＳＣ）型の処理システムでは、多くの複合命令はそれらを処理するために２クロックサイクル以上を必要とする。縮小命令セットと複合命令セットの両方の処理システムでは、命令は入力フェーズと出力フェーズを有する。入力フェーズの間に、データは命令のため読み出され、出力フェーズの間に、データはその命令の実行の結果として出力バスに供給される。命令のためのデータのローディング中に、入力データは、データバスからデータ入力レジスタにデータをラッチするためにストローブ信号でストローブされる。典型的なＣＩＳＣ型の処理システムでは、命令の入力フェーズは命令から命令へと著しく変化する。ＲＩＳＣ型の処理システムでは、命令と命令との間の入力フェーズ変化は小さい。
【０００３】
１クロックサイクルの命令では、その半クロックサイクルの間に、プロセッサは、命令データをデータバスからラッチするために入力データをストローブすることによってデータバスからデータをロードする。次の半クロックサイクルの間に、プロセッサは単一サイクル命令データに基づいて演算を実行し、必要に応じて出力データを提供する。メモリアクセス命令のような２クロックサイクル命令では、命令は２クロックサイクルの間に実行され、少なくとも１番目のクロックサイクルがデータをプロセッサ内に読み込むために使用され、２番目のクロックサイクル、または、その一部が命令の実行のため使用される。２クロックサイクル命令では、入力データは、データがデータバス上で未だ安定化されていないときであっても、すべてのクロックサイクルでストローブされる。３クロックサイクル命令では、入力データは３回ストローブされる。しかし、様々な命令長を有する命令では、データは、典型的に、半クロックサイクルより長い所定の時間に先行してデータバス上で安定化はされない。一部の命令は他の命令より長いセットアップ時間を必要とするので、反復的なストローブ動作はラッチ演算の実施のために不必要な電力消費を生じる結果となる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
したがって、実行するために単一クロックサイクルより長い時間を必要とする命令のために処理システムにおいて行われるラッチの量を削減するという需要がある。したがって、本発明の目的は、上記の制限を解決するマイクロコントローラアーキテクチャを提供することである。
【課題を解決するための手段】
【０００５】
本発明によれば、クロック信号遷移を有するクロック信号を発生するクロック回路を準備するステップと、命令処理時間中にその命令を処理するマイクロコントローラに命令を供給するステップと、命令に関連した少なくとも一つの特性を判定するためにその命令をデコードするステップと、命令に関連した少なくとも一つの特性に依存して、いくつかのクロック信号遷移が関連付けられた命令の入力フェーズを決定するステップと、命令処理時間中にいくつかのクロック信号遷移が発生するのに応じて、マイクロコントローラによって使用される入力データをラッチし、命令処理時間中の１つおきのクロック信号遷移またはその付近での入力フェーズの間における入力データのラッチは行わないステップとを含む、方法が提供される。
【０００６】
本発明によれば、データ入力バスと、クロック信号遷移によって示されるクロックサイクルを有するクロック信号を発生するクロック回路と、クロック信号を受信し、現在の命令に関係するデータを受信し、現在の命令に関係するデータをデコードし、現在の命令の特性および命令処理時間を決定する命令デコードブロックと、データ入力バスに接続され、そのデータ入力バスから入力データを受信し、現在の命令の実行中に使用される入力データを内部に格納するデータ入力レジスタと、データ入力レジスタに接続され、データ入力レジスタの内部に格納された入力データを処理するプロセッサと、クロック信号を受信し、現在の命令の入力フェーズを決定し、ストローブ信号を発生するシーケンサブロックとを含み、命令処理時間中にいくつかのクロック信号遷移が発生したときに、入力データのデータ入力レジスタへのラッチが実行され、命令処理時間中の１つおきのクロック信号遷移の付近において入力データのラッチは実行されない、マイクロコントローラアーキテクチャが提供される。
【０００７】
本発明によれば、命令処理時間中にその命令を処理するマイクロコントローラに命令を供給する第１の命令データと、命令に関連した少なくとも一つの特性を決定するためにその命令をデコードする第２の命令データと、命令に関連した少なくとも一つの特性に依存して、いくつかのクロック信号遷移が関連付けられた命令の入力フェーズを決定する第３の命令データと、命令処理時間中にいくつかのクロック信号遷移が発生するのに応じて、マイクロコントローラによって使用される入力データをラッチし、命令処理時間中の１つおきのクロック信号遷移またはその付近での入力フェーズの間における入力データのラッチを行わない第４の命令データとを含む、処理システムを実施するためのデータが記憶された記憶媒体が提供される。
【発明を実施するための最良の形態】
【０００８】
本発明の例示的な実施形態は添付図面と併せて次に説明される。
【０００９】
図１は本発明の第１の実施形態によるシーケンサブロック１００を含むマイクロコントローラアーキテクチャを示す。シーケンサブロック１００は、発振器回路１０１から発振器クロック信号（ｃｌｋ）を受信し、ＭＸ１コア１０２を構成する回路へ供給するための、クロック信号遷移を伴うクロックサイクルを有するクロック信号（ｃｌｋ）を発生する。ＭＸ１コア１０２は、プロセッサ１０３とアドレスデコーダ（図示せず）を含む。ＭＸ１コア１０２の外部には、命令データを格納するプログラムメモリ１０５がある。フェッチ回路１０６は、ＭＸ１コア１０２内に配置され、プログラムメモリ１０５からデータをフェッチする。超大規模集積周辺バスブリッジ（ＶＢＰブリッジ）１０７はプロセッサ１０３に結合される。データ入力レジスタ１０８はさらにＭＸ１コア１０２内に設けられ、データ入力バス１１０に結合され、データ入力バスから入力データを受信し、ストローブ信号に応答する。シーケンサブロック１００との間で授受される入力信号および出力信号は表１に要約されている。
【表１】
2007504527.tif 000003
【００１０】
命令デコードブロック１０９は、データ入力バス１１０に結合され、命令に関連付けられた特性を決定するために各命令をデコードする。命令の特性に応じて、シーケンサブロック１００は、シーケンサブロックによって発生されたストローブ信号に待機状態を付加し、それにより、シーケンサブロックは、命令データが入力バス上で準備できるまで、プロセッサ１０３によって使用されるデータをストローブしない。各命令の最後の半クロックサイクルの間に、各命令が実行のために要する時間の長さとは無関係に、ｓｅｑ＿ｅｏｉがアサートされ、ｓｅｑ＿ｅｏｉのアサートは待機状態を含む。ｓｅｑ＿ｌａｓｔ＿ｃｌｋは命令の最後のクロックサイクル全体を特定するために使用される。
【００１１】
命令デコードブロック１０９は、実行されている現在の命令のクロック信号遷移中に命令長を発生する。この命令長は、その命令の入力フェーズより先行する命令デコードフェーズの間に命令毎に決定される。命令長は、命令のタイプ、そのアドレスモード、および、その命令が内部アクセス用であるか、または、プログラムメモリ１０５へ向けられるような外部アクセス用であるかを考慮する。バス幅利用率が命令長を決定するときにさらに考慮される。命令デコードブロック１０９によって決定されるような命令長に応じて、シーケンサ１００は、所与の命令の入力フェーズおよび出力フェーズを指定する信号を発生する。ストローブ信号は所与の命令の入力フェーズおよび出力フェーズを指定する信号に依存する。
【００１２】
命令デコードブロック１０９からの待機入力信号（ｉｄ＿ｗａｉｔ）は、付加的な命令フェッチが現在の命令の処理を遂行するためにフェッチ回路１０６によって実行される間に、シーケンサブロック１００がその動作をストールすることを可能にさせる。ｉｄ＿ｗａｉｔが命令実行の先頭でアサートされるならば、シーケンサブロック１００は、プログラムメモリ１０５のアクセスに関係するウェイト時間に依存するクロック信号遷移をカウントし始める前にそのｉｄ＿ｗａｉｔがデアサートされるまで待機する。
【００１３】
プログラムメモリ１０５にアクセスするＭＯＶＣ命令およびＥＭＯＶ命令では、シーケンサブロック１００は、外部コードアクセス待機状態をカウントする。さらに、シーケンサブロック１００は、フェッチ回路１０６が命令フェッチを実行しているとき、外部コードアクセス待機状態をもカウントする。ｓｅｑ＿ｃｏｎｓｔ＿ｆｅｔｃｈは、コードフェッチとプログラムメモリ１０５へのデータアクセスとの間の差を示すと共に、プログラムメモリ１０５からのデータがＡＬＵソースレジスタ（図示せず）に格納されるべきときを規定する。
【００１４】
図２Ａ、２Ｂおよび２Ｃを参照すると、所与の命令毎に、多数のクロックサイクルがその命令の入力フェーズに対して動的に計算される。クロックサイクルの動的な計算は、命令タイプとそのタイプの命令に関連付けられたメモリレイテンシ（latency）の結果である。マイクロコントローラによって使用される命令の入力フェーズの期間は、任意のメモリアクセスのレイテンシに基づいて、並びに、命令の性質に依存して、命令毎に計算される。入力フェーズの長さの計算は命令デコードブロック１０９によって実行される。図２Ａ、２Ｂおよび２Ｃは、ｃｃｌｋ２１０およびｃｌｋ２０１に対して同じクロックサイクルを示すが、いつもそうであるとは限らない。ある例では、ｃｌｋ２０１はシーケンサブロック１００によって決定されるように変化する。
【００１５】
図２Ａは、ｃｌｋ２０１の単一クロックサイクル２０２ａの範囲内で実行する単一クロックサイクル命令のタイミングチャートを示す。単一クロックサイクルは、２個のクロック信号遷移を含み、３番目のクロック信号遷移で終わる。この単一クロックサイクル２０２ａの間に、ソースアドレス信号（ｉｄ＿ｓｒｃ＿ａｄｒ）２０３ａおよび宛先アドレス信号２０４ａ（ｉｄ＿ｄｅｓｔ＿ａｄｒ）が図示されるように発生する。ｃｌｋ２０１の間の中間点２１２ａ、すなわち、２番目のクロック信号遷移で、ストローブ信号がアサートされる。ストローブ信号がアサートされるのに応じて、データはラッチされ、入力フェーズ後、ａｌｕ＿ｒｅｇ２０５ａの遷移２１５ａとａｌｕ＿ｓｒｃ２０６ａの遷移２１６ａとの間の期間中に有効である。図２Ａに示された命令の入力フェーズは半クロックサイクルであり、出力フェーズも同様に半クロックサイクルを有する。命令の入力フェーズが終わった後、中間点２１２ａで、ｓｅｑ＿ｅｏｉ２０７ａは、単一サイクル命令の最後の半クロックサイクルの間にアサートされる。ｓｅｑ＿ｌａｓｔ＿ｃｌｋ２０８は、命令の最後のクロックサイクル全体の出現を特定するためにアサートされる。図２Ａに示されるような４個の単一クロックサイクル命令に対し、ｓｅｑ＿ｌａｓｔ＿ｃｌｋ２０８ａは常にアサートされる。本発明は、入力フェーズの同期クロッキングに関して説明されているが、入力フェーズの非同期クロッキングは同様に本発明の範囲に含まれる。
【００１６】
図２Ｂは、クロック信号２０１（ｃｌｋ）の２個のクロックサイクル２０２ｂの範囲内で実行する２クロックサイクル命令のタイミングチャートを示す。２個のクロックサイクルは、４個のクロック信号遷移を含み、５番目のクロック信号遷移で終了する。これらの２個のクロックサイクル２０２ｂの間に、ソースアドレス信号（ｉｄ＿ｓｒｃ＿ａｄｒ）２０３ａおよび宛先アドレス信号（ｉｄ＿ｄｅｓｔ＿ａｄｒ）２０４ａが図示されるように発生する。ｃｌｋ２０１の間のある時点２１２ｂで、ストローブ信号は、入力データをラッチするために入力フェーズの最後でアサートされる。入力データは、ａｌｕ＿ｒｅｇの遷移２１５ｂとａｌｕ＿ｓｒｃの遷移２１６ｂとの間の期間中に有効である。図２Ｂに示された命令の入力フェーズは１．５クロックサイクルであり、出力フェーズは変わらないままであり、半クロックサイクルの長さを有する。命令の入力フェーズが終わった後、ｓｅｑ＿ｅｏｉ２０７ｂは、２クロックサイクル命令の最後の半クロックサイクルの間にアサートされる。命令の最後のクロックサイクル全体の発生を特定するため、ｓｅｑ＿ｌａｓｔ＿ｃｌｋ２０８ｂがアサートされる。２クロックサイクル命令に対し、入力フェーズは、代表的に、１．５クロックサイクルの長さであり、そのとき、入力フェーズの終了はクロック信号遷移２１２ｂで起こり、出力フェーズは半クロックサイクルの長さであり、単一クロック命令のときと変わらない。２クロックサイクル命令には、ｓｅｑ＿ｃｏｎｓｔ＿ｆｅｔｃｈ２０９によって示されるように、二つの異なるタイプがある。ｓｅｑ＿ｃｏｎｓｔ＿ｆｅｔｃｈ２０９は、コードフェッチ命令とプログラムメモリ１０５へのデータアクセス命令との間の差を示すと共に、プログラムメモリ１０５からのデータがＡＬＵソースレジスタ（図示せず）に格納されるべき時を規定するために使用される。２クロックサイクル命令２０２ｄに対して表されているように、データがプログラムメモリ１０５から読み出されるべきとき、ｓｅｑ＿ｃｏｎｓｔ＿ｆｅｔｃｈはアサートされ、プログラムメモリ１０５からの命令データフェッチ演算で使用するためフェッチ回路１０６へ供給される。
【００１７】
図２Ｃは、クロック信号２０１（ｃｌｋ）２０１の３個のクロックサイクル２０２ｃの範囲内で実行する３クロックサイクル命令のタイミングチャートを示す。３個のクロックサイクルは、６個のクロック信号遷移を含み、７番目のクロック信号遷移で終了する。図２Ｃは、図２Ａに表されているような単一クロックサイクル命令を、３クロックサイクルの命令に続いてさらに示す。これらの３個のクロックサイクル２０２ｃの間に、ソースアドレス信号（ｉｄ＿ｓｒｃ＿ａｄｒ）２０３ａおよび宛先アドレス信号２０４ａ（ｉｄ＿ｄｅｓｔ＿ａｄｒ）が図示されるように発生する。ｃｌｋ２０１の間のクロック信号遷移２１２ｃ、すなわち、入力フェーズの最後に、入力データは、ストローブ信号のアサートによってストローブされ、データバス１１０からの入力データがラッチされる。入力データバス１１０上のデータは、ａｌｕ＿ｒｅｇの遷移２１５ｃとａｌｕ＿ｓｒｃの遷移２１６ｃとの間の期間中に有効である。図２Ｃに示された命令の入力フェーズは持続期間が２．５クロックサイクルであり、その命令の出力フェーズは半クロックサイクルを有する。命令の入力フェーズが終わった後、クロック遷移２１２ｃで、ｓｅｑ＿ｅｏｉ２０７ｃは、３クロックサイクル命令の最後の半クロックサイクルの間にアサートされる。命令の最後のクロックサイクル全体の発生を特定するために、ｓｅｑ＿ｌａｓｔ＿ｃｌｋ２０８ｃが５番目のクロックサイクル遷移の際にアサートされる。３クロックサイクル命令に対し、入力フェーズは、２．５クロックサイクルの長さであり、出力フェーズは半クロックサイクルの長さであり、単一クロックサイクル命令および２クロックサイクル命令のときと変わらない。
【００１８】
図３は、命令の入力フェーズを決定するために命令の処理中にマイクロコントローラアーキテクチャで行われる処理ステップを要約する。第１のステップ３０１において、命令は、命令処理時間中にその命令を処理するマイクロコントローラに供給される。その命令は、次に、ステップ３０２において、その命令に関連付けられた少なくとも一つの特性を決定するためデコードされる。いくつかのクロック信号遷移が関連付けられたその命令の入力フェーズは、次に、ステップ３０３において、その命令に関連付けられた少なくとも一つの特性に依存して決定される。ステップ３０４を参照すると、入力データは、命令処理時間中にいくつかのクロック信号遷移が発生するのに応じて、マイクロコントローラによって使用され、命令処理時間中の１つおきのクロック信号遷移またはその付近での入力フェーズの間における入力データのラッチは除外される。図３に概要が示された処理ステップは、１クロックサイクル命令、２クロックサイクル命令、および、３クロックサイクル命令に関して、図２Ａ、２Ｂおよび２Ｃにおいて例示されている。
【００１９】
ほとんどの命令は１クロックサイクルで実行するので、入力フェーズは通常はクロックサイクルのうち第１の半クロックの間に発生し、出力フェーズは同じクロックサイクルのうち第２の半クロックに発生する。命令の出力フェーズのために使用されるデータは、入力フェーズの最後でフリップフロップに格納される。プログラムメモリアクセス、バス多重化、および、待機状態のうちの少なくとも一つが発生し、複数のクロックサイクルを利用する場合のように、命令を実行するために多数のクロックサイクルが使用される場合、命令は可変入力フェーズと固定期間の出力フェーズを有するとみなされる。出力フェーズの期間は、好ましくは、すべての命令に対して一定に保たれ、単一クロックサイクル命令の場合の期間と同じである。
【００２０】
好ましくは、ｃｌｋは、クロック誤動作を防止するために同期形式におけるリセット動作中に抑止される。リセット信号がデアサートされる前に、少なくとも１個の完全なサイクルのｃｌｋが発生する。ｓｅｑ＿ｃｏｎｓｔ＿ｆｅｔｃｈは通常は、ＭＯＶＣまたはＥＭＯＶのような２クロックサイクル命令のうちの第１のクロックサイクルの間にアサートされる。ｓｅｑ＿ｃｏｎｓｔ＿ｆｅｔｃｈはデコードされた入力命令に応答して発生するので、命令の始めにこの信号に誤作動が生じる可能性がある。さらに好ましくは、メモリ待機状態が実行中の所与の命令に実施されるならば、入力フェーズのためのクロックサイクルの個数は可変長入力フェーズの計算に自動的に取り込まれる。
【００２１】
本発明の上記の実施形態は、入力フェーズの可変的な最後において入力フェーズデータをラッチするだけで、すなわち、入力フェーズ中に発生する多数のクロック信号遷移でストローブする代わりに、単一のクロック信号遷移で１回だけストローブすることにより、かなりの電力節約を可能にさせ、シーケンサブロックの設計を簡単化するので有利である。入力データはいくつかのクロック信号遷移が発生するとラッチされ、従来技術の場合のように、１つおきの先行のクロック信号遷移における、あるいは、その付近における入力フェーズ中にストローブされるのではない。
【００２２】
よって、かなりの電力節約が可変長入力フェーズをサポートすることにより実現される。入力フェーズの長さは命令毎に決定され、入力データは、入力フェーズが必要とするクロックサイクル数とは無関係に、入力フェーズの最後だけでラッチされる。よって、入力フリップフロップは入力フェーズ毎に１回だけストローブされる。
【００２３】
多種多様な他の実施形態が、本発明の精神または範囲を逸脱することなく予想され得る。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施形態によるシーケンサブロックおよび命令デコードブロックを含むマイクロコントローラアーキテクチャを示す図である。
【図２Ａ】クロック信号（ｃｌｋ）の単一クロックサイクル以内に実行する単一クロックサイクル命令のタイミングチャートである。
【図２Ｂ】クロック信号（ｃｌｋ）の２クロックサイクル以内に実行する２クロックサイクル命令のタイミングチャートである。
【図２Ｃ】クロック信号（ｃｌｋ）の３クロックサイクル以内に実行する３クロックサイクル命令と、図２Ａに表されたタイミングチャートによる単一クロックサイクル命令を３クロックサイクルの命令に続いてさらに含むタイミングチャートである。
【図３】命令の入力フェーズを決定するために命令の処理中にマイクロコントローラアーキテクチャで行われる処理ステップを要約した図である。
【図１】
2007504527.tif 000004
【図２Ａ】
2007504527.tif 000005
【図２Ｂ】
2007504527.tif 000006
【図２Ｃ】
2007504527.tif 000007
【図３】
2007504527.tif 000008
【国際調査報告】
2007504527.tif 000009
2007504527.tif 000010
2007504527.tif 000011