JPH04220737A - プロセッサおよびデータ処理システム - Google Patents

プロセッサおよびデータ処理システム

Info

Publication number
JPH04220737A
JPH04220737A JP3070394A JP7039491A JPH04220737A JP H04220737 A JPH04220737 A JP H04220737A JP 3070394 A JP3070394 A JP 3070394A JP 7039491 A JP7039491 A JP 7039491A JP H04220737 A JPH04220737 A JP H04220737A
Authority
JP
Japan
Prior art keywords
memory
processor
data
order
data format
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
JP3070394A
Other languages
English (en)
Other versions
JP2690406B2 (ja
Inventor
Gary T Corcoran
ゲイリー ティ.コーコラン
Robert C Fairfield
ロバート チャールズ フェアフィールド
Akkas T Sufi
アッカス ティ スフィ
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.)
AT&T Corp
Original Assignee
American Telephone and Telegraph Co 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 American Telephone and Telegraph Co Inc filed Critical American Telephone and Telegraph Co Inc
Publication of JPH04220737A publication Critical patent/JPH04220737A/ja
Application granted granted Critical
Publication of JP2690406B2 publication Critical patent/JP2690406B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 【0001】 【産業上の利用分野】本発明は、一般的には、デジタル
データプロセッサに関し、特に共働プロセッサとして使
用されるプロセッサに関する。 【0002】 【従来の技術】プロセッサの価格が安くなるに従って、
より多くのデジタルデータ処理システムが現れ、そのい
くつかは共働プロセッサとして動作している。この共働
プロセッサとは、データ処理のために他のプロセッサと
共働するプロセッサである。従来例の共働プロセッサは
、浮動点演算を行う浮動点ユニットと、端末のような周
辺装置とシステムメモリとの間でのデータの流れを取り
扱うI/Oプロセッサである。 【0003】2つの共働プロセッサ間の関係は、概念「
固く結合される」及び「緩く結合される」により記載さ
れた端部を有する連続体に沿って存在する。1つの共働
プロセッサは、共働プロセッサどうしの間における直接
的な作用の度合いが高い場合には、他方の共働プロセッ
サに固く結合されている。例えば、浮動点ユニットどう
しは、一般的には固く結合されている。 【0004】浮動点ユニットによりサービスを受けるプ
ロセッサは、この浮動点ユニットに対してオペランドを
提供し、行われる動作を表示し、そして、浮動点ユニッ
トから直接的に結果を受信する。この結果は、一般的に
は、結果値を含むのみでなく、浮動点動作の状態を示す
信号をも有する。一方、I/Oプロセッサは、一般的に
は緩く結合されている。 【0005】これらのI/Oプロセッサがサービスを提
供するプロセッサとの通信は、一般的にはシステムメモ
リによっている。プロセッサが、データ出力のためにI
/Oプロセッサの援助を必要とするとき、このプロセッ
サは、出力データと、I/Oプロセッサが自分で行うこ
との説明を、I/Oプロセッサに知られたメモリ内の場
所に配置し、そして、データがメモリ内にあるというこ
とをI/Oプロセッサに表示する。 【0006】そこですぐ、I/Oプロセッサは、その表
示に応答してメモリからデータを検索し、その検索デー
タを所望の周辺装置に出力する。これがすむと、I/O
プロセッサはこのプロセッサに知られたメモリ内の場所
に動作状態の記録を記憶し、そして、このプロセッサが
メモリ動作を終了したということをプロセッサに表示す
る。このプロセッサは、次に、表示に応答して、出力動
作の状態を決定するためにその場所のデータを読みとる
。 【0007】メモリ共有の場合の問題は、このメモリを
共有するプロセッサどうしが共働して処理するデータの
フォーマットが一致しなければならないということであ
る。例えば、ホストプロセッサ用の民間に普及している
2つのアーキテクチャは、モトローラ680×0のアー
キテクチャとインテル80×86のアーキテクチャであ
る。これら2つのアーキテクチャは、連続的に書き込ま
れるバイトをメモリに記憶する順序とポインタ用の互い
に異なるフォーマットを有している。 【0008】いずれの種類のホストとも使用されるべき
共働プロセッサは、なんとかしてこれらの相違点を扱わ
なければならない。従来技術においてこれらの相違点を
扱う1つの方法は、ホストが、680×0マシンである
か叉はインテル80×86マシンのいずれであるかを示
す入力を持つ共働プロセッサのピンであった。この解決
方法は、ホストプロセッサがデータを書き込んだのとま
ったく同じ方法で共働プロセッサがデータを読む限り、
十分に役立つ。また、この逆も同様である。このような
解決方法の問題は、この共働プロセッサの速度を低下す
るか、叉は、異なった種類のホストプロセッサの場合に
異なる共働プロセッサ用のコードを書き込むかの選択を
システム設計者に与えるということである。 【0009】共働プロセッサが、ワード及びバイトを読
み取り、そして、ホストプロセッサが一連のバイトをメ
モリに書き込む場合、共働プロセッサがバイトを読む最
高速の方法は、例えば、ワードの通り行なうことである
。しかし、もしもそのようにされるならば、共働プロセ
ッサは、ホストプロセッサに依存して別々にワードを処
理しなければならない。従って、異なるコードが異なる
ホストマシンに必要となる。コードを書き込む速度及び
費用は、両方ともシステム設計者にとって重要な考慮事
項である。従って、その両方の代替事項は関心を起こさ
せるものではない。 【0010】 【発明が解決しようとする課題】本発明が解決しようと
する課題は、一連のバイトをワードとして読むと共に、
両方のホストプロセッサに同一コードを使用することが
できるプロセッサを提供することである。 【0011】 【課題を解決するための手段】ここに開示した発明は、
メモリ内に記憶されたデータ用の互いに異なるフォーマ
ットを使用する他の複数のプロセッサとメモリを共有す
ることができるプロセッサである。このプロセッサは、
データフォーマット依存表示手段を有する少なくとも1
つの命令を備えた命令を実行する。このデータフォーマ
ット依存表示手段は、本発明のプロセッサがメモリを共
有する他のプロセッサにより使用されるデータフォーマ
ットにその動作が依存するということを示す。 【0012】本発明のプロセッサは、データフォーマッ
トを表示するデータフォーマット信号を受信するデータ
フォーマット信号受信手段と、データフォーマット信号
と、データフォーマット依存表示手段に応答してデータ
フォーマットにより必要とされる命令により特定される
動作を行う動作手段とを有することを特徴とする。 【0013】 【実施例】本発明のマイクロプロセッサの好適な実施例
の以下の詳細な説明は、まず、マイクロプロセッサが如
何にしてデジタルデータ処理システム内における共働プ
ロセッサとして使用できるかを示し、次に、このマイク
ロプロセッサとこのようなシステムとの間のインタフェ
ースを開示し、そして、説明を続けることである。 【0014】・システムワード読み取り動作及びシステ
ムワード書き込み動作の共働プロセッサに依存する実行
。共働プロセッサとしてのマイクロプロセッサを使用す
るシステム:図1は、本発明のマイクロプロセッサが共
働プロセッサとして使用されるシステム101を示す。 このシステム101の構成要素は、メモリ102、シス
テムバス103、ホストプロセッサ105、専用メモリ
(PMEM)108を有する本発明のマイクロプロセッ
サ107、及びシリアルコントローラ(SCTL)10
9を有する。 【0015】これらの構成要素のすべては、システムバ
ス103により接続され、そして、ホストプロセッサ1
05、マイクロプロセッサ107及びシリアルコントロ
ーラ109は、すべてシステムバス103を介してメモ
リ102にアクセスする。専用メモリ108は、専用バ
ス(PB)110によりマイクロプロセッサ107に接
続されている。専用メモリ108は、マイクロプロセッ
サ107のみが利用可能である。 【0016】専用メモリ108の内容は、マイクロプロ
セッサ107により実行されるプログラムであり、そし
て、これらのプログラムの実行に使用されるデータを含
むものであっても良い。好適な実施例では、専用メモリ
108は、読み取り書き込みメモリであり、マイクロプ
ロセッサ107により実行されるプログラムは、メモリ
102から専用メモリ108内へマイクロプロセッサ1
07によってダウンロードされる。 【0017】図1のシステムでは、マイクロプロセッサ
107は、連続通信プロトコルにより送信叉は受信され
るデータを取り扱う共働プロセッサとして動作する。そ
れなりに、マイクロプロセッサ107は、連続通信プロ
トコルを介して送信叉は受信されるデータの源(ソース
)叉はデータの行く先となるホストプロセッサ105と
、シリアルリンク(SL)111に接続されて、このシ
リアルリンク111を介してシリアルプロトコルを送信
及び受信するシリアルコントローラ109との間で調停
を行う。 【0018】システム101の動作は、次の通りである
。ホストプロセッサ105は、SL111を介してデー
タを送信するために使用するメモリ102内の領域SD
ATA115と、SL111を介して受信されるデータ
用のRDATA117を維持している。ホストプロセッ
サ105は、データを送信したいとき、ホスト命令行列
(HCQ)119内にその趣旨の命令を置く。この命令
は、データ用の宛て先とSDATA115内のデータの
場所を少なくとも有している。 【0019】ホスト命令行列119は、マイクロプロセ
ッサ107に知られたメモリ102内の場所にあり、マ
イクロプロセッサ107は、新しい命令が到着したか否
かを判別するためにホスト命令行列119を周期的に調
査する。1つの命令が到着すると、マイクロプロセッサ
107は、SDATA115内において送られるべきデ
ータを探し、それをシリアルコントローラ109用の適
当な形に変え、ポインタをデータに付け、そして、命令
をマイクロプロセッサの命令行列(MPCQ)123内
に置く。 【0020】この行列は、シリアルコントローラ109
に知られたメモリ内の場所にあり、シリアルコントロー
ラ109は、マイクロプロセッサ命令行列123を周期
的に調査する。シリアルコントローラ109が、マイク
ロプロセッサ命令行列123の中に命令とポインタを発
見すると、シリアルコントローラ109は、このポイン
タにより明示された場所にあるデータを、その命令によ
り明示された方法でシリアルリンク111に出力する。 【0021】シリアルコントローラ109が、シリアル
リンク111でデータを受信すると、上記の事と逆の事
が起こる。シリアルコントローラ109は、受信したデ
ータをRDATA117に置き、そして、ポインタをマ
イクロプロセッサ割り込み行列(MPIQ)125のデ
ータに付す。マイクロプロセッサ107は、周期的にM
PIQ125を調査し、そして、このMPIQ125に
ポインタが存在するときに、このポインタにより示され
たデータをホストプロセッサ105用の適当なフォーマ
ットに変える。 【0022】そこで直ちに、マイクロプロセッサ107
は、ホスト割り込み行列(HIQ)121内に置けるデ
ータにポインタを有する割り込みメッセージを付し、割
り込み線13を介してホストプロセッサ105に割り込
みをかける。ホストプロセッサ105は、この割り込み
に応答してホスト割り込み行列121を調べ、そして、
入力データがRDATA117に置かれたということを
割り込みメッセージから判別する。 【0023】システム101とマイクロプロセッサ10
7との間のインタフェース:図2図2は132ピンパッ
ケージ内に置ける単一の集積回路として実施されたマイ
クロプロセッサ107の好適な実施例201のピンを示
す図である。他の実施例は数個のピンを多重化するもの
であってもよく、また他の実施例では、マイクロプロセ
ッサ107は、より大きな集積回路の構成要素であって
もよい。 【0024】例えば、マイクロプロセッサ107とシリ
アルコントローラ109は、連続プロトコルの取扱い用
の単一集積回路を形成するように組み合わせても良い。 マイクロプロセッサ107は、このような実施例ではそ
れ自身のピンは有しないが、依然として、好適な実施例
201のピンを介して送受信された信号にほぼ等価な信
号を送受信する。 【0025】好適な実施例201のうちの特定のピンは
、以下の説明においては特に重要である。それらは、M
ASTER/ 《SLAVE》ピン207、《BUSA
CK》ピン203、《BUSREQ》ピン205、I/
《M》ピン209、《DTACK》ピン211及びCL
OCKピン213である。これらのピン及びその他のピ
ンのすべての機能は次の表に要約してある。(本明細書
では、かっこ《》は否定を示す。すなわち、上付きのバ
ーを表す。これは、図面の表示と異なるが、意味すると
ころは同一と理解されたい。) 表       132ピンパッケージのピンの説明(完全
非多重インタフェース)              
記号          形式           
        名称/説明            
         A23〜A1      O*  
   メモリ102をアドレスするために使用され  
                         
     る24ビットアドレスバス。アドレス線A0
                         
       は、16ビットメモリでは必要とされな
いの                       
         で明示していない。このアドレス線
は、16                     
           ビットワードのどのバイトがア
クセスされる                   
             べきであったかを選択する
だけである。この                 
               情報は、メモリアクセ
ス時に2つの読み取り               
                 エネーブルストロ
ーブと2つの書き込みエネ             
                   ーブルストロ
ーブにより与えられる。            D1
5〜D0    I/O*   メモリ102の読み取
り及び書き込みに使用               
                 される16ビット
データバス。                PA1
5〜PA0    O      専用メモリ108を
アドレスにするため使用              
                  される16ビッ
ト専用アドレスバス。          PD23〜
PD0   I/O   通常は命令を保持するが、専
用メモリ108                  
              がRAMの場合にデータ
の記憶に使用しても                
                よい専用メモリ10
8の読み取り及び書き込              
                  みに使用される
24ビット専用データバス。        《AS》
        O*     アドレスストローブ。 マイクロプロセッサ1               
                 07が、有効なア
ドレスをシステムバス10             
                   3に置いたと
きに活性化する。                 
  R/《W》       O*     読み取り
叉は書き込みのデータバス方向表示         
                       子。                          
                  《ERE》  
     O*     偶数読み取りエネーブルデー
タストローブ。       《ORE》      
 O*     奇数読み取りエネーブルデータストロ
ーブ。       《EWE》       O* 
    偶数書き込みエネーブルデータストローブ。 
      《OWE》       O*     
奇数書き込みエネーブルデータストローブ。     
                         
                         
                      《DT
ACK》      I     データ転送(読み取
り/書き込み)応答信号              
                  。      
                         
           《BUSERR》     I
     システムバスエラー入力信号。      
           《INTIN》      I
     マイクロプロセッサ107への割り込み入力
                         
       。                 
                         
《INTOUT》     O     他のプロセッ
サへの割り込み出力。               
《PWR》        O     専用メモリ1
08への書き込み時に活性化す           
                     る専用バ
ス書き込みストローブ。              
 《RESET》      I     マスタリセ
ット、活性時にすべての3状態ピ          
                       ン。                          
                《TEST》   
    I     低駆動時に3状態すべてのピン。                  CLOCK   
     I     マスタクロック入力。    
                      MAS
TER       I     マイクロプロセッサ
108が、バスマスタか    /《SLAVE》  
          叉はバススレーブ(リクエスタ)
であるかを                    
            選択する。マイクロプロセッ
サ108は、こ                  
              のピンがVDDに結合さ
れている場合にはバ                
                スマスタであり、ピ
ンが接地されているとき              
                  はバススレーブ
である。                     
      I/《M》      I     シス
テムメモリフォーマットセレクタ。この       
                         
ピンは「モトローラ」メモリフォーマットを     
                         
  選択するように接地され、叉は、「インテル   
                         
    」メモリフォーマットを選択するようにVD 
                         
      Dに結合されるものとする。      
            《BUSREQ》   I:
O   バスリクエスト。マイクロプロセッサ107 
                         
      がバスマスタの場合に、それは、システム
バ                        
        スの使用を要求する他の装置からの入
力であ                      
          る。マイクロプロセッサ107が
バススレー                    
            ブの場合に、それは、システ
ムバスの使用を                  
              要求する出力として使用
される。              《BUSACK
》   O:I   バス肯定応答。マイクロプロセッ
サ107が                    
            バスマスタの場合、それは、
マイクロプロセ                  
              ッサ107がシステムバ
スの使用を止めたと                
                きに活性化する出力
である。PACERがバ              
                  ススレーブの場
合、それは、システムバスの            
                    使用が認め
られたときに活性化する入力であ          
                      る。 
                         
                   VDD   
      電力    +5ボルトの電源接続。  
                         
GND         電力    接地(電源復帰
)接続。                    【
0026】上の表より分かるように、この好適な実施例
は、システム101で使用されるように意図されている
。ここでメモリ102は、16ビットワ−ドを有し、そ
して、バイトのアドレスが可能である。システムバス1
03は、従って、23本のアドレス線、16本のデータ
線、及び制御線を有している。 【0027】ある実施例では、制御信号《BUSACK
》、《BUSREQ》、《BUSERR》、CLOCK
、《DTACK》、《RESET》、《INTIN》、
《INTOUT》、《EWE》、《OWE》、《ERE
》、《ORE》、《AS》は、システムバス103の一
部であってもよい。他の実施例では、それらはシステム
101とマイクロプロセッサ107との間を調停するマ
イクロプロセッサ107の外部の他の論理回路に設ける
か、叉は、この論理回路から受信されるものであっても
よい。 【0028】好適な実施例のICの構成好適な実施例の
集積回路は、CMOS標準セル技術を用いて構成された
。マイクロプロセッサ107用の制御論理回路の多くは
、次のごとく明示された。まず、状態機械が、制御論理
回路の一定の部分について定義された。 【0029】この状態機械は、制御論理回路の一定の部
分により制御されるシステムの部分の状態と、これら状
態間の移行とにより成るものであった。次に、この状態
機械用のエミュレータは、「C」言語で記載された。こ
のエミュレータは、状態機械の正しさを確認するために
試験された。そこですぐ、エミュレータ符号が、いわゆ
る「シリコンコンパイラ」への入力として使用された。 【0030】このシリコンコンパイラの出力は、エミュ
レータ符号により記載された状態機械を構成した好適な
実施例の集積回路の回路の仕様であった。 【0031】マイクロプロセッサ107を構成するため
に使用されたツールは、十分に現状技術内に入るのもの
であった。この事実、及び、マイクロプロセッサ107
の論理回路が構成される方法の上記の開示から分かるよ
うに、状態機械の説明は、この状態機械を構成する回路
を作り、かつ、使用する当業者により要求されるものだ
けであった。 【0032】マイクロプロセッサ107の命令アーキテ
クチャ:図11今まで記載したマイクロプロセッサ10
7の革新的な点は、マイクロプロセッサ107と、この
マイクロプロセッサ107を使用するシステム101と
の間のインタフェースに関するものであった。他の革新
的な点は、マイクロプロセッサ107により実行される
特定の命令に関するものである。つぎの説明は、まず、
マイクロプロセッサ107の命令アーキテクチャの概要
を提供し、次に、特に重要な命令を詳細に述べる。 【0033】図11は、マイクロプロセッサ107の命
令アーキテクチャ1101を示し、すなわち、この図は
、マイクロプロセッサ107の命令の組の一部の命令よ
りなる符号を書くプログラマに見えるままのマイクロプ
ロセッサ107を示す。レジスタ及び命令アーキテクチ
ャ1101の他の構成要素の各々は、論理装置を表し、
この論理装置の動作は、その命令の組の命令に明示され
よう。その説明は、以下のレジスタで始める。 【0034】レジスタ 命令アーキテクチャ1101には256個の汎用レジス
タ1103(0〜255)と14個の専用レジスタが存
在する。汎用レジスタ1103256個の汎用レジスタ
1103は、汎用レジスタファイル1104を構成する
。汎用レジスタ1103は、マイクロプロセッサ107
内で処理されるデータを記憶するために一般的に使用さ
れる。 【0035】各汎用レジスタは、24ビット幅のもので
あるが、これらの汎用レジスタは、アドレッシングのた
めに小さく分けてもよい。汎用レジスタ1103のアド
レッシングは、図12に示してある。各汎用レジスタは
、0と255との間におけるアドレスによって直接明示
してもよく、叉は、フレームポインタ(FRMPTR)
レジスタ1117に含まれる値からのオフセットによっ
て明示してもよい。このアドレスされたレジスタ内には
、次の部分を明示してもよい: 【0036】 ・低バイト1157:アドレスされたレジスタのビット
0〜7: ・中間バイト1159:アドレスされたレジスタのビッ
ト8〜15: ・高バイト1161:アドレスされたレジスタのビット
16〜23; ・低ワード1163:アドレスされたレジスタのビット
0〜15; ・高ワード1165:アドレスされたレジスタのビット
08〜23;及び、 ・全レジスタ1167:アドレスされたレジスタのビッ
ト0〜23。 【0037】内部データバス(IDB)1115につい
ては、汎用レジスタは、ソースレジスタ(読取り動作)
か叉は行き先レジスタ(書き込み動作)のいずれかとな
り得る。汎用レジスタ1103がソースの場合、この汎
用レジスタの特定部分は、内部データバス1115の下
位のビットに出力される。内部データバス1115の残
りのビットは、0にセットされる。汎用レジスタ110
3が行き先レジスタの場合、その部分に要求される内部
データバス1115のビット数は、内部データバス11
15の下位ビットで始まる部分に書き込まれる。 【0038】上記のことから分かると思われるが、1つ
の汎用レジスタ1103からのバイト叉はワードを他の
汎用レジスタ1103のバイト叉はワードに書き込むこ
とがソース汎用レジスタまたは行き先汎用レジスタ11
03のいずれかの残りの部分を乱さずに可能である。 【0039】専用レジスタの説明を続けるに、これらの
専用レジスタの大部分は、24ビット幅のものである。 一般的に、専用レジスタのすべては、大部分の命令につ
いてソース叉は行き先のいずれかにもなり得る。1つの
例外は、アキュムレータ(ACC)1109である。こ
れは、多くのレジスタの移動の直接的な行き先にはなり
得ない。 【0040】PSW1119 PSW1119はプロセッサ状態ワードレジスタである
。PSW1119のフォーマットは次の通りである:ビ
ット#     11  10 9  8  7  6
  5  4   3    2   1  0   
         SWB  T  I  X  A 
 B  F  L  ET  EX  Z  C   
                     ビットの
意味は、次の表に与えてある。   簡略記号       完全名称        
                説明       
              C        桁上
げ              ALO演算からの桁上
げフラグ              Z      
  ゼロ                ALU演算
からのゼロフラグ                E
X      外部エネーブル      外部割り込
みをエネーブルする              ET
      タイマエネーブル    内部タイマ割り
込みをエネーブルする        L      
  LIFO割り込み    内部LIFOがオーバー
フロー/アンダー                 
                 フローするときに
セットする                F   
     FRMPTR割り込  FRMPTRの加算
/減算がオーバーフロ              み
                  ー/アンダーフ
ローするときにセットする    B        
バス誤り例外        《BUSERR》ピンが
表明されるときに                 
                 セットする   
                         
    A        アドレス誤り例外    
奇数のアドレスが、ワード叉は長I/O用      
                         
   に使用されるときにセットする        
      X        外部割り込み    
    外部割り込みが認識されたときにセットす  
                         
       る                 
                       I 
       不正命令            不正
命令が復号されたときにセットする      T  
      タイマ割り込み      内部タイマが
割り込むときにセットする      SWB    
バイト交換ビット    I/Nの影響を逆にするため
にセットする  【0041】 リセットにおいては、
PSW1119のすべてのビットが0にクリアされる。 かくして、桁上げ及びゼロフラグはクリアされ、外部割
り込み及びタイマ割り込みはエネーブルされない。 【0042】PSW1119は、まさに他の専用レジス
タのように読取り叉は書き込みされてもよい。この場合
、書き込みは、しばしば、割り込みエネーブルフラグの
1つ叉はSWBビットを変更するためにしばしば使用さ
れる。しかし、ビット4〜10、すなわち、割り込み状
態フラグビットの場合、動作命令はこれらのビットをク
リアすることができるだけであり、これらのビットは、
動作命令によりセットすることはできない。換言すれば
、0を書き込むと、割り込み状態ビットがクリアされ、
1を書き込むと、割り込み状態ビットは変化されずに残
る。 【0043】従って、特定の割り込み状態をクリアする
ためには、クリアしないことを望まれる割り込み状態ビ
ットは、このPSW1119に書き込まれるワード内で
1にセットされてそれを変更すべきである。クリアする
ことが望まれる割り込み状態ビットは、PSW1119
に書き込まれるワードの対応ビット位置において0を有
するべきである。 【0044】ACC1109は、24ビットレジスタで
ある。これは、ALU1107による演算の結果を記憶
する。8ビット叉は16ビットのALU演算の場合、A
CC1109の24ビットすべては、影響を受けるが、
その8個叉は16個の下位ビットだけが有効な情報を有
する。 【0045】内部データバス1115については、EC
C1109は、ソースのみとなるが、ALU1107に
その内部データに対し如何なる演算もさせないことによ
り、汎用レジスタ1103からACC1109にローデ
ィングを可能にする命令が存在する。ECC1109も
、また、ELU1107にその入力値に対し如何なる演
算もさせないことによってBレジスタ1105から格納
してもよい。 【0046】Bレジスタ1105Bレジスタ1105は
、24ビットレジスタである。これは、ALU演算命令
についてALU1107にオペランドの一つを提供する
。ALR1145ALR1145は、24ビットのアド
レスラッチである。これは、システムメモリ102の読
取り動作用の有効なアドレスを保持するために使用され
る。 【0047】ALW1146 ALW1146は、24ビットのアドレスラッチである
。これは、システムメモリ102に対する書き込み動作
用の有効なアドレスを保持するために使用される。 【0048】IL1149 IL1149は、外部システムメモリの読取り動作から
の入力データを保持するために使用される24ビットレ
ジスタである。その命令の組は、8ビットの読取り、1
6ビットの読み取り、及び、24ビットの読取りを定義
する。この24ビットの読取りは、実際には、システム
メモリ102内の連続的なアドレスの場所に対し2シス
テム読取りを行う。 【0049】OL1151 OL1151は、外部システムメモリ書き込み動作用の
出力データを保持するために使用される24ビットレジ
スタである。その命令の組は、8ビットの書き込み、1
6ビツトの書き込み及び24ビットの書き込み命令を定
義する。この24ビットの書き込み命令は、実際には、
連続するアドレスの場所に2システム書き込みを行う。 【0050】FRMPTR1117 FRMPTR1117は、8ビットレジスタである。汎
用レジスタ1103は、FRMPTR1117に記憶さ
れた値から+127〜−127にわたるオフセットによ
ってアドレスされてもよい。FRMPTR1117は、
内部データバス1115から読み取られ及びこれに書き
込まれても良く、従って、サブルーチンが開始されると
き待避され、且つ、新しい値にセットされ、そして、こ
のサブルーチンからの復帰時にその古い値に復旧されて
もよい。これにより、サブルーチンにより使用される局
部変数のスタックとして汎用レジスタ1103を使用す
ることが可能となる。 【0051】PC1127 PC1127は、16ビツトのプログラムカウンタであ
る。これは、内部ROM及び(叉は)専用メモリ108
の両方に記憶された命令へのアクセスによってプログラ
ムの流れを制御するために使用される。各クロックサイ
クル時に、PCの出力は一時的に16ビットラッチに記
憶される。このラッチから、そのデータは、後入れ先出
し(LYFO)スタック1125に記憶することができ
る。 【0052】このスタックは、サブルーチンの復帰と割
り込みの復帰を実施するために使用される。PC112
7への入力は、LIFO1125と内部データバス11
15からのものである。その出力はLIFO1125,
IDB1115及び専用データバス108に与えられる
。 【0053】注意:PC命令により移動を実施する場合
、このPC命令は、16ビット幅のみのものであるので
、PCビットの上の6ビット(21〜16)は、内部ス
タックポインタの現在の値を含んでいる。この値は、実
際には、内部スタックに関するアドレスの数の合計であ
る。これらのビットは、致命的な誤りを持つプログラム
の事後分析中、調査のためLIFO1125のポップオ
フに対して、多くのアドレスを知らせ得るように設けら
れている。PCへの移動は、このPCの16ビットに影
響するだけである。 【0054】IT1123 IT1123は、24ビットの内部タイマレジスタであ
る。これは、この内部タイマレジスタが0になって、お
そらく、割り込みを発生したときにダウンカウンタを初
期化し、かつ、再びこのダウンカウンタにローディング
をするために使用される値を含んでいる。 【0055】STACKREG1133STACKRE
G1113は、「ポップスタック」命令が実行されると
きにLIFO1125からの出力を記憶するために使用
される16ビットのレジスタである。このポップスタッ
ク命令とSTACKREG1113は、破局的な例外に
関する割り込み処理ルーチンにのみ使用されるように、
すなわち、FRMPTR叉はLIFOオーバーフロー/
アンダーフローの例外、叉は、バスエラー叉はアドレス
エラーの例外を取り扱うように意図されている。STA
CKREG1133により、LIFO1125の内容は
、なぜ破滅的な故障が生じたかを判別するための事後解
析中に検査することが可能となる。 【0056】マイクロプロセッサ107における命令マ
イクロプロセッサ107により実行される命令の特定の
態様は、特に重要である。これらの態様の説明は、一般
的にマイクロプロセッサ107での命令の実行の説明で
始まるが、これらの態様が、この命令の幾つかに現れる
場合の態様を取り扱う。 【0057】マイクロプロセッサ107における命令の
実行:図21 プロセッサにおける命令の実行を加速するために広く使
用されている1つの技術は、パイプライニング方式であ
る。どんな命令の実行も、幾つかの段階を有している。 例えば、1つのレジスタから他のレジスタへデータを移
動するMOVE命令の場合、MOVE命令を取り出し、
これを復号化してこれがMOVE命令であるということ
を決定し、かつ、どのレジスタが移動されるデータのソ
ースとなるか、及び行き先となるかを決定し、かつ、ソ
ースレジスタから行き先レジスタへデータを移動するこ
とにより命令を実際に実行することが一般的に必要とな
る。 【0058】命令の実行がパイプライン方式の場合、実
行段階が、互いに異なる命令で並列に行われる。例えば
、もしも、パイプライン方式のプロセッサが、順序n1
、n2及びn3で3つの命令を実行する場合、このプロ
セッサは、n1での実行段階、n2での復号段階及びn
3での取り出し段階を同時に実行してもよい。 【0059】マイクロプロセッサ107は、2つのパイ
プラインを有している。その最初のパイプラインは、命
令パイプラインである。どの命令の実行も、3つの段階
、すなわち、取り出し、復号化及び実行に分割され、こ
れらの段階は平行して行われる。従って、マイクロプロ
セッサ107は、CLOCK信号501のサイクル当た
り1つの命令を実行することが一般的に可能である。 第2のパイプラインはI/O命令パイプラインである。 これは、命令パイプラインとは独立にI/O命令の実行
のより後の段階を取り扱う。 【0060】図21は、これら2つのパイプラインの動
作を示す。各パイプラインの動作は、表の形で示してあ
り、その行は、命令実行段階に対応し、列は、CLOC
K501のサイクルに対応する。表1901は、命令パ
イプラインを表わし、表1909は、I/Oパイプライ
ンを表わす。すでに述べたように、命令パイプライン1
901には3つの実行段階がある。すなわち、取り出し
(F)段階1903、復号化(De)段階1905及び
実行(E)段階1907である。 【0061】I/Oパイプライン1909には2つの段
階がある。すなわち、ボックス1135により図11に
示したマイクロプロセッサ107のI/Oサブシステム
のレジスタに、演算に要するアドレスをローディングす
るローディング段階(L)1911と、アドレスとデー
タをバス103を介して転送する実行I/O段階(EI
O)1913である。EIO段階1913は、データの
転送が完了するまで、すなわち、《DTACK》信号が
メモリ102から受信されるまで続く。 【0062】最小限、EIO段階1913は、バイトと
ワードの読み取り及び書き込みの場合には、2クロック
サイクル続き、そして、バイトとワードの読み取り−変
更−書き込み及びポインタの読み取り及び書き込みの場
合には4クロックサイクル続く。もしも、マイクロプロ
セッサ107が、バスへのアクセスを待たなければなら
ない場合、叉は、メモリ102が直ちに応答できない場
合は、さらに別のサイクルが要求される。 【0063】図21は、4つの命令、すなわち、入力ラ
ッチ1149からメモリ102に対しデータを書き込む
システム書き込み命令SysW1、出力ラッチ1151
からデータを書き込む第2のシステム書き込み命令Sy
sW2、I/O命令を除くどんな命令にもなり得るNI
O1、及び、他のこのような命令NIO2のシーケンス
の実行を示す。 【0064】サイクルnでは、命令パイプライン190
1は、SysW1のF段階1903を実行し、サイクル
n+1では、SysW2のF段階1903と、SysW
1のDe段階1905を実行し、サイクルn+2では、
NIO1のF段階1903、SysW2のDe段階19
05、及びNIO1のE段階1907を実行する。以下
同様である。 【0065】I/Oパイプライン1909は、サイクル
n+2でSysW1を受け、そして、同一サイクル内で
それに対してローディング段階L1911を行う。サイ
クルn+3では、I/Oパイプライン1909は、Sy
sW2に対し段階Lと、SysW1に対しEIO段階1
913を行う。この段階は、SysW1については2サ
イクル、すなわち、サイクルn+4まで続く。従って、
SysW2は、サイクルn+5までEIO段階1913
を開始することができない。EIO段階1913は、S
ysW2については3サイクル以上続き、そして、Sy
sW2は、図21に示した最後のサイクルn+7におけ
るその段階に依然としてある。 【0066】I/Oパイプライン1909は、命令パイ
プライン1901とは独立に動作するので、命令パイプ
ライン1901の命令の実行は、EIO段階1913が
SysW1叉はSysW2について完了するまで待つ必
要はない。I/Oが続行している間、命令パイプライン
1901は、NIO1とNIO2を実行する。もちろん
、I/Oパイプライン1909を待つために命令パイプ
ライン1901を停止することは時々必要となるかもし
れない。 【0067】この状態が起こるのは、次のI/O命令が
E段階1907を開始したときにすでにL段階1911
にI/O命令が存在していた場合である。他のこのよう
な状態は、I/Oパイプ1909により依然として実行
されていたI/O命令により提供されつつあったNIO
命令のE段階1907におけるデータを、このNIO命
令が必要とした場合に起こる。 【0068】命令フォーマット:図13図13はマイク
ロプロセッサ107により実行される「MOVE(移動
)」命令を示す。この図から分かるように、マイクロプ
ロセッサ107の命令は、24ビットの命令ワード12
01からなっている。この命令の大部分は、単一命令ワ
ード1201からなる。しかし、24ビットの文字通り
の定数に関する幾つかの「MOVE」命令及び「LOA
D」命令は、2ワードを必要とする。 命令パイプライン1901が停止される時を除き、マイ
クロプロセッサ107は、クロックサイクル当たり1命
令ワード1201を取り出す。 【0069】「MOVE」命令:図13及び14「MO
VE」命令は、マイクロプロセッサ107のレジスタど
うしの間でデータを移動させる。データを移動する元の
(ソース)レジスタはソースレジスタであり、データを
受けるレジスタは行き先レジスタである。移動命令には
4つの種類がある。すなわち、 【0070】・ソースレジスタと行き先レジスタの両方
が汎用レジスタ1103である種類0、・汎用レジスタ
1103がソースレジスタであり、そして、特別レジス
タの1つが行き先レジスタである種類1、・特別レジス
タの1つが、ソースレジスタであり、汎用レジスタ11
03の1つが行き先レジスタである種類2、及び、・特
別レジスタがソースレジスタであり、もう1つの特別レ
ジスタが行き先レジスタである種類3。 【0071】種類0の命令は、図13の1225として
示した部分に示してある。これらの命令は、2つのワー
ド、すなわち、命令ワード1(IW1)1215と命令
ワード2(IW2)1217を有する。IW1  12
15で始まり、上位の桁4ビットは、演算符号(OPC
ODE)1203を有し、次の4ビットは、ドントケア
フィールド1205であり、続く4ビットのTYPE1
207は、移動命令の種類を特定する。 【0072】種類0で、TYPE1207は、値000
0を有し、SIZEフィールド1209は、ソースの汎
用レジスタ1103の内容のどんな部分が行き先汎用レ
ジスタ1103へ移動されるべきかを示す。この符号及
びこの符号が特定する汎用レジスタ1103の部分は次
の通りである: 【0073】 SIZE符号        レジスタ部001   
       低バイト1157010       
   中間バイト1159100          
高バイト1161011          低ワード
1163110          高ワード1165
111          全レジスタ1167参照番
号は図12に関するものである。 【0074】残りの9ビットは、ソースレジスタである
汎用レジスタ1103を特定する。Fビット1211は
、汎用レジスタ1103がフレームポインタ1117か
らのオフセットによって特定されるか否かを示す。もし
特定されるならば、汎用レジスタのソースフィールド1
213は、オフセットを含む。もしも特定されないなら
ば、汎用レジスタのソースフィールド1213は、汎用
レジスタ1103の番号を含む。 【0075】命令ワードに1217の12個の上位のビ
ットは、ドントケアビット1219である。そのビット
9〜11は、SIZEフィールド1209であり、命令
ワード21217のSIZE1209の符号は、データ
を受ける行き先汎用レジスタ1103の部分を特定する
。命令ワード21217におけるSIZEによって特定
される部分が、命令ワード11215におけるSIZE
によって特定される部分より大きい場合、上位のビット
は、0で充填され、もしもその部分が小さいならば、余
分な上位のビットは廃棄される。 【0076】残りの9ビットは、Fフィールド1211
と汎用レジスタ行き先フィールド1221を含む。これ
らは、協力して、対応するフィールドが命令ワード11
215のソース汎用レジスタを特定するのと同じ方法で
行き先汎用レジスタ1103を特定する。 【0078】種類0の移動命令1215の実行は、パイ
プライン図表1223に示してある。サイクルnにおい
ては、IW1  1215が取り出される。サイクルn
+1においては、IW2  1217が取り出され、そ
して、IW1  1215が復号化される。この復号化
は、どの汎用レジスタ1103がソースレジスタである
かの計算と、SIZEフィールド1209によって特定
される部分を内部データバス1115に接続されたラツ
チ内へ読み込みを必要とする。 【0079】サイクルn+2では、IW2  1217
は復号化されてどの汎用レジスタ1103が行き先レジ
スタであるかを決定し、そして、同一サイクルで、ラッ
チの内容が、SIZEフィールド1209により特定さ
れた行き先汎用レジスタ1103の部分に読み込まれる
。 【0080】種類1と種類2の移動命令は、1233と
して図13の部分に示してある。種類1の命令は、その
ソースとしての汎用レジスタ1103と、その行き先と
しての特別レジスタを有している。種類2の命令は、そ
のソースとして特別レジスタと、その行き先としての汎
用レジスタ1103を有している。種類フィールド12
07の値を除き、その二つの種類のフォーマットは同一
である。 【0081】上位の4ビットは、演算コード1203で
あり、次の4ビットのSPR1227は、特別レジスタ
の一つを特定する符号であり、そして、次ぎにSIZE
フィールド1209が続き、最後に、Fフィールド12
11と、汎用レジスタ1103を特定するGRフィール
ド1229が来る。特別レジスタ及び汎用レジスタがソ
ース及び行き先であるか或いはまたこの逆であるかは、
TYPEフィールド1207の値に依存する。SIZE
の効果は次の通り; 【0082】・汎用レジスタ1103がソースレジスタ
の場合、SIZE1209により特定される部分は、2
4ビットより少なく、その特定部分は、IDB1115
の下位のビットに置かれ、そして、残りのビットは、0
にセットされる。・もしも汎用レジスタ1103が行き
先レジスタであり、そして、SIZE1209により特
定される部分が24ビットより少ない場合、この特定部
分は、IDB1115の下位のビットから書き込まれる
。 【0083】命令パイプライン1901の種類1叉は種
類2のMOVE命令の実行は、図表1231に示してあ
る。サイクルnでは、命令が取り出され、サイクルn+
1では、ソースと行き先が決定され、サイクルn+2で
は、データがソースから行き先へIDB1115を介し
て書き込まれる。 【0084】種類3の移動命令は、ソース特別レジスタ
から行き先特別レジスタへデータを移動させる。この命
令は、図14に参照番号1241で示してある。この命
令は、ビット20〜23での演算コード1203、行き
先特別レジスタを特定するビット16〜19のコード、
ビット12〜15でのTYPE1207、及びソース特
別レジスを特定するビット0〜3での符号を有している
。ビット4〜11は、「ドントケア」ビットである。 SIZEフィールド1209の不存在が意味するように
、この命令は、常に、24ビットを移動させる。パイプ
ラインでの実行は、種類1と種類2の命令の場合とほぼ
同一である。 【0085】マイクロプロセッサ107のシステムメモ
リI/O:図2と図9マイクロプロセッサ107が種々
のシステムでの効率的及び融通制ある使用に特に適して
いる別の領域は、システムメモリI/Oである。システ
ムメモリI/Oでは、データは、システムバス103を
介してメモリ102から読み取られ、そして、メモリ1
02に書き込まれる。マイクロプロセッサ107の好適
な実施例201では、マイクロプロセッサ107は、1
6本のデータラインと23本のアドレスラインによって
システムバス103に接続されている。 【0086】各アドレスは、メモリ102内の16ビッ
トワードを特定する。マイクロプロセッサ107により
実行されるシステムI/O動作は、バイト、16ビット
ワード、及び24ビットポインタの読み取り及び書き込
み、並びに、バイト及びワードの読取り−変更−書き込
みを含む。バイトの読取りの場合、信号《ERE》及び
《ORE》(図2参照)は、アドレスにより特定された
ワードの偶数バイト叉は奇数バイトが読まれているか否
かを特定する。バイトの書き込みの場合に、対応する信
号は、《EWE》と《OWE》である。 【0087】図9は、システムメモリバイト読みだしの
タイミングを示す。すなわち、マイクロプロセッサ10
7がバス103に対し一度アクセスをすると、バイト読
み出しは、バス103で最小2サイクルのクロック50
1を必要とする。すなわち、1つは、アドレス、アドレ
スストローブ信号《AS》及び《ERE》叉は《ORE
》のいずれかをバスに与えるものであり、もう1つは、
バス103からデータを受信するためのものである。こ
のタイミングは、バイトの書き込み及びワードの読取り
及びワードの書き込みについて上に示したものとほぼ同
様である。 【0088】24ビットのポインタの読取り及び書き込
み動作には、4サイクルが必要である。すなわち、ポイ
ンタの2バイトについて上記の2サイクル及び第3のバ
イトについての更に2サイクルである。読取り−変更−
書き込み命令には最小4サイクルが必要である。すなわ
ち、読取りに2サイクル、書き込みに2サイクルである
。メモリ102が直ちに応答することができない場合、
更に時間がI/O動作のどれにも要求される可能性があ
る。 【0089】この理由で、メモリ102が、データを読
取り動作で提供したとき、叉は、書き込み動作でデータ
を受信したときに、メモリ102は、マイクロプロセッ
サ107へ《DTACK》信号を提供する。マイクロプ
ロセッサ107は、読取り動作叉は書き込み動作の第2
番目のサイクルを完了する前に、《DTACK》信号を
待つ。 【0090】 I/Oの部分1135:図11 マイクロプロセッサ107のシステムI/O命令用の命
令アーキテクチャは、図11のI/Oの部分1135に
示してある。部分1135のレジスタは、内部データバ
ス1115によって利用可能である。プログラマ明示可
能レジスタは、読取り動作時に、24ビットのアドレス
をローディングされるALR1145、書き込み動作時
にアドレスをローディングされるALW1146、読取
り動作時にシステムバス103からデータを受信する入
力ラッチ1149、及び、書き込み動作時にシステムバ
ス103に書き込まれるデータを受信する出力ラッチ1
151を有する。 【0091】入力ラッチ1149と出力ラッチ1151
は、24ビットレジスタである。バイトI/O動作は、
8個の下位ビットを読み取り、叉は、書き込み、ワード
動作は、16個の下位ビットを読み取り、叉は、書き込
み、そして、ポインタ動作は、全レジスタを読み取り、
叉は、書き込む。 【0092】部分1135は、更に、I/Oパイプライ
ン1909の一部であるレジスタを有している。影アド
レスラッチ(SAL)1141は、前のI/O命令がE
IO段階1913を離れる前に、ローディング段階19
11に入ったI/O命令のアドレスを保持する。影出力
ラッチ(SOL)1155は、続くI/O命令がローデ
ィング段階1911を開始し、かくして、書き込み動作
が完了する前にOL1151をローディングに利用可能
にするときに、EIO段階1911にある書き込み命令
により出力されるべきデータを保持する。 【0093】I/Oパイプライン1909の動作は、次
の通りである。I/O命令がローディング段階1911
に入るときにパイプラインが空の場合、ALR1145
は、I/O命令が読み取り命令の場合にローディングさ
れる。もしもそれが書き込み命令の場合、OL1151
は、前のMOVE命令によりローディングされており、
ローディング段階1911は、ALW1146にローデ
ィングする。 【0094】書き込み命令に関するEIO段階1913
の最初のサイクル時に、OL1151の内容が、SOL
1155に移動されて、同じサイクル叉は後でMOVE
命令によりローディングされるべきOL1151を解放
する。マイクロプロセッサ107がバス103に対する
アクセスを得た後で、EIO段階1913の第1のサイ
クル時に、SOL1155のデータとALW1146の
アドレスが、メモリ102が《DTACK》信号で応答
するまで、バス103に出力される。 【0095】次のI/O命令がローディング段階191
1に入るときにすでにI/O命令がパイプライン190
9に存在するならば、アドレスは、SAL1141にロ
ーディングされる。最後に、SAL1141のレジスタ
にローディングする実行段階1907を有するI/O命
令が、復号化段階1905に達するときに、SAL11
41が満杯の場合、命令パイプライン1901は、その
レジスタが利用可能となるまで動作を停止される。 【0096】好適な実施例201では、I/O動作を代
表するアドレス及びデータの処理はI/Oの部分で行わ
れるので、ALU1107は、同時に他の動作を行って
もよい。この処理の一例は、オフセット加算器1139
である。アドレスが、ALR1145叉はALW114
6にローディングされるときに、I/O命令で明示され
たオフセット1137は、そのアドレスに加えてもよい
。 【0097】更に、命令は、I/O動作用のアドレスの
ソースとしてALR1145叉はALW1146のいず
れかを明示し、かつ、その明示されたレジスタの現在の
内容にそのオフセットを加えるためにオフセット加算器
1139を使用してもよい。図11から分かると思われ
るが、これは、アドレス入力をオフセット加算器113
9に提供する内部データバス1115に対しALR11
45とALW1146の出力を接続するバスを用いて実
施される。 【0098】この処理の他の例は、ALR1145とA
LW1146の両方を設け、そして、入力ラッチ114
9の出力と影出力ラッチ1155の入力との間に接続部
を設けている。これらの特徴をまとめて考えると、メモ
リ102の1つの場所からメモリ102の他の場所への
データの効率的な移動が可能となる。 【0099】読み取りアドレスと書き込みアドレスの両
方は、ALR1145とALW1146で利用可能であ
り、かつ、入力ラッチ1149が書き込み動作用のデー
タのソースとして利用可能であるので、書き込み動作は
、読み取り動作にすぐ続くものであってもよく、メモリ
102の1つの場所から他の場所へのワード叉はバイト
の転送には最小4サイクルが必要となる。 【0100】最後に、AND/OR選択論理回路が、一
方で、IL1149とOL1151の間に設けられ、そ
して、SOL1155が他方で設けられている。これに
より、(前のMOVE命令によりローディングされる)
OL1151の内容は、IL1149の内容とAND結
合叉はOR結合することができ、かくして、メモリ10
2からのデータの読み取りが可能となり、このデータを
OL1151のマスクによって変更し、かつ、最小4サ
イクルでメモリ102にそのデータを書き戻すことが可
能となる。 【0101】 I/O命令:図15、図19及び図20マイクロプロセ
ッサ107は、3つのI/O命令、即ち、READ(読
み取り)命令、WRITE(書き込み)命令及びREA
D−MODIFY−WRITE(読み取り−変更−書き
込み)命令を有している。これら3つの命令すべてのフ
ォーマットは、図15に示してある。READ命令は、
参照数字1301により識別され、WRITE命令は、
参照数字1313により識別され、そして、READ−
MODIFY−WRITE命令は、参照数字1319に
より識別される。 【0102】図15から明かなように、I/O命令のす
べては、共通の数個の特徴を有している。まず上位ビッ
トでは、ビット20〜23は、これら3つの命令の各々
ごとに異なる演算コードであり、ビット12〜19は、
I/O動作に使用されるアドレスを得るために、ポイン
タの値に加えられる8ビットのオフセット値である。 【0103】I/Oサイズ(IOS)フィールド130
7(ビット11と10)は、I/《M》ピン209、1
6ビットワードのフォーマットと24ビットポインタに
関連して読み取り叉は書き込まれるべきデータの大きさ
を示す。ビット0〜8は、ポインタ(PTR)フィール
ド1311を構成し、このPTRフィールド1311は
、マイクロプロセッサ107のレジスタを特定する。 このレジスタはポインタとして使用されるべき値、即ち
、I/O動作でメモリ102の場所を表す値を含んでい
る。 【0104】その特定されたレジスタは、汎用レジスタ
1103か、叉は、特別レジスタの1つ、もっとも一般
的なものとしてはALR1145叉はALW1146の
いずれかであってもよい。汎用レジスタ1103の場合
、このレジスタは、GRフィールド1229のその番号
によって直接的に明示されるか、叉は、フレームポイン
タ1117の値からのオフセットによって間接的に明示
される。MOVE命令の場合のように、Fビット121
1は、どんなモードが使用されているかを示す。特別レ
ジスタの場合、SRフィールド1312は、この特別レ
ジスタ用のコードを含んでおり、一方、ビット4〜8は
、ドントケアフィールド、ここではDC1310である
。 【0105】上記の共通のフィールドから分かるように
、マイクロプロセッサ107は、ほぼ次のごとくI/O
命令を実行する。即ち、復号段階1905では、ポイン
タフィールド1311により示されるポインタは内部デ
ータバス1115のソースとされる。実行段階1907
では、ポインタ値は、I/O命令の種類に依存して、内
部データバス1115を介しALR1145叉はALW
1146のいずれかに送られる。 【0106】ポインタが移動されているとき、ビット1
2〜19のオフセットは、オフセット加算器1139に
よってポインタに加えられる。実行段階1907は、か
くして、同時に、命令パイプライン1909用のローデ
ィング段階1911となる。命令パイプライン1901
のEIO段階1913は、ALR1145叉はALW1
146内へのポインタのローディングに続くサイクルで
始まる。命令パイプライン1901が、すでにその中に
I/O命令を有している場合、ポインタは、ALR11
45叉はALW1146の代わりにSAL1141にロ
ーディングされる。 【0107】WRITE命令1313は、ラッチソース
(LS)フィールド1317を更に有している。単一ビ
ットフィールドの一方の設定は、書き込まれるべきデー
タのソースが出力ラッチ1151であるということを示
す。他方の設定は、それが入力ラッチ1149であると
いうことを示す。背中合わせ式のメモリ読み取り及び書
き込みを行うこの装置の有用性はすでに記載した。 【0108】READ−MODIFY−WRITE命令
1319は、付加的な1ビットフィールド、即ちAND
/ORフィールド1323も有している。このビットの
一方の設定は、論理回路1153が、IL1149の内
容とOL1151の内容とをAND結合するということ
を示す。他方の設定は、論理回路1153が、これら2
つのレジスタの内容をOR結合するということを示す。 また、4サイクルで読み取り−変更−書き込みを行うこ
の構成の有用性は、すでに記載した。前述のように、R
EAD−MODIFY−WRITEは、バイト叉はワー
ドを書くのみである。従って、この命令のIOSフィー
ルド1307は、24ビットのデータ項目を特定するこ
とはできない。 【0109】異なるデータフォーマットでの読み取り及
び書き込み:図11と図19図1に示したように、多く
の用途では、マイクロプロセッサ107は、ホストプロ
セッサ105と共働する。ある用途では、ホストプロセ
ッサ105は、他のマイクロプロセッサ107であって
もよいが、他の用途には、別のプロセッサ叉はマイクロ
プロセッサとなる。 【0110】特に、おそらく、ホストプロセッサ105
は、インテル80×86アーキテクチャ、叉は、モトロ
ーラ680×0アーキテクチャのいずれかを有する。こ
れらのアーキテクチャが異なる方法の内の2つは、それ
らのポインタのフォーマットと、バイトを16ビットワ
ードで記憶する方法である。 【0111】マイクロプロセッサ107の3つの特徴、
即ち、I/《M》ピン209、I/O命令のIOSフィ
ールド1307の符号及びプログラム状態ワード111
9のSWBビットにより、マイクロプロセッサ107は
、80×86ホスト叉は680×0ホストのいずれかと
容易に使用することができる。IOSフィールド130
7の符号により、更に、プログラマは、80×86と6
80×0の環境の両方において正しく実行される単一の
プログラムを書くことが可能となる。 【0112】図19は、80×86アーキテクチャと6
80×0のアーキテクチャがメモリ102におけるバイ
トを組織する互いに異なる方法と、これらがポインタを
フォーマットする互いに異なる方法を示す。バイトとワ
ードの例では、図19は、値AA、BB、CC及びDD
と4バイトのシーケンスが記憶されるということを仮定
する。80×86が16ビットワード内に組織化された
メモリに一連のバイト書き込み動作を行い、そして、シ
ーケンスがワード境界で始まるとき、結果は1701に
示される。 【0113】第1のバイトAAは、第1のワードの8個
の下位ビットに書き込まれ、そして、次のバイトBBは
、第1のワードの8個の上位ビットに書き込まれ、次の
バイトCCは、第2のワードの8個の下位ビットに書き
込まれ、そして、次のバイトDDは、第2のワードの8
個の上位ビットに書き込まれる。680×0が同一操作
を行うとき、結果は1703で示される。即ち、第1の
バイトAAは、第1のワードの8個の上位ビットに書か
れ、次のバイトBBは、そのワードの8個の下位バイト
に書かれ、第3のバイトCCは、第2のワードの8個の
上位ビットに書かれ、そして、第4のバイトDDは、第
2のワードの8個の下位バイトに書かれる。 【0114】一方、同一の4個のバイトがワード書き込
み動作により書き込まれて、第1のワードの書き込みが
、バイトAAとバイトBBを書き込み、第2のワードの
書き込みが、バイトCCとバイトDDを書き込むとき、
1705により示したように、80×86と680×0
の組織との間には相違点は存在しない。両方の場合、A
Aは、書き込まれるべき最初のワードの8個の上位ビッ
ト内にあり、BBは、8個の下位ビット内にあり、CC
は、第2のワードの8個の上位ビット内にあり、そして
、DDは、そのワードの8個の下位ビット内にある。 【0115】ポインタのフォーマットを続けるに、上記
両方のアーキテクチャは、2つの隣接ワードに記憶され
る32ビットのポインタを使用する。プロセッサ107
は、24ビットのアドレスを使用するので、32ビット
のポインタの24個の下位ビットに関連するだけである
。24個の下位ビットは、値AABBCCを有し、AA
が上位のバイトであり、CCが下位のバイトであるとす
ると、80×86のフォーマットは、1707で示した
ものであり、680×0のフォーマットは、1709で
示したものである。 【0116】80×86のフォーマットでは、ポインタ
の上位のバイトは、第2のワードの8個の下位ビットに
あり、次の上位のバイトは、第1のワードの8個の上位
ビット内にあり、そして、下位のバイトは、第1のワー
ドの下位ビットにある。680×0のフォーマットでは
、ポインタの上位のバイトは、第1のワードの下位8ビ
ットにあり、次の上位のバイトは第2のワードの上位8
ビットにあり、そして、下位の8ビットは、第2のワー
ドの下位8ビットにある。 【0117】マイクロプロセッサ107は、80×86
のアーキテクチャと680×0のアーキテクチャとの間
のいくつかの不整合をI/《M》ピン209を用いて取
り扱う。マイクロプロセッサ107が、80×86ホス
ト105で動作するとき、Vccがピン207に入力さ
れる。即ち、マイクロプロセッサ107が、モトローラ
680×0ホスト105で動作するとき、ピン207は
接地される。一般的に、ピン207は、接地点か、叉は
、Vccに接続される。これは、この種のホストプロセ
ッサ105が、どんな周波数でも変化しそうがないから
である。ピン205への入力は、しかし、システム再構
成を可能にするために切り替え可能とすることができよ
う。 【0118】バイト動作を述べると、これらの動作は、
符号「00」によって命令のIOSフィールド1307
で明示されている。バイト書き込み動作では、書き込ま
れるべきバイトは、SOL1155の下位8ビットに含
まれている。即ち、80×86モードと680×0モー
ドの両方のモードでは、バイトは、バス103のデータ
線313のビット0〜7と8〜15の両方に出力される
。 【0119】I/《M》ピンの入力とアドレスの下位ビ
ットの値は、80×86のメモリフォーマットと680
×0のメモリフォーマットにより要求されるように、ア
ドレスされたワードの上下のバイトにバイトを書き込む
ように《EWE》信号叉は《OWE》信号がエネーブル
されるか否かを決定する。 【0120】バイト読み取り動作では、奇数バイトは、
データ線8〜15にあり、偶数バイトは、データ線0〜
7にある。別の場合には、この逆も真である。与えられ
た奇数バイト叉は偶数バイトのアドレスに応答して、入
力ラッチ1149のビット7〜0内にどのバイトが読み
込まれるかは、マイクロプロセッサ107が、I/《M
》ピン209で受ける入力とPSW1119のSWBビ
ットに依存する。 【0121】SWBが0にセットされ、I/《M》への
入力が低く、680×0ホストを示す場合、偶数バイト
の読み取りにより、入力ラッチ1149「7〜0」内に
読み込まれる線8〜15にバイトが生じ、一方、奇数バ
イトの読み取りにより、入力ラッチ1149のその部分
に読み込まれる線0〜7にバイトを生じる。SWBが0
にセットされてI/《M》への入力が高であって、80
×86ホストを示す場合、上記の逆が生じる。 【0122】SWBが1にセットされると、最終的に、
I/《M》ピン209への入力に対するマイクロプロセ
ッサ107の応答は、今記載したのと逆となる。SWB
は、かくして、プログラマに対しバイト読み取りへのI
/《M》の影響を無効にする方法を与える。 【0123】バイトデータに関する読み込み−変更−書
き込みの場合、読み取りは、ここに記載したように行わ
れ、そしてバイトの書き込みに付いては、ここに記載し
たように行われる。ただし、SOL1155のデータは
、OL1151のマスクとAND結合叉はOR結合され
る入力ラッチ1149の内容である点は異なる。 【0124】ワード動作は、符号01によりI/Oサイ
ズフィールド1307に明示されている。16ビットメ
モリワードについては、80×86フォーマットと68
0×0フォーマットの間には相違はなく、従って、I/
《M》ピン209は、これらの操作が行われる方法には
影響しない。書き込みの場合、SOL1155のより低
い桁のビットが、データライン313に出力され、一方
、読み取りの場合、データライン313のビットが、入
力ラッチ1149のより低い桁の16ビットにラッチさ
れる。読み取り−変更−書き込み及びこの動作の書き込
み部分については同じことが言える。 【0125】I/Oサイズフィールド1307の符号1
0によって示されるポインタ読み取り動作には、2つの
ワードがメモリ102から読み取られることが必要であ
る。もしもホストが680×0の場合、第1のワードの
下位のバイトは、そのポインタの上位のバイトを含む。 一方、次のワードの上位及び下位のバイトは下位のバイ
トの次のバイトとその下位のバイトを含む。 【0126】かくして、I/《M》ピン209が、ホス
トが680×0であるということを示すときに、メモリ
102からの第1のワードの読み取りにより、データ線
313「7〜0」の内容が入力ラッチ1149「23〜
16」内に置かれる。第2のワードがメモリ102から
読まれるとき、データ線313「15〜8」の内容は、
入力ラッチ1149「15〜8」に入り、そして、デー
タ線313「7〜0」の内容は、同時にラッチ1149
「7〜0」に入る。 【0127】ホストが80×86の場合、第1のワード
は、その下位のバイトの中でポインタの下位のバイトと
、その上位のバイトの中でポインタの次の下位のバイト
を含む。第2のワードは、その下位のバイト内における
ポインタの上位のバイトを含む。従って、ホストが80
×86であるということをI/《M》ピン209が示す
場合、メモリ102から第1のワードの読み取りにより
、データ線313「15〜8」の内容が、入力ラッチ1
149「15〜8」に入力され、データ線313「7〜
0」の内容が、入力ラッチ1149「7〜0」に置かれ
ることになる。次のサイクルでは、データ線313の内
容「7〜0」が、入力ラッチ1149「23〜16」に
置かれる。 【0128】ポインタが書き込まれているとき、もしも
ホストが680×0であるということをI/《M》ピン
209が示す場合、第1のワードのメモリ102への書
き込みにより、影出力ラッチ1155「23〜16」が
D313「7〜0」に置かれ、0がz313「15〜8
」に置かれ、一方、第2のワードの書き込みにより、影
出力ラッチ1155「15〜8」がD313「15〜8
」に置かれ、影出力ラッチ1155「7〜0」が同時に
D313「7〜0」に置かれる。 【0129】もしもI/《M》ピン209が、ホストが
80×86であるということを示す場合、第1のワード
の書き込みにより、影出力ラッチ1155「15〜8」
がD313「15〜8」に置かれ、影出力ラッチ115
5「7〜0」が同時にD313「7〜0」に置かれる。 第2のワードの書き込みにより、影出力ラッチ1155
「23〜16」がD313「7〜0」に置かれ、0がD
313「15〜8」に置かれる。 【0130】ホストプロセッサ105が、メモリ102
に対し、バイト、ワード叉はポインタの書き込みを行い
、マイクロプロセッサ107が、メモリ102から同一
データのバイト、ワード叉はポインタの読み取りを行う
か、叉は、この逆の場合、ホストプロセッサ105とマ
イクロプロセッサ107の両方が予期されたフォーマッ
トでデータを受信するということが、I/《M》ピン2
09自体により保証される。 【0131】しかし、ホストプロセッサ105が、メモ
リ102に対し2つのバイトの書き込みを行い、かつ、
マイクロプロセッサ107が、その2つのバイトのワー
ドの読み取りを行う場合、そのワードのバイトの位置は
、ホストプロセッサ105が80×86、叉は、680
×0であるかに依存し、そして、ワードを処理するマイ
クロプロセッサ107の符号は、ホストプロセッサの種
類に依存する。そういう理由で、ホストプロセッサの変
化には、広範な符号の訂正が必要となり、これにより、
マイクロプロセッサ107を使用する開発システムの費
用が大いに増大される。 【0132】この問題は、I/Oサイズ1307の符号
11によりマイクロプロセッサ107で解決される。こ
の符号は、「交換バイトを持つワード」、即ち、ワード
I/O動作が採用されるべきであるが、I/《M》ピン
209がホストが80×86プロセッサであるというこ
とを示す場合に、ワードのバイトが交換されるべきであ
るということを示す。従って、もしも「交換バイトを持
つワード」がI/O命令で示される場合、マイクロプロ
セッサ107は、ホストが680×0マシンか80×8
6プロセッサであるか否かに関係なくバイトデータに対
しワードの読み取り及び書き込み動作を正しく行うこと
ができるので、ホストマシンの種類に依存して異なる符
号を書き込む必要はない。 【0133】「交換バイトを有するワード」符号とI/
《M》ピン209は、相互作用をして次のごとく上に記
載した結果を発生する:読み取り動作では、I/《M》
が680×0ホストを明示するとき、D313「15〜
8」の内容は、入力ラッチ1149「15〜8」に入り
、そして、D313「7〜0」の内容は、入力ラッチ1
149「7〜0」に入る。I/《M》ピン209が80
×86ホストを明示するとき、D313「15〜8」の
内容は、ラッチ1149「7〜0」に入り、D313「
7〜0」の内容は、入力ラッチ1149「15〜8」に
入る。 【0134】書き込み動作では、I/《M》ピン209
が680×0ホストを明示するとき、影出力ラッチ11
55「7〜0」の内容が、D313「7〜0」に入り、
そして、影出力ラッチ1155「15〜8」の内容が、
D313「15〜8」に入る。I/《M》ピン209が
、80×86ホストを明示するとき、影出力ラッチ11
55「7〜0」の内容が、D313「15〜8」に入り
、そして、影出力ラッチ1155「8〜15」の内容が
、D313「7〜0」に入る。「交換バイトを有するワ
ード」で読み取り−変更−書き込みを行う場合、動作の
読み取り段階及び書き込み段階は、読み取り動作及び書
き込み動作について今記載した通りとなる。 【0135】データ入力及び出力の実施:図20、図2
2、図23〜図25図20、図22、図23〜図25は
、入力ラッチ1149、出力ラッチ1151、影出力ラ
ッチ1153、AND/OR1323、及び、これらの
装置を制御する制御論理回路の好適な実施例201の構
成を示す。 【0136】入力ラッチ1149は、3個の8ビットラ
ッチ、即ち、上位のバイトを含むラッチ2007、次の
上位のバイトを含む2009及び下位のバイトを含むラ
ッチ2011から作られている。これらのラッチからの
出力は、ラッチ出力(ILO)2013に入力される。 これらのラッチへの入力は、マルチプレクサ2001、
2003及び2005からのものである。これらのマル
チプレクサの各々は、データライン313とILO20
13から入力を取る。 【0137】特に、マルチプレクサ2001は、データ
線313「7〜0」叉は入力ラッチ1149「23〜1
6」からラッチ2007用の入力を選択し、マルチプレ
クサ2003は、データ線313「15〜8」、データ
線313「7〜0」叉は入力ラッチ1149「15〜8
」からラッチ2009用の入力を選択し、マルチプレク
サ2005は、データ線313「15〜8」、データ線
313「7〜0」叉は入力ラッチ1149「7〜0」か
らラッチ2009用の入力を選択する。 【0138】もしもマルチプレクサ2001、2003
叉は2005が選択されない場合、それは0を出力する
。選択は、以下に示す表に従って選択線A、C、D、F
、G、J、L及びMによって行われる。この表の表示”
ソース−−>行き先”は、選択線が活性状態のときにソ
ースのデータが行き先に転送されるということを示す。 【0139】   選択線      効果     A        IL1149[23〜16
]−−>IL[23〜16]    C       
 D313[7〜0]−−>IL[23〜16]   
 D        IL[15〜8]−−>IL[1
5〜8]      F        D[15〜8
]−−>IL[15〜8]    G        
D[7〜0]−−>IL[15〜8]    J   
     IL[7〜0]−−>IL[7〜0]   
 L        D[7〜0]−−>IL[7〜0
]    M        D[15〜8]−−>I
L[7〜0]【0140】図21で説明を続けるに、こ
の図は、出力ラッチ1151、AND/OR論理回路1
153及び影出力ラッチ1155の実施例を示す。この
回路の入力は、内部データバス1115、ILO201
3を介する入力ラッチ1149、及び影出力ラッチ11
55から来る。出力は、データ線313に与えられる。 入力の選択は、マルチプレクサ2101により行われ、
一方、出力の選択は、マルチプレクサ2109と211
1により行われる。 【0141】これらのマルチプレクサの1つが選択され
ない場合、このマルチプレクサは、0を出力する。出力
ラッチ1151から始めるに、このラッチは、内部デー
タバス1115からその入力を受け取り、出力をAND
/OR論理回路1153とマルチプレクサ2103に提
供する。マルチプレクサ2101は、更に、ILO20
13から入力を受け取る。ILO2013は、入力ラッ
チ1149、SOL1155及びAND/OR論理回路
1153の出力に接続されている。 【0142】マルチプレクサ2101からの出力は、影
出力ラッチ1155に与えられる。この影出力ラッチ1
155は、3個の8ビットラッチ、即ち、ビット「23
〜16」を含むラッチ2103、ビット「15〜8」を
含むラッチ2105、及びビット「7〜0」を含む21
07を有している。その出力は、マルチプレクサ210
9と2111を介してD313「7〜0」と「15〜8
」に与えられる。 【0143】入力の選択は、マルチプレクサ2101用
の選択線U、V、W及びXと、マルチプレクサ2109
と2111用の選択線P、Q、R、S及びTにより行わ
れる。以下の表は、この選択線とその選択の結果を示す
。 【0144】   選択線      効果     U        SOL1155−−>SO
L1155    V        IL1149叉
はILO2013−−>SOL    W      
  OL1151−−>SOL    X      
  IL−−>A/O論理回路1153    P  
      SOL[23〜16]−−>D313[7
〜0]    Q        SOL[15〜8]
−−>D[7〜0]    R        SOL
[7〜0]−−>D[7〜0]    S      
  SOL[15〜8]−−>D[15〜8]    
T        SOL[7〜0]−−>D[15〜
8]【0145】選択線は、図18、図22及び23に
示した選択論理回路1801により制御される。これら
の選択線は、I/O制御論理回路(I/OCTL)18
19の出力であり、この論理回路への入力は、次の通り
である: 【0146】   信号        意味   RW        1:読み取り動作、    
          0:書き込み動作、  RMW 
     1:読み取り−変更−書き込み動作、  R
MWW    0:読み取り−変更−書き込み動作の一
部の読み取り、              1:一部
の書き込み、  IOS      IOS1307か
らの符号、       【0147】   IL/OL  0:OL1151からのデータの書
き込み、              1:IL114
9からのデータの書き込み、  LONG2  ポイン
タ読み取り叉は書き込みの別の部分、  A0    
    下位のアドレスビット、          
    0:偶数バイト、             
 1:奇数バイト、  ITL      1:SWB
がセットされない場合の80×86モード、     
         0:SWBがセットされない場合の
680×0モード(以下を参            
      照)。 【0148】RW、RMW、IOS及びIL/OL信号
は、すべてI/O命令から最終的に得られる。即ち、A
0は、I/O動作に依存してALR1145叉はALW
1146の内容から得られ、LONG2とRMWWは、
I/O命令の実行段階の形跡を保つマイクロプロセッサ
の内部制御論理回路から得られ、ITLは、ITL論理
回路1803により生じる。 【0149】ITLが、値1を有するとき、I/Oの部
分1135は、マイクロプロセッサ107が、80×8
6ホストを有するシステムで動作している場合のように
動作する。ITL1817が値0を有するとき、I/O
の部分1135は、マイクロプロセッサ107が、68
0×0ホストで動作している場合のように動作する。バ
イトI/O動作以外の動作の場合、ITL1817の値
は、マイクロプロセッサ107が、I/《M》ピン20
9で受信している値によってのみ決定され、一方、バイ
ト動作の場合、I/《M》ピン209の影響は、プログ
ラム状態ワード1119のSWBビットを1にセットす
ることによって反転してもよい。 【0150】この効果は、次のごとくITL論理回路1
803により発生される。ITL1817は、XORゲ
ート1815の否定出力であり、XORゲート1815
への入力は、I/《M》ピン209とNANDゲート1
811から来るものである。NANDゲート1811は
、3つの入力を有している。入力《IOS0》1805
と《IOS1》1807は、IOS1307の否定であ
り、PSW_SWB1809は、PSW状態ビットから
得られる。 【0151】《IOS0》1805叉は《IOS1》1
807のいずれかが低で、IOS1307がバイトI/
O以外のものを明示する場合、NANDゲート1811
は、1813に1の出力を有し、そして、XORゲート
1815の否定出力1817は、I/《M》ピン209
からの入力と同一である。入力1807と1805の両
方が高でバイトI/O用の00符号を示す場合、ゲート
1811の出力は、PSW_SWB1809により決定
される。入力1809が低の場合、NANDゲート18
11は、依然として1の出力を有し、出力1817は、
今記したように、入力209と同一である。 【0152】入力1809が高の場合、即ち、SWBビ
ットがPSW1809にセットされている場合、NAN
Dゲート1811は、0出力を有し、そして、出力18
17は、入力209の反転となる。即ち、I/《M》ピ
ン209の効果は、反転される。 【0153】I/OCTL1819の動作は、図22と
図25の真理値表に示してある。図24は、読み取りと
読み取り−変更−書き込み動作用の真理値表を示す。こ
の真理値表には、バイト読み取り、ワード読み取り、及
びIOS1307のWSB符号でのワード読み取り、ポ
インタ読み取り、バイト読み取り−変更−書き込み、ワ
ード読み取り−変更−書き込み、及び、IOS1307
のWSB符号でのワード読み取り−変更−書き込み用の
部分がある。 【0154】真理値表の中央部の列は、I/OCTL1
819への入力信号用の値を示し、この真理値表の右手
部分の列は、セレクタ線1833の入力から生じる値を
示す。真理値表の中央部において、「X」は「ドントケ
ア」ビット、即ち、行により示される動作に相違を生じ
ない値を有するビットを示す。 【0156】真理値表の右手部分において、「.」は、
「ドントケア」ビットを示す。一例として真理値表の第
1の列をとると、この列は、読み取り動作を示すRW=
1、それが、読み取り−変更−書き込みではないという
ことを示すRMW=0、IOSがバイト動作を示し(即
ち、符号00を有する)、ITLが680×0モードを
示す値0を有し、そして、A0が、偶数バイトアドレス
を示す値0を有するときに、選択線Mが高で、残りの線
が低い、ということを示す。 【0157】入力線の値は、行によって明示された動作
が、680×0フォーマットに記憶されたデータからの
偶数バイトの読み取りであるということを示す。図22
を見ると、選択線Mが活性状態のときに、マルチプレク
サ2005が、入力ラッチ1149「7〜0」ようのソ
ースとしてD313「15〜8」を選択するということ
が分かるであろう。次に図19では、選択されたバイト
が、全く、680×0バイトフォーマット1703の偶
数バイトであるということが分かろう。 【0158】今示したように読み取られると、図24と
図25の真理値表及び図20、図22及び図23の論理
図は、今記載した読み取り動作及び書き込みの動作が、
好適な実施例201で如何に実施されるかを示す。 【0159】結論:上記の「実施例」の説明は、他のプ
ロセッサとメモリを共有するプロセッサであって、異な
ったデータフォーマットを有する他のプロセッサとメモ
リが共有されたとしても、同一符号を使用することがで
きるプロセッサを如何に作り、かつ、使用すべきかを示
した。「実施例」の説明で開示した実施例では、データ
フォーマットは、バイトの処理に関するものであった。 しかし、本発明は、他の点で異なるデータフォーマット
で使用してもよい。 【0160】この開示された実施例では、データフォー
マットに依存する動作を行わせる命令は、I/O命令で
ある。また、本発明の原理は、他の種類の命令と使用し
てもよい。本発明の範囲内に入る命令は、ここに開示し
た実施例で使用されるIOサイズフィールドの.WSB
コード以外の手段によって明示されるものであってもよ
く、実際の交換は、本願に開示した回路以外の回路によ
っても達成してもよい。 【0161】以上の説明は、本発明の一実施例に関する
もので、この技術分野の当業者であれば、本発明の種々
の変形例が考え得るが、それらはいずれも本発明の技術
的範囲に包含される。尚、特許請求の範囲に記載した参
照番号は発明の容易なる理解のためで、その技術的範囲
を制限するよう解釈されるべきではない。 【発明の効果】以上述べたごとく、本発明によれば、一
連のバイトをワードとして読むと共に、両方のホストプ
ロセッサ用に同一コードを使用することができるプロセ
ッサが提供される。
【図面の簡単な説明】
【図1】本発明のマイクロプロセッサを使用するシステ
ムのブロック線図である。
【図2】このマイクロプロセッサの好適な実施例のピン
アウトを説明する図である。
【図3】《AS》と《ERE》と《ORE》の各線が、
オフになる前に如何に高くなるかを示すバイト叉はワー
ドの読み取りタイミング図である。
【図4】マイクロプロセッサの好適な実施例の命令アー
キテクチャを示すブロック線図である。
【図5】マイクロプロセッサにおける汎用レジスタのア
ドレッシングを示すブロック線図である。
【図6】マイクロプロセッサ用の2つの種類のMOVE
命令の実行のフォーマットと方法を示す図である。
【図7】第3の種類のMOVE命令の実行のフォーマッ
トと方法を示す図である。
【図8】マイクロプロセッサ用のシステムメモリI/O
命令のフォーマットを示す図である。
【図9】マイクロプロセッサを使用する特定のホストプ
ロセッサにより使用されるデータフォーマットの図であ
る。
【図10】好適な実施例のI/Oサブシステムでの制御
論理を示す論理図である。
【図11】好適な実施例における入力ラッチ1149の
実施例を示す論理図である。
【図12】汎用レジスタのアドレッシングを示す図であ
る。
【図13】好適な実施例における出力ラッチ1151と
影出力ラッチ1155の実施例を示す論理図である。
【図14】マイクロプロセッサにより実行される移動命
令の図である。
【図15】好適な実施例における読み取り及び読み取り
−変更−書き込みI/O動作用の真理値表である。
【図16】好適な実施例における書き込みI/O動作用
の真理値表である。
【符号の説明】 102  メモリ 103  システムバス 107  マイクロプロセッサ 301  バスマスタ 303  バススレーブ 413  リセット 1003  信号 1104  汎用レジスタ 1121  割り込みコントローラ 1123  内部タイマ(IT) 1125  32ワードLIFO 1129  命令レジスタ 1131  (全部分に対する)復号論理回路1137
  命令オフセット 1153  AND/OR選択論理回路1207  種
類 1209  サイズ 1301  読み取り命令 1305  オフセット 1313  書き込み命令 1319  読み取り−変更−書き込み命令1701 
 80×86バイト 1703  680×0バイト 1705  80×86と680×0ワード1707 
 80×86ポインタ 1709  680×0ポインタ 1901  命令パイプライン 1903  段階 1909  I/Oパイプライン

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】  メモリに記憶されたデータ用の互いに
    異なるフォーマットを使用する他のプロセッサとこのメ
    モリを共有することができるプロセッサであり、このプ
    ロセッサが少なくとも1つの命令を含む命令を実行し、
    この少なくとも1つの命令が、データフォーマット依存
    表示手段(1307)を有し、このデータフォーマット
    依存表示手段(1307)が、プロセッサとメモリを共
    有する他のプロセッサにより使用されるデータフォーマ
    ットに、命令により明示された動作が依存するというこ
    とを示すプロセッサにおいて、データフォーマットを示
    すデータフォーマット信号を受信するデータフォーマッ
    ト信号受信手段(209)、及び、データフォーマット
    信号と、データフォーマット依存表示手段とに応答して
    そのデータフォーマットにより必要とされる命令により
    明示される動作を行う動作手段(1801)を有するこ
    とを特徴とするデータフォーマット独立命令型プロセッ
    サ。
  2. 【請求項2】  データフォーマットがメモリ内の複数
    のバイトの順序であり、  動作が、メモリの複数のバ
    イトの読み取り叉は書き込みであり、及び、動作手段が
    、メモリの複数のバイトの順序により必要とされる読み
    取り叉は書き込みを行うことを特徴とする請求項1記載
    のプロセッサ。
  3. 【請求項3】  複数のバイトが2つであり、他のプロ
    セッサのうちの第1のプロセッサが、メモリ内に第1の
    順序でその2つのバイトを配置し、他のプロセッサのう
    ちの第2のプロセッサが、メモリ内に第2の順序でその
    2つのバイトを配置し、データフォーマット信号が、第
    1の順序叉は第2の順序のいずれかを示し、データフォ
    ーマット信号が、第2の順序を示すときに読み取り動作
    が、第1の順序でメモリから読みとられる任意の2つの
    バイトを配置し、及び、データフォーマット信号が第2
    の順序を示すときに、書き込み動作が、第2の順序でメ
    モリに書き込まれる任意の2つのバイトを配置すること
    を特徴とする請求項2記載のプロセッサ。
  4. 【請求項4】  第1の順序が、680×0型のプロセ
    ッサにより使用される順序であり、及び、第2の順序が
    、80×80型のプロセッサにより使用される順序であ
    ることを特徴とする請求項3記載のプロセッサ。
  5. 【請求項5】  データを記憶するメモリ(102)、
    このメモリに接続されてデータを処理し、各々がデータ
    のうちの特定のものについて異なるフォーマットを使用
    する複数のプロセッサの種類のうちの1つに属する第1
    のプロセッサ(105)、メモリに接続されてデータを
    処理する第2のプロセッサ(107)であって、命令に
    より特定される動作が、第1のプロセッサにより使用さ
    れるデータフォーマットに依存するということを示すデ
    ータフォーマット依存表示手段(1307)を有する少
    なくとも1つの命令を第2のプロセッサの実行命令が有
    し、かつ、データフォーマットを示すデータフォーマッ
    ト信号を受信するデータフォーマット信号受信手段(2
    09)、及び、データフォーマット信号とデータフォー
    マット依存表示手段に応答してデータフォーマットによ
    り必要とされる命令により明示される動作を行う動作手
    段(1801)を有することを特徴とするデータ処理シ
    ステム。
  6. 【請求項6】  データフォーマットがメモリ内の複数
    のバイトの順序であり、  動作が、メモリの複数のバ
    イトの読み取り叉は書き込みであり、及び、動作手段が
    、メモリの複数のバイトの順序により必要とされる読み
    取り叉は書き込みを行うことを特徴とする請求項5記載
    のデータ処理システム。
  7. 【請求項7】  複数のバイトが2つであり、他のプロ
    セッサのうちの第1のプロセッサが、メモリ内に第1の
    順序でその2つのバイトを配置し、他のプロセッサのう
    ちの第2のプロセッサが、メモリ内に第2の順序でその
    2つのバイトを配置し、データフォーマット信号が、第
    1の順序叉は第2の順序のいずれかを示し、及び、デー
    タフォーマット信号が、第2の順序を示すときに読み取
    り動作が、第1の順序でメモリから読みとられる任意の
    2つのバイトを配置し、及び、データフォーマット信号
    が第2の順序を示すときに、書き込み動作が、第2の順
    序でメモリに書き込まれる任意の2つのバイトを配置す
    ることを特徴とする請求項6記載のデータ処理システム
  8. 【請求項8】  プロセッサの種類の内の第1が680
    ×0型であり、及び、プロセッサの種類の内の第2が8
    0×86型であることを特徴とする請求項7記載のデー
    タ処理システム。
JP3070394A 1990-03-13 1991-03-12 プロセッサおよびデータ処理システム Expired - Lifetime JP2690406B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/493,018 US5446865A (en) 1990-03-13 1990-03-13 Processor adapted for sharing memory with more than one type of processor
US493018 1990-03-13

Publications (2)

Publication Number Publication Date
JPH04220737A true JPH04220737A (ja) 1992-08-11
JP2690406B2 JP2690406B2 (ja) 1997-12-10

Family

ID=23958558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3070394A Expired - Lifetime JP2690406B2 (ja) 1990-03-13 1991-03-12 プロセッサおよびデータ処理システム

Country Status (5)

Country Link
US (1) US5446865A (ja)
EP (1) EP0447101B1 (ja)
JP (1) JP2690406B2 (ja)
CA (1) CA2036855C (ja)
DE (1) DE69126157T2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574923A (en) * 1993-05-10 1996-11-12 Intel Corporation Method and apparatus for performing bi-endian byte and short accesses in a single-endian microprocessor
US5664156A (en) * 1994-09-16 1997-09-02 Philips Electronics North America Corporation Microcontroller with a reconfigurable program status word
US5893928A (en) * 1997-01-21 1999-04-13 Ford Motor Company Data movement apparatus and method
AU2001249122A1 (en) * 2000-03-08 2001-09-17 Sun Microsystems, Inc. Processing architecture having field swapping capability
AU2004241602B2 (en) 2003-05-20 2008-05-08 Syndiant, Inc. Digital backplane
US7395410B2 (en) * 2004-07-06 2008-07-01 Matsushita Electric Industrial Co., Ltd. Processor system with an improved instruction decode control unit that controls data transfer between processor and coprocessor
US7849362B2 (en) * 2005-12-09 2010-12-07 International Business Machines Corporation Method and system of coherent design verification of inter-cluster interactions
CN116700795B (zh) * 2023-08-01 2023-12-01 广州中基国威电子科技有限公司 一种位操作控制系统及控制方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60263246A (ja) * 1984-06-11 1985-12-26 Ricoh Co Ltd メモリ・システム
JPS641050A (en) * 1987-03-18 1989-01-05 Hitachi Ltd Computer system provided with byte order conversion mechanism

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3631405A (en) * 1969-11-12 1971-12-28 Honeywell Inc Sharing of microprograms between processors
US3930232A (en) * 1973-11-23 1975-12-30 Raytheon Co Format insensitive digital computer
FR2253435A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4117536A (en) * 1976-12-27 1978-09-26 International Business Machines Corporation Instruction processing control apparatus
US4240139A (en) * 1977-09-22 1980-12-16 Tokyo Shibaura Denki Kabushiki Kaisha Address generating system
US4293907A (en) * 1978-12-29 1981-10-06 Bell Telephone Laboratories, Incorporated Data processing apparatus having op-code extension register
JPS58102381A (ja) * 1981-12-15 1983-06-17 Nec Corp バツフアメモリ
US4500933A (en) * 1982-04-02 1985-02-19 Ampex Corporation Universal interface unit
US4485439A (en) * 1982-07-27 1984-11-27 S.A. Analis Standard hardware-software interface for connecting any instrument which provides a digital output stream with any digital host computer
US4559614A (en) * 1983-07-05 1985-12-17 International Business Machines Corporation Interactive code format transform for communicating data between incompatible information processing systems
US4561051A (en) * 1984-02-10 1985-12-24 Prime Computer, Inc. Memory access method and apparatus in multiple processor systems
US4722048A (en) * 1985-04-03 1988-01-26 Honeywell Bull Inc. Microcomputer system with independent operating systems
US4899306A (en) * 1985-08-26 1990-02-06 American Telephone And Telegraph Company, At&T Bell Laboratories Test interface circuit which generates different interface control signals for different target computers responding to control signals from host computer
US5027271A (en) * 1987-12-21 1991-06-25 Bull Hn Information Systems Inc. Apparatus and method for alterable resource partitioning enforcement in a data processing system having central processing units using different operating systems
US5101498A (en) * 1987-12-31 1992-03-31 Texas Instruments Incorporated Pin selectable multi-mode processor
US5027272A (en) * 1988-01-28 1991-06-25 Weitek Corporation Method and apparatus for performing double precision vector operations on a coprocessor
US5261077A (en) * 1990-06-29 1993-11-09 Digital Equipment Corporation Configurable data path arrangement for resolving data type incompatibility

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60263246A (ja) * 1984-06-11 1985-12-26 Ricoh Co Ltd メモリ・システム
JPS641050A (en) * 1987-03-18 1989-01-05 Hitachi Ltd Computer system provided with byte order conversion mechanism

Also Published As

Publication number Publication date
CA2036855A1 (en) 1991-09-14
EP0447101B1 (en) 1997-05-21
DE69126157T2 (de) 1997-09-25
CA2036855C (en) 1996-08-13
EP0447101A2 (en) 1991-09-18
JP2690406B2 (ja) 1997-12-10
US5446865A (en) 1995-08-29
EP0447101A3 (en) 1993-08-04
DE69126157D1 (de) 1997-06-26

Similar Documents

Publication Publication Date Title
US20220291927A1 (en) Systems, methods, and apparatuses for tile store
TWI541658B (zh) 資料處理裝置及半導體積體電路裝置
KR100462951B1 (ko) Risc 구조를 갖는 8 비트 마이크로콘트롤러
JPS6029126B2 (ja) デ−タ処理装置
US20200210174A1 (en) Apparatuses, methods, and systems for stencil configuration and computation instructions
US20240143325A1 (en) Systems, methods, and apparatuses for matrix operations
JP3694531B2 (ja) Riscアーキテクチャを有する8ビットマイクロコントローラ
JP2001202243A (ja) データ処理装置
CN104133748A (zh) 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统
US5179671A (en) Apparatus for generating first and second selection signals for aligning words of an operand and bytes within these words respectively
JP2006313561A (ja) データ処理装置
JPH04220737A (ja) プロセッサおよびデータ処理システム
JP2004086837A (ja) データ処理装置
CN111124360B (zh) 一种可配置矩阵乘法的加速器
JPH0743648B2 (ja) 情報処理装置
JPS623461B2 (ja)
JPS6161416B2 (ja)
US6564312B1 (en) Data processor comprising an arithmetic logic unit
JP3164915B2 (ja) データ処理装置及びそのデータ処理方法
JP3839835B2 (ja) データ処理装置及びマイクロコンピュータ
JPS6217773B2 (ja)
JP2861560B2 (ja) データ処理装置
JP2824484B2 (ja) パイプライン処理計算機
TWI847670B (zh) 使用矩陣乘法指令的設備
JPS6230455B2 (ja)

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080829

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20090829

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20100829

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 14

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 14