JPH0736691A - 拡張可能な中央処理装置 - Google Patents

拡張可能な中央処理装置

Info

Publication number
JPH0736691A
JPH0736691A JP5319185A JP31918593A JPH0736691A JP H0736691 A JPH0736691 A JP H0736691A JP 5319185 A JP5319185 A JP 5319185A JP 31918593 A JP31918593 A JP 31918593A JP H0736691 A JPH0736691 A JP H0736691A
Authority
JP
Japan
Prior art keywords
control
unit
execution unit
logic
cpu
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.)
Granted
Application number
JP5319185A
Other languages
English (en)
Other versions
JP3681182B2 (ja
Inventor
Charles F Studor
チャールズ・エフ・スチューダー
James S Divine
ジェイムズ・エス・ディヴァイン
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.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of JPH0736691A publication Critical patent/JPH0736691A/ja
Application granted granted Critical
Publication of JP3681182B2 publication Critical patent/JP3681182B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)
  • Programmable Controllers (AREA)

Abstract

(57)【要約】 拡張可能な中央処理装置(CPU)12または12’で
ある。新しいCPUまたは従来技術によるCPUのアー
キテクチャを改良することにより、新しいCPUまたは
従来技術のCPUを拡張可能にして、新しい命令を簡単
で費用効果の高い方法で追加し、様々な顧客の必要性を
満たすことができる。CPUに関する「拡張可能」とい
う言葉は、既存のCPU回路構成に大きな変更を加える
ことなく、一定の指定された回路構成を追加するだけ
で、CPUに新しい命令を追加することができることを
意味するために用いられる。ある実施例においては、追
加の指定された回路構成には、CPU制御拡張部回路構
成52または152の形態の制御回路構成が含まれるこ
ともある。ある実施例においては、追加の回路構成には
実行ユニット拡張部回路構成153の形態の非制御回路
構成が含まれることもある。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般に中央処理装置に
関し、さらに詳しくは、拡張可能な中央処理装置に関す
る。
【0002】
【従来の技術】中央処理装置(CPU:central proces
sing unit は、一般に、マイクロコンピュータ集積回路
(MCU:microcomputer integrated circuit)の主要
な「頭脳」である。CPUの他にも、MCUにはメモ
リ,タイマおよびバス・インターフェースなどの1つ以
上のオンボード周辺機器または部分が含まれているのが
普通である。しかし、通常はCPUがMCUを制御する
ために用いられるソフトウェア命令を受信して解釈する
責を負っている。
【0003】ある特定のCPUを、様々なMCUに用い
ることができる。同じCPUが様々なMCUに用いられ
る場合、これらのMCUは一般に「ファミリ」(テキサ
ス州オースティンのモトローラ社から販売されるMC68HC
05ファミリのマイクロコンピュータなど)を形成すると
考えられる。種々のMCUに同一のCPUを用いること
には、製造者の視点からも、顧客の視点からも多くの利
点がある。このような利点の1つは、同一のCPUを用
いるファミリ内のMCU間にはソフトウェアの互換性が
あることである。
【0004】しかし、1つのファミリのMCUが広範な
用途に標準的に用いられるために問題が起きる。MCU
の顧客には、たとえばデジタル信号処理命令またはファ
ジー論理命令などのカスタム(特注)命令(用途別の命
令とも呼ばれる)を希望する、あるいは必要とする場合
がある。しかし、このようなカスタム命令を必要とせ
ず、このカスタム命令がCPUの一部として含まれるた
めにかかる余分な経費を払いたくない顧客もいる。その
ため、用途別の命令と経費との間の条件の取捨選択がど
のように行われようとも、CPU設計者によりなされた
条件の取捨選択に満足しないMCUの顧客は多い。
【0005】第2の問題点は、1つのファミリのMCU
が一般には数年間市場にあるという事実により起こる。
しかし、MCU顧客の要望はもっと速いペースで変化す
る。たとえば、わずか5年前には、ファジー論理命令を
必要とするMCUの顧客は、いたとしても、ほとんどい
なかった。現在では、かなりの数のMCUの顧客にとっ
て、ファジー論理命令が要件であることは珍しくない。
その結果、MCUの寿命の間にきわめて一般的に必要と
される用途別の命令を組み込むCPUを設計すること
は、現在では非常に難しい。実際のところ、かなりの数
のMCU顧客によって将来必要とされる用途別命令には
まだ未知のものもある。
【0006】第3の問題点は、既存の低価格のCPUで
は満足に実行することのできない少数の重要なソフトウ
ェア・ルーチンを持つMCU顧客がいるために起こる。
そのため、これらのMCU顧客は、少数の重要なソフト
ウェア・ルーチンの必要性を満たすために、より強力で
より高価なCPUをもつMCUを用いることを強いられ
ている。しかし、より強力でより高価なCPUは、顧客
の電力消費および/または価格の制約を満たさないこと
がある。
【0007】
【発明が解決しようとする課題】上記の問題点は、たと
えばMC68HC05ファミリのマイクロコンピュータなどのロ
ーエンドMCUなどのきわめて価格に敏感なMCUの用
途において重要である。現在のMC68HC05ファミリのマイ
クロコンピュータにおいては、新たな命令を追加するた
めの簡単で費用効果の良い方法はない。そのため、MC
U顧客の必要性と要件とが変化するのに応じて、CPU
を注文設計するための簡単で費用効果の良い方法はな
い。
【0008】
【課題を解決するための手段】前述の必要性は、本発明
により満足され、その他の利点も本発明により得られ
る。本発明は、ある形態では、拡張可能な中央処理装置
である。
【0009】ある実施例においては、本発明は実行ユニ
ットを有する中央処理装置である。この実行ユニットに
は、第1組の制御信号を受信する第1組の制御入力が含
まれる。第1組の制御信号は、実行ユニットのすべてを
制御することができる。実行ユニットにはまた、第2組
の制御信号を受信することのできる第2組の制御入力も
含まれる。第2組の制御信号は、実行ユニットのすべて
を制御することができる。実行ユニットにはまた、中央
処理装置内のすべてのステータス・レジスタも含まれ
る。中央処理装置は、実行ユニットに結合された第1制
御ユニットも有する。第1制御ユニットは、第1組の制
御信号を設ける。
【0010】本発明は、以下の詳細な説明と添付の図面
とによって、当業者に理解されるだろう。
【0011】
【好適な実施例の説明】新たな命令を中央処理装置(C
PU)に追加するための簡単で費用効果の良い方法が必
要とされた。新しい、あるいは従来の技術によるCPU
のアーキテクチャを改良することにより、新しいCPU
または従来技術のCPUを拡張可能にして、比較的簡単
で費用効果の良い方法で新しい命令を追加することがで
きる。CPUに関して「拡張可能(extensible)」とい
う言葉は、一定の指定された回路構成を追加することに
より、既存のCPUの回路構成を大幅に変更することな
く新しい命令をCPUに追加することができることを意
味するために用いられる。
【0012】本発明を用いると、より低価格の顧客の要
望を満たす基本的な1組の命令を拡張可能なCPUに設
計することができる。拡張可能なCPUに新しい命令を
追加することが簡単に低価格で行えるので、用途別の命
令を希望する、あるいは必要とする顧客は1つ以上の用
途別命令を追加して、なおかつ妥当な価格を維持するこ
とができる。さらに、将来新しいアルゴリズムが開発さ
れたり、普及した場合に、新たな命令を拡張可能なCP
Uに追加して、簡単で費用効果の良い方法で新しいアル
ゴリズムを組み込むことができる。
【0013】本発明を用いると、従来技術のCPUシス
テム・レベルのアーキテクチャ、たとえば図示された実
施例のMC68HC05CPUアーキテクチャを改良して、拡張
可能なものにして、新しい命令を追加するために大きな
回路変更を必要としないようにすることができる。ある
いは、新たな命令を実行するために所定の回路構成の追
加が必要となることもある。MC68HC08と名付けられた、
結果として得られた拡張可能なCPUは、既存のMC68HC
05ファミリのMCUとのオブジェクト・コードの互換性
がある。
【0014】従来技術のCPUは、以下の改良を行うこ
とにより拡張可能にすることができる:すなわち(1)
2台以上の制御ユニットが制御信号を実行ユニット内に
駆動できるようにする;(2)プログラマ・モデル内の
レジスタのすべてを実行ユニットに入れる(条件コード
・レジスタを含む);(3)状態シーケンサ(stateseq
uencer )回路構成を改良する;および(4)いくつか
の制御信号を追加する。CPUが拡張可能になると、拡
張可能なCPU回路構成に大きな変更を加えずに別の命
令を追加することができる。
【0015】第2制御ユニット64と第2状態シーケン
サ68とを追加するだけで、新しい命令を追加すること
ができる。第2制御ユニット64の大部分は元の制御ユ
ニット54の複製であり、第2状態シーケンサ68のあ
る部分は元の状態シーケンサ58の複製とすることがで
きる点に注目されたい。また、元の制御ユニット54も
第2制御ユニット64も、実行ユニット56内のすべて
のリソースに完全にアクセスできる点にも注目された
い。
【0016】実行ユニット156の既存のリソースを利
用する新しい命令を追加するだけでなく、新しいリソー
スを実行ユニットそのものに追加することもできる。実
行ユニットの内部バスは、実行ユニットの物理端に配線
されている。このため実行ユニット拡張部153を追加
して、1つ以上の実行ユニットの内部バスに直接結合し
て、レジスタ,別の演算論理ユニット(ALU:arithm
etic logic unit ),特殊機能回路構成または他の任意
の回路構成を追加することにより実行ユニットの機能性
を拡大することができる。
【0017】その結果、本発明により従来技術のCPU
を拡張可能にして、拡張可能なCPUに回路構成を容易
に追加して、現在および将来にわたり様々な顧客の必要
性を満たすことができる。その結果、個々の顧客の融通
性を図るための経費が大幅に削減された。
【0018】
【図面の説明】「アサートする(assert)」と「ネゲー
トする(negate)」という言葉は、信号,ステータス・
ビットまたは同様の装置を、それぞれ、論理的に真の状
態にすることおよび論理的に偽の状態にすることを指す
ときに用いられる。論理的に真の状態が論理レベル1で
あるとすると、論理的に偽の状態は論理レベル0であ
る。論理的に真の状態が論理レベル0であるとすると、
論理的に偽の状態は論理レベル1である。
【0019】「バス」という言葉は、データ,アドレ
ス,制御またはステータスなど1つ以上の種々の情報を
送信するために用いられる複数の信号を指すために用い
られる。
【0020】図1は、データ処理システム10のある実
施例を示す。データ処理システム回路構成10は、拡張
可能な中央処理装置(CPU)回路構成12,回路構成
のシステム統合部14,回路構成のシリアル部16,ラ
ンダム・アクセス・メモリ(RAM)回路構成18,読
み込み専用メモリ(ROM)回路構成20,その他のメ
モリ回路構成22(たとえば電気的消去書き込み可能な
読み込み専用メモリEEPROM),ポート論理回路構
成24,外部バス・インターフェース回路構成26,回
路構成のタイマ部28および直接メモリ・アクセス(D
MA)回路構成30を有し、これらはそれぞれバス回路
構成32に双方向的に結合されている。拡張可能なCP
U12とシステム統合部14とは、バス回路構成34に
より互いに双方向的に結合されている。拡張可能なCP
U12は、バス回路構成36によりDMA30に結合さ
れている。
【0021】システム統合部14は、集積回路ピン38
を介してデータ処理システム10の外部と信号の受信お
よび送信ができる。シリアル部16は、集積回路ピン4
0を介して、データ処理システム10の外部と信号の受
信および送信ができる。メモリの種類により、他のメモ
リ22は集積回路ピン42を介して、データ処理システ
ム10の外部と信号の受信および送信を任意にすること
ができる。ポート論理24は、集積回路ピン44を介し
てデータ処理システム10の外部と信号の受信および送
信ができる。外部バス・インターフェース26は、集積
回路ピン46を介してデータ処理システム10の外部と
信号の受信および送信ができる。また、タイマ部28
は、集積回路ピン48を介して、データ処理システム1
0の外部と信号の受信および送信ができる。
【0022】図2は、本発明のある実施例による図1の
拡張可能な中央処理装置(CPU)12をブロック図に
示したものである。拡張可能CPU12は、2つの主要
な部分、すなわちCPUコア回路構成50とCPU制御
拡張部回路構成52とに分割される。
【0023】CPUコア50は、制御ユニット回路構成
54,実行ユニット(EU)回路構成56および第1状
態シーケンサ回路構成58を有する。制御ユニット54
は、制御PLA信号(Control PLA Signals )をランダ
ム制御論理回路構成62に転送する制御プログラミング
可能論理アレイ(制御PLA)回路構成60を有する。
ランダム制御論理62は、タイミング制御信号(Timed
Control Signals )を実行ユニット56に転送する。ラ
ンダム制御論理62は、実行ユニット56からステータ
ス信号(Status Signals)を受信する。制御PLA60
は、第1状態シーケンサ58との間で信号を受信および
転送する。ランダム制御論理62は、動作不能(ディス
エーブル)回路構成63を含む。
【0024】CPU制御拡張部52は、制御ユニット回
路構成64と第2状態シーケンサ回路構成68とを有す
る。制御ユニット64は、制御ROM信号(Control RO
M Signals )をランダム制御論理回路構成72に転送す
る制御読み込み専用メモリ(制御ROM)回路構成70
を有する。ランダム制御論理72は、タイミング制御信
号を実行ユニット56に送信する。ランダム制御論理7
2は、実行ユニット56からステータス信号を受信す
る。ランダム制御論理72は、動作不能回路構成73を
含む。
【0025】制御ROM70は、第2状態シーケンサ6
8との間で信号を転送および受信する。制御ROM70
は、第1状態シーケンサ58にも信号を転送する。第2
状態シーケンサ68は、1個以上の信号をランダム制御
論理62に転送する。また第2状態シーケンサ68は、
ランダム制御論理72にも信号を転送する。第2状態シ
ーケンサ68は制御PLA60から信号を受信する。
【0026】実行ユニット56は、バス32に対して双
方向的に結合される。第1状態シーケンサ58と第2状
態シーケンサ68とは、バス32から命令を受信するよ
うに結合されている。
【0027】図3は、本発明のある実施例による図1の
拡張可能な中央処理装置(CPU)12’をブロック図
に示したものである。拡張可能CPU12’は、3つの
主要部分、すなわちCPUコア回路構成150と、CP
U制御拡張部回路構成152と、実行ユニット拡張部回
路構成153とに分かれている。
【0028】CPUコア150は、制御ユニット回路構
成154,実行ユニット(EU)回路構成156および
第1状態シーケンサ回路構成158を有する。制御ユニ
ット154は、制御PLA信号をランダム制御論理回路
構成162に転送する制御プログラミング可能論理アレ
イ(制御PLA)回路構成160を有する。ランダム制
御論理162は、タイミング制御信号を実行ユニット1
56に転送する。ランダム制御論理162は、実行ユニ
ット156からステータス信号を受信する。制御PLA
160は、第1状態シーケンサ158との間で信号の送
受信を行う。ランダム制御論理162には、動作不能回
路構成163が含まれる。
【0029】CPU制御拡張部152は、制御ユニット
回路構成164と第2状態シーケンサ回路構成168と
を有する。制御ユニット164は、ランダム制御論理回
路構成172に制御ROM信号を転送する制御読み込み
専用メモリ(制御ROM)回路構成170を有する。さ
らに、制御ユニット164は、制御ROM拡張信号(Co
ntrol ROM Extension Signals )をランダム制御論理拡
張部回路構成175に送信する制御読み込み専用メモリ
(制御ROM)回路構成171を有する。ランダム制御
論理172は、実行ユニット156にタイミング制御信
号を転送する。さらにランダム制御論理拡張部175
は、タイミング制御信号を実行ユニット拡張部153に
転送する。ランダム制御論理172は、実行ユニット1
56からステータス信号を受信する。さらにランダム制
御論理拡張部175は、実行ユニット拡張部153から
ステータス信号を受信する。ランダム制御論理172に
は、動作不能回路構成173が含まれる。
【0030】制御ROM170は、第2状態シーケンサ
168との間で信号を送受信する。制御ROM170
は、第1状態シーケンサ158にも信号を転送する。第
2状態シーケンサ168は、1つ以上の信号をランダム
制御論理162に転送して、第2状態シーケンサ168
は、ランダム制御論理172にも信号を転送する。第2
状態シーケンサ168は、制御PLA160から信号を
受信する。
【0031】実行ユニット156は、バス32と双方向
的に結合されている。第1状態シーケンサ158と第2
状態シーケンサ168とは、バス32からの命令を受け
取るように結合されている。さらに実行ユニット拡張部
153は、1つ以上の実行ユニット(EU)内部バスに
より実行ユニット156に結合されている。
【0032】図4は、本発明のある実施例による図2の
第1状態シーケンサ58をブロック図に示したものであ
る。選択マルチプレクサ(MUX)回路構成80は、制
御PLA60からの命令終了信号(End Of Instruction
Signal )と制御ROM70からの命令終了信号を受信
する。選択マルチプレクサ(MUX)回路構成82は、
制御PLA60からの先取り信号(Lookahead Signal)
と制御ROM70からの先取り信号を受信する。状態論
理回路構成84は、次状態信号(Next State Signals)
を制御PLA60から受信する。
【0033】MUX80およびMUX82は、それぞれ
制御PLA60から制御転送信号(Control Transfer S
ignal )を受信する。MUX80の出力は、命令レジス
タ回路構成86の制御入力に結合され、状態論理84に
結合されている。MUX82の出力は、オプコード(op
code)先取りレジスタ回路構成88の制御入力に結合さ
れている。オプコード先取りレジスタ88は、バス32
に結合されて、命令を受け取る。命令レジスタ86は、
オプコード先取りレジスタ88に結合されて、命令を受
け取る。
【0034】デコーダ回路構成89は、命令レジスタ8
6に結合されて、命令を受け取る。デコーダ89は、状
態論理84に結合されて、状態情報を受け取る。デコー
ダ89は、制御信号を発生し、この信号は制御PLA6
0に行く。また、第1状態シーケンサ58は、タイミン
グ信号(図示せず)を必要とする。
【0035】図5は、本発明のある実施例による図3の
第1状態シーケンサ158をブロック図に示したもので
ある。選択マルチプレクサ(MUX)回路構成90は、
制御PLA160からの命令終了信号と制御ROM17
0からの命令終了信号を受信する。選択マルチプレクサ
(MUX)回路構成92は、制御PLA160からの先
取り信号と制御ROM170からの先取り信号とを受信
する。状態論理回路構成94は、次状態信号を制御PL
A160から受信する。
【0036】MUX90およびMUX92は、それぞれ
制御PLA160から制御転送信号を受信する。MUX
90の出力は、命令レジスタ回路構成96の制御入力に
結合され、状態論理94に結合されている。MUX92
の出力は、オプコード先取りレジスタ回路構成98の制
御入力に結合されている。オプコード先取りレジスタ9
8は、バス32に結合されて、命令を受け取る。命令レ
ジスタ96は、オプコード先取りレジスタ98に結合さ
れて、命令を受け取る。
【0037】デコーダ回路構成99は、命令レジスタ9
6に結合されて、命令を受け取る。デコーダ99は、状
態論理94に結合されて、状態情報を受け取る。デコー
ダ99は、制御信号を発生し、この信号は制御PLA1
60に行く。また、第1状態シーケンサ158は、タイ
ミング信号(図示せず)を必要とする。
【0038】図6は、本発明のある実施例による図2の
第2状態シーケンサ68をブロック図に示したものであ
る。制御ユニット選択論理回路構成101は、制御PL
A60からの制御転送信号制御と、制御ROM70から
の命令終了信号とを受信する。制御ユニット選択論理1
01は、ランダム制御論理62に動作不能(Disable信
号を送り、ランダム制御論理72に動作可能(Enable)
信号を送り、制御ROM70に動作可能信号を送る。オ
プションで、制御ユニット選択論理101は、制御PL
A60に動作不能信号を送ることもできる。
【0039】状態論理回路構成104には、カウンタ回
路構成107が含まれる。状態論理104は、制御RO
M70から次状態信号を受信する。命令レジスタ回路構
成106は、制御ROM70から先取り信号を受信す
る。命令レジスタ106は、バス32に結合されて、命
令を受け取る。カウンタ107はバス32に結合されて
おり、カウンタ107にはバス32を介して書き込むこ
とができる。デコーダ回路構成109は、命令レジスタ
106に結合されて命令を受け取る。デコーダ109
は、状態論理104に結合されて、状態情報を受け取
る。デコーダ109は、制御信号を発生して、この信号
は制御ROM70に行く。また、第2状態シーケンサ6
8は、タイミング信号(図示せず)を必要とする。制御
ユニット選択論理101は、命令レジスタ106に結合
されている。
【0040】図7は、本発明のある実施例による図3の
第2状態シーケンサ168をブロック図に示したもので
ある。制御ユニット選択論理回路構成111は、制御P
LA160からの制御転送信号制御と、制御ROM17
0からの命令終了信号とを受信する。制御ユニット選択
論理111は、ランダム制御論理162に動作不能信号
を送り、ランダム制御論理172に動作可能信号を送
り、制御ROM170に動作可能信号を送る。オプショ
ンで、制御ユニット選択論理111は、制御PLA16
0に動作不能信号を送ることもできる。
【0041】状態論理回路構成114には、カウンタ回
路構成117が含まれる。状態論理114は、制御RO
M170から次状態信号を受信する。命令レジスタ回路
構成116は、制御ROM170から先取り信号を受信
する。命令レジスタ116は、バス32に結合されて、
命令を受け取る。カウンタ117はバス32に結合され
ており、カウンタ117にはバス32を介して書き込む
ことができる。デコーダ回路構成119は、命令レジス
タ116に結合されて命令を受け取る。デコーダ119
は、状態論理114に結合されて、状態情報を受け取
る。デコーダ119は、制御信号を発生して、この信号
は制御ROM170に行く。また、第2状態シーケンサ
168は、タイミング信号(図示せず)を必要とする。
制御ユニット選択論理111は、命令レジスタ116に
結合されている。
【0042】図8は、図2の実行ユニット56の一部の
ある実施例を示す。同様に、図8は、図3の実行ユニッ
ト156の一部のある実施例を示す。制御ユニット選択
論理101は、命令レジスタ106に結合されている。
【0043】プログラム・カウンタ(高)/インクリメ
ンタ・レジスタ(incrementer register)回路200
は、バス202から情報を受け取り、バス204に情報
を与える。プログラム・カウンタ(低)レジスタ回路2
06は、バス202から情報を受け取り、バス204に
情報を与える。スタック・ポインタ・レジスタ(stackp
ointer register)回路208は、バス202から情報
を受け取り、バス204に情報を与える。累算器(accu
mulator )レジスタ回路210は、バス202から情報
を受け取り、バス204に情報を与える。インデックス
・レジスタ212はバス202から情報を受け取り、バ
ス204に情報を与える。
【0044】一時アドレス・レジスタ(高)回路214
は、バス202から情報を受け取り、バス216に情報
を与える。一時アドレス・レジスタ(低)回路218
は、バス202から情報を受け取り、バス216に情報
を与える。データ・バス・インターフェース回路構成2
20は、バス202から情報を受け取り、バス216に
情報を与える。定数発生論理回路222は、バス204
に情報を与える。
【0045】演算論理ユニット(ALU)224は、バ
ス204とバス216とからデータを受け取る。ALU
224は、フラッグ回路構成226に双方向的に結合さ
れている。フラッグ回路構成226は、条件コード・レ
ジスタ228に双方向的に結合されている。条件コード
・レジスタ228は、バス202から情報を受け取り、
バス216に情報を与える。ALU224の出力は、シ
フタ(shifter )回路構成230に結合されている。シ
フタ230は、バス202に情報を与える。
【0046】プログラム・カウンタ(高)/インクリメ
ンタ・レジスタ200と一時アドレス・レジスタ(高)
214は、それぞれ高バス232に情報を与える。アド
レス・バス(高)バッファ回路構成234は、高バス2
32から情報を受け取り、プログラム・カウンタ(高)
/インクリメンタ・レジスタ200に情報を与える。ア
ドレス・バス(高)バッファ234は、アドレス・バス
(高)236に結合されている。アドレス・バス(高)
236は、バス32に結合されている。
【0047】プログラム・カウンタ(低)レジスタ20
6と、一時アドレス・レジスタ(低)218と、スタッ
ク・ポインタ・レジスタ208とは、それぞれ低バス2
38に情報を与える。アドレス・バス(低)バッファ回
路構成240は、低バス238から情報を受け取る。ア
ドレス・バス(低)バッファ240は、アドレス・バス
(低)242に結合されている。アドレス・バス(低)
242は、バス32に結合されている。
【0048】低バス238は、データ・バス244から
情報を受け取る。データ・バス・インターフェース22
0は、データ・バス244から情報を受け取り、それに
情報を与える。データ・バス244は、バス32に結合
されている。
【0049】
【好適な実施例の動作】本発明により、CPUに拡張性
を持たせることができ、回路構成を追加することが容易
になったり、既存の回路構成をほとんど変更せずに新し
い命令またはアルゴリズムを組み込むことができる。
【0050】図1では、データ処理システム10がMC
Uファミリ内の1つの可能なMCUを示す。同じファミ
リ内のMCUは、異なるオンボード周辺機器を有するの
が普通なので、データ処理システム10の他の実施例で
はROM20を持たないもの、外部バス・インターフェ
ース26を持たないもの、DMA30を持たないものも
ある。実際には、データ処理システム10の他の実施例
では、図1に示された周辺機器よりも少ない場合も、多
い場合も、また異なるものを持つ場合もある。過去にお
いては、特定のファミリ内のMCUは、ほとんどいつ
も、全く同じCPUを用いていた。本発明により、特定
のファミリ内のMCUは、同一のCPUコア50の拡張
部であることによりすべて関連性をもつ異なる拡張可能
CPU12を用いることができる。図2は、拡張可能C
PU12の1つの可能な実施例を示す。図3は、拡張可
能CPU12の第2の可能な実施例、すなわち拡張可能
CPU12’を示す。
【0051】図2では、図2に示される拡張可能CPU
12に基づくMCUのファミリがすべて同じCPUコア
50を有する。CPUコア50のある実施例に基づくこ
のようなファミリのMCUは、MC68HC08ファミリと呼ば
れる。CPUコア50は、従来技術のCPUアーキテク
チャ、すなわちMC68HC05CPUアーキテクチャを改良し
たものである。本発明の他の実施例では、異なるCPU
アーキテクチャを用いることもできる。改良されている
ために、CPU50は従来技術のものとは異なり、拡張
可能になっている。
【0052】CPU制御拡張部52は、CPUコア50
に追加して新しい命令またはアルゴリズムを組み込むこ
とのできる追加の回路構成のある実施例を示す。CPU
制御拡張部52は、従来技術のMC68HC05CPUには存在
しなかった。従来技術のMC68HC05CPUを拡張可能にす
るために行われた特定の改良を以下に説明する。
【0053】実行ユニット56から始めると、1つの例
外を除き、実行ユニット56は個々の論理ゲート・レベ
ルにおいては従来技術のものと同じである。その1つの
例外とは、条件コード・レジスタ228(図8参照)で
ある。従来技術のMC68HC05CPUでは、条件コード・レ
ジスタは、実行ユニットの最新の状態に関するステータ
ス情報を含んでいるので、制御ユニットのランダム制御
論理部分に物理的に位置していた。制御ユニットは、次
の状態の間に実行ユニットを制御するためにどのタイミ
ング制御信号をアサートするかを決定するために、この
ステータス情報を必要としていた。たとえば、制御ユニ
ットは、ある分岐命令に関して実行ユニットをどのよう
に制御するかを決定するために条件コード・レジスタの
ゼロ・ビットの論理状態を知る必要があった。
【0054】しかし、CPU12を拡張可能なものとす
るためには、制御ユニット64は実行ユニット56のす
べてのステータス情報に対するアクセス権を持たなけれ
ばならない。条件コード・レジスタ228を実行ユニッ
ト56内に移動することによって、実行ユニット56に
はプログラマ・モデルのすべてのレジスタ、すなわち実
行ユニット56に関するすべてのステータス・レジスタ
とステータス情報が含まれる。これにより第2制御ユニ
ット64は、実行ユニット56から直接的に実行ユニッ
ト56のすべてのステータス情報に直接アクセス権を有
する。拡張可能CPU12においては、制御ユニット5
4も制御ユニット64も、実行ユニット56から同一の
組のステータス信号に対するアクセス権を有する;ま
た、ステータス信号には、実行ユニット56の条件コー
ド・レジスタ228からのステータス情報が含まれる。
【0055】レイアウト・レベルでは、実行ユニット5
6回路構成は、半導体集積回路上に物理的に配列して、
タイミング制御信号の完全な組と、ステータス信号の完
全な組とが制御ユニット54と制御ユニット64の両方
から得られるようにしなければならない。すなわち、す
べてのタイミング制御信号とすべてのステータス信号と
を、制御ユニット54および制御ユニット64の両方に
結合できるように物理的に配線しなければならない。
【0056】本発明の図示された実施例においては、C
PU制御拡張部52が組み込まれているか否かに関わら
ず、タイミング制御信号を運ぶ導体はそれぞれ、一端で
制御ユニット54に結合され、それぞれが実行ユニット
56を通じて配線され、それぞれが他端で実行ユニット
56に外部配線されている。従来の技術においては、た
だ1つの制御ユニット、すなわち制御ユニット54だけ
を、タイミング制御信号とステータス信号に結合すれば
よかった;また、そのためにタイミング制御信号を運ぶ
導体は、一端で実行ユニット56に外部配線されていれ
ばよかった。
【0057】制御ユニット54を形成するために従来技
術の制御ユニットに対して行われた特定の改良を以下に
説明する。前述のように、条件コード・レジスタ228
がランダム制御論理62から取り除かれた。さらに動作
不能回路構成63がランダム制御論理62に追加され
て、タイミング制御信号を動作不能にした。タイミング
制御信号が動作不能になると、実行ユニット56には転
送されず、そのため実行ユニット56には何の効果も持
たない。
【0058】動作不能回路構成63は、第2状態シーケ
ンサ68により発生される信号によって制御される。本
発明のある実施例においては、動作不能回路構成63に
は、各タイミング制御信号毎に1つの伝送ゲート(図示
せず)が含まれる。CPUコア50がCPU制御拡張部
52なしに用いられると、伝送ゲート(図示せず)が常
に動作可能になるので、タイミング制御信号は常に実行
ユニット56に転送される。CPUコア50がCPU制
御拡張部52と共に用いられると、伝送ゲート(図示せ
ず)は、第2状態シーケンサ68からの動作不能信号が
アサートされているかネゲートされているかによって、
動作可能になるか動作不能になるかのいずれかである
(図6参照)。
【0059】本発明のある実施例においては、動作不能
回路構成63には、第2状態シーケンサ68からの動作
不能信号の被アサート状態をラッチするラッチ(図示せ
ず)が含まれることに留意されたい。そのため、タイミ
ング信号(図示せず)がアサートされると、ラッチは伝
送ゲートを動作可能にして、それによりいくつかのタイ
ミング制御信号は、実行ユニット56内のスナック・ポ
インタ・レジスタ208およびプログラム・カウンタ
(高)/インクリメンタ200(図8参照)に転送され
る。このため、ラッチ(図示せず)が用いられて、いく
つかのタイミング制御信号の間、実行ユニット56に対
する動作不能信号の効果を遅延させる。このような差異
を除けば、ランダム制御論理62は、従来技術のランダ
ム制御論理と同一のものでよい。
【0060】制御PLA60は、従来技術のものと同じ
であるが、以下の追加点を持つ:すなわち(1)第1状
態シーケンサ58からの新しい入力状態(特殊制御送信
命令に関して);(2)いくつかの出力制御PLA信
号;および(3)制御PLA60内のいくつかの論理A
ND項および/または論理OR項。追加の信号および回
路構成は、2つの制御ユニット54,64間の実行ユニ
ット56の制御の転送に関わる。2つの制御ユニット5
4,64間の実行ユニット56の制御の転送について
は、以下に詳細に説明する。
【0061】第1状態シーケンサ58を形成するため
に、従来技術の状態シーケンサに加えられた特定の改良
を図4で説明する。従来の技術と同様に、第1状態シー
ケンサ58は制御PLA60と共に、CPUコア50の
現在の状態と、バス32を介して受け取った現在の命令
の両方に基づき、CPUコア50の次の状態を判定する
ことによって状態装置として機能する。第1状態シーケ
ンサ58は、従来の技術と同じ状態移行(state transi
tions )を処理することができる。さらに、第1状態シ
ーケンサ58は、2つの制御ユニット54,64間の実
行ユニット56の制御の移行に関わる状態移行も処理す
ることができる。
【0062】さらに図4を参照すると、従来の技術では
MUX80およびMUX82はなかった。従来技術にお
いては、MUX80の出力を用いて、命令レジスタ86
がいつロードされるかを知らせる代わりに、制御PLA
60からの出力信号が用いられていた。同様に、MUX
82の出力を用いて、オプコード先取りレジスタ88が
いつロードされるかを知らせる代わりに、制御PLA6
0からの出力信号が用いられていた。状態論理84は、
新しい命令、すなわち従来技術ではなかった特殊制御転
送命令を処理することができる。この新しい命令は、2
つの制御ユニット54,64間の実行ユニット56の制
御の転送に関わる。従来の技術とは異なり、デコーダ8
9と制御PLA60も、これと同じ新しい特殊制御転送
命令を処理することができる。
【0063】結論を述べると、従来技術のMC68HC05CP
Uを拡張可能にするために行われた回路の改良は、既存
の回路構成に対してわずかな量の追加の回路構成しか必
要としない。しかし、このような回路変更から得られる
利点は、きわめて重要である。このような回路変更の結
果として、種々の顧客の要望に合わせて注文設計(カス
タマイズ)された異なるCPU制御拡張部回路52を追
加することにより同一のCPUコア50の機能性を拡張
することができる。
【0064】拡張可能CPU12の動作を説明する(図
2参照)。第1に、拡張可能CPU12には、CPU制
御拡張部52のないCPUコア50だけが含まれる。た
とえば、CPUコア50だけを、図1に図示されるデー
タ処理システム10の拡張可能CPU12として用いる
ことができる。しかし、CPUコア50をCPU制御拡
張部52の種々の注文設計された実施例と共に用いるこ
ともできる。CPU制御拡張部52を内蔵することは、
拡張可能CPU12を拡張するための1つの方法であ
る。
【0065】図2に示されるブロック図は、CPU制御
拡張部52の1つの可能な実施例に過ぎない。CPU制
御拡張部52が実行ユニット56を適切に制御するため
のタイミング制御信号を発生して、実行ユニット56の
制御をタイミング制御信号の2つの信号源の間でやり取
りできるようにする回路構成をCPU制御拡張部52が
持っている限り、CPU制御拡張部52をどのように設
計しても構わない。
【0066】CPUコア50の図示された実施例は、回
路構成の2つの基本部分で構成される。制御ユニット5
4と第1状態シーケンサ58を含む第1部分は、バス3
2を介して命令を受け取り、実行ユニット56を制御す
るために用いられるタイミング制御信号を発生する。制
御回路構成のこの第1部分は、様々な方法で実現するこ
とができる。第2部分である実行ユニット56は、タイ
ミング制御信号を受信し、これらのタイミング制御信号
を用いて、実際に命令を実行する。実行ユニット56も
同様に種々の方法で実現することができる。
【0067】図2に示されたCPU制御拡張部52の実
施例は、CPU制御拡張部52を構築するための簡単な
方法である。いくつかの回路変更を加えることにより、
CPU制御拡張部52を制御ユニット54と第1状態シ
ーケンサ58の鏡像として実現することができる。ラン
ダム制御論理72の回路構成は、ランダム制御論理62
の回路構成の完全な複製として実現することができる。
ランダム制御論理72に対する入力制御信号、すなわち
制御ROM信号は、制御ROM70から来て、ROM7
0に記憶されている注文設計のROMパターンにより判
定される。顧客毎に、実行ユニット56に新しい命令を
実行させる別のROMパターンを用いることができる。
【0068】図2および図4では、第1状態シーケンサ
58が制御PLA60と共に、CPUコア50のための
状態装置として主に機能する。この能力で、第1状態シ
ーケンサ58は、バス32から命令を受け取る。第1状
態シーケンサ58は、次に(デコーダ89を用いて)実
行される現在の命令(命令レジスタ86からのもの)
と、CPUコア50の現在の内部状態(状態論理84か
らのもの)の両方を解読する。第1状態シーケンサ58
は次に、デコーダ89から信号を出力し、この信号は制
御PLA60に入力される。
【0069】CPU制御ユニット64内のROM70
は、制御ユニット54内の制御PLA60と同様の機能
を果たす。制御PLA60は、ランダム制御論理62の
ための入力信号を発生して、第1状態シーケンサ58と
第2状態シーケンサ68のための制御転送情報を発生す
る。ROM70は、ランダム制御論理72のための入力
信号を発生し、第1状態シーケンサ58と第2状態シー
ケンサ68のための制御転送情報を発生する。
【0070】制御PLA60とROM70とは、任意の
種類のメモリまたは任意の種類のプログラミング可能な
論理アレイを含む、任意の種類のプログラミング可能な
アレイとして実現することができる点に留意されたい。
制御PLA60とROM70とは、ランダム論理として
実現することもでき、それぞれの制御ユニット54,6
4内の残りのランダム制御論理回路構成と組み合わせる
こともできる。
【0071】プログラミング可能な論理アレイ(PL
A)は、読み込み専用メモリ(ROM)よりも小さな半
導体面積しか必要としないのが普通である;しかし、P
LAを注文設計するよりもROMを注文設計するほうが
簡単で迅速である。異なるバージョンの拡張可能CPU
12に関して同じ制御PLA60が用いられるので、制
御PLA60をPLAとして組み込んで半導体面積を節
約するほうが有利である。しかし、制御ROM70は異
なるバージョンの拡張可能CPU12に関しては異なる
プログラミングを必要とするので、制御ROM70をR
OMとして組み込むほうが簡単で迅速である。
【0072】タイミング制御信号は実行ユニット56に
対して、必要な制御情報のすべてを与える。バス32
は、実行ユニット56内にあるレジスタを読み書きする
ためのアドレスおよびデータ経路として用いられる。拡
張可能CPU12は、2つの別々の制御ユニット、すな
わち制御ユニット54と制御ユニット64とを有する。
2つの制御ユニット54,64のそれぞれは、実行ユニ
ット56を制御するために用いられる同一のタイミング
制御信号を完全に発生することができる。同様に、2つ
の制御ユニット54,64のそれぞれは、実行ユニット
56内のすべてのリソースに対して完全なアクセス権を
有する。
【0073】その結果、制御ユニット54だけでも、実
行ユニット56のすべてを全面的に制御することがで
き、同様に制御ユニット64だけでも実行ユニット56
のすべてを全面的に制御することができる。実際には、
拡張可能CPU12のある実施例では、制御ユニット5
4と制御ユニット64はそれぞれ、同じタイミング制御
信号導体の対向端に結合されており、この導体は実行ユ
ニット56を通じて、制御ユニット54,64のそれぞ
れに配線されている。
【0074】本発明の図示された実施例においては、特
殊制御転送命令が用いられて、実行ユニット56の制御
を制御ユニット54から制御ユニット64に転送してい
る。図示された実施例では、制御ユニット64が実行ユ
ニット56の制御を受け取ると、CPU制御拡張部52
が1つ命令を実行し、その後で実行ユニット56の制御
を自動的に制御ユニット54に返す。この方法では、拡
張可能CPU12のユーザがCPU制御拡張部52を用
いてカスタム命令を実行しようとするたびに、ユーザは
自分のソフトウェア・プログラム内のカスタム命令の後
に、特殊制御転送命令を入れなければならない。
【0075】この実施例では、CPU制御拡張部52
は、制御が制御ユニット54に自動的に返される前に1
つのカスタム命令を実行することしかできないが、この
1つの命令には任意の数の実行ユニット・サイクルを入
れることができる。これによって、顧客は、通常の命令
の完全なサブルーチンを単独のカスタム命令として定義
することができる。また、顧客は制御ROM70に適切
な対応の制御情報を記憶させることによって、可変数の
実行ユニット・サイクルを有する複数のカスタム命令を
定義することもできる。
【0076】実行ユニット・サイクルは、実行ユニット
56内で次の3つの段階を実行するために要する時間の
量によって定義されることに留意されたい(図8参
照):すなわち(1)1つ以上の値をALU224に転
送する;(2)ALU224を用いて算術演算または論
理演算を実行する;および(3)結果値をALU224
からレジスタに転送する。本発明のある実施例では、2
つの実行ユニット・サイクルをバス32のバス・サイク
ル毎に実行することができる。
【0077】各カスタム命令内のビット・フィールドを
用いて、どのカスタム命令を実行するかを指定すること
ができる。本発明のある実施例では、特殊制御転送命令
には2バイトが含まれる:すなわち第1バイトは、特殊
制御転送命令のためだけに用いられるオプコードであり
(それぞれのカスタム命令に関して同じ)、第2バイト
は制御ROM70内の開始アドレスである(各カスタム
命令により異なる)。本発明のある実施例では、特殊制
御転送命令は、実行ユニット56に対して「動作なし
(NOP:no operation)」命令と同じ効果を有する。
同様に、制御ユニット64により制御される各カスタム
命令の最後の2個の実行ユニット・サイクルは、実行ユ
ニット56に対してNOP命令と同じ効果を持つ。NO
P命令と、特殊制御転送命令と、各カスタム命令の最後
の部分はそれぞれ2個の実行ユニット・サイクルで構成
される。第1実行ユニット・サイクルの間に、プログラ
ム・カウンタ・レジスタ200,206の繰り上がりが
開始される。第2実行ユニット・サイクルの間に、プロ
グラム・カウンタ・レジスタ200,206の繰り上が
りが終了する。プログラム・カウンタ・レジスタ20
0,206を除くと、実行ユニット56は、タイミング
制御信号が駆動されていても特殊制御転送命令の実行中
には影響を受けない。
【0078】特殊制御転送命令を用いて実行ユニット5
6の制御を送るために用いることのできる数多くの実行
例があるが、図2,図4および図6に示された実行例に
ついて説明する。第2状態シーケンサ68の制御ユニッ
ト選択論理101(図6参照)は、適切な制御ユニット
54,64を動作可能および動作不能にする責を負う。
図示された実施例においては、特殊制御転送命令を用い
て制御ユニット54から制御ユニット64に対する制御
の転送を開始し、1つのカスタム命令が実行された後
に、制御ROM70からの命令終了信号を用いて制御ユ
ニット64から制御ユニット54に対する制御の返却を
開始する。
【0079】図示された実施例においては、制御ユニッ
ト選択論理101は別々の制御信号を設けて、ランダム
制御論理62,ランダム制御論理72,制御ROM70
および制御PLA60を動作可能にするか、あるいは動
作不能にする。制御PLA60を動作不能にする動作不
能信号はオプションであり、図示された拡張可能CPU
12には組み込まれていない。図示された実施例におい
ては、2つの別々の信号が制御ユニット選択論理101
により、制御ユニット54,64のそれぞれに関して発
生される。ランダム制御論理62は制御PLA60より
前に動作不能にしなければならず、ランダム制御論理7
2は制御ROM70より前に動作不能にシなければなら
なかったので、2つの信号がそれぞれの制御ユニットの
ために用いられた。同様に、制御PLA60はランダム
制御論理62より前に動作可能にしなければならず、制
御ROM70はランダム制御論理72より前に動作可能
にしなければならなかった。
【0080】制御PLA60は、制御転送信号を発生
し、この信号は第1状態シーケンサ58と第2状態シー
ケンサ68の両方に与えられる。制御転送信号は、特殊
制御転送命令が受け取られた後でアサートされる。制御
転送信号は、第1状態シーケンサ58と第2状態シーケ
ンサ68に対して、実行ユニット56の制御が制御ユニ
ット54から制御ユニット64に渡されたことを知らせ
る。
【0081】特殊制御転送命令がまだ受け取られていな
い場合は、制御転送信号はネゲートされる。制御転送信
号がネゲートされると、制御ユニット54は動作可能に
なり、制御ユニット64が動作不能になる。また、制御
転送信号がネゲートされると、制御ユニット選択論理1
01のすべての出力はネゲートされる。ランダム制御論
理62に対する動作不能信号をネゲートすることによ
り、ランダム制御論理62から実行ユニット56に与え
られるタイミング制御信号が動作可能になる。制御PL
A60に対するオプションの動作不能信号をネゲートす
ることにより、制御PLA60は第1状態シーケンサ5
8によりストローブ(strobe)される。ランダム制御論
理72に対する動作可能信号をネゲートすることによ
り、タイミング制御信号が動作不能になり、この信号は
ランダム制御論理72から実行ユニット56に与えられ
なくなる。制御ROM70に対する動作可能信号をネゲ
ートすることにより、制御ROM70は第2状態シーケ
ンサ58によりストローブされなくなる。
【0082】特殊制御転送命令がまだ受け取られない場
合は、制御ROM70が動作不能になる。制御ROM7
0が動作不能になると、その出力の論理状態を変更する
ことができない。しかし、動作不能になっても制御RO
M70は、所定の初期パターンの論理状態かまたは制御
ROM70が動作不能になる前に出力信号が持っていた
最後のパターンの論理状態のいずれかによってその出力
信号を駆動し続ける。本発明のある実施例においては、
制御ROM70が動作不能になる前に出力信号が持って
いた最後のパターンの論理状態は、所定の初期パターン
の論理状態と常に同じである。
【0083】図2および図4に図示された第1状態シー
ケンサ58の動作を以下に詳細に説明する。制御PLA
60からの制御転送信号は、制御ユニット54が第1状
態シーケンサ58を制御しているのか、制御ユニット6
4が第1状態シーケンサ58を制御しているのかを判定
するために用いられる。制御転送信号は、MUX80が
制御PLA60から命令終了信号を出力しているのか、
MUX80が制御ROM70から命令終了信号を出力し
ているのかを判定するために用いられる。同様に、同じ
制御転送信号を用いて、MUX82が先取り信号を制御
PLA60から出力しているのか、MUX82が先取り
信号を制御ROM70から出力しているのかを判定す
る。制御転送信号は、状態論理84に入力される命令終
了信号がPLA60から来るのか、制御ROM70から
来るのかも判定する点に留意されたい。
【0084】実際には、制御転送信号は、第1状態シー
ケンサ58を通じて命令の流れを制御しているのが制御
ユニット54であるのか、制御ユニット64であるのか
を判定する。MUX82の出力をアサートすると、バス
32からの命令はオプコード先取りレジスタ88にロー
ドされる。MUX80の出力をアサートすると、オプコ
ード先取りレジスタ88からの命令が命令レジスタ86
にロードされる。
【0085】状態論理84は、制御PLA60から次状
態信号を受信する。デコーダ89は、制御PLA60と
共に、これらの次状態信号と命令レジスタ86に記憶さ
れている現在の命令から、次の状態がどのようになるか
を判定する。CPUコア50がオプションのCPU制御
拡張部52なしに用いられた場合は、制御転送信号はア
サートされることはない。しかし、CPUコア50がオ
プションのCPU制御拡張部52と共に用いられると、
制御PLA60が制御転送信号をアサートして、デコー
ダ89の出力は制御転送信号により機能する。
【0086】第1状態シーケンサ58はまた、制御PL
A60の入力がいつ有効であるか、また制御PLA60
の出力がいつ有効であるかに関するタイミング情報(図
示せず)を制御PLA60に送る。制御PLA60の出
力が有効であるときは、第1状態シーケンサ58は、制
御PLA信号を動作可能にして、この信号はランダム制
御論理62に送信される。ランダム制御論理62は、次
にタイミング情報と、ステータス信号を介して実行ユニ
ット56から送り返されたステータス情報とにより制御
PLA信号を認可する。次にランダム制御論理62は、
タイミング制御信号を出力するが、これらは実行ユニッ
ト56を全面的に制御するために必要とされる完全な1
組の信号である。
【0087】第1状態シーケンサ58は、CPU制御拡
張部52がなくてもそれだけで機能するCPUコア50
内に用いることもできるので、制御転送を扱う回路構成
の大部分は第2状態シーケンサ68および制御ユニット
64内に配置することが望ましい。制御転送を扱う制御
信号の入力および出力経路は、CPUコア50に入れ
て、実際の制御転送回路構成の大部分はCPU制御拡張
部52に配置するほうが効率的である。この方法の利点
は、スタンド・アロンCPUコア50内で必要とされる
機能のために半導体面積がCPUコア50内で拡大され
ないことである。これによりCPUコア50そのものの
コストは、最小限に抑えられる。
【0088】図2および図6に示される第2状態シーケ
ンサ69の動作を以下に詳細に説明する。第2状態シー
ケンサ68は、主にCPU制御拡張部52の状態装置と
して機能する。この能力で、第2状態シーケンサ68は
バス32から命令を受け取る。第2状態シーケンサ68
は、次に(デコーダ109を用いて)、実行すべき現在
の命令(命令レジスタ106からのもの)と、CPU制
御拡張部52の現在の内部状態(状態論理104からの
もの)の両方を解読する。第2状態シーケンサ68は次
に、デコーダ109から信号を出力し、この信号は制御
ROM70に入力される。
【0089】制御ROM70からの先取り信号をアサー
トすることにより、タイミング信号(図示せず)と共
に、バス32からの命令が命令レジスタ106にロード
される。状態論理104は、制御ROM70から次状態
信号を受信する。デコーダ109は、制御ROM70と
共に、これらの次状態信号と命令レジスタ106に記憶
されている現在の命令から、次の状態がどのようになる
かを判定する。制御ユニット64が動作不能になって
も、デコーダ109は、制御ROM70に信号を出力し
続ける。制御ROM70が動作不能である限り、制御R
OM70は、デコーダ109から受け取った入力により
機能することはない。
【0090】状態論理104にはカウンタ107が含ま
れる。カウンタ107は、バス32から書き込むことが
でき、読むこともできる場合がある。カウンタ107
は、第2状態シーケンサ68および制御ユニット64に
より実行される命令内にループを作成することができ
る。一例として、顧客が、特定のレジスタ値を「N」回
シフトするなどの同一の実行ユニット・サイクルを
「N」回実行するという新しい命令を追加したいとす
る。値「N」をカウンタ107にロードして、特定のレ
ジスタがシフトされる各実行ユニット・サイクル毎にカ
ウンタ107を減らすことにより、状態論理104は、
同じ状態がいつ「N」回循環されたかを追跡することが
できる。次に状態論理104は、デコーダ109に信号
を送り、ループが終了したことを知らせる。このよう
に、CPU制御拡張部52により実行される単独の命令
で、通常は複数の命令を必要とする段階を1つの命令内
に実際に組み込むことができる。
【0091】第2状態シーケンサ68はまた、制御RO
M70に対する入力がいつ有効であるのか、制御ROM
70からの出力がいつ有効であるのかに関するタイミン
グ情報(図示せず)を制御ROM70に送る。制御RO
M70の出力が有効であるときは、第2状態シーケンサ
68は制御ROM信号を動作可能にするので、これらの
信号はランダム制御論理72に送信される。次にランダ
ム制御論理72は、タイミング情報と、ステータス信号
を介して実行ユニット56から送り返されたステータス
情報によって制御ROM信号を認可する。次にランダム
制御論理72は、タイミング制御信号を出力するが、こ
れらは実行ユニット56を全面的に制御するために必要
とされる完全な1組の信号である。
【0092】第1状態シーケンサ58と第2状態シーケ
ンサ68の動作が説明されたので、次に制御ユニット5
4,64間の制御の転送を詳細に説明する。制御ユニッ
ト54から制御ユニット64に制御を転送するために
は、拡張可能CPU12は特殊制御転送命令を受け取ら
ねばならない。
【0093】バス32から命令レジスタ86により特殊
制御転送命令が受け取られると、制御ユニット54から
制御ユニット64に対する制御の転送が始まる。デコー
ダ89は、特殊制御転送命令を解読して、特殊制御転送
命令に特有の対応する信号を出力する。依然として動作
可能状態にある制御PLA60は、制御転送信号をアサ
ートし、制御PLA信号をランダム制御論理62に送る
ことにより特殊制御転送命令に応答する。実行されてい
る命令が特殊制御転送命令であるために、ランダム制御
論理62はタイミング制御信号を第1の所定のパターン
の論理状態で駆動し、次に第2の所定のパターンの論理
状態で駆動する。
【0094】ある実施例においては、この第1の所定の
パターンの論理状態は、NOP命令の第1実行ユニット
・サイクル中にタイミング制御信号により駆動されるも
のと同じである。第1の所定のパターンの論理状態でタ
イミング制御信号を駆動することにより、実行ユニット
56内のプログラム・カウンタ・レジスタ200,20
6が繰り上がる。第2の所定のパターンの論理状態でタ
イミング制御信号を駆動しても、実行ユニット56には
何の効果もない。タイミング制御信号が第2の所定のパ
ターンの論理状態で駆動されている第2実行ユニット・
サイクル中に、制御は実際に制御ユニット54から制御
ユニット64に転送される。
【0095】そのために本発明のある実施例において
は、制御ユニット54,64の両方が第2の所定のパタ
ーンの論理状態によりそれぞれのタイミング制御信号を
同時に駆動して、制御は実際に制御ユニット54から制
御ユニット64に転送される。制御が転送されると、制
御ユニット64は次に1つのカスタム命令を実行する。
各カスタム命令の最後の2つの実行ユニット・サイクル
は、特殊制御転送命令の2つの実行ユニット・サイクル
と同じであり、これらはいずれもNOP命令の2つの実
行ユニット・サイクルと同じである。
【0096】制御PLA60により制御転送信号をアサ
ートすることは、制御ユニット54から制御ユニット6
4に対して制御の転送を開始するために用いられる。制
御転送信号をアサートした結果、制御ユニット54は動
作不能になり、制御ユニット64が動作可能になる。制
御転送信号がアサートされると、制御ユニット選択論理
101の出力のすべてがアサートされる。制御ユニット
選択論理101から命令レジスタ106に対する信号を
アサートすることにより、命令レジスタ106は特殊制
御転送命令の第2バイトをバス32からロードする。
【0097】ランダム制御論理62に対する動作不能信
号をアサートすることにより、タイミング制御信号が動
作不能になり、この信号はランダム制御論理62から実
行ユニット56に送られない。制御PLA60に対する
オプションの動作不能信号をアサートすることにより、
制御PLA60は第1状態シーケンサ58によりストロ
ーブされなくなる。ランダム制御論理72に対する動作
可能信号をアサートすることにより、ランダム制御論理
72から実行ユニット56に与えられるタイミング制御
信号が動作可能になる。制御ROM70に対する動作可
能信号をアサートすることにより、制御ROM70は第
2状態シーケンサ68によりストローブされる。
【0098】制御ユニット選択論理101からの出力信
号がアサートされる順序が重要であることに留意するこ
と。まず制御ROM70を動作可能にしなければならな
い。オプションで制御PLA60を動作不能にしてもよ
い。次にランダム制御論理72を動作可能にする。最後
にランダム制御論理62を動作不能にする。
【0099】第2状態シーケンサ68は、バス32から
特殊制御転送命令の第2バイトを受け取る。本発明のあ
る実施例においては、特殊制御転送命令の第2バイトは
カスタム命令の制御ROM70の開始アドレスである。
次にデコーダ89は、カスタム命令の開始アドレスを制
御ROM70に転送する。制御ROM70は、この開始
アドレスを用いて、特定のROM位置にアクセスする。
次に、この特定のROM位置に記憶されている情報が制
御ROM信号としてランダム制御論理72に出力され
る。
【0100】これらの制御ROM信号は、ランダム制御
論理72に対して、ランダム制御論理62により駆動さ
れているのと同じ第2の所定のパターンの論理状態でタ
イミング制御信号を駆動しなければならないことを知ら
せる。そのため特殊制御転送命令の第2実行ユニット・
サイクルの間の短い時間に、ランダム制御論理62とラ
ンダム制御論理72の両方が同じ第2の所定のパターン
の論理状態でそれぞれのタイミング制御信号を駆動す
る。この短い重複期間の目的は、実行ユニット56を制
御するタイミング制御信号が変動(float )しないよう
にする、あるいは未知のまたは意図しない論理状態にな
らないようにするためである。これによりタイミング制
御信号は常に、制御ユニット54,64のいずれか一方
または両方により駆動される。
【0101】ランダム制御論理72が第2の所定のパタ
ーンの論理状態でタイミング制御信号を駆動すると、第
2状態シーケンサ68はランダム制御論理62に対する
動作不能信号をアサートし、それによりランダム制御論
理62からのタイミング制御信号の出力が動作不能にな
る。この時点で、第2状態シーケンサ68と制御ユニッ
ト64とは、完全に実行ユニット56を制御している。
第1状態シーケンサ58と制御ユニット54とは、この
とき実行ユニット56の制御を持たない。しかし、本発
明のある実施例においては、第1状態シーケンサ58と
制御ユニット54とは同じ状態にあり続ける;すなわち
ランダム制御論理62が動作不能になっていない場合
は、第2の所定のパターンの論理状態でタイミング制御
信号を駆動し続ける。
【0102】制御転送信号を制御PLA60によりアサ
ートすることにより、第1状態シーケンサ58を機能さ
せることもできる。制御転送信号のアサートは、MUX
80の出力とMUX82の出力を変更するために用いら
れる。制御転送信号をアサートした結果、MUX80は
制御PLA60からの命令終了信号の出力から、制御R
OM70からの命令終了信号の出力へと切り替わる。同
様に、制御転送信号をアサートした結果として、MUX
82は制御PLA60からの先取り信号の出力から、制
御ROM70からの先取り信号の出力へと切り替わる。
【0103】制御転送信号のアサートの結果として、状
態論理84は制御PLA60からではなく制御ROM7
0から命令終了信号を受信する。制御ROM70からの
命令終了信号を用いることにより、状態論理84は、カ
スタム命令がいつ終るかを判定することができ、それに
よって制御ユニット54から制御ユニット64に制御が
いつ戻るかを判定することができる。
【0104】第2状態シーケンサ68と制御ユニット6
4とは、次の命令であるカスタム命令をバス32から受
け取る。本発明のある実施例においては、カスタム命令
は、実際には、カスタム命令の開始アドレスである制御
ROM70内の位置を指し示す特殊制御転送命令の第2
バイトである。
【0105】第2状態シーケンサ68と制御ユニット6
4は、このカスタム命令の実行中はずっと実行ユニット
56を制御している。カスタム命令の終了時に、ランダ
ム制御論理72は同じ第2の所定のパターンの論理状態
でタイミング制御信号をもう一度駆動しなければならな
い。第2状態シーケンサ68は次に、動作不能信号をネ
ゲートすることにより、ランダム制御論理62からのタ
イミング制御信号の出力を再度動作可能にする。そのた
めもう一度、短い時間の間、ランダム制御論理62とラ
ンダム制御論理72の両方が同じ第2の所定のパターン
の論理状態によりそれぞれのタイミング制御信号を駆動
する。
【0106】カスタム命令の終了時に、制御ROM70
は、命令終了信号をアサートする。制御ROM70によ
る命令終了信号のアサートは、制御ユニット64から制
御ユニット54に対する制御の返送を開始するために用
いられる。命令終了信号をアサートした結果として、制
御ユニット64が動作不能になり、制御ユニット54が
動作可能になる。
【0107】命令終了信号がアサートされると、制御ユ
ニット選択論理101の出力のすべてがネゲートされ
る。ランダム制御論理62に対する動作不能信号をネゲ
ートすることにより、ランダム制御論理62から実行ユ
ニット56に与えられるタイミング制御信号を動作可能
にする。制御PLA60に対するオプションの動作不能
信号をネゲートすることにより、制御PLA60は第1
状態シーケンサ58によりストローブされる。ランダム
制御論理72に対する動作可能信号をネゲートすること
により、タイミング制御信号が動作不能になり、そのた
めこの信号はランダム制御論理72から実行ユニット5
6に与えられない。制御ROM70に対する動作可能信
号をネゲートすることにより、制御ROM70は第2状
態シーケンサ68によってストローブされない。
【0108】制御ユニット選択論理101からの出力信
号がネゲートされる順序が重要であることに留意された
い。まず制御PLA60が動作不能になった場合は、再
度動作可能にしなければならない。次に、ランダム制御
論理62を再度動作可能にする。次にランダム制御論理
72を動作不能にする。最後に制御ROM70を動作不
能にする。
【0109】特殊制御転送命令を用いて実行ユニット5
6の制御を移す第2の実行例(図示せず)を以下に説明
する。この第2の実行例では、制御転送信号は必要な
い。代わりにデコーダ109が、特殊制御転送命令がい
つ受け取られたのか、また実行ユニット56の制御が制
御ユニット54から制御ユニット64にいつ転送される
のかを判定する。デコーダ109は、次に制御ユニット
選択論理101に対して、制御転送信号の代わりの信号
を与え、この信号が制御転送を開始することを知らせ
る。デコーダ109からのこの信号は、制御ユニット選
択論理101に対して、制御転送信号に関して説明され
た効果と同じ効果を有する。
【0110】本発明の他の実施例では、2つ以上の制御
ユニット間で実行ユニット56の制御を転送するために
他の方法を用いるものもあることに留意されたい。特殊
制御転送命令を用いる方法は、制御を転送するための一
方法に過ぎない。また、ただ1つのカスタム命令の実行
が終ると実行ユニット56の制御を制御ユニット54に
自動的に返す代わりに、任意の数のカスタム命令を実行
してから制御を制御ユニット54に返すことができるよ
うにする方法を用いることもできる。
【0111】本発明の図示された実施例においては、C
PUコア50がCPU制御拡張部52なしで用いられて
いる場合は、特殊制御転送命令は用いてはならない。す
なわち、制御ユニット64が組み込まれていない場合
は、制御ユニット54は実行ユニット56の制御を保持
しなければならない。このため、CPUコア50がCP
U制御拡張部52なしに用いられると、特殊制御転送命
令は不当なオプコードとして扱われる。ランダム論理6
2内の不当なオプコード回路構成(図示せず)が不当な
オプコードを検出すると、データ処理システム10はリ
セットされる点に留意されたい。
【0112】しかし、CPUコア50をCPU制御拡張
部52と共に用いるためには、制御ユニット54にわず
かな改良が必要になる。すなわち、制御ユニット54を
改良して、特殊制御転送命令が不当なオプコードとして
扱われずに、実際に特殊制御転送命令として実行される
ようにすることである。本発明のある実施例において
は、この改良は単に、制御PLA信号の1つが、不当な
オプコードが受信されたことを検出するランダム制御論
理62の部分に入力されないようにする段階によって構
成される。ある実行例においては、この改良は1つの導
体に開路を作成するだけの簡単なものでよい。その結
果、CPU50がCPU制御拡張部52と共に用いられ
たときに、特殊制御転送命令は不当なオプコードとして
扱われない。本発明の他の実施例では、制御ユニット5
4と制御ユニット64との間で実行ユニット56の制御
を転送するための異なる方法を用いることもある。実際
に、制御を円滑に転送するほとんどすべての方法を用い
ることができる。たとえば、命令そのものの中にあるビ
ット・フィールドを用いて、特定の命令の実行中に実行
ユニットを制御するのが制御ユニット54であるか64
であるかを指示することもできる。
【0113】あるいは、プログラミング可能な制御レジ
スタに、どの制御ユニットが現在実行ユニット56を制
御しているのかを判定するビット・フィールドを入れる
こともできる。あるいは、拡張可能CPU12の外部か
ら受信された信号を用いて、後続の命令の実行中に実行
ユニットを制御するのが制御ユニット54であるか64
であるかを指示することもできる。この外部信号は、デ
ータ処理システム10の別の部分で発生させても、集積
回路ピンを介してデータ処理システム10の外部から受
信してもよい。
【0114】図3を参照すると、多少の差異はあるが、
図3に示された拡張可能CPU12’は、図2に示され
上記に解説された拡張可能CPU12と同じである。拡
張可能CPU12’には、回路構成のいくつかの新しい
ブロック、すなわち実行ユニット拡張部153と、ラン
ダム制御論理拡張部175と、制御ROM拡張部171
とが含まれる。
【0115】さらに、実行ユニット156の1つ以上の
内部バス(すなわちEU内部バス)が、実行ユニット1
56の少なくとも1つの物理的端部に配線されている。
このため実行ユニット拡張部153は、1つ以上のEU
内部バスに追加され、直接結合されて、合成された実行
ユニット153,156の機能性を高めている。実行ユ
ニット拡張部153には、所望の回路構成、たとえば1
つ以上のレジスタ,1つ以上の演算論理ユニット(AL
U)および任意の種類の特殊機能回路構成が含まれるこ
ともある。
【0116】ランダム制御論理拡張部175は、実行ユ
ニット拡張部153に含まれる回路構成を制御するため
にランダム制御論理172に付加される拡張部または追
加拡張部を表す。ランダム制御論理172は、実行ユニ
ット156を全面的に制御するタイミング制御信号を発
生する機能がある。しかし、ランダム制御論理172に
は、実行ユニット拡張部153を全面的に制御するタイ
ミング制御信号を発生する機能はない。そのため、実行
ユニット拡張部153を全面的に制御するためのタイミ
ング制御信号を発生するために、ランダム制御論理拡張
部175が必要になる。
【0117】同様に、制御ROM拡張部171は、実行
ユニット拡張部153に含まれる回路構成を制御するた
めに、制御ROM170に付加される拡張部または追加
部を表す。制御ROM170は、実行ユニット156を
全面的に制御するために必要とされる制御ROM信号を
発生する機能がある。しかし、制御ROM170には、
実行ユニット拡張部153を全面的に制御するために必
要とされる制御ROM信号を発生する機能はない。その
ため、実行ユニット拡張部153を全面的に制御するた
めに必要とされる制御ROM拡張信号を発生するため
に、制御ROM拡張部171が必要になる。
【0118】図5に示される第1状態シーケンサ158
は、図4に示される第1状態シーケンサ58と同じ方法
で実現できる点に留意されたい。また、図7に示される
第2状態シーケンサ168は、図6に示される第2状態
シーケンサ68と同じ方法で実現できる点にも留意され
たい。
【0119】図8では、条件コード・レジスタ228
が、実行ユニット56内にあるという事実を除けば、実
行ユニット56は従来技術の実行ユニットが機能するの
と同じように内部で機能する。しかし、実行ユニット5
6のレイアウトは、制御ユニット54,64の両方が、
実行ユニット56を制御するタイミング制御信号を設け
ることができ、さらに制御ユニット54,64の両方が
ステータス信号を受信できるようにするものでなければ
ならない。タイミング制御信号が実行ユニット56を制
御する方法の詳細については説明しない。しかし、タイ
ミング制御信号は、従来技術と同じ方法で実行ユニット
56を制御するために用いられる。
【0120】
【概要と代替の実施例】まとめると、本発明により、新
しいCPUまたは従来技術のCPUを拡張可能なものと
して、拡張可能CPU12または12’に回路構成を容
易に追加して、現在においても将来においても、さまざ
まな顧客の必要性を満足させることができる。その結
果、個々の顧客の融通性を図るためのコストが大幅に削
減された。CPUに関して「拡張可能」という言葉は、
既存のCPU回路構成に大きな変更を加えることなく、
特定の指定された回路構成を単に追加するだけでCPU
に新たな命令を追加することができることを意味するた
めに用いられる。第2制御ユニット64と第2状態シー
ケンサ68とを追加するだけで、新しい命令を追加する
ことができる。第2制御ユニット64の大部分は、元の
制御ユニット54の複製でよいこと、また第2状態シー
ケンサ68は元の状態シーケンサ58の複製でもよい場
合があることに注目されたい。本発明の実施例には、1
つ以上のデコーダ89,99,109,119を必要と
しないものもある。
【0121】実行ユニット156の既存のリソースを利
用する新しい命令を追加するだけでなく、新しいリソー
スを実行ユニット156の拡張部として追加することも
できる。実行ユニット156の内部バスは、実行ユニッ
ト156の物理的端部に配線される。このため実行ユニ
ット拡張部153は、実行ユニット156の1つ以上の
内部バスに追加し、直接的に結合することができる。実
行ユニット拡張部153は、レジスタ,他の演算論理ユ
ニット(ALU),特殊機能回路構成または任意の所望
の回路構成を追加することにより実行ユニット156の
機能性を増大する。
【0122】本発明は、特定の実施例に関して図示およ
び説明されているが、当業者は更なる改良および改善を
思い付くだろう。たとえば、本発明の代替の実施例にお
いては、CPUコア50とCPU制御拡張部52に関し
て代替のアーキテクチャを用いることができる。図2お
よび図3に示されたアーキテクチャは、使用することの
できる2つの可能なアーキテクチャに過ぎない。また、
本発明は2つの制御ユニット54,64だけに限定され
ない。第1状態シーケンサ58と第2状態シーケンサ6
8の制御転送回路構成にわずかな改良を加えることで、
本発明の他の実施例では3つ以上の制御ユニットを用い
ることができる。
【0123】本発明の代替の実施例においては、制御ユ
ニット54も制御ユニット64もタイミング制御信号を
駆動していない「非駆動」期間があることに留意された
い。タイミング制御信号が、「非駆動」時間の間(たと
えば実行ユニット内部バスが予備充電されている間)
に、実行ユニット56の内部状態を恒久的に変化させる
ことができない場合は、「非駆動」時間によって拡張可
能CPU12の動作が中断されることはない。
【0124】そのため、本発明は図示された特定の形態
に制限されないこと、また添付の請求項は本発明の精神
と範囲から逸脱しないすべての修正を含むものであるこ
とを理解されたい。
【図面の簡単な説明】
【図1】本発明のある実施例によるデータ処理システム
10をブロック図に示したものである。
【図2】本発明のある実施例による図1の拡張可能な中
央処理装置12をブロック図に示したものである。
【図3】本発明のある実施例による図1の代替の拡張可
能な中央処理装置12’をブロック図に示したものであ
る。
【図4】本発明のある実施例による図2の第1状態シー
ケンサ58をブロック図に示したものである。
【図5】本発明のある実施例による図3の第1状態シー
ケンサ158をブロック図に示したものである。
【図6】本発明のある実施例による図2の第2状態シー
ケンサ68をブロック図に示したものである。
【図7】本発明のある実施例による図3の第2状態シー
ケンサ168をブロック図に示したものである。
【図8】本発明のある実施例による図2の実行ユニット
56の一部と、図3の実行ユニット156の同じ部分を
ブロック図に示したものである。
【符号の説明】
10 データ処理システム 12 拡張可能中央処理装置(CPU) 14 システム統合部 16 シリアル部 18 ランダム・アクセス・メモリ(RAM) 20 読み込み専用メモリ(ROM)(オプション) 22 その他のメモリ(オプション) 24 ポート論理 26 外部バス・インターフェース(オプション) 28 タイマ部 30 直接メモリ・アクセス(DMA)(オプション) 32 バス
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成6年6月15日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0018
【補正方法】変更
【補正内容】
【0018】図面の説明 「アサートする(assert)」と「ネゲートする
(negate)」という言葉は、信号,ステータス・
ビットまたは同様の装置を、それぞれ、論理的に真の状
態にすることおよび論理的に偽の状態にすることを指す
ときに用いられる。論理的に真の状態が論理レベル1で
あるとすると、論理的に偽の状態は論理レベル0であ
る。論理的に真の状態が論理レベル0であるとすると、
論理的に偽の状態は論理レベル1である。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 実行ユニット(56,156)であっ
    て:前記実行ユニット(56,156)のすべてを制御
    することのできる第1組の制御信号を受信する第1組の
    制御入力;前記実行ユニット(56,156)のすべて
    を制御することのできる第2組の制御信号を受信するこ
    とのできる第2組の制御入力;および前記中央処理装置
    (12,12’)内のすべてのステータス・レジスタ
    (228);によって構成される実行ユニット(56,
    156);および前記実行ユニット(56,156)に
    結合され、第1組の制御信号を設ける第1制御ユニット
    (54,154);によって構成されることを特徴とす
    る中央処理装置(12,12’)。
  2. 【請求項2】 第1制御ユニット(54,154);前
    記第1制御ユニット(54,154)に結合された実行
    ユニット(56,156);および複数の制御信号導体
    であって、前記の複数の制御信号導体のそれぞれが、第
    1導体端を有し、導体中間部を有し、第2導体端を有し
    て、前記の複数の制御導体のそれぞれの第1導体端が前
    記実行ユニット(56,156)に対して外部にあり、
    前記第1制御ユニット(54,154)に結合されてお
    り、導体中間部が前記実行ユニット(56,156)内
    に位置しており、前記の複数の制御信号導体のそれぞれ
    の第2導体端が前記実行ユニット(56,156)の外
    部に配線されている複数の制御信号導体;によって構成
    されることを特徴とする中央処理装置(12,1
    2’)。
  3. 【請求項3】 実行ユニット(56,156);特殊制
    御転送命令を含む命令を転送するバス(32);前記実
    行ユニット(56,156)と前記バス(32)とに結
    合された第1制御回路構成(54,58,154,15
    8)であって、前記第1制御回路構成(54,58,1
    54,158)は、前記バス(32)によって特殊制御
    転送命令が転送される前に前記実行ユニット(56,1
    56)を制御する第1制御回路構成(54,58,15
    4,158);および前記実行ユニット(56,15
    6)と前記バス(32)とに結合された第2制御回路構
    成(64,68,164,168)であって、前記第2
    制御回路構成(64,68,164,168)は、特殊
    制御転送命令の実行が完了した後で、前記実行ユニット
    (56,156)を制御する第2制御回路構成(64,
    68,164,168);によって構成されることを特
    徴とする中央処理装置(12,12’)。
  4. 【請求項4】 第1組の実行ユニット制御信号を発生す
    る第1制御ユニット(54,154);第2組の実行ユ
    ニット制御信号を発生する第2制御ユニット(64,1
    64);前記第1制御ユニット(54,154)と前記
    第2制御ユニット(64,164)とに結合された実行
    ユニット(56,156)であって、前記実行ユニット
    (56,156)は、特殊制御転送命令以外の命令が実
    行されているときは、第1および第2組の実行ユニット
    制御信号のうちのただ1つの信号によって制御される実
    行ユニット(56,156);および前記第1制御ユニ
    ット(54,154)と前記第2制御ユニット(64,
    164)とに結合された状態シーケンサ回路構成(5
    8,68,158,168)であって、前記状態シーケ
    ンサ回路構成(58,68,158,168)は、特殊
    制御転送命令を受信した結果として、第1組の実行ユニ
    ット制御信号から第2組の実行ユニット制御信号へと前
    記実行ユニット(56,156)の制御の転送を開始す
    る状態シーケンサ回路構成(58,68,158,16
    8);によって構成されることを特徴とする中央処理装
    置(12,12’)。
JP31918593A 1992-11-27 1993-11-26 拡張可能な中央処理装置 Expired - Lifetime JP3681182B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US982327 1992-11-27
US07/982,327 US5848289A (en) 1992-11-27 1992-11-27 Extensible central processing unit

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2004261309A Division JP3816932B2 (ja) 1992-11-27 2004-09-08 拡張可能な中央処理装置

Publications (2)

Publication Number Publication Date
JPH0736691A true JPH0736691A (ja) 1995-02-07
JP3681182B2 JP3681182B2 (ja) 2005-08-10

Family

ID=25529045

Family Applications (2)

Application Number Title Priority Date Filing Date
JP31918593A Expired - Lifetime JP3681182B2 (ja) 1992-11-27 1993-11-26 拡張可能な中央処理装置
JP2004261309A Expired - Lifetime JP3816932B2 (ja) 1992-11-27 2004-09-08 拡張可能な中央処理装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2004261309A Expired - Lifetime JP3816932B2 (ja) 1992-11-27 2004-09-08 拡張可能な中央処理装置

Country Status (5)

Country Link
US (1) US5848289A (ja)
EP (2) EP1376336A3 (ja)
JP (2) JP3681182B2 (ja)
KR (1) KR100275059B1 (ja)
DE (1) DE69333853T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763449B1 (en) 2000-04-12 2004-07-13 Fujitsu Limited Operation-processing apparatus

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044453A (en) * 1997-09-18 2000-03-28 Lg Semicon Co., Ltd. User programmable circuit and method for data processing apparatus using a self-timed asynchronous control structure
US6546479B1 (en) * 1998-02-10 2003-04-08 Koninklijke Philips Electronics N.V. Reduced instruction fetch latency in a system including a pipelined processor
US6099585A (en) * 1998-05-08 2000-08-08 Advanced Micro Devices, Inc. System and method for streamlined execution of instructions
US6317820B1 (en) * 1998-06-05 2001-11-13 Texas Instruments Incorporated Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism
US6510444B2 (en) 1999-06-16 2003-01-21 Motorola, Inc. Data processor architecture and instruction format for increased efficiency
WO2001069411A2 (en) 2000-03-10 2001-09-20 Arc International Plc Memory interface and method of interfacing between functional entities
WO2001073571A1 (en) * 2000-03-27 2001-10-04 Infineon Technologies Ag Method and apparatus for adding user-defined execution units to a processor using configurable long instruction word (cliw)
JP3930729B2 (ja) * 2001-11-30 2007-06-13 富士通株式会社 半導体装置並びにこれを用いたフラットパネル表示装置及びそのデータドライバ
JP4002151B2 (ja) * 2002-07-31 2007-10-31 富士通株式会社 情報処理装置
EP1408405A1 (en) * 2002-10-11 2004-04-14 STMicroelectronics S.r.l. "A reconfigurable control structure for CPUs and method of operating same"
US8145882B1 (en) * 2006-05-25 2012-03-27 Mips Technologies, Inc. Apparatus and method for processing template based user defined instructions
US8688933B2 (en) 2006-08-31 2014-04-01 Hewlett-Packard Development Company, L.P. Firmware component modification
CN101539849B (zh) * 2009-04-21 2013-10-16 北京红旗胜利科技发展有限责任公司 一种处理器以及一种寄存器选通方法
US20120226890A1 (en) * 2011-02-24 2012-09-06 The University Of Tokyo Accelerator and data processing method
US9274797B2 (en) 2012-12-19 2016-03-01 International Business Machines Corporation Computer processor with instruction for execution based on available instruction sets

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4236204A (en) * 1978-03-13 1980-11-25 Motorola, Inc. Instruction set modifier register
US4293907A (en) * 1978-12-29 1981-10-06 Bell Telephone Laboratories, Incorporated Data processing apparatus having op-code extension register
US4374418A (en) * 1979-06-27 1983-02-15 Burroughs Corporation Linear microsequencer unit cooperating with microprocessor system having dual modes
DE68927783T2 (de) * 1988-05-03 1997-09-25 Wang Laboratories Mikroprozessor mit äusserem steuerungsspeicher
EP0461257B1 (en) * 1989-01-17 1997-04-23 Fujitsu Limited Microprocessor sequencer for controlling the decoding of varable length instructions
US5150468A (en) * 1989-06-30 1992-09-22 Bull Hn Information Systems Inc. State controlled instruction logic management apparatus included in a pipelined processing unit
US5430862A (en) * 1990-06-29 1995-07-04 Bull Hn Information Systems Inc. Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution
JPH0476626A (ja) * 1990-07-13 1992-03-11 Toshiba Corp マイクロコンピュータ
EP0871108B1 (en) * 1991-03-11 2000-09-13 MIPS Technologies, Inc. Backward-compatible computer architecture with extended word size and address space
JP2677719B2 (ja) * 1991-05-08 1997-11-17 富士通株式会社 情報処理装置
GB2266606B (en) * 1992-04-27 1996-02-14 Intel Corp A microprocessor with an external command mode

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763449B1 (en) 2000-04-12 2004-07-13 Fujitsu Limited Operation-processing apparatus

Also Published As

Publication number Publication date
JP2005050365A (ja) 2005-02-24
EP0599012B1 (en) 2005-08-10
JP3816932B2 (ja) 2006-08-30
US5848289A (en) 1998-12-08
EP0599012A3 (en) 1995-01-04
EP1376336A2 (en) 2004-01-02
KR100275059B1 (ko) 2000-12-15
EP0599012A2 (en) 1994-06-01
DE69333853T2 (de) 2006-04-13
KR940012160A (ko) 1994-06-22
EP1376336A3 (en) 2004-01-14
JP3681182B2 (ja) 2005-08-10
DE69333853D1 (de) 2005-09-15

Similar Documents

Publication Publication Date Title
JP3816932B2 (ja) 拡張可能な中央処理装置
EP0315275B1 (en) Flexible asic microcomputer
US5809327A (en) Eight-bit microcontroller having a risc architecture
EP0476722B1 (en) Data processing system
US6401197B1 (en) Microprocessor and multiprocessor system
EP0954791B1 (en) Eight-bit microcontroller having a risc architecture
US5838934A (en) Host port interface
JPS638490B2 (ja)
US6438720B1 (en) Host port interface
JP3616402B2 (ja) 拡張可能なレジスタを提供するデータ処理システムおよびその方法
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
EP0226991B1 (en) Data-processing device
JP3705811B2 (ja) 再構成可能なプログラム状態語を有するマイクロコントローラ
US5546353A (en) Partitioned decode circuit for low power operation
JP3851008B2 (ja) プロセッサおよびそれを有する半導体集積回路、処理装置ならびに命令処理方法
JPH04305735A (ja) マイクロプログラム制御回路
EP0136699B1 (en) Programmable controller
US20020004877A1 (en) Method and system for updating user memory in emulator systems
JPS6362778B2 (ja)
EP0335502A2 (en) Microcontroller and associated method
JPH08263290A (ja) データ処理装置
Salcic et al. SIMP—A Simple Custom-Configurable Microprocessor
Salcic et al. Simp-Asimplecustomizable Microprocessor
Srivastava et al. Evolution of architectural concepts and design methods of microprocessors

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040309

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040609

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040614

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20040906

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040908

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20041217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050315

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050322

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050517

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080527

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090527

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090527

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100527

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110527

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110527

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120527

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130527

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term