JPS62156742A - Data writing control system - Google Patents

Data writing control system

Info

Publication number
JPS62156742A
JPS62156742A JP60296954A JP29695485A JPS62156742A JP S62156742 A JPS62156742 A JP S62156742A JP 60296954 A JP60296954 A JP 60296954A JP 29695485 A JP29695485 A JP 29695485A JP S62156742 A JPS62156742 A JP S62156742A
Authority
JP
Japan
Prior art keywords
data
register
bits
output
bus
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
JP60296954A
Other languages
Japanese (ja)
Other versions
JP2703884B2 (en
Inventor
Hiroaki Kaneko
金子 博昭
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

Abstract

PURPOSE:To evade such a case where a part that must not be rewritten is finally changed by reading out the immediately preceding data on a register to which a write mode is designated to store this data and then synthesizing the read-out data with the write data to write them into a register. CONSTITUTION:A register file 501 consists of 32 registers 600-631 having the 32-bit width respectively. The input of each register is connected to a double input multiplexer 502 of 32 bits. then the output of the multiplexer 502 is written with write signals 632-633. The output of each register is connected to a data bus 504 via output buffers 700-731 and read out to the bus 504 with read signals 732-763. The multiplexer 502 is connected between the file 501 and the bus 504 and synthesizes the output of a blocking register 503 with the whole or a part of 32 bits of the bus 504. Then the multiplexer 502 synthesizes the contents of the register 503 and the bus 504 in various ways by the value of the control input 511.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、複数の異なったビット長のデータを処理する
データ処理装置において、レジスタに対するデータ書込
み制御方式に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a data writing control method for a register in a data processing device that processes data of a plurality of different bit lengths.

〔従来の技術〕[Conventional technology]

データ処理装置において、取り扱うデータの長さは必ず
しも一種類とは限らない。例えば英文字コードや短い整
数を取シ扱う場合は、たかだか8ビツトの長さがあれば
十分であυ(以下8ビツトの長さを持つデータをバイト
・データと呼ぶ)、漢字文字コードや短い整数を取り扱
う場合は、16ビツトの長さを持つデータをハーフ・ワ
ード・データと呼ぶ)。また、さらに大きな整数や、浮
動小数点数を取り扱う場合には、32ビツト以上の長さ
を必要とする(以下32ビツトの長さを持つデータをワ
ード・データと呼ぶ)。
In a data processing device, the length of data handled is not necessarily limited to one type. For example, when dealing with English character codes or short integers, a length of at most 8 bits is sufficient (hereinafter data with a length of 8 bits is referred to as byte data); When handling integers, data with a length of 16 bits is called half-word data). Furthermore, when handling larger integers or floating point numbers, a length of 32 bits or more is required (hereinafter data having a length of 32 bits will be referred to as word data).

このようにデータの振るまいとデータのビット長の対応
をデータ・タイプと呼ぶ。
This correspondence between data behavior and data bit length is called a data type.

第3図に典型的なデータ処理装置の構成を示す。FIG. 3 shows the configuration of a typical data processing device.

データは、通常記憶装置101あるいは中央処理装置(
以下プロセッサと呼ぶ)102内のレジスタ104に配
置される。記憶装置101に配置されたデータは、一度
レジスタ104に取り込まれた後で、演算や転送等の処
理を受ける。
Data is usually stored in the storage device 101 or the central processing unit (
102 (hereinafter referred to as a processor). Data placed in the storage device 101 is once taken into the register 104 and then subjected to processing such as calculation and transfer.

一般に一本のレジスタは、複数の異なったデータ・タイ
プに属するデータを格納することが可能である。例えば
、32ビツト幅を持つレジスタは、第4図(A)、(B
)および(C)に示すようにバイト・データ201、ハ
ーフ・ワード・データ202およびワード・データ20
3を格納できるように最小有無ビット(LSB)の位置
が揃えられている。
Generally, a single register can store data belonging to a plurality of different data types. For example, a register with a width of 32 bits is
) and (C), byte data 201, half word data 202 and word data 20
The positions of the least presence/absence bits (LSBs) are aligned so that 3 can be stored.

また一本のレジスタは、あるプログラムの実行中に同一
のデータ・タイプで用いられるとは限らない。ある時点
では、バイト・タイプ、またある時点ではワード・タイ
プとして用いられることがある。例えば、ワード・デー
タ用のレジスタの長さは、4つのバイト・データを格納
するに十分な長さである。このため、レジスタはしばし
ば複数のよシ短いデータ・タイプのデータを格納するた
めに用いられる。第5図(A)および(B)に32ビツ
ト幅のレジスタに4つのバイト・データ、および2つの
ハーフ・ワード・データを格納する様子を示す。
Furthermore, one register is not necessarily used for the same data type during execution of a certain program. At some times it may be used as a byte type and at other times 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 multiple shorter data types. FIGS. 5A and 5B show how four byte data and two half word data are stored in a 32-bit wide register.

前述のように一本のレジスタに複数個のデータを格納す
る場合、複数のうちただ一つのデータだけf、書き換え
る時、データ・タイプに対応する部分だけ変更しないと
、レジスタ中の他のデータ部分も同時に書き換えられ、
レジスタにおける転送に無関係な部分のデータの保証が
できなくなる。
As mentioned above, when storing multiple pieces of data in one register, only one of the multiple pieces of data is rewritten.If you do not change only the part that corresponds to the data type, other data parts in the register will be affected. is also rewritten at the same time,
Data in registers unrelated to transfer cannot be guaranteed.

上記の不都合を避けるために、レジスタへの書込みにお
いては指定されたデータ・タイプによって、必要な範囲
のビットのみを変化させるのが一般的である。このよう
に、データの一連のビット列のみを変更する機能を、部
分書込み機能と呼ぶ。
To avoid the above-mentioned disadvantages, it is common to change only the necessary range of bits depending on the specified data type when writing to a register. The function of changing only a series of bit strings of data in this way is called a partial write function.

第6図は、データ・タイプによって下位8.16あるい
は32ビツトの部分書込み機能を持つ32ビツト・レジ
スタの従来例である。
FIG. 6 shows a conventional example of a 32-bit register having a partial write function for the lower 8.16 or 32 bits depending on the data type.

32ビツト・レジスタ401は32ビツト・データ・バ
ッファ402を介してデータ・パス403に接続され、
読出し信号414によりて内容が出力される。また書込
み信号410はデータ・バスの下位8ビツト(ビット番
号0〜7)のみを誉き込み、411は次の下位8ビツト
(ビット番号8から15)を書き込み、412は上位1
6ビツト(ビット番号16〜31)を書き換える信号で
ある。
A 32-bit register 401 is connected to a data path 403 via a 32-bit data buffer 402.
The contents are output by the read signal 414. Also, write signal 410 writes only the lower 8 bits (bit numbers 0 to 7) of the data bus, 411 writes the next lower 8 bits (bit numbers 8 to 15), and 412 writes the upper 1 bits.
This is a signal for rewriting 6 bits (bit numbers 16 to 31).

データ・タイプの種類を示す2ビット信号415は、レ
ジスタに転送するビット幅を示すものであシ、00b(
bは二進数であることを示す)がバイト・データを、0
1bはハーフ・ワード・データを、10bはワード・デ
ータを転送することを意味する。また誓込み信号413
は、このレジスタにデータを書き込むことを指定する制
御信号である。
The 2-bit signal 415 indicating the type of data type indicates the bit width to be transferred to the register.
b indicates a binary number) represents byte data, 0
1b means transferring half word data, and 10b means transferring word data. Also, pledge signal 413
is a control signal that specifies writing data to this register.

書込み制御回路404は、書込み信号413がアクティ
ブになった時、データ・タイプ信号415がoobなら
ば410のみ、01bならば410および411を、1
0bならば410,411および412をすべてアクテ
ィブになるように制御するものである。
When the write signal 413 becomes active, the write control circuit 404 sets only 410 to 1 if the data type signal 415 is oob, and sets 410 and 411 to 1 if the data type signal 415 is 01b.
If it is 0b, all 410, 411 and 412 are controlled to be active.

前記の従来例では、3ffi類のデータ・タイプに属す
るデータの書込みを行なうために、一本のレジスタに対
して3本の書込み信号(410,411および412)
が必要であり、しかも固有の書込み制御回路404が必
要になる。
In the conventional example described above, three write signals (410, 411 and 412) are sent to one register in order to write data belonging to the 3ffi data type.
Moreover, a unique write control circuit 404 is required.

レジスタの本数が増加するほど、またデータ・タイプの
種類が多いほど、前述の制御信号および制御回路も比例
的に増加する。
As the number of registers increases and the variety of data types increases, the aforementioned control signals and control circuits also increase proportionally.

部分書込み機能を有するレジスタをプリント基板の上に
ICパッケージを用いて実装する時、同一量のレジスタ
を部分書込み機能なしで構成する場合に比べ、制御信号
の数が多く配線量が著しく増加したシ、一本のレジスタ
の構成の複雑さやICパッケージのピン数の制限から多
くのパッケージを必要として実装面積が増加するという
欠点を有していた。
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 is significantly increased compared to configuring the same amount of registers without a partial write function. However, due to the complexity of the configuration of a single register and the limited number of pins of an IC package, many packages are required, which increases the mounting area.

また、LSIの中に部分書込み機能を有するレジスタを
実装する時でも、部分書込み機能なしのレジスタに比較
して、単位レジスタ(レジスタの各ビットを構成する機
能を持つ)を構成するマスク・パターン(LSI内のト
ランジスタや配線を決定する幾何学的配列)が複雑にな
るとともに、マスク・パターン内を余分な制御信号が横
切るために、レジスタの実装面積が大きくなる。
Furthermore, even when implementing a register with a partial write function in an LSI, compared to a register without a partial write function, the mask pattern (having the function of configuring each bit of the register) that constitutes a unit register ( The geometrical arrangement (which determines the transistors and wiring within the LSI) becomes complex, and the mounting area of the register increases because extra control signals cross within the mask pattern.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

本発明は、前記従来例の欠点に鑑み、複数のデータ・タ
イプに属するデータを格納するレジスタを持つデータ処
理装置において、部分書込み機能を一種類のビット幅の
曹込みができるレジスタによって提供することを目的と
している。
In view of the drawbacks of the conventional example, the present invention provides a partial write function using a register capable of writing data of one type of bit width in a data processing device having a register that stores data belonging to a plurality of data types. It is an object.

〔問題点を解決するだめの手段〕[Failure to solve the problem]

本発明は、異なったビット長のデータを格納するレジス
タを複数有し、前記レジスタのビット長よりも短いデー
タを書き込む際に、指定されたビット以外のビット内容
を変化させずにデータを誉・ き込む方法において、指
定されたレジスタの内容を保持する手段と、書き込むべ
きデータと前記保持されたデータを合成する手段を有し
、指定されたレジスタの内容を読み出して、書込みデー
タと前記保持手段に保持されたデータを合成したデータ
を、前記指定されたレジスタに書き戻すことを特徴とす
る。
The present invention has a plurality of registers that store data of different bit lengths, and when writing data shorter than the bit length of the register, the data is processed without changing the contents of bits other than the designated bits. The writing method includes means for holding the contents of a designated register, and means for combining the data to be written with the held data, reads the contents of the designated register, and combines the written data with the holding means. It is characterized in that data obtained by combining data held in the register is written back to the specified register.

〔発明の作用・原理〕[Function/principle of the invention]

レジスタにデータを書き込む際に、書込みを指定された
レジスタの直前のデータを読み出して記憶しておき、前
記記憶されたデータと書込みデータを合成(ブロッキン
グ)した後に、書込みを指定されたレジスタに書き込む
ことで、書込みを指定されたレジスタにの書き換えては
ならない部分が結果的に変化しないことを保証する。
When writing data to a register, read and store the data immediately before the register specified for writing, and after combining the stored data and the write data (blocking), write to the specified register. This ensures that the portion of the register designated for writing that must not be rewritten will not change as a result.

〔実施例〕〔Example〕

以下、図面を参照して、本発明の構成および動作を詳細
に説明する。
Hereinafter, the configuration and operation of the present invention will be explained in detail with reference to the drawings.

第1図は、本発明の一実施例を示す図である。FIG. 1 is a diagram showing an embodiment of the present invention.

レジスタ・ファイル501は、32本の32ビツト幅の
レジスタ600〜631から構成される。各レジスタの
入力は32ビツトの2人力マルチプレクサ502に接続
され、各レジスタに対する書込み信号632〜663に
よって、マルチプレクサ502の出力の内容が書き込ま
れる。一方、各レジスタの出力は、各レジスタの出力バ
ッ7ア700〜731を介して32ビツトのデータ・バ
ス504に接続すれ、各レジスタに対する読み出し信号
732〜763によって、データ・バス504に読み出
される。
Register file 501 is comprised of 32 32-bit wide registers 600-631. The input of each register is connected to a 32-bit two-way multiplexer 502, and the contents of the output of multiplexer 502 are written by write signals 632-663 to each register. On the other hand, the output of each register is connected to a 32-bit data bus 504 via an output buffer 700-731 of each register, and read onto the data bus 504 by read signals 732-763 for each register.

ブロッキング用レジスタ503はデータ・バス504に
接続され、デスティネーション・オペランド・レジスタ
505にデータ・バス504の内容(デスティネーショ
ン・データ)をALUに転送する時に、曹込み信号51
2によりてデータ・バスの内容をラッチする32ビツト
・ラッチである。
The blocking register 503 is connected to the data bus 504, and when transferring the contents of the data bus 504 (destination data) to the destination operand register 505 to the ALU, the blocking register 503 sends a write-in signal 51 to the destination operand register 505.
2 is a 32-bit latch that latches the contents of the data bus.

マルチプレクサ502はレジスターファイル501の入
力とデータ・バス504の間に接続され、ブロッキング
用レジスタ503の出力とデータ・バス504の32ビ
ツト全部あるいは一部分を合成する機能を持つ。またマ
ルチプレクサ502は、2ビツトの制御人力511を持
ち、制御人力511の値によってブロッキング用レジス
タ503の内容とデータ・バス504の内容を次のよう
に合成する。
A multiplexer 502 is connected between the input of the register file 501 and the data bus 504, and has the function of combining the output of the blocking register 503 with all or part of the 32 bits of the data bus 504. The multiplexer 502 also has a 2-bit control input 511, and according to the value of the control input 511, the contents of the blocking register 503 and the contents of the data bus 504 are combined as follows.

■ 制御入力がoobO時 データ・バスより書き込まれるデータは8ビツトであり
、レジスタの上位24ビツトは変化してはならないこと
を示している。出力の下位8ビツトには、データ・バス
504の下位8ビツトを、出力の上位24ビツトにはブ
ロッキング・レジスタ503の内容の上位24ビツトを
選択する。
(2) When the control input is oobO, 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 data bus 504 are selected for the lower 8 bits of the output, and the upper 24 bits of the contents of the blocking register 503 are selected for the higher 24 bits of the output.

■ 制御入力がOlbの時 データ・バスよシ書き込まれるデータは16ビツトであ
り、レジスタの上位16ビツトは変化してはならないこ
とを示している。出力の下位16ビツトには、データ・
バス504の下位16ビツトを、出力の上位16ビツト
にはブロッキング・レジスタ503の内容の上位16ビ
ツトを選択する。
- When the control input is Olb, the data written to 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 contain data.
The lower 16 bits of the bus 504 are selected, and the upper 16 bits of the contents of the blocking register 503 are selected as the upper 16 bits of the output.

■ 制御入力が10bの時 データ・バスよシ書き込まれるデータは32ビツトでる
り、レジスタの内容は32ビツト全体が変化することを
示している。出力の32ビットには、データ・バス50
4032ビツトが七のまで出力される。
- When the control input is 10b, the data written from the data bus is 32 bits, indicating that the contents of the register change in all 32 bits. The 32 bits of output require a data bus 50
4032 bits are output up to 7.

ALTJ’507は32ビツトの算術論理ユニットでめ
り、データ・バスに接続されたソース・オペランド・レ
ジスタ506とデスティネーション・オペランド・レジ
スタ505の内容に対して、加算に代表される算術演算
や、論理積に代表される論理演算を演算指定信号514
の指示にしたがって行なう。演算結果は、データ・バス
に接続された32ビツト出力バツ7ア508を介して、
読出し信号515がアクティブになるとデータ・バス5
04に出力される。
The ALTJ'507 is a 32-bit arithmetic logic unit that performs arithmetic operations such as addition on the contents of the source operand register 506 and destination operand register 505 connected to the data bus. Operation designation signal 514 for logical operations such as AND
Follow the instructions. The calculation result is sent via a 32-bit output pin 508 connected to the data bus.
When read signal 515 becomes active, data bus 5
04.

ソース・オペランド・レジスタ506およびデスティネ
ーション・オペランド・レジスタ505はともに32ビ
ツト・レジスタで、データ・バス504に接続されAL
U507における2オペランド演算用のデータを一時的
に保持する。書込み信号512および513は、デステ
ィネーション・オペランド・レジスタ505およびソー
ス・オペランド・レジスタ506に対するそれぞれの書
込み信号である。
Source operand register 506 and destination operand register 505 are both 32-bit registers connected to data bus 504 and
Temporarily holds data for two-operand operation in U507. Write signals 512 and 513 are write signals for destination operand register 505 and source operand register 506, respectively.

一般的に、2オペランドの演算命令は次のように実行さ
れる。
Generally, a two-operand arithmetic instruction is executed as follows.

■ ソース・オペランドとして指定されるレジスタ60
0〜631の内容をデータ・バス504を経由して、ソ
ース・オペランド・レジスタ506へ転送する。
■ Register 60 specified as source operand
The contents of 0-631 are transferred to source operand register 506 via data bus 504.

■ デスティネーション・オペランドとして指定される
レジスタ600〜631の内容をデータ・バス504を
経由してデスティネーショ/・オペランド・レジスタ5
05へ転送するとともに、ブロッキング用レジスタ50
3へ転送する。
■ The contents of registers 600 to 631 designated as destination operands are transferred to destination/operand register 5 via data bus 504.
05 and the blocking register 50.
Transfer to 3.

■ ソース・オペランド・レジスタ506の内容とデス
ティネーション・オペランド505の内容に対してAL
U507で演算を行なう。
■ AL for the contents of source operand register 506 and destination operand 505.
Calculation is performed in U507.

■ 演算結果をALUの出力バッファ508からデータ
・バス504に乗せる。
(2) Transfer the operation result from the output buffer 508 of the ALU to the data bus 504;

■ 制御入力信号511の内容に従って、データ・バス
504の内容とブロッキング用レジスタの内容503を
合成し、デスティネーション・オペランドとして指定さ
れたレジスタ600〜631に書き込む。
(2) According to the contents of the control input signal 511, the contents of the data bus 504 and the contents of the blocking register 503 are combined and written to registers 600 to 631 designated as destination operands.

次に例をあげながら、動作を説明する。今、レジスタ6
00に12345678h  (hは十人進数であるこ
とを示す)レジスタ615に66666666hに格納
されているとする。命令としてはADDBRO,R,1
5を実行しようと仮定する。この命令は レジスタ600に格納された8ビツト・データと、レジ
スタ615に格納された8ビツト・データを加算し、得
られた結果をレジスタ15(615)に転送することを
意味する。
Next, the operation will be explained using an example. Now register 6
Assume that 66666666h is stored in the register 615 (h indicates a decimal number). The command is ADDBRO, R, 1
Assume that you want to execute 5. This instruction means to add 8-bit data stored in register 600 and 8-bit data stored in register 615, and transfer the obtained result to register 15 (615).

レジスタ600および615ともに、加算に関与するデ
ータは、下位8ビツトのみ(600は78h1615は
66h)であるから、最終的にレジスタ600の内容は
123456DEhとなる(78h+66h=ODEh
)が得られる(第7図(A)参照)。
For both registers 600 and 615, the data involved in addition is only the lower 8 bits (600 is 78h, 1615 is 66h), so the final content of register 600 is 123456DEh (78h+66h=ODEh).
) is obtained (see FIG. 7(A)).

さてまずレジスタ615の内容66666666hが、
データ・バス504を経由してソース・オペランド・レ
ジスタ506に転送される。
Now, first, the contents 66666666h of register 615 are
Transferred to source operand register 506 via data bus 504.

次にレジスタ600の内容12345678hが、デー
タ・バス504を経由してデスティネーション・オペラ
ンド・レジスタ505に転送されるとともに、ブロッキ
ング用レジスタ503に転送される。ALU 507で
は常に32ビツト幅で演算が行なわれるので、ALU5
07の出力としては789ABCDEh (12345
678h+66666666h)が得られている。
Next, the contents 12345678h of register 600 are transferred to destination operand register 505 via data bus 504 and transferred to blocking register 503. Since ALU 507 always performs calculations in 32-bit width, ALU5
The output of 07 is 789ABCDEh (12345
678h+66666666h) is obtained.

演算結果(7s9ABc[h)は、データ・バス504
を経由してマルチプレクサ502に達する。データ・タ
イプとしてバイト・タイプが指定されている(制御人力
511が00h)ので、マルチプレクサ502の出力下
位8ビツトにはデータ・バス504の下位8ビツトすな
わち0DEhが、マルチプレクサ502の出力上位24
ビツトにはブロッキング用レジスタ503の上位24ビ
ツト、すなわち先にデスティネーション・オペランドと
してデスティネーション・オペランド・レジスタ505
に転送した12345678hの上位24ピツ) 12
3456hが出力される。したがって、マルチプレクサ
502の出力全体としては、123456DEhという
32ビツト・データが構成され、この値がレジスタ60
0に書き込まれる。
The calculation result (7s9ABc[h) is the data bus 504
The multiplexer 502 is reached via the . Since the byte type is specified as the data type (the control input 511 is 00h), 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 outputs of the multiplexer 502 are the lower 8 bits of the data bus 504.
The bits include the upper 24 bits of the blocking register 503, that is, the destination operand register 505 as the destination operand first.
Top 24 pics of 12345678h transferred to) 12
3456h is output. Therefore, the entire output of multiplexer 502 consists of 32-bit data of 123456DEh, and this value is stored in register 60.
Written to 0.

同様にノ・−7・ワード・データを取り扱う場合は、前
記のADDB命令の代わりに7・−フ・ワード・データ
に対する加算命令ADDHW  几0.R15が実行さ
れる時である。
Similarly, when handling 7-word data, use the addition instruction ADDHW for 7-word data instead of the above-mentioned ADDB instruction. This is when R15 is executed.

この場合も演算結果(789ABCDEf)がデータ・
バス504に出力されるまでは、バイト・データ・タイ
プの場合と同じである。データ・タイプとしてハーフ・
ワード・タイプが指定されている(制御人力511が0
1h)ので、マルチプレクサ502の出力下位16ビツ
トにはデータ・バス504の下位16ビツトすなわち0
BCDEhが、マルチプレクサ502の出力上位16ビ
ツトにはブロッキング用レジスタ503の上位16ビ、
ト、す° なわち先にデスティネーション・オペランド
としてデスティネーション・オペランド・レジスタ50
5に転送した12345678hの上位16ビツ) 1
234hが出力される。したがつて、マルチプレクサ5
02の出力全体としては、1234BCDEhという3
2ビツト・データが構成され、この値がレジスタ600
に書き込まれる(第7図(B)参照)。
In this case as well, the calculation result (789ABCDEf) is the data
Until it is output to bus 504, it is the same as for the byte data type. Half as data type
Word type is specified (control force 511 is 0)
1h), the lower 16 bits of the output of the multiplexer 502 contain the lower 16 bits of the data bus 504, that is, 0.
The upper 16 bits of the output of the multiplexer 502 are the upper 16 bits of the blocking register 503, and the upper 16 bits of the blocking register 503 are
i.e., first register 50 as the destination operand.
Upper 16 bits of 12345678h transferred to 5) 1
234h is output. Therefore, multiplexer 5
The overall output of 02 is 3, which is 1234BCDEh.
2-bit data is configured and this value is stored in register 600.
(see FIG. 7(B)).

さらにワード・データを取シ扱う場合は、前記のADD
B命令の代わりにワード・データに対する加算命令AD
DW  RO,R15が実行される時である。この場合
も演算結果(789ABCDEf)がデータ・バス50
4に出力されるまでは、ノ(イト・データ・タイプの場
合と同じである。データ・タイプとしてワード・タイプ
が指定されている(制御人力511が10h)ので、マ
ルチプレクサ502の32ビツト出力にはデータ・バス
504の32ビツトすなわち789ABCDEhという
32ビツト・データが構成され、 この値がレジスタ6
00に書き込まれる(第7図(C)参照)。
In addition, if you want to handle word data, use the ADD mentioned above.
Addition instruction AD for word data instead of B instruction
This is when DW RO, R15 is executed. In this case as well, the calculation result (789ABCDEf) is transferred to data bus 50.
4 is the same as the case of the word (item) data type. Since the word type is specified as the data type (the control input 511 is 10h), the 32-bit output of the multiplexer 502 is consists of 32 bits of data bus 504, ie 32 bits of data 789ABCDEh, and this value is stored in register 6.
00 (see FIG. 7(C)).

第2図は、本発明の別の一実施例を示す図である。この
実施例の場合、レジスタ・ファイル501の入力はマル
チプレクサ502を介さずに、直接にデータ・バス50
4と接続され常にデータ・ノ(ス504の内容を書込み
信号632〜663によって対応するレジスタに書込み
を行なう。一方、ALU 507の出力とデータ・バス
508の間には32ビツト・マルチプレクサ502が接
続される。
FIG. 2 is a diagram showing another embodiment of the present invention. In this embodiment, the input of register file 501 is routed directly to data bus 50 without going through multiplexer 502.
A 32-bit multiplexer 502 is connected between the output of the ALU 507 and the data bus 508. be done.

前記ブロッキング・レジスタ503の代用として、ここ
ではデスティネーション・オペランド・レジスタ505
を用いる。デスティネーション・オペランド・レジスタ
505の出力は、ALU507の入力として接続されて
いるばかりでなく、マルチプレクサ502のもう一方の
入力として接続される。
As a substitute for the blocking register 503, here a destination operand register 505 is used.
Use. The output of destination operand register 505 is connected as an input to ALU 507 as well as the other input to multiplexer 502.

マルチプレクサ502は前記実施例と同様に2ビツトの
制御人力511を持ち、この値によってデスティネーシ
ョン・オペランド・レジスタ505の内容とALU50
7の出力を次のように合成する。
The multiplexer 502 has a 2-bit control input 511 as in the previous embodiment, and this value controls the contents of the destination operand register 505 and the ALU 50.
The outputs of 7 are combined as follows.

■ 制御入力がoobO時 レジスタの上位24ビツトは変化してはならないことを
示している。出力の下位8ビツトには、ALU507の
下位8ビツトを、出力の上位24ビツトにはデスティネ
ーション・オペランド・レジスタ505の内容の上位2
4ビツトを選択する。
■ When the control input is oobO, the upper 24 bits of the register must not change. The lower 8 bits of the output are the lower 8 bits of the ALU 507, and the upper 24 bits of the output are the upper 2 of the contents of the destination operand register 505.
Select 4 bits.

■ 制御入力がoibO時 レジスタの上位16ビツトは変化してはならないことを
示している。出力の下位16ビツトには、ALU507
の下位16ビツトを、出力の上位16ドツトにはデステ
ィネーション・オペランド・レジスタ505の内容の上
位16ビツトを選択する。
■ When the control input is oibO, the upper 16 bits of the register must not change. The lower 16 bits of the output contain the ALU507
The lower 16 bits of the output are selected, and the upper 16 bits of the contents of the destination operand register 505 are selected as the upper 16 dots of the output.

■ 制御入力が10bの時 レジスタの内容は32ビット全体が変化することを示し
ている。出力の32ビツトには、ALU507の32ビ
ツトがそのまま出力される。
■ When the control input is 10b, the contents of the register indicate that all 32 bits are changed. The 32 bits of the ALU 507 are output as they are as the 32 bits of output.

本実施例では、前記実施例に対しブロッキング用レジス
タ503が不要のため、)・−ドウエアが簡略化が図れ
るはかシでなく、レジスタ・ファイル501以外のデー
タ・バス504に接続されたレジスタ資源に対しても、
部分書込み機能を供せることが可能になる。
In this embodiment, since the blocking register 503 is not required in contrast to the previous embodiment, it is not possible to simplify the hardware, but to use register resources connected to the data bus 504 other than the register file 501. Also for
It becomes possible to provide a partial write function.

加算、減算、論理積、論理和命令等の実現のための2オ
ペランド演算では、必ずソース・オペランドおよびデス
ティネーション・オペランドをALUに転送するので、
デスティネーション・データと演算結果の合成のために
余分な転送は必要ない。
In two-operand operations such as addition, subtraction, AND, and OR instructions, the source and destination operands are always transferred to the ALU.
No extra transfers are required to combine destination data and operation results.

また一方、論理否定や、2の補数命令等の実現のための
1オペランド演算では、通常デスティネーション・オペ
ランドのみALUに転送するので、この場合もデータ合
成のだめの転送には無駄はない。
On the other hand, in one-operand operations for implementing logical negation, two's complement instructions, etc., only the destination operand is normally transferred to the ALU, so there is no waste in transferring data for data synthesis.

ところで、ALUで演算を行なわないような命令、たと
えばレジスターレジスタ間のデータ転送命令では、デス
ティネーション・オペランドを読み出す必要がないが、
データ合成のためにデスティネーション・オペランドの
内容をブロッキング用レジスタにデータ転送するか、あ
るいはALU演算演算−ノーペレーション(NOP)に
指定スることで疑似的に演算を行なうことで部分書込み
機能を実現することができる。
By the way, for instructions that do not perform operations in the ALU, such as instructions for transferring data between registers, there is no need to read the destination operand.
The partial write function can be implemented by transferring the contents of the destination operand to the blocking register for data synthesis, or by performing a pseudo operation by specifying ALU operation operation - no operation (NOP). It can be realized.

さらに、実行が複雑な命令では、これらの転送は全体の
処理からみると無視できるほどのオーバヘッドにすぎな
いのは、明らかである。
Furthermore, it is clear that for instructions that are complex to execute, these transfers represent a negligible overhead in terms of overall processing.

〔発明の効果〕〔Effect of the invention〕

以上説明したように、レジスタの部分書込み機能を、単
一語長の書込み機能しか持たないレジスタを用いて実現
できるので、複数のデータ・タイプに属するデータを取
り扱うプロセッサにおけるレジスタをプリント基板上で
は、少ないハードウェアと少ない配線量で実現すること
が出来るので高密度実装が可能である。またLSIにお
いても、少面積で実現できるので、チップ全体の面積の
縮小が可能になシ、安価にLSIを製造することや、同
−面積内に他の有用な機能を実現することができる。
As explained above, the register partial write function can be realized using a register that only has a single word length write function, so registers in a processor that handles data belonging to multiple data types can be Since it can be realized with less hardware and less amount of wiring, high-density packaging is possible. Furthermore, since LSIs can be realized in a small area, the area of the entire chip can be reduced, LSIs can be manufactured at low cost, and other useful functions can be realized within the same area.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明を用いたプロセッサの一実施例の構成を
示す図面、第2図は本発明を用いたプロセッサの別の一
実施例の構成を示す図面、第3図は典型的な情報処理装
置の構成を示す図面、第4図は各種データ・タイプに属
するデータのレジスタへの格納形式を示す図面で(A)
はバイト・タイプ、(B)はハーフ・ワード・タイプ、
(C)はワード・タイプを示し、第5図は複数のデータ
を一本のレジスタに格納することを示す図面で(A)は
4つのバイト・データを(B)は2つのハーフ・ワード
・データをそれぞれ32ビツト幅のレジスタへ格納する
様子を示し、第6図は複数のデータ・タイプに対応する
部分書込み機能を持つレジスタの構成を示す図面、第7
図は本発明の詳細な説明する図面である。 101・・・・・・記憶装置、102・・・・・・中央
処理装置、103・・・・・・バス、104・・・・・
・レジスタ、201・・・・・・ハイド・データ、20
2・・・・・・ハーフ・ワード・データ、203・・・
・・・ワード・データ、301〜304・・・・・・バ
イト・7 1’ 、311〜312・・・・・・ハーフ
・ワード・データ、401・・・・・・32ビツト・レ
ジスタ、402・・・・・・32ビット出力バッ77,
403・・・・・・32ビツト・データ・バス、404
・・・・・・書込み制御回路、404・・・・・・書込
み制御回路、410・・・・・・下位8ビット用書込み
信号、411・・・・・・中位8ビット用書込み信号、
412・・・・・・上位16ビツト用書込み信号、41
3・・・・・・を込み制御信号、414・・・・・・読
出し制御信号、415・・・・・・データ・タイプ指定
信号、501・・・・・・レジスタ・ファイル、502
・・・・・・32ビツト・マルチプレクサ、503・・
・・・・ブロッキング用レジスタ、504・・・・・・
32ビツト・データ・バス、505・・・・・・デステ
ィネーションφオペランド・レジスタ、506・・・・
・・ソース・オペランド・レジスタ、507・・・・・
・32ビットALU、508・・・・・・ALU用出力
出力バッファ11・・・・・・データ・タイプ指定信号
、512・・・・・・デスティネーション・オペランド
・レジスタ書込み信号、513・・・・・・ソース・オ
ペランド・レジスタ書込み信号、514・・・・・・A
LU演算指定信号、515・・・・・・ALU演算結果
読出し信号、600〜631・・・・・・32ビツト・
レジスタ、 632〜663・・・・・・レジスタ用書
込み信号、700〜731・・・・・・レジスタ用出力
バッファ、732〜763・・・・・・レジスタ用読出
し信号 /′ 帛4回 31  2423  16/S    、517   
0第 s12] 第6 図 1234BCDE 第7 図 (A) (C)
FIG. 1 is a diagram showing the configuration of one embodiment of a processor using the present invention, FIG. 2 is a diagram showing the configuration of another embodiment of the processor using the present invention, and FIG. 3 is a diagram showing typical information. FIG. 4 is a drawing showing the configuration of the processing device; FIG. 4 is a drawing showing the storage format of data belonging to various data types in the registers (A);
is byte type, (B) is half word type,
(C) shows the word type, and FIG. 5 shows how multiple data are stored in one register. (A) shows 4 byte data and (B) shows 2 half word data. FIG. 6 shows the structure of a register with a partial write function corresponding to multiple data types, and FIG.
The figure is a detailed explanation drawing of the present invention. 101... Storage device, 102... Central processing unit, 103... Bus, 104...
・Register, 201...Hide data, 20
2...Half word data, 203...
...Word data, 301-304...Byte 7 1', 311-312...Half word data, 401...32-bit register, 402 ...32-bit output buffer 77,
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, 41
3... Input 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, 505...Destination φ operand register, 506...
...Source operand register, 507...
・32-bit ALU, 508... Output output buffer 11 for ALU... Data type designation signal, 512... Destination operand register write signal, 513... ...Source operand register write signal, 514...A
LU operation designation signal, 515...ALU operation result read signal, 600-631...32 bits.
Register, 632-663...Register write signal, 700-731...Register output buffer, 732-763...Register read signal/' 4 times 31 2423 16/S, 517
0th s12] Fig. 6 1234BCDE Fig. 7 (A) (C)

Claims (1)

【特許請求の範囲】[Claims] 異なったビット長のデータを格納するレジスタを複数有
し、前記レジスタのビット長よりも短いデータを書き込
む際に、指定されたビット以外のビット内容を変化させ
ずにデータを書き込む方法において、指定されたレジス
タの内容を保持する手段と、書き込むべきデータと前記
保持されたデータを合成する手段を有し、指定されたレ
ジスタの内容を読み出して、書込みデータと前記保持手
段に保持されたデータを合成したデータを、前記指定さ
れたレジスタに書き戻すことを特徴とするデータ書込み
制御方式。
A method of writing data without changing the contents of bits other than the specified bits when writing data shorter than the bit length of the register with multiple registers storing data of different bit lengths. and a means for combining the data to be written with the held data, reads the contents of the specified register, and combines the written data and the data held in the holding means. A data write control method characterized in that the data written in the data is written back to the specified 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 true JPS62156742A (en) 1987-07-11
JP2703884B2 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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01228019A (en) * 1988-03-08 1989-09-12 Fujitsu Ltd Data processor
JPH01230125A (en) * 1988-03-10 1989-09-13 Nec Corp Data processor having partial updating function of register
JPH05204635A (en) * 1992-01-27 1993-08-13 Fujitsu Ltd Register control system
JP2002527812A (en) * 1998-10-09 2002-08-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Vector data processor with conditional instructions
JP2003515214A (en) * 1999-11-16 2003-04-22 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Method and apparatus for performing calculations with narrow operands
US7281117B2 (en) 2002-09-25 2007-10-09 Matsushita Electric Industrial Co., Ltd. Processor executing SIMD instructions

Families Citing this family (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

Citations (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

Patent Citations (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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01228019A (en) * 1988-03-08 1989-09-12 Fujitsu Ltd Data processor
JPH01230125A (en) * 1988-03-10 1989-09-13 Nec Corp Data processor having partial updating function of register
JPH05204635A (en) * 1992-01-27 1993-08-13 Fujitsu Ltd Register control system
JP2002527812A (en) * 1998-10-09 2002-08-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Vector data processor with conditional instructions
JP2003515214A (en) * 1999-11-16 2003-04-22 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Method and apparatus for performing calculations with narrow operands
US7281117B2 (en) 2002-09-25 2007-10-09 Matsushita Electric Industrial Co., Ltd. Processor executing SIMD instructions
US7594099B2 (en) 2002-09-25 2009-09-22 Panasonic Corporation Processor executing SIMD instructions

Also Published As

Publication number Publication date
JP2703884B2 (en) 1998-01-26

Similar Documents

Publication Publication Date Title
US6519674B1 (en) Configuration bits layout
JP2776132B2 (en) Data processing system with static and dynamic masking of information in operands
US4884192A (en) Information processor capable of data transfer among plural digital data processing units by using an active transmission line having locally controlled storage of data
KR100227277B1 (en) Computer methods for writing a sclar value to a vector
US4179738A (en) Programmable control latch mechanism for a data processing system
EP0126247B1 (en) Computer system
KR100465388B1 (en) Eight-bit microcontroller having a risc architecture
US4761754A (en) Vector processor wherein outputs of vector registers are fixedly coupled to inputs of vector calculators
US5680632A (en) Method for providing an extensible register in the first and second data processing systems
JPH05150979A (en) Immediate operand expansion system
US20030033503A1 (en) Single instruction having opcode and stack control field
US4133028A (en) Data processing system having a cpu register file and a memory address register separate therefrom
JPS62156742A (en) Data writing control system
JPH034936B2 (en)
JP3705811B2 (en) Microcontroller with reconfigurable program status word
US6230238B1 (en) Method and apparatus for accessing misaligned data from memory in an efficient manner
EP0334131B1 (en) Data processor performing operation on data having length shorter than one-word length
US6564312B1 (en) Data processor comprising an arithmetic logic unit
EP0114683B1 (en) Arithmetic unit
US5495433A (en) Data processing circuit
JP2671161B2 (en) Register interference check method
JP2657947B2 (en) Data processing device
JP2001092633A (en) Arithmetic unit having instruction to output plurality of results
JPS63241647A (en) Microprocessor
JPH0658629B2 (en) Data processing device

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term