JPH0764788A - マイクロコンピュータ - Google Patents

マイクロコンピュータ

Info

Publication number
JPH0764788A
JPH0764788A JP6009123A JP912394A JPH0764788A JP H0764788 A JPH0764788 A JP H0764788A JP 6009123 A JP6009123 A JP 6009123A JP 912394 A JP912394 A JP 912394A JP H0764788 A JPH0764788 A JP H0764788A
Authority
JP
Japan
Prior art keywords
instruction
register
code
microcomputer
bit
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
Application number
JP6009123A
Other languages
English (en)
Inventor
Satoru Tashiro
哲 田代
Yoshiki Cho
▲芳▼樹 長
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP6009123A priority Critical patent/JPH0764788A/ja
Priority to US08/247,836 priority patent/US5550994A/en
Priority to DE4420703A priority patent/DE4420703A1/de
Publication of JPH0764788A publication Critical patent/JPH0764788A/ja
Pending legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】 マイクロコンピュータのCPUにおいて、1
クロックの前半と後半とでレジスタの読み出し,書き込
みを実行することにより、1命令の実行を1クロック内
で完結させると共に、命令フェッチサイクルの直後に分
岐命令アドレスを出力できるようにして分岐命令をも1
サイクルで処理することにより、高速処理可能なCPU
を提供する。 【構成】 命令フェッチサイクルの後半で命令デコード
及びレジスタリードを同時に実施する回路を設けた。ま
た、条件判定検出回路の導入で命令実行の事前に分岐判
定信号をアクティブにすることで分岐命令実行の高速化
を図った。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマイクロコンピュータに
関し、特にそのCPU による命令の実行を高速化すると共
に、リセット及び割り込み等の処理に際しても高速動作
可能なマイクロコンピュータに関する。
【0002】
【従来の技術】図71は従来のマイクロコンピュータの基
本命令サイクル、即ち基本的な命令を実行する際のタイ
ミングの一例を説明するためのタイミングチャートであ
る。この従来例では入力クロックの周波数は40MHz 、換
言すれば25ns周期であり、それを更に二分周して相互の
位相をずらせた二つの基本クロックBCLK1,BCLK2を使
用している。マイクロコンピュータに接続されたメモリ
をアクセスする基本周期はこの基本クロック (マシンサ
イクル) の2周期である 100nsに相当する。従って、ア
ドレス信号Aは 100nsの期間が基本的に1サイクルとし
て扱われている。図71の左半部に示されているリードサ
イクルでは、データ信号Dは1基本周期の後半の50nsで
有意になる。また、図71の右半部に示されているライト
サイクルでは、後半の75nsにおいてCPU からデータ信号
Dが出力されている。
【0003】プログラムメモリの読み出しも基本的には
この図71に示されている例と同様の動作が一般に行なわ
れており、入力クロックを基準にすると4周期分の時間
(100ns) で命令フェッチが実行される。
【0004】図72では近年の多くのマイクロコンピュー
タに採用されているパイプライン処理の原理を説明する
ための模式図である。1マシンサイクルを基本として、
命令フェッチ(IF), 命令デコード(ID), 命令実行及び実
行アドレス演算(EX), メモリアクセス(MEM),ライトバッ
ク(WB)の各ステージでの処理が順に実行される。各サイ
クル毎に連続して命令デコードが実行され、これに引き
続いて各ステージではそれぞれ命令が並行して処理され
るので、全体としては5命令が同時並行的に処理される
ように見える。このようなパイプライン処理によって、
複雑な処理があたかも1命令1マシンサイクルで実行さ
れるようにみえる。
【0005】図73は上述のようなパイプライン処理の留
意点を例示した模式図である。具体的には、図73に示さ
れているようなADD, SUB, AND, OR, XORの各命令からな
る命令列を実行する場合に必要となる機構を示してい
る。なお、図73において各命令の直後のRはデスティネ
ーションレジスタを、更にその後の2個のRはいずれも
オペランドを保持しているソースレジスタを示してい
る。
【0006】即ち、第1の命令である加算命令(ADD) は
レジスタR2の内容とレジスタR3の内容とを加算してその
結果をレジスタR1に格納 (ライトバック) するが、第2
乃至第4の各命令ではそのレジスタR1に格納されている
値を使用するため、それぞれの実行サイクルではレジス
タR1に第1の加算命令による加算結果が格納される以前
にそれを使用可能にするバイパス回路がCPU 内部で必要
となる。そして、第5の命令であるXOR 命令においてレ
ジスタR1に通常にライトバックされた値を初めて利用す
ることが可能になる。
【0007】
【発明が解決しようとする課題】以上に説明したよう
に、従来のマイクロコンピュータでは1マシンサイクル
自体が複数のクロックで構成されており、命令の実行サ
イクルを実質的に長くする要因を作っている。これはボ
ードコンピュータ時代にボード設計上の幾つかの問題、
たとえば遅延時間, バスラインの断線等、に対応して信
頼性を高めるために施された手法である。
【0008】また、パイプライン処理は複雑な命令を高
速実行する上で非常に有効な設計手法であるが、上述の
例にも示されているように、いくつかの例外処理をこな
すためにそれぞれに対応した特別な回路を付加する必要
があるため、回路が複雑化する問題点があった。
【0009】また、従来のマイクロコンピュータのCPU
は命令フェッチ, デコード, 実行の各処理に数サイクル
を要しており、これが実行速度を向上させる上で制約と
なっている。しかし、クロック周波数を高くするにして
も限界があるため、1サイクルの中で如何に多くの処理
を実行するかということを考える必要がある。
【0010】更に、高機能なマイクロコンピュータでは
現在はスーパースケーラ技術等のように、1サイクルで
複数の命令を実行して処理能力を上げる方法も採用され
ているが、コスト的に厳しいマイクロコントローラの分
野では単純な構成でチップコストを削減し、且つ、処理
スピードの高い製品の需要が大きい。特にモータコント
ロール等の応用分野で代表されるような数μ秒の応答速
度が要求されるリアルタイム制御分野では、複雑な高機
能命令を含むCISC構成よりもむしろシンプルで高速なCP
U が要求されている。
【0011】本発明はこのような問題点を解決するため
になされたものであり、処理自体を簡素化することによ
り、命令を入力クロックサイクル毎に実行できるマイク
ロコンピュータの提供を目的とする。
【0012】
【課題を解決するための手段】請求項1の発明に係るマ
イクロコンピュータは、システムクロックの2サイクル
の間のハイレベル,ローレベル,ハイレベル,ローレベ
ルの4区間をそれぞれ期間T1, T2, T3, T4とすると、ま
ず期間T1においては、実行すべき命令のアドレスがメモ
リへ出力される。期間T2においては、その命令のコード
をメモリから読み出すと共に命令デコーダでデコード
し、デコード結果が指定するオペランドを保持するソー
スレジスタからデータをフェッチしてALU で演算を開始
する。期間T3においては、ALU による演算結果を指定さ
れたレジスタに格納すると共に次に実行すべき命令のア
ドレスが出力される。そして、期間T3が次の命令に対し
ては期間T1を意味する。従って、T4のタイミングは基本
的には使用されない。この方式では単純に考えれば、レ
ジスタのアクセスは、オペランドのソースレジスタから
の読み出しはクロックのローレベル区間で、演算結果の
デスティネーションレジスタへの書込みは次のハイレベ
ル区間でそれぞれ行なわれるため、各サイクル毎にデー
タの更新が可能になる。
【0013】ところで、期間T1はメモリビットラインの
プリチャージのために必要であり、期間T2において命令
コードあるいはデータの読み出し,書き込みが実行可能
である。このような本発明のマイクロコンピュータの命
令サイクルでは、各サイクル毎にメモリのアクセスが可
能になる。また、レジスタの読み出し,書き込みがクロ
ックのローレベル,ハイレベルの区間で実行されること
は、処理されたデータの一貫性を維持するために非常に
重要である。例えば、Aレジスタの値を演算に使用して
その結果を一旦Aレジスタに返した後に更にその値をB
レジスタに移動する場合、当然ではあるがAレジスタの
値を使用する演算が完了するまではBレジスタへのデー
タの移動はできない。従って、完全に時間を有効に使お
うとすれば、一サイクルの中でレジスタ値のロード, 演
算, 演算結果のストアの各処理を実行する必要がある。
【0014】また、期間T2において既に命令コードのデ
コードが行なわれている必要があるため、デコーダには
マイクロシーケンスROM 等のようなプリチャージ期間が
必要な回路は不適当である。その理由は、プリチャージ
回路でデコードする場合はプリチャージ期間で既に入力
が安定している必要があるが、本発明のマイクロコンピ
ュータの場合は、プログラムメモリ領域からコードが読
み出される時点で既に期間T2に入っているため、そのま
までは必要な制御信号は期間T3になった後でなければ得
られないからである。特に、1サイクルで命令を実行し
ようとする場合、分岐命令の実行時には期間T3において
次の分岐先番地を出力する必要があるが、プリチャージ
回路を使用している限りはそのための制御信号の生成は
期間T3に入ってからでないと得られず、間に合わないこ
とになる。従って、期間T2において必要な制御信号を生
成するにはスタティックな回路によってコードをデコー
ドする必要がある。
【0015】このようなタイミングを実現するために
は、 CPUの内部構成として以下のようなバス構造を採用
する必要がある。即ち、レジスタとALU との間の接続は
2ウェイ以上、具体的には読み出しラインと書き込みラ
インとの往復2本のバス構造を必要である。また、レジ
スタデータの演算と同時にオペレーションコードをフェ
ッチするため、メモリを各サイクル毎にアクセスするた
めには、プログラムカウンタを含むアドレス出力回路は
上述のレジスタバスとは独立したデータパスを備える必
要がある。
【0016】請求項2の発明に係るマイクロコンピュー
タは請求項1の構成に加えて、割り込み, リセット, 例
外処理等の実行に対処する構成を提案する。本発明のマ
イクロコンピュータではこれらの例外処理に対しても予
めオペレーションコードを割当てておき、それらの実行
要求が発生した場合には、プログラムメモリ領域からオ
ペコードラッチへの経路を遮断すると共に例外処理用の
コード発生手段から強制的にコードを供給する。例外処
理用のコードが供給された後は、通常の命令実行の場合
と同様に命令デコーダでデコードし、必要な制御信号を
生成する。
【0017】請求項3の発明に係るマイクロコンピュー
タは請求項2の構成に加えて、リセット, 例外処理, 特
殊命令等の命令を、上述のハードウェア回路によって強
制的に命令コードを供給するのみならず、通常の命令と
同様にプログラムメモリ領域に予め格納しておき、この
プログラムメモリ領域からフェッチされた命令コードで
も等価に機能する回路を実現する。
【0018】請求項4の発明に係るマイクロコンピュー
タは、上述のようにして得られた命令コードをデコード
して目的のタイミングにおいて目的の制御信号を生成す
るCPU を提供する。具体的には、命令サイクル数をカウ
ントするカウンタの値と命令コードラッチの出力とを組
み合わせて、スタティックな組み合わせ回路で多数の制
御信号を得るようにしている。このカウンタの構成方法
にはいくつかの手法が考えられるが、たとえば命令コー
ドをデコードした段階で実行サイクル数が設定されるダ
ウンカウタを使用するか、あるいはシフトレジスタを使
用して、オペコードラッチの値のデコード結果に応じて
シフトクロックの制御をするか、等が可能である。
【0019】以上は命令デコーダに関する発明である
が、以下は条件分岐命令に関する発明である。請求項5
の発明に係るマイクロコンピュータは、条件分岐命令の
実行のための構成に関し、予めソフトウェアにより指定
したレジスタの値とコンペアレジスタの値とをビット毎
に比較した後、マスクレジスタの値によって必要なビッ
トのみを取り出すことにより分岐条件が満足されるか否
かを示す信号出力が常にアクティブになるような条件判
定回路を備えている。
【0020】請求項6の発明に係るマイクロコンピュー
タは、請求項5の構成に加えて、条件判定回路によるレ
ジスタの指定を簡単な命令で実行し得るように構成され
ている。即ち、一命令で、比較の対象となるレジスタの
指定と、比較するビットの指定及びハイレベル/ローレ
ベルの区別とを行なえるようにする。このために必要な
判定レジスタの回路構成, マスクデータレジスタ, コン
ペアデータレジスタの回路構成, 及び命令実行のシーケ
ンスをも提供する。
【0021】請求項7の発明に係るマイクロコンピュー
タは、請求項5の条件判定回路のレジスタとして、各種
の周辺機能回路の制御レジスタ群, ALUの演算結果フラ
グ,割り込みの要求ビット群を割り付けた構成を採用し
た。即ち、タイマのオーバフロー、外部端子入力からの
割り込み、FIFOのステータスフラグ等、種々の状態を知
るためのステータスビットを割り付け、 ALUを介して演
算判定をすることなしに瞬時に状態判定が可能な構成を
実現できる。
【0022】請求項8の発明に係るマイクロコンピュー
タは、請求項5の条件判定回路を具体化するに際して、
先に請求項1の発明で説明した基本命令タイミングに同
期させるための手段を備えている。
【0023】請求項9の発明に係るマイクロコンピュー
タは、請求項5の条件判定回路を具体的化するに際し
て、命令のオペレーションコード中の1ビットの制御コ
ードを直接オペコードラッチから条件判定回路に入力す
ることにより、無条件分岐が実行されるように構成し
た。
【0024】以下はALU の構成に関する発明である。請
求項10の発明に係るマイクロコンピュータは、アキュ
ムレータを使用しないレジスタtoレジスタ演算を実行す
るための構成であり、2ウェイバス方式を採用するため
に一方の被演算数を保持すると共にALUに与えるテン
ポラリレジスタを備えている。
【0025】請求項11の発明に係るマイクロコンピュ
ータは、請求項10の構成に加えて、テンポラリレジス
タの制御を上位nビットと下位mビットとをそれぞれ異
なる制御信号で制御するとともに、テンポラリレジスタ
出力に代えてALUの上位nビットまたは下位mビット
に強制的に“0”を供給する制御回路と、テンポラリレ
ジスタの値を反転してALUに与える反転制御回路とを
備えている。こにより、 ADD, SUB, AND, OR命令等の2
変数演算も、またNOT, DEC, INC, Shift命令等の1変数
演算も一つのフルアダー回路をベースとして構成でき
る。但し、データ転送を行なうための MOV命令等の非演
算命令の実行は別の迂回経路を経由してALU をパススル
ーするように構成した。また、キャリィフラグの制御回
路を備えることにより、数本の制御信号で数値演算と論
理演算との双方が実現される。
【0026】請求項12の発明に係るマイクロコンピュ
ータは、請求項11の構成に加えて、フルアダーの出力
側にシフタを配置して右シフト, 左シフトを行なった後
に出力する。このシフト回路を追加することにより、1
ビットシフトのみならず数ビットシフトも可能になる。
シフタの出力は演算結果を結果ラッチに一時的に格納し
た後にレジスタバスをドライブする。
【0027】請求項13の発明に係るマイクロコンピュ
ータは、請求項10の構成に加えて、レジスタから読み
出された値をALUへの供給前段で保持するラッチ回路
を備え、演算の実行を期間T2及びT3の双方において行な
うようにした。レジスタからのデータの読み出しはレジ
スタパスの回路線容量が大きいために遅延時間があるの
で、このラッチで一旦データを保持することによって演
算のスピードマージンを稼ぐことが可能となる。
【0028】請求項14の発明に係るマイクロコンピュ
ータは、命令セットに関する。本発明のマイクロコンピ
ュータが備える命令セットは、各命令コード中の固定さ
れた位置の6ビットで演算の種別を区別する。この内の
1ビットはバイト長演算と16ビットワード長演算とを区
別し、1ビットはシフト演算と非シフト演算とを区別す
る。残りの4ビットによって更に細分化された演算の種
別を指定する。
【0029】請求項15の発明に係るマイクロコンピュ
ータは、命令コードを基本的に16ビットで構成し、63ワ
ードのレジスタを有するALUに対して各種操作を実施
する命令群とその命令コードとを提供する命令セットを
備える。16ビットのコードの中に演算の種別, 操作の種
別を示すコードの他に、ソースレジスタ及びデスティネ
ーションレジスタの指定、分岐命令の分岐先アドレスを
指定するディスプレースメント、8ビット長の即値等を
も含み、ほとんどの命令が1ワード命令で指定可能であ
る。また、各命令に対して主として4種類のタイミング
で制御信号を生成してCPUの動作を成立させている。
【0030】請求項16の発明に係るマイクロコンピュ
ータは、CPU内のレジスタ空間に直接機能レジスタを
配置している。即ち、タイマ, シリアルI/O, FIFO,リア
ルタイムI/O, A/D変換器等のデータの授受のみならず、
それらの制御ビット, ステータスビット, 割り込み要求
レジスタ等の通常のマイクロコントローラで使用される
種々の機能レジスタを直接割り付けてある。これによっ
て、これらの機能レジスタが他の CPU内レジスタと同様
に非常に迅速にアクセス可能となる。
【0031】請求項17の発明に係るマイクロコンピュ
ータは、上述の機能レジスタのICチップ上のレイアウト
設計及び論理設計の段階で、単純なデータラッチからワ
ンショットパルス生成の機能ラッチ等、いくつかの基本
的な要素機能レジスタを予め準備し、1ビット毎の機能
に応じてこれらのセルから必要なものを選択して組み合
わせる手法を提供する。特に、レイアウト設計上はこれ
らのセルを碁盤の目状に配置してチップレイアウトを実
現する。
【0032】請求項18の発明に係るマイクロコンピュ
ータは、 CPU内のレジスタ空間に高機能な演算ブロック
を付加することにより拡張性の高い CPUが実現される。
【0033】請求項19の発明に係るマイクロコンピュ
ータは、請求項1の構成の期間T2において実行されるべ
き処理を更に分解して、期間T2において命令コードフェ
ッチと一部の命令のデコードを、期間T3においてオペラ
ンドのレジスタからのロード及び演算を実行し、期間T4
においてデスティネーションレジスタへの演算結果の格
納を行なうように構成した。
【0034】なお、請求項20,21,22に関しては
請求項2,3,4の発明を請求項19の発明に適用した
ものである。
【0035】
【作用】請求項1の発明に係るマイクロコンピュータで
は、レジスタのアクセスは、オペランドのソースレジス
タからの読み出しはクロックのローレベル区間で、演算
結果のデスティネーションレジスタへの書込みは次のハ
イレベル区間でそれぞれ行なわれ、基本的にはシステム
クロックの1サイクルでレジスタの演算が実行される。
【0036】請求項2並びに3の発明に係るマイクロコ
ンピュータでは、例外的な処理も命令デコーダ以降は他
の一般的な命令と同様の処理が行なわれる。
【0037】請求項4の発明に係るマイクロコンピュー
タでは、数サイクルに渡って実行される命令のコードを
デコードをして制御信号が生成される。特に、ダウンカ
ウント方式を採用した場合は、連続して複数のデータを
操作する場合、たとえば複数のデータを連続して転送す
る場合等、偶数カウント時にはソースデータをフェッチ
し、奇数カウント時にはそのデータを格納する等の操作
を制御する信号線の生成が容易になる。
【0038】請求項5の発明に係るマイクロコンピュー
タでは、分岐条件の判定が分岐命令実行時には既に得ら
れた状態で条件分岐命令が実行される。具体的には、期
間T2においては既に分岐条件判定が確定しており、実際
の分岐はその後の期間T3において新しいアドレスが出力
されて実行される。なお分岐先アドレスの演算は、命令
コードから単純に抜き出すようにするか、特定のレジス
タの値をプログラムカウンタに期間T3の間に移動する
か、あるいはプログラムカウンタに専用のアドレス演算
回路を設けて命令コードに含まれるオペランドの値を直
接演算して相対アドレスを計算するか、等が可能であ
る。
【0039】請求項6の発明に係るマイクロコンピュー
タでは、請求項5の分岐命令を使う上で準備期間に無用
な時間を割くことなしに、必要最小限の命令でより効果
的に条件分岐を実行するための命令をサポートする。
【0040】請求項7の発明に係るマイクロコンピュー
タでは、条件分岐の条件判定の対象として機能ブロック
のステータスレジスタ等を直接使用することができるた
め、必要な場合には特定のビットを予め指定することに
より各サイクルにおいてそのビットの状態を監視し、状
態の変化があった場合に直ちにそれを認識して新たなル
ーチンへ分岐することが可能となる。
【0041】請求項8及び請求項9の発明に係るマイク
ロコンピュータでは、上述の条件分岐命令実行のための
回路が効果的に実現される。
【0042】請求項10及び請求項13の発明に係るマ
イクロコンピュータでは、1レジスタのロード, 演算,
演算結果のストアまでの操作を1 サイクル内で行なえる
と共に、テンポラリレジスタの設置によってレジスタの
ロードタイミング上のマージンを稼ぐことが可能となっ
た。
【0043】請求項11の発明に係るマイクロコンピュ
ータでは、頻繁に発生する8ビット長演算,操作の実行
が容易になる。
【0044】請求項12の発明に係るマイクロコンピュ
ータでは、シフト演算の回路が実現されるのみならず、
乗除算に有効なADD & Shift 操作を1命令/1実行サイ
クルで実現される。
【0045】請求項14の発明に係るマイクロコンピュ
ータでは、 ALUの構成と命令コードとの関係が定義され
ている。
【0046】請求項15の発明に係るマイクロコンピュ
ータでは、その命令セットは16ビット命令長を基本とす
るレジスタマシンのCPU の命令セットが提供される。な
お、基本的には1命令/1サイクルが実現される。
【0047】請求項16の発明に係るマイクロコンピュ
ータでは、最もアクセスの早いCPUレジスタ群の中に機
能レジスタを配置したことにより、マシンサイクルのス
ピードで各機能の制御並びに状態の監視が可能になる。
これは、高速制御が必要なマイクロコントローラの分野
で特に有効な発明である。
【0048】請求項17の発明に係るマイクロコンピュ
ータでは、ASICマイクロコントローラの開発に際して、
その分野に適した周辺機能の設計をより素早く実現する
上で有効な設計手法が提供される。
【0049】請求項18の発明に係るマイクロコンピュ
ータでは、掛け算, 割り算等の高速連続演算回路、積和
演算回路、浮動小数点演算回路等、応用分野に応じてそ
の必要性が異なり且つ回路規模の大きい演算機能が用に
に付加される。
【0050】請求項19の発明に係るマイクロコンピュ
ータでは、期間T1における実行アドレスの出力は請求項
1の発明と同様であるが、命令コードの読み出しに許さ
れる時間,及び演算に許される時間のマージンが拡大さ
れ、1サイクル/1命令で動作しつつ、低電圧側,高速
動作側のマージンが確保される。なお、分岐命令等の分
岐先アドレスの演算は従来と同様に期間T2, T3において
行なって分岐命令をも1サイクルで実行する特色は本実
施例においても維持される。
【0051】なお、請求項20,21,22に関しては
請求項2,3,4の発明を請求項19の発明に適用した
ものである。
【0052】
【実施例】以下、本発明をその実施例を示す図面に基づ
いて詳述する。図1は本発明に係るマイクロコンピュー
タの第1の実施例のCPU による命令実行シーケンスの基
本サイクルを示すタイミングチャートである。
【0053】以下、本発明のマイクロコンピュータの第
1の実施例の命令実行シーケンスについて、そのCPU の
具体的な構成例を示す図2のブロック図を参照しつつ順
に説明する。
【0054】図1において、参照符号1は基本クロック
φの波形を示している。前述の従来例では、基本クロッ
クφはマイクロコンピュータに内蔵されている発振器に
より生成されるクロックを2分周して使用していたが、
本発明のマイクロコンピュータでは内蔵発振器が生成す
るクロックそれ自体を使用している。具体的には、たと
えば内蔵発振器の発振周波数が6MHz であれば基本クロ
ックφの周期は167 nsになる。
【0055】なお、基本クロックφの2周期の内の第1
の周期のハイレベル区間を期間T1とし、同じくローレ
ベル区間を期間T2とし、第2の周期のハイレベル区間を
期間T3とし、同じくローレベル区間を期間T4とする。
【0056】参照符号2は第1の補助クロックφHの波
形を示している。この補助クロックφHは、基本クロッ
クφのハイレベル(以下、”H”という)の区間である
期間T1及びT3内において、立ち上がりは基本クロックφ
の立ち上がりから時間tdだけ遅延し、立ち下がりは基本
クロックφの立ち下がりと同期するようにタイミングが
設定されている。
【0057】同様に、参照符号3は第2の補助クロック
φLの波形を示している。この補助クロックφLは、基
本クロックφのローレベル(以下、”L”という)の区
間である期間T2及びT4内において、立ち上がりは基本ク
ロックφの立ち下がりから時間tdだけ遅延し、立ち下が
りは基本クロックφの立ち上がりと同期するようにタイ
ミングが設定されている。なお、補助クロックφH,φ
Lは後述するようにレーシングを防ぐ上で重要な役割を
果たす。
【0058】参照符号4はROM あるいはRAM, EPROM, EE
PROM等のプログラムメモリ領域51からのデータの読み出
しのタイミングを示している。具体的には、参照符号4a
にて示されている期間T1内のタイミングでプログラムメ
モリ領域51のビット線のプリチャージが行なわれ、参照
符号4bにて示されている期間T2内のタイミングで目的の
データが取り出される。但し、期間T2においてデータを
読み出す際にどうしても読み出しタイミングに遅延が生
じるため、基本クロックφの期間T2の立ち下がりから若
干の時間にわたってデータが確定しない期間が存在す
る。これを補償するために補助クロックφH及びには前
述の遅延時間tdが設定されており、後述するCPU の制御
信号の生成回路において、データの不定区間に誤って制
御信号が出力されないようにしている。なお、このデー
タが確定しない期間は通常は15〜30nsである。
【0059】参照符号5はプログラム実行中にアドレス
が出力されるタイミングを示しており、期間T1, T2にわ
たる。メモリのプログラムメモリ領域51中のデータをア
クセスする場合には、このタイミングでアドレスが出力
される。なお、アクセスアドレスはプログラムカウンタ
40により生成されて出力されるが、その具体的なタイミ
ングは参照符号12に示されている。
【0060】参照符号6は参照符号5のタイミングで指
定されたアドレスに格納されているプログラム (命令)
コードがプログラムメモリ領域51から読み出されてCPU
へ転送される(CPUがフェッチする)タイミングを示して
いる。また、命令コードがCPU にフェッチされると同時
にそのデコードが命令デコーダ66で行なわれるが、その
タイミングが参照符号8で示されている。このプログラ
ムメモリ領域51からのコードの読み出し及びデコードは
基本クロックφの半サイクルの期間T2内のみで行なわれ
る。そして、プログラムメモリ領域51から読み出された
コードは参照符号7で示されているタイミングでオペコ
ードラッチ56にラッチされる。なお、基本クロックφの
2サイクル以上の実行時間を要する命令に関しては、参
照符号7bにて示されているように、その命令の実行が終
了するまでオペコードラッチ56での命令コードのラッチ
が継続される。
【0061】参照符号9はオペランドを保持するソース
レジスタからの読み出しのタイミングを示している。即
ち、上述のようにしてデコードされた命令により操作さ
れるオペランドがレジスタセット20中のそれを保持して
いるソースレジスタから読み出されてALU 22にロードさ
れる。
【0062】参照符号10はALU 22による演算のタイミン
グを示している。即ち、上述の参照符号9のタイミング
でソースレジスタからALU 22にロードされたオペランド
に対する演算がALU 22により実行され、その結果がこの
参照符号10にて示されているタイミングで結果ラッチ23
に格納される。
【0063】最後に、参照符号11にて示されている期間
T3のタイミングにおいて、ALU 22による演算結果がレジ
スタセット20中の目的のレジスタに格納 (レジスタセー
ブ)されて一連の命令実行が完了する。
【0064】参照符号12はプログラムカウンタ40の動作
タイミングを示している。なお、詳しくは後述するが、
プログラムカウンタ40はカウント値PCを保持すると共に
アドレスバスを介してプログラムメモリ領域51へ出力す
るラッチ41と、このPC値を”+1”ずつインクリメントす
るインクリメンタ42と、このインクリメンタ42によりイ
ンクリメンタされたPC値をラッチ41にラッチさせるため
に保持するレジスタ44とで構成されている。
【0065】期間T1, T2にわたるタイミング12a ではプ
ログラムカウンタ40のPC値が”PC”であったとすると、
インクリメンタ41内部では半周期遅れた期間T2, T3にわ
たるタイミング12b で”PC+1”にインクリメントされ
る。このインクリメントされた新しいPC値”PC+1”が今
度は期間T3, T4にわたるタイミング12c において再びプ
ログラムカウンタ40のラッチ41に格納されることによ
り、1アドレス進んだ”PC+1”の値がプログラムカウン
タ40の値としてアドレスバスへ出力される。分岐命令の
実行時には、タイミング12b と同一期間のタイミング12
d において分岐先の新しいアドレスが演算され、それが
タイミング12c においてプログラムカウンタのラッチ41
に格納される。
【0066】参照符号13は本発明のマイクロコンピュー
タの命令デコーダ66が命令コードをデコードして生成す
る制御信号群の基本タイミングを示しており、5種類に
大別される。信号e0x の一群は命令がフェッチされると
同時に命令デコーダ66内のスタティックな組み合わせ回
路から直接出力される制御信号である。信号e2x の一群
は信号e0x のタイミングを補助クロックφLのタイミン
グで成形する制御信号であり、たとえばレジスタロード
制御信号がこの例となる。信号e4x の一群は参照符号7
で示されているタイミングでラッチされた命令コードか
ら命令デコーダ66内のスタティックな組み合わせ回路で
直接生成される制御信号であり、信号e6x はその信号e4
x のタイミングを補助クロックφHのタイミングで成形
する制御信号である。基本的には以上の4種類のタイミ
ングの組み合わせでCPU の制御を行なうのであるが、こ
れ以外に例外的なタイミングの信号が一部使われる。
【0067】図3は本発明のマイクロコンピュータの第
1の実施例のCPU のレジスタバス及びそれに接続された
レジスタ20-A, 20-B…20-N, ALU 22等の構成を示すブロ
ック図である。
【0068】図3において、参照符号20-A, 20-B…20-N
はこのCPU の内部レジスタであり、全体としてレジスタ
セット20を構成する。各レジスタ20-A, 20-B…20-Nには
レジスタアドレスA, B…Nが割り付けられている。こ
れらのレジスタ20-A, 20-B…20-Nはそれぞれ参照符号28
-A, 28-B…28-Nにて示されているスイッチを介して参照
符号25にて示されている読み出し用のレジスタバスSEQ-
A(C)に接続されている。
【0069】各スイッチ28-A, 28-B…28-Nはそれぞれ参
照符号e21-A, e21-B…e21-N にて示されている制御信号
で制御される。これらの制御信号e21-A, e21-B…e21-N
は、参照符号33で示されている5ビットのソースレジス
タを指定するソースレジスタ指定信号と参照符号34で示
されているレジスタの読み出し制御タイミング信号e21
とをそれぞれデコード回路37-A, 37-B…37-Nでデコード
することにより得られる。
【0070】参照符号21はテンポラリレジスタであり、
その出力の一方は直接ALU 22の入力に、他方の出力は他
のレジスタと同様にレジスタバスSEQ-A(C)25に接続され
ている。ALU 22はレジスタバスSEQ-A(C)25から送られる
データとテンポラリレジスタ21に保持されている値とを
オペランドとして、数値演算, 論理演算, シフト演算等
を実行する。このALU 22による演算結果は参照符号23で
示されている結果ラッチに保持された上でバスバッファ
24を介してレジスタバスSEQ-B(D)26をドライブする。
【0071】ところで、この図3に示されている実施例
の変形例として図4に示されているような請求項13の
発明の構成が可能である。即ち、レジスタバスSEQ-A(C)
25から読み出されたデータを一旦保持するバッファレジ
スタ27を備える構成も可能である。このような構成を採
る場合には、図1に示されているタイミング10b で説明
した、余裕のあるタイミング設計が可能となる。なお、
図4において、バッファレジスタ27へのデータの入力は
補助クロックφLがハイレベルでる場合にオンするスイ
ッチ30で制御される。
【0072】このような、レジスタから読み出された値
をALU 22への供給の前段で保持するラッチ回路を設けた
構成では、参照符号10b にて示されているように、期間
T2及びT3の一周期にわたってALU 22による演算が実行さ
れるため、ALU 22の実行スピードマージンが稼げること
になる。いずれにせよ、ALU 22による演算の結果が期間
T2, T3にわたって結果ラッチ23に保持され、書き込み側
のレジスタバスSEQ-B(D)26をドライブする。
【0073】但し、図3に示されている本来の実施例で
は、バッファレジスタ27と制御スイッチ30とは存在せ
ず、レジスタバスSEQ-A(C)25がALU 22の入力に直接接続
されている。また、ALU 22へは経路32を介してキャリー
が入力され、経路31を介してキャリー出力がキャリービ
ットに格納される。
【0074】レジスタバスSEQ-B(D)26はこのALU 22の演
算結果をレジスタに戻すために使用されるバスであり、
データをレジスタに格納するためのスイッチ29-A, 29-B
…29-Nを介して各レジスタ20-A, 20-B…20-Nに、スイッ
チ29-Tを介してテンポラリレジスタ21にそれぞれ接続さ
れている。各スイッチ29-A, 29-B…29-N及び29-Tはそれ
ぞれ制御信号e61-A, e61-B…e61-n 及び29-Tにより制御
される。これらの制御信号e61-A, e61-B…e61-n 及び29
-Tは、参照符号35で示されているデスティネーションレ
ジスタを指定する5ビットのデスティネーションレジス
タ指定信号と参照符号36で示されているレジスタの書き
込み制御タイミング信号e61 とをデコード回路38-A, 38
-B…38-Nでデコードすることにより得られる。
【0075】なお、上述の各スイッチは図3及び図4に
おいては○印にて示されており、それぞれの直近に記さ
れている信号によりオン/オフ制御される。それらのス
イッチの具体的な実現手法としては、たとえばトランス
ミッションゲートで構成する手法、真と偽との二つの信
号線から制御信号が入力される2つのNチャネルトラン
ジスタの組み合わせによる手法等が可能である。
【0076】図5,図6は本発明のマイクロコンピュー
タの第1の実施例のプログラムカウンタの構成を示すブ
ロック図である。なお、図5はプログラムカウンタの本
体の構成を、図6はその制御回路の構成を主として示し
ている。図5において、参照符号41は13ビットのSCラッ
チであり、このプログラムカウンタのカウントPC値を保
持する。このSCラッチ41はアドレスバスバッファを介し
てROM, RAMのアドレス信号を出力している。
【0077】参照符号42はプログラムカウンタのインク
リメンタ (SCインクリメンタ) である。SCインクリメン
タ42は、参照符号43で示されているインクリメント制御
入力が”H”である場合にはSCラッチ41の値を”+1”
し、その結果の上位4ビットをresult Hレジスタ44-a
に、下位9ビットをresult Lレジスタ44-bにそれぞれ供
給する。なお、result Hレジスタ44-aとresult Lレジス
タ44-bでresultレジスタ44を構成する。
【0078】通常はこれらのレジスタ44-a, 44-bの出力
はスイッチ45を経由してアドレス演算ブロック内のレジ
スタバスである SEQ-Eバスに供給されており、SCラッチ
41に新しい値を設定することが可能に構成されている。
このスイッチ45のオン/オフのタイミングを制御する制
御信号が SC save信号である。
【0079】一方、result Hレジスタ44-a及びresult L
レジスタ44-bの出力は SEQ-Fバスにも接続されていて、
割り込みあるいはサブルーチン呼び出しがあった場合に
実行元アドレスを以下に説明するスタックレジスタに格
納するための経路を形成している。
【0080】以下に説明する部分については、本発明の
マイクロコンピュータの特徴的な構成が示されている。
【0081】図において、参照符号45H1, 45H2…45H8は
いずれも5ビットの上位スタックを、参照符号45L1, 45
L2…45L8はいずれも8ビットの下位スタックを示してい
る。これらのスタックは上位スタック45H1と下位スタッ
ク45L1とで、上位スタック45H2と下位スタック45L2と
で、・・・・上位スタック45H8と下位スタック45L8とで
それぞれ一つのスタックレジスタを構成している。
【0082】各上位スタック45H1, 45H2…45H8は入力経
路としては、前述の SEQ-Fバスからデータを取り込む経
路と、ALU 22本体の演算結果を SEQ-Dバスを介して取り
込む経路との二つの経路を併せ持つ。また、各下位スタ
ック45L1, 45L2…45L8は入力経路としては、前述の SEQ
-Fバスからデータを取り込む経路と、ALU 22本体の演算
結果を SEQ-Bバスを介して取り込む経路との二つの経路
を併せ持つ。
【0083】更に各上位スタック45H1, 45H2…45H8の出
力経路は、SCラッチ41にデータを供給する SEQ-Eバスに
接続される経路と、ALU 22の演算入力に供給する SEQ-C
バスに接続される経路とが存在する。また、下位スタッ
ク45L1, 45L2…45L8の出力経路は、SCラッチ41にデータ
を供給する SEQ-Eバスに接続される経路と、ALU 22の演
算入力に供給する SEQ-Aバスに接続される経路とが存在
する。これらのスタック45H1, 45H2…45H8及び45L1, 45
L2…45L8によってALU 22で演算した結果を次に実行すべ
き命令のアドレスとしてプログラムカウンタのSCラッチ
41に供給する手段が構成されている。
【0084】SEQ-Eバスにはその他に、分岐先のアドレ
スの供給を16ビット構成のオペコードラッチ56から直接
受ける経路46, システムのリセット時にリセットベクタ
がハードウェア的に固定番地で供給される経路47, ソフ
トウェア的にリセットベクタがテストリセットベクタ回
路から供給される経路48等も接続されている。
【0085】図6において、 SEQ-Eバスよりも左側の参
照符号48にて示されている回路はこのプログラムカウン
タの動作を制御する制御回路である。制御回路48は以下
の複数の制御信号を入力とし、 SC save等の制御信号を
生成する。
【0086】この図5,図6に示されているプログラム
カウンタ40は基本的には補助クロックφHのタイミング
でセーブが行なわれるが、これを阻止する幾つかの要因
がある。まず、信号e42BがORゲート403, ANDゲート404
を経由して SC save信号を無意にすることにより2サイ
クル命令実行時のPC値”SC+1”が阻止される。また、br
av(branch available) 信号は分岐命令実行時に分岐が
有効であることを示すが、後述する条件判定回路の出力
であるbranch control信号と信号e43B(branchconditio
n:条件分岐命令制御信号) 及びその時点のオペコードラ
ッチ56の1ビットo11 の値のいずれかが”H”となった
場合にのみORゲート401 の出力として成立する。
【0087】なお、ビットo11 は無条件分岐を制御する
ビットであり、このビットo11 が”L”である場合は条
件分岐であることを、”H”である場合は無条件分岐で
あることを示す。信号e82Bは割り込みあるいはブレーク
割り込み時に復帰アドレスを確保するためにPC値のイン
クリメントを阻止する制御信号である。
【0088】本発明のマイクロコンピュータの条件分岐
命令の実行は特徴的であって、分岐先アドレスの下位9
ビット(bit8 〜bit0) はオペコードラッチ56に保持され
ている命令のオペランドから経路46を経由して直接供給
され、上位4ビットは現在実行中のページからの+1/
+0/−1及び絶対ゼロページ指定を選択できる方法を
採用している。従って、分岐命令実行時には信号e63(br
anch SC save信号) によって ANDゲート402 の出力を有
効にすることにより、分岐先アドレスの下位9ビットが
オペコードラッチ56から経路46, SEQ-Eバスを経由して
SCラッチ41に供給され、上位4ビットは信号e47 (page
信号) によってページ演算を有効にすることにより、オ
ペレーションコードのビットo10 及びo9の2ビットでペ
ージ指定回路を働かせる。
【0089】サブルーチン呼び出しに際しては、10ビッ
トのアドレスとしてオペコードラッチ56に保持されてい
る命令コード内のオペランドのビットo12 からo3までが
制御信号e64 によって経路47,SEQ-Eバスを経由してSCラ
ッチ41に直接供給される。なお、サブルーチン呼び出し
の場合は、本実施例では下位3ビット(bit2 〜bit0)は
常に”000 ”が固定値として上述同様に制御信号e64 に
よって供給される。
【0090】また、本発明のマイクロコンピュータの割
り込みベクタの発生も特徴的であって、割り込み要因に
応じて予め割り付けられているスタックレジスタに保持
されたデータがそのまま割り込みルーチンの飛び先アド
レスになる。従って、割り込みを使用する場合には、各
スタック45H1, 45H2…45H8及び45L1, 45L2…45L8に予め
プログラムによって割り込みベクタを書き込んでおく必
要がある。プログラムカウンタと各スタック45H1, 45H2
…45H8及び45L1, 45L2…45L8相互間のデータの受渡しは
それぞれを SEQ-Eバスに接続するスイッチの制御信号e6
5-1, e65-2…e65-8 及びe66-1, e66-1…e66-8 により行
なわれる。
【0091】また、スタックレジスタを使用した分岐命
令の実行方法もある。即ち、分岐先アドレスを予めプロ
グラムによって計算していずれかのスタック45H1, 45H2
…45H8及び45L1, 45L2…45L8に格納しておけば、その特
殊分岐命令を実行することにより、全てのアドレス空間
に分岐することが可能となる。本発明のマイクロコンピ
ュータではこの命令をBRT(Branch toggle), BSR(Branch
with stack)と称している。これらの命令が実行される
場合もプログラムカウンタと各スタック45H1,45H2…45H
8及び45L1, 45L2…45L8との相互間のデータの受渡しは
上述の制御信号e65-1, e65-2…e65-8 及びe66-1, e66-1
…e66-8 により制御される。
【0092】最後にこのアドレス演算ブロックでは、メ
モリ空間のデータアクセスのためにも、またこのスタッ
クレジスタが使用されている。即ち、プログラムメモリ
領域として通常使用されているメモリ空間のデータを直
接演算する必要がある場合に、図6には示されていない
が、スタック45H1, 45H2…45H8と45L1, 45L2…45L8それ
ぞれの組合わせで構成されるスタックレジスタと同一構
成の二組の外部アドレスポインタ(External address Po
inter)45P1, 45P2を使用して、命令コードのビット11で
指定することにより、プログラムで設定した2種類のア
ドレスをアクセスすることができる。この場合もプログ
ラムカウンタとスタック45H1, 45H2…45H8及び45L1, 45
L2…45L8との相互間のデータの受渡しは信号e65-1, e65
-2…e65-1 により制御される。
【0093】図7乃至図11は本発明のマイクロコンピュ
ータの第1の実施例の命令デコーダの回路構成例を示す
ブロック図であり、図7はオペコードラッチ56の構成を
示すブロック図、図8は命令サイクル制御回路の構成を
示すブロック図、図9,図10は命令デコード回路の構成
を示すブロック図、図11はCPU の各部分を制御する制御
信号eXX を生成するための回路構成を示すブロック図で
ある。
【0094】図7において、参照符号51はメモリのプロ
グラムメモリ領域を示している。このプログラムメモリ
領域51からデータバスSQR(15〜0)50へ出力されたデータ
を受けて、スイッチ52-aとバッファ53とを介して、命令
コードデータが信号OPDEC15〜0として直接命令デコー
ダ66の一方の入力OPDEC15 〜0として供給される。ま
た、バッファ53の出力はスイッチ54を経由してオペコー
ドラッチ56の入力となる。各命令サイクル毎に命令コー
ドがこのオペコードラッチ56に保持される操作が反復さ
れる。
【0095】通常時は信号e87 は”L”、e10Bは”H”
である。従って、これらが入力されるORゲート55B の出
力は”H”である。スイッチ54は通常は補助クロックφ
Lの”H”の期間にこれとORゲート55B の出力とが入力
される ANDゲート55A の出力が”H”になるのでオン
し、これによって各サイクルにおいてオペレーションコ
ードがオペコードラッチ56に格納される。2サイクル命
令または3サイクル命令の場合は、信号e10Bがアクティ
ブ( ”L”) になってORゲート55B の出力が”L”にな
るのでスイッチ54がオフし、これによってオペコードラ
ッチ56によるオペレーションコードのラッチが禁止され
る。
【0096】オペコードラッチ56の出力は命令デコーダ
66のもう一方の入力OP15〜0となる。また、ALU 22の演
算を制御するために、スイッチ57-a, 57-b, 57-cのいず
れがオンすることにより信号 CLC4〜0が信号OPDEC12
〜8及び信号OP12〜8,6〜2から生成される。
【0097】なお、 CLC信号は5ビットであり、演算の
タイプを識別するための信号である。具体的には、レジ
スタ演算の場合は期間T2において命令コードのビット12
〜8(OPDEC12〜8)を使用し、メモリ演算の場合は2サ
イクル目の期間T4において命令コードのビット6〜2
(OP6〜2)を使用し、2ワード命令であるオペランド
16ビットの即値とレジスタとの演算の場合は3サイクル
目の期間T6において命令コードOP12〜8のビット12〜8
を使用する。この CLC信号も命令デコーダ66の入力とな
る。
【0098】参照符号58は特殊コード発生器であり、割
り込み, リセット, ブレーク等のプログラム以外の外部
要因に起因する例外処理時に、それらに対応する命令コ
ード(特殊コード) をハードウェア回路で発生して強制
的に命令デコーダ66に供給する。
【0099】通常、信号e87 は”L”であるためスイッ
チ52-bはオフしており、データバスSQR(15〜0)50を介し
てプログラムメモリ領域51がアクセスされるが、上述の
例外処理が起動された場合は信号e87 が”H”に転じて
特殊コード発生器58が発生するコードが供給される。こ
の際、信号e87 が”H”になれば、ORゲート55B 及びAN
Dゲート55A によってスイッチ54がオンするので、オペ
コードラッチ56にも強制的に特殊コード発生器58から出
力されたコードが格納される。
【0100】なお、例外コードはその要因によっていく
つかの専用のコードを持つ。本発明の実施例では図12の
一覧表に示されているコードが設定される。
【0101】図12において、”BRK ”はブレークベクタ
へジャンプするコード、”RTB ”はブレークから復帰す
るコード、”INT ”は割り込み処理のコード、”RET ”
はシステムをリセットするコード、”TES ”はシステム
の試験のためにシステムをリセットするコードである。
【0102】図8は命令サイクル数を制御する命令サイ
クルカウンタ62の構成例を示すブロック図である。命令
デコーダ66はオペコードラッチ56の出力OP15〜0の信号
をスタティックな論理回路60でデコードして、何サイク
ル命令であるかを示す信号THREECYC(3サイクル命令), T
WOCYC (2サイクル命令), ONECYC (1サイクル命令) を生
成する。これらの各信号から現在のステートが何サイク
ル目かを示すONESIGPRE, ONESIG, TWOSIGPRE, TWOSIG,
THREESIGPRE, THREESIG 信号が生成されるように、それ
ぞれのステートの遷移定義に従って組み合わせ回路61-
a, 61-b, 61-cが組み立てられている。
【0103】なお、参照符号62-a, 62-b, 62-c及び63-
a, 63-b, 63-cは単純なシフトレジスタであり、シフト
レジスタ62-a, 62-b, 62-cは補助クロックφLに、シフ
トレジスタ63-a, 63-b, 63-cは補助クロックφHに同期
してシフト動作を行なう。
【0104】図9,図10はオペランドデコーダの構成を
示すブロック図である。本発明のマイクロコンピュータ
の第1の実施例では、16ビット長の命令コードの中にレ
ジスタ指定等のオペランドが含まれているため、命令実
行時にはそのオペランドを抽出する必要がある。この図
9,図10のブロック図はそのためのオペランドデコード
の構成を示している。
【0105】レジスタtoレジスタのデータ転送命令の場
合には、データバスSQR(15〜0)50へ出力されたデータ信
号から得られたビット7〜2の6ビットで転送元レジス
タ指定番地Source Reg(6) が得られる。一方、転送先レ
ジスタ指定番地DestinationReg(6)はオペコードラッチ5
6の出力OP15〜0の内のビット13〜8から得られる。即
値をレジスタに格納する場合は、その即値 (16ビット)
は信号e22 によりオン/オフ制御されるゲートを介して
レジスタバスSEQ-A, C 25 に供給される。8ビットデー
タの場合は下位8ビットのレジスタバスSEQ-A 25にのみ
供給すればよいが、上位8ビットのレジスタバスSEQ-C
25にも同時に供給し、レジスタへの実際の格納に際して
ALU 22中のロジックで制御する構成の方が、後述する16
ビットデータ即値演算と同じ扱いになるので、回路構成
が簡略になる。
【0106】図9,図10のブロック図中の主な信号名を
説明すると以下のようになる。FROM stack(4) は割り込
み, サブルーチン分岐等の際の戻り先番地の格納スタッ
クレジスタを指定する。TO stack(4) は割り込みベクタ
の格納スタックレジスタ、またはスタックレジスタを使
用した分岐命令の分岐先アドレスを格納するスタックレ
ジスタを指定する。
【0107】culc.type(5)は前述した演算の種別を指定
する信号である。Branch always ornotは条件分岐命令
と無条件分岐とを区別する信号であり、前述の図6に示
されているプログラムカウンタ40の制御回路48に信号o1
1 として与えられている。Selected Reg(4) は分岐条件
判定回路の判定の対象となるレジスタを指定し、 inten
able control(4)及びint return stack enable(4)は割
り込みコントロールレジスタである。
【0108】Destination Reg(6) はデータの転送先,
格納先を指定するレジスタ番地を指定する。これに対応
するのがSource Reg(6) であり、データの転送元, 引き
出し元のレジスタ番地を指定する。
【0109】Bit Select(4)はビットセット及びクリア
命令実行時の対象ビットを指定する信号であり、4ビッ
ト幅で16ビットを指定できる。Branch Adrs L(9)は分岐
命令の分岐先アドレスの下位9ビットを指定する信号で
あり、 JSR Adrs(10) はサブルーチン分岐命令のサブル
ーチンの先頭番地を指定する信号である。 Imm Data(1
6) は先にも説明したように、即値を演算に使用する場
合に使うパスである。
【0110】図11は本発明のマイクロコンピュータの命
令デコーダの回路構成の一例を示すブロック図である。
なお、この図11では、図7乃至図9,図10の説明に使用
した信号を使い、各命令毎に図13〜図28の命令セット一
覧表に示す制御信号を生成するものである。
【0111】e0X番台の制御信号は基本的に期間T1, T2
においてアクティブになるが、プログラムメモリ領域51
あるいはオペコードラッチ56の出力からタレ流しで生成
することに起因するタイミングの変化点の不要なグリッ
チが発生することを許している。これは、これらの e0X
番台の制御信号が最終的に期間T2の立ち上がりエッジの
タイミングで目的の動作が完了していれば問題はないた
め、グリッチの発生によって不要な動作を一旦行なった
としても最終的に目的の動作に戻ればよいような回路を
制御する部分にのみに使用しているためである。
【0112】e2X番台の信号は期間T2においてアクティ
ブになり、補助クロックφLで同期をとる。この信号は
グリッチが許されない回路を制御する部分に使用され
る。グリッチが許されない回路とはたとえば、レジスタ
の値をロードする制御のための回路等である。そのよう
な回路では、レジスタの値をロードする際にグリッチが
発生すると、一旦プリチャージされているレジスタバス
SEQ-A 25が不要な値にディスチャージされて正しい値に
戻るまでに時間を要するためグリッチの発生は許されな
い。
【0113】同様に、 e6X番台の信号は期間T3において
アクティブになり、補助クロックφHで同期を取る。こ
の信号では更に、たとえばレジスタへの書き込み信号e6
1 のように、グリッチが発生した場合には誤ったレジス
タにデータが書き込まれてしまって誤動作が生じるた
め、グリッチの発生は絶対に許されない。
【0114】e4X番台の信号は期間T2, T3においてアク
ティブになり、 e0X番台と同様にグリッチが許される回
路の制御に使用される。この他、特殊なタイミングで生
成される制御信号には e8X番台を使用している。たとえ
ば、前述した割り込み, リセットに対応して発生する信
号e87 は期間T2においてアクティブになるが、プログラ
ムリードとは非同期で発生するため、それらの信号とは
区別した信号名を付与してある。
【0115】図13〜図28は本発明のマイクロコンピュー
タの第1の実施例のCPU の命令セットの一覧表であり、
各命令とそのコード及びそれぞれの命令を実行する際に
アクティブになる制御信号を示したものである。なお、
図13〜図28は本来は図13, 図15, 図17, 図19, 図21, 図
23, 図25, 図27が順に上から下方向へ、また図14, 図1
6, 図18, 図20, 図22, 図24, 図26, 図28が順に上から
下方向へ配列され、奇数番号の図が左側に、偶数番号の
図が右側に配列された一枚の図である。
【0116】また、奇数番号の各図においては左側の欄
から順に、命令のグループ, ニモニックコード, ファン
クション, 16ビット長の命令コードが順に、偶数番号の
各図においては左側の欄から順に、命令のグループ, ニ
モニックコード, , 制御信号eXX が順に記載されてい
る。各命令に関して概略の内容を図30〜図35に示す。
【0117】STM, BMS, BMC 命令は、条件判定回路を一
命令でセットアップするための命令であり、条件判定を
実施したい場合に使用する。図35に示されている記号
は、図13〜図28に使われているオペランド指定記号であ
る。
【0118】図29はこれらの命令コードの生成の関係を
分かりやすくしたものである。図中、ハッチングが付与
された部分でコードのグルーピングをしてデコードを実
施する。
【0119】このような本発明のマイクロコンピュータ
に使用されている命令セットは、命令実行速度を向上さ
せるために以下のような観点に従って構成されている。 (1) オペランドのアドレス演算を不要にする。 (2) 分岐命令の相対アドレス演算を不要にする。 (3) 条件分岐判定を命令デコードサイクルでは行わな
い。 (4) 基本的にほとんどの命令は1命令/1ワード(16ビ
ット)、即ち1フェッチサイクルでフェッチ可能にす
る。
【0120】ここでアドレス演算とは、アクセス対象の
メモリアドレスをインデックスレジスタあるいはディス
プレースメントを用いて命令実行中に演算することを指
している。(1) 及び(2) のアドレス演算を不要にするこ
とによってマイクロコンピュータの基本サイクルを1サ
イクル省略することが可能になる。
【0121】アドレスビット幅は通常は少なくとも16ビ
ット程度、多い場合には64ビットにも及ぶが、アドレス
演算の桁上がりの時間を考えるとそのために1サイクル
は必要であり、命令実行速度を向上させる上での一つの
ネックになる。制御系のプログラムではプログラムが R
OM化されて固定しているため、必要なアドレス演算は予
めプログラミング時に最適化しておくことで、また余り
大規模なプログラムを想定しなければ、必ずしもインデ
ックスレジスタ等は必要でなくなる。
【0122】具体的には、(1) のオペランドのアドレス
演算を不要にすることに関して以下の命令を工夫してい
る。先ず、レジスタの指定を直接レジスタの物理アドレ
スで行なうようにした。レジスタは本実施例では64の空
間に配置されており、6ビットで指定される。6ビット
幅にした理由は、(4) の1命令のビット長を1ワード内
に収めようとした場合に可能な最大ビット幅を考慮して
決定されている。
【0123】レジスタへ即値を格納する SET命令では、
バイトサイズの即値を格納する場合に命令コードの16ビ
ットの内の8ビットが占められるため、レジスタアドレ
ス指定に6ビットを使用すれば命令コード識別のために
2ビットが残ることになる。MOV命令のレジスタtoレジ
スタ間転送命令ではソースレジスタ及びデスティネーシ
ョンレジスタの指定にそれぞれ6ビット、計12ビットが
必要であり、残された4ビットで命令コード識別をすれ
ばよいことになる。 ADD命令等のレジスタ演算命令の場
合は、演算の種別を表すために6ビットを使用しても、
命令コード識別に4ビットが残される。図13〜図28の一
覧表に示されている命令セットにおいて、source reg,
dest reg, immediate data, culculate type等と示され
ている命令がこれに相当する。
【0124】次に、メモリ領域アクセスに関してもアク
セス対象のメモリのアドレスを特別のレジスタに格納さ
れた値を用いた、レジスタ間接アドレッシングを用いる
ことでアドレス演算をなくす工夫をした。
【0125】図13〜図28の一覧表に示されている命令セ
ットの中で、ext. data operationのグループに属するS
ET ext2, data等の一連の命令群がこれに相当する。本
実施例では、二つのExternal Address Pointerレジスタ
(図37〜図42にEAP で示されている) が備えられてお
り、使用する間接アドレス格納レジスタの区別を命令コ
ード中のext ビットの1ビットで行っている。アクセス
対象のメモリアドレスはこのレジスタに格納された値そ
のものが使用される。実際の回路では、このExternal A
ddress Pointerレジスタは図4の参照符号45のスタック
レジスタと等価な回路構成をとっていて、Eバス(SEQ-
E) あるいはFバス(SEQ-F) を介して参照符号41にて示
されているプログラムカウンタ(この場合にはメモリア
ドレスバッファとして作用する)へ直接データ転送が可
能なになっている。レジスタ間接アドレッシングの実行
に際しては、 e61-Aのゲートが開いて EAPレジスタの値
はEバスを介してSCラッチ41に流れる。
【0126】この場合、本来のプログラムカウンタのPC
値はプログラムカウンタの結果レジスタ44に保持され
る。 e65-Aまたは e65-Bのゲートが指定される仕組み
は、図9,図10に示されている命令デコーダ66の回路中
のTO stack(4) へ至る信号線により信号e51 または e52
で Stack13または Stack14を指定するように直接ハード
ワイヤードにスタックレジスタが指定される。但し、メ
モリ領域をアクセスするためには、メモリ空間をプログ
ラム領域51と同じにしているので、実行サイクルとして
は1サイクルでは済まず、複数サイクルが必要となる。
【0127】分岐命令で相対アドレッシングを行うこと
は一般的に知られているが、この場合にもアドレス演算
に時間を要するため、本実施例では採用していない。そ
の代わりに、上述のスタックレジスタを用いた BRT, BR
S, RTS命令等のレジスタ間接分岐と、命令コード中のオ
ペランドビットを直接の分岐先とする BRC, BRA, JSR命
令とが用意されている。
【0128】BRT, RTS, BRS命令では、指定された Stac
kレジスタに格納された値が直接プログラムカウンタに
代入される。 BRT命令の場合、図9,図10に示されてい
るTOStack(4) の指定に命令ラッチのビット5〜2の4
ビットが接続されると共に信号e65 がアクティブになっ
て図4の e65-1〜 e65-8のいずれかのゲートが開いてス
タックレジスタの値がEバスを介してプログラムカウン
タ41に格納される。同時に、図9,図10に示されている
FROM Stack(4) の指定に命令ラッチのビット9〜6の4
ビットが接続されると共に信号e66 がアクティブになっ
て図4の e66-1〜e66-8 のいずれかのゲートが開き、re
sultレジスタ44に保持されている今まで実行されていた
PC値がFバスを介して指定された別のスタックレジスタ
に退避される。
【0129】このようにして、本実施例では一種のレジ
スタ間接指定サブルーチン分岐命令が実現されている。
他の、BRS, RTS命令等はこの BRT命令の動作を分解した
一方のみの動作を行なう。これらの命令ではスタックレ
ジスタ幅である16ビット幅のアドレスに自由に分岐可能
になる。
【0130】BRC, BRA命令の条件分岐は相対アドレス演
算に代えて下位9ビットの絶対アドレスと 512バイト単
位のページの概念を導入することにより、自身のペー
ジ, 前後のページ, 絶対ゼロページの4種類を2ビット
のコントロールビットで表し(図13〜図28中のBRA, BRC
の行のビット9,10参照)、これに条件分岐/無条件分
岐のコントロールビットを1ビット(図13〜図28中のBR
A, BRCの行のビット11参照)を加えた12ビットのオペラ
ンドに加えて残り4ビットを命令識別に用いることがで
きる。相対アドレスはページ単位で+/−すればよく、
このインクリメント/デクリメント演算もアドレスビッ
ト幅から9ビットを引いた幅を処理する回路で済み、桁
上がりに要する遅延時間を短くすることができる。
【0131】実回路としては図13〜図28の一覧表の信号
e47 で論理積されたpage activate信号がこの制御部分
に相当し、結果レジスタ44の上位部分のresult Hレジス
タ44H に分離してEバスにそのページ指定を独立して供
給する。一方、下位9ビットは命令コードラッチから直
接アドレス値が供給される。この動作は信号e63 で論理
積された制御信号で制御される。
【0132】JSR命令では復帰アドレスを格納するスタ
ックレジスタを選択可能にするために下位3ビットをス
タックの指定に使用し、ビット3〜12までの10ビットを
オクタルでオフセットを設けたサブルーチンの絶対アド
レスの指定に使用している。サブルーチンの配置は13ビ
ットアドレス幅、即ち8Kワードの空間に限定されるが、
制御用の小規模のプログラムの場合にはこの制限があっ
ても十分に実用的である。換言すれば、本発明のマイク
ロコンピュータは汎用的なプログラムの自由度を多少犠
牲にして、高速化を狙った設計になっている。
【0133】JSR命令は無条件で実行され、図4中の信
号e64 でゲートされた回路により命令コードラッチから
下位13ビットのアドレスが直接Eバスを介してプログラ
ムカウンタ41に供給される。同時に、それまで保持され
ていた実行アドレスはresultレジスタ44からFバスを介
して指定のスタックレジスタに制御信号e66 により格納
される。格納スタックレジスタの指定は図9,図10のFR
OM Stack(4) を制御信号e49 により選択した命令ラッチ
のビット0〜2の3ビットの信号パスである。なおこの
際、最下位の1ビットは”1”に固定されている。
【0134】以上に説明したように、各命令のコードは
オペランドのフィールドと命令識別のフィールドとで構
成されているが、図13〜図28の一覧表の中で制御信号eX
X はこの命令識別ビットのフィールドとサイクル数をカ
ウントする回路出力とをデコードすることにより生成さ
れる。なお、命令セットに関する工夫の内の第3の特徴
である条件分岐判定の対策に関しては後述する。以上が
本実施例で採られている命令セットの面から見た実行速
度高速化のための工夫である。
【0135】次に、本実施例の命令セットの各命令コー
ドの設計の考え方について説明する。本発明のマイクロ
コンピュータでは、1命令/1ワードを基本としてお
り、更に以下の点が考慮されている。
【0136】(1) 即値設定にオペランドビットを多く割
り付ける。 (2) 分岐命令にオペランドビットを多く割り付ける。 (3) オペランドビット及び使用される即値を極力ビット
シフトせずに済むようにする。 (4) ソースレジスタアドレスの指定ビットを固定する。 (5) デスティネーションレジスタアドレスの指定ビッ
ト,間接分岐レジスタアドレスの指定ビットの位置をな
るべく固定する。 (6) 演算種別の制御ビットを一括する。 (7) 全ビット”H”の命令コードに対してはプログラム
の実行に悪影響の少ない命令を割り当てる。
【0137】図29は図13〜図28の一覧表の命令セットの
命令識別ビットを抜き出して整理した一覧表である。図
29において”1”または”0”が記入されているビット
のみが各命令を識別するために必要最低限のビットであ
る。
【0138】上述の(1) 〜(3) の目的を達成するため
に、全体的に識別ビットがビット0,1及び上位のビッ
ト14, 15に集中されている。即ち、 SET命令の8ビット
即値,BRA, BRC命令の分岐先の下位9ビットは(3) の条
件を達成するためにビットを揃えており、下位8ビット
または9ビットが必要になる。このため、 SET命令の格
納先レジスタ指定はビット8〜13が使用されるようにす
れば合理的であり、(4) のソースレジスタ指定は逆に
下位ビット側にすれば MOV命令の実現のために都合がよ
い。
【0139】(4) のソースレジスタ指定を固定するとい
うことは命令のデコードとは無関係にソースレジスタ指
定がされるということであり、命令実行時間を短縮する
目的がある。図9,図10の各オペランドビットの引き出
しは一番時間的に厳しい動作をデフォールト値(図では
elseで示す) のゲート側に設定することにより、高速化
が実現されるようにしている。ソースレジスタ指定は命
令の実行手順の最初の方にあるため、(4) の条件は重要
である。ソースレジスタ指定は MOV命令のみについて考
えれば、下位8ビットのいずれの位置でもよいが、 BR
T, BRS, RES命令等のその他の命令のデコードをも考慮
すれば、ビット3〜7の6ビットを使用することが望ま
しい。演算種別を指示するコードはデスティネーション
レジスタ指定のビットと同じ位置、即ちビット8〜12の
5ビットが用いられる。
【0140】(7) の点に関しては、 MOV命令を割り当て
ることにより悪影響の少ない命令をコード割り付けし
た。これは、メモリ読み出しでは各サイクルにおいて
は、データバス50が”H”にプリチャージされることが
メモリ読み出し回路との関係で高速化に有利であるため
であり、期間T2である読み出しサイクルではまず全ビッ
ト”H”の命令コードが読み出される。 RES命令あるい
は STP命令、分岐命令等のような誤動作の影響が大きい
と予想される命令の識別ビットに”0”を多くすること
により、期間T2における誤動作の可能性を少なくするこ
とができる。
【0141】以上の点を考慮して命令コードを設計した
結果が図13〜図28の一覧表に示す命令セットの一例であ
る。本実施例では、使用可能な全てのコードを使い切っ
てはおらず、未定義命令のデコードは回路を減らすため
に省略している。
【0142】次に請求項5の発明としての条件判定回路
を備えたマイクロコンピュータの一実施例(以下、第1
の実施例の他の実施例という)について説明する。図36
は本発明のマイクロコンピュータの第1の実施例の他の
実施例の条件判定回路の構成を示すブロック図である。
【0143】図36において、参照符号101-1 乃至101-15
で示されている8ビットレジスタは条件判定の対象とし
て選択可能なレジスタ群である。これらのレジスタ101-
1 〜101-15はスイッチ102-1 乃至102-15によってそれぞ
れSEQ-T バスに接続されており、それぞれ信号T00乃至
T14により制御される。信号T00〜T14はSelect Reg
(4) 信号103 をデコードして得られ、前述の如く、BMS,
BMC, STM 命令等で条件判定の対象のレジスタを選択す
ることができる。
【0144】このようにして、レジスタ101-1 〜101-15
の内から一つだけ選択されたレジスタの各ビットの出力
は EXNORゲート104-0 〜104-7 の入力にそれぞれ供給さ
れる。各 EXNORゲート104-0 〜104-7 の他方の入力はコ
ンペアレジスタ105-0 〜105-7 の出力に接続されてお
り、両者の一致がビット毎に判定される。
【0145】参照符号106 はマスクレジスタである。各
EXNORゲート104-0 〜104-7 の出力を回路100 によりマ
スクして8ビット全体のAND を取ることにより分岐条件
判定を行ない、更にこの回路100 の出力を最終的に補助
クロックφLで同期させ、 BRC命令等のT3のタイミング
で分岐するか否かの制御をマスクレジスタ106 が確定す
る。
【0146】マスクレジスタ106 は参照符号107-0 〜10
7-0 にて示されているデータセット及びデータクリア回
路を備えており、制御信号e70 により指定ビットのみを
直接セットし、他のビットは全てクリアする機能を有す
る。この機能は、前述したBMS, BMC命令に対応して使用
される。ビットの指定は参照符号108 にて示されている
信号B0〜B7を生成する回路で行なわれる。この回路108
の入力としてはBit Decoder(3)とビット操作制御信号e4
1Bが使われる。たとえば、ビット1が選択されている場
合には、信号B1B のみが”L”となりB1B 以外のB0B, B
2B…B7B は”L”となって他のビットが信号e70 でクリ
アされる。
【0147】レジスタ101-1 〜101-15にて構成されるレ
ジスタ群は上述の他に図36に示す回路によって、ビット
セットあるいはビットクリアが実施される。即ち、先に
説明した回路108 と109 にて示されているDestination
Reg(6)との指定によって、110 の二つのスイッチを介し
てSEQ-B バスから入力されているレベルに指定のビット
のみ変更する事ができる。ビット演算命令実行時は、本
発明のマイクロコンピュータのCPU はALU 22の出力とし
て、ビットセット命令では”FF”, ビットクリア命令で
は”00”の値を強制的にSEQ-B バスに入力するので、SE
B, CLB命令によって対象のレジスタの対象のビットを設
定することができる。
【0148】これらの回路機能によりBMS, BMC命令が実
行される。即ち、マスクレジスタ106 の指定のビットを
Bit Decoder信号で指定して、信号e70 をアクティブに
することでセットする。また、Dest Reg 109にはコンペ
アレジスタ105 の番地を強制的に信号e44Bで指定して
(図9,図10参照)、ALU 22からはオール”H”あるい
はオール”L”のデータをSEQ-B バスに入力してコンペ
アレジスタ105 に値を格納し(図55, 図13〜図28参
照)、Select Reg Latch 103に比較判定の対象となるレ
ジスタを指定するアドレスを信号e69 のタイミングで格
納する(図9,図10参照)。
【0149】この条件判定回路の対象となるレジスタ群
(101-1〜101-15) の実施例として、図37〜図42に示され
ているレジスタセットの内、特にSEQ adrsが01から0F番
地の15アドレス分のレジスタが設定されている。更に、
詳しくは図43〜図54に各レジスタのビット毎の機能が記
述されている。
【0150】たとえば、タイマのオーバフローあるいは
割り込み要求ビットをこのレジスタ群(101-1〜101-15)
に割り付けることにより、指定すべきビットを予めBMS,
BMC命令で設定しておけば、”QLOOP:BRC LOP”のよう
なプログラムを組むことによって、オーバフローが発生
した場合には次のサイクルでこの待ちループから抜け出
すことが可能になる。このことは、事前に発生する事象
を待ち受けるプログラムを組むことによって非常に早い
応答速度のルーチンを成立させることができることを意
味する。
【0151】図37〜図42及び図43〜図54に示されている
特別機能レジスタの一覧表について、以下に詳しく説明
する。なお、本実施例は、以上に説明した本発明のマイ
クロコンピュータを使用して通信プロトコルを処理する
専用の機能を実現する応用に特化した設計になってい
る。
【0152】なお、図37〜図42は本来は順に上から下方
向へ配列された一枚の図である。また、図43〜図54は本
来は図43, 図45, 図47, 図49, 図51, 図53が順に上から
下方向へ、また図44, 図46, 図48, 図50, 図52, 図54が
順に上から下方向へ配列され、奇数番号の図が左側に、
偶数番号の図が右側に配列された一枚の図である。
【0153】本発明のマイクロコンピュータでは、その
高速処理性能を生かして、マルチマスタバス通信方式の
システムにおいてフレームプロトコルまで処理する。具
体的には、アービトレーション,データリトライ,フレ
ームリトライ等の処理までプログラムでソフトウェアで
対応可能に構成されている。プログラムのみでは処理速
度が遅い部分に関しては専用の回路を付加することによ
りハードウェアで補っている。また、ワンチップ上に二
つのマイクロコンピュータを搭載したオンチップ構成と
し、それらの内の一方に本発明の高速マイクロコンピュ
ータを使用して通信専用の処理を行なわせるサブMCU と
し、他方には従来のマイクロコンピュータを使用してマ
ンマシンインタフェイスあるいはメカニカル制御等の機
能をプログラムすることにより、一つのチップに通信機
能と制御機能とを集積させたマイクロコンピュータを実
現することができる。
【0154】図37〜図42は本実施例のマイクロコンピュ
ータのCPU 内レジスタ空間に配列されたレジスタ群の一
覧表である。レジスタ空間は6ビットのレジスタアドレ
スで指定される最大64アドレスの空間として設定されて
いる。命令コード中のソースレジスタ,デスティネーシ
ョンレジスタ等を指定する6ビットのコードで操作対象
のレジスタを指定することが可能である。図中におい
て、SEQ adrsの欄がレジスタアドレスに相当する。CPUa
drs欄はメインCPU 側からアクセスする際に使用される
アドレスであり、欄中”hidden”はメインCPU からはア
クセスできないことを表す。メインCPU 側はアドレス空
間を節約するために更にローカルアドレスlocal adrsを
設けている。双方のCPU からアクセス可能なこれらのレ
ジスタをデータの授受の手段として使用することによ
り、疎結合のデュアルプロセッサシステムが実現され
る。
【0155】以下の説明においては特に断らない限り、
SEQ adrs欄のサブCPU 側のレジスタアドレスで説明を行
う。レジスタ空間は64アドレスであるが、アドレス”3
F”に配置されたテンポラリレジスタのみは特殊であっ
て、後述する如く一つのレジスタデータの書き込み側の
みは上位バイトと下位バイトとの入れ換えが可能なよう
にアドレス”1E”と”1F”とにも割り付けられている。
模式的には後述する図63, 図64に○付き数字12及び13で
示されているレジスタであり、読み出し時にはアドレ
ス”3F”のみが読み出されるが、書き込み時には○付き
数字13で示されているレジスタの例ではアドレス”3F”
が指定されていれば通常の上位バイトバスSEQ-D からデ
ータが書き込まれるが、アドレス”1F”が指定されてい
れば下位バイト書き込みバスSEQ-Bからデータが書き込
まれる。
【0156】また、アドレス”0”には条件分岐命令用
のマスクレジスタ106 が、アドレス”10”には同じく条
件分岐命令用のコンペアレジスタ105 が割り付けられて
いる。他のアプリケーションに応じた機能レジスタの配
置はそれ以外の59のアドレスが使用される。アドレス”
00”〜”1F”の32のレジスタはバイトサイズのレジスタ
であり、命令コードとの関係で演算命令等の実行時には
バイト演算が自動的に選択される。これらの内、アドレ
ス”0”〜”0F”の16個のレジスタは特別に条件分岐判
定が可能なレジスタである。アドレス”20”〜”3F”の
32個のレジスタはワードサイズのレジスタである。これ
らの内、アドレス”30”〜”3D”の14個のレジスタはSE
Q-Eバス, SEQ-Fバスを介して、プログラムカウンタと
も接続されている。
【0157】これらのレジスタには、以下に説明するい
くつかの種類がある。 (1) メインCPU とのデータの授受を行なうデータバスボ
ックス的なバイト単位, ワード単位あるいはFIFO形式の
レジスタ群。レジスタによってデータ転送方向がメイン
CPU からサブCPU の方向か、あるいはその逆かが予め定
められており、ハードウェア的に結線されている。
【0158】模式的には、図63, 図64に○付き数字6,
7で示されているレジスタがそのような機能を有する。
図上で CPU-LはメインCPU と接続されたローカルバスで
あり、CXXC信号またはCXXS信号でゲートされてラッチと
の間でデータを授受する。○付き数字6で示されている
レジスタはメインCPU からサブCPU の方向へのレジス
タ、同7で示されているレジスタはサブCPU からメイン
CPU の方向へのレジスタであり、二つのCPU の書き込み
タイミングの同期をとるために二重ラッチの構成になっ
ている。二重ラッチの間を接続するデータバスは HXX制
御信号でゲーティングされていて、書き込み時のデータ
のすり抜けで読み出し側のデータ化けが発生することを
防止している。読み出し側のラッチは読み出しのみであ
るが、書き込み側は読み出しも可能である。
【0159】(2) タイマ機能レジスタ:アドレス”2
A”, ”2B”のtimer 1/ timer2 (3) 送受信データ機能レジスタ:アドレス”1A”〜”1
D”のTXD data,RXD dataなど (4) 割り込み制御レジスタ:アドレス”0A”, ”0B”の
SEQ int req, SEQ intenable (5) 演算フラグレジスタ:アドレス”0E”のALU flag (6) 機能回路制御レジスタ:アドレス”01”〜”09”
【0160】なお、各ビットの詳細機能は図43〜図54参
照。これらの機能レジスタには、FIFOの例ではデータフ
ル, データエンプティ等のステータスを示すビット、あ
るいはFIFOクリア等の制御ビット等が割り付けられてい
る。
【0161】図43〜図54のtype欄には図59〜図62, 図6
3, 図64のいずれのタイプのレジスタを使用するかを関
連付ける記号が記載されている。それぞれの機能によっ
て、メインCPU とのデータの授受、機能ブロックの制御
あるいはステータスを読み取る制御のためのビットにな
っている。マイクロコンピュータのレジスタバスからア
クセスされるのみならず、書き込み時にワンショットパ
ルスを発生したり、あるいはレベル信号を出力して機能
ブロックを制御し、あるいはラッチではなく機能ブロッ
クからのレベル信号をそのまま取り込んだり等、アプリ
ケーションの必要に応じて適当なレジスタが選択されて
いる。
【0162】命令コードのコード長の制約のため、条件
判定回路の対象レジスタの選択はあまり多くのレジスタ
を選ぶことはできない。しかし、マイクロコンピュータ
の応用分野を特化して予め適切な機能レジスタを設計す
れば、各分野に対応して適切に且つ高速に応答する条件
判定回路を設計することが容易になる。
【0163】次に、図55,図56のブロック図を参照して
本発明のマイクロコンピュータの第1の実施例の他の実
施例のALU 22の構成例を説明する。なお、図55はALU 22
の下位8ビット分の、図56はALU 22の上位8ビット分の
構成を示すブロック図である。
【0164】まず最初に、ALU 22本体の動作説明の前に
本実施例で使われているテンポラリレジスタ21の動作を
まず説明する。図55において、参照符号120Lはテンポラ
リレジスタ21の下位側の8ビット分を示しており、入力
スイッチ121-1 によってレジスタバス26の下位8ビット
であるSEQ-B からレジスタ指定アドレスが”3F”である
場合にデータが供給される。この場合には、上位8ビッ
トもテンポラリレジスタ上位側120Hに同時に書き込まれ
る。入力スイッチ121-2 は特殊な機能を有しており、レ
ジスタバス26の上位8ビットであるSEQ-D からレジスタ
指定アドレスが”1E”である場合にデータの入力を受
け、バス上の上位バイトを下位バイトのデータとしてテ
ンポラリレジスタ21に入力させることができる。
【0165】図56において、参照符号120Hはテンポラリ
レジスタ21の上位側の8ビット分を示しており、入力ス
イッチ121-4 によってレジスタバス26の上位8ビットで
あるSEQ-D からレジスタ指定アドレスが”3F”である場
合にデータが供給される。この場合には、下位8ビット
もテンポラリレジスタの下位側120Lに同時に書き込まれ
る。入力スイッチ121-3 は特殊な機能を有しており、レ
ジスタバス26の下位8ビットであるSEQ-B からレジスタ
指定アドレスが”1F”である場合にデータの入力を受
け、バス上の下位バイトを上位バイトのデータとしてテ
ンポラリレジスタ21に入力させることができる。
【0166】テンポラリレジスタ21は実質は16ビット長
の一つのレジスタであるが、”3F”, ”1E”, ”1F”の
3つのアドレスを有し、これによって通常のデータ書き
込み, 上位から下位バイトへの転送, 下位から上位バイ
トへの転送の3種類の操作を可能とすることができる。
特に、特殊な命令コードを増加させることなしにこれら
の操作が可能となるので命令デコーダの回路を単純化す
ることが可能になり、且つ命令コードの組み合わせを考
える上でも設計が容易になる利点を有する。
【0167】図55及び図56に戻って話を続けると、参照
符号122L, 122HはALU 本体125L, 125Hのテンポラリレジ
スタ21側の入力に”0”を供給するスイッチであり、そ
れぞれ信号e00B, e01Bで制御され、通常は”0”を供給
する側に接続されているが、信号e00B, e01Bが”H”に
なるとテンポラリレジスタ120L, 120H側に接続される。
これらの制御信号は上位用と下位用とで異なる信号を使
用している。
【0168】また、参照符号123L, 123Hのスイッチ及び
インバータにより、信号e04, e0Fで制御されてALU 本体
125L, 125Hに供給するデータを反転させる機能が構成さ
れている。以上を要約すれば、ALU 本体125L, 125Hの一
方の入力に供給されるデータはテンポラリレジスタ120
L, 120Hの値か、”0”か、あるいはそれらの反転値で
あり、上位バイト用のテンポラリレジスタ120Hと下位バ
イト用のテンポラリレジスタ120Lとは個別に制御するこ
とができる。
【0169】参照符号124L, 124HはALU 本体125L, 125H
の他方の側の入力に供給されるデータを制御するスイッ
チであり、信号e02, e03でそれぞれ制御され、レジスタ
から読み出されたデータをSEQ-A, SEQ-Cラインを介して
入力するか、または”0”を強制入力するかの選択が可
能である。
【0170】以上のようにして得られた二つの入力から
フルアダーを含むALU の本体125L,125Hで演算が実施さ
れる。信号e07 及びe08 で加算(ADD),論理積(AND),論理
和(OR)の切り換えが行なわれる。また、信号e06Bにより
データの論理否定(NOT) が選択可能であり、信号e0F に
より排他論理和EXORが実行される。減算は先に説明した
テンポラリレジスタ21の下位側120L, 上位側120Hの反転
制御と後述するキャリー制御とを組み合わせれば実現さ
れる。ALU 22の演算結果が全ビット”0”であればゼロ
フラグがセットされる。
【0171】次にキャリーフラグの制御に付いて説明す
る。加算・減算にはキャリー付演算とキャリー無し演算
とがあるが、本実施例では信号e0DBによキャリーフラグ
を入力するか、信号e05 を直接入力するかの選択が可能
である。キャリー無し加算の場合は信号e05 を”L”と
して加算(ADD) 操作をすればよく、ボロー無し減算の場
合は信号e05 を”H”にしてテンポラリレジスタ21から
のデータパスを信号e04, e0Fで反転して ADD操作をすれ
ばよい。インクリメント操作では信号e05 を”H”に
し、信号e00B及びe01Bで ALU本体125 の一方に”0”を
入力して ADD操作をすればよい。デクリメント操作で
は、信号e05 を”L”にし、信号e00B及びe01B, e04, e
0Fで ALU本体125 の一方に”FFFF”を入力すれば実現で
きる。加算・減算時のキャリーフラグはスイッチ126L及
び126Hの経路で設定される。8ビット演算の場合は信号
e03Bが”H”となって126Lのスイッチが有効となり、16
ビットワード演算の場合には信号e03Bは”L”のまま
で、126Hのスイッチが有効となる。
【0172】シフト演算はシフト回路127 により処理さ
れる。制御信号e09, e0AでALU 22の出力をそのまま出力
するか、ALU 22をバイパスしてSEQ-A, SEQ-Cのデータを
そのまま出力するか、1ビット右シフトして出力する
か、1ビット左シフトして出力するかの四通りのデータ
パスが選択される。シフト回路127 内では、それぞれの
シフト時にキャリー付きシフト、”0”挿入のシフト、
右シフトと左シフト、8ビットシフトと16ビットシフト
の組み合わせにより、それぞれに対応した 128のスイッ
チ群がコントロールされて機能する。シフト回路127 の
出力は信号e23 で制御されて演算結果ラッチ23L, 23Hに
格納される。このラッチ23L, 23Hの出力は常時レジスタ
書き込みバスラインSEQ-B, SEQ-Dをドライブする。
【0173】請求項13の発明に対応するALU 22は、図
55, 図56に示されている構成に加えてスイッチ124L, 21
4Hの前段に図57, 図58に参照符号130L, 130Hで示される
ラッチを追加して実現される。ラッチ130L, 130Hは、入
力制御スイッチ131L, 131HによってバスSEQ-A, SEQ-Cの
データを受け、補助クロックφLのタイミングでデータ
をラッチする。また、信号e00 から eoFまでの各種の A
LU制御信号はそのタイミングを期間T2及びT3において継
続的にアクティブとなる設計に変更し、結果を保持する
タイミングを制御する信号e23 もT3のサイクルに有効と
なるように変更する必要がある。
【0174】図59〜図62,図63, 図64は請求項17の発
明に関する一実施例であるASIC展開を容易にするための
各種制御ビットのセル機能の例を示した模式図である。
特に、ここに示されているセルは本発明のマイクロコン
ピュータがオンチップ上に実現されたデュアルCPU のサ
ブ CPU側として設計された場合に有効な各種の機能を実
現している。
【0175】図59〜図62, 図63, 図64において、 SEQ-
A, SEQ-B, SEQ-Tバスについては既に説明されている。C
PU-LバスはメインCPU と接続されたデータパスであり、
これに接続されているレジスタ群がメインCPU とのイン
タフェイスレジスタとして使用されることを想定してい
る。
【0176】図中の○印はそれらのレジスタとバスとを
接続するスイッチを示しており、LXX, SXX等の信号は対
象のレジスタアドレスがアクセスされた場合に有効とな
る。XX信号はそれぞれのレジスタアドレスとなる。タイ
プA等のレジスタに使用されている GXX信号は二つのCP
U が非同期で動作している場合を想定して、データ授受
の際の同期を取る信号である。白抜きの四角い箱は単純
なラッチを示し、ハッチングされた四角い箱はファンク
ショナルな回路を意味する。アプリケーションに応じて
このレジスタ群の組み合わせを変えることにより、本発
明のマイクロコンピュータをASICに好適な設計にするこ
とができる。なお、本発明のマイクロコンピュータの実
施例では、ビット操作が容易な条件判定回路にこれらの
レジスタセルを組み込むことを想定している。
【0177】図65は上述の図59〜図62及び図63, 図64に
示されているセルの具体的な回路構成の一例を示した回
路図である。
【0178】この回路の特徴として、SEQ-B, SEQ-A等の
レジスタバスをTRUE (真)とBAR(偽) との対になったア
ルミ配線でレイアウトし、それぞれのレジスタとのスイ
ッチをNチャネルトランジスタの組み合わせのみで実現
している。更に、レジスタへの書き込みラインは RAMタ
イプのラッチへ直接トランスミッションゲート形式でレ
ベル入力するが、読み出しラインはRAM ラッチデータを
一旦ゲート入力で受けてインピーダンス変換を行なって
からSEQ-A ラインをドライブしている。
【0179】このような回路形式により、読み出しタイ
ミングでSEQ-A ラインの配線容量に蓄積した残存電荷が
レジスタのレベルに悪影響を与えないように構成でき
る。即ち、従来技術においは読み出しラインも RAMタイ
プラッチから直接トランスミッションゲートタイプでレ
ベル出力するものがあるが、その場合には配線容量に蓄
積した電荷が逆流して、レジスタの値を反転させる虞が
あったためである。
【0180】図66は機能セルの他の構成例を示す回路図
であり、このビットに”1”が書き込まれた場合に1サ
イクルのワンショットパルスを発生する回路が示されて
いる。
【0181】また、図67は上述の図65, 図66に示されて
いる機能ブロックから出力されるステータス信号を受け
る機能セルの構成例を示す回路図であり、機能ブロック
のレイアウトの位置が離れていてもゲートで信号を入力
することによりインピーダンス上の隔離をしている。
【0182】ところで、図1に示されている本発明のマ
イクロコンピュータのタイミング設計では、以上に詳述
したように、1サイクルで1命令を実行することが可能
になるが、動作速度上のマージンが不足するという可能
性が生じる。
【0183】具体的には、図1に示されている期間T2に
おいて、命令コードフェッチ, 命令デコード, オペラン
ドののデスティネーションレジスタからのロード, 演算
までの四種類の操作を実行するため、回路遅延が累積さ
れる。このため、期間T2がボトルネックとなって動作速
度の上限が規定されることになる。特に、メモリからの
データの読み出し及び演算の実行に時間を必要とするた
め、高速化を目的とした前述の実施例ではかえって処理
能力が充分に発揮されないという問題が生じる。
【0184】そこで、上述の実施例の期間T2において実
行されるべき処理を更に分解して、以下の実施例では期
間T2において命令コードフェッチと一部の命令のデコー
ドを、期間T3においてオペランドのレジスタからのロー
ド及び演算を実行し、期間T4においてデスティネーショ
ンレジスタへの演算結果の格納を行なうようにし、それ
ぞれに要する処理時間を各期間に分散させて負荷を均等
化することにより、より高性能を実現することを目的と
する。
【0185】なお、期間T1における実行アドレスの出力
は前述の実施例と同様である。また、分岐命令等の分岐
先アドレスの演算は従来と同様に期間T2, T3において行
なって分岐命令をも1サイクルで実行する特色は本実施
例においても維持される。
【0186】図68, 図69に本発明のマイクロコンピュー
タの第2の実施例のCPU の命令実行シーケンスの基本サ
イクルのタイミングチャートを示す。図68, 図69に参照
符号1乃至6で示されている基本クロックφ, 補助クロ
ックφH, 補助クロックφL, データ読み出し, アドレ
ス出力及び命令コードフェッチのタイミングに関しては
前述の第1の実施例と同様であるので、それらの説明は
省略する。
【0187】参照符号7(7-1, 7-2)以降が本第2の実施
例と前述の第1の実施例との相違点である。以下、本第
2の実施例のCPU の具体的な構成例を示す図70のブロッ
ク図を参照しつつ順に説明する。本実施例では、オペコ
ードラッチが2段のハーフラッチ56A, 56Bにより構成さ
れており、図68, 図69に参照符号7-1 にて示されている
第1命令コードラッチの動作タイミングと7-2 にて示さ
れている第2命令コードラッチの動作タイミングとに分
散されている。
【0188】第1オペコードラッチ56A は、プログラム
メモリ領域51からデータバス(SEQ15〜0)50へメモリの読
み出しタイミング毎に出力された値を期間T2において保
持する。引き続く期間T3において、第1オペコードラッ
チ56A が保持する値は第2オペコードラッチ56B に送ら
れて保持される。但し、この第2オペコードラッチ56B
の保持内容は2サイクル以上の実行サイクルを有する命
令ではその命令の実行が完了するまではその命令コード
の保持を参照符号7-b にて示されているように継続す
る。
【0189】参照符号8-1 及び8-2 は上述の第1及び第
2オペコードラッチ56A, 56Bの出力に対応して命令実行
を行なうための各種制御信号eXX を生成するタイミング
を示している。図70に示されているように、それぞれの
フェーズで制御信号を生成するために、各命令のいずれ
のフェーズであるかを示す信号、本実施例では命令サイ
クルカウンタ66の出力信号も並行して入力される。
【0190】次に、命令デコード後のオペランドフェッ
チが実行される。参照符号9-1 にて示されているよう
に、オペランドを保持するソースレジスタのレジスタア
ドレスを期間T2, T3においてアクティブにする。データ
の読み出しは期間T3において参照符号9-2 にて示されて
いるタイミングで行なわれる。レジスタアドレスの指定
が行なわれるタイミング9-1 の信号には遅延があるた
め、メモリの読み出しのタイミングから積算するとアド
レス信号が確定するには期間T2中の20乃至40nsの時点に
なる。従って、レジスタデータの読み出しを次の期間T3
に行なうようにすることにより、タイミングマージンを
大幅に向上することが可能になるので、高速処理可能に
なる。この点が第1の実施例と異なる点である。
【0191】期間T3においてソースレジスタから読み出
されたオペランデータは参照符号10-1で示されているタ
イミングでALU 22の一方の入力側のプリラッチ27に保持
される。このALU 22の一方の入力側にプリラッチ27を設
けると共に、図55に参照符号129 にて示されている結果
ラッチを削除している点が本第2の実施例と前述の第1
の実施例との構成上の相違点である。
【0192】このプリラッチ27によって期間T3, T4にお
けるALU 22の演算期間中にオペランドデータを保持し続
けることが可能になる。従って、実質的にALU 22に許さ
れる演算時間も第1の実施例に比して倍以上となり、ス
ピードマージンを拡大することが可能になる。
【0193】ALU 22による演算結果の格納処理は、期間
T4において参照符号11-2にて示されているタイミングで
実行され、命令の一連の主要な処理が完了する。格納レ
ジスタの指定は参照符号11-1にて示されている期間にレ
ジスタアドレスが出力され、この値が安定した後にデー
タが指定されたレジスタに格納される。以上のように、
レジスタの読み出しと書込みとが期間T3, T4のクロック
の”H”及び”L”の区間に割り当てられているので、
簡単なパイプライン処理により基本クロックφの各際毎
に「レジスタ読み出し」, 「演算」, 「ライトバック」
が実行され、高速処理が実現する。
【0194】参照符号9-1, 9-2にて示されているソース
レジスタの読み出しのサイクルを制御する信号は、第1
オペコードラッチ56A の出力から生成され、参照符号10
-1にて示されているALU 22の演算, 参照符号11にて示さ
れている格納レジスタへのライトバック操作を制御する
信号は第2オペコードラッチ56B の出力から生成され
る。この点に関しては後述する。
【0195】以上が本第2の実施例におけるデータ演算
の代表的な例の説明であるが、次に、プログラムカウン
タ関係のプログラム制御の概略のタイミングについて説
明する。プログラムカウンタ40の制御に関しては、参照
符号12にて示されているが、基本的には第1の実施例と
同様である。分岐命令の実行に際しては期間T2において
命令デコードが実行された後、分岐先アドレスを格納す
るレジスタが指定され、参照符号12b にて示されている
値”PC+1”に代わって参照符号12d にて示されているよ
うに分岐先アドレスが参照符号12c にて示されているタ
イミングでプログラムカウンタにロードされる。このよ
うに、1サイクルで1命令を実行するためには、分岐命
令のタイミングそのものは第1の実施例と変わるところ
はない。
【0196】参照符号13にてタイミングが示されている
制御信号群は第1の実施例と比して一部が異なる。本第
2の実施例では、信号e0X 乃至e8X のようなタイミング
の信号を基本とする。ここで重要なことは、信号e2X が
第1の実施例では期間T2においてアクティブになってい
たのが本第2の実施例では期間T3においてアクティブに
なり、レジスタ群あるいは即値データのデータリードと
共にプログラムカウンタへの次の実行アドレス格納の制
御にも関与することである。
【0197】同様に、信号e6X が第1の実施例では期間
T3においてアクティブになっていたのが本第2の実施例
では期間T4においてアクティブになり、レジスタ群への
ライトバックがこのタイミングで制御される。これらは
いずれも、動作スピードマージンの拡大のためであるこ
とは言うまでもない。また、信号e8X は特殊な命令の実
行を制御するために使用され、通常は信号e0X 乃至e6X
で制御が行なわれる。
【0198】以上のように図68, 図69を参照して制御タ
イミングを説明した本第2の実施例のCPU の具体的な構
成例を図70のブロック図に示す。なお図70において、各
参照符号は第1の実施例の構成例を示す図3乃至図7と
同様の構成要素を示しており、基本的には殆ど同一構成
であるので、異なる部分についてのみ以下に説明する。
【0199】図7に参照符号56にて示されている第1の
実施例のオペコードラッチ56は本第2の実施例では参照
符号56A 及び56B にて示されている第1及び第2オペコ
ードラッチの二段ラッチに分割されている。これらがデ
ータをラッチするタイミングを制御するスイッチ54-A及
び54-Bは単純に逆相関係でオン/オフするのではなく、
多サイクル命令実行時には第2オペコードラッチ56B に
実行中の命令コードが保持され続けるように、スイッチ
54-Bはオフした状態を継続するように制御される。一
方、スイッチ54-Aはメモリの値を読み出す都度、データ
バスSQR(15〜0)50の値を保持することにより、たとえば
即値65, 絶対分岐アドレス46等のオペランド値が実行に
必要な次のサイクルまでの半サイクルの間保持される。
【0200】命令デコーダ66はこれらの二つのオペコー
ドラッチ56A, 56Bが保持するデータOPDEC,及びオペレー
ションコードを基にデコードして制御信号e01 …eXX を
生成するが、多サイクル命令実行のために本実施例では
参照符号62にて示されている命令サイクルカウンタを備
えている。この命令サイクルカウンタ62には、命令デコ
ーダ66で生成された制御信号群62-pが入力され、参照符
号62-qにて示されているフィードバックループが備えら
れている。
【0201】また、図70に示されている第2の実施例の
構成例の第1の実施例との大きな相違点は、前述の如く
ALU 22の一方の入力側にプリラッチ27を備えると共に出
力側の結果ラッチを削除したことである。プリラッチ27
の入力側にスイッチ30が、また出力側にスイッチ39-aが
それぞれ備えられている。このような構成は、図68,図6
9を参照して説明した如く、期間T3においてレジスタ値
を読み出し、そのデータを演算実行が継続する期間T4ま
でプリラッチ27で保持することを目的としている。
【0202】ALU 22に与えられるもう一方のオペランド
はテンポラリレジスタ21に保持されたままに維持され、
且つ演算結果のライトバックは期間T4において終了する
ため、本第2の実施例では第1の実施例に備えられてい
る結果ラッチ23を設ける必要はない。
【0203】なお、スイッチ30は期間T3において信号e2
X がアクティブになることによりオンし、スイッチ39-
a, 39-bは期間T3, T4において信号e4X がアクティブに
なることによりオンする。他の機能に関しては第1の実
施例と本質的に同様であるので、説明は省略する。
【0204】以上に説明したように、第2の実施例で
は、命令の実行ステップに必要なサイクルを分離したた
め、実質的に動作マージンの向上が図られ、実行速度と
共に実行可能な低電圧の限界も相対的に拡大することに
なる。このことは、高速処理可能なマイクロコンピュー
タの実現が容易になることを示唆するものである。
【0205】
【発明の効果】従来のマイクロコンピュータでは入力ク
ロック周波数が高くなると電磁障害波等を発生する虞が
高く、安価であることを求められる一般民生用製品では
その対策コストも馬鹿にならない。特に近年普及しつつ
あるハンディタイプの携帯用製品では障害電波の発生源
となる場合には法律上も制限が加えられている。一方で
マイクロコンピュータは電化製品は言うに及ばずあらゆ
る製品に搭載されるようになってきており、低周波数
(数MHz)で高速処理可能であればその需要は多い。本発
明はそのような要望に応えられるものであり、同一周波
数であればより処理速度の大きなマイクロコンピュータ
を提供することが可能になる。
【0206】請求項1の発明に係るマイクロコンピュー
タでは、基本的にはシステムクロックの1サイクルでレ
ジスタの演算が実施されるので、非常に高速な処理が行
なわれる。また、データの保護も特別な認識回路を必要
とせず、シンプルな命令デコーダで目的のCPU を構成で
きる。
【0207】請求項2並びに3の発明に係るマイクロコ
ンピュータでは、例外的な処理も命令デコーダ以降では
他の一般的な命令と同様の処理が可能になるので、命令
デコーダの設計手法上は同一の取り扱いが出来る。従っ
て、設計が一元化されて低コスト化が図れる。
【0208】請求項4の発明に係るマイクロコンピュー
タでは、数サイクルに渡って実行される命令のコードを
デコードをして制御信号が生成される。特に、ダウンカ
ウント方式を採用した場合は、連続して複数のデータを
操作する場合、たとえば複数のデータを連続して転送す
る場合等、偶数カウント時にはソースデータをフェッチ
し、奇数カウント時にはそのデータを格納する等の操作
を制御する信号線の生成が容易になる。
【0209】請求項5の発明に係るマイクロコンピュー
タでは、分岐命令の条件判定が分岐実行時には完了して
いる状態が実現されるため、分岐命令の実行速度が向上
する。
【0210】請求項6の発明に係るマイクロコンピュー
タでは、請求項5の分岐命令を使う上で準備期間に無用
な時間を割くことなしに、必要最小限の命令でより効果
的に条件分岐を実行するための命令がサポート出来る。
【0211】請求項7の発明に係るマイクロコンピュー
タでは、条件分岐の条件として直接に機能ブロックのス
テータスレジスタ等を使用することができるため、必要
な場合には特定のビットを予め指定することにより各サ
イクルにおいてそのビットの状態を監視し、状態の変化
があった場合に直ちにそれを認識して新たなルーチンへ
分岐するので、高速処理が可能になる。
【0212】請求項8及び請求項9の発明に係るマイク
ロコンピュータでは、上述の条件分岐命令実行のための
回路が効果的に実現される。
【0213】請求項10及び請求項13の発明に係るマ
イクロコンピュータでは、1レジスタのロード, 演算,
演算結果のストアまでの操作を1 サイクル内で行なえる
と共に、テンポラリレジスタの設置によってレジスタの
ロードタイミング上のマージンを稼ぐことが可能にな
る。
【0214】請求項11の発明に係るマイクロコンピュ
ータでは、頻繁に発生する8ビット長演算あるいは操作
の実行を容易にする上で、有効な制御方法が実現され
る。
【0215】請求項12の発明に係るマイクロコンピュ
ータでは、シフト演算の回路を実現するのみならず、乗
除算に有効なADD & Shift 操作を1命令/1実行サイク
ルで実現する上で便利な回路構成が提供可能になる。
【0216】請求項14の発明に係るマイクロコンピュ
ータでは、 ALUの構成と命令コードとの関係を定義する
ものであり、これにより、簡便なALU を構成することが
可能になる。
【0217】請求項15の発明に係るマイクロコンピュ
ータでは、その命令セットは16ビット命令長を基本とす
るレジスタマシンのCPU の命令セットが提供され、基本
的に1命令/1サイクルを実現したCPU 動作が設計可能
になる。
【0218】請求項16の発明に係るマイクロコンピュ
ータでは、高速制御が必要なマイクロコントローラの分
野で特に有効な発明であり、最もアクセスの早いCPU レ
ジスタ群の中に機能レジスタを配置したことにより、マ
シンサイクルのスピードで各機能の制御並びに状態の監
視が可能となった。
【0219】請求項17の発明に係るマイクロコンピュ
ータでは、ASICマイクロコントローラの開発に際して、
その分野に適した周辺機能の設計をより素早く実現する
上で有効な設計手法が提供される。
【0220】請求項18の発明に係るマイクロコンピュ
ータでは、 CPU自体の性能を向上させるために付加的に
演算器を加えることで目的が達成される。
【0221】請求項19の発明に係るマイクロコンピュ
ータでは、請求項1の発明に比して、命令の実行ステッ
プに必要なサイクルを分離することが可能になるので、
実質的に動作マージンの拡大が図れる。また、実行速度
と共に動作可能な低電圧の限界も相対的に拡大するの
で、高速処理能力を有するマイクロコンピュータが実現
される。
【図面の簡単な説明】
【図1】本発明に係るマイクロコンピュータの第1の実
施例のCPU の命令実行シーケンスの基本サイクルを示す
タイミングチャートである。
【図2】本発明に係るマイクロコンピュータの第1の実
施例の具体的な構成例を示すブロック図である。
【図3】本発明に係るマイクロコンピュータの第1の実
施例のCPU のレジスタバスの構成例を示すブロック図で
ある。
【図4】本発明に係るマイクロコンピュータの第1の実
施例のCPU のレジスタバスの他の構成例を示すブロック
図である。
【図5】本発明に係るマイクロコンピュータの第1の実
施例のプログラムカウンタの構成の内の主として本体の
構成を示すブロック図である。
【図6】本発明に係るマイクロコンピュータの第1の実
施例のプログラムカウンタの構成の内の主として制御回
路の構成を示すブロック図である。
【図7】本発明に係るマイクロコンピュータの第1の実
施例の命令デコーダの回路構成例を示すブロック図であ
る。
【図8】本発明に係るマイクロコンピュータの第1の実
施例の命令デコーダの回路構成例を示すブロック図であ
る。
【図9】本発明に係るマイクロコンピュータの第1の実
施例の命令デコーダの回路構成例を示すブロック図であ
る。
【図10】本発明に係るマイクロコンピュータの第1の
実施例の命令デコーダの回路構成例を示すブロック図で
ある。
【図11】本発明に係るマイクロコンピュータの第1の
実施例の命令デコーダの回路構成例を示すブロック図で
ある。
【図12】本発明に係るマイクロコンピュータの第1の
実施例における専用コードを示す一覧図である。
【図13】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図の一部
である。
【図14】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図の一部
である。
【図15】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図の一部
である。
【図16】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図の一部
である。
【図17】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図の一部
である。
【図18】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図の一部
である。
【図19】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図の一部
である。
【図20】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図の一部
である。
【図21】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図の一部
である。
【図22】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図の一部
である。
【図23】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図の一部
である。
【図24】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図の一部
である。
【図25】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図の一部
である。
【図26】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図の一部
である。
【図27】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図の一部
である。
【図28】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図であ
る。
【図29】本発明に係るマイクロコンピュータの第1の
実施例における各命令毎の制御信号を示す一覧図であ
る。
【図30】本発明に係るマイクロコンピュータの第1の
実施例の各命令についての内容を説明した一覧図の一部
である。
【図31】本発明に係るマイクロコンピュータの第1の
実施例の各命令についての内容を説明した一覧図の一部
である。
【図32】本発明に係るマイクロコンピュータの第1の
実施例の各命令についての内容を説明した一覧図の一部
である。
【図33】本発明に係るマイクロコンピュータの第1の
実施例の各命令についての内容を説明した一覧図の一部
である。
【図34】本発明に係るマイクロコンピュータの第1の
実施例の各命令についての内容を説明した一覧図の一部
である。
【図35】本発明に係るマイクロコンピュータの第1の
実施例の各命令についての内容を説明した図である。
【図36】本発明のマイクロコンピュータの第1の実施
例の他の実施例としての条件判定回路を備えた構成例を
示すブロック図である。
【図37】本発明に係るマイクロコンピュータの第1の
実施例のレジスタセットを示す一覧図の一部である。
【図38】本発明に係るマイクロコンピュータの第1の
実施例のレジスタセットを示す一覧図の一部である。
【図39】本発明に係るマイクロコンピュータの第1の
実施例のレジスタセットを示す一覧図の一部である。
【図40】本発明に係るマイクロコンピュータの第1の
実施例のレジスタセットを示す一覧図の一部である。
【図41】本発明に係るマイクロコンピュータの第1の
実施例のレジスタセットを示す一覧図の一部である。
【図42】本発明に係るマイクロコンピュータの第1の
実施例のレジスタセットを示す一覧図の一部である。
【図43】本発明に係るマイクロコンピュータの第1の
実施例の各レジスタのビット毎の機能を示す一覧図の一
部である。
【図44】本発明に係るマイクロコンピュータの第1の
実施例の各レジスタのビット毎の機能を示す一覧図の一
部である。
【図45】本発明に係るマイクロコンピュータの第1の
実施例の各レジスタのビット毎の機能を示す一覧図の一
部である。
【図46】本発明に係るマイクロコンピュータの第1の
実施例の各レジスタのビット毎の機能を示す一覧図の一
部である。
【図47】本発明に係るマイクロコンピュータの第1の
実施例の各レジスタのビット毎の機能を示す一覧図の一
部である。
【図48】本発明に係るマイクロコンピュータの第1の
実施例の各レジスタのビット毎の機能を示す一覧図の一
部である。
【図49】本発明に係るマイクロコンピュータの第1の
実施例の各レジスタのビット毎の機能を示す一覧図の一
部である。
【図50】本発明に係るマイクロコンピュータの第1の
実施例の各レジスタのビット毎の機能を示す一覧図の一
部である。
【図51】本発明に係るマイクロコンピュータの第1の
実施例の各レジスタのビット毎の機能を示す一覧図の一
部である。
【図52】本発明に係るマイクロコンピュータの第1の
実施例の各レジスタのビット毎の機能を示す一覧図の一
部である。
【図53】本発明に係るマイクロコンピュータの第1の
実施例の各レジスタのビット毎の機能を示す一覧図の一
部である。
【図54】本発明に係るマイクロコンピュータの第1の
実施例の各レジスタのビット毎の機能を示す一覧図の一
部である。
【図55】本発明に係るマイクロコンピュータの第1の
実施例のALU の下位側部分の機能ブロックの構成を示す
ブロック図である。
【図56】本発明に係るマイクロコンピュータの第1の
実施例のALU の上位側部分の機能ブロックの構成を示す
ブロック図である。
【図57】本発明に係るマイクロコンピュータの第1の
実施例のALU の下位側部分の機能ブロックの他の構成例
を示すブロック図である。
【図58】本発明に係るマイクロコンピュータの第1の
実施例のALU の上位側部分の機能ブロックの他の構成例
を示すブロック図である。
【図59】本発明に係るマイクロコンピュータの第1の
実施例の更に他の実施例としてのASIC展開を容易にする
ための各種制御ビットのセル機能の一例を示す模式図で
ある。
【図60】本発明に係るマイクロコンピュータの第1の
実施例の更に他の実施例としてのASIC展開を容易にする
ための各種制御ビットのセル機能の一例を示す模式図で
ある。
【図61】本発明に係るマイクロコンピュータの第1の
実施例の更に他の実施例としてのASIC展開を容易にする
ための各種制御ビットのセル機能の一例を示す模式図で
ある。
【図62】本発明に係るマイクロコンピュータの第1の
実施例の更に他の実施例としてのASIC展開を容易にする
ための各種制御ビットのセル機能の一例を示す模式図で
ある。
【図63】本発明に係るマイクロコンピュータの第1の
実施例の更に他の実施例としてのASIC展開を容易にする
各種制御ビットのセル機能の一例を示す模式図である。
【図64】本発明に係るマイクロコンピュータの第1の
実施例の更に他の実施例としてのASIC展開を容易にする
各種制御ビットのセル機能の一例を示す模式図である。
【図65】本発明に係るマイクロコンピュータの第1の
実施例の更に他の実施例のセルの具体的な回路を示す回
路図である。
【図66】本発明に係るマイクロコンピュータの第1の
実施例の更に他の実施例の機能セルの別の具体的な回路
を示す回路図である。
【図67】本発明に係るマイクロコンピュータの第1の
実施例の更に他の実施例の機能ブロックから出力される
ステータス信号を受ける機能セルを示す回路図である。
【図68】本発明に係るマイクロコンピュータの第2の
実施例のCPU の命令実行シーケンスの基本サイクルを示
すタイミングチャートの一部である。
【図69】本発明に係るマイクロコンピュータの第2の
実施例のCPU の命令実行シーケンスの基本サイクルを示
すタイミングチャートの一部である。
【図70】本発明に係るマイクロコンピュータの第2の
実施例の具体的な構成例を示すブロック図である。
【図71】従来のマイクロコンピュータの基本命令サイ
クルを説明するためのタイミングチャートである。
【図72】近年のマイクロコンピュータで一般的に実施
されているパイプライン処理の原則を説明する模式図で
ある。
【図73】パイプライン処理における注意点を示す模式
図である。
【符号の説明】
20 レジスタセット 21 テンポラリレジスタ 22 ALU 23 ラッチ 24 バスバッファ 25 バス 26 バス 27 プリラッチ 35 デスティネーションレジスタ 36 レジスタ 40 プログラムカウンタ 41 プログラムカウンタのラッチ 42 プログラムカウンタのインクリメンタ 44 プログラムカウンタのレジスタ 45 アドレス格納スタックレジスタ 46 パス 47 パス 48 制御回路 51 プログラムメモリ領域 56 オペコードラッチ 56A 第1オペコードラッチ 56B 第2オペコードラッチ 60 論理回路 62 命令サイクルカウンタ 66 命令デコーダ

Claims (22)

    【特許請求の範囲】
  1. 【請求項1】 実行すべき命令のコードを格納したメモ
    リと、 実行すべき命令のアドレスを出力するプログラムカウン
    タと、前記メモリから読み出された命令のコードをデコ
    ードする命令デコーダと、前記命令デコーダによるデコ
    ード結果が指定する演算を実行するALUとを有するC
    PUと、 命令のオペランド及び演算結果を格納するデスティネー
    ションとして指定可能な複数のレジスタを含むレジスタ
    群とを備え、 2サイクルのシステムクロックで動作するマイクロコン
    ピュータにおいて、 システムクロックの第1の半サイクルの区間において、
    前記プログラムカウンタは実行すべき命令のアドレスを
    出力し、 システムクロックの続く第2の半サイクルの区間におい
    て、前記メモリは前記プログラムカウンタが出力したア
    ドレスに対応する命令のコードを出力し、前記命令デコ
    ーダは前記メモリから出力された命令のコードを読み込
    んでデコードし、前記ALUは前記命令デコーダによる
    デコード結果がオペランドとして指定するレジスタから
    データをフェッチして演算を開始し、 システムクロックの続く第3の半サイクルの区間におい
    て、前記ALUは前記命令デコーダによるデコード結果
    がデスティネーションとして指定するレジスタに演算結
    果を格納し、前記プログラムカウンタは次に実行すべき
    命令のアドレスを出力すべくなしてあることを特徴とす
    るマイクロコンピュータ。
  2. 【請求項2】 複数の例外処理それぞれに対応して予め
    割り当てられた例外処理用のコードを発生するコード発
    生手段と、 メモリから読み出された命令のコードを保持すると共に
    命令デコーダに与えるコードラッチ手段と、 例外処理の実行要求が発生した場合に、メモリから前記
    コードラッチ手段へのコード供給経路を遮断すると共に
    発生した例外処理に対応する例外処理コードを前記コー
    ド発生手段から前記コードラッチ手段へ強制的に供給す
    る手段とを備えたことを特徴とする請求項第1項記載の
    マイクロコンピュータ。
  3. 【請求項3】 プログラムメモリ領域は複数の例外処理
    それぞれに対応して予め割り当てられた例外処理コード
    を予め記憶しており、 前記プログラムメモリ領域からフェッチされた例外処理
    コードであっても、コード発生手段から供給された例外
    処理コードであっても等価な処理を実行すべくなしてあ
    ることを特徴とする請求項第2項記載のマイクロコンピ
    ュータ。
  4. 【請求項4】 CPUは、 更に命令サイクル数を計数する計数手段を有し、 コードラッチ手段の出力と前記計数手段の値とを組み合
    わせて複数の制御信号を生成すべくなしてあることを特
    徴とする請求項第2項記載のマイクロコンピュータ。
  5. 【請求項5】 複数のレジスタにて構成され、条件分岐
    命令の実行によりいずれかのレジスタが指定されると共
    に前記条件分岐命令のコード中の所定の値が設定される
    レジスタ群と、 命令実行による演算結果を格納するコンペアレジスタ
    と、 前記レジスタ群の内の条件分岐命令により指定されたレ
    ジスタの値と前記コンペアレジスタの値とをビット毎に
    比較する比較手段と、 前記レジスタ群の内の条件分岐命令により指定されたレ
    ジスタの必要なビットの値のみを取り出すことにより、
    条件分岐命令の分岐条件が満足されるか否かを表す条件
    判定信号を分岐条件が満足されることを表す状態にする
    マスクレジスタとを有する条件判定回路を備えたことを
    特徴とするマイクロコンピュータ。
  6. 【請求項6】 条件判定回路は、レジスタの指定と、比
    較するビットの指定と、信号値の区別とを行なうべくな
    してあることを特徴とする請求項第5項記載のマイクロ
    コンピュータ。
  7. 【請求項7】 条件判定回路は、指定可能なレジスタと
    して、周辺機能回路の制御のためのレジスタ群, 演算結
    果フラグ、割り込みの要求ビット群が割り付けられてい
    ることを特徴とする請求項第5項記載のマイクロコンピ
    ュータ。
  8. 【請求項8】 条件判定信号を基本クロックに同期させ
    る手段を備えたことを特徴とする請求項第5項記載のマ
    イクロコンピュータ。
  9. 【請求項9】 命令のコード中の1ビットの制御コード
    が直接条件判定回路に与えることにより無条件分岐が行
    なわれるべくなしてあることを特徴とする請求項第5項
    記載のマイクロコンピュータ。
  10. 【請求項10】 ALUの一方の入力に接続する第1の
    バスと、前記ALUの他方の入力に接続する第2のバス
    とで構成される2ウェイバスと、 前記2ウェイバスの内のいずれか一方と前記ALUとの
    間に位置し、一方の被演算数を一旦保持した後にALU
    に与えるテンポラリレジスタとを備えたことを特徴とす
    るマイクロコンピュータ。
  11. 【請求項11】 テンポラリレジスタの上位nビットと
    下位mビットとがそれぞれ異なる制御信号で制御され、 前記テンポラリレジスタの出力の上位nビットまたは下
    位mビットをオール”0”に強制的に変換して前記AL
    Uに供給する制御手段と、 前記テンポラリラッチの各ビットを反転して前記ALU
    に供給する反転制御回路とを備えたことを特徴とする請
    求項第10項記載のマイクロコンピュータ。
  12. 【請求項12】 ALUの出力を右シフトまたは左シフ
    トするシフト手段を備えたことを特徴とする請求項第1
    1項記載のマイクロコンピュータ。
  13. 【請求項13】 レジスタから読み出された値を一旦保
    持した後にALUに供給するラッチ回路を備えたことを
    特徴とする請求項第10項記載のマイクロコンピュー
    タ。
  14. 【請求項14】 各命令コード中の固定された位置の6
    ビットの内の1ビットはバイト長演算と16ビットワード
    長演算の区別のために、他の1ビットはシフト演算と非
    シフト演算の区別のために、残りの4ビットは更に細分
    化された演算の種別を指定するために使用される命令セ
    ットを備えたことを特徴とするマイクロコンピュータ。
  15. 【請求項15】 各命令コードが基本的に16ビットで構
    成されており、16ビットのコードの中に演算の種別, 操
    作の種別を示すコードの他に、ソースレジスタ及びデス
    ティネーションレジスタの指定, 分岐命令の分岐先アド
    レスを指定するディスプレースメント, 8ビット長の即
    値を含み、63ワード幅のレジスタを有するCPUに対し
    て各種操作を実施する命令群とその命令コードを提供す
    る命令セットを備えたことを特徴とするマイクロコンピ
    ュータ。
  16. 【請求項16】 CPU内のレジスタ空間に直接割込み
    制御回路, 周辺機器(ペリフェラル)の制御レジスタ,
    データレジスタを含む機能レジスタを配置してなること
    を特徴とするマイクロコンピュータ。
  17. 【請求項17】 ワンショットパルスを生成する機能を
    有するデータラッチを含む複数の基本的な要素機能レジ
    スタを予めレイアウト設計及び論理設計段階で用意して
    おき、アプリケーションに対応して必要な機能を有する
    レジスタを選択組み合わされた機能レジスタを備えたこ
    とを特徴とするマイクロコンピュータ。
  18. 【請求項18】 CPU内のレジスタ空間に高機能演算
    ブロックが割り付けられてなることを特徴とするマイク
    ロコンピュータ。
  19. 【請求項19】 実行すべき命令のコードを格納したメ
    モリと、 実行すべき命令のアドレスを出力するプログラムカウン
    タと、前記メモリから読み出された命令のコードをデコ
    ードする命令デコーダと、前記命令デコーダによるデコ
    ード結果が指定するオペランドを所定期間にわたって保
    持すると共にデコーダ結果が指定する演算を実行するA
    LUとを有するCPUと、 命令のオペランド及び演算結果を格納するデスティネー
    ションとして指定可能な複数のレジスタを含むレジスタ
    群とを備え、 2サイクルのシステムクロックで動作するマイクロコン
    ピュータにおいて、 システムクロックの第1の半サイクルの区間において、
    前記プログラムカウンタは実行すべき命令のアドレスを
    出力し、 システムクロックの続く第2の半サイクルの区間におい
    て、前記メモリは前記プログラムカウンタが出力したア
    ドレスに対応する命令のコードを出力し、前記メモリコ
    ーダは前記メモリから出力された命令のコードを読み込
    んでデコードすると共にデコード結果がオペランドとし
    て指定するレジスタのアドレスを出力し、 システムクロックの続く第3の半サイクルの区間におい
    て、前記ALUは前記命令デコーダによるデコード結果
    がオペランドとして指定するレジスタからデータをフェ
    ッチして前記プリラッチにラッチすると共に演算を開始
    し、前記プログラムカウンタは次に実行すべき命令のア
    ドレスを出力し、 システムクロックの続く第4の半サイクルの区間におい
    て、前記ALUは演算を継続すると共に前記命令デコー
    ダによるデコード結果がデスティネーションとして指定
    するレジスタに演算結果を格納すべくなしてあることを
    特徴とするマイクロコンピュータ。
  20. 【請求項20】 複数の例外処理それぞれに対応して予
    め割り当てられた例外処理用のコードを発生するコード
    発生手段と、 メモリから読み出された命令のコードを保持すると共に
    命令デコーダに与えるコードラッチ手段と、 例外処理の実行要求が発生した場合に、メモリから前記
    コードラッチ手段へのコード供給経路を遮断すると共に
    発生した例外処理に対応する例外処理コードを前記コー
    ド発生手段から前記コードラッチ手段へ強制的に供給す
    る手段とを備えたことを特徴とする請求項第19項記載
    のマイクロコンピュータ。
  21. 【請求項21】 プログラムメモリ領域は複数の例外処
    理それぞれに対応して予め割り当てられた例外処理コー
    ドを予め記憶しており、 前記プログラムメモリ領域からフェッチされた例外処理
    コードであっても、コード発生手段から供給された例外
    処理コードであっても等価な処理を実行すべくなしてあ
    ることを特徴とする請求項第20項記載のマイクロコン
    ピュータ。
  22. 【請求項22】 CPUは、 更に命令サイクル数を計数する計数手段を有し、 コードラッチ手段の出力と前記計数手段の値とを組み合
    わせて複数の制御信号を生成すべくなしてあることを特
    徴とする請求項第20項記載のマイクロコンピュータ。
JP6009123A 1993-06-14 1994-01-31 マイクロコンピュータ Pending JPH0764788A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP6009123A JPH0764788A (ja) 1993-06-14 1994-01-31 マイクロコンピュータ
US08/247,836 US5550994A (en) 1993-06-14 1994-05-23 Condition decision circuit for a microcomputer
DE4420703A DE4420703A1 (de) 1993-06-14 1994-06-14 Mikrocomputer

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP5-142028 1993-06-14
JP14202893 1993-06-14
JP6009123A JPH0764788A (ja) 1993-06-14 1994-01-31 マイクロコンピュータ

Publications (1)

Publication Number Publication Date
JPH0764788A true JPH0764788A (ja) 1995-03-10

Family

ID=26343782

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6009123A Pending JPH0764788A (ja) 1993-06-14 1994-01-31 マイクロコンピュータ

Country Status (3)

Country Link
US (1) US5550994A (ja)
JP (1) JPH0764788A (ja)
DE (1) DE4420703A1 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6419881B1 (en) 1994-10-18 2002-07-16 Symyx Technologies, Inc. Combinatorial arrays of organometallic compounds and catalysts
US6502191B1 (en) * 1997-02-14 2002-12-31 Tumbleweed Communications Corp. Method and system for binary data firewall delivery
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US8132250B2 (en) 2002-03-08 2012-03-06 Mcafee, Inc. Message profiling systems and methods
US7870203B2 (en) 2002-03-08 2011-01-11 Mcafee, Inc. Methods and systems for exposing messaging reputation to an end user
US6941467B2 (en) 2002-03-08 2005-09-06 Ciphertrust, Inc. Systems and methods for adaptive message interrogation through multiple queues
US20060015942A1 (en) 2002-03-08 2006-01-19 Ciphertrust, Inc. Systems and methods for classification of messaging entities
US7903549B2 (en) 2002-03-08 2011-03-08 Secure Computing Corporation Content-based policy compliance systems and methods
US7124438B2 (en) * 2002-03-08 2006-10-17 Ciphertrust, Inc. Systems and methods for anomaly detection in patterns of monitored communications
US7693947B2 (en) 2002-03-08 2010-04-06 Mcafee, Inc. Systems and methods for graphically displaying messaging traffic
US7694128B2 (en) 2002-03-08 2010-04-06 Mcafee, Inc. Systems and methods for secure communication delivery
US7458098B2 (en) 2002-03-08 2008-11-25 Secure Computing Corporation Systems and methods for enhancing electronic communication security
US8578480B2 (en) 2002-03-08 2013-11-05 Mcafee, Inc. Systems and methods for identifying potentially malicious messages
US8561167B2 (en) 2002-03-08 2013-10-15 Mcafee, Inc. Web reputation scoring
US20030172291A1 (en) 2002-03-08 2003-09-11 Paul Judge Systems and methods for automated whitelisting in monitored communications
US8635690B2 (en) 2004-11-05 2014-01-21 Mcafee, Inc. Reputation based message processing
US7937480B2 (en) 2005-06-02 2011-05-03 Mcafee, Inc. Aggregation of reputation data
US8214497B2 (en) 2007-01-24 2012-07-03 Mcafee, Inc. Multi-dimensional reputation scoring
US8179798B2 (en) 2007-01-24 2012-05-15 Mcafee, Inc. Reputation based connection throttling
US7949716B2 (en) 2007-01-24 2011-05-24 Mcafee, Inc. Correlation and analysis of entity attributes
US7779156B2 (en) 2007-01-24 2010-08-17 Mcafee, Inc. Reputation based load balancing
US8763114B2 (en) 2007-01-24 2014-06-24 Mcafee, Inc. Detecting image spam
US8185930B2 (en) 2007-11-06 2012-05-22 Mcafee, Inc. Adjusting filter or classification control settings
US8045458B2 (en) 2007-11-08 2011-10-25 Mcafee, Inc. Prioritizing network traffic
US8160975B2 (en) 2008-01-25 2012-04-17 Mcafee, Inc. Granular support vector machine with random granularity
US8589503B2 (en) 2008-04-04 2013-11-19 Mcafee, Inc. Prioritizing network traffic
US8621638B2 (en) 2010-05-14 2013-12-31 Mcafee, Inc. Systems and methods for classification of messaging entities
US9817642B2 (en) * 2015-06-25 2017-11-14 Intel Corporation Apparatus and method for efficient call/return emulation using a dual return stack buffer
CN114116018B (zh) * 2020-08-26 2024-05-10 比亚迪半导体股份有限公司 配置芯片及调用程序的方法、装置、存储介质及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0460720A (ja) * 1990-06-29 1992-02-26 Hitachi Ltd 条件分岐命令制御方式
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit

Also Published As

Publication number Publication date
US5550994A (en) 1996-08-27
DE4420703A1 (de) 1994-12-15

Similar Documents

Publication Publication Date Title
US5550994A (en) Condition decision circuit for a microcomputer
AU740243B2 (en) Method of self-synchronization of configurable elements of a programmable component
Rau et al. Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing
US6542998B1 (en) Method of self-synchronization of configurable elements of a programmable module
US5809336A (en) High performance microprocessor having variable speed system clock
US5752070A (en) Asynchronous processors
Martin et al. The Lutonium: A sub-nanojoule asynchronous 8051 microcontroller
Dally et al. Architecture of a message-driven processor
US5828858A (en) Worm-hole run-time reconfigurable processor field programmable gate array (FPGA)
EP1877927B1 (en) Reconfigurable instruction cell array
US6839831B2 (en) Data processing apparatus with register file bypass
Renaudin et al. ASPRO-216: a standard-cell QDI 16-bit RISC asynchronous microprocessor
US6152613A (en) Circuit implementations for asynchronous processors
US20040025074A1 (en) Circuits and methods for high-capacity asynchronous pipeline
Ozawa et al. A cascade ALU architecture for asynchronous super-scalar processors
US10445099B2 (en) Reconfigurable microprocessor hardware architecture
Leibson et al. Configurable processors: a new era in chip design
David et al. Self-timed architecture of a reduced instruction set computer
JP2638613B2 (ja) プログラマブル アクセラレータ及びその方法
Lee et al. Design of a fast asynchronous embedded CISC microprocessor, A8051
Srivastava et al. Prophetic branches: a branch architecture for code compaction and efficient execution
Zhang et al. Performance modeling and code partitioning for the DS architecture
Furber Asynchronous design
Kaneko et al. A 32-bit CMOS microprocessor with six-stage pipeline structure
Denman et al. Design of the PowerPC 604e microprocessor