説明

非同期式回路

【課題】2相式の非同期式回路の処理速度を向上させると共に、回路規模の増大を抑制する。
【解決手段】非同期式回路200は、段階的に接続された複数の回路ブロックを備え、夫々の回路ブロックが、演算回路と、該演算回路に対して2相式制御を行う制御回路を有する。モード制御回路230は、1段目の回路ブロックに対して、該回路ブロックが休止相を開始したときに初期化を開始し、最下段の回路ブロックが休止相を開始したときに稼働相を開始し、2段目の回路ブロックに対して、1段目の回路ブロックが初期化を開始したときに稼働相を開始し、1段目の回路ブロックが稼働相を開始したときに初期化を開始するように制御を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、2相式の非同期式回路に関する。
【背景技術】
【0002】
処理の高速化と、消費電力の削減は、マイクロコンピュータの開発者が常に直面している2つの課題であり、様々な視点からの技術が提案されている。
【0003】
例えば、特許文献1には、CPU動作と命令フェッチとを同時に実行可能にし、マイクロコンピュータのトータルの命令実行時間を短くできる技術が開示されている。
【0004】
また、特許文献2には、データリード/ライトサイクルと、命令コードフェッチサイクルとを並列に実行することにより、バスのメモリアクセスの効率を向上させる技術が開示されている。
【0005】
半導体集積回路のデジタル回路について、消費電力を削減する技術として非同期設計技術が知られている。この技術による非同期式回路では、回路全体を1つのクロック信号(グローバルクロック信号)で制御する同期式回路と異なり、隣接する回路ブロック同士間でやりとりするハンドシェイク信号により処理のタイミングが制御される。このような非同期式回路をマイクロコンピュータに適用することにより、マイクロコンピュータの消費電力を削減することができると考えられる。
【0006】
図11は、特許文献3における図27が示す回路に対して符号を変更したものであり、非同期式回路の一例を示す。この非同期式回路10は、2つの回路ブロック(回路ブロック20と回路ブロック30)により、入力データAとBから「(A+B)」であるDを得るものである。図示のように、非同期式回路10において、回路ブロック20は、制御回路22と演算回路24を有し、回路ブロック30は、制御回路32と演算回路34を有する。演算回路24は、「A+B」であるCを得る演算を行い、演算回路34は、「C」すなわちDを得る演算を行う。演算回路24と演算回路34の集合は、非同期式回路10のデータパスと呼ばれる。なお、各演算回路には演算結果をラッチして保持するフリップフロップ回路が含まれているが、図面においては省略されている。
【0007】
制御回路22と制御回路32は、演算回路24と演算回路34を夫々制御する。具体的には、入力信号in1が入力されると、制御回路22は、演算回路24に演算制御信号mux1を出力する。演算制御信号mux1に応じて、演算回路24は、演算「A+B」を実行する。制御回路22は、演算回路24が上記演算に必要な時間に合致する所定の時間経過後、ラッチ信号lat1を演算回路24に出力する。ラッチ信号lat1に応じて、演算回路24は、演算結果を保持する。次に、制御回路22は、出力信号out1を次段の回路ブロック30に出力する。この出力信号out1は、回路ブロック20から回路ブロック30へのハンドシェイク信号であり、回路ブロック30の入力信号in2となる。
【0008】
回路ブロック30において、入力信号in2(出力信号out1)が入力されると、制御回路32は、演算回路34に演算制御信号mux2を出力する。演算制御信号mux2に応じて、演算回路34は、演算「C」を実行する。制御回路32は、演算回路34が上記演算に必要な時間に合致する所定の時間経過後、ラッチ信号lat2を演算回路34に出力する。ラッチ信号lat2に応じて、演算回路34は、演算結果を保持する。そして、制御回路32は、出力信号out2を出力する。
【0009】
一般に、演算回路に対して、今回の演算の終了後、次の演算を開始するために、該演算回路の状態を初期状態にする所謂初期化を行う必要がある。非同期式回路の制御手法として、2相式制御方式が知られている。この方式によれば、各回路ブロックは、演算やデータラッチなどデータパスの実効的な動作を行う「稼働相」と、データパスが動作せず、上記した初期化が行われる「休止相」とが交互に繰り返される。このような2相式の非同期式回路において、例えば、Qモジュールなどを用いた2相式制御の回路により、データパスの制御が行われる(非特許文献1)。
【0010】
本明細書において、以下、非同期式回路全体が行う演算を「プロセス」といい、非同期式回路に含まれる個々の回路ブロックが行う演算や該演算のために必要なレジスタ間のデータ転送などを「基本操作」という。また、簡潔に説明するために、回路ブロックが行う「基本操作」を単に「演算」ともいう。
【0011】
例えば、図11に示す非同期式回路10は、プロセス「D=(A+B)」を実行し、回路ブロック20と回路ブロック30は、基本操作「C=A+B」と基本操作「D=C」を夫々実行する。
【0012】
通常、2相式の非同期式回路は、現在のプロセスの実行終了後、次のプロセスを実行するために初期化を行う。図12を参照して説明する。
【0013】
図12は、図11に示す非同期式回路10が実行するプロセスを2相式制御方式で実現する回路(2相式の非同期式回路)の一例を示す。図12に示す2相式非同期式回路50は、基本操作「C=A+B」を行うための回路ブロック60と、基本操作「D=C」を行うための回路ブロック70と、回路ブロック70が出力する出力信号out2を反転して回路ブロック60に入力するインバータ80を備える。回路ブロック60は制御回路62と演算回路64を有し、回路ブロック70は制御回路72と演算回路74を有する。
【0014】
制御回路62は、図11に示す非同期式回路10の制御回路22と同様に、入力信号in1が入力されると、演算回路64に演算制御信号mux1を出力する。演算制御信号mux1に応じて、演算回路64は、「A+B」の演算を実行する。制御回路62は、演算回路64が上記演算に必要な時間に合致する所定の時間の経過後、ラッチ信号lat1を演算回路64に出力する。ラッチ信号lat1に応じて、演算回路64は、演算結果を保持する。次に、制御回路62は、出力信号out1を次段の回路ブロック70に出力する。この出力信号out1は、回路ブロック60から回路ブロック70へのハンドシェイク信号であり、回路ブロック70への入力信号in2になる。
【0015】
回路ブロック70において、入力信号in2(出力信号out1)が入力されると、制御回路72は、演算回路74に演算制御信号mux2を出力する。演算制御信号mux2に応じて、演算回路74は、「C」の演算を実行する。制御回路72は、演算回路74が上記演算に必要な時間に合致する所定の時間の経過後、ラッチ信号lat2を演算回路74に出力する。ラッチ信号lat2に応じて、演算回路74は、演算結果を保持する。次に、制御回路72は、出力信号out2を出力する。この出力信号out2は、回路ブロック70から回路ブロック60へのハンドシェイク信号であり、インバータ80により反転されて、その反転信号は、回路ブロック60への入力信号in1になる。
【0016】
ここで、2相式非同期式回路50における各回路ブロックの制御回路を説明する。なお、制御回路62と制御回路72は、同様の構成を有するため、制御回路62を代表にして説明する。
【0017】
図13は、2相式非同期式回路50における制御回路62の一例を示す。図示のように、制御回路62は、遅延素子65、AND素子66、インバータ67、Qモジュール90を備える。入力信号in1は、AND素子66に入力されると共に、遅延素子65を介してQモジュール90に入力される。なお、遅延素子65は、入力信号in1の立ち上がりのみを所定量遅延させるものである。
【0018】
Qモジュール90は、ラッチ信号lat1と出力信号out1を出力する。出力信号out1は、次段の回路ブロックに出力されると共に、インバータ67にも出力され、インバータ67により反転された後にAND素子66に出力される。AND素子66は、入力信号in1と、インバータ67により反転された出力信号out1との論理積を出力し、この論理積は、演算回路64に出力される演算制御信号mux1である。
【0019】
Qモジュール90は、通常知られているものであり、AND素子91、インバータ92、C素子93、AND素子94、インバータ95を有する。C素子93は、MullerのC素子であり、全ての入力値が一致したときにのみ出力がその入力値に遷移する記憶素子である。
【0020】
図示のように、遅延素子65の出力は、AND素子91とC素子93に入力される。AND素子91は、インバータ92により反転されたC素子93の出力と、遅延素子65の出力との論理積を出力する。この論理積は、演算回路64に出力されるラッチ信号lat1であり、演算回路64に出力されると共に、C素子93とインバータ95にも出力される。
【0021】
C素子93の出力は、インバータ92と、AND素子94に出力される。AND素子94は、C素子93の出力と、インバータ95により反転されたラッチ信号lat1との論理積を出力する。この論理積は、次段の回路ブロックへのハンドシェイク信号(出力信号out1)であり、次段の回路ブロックに出力されると共に、インバータ67にも出力される。
【0022】
図14は、初期状態において各信号が「0」であるとした場合に、2相式非同期式回路50における各信号の遷移を示すタイミングチャートの例を示す。なお、分かりやすいように、図14及び以降に用いる各タイミングチャートにおいて、必要がある場合を除き、ゲート間の遅延を示さない。
【0023】
図示のように、タイミングt0において、入力信号in1が立ち上がると、演算制御信号mux1も立ち上がる。それに応じて、演算回路64は、演算を開始する。
【0024】
タイミングt0から遅延素子65の遅延量分の時間(t1−t0)が経過してタイミングt1になると、遅延素子65の出力も立ち上がり、「1」になる。そのため、ラッチ信号lat1も立ち上がる。これに応じて、演算回路64はラッチ動作をし、演算結果を保持する。
【0025】
C素子93への2つの入力(遅延素子65の出力と、ラッチ信号lat1)が共に「1」となったため、C素子93の出力が「0」から「1」に遷移する。
【0026】
C素子93の出力が「1」になると、インバータ92を介してAND素子91に入力される信号が「0」になるため、タイミングt2において、AND素子91の出力すなわちラッチ信号lat1は、立ち下がる。
【0027】
ラッチ信号lat1が立ち下がると、AND素子94の出力すなわち出力信号out1(入力信号in2)は、立ち上がる。これに応じて、AND素子66の出力すなわち演算制御信号mux1は立ち下がる。
【0028】
また、出力信号out1(入力信号in2)の立ち上がりに応じて、演算制御信号mux2が立ち上がり、演算回路74は、演算を開始する。
【0029】
その後、制御回路72内の、制御回路62における遅延素子65に対応する遅延素子の遅延量分の時間(t3−t2)が経過してタイミングt3になると、ラッチ信号lat2は、立ち上がり、その後、タイミングt4で立ち下がる。これに応じて、出力信号out2が立ち上がり、演算制御信号mux2が立ち下がる。
【0030】
インバータ80により反転された出力信号out2が入力信号in1になるため、タイミングt4における出力信号out2の立ち上がりに応じて、入力信号in1は、立ち下がる。
【0031】
タイミングt4における入力信号in1の立ち下がりに応じて、タイミングt5において、C素子93の出力が「1」から「0」に遷移したため、出力信号out1(入力信号in2)は、立ち下がる。
【0032】
タイミングt5における入力信号in2の立ち下がりに応じて、タイミングt6において、制御回路72内のC素子の出力が「1」から「0」に遷移したため、出力信号out2は、立ち下がる。これにて、回路ブロック60の制御回路62各入出力信号(入力信号in1、演算制御信号mux1、ラッチ信号lat1、出力信号out1)と、回路ブロック70の制御回路72の各入出力信号(入力信号in2、演算制御信号mux2、ラッチ信号lat2、出力信号out2)は、全て「0」になり、回路ブロック60と回路ブロック70は、初期状態に戻る。
【0033】
また、タイミングt6において、出力信号out2の立ち下がりに応じて、入力信号in1は、立ち上がる。その後、タイミングt6からタイミングt9まで、各信号は、タイミングt0からタイミングt6までの遷移をする。同様に、タイミングt9からタイミングt11までも、同様な遷移がなされる。
【0034】
図14において、タイミングt0からタイミングt2までは、回路ブロック60の演算回路64が演算を行う期間であり、回路ブロック60の稼働相になる。また、タイミングt2からタイミングt6までは、演算回路64が演算を行っていない期間であり、回路ブロック60の休止相になる。同様に、タイミングt2からタイミングt4までは、回路ブロック70の稼働相であり、タイミングt4からタイミングt7までは、回路ブロック70の休止相である。
【0035】
休止相は、回路ブロックの初期化を行うためのものである。回路ブロックに含まれる演算回路が動作しないこの休止相の存在により、2相式の非同期式回路の処理が速くできないという問題がある。
【0036】
特許文献3には、2相式の非同期式回路の休止相を無くすことで処理速度を向上させる技術が開示されている。この技術は、図12に示す2相式非同期式回路50における制御回路(制御回路62、制御回路72)の代わりに、例えば図15に示す制御回路100を用いる。
【0037】
図15は、特許文献3における図9に対して符号を変更したものであり、図中入力信号in、出力信号out、演算制御信号mux、ラッチ信号latは、図13に示す入力信号in1、出力信号out1、演算制御信号mux1、ラッチ信号lat1に夫々対応する。
【0038】
該制御回路100は、req信号生成回路110、遅延回路D1、遅延回路D3、演算実行制御信号生成回路120を備える。
【0039】
req信号生成回路110は、C素子112、論理積回路114、インバータ116、インバータ118、遅延回路D2を備える。演算実行制御信号生成回路120は、論理和回路122を備える。
【0040】
入力信号inは、C素子112の一方の入力端C1に入力されると共に、インバータ116を介して論理積回路114の一方の入力端に入力される。論理積回路114の他方の入力端には、C素子112の出力端C0に接続される。論理積回路114の出力はreq信号であり、このreq信号は、遅延回路D2の入力端に入力され、遅延回路D2の出力端は、インバータ118を介してC素子112の他方の入力端に接続される。遅延回路D2が出力した信号、すなわちインバータ118の入力側の信号はC2である。また、図示していないが、インバータ118の出力側の信号は、以降「C2_bar」で表記する。
【0041】
req信号は、さらに、論理和回路122の一方の入力端に入力されると共に、遅延回路D1に入力される。遅延回路D1の出力となるack信号は、ラッチ信号latとして制御回路100に接続された演算回路に出力されると共に、論理和回路122の他方の入力端と、遅延回路D3に入力される。遅延回路D3の出力は、次段の回路ブロックへ出力される出力信号outである。論理和回路122の出力は、演算回路に出力する演算制御信号muxである。
【0042】
なお、制御回路100における遅延回路D1は、入力(ここではreq信号)の立ち下がりのみを遅延させるものである。
【0043】
図16は、特許文献3における図13であり、図15に示す制御回路100の各信号の遷移を示すタイミングチャートである。図中矢印は、因果関係を示す。
【0044】
図16に示すように、初期状態のタイミングt0において、インバータ118の出力側の信号C2_barを除き、各信号が「0」である。
タイミングt1において、入力信号inが立ち上がると、C素子112の2つの入力が同値の「1」になるので、出力端の信号C0が立ち上がる。
【0045】
タイミングt2において、入力信号inが立ち下がると、C素子112の一方の入力端C1の信号が立ち下がるが、他方の入力端の信号C2_barが「1」のままであるので、C素子112は、しばらくの間「1」を保持する。従って、論理積回路114の出力req信号は、立ち上がる。
【0046】
タイミングt2におけるreq信号の立ち上がり以降、ack信号、演算制御信号mux、ラッチ信号lat信号、出力信号outは、立ち上がる。
【0047】
req信号が立ち上がるタイミングt2から遅延回路D2の遅延量分の時間が経過したタイミングで、req信号の遅延信号である信号C2が立ち上がる。これに応じて、インバータ118の出力側の信号C2_barは、立ち下がる。
【0048】
これで、C素子112の2つの入力が「0」になるので、タイミングt3において、信号C0が立ち下がり、req信号も立ち下がる。
【0049】
req信号の立ち下がりを受けて、信号C2が立ち下がり、信号C2_barが立ち上がる。
【0050】
以上の動作の後、タイミングt6で、制御回路100の入力信号in、出力信号out、演算制御信号mux、ラッチ信号latは、全て「0」になる。これにて、制御回路100を備えた回路ブロックは、次の基本操作を開始することができる。
【先行技術文献】
【特許文献】
【0051】
【特許文献1】特開昭63−047833号公報
【特許文献2】特開昭63−000749号公報
【特許文献3】特開2008−181170号公報
【非特許文献】
【0052】
【非特許文献1】電子情報通信学会論文誌D−1,J78巻,第4号,pp.416−423,1995年4月
【発明の概要】
【発明が解決しようとする課題】
【0053】
ところで、特許文献3に開示された技術では、休止相を無くすことができるものの、回路規模が大きくなってしまうという問題がある。例えば、図16に示すように、制御回路100は、3つの遅延回路(D1、D2、D3)が必要である。非同期式回路に含まれる回路ブロックの段数が多いほど、制御回路乃至遅延回路の数も多くなり、回路規模は増大する。
【0054】
本発明は、上記事情に鑑みてなされたものであり、2相式の非同期式回路の処理速度を向上させると共に、回路規模の増大を抑制する技術を提供する。
【課題を解決するための手段】
【0055】
本発明の一つの態様は、非同期式回路である。この非同期式回路は、段階的に接続された複数の回路ブロックを備え、夫々の回路ブロックが、演算回路と、該演算回路に対して2相式制御を行う制御回路を有する。
【0056】
この非同期式回路は、さらにモード制御回路を備える。該モード制御回路は、1段目の回路ブロックに対して、該回路ブロックが休止相を開始したときに初期化を開始し、最下段の回路ブロックが休止相を開始したときに稼働相を開始し、2段目の回路ブロックに対して、1段目の回路ブロックが初期化を開始したときに稼働相を開始し、1段目の回路ブロックが稼働相を開始したときに初期化を開始するように制御を行う。
【0057】
なお、上記態様の回路を方法や装置に置き換えて表現したもの、上記態様の回路を備えたプロセッサなども、発明の態様としては有効である。
【発明の効果】
【0058】
本発明にかかる技術によれば、2相式の非同期式回路の処理速度を向上させると共に、回路規模の増大を抑制できる。
【図面の簡単な説明】
【0059】
【図1】本発明の第1の実施の形態にかかる非同期式回路を示す図である。
【図2】図1に示す非同期式回路におけるモード制御回路の回路構成例を示す図である(その1)。
【図3】図1に示す非同期式回路におけるモード制御回路の回路構成例を示す図である(その2)。
【図4】図3に示すモード制御回路を適用した図1に示す非同期式回路を示す図である。
【図5】図4に示す非同期式回路における各信号の遷移を示すタイミングチャートである。
【図6】本発明の第2の実施の形態にかかるマイクロコンピュータを示す図である。
【図7】図6に示すマイクロコンピュータに備えられた非同期式回路における各信号の遷移を示すタイミングチャートである。
【図8】従来の2相式の非同期式回路を備えたマイクロコンピュータを示す図である。
【図9】図8に示すマイクロコンピュータに備えられた非同期式回路における各信号の遷移を示すタイミングチャートである。
【図10】図6と図8に示すマイクロコンピュータの処理速度の差異を説明するための図である。
【図11】従来の非同期式回路を示す図である。
【図12】従来の2相式の非同期式回路を示す図である。
【図13】図12に示す2相式の非同期式回路の各回路ブロックの制御回路の例を示す図である。
【図14】図12に示す2相式の非同期式回路における各信号の遷移を示すタイミングチャートである。
【図15】特許文献3に開示された制御回路を示す図である。
【図16】図15に示す制御回路における各信号の遷移を示すタイミングチャートである。
【発明を実施するための形態】
【0060】
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0061】
<第1の実施の形態>
図1は、本発明の第1の実施の形態にかかる非同期式回路200を示す。この非同期式回路200は、1段目の回路ブロックとなる回路ブロック210と、2段目の回路ブロックとなる回路ブロック220を備える。回路ブロック210は、制御回路212と演算回路214を有し、回路ブロック220は、制御回路222と演算回路224を有する。該非同期式回路200は、2相式の非同期式回路であり、制御回路212と制御回路222は、夫々演算回路214と演算回路224に対して2相式制御を行う。
【0062】
制御回路212と制御回路222は、2相式制御を行う通常の制御回路と同様の動作をするものであり、例えば、図13に示す制御回路62と同様に、制御回路212は、回路ブロック210に入力される信号in(入力信号in1)の立ち上がりに応じて演算制御信号mux1を立ち上げて演算回路214に演算を開始させることにより稼働相を開始させ、所定時間経過後にラッチ信号lat1を出力することにより演算回路214の図示しないフリップフロップに演算結果をラッチさせると共に演算制御信号mux1を立ち下げることにより演算回路214に演算を停止させることにより休止相を開始させる。また、休止相の開始と共に、出力する信号out(出力信号out1)を立ち上げる。また、入力信号in1の立ち下がりにより初期化を開始し、初期化完了時に出力信号out1を立ち下げる。
【0063】
同様に、制御回路222も、回路ブロック220に入力される信号in(入力信号in2)の立ち上がりに応じて演算制御信号mux2を立ち上げて演算回路224に演算を開始させることにより稼働相を開始させ、所定時間経過後にラッチ信号lat2を出力することにより演算回路224の図示しないフリップフロップに演算結果をラッチさせると共に演算制御信号mux2を立ち下げることにより演算回路224に演算を停止させることにより休止相を開始させる。また、休止相の開始と共に、出力する信号out(出力信号out2)を立ち上げる。また、入力信号in2の立ち下がりにより初期化を開始し、初期化完了時に出力信号out2を立ち下げる。
【0064】
非同期式回路200は、さらに、モード制御回路230を備える。該モード制御回路230は、1段目の回路ブロック(回路ブロック210)に対して、回路ブロック210が休止相を開始したときに初期化を開始し、最下段の回路ブロック(ここでは回路ブロック220)が休止相を開始したときに稼働相を開始するように制御を行うと共に、2段目の回路ブロック(ここでは回路ブロック220)に対して、1段目の回路ブロックすなわち回路ブロック210が初期化を開始したときに稼働相を開始し、回路ブロック210が稼働相を開始したときに初期化を開始するように制御を行う。
【0065】
図2は、このような制御を実現するモード制御回路230の回路構成の一例を示す。図2に示すように、該モード制御回路230は、2段目の回路ブロック(回路ブロック220)の入力信号in2と、1段目の回路ブロック(回路ブロック210)が出力する出力信号out1とが入力されるOR素子232、最下段の回路ブロック(回路ブロック220)が出力する出力信号out2を反転する第1のインバータ233、OR素子232と第1のインバータ233の出力が入力される第1のAND素子234、第1のAND素子234の出力を反転して回路ブロック220の入力信号in1として出力する第2のインバータ235、第2のインバータ235の出力を反転して入力信号in2として出力する第3のインバータ231を備える。
【0066】
なお、非同期式回路200全体の動作の開始と停止を制御するイネーブル信号がある場合に、図3に示すようにモード制御回路230を構成することができる。
【0067】
図3に示すモード制御回路230は、図2に示す回路構成に対して、イネーブル信号ENと、第2のインバータ235の出力とが入力される第2のAND素子236をさらに設けたものである。この場合、入力信号in1は、第2のAND素子236の出力となり、回路ブロック210に入力される。
【0068】
分かりやすいように、例として図3に示すモード制御回路230回路を適用した非同期式回路200を図4に示す。
【0069】
図5は、図4に示す非同期式回路200における各信号の遷移を示すタイミングチャートである。図12に示す2相式非同期式回路50における各信号の遷移と比較するために、図4に示す非同期式回路200における演算回路214と演算回路224が、2相式非同期式回路50における演算回路64と演算回路74と夫々同様の演算を行い、非同期式回路200における制御回路212と制御回路222の遅延素子が、2相式非同期式回路50における制御回路62と制御回路72の遅延素子と夫々同様の遅延量を有するとする。
【0070】
非同期式回路200の動作開始前、図5に示す各信号が「0」である。
タイミングT0において、イネーブル信号ENが立ち上がることにより、入力信号in1も立ち上がる。入力信号in1の立ち上がりに応じて、演算制御信号mux1も立ち上がり、演算回路214は、演算を開始し、稼働相に入る。なお、入力信号in2すなわち第3のインバータ231の出力は、「0」のままである。
【0071】
タイミングT0から、制御回路212内の、入力信号の立ち上がりのみを遅延させる遅延素子の遅延量分の時間(T1−T0)が経過してタイミングT1になると、ラッチ信号lat1が立ち上がる。これに応じて、演算回路214はラッチ動作をし、演算結果を保持する。
【0072】
そして、タイミングT2において、ラッチ信号lat1が立ち下がり、演算制御信号mux1が立ち下がり、出力信号out1は立ち上がる。これにて、回路ブロック210は、休止相に入る。
【0073】
出力信号out1が立ち上がると、OR素子232の出力が「1」になる。出力信号out2が「0」のままであるため、第1のインバータ233の出力も「1」のままである。従って、第1のAND素子234の出力が「1」になり、第2のインバータ235の出力が「0」になる。そのため、入力信号in1は、立ち下がる。これにより、回路ブロック210における制御回路212は、初期化を開始する。タイミングT2における入力信号in1の立ち下がりに応じて、タイミングT3において、出力信号out1が立ち下がる。これにて、制御回路212の初期化が完了する。
【0074】
また、タイミングT2において、第2のインバータ235の出力の立ち下がりに応じて、入力信号in2は立ち上がる。入力信号in2の立ち上がりに応じて、演算制御信号mux2も立ち上がり、演算回路224は、演算を開始し、稼働相に入る。
【0075】
その後、制御回路222内の遅延素子の遅延量分の時間(T4−T2)が経過してタイミングT4になると、ラッチ信号lat2が立ち上がる。これに応じて、演算回路224は、ラッチ動作をし、演算結果を保持する。
【0076】
そして、タイミングT5において、ラッチ信号lat2が立ち下がり、演算制御信号mux2が立ち下がり、出力信号out2は立ち上がる。これにて、回路ブロック220は、休止相に入る。また、非同期式回路200による1回目のプロセスが完了する。
【0077】
出力信号out2が立ち上がると、第1のインバータ233の出力が「0」になる。そのため、第1のAND素子234の出力は「0」になり、第2のインバータ235の出力は「1」になる。従って、入力信号in2は立ち下がり、入力信号in1は立ち上がる。これにて、回路ブロック210は稼働相に入り、非同期式回路200による2回目のプロセスは開始し、回路ブロック220は、初期化を開始する。
【0078】
そして、タイミングT6において、制御回路222の初期化も完了し、出力信号out2は、立ち下がる。
【0079】
このように、非同期式回路200において、回路ブロック210は、自身の休止相の開始と共に初期化を開始するため、回路ブロック220が休止相を開始したときに直ちに次のプロセスのための稼働相を開始することができる。
【0080】
前述したように、従来の2相式の非同期式回路では、1段目の回路ブロックは、最下段の回路ブロックの休止相の開始と共に初期化を開始するため、次のプロセスのための稼働相を開始するのは、最下段の回路ブロックの休止相の開始から所定の時間が経過した後である。従って、本発明の実施の形態にかかるモード制御回路230は、従来の2相式の非同期式回路より高い処理速度を得ることができる。
【0081】
これは、図5と図14を比較すれば一目瞭然である。
図14において、タイミングt0からタイミングt2までは、図13に示す2相式非同期式回路50における回路ブロック60の稼働相であり、タイミングt2からタイミングt6までは、回路ブロック60の休止相である。また、タイミングt2からタイミングt4までは、回路ブロック70の稼働相であり、タイミングt4からタイミングt7までは、回路ブロック70の休止相である。
【0082】
図5においては、タイミングT0からタイミングT2までは、図4に示す非同期式回路200における回路ブロック210の稼働相であり、タイミングT2からタイミングT5までは、回路ブロック210の休止相である。また、タイミングT2からタイミングT5までは、回路ブロック220の稼働相であり、タイミングT5からタイミングT7までは、回路ブロック220の休止相である。
【0083】
ここで、回路ブロック210の稼働相の長さ(T2−T0)は、回路ブロック60の稼働相の長さ(t2−t0)と同一である。しかし、回路ブロック210の休止相の長さ(T5−T2)は、回路ブロック60の休止相の長さ(t6−t2)より大きく短縮されている。
【0084】
また、回路ブロック220の稼働相の長さ(T5−T2)は、回路ブロック70の稼働相の長さ(t4−t2)と同一であるが、回路ブロック220の休止相の長さ(T7−T5)は、回路ブロック70の休止相の長さ(t7−t4)より大きく短縮されている。
【0085】
その結果、現在のプロセスの開始から次のプロセスの開始までの所要時間の長さは、非同期式回路200において「T5−T0」であり、2相式非同期式回路50において「T5−T0」より長い「t6−t0」である。すなわち、回路ブロック210は、2相式非同期式回路50より速い処理速度を有する。
【0086】
さらに、本実施の形態の非同期式回路200は、処理速度を速くするために、通常の2相式の非同期式回路よりモード制御回路230のみが増えている。例えば図2に示すモード制御回路230は、3つのインバータと、1つのOR素子と、1つのAND素子で構成されており、特許文献3に記載された手法を実現するために必要な回路規模の増加量が小さい。
【0087】
<第2の実施の形態>
前述した第1の実施の形態にかかる非同期式回路200は、本発明の技術を2段の回路ブロックを備える2相式の非同期式回路に適用したものである。本発明の技術は、2段以上の任意の数の回路ブロックを備える2相式の非同期式回路にも適用することができると共に、適用することにより、上述した効果を得ることができる。ここで、第2の実施の形態として、3段以上の回路ブロックを備える2相式の非同期式回路に本発明を適用した例を説明する。
【0088】
図6は、本発明の第2の実施の形態にかかるマイクロコンピュータ300を示す図である。マイクロコンピュータ300は、命令を実行する非同期式回路310と、命令などを格納するROM320を備え、非同期式回路310は、ROM320から命令をフェッチして実行する。
【0089】
非同期式回路310は、階段的に接続されたn段(n:3以上の整数)の回路ブロック1〜nと、モード制御回路330を有する。
【0090】
各回路ブロック1〜nは、夫々制御回路と演算回路を有する。例えば、回路ブロック1は、制御回路1Aと演算回路1Bを有し、回路ブロック2は、制御回路2Aと演算回路2Bを有する。また、回路ブロック3は、制御回路3Aと演算回路3Bを有し、回路ブロックnは、制御回路nAと演算回路nBを有する。
【0091】
回路ブロック1〜nは、図4に示す非同期式回路200の回路ブロック210と回路ブロック220と同様の動作をする。すなわち、該回路ブロックに入力される信号inの立ち上がりに応じて演算制御信号muxを立ち上げて演算回路に演算を開始させることにより稼働相を開始させ、所定時間経過後にラッチ信号latを出力することにより演算回路の図示しないフリップフロップに演算結果をラッチさせると共に演算制御信号muxを立ち下げることにより演算回路に演算を停止させることにより休止相を開始させる。また、休止相の開始と共に、出力する信号outを立ち上げる。また、入力信号inの立ち下がりにより初期化を開始し、初期化完了時に出力信号outを立ち下げる。
【0092】
回路ブロック1〜nは、命令のフェッチ、命令のデコード、命令の実行、命令の実行に伴う図示しないメモリへのアクセス、命令の実行の完了に伴うメモリへのライトバックを行うものであり、これらの回路ブロックは、上述した各処理を夫々行う。
【0093】
例えば、1段目の回路ブロック(回路ブロック1)における演算回路1Bは、ROM320から命令をフェッチするものであり、2段目の回路ブロック(回路ブロック2)における演算回路2Bは、演算回路1Bがフェッチした命令をデコードするものである。また、最下段の回路ブロック(回路ブロックn)は、メモリへのライトバックを行う。
【0094】
モード制御回路330は、2段目の回路ブロック(回路ブロック2)が出力する出力信号out2の代わりに、最下段の回路ブロック(回路ブロックn)が出力する出力信号outnが入力される点を除き、図4に示す非同期式回路200のモード制御回路230と同様である。
【0095】
モード制御回路330は、入力信号in1を回路ブロック1の制御回路1Aに出力する。また、モード制御回路330は、第3のインバータ231により、第2のインバータ235の出力を反転してOR素子232の一方の入力端に出力すると共に、入力信号in2として制御回路2Aに出力する。
【0096】
制御回路1Aは、出力信号out1をOR素子232の他方の入力端に出力する。
【0097】
2段目から(n−1)段目までの各回路ブロックの制御回路は、出力信号outを次段の入力信号inとして次段の回路ブロックの制御回路に出力する。例えば、図示のように、制御回路2Aは、出力信号out2を入力信号in3として制御回路3Aに出力する。制御回路3Aは、出力信号out3を入力信号in4として図示しない4段目の回路ブロックの制御回路に出力する。また、図示しない(n−1)段目の回路ブロック(n−1)は、出力信号out(n−1)を回路ブロックnの入力信号innとして制御回路nAに出力する。
【0098】
前述したように、回路ブロックnの制御回路nAは、出力信号outnをモード制御回路330の第1のインバータ233に出力する。
【0099】
図7は、図6に示すマイクロコンピュータ300における各信号の遷移を示すタイミングチャートである。
【0100】
非同期式回路310の動作開始前、図7に示す各信号が「0」である。
タイミングT10において、イネーブル信号ENが立ち上がることにより、入力信号in1も立ち上がる。入力信号in1の立ち上がりに応じて、演算制御信号mux1も立ち上がり、演算回路1Bは、演算(ここではフェッチ)を開始し、稼働相に入る。なお、入力信号in2すなわち第3のインバータ231の出力は、「0」のままである。
【0101】
タイミングT10から、制御回路1A内の遅延素子の遅延量分の時間が経過してタイミングT11になると、ラッチ信号lat1が立ち上がる。これに応じて、演算回路1Bはラッチ動作をし、演算結果(ラッチした命令)を保持する。
【0102】
そして、タイミングT12において、ラッチ信号lat1が立ち下がり、演算制御信号mux1が立ち下がり、出力信号out1は立ち上がる。これにて、回路ブロック1は、休止相に入る。
【0103】
出力信号out1が立ち上がると、OR素子232の出力が「1」になる。出力信号out2が「0」のままであるため、第1のインバータ233の出力も「1」のままである。従って、第1のAND素子234の出力が「1」になり、第2のインバータ235の出力が「0」になる。そのため、入力信号in1は、立ち下がる。これにより、回路ブロック1における制御回路1Aは、初期化を開始する。また、タイミングT12における入力信号in1の立ち下がりに応じて、タイミングT13において出力信号out1が立ち下がる。これにて、制御回路1Aの初期化が完了する。
【0104】
また、タイミングT12において、第2のインバータ235の出力の立ち下がりに応じて、入力信号in2は立ち上がる。入力信号in2の立ち上がりに応じて、演算制御信号mux2も立ち上がり、演算回路2Bは、演算を開始し、稼働相に入る。
【0105】
その後、制御回路2A内の遅延素子の遅延量分の時間が経過してタイミングT14になると、ラッチ信号lat2が立ち上がる。これに応じて、演算回路2Bは、ラッチ動作をし、演算結果を保持する。
【0106】
そして、タイミングT15において、ラッチ信号lat2が立ち下がり、演算制御信号mux2が立ち下がり、出力信号out2は立ち上がる。これにて、回路ブロック2は、休止相に入る。
【0107】
出力信号out2が立ち上がると、入力信号in3が立ち上がる。入力信号in3の立ち上がりに応じて、演算制御信号mux3も立ち上がり、演算回路3Bは、演算を開始し、稼働相に入る。
【0108】
その後、制御回路3A内の遅延素子の遅延量分の時間が経過すると、ラッチ信号lat3が立ち上がり、演算回路3Bは、ラッチ動作をし、演算結果を保持する。そして、タイミングT16において、ラッチ信号lat3が立ち下がり、演算制御信号mux3が立ち下がり、出力信号out3は立ち上がる。これにて、回路ブロック3は、休止相に入る。
【0109】
以降の各段の回路ブロックは、前段からの出力信号outの立ち上がりに応じて稼働相を開始し、所定時間経過後、演算結果を保持すると共に、ラッチ信号latと演算制御信号muxを立ち下げ、出力信号outを立ち上げて、休止相に入る。
【0110】
やがて、タイミングT17において、最下段の回路ブロックnからの出力信号outnが立ち上がり、回路ブロックnが休止相に入る。
【0111】
出力信号outnが立ち上がると、モード制御回路330における第1のインバータ233の出力が「0」になる。そのため、第1のAND素子234の出力は「0」になり、第2のインバータ235の出力は「1」になる。従って、入力信号in1は立ち上がり、入力信号in2は立ち下がる。これにて、回路ブロック1は稼働相に入り、非同期式回路200による2回目のプロセスは開始し、回路ブロック2は、初期化を開始する。
【0112】
以降、タイミングT17〜T19までの期間内で、タイミングT10〜T17までの同様の信号遷移がなされる。このような遷移は、タイミングT19以降も繰り返される。
【0113】
図7から分かるように、マイクロコンピュータ300において、非同期式回路310の1段目の回路ブロック1は、自身の休止相の開始と共に初期化を開始するため、最下段の回路ブロックnが休止相を開始したときに直ちに次のプロセスのための稼働相を開始することができる。
【0114】
マイクロコンピュータ300の処理速度と、図8に示すマイクロコンピュータ400の処理速度とを比較してみる。
【0115】
図8に示すマイクロコンピュータ400は、命令を実行する非同期式回路410と、命令などを格納するROM320を備え、非同期式回路410は、ROM320から命令をフェッチして実行する。
【0116】
非同期式回路410は、従来知られている2相式の非同期式回路であり、n段の回路ブロック(回路ブロック1〜n)が段階的に接続されている。これらの回路ブロックは、図6に示すマイクロコンピュータ300における非同期式回路310の各回路ブロックと夫々同様である。但し、回路ブロック1からの出力信号out1は、回路ブロック2の入力信号in2として回路ブロック2に出力され、最下段の回路ブロックnからの出力信号outnは、インバータ422に出力されるようになっている。また、インバータ422の出力と、イネーブル信号ENは、AND素子424に入力され、AND素子424の出力は、回路ブロック1の入力信号in1になっている。
【0117】
図9は、図8に示すマイクロコンピュータ400における各信号の遷移を示すタイミングチャートである。
【0118】
非同期式回路410の動作開始前、図8に示す各信号が「0」である。
タイミングt20において、イネーブル信号ENが立ち上がることにより、入力信号in1も立ち上がる。入力信号in1の立ち上がりに応じて、演算制御信号mux1も立ち上がり、演算回路1Bは、演算(ここではフェッチ)を開始し、稼働相に入る。
【0119】
タイミングt20から、制御回路1A内の遅延素子の遅延量分の時間が経過すると、ラッチ信号lat1が立ち上がる。これに応じて、演算回路1Bはラッチ動作をし、演算結果(ラッチした命令)を保持する。
【0120】
そして、タイミングt21において、ラッチ信号lat1が立ち下がり、演算制御信号mux1が立ち下がり、出力信号out1は立ち上がる。これにて、回路ブロック1は、休止相に入る。
【0121】
出力信号out1が立ち上がると、入力信号in2も立ち上がる。これに応じて演算制御信号mux2も立ち上がり、演算回路2Bは、演算を開始し、稼働相に入る。
【0122】
タイミングt21から、制御回路2A内の遅延素子の遅延量分の時間が経過すると、ラッチ信号lat2が立ち上がる。これに応じて、演算回路2Bはラッチ動作をし、演算結果を保持する。
【0123】
そして、タイミングt22において、ラッチ信号lat2が立ち下がり、演算制御信号mux2が立ち下がり、出力信号out2は立ち上がる。これにて、回路ブロック2は、休止相に入る。
【0124】
以降の各段の回路ブロックは、前段からの出力信号outの立ち上がりに応じて稼働相を開始し、所定時間経過後、演算結果を保持すると共に、ラッチ信号latと演算制御信号muxを立ち下げ、出力信号outを立ち上げて、休止相に入る。
【0125】
やがて、タイミングt23において、最下段の回路ブロックnからの出力信号outnが立ち上がり、回路ブロックnが休止相に入る。
【0126】
出力信号outnが立ち上がると、インバータ422の出力が「0」になる。そのため、AND素子424の出力すなわち入力信号in1は、立ち下がる。これにて、回路ブロック1は、初期化を開始する。
【0127】
入力信号in1の立ち下がりに応じて、タイミングt24において、出力信号out1が立ち下がり、制御回路1Aの初期化が完了する。これに応じて入力信号in2が立ち下がり、制御回路2Aの初期化が開始する。
【0128】
以降の各回路ブロックは、前段の回路ブロックの初期化の完了時に初期化を開始し、やがてタイミング26において、出力信号outnが立ち下がり、下段の回路ブロックnの初期化が完了する。
【0129】
出力信号outnが立ち下がると、インバータ422の出力が「1」になる。そのため、AND素子424の出力すなわち入力信号in1は、立ち上がる。これにて、回路ブロック1は、次の稼働相を開始する。
【0130】
図7と図9を比較すると分かるように、現在のプロセスから次のプロセスの開始までの所要時間の長さは、図6に示すマイクロコンピュータ300においては「T17−T10」であり、図8に示すマイクロコンピュータ400においては「t26−t20」であり、マイクロコンピュータ300の処理速度は、マイクロコンピュータ400の処理速度より速いことが明らかである。
【0131】
前述したように、プロセッサなどのマイクロコンピュータが1つの命令を実行するステージは、通常、命令のフェッチ、命令のデコード、命令の実行、命令の実行に伴うメモリへのアクセス、命令の実行の完了に伴うメモリへのライトバックに分けられる。ここで、図6に示すマイクロコンピュータ300と図8に示すマイクロコンピュータ400内の非同期式回路の各回路ブロックが上述した各ステージの処理を夫々行うものであるとして、マイクロコンピュータ300とマイクロコンピュータ400の処理速度を比較する。なお、この場合、回路ブロックの段数nが5である。
【0132】
図10において、FE、DE、EX、MA、WBは、「命令のフェッチ」、「命令のデコード」、「命令の実行」、「メモリへのアクセス」、「メモリへのライトバック」を夫々意味する。また、実線は当該ステージの処理を行う回路ブロックが稼働相にあることを示し、点線は、当該ステージの処理を行う回路ブロックが初期化を行っていることを示す。
【0133】
まず、タイミングT40において、マイクロコンピュータ400の非同期式回路410の回路ブロック1は、稼働相を開始し、命令をフェッチする。同様に、マイクロコンピュータ300の非同期式回路310の回路ブロック1も、タイミングT40において、稼働相を開始し、命令をフェッチする。
【0134】
タイミングT41において、非同期式回路410の回路ブロック1が命令のフェッチ処理を完了し、休止相に入る。同様に、非同期式回路310の回路ブロック1も命令のフェッチ処理を完了し、休止相に入る。
【0135】
非同期式回路410の場合、タイミングT41において回路ブロック1が休止相に入ると、回路ブロック2〜5が順次稼働相に入る。これにより、命令のデコード、命令の実行、メモリへのアクセス、メモリへのライトバックが順次行われる。そして、タイミングT42において、最下段の回路ブロック5は、メモリへのライトバックを完了し、休止相に入る。
【0136】
非同期式回路310の場合も同様に、タイミングT41において回路ブロック1が休止相に入ると、回路ブロック2〜5が順次稼働相に入り、タイミングT42において最下段の回路ブロック5は、メモリへのライトバックを完了し、休止相に入る。しかし、非同期式回路310の場合において、タイミングT41において、さらに、回路ブロック1は、初期化を開始する。
【0137】
非同期式回路410の場合、タイミングT42から、回路ブロック1〜5は、順次初期化を開始する。そして、タイミングT43において、最下段の回路ブロック5は、初期化を完了する。これに応じて、回路ブロック1は、稼働相を開始し、命令をフェッチする。
【0138】
一方、非同期式回路310の場合、回路ブロック1は、タイミングT42において既に初期化を完了したため、タイミングT42においては、稼働相を開始し、命令をフェッチする。また、タイミングT42から、回路ブロック2〜5は、順次初期化を開始する。そして、タイミングT43より前のタイミングにおいて、回路ブロック5の初期化が完了する。その後、タイミングT42から開始された回路ブロック1によるフェッチ処理の完了に伴って、回路ブロック2は、稼働相に入り、命令のデコードを実行する。
【0139】
図示のように、タイミングT43において、非同期式回路410では、回路ブロック1が稼働相を開始するが、非同期式回路310では、回路ブロック1の稼働相が既に終了し、回路ブロック2は稼働相にある。
【0140】
すなわち、第2の実施の形態のマイクロコンピュータ300において、非同期式回路310は、回路ブロック1は、自身の休止相の開始と共に初期化を開始し、最下段の回路ブロック5が休止相を開始したときに稼働相を開始する。また、回路ブロック2は、回路ブロック1が初期化を開始したときに稼働相を開始し、回路ブロック1が稼働相を開始したときに初期化を開始する。こうすることにより、従来の非同期式回路410より速い処理速度を実現している。
【0141】
また、通常、プロセッサが実行する各ステージの処理のうち、「命令のフェッチ」は、他のステージの処理より時間がかかると共に、最初のステージにおいて実行される。本発明の第2の実施の形態のマイクロコンピュータ300によれば、回路ブロック1によるフェッチの実行中に他の回路ブロックの初期化を行うことができ、他の回路ブロックによる処理の実行中に回路ブロック1の初期化を行うことができるため、全体的に処理効率が良い。
【0142】
さらに、マイクロコンピュータ300における非同期式回路310は、3段以上の回路ブロックを有するにも関わらず、モード制御回路330は、図4に示す、2段の回路ブロックのみ有する非同期式回路200におけるモード制御回路230と同様の構成を有する。そのため、本発明にかかる技術は、回路規模の増大を抑制する視点において、回路ブロックの段数が多いほど特許文献3の技術より有利である。
【0143】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した実施の形態に対してさまざまな変更、増減を行ってもよい。これらの変更、増減が行われた変形例も本発明の範囲にあることは当業者に理解されるところである。
【0144】
例えば、上述した各実施の形態において、2相式制御を行う制御回路として、図13に示す制御回路62を用いたが、図13に示す制御回路62と同様の機能を果たすことができれば、制御回路62と異なる回路構成を有する制御回路を用いてもよい。
【0145】
また、上述した各実施の形態において、モード制御回路として、図2または図3が示すモード制御回路230を用いたが、図2または図3に示すモード制御回路230と同様の機能を果たすことができる別の回路構成のモード制御回路を用いてもよい。
【符号の説明】
【0146】
1〜n 回路ブロック
1A〜nA 制御回路
1B〜nB 演算回路
10 非同期式回路 20 回路ブロック
22 制御回路 24 演算回路
30 回路ブロック 32 制御回路
34 演算回路 50 2相式非同期式回路
60 回路ブロック 62 制御回路
64 演算回路 65 遅延素子
66 AND素子 67 インバータ
70 回路ブロック 72 制御回路
74 演算回路 80 インバータ
90 Qモジュール 91 AND素子
92 インバータ 93 C素子
94 AND素子 95 インバータ
100 制御回路 110 req信号生成回路
112 C素子 114 論理積回路
116 インバータ 118 インバータ
120 演算実行制御信号生成回路 122 論理和回路
200 非同期式回路 210 回路ブロック
212 制御回路 214 演算回路
220 回路ブロック 222 制御回路
224 演算回路 230 モード制御回路
231 第3のインバータ 232 OR素子
233 第1のインバータ 234 第1のAND素子
235 第2のインバータ 236 第2のAND素子
300 マイクロコンピュータ 310 非同期式回路
320 ROM 330 モード制御回路
400 マイクロコンピュータ 410 非同期式回路
422 インバータ 424 AND素子

【特許請求の範囲】
【請求項1】
段階的に接続された複数の回路ブロックを備え、夫々の回路ブロックが、演算回路と、該演算回路に対して2相式制御を行う制御回路とを有する非同期式回路であって、
1段目の回路ブロックに対して、該回路ブロックが休止相を開始したときに初期化を開始し、最下段の回路ブロックが休止相を開始したときに稼働相を開始し、2段目の回路ブロックに対して、1段目の回路ブロックが初期化を開始したときに稼働相を開始し、1段目の回路ブロックが稼働相を開始したときに初期化を開始するように制御を行うモード制御回路をさらに備えることを特徴とする非同期式回路。
【請求項2】
前記制御回路は、
当該回路ブロックに入力される信号inの立ち上がりに応じて稼働相を開始させ、所定時間経過後に休止相を開始させると共に、出力する信号outを立ち上げ、
前記信号inの立ち下がりにより初期化を開始し、初期化完了時に前記信号outを立ち下げ、
前記モード制御回路は、
2段目の回路ブロックに入力される信号inと、1段目の回路ブロックが出力する信号outとが入力されるOR素子と、
最下段の回路ブロックが出力する信号outを反転する第1のインバータと、
前記OR素子と前記第1のインバータの出力が入力される第1のAND素子と、
前記第1のAND素子の出力を反転して1段目の回路ブロックのin信号として出力する第2のインバータと、
前記第2のインバータの出力を反転して2段目の回路ブロックの信号inとして出力する第3のインバータとを備えることを特徴とする請求項1に記載の非同期式回路。
【請求項3】
プロセッサに備えられており、
前記第1段目の回路ブロックにおける演算回路は、フェッチ命令を実行することを特徴とする請求項1または2に記載の非同期式回路。
【請求項4】
前記第2のインバータと前記1段目の回路ブロックとの間に、さらに第2のAND素子が設けられており、
該第2のAND素子は、イネーブル信号と、前記第2のインバータの出力とが入力され、
1段目の回路ブロックのin信号は、該第2のAND素子の出力であることを特徴とする請求項2または3に記載の非同期式回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2012−190251(P2012−190251A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−53097(P2011−53097)
【出願日】平成23年3月10日(2011.3.10)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】