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

拡張可能な中央処理装置 Download PDF

Info

Publication number
JP2005050365A
JP2005050365A JP2004261309A JP2004261309A JP2005050365A JP 2005050365 A JP2005050365 A JP 2005050365A JP 2004261309 A JP2004261309 A JP 2004261309A JP 2004261309 A JP2004261309 A JP 2004261309A JP 2005050365 A JP2005050365 A JP 2005050365A
Authority
JP
Japan
Prior art keywords
control
unit
execution unit
cpu
signal
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
JP2004261309A
Other languages
English (en)
Other versions
JP3816932B2 (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.)
NXP USA Inc
Original Assignee
Freescale Semiconductor 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 Freescale Semiconductor Inc filed Critical Freescale Semiconductor Inc
Publication of JP2005050365A publication Critical patent/JP2005050365A/ja
Application granted granted Critical
Publication of JP3816932B2 publication Critical patent/JP3816932B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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

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

Description

本発明は、一般に中央処理装置に関し、さらに詳しくは、拡張可能な中央処理装置に関する。
中央処理装置(CPU:central processing unitは、一般に、マイクロコンピュータ集積回路(MCU:microcomputer integrated circuit)の主要な「頭脳」である。CPUの他にも、MCUにはメモリ,タイマおよびバス・インターフェースなどの1つ以上のオンボード周辺機器または部分が含まれているのが普通である。しかし、通常はCPUがMCUを制御するために用いられるソフトウェア命令を受信して解釈する責を負っている。
ある特定のCPUを、様々なMCUに用いることができる。同じCPUが様々なMCUに用いられる場合、これらのMCUは一般に「ファミリ」(テキサス州オースティンのモトローラ社から販売されるMC68HC05ファミリのマイクロコンピュータなど)を形成すると考えられる。種々のMCUに同一のCPUを用いることには、製造者の視点からも、顧客の視点からも多くの利点がある。このような利点の1つは、同一のCPUを用いるファミリ内のMCU間にはソフトウェアの互換性があることである。
しかし、1つのファミリのMCUが広範な用途に標準的に用いられるために問題が起きる。MCUの顧客には、たとえばデジタル信号処理命令またはファジー論理命令などのカスタム(特注)命令(用途別の命令とも呼ばれる)を希望する、あるいは必要とする場合がある。しかし、このようなカスタム命令を必要とせず、このカスタム命令がCPUの一部として含まれるためにかかる余分な経費を払いたくない顧客もいる。そのため、用途別の命令と経費との間の条件の取捨選択がどのように行われようとも、CPU設計者によりなされた条件の取捨選択に満足しないMCUの顧客は多い。
第2の問題点は、1つのファミリのMCUが一般には数年間市場にあるという事実により起こる。しかし、MCU顧客の要望はもっと速いペースで変化する。たとえば、わずか5年前には、ファジー論理命令を必要とするMCUの顧客は、いたとしても、ほとんどいなかった。現在では、かなりの数のMCUの顧客にとって、ファジー論理命令が要件であることは珍しくない。その結果、MCUの寿命の間にきわめて一般的に必要とされる用途別の命令を組み込むCPUを設計することは、現在では非常に難しい。実際のところ、かなりの数のMCU顧客によって将来必要とされる用途別命令にはまだ未知のものもある。
第3の問題点は、既存の低価格のCPUでは満足に実行することのできない少数の重要なソフトウェア・ルーチンを持つMCU顧客がいるために起こる。そのため、これらのMCU顧客は、少数の重要なソフトウェア・ルーチンの必要性を満たすために、より強力でより高価なCPUをもつMCUを用いることを強いられている。しかし、より強力でより高価なCPUは、顧客の電力消費および/または価格の制約を満たさないことがある。
上記の問題点は、たとえばMC68HC05ファミリのマイクロコンピュータなどのローエンドMCUなどのきわめて価格に敏感なMCUの用途において重要である。現在のMC68HC05ファミリのマイクロコンピュータにおいては、新たな命令を追加するための簡単で費用効果の良い方法はない。そのため、MCU顧客の必要性と要件とが変化するのに応じて、CPUを注文設計するための簡単で費用効果の良い方法はない。
前述の必要性は、本発明により満足され、その他の利点も本発明により得られる。本発明は、ある形態では、拡張可能な中央処理装置である。
ある実施例においては、本発明は実行ユニットを有する中央処理装置である。この実行ユニットには、第1組の制御信号を受信する第1組の制御入力が含まれる。第1組の制御信号は、実行ユニットのすべてを制御することができる。実行ユニットにはまた、第2組の制御信号を受信することのできる第2組の制御入力も含まれる。第2組の制御信号は、実行ユニットのすべてを制御することができる。実行ユニットにはまた、中央処理装置内のすべてのステータス・レジスタも含まれる。中央処理装置は、実行ユニットに結合された第1制御ユニットも有する。第1制御ユニットは、第1組の制御信号を設ける。
本発明は、以下の詳細な説明と添付の図面とによって、当業者に理解されるだろう。
新たな命令を中央処理装置(CPU)に追加するための簡単で費用効果の良い方法が必要とされた。新しい、あるいは従来の技術によるCPUのアーキテクチャを改良することにより、新しいCPUまたは従来技術のCPUを拡張可能にして、比較的簡単で費用効果の良い方法で新しい命令を追加することができる。CPUに関して「拡張可能(extensible)」という言葉は、一定の指定された回路構成を追加することにより、既存のCPUの回路構成を大幅に変更することなく新しい命令をCPUに追加することができることを意味するために用いられる。
本発明を用いると、より低価格の顧客の要望を満たす基本的な1組の命令セットを備えた拡張可能なCPUを設計することができる。拡張可能CPUに新しい命令を追加することが簡単に低価格で行えるので、用途別の命令を希望する、あるいは必要とする顧客は1つ以上の用途別命令を追加して、なおかつ妥当な価格を維持することができる。さらに、将来新しいアルゴリズムが開発されたり、普及した場合に、新たな命令を拡張可能CPUに追加して、簡単で費用効果の良い方法で新しいアルゴリズムを組み込むことができる。
本発明を用いると、従来技術のCPUシステム・レベルのアーキテクチャ、たとえば図示された実施例のMC68HC05CPUアーキテクチャを改良して、拡張可能なものにして、新しい命令を追加するために大きな回路変更を必要としないようにすることができる。あるいは、新たな命令を実行するために所定の回路構成の追加が必要となることもある。MC68HC08と名付けられた、結果として得られた拡張可能なCPUは、既存のMC68HC05ファミリのMCUとのオブジェクト・コードの互換性がある。
従来技術のCPUは、以下の改良を行うことにより拡張可能にすることができる:すなわち(1)2台以上の制御ユニットが、実行ユニット内へと制御信号を駆動できるようにする;(2)プログラマ・モデル内のレジスタのすべてを実行ユニットに入れる(条件コード・レジスタを含む);(3)状態シーケンサ(state sequencer)回路構成を改良する;および(4)いくつかの制御信号を追加する。CPUが拡張可能になると、拡張可能CPU回路構成に大きな変更を加えずに別の命令を追加することができる。
第2制御ユニット64と第2状態シーケンサ68とを追加するだけで、新しい命令を追加することができる。第2制御ユニット64の大部分は元の制御ユニット54の複製であり、第2状態シーケンサ68のある部分は元の状態シーケンサ58の複製とすることができる点に注目されたい。また、元の制御ユニット54も第2制御ユニット64も、実行ユニット56内のすべてのリソースに完全にアクセスできる点にも注目されたい。
実行ユニット156の既存のリソースを利用する新しい命令を追加するだけでなく、新しいリソースを実行ユニットそのものに追加することもできる。実行ユニットの内部バスは、実行ユニットの物理端に配線されている。このため実行ユニット拡張部153を追加して、1つ以上の実行ユニットの内部バスに直接結合して、レジスタ,別の演算論理ユニット(ALU:arithmetic logic unit),特殊機能回路構成または他の任意の回路構成を追加することにより実行ユニットの機能性を拡大することができる。
その結果、本発明により従来技術のCPUを拡張可能にして、拡張可能なCPUに回路構成を容易に追加して、現在および将来にわたり様々な顧客の必要性を満たすことができる。その結果、個々の顧客の融通性を図るための経費が大幅に削減された。
[図面の説明]
「アサートする(assert)」と「ネゲートする(negate)」という言葉は、信号,ステータス・ビットまたは同様の装置を、それぞれ、論理的に真の状態にすることおよび論理的に偽の状態にすることを指すときに用いられる。論理的に真の状態が論理レベル1であるとすると、論理的に偽の状態は論理レベル0である。論理的に真の状態が論理レベル0であるとすると、論理的に偽の状態は論理レベル1である。
「バス」という言葉は、データ,アドレス,制御またはステータスなど1つ以上の種々の情報を送信するために用いられる複数の信号を指すために用いられる。
図1は、データ処理システム10のある実施例を示す。データ処理システム回路構成10は、拡張可能な中央処理装置(CPU)回路構成12,回路構成のシステム統合部14,回路構成のシリアル部16,ランダム・アクセス・メモリ(RAM)回路構成18,読み込み専用メモリ(ROM)回路構成20,その他のメモリ回路構成22(たとえば電気的消去書き込み可能な読み込み専用メモリEEPROM),ポート論理回路構成24,外部バス・インターフェース回路構成26,回路構成のタイマ部28および直接メモリ・アクセス(DMA)回路構成30を有し、これらはそれぞれバス回路構成32に双方向的に結合されている。拡張可能なCPU12とシステム統合部14とは、バス回路構成34により互いに双方向的に結合されている。拡張可能なCPU12は、バス回路構成36によりDMA30に結合されている。
システム統合部14は、集積回路ピン38を介してデータ処理システム10の外部と信号の受信および送信ができる。シリアル部16は、集積回路ピン40を介して、データ処理システム10の外部と信号の受信および送信ができる。メモリの種類により、他のメモリ22は集積回路ピン42を介して、データ処理システム10の外部と信号の受信および送信を任意にすることができる。ポート論理24は、集積回路ピン44を介してデータ処理システム10の外部と信号の受信および送信ができる。外部バス・インターフェース26は、集積回路ピン46を介してデータ処理システム10の外部と信号の受信および送信ができる。また、タイマ部28は、集積回路ピン48を介して、データ処理システム10の外部と信号の受信および送信ができる。
図2は、本発明のある実施例による図1の拡張可能な中央処理装置(CPU)12をブロック図に示したものである。拡張可能CPU12は、2つの主要な部分、すなわちCPUコア回路構成50とCPU制御拡張部回路構成52とに分割される。
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を含む。
CPU制御拡張部52は、制御ユニット回路構成64と第2状態シーケンサ回路構成68とを有する。制御ユニット64は、制御ROM信号(Control ROM Signals)をランダム制御論理回路構成72に転送する制御読み込み専用メモリ(制御ROM)回路構成70を有する。ランダム制御論理72は、タイミング制御信号を実行ユニット56に送信する。ランダム制御論理72は、実行ユニット56からステータス信号を受信する。ランダム制御論理72は、動作不能回路構成73を含む。
制御ROM70は、第2状態シーケンサ68との間で信号を転送および受信する。制御ROM70は、第1状態シーケンサ58にも信号を転送する。第2状態シーケンサ68は、1個以上の信号をランダム制御論理62に転送する。また第2状態シーケンサ68は、ランダム制御論理72にも信号を転送する。第2状態シーケンサ68は制御PLA60から信号を受信する。
実行ユニット56は、バス32に対して双方向的に結合される。第1状態シーケンサ58と第2状態シーケンサ68とは、バス32から命令を受信するように結合されている。
図3は、本発明のある実施例による図1の拡張可能な中央処理装置(CPU)12’をブロック図に示したものである。拡張可能CPU12’は、3つの主要部分、すなわちCPUコア回路構成150と、CPU制御拡張部回路構成152と、実行ユニット拡張部回路構成153とに分かれている。
CPUコア150は、制御ユニット回路構成154,実行ユニット(EU)回路構成156および第1状態シーケンサ回路構成158を有する。制御ユニット154は、制御PLA信号をランダム制御論理回路構成162に転送する制御プログラミング可能論理アレイ(制御PLA)回路構成160を有する。ランダム制御論理162は、タイミング制御信号を実行ユニット156に転送する。ランダム制御論理162は、実行ユニット156からステータス信号を受信する。制御PLA160は、第1状態シーケンサ158との間で信号の送受信を行う。ランダム制御論理162には、動作不能回路構成163が含まれる。
CPU制御拡張部152は、制御ユニット回路構成164と第2状態シーケンサ回路構成168とを有する。制御ユニット164は、ランダム制御論理回路構成172に制御ROM信号を転送する制御読み込み専用メモリ(制御ROM)回路構成170を有する。さらに、制御ユニット164は、制御ROM拡張信号(Control ROM Extension Signals)をランダム制御論理拡張部回路構成175に送信する制御読み込み専用メモリ(制御ROM)回路構成171を有する。ランダム制御論理172は、実行ユニット156にタイミング制御信号を転送する。さらにランダム制御論理拡張部175は、タイミング制御信号を実行ユニット拡張部153に転送する。ランダム制御論理172は、実行ユニット156からステータス信号を受信する。さらにランダム制御論理拡張部175は、実行ユニット拡張部153からステータス信号を受信する。ランダム制御論理172には、動作不能回路構成173が含まれる。
制御ROM170は、第2状態シーケンサ168との間で信号を送受信する。制御ROM170は、第1状態シーケンサ158にも信号を転送する。第2状態シーケンサ168は、1つ以上の信号をランダム制御論理162に転送して、第2状態シーケンサ168は、ランダム制御論理172にも信号を転送する。第2状態シーケンサ168は、制御PLA160から信号を受信する。
実行ユニット156は、バス32と双方向的に結合されている。第1状態シーケンサ158と第2状態シーケンサ168とは、バス32からの命令を受け取るように結合されている。さらに実行ユニット拡張部153は、1つ以上の実行ユニット(EU)内部バスにより実行ユニット156に結合されている。
図4は、本発明のある実施例による図2の第1状態シーケンサ58をブロック図に示したものである。選択マルチプレクサ(MUX)回路構成80は、制御PLA60からの命令終了信号(End Of Instruction Signal)と制御ROM70からの命令終了信号を受信する。選択マルチプレクサ(MUX)回路構成82は、制御PLA60からの先取り信号(Lookahead Signal)と制御ROM70からの先取り信号を受信する。状態論理回路構成84は、次状態信号(Next State Signals)を制御PLA60から受信する。
MUX80およびMUX82は、それぞれ制御PLA60から制御転送信号(Control Transfer Signal)を受信する。MUX80の出力は、命令レジスタ回路構成86の制御入力に結合され、状態論理84に結合されている。MUX82の出力は、オプコード(opcode)先取りレジスタ回路構成88の制御入力に結合されている。オプコード先取りレジスタ88は、バス32に結合されて、命令を受け取る。命令レジスタ86は、オプコード先取りレジスタ88に結合されて、命令を受け取る。
デコーダ回路構成89は、命令レジスタ86に結合されて、命令を受け取る。デコーダ89は、状態論理84に結合されて、状態情報を受け取る。デコーダ89は、制御信号を発生し、この信号は制御PLA60に行く。また、第1状態シーケンサ58は、タイミング信号(図示せず)を必要とする。
図5は、本発明のある実施例による図3の第1状態シーケンサ158をブロック図に示したものである。選択マルチプレクサ(MUX)回路構成90は、制御PLA160からの命令終了信号と制御ROM170からの命令終了信号を受信する。選択マルチプレクサ(MUX)回路構成92は、制御PLA160からの先取り信号と制御ROM170からの先取り信号とを受信する。状態論理回路構成94は、次状態信号を制御PLA160から受信する。
MUX90およびMUX92は、それぞれ制御PLA160から制御転送信号を受信する。MUX90の出力は、命令レジスタ回路構成96の制御入力に結合され、状態論理94に結合されている。MUX92の出力は、オプコード先取りレジスタ回路構成98の制御入力に結合されている。オプコード先取りレジスタ98は、バス32に結合されて、命令を受け取る。命令レジスタ96は、オプコード先取りレジスタ98に結合されて、命令を受け取る。
デコーダ回路構成99は、命令レジスタ96に結合されて、命令を受け取る。デコーダ99は、状態論理94に結合されて、状態情報を受け取る。デコーダ99は、制御信号を発生し、この信号は制御PLA160に行く。また、第1状態シーケンサ158は、タイミング信号(図示せず)を必要とする。
図6は、本発明のある実施例による図2の第2状態シーケンサ68をブロック図に示したものである。制御ユニット選択論理回路構成101は、制御PLA60からの制御転送信号制御と、制御ROM70からの命令終了信号とを受信する。制御ユニット選択論理101は、ランダム制御論理62に動作不能(Disable信号を送り、ランダム制御論理72に動作可能(Enable)信号を送り、制御ROM70に動作可能信号を送る。オプションで、制御ユニット選択論理101は、制御PLA60に動作不能信号を送ることもできる。
状態論理回路構成104には、カウンタ回路構成107が含まれる。状態論理104は、制御ROM70から次状態信号を受信する。命令レジスタ回路構成106は、制御ROM70から先取り信号を受信する。命令レジスタ106は、バス32に結合されて、命令を受け取る。カウンタ107はバス32に結合されており、カウンタ107にはバス32を介して書き込むことができる。デコーダ回路構成109は、命令レジスタ106に結合されて命令を受け取る。デコーダ109は、状態論理104に結合されて、状態情報を受け取る。デコーダ109は、制御信号を発生して、この信号は制御ROM70に行く。また、第2状態シーケンサ68は、タイミング信号(図示せず)を必要とする。制御ユニット選択論理101は、命令レジスタ106に結合されている。
図7は、本発明のある実施例による図3の第2状態シーケンサ168をブロック図に示したものである。制御ユニット選択論理回路構成111は、制御PLA160からの制御転送信号制御と、制御ROM170からの命令終了信号とを受信する。制御ユニット選択論理111は、ランダム制御論理162に動作不能信号を送り、ランダム制御論理172に動作可能信号を送り、制御ROM170に動作可能信号を送る。オプションで、制御ユニット選択論理111は、制御PLA160に動作不能信号を送ることもできる。
状態論理回路構成114には、カウンタ回路構成117が含まれる。状態論理114は、制御ROM170から次状態信号を受信する。命令レジスタ回路構成116は、制御ROM170から先取り信号を受信する。命令レジスタ116は、バス32に結合されて、命令を受け取る。カウンタ117はバス32に結合されており、カウンタ117にはバス32を介して書き込むことができる。デコーダ回路構成119は、命令レジスタ116に結合されて命令を受け取る。デコーダ119は、状態論理114に結合されて、状態情報を受け取る。デコーダ119は、制御信号を発生して、この信号は制御ROM170に行く。また、第2状態シーケンサ168は、タイミング信号(図示せず)を必要とする。制御ユニット選択論理111は、命令レジスタ116に結合されている。
図8は、図2の実行ユニット56の一部のある実施例を示す。同様に、図8は、図3の実行ユニット156の一部のある実施例を示す。
プログラム・カウンタ(高)/インクリメンタ・レジスタ(incrementer register)回路200は、バス202から情報を受け取り、バス204に情報を与える。プログラム・カウンタ(低)レジスタ回路206は、バス202から情報を受け取り、バス204に情報を与える。スタック・ポインタ・レジスタ(stackpointer register)回路208は、バス202から情報を受け取り、バス204に情報を与える。累算器(accumulator)レジスタ回路210は、バス202から情報を受け取り、バス204に情報を与える。インデックス・レジスタ212はバス202から情報を受け取り、バス204に情報を与える。
一時アドレス・レジスタ(高)回路214は、バス202から情報を受け取り、バス216に情報を与える。一時アドレス・レジスタ(低)回路218は、バス202から情報を受け取り、バス216に情報を与える。データ・バス・インターフェース回路構成220は、バス202から情報を受け取り、バス216に情報を与える。定数発生論理回路222は、バス204に情報を与える。
演算論理ユニット(ALU)224は、バス204とバス216とからデータを受け取る。ALU224は、フラッグ回路構成226に双方向的に結合されている。フラッグ回路構成226は、条件コード・レジスタ228に双方向的に結合されている。条件コード・レジスタ228は、バス202から情報を受け取り、バス216に情報を与える。ALU224の出力は、シフタ(shifter)回路構成230に結合されている。シフタ230は、バス202に情報を与える。
プログラム・カウンタ(高)/インクリメンタ・レジスタ200と一時アドレス・レジスタ(高)214は、それぞれ高バス232に情報を与える。アドレス・バス(高)バッファ回路構成234は、高バス232から情報を受け取り、プログラム・カウンタ(高)/インクリメンタ・レジスタ200に情報を与える。アドレス・バス(高)バッファ234は、アドレス・バス(高)236に結合されている。アドレス・バス(高)236は、バス32に結合されている。
プログラム・カウンタ(低)レジスタ206と、一時アドレス・レジスタ(低)218と、スタック・ポインタ・レジスタ208とは、それぞれ低バス238に情報を与える。アドレス・バス(低)バッファ回路構成240は、低バス238から情報を受け取る。アドレス・バス(低)バッファ240は、アドレス・バス(低)242に結合されている。アドレス・バス(低)242は、バス32に結合されている。
低バス238は、データ・バス244から情報を受け取る。データ・バス・インターフェース220は、データ・バス244から情報を受け取り、それに情報を与える。データ・バス244は、バス32に結合されている。
[好適な実施例の動作]
本発明により、CPUに拡張性を持たせることができ、回路構成を追加することが容易になったり、既存の回路構成をほとんど変更せずに新しい命令またはアルゴリズムを組み込むことができる。
図1では、データ処理システム10がMCUファミリ内の1つの可能なMCUを示す。同じファミリ内のMCUは、異なるオンボード周辺機器を有するのが普通なので、データ処理システム10の他の実施例ではROM20を持たないもの、外部バス・インターフェース26を持たないもの、DMA30を持たないものもある。実際には、データ処理システム10の他の実施例では、図1に示された周辺機器よりも少ない場合も、多い場合も、また異なるものを持つ場合もある。過去においては、特定のファミリ内のMCUは、ほとんどいつも、全く同じCPUを用いていた。本発明により、特定のファミリ内のMCUは、同一のCPUコア50の拡張部であることによりすべて関連性をもつ異なる拡張可能CPU12を用いることができる。図2は、拡張可能CPU12の1つの可能な実施例を示す。図3は、拡張可能CPU12の第2の可能な実施例、すなわち拡張可能CPU12’を示す。
図2では、図2に示される拡張可能CPU12に基づくMCUのファミリがすべて同じCPUコア50を有する。CPUコア50のある実施例に基づくこのようなファミリのMCUは、MC68HC08ファミリと呼ばれる。CPUコア50は、従来技術のCPUアーキテクチャ、すなわちMC68HC05CPUアーキテクチャを改良したものである。本発明の他の実施例では、異なるCPUアーキテクチャを用いることもできる。改良されているために、CPU50は従来技術のものとは異なり、拡張可能になっている。
CPU制御拡張部52は、CPUコア50に追加して新しい命令またはアルゴリズムを組み込むことのできる追加の回路構成のある実施例を示す。CPU制御拡張部52は、従来技術のMC68HC05CPUには存在しなかった。従来技術のMC68HC05CPUを拡張可能にするために行われた特定の改良を以下に説明する。
実行ユニット56から始めると、1つの例外を除き、実行ユニット56は個々の論理ゲート・レベルにおいては従来技術のものと同じである。その1つの例外とは、条件コード・レジスタ228(図8参照)である。従来技術のMC68HC05CPUでは、条件コード・レジスタは、実行ユニットの最新の状態に関するステータス情報を含んでいるので、制御ユニットのランダム制御論理部分に物理的に位置していた。制御ユニットは、次の状態の間に実行ユニットを制御するためにどのタイミング制御信号をアサートするかを決定するために、このステータス情報を必要としていた。たとえば、制御ユニットは、ある分岐命令に関して実行ユニットをどのように制御するかを決定するために条件コード・レジスタのゼロ・ビットの論理状態を知る必要があった。
しかし、CPU12を拡張可能なものとするためには、制御ユニット64は実行ユニット56のすべてのステータス情報に対するアクセス権を持たなければならない。条件コード・レジスタ228を実行ユニット56内に移動することによって、実行ユニット56にはプログラマ・モデルのすべてのレジスタ、すなわち実行ユニット56に関するすべてのステータス・レジスタとステータス情報が含まれる。これにより第2制御ユニット64は、実行ユニット56から直接的に実行ユニット56のすべてのステータス情報に直接アクセス権を有する。拡張可能CPU12においては、制御ユニット54も制御ユニット64も、実行ユニット56から同一の組のステータス信号に対するアクセス権を有する;また、ステータス信号には、実行ユニット56の条件コード・レジスタ228からのステータス情報が含まれる。
レイアウト・レベルでは、実行ユニット56回路構成は、半導体集積回路上に物理的に配列して、タイミング制御信号の完全な組と、ステータス信号の完全な組とが制御ユニット54と制御ユニット64の両方から得られるようにしなければならない。すなわち、すべてのタイミング制御信号とすべてのステータス信号とを、制御ユニット54および制御ユニット64の両方に結合できるように物理的に配線しなければならない。
本発明の図示された実施例においては、CPU制御拡張部52が組み込まれているか否かに関わらず、タイミング制御信号を運ぶ導体はそれぞれ、一端で制御ユニット54に結合され、それぞれが実行ユニット56を通じて配線され、それぞれが他端で実行ユニット56の外部に配線されている。従来の技術においては、ただ1つの制御ユニット、すなわち制御ユニット54だけを、タイミング制御信号とステータス信号に結合すればよかった;また、そのためにタイミング制御信号を運ぶ導体は、一端で実行ユニット56に外部配線されていればよかった。
制御ユニット54を形成するために従来技術の制御ユニットに対して行われた特定の改良を以下に説明する。前述のように、条件コード・レジスタ228がランダム制御論理62から取り除かれた。さらに動作不能回路構成63がランダム制御論理62に追加されて、タイミング制御信号を動作不能にした。タイミング制御信号が動作不能になると、実行ユニット56には転送されず、そのため実行ユニット56には何の効果も持たない。
動作不能回路構成63は、第2状態シーケンサ68により発生される信号によって制御される。本発明のある実施例においては、動作不能回路構成63には、各タイミング制御信号毎に1つの伝送ゲート(図示せず)が含まれる。CPUコア50がCPU制御拡張部52なしに用いられると、伝送ゲート(図示せず)が常に動作可能になるので、タイミング制御信号は常に実行ユニット56に転送される。CPUコア50がCPU制御拡張部52と共に用いられると、伝送ゲート(図示せず)は、第2状態シーケンサ68からの動作不能信号がアサートされているかネゲートされているかによって、動作可能になるか動作不能になるかのいずれかである(図6参照)。
本発明のある実施例においては、動作不能回路構成63には、第2状態シーケンサ68からの動作不能信号の被アサート状態をラッチするラッチ(図示せず)が含まれることに留意されたい。そのため、タイミング信号(図示せず)がアサートされると、ラッチは伝送ゲートを動作可能にして、それによりいくつかのタイミング制御信号は、実行ユニット56内のスタック・ポインタ・レジスタ208およびプログラム・カウンタ(高)/インクリメンタ200(図8参照)に転送される。このため、ラッチ(図示せず)が用いられて、いくつかのタイミング制御信号の間、実行ユニット56に対する動作不能信号の効果を遅延させる。このような差異を除けば、ランダム制御論理62は、従来技術のランダム制御論理と同一のものでよい。
制御PLA60は、従来技術のものと同じであるが、以下の追加点を持つ:すなわち(1)第1状態シーケンサ58からの新しい入力状態(特殊制御送信命令に関して);(2)いくつかの出力制御PLA信号;および(3)制御PLA60内のいくつかの論理AND項および/または論理OR項。追加の信号および回路構成は、2つの制御ユニット54,64間の実行ユニット56の制御の転送に関わる。2つの制御ユニット54,64間の実行ユニット56の制御の転送については、以下に詳細に説明する。
第1状態シーケンサ58を形成するために、従来技術の状態シーケンサに加えられた特定の改良を図4で説明する。従来の技術と同様に、第1状態シーケンサ58は制御PLA60と共に、CPUコア50の現在の状態と、バス32を介して受け取った現在の命令の両方に基づき、CPUコア50の次の状態を判定することによって状態装置として機能する。第1状態シーケンサ58は、従来の技術と同じ状態移行(state transitions)を処理することができる。さらに、第1状態シーケンサ58は、2つの制御ユニット54,64間の実行ユニット56の制御の移行に関わる状態移行も処理することができる。
さらに図4を参照すると、従来の技術ではMUX80およびMUX82はなかった。従来技術においては、MUX80の出力を用いて、命令レジスタ86がいつロードされるかを知らせる代わりに、制御PLA60からの出力信号が用いられていた。同様に、MUX82の出力を用いて、オプコード先取りレジスタ88がいつロードされるかを知らせる代わりに、制御PLA60からの出力信号が用いられていた。状態論理84は、新しい命令、すなわち従来技術ではなかった特殊制御転送命令を処理することができる。この新しい命令は、2つの制御ユニット54,64間の実行ユニット56の制御の転送に関わる。従来の技術とは異なり、デコーダ89と制御PLA60も、これと同じ新しい特殊制御転送命令を処理することができる。
結論を述べると、従来技術のMC68HC05CPUを拡張可能にするために行われた回路の改良は、既存の回路構成に対してわずかな量の追加の回路構成しか必要としない。しかし、このような回路変更から得られる利点は、きわめて重要である。このような回路変更の結果として、種々の顧客の要望に合わせて注文設計(カスタマイズ)された異なるCPU制御拡張部回路52を追加することにより同一のCPUコア50の機能性を拡張することができる。
拡張可能CPU12の動作を説明する(図2参照)。第1に、拡張可能CPU12には、CPU制御拡張部52のないCPUコア50だけが含まれる。たとえば、CPUコア50だけを、図1に図示されるデータ処理システム10の拡張可能CPU12として用いることができる。しかし、CPUコア50をCPU制御拡張部52の種々の注文設計された実施例と共に用いることもできる。CPU制御拡張部52を内蔵することは、拡張可能CPU12を拡張するための1つの方法である。
図2に示されるブロック図は、CPU制御拡張部52の1つの可能な実施例に過ぎない。CPU制御拡張部52が実行ユニット56を適切に制御するためのタイミング制御信号を発生して、実行ユニット56の制御をタイミング制御信号の2つの信号源の間でやり取りできるようにする回路構成をCPU制御拡張部52が持っている限り、CPU制御拡張部52をどのように設計しても構わない。
CPUコア50の図示された実施例は、回路構成の2つの基本部分で構成される。制御ユニット54と第1状態シーケンサ58を含む第1部分は、バス32を介して命令を受け取り、実行ユニット56を制御するために用いられるタイミング制御信号を発生する。制御回路構成のこの第1部分は、様々な方法で実現することができる。第2部分である実行ユニット56は、タイミング制御信号を受信し、これらのタイミング制御信号を用いて、実際に命令を実行する。実行ユニット56も同様に種々の方法で実現することができる。
図2に示されたCPU制御拡張部52の実施例は、CPU制御拡張部52を構築するための簡単な方法である。いくつかの回路変更を加えることにより、CPU制御拡張部52を制御ユニット54と第1状態シーケンサ58の鏡像として実現することができる。ランダム制御論理72の回路構成は、ランダム制御論理62の回路構成の完全な複製として実現することができる。ランダム制御論理72に対する入力制御信号、すなわち制御ROM信号は、制御ROM70から来て、ROM70に記憶されている注文設計のROMパターンにより判定される。顧客毎に、実行ユニット56に新しい命令を実行させる別のROMパターンを用いることができる。
図2および図4では、第1状態シーケンサ58が制御PLA60と共に、CPUコア50のための状態装置として主に機能する。この能力で、第1状態シーケンサ58は、バス32から命令を受け取る。第1状態シーケンサ58は、次に(デコーダ89を用いて)実行される現在の命令(命令レジスタ86からのもの)と、CPUコア50の現在の内部状態(状態論理84からのもの)の両方を解読する。第1状態シーケンサ58は次に、デコーダ89から信号を出力し、この信号は制御PLA60に入力される。
CPU制御ユニット64内のROM70は、制御ユニット54内の制御PLA60と同様の機能を果たす。制御PLA60は、ランダム制御論理62のための入力信号を発生して、第1状態シーケンサ58と第2状態シーケンサ68のための制御転送情報を発生する。ROM70は、ランダム制御論理72のための入力信号を発生し、第1状態シーケンサ58と第2状態シーケンサ68のための制御転送情報を発生する。
制御PLA60とROM70とは、任意の種類のメモリまたは任意の種類のプログラミング可能な論理アレイを含む、任意の種類のプログラミング可能なアレイとして実現することができる点に留意されたい。制御PLA60とROM70とは、ランダム論理として実現することもでき、それぞれの制御ユニット54,64内の残りのランダム制御論理回路構成と組み合わせることもできる。
プログラミング可能な論理アレイ(PLA)は、読み込み専用メモリ(ROM)よりも小さな半導体面積しか必要としないのが普通である;しかし、PLAを注文設計するよりもROMを注文設計するほうが簡単で迅速である。異なるバージョンの拡張可能CPU12に関して同じ制御PLA60が用いられるので、制御PLA60をPLAとして組み込んで半導体面積を節約するほうが有利である。しかし、制御ROM70は異なるバージョンの拡張可能CPU12に関しては異なるプログラミングを必要とするので、制御ROM70をROMとして組み込むほうが簡単で迅速である。
タイミング制御信号は実行ユニット56に対して、必要な制御情報のすべてを与える。バス32は、実行ユニット56内にあるレジスタを読み書きするためのアドレスおよびデータ経路として用いられる。拡張可能CPU12は、2つの別々の制御ユニット、すなわち制御ユニット54と制御ユニット64とを有する。2つの制御ユニット54,64のそれぞれは、実行ユニット56を制御するために用いられる同一のタイミング制御信号を完全に発生することができる。同様に、2つの制御ユニット54,64のそれぞれは、実行ユニット56内のすべてのリソースに対して完全なアクセス権を有する。
その結果、制御ユニット54だけでも、実行ユニット56のすべてを全面的に制御することができ、同様に制御ユニット64だけでも実行ユニット56のすべてを全面的に制御することができる。実際には、拡張可能CPU12のある実施例では、制御ユニット54と制御ユニット64はそれぞれ、同じタイミング制御信号導体の対向端に結合されており、この導体は実行ユニット56を通じて、制御ユニット54,64のそれぞれに配線されている。
本発明の図示された実施例においては、特殊制御転送命令が用いられて、実行ユニット56の制御を制御ユニット54から制御ユニット64に転送している。図示された実施例では、制御ユニット64が実行ユニット56の制御を受け取ると、CPU制御拡張部52が1つ命令を実行し、その後で実行ユニット56の制御を自動的に制御ユニット54に返す。この方法では、拡張可能CPU12のユーザがCPU制御拡張部52を用いてカスタム命令を実行しようとするたびに、ユーザは自分のソフトウェア・プログラム内のカスタム命令の前に、特殊制御転送命令を入れなければならない。
この実施例では、CPU制御拡張部52は、制御が制御ユニット54に自動的に返される前に1つのカスタム命令を実行することしかできないが、この1つの命令には任意の数の実行ユニット・サイクルを入れることができる。これによって、顧客は、通常の命令の完全なサブルーチンを単独のカスタム命令として定義することができる。また、顧客は制御ROM70に適切な対応の制御情報を記憶させることによって、可変数の実行ユニット・サイクルを有する複数のカスタム命令を定義することもできる。
実行ユニット・サイクルは、実行ユニット56内で次の3つの段階を実行するために要する時間の量によって定義されることに留意されたい(図8参照):すなわち(1)1つ以上の値をALU224に転送する;(2)ALU224を用いて算術演算または論理演算を実行する;および(3)結果値をALU224からレジスタに転送する。本発明のある実施例では、2つの実行ユニット・サイクルをバス32のバス・サイクル毎に実行することができる。
各カスタム命令内のビット・フィールドを用いて、どのカスタム命令を実行するかを指定することができる。本発明のある実施例では、特殊制御転送命令には2バイトが含まれる:すなわち第1バイトは、特殊制御転送命令のためだけに用いられるオプコードであり(それぞれのカスタム命令に関して同じ)、第2バイトは制御ROM70内の開始アドレスである(各カスタム命令により異なる)。本発明のある実施例では、特殊制御転送命令は、実行ユニット56に対して「動作なし(NOP:no operation)」命令と同じ効果を有する。同様に、制御ユニット64により制御される各カスタム命令の最後の2個の実行ユニット・サイクルは、実行ユニット56に対してNOP命令と同じ効果を持つ。NOP命令と、特殊制御転送命令と、各カスタム命令の最後の部分はそれぞれ2個の実行ユニット・サイクルで構成される。第1実行ユニット・サイクルの間に、プログラム・カウンタ・レジスタ200,206の繰り上がりが開始される。第2実行ユニット・サイクルの間に、プログラム・カウンタ・レジスタ200,206の繰り上がりが終了する。プログラム・カウンタ・レジスタ200,206を除くと、実行ユニット56は、タイミング制御信号が駆動されていても特殊制御転送命令の実行中には影響を受けない。
特殊制御転送命令を用いて実行ユニット56の制御を送るために用いることのできる数多くの実行例があるが、図2,図4および図6に示された実行例について説明する。第2状態シーケンサ68の制御ユニット選択論理101(図6参照)は、適切な制御ユニット54,64を動作可能および動作不能にする責を負う。図示された実施例においては、特殊制御転送命令を用いて制御ユニット54から制御ユニット64に対する制御の転送を開始し、1つのカスタム命令が実行された後に、制御ROM70からの命令終了信号を用いて制御ユニット64から制御ユニット54に対する制御の返却を開始する。
図示された実施例においては、制御ユニット選択論理101は別々の制御信号を設けて、ランダム制御論理62,ランダム制御論理72,制御ROM70および制御PLA60を動作可能にするか、あるいは動作不能にする。制御PLA60を動作不能にする動作不能信号はオプションであり、図示された拡張可能CPU12には組み込まれていない。図示された実施例においては、2つの別々の信号が制御ユニット選択論理101により、制御ユニット54,64のそれぞれに関して発生される。ランダム制御論理62は制御PLA60より前に動作不能にしなければならず、ランダム制御論理72は制御ROM70より前に動作不能にしなければならず、2つの信号がそれぞれの制御ユニットのために用いられた。同様に、制御PLA60はランダム制御論理62より前に動作可能にしなければならず、制御ROM70はランダム制御論理72より前に動作可能にしなければならない。
制御PLA60は、制御転送信号を発生し、この信号は第1状態シーケンサ58と第2状態シーケンサ68の両方に与えられる。制御転送信号は、特殊制御転送命令が受け取られた後でアサートされる。制御転送信号は、第1状態シーケンサ58と第2状態シーケンサ68に対して、実行ユニット56の制御が制御ユニット54から制御ユニット64に渡されたことを知らせる。
特殊制御転送命令がまだ受け取られていない場合は、制御転送信号はネゲートされる。制御転送信号がネゲートされると、制御ユニット54は動作可能になり、制御ユニット64が動作不能になる。また、制御転送信号がネゲートされると、制御ユニット選択論理101のすべての出力はネゲートされる。ランダム制御論理62に対する動作不能信号をネゲートすることにより、ランダム制御論理62から実行ユニット56に与えられるタイミング制御信号が動作可能になる。制御PLA60に対するオプションの動作不能信号をネゲートすることにより、制御PLA60は第1状態シーケンサ58によりストローブ(strobe)される。ランダム制御論理72に対する動作可能信号をネゲートすることにより、タイミング制御信号が動作不能になり、この信号はランダム制御論理72から実行ユニット56に与えられなくなる。制御ROM70に対する動作可能信号をネゲートすることにより、制御ROM70は第2状態シーケンサ68によりストローブされなくなる。
特殊制御転送命令がまだ受け取られない場合は、制御ROM70が動作不能になる。制御ROM70が動作不能になると、その出力の論理状態を変更することができない。しかし、動作不能になっても制御ROM70は、所定の初期パターンの論理状態かまたは制御ROM70が動作不能になる前に出力信号が持っていた最後のパターンの論理状態のいずれかによってその出力信号を駆動し続ける。本発明のある実施例においては、制御ROM70が動作不能になる前に出力信号が持っていた最後のパターンの論理状態は、所定の初期パターンの論理状態と常に同じである。
図2および図4に図示された第1状態シーケンサ58の動作を以下に詳細に説明する。制御PLA60からの制御転送信号は、制御ユニット54が第1状態シーケンサ58を制御しているのか、制御ユニット64が第1状態シーケンサ58を制御しているのかを判定するために用いられる。制御転送信号は、MUX80が制御PLA60からの命令終了信号を出力するのか、MUX80が制御ROM70からの命令終了信号を出力するのかを判定するために用いられる。同様に、同じ制御転送信号を用いて、MUX82が制御PLA60からの先取り信号を出力するのか、MUX82が制御ROM70からの先取り信号を出力するのかを判定する。制御転送信号は、状態論理84に入力される命令終了信号がPLA60から来るのか、制御ROM70から来るのかも判定する点に留意されたい。
実際には、制御転送信号は、第1状態シーケンサ58を通じて命令の流れを制御しているのが制御ユニット54であるのか、制御ユニット64であるのかを判定する。MUX82の出力をアサートすると、バス32からの命令はオプコード先取りレジスタ88にロードされる。MUX80の出力をアサートすると、オプコード先取りレジスタ88からの命令が命令レジスタ86にロードされる。
状態論理84は、制御PLA60から次状態信号を受信する。デコーダ89は、制御PLA60と共に、これらの次状態信号と命令レジスタ86に記憶されている現在の命令から、次の状態がどのようになるかを判定する。CPUコア50がオプションのCPU制御拡張部52なしに用いられた場合は、制御転送信号はアサートされることはない。しかし、CPUコア50がオプションのCPU制御拡張部52と共に用いられると、制御PLA60が制御転送信号をアサートして、デコーダ89の出力は制御転送信号により機能する。
第1状態シーケンサ58はまた、制御PLA60の入力がいつ有効であるか、また制御PLA60の出力がいつ有効であるかに関するタイミング情報(図示せず)を制御PLA60に送る。制御PLA60の出力が有効であるときは、第1状態シーケンサ58は、制御PLA信号を動作可能にして、この信号はランダム制御論理62に送信される。ランダム制御論理62は、次にタイミング情報と、ステータス信号を介して実行ユニット56から送り返されたステータス情報とにより制御PLA信号を認可する。次にランダム制御論理62は、タイミング制御信号を出力するが、これらは実行ユニット56を全面的に制御するために必要とされる完全な1組の信号である。
第1状態シーケンサ58は、CPU制御拡張部52がなくてもそれだけで機能するCPUコア50内に用いることもできるので、制御転送を扱う回路構成の大部分は第2状態シーケンサ68および制御ユニット64内に配置することが望ましい。制御転送を扱う制御信号の入力および出力経路は、CPUコア50に入れて、実際の制御転送回路構成の大部分はCPU制御拡張部52に配置するほうが効率的である。この方法の利点は、スタンド・アロンCPUコア50内で必要とされる機能のために半導体面積がCPUコア50内で拡大されないことである。これによりCPUコア50そのもののコストは、最小限に抑えられる。
図2および図6に示される第2状態シーケンサ69の動作を以下に詳細に説明する。第2状態シーケンサ68は、主にCPU制御拡張部52の状態装置として機能する。この能力で、第2状態シーケンサ68はバス32から命令を受け取る。第2状態シーケンサ68は、次に(デコーダ109を用いて)、実行すべき現在の命令(命令レジスタ106からのもの)と、CPU制御拡張部52の現在の内部状態(状態論理104からのもの)の両方を解読する。第2状態シーケンサ68は次に、デコーダ109から信号を出力し、この信号は制御ROM70に入力される。
制御ROM70からの先取り信号をアサートすることにより、タイミング信号(図示せず)と共に、バス32からの命令が命令レジスタ106にロードされる。状態論理104は、制御ROM70から次状態信号を受信する。デコーダ109は、制御ROM70と共に、これらの次状態信号と命令レジスタ106に記憶されている現在の命令から、次の状態がどのようになるかを判定する。制御ユニット64が動作不能になっても、デコーダ109は、制御ROM70に信号を出力し続ける。制御ROM70が動作不能である限り、制御ROM70は、デコーダ109から受け取った入力により機能することはない。
状態論理104にはカウンタ107が含まれる。カウンタ107は、バス32から書き込むことができ、読むこともできる場合がある。カウンタ107は、第2状態シーケンサ68および制御ユニット64により実行される命令内にループを作成することができる。一例として、顧客が、特定のレジスタ値を「N」回シフトするなどの同一の実行ユニット・サイクルを「N」回実行するという新しい命令を追加したいとする。値「N」をカウンタ107にロードして、特定のレジスタがシフトされる各実行ユニット・サイクル毎にカウンタ107を減らすことにより、状態論理104は、同じ状態がいつ「N」回循環されたかを追跡することができる。次に状態論理104は、デコーダ109に信号を送り、ループが終了したことを知らせる。このように、CPU制御拡張部52により実行される単独の命令で、通常は複数の命令を必要とする段階を1つの命令内に実際に組み込むことができる。
第2状態シーケンサ68はまた、制御ROM70に対する入力がいつ有効であるのか、制御ROM70からの出力がいつ有効であるのかに関するタイミング情報(図示せず)を制御ROM70に送る。制御ROM70の出力が有効であるときは、第2状態シーケンサ68は制御ROM信号を動作可能にするので、これらの信号はランダム制御論理72に送信される。次にランダム制御論理72は、タイミング情報と、ステータス信号を介して実行ユニット56から送り返されたステータス情報によって制御ROM信号を認可する。次にランダム制御論理72は、タイミング制御信号を出力するが、これらは実行ユニット56を全面的に制御するために必要とされる完全な1組の信号である。
第1状態シーケンサ58と第2状態シーケンサ68の動作が説明されたので、次に制御ユニット54,64間の制御の転送を詳細に説明する。制御ユニット54から制御ユニット64に制御を転送するためには、拡張可能CPU12は特殊制御転送命令を受け取らねばならない。
バス32から命令レジスタ86により特殊制御転送命令が受け取られると、制御ユニット54から制御ユニット64に対する制御の転送が始まる。デコーダ89は、特殊制御転送命令を解読して、特殊制御転送命令に特有の対応する信号を出力する。依然として動作可能状態にある制御PLA60は、制御転送信号をアサートし、制御PLA信号をランダム制御論理62に送ることにより特殊制御転送命令に応答する。実行されている命令が特殊制御転送命令であるために、ランダム制御論理62はタイミング制御信号を第1の所定のパターンの論理状態で駆動し、次に第2の所定のパターンの論理状態で駆動する。
ある実施例においては、この第1の所定のパターンの論理状態は、NOP命令の第1実行ユニット・サイクル中にタイミング制御信号により駆動されるものと同じである。第1の所定のパターンの論理状態でタイミング制御信号を駆動することにより、実行ユニット56内のプログラム・カウンタ・レジスタ200,206が繰り上がる。第2の所定のパターンの論理状態でタイミング制御信号を駆動しても、実行ユニット56には何の効果もない。タイミング制御信号が第2の所定のパターンの論理状態で駆動されている第2実行ユニット・サイクル中に、制御は実際に制御ユニット54から制御ユニット64に転送される。
そのために本発明のある実施例においては、制御ユニット54,64の両方が第2の所定のパターンの論理状態によりそれぞれのタイミング制御信号を同時に駆動して、制御は実際に制御ユニット54から制御ユニット64に転送される。制御が転送されると、制御ユニット64は次に1つのカスタム命令を実行する。各カスタム命令の最後の2つの実行ユニット・サイクルは、特殊制御転送命令の2つの実行ユニット・サイクルと同じであり、これらはいずれもNOP命令の2つの実行ユニット・サイクルと同じである。
制御PLA60により制御転送信号をアサートすることは、制御ユニット54から制御ユニット64に対して制御の転送を開始するために用いられる。制御転送信号をアサートした結果、制御ユニット54は動作不能になり、制御ユニット64が動作可能になる。制御転送信号がアサートされると、制御ユニット選択論理101の出力のすべてがアサートされる。制御ユニット選択論理101から命令レジスタ106に対する信号をアサートすることにより、命令レジスタ106は特殊制御転送命令の第2バイトをバス32からロードする。
ランダム制御論理62に対する動作不能信号をアサートすることにより、タイミング制御信号が動作不能になり、この信号はランダム制御論理62から実行ユニット56に送られない。制御PLA60に対するオプションの動作不能信号をアサートすることにより、制御PLA60は第1状態シーケンサ58によりストローブされなくなる。ランダム制御論理72に対する動作可能信号をアサートすることにより、ランダム制御論理72から実行ユニット56に与えられるタイミング制御信号が動作可能になる。制御ROM70に対する動作可能信号をアサートすることにより、制御ROM70は第2状態シーケンサ68によりストローブされる。
制御ユニット選択論理101からの出力信号がアサートされる順序が重要であることに留意すること。まず制御ROM70を動作可能にしなければならない。オプションで制御PLA60を動作不能にしてもよい。次にランダム制御論理72を動作可能にする。最後にランダム制御論理62を動作不能にする。
第2状態シーケンサ68は、バス32から特殊制御転送命令の第2バイトを受け取る。本発明のある実施例においては、特殊制御転送命令の第2バイトはカスタム命令の制御ROM70の開始アドレスである。次にデコーダ109は、カスタム命令の開始アドレスを制御ROM70に転送する。制御ROM70は、この開始アドレスを用いて、特定のROM位置にアクセスする。次に、この特定のROM位置に記憶されている情報が制御ROM信号としてランダム制御論理72に出力される。
これらの制御ROM信号は、ランダム制御論理72に対して、ランダム制御論理62により駆動されているのと同じ第2の所定のパターンの論理状態でタイミング制御信号を駆動しなければならないことを知らせる。そのため特殊制御転送命令の第2実行ユニット・サイクルの間の短い時間に、ランダム制御論理62とランダム制御論理72の両方が同じ第2の所定のパターンの論理状態でそれぞれのタイミング制御信号を駆動する。この短い重複期間の目的は、実行ユニット56を制御するタイミング制御信号が変動(float)しないようにする、あるいは未知のまたは意図しない論理状態にならないようにするためである。これによりタイミング制御信号は常に、制御ユニット54,64のいずれか一方または両方により駆動される。
ランダム制御論理72が第2の所定のパターンの論理状態でタイミング制御信号を駆動すると、第2状態シーケンサ68はランダム制御論理62に対する動作不能信号をアサートし、それによりランダム制御論理62からのタイミング制御信号の出力が動作不能になる。この時点で、第2状態シーケンサ68と制御ユニット64とは、完全に実行ユニット56を制御している。第1状態シーケンサ58と制御ユニット54とは、このとき実行ユニット56の制御を持たない。しかし、本発明のある実施例においては、第1状態シーケンサ58と制御ユニット54とは同じ状態にあり続ける;すなわちランダム制御論理62が動作不能になっていない場合は、第2の所定のパターンの論理状態でタイミング制御信号を駆動し続ける。
制御転送信号を制御PLA60によりアサートすることにより、第1状態シーケンサ58を機能させることもできる。制御転送信号のアサートは、MUX80の出力とMUX82の出力を変更するために用いられる。制御転送信号をアサートした結果、MUX80は制御PLA60からの命令終了信号の出力から、制御ROM70からの命令終了信号の出力へと切り替わる。同様に、制御転送信号をアサートした結果として、MUX82は制御PLA60からの先取り信号の出力から、制御ROM70からの先取り信号の出力へと切り替わる。
制御転送信号のアサートの結果として、状態論理84は制御PLA60からではなく制御ROM70から命令終了信号を受信する。制御ROM70からの命令終了信号を用いることにより、状態論理84は、カスタム命令がいつ終るかを判定することができ、それによって制御ユニット54から制御ユニット64に制御がいつ戻るかを判定することができる。
第2状態シーケンサ68と制御ユニット64とは、次の命令であるカスタム命令をバス32から受け取る。本発明のある実施例においては、カスタム命令は、実際には、カスタム命令の開始アドレスである制御ROM70内の位置を指し示す特殊制御転送命令の第2バイトである。
第2状態シーケンサ68と制御ユニット64は、このカスタム命令の実行中はずっと実行ユニット56を制御している。カスタム命令の終了時に、ランダム制御論理72は同じ第2の所定のパターンの論理状態でタイミング制御信号をもう一度駆動しなければならない。第2状態シーケンサ68は次に、動作不能信号をネゲートすることにより、ランダム制御論理62からのタイミング制御信号の出力を再度動作可能にする。そのためもう一度、短い時間の間、ランダム制御論理62とランダム制御論理72の両方が同じ第2の所定のパターンの論理状態によりそれぞれのタイミング制御信号を駆動する。
カスタム命令の終了時に、制御ROM70は、命令終了信号をアサートする。制御ROM70による命令終了信号のアサートは、制御ユニット64から制御ユニット54に対する制御の返送を開始するために用いられる。命令終了信号をアサートした結果として、制御ユニット64が動作不能になり、制御ユニット54が動作可能になる。
命令終了信号がアサートされると、制御ユニット選択論理101の出力のすべてがネゲートされる。ランダム制御論理62に対する動作不能信号をネゲートすることにより、ランダム制御論理62から実行ユニット56に与えられるタイミング制御信号を動作可能にする。制御PLA60に対するオプションの動作不能信号をネゲートすることにより、制御PLA60は第1状態シーケンサ58によりストローブされる。ランダム制御論理72に対する動作可能信号をネゲートすることにより、タイミング制御信号が動作不能になり、そのためこの信号はランダム制御論理72から実行ユニット56に与えられない。制御ROM70に対する動作可能信号をネゲートすることにより、制御ROM70は第2状態シーケンサ68によってストローブされない。
制御ユニット選択論理101からの出力信号がネゲートされる順序が重要であることに留意されたい。まず制御PLA60が動作不能になった場合は、再度動作可能にしなければならない。次に、ランダム制御論理62を再度動作可能にする。次にランダム制御論理72を動作不能にする。最後に制御ROM70を動作不能にする。
特殊制御転送命令を用いて実行ユニット56の制御を移す第2の実行例(図示せず)を以下に説明する。この第2の実行例では、制御転送信号は必要ない。代わりにデコーダ109が、特殊制御転送命令がいつ受け取られたのか、また実行ユニット56の制御が制御ユニット54から制御ユニット64にいつ転送されるのかを判定する。デコーダ109は、次に制御ユニット選択論理101に対して、制御転送信号の代わりの信号を与え、この信号が制御転送を開始することを知らせる。デコーダ109からのこの信号は、制御ユニット選択論理101に対して、制御転送信号に関して説明された効果と同じ効果を有する。
本発明の他の実施例では、2つ以上の制御ユニット間で実行ユニット56の制御を転送するために他の方法を用いるものもあることに留意されたい。特殊制御転送命令を用いる方法は、制御を転送するための一方法に過ぎない。また、ただ1つのカスタム命令の実行が終ると実行ユニット56の制御を制御ユニット54に自動的に返す代わりに、任意の数のカスタム命令を実行してから制御を制御ユニット54に返すことができるようにする方法を用いることもできる。
本発明の図示された実施例においては、CPUコア50がCPU制御拡張部52なしで用いられている場合は、特殊制御転送命令は用いてはならない。すなわち、制御ユニット64が組み込まれていない場合は、制御ユニット54は実行ユニット56の制御を保持しなければならない。このため、CPUコア50がCPU制御拡張部52なしに用いられると、特殊制御転送命令は不当なオプコードとして扱われる。ランダム論理62内の不当なオプコード回路構成(図示せず)が不当なオプコードを検出すると、データ処理システム10はリセットされる点に留意されたい。
しかし、CPUコア50をCPU制御拡張部52と共に用いるためには、制御ユニット54にわずかな改良が必要になる。すなわち、制御ユニット54を改良して、特殊制御転送命令が不当なオプコードとして扱われずに、実際に特殊制御転送命令として実行されるようにすることである。本発明のある実施例においては、この改良は単に、制御PLA信号の1つが、不当なオプコードが受信されたことを検出するランダム制御論理62の部分に入力されないようにする段階によって構成される。ある実行例においては、この改良は1つの導体に開路を作成するだけの簡単なものでよい。その結果、CPU50がCPU制御拡張部52と共に用いられたときに、特殊制御転送命令は不当なオプコードとして扱われない。本発明の他の実施例では、制御ユニット54と制御ユニット64との間で実行ユニット56の制御を転送するための異なる方法を用いることもある。実際に、制御を円滑に転送するほとんどすべての方法を用いることができる。たとえば、命令そのものの中にあるビット・フィールドを用いて、特定の命令の実行中に実行ユニットを制御するのが制御ユニット54であるか64であるかを指示することもできる。
あるいは、プログラミング可能な制御レジスタに、どの制御ユニットが現在実行ユニット56を制御しているのかを判定するビット・フィールドを入れることもできる。あるいは、拡張可能CPU12の外部から受信された信号を用いて、後続の命令の実行中に実行ユニットを制御するのが制御ユニット54であるか64であるかを指示することもできる。この外部信号は、データ処理システム10の別の部分で発生させても、集積回路ピンを介してデータ処理システム10の外部から受信してもよい。
図3を参照すると、多少の差異はあるが、図3に示された拡張可能CPU12’は、図2に示され上記に解説された拡張可能CPU12と同じである。拡張可能CPU12’には、回路構成のいくつかの新しいブロック、すなわち実行ユニット拡張部153と、ランダム制御論理拡張部175と、制御ROM拡張部171とが含まれる。
さらに、実行ユニット156の1つ以上の内部バス(すなわちEU内部バス)が、実行ユニット156の少なくとも1つの物理的端部に配線されている。このため実行ユニット拡張部153は、1つ以上のEU内部バスに追加され、直接結合されて、合成された実行ユニット153,156の機能性を高めている。実行ユニット拡張部153には、所望の回路構成、たとえば1つ以上のレジスタ,1つ以上の演算論理ユニット(ALU)および任意の種類の特殊機能回路構成が含まれることもある。
ランダム制御論理拡張部175は、実行ユニット拡張部153に含まれる回路構成を制御するためにランダム制御論理172に付加される拡張部または追加拡張部を表す。ランダム制御論理172は、実行ユニット156を全面的に制御するタイミング制御信号を発生する機能がある。しかし、ランダム制御論理172には、実行ユニット拡張部153を全面的に制御するタイミング制御信号を発生する機能はない。そのため、実行ユニット拡張部153を全面的に制御するためのタイミング制御信号を発生するために、ランダム制御論理拡張部175が必要になる。
同様に、制御ROM拡張部171は、実行ユニット拡張部153に含まれる回路構成を制御するために、制御ROM170に付加される拡張部または追加部を表す。制御ROM170は、実行ユニット156を全面的に制御するために必要とされる制御ROM信号を発生する機能がある。しかし、制御ROM170には、実行ユニット拡張部153を全面的に制御するために必要とされる制御ROM信号を発生する機能はない。そのため、実行ユニット拡張部153を全面的に制御するために必要とされる制御ROM拡張信号を発生するために、制御ROM拡張部171が必要になる。
図5に示される第1状態シーケンサ158は、図4に示される第1状態シーケンサ58と同じ方法で実現できる点に留意されたい。また、図7に示される第2状態シーケンサ168は、図6に示される第2状態シーケンサ68と同じ方法で実現できる点にも留意されたい。
図8では、条件コード・レジスタ228が、実行ユニット56内にあるという事実を除けば、実行ユニット56は従来技術の実行ユニットが機能するのと同じように内部で機能する。しかし、実行ユニット56のレイアウトは、制御ユニット54,64の両方が、実行ユニット56を制御するタイミング制御信号を設けることができ、さらに制御ユニット54,64の両方がステータス信号を受信できるようにするものでなければならない。タイミング制御信号が実行ユニット56を制御する方法の詳細については説明しない。しかし、タイミング制御信号は、従来技術と同じ方法で実行ユニット56を制御するために用いられる。
[概要と代替の実施例]
まとめると、本発明により、新しいCPUまたは従来技術のCPUを拡張可能なものとして、拡張可能CPU12または12’に回路構成を容易に追加して、現在においても将来においても、さまざまな顧客の必要性を満足させることができる。その結果、個々の顧客の融通性を図るためのコストが大幅に削減された。CPUに関して「拡張可能」という言葉は、既存のCPU回路構成に大きな変更を加えることなく、特定の指定された回路構成を単に追加するだけでCPUに新たな命令を追加することができることを意味するために用いられる。第2制御ユニット64と第2状態シーケンサ68とを追加するだけで、新しい命令を追加することができる。第2制御ユニット64の大部分は、元の制御ユニット54の複製でよいこと、また第2状態シーケンサ68は元の状態シーケンサ58の複製でもよい場合があることに注目されたい。本発明の実施例には、1つ以上のデコーダ89,99,109,119を必要としないものもある。
実行ユニット156の既存のリソースを利用する新しい命令を追加するだけでなく、新しいリソースを実行ユニット156の拡張部として追加することもできる。実行ユニット156の内部バスは、実行ユニット156の物理的端部に配線される。このため実行ユニット拡張部153は、実行ユニット156の1つ以上の内部バスに追加し、直接的に結合することができる。実行ユニット拡張部153は、レジスタ,他の演算論理ユニット(ALU),特殊機能回路構成または任意の所望の回路構成を追加することにより実行ユニット156の機能性を増大する。
本発明は、特定の実施例に関して図示および説明されているが、当業者は更なる改良および改善を思い付くだろう。たとえば、本発明の代替の実施例においては、CPUコア50とCPU制御拡張部52に関して代替のアーキテクチャを用いることができる。図2および図3に示されたアーキテクチャは、使用することのできる2つの可能なアーキテクチャに過ぎない。また、本発明は2つの制御ユニット54,64だけに限定されない。第1状態シーケンサ58と第2状態シーケンサ68の制御転送回路構成にわずかな改良を加えることで、本発明の他の実施例では3つ以上の制御ユニットを用いることができる。
本発明の代替の実施例においては、制御ユニット54も制御ユニット64もタイミング制御信号を駆動していない「非駆動」期間があることに留意されたい。タイミング制御信号が、「非駆動」時間の間(たとえば実行ユニット内部バスが予備充電されている間)に、実行ユニット56の内部状態を恒久的に変化させることができない場合は、「非駆動」時間によって拡張可能CPU12の動作が中断されることはない。
そのため、本発明は図示された特定の形態に制限されないこと、また添付の請求項は本発明の精神と範囲から逸脱しないすべての修正を含むものであることを理解されたい。
本発明のある実施例によるデータ処理システム10をブロック図に示したものである。 本発明のある実施例による図1の拡張可能な中央処理装置12をブロック図に示したものである。 本発明のある実施例による図1の代替の拡張可能な中央処理装置12’をブロック図に示したものである。 本発明のある実施例による図2の第1状態シーケンサ58をブロック図に示したものである。 本発明のある実施例による図3の第1状態シーケンサ158をブロック図に示したものである。 本発明のある実施例による図2の第2状態シーケンサ68をブロック図に示したものである。 本発明のある実施例による図3の第2状態シーケンサ168をブロック図に示したものである。 本発明のある実施例による図2の実行ユニット56の一部と、図3の実行ユニット156の同じ部分をブロック図に示したものである。
符号の説明
10 データ処理システム
12 拡張可能中央処理装置(CPU)
14 システム統合部
16 シリアル部
18 ランダム・アクセス・メモリ(RAM)
20 読み込み専用メモリ(ROM)(オプション)
22 その他のメモリ(オプション)
24 ポート論理
26 外部バス・インターフェース(オプション)
28 タイマ部
30 直接メモリ・アクセス(DMA)(オプション)
32 バス

Claims (2)

  1. 実行ユニット(56,156)を有するデータ処理装置(12,12’)における方法であって:
    前記実行ユニット(56,156)において、第1組の入力および第2組の入力を設ける段階;
    当該データ処理装置(12,12’)において、第1組の命令および第2組の命令をもたらす段階;
    当該データ処理装置(12,12’)において、第1組の命令に含まれ第2組の命令には含まれない第1命令を受信する段階;
    該第1命令の受信に応答して、第1組の入力にもたらされた制御信号を介して前記実行ユニット(56,156)を制御する段階;
    当該データ処理装置(12,12’)において、前記第1命令とは異なる拡張可能制御命令を受信する段階;
    該拡張可能制御命令の受信に応答して、当該データ処理装置(12,12’)を第2組の命令を受信できるよう可能化する段階;
    当該データ処理装置(12,12’)において、前記第2組の命令の一部であるが前記第1組の命令には含まれない第2命令を受信する段階;
    該第2命令の受信に応答して、前記第2組の入力にもたらされた制御信号を介して前記実行ユニット(56,156)を制御する段階;
    前記第1命令とは異なる第2の拡張可能制御命令を受信する段階;
    該第2の拡張可能制御命令の受信に応答して、当該データ処理装置(12,12’)を第1組の命令を受信できるよう可能化する段階;
    前記第1組の命令内の任意の命令を受信する段階;ならびに
    該任意の命令の受信に応答して、第1組の入力にもたらされた制御信号を介して、前記実行ユニット(56,156)を制御する段階;
    から構成されることを特徴とする方法。
  2. 中央処理装置(12,12’)であって:
    第1組の実行ユニット制御信号を発生する第1制御ユニット(54,154);
    第2組の実行ユニット制御信号を発生する第2制御ユニット(64,164);
    前記第1制御ユニット(54,154)と前記第2制御ユニット(64,164)とに結合された実行ユニット(56,156)であって、特殊制御転送命令以外の命令が実行されているときには、第1組および第2組の実行ユニット制御信号のうちの一方のみによって制御され、前記特殊制御転送命令の一部の間では第1組および第2組の実行ユニット制御信号の両方により制御される、実行ユニット(56,156);ならびに
    前記第1制御ユニット(54,154)と前記第2制御ユニット(64,164)とに結合された状態シーケンサ回路(58,68,158,168)であり、特殊制御転送命令の受信の結果として、第1組の実行ユニット制御信号から第2組の実行ユニット制御信号へと前記実行ユニット(56,156)の制御の転送を開始する、状態シーケンサ回路;
    によって構成されることを特徴とする中央処理装置。
JP2004261309A 1992-11-27 2004-09-08 拡張可能な中央処理装置 Expired - Lifetime JP3816932B2 (ja)

Applications Claiming Priority (1)

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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP31918593A Division JP3681182B2 (ja) 1992-11-27 1993-11-26 拡張可能な中央処理装置

Publications (2)

Publication Number Publication Date
JP2005050365A true JP2005050365A (ja) 2005-02-24
JP3816932B2 JP3816932B2 (ja) 2006-08-30

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 Before (1)

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

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)

Families Citing this family (16)

* 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)
JP3957948B2 (ja) 2000-04-12 2007-08-15 富士通株式会社 演算処理装置
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

Also Published As

Publication number Publication date
JPH0736691A (ja) 1995-02-07
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) 拡張可能な中央処理装置
US4878174A (en) Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions
EP1012735B1 (en) Eight-bit microcontroller having a risc architecture
KR100227277B1 (ko) 컴퓨터에 있어서 스칼라값을 벡터로 기입하는 방법
KR100272937B1 (ko) 마이크로프로세서및멀티프로세서시스템
US5412785A (en) Microprogrammed data processor which includes a microsequencer in which a next microaddress output of a microROM is connected to the or-plane of an entry PLA
US5155819A (en) Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions
JP2004056716A (ja) 半導体装置
US5838934A (en) Host port interface
US6438720B1 (en) Host port interface
EP0226991B1 (en) Data-processing device
US5546353A (en) Partitioned decode circuit for low power operation
US5345570A (en) Microprogram control circuit
US5396601A (en) Microprocessor system having a single, common internal bus transferring data and instructions in different states of a machine cycle
EP0136699B1 (en) Programmable controller
US20020004877A1 (en) Method and system for updating user memory in emulator systems
JPS6362778B2 (ja)
JP3760093B2 (ja) マイクロコンピュータ
EP0335502A2 (en) Microcontroller and associated method
JPH04255028A (ja) マイクロプロセッサ
US9471125B1 (en) Energy efficient processing device
JPS6258018B2 (ja)
JPH087679B2 (ja) マイクロプロセッサ
JP2002014945A (ja) マイクロコンピュータ
JP2002157236A (ja) 不揮発メモリ内蔵マイクロコンピュータとその不揮発メモリの自己書換方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051004

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20051222

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20051228

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060404

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: 20060516

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060608

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: 20100616

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100616

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110616

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130616

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term