JPH05173778A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH05173778A JPH05173778A JP3342629A JP34262991A JPH05173778A JP H05173778 A JPH05173778 A JP H05173778A JP 3342629 A JP3342629 A JP 3342629A JP 34262991 A JP34262991 A JP 34262991A JP H05173778 A JPH05173778 A JP H05173778A
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- bus
- instruction
- address
- 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
Links
- 230000015654 memory Effects 0.000 claims description 17
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 2
- 230000003247 decreasing effect Effects 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
-
- 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/7828—Architectures of general purpose stored program computers comprising a single central processing unit without memory
- G06F15/7832—Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- 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/30181—Instruction operation extension or modification
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
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)
- Microelectronics & Electronic Packaging (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Memory System (AREA)
Abstract
行ない、メモリへのアクセス命令や分岐命令などの処理
性能を向上する。またプログラムサイズの圧縮を図る。 【構成】 レジスタへの書き込みサイクルにおいて使用
しないバスを利用し、アドレスレジスタ又はプログラム
カウンタの内容を転送することにより、2バス構成でか
つ演算器が1つでありながら、ロード命令やストア命令
を基本サイクルで実行する。また、汎用レジスタをアド
レス用とデータ用に機能分割しそれぞれ4本とすること
により、複数のレジスタを持つデータ処理装置でありな
がら基本的なレジスタ間演算命令およびロード・ストア
命令を1バイトの基本命令語長に割り付ける。
Description
した内部バス構成を有するデータ処理装置とプログラム
の小型化に適した命令コードを有するデータ処理装置に
関する。
は、1サイクルでレジスタとレジスタとの間で演算する
ために2本あるいはそれ以上の本数によって構成されて
いた。2本の内部バスを用いてレジスタ間で演算する場
合には、基本サイクルを2つに分割し、前半でレジスタ
の内容をバスに出力して読み出し、後半で演算結果をレ
ジスタ書き込んでいる。また、3本のバスを用いる場合
には、1サイクルで読み出して演算し、次のサイクルで
3本目のバスを用いて演算結果をレジスタに書き込んで
いる。この場合には、基本サイクルを2つに分割する必
要がないため、2本のバスに比べて高速化できるメリッ
トがある反面ハードウエアが増加するので、低コストを
目指したデータ処理装置には、不向きであるという問題
がある。
において、例えば8本の汎用レジスタを持つデータ処理
装置の場合には、汎用レジスタ中の目的とするレジスタ
番号を指定するためにソース側とデスティネーション側
にそれぞれ3ビットのコードが必要となる。そのため最
低6ビットのレジスタフィールドが必要であった。従っ
て、基本的なレジスタ間の演算命令であっても1バイト
の基本命令語長では割り当てられず、2バイトの命令語
長になっていた。一方、汎用レジスタを持たないアキュ
ムレータ方式のデータ処理装置では、基本命令やその他
の演算命令を1バイトの命令コードに割り当てることが
できるが、演算に使えるレジスタがアキュムレータだけ
であるため、メモリとレジスタとのデータ転送が頻繁に
起こる。
めの命令数が増加するという問題がある。また、汎用レ
ジスタやアキュムレータを全く持たず、全てをメモリ上
で演算するデータ処理装置の場合、演算ごとにメモリ上
にあるデータのアドレスを指定するためのオペランドフ
ィールドが必要となり、命令コード語長が増加するとい
う問題がある。
り、アクセスするメモリのアドレス計算を専用の加算器
を使わずに、演算器で行なうデータ処理装置では、低コ
スト化が図れるが、処理速度が低下するという問題点が
あった。
るようにしたデータ処理装置では、基本的な加減算命令
やデータのロード・ストア命令を1バイトの短い命令コ
ードで表せなかったり、オペランドの指定に長い命令コ
ードを必要とするなど、命令コードを短くできないとい
う問題点があった。
本の内部バスと1つの演算器で低コスト化を図りなが
ら、アドレス計算を高速に行ない、メモリへのアクセス
命令や分岐命令などの処理性能を向上することを目的と
している。
がら、基本的なレジスタ間演算命令やロード・ストア命
令を1バイトの命令コードで実現するデータ処理装置を
提供することを目的としている。
レジスタと、アドレスを保持するアドレスレジスタと、
プログラムの実行番地を保持するプログラムカウンタ
と、命令の実行に先立って複数の命令を保持する命令バ
ッファと、データを演算処理する演算器と、前記データ
レジスタとアドレスレジスタとに接続され、書き込み又
は読み出しデータを転送する第1のバスと、前記アドレ
スレジスタとプログラムカウンタとに接続され、読み出
しデータを転送する第2のバスと、前記データレジスタ
と命令バッファとに接続され、読み出しデータを転送す
る第3のバスと、前記演算器の演算結果を保持する第1
のレジスタと、第1のバスに接続され、データ転送する
メモリのアドレスを保持する第2のレジスタと、前記第
1のレジスタと第2のレジスタを選択してメモリアドレ
スを決定するバス制御手段とを備える。
タ間演算命令、ロード・ストア命令を基本サイクル(1
サイクル)で実行すると共に、これらの命令を基本命令
語長(1バイト)で実現する。
理装置の内部ブロックを表した図である。同図におい
て、11はデータの保持及び演算用に用いるデータレジ
スタで、16ビット長のレジスタ4本から構成される。
12はアドレスの保持及び演算用に用いるアドレスレジ
スタで、データレジスタと同様に16ビット長のレジス
タ4本から構成される。13は実行中の命令のアドレス
を保持する16ビット長のプログラムカウンタ。14は
命令バッファであり、命令の実行に先だって先行的に命
令をメモリから読み出して蓄える。15はデータを演算
する16ビットの演算器である。16はデータレジスタ
11またはアドレスレジスタ12から読み出したデータ
を転送するバスで、演算器16が演算した結果をアドレ
スレジスタ又はデータレジスタへの転送も行なう。17
はアドレスレジスタ12又はプログラムカウンタ13か
ら読み出したデータを転送するバスである。18はデー
タレジスタ11又は命令バッファ14から読み出したデ
ータを転送するバスである。19はバス16とバス18
とを選択し、演算器15のデスティネーション側にデー
タを供給するセレクタである。20はバス16とバス1
7とを選択し、演算器15のソース側にデータを供給す
るセレクタである。21はテンポラリレジスタで、演算
器15の演算結果を一次的に保持する。22はアドレス
レジスタで、メモリをアクセスするアドレスを保持す
る。23はテンポラリレジスタ21とアドレスレジスタ
22とを選択するセレクタ。24はセレクタ23によっ
て選択したアドレスのメモリのデータをアクセスするバ
ス制御手段である。
データ処理装置の内部ブロックを表した図である。レジ
スタ等は第1の実施例と同じなので省略する。201と
202はそれぞれアドレスレジスタ12とデータレジス
タ11とに接続されるデスティネーション側のバス。2
03はバス201とバス202との接続又は切り離しを
制御するバススイッチ。204と205はそれぞれアド
レスレジスタ12とデータレジスタ11とに接続される
ソース側のバス。206はバス204とバス205との
接続又は切り離しを制御するバススイッチ。バススイッ
チが閉じると、両側に接続されたバスは1つのバスとし
て動作する。
いて、それぞれLD @abs16,Dn命令、LD @An,Dn命令を実
施した時の動作を示すタイミング図である。同図におい
て、T1およびT2は内部クロックであり、T1とT2
とで1サイクルとなる。解読、実行はそれぞれ解読ステ
ージ、実行ステージのパイプラインの様子を示してい
る。LD @abs16,Dn命令は、絶対アドレス(abs16)で示
されるアドレスのメモリからデータをロードし、データ
レジスタDnに格納する命令である。また、LD @An,Dn命
令は、アドレスレジスタAnで示されるアドレスのメモリ
からデータをロードし、データレジスタDnに格納する命
令である。
説明する。ロード命令は、通常2サイクルで実行され、
最初のサイクルでアドレスを計算し、次のサイクルでメ
モリをアクセスする。第3図は2サイクルで実行される
ロード命令の動作を示している。
から読み出されて解読される。サイクル2では、T1の
タイミングで絶対アドレスの値を命令バッファ14から
バス16に読み出し、T2のタイミングで演算器15を
通してレジスタ21へ格納するとともに、バス16にレ
ジスタ21のデータを出力し、アドレスレジスタ22に
格納する。サイクル3では、アドレスレジスタ22に格
納されたアドレスをセレクタ23により選択し、バス制
御手段24がデータをロードする。ロードしたデータは
T2のタイミングでバス16に出力し、データレジスタ
に格納する。サイクル3ではロードと同時に次の命令の
解読を開始する。従って、図3に示したロード命令は、
2サイクルで実行される。
るロード命令の動作を説明する。サイクル1では、命令
が命令バッファ14から読み出されて解読される。この
時、1サイクルで実行できるロード命令であることがわ
かるので、T2のタイミングで、アドレスレジスタ12
からアドレスをバス17に読み出し、T1のタイミング
で演算器15を通してレジスタ21へ格納する。サイク
ル2では、レジスタ21に格納されているアドレスをセ
レクタ23により選択し、バス制御手段24がデータを
ロードする。ロードしたデータはT2のタイミングでバ
ス16に出力し、データレジスタに格納する。サイクル
2ではロードと同時に次の命令の解読を開始するので、
図4に示したロード命令は、1サイクルで実行される。
図4のロード命令と同様に、LD @(d8,An),Dn命令も1サ
イクルで実行される。この命令は、アドレスレジスタAn
と8ビットの偏位を加算してえられるアドレスからデー
タをロードする命令である。動作は、第4図とほぼ同じ
であるが、サイクル1のT2のタイミングで、アドレス
レジスタの内容がバス17に読み出されると同時に命令
バッファ14から、8ビット偏位がバス18に読み出さ
れて、演算器15で加算されるところが異なる。
Dn,Dn)とロード命令(LD @(d8,An),Dn)を繰り返し実
行している様子を示すタイミング図である。サイクル2
の加算の実行では、T1のタイミングでデータレジスタ
のソース側データとデスティネーション側データをそれ
ぞれバス18とバス16に読み出す。バス18のデータ
とバス16のデータはそれぞれセレクタ20とセレクタ
19によって選択され、演算器に入力される。T2のタ
イミングでは、演算結果がレジスタ21に格納されると
ともにバス16に出力され、データレジスタ11に書き
込まれる。このサイクル2のT2のタイミングでは同時
に、ロード命令のアドレスレジスタがバス17に読み出
され、偏位がバス18に読み出されている。
バス構成のデータ処理装置においては演算器の演算結果
をレジスタに書き込むときに片方のバスしか使わないこ
とに着目し、そのタイミングで空いているバスを利用し
て、ロード命令のアドレス計算に必要なデータを転送し
ている。実装するうえではバス17とバス18は、一直
線上に位置することができ、バス1本分のハードウエア
コストしかからないが、T2のタイミングでは2本のバ
スとして機能する。
令などの分岐命令も1サイクルのロード命令と同様に、
直前命令のレジスタへの書き込みタイミングと同時に分
岐先アドレスを計算することにより高速に実行すること
が可能である。
のうち基本命令語長の命令コードと命令サイズ(バイ
ト)を示した図である。同図の命令コードにおいて、
「Dn」はデータレジスタの番号「An」はアドレスレジス
タの番号を示す。「*」は0か1のどちらかの値を取る
ことを示し、0の場合は左側の命令、1の場合は右側の
命令である。「CC」又は「C」は条件分岐命令の条件を
表すコードで、00、01、10、11又は0、1の値
を取り、それぞれ左側から右側に順番に書かれた命令に
対応する。また、命令において、鍵カッコで囲まれた命
令は、1サイクル高速に実行する命令を示している。#i
mm8および#imm16は即値データを示し、#imm8は命令に応
じて16ビットに拡張されて演算される。
スタへの書き込みサイクルにおいて使用しないバスによ
り、アドレスレジスタ又はプログラムカウンタの内容を
転送する構成をとり、2バス構成でかつ演算器が1つで
ありながら、ロード命令やストア命令を基本サイクルで
実行でき、低価格で高性能なデータ処理装置が実現でき
る。また、汎用レジスタをアドレス用とデータ用に機能
分割しそれぞれ4本とすることにより、C言語などの高
級言語を効果的に実行するために必要な最低限のレジス
タセットを提供し、複数のレジスタを持つデータ処理装
置でありながら基本的なレジスタ間演算命令およびロー
ド・ストア命令を1バイトの基本命令語長に割り付ける
ことができ、大幅な命令コードの圧縮を図ることが可能
となる。
ブロック図である。
ブロック図である。
イクルで実行するロード命令の動作を示すタイミング図
である。
イクルで実行するロード命令の動作を示すタイミング図
である。
スタ間演算命令と1サイクルで実行するロード命令とを
繰り返し実行する時の動作を示すタイミング図である。
割り当て図である。
Claims (3)
- 【請求項1】 データを保持するデータレジスタと、 アドレスを保持するアドレスレジスタと、 プログラムの実行番地を保持するプログラムカウンタ
と、 命令の実行に先立って複数の命令を保持する命令バッフ
ァと、 データを演算処理する演算器と、 前記データレジスタとアドレスレジスタとに接続され、
書き込み又は読み出しデータを転送する第1のバスと、 前記アドレスレジスタとプログラムカウンタとに接続さ
れ、読み出しデータを転送する第2のバスと、 前記データレジスタと命令バッファとに接続され、読み
出しデータを転送する第3のバスとを備え、 前記第2のバスと第3のバスを選択して演算のソースデ
ータとし、前記第1と前記第3のバスを選択してデステ
ィネーションデータとして前記演算器により演算するこ
とを特徴とするデータ処理装置。 - 【請求項2】 演算器の演算結果を保持する第1のレジ
スタと、 第1のバスに接続され、データ転送するメモリのアドレ
スを保持する第2のレジスタと、 前記第1のレジスタと第2のレジスタを選択してメモリ
アドレスを決定するバス制御手段とを備えたことを特徴
とする請求項1記載のデータ処理装置。 - 【請求項3】 データレジスタおよびアドレスレジスタ
をそれぞれ4本とし、データレジスタ間の演算命令とメ
モリからのデータ読み出し命令およびメモリへのデータ
書き込み命令を基本命令語長に割り当てたことを特徴と
する請求項1記載のデータ処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3342629A JP2861560B2 (ja) | 1991-12-25 | 1991-12-25 | データ処理装置 |
US08/419,957 US5649229A (en) | 1991-12-25 | 1995-04-10 | Pipeline data processor with arithmetic/logic unit capable of performing different kinds of calculations in a pipeline stage |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3342629A JP2861560B2 (ja) | 1991-12-25 | 1991-12-25 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05173778A true JPH05173778A (ja) | 1993-07-13 |
JP2861560B2 JP2861560B2 (ja) | 1999-02-24 |
Family
ID=18355254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3342629A Expired - Lifetime JP2861560B2 (ja) | 1991-12-25 | 1991-12-25 | データ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5649229A (ja) |
JP (1) | JP2861560B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6041387A (en) * | 1997-09-12 | 2000-03-21 | Siemens Aktiengesellschaft | Apparatus for read/write-access to registers having register file architecture in a central processing unit |
US6301653B1 (en) | 1998-10-14 | 2001-10-09 | Conexant Systems, Inc. | Processor containing data path units with forwarding paths between two data path units and a unique configuration or register blocks |
US7162615B1 (en) | 2000-06-12 | 2007-01-09 | Mips Technologies, Inc. | Data transfer bus communication using single request to perform command and return data to destination indicated in context to allow thread context switch |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4041461A (en) * | 1975-07-25 | 1977-08-09 | International Business Machines Corporation | Signal analyzer system |
JPS59174948A (ja) * | 1983-03-25 | 1984-10-03 | Toshiba Corp | 情報処理装置 |
US5197141A (en) * | 1988-01-30 | 1993-03-23 | Nec Corporation | Software controlled method of issuing hardware control commands to memory controller from prefetch unit by combining request code and address specified in program instructions |
JPH0766324B2 (ja) * | 1988-03-18 | 1995-07-19 | 三菱電機株式会社 | データ処理装置 |
US5187795A (en) * | 1989-01-27 | 1993-02-16 | Hughes Aircraft Company | Pipelined signal processor having a plurality of bidirectional configurable parallel ports that are configurable as individual ports or as coupled pair of ports |
-
1991
- 1991-12-25 JP JP3342629A patent/JP2861560B2/ja not_active Expired - Lifetime
-
1995
- 1995-04-10 US US08/419,957 patent/US5649229A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2861560B2 (ja) | 1999-02-24 |
US5649229A (en) | 1997-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7424598B2 (en) | Data processor | |
US7584343B2 (en) | Data reordering processor and method for use in an active memory device | |
US5809274A (en) | Purge control for ON-chip cache memory | |
JP2816248B2 (ja) | データプロセッサ | |
JPH0496825A (ja) | データ・プロセッサ | |
KR100465388B1 (ko) | Risc 구조의 8비트 마이크로 제어기 | |
JP2620511B2 (ja) | データ・プロセッサ | |
US5867696A (en) | Saving a program counter value as the return address in an arbitrary general purpose register | |
US6670895B2 (en) | Method and apparatus for swapping the contents of address registers | |
US7100029B2 (en) | Performing repeat string operations | |
US7134000B2 (en) | Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information | |
US20040255102A1 (en) | Data processing apparatus and method for transferring data values between a register file and a memory | |
JP2556182B2 (ja) | デ−タ処理装置 | |
KR920002573B1 (ko) | 데이타 처리기 | |
JPH05173778A (ja) | データ処理装置 | |
US4853889A (en) | Arrangement and method for speeding the operation of branch instructions | |
JP3504355B2 (ja) | プロセッサ | |
JP2668987B2 (ja) | データ処理装置 | |
JPH07110769A (ja) | Vliw型計算機 | |
WO2012077516A1 (ja) | プログラマブルコントローラ | |
JPH07191911A (ja) | アドレス変換装置及びマイクロプロセッサ算出方法 | |
JP2576589B2 (ja) | 仮想記憶アクセス制御方式 | |
US20050188183A1 (en) | Digital signal processor having data address generator with speculative register file | |
JPS63157235A (ja) | コンピユータ・システムの制御装置 | |
JP2001100991A (ja) | ディジタル信号処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071211 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081211 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091211 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091211 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101211 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101211 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111211 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111211 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121211 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: 20121211 Year of fee payment: 14 |