JPS638490B2 - - Google Patents
Info
- Publication number
- JPS638490B2 JPS638490B2 JP57142765A JP14276582A JPS638490B2 JP S638490 B2 JPS638490 B2 JP S638490B2 JP 57142765 A JP57142765 A JP 57142765A JP 14276582 A JP14276582 A JP 14276582A JP S638490 B2 JPS638490 B2 JP S638490B2
- Authority
- JP
- Japan
- Prior art keywords
- alu
- data
- register
- input
- memory
- 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.)
- Expired
Links
- 230000015654 memory Effects 0.000 claims description 47
- 230000004044 response Effects 0.000 claims description 7
- 230000005055 memory storage Effects 0.000 description 9
- 230000007704 transition Effects 0.000 description 8
- 238000009825 accumulation Methods 0.000 description 6
- 230000000295 complement effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 2
- 101150071403 INP1 gene Proteins 0.000 description 1
- 101150016601 INP2 gene Proteins 0.000 description 1
- OFFWOVJBSQMVPI-RMLGOCCBSA-N Kaletra Chemical compound N1([C@@H](C(C)C)C(=O)N[C@H](C[C@H](O)[C@H](CC=2C=CC=CC=2)NC(=O)COC=2C(=CC=CC=2C)C)CC=2C=CC=CC=2)CCCNC1=O.N([C@@H](C(C)C)C(=O)N[C@H](C[C@H](O)[C@H](CC=1C=CC=CC=1)NC(=O)OCC=1SC=NC=1)CC=1C=CC=CC=1)C(=O)N(C)CC1=CSC(C(C)C)=N1 OFFWOVJBSQMVPI-RMLGOCCBSA-N 0.000 description 1
- 101100184900 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) MRX4 gene Proteins 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/786—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) using a single memory module
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Microcomputers (AREA)
- Advance Control (AREA)
Description
〔技術分野〕
本発明はマイクロプロセツサに係り、特に信号
処理に適するマイクロプロセツサに係る。 〔先行技術〕 公知のプロセツサ或いはマイクロプロセツサに
は様々なものがあるが、何れも演算論理装置
(ALU)、記憶装置及び多数のレジスタを備えて
いる点では同じである。ただし、これらの機能ユ
ニツトの相互接続やデータ転送パスの選択は一般
に機種毎に異なつている。 1974年8月に発行されたIEEE Transactions on Computers Vol.C−23,No.8
の817〜837頁に掲載されているA.K.Agrawala外
の論文“Microprogramming:Perspective and
Status”は幾つかのプロセツサ設計例を紹介して
おり、例えばその第11図によれば、ALUの出
力がシフタを介してデータ母線に接続される。こ
のデータ母線には複数の作業用レジスタ及びメモ
リ・データ・レジスタも接続される。また第13
図に示されている別の設計例によれば、ALU出
力母線が直接汎用レジスタに接続され、シフタを
介してALU入力母線に接続され、更にメイン・
メモリのデータ母線にも接続される。汎用レジス
タの出力は直接又はシフタを介してデータ母線に
よりALU入力に接続される。何れにしても、メ
モリ・アドレス及びデータは同じALU出力母線
上を転送されねばならない。 1977年9月に発行されたScientific American
の146〜161頁に掲載されているH.−M.D.Toong
の論文“Microprocessors”は、単一の共通母線
を用いてデータ及びアドレスの両方を転送するマ
イクロプロセツサを紹介している。ALUの演算
結果は累算器へ入力される。 米国特許第4047247号明細書及び同第4079451号
明細書は、ALU及び複数の作業用レジスタが内
部母線及びマルチプレクサを介して相互接続され
るデータ処理システムを開示している。メモリと
内部母線との接続には特別のインターフエイス回
路及び外部母線が使用される。しかしながら、こ
のシステムにおいても、データ及びアドレスは同
じ内部母線を介してメモリへ転送されねばなら
ず、従つてメモリのアドレス指定及びデータ転送
を同時に行えない。 1978年9月に発行されたIntel MCS−85
User′s Manualの第2−1図にはインテル社の
8085A CPUの構成が示されている。それによれ
ば、ALUの出力は内部データ母線を介してALU
入力に関連する2個の作業用レジスタに接続さ
れ、更にレジスタ・アレイにも接続される。内部
データ母線は、バツフアによつてメモリ母線から
分離されている。 1979年8月30日に発行されたElectronicsの131
〜138頁に掲載されているR.W.Blascoの論文“V
−MOS chip joins microprocessor to handle
signals in real time”及び1979年に発行された
Elektronik No.4の53〜60頁に掲載されている
W.E.Nicholson外の論文“Schnelles
Rechenwerkerwitet Mikroprozessor−
Systeme”には信号プロセツサが記載されてい
る。このプロセツサで使用されている加算/減算
器の出力は常に累算器に入力される。累算器の内
容は、メモリ若しくはスクラツチパツド、加算/
減算器の一方の入力(シフタを介して)、又は乗
算器へ供給される。乗算器の出力は加算/減算器
の他方の入力に接続されている。乗算器及び加
算/減算器はメモリから読出されたデータも受取
る。 〔本発明の要約〕 本発明の目的は、算術/論理演算の結果を効率
よく転送し得るマイクロプロセツサを提供するこ
とにある。 本発明によれば、ALU、メモリ及びレジスタ
を相互接続するための手段に改良が加えられ、1
マシン・サイクル内で最適のデータ転送を行わせ
るために、接続パス及びレジスタを選択する制御
信号が使用される。 本発明のマイクロプロセツサは、選択可能な累
算レジスタ、ALU入力レジスタ及びメモリの特
定の記憶位置へALUの出力を同時に書込めるよ
うになつている。従来と異なり、ALUの出力が
一時記憶されることはないので、演算結果をレジ
スタ又はメモリへ転送するのに余分のサイクルを
必要としない。ALUからの演算結果はそのまま
累計レジスタへ転送され、それと同時に、特別の
マルチプレクサを介してメモリ又はALU入力レ
ジスタへ転送される。 〔実施例の説明〕 全体的な構成 本発明に伴うマイクロプロセツサの構成を第1
図に示す。図中、数字の後の「B」は「ビツト」
を表わしている。ただし、これらのビツト数や使
用されるレジスタの数は第1図のものに限定され
ない。 第1図のマイクロプロセツサの主要ユニツトは
ALU11、データ・メモリ13及び命令メモリ1
5である。これらのユニツト間のデータ転送には
16ビツト幅の共通データ母線17が使用される、
命令メモリ15は、データ母線17に接続された
命令シーケンサ19によつてアドレス指定され
る。 ALU11は20ビツト幅であつて、それに関連し
て同じく各20ビツト幅の2個の計算入力レジスタ
21(RX1)及び23(RX2)並びに2個の累
算レジスタ24(RA1)及び27(RA2)が設
けられている。これらのレジスタは、マルチプレ
クサ29(MUX1)及び31(MUX2)を介し
てALU11へ入力を供給する。本実施例では、計
算入力レジスタ(RX)及び累算レジスタ(RA)
が2個ずつ使用されているだけであるが、これら
を3個以上であつてもよい。 ALU出力母線33も20ビツト幅であり、その
各ビツト線はマルチプレクサ35(MUX3)を
介して選択的にデータ母線17に接続される。
ALU出力母線33は、累算レジスタRA1及び
RA2の入力並びに又岐論理37の入力にも接続
される。分岐論理37は、ALU出力母線33上
のデータ条件に応等して命令シーケンサ19へ分
岐制御信号を供給する。 20ビツト幅の計算入力レジスタRX1及びRX2
は、その上位16ビツトの入力線(19〜4)がデー
タ母線17に接続され、下位4ビツトの入力線
(3〜0)が常時ゼロ信号を給供する回路39に
接続される。 レジスタRX1,RA1及びRA2の出力の上位
16ビツト(19〜4)はマルチプレクサMUX3を
介してデータ母線17にも接続される。MUX3
の機能についてはあとで説明する。 命令メモリ15にある命令ワードは32ビツト幅
で、16ビツトのOPコード及び16ビツトのオペラ
ンドから成つている(第2A図参照)。OPコード
は7ビツトの転送コードTCと9ビツトの計算コ
ードCCとに分けられる。 命令ワードは命令メモリ15から32ビツト幅の
出力母線41へ読出され、そのうち16ビツトのオ
ペランドはオペランド・アドレス・レジスタ
(ROP)43へロードされる。ROP43の出力は16ビ
ツト幅の母線45を介して加算器47の一方の入
力に接続される。加算器47は、データ・メモリ
13の16ビツト幅のアドレス母線49へ修飾され
たアドレスを出力する。 命令メモリ出力母線41を構成する32本の線の
うち転送コードを転送する7本の線は転送コー
ド・レジスタ(RTC)51を介してTCデコーダ53
に接続され、計算コードを転送する9本の線は計
算コード・レジスタ(RCC)55を介してCCデコ
ーダ57に接続される。TCデコーダ53はRTC51に
入力された転送コードを解読してデータ転送制御
信号を発生し、CCデコーダ57はRCC55に入力さ
れた計算コードを解読して計算制御信号及びレジ
スタ選択信号を発生する。これらの詳細について
はあとで説明する。 第1図のマイクロプロセツサにおいて、データ
母線17上のデータを特定のレジスタ及びデー
タ・メモリ13の特定の記憶位置へ同時に書込ま
せるための手段として、メモリ・アドレス母線4
9に特別アドレス・デコーダ59が接続されてい
る。このデコーダ59は予め決められたアドレスに
応答してレジスタ選択信号を発生する。 データが書込まれるレジスタを選択する特別ア
ドレス・デコーダ59及びTCデコーダ53からの制
御信号は論理回路61で組合わされ、それにより
単一のレジスタ選択信号が発生される。論理回路
61は、ストア信号及びロード信号を補クロツク
信号でストローブすることによりデータ書
込み信号及びデータ読出し信号も発生する。論理
回路61の内部構成は第4図に示されているが、
その詳細についてはあとで説明する。 データ母線17には各16ビツト幅の2個のイン
デツクス・レジスタ63(RI1)及び65(RI2)
も接続されている。それらの出力は、オペラン
ド・アドレスの修飾のために、16ビツト幅のマル
チプレクサ67(MUX4)を介して選択的に加
算器47の第2入力へゲートされる。RI1の内容
はMUX1を介してALU11にも供給される。 マイクロプロセツサにおけるA/D変換器、
D/A変換器、タイマ、I/Oレジスタなどの
I/Oユニツトは単一のブロツク69として示さ
れている。これらのI/Oユニツトはデータ母線
17とアドレス母線49との間に接続され、従つ
て使用可能なアドレス空間において各I/Oユニ
ツトのアドレスが予約されていれば、それらをデ
ータ・メモリ13の記憶位置と同様にして選択す
ることができる。 命令フオーマツト 次に第1図のマイクロプロセツサで使用される
命令のフオーマツトについて説明するが、これは
一例に過ぎず、必要に応じて変更できる。 前述のように、第2A図に示されている命令フ
オーマツトは7ビツトの転送コードTC、9ビツ
トの計算コードCC及び16ビツトのオペランド
OPDから成つている。オペランドOPDがアドレ
スの場合には、このオペランド・アドレスはメモ
リ・アクセスの他に、ストア操作時にI/Oユニ
ツトやレジスタを選択するのにも使用される。勿
論、第2A図の命令フオーマツトはオペランド・
アドレスの代りに即値オペランドを含むこともあ
るが、図面を見やすくするため、即値オペランド
に関する回路は第1図には示されていない。 7ビツトの転送コードTC及び9ビツトの計算
コードCCを各々1つのコードと考えた場合には
全部で27種類の転送コード及び29種類の計算コー
ドを指定できるが、本実施例においては、第2B
図(転送コードTC)及び第2C図(計算コード
CC)に各々示されているように、命令フオーマ
ツトのTCフイールド及びCCフイールドが幾つか
のビツト・フイールドに分割されている。従つ
て、実現可能な機能の数は減るが、その分制御が
簡単になり、また幾つかの機能を同時に制御でき
る。 第2B図に示されている転送コードTCの7ビ
ツトは次のように使用される。
処理に適するマイクロプロセツサに係る。 〔先行技術〕 公知のプロセツサ或いはマイクロプロセツサに
は様々なものがあるが、何れも演算論理装置
(ALU)、記憶装置及び多数のレジスタを備えて
いる点では同じである。ただし、これらの機能ユ
ニツトの相互接続やデータ転送パスの選択は一般
に機種毎に異なつている。 1974年8月に発行されたIEEE Transactions on Computers Vol.C−23,No.8
の817〜837頁に掲載されているA.K.Agrawala外
の論文“Microprogramming:Perspective and
Status”は幾つかのプロセツサ設計例を紹介して
おり、例えばその第11図によれば、ALUの出
力がシフタを介してデータ母線に接続される。こ
のデータ母線には複数の作業用レジスタ及びメモ
リ・データ・レジスタも接続される。また第13
図に示されている別の設計例によれば、ALU出
力母線が直接汎用レジスタに接続され、シフタを
介してALU入力母線に接続され、更にメイン・
メモリのデータ母線にも接続される。汎用レジス
タの出力は直接又はシフタを介してデータ母線に
よりALU入力に接続される。何れにしても、メ
モリ・アドレス及びデータは同じALU出力母線
上を転送されねばならない。 1977年9月に発行されたScientific American
の146〜161頁に掲載されているH.−M.D.Toong
の論文“Microprocessors”は、単一の共通母線
を用いてデータ及びアドレスの両方を転送するマ
イクロプロセツサを紹介している。ALUの演算
結果は累算器へ入力される。 米国特許第4047247号明細書及び同第4079451号
明細書は、ALU及び複数の作業用レジスタが内
部母線及びマルチプレクサを介して相互接続され
るデータ処理システムを開示している。メモリと
内部母線との接続には特別のインターフエイス回
路及び外部母線が使用される。しかしながら、こ
のシステムにおいても、データ及びアドレスは同
じ内部母線を介してメモリへ転送されねばなら
ず、従つてメモリのアドレス指定及びデータ転送
を同時に行えない。 1978年9月に発行されたIntel MCS−85
User′s Manualの第2−1図にはインテル社の
8085A CPUの構成が示されている。それによれ
ば、ALUの出力は内部データ母線を介してALU
入力に関連する2個の作業用レジスタに接続さ
れ、更にレジスタ・アレイにも接続される。内部
データ母線は、バツフアによつてメモリ母線から
分離されている。 1979年8月30日に発行されたElectronicsの131
〜138頁に掲載されているR.W.Blascoの論文“V
−MOS chip joins microprocessor to handle
signals in real time”及び1979年に発行された
Elektronik No.4の53〜60頁に掲載されている
W.E.Nicholson外の論文“Schnelles
Rechenwerkerwitet Mikroprozessor−
Systeme”には信号プロセツサが記載されてい
る。このプロセツサで使用されている加算/減算
器の出力は常に累算器に入力される。累算器の内
容は、メモリ若しくはスクラツチパツド、加算/
減算器の一方の入力(シフタを介して)、又は乗
算器へ供給される。乗算器の出力は加算/減算器
の他方の入力に接続されている。乗算器及び加
算/減算器はメモリから読出されたデータも受取
る。 〔本発明の要約〕 本発明の目的は、算術/論理演算の結果を効率
よく転送し得るマイクロプロセツサを提供するこ
とにある。 本発明によれば、ALU、メモリ及びレジスタ
を相互接続するための手段に改良が加えられ、1
マシン・サイクル内で最適のデータ転送を行わせ
るために、接続パス及びレジスタを選択する制御
信号が使用される。 本発明のマイクロプロセツサは、選択可能な累
算レジスタ、ALU入力レジスタ及びメモリの特
定の記憶位置へALUの出力を同時に書込めるよ
うになつている。従来と異なり、ALUの出力が
一時記憶されることはないので、演算結果をレジ
スタ又はメモリへ転送するのに余分のサイクルを
必要としない。ALUからの演算結果はそのまま
累計レジスタへ転送され、それと同時に、特別の
マルチプレクサを介してメモリ又はALU入力レ
ジスタへ転送される。 〔実施例の説明〕 全体的な構成 本発明に伴うマイクロプロセツサの構成を第1
図に示す。図中、数字の後の「B」は「ビツト」
を表わしている。ただし、これらのビツト数や使
用されるレジスタの数は第1図のものに限定され
ない。 第1図のマイクロプロセツサの主要ユニツトは
ALU11、データ・メモリ13及び命令メモリ1
5である。これらのユニツト間のデータ転送には
16ビツト幅の共通データ母線17が使用される、
命令メモリ15は、データ母線17に接続された
命令シーケンサ19によつてアドレス指定され
る。 ALU11は20ビツト幅であつて、それに関連し
て同じく各20ビツト幅の2個の計算入力レジスタ
21(RX1)及び23(RX2)並びに2個の累
算レジスタ24(RA1)及び27(RA2)が設
けられている。これらのレジスタは、マルチプレ
クサ29(MUX1)及び31(MUX2)を介し
てALU11へ入力を供給する。本実施例では、計
算入力レジスタ(RX)及び累算レジスタ(RA)
が2個ずつ使用されているだけであるが、これら
を3個以上であつてもよい。 ALU出力母線33も20ビツト幅であり、その
各ビツト線はマルチプレクサ35(MUX3)を
介して選択的にデータ母線17に接続される。
ALU出力母線33は、累算レジスタRA1及び
RA2の入力並びに又岐論理37の入力にも接続
される。分岐論理37は、ALU出力母線33上
のデータ条件に応等して命令シーケンサ19へ分
岐制御信号を供給する。 20ビツト幅の計算入力レジスタRX1及びRX2
は、その上位16ビツトの入力線(19〜4)がデー
タ母線17に接続され、下位4ビツトの入力線
(3〜0)が常時ゼロ信号を給供する回路39に
接続される。 レジスタRX1,RA1及びRA2の出力の上位
16ビツト(19〜4)はマルチプレクサMUX3を
介してデータ母線17にも接続される。MUX3
の機能についてはあとで説明する。 命令メモリ15にある命令ワードは32ビツト幅
で、16ビツトのOPコード及び16ビツトのオペラ
ンドから成つている(第2A図参照)。OPコード
は7ビツトの転送コードTCと9ビツトの計算コ
ードCCとに分けられる。 命令ワードは命令メモリ15から32ビツト幅の
出力母線41へ読出され、そのうち16ビツトのオ
ペランドはオペランド・アドレス・レジスタ
(ROP)43へロードされる。ROP43の出力は16ビ
ツト幅の母線45を介して加算器47の一方の入
力に接続される。加算器47は、データ・メモリ
13の16ビツト幅のアドレス母線49へ修飾され
たアドレスを出力する。 命令メモリ出力母線41を構成する32本の線の
うち転送コードを転送する7本の線は転送コー
ド・レジスタ(RTC)51を介してTCデコーダ53
に接続され、計算コードを転送する9本の線は計
算コード・レジスタ(RCC)55を介してCCデコ
ーダ57に接続される。TCデコーダ53はRTC51に
入力された転送コードを解読してデータ転送制御
信号を発生し、CCデコーダ57はRCC55に入力さ
れた計算コードを解読して計算制御信号及びレジ
スタ選択信号を発生する。これらの詳細について
はあとで説明する。 第1図のマイクロプロセツサにおいて、データ
母線17上のデータを特定のレジスタ及びデー
タ・メモリ13の特定の記憶位置へ同時に書込ま
せるための手段として、メモリ・アドレス母線4
9に特別アドレス・デコーダ59が接続されてい
る。このデコーダ59は予め決められたアドレスに
応答してレジスタ選択信号を発生する。 データが書込まれるレジスタを選択する特別ア
ドレス・デコーダ59及びTCデコーダ53からの制
御信号は論理回路61で組合わされ、それにより
単一のレジスタ選択信号が発生される。論理回路
61は、ストア信号及びロード信号を補クロツク
信号でストローブすることによりデータ書
込み信号及びデータ読出し信号も発生する。論理
回路61の内部構成は第4図に示されているが、
その詳細についてはあとで説明する。 データ母線17には各16ビツト幅の2個のイン
デツクス・レジスタ63(RI1)及び65(RI2)
も接続されている。それらの出力は、オペラン
ド・アドレスの修飾のために、16ビツト幅のマル
チプレクサ67(MUX4)を介して選択的に加
算器47の第2入力へゲートされる。RI1の内容
はMUX1を介してALU11にも供給される。 マイクロプロセツサにおけるA/D変換器、
D/A変換器、タイマ、I/Oレジスタなどの
I/Oユニツトは単一のブロツク69として示さ
れている。これらのI/Oユニツトはデータ母線
17とアドレス母線49との間に接続され、従つ
て使用可能なアドレス空間において各I/Oユニ
ツトのアドレスが予約されていれば、それらをデ
ータ・メモリ13の記憶位置と同様にして選択す
ることができる。 命令フオーマツト 次に第1図のマイクロプロセツサで使用される
命令のフオーマツトについて説明するが、これは
一例に過ぎず、必要に応じて変更できる。 前述のように、第2A図に示されている命令フ
オーマツトは7ビツトの転送コードTC、9ビツ
トの計算コードCC及び16ビツトのオペランド
OPDから成つている。オペランドOPDがアドレ
スの場合には、このオペランド・アドレスはメモ
リ・アクセスの他に、ストア操作時にI/Oユニ
ツトやレジスタを選択するのにも使用される。勿
論、第2A図の命令フオーマツトはオペランド・
アドレスの代りに即値オペランドを含むこともあ
るが、図面を見やすくするため、即値オペランド
に関する回路は第1図には示されていない。 7ビツトの転送コードTC及び9ビツトの計算
コードCCを各々1つのコードと考えた場合には
全部で27種類の転送コード及び29種類の計算コー
ドを指定できるが、本実施例においては、第2B
図(転送コードTC)及び第2C図(計算コード
CC)に各々示されているように、命令フオーマ
ツトのTCフイールド及びCCフイールドが幾つか
のビツト・フイールドに分割されている。従つ
て、実現可能な機能の数は減るが、その分制御が
簡単になり、また幾つかの機能を同時に制御でき
る。 第2B図に示されている転送コードTCの7ビ
ツトは次のように使用される。
【表】
モリから)
10=ストア
11=予約済み
直接オペランド・ロードや分岐などの他の機能
をビツト1,2の00及び11の組合わせで指定して
もよい。
10=ストア
11=予約済み
直接オペランド・ロードや分岐などの他の機能
をビツト1,2の00及び11の組合わせで指定して
もよい。
【表】
メモリからのロードの場合、上記以外に4個の
レジスタを選択できる。従つて、例えば計算入力
レジスタ又はインデツクス・レジスタを余分に設
けておいてもよい。同様にストアの場合、データ
母線17へデータを供給する源として更に1個
(例えばRX1,RA1又はRA2からのシフトされた
入力)を選択できる。
レジスタを選択できる。従つて、例えば計算入力
レジスタ又はインデツクス・レジスタを余分に設
けておいてもよい。同様にストアの場合、データ
母線17へデータを供給する源として更に1個
(例えばRX1,RA1又はRA2からのシフトされた
入力)を選択できる。
【表】
れるインデツクス・
10=RI2
レジスタを選択す
る。
11=予約済み
第2図Cに示されている計算コードCCの9ビ
ツトは次のように使用される。
10=RI2
レジスタを選択す
る。
11=予約済み
第2図Cに示されている計算コードCCの9ビ
ツトは次のように使用される。
【表】
を選択する。
10〓RA1
11〓RA2
10〓RA1
11〓RA2
【表】
ALU11は、第1入力INP1及び第2入力INP2
の加減算の他に、排他的論理和演算()、論理
和演算(∨)及び論理積演算(∧)を実行でき
る。 ビツト8 (LA1) 直接使用され、ALU11の
出力をロードするレジスタとしてRA1を
選択する。 ビツト9 (LA2) 直接使用され、ALU11の
出力をロードするレジスタとしてRA2を
選択する。 タイミング 各デコーダから出力されるすべての制御信号
(TC1,CC2,ストアなど)及び各レジスタのす
べての出力信号は何れもスタテイツクである。即
ち、これらの信号は、各々のレジスタがロードさ
れて安定状態になつてから次のロードが行われる
までの間使用可能な状態にある。 上述の各種スタテイツク信号はクロツク信号
CLK又はによつてストローブされ、それに
より例えばレジスタへのロードが行われる。デー
タ母線17に接続されているすべてのレジスタ並
びに累算レジスタRA1及びRA2は、複数ビツト
のスタテイツク・データ信号、レジスタ選択のた
めのスタテイツク制御信号及びクロツク信号
CLKを入力として受取る。クロツク信号CLKの
正方向遷移が生じたとき、何れかのレジスタが対
応するレジスタ選択信号によつて選択されている
と、対応するデータ信号がこのレジスタへロード
される。 命令メモリ15の出力母線41に接続されてい
るレジスタ(ROP,RTC,RCC)は、クロツク
信号CLKの正方向遷移の度にロードされる。 第3図に示されているように、クロツク信号は
相補形式で発生される。上述のレジスタ・ロード
動作は、真クロツク信号CLKの正方向遷移によ
つて行われる。これに対し、補クロツク信号
CLKの正方向遷移は、スタテイツク信号(スト
ア、ロード)をストローブしてダイナミツク信号
(データ書込み、データ読出し)を発生するのに
用いられる。かくして、1マシン・サイクルの最
初の半サイクルの間にレジスタのロードが行わ
れ、次の半サイクルの間にメモリへのデータ書込
み又はメモリからのデータ読出しが行われる。 次に、マイクロプロセツサの各機能ユニツトの
詳細について説明する。 命令メモリ15、命令シーケンサ19及び分岐論
理37 マイクロプロセツサで実行されるべき命令を記
憶する命令メモリ15は読出し/書込み型及び読
出し専用型の何れでもよいが、本実施例では読出
し専用メモリが使用されるものとする。命令メモ
リ15は命令シーケンサ19によつてアドレス指
定される。特定のルーチンの先頭命令を選択する
ための初期アドレスはデータ母線17を介して命
令シーケンサ19へ転送され得る。命令シーケン
サ19はクロツク信号CLKに応答して命令アド
レスを順次に更新する。分岐論理37は特定の条
件が生じたとき、例えばALU11の出力ビツトが
すべてゼロになつたとき又はALU11でオーバー
フローが生じたときに現命令アドレス・シーケン
スを中断させて、別のアドレスへの分岐を行わせ
る。分岐論理37の条件付けを特定の転送コード
TC又は計算コードCCで行うこともできる。また
分岐論理37に条件レジスタ(図示せず)を接続
しておいてもよい。 命令メモリ15から読出された命令は、前述の
ようにROP43,RTC51及びRCC55へ分配され
る。これらのレジスタはマシン・サイクル毎にク
ロツク信号CLKの正方向遷移によつてロードさ
れる。従つて、各命令は所与のマシン・サイクル
でプリフエツチされ、次のマシン・サイクルで実
行される(パイプライン処理)。 RTC51及びTCデコーダ53 7ビツト幅のRTC51は転送コードTCを1つ保
持する。TCデコーダ53は転送コードTCの上位2
ビツトを解読して、ロード信号又はストア信号を
発生する。転送コードTCの残り5ビツト即ち3
ビツトのTC1及び2ビツトのTC2はTCデコーダ
53からそのまま出力される。 特別アドレス・デコーダ59 特別アドレス・デコーダ59は、ストア時に論理
回路61からのデータ書込み信号がオンのときに
のみ有効化されて、アドレス母線49上のアドレ
スを解読し、このアドレスが予め決められた4種
類の特別アドレスのうちの1つであれば、それに
対応するストアーレジスタ選択制御信号SP0,
SP1,SP6又はSP7を発生する。この制御信号は、
データ・メモリ13への書込みと同時に選択され
たレジスタに同じデータを書込ませるためのもの
で、メモリ読出しの場合には発生されない。本実
施例では4種類の特別アドレスしか使用されてい
ないが、これを8種類まで拡張することができ
る。 論理回路61 論理回路61はデコーダ53及び59からの制御信
号に応答してレジスタ選択信号及びデータ読出
し/書込み信号を発生するもので、第4図に示さ
れているようにデコーダ71並びに複数のORゲ
ート及びANDゲートから成つている。 デコーダ71はTCデコーダ53から3ビツトの
TC1及びロード信号を受取つて、4種類(8種類
まで可能)のロード・レジスタ選択信号LX1′,
LX2′,LI1′及びLI2′のうちの1つを発生する。ロ
ード信号はデコーダ71のための有効化信号とし
て使用される。 ORゲート73,75,77及び79はこれら
のロード・レジスタ選択信号及び特別アドレス・
デコーダ59からのストア・レジスタ選択信号を
各々1つずつ受取り、何れかの信号がオンであれ
ば対応するレジスタ選択信号LX1,LX2,LI1又
はLI2を出力する。これらのレジスタ選択信号は
第1図に示されている4個のレジスタRX1,
RX2,RI1及びRI2を各々選択する。例えばORゲ
ート73からのレジスタ選択信号LX1がオンであ
ればレジスタRX1が選択されて、データ母線1
7上のデータが書込まれる。選択されたレジスタ
への実際の書込み(ロード)は、クロツク信号
CLKの次の正方向遷移が生じたときに行われる。 ANDゲート81は、TCデコーダ53からのスト
ア信号を補クロツク信号の正方向遷移でス
トローブすることによりデータ書込み信号を発生
する(第3図参照)。従つて、命令メモリ15か
ら読出された命令がストア命令であつた場合に
は、データ・メモリ13への書込みがマシン・サ
イクルの後半で行われることになる。前述のよう
に、ANDゲート81からのデータ書込み信号は
データ・メモリ13の他の特別アドレス・デコー
ダ59にも供給され、更にあとで説明するマルチプ
レクサMUX3にも供給される。 ANDゲート83は、TCデコーダ53からのロー
ド信号を同じく補クロツク信号の正方向遷
移でストローブすることによりデータ読出し信号
を発生する。このデータ読出し信号は、データ・
メモリ13からデータを読出して選択されたレジ
スタRX1,RX2,RI1又はRI2へロードするとき
にデータ・メモリ13へ供給される。データ・メ
モリ13の読出しもマシン・サイクルの後半で行
われる。 RCC55及びCCデコーダ57 RCC55は、命令メモリ15から読出された命
令中の9ビツトの計算コードCCを受取つて保持
する。CCデコーダ57は、本実施例ではこれらの
9ビツトをその出力線へALU第1入力源選択信
号CC1(2ビツト)、ALU第2入力源選択信号
CC2(2ビツト)、ALU演算選択信号CC3(3ビツ
ト)、並びにレジスタ選択信号LA1及びLA2(各1
ビツト)として単に通過させるだけである。云い
換えれば、CCデコーダ57は分配回路として働く。
LA1及びLA2を符号化させた形で用いることも可
能であるが、その場合はレジスタを4個まで選択
できる。 ALU入力レジスタ及びインデツクス・レジスタ ALU入力レジスタとして働く計算入力レジス
タRX1及びRX2並びに累計レジスタRA1及び
RA2は何れも20ビツト幅であり、これに対して
インデツクス・レジスタRI1及びRI2は16ビツト
幅である。何れのレジスタもCCデコーダ57又は
論理回路61からの対応するレジスタ選択信号に
よつて有効化され、クロツク信号CLKの正方向
遷移が生じたときに、データ母線17又はALU
出力母線33上のデータをロードされる。各レジ
スタの出力接続は次のとおりである。 RX1→MUX1,MUL3 RX2→MUX2 RA1→MUX1,MUX2,MUX3 RA2→MUX2,MUX3 RI1→MUX1,MRX4 RI2→MUX4、 MUX1及びMUX2 これらのマルチプレクサは何れも20ビツト幅で
あつて、ALU11の入力マルチプレクサとして働
き、その出力はALU11の20ビツトの第1入力部
及び第2入力部に各々直接接続されている。
MUX1はCCデコーダ57からの2ビツトのALU第
1入力源選択信号CC1を解読するデコーダを有
し、MUX2はALU第2入力源選択信号CC2を解
読するデコーダを有する。第1入力源、第2入力
源及びALU演算の選択は互いに独立している。 ALU11 前述のように、ALU11はCCデコーダ57からの
ALU演算選択信号CC3に応答して、各20ビツト
の2個の入力オペランドに対し、加算、源算、排
他的論理和演算、論理和演算又は論理積演算を実
行する。 MUX3 MUX3は16ビツト幅であつて、ALU11の出力
マルチプレクサとして働く。MUX3には7種頼
(8種類まで可能)の16ビツト入力が供給され、
そのうちの1つがTCデコーダ53からの3ビツト
のTC1により選択されて、データ母線17の方へ
ゲートされる。ただしこのゲート動作が行われる
のは、データ書込み信号がオンのときだけであ
る。MUX3はTC1を解読する3ビツト・デコー
ダを有している。 MUX3の第1入力乃至第4入力は、ALU出力
母線33中の選択された16本の線に各々接続され
る。第1入力(ビツト15〜0)は実際のALU出
力を受取り、第2入力(ビツト18〜3)は3ビツ
トだけシフトされた即ち8で除算されたALU出
力(ALU/8)を受取り、第3入力(ビツト19
〜4)は4ビツトだけシフトされた即ち16で除算
されたALU出力(ALU/16)を受取り、第4入
力(ビツト19/19〜5)は5ビツトだけシフトさ
れた即ち32で徐算されたALU出力(ALU/32)
を受取る。第4入力に関しては、必要な16ビツト
を得るために、ALU出力の第1ビツトであるビ
ツト19(符号ビツト)が重複して受取られる。 MUX3の第5入力乃至第7入力は、レジスタ
RX1,RA1及びRA2の上位16ビツト(ビツト19
〜4)を各々受取る。従つて、これらのレジスタ
の内容はALU11を用いることなくデータ母線1
7へ転送され得る。 MUX4 16ビツト幅のMUX4はTCデコーダ53からの2
ビツトのTC2を解読するデコーダを有し、それに
応じてインデツクス・レジスタRI1又はRI2の内
容を加算器47の方へゲートする。 動作例 最後に、1マシン・サイクル内で特定のデータ
転送及び演算処理を同時に実行する例を幾つか説
明する。 1 レジスタ・スワツピング 第1図のマイクロプロセツサにおいては、2個
のレジスタの内容即ちRX1又はRX2の内容と
RA1又はRA2の内容とを単一の命令により1マ
シン・サイクル内で入れ替えることが可能であ
る。従来のマイクロプロセツサはデータを一時記
憶させるための中間バツフアを使用していたため
このような入れ替え即ちスワツピングには2マシ
ン・サイクル以上を必要としていた。 例えばRX1及びRA1の内容を入れ替えるため
の命令は次の2つの動作を実行させる。 (イ) RA1の内容をRX1に対応するメモリ記憶位
置、即ちRX1を自動的に選択するアドレスを
有するメモリ記憶位置に書込む転送動作。 (ロ) RX1の内容にゼロを加算して、その結果を
RA1に戻す算術演算。 (イ)の転送動作は命令中の転送コードTC及びオ
ペランドOPDによつて指定され、(ロ)の算述演算
は同じ命令中の計算コードCCによつて指定され
る。これらを指定する命令の内容は次のとおりで
ある。 (イ) 転送動作 転送コードTC:ロード/ストア=10 TC1=101 TC2=00 ロード/ストア=10はストアを指定し、TC1=
101はデータ母線17の源としてRA1を指定し、
TC2=00はゼロ強制(インデツクス・レジスタ不
使用)を指定する。 オペランドOPD:RX1に関連するメモリ・ア
ドレスが例えば256であれば、OPDの内容は0000
0001 0000 0000になる。 (ロ) 算術演算 計算コードCC:CC1=01 CC2=00 CC3=001 LA1=1 LA2=0 CC1=01はALU11の第1入力源としてRX1を
指定し、CC2=00はALU11の第2入力源として
どのレジスタも選択されていないことを表わし、
CC3=001はALU演算として加算を指定し、LA1
=1は加算結果の行先としてRA1を指定し、
LA2=0はRA2が指定されていないことを表わ
す。 2 インデツクス・レジスタの内容修正及びメモ
リへの新しいインデツクス値の同時書込み インデツクス・レジスタRI1又はRI2の内容が
計算入力レジスタRX1又はRX2の内容により修
正され、その結果即ち新しいインデツクス値が元
のインデツクス・レジスタ及び関連するメモリ記
憶位置に書込まれる。これも単一の命令により1
マシン・サイクル内で実行される。 例えばRX2の内容でRI1の内容を修正するため
の命令は次の2つの動作を実行させる。 (イ) RX2の内容をRI1の内容に加算する算術演
算。 (ロ) RI1を自動的に選択するアドレスを有するメ
モリ記憶位置にALU11の演算結果を書込む転
送動作。 レジスタ・スワツピングのときと同じく、算術
演算は計算コードCCによつて指定され、転送動
作は転送コードTC及びオペランドOPDによつて
指定される。これらを指定する命令の内容は次の
とおりである。 (イ) 算術演算 計算コードCC:CC1=11(RI1) CC2=01(RX2) CC3=011(加算) LA1=0(非選択) LA2=0(非選択) (ロ) 転送動作 転送コードTC:ロード/ストア=10(ストア) TC1=000(ビツト15〜0) TC2=00(ゼロ強制) オペランドOPD:RI1に関連するメモリアドレ
スが例えば260であれば、OPD=0000 0101 0000
0000である。 3 フイルタ動作 例えばトランスバーサル・フイルタにおいては
遅延線の内容を移動させながら連続的に累算する
ことによつてフイルタ出力が計算される。この計
算を第1図のマイクロプロセツサで実行する場合
には、次の2つの動作を指定する命令が使用され
る。 (イ) RX1及びRX2の内容を加算して、その結果
をRA1に戻す算術演算。 (ロ) RX1の内容を次のメモリ記憶位置に書込む
転送動作。 これらを指定する命令の内容は次のとおりであ
る。 (イ) 算術演算 計算コードCC:CC1=01(RX1) CC2=01(RX2) CC3=011(加算) LA1=1(RA1選択) LA2=0(非選択) (ロ) 転送動作 転送コードTC:ロード/ストア=10(ストア) TC1=100(RX1) TC2=00(ゼロ強制) オペランドOPD:次のメモリ記憶位置のアド
レスが例えば27であれば、OPD=0000 0000
0001 1011である。 4 バタフライ動作 高速フーリエ変換(FFT)においては2つの
値の和及び差を計算して、その結果をメモリに戻
すバタフライ動作が要求される。その場合、次の
4つが実行されねばならない。 (イ) RX1及びRA1の内容を加算する算術演算。 (ロ) ALU11の演算結果をRI1によつて指定される
メモリ記憶位置に書込む転送動作。 (ハ) RA1の内容をRX1の内容から減算する算術
演算。 (ニ) ALU11の演算結果をRI1及びオペランド・フ
イールドによつて指定される次のメモリ記憶位
置に書込む転送動作。 上述の(イ)及び(ロ)を実行させる第1命令の内容は
次のとおりである。 (イ) 算術演算 計算コードCC:CC1=01(RX1) CC2=01(RA1) CC3=011(加算) LA1=0(非選択) LA2=0(非選択) (ロ) 転送動作 転送コードTC:ロード/ストア=10(ストア) TC1=010(ビツト19〜4) TC2=01(RI1) オペランドOPD:全ゼロ 上述の(ハ)及び(ニ)を実行させる第2命令の内容は
次のとおりである。 (ハ) 算術演算 計算コードCC:CC1=01(RX1) CC2=10(RA1) CC3=010(減算) LA1=0(非選択) LA2=0(非選択) (ニ) 転送動作 転送コードTC:ロード/ストア=10(ストア) TC1=010(ビツト19〜4) TC2=01(RI1) オペランドOPD:次のメモリ記憶位置のアド
レス1を指定。即ち、OPD=0000 0000 0000
0001である。 以上のように、本発明に従えば、何れのレジス
タの内容も破壊することなく、ALUの演算結果
を直接メモリに書込むことができ、従つて計算さ
れるべき2つの値は各々対応するレジスタに1回
ロードされるだけでよい。
の加減算の他に、排他的論理和演算()、論理
和演算(∨)及び論理積演算(∧)を実行でき
る。 ビツト8 (LA1) 直接使用され、ALU11の
出力をロードするレジスタとしてRA1を
選択する。 ビツト9 (LA2) 直接使用され、ALU11の
出力をロードするレジスタとしてRA2を
選択する。 タイミング 各デコーダから出力されるすべての制御信号
(TC1,CC2,ストアなど)及び各レジスタのす
べての出力信号は何れもスタテイツクである。即
ち、これらの信号は、各々のレジスタがロードさ
れて安定状態になつてから次のロードが行われる
までの間使用可能な状態にある。 上述の各種スタテイツク信号はクロツク信号
CLK又はによつてストローブされ、それに
より例えばレジスタへのロードが行われる。デー
タ母線17に接続されているすべてのレジスタ並
びに累算レジスタRA1及びRA2は、複数ビツト
のスタテイツク・データ信号、レジスタ選択のた
めのスタテイツク制御信号及びクロツク信号
CLKを入力として受取る。クロツク信号CLKの
正方向遷移が生じたとき、何れかのレジスタが対
応するレジスタ選択信号によつて選択されている
と、対応するデータ信号がこのレジスタへロード
される。 命令メモリ15の出力母線41に接続されてい
るレジスタ(ROP,RTC,RCC)は、クロツク
信号CLKの正方向遷移の度にロードされる。 第3図に示されているように、クロツク信号は
相補形式で発生される。上述のレジスタ・ロード
動作は、真クロツク信号CLKの正方向遷移によ
つて行われる。これに対し、補クロツク信号
CLKの正方向遷移は、スタテイツク信号(スト
ア、ロード)をストローブしてダイナミツク信号
(データ書込み、データ読出し)を発生するのに
用いられる。かくして、1マシン・サイクルの最
初の半サイクルの間にレジスタのロードが行わ
れ、次の半サイクルの間にメモリへのデータ書込
み又はメモリからのデータ読出しが行われる。 次に、マイクロプロセツサの各機能ユニツトの
詳細について説明する。 命令メモリ15、命令シーケンサ19及び分岐論
理37 マイクロプロセツサで実行されるべき命令を記
憶する命令メモリ15は読出し/書込み型及び読
出し専用型の何れでもよいが、本実施例では読出
し専用メモリが使用されるものとする。命令メモ
リ15は命令シーケンサ19によつてアドレス指
定される。特定のルーチンの先頭命令を選択する
ための初期アドレスはデータ母線17を介して命
令シーケンサ19へ転送され得る。命令シーケン
サ19はクロツク信号CLKに応答して命令アド
レスを順次に更新する。分岐論理37は特定の条
件が生じたとき、例えばALU11の出力ビツトが
すべてゼロになつたとき又はALU11でオーバー
フローが生じたときに現命令アドレス・シーケン
スを中断させて、別のアドレスへの分岐を行わせ
る。分岐論理37の条件付けを特定の転送コード
TC又は計算コードCCで行うこともできる。また
分岐論理37に条件レジスタ(図示せず)を接続
しておいてもよい。 命令メモリ15から読出された命令は、前述の
ようにROP43,RTC51及びRCC55へ分配され
る。これらのレジスタはマシン・サイクル毎にク
ロツク信号CLKの正方向遷移によつてロードさ
れる。従つて、各命令は所与のマシン・サイクル
でプリフエツチされ、次のマシン・サイクルで実
行される(パイプライン処理)。 RTC51及びTCデコーダ53 7ビツト幅のRTC51は転送コードTCを1つ保
持する。TCデコーダ53は転送コードTCの上位2
ビツトを解読して、ロード信号又はストア信号を
発生する。転送コードTCの残り5ビツト即ち3
ビツトのTC1及び2ビツトのTC2はTCデコーダ
53からそのまま出力される。 特別アドレス・デコーダ59 特別アドレス・デコーダ59は、ストア時に論理
回路61からのデータ書込み信号がオンのときに
のみ有効化されて、アドレス母線49上のアドレ
スを解読し、このアドレスが予め決められた4種
類の特別アドレスのうちの1つであれば、それに
対応するストアーレジスタ選択制御信号SP0,
SP1,SP6又はSP7を発生する。この制御信号は、
データ・メモリ13への書込みと同時に選択され
たレジスタに同じデータを書込ませるためのもの
で、メモリ読出しの場合には発生されない。本実
施例では4種類の特別アドレスしか使用されてい
ないが、これを8種類まで拡張することができ
る。 論理回路61 論理回路61はデコーダ53及び59からの制御信
号に応答してレジスタ選択信号及びデータ読出
し/書込み信号を発生するもので、第4図に示さ
れているようにデコーダ71並びに複数のORゲ
ート及びANDゲートから成つている。 デコーダ71はTCデコーダ53から3ビツトの
TC1及びロード信号を受取つて、4種類(8種類
まで可能)のロード・レジスタ選択信号LX1′,
LX2′,LI1′及びLI2′のうちの1つを発生する。ロ
ード信号はデコーダ71のための有効化信号とし
て使用される。 ORゲート73,75,77及び79はこれら
のロード・レジスタ選択信号及び特別アドレス・
デコーダ59からのストア・レジスタ選択信号を
各々1つずつ受取り、何れかの信号がオンであれ
ば対応するレジスタ選択信号LX1,LX2,LI1又
はLI2を出力する。これらのレジスタ選択信号は
第1図に示されている4個のレジスタRX1,
RX2,RI1及びRI2を各々選択する。例えばORゲ
ート73からのレジスタ選択信号LX1がオンであ
ればレジスタRX1が選択されて、データ母線1
7上のデータが書込まれる。選択されたレジスタ
への実際の書込み(ロード)は、クロツク信号
CLKの次の正方向遷移が生じたときに行われる。 ANDゲート81は、TCデコーダ53からのスト
ア信号を補クロツク信号の正方向遷移でス
トローブすることによりデータ書込み信号を発生
する(第3図参照)。従つて、命令メモリ15か
ら読出された命令がストア命令であつた場合に
は、データ・メモリ13への書込みがマシン・サ
イクルの後半で行われることになる。前述のよう
に、ANDゲート81からのデータ書込み信号は
データ・メモリ13の他の特別アドレス・デコー
ダ59にも供給され、更にあとで説明するマルチプ
レクサMUX3にも供給される。 ANDゲート83は、TCデコーダ53からのロー
ド信号を同じく補クロツク信号の正方向遷
移でストローブすることによりデータ読出し信号
を発生する。このデータ読出し信号は、データ・
メモリ13からデータを読出して選択されたレジ
スタRX1,RX2,RI1又はRI2へロードするとき
にデータ・メモリ13へ供給される。データ・メ
モリ13の読出しもマシン・サイクルの後半で行
われる。 RCC55及びCCデコーダ57 RCC55は、命令メモリ15から読出された命
令中の9ビツトの計算コードCCを受取つて保持
する。CCデコーダ57は、本実施例ではこれらの
9ビツトをその出力線へALU第1入力源選択信
号CC1(2ビツト)、ALU第2入力源選択信号
CC2(2ビツト)、ALU演算選択信号CC3(3ビツ
ト)、並びにレジスタ選択信号LA1及びLA2(各1
ビツト)として単に通過させるだけである。云い
換えれば、CCデコーダ57は分配回路として働く。
LA1及びLA2を符号化させた形で用いることも可
能であるが、その場合はレジスタを4個まで選択
できる。 ALU入力レジスタ及びインデツクス・レジスタ ALU入力レジスタとして働く計算入力レジス
タRX1及びRX2並びに累計レジスタRA1及び
RA2は何れも20ビツト幅であり、これに対して
インデツクス・レジスタRI1及びRI2は16ビツト
幅である。何れのレジスタもCCデコーダ57又は
論理回路61からの対応するレジスタ選択信号に
よつて有効化され、クロツク信号CLKの正方向
遷移が生じたときに、データ母線17又はALU
出力母線33上のデータをロードされる。各レジ
スタの出力接続は次のとおりである。 RX1→MUX1,MUL3 RX2→MUX2 RA1→MUX1,MUX2,MUX3 RA2→MUX2,MUX3 RI1→MUX1,MRX4 RI2→MUX4、 MUX1及びMUX2 これらのマルチプレクサは何れも20ビツト幅で
あつて、ALU11の入力マルチプレクサとして働
き、その出力はALU11の20ビツトの第1入力部
及び第2入力部に各々直接接続されている。
MUX1はCCデコーダ57からの2ビツトのALU第
1入力源選択信号CC1を解読するデコーダを有
し、MUX2はALU第2入力源選択信号CC2を解
読するデコーダを有する。第1入力源、第2入力
源及びALU演算の選択は互いに独立している。 ALU11 前述のように、ALU11はCCデコーダ57からの
ALU演算選択信号CC3に応答して、各20ビツト
の2個の入力オペランドに対し、加算、源算、排
他的論理和演算、論理和演算又は論理積演算を実
行する。 MUX3 MUX3は16ビツト幅であつて、ALU11の出力
マルチプレクサとして働く。MUX3には7種頼
(8種類まで可能)の16ビツト入力が供給され、
そのうちの1つがTCデコーダ53からの3ビツト
のTC1により選択されて、データ母線17の方へ
ゲートされる。ただしこのゲート動作が行われる
のは、データ書込み信号がオンのときだけであ
る。MUX3はTC1を解読する3ビツト・デコー
ダを有している。 MUX3の第1入力乃至第4入力は、ALU出力
母線33中の選択された16本の線に各々接続され
る。第1入力(ビツト15〜0)は実際のALU出
力を受取り、第2入力(ビツト18〜3)は3ビツ
トだけシフトされた即ち8で除算されたALU出
力(ALU/8)を受取り、第3入力(ビツト19
〜4)は4ビツトだけシフトされた即ち16で除算
されたALU出力(ALU/16)を受取り、第4入
力(ビツト19/19〜5)は5ビツトだけシフトさ
れた即ち32で徐算されたALU出力(ALU/32)
を受取る。第4入力に関しては、必要な16ビツト
を得るために、ALU出力の第1ビツトであるビ
ツト19(符号ビツト)が重複して受取られる。 MUX3の第5入力乃至第7入力は、レジスタ
RX1,RA1及びRA2の上位16ビツト(ビツト19
〜4)を各々受取る。従つて、これらのレジスタ
の内容はALU11を用いることなくデータ母線1
7へ転送され得る。 MUX4 16ビツト幅のMUX4はTCデコーダ53からの2
ビツトのTC2を解読するデコーダを有し、それに
応じてインデツクス・レジスタRI1又はRI2の内
容を加算器47の方へゲートする。 動作例 最後に、1マシン・サイクル内で特定のデータ
転送及び演算処理を同時に実行する例を幾つか説
明する。 1 レジスタ・スワツピング 第1図のマイクロプロセツサにおいては、2個
のレジスタの内容即ちRX1又はRX2の内容と
RA1又はRA2の内容とを単一の命令により1マ
シン・サイクル内で入れ替えることが可能であ
る。従来のマイクロプロセツサはデータを一時記
憶させるための中間バツフアを使用していたため
このような入れ替え即ちスワツピングには2マシ
ン・サイクル以上を必要としていた。 例えばRX1及びRA1の内容を入れ替えるため
の命令は次の2つの動作を実行させる。 (イ) RA1の内容をRX1に対応するメモリ記憶位
置、即ちRX1を自動的に選択するアドレスを
有するメモリ記憶位置に書込む転送動作。 (ロ) RX1の内容にゼロを加算して、その結果を
RA1に戻す算術演算。 (イ)の転送動作は命令中の転送コードTC及びオ
ペランドOPDによつて指定され、(ロ)の算述演算
は同じ命令中の計算コードCCによつて指定され
る。これらを指定する命令の内容は次のとおりで
ある。 (イ) 転送動作 転送コードTC:ロード/ストア=10 TC1=101 TC2=00 ロード/ストア=10はストアを指定し、TC1=
101はデータ母線17の源としてRA1を指定し、
TC2=00はゼロ強制(インデツクス・レジスタ不
使用)を指定する。 オペランドOPD:RX1に関連するメモリ・ア
ドレスが例えば256であれば、OPDの内容は0000
0001 0000 0000になる。 (ロ) 算術演算 計算コードCC:CC1=01 CC2=00 CC3=001 LA1=1 LA2=0 CC1=01はALU11の第1入力源としてRX1を
指定し、CC2=00はALU11の第2入力源として
どのレジスタも選択されていないことを表わし、
CC3=001はALU演算として加算を指定し、LA1
=1は加算結果の行先としてRA1を指定し、
LA2=0はRA2が指定されていないことを表わ
す。 2 インデツクス・レジスタの内容修正及びメモ
リへの新しいインデツクス値の同時書込み インデツクス・レジスタRI1又はRI2の内容が
計算入力レジスタRX1又はRX2の内容により修
正され、その結果即ち新しいインデツクス値が元
のインデツクス・レジスタ及び関連するメモリ記
憶位置に書込まれる。これも単一の命令により1
マシン・サイクル内で実行される。 例えばRX2の内容でRI1の内容を修正するため
の命令は次の2つの動作を実行させる。 (イ) RX2の内容をRI1の内容に加算する算術演
算。 (ロ) RI1を自動的に選択するアドレスを有するメ
モリ記憶位置にALU11の演算結果を書込む転
送動作。 レジスタ・スワツピングのときと同じく、算術
演算は計算コードCCによつて指定され、転送動
作は転送コードTC及びオペランドOPDによつて
指定される。これらを指定する命令の内容は次の
とおりである。 (イ) 算術演算 計算コードCC:CC1=11(RI1) CC2=01(RX2) CC3=011(加算) LA1=0(非選択) LA2=0(非選択) (ロ) 転送動作 転送コードTC:ロード/ストア=10(ストア) TC1=000(ビツト15〜0) TC2=00(ゼロ強制) オペランドOPD:RI1に関連するメモリアドレ
スが例えば260であれば、OPD=0000 0101 0000
0000である。 3 フイルタ動作 例えばトランスバーサル・フイルタにおいては
遅延線の内容を移動させながら連続的に累算する
ことによつてフイルタ出力が計算される。この計
算を第1図のマイクロプロセツサで実行する場合
には、次の2つの動作を指定する命令が使用され
る。 (イ) RX1及びRX2の内容を加算して、その結果
をRA1に戻す算術演算。 (ロ) RX1の内容を次のメモリ記憶位置に書込む
転送動作。 これらを指定する命令の内容は次のとおりであ
る。 (イ) 算術演算 計算コードCC:CC1=01(RX1) CC2=01(RX2) CC3=011(加算) LA1=1(RA1選択) LA2=0(非選択) (ロ) 転送動作 転送コードTC:ロード/ストア=10(ストア) TC1=100(RX1) TC2=00(ゼロ強制) オペランドOPD:次のメモリ記憶位置のアド
レスが例えば27であれば、OPD=0000 0000
0001 1011である。 4 バタフライ動作 高速フーリエ変換(FFT)においては2つの
値の和及び差を計算して、その結果をメモリに戻
すバタフライ動作が要求される。その場合、次の
4つが実行されねばならない。 (イ) RX1及びRA1の内容を加算する算術演算。 (ロ) ALU11の演算結果をRI1によつて指定される
メモリ記憶位置に書込む転送動作。 (ハ) RA1の内容をRX1の内容から減算する算術
演算。 (ニ) ALU11の演算結果をRI1及びオペランド・フ
イールドによつて指定される次のメモリ記憶位
置に書込む転送動作。 上述の(イ)及び(ロ)を実行させる第1命令の内容は
次のとおりである。 (イ) 算術演算 計算コードCC:CC1=01(RX1) CC2=01(RA1) CC3=011(加算) LA1=0(非選択) LA2=0(非選択) (ロ) 転送動作 転送コードTC:ロード/ストア=10(ストア) TC1=010(ビツト19〜4) TC2=01(RI1) オペランドOPD:全ゼロ 上述の(ハ)及び(ニ)を実行させる第2命令の内容は
次のとおりである。 (ハ) 算術演算 計算コードCC:CC1=01(RX1) CC2=10(RA1) CC3=010(減算) LA1=0(非選択) LA2=0(非選択) (ニ) 転送動作 転送コードTC:ロード/ストア=10(ストア) TC1=010(ビツト19〜4) TC2=01(RI1) オペランドOPD:次のメモリ記憶位置のアド
レス1を指定。即ち、OPD=0000 0000 0000
0001である。 以上のように、本発明に従えば、何れのレジス
タの内容も破壊することなく、ALUの演算結果
を直接メモリに書込むことができ、従つて計算さ
れるべき2つの値は各々対応するレジスタに1回
ロードされるだけでよい。
第1図は本発明の実施例を示す回路図、第2A
図乃至第2C図は本発明で使用される命令のフオ
ーマツトを示すブロツク図、第3図は相補形式の
クロツク信号とそれらに基くレジスタ・ロード及
びデータ読出し/書込みとのタイミング関係を示
す波形図、第4図は論理回路61の詳細を示す回
路図である。
図乃至第2C図は本発明で使用される命令のフオ
ーマツトを示すブロツク図、第3図は相補形式の
クロツク信号とそれらに基くレジスタ・ロード及
びデータ読出し/書込みとのタイミング関係を示
す波形図、第4図は論理回路61の詳細を示す回
路図である。
Claims (1)
- 【特許請求の範囲】 1 下記の(イ)乃至(リ)を具備するマイクロプロセツ
サ。 (イ) 第1入力及び第2入力を有する演算論理装置
(以下、ALUと略称)。 (ロ) 実行されるべき命令を供給する命令手段。 (ハ) 共通のデータ母線。 (ニ) 前記データ母線に直結され、データの書込み
及び読出しが行われるデータ・メモリ。 (ホ) 前記ALUで演算されるべき第1データを前
記データ母線から受取つて前記ALUの前記第
1入力へ供給する複数の第1レジスタ。 (ヘ) 前記ALUで演算されるべき第2データを前
記ALUの出力から受取つて前記ALUの前記第
2入力へ供給する複数の第2レジスタ。 (ト) 前記命令手段から供給される命令に応答して
前記データ・メモリをアドレス指定するアドレ
ス指定手段。 (チ) 前記ALUの出力を選択的に前記データ母線
へゲートするゲート手段。 (リ) 前記命令に応答して、前記ALUからの演算
結果を同じマシン・サイクル内で前記データ・
メモリのアドレス指定された記憶位置及び前記
命令によつて指定された第1レジスタ又は第2
レジスタへ選択的に書込ませる制御手段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP81106430A EP0072373B1 (en) | 1981-08-19 | 1981-08-19 | Improved microprocessor |
EP811064302 | 1981-08-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS5840667A JPS5840667A (ja) | 1983-03-09 |
JPS638490B2 true JPS638490B2 (ja) | 1988-02-23 |
Family
ID=8187860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP57142765A Granted JPS5840667A (ja) | 1981-08-19 | 1982-08-19 | マイクロプロセツサ |
Country Status (4)
Country | Link |
---|---|
US (1) | US4615004A (ja) |
EP (1) | EP0072373B1 (ja) |
JP (1) | JPS5840667A (ja) |
DE (1) | DE3174130D1 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4577282A (en) | 1982-02-22 | 1986-03-18 | Texas Instruments Incorporated | Microcomputer system for digital signal processing |
JPS6095651A (ja) * | 1983-10-31 | 1985-05-29 | Toshiba Corp | 記憶装置 |
JPS6140650A (ja) * | 1984-08-02 | 1986-02-26 | Nec Corp | マイクロコンピユ−タ |
JPS61122747A (ja) * | 1984-11-14 | 1986-06-10 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | デ−タ処理装置 |
US4747046A (en) * | 1985-06-28 | 1988-05-24 | Hewlett-Packard Company | Mechanism for comparing two registers and storing the result in a general purpose register without requiring a branch |
JPS63170736A (ja) * | 1987-01-09 | 1988-07-14 | Toshiba Corp | マイクロプロセツサ |
CA1327080C (en) * | 1987-05-26 | 1994-02-15 | Yoshiko Yamaguchi | Reduced instruction set computer (risc) type microprocessor |
US4891754A (en) * | 1987-07-02 | 1990-01-02 | General Datacomm Inc. | Microinstruction sequencer for instructing arithmetic, logical and data move operations in a conditional manner |
US4926355A (en) * | 1987-07-02 | 1990-05-15 | General Datacomm, Inc. | Digital signal processor architecture with an ALU and a serial processing section operating in parallel |
US4974146A (en) * | 1988-05-06 | 1990-11-27 | Science Applications International Corporation | Array processor |
US5131086A (en) * | 1988-08-25 | 1992-07-14 | Edgcore Technology, Inc. | Method and system for executing pipelined three operand construct |
JP2760808B2 (ja) * | 1988-09-01 | 1998-06-04 | 株式会社日立製作所 | データ処理装置 |
JP2810068B2 (ja) * | 1988-11-11 | 1998-10-15 | 株式会社日立製作所 | プロセッサシステム、コンピュータシステム及び命令処理方法 |
JPH0711332Y2 (ja) * | 1989-03-18 | 1995-03-15 | 株式会社ゼクセル | 熱交換器 |
KR100272622B1 (ko) * | 1991-05-08 | 2000-11-15 | 가나이 쓰도무 | 데이타 처리장치 |
JPH07248918A (ja) * | 1994-03-10 | 1995-09-26 | Matsushita Electric Ind Co Ltd | マイクロプロセッサ |
US6233599B1 (en) * | 1997-07-10 | 2001-05-15 | International Business Machines Corporation | Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers |
FR2831288B1 (fr) * | 2001-10-18 | 2004-12-10 | St Microelectronics Sa | Microprocesseur disposant d'instructions d'echange de valeurs entre deux registres ou deux emplacements memoire |
US8185671B2 (en) * | 2006-11-03 | 2012-05-22 | Intel Corporation | Technique for increasing control and status signal density in a fixed register address space |
CN113721979A (zh) * | 2020-05-25 | 2021-11-30 | 北京希姆计算科技有限公司 | 可配置位宽的寄存器电路及方法、解码电路和芯片 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5578344A (en) * | 1978-12-11 | 1980-06-12 | Toshiba Corp | Microprogram control system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3771141A (en) * | 1971-11-08 | 1973-11-06 | Culler Harrison Inc | Data processor with parallel operations per instruction |
US4086626A (en) * | 1974-10-07 | 1978-04-25 | Fairchild Camera And Instrument Corporation | Microprocessor system |
US4048481A (en) * | 1974-12-17 | 1977-09-13 | Honeywell Information Systems Inc. | Diagnostic testing apparatus and method |
US4106090A (en) * | 1977-01-17 | 1978-08-08 | Fairchild Camera And Instrument Corporation | Monolithic microcomputer central processor |
-
1981
- 1981-08-19 EP EP81106430A patent/EP0072373B1/en not_active Expired
- 1981-08-19 DE DE8181106430T patent/DE3174130D1/de not_active Expired
-
1982
- 1982-08-19 JP JP57142765A patent/JPS5840667A/ja active Granted
-
1984
- 1984-12-13 US US06/681,047 patent/US4615004A/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5578344A (en) * | 1978-12-11 | 1980-06-12 | Toshiba Corp | Microprogram control system |
Also Published As
Publication number | Publication date |
---|---|
DE3174130D1 (en) | 1986-04-24 |
EP0072373B1 (en) | 1986-03-19 |
EP0072373A3 (en) | 1983-06-29 |
US4615004A (en) | 1986-09-30 |
JPS5840667A (ja) | 1983-03-09 |
EP0072373A2 (en) | 1983-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS638490B2 (ja) | ||
US6510510B1 (en) | Digital signal processor having distributed register file | |
US6061779A (en) | Digital signal processor having data alignment buffer for performing unaligned data accesses | |
US5872987A (en) | Massively parallel computer including auxiliary vector processor | |
US4370709A (en) | Computer emulator with three segment microcode memory and two separate microcontrollers for operand derivation and execution phases | |
JPS6311697B2 (ja) | ||
JP3206704B2 (ja) | 複数のオンチップメモリバスを備えたデータ処理装置 | |
US4229801A (en) | Floating point processor having concurrent exponent/mantissa operation | |
US3990052A (en) | Central processing unit employing microprogrammable control for use in a data processing system | |
JPS6051134B2 (ja) | デ−タ処理システム | |
JP2002539519A (ja) | Vliwプロセッサにおけるレジスタ・アドレッシングの間接制御を提供するためのレジスタファイル索引付け方法及び装置 | |
US4323964A (en) | CPU Employing micro programmable control for use in a data processing system | |
JP2816624B2 (ja) | 2乗演算を実行する速度改良型データ処理システム及びその方法 | |
JPS58501560A (ja) | マイクロプロセツサ | |
JPH0636313B2 (ja) | デユアルアクセスシングルチツプ集積回路デイジタル記憶装置 | |
JPH0736691A (ja) | 拡張可能な中央処理装置 | |
US5109497A (en) | Arithmetic element controller for controlling data, control and micro store memories | |
EP0652508B1 (en) | Microprocessor with block move instruction | |
JP2680828B2 (ja) | ディジタル装置 | |
JPH02186486A (ja) | マイクロコンピュータ装置 | |
JPH0227696B2 (ja) | Johoshorisochi | |
USRE41012E1 (en) | Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor | |
US5793991A (en) | Method of equalizing loads on a computer bus | |
JP2636821B2 (ja) | 並列処理装置 | |
JPS6155130B2 (ja) |