JP2703884B2 - Data write control method - Google Patents

Data write control method

Info

Publication number
JP2703884B2
JP2703884B2 JP60296954A JP29695485A JP2703884B2 JP 2703884 B2 JP2703884 B2 JP 2703884B2 JP 60296954 A JP60296954 A JP 60296954A JP 29695485 A JP29695485 A JP 29695485A JP 2703884 B2 JP2703884 B2 JP 2703884B2
Authority
JP
Japan
Prior art keywords
data
register
bits
bit
written
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 - Lifetime
Application number
JP60296954A
Other languages
Japanese (ja)
Other versions
JPS62156742A (en
Inventor
博昭 金子
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP60296954A priority Critical patent/JP2703884B2/en
Publication of JPS62156742A publication Critical patent/JPS62156742A/en
Application granted granted Critical
Publication of JP2703884B2 publication Critical patent/JP2703884B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、複数の異なったビット長のデータを処理す
るデータ処理装置において、レジスタに対するデータ書
込み制御方式に関する。 〔従来の技術〕 データ処理装置において、取り扱うデータの長さは必
ずしも一種類とは限らない。例えば英文字コードや短い
整数を取り扱う場合は、たかだか8ビットの長さがあれ
ば十分であり(以下8ビットの長さを持つデータをバイ
ト・データと呼ぶ)、漢字文字コードや短い整数を取り
扱う場合は、16ビットの長さを持つデータをハーフ・ワ
ード・データと呼ぶ)。また、さらに大きな整数や、浮
動小数点数を取り扱う場合には、32ビット以上の長さを
必要とする(以下32ビットの長さを持つデータをワード
・データと呼ぶ)。 このようにデータの振るまいとデータのビット長の対
応をデータ・タイプと呼ぶ。 第3図に典型的なデータ処理装置の構成を示す。デー
タは、通常記憶装置101あるいは中央処理装置(以下プ
ロセッサと呼ぶ)102内のレジスタ104に配置される。記
憶装置101に配置されたデータは、一度レジスタ104に取
り込まれた後で、演算や転送等の処理を受ける。 一般に一本のレジスタは、複数の異なったデータ・タ
イプに属するデータを格納することが可能である。例え
ば、32ビット幅を持つレジスタは、第4図(A)、
(B)および(C)に示すようにバイト・データ201、
ハーフ・ワード・データ202およびワード・データ203を
格納できるように最小有無ビット(LSB)の位置が揃え
られている。 また一本のレジスタは、あるプログラムの実行中に同
一のデータ・タイプで用いられるとは限らない。ある時
点では、バイト・タイプ、またある時点ではワード・タ
イプとして用いられることがある。例えば、ワード・デ
ータ用のレジスタの長さは、4つのバイト・データを格
納するに十分な長さである。このため、レジスタはしば
しば複数のより短いデータ・タイプのデータを格納する
ために用いられる。第5図(A)および(B)に32ビッ
ト幅のレジスタ4つのバイト・データ、および2つのハ
ーフ・ワード・データを格納する様子を示す。 前述のように一本のレジスタに複数個のデータを格納
する場合、複数のうちただ一つのデータだけを書き換え
る時、データ・タイプに対応する部分だけ変更しない
と、レジスタ中の他のデータ部分も同時に書き換えら
れ、レジスタにおける転送に無関係な部分のデータの保
証ができなくなる。 上記の不都合を避けるために、レジスタへの書き込み
においては指定されたデータ・タイプによって、必要な
範囲のビットのみを変化させるのが一般的である。この
ように、データの一連のビット列のみを変更する機能
を、部分書込み機能と呼ぶ。 第6図は、データ・タイプによって下位8、16あるい
は32ビットの部分書込み機能を持つ32ビット・レジスタ
の従来例である。 32ビット・レジスタ401は32ビット・データ・バッフ
ァ402を介してデータ・バス403に接続され、読出し信号
414によって内容が出力される。また書込み信号410はデ
ータ・バスの下位8ビット(ビット番号0〜7)のみを
書き込み、411は次の下位8ビット(ビット番号8から1
5)を書き込み、412は上位16ビット(ビット番号16〜3
1)を書き換える信号である。 データ・タイプの種類を示す2ビット信号415は、レ
ジスタに転送するビット幅を示すものであり、00b(b
は二進数であることを示す)がバイト・データを、01b
はハーフ・ワード・データを、10bはワード・データを
転送することを意味する。また書込み信号413は、この
レジスタにデータを書き込むことを指定する制御信号で
ある。 書込み制御回路404は、書込み信号413がアクティブに
なった時、データ・タイプ信号415が00bならば410の
み、01bならば410および411を、10bならば410,411およ
び412をすべてアクティブになるように制御するもので
ある。 前記の従来例では、3種類のデータ・タイプに属する
データの書込みを行なうために、一本のレジスタに対し
て3本の書込み信号(410,411および412)が必要であ
り、しかも固有の書込み制御回路404が必要になる。 レジスタの本数が増加するほど、またデータ・タイプ
の種類が多いほど、前述の制御信号および制御回路も比
較的に増加する。 部分書込み機能を有するレジスタをプリント基板の上
にICパッケージを用いて実装する時、同一量のレジスタ
を部分書込み機能なしで構成する場合に比べ、制御信号
の数が多く配線量が著しく増加したり、一本のレジスタ
の構成の複雑さやICパッケージのピン数の制限から多く
のパッケージを必要として実装面積が増加するという欠
点を有していた。 また、LSIの中に部分書込み機能を有するレジスタを
実装する時でも、部分書込み機能なしのレジスタに比較
して、単位レジスタ(レジスタの各ビットを構成する機
能を持つ)を構成するマスク・パターン(LSI内のトラ
ンジスタや配線を決定する幾何学的配列)が複雑になる
とともに、マスク・パターン内を余分な制御信号が横切
るために、レジスタの実装面積が大きくなる。 〔発明が解決しようとする問題点〕 本発明は、前記従来例の欠点に鑑み、複数のデータ・
タイプに属するデータを格納するレジスタを持つデータ
処理装置において、部分書込み機能を一種類のビット幅
の書込みができるレジスタによって提供することを目的
としている。 〔問題点を解決するための手段〕 本発明のデータ書込み制御方式は、データ処理装置内
に備えられ、オペランドデータの一時的な記憶のために
ビット長の異なる複数種類のデータが格納される複数の
レジスタに対し、前記レジスタのビット長よりも短いビ
ット長のデータを演算結果として書き込む際に、指定さ
れたビット以外の内容を変化させずにデータを書き込む
データ書き込み方式において、指定された一つの前記レ
ジスタのデータを保持手段に保持し、演算部からのデー
タであって前記一つのレジスタに書き込まれるべきデー
タが転送され、前記書き込まれるべきデータのビット長
を示す命令コードに基づいて生成される制御入力信号に
応答して前記書き込まれるべきデータと前記保持したデ
ータとを合成手段にて合成し、前記書き込まれるべきデ
ータの最小有意ビットを常に再開ビットとする合成デー
タを生成し、前記合成データを前記一つのレジスタに書
き込むことを特徴とする。 〔発明の作用・原理〕 レジスタにデータを書き込む際に、書込みを指定され
たレジスタの直前ののデータを読み出して記憶してお
き、前記記憶されたデータと書込みデータを合成(ブロ
ッキング)した後に、書込みを指定されたレジスタに書
き込むことで、書込みを指定されたレジスタにの書き換
えてはならない部分が結果的に変化しないことを保証す
る。 〔実施例〕 以下、図面を参照して、本発明の構成および動作を詳
細に説明する。 第1図は、本発明の一実施例を示す図である。レジス
タ・ファイル501は、32本の32ビット幅のレジスタ600〜
631から構成される。各レジスタの入力は32ビットの2
入力マルチプレクサ502に接続され、各レジスタに対す
る書込み信号632〜663によって、マルチプレクサ502の
出力の内容が書き込まれる。一方、各レジスタの出力
は、各レジスタの出力バッファ700〜731を介して32ビッ
トのデータ・バス504に接続され、各レジスタに対する
読み出し信号732〜763によって、データ・バス504に読
み出される。 ブロッキング用レジスタ503はデータ・バス504に接続
され、デスティネーション・オペランド・レジスタ505
にデータ・バス504の内容(デスティネーション・デー
タ)をALUに転送する時に、書込み信号512によってデー
タ・バスの内容をラッチする32ビット・ラッチである、 マルチプレクサ502はレジスタ・ファイル501の入力と
データ・バス504の間に接続され、ブロッキング用レジ
スタ503の出力とデータ・バス504の32ビット全部あるい
は一部分を合成する機能を持つ。またマルチプレクサ50
2は、2ビットの制御入力511を持ち、制御入力511の値
によってブロッキング用レジスア503の内容とデータ・
バス504の内容を次のように合成する。 制御入力が00bの時 データ・バスより書き込まれるデータは8ビットであ
り、レジスタの上位24ビットは変化してはならないこと
を示している。出力の下位8ビットには、データ・バス
504の下位8ビットを、出力の上位24ビットにはブロッ
キング・レジスタ503の内容の上位24ビットを選択す
る。 制御入力が01bの時 データ・バスより書き込まれるデータは16ビットであ
り、レジスタの上位16ビットは変化してはならないこと
を示している。出力の下位16ビットには、データ・バス
504の下位16ビットを、出力の上位16ビットにはブロッ
キング・レジスタ503の内容の上位16ビットを選択す
る。 制御入力が10bの時 データ・バスより書き込まれるデータは32ビットであ
り、レジスタの内容は32ビット全体が変化することを示
している。出力の32ビットには、データ・バス504の32
ビットがそのまま出力される。 ALU507は32ビットの算術論理ユニットであり、データ
・バスに接続されたソース・オペランド・レジスタ506
とデスティネーション・オペランド・レジスタ505の内
容に対して、加算に代表される算術演算や、論理積に代
表される論理演算を演算指定信号514の指定にしたがっ
て行なう。演算結果は、データ・バスに接続された32ビ
ット出力バッファ508を介して、読出し信号515がアクテ
ィブになるとデータ・バス504に出力される。 ソース・オペランド・レジスタ506およびデスティネ
ーション・オペランド・レジスタ505はともに32ビット
・レジスタで、データ・バス504に接続されALU507にお
ける2オペランド演算用のデータを一時的に保持する。
書込み信号512および513は、デスティネーション・オペ
ランド・レジスタ505およびソース・オペランド・レジ
スタ506に対するそれぞれの書込み信号である。 一般的に、2オペランドの演算命令は次のように実行
される。 ソース・オペランドとして指定されるレジスタ600
〜631の内容をデータ・バス504を経由して、ソース・オ
ペランド・レジスタ506へ転送する。 デスティネーション・オペランドとして指定される
レジスタ600〜631の内容をデータ・バス504を経由して
デスティネーション・オペランド・レジスタ505へ転送
するとともに、ブロッキング用レジスタ503へ転送す
る。 ソース・オペランド・レジスタ506の内容とデステ
ィネーション・オペランド505の内容に対してALU507で
演算を行なう。 演算結果をALUの出力バッファ508からデータ・バス
504に乗せる。 制御入力信号511の内容に従って、データ・バス504
の内容とブロッキング用レジスタの内容503を合成し、
デスティネーション・オペランドとして指定されたレジ
スタ600〜631に書き込む。 次に例をあげながら、動作を説明する。今、レジスタ
600に12345678h(hは十六進数であることを示す)レジ
スタ615に66666666hに格納されているとする。命令とし
てはADDBR0,R15を実行しようと仮定する。この命令は レジスタ600に格納された8ビット・データと、レジス
タ615に格納された8ビット・データを加算し、得られ
た結果をレジスタ15(615)に転送することを意味す
る。 レジスタ600および615ともに、加算に関与するデータ
は、下位8ビットのみ(600は78h、615は66h)であるか
ら、最終的にレジスタ600の内容は123456DEhとなる(78
h+66h=0DEh)が得られる(第7図(A)参照)。 さてまずレジスタ615の内容66666666hが、データ・バ
ス505を経由してソース・オペランド・レジスタ506に転
送される。 次にレジスタ600の内容12345678hが、データ・バス50
4を経由してデスティネーション・オペランド・レジス
タ505に転送されるとともに、ブロッキング用レジスタ5
03に転送される。ALU507では常に32ビット幅で演算が行
なわれるので、ALU507の出力としては789ABCDEh(12345
678h+66666666h)が得られている。 演算結果(789ABCDEh)は、データ・バス504を経由し
てマルチプレクサ502に達する。データ・タイプとして
バイト・タイプが指定されている(制御入力511が00h)
ので、マルチプレクサ502の出力下位8ビットにはデー
タ・バス504の下位8ビットすなわち0DEhが、マルチプ
レクサ502の出力上位24ビットにはブロッキング用レジ
スタ503の上位24ビット、すなわち先にデスティネーシ
ョン・オペランドとしてデスティネーション・オペラン
ド・レジスタ505に転送した12345678hの上位24ビット12
3456hが出力される。したがって、マルチプレクサ502の
出力全体としては、123456DEhという32ビット・データ
が構成され、この値がレジスタ600に書き込まれる。 同様にハーフ・ワード・データを取り扱う場合は、前
記のADDB命令の代わりにハーフ・ワード・データに対す
る加算命令ADDHW R0,R15が実行される時である。 この場合も演算結果(789ABCDEf)がデータ・バス504
に出力されるまでは、バイト・データ・タイプの場合と
同じである。データ・タイプとしてハーフ・ワード・タ
イプが指定されている(制御入力511が01h)ので、マル
チプレクサ502の出力下位16ビットにはデータ・バス504
の下位16ビットすなわち0BCDEhが、マルチプレクサ502
の出力上位16ビットにはブロッキング用レジスタ503の
上位16ビット、すなわち先にデスティネーション・オペ
ランドとしてデスティネーション・オペランド・レジス
タ505に転送した12345678hの上位16ビット1234hが出力
される。したがって、マルチプレクサ502の出力全体と
しては、1234BCDEhという32ビット・データが構成さ
れ、この値がレジスタ600に書き込まれる(第7図
(B)参照)。 さらにワード・データを取り扱う場合は、前記のADDB
命令の代わりにワード・データに対する加算命令ADDW R
0,R15が実行される時である。この場合も演算結果(789
ABCDEf)がデータ・バス504に出力されるまでは、バイ
ト・データ・タイプの場合と同じである。データ・タイ
プとしてワード・タイプが指定されている(制御入力51
1が10h)ので、マルチプレクサ502の32ビット出力には
データ・バス504の32ビットすなわち789ACBDEhという32
ビット・データが構成され、この値がレジスタ600に書
き込まれる(第7図(C)参照)。 第2図は、本発明の別の一実施例を示す図である。こ
の実施例の場合、レジスタ・ファイル501の入力はマル
チプレクサ502を介さずに、直接にデータ・バス504と接
続され常にデータ・バス504の内容を書込み信号632〜66
3によって対応するレジスタに書込みを行なう。一方、A
LU507の出力データ・バス508の間には32ビット・マルチ
プレクサ502が接続される。前記ブロッキング・レジス
タ503の代用として、ここではデスティネーション・オ
ペランド・レジスタ505を用いる。デスティネーション
・オペランド・レジスタ505の出力は、ALU507の入力と
して接続されているばかりでなく、マルチプレクサ502
のもう一方の入力として接続される。 マルチプレクサ502は前記実施例と同様に2ビットの
制御入力511を持ち、この値によってデスティネーショ
ン・オペランド・レジスタ505の内容とALU507の出力を
次のように合成する。 制御入力が00bの時 レジスタの上位24ビットは変化してはならないことを
示している。出力の下位8ビットには、ALU507の下位8
ビットを、出力の上位24ビットにはデスティネーション
・オペランド・レジスタ505の内容の上位24ビットを選
択する。 制御入力が01bの時 レジスタの上位16ビットは変化してはならないことを
示している。出力の下位16ビットには、ALU507の下位16
ビットを、出力の上位16ドットにはデスティネーション
・オペランド・レジスタ505の内容の上位16ビットを選
択する。 制御入力が10bの時 レジスタの内容は32ビット全体が変化することを示し
ている。出力の32ビットには、ALU507の32ビットがその
まま出力される。 本実施例では、前記実施例に対すブロッキング用レジ
スタ503が不要のため、ハードウェアが簡略化が図れる
ばかりでなく、レジスタ・ファイル501以外のデータ・
バス504に接続されたレジスタ資源に対しても、部分書
込み機能を供せることが可能になる。 加算、減算、論理積、論理和命令等の実現のための2
オペランド演算では、必ずソース・オペランドおよびデ
スティネーション・オペランドをALUに転送するので、
デスティネーション・データと演算結果の合成のために
余分な転送は必要ない。 また一方、論理否定や、2の補数命令等の実現のため
の1オペランド演算では、通常デスティネーション・オ
ペランドのみALUに転送するので、この場合もデータ合
成のための転送には無駄はない。 ところで、ALUで演算を行なわないような命令、たと
えばレジスタ−レジスタ間のデータ転送命令では、デス
ティネーション・オペランドを読み出す必要がないが、
データ合成のためにデスティネーション・オペランドの
内容をブロッキング用レジスタにデータに転送するか、
あるいはALU演算をノー・オペレーション(NOP)に指定
することで疑似的に演算を行なうことで部分書込み機能
を実現することができる。 さらに、実行が複雑な命令では、これらの転送は全体
の処理からみると無視できるほどのオーバヘッドにすぎ
ないのは、明らかである。 〔発明の効果〕 以上説明したように、レジスタの部分書込み機能を、
単一語長の書込み機能しか持たないレジスタを用いて実
現できるので、複数のデータ・タイプに属するデータを
取り扱うプロセッサにおけるレジスタをプリント基板上
では、少ないハードウェアと少ない配線量で実現するこ
とが出来るので高密度実装が可能である。またLSIにお
いても、少面積で実現できるので、チップ全体の面積の
縮小が可能になり、安価にLSIを製造することや、同一
面積内に他の有用な機能を実現することができる。
Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data write control method for a register in a data processing device that processes a plurality of data having different bit lengths. [Related Art] In a data processing device, the length of data to be handled is not always one type. For example, when handling English character codes and short integers, a length of at most 8 bits is sufficient (hereinafter, data having a length of 8 bits is referred to as byte data), and kanji character codes and short integers are handled. In such a case, data having a length of 16 bits is called half word data.) Further, when dealing with even larger integers and floating point numbers, a length of 32 bits or more is required (hereinafter, data having a length of 32 bits is called word data). The correspondence between the behavior of data and the bit length of data is called a data type. FIG. 3 shows the configuration of a typical data processing device. The data is usually stored in a register 104 in a storage device 101 or a central processing unit (hereinafter referred to as a processor) 102. After the data arranged in the storage device 101 is once taken into the register 104, it is subjected to processing such as calculation and transfer. In general, one register can store data belonging to a plurality of different data types. For example, a register having a 32-bit width is shown in FIG.
As shown in (B) and (C), byte data 201,
The position of the least significant bit (LSB) is aligned so that half word data 202 and word data 203 can be stored. Also, a single register may not be used for the same data type during the execution of a program. At some point it may be used as a byte type and at some point as a word type. For example, the length of the register for word data is long enough to store four bytes of data. For this reason, registers are often used to store data of a plurality of shorter data types. FIGS. 5A and 5B show the storage of four byte data and two half word data of a register having a 32-bit width. As described above, when storing a plurality of data in one register, when rewriting only one of the plurality of data, if only the part corresponding to the data type is not changed, other data parts in the register will also be At the same time, the data is rewritten, and the data in a portion unrelated to the transfer in the register cannot be guaranteed. In order to avoid the above inconvenience, it is common to change only bits in a necessary range according to a designated data type in writing to a register. Such a function of changing only a series of bit strings of data is called a partial write function. FIG. 6 shows a conventional example of a 32-bit register having a partial write function of lower 8, 16 or 32 bits depending on the data type. The 32-bit register 401 is connected to the data bus 403 via the 32-bit data buffer 402,
The contents are output by 414. The write signal 410 writes only the lower 8 bits (bit numbers 0 to 7) of the data bus, and 411 denotes the next lower 8 bits (bit numbers 8 to 1).
5) is written, and 412 is the upper 16 bits (bit numbers 16 to 3).
This is a signal that rewrites 1). The 2-bit signal 415 indicating the type of the data type indicates the bit width to be transferred to the register, and is represented by 00b (b
Indicates a binary number) indicates byte data, 01b
Means half word data and 10b means word data. The write signal 413 is a control signal designating that data is written to this register. The write control circuit 404 controls such that when the write signal 413 becomes active, the data type signal 415 becomes 410b when the data type signal 415 is 00b, 410 and 411 when it is 01b, and 410, 411 and 412 when it is 10b. Is what you do. In the above conventional example, three write signals (410, 411 and 412) are required for one register in order to write data belonging to three types of data, and a unique write control circuit is required. 404 is required. As the number of registers increases and the types of data types increase, the number of control signals and control circuits described above relatively increases. When a register with a partial write function is mounted on a printed circuit board using an IC package, the number of control signals is large and the amount of wiring increases significantly compared to the case where the same amount of registers are configured without the partial write function. However, there is a disadvantage in that a large number of packages are required and the mounting area is increased due to the complexity of the configuration of one register and the limitation of the number of pins of the IC package. In addition, even when a register having a partial write function is implemented in an LSI, a mask pattern (having a function of configuring each bit of the register) constituting a unit register (having a function of configuring each bit of the register) is compared with a register without a partial write function. In addition to the complexity of the geometrical arrangement that determines the transistors and wiring in the LSI, the extra control signals traverse the mask pattern, which increases the mounting area of the register. [Problems to be solved by the invention] In view of the disadvantages of the conventional example, the present invention
In a data processing device having a register for storing data belonging to a type, an object of the present invention is to provide a partial write function by a register capable of writing with one kind of bit width. [Means for Solving the Problems] A data write control method according to the present invention is provided in a data processing apparatus and stores a plurality of types of data having different bit lengths for temporary storage of operand data. When writing data having a bit length shorter than the bit length of the register as an operation result to the register of the register, in a data writing method of writing data without changing the contents other than the specified bit, The data of the register is held in a holding unit, and data from an arithmetic unit, which is to be written to the one register, is transferred, and is generated based on an instruction code indicating a bit length of the data to be written. In response to a control input signal, the data to be written and the held data are synthesized by synthesizing means. Synthesized data in which the least significant bit of data to be rared is always set as a restart bit is generated, and the synthesized data is written to the one register. [Operation and Principle of the Invention] When writing data to a register, the data immediately before the register designated to be written is read and stored, and after combining the stored data with the write data (blocking), By writing the write to the designated register, it is ensured that the portion that must not be rewritten to the designated register does not change as a result. Embodiment Hereinafter, the configuration and operation of the present invention will be described in detail with reference to the drawings. FIG. 1 is a diagram showing one embodiment of the present invention. Register file 501 contains 32 32-bit wide registers 600 to
It is composed of 631. The input of each register is 32-bit 2
Connected to the input multiplexer 502, the contents of the output of the multiplexer 502 are written by write signals 632-663 for each register. On the other hand, the output of each register is connected to a 32-bit data bus 504 via output buffers 700 to 731 of each register, and is read out to the data bus 504 by read signals 732 to 763 for each register. The blocking register 503 is connected to the data bus 504, and the destination operand register 505
Is a 32-bit latch that latches the contents of the data bus with a write signal 512 when transferring the contents of the data bus 504 (destination data) to the ALU. It is connected between the buses 504 and has a function of combining the output of the blocking register 503 and all or part of the 32 bits of the data bus 504. Also multiplexer 50
2 has a 2-bit control input 511, and the content of the blocking register 503 and the data
The contents of the bus 504 are synthesized as follows. When the control input is 00b, the data written from the data bus is 8 bits, indicating that the upper 24 bits of the register must not change. The lower 8 bits of the output have a data bus
The lower 8 bits of the 504 are selected, and the upper 24 bits of the contents of the blocking register 503 are selected as the upper 24 bits of the output. When the control input is 01b, the data written from the data bus is 16 bits, indicating that the upper 16 bits of the register must not change. The lower 16 bits of the output have a data bus
The lower 16 bits of 504 are selected, and the upper 16 bits of the output are selected as the upper 16 bits of the contents of the blocking register 503. When the control input is 10b, the data written from the data bus is 32 bits, and the contents of the register indicate that the entire 32 bits change. The 32 bits of output include 32 on data bus 504.
The bits are output as is. The ALU 507 is a 32-bit arithmetic logic unit that has a source operand register 506 connected to the data bus.
An arithmetic operation represented by addition or a logical operation represented by AND is performed on the contents of the destination operand register 505 and the contents of the destination operand register 505 in accordance with the designation of the operation designation signal 514. The operation result is output to the data bus 504 via the 32-bit output buffer 508 connected to the data bus when the read signal 515 becomes active. The source operand register 506 and the destination operand register 505 are both 32-bit registers, are connected to the data bus 504, and temporarily hold data for two-operand operation in the ALU 507.
Write signals 512 and 513 are the respective write signals to destination operand register 505 and source operand register 506. Generally, a two-operand operation instruction is executed as follows. Register 600 specified as source operand
The contents of .about.631 are transferred to the source operand register 506 via the data bus 504. The contents of the registers 600 to 631 specified as the destination operand are transferred to the destination operand register 505 via the data bus 504 and to the blocking register 503. The ALU 507 performs an operation on the contents of the source operand register 506 and the contents of the destination operand 505. The operation result is transferred from the output buffer 508 of the ALU to the data bus.
Put on 504. According to the contents of the control input signal 511, the data bus 504
And the contents of the blocking register 503 are synthesized,
Write to registers 600 to 631 specified as destination operands. Next, the operation will be described with reference to an example. Now register
It is assumed that the value stored in the register 615 is 66666666h (123 indicates a hexadecimal number). It is assumed that ADDBR0 and R15 are to be executed as instructions. This instruction means that the 8-bit data stored in the register 600 is added to the 8-bit data stored in the register 615, and the obtained result is transferred to the register 15 (615). In both the registers 600 and 615, the data involved in the addition is only the lower 8 bits (78h for 600, 66h for 615), so that the content of the register 600 is finally 123456DEh (78
h + 66h = 0DEh) is obtained (see FIG. 7 (A)). First, the contents 6666666h of the register 615 are transferred to the source operand register 506 via the data bus 505. Next, the contents of register 600 are stored in data bus 50.
4 to the destination operand register 505 and the blocking register 5
Transferred to 03. Since the ALU507 always performs calculations with a 32-bit width, the output of the ALU507 is 789ABCDEh (12345
678h + 66666666h). The operation result (789ABCDEh) reaches the multiplexer 502 via the data bus 504. Byte type is specified as data type (control input 511 is 00h)
Therefore, the lower 8 bits of the output of the multiplexer 502 are the lower 8 bits of the data bus 504, that is, 0DEh, and the upper 24 bits of the output of the multiplexer 502 are the upper 24 bits of the blocking register 503, that is, the destination operand as the destination operand. Upper 24 bits of 12345678h transferred to Nation Operand Register 505 12
3456h is output. Therefore, 32-bit data of 123456DEh is formed as the entire output of the multiplexer 502, and this value is written to the register 600. Similarly, the case where half word data is handled is when the addition instruction ADDHW R0, R15 for half word data is executed instead of the above ADDB instruction. Also in this case, the operation result (789ABCDEf) is output to the data bus 504.
Until output to, it is the same as for the byte data type. Since the half-word type is specified as the data type (control input 511 is 01h), the lower 16 bits of the output of the multiplexer 502 are assigned to the data bus 504.
Of the lower 16 bits of the multiplexer 502
As the output upper 16 bits, the upper 16 bits of the blocking register 503, that is, the upper 16 bits 1234h of 12345678h previously transferred to the destination operand register 505 as the destination operand are output. Therefore, 32-bit data of 1234BCDEh is formed as the entire output of the multiplexer 502, and this value is written to the register 600 (see FIG. 7B). When handling word data, add the above ADDB
Add instruction ADDWR to word data instead of instruction
0, when R15 is executed. Also in this case, the calculation result (789
ABCDEf) is the same as for the byte data type until it is output on the data bus 504. Word type is specified as the data type (control input 51
Since 1 is 10h), the 32-bit output of the multiplexer 502 is 32 bits of the data bus 504, that is, 32 bits of 789ACBDEh.
Bit data is formed, and this value is written to the register 600 (see FIG. 7C). FIG. 2 is a diagram showing another embodiment of the present invention. In the case of this embodiment, the input of the register file 501 is directly connected to the data bus 504 without passing through the multiplexer 502, and the contents of the data bus 504 are always written with the write signals 632 to 66.
3 writes the corresponding register. On the other hand, A
A 32-bit multiplexer 502 is connected between the output data buses 508 of the LU 507. As a substitute for the blocking register 503, a destination operand register 505 is used here. The output of destination operand register 505 is connected not only as an input to ALU 507, but also to multiplexer 502.
Connected as the other input. The multiplexer 502 has a 2-bit control input 511 as in the previous embodiment, and combines the contents of the destination operand register 505 and the output of the ALU 507 with this value as follows. When the control input is 00b, it indicates that the upper 24 bits of the register must not change. The lower 8 bits of the output are the lower 8 bits of the ALU507.
The upper 24 bits of the contents of the destination operand register 505 are selected as the upper 24 bits of the output. When the control input is 01b, this indicates that the upper 16 bits of the register must not change. The lower 16 bits of the output are the lower 16 bits of the ALU507.
The upper 16 bits of the contents of the destination operand register 505 are selected for the upper 16 dots of the output bit. When the control input is 10b, the contents of the register indicate that the entire 32 bits change. In the output 32 bits, the 32 bits of the ALU507 are output as they are. In this embodiment, since the blocking register 503 for the above embodiment is unnecessary, not only the hardware can be simplified, but also data other than the register file 501 can be used.
A partial write function can be provided to the register resources connected to the bus 504. 2 for realizing addition, subtraction, logical product, logical sum instruction, etc.
Operand operations always transfer the source and destination operands to the ALU,
No extra transfer is required to combine the destination data with the operation result. On the other hand, in the one-operand operation for realizing a logical negation or a two's complement instruction, etc., only the destination operand is usually transferred to the ALU. By the way, in an instruction that does not perform an operation in the ALU, for example, in a register-register data transfer instruction, it is not necessary to read the destination operand.
Either transfer the contents of the destination operand to the blocking register for data synthesis or
Alternatively, a partial write function can be realized by designating an ALU operation as a no operation (NOP) and performing a pseudo operation. Further, for instructions that are complex to execute, it is clear that these transfers have only negligible overhead in terms of overall processing. [Effect of the Invention] As described above, the partial write function of the register
Since it can be realized by using a register having only a single word length writing function, a register in a processor which handles data belonging to a plurality of data types can be realized on a printed circuit board with a small amount of hardware and a small amount of wiring. Therefore, high-density mounting is possible. Also, since the LSI can be realized with a small area, the area of the entire chip can be reduced, and the LSI can be manufactured at low cost and other useful functions can be realized within the same area.

【図面の簡単な説明】 第1図は本発明を用いたプロセッサの一実施例の構成を
示す図面、第2図は本発明を用いたプロセッサの別の一
実施例の構成を示す図面、第3図は典型的な情報処理装
置の構成を示す図面、第4図は各種データ・タイプに属
するデータのレジスタへの格納形式を示す図面で(A)
はバイト・タイプ、(B)はハーフ・ワード・タイプ、
(C)はワード・タイプを示し、第5図は複数のデータ
を一本のレジスタに格納することを示す図面で(A)は
4つのバイト・データを(B)は2つのハーフ・ワード
・データをそれぞれ32ビット幅のレジスタへ格納する様
子を示し、第6図は複数のデータ・タイプに対応する部
分書込み機能を持つレジスタの構成を示す図面、第7図
は本発明の動作を説明する図面である。 101……記憶装置、102……中央処理装置、103……バ
ス、104……レジスタ、201……バイト・データ、202…
…ハーフ・ワード・データ、203……ワード・データ、3
01〜304……バイト・データ、311〜312……ハーフ・ワ
ード・データ、401……32ビット・レジスタ、402……32
ビット出力バッファ、403……32ビット・データ・バ
ス、404……書込み制御回路、404……書込み制御回路、
410……下位8ビット用書込み信号、411……中位8ビッ
ト用書込み信号、412……上位16ビット用書込み信号、4
13……書込み制御信号、414……読出し制御信号、415…
…データ・タイプ指定信号、501……レジスタ・ファイ
ル、502……32ビット・マルチプレクサ、503……ブロッ
キング用レジスタ、504……32ビット・データ・バス、5
05……デスティネーション・オペランド・レジスタ、50
6……ソース・オペランド・レジスタ、507……32ビット
ALU、508……ALU用出力バッファ、511……データ・タイ
プ指定信号、512……デスティネーション・オペランド
・レジスタ書込み信号、513……ソース・オペランド・
レジスタ書込み信号、514……ALU演算指定信号、515…
…ALU演算結果読出し信号、600〜631……32ビット・レ
ジスタ、632〜663……レジスタ用書込み信号、700〜731
……レジスタ用出力バッファ、732〜763……レジスタ用
読出し信号
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a drawing showing a configuration of an embodiment of a processor using the present invention, FIG. 2 is a drawing showing a configuration of another embodiment of a processor using the present invention, FIG. 3 is a diagram showing a configuration of a typical information processing apparatus, and FIG. 4 is a diagram showing a storage format of data belonging to various data types in a register (A).
Is a byte type, (B) is a half word type,
5 (C) shows a word type, and FIG. 5 shows storing a plurality of data in one register. FIG. 5 (A) shows four byte data and FIG. 5 (B) shows two half word data. FIG. 6 shows how data is stored in registers each having a 32-bit width, FIG. 6 shows a configuration of a register having a partial write function corresponding to a plurality of data types, and FIG. 7 explains the operation of the present invention. It is a drawing. 101 storage device, 102 central processing unit, 103 bus 104, register 201 byte data 202
… Half word data, 203 …… Word data, 3
01 to 304: Byte data, 311 to 312: Half word data, 401: 32-bit register, 402: 32
Bit output buffer, 403 32-bit data bus, 404 Write control circuit, 404 Write control circuit
410: Write signal for lower 8 bits, 411: Write signal for middle 8 bits, 412: Write signal for upper 16 bits, 4
13 Write control signal, 414 Read control signal, 415
… Data type designation signal, 501… Register file, 502… 32-bit multiplexer, 503… Blocking register, 504… 32-bit data bus, 5
05 ... destination operand register, 50
6 ... source operand register, 507 ... 32 bits
ALU, 508: ALU output buffer, 511: Data type designation signal, 512: Destination operand register write signal, 513: Source operand
Register write signal, 514 ... ALU operation designation signal, 515 ...
… ALU operation result read signal, 600 to 631… 32 bit register, 632 to 663… Register write signal, 700 to 731
…… Register output buffer, 732 to 763 …… Register read signal

Claims (1)

(57)【特許請求の範囲】 1.データ処理装置内に備えられ、オペランドデータの
一時的な記憶のためにビット長の異なる複数種類のデー
タが格納される複数のレジスタに対し、前記レジスタの
ビット長よりも短いビット長のデータを演算結果として
書き込む際に、指定されたビット以外の内容を変化させ
ずにデータを書き込むデータ書き込み方式において、指
定された一つの前記レジスタのデータを保持手段に保持
し、演算部からのデータであって前記一つのレジスタに
書き込まれるべきデータが転送され、前記書き込まれる
べきデータのビット長を示す命令コードに基づいて生成
される制御入力信号に応答して前記書き込まれるべきデ
ータと前記保持したデータとを合成手段にて合成し、前
記書き込まれるべきデータの最小有意ビットを常に再開
ビットとする合成データを生成し、前記合成データを前
記一つのレジスタに書き込むことを特徴とするデータ書
込み制御方式。
(57) [Claims] For a plurality of registers provided in the data processing device and storing a plurality of types of data having different bit lengths for temporary storage of operand data, data having a bit length shorter than the bit length of the register is calculated. When writing as a result, in the data writing method of writing data without changing the contents other than the specified bit, the data of one specified register is held in the holding unit, and the data from the arithmetic unit is stored. The data to be written to the one register is transferred, and the data to be written and the held data are transmitted in response to a control input signal generated based on an instruction code indicating a bit length of the data to be written. Combining means for combining the least significant bits of the data to be written, wherein the least significant bits of the data to be written are always restart bits. Generates a data write control method and writes the combined data in said one register.
JP60296954A 1985-12-27 1985-12-27 Data write control method Expired - Lifetime JP2703884B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60296954A JP2703884B2 (en) 1985-12-27 1985-12-27 Data write control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60296954A JP2703884B2 (en) 1985-12-27 1985-12-27 Data write control method

Publications (2)

Publication Number Publication Date
JPS62156742A JPS62156742A (en) 1987-07-11
JP2703884B2 true JP2703884B2 (en) 1998-01-26

Family

ID=17840331

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60296954A Expired - Lifetime JP2703884B2 (en) 1985-12-27 1985-12-27 Data write control method

Country Status (1)

Country Link
JP (1) JP2703884B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9709261B2 (en) * 2010-12-27 2017-07-18 Mitsubishi Hitachi Power Systems, Ltd. Condensate flow rate control device and condensate flow rate control method for power plant

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2617974B2 (en) * 1988-03-08 1997-06-11 富士通株式会社 Data processing device
JPH01230125A (en) * 1988-03-10 1989-09-13 Nec Corp Data processor having partial updating function of register
JP2686011B2 (en) * 1992-01-27 1997-12-08 富士通株式会社 Register controller
EP1044407B1 (en) * 1998-10-09 2014-02-26 Koninklijke Philips N.V. Vector data processor with conditional instructions
US6493819B1 (en) * 1999-11-16 2002-12-10 Advanced Micro Devices, Inc. Merging narrow register for resolution of data dependencies when updating a portion of a register in a microprocessor
JP3958662B2 (en) 2002-09-25 2007-08-15 松下電器産業株式会社 Processor

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59165143A (en) * 1983-03-11 1984-09-18 Hitachi Ltd Data processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9709261B2 (en) * 2010-12-27 2017-07-18 Mitsubishi Hitachi Power Systems, Ltd. Condensate flow rate control device and condensate flow rate control method for power plant

Also Published As

Publication number Publication date
JPS62156742A (en) 1987-07-11

Similar Documents

Publication Publication Date Title
US5481734A (en) Data processor having 2n bits width data bus for context switching function
US4434462A (en) Off-chip access for psuedo-microprogramming in microprocessor
US7228401B2 (en) Interfacing a processor to a coprocessor in which the processor selectively broadcasts to or selectively alters an execution mode of the coprocessor
US4179738A (en) Programmable control latch mechanism for a data processing system
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
KR100465388B1 (en) Eight-bit microcontroller having a risc architecture
KR20000076310A (en) Eight-bit microcontroller having a risc architecture
EP0126247B1 (en) Computer system
US5410721A (en) System and method for incrementing a program counter
US5680632A (en) Method for providing an extensible register in the first and second data processing systems
JP2703884B2 (en) Data write control method
JPH0546383A (en) Data processor
JPH034936B2 (en)
JPS6227412B2 (en)
US5867696A (en) Saving a program counter value as the return address in an arbitrary general purpose register
JP3705811B2 (en) Microcontroller with reconfigurable program status word
US6230238B1 (en) Method and apparatus for accessing misaligned data from memory in an efficient manner
JP2551167B2 (en) Microcomputer
US5539900A (en) Information processing system
EP0334131B1 (en) Data processor performing operation on data having length shorter than one-word length
JPS6236575B2 (en)
US5495433A (en) Data processing circuit
JP2671161B2 (en) Register interference check method
JP3594212B2 (en) Associative memory
JPH11143710A (en) Processing object value input device and program converter

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term