JP2004151990A - プログラムカウンタ回路 - Google Patents
プログラムカウンタ回路 Download PDFInfo
- Publication number
- JP2004151990A JP2004151990A JP2002316231A JP2002316231A JP2004151990A JP 2004151990 A JP2004151990 A JP 2004151990A JP 2002316231 A JP2002316231 A JP 2002316231A JP 2002316231 A JP2002316231 A JP 2002316231A JP 2004151990 A JP2004151990 A JP 2004151990A
- Authority
- JP
- Japan
- Prior art keywords
- value
- output
- jump
- counter
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000010586 diagram Methods 0.000 description 9
- 230000009191 jumping Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Tests Of Electronic Circuits (AREA)
- Manipulation Of Pulses (AREA)
Abstract
【解決手段】2種類のレジスタに、プログラムが規定するジャンプ箇所のジャンプ前のPC値とジャンプ後のPC値を保持する。またプログラムが規定するリピート箇所のリピート回数を減算カウンタに保持する。加算カウンタは、クロックごとにカウントアップされるPC値を保持する。セレクタは次に出力するPC値として、ジャンプ後のPC値として保持されている値もしくは加算カウンタに保持されている値を選択する。論理回路は、プログラムカウンタ回路の出力値と、各レジスタおよび減算回路の出力値を参照し、セレクタに対し次に出力すべきPC値の選択を指示する信号を生成する。
【選択図】 図3
Description
【発明の属する技術分野】
本発明は、プログラムカウンタ回路、すなわち、一群の命令の実行順序を制御するために、記憶媒体に格納されている任意のインストラクションコードの格納場所を指定するアドレスを生成する回路に関する。
【0002】
【従来の技術】
一般に、所定の回路を所定のプログラムに従って動作させる場合には、ROM、RAM、レジスタなどの記憶媒体に各種単位命令を表す一群のインストラクションコードを記憶しておき、プログラムが規定する順番でインストラクションコードを指定して、指定されたインストラクションコードをその所定の回路に入力することにより制御を行う。インストラクションコードは、インストラクションコードの格納場所のアドレスを指定することにより指定する。プログラムカウンタ回路は、このアドレスを生成し、プログラムカウンタ値(PC値)として出力する回路である。
【0003】
インストラクションコードには、通常、次に実行するインストラクションコードのPC値が含まれている。従来のプログラムカウンタ回路は、クロックごとに1ずつカウントアップされる第1のPC値と、直前に実行されたインストラクションコードに含まれている第2のPC値の、いずれかを選択して、次のPC値として出力していた。これにより、記憶媒体中のインストラクションコードを、原則として記憶されている順番に実行しつつ、必要に応じて任意のインストラクションコードにジャンプしたり、一部のインストラクションコードをリピートしたり、記憶媒体にランダムにアクセスすることができた(例えば、特許文献1参照)。
【0004】
【特許文献1】
特開平10−161899号公報(第5頁、第1図)
【0005】
【発明が解決しようとする課題】
しかし、従来のプログラムカウンタ回路では、ランダムアクセスの場合には、PC値を出力した後、出力したPC値が指定したインストラクションコードに含まれているPC値を読み込み、次のPC値を出力するというステップを踏むことになる。このため、1ずつ単純にカウントアップされたPC値を出力する場合に比べ、ランダムアクセスの場合には常に1クロック以上の遅延が発生することになる。
【0006】
本発明は、上記アクセス遅延の問題を解消することができる新しい構成のプログラムカウンタ回路を提案するものである。
【0007】
【課題を解決するための手段】
上記アクセス遅延の問題を解消するために、本発明のプログラムカウンタ回路は、加算カウンタと、2種類のレジスタと、減算カウンタと、セレクタと、論理回路を備え、これによりプログラムが規定するジャンプ箇所のジャンプ前のPC値とジャンプ後のPC値、およびプログラムが規定するリピート箇所のリピート回数を、内部に保持する。
【0008】
加算カウンタは、所定の初期値に設定された第1のPC値を保持し、その第1のPC値を基準クロックごとに出力するとともに出力の帰還値をカウントアップして再び保持する。2種類のレジスタのうちの1つは、ジャンプ前のPC値を第2のPC値として保持し、その第2のPC値を基準クロックごとに出力する。また他の1つのレジスタは、ジャンプ箇所のジャンプ後のPC値を第3のPC値として保持し、その第3のPC値を前記基準クロックごとに出力する。
【0009】
減算カウンタは、リピート回数を示す値を保持し、その値を基準クロックごとに出力するとともに、その出力の帰還値を所定の減算指示信号を受信した際にカウントダウンして再び保持する。セレクタは、加算カウンタが出力する第1のPC値またはジャンプ後PCレジスタが出力する第3のPC値の、いずれか一方を選択して、プログラムカウンタ回路の出力PC値として出力する。
【0010】
また、論理回路は、加算カウンタ、ジャンプ前PCレジスタ、ジャンプ後PCレジスタおよび減算カウンタと、セレクタの間に構成され、セレクタが選択すべきPC値を指示する信号を生成してセレクタに供給する。具体的には、セレクタが出力する出力PC値とジャンプ前PCレジスタが出力する第1のPC値が一致し、かつ減算カウンタの出力値がリピート回数0を示す値以外の値である場合に第3のPC値を選択するよう指示し、それ以外の場合には第1のPC値を選択するよう指示する信号を供給する。
【0011】
すなわち、プログラムが規定するジャンプ命令、リピート命令を実行するために必要な値を、予め内部のレジスタに保持しておき、それらの値を用いて次に出力すべきPC値を生成する。インストラクションコードの実行を待って、そのコードの中のPC値を読取るという従来のステップを排除することにより、アクセス遅延を解消することができる。
【0012】
【発明の実施の形態】
以下、本発明のプログラムカウンタ回路について、図面を参照して詳細に説明する。以下に示す2つの形態は、いずれも、プログラムにより任意の信号パターンを発生させるアルゴリズミックパターンジェネレータに、本発明のプログラムカウンタ回路を採用したものである。
【0013】
アルゴリズミックパターンジェネレータは、図1(a)に示すように、パターン信号を生成して出力するパターンジェネレータ3と、パターンジェネレータ3に与える各種インストラクションコードが記憶された記憶媒体2と、インストラクションコードの格納場所を指定するPC値を生成するプログラムカウンタ回路1からなる。
【0014】
記憶媒体2には、図2に示すように、複数のインストラクションコードが格納されている。パターンジェネレータ3に所定のインストラクションを実行させるためには、インストラクションコードの格納場所を示すPC値をプログラムカウンタ回路1により生成して記憶媒体2に入力すれば、指定したPC値が指す格納場所に格納されているインストラクションコードが出力され、パターンジェネレータ3に入力される。
【0015】
したがって、パターンジェネレータ3に、記憶媒体内に記憶されている順番でインストラクションを実行させるには、プログラムカウンタ回路1は、0、1、2、3というように値を1つずつカウントアップさせてPC値として出力すればよい。
【0016】
また、所定のインストラクションを繰り返し実行(リピート)させたい場合には、プログラムカウンタ回路1は、その期間のみ、PC値として連続して同じ値を出力すればよい。例えば、インストラクション1を3回繰り返した後に次のインストラクションを実行させたい場合には、プログラムカウンタ回路1は、0、1、1、1、2、3・・・というようにPC値を出力する。
【0017】
また、任意のインストラクションの次に任意のインストラクションを実行(ジャンプ)させたい場合には、プログラムカウンタ回路1は、インストラクションを実行させたい順番にPC値を出力する。例えば、インストラクション1から3までを繰り返し実行させたい場合には、プログラムカウンタ回路1は、1、2、3、1、2、3のようにPC値を出力すればよい。
【0018】
ここで、アルゴリズミックパターンジェネレータは、通常は、図1(b)に示すように、プログラムカウンタ回路101、記憶媒体2、パターンジェネレータ3を、シーケンシャルに接続し、さらにパターンジェネレータ3の出力がプログラムカウンタ回路101に入力されるように配線がされている。これは、従来のプログラムカウンタ回路101は、前述のように、インストラクションコードに含まれているPC値を読み込んでから次のPC値を生成することによって、上記リピート機能やジャンプ機能を実現していたからである。
【0019】
しかし、本発明のプログラムカウンタ回路1を採用する場合、アルゴリズミックパターンジェネレータは、図1(a)に示すように、プログラムカウンタ回路1、記憶媒体2、パターンジェネレータ3を、シーケンシャルに接続するだけで構成することができる。これは、本発明のプログラムカウンタ回路1が、インストラクションコードに含まれているPC値の読み込みを行わないからに他ならない。
【0020】
本発明のプログラムカウンタ回路の1つの特徴は、プログラムカウンタ回路が3種類のPC値を予め内部に保持している点にある。本明細書では、説明の便宜のため、この3種類の内部PC値を、カウントアップPC値、ジャンプ前PC値、ジャンプ後PC値と称することとする。また、プログラムカウンタ回路が最終的に出力するPC値は、上記内部PC値と区別するため、出力PC値と称することとする。
【0021】
カウントアップPC値は、所定の初期値を基準としてクロックごとに1ずつ増加するPC値である。ジャンプ前PC値は、ジャンプ命令が出現するとき、すなわちジャンプする直前に実行されるインストラクションのコードを指すPC値である。また、ジャンプ後PC値は、ジャンプ命令によりジャンプした先のインストラクションコードを指すPC値である。なお、ジャンプ命令は、プログラムの中の複数箇所に出現することが多い。したがって、プログラムカウンタ回路は、複数のジャンプ前PC値と、複数のジャンプ後PC値を保持する場合もある。
【0022】
また、本発明のプログラムカウンタ回路のもう1つの特徴は、リピート回数を示す値をプログラムカウンタ回路内部に保持している点にある。例えば、PC値を0、1、2、3、1、2、3、1、2、3、4、5のように変化させたい場合、すなわち、1、2、3というシーケンスを3回リピートしたい場合には、前記ジャンプ前PC値として3、ジャンプ後PC値として1、リピート回数として3の値を保持する。リピート回数の値は減算カウンタに設定し、1回リピートするごとに値を1減らし、値が0になった時点でリピートを解除する。
【0023】
以下、本発明のプログラムカウンタ回路1の構成について詳しく説明する。
【0024】
実施の形態1.
図3は、本発明の一実施の形態におけるプログラムカウンタ回路の内部構成を示す図である。
【0025】
プログラムカウンタ回路1は、上記カウントアップPC値を保持する加算カウンタ4と、ジャンプ前PC値を保持するジャンプ前PCレジスタ5と、ジャンプ後PC値を保持するジャンプ後PCレジスタ7と、所定のリセット信号が入力された際に初期値が設定され、以後所定のタイミングで1ずつカウントダウンする減算カウンタ6を備える。
【0026】
ジャンプ前PCレジスタ5とジャンプ後PCレジスタ7は、それぞれ複数のPC値を保持できるだけの記憶領域を備える。図では、これをPC値1個分の領域に対応するブロックを複数示すことにより表現する。
【0027】
プログラムカウンタ回路1は、また、加算カウンタ4の出力(カウントアップPC値)またはジャンプ後PCレジスタ7の出力(ジャンプ後PC値)のいずれか一方を出力PC値として出力するセレクタ13を備える。セレクタ13は、図に示すように、イネーブル信号が1のときに加算カウンタ4の出力を選択(カウントアップPC値を出力)し、イネーブル信号が0のときにジャンプ後PCレジスタ7の出力を選択(ジャンプ後PC値を出力)する。
【0028】
プログラムカウンタ回路1は、さらに、セレクタ13の出力をジャンプ前PCレジスタ5の出力(ジャンプ前PC値)と比較して両PC値の一致/不一致を示す第1の判定値Aを出力するPC値比較回路8を備える。PC値比較回路8は、ジャンプ前PCレジスタ5が保持する複数のPC値に対応するように複数設ける。
【0029】
また、プログラムカウンタ回路1は、PC値比較回路8の出力(第1の判定値A)と減算カウンタ6の出力のAND演算を行うAND回路9と、AND回路9の出力を所定の比較基準値10と比較して両値の一致/不一致を示す第2の判定値Bを出力するカウンタ値比較回路11を備える。カウンタ値比較回路11の出力(第2の判定値B)は、減算カウンタ6に前記リセット信号として入力される。
【0030】
また、プログラムカウンタ回路1は、出力制御器12を備える。出力制御器12は、PC値比較回路8の出力(第1の判定値A)とカウンタ値比較回路11の出力(第2の判定値B)について所定の論理演算を行って、プログラムカウンタ回路1がカウントアップPC値とジャンプ後PC値のいずれを出力すべきかを判定し、判定結果を示す信号Cを出力する。出力制御器12は、複数のPC値比較回路8に対応するように複数設ける。出力制御器12が出力した信号Cはセレクタ13に、イネーブル信号として入力される。
【0031】
論理演算の論理は、第1の判定値Aが「一致」を示しており、第2の判定値Bが「不一致」を示しているときに、セレクタ13に対しジャンプ後PC値の選択を指示する信号を出力するように定義する。本実施の形態では、PC値比較回路8およびカウンタ値比較回路11は判定結果が一致のときに値1を出力する。また、セレクタ13は、前述のように、イネーブル信号が1のときにカウントアップPC値を、イネーブル信号が0のときにジャンプ後PC値を出力する。
【0032】
以上から、出力制御器12が行う論理演算は、図4に示すようなものとなる。これは、ジャンプ前PC値を出力した時点で減算カウンタ6の出力値が0でなければ予め保持しているジャンプ後PC値を出力し、減算カウンタ6の出力値が0であればカウントアップPC値を出力することを意味している。但し、一致を0で表すか1で表すかは設計事項にすぎず、したがって図4の論理も一例にすぎないことは言うまでもない。
【0033】
なお、クロック(クロック信号)は、図示されないクロック回路により発生される。クロック回路は、プログラムカウンタ回路1内部に備えてもよいし、外部に設けプログラムカウンタ回路1にクロック信号を供給してもよい。
【0034】
次に、プログラムカウンタ回路1の動作について説明する。アルゴリズミックパターンジェネレータに本実施の形態のプログラムカウンタ回路1を採用した場合には、記憶媒体2にインストラクションを格納する際に(あるいはそれ以前に)、図5に示すように、ジャンプ前PC値レジスタ5、ジャンプ後PC値レジスタ7および減算カウンタ6に、プログラム内に出現するジャンプ命令やリピート命令に対応する値を初期値として設定しておく必要がある。
【0035】
例えば、インストラクション1、2、3を4回繰り返すようなシーケンスを含むプログラムであれば、PC値が3のときにPC値1にジャンプするというシーケンスを4回リピートすることになるので、ジャンプ前PC値レジスタ5に値3を、ジャンプ後PC値レジスタ7に値1を、減算カウンタ6に値3を、それぞれ設定する。また、加算カウンタ4にも初期値0を設定しておく。本実施の形態では、この状態を初期状態(リセット状態)とする。
【0036】
以下、動作開始後の各種入出力値あるいは保持値の変化を、図6のタイムチャートを参照しながら説明する。なお、このタイムチャートでは、プログラムカウンタ回路1の最終出力PCoutと、セレクタ13の出力PCinnを区別して表示している。セレクタ13の出力PCinnは、波形を整える目的でラッチ回路などを経由させてから(図示せず)、最終出力PCoutとして出力するため、図に示すように時間的なずれが生ずる場合がある。
【0037】
はじめに、タイムチャートの(1)で示される範囲の動作について説明する。リセット状態では、加算カウンタが保持するカウントアップPC値の初期値は0であるが、最初のクロックが与えられたときには、カウントアップにより加算カウンタが出力するカウントアップPC値は1となる。この時点では、カウントアップPC値1が出力PC値としてそのまま出力される。一方、セレクタ13が出力したPC値1はPC値比較回路8に入力されジャンプ前PCレジスタ5の値、すなわち値3と比較される。この場合、PC値比較回路8は、両値は不一致(1≠3)であると判断し判定値A=0を出力する。
【0038】
この判定値は出力制御器12に入力される。この場合、図4に示したように、出力制御器12の出力信号Cの値は1となる。よって、セレクタ13は、加算カウンタ4の出力値であるPC=1をプログラムカウンタ回路1の出力PC値として出力する。PCが出力されたという情報は、加算カウンタ4に入力され、これにより加算カウンタ4の値はプラス1される。
【0039】
次に、タイムチャートの(2)で示される範囲の動作について説明する。クロックごとに上記動作を繰り返し、セレクタ13の出力値が3になり、PC値比較回路8に入力されると、PC値比較回路8のもう1つの入力であるジャンプ前PC値は前述のように3に設定されているため、PC値比較回路8は両値は一致する(3=3)と判断し、判定値A=1を出力する。この出力は減算カウンタ6と連動している(図示せず)。すなわち、減算カウンタ6は、判定値A=1の場合にカウントダウンする。以上が、リピートが1回完了するごとに値をカウントダウンするという動作である。
【0040】
減算カウンタ6が保持する値は、この時点で3となる。この値は、AND回路9に入力されるが、AND回路9のもう一方の入力であるPC値比較器8の出力値は判定値A=1であるため、減算カウンタ6の値3は、そのままAND回路9の出力値として出力され、カウンタ値比較回路11に入力される。カウンタ値比較回路11のもう一方の入力端子は接地されている。これはカウンタ値比較回路11の比較基準値10の値が0であることを意味する。この場合、2つの入力値は不一致なので(3≠0)、カウンタ値比較回路11が出力する判定値B=0となる。
【0041】
この時点では、判定値A=1、判定値B=0となるので、出力制御器12は、図4に示した論理により、信号C=0を出力する。この信号Cはセレクタ13にイネーブル信号として入力され、セレクタ13は、ジャンプ後PCレジスタ7の出力値1を選択出力する。以上の動作により、プログラムカウンタ回路1の出力PC値として、値3の次に値1が出力される。すなわち、ジャンプが実行される。この際、セレクタ13の出力値1は、加算カウンタ4にも入力され、加算カウンタ4の値は1にセットされる。
【0042】
次にタイムチャートの(3)で示される範囲の動作について説明する。(2)の動作が4回繰り返されると、減算カウンタ4の出力値は0となる。この場合、セレクタ13の出力値が3のときに、(2)と同様の動作を行うと、カウンタ値比較回路11の2つの入力値が一致することになるので、判定値Bとして値1が出力される。図4に示したように、判定値Bの値が1の場合には、出力制御器12の出力信号の値は1になる。したがって、セレクタ13は、次のクロックでは、加算カウンタ4の出力値を選択出力する。すなわち、出力PC値は4となる。減算カウンタ4の出力値が0である限り、同じ論理が繰り返されるため、以降プログラムカウンタ回路1の出力値は、4、5、6と変化することになる。以上が、1、2、3というシーケンスが4回リピートした後に解除するという動作である。
【0043】
以上の説明から明らかであるように、本実施の形態のプログラムカウンタ回路は、従来のプログラムカウンタ回路のように、インストラクションコードを読み込んでコード中のPC値を参照することはしていない。アルゴリズミックパターンジェネレータにこのプログラムカウンタ回路を採用する場合には、プログラムカウンタ回路1は内部レジスタに保持した値を用いて出力PCoutを生成して一方的に記憶媒体2に供給する。よって、プログラムカウンタ回路1は、記憶媒体2およびパターンジェネレータ3の動作状況に影響されることなく、独立して動作することができる。パターンジェネレータ3が記憶媒体2から供給されているインストラクションを実行している間に、プログラムカウンタ回路1は次のPC値を生成することができるので、パイプラインを用いた高速化にも有利であり、結果として、従来よりも高性能なアルゴリズミックパターンジェネレータを構成することができる。
【0044】
さらに、本実施の形態のプログラムカウンタ回路を採用した場合には、記憶媒体2に記憶するインストラクションコードにPC値の情報を含める必要がなくなる。これにより、インストラクションコードを短くすることができるので、記憶媒体2の容量を節減することができる。
【0045】
実施の形態2.
次に、本発明のプログラムカウンタ回路の他の実施の形態を示す。前述の実施の形態1のプログラムカウンタ回路1は、1つの減算カウンタによりリピート回数をカウントしている。このため、1つのリピート命令が完了するまでは、次のリピート命令を実行することはできず、ジャンプしてリピートするシーケンスを、さらにジャンプしてリピートするといった、いわゆるネスティング動作を実現することができない。
【0046】
これに対し、以下に説明する実施の形態2のプログラムカウンタ回路は、複数の減算カウンタと、複数のカウンタ指定レジスタを備えており、これらによりネストするリピート命令の実行を可能にする。本実施の形態では、図7に示すように、複数の減算カウンタ6には、それぞれ異なるリピート回数が設定されている。また、カウンタ指定レジスタ14には複数の減算カウンタのうち、どの減算カウンタを使用するかを示す指定値が設定される。すなわち、リピート回数を直接設定するのではなく、所望のリピート回数が設定された減算カウンタを指定することにより、間接的にリピート回数を設定する。例えば、2番目の減算カウンタ内に設定されているリピート回数を参照する場合であれば、カウンタ指定レジスタ14に値2を設定する。
【0047】
図8は、実施の形態2におけるプログラムカウンタ回路17の内部構成を示す図である。プログラムカウンタ回路17は、実施の形態1の実施の形態1のプログラムカウンタ回路1と同じく、加算カウンタ4、ジャンプ前PCレジスタ5、ジャンプ後PCレジスタ7、AND回路9、PC値比較回路8、カウンタ値比較回路11、出力制御器12およびセレクタ13を備え、さらに前述の複数の減算カウンタ6と、複数のカウンタ指定レジスタ14、減算カウンタ6の初期値を保持する初期値レジスタ15と、初期値レジスタ15の出力値を減算カウンタに選択的にセットするためのセレクタ16を備える。また、AND回路9とカウンタ値比較回路11は、複数の減算カウンタ6に対応して、それぞれ複数設けられている。
【0048】
各AND回路9の出力は、各カウンタ値比較回路11に入力される。また、各カウンタ指定レジスタ14の出力も各カウンタ値比較回路11に入力される。カウンタ値比較回路11は、実施の形態1と同様、AND回路9の出力と比較基準値10との比較を行うための回路である。但し、本実施の形態では、カウンタ値比較回路11は、カウンタ指定レジスタ14からの入力を参照しており、その減算カウンタがカウンタ指定レジスタ14により指定されている場合には比較を行うが、指定されていない場合には比較を行わない。
【0049】
また、減算カウンタ6の値が0になり、カウンタ値比較回路11が出力する判定値Bの値が0になると、セレクタ16にイネーブル信号として0が入力されることになるため、セレクタ16により初期値レジスタ15の出力値が選択され減算カウンタ6に再設定される。一方、減算カウンタ6の値が0になるまでは、セレクタ16に入力されるイネーブル信号の値は1となるため、減算カウンタ6は通常どおりカウントダウンされる。すなわち、複数の減算カウンタ6は、それぞれ初期値レジスタ15に保持された所定のリピート回数を管理しており、リピート命令実行中はカウントダウンし、リピート命令完了後は初期値にリセットされる。
【0050】
図9は、プログラムカウンタ回路17の、動作開始後の各種入出力値あるいは保持値の変化を示すタイムチャートである。図の例は、複数ある減算カウンタ6のうち2番目のカウンタを指定した場合を示しており、カウンタ指定レジスタ14の値CNTnoとして2が設定されている。また2番目の減算カウンタrCNT[2]以外の減算カウンタrCNT[N]には、プログラムにより任意の値をセットしておくことができる。
【0051】
本実施の形態のプログラムカウンタ回路17は、実施の形態1のプログラムカウンタ回路1と同様の効果を備える。さらに、減算カウンタ6が複数備えられておりカウンタ指定により使い分けできるため、ジャンプしてリピートするシーケンスを、さらにジャンプしてリピートするといった、いわゆるネスティング動作を実現することができる。
【0052】
他の実施の形態.
本発明のプログラムカウンタ回路の他の実施の形態としては、上記実施の形態1のプログラムカウンタ回路1あるいは実施の形態2のプログラムカウンタ回路17に一部変更を加えたものが考えられる。
【0053】
例えば、減算カウンタ6を、フリップフロップを直列に接続して出力をフィードバックした、いわゆるリニアフィードバックシフトレジスタ(LFSR)を用いて構成する形態が考えられる。この場合、シフトの過程で得られる値の中から任意の1つの値をカウンタ値比較回路11の比較基準値10として設定し、さらに、その比較基準値10の値から逆シフトした場合を考えて該当する値を求め、減算カウンタ6の初期値に設定する必要がある。LFSRを用いる形態は、回路面積を小さくすることができるという点で、好ましい。
【0054】
また、上記実施の形態では加算カウンタ4の値は0に初期設定されていたが、この加算カウンタ4の値を任意の値に初期設定できるようにする形態も考えられる。例えば、加算カウンタ4の入力側に、実施の形態2のプログラムカウンタ回路17の減算カウンタ6の入力側と同様に初期値レジスタとセレクタを設ければよい。PC=0以外からカウントを開始できれば、1つの記憶媒体内に、何種類かのプログラムを記憶することもでき、プログラムごとに先頭のインストラクションを指定して実行できるようになる。
【0055】
【発明の効果】
本発明のプログラムカウンタ回路は、内部に必要な値を保持しているため、先に出力したPC値が指定したインストラクションの実行状況に拘わらず、次に出力するPC値を生成することができ、従来の回路のアクセス遅延の問題を解消することができる。さらに、インストラクションコード内にPC値を格納する必要がなくなるため、コードをシンプルなものとすることができ、記憶容量の節約にもつながる。
【図面の簡単な説明】
【図1】アルゴリズミックパターンジェネレータの構成概要を示す図であり、(a)は本発明のプログラムカウンタ回路を採用した場合、(b)は従来のプログラムカウンタ回路を採用した場合を示す。
【図2】記憶媒体へのインストラクションの格納のイメージを示す図である。
【図3】本発明の実施の形態1のプログラムカウンタ回路の内部構成を示す図である。
【図4】出力制御器の演算論理を説明するための図である。
【図5】実施の形態1において、プログラムカウンタ回路内部に保持させる値について説明するための図である。
【図6】本発明の実施の形態1のプログラムカウンタ回路の動作を説明するためのタイムチャートである。
【図7】実施の形態2において、プログラムカウンタ回路内部に保持させる値について説明するための図である。
【図8】本発明の実施の形態2のプログラムカウンタ回路の内部構成を示す図である。
【図9】本発明の実施の形態2のプログラムカウンタ回路の動作を説明するためのタイムチャートである。
【符号の説明】
1 プログラムカウンタ回路、 2 記憶媒体、 3 パターンジェネレータ、 4 加算カウンタ、 5 ジャンプ前PCレジスタ、 6 減算カウンタ、7 ジャンプ後PCレジスタ、 8 PC値比較回路、 9 AND回路、 10 比較基準値、 11 カウンタ値比較回路、 12 出力制御器、 13セレクタ、 14 カウンタ指定レジスタ、 15 初期値レジスタ、 16セレクタ、 17 プログラムカウンタ回路。
Claims (5)
- 所定の初期値に設定された第1のPC値を保持し、該第1のPC値を基準クロックごとに出力するとともに該出力の帰還値をカウントアップして再び保持する加算カウンタと、
プログラムが規定するジャンプ箇所のジャンプ前のPC値を第2のPC値として保持し、該第2のPC値を前記基準クロックごとに出力する1以上のジャンプ前PCレジスタと、
前記ジャンプ箇所のジャンプ後のPC値を第3のPC値として保持し、該第3のPC値を前記基準クロックごとに出力する1以上のジャンプ後PCレジスタと、
プログラムが規定するリピート箇所のリピート回数を示す値を保持し、該値を前記基準クロックごとに出力するとともに、該出力の帰還値を所定の減算指示信号を受信した際にカウントダウンして再び保持する1以上の減算カウンタと、
前記加算カウンタが出力する第1のPC値またはジャンプ後PCレジスタが出力する第3のPC値の、いずれか一方を選択して、当該プログラムカウンタ回路の出力PC値として出力するセレクタと、
前記加算カウンタ、ジャンプ前PCレジスタ、ジャンプ後PCレジスタおよび減算カウンタと、前記セレクタの間に構成される論理回路であって、前記セレクタに対し、該セレクタが出力する出力PC値と前記ジャンプ前PCレジスタが出力する第1のPC値が一致し、かつ前記減算カウンタの出力値がリピート回数0を示す値以外の値である場合に第3のPC値を選択させ、それ以外の場合には第1のPC値を選択させるような論理を構成する論理回路とを備えたことを特徴とするプログラムカウンタ回路。 - 前記減算カウンタを複数備え、該減算カウンタの中の所望の減算カウンタを指定するための識別子を設定するためのカウンタ指定レジスタをさらに備えたことを特徴とする請求項1記載のプログラムカウンタ回路。
- 前記論理回路は、
前記セレクタが出力する出力PC値と前記ジャンプ前PCレジスタが出力する第1のPC値とを比較して一致/不一致の判定結果を示す第1の判定値を出力する第1の比較器と、
前記一致/不一致信号と、前記減算カウンタの出力値の間でAND演算を行うAND回路と、
前記AND回路の出力を所定の比較基準値と比較して一致/不一致の判定結果を示す第2の判定値を出力する第2の比較器と、
第1および第2の判定値を入力とし、第1の判定値が一致を示し且つ第2の判定値が不一致を示す場合には前記セレクタに対し第3のPC値の選択を指示する指示信号を送信し、それ以外の場合には第1のPC値の選択を指示する指示信号を送信する出力制御器を有することを特徴とする請求項1または2記載のプログラムカウンタ回路。 - 前記減算カウンタは、リニアフィードバックシフトレジスタにより構成されることを特徴とする請求項1から3のいずれかに記載のプログラムカウンタ回路。
- 前記加算カウンタに任意の初期値を設定するための初期値設定回路をさらに備えることを特徴とする請求項1から4のいずれかに記載のプログラムカウンタ回路。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002316231A JP2004151990A (ja) | 2002-10-30 | 2002-10-30 | プログラムカウンタ回路 |
US10/394,268 US6930931B2 (en) | 2002-10-30 | 2003-03-24 | Program counter circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002316231A JP2004151990A (ja) | 2002-10-30 | 2002-10-30 | プログラムカウンタ回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004151990A true JP2004151990A (ja) | 2004-05-27 |
Family
ID=32171216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002316231A Pending JP2004151990A (ja) | 2002-10-30 | 2002-10-30 | プログラムカウンタ回路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6930931B2 (ja) |
JP (1) | JP2004151990A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9557384B2 (en) | 2012-11-26 | 2017-01-31 | Renesas Electronics Corporation | Testing device |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7134872B2 (en) * | 2004-09-02 | 2006-11-14 | Norbert Abels | Colored orthodontic brackets |
US9548135B2 (en) * | 2013-03-11 | 2017-01-17 | Macronix International Co., Ltd. | Method and apparatus for determining status element total with sequentially coupled counting status circuits |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4847812A (en) * | 1986-09-18 | 1989-07-11 | Advanced Micro Devices | FIFO memory device including circuit for generating flag signals |
CA1286420C (en) * | 1987-10-14 | 1991-07-16 | Youssef Alfred Geadah | Fifo buffer controller |
JPH04112319A (ja) * | 1990-09-03 | 1992-04-14 | Matsushita Electric Ind Co Ltd | データ格納方法と先入れ先だし装置 |
JPH08129487A (ja) | 1994-10-31 | 1996-05-21 | Ando Electric Co Ltd | プログラムシーケンス制御回路 |
JPH10161899A (ja) | 1996-11-27 | 1998-06-19 | Advantest Corp | シーケンス制御回路 |
JPH11353872A (ja) * | 1998-06-04 | 1999-12-24 | Oki Electric Ind Co Ltd | メモリインタフェース回路 |
JP2001148199A (ja) | 1999-11-19 | 2001-05-29 | Mitsubishi Electric Corp | 自己テスト回路内蔵半導体記憶装置 |
-
2002
- 2002-10-30 JP JP2002316231A patent/JP2004151990A/ja active Pending
-
2003
- 2003-03-24 US US10/394,268 patent/US6930931B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9557384B2 (en) | 2012-11-26 | 2017-01-31 | Renesas Electronics Corporation | Testing device |
Also Published As
Publication number | Publication date |
---|---|
US20040085824A1 (en) | 2004-05-06 |
US6930931B2 (en) | 2005-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005181333A (ja) | 回路テスト方法 | |
JP5314693B2 (ja) | 試験モジュールおよび試験方法 | |
JP2004151990A (ja) | プログラムカウンタ回路 | |
JP4704184B2 (ja) | 試験装置及び試験方法 | |
WO1997020268A1 (en) | A parametrizable control module comprising first and second loadables counters, an electronic circuit comprising a plurality of such parametrized control modules, and a method for synthesizing such circuit | |
JP2009505302A (ja) | マイクロコントローラによる波形発生方法及び装置 | |
US7649391B2 (en) | Clock signal transmission circuit | |
US20240142519A1 (en) | Semiconductor device and method of scan test for thereof | |
KR100453888B1 (ko) | 병렬입력/직렬출력 쉬프트 레지스터를 이용한 프로그래머블클럭 펄스 발생기 | |
JP4520103B2 (ja) | スキャンテストパタン入力方法および半導体集積回路 | |
JPH0815392A (ja) | テストモード設定回路 | |
JP2002032355A (ja) | マイクロコンピュータ | |
JP3277785B2 (ja) | パターン発生回路 | |
JP2578019B2 (ja) | 符号発生制御装置 | |
JP2837469B2 (ja) | Ic試験装置 | |
JPS609286B2 (ja) | タイミング信号発生回路 | |
JPH10319096A (ja) | 半導体試験装置 | |
JPH10148660A (ja) | パターン発生器のループシーケンサ | |
JP2000148828A (ja) | 論理回路シュミレータ及びシュミレーション方法 | |
JP2004347537A (ja) | 半導体集積回路 | |
US9557384B2 (en) | Testing device | |
JPH10290156A (ja) | 多段カウンタの試験回路 | |
JP2004062588A (ja) | セレクタ回路 | |
JP2001326589A (ja) | 拡散符号発生装置および拡散符号発生方法 | |
JP2000151367A (ja) | 符号系列生成器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051014 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060831 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060905 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061106 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070508 |