JPH06230960A - データ処理回路 - Google Patents

データ処理回路

Info

Publication number
JPH06230960A
JPH06230960A JP5013110A JP1311093A JPH06230960A JP H06230960 A JPH06230960 A JP H06230960A JP 5013110 A JP5013110 A JP 5013110A JP 1311093 A JP1311093 A JP 1311093A JP H06230960 A JPH06230960 A JP H06230960A
Authority
JP
Japan
Prior art keywords
data
bus
register
bits
bit
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.)
Pending
Application number
JP5013110A
Other languages
English (en)
Inventor
Yukari Takada
由香里 高田
Yukihiko Shimazu
之彦 島津
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP5013110A priority Critical patent/JPH06230960A/ja
Publication of JPH06230960A publication Critical patent/JPH06230960A/ja
Priority to US08/353,163 priority patent/US5495433A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】 レジスタファイルの面積を減少することを可
能としたデータ処理回路の提供を目的とする。 【構成】 ALU4の演算結果を選択的にDバス8へ出力す
る選択出力回路5と、演算結果が書き込まれるレジスタ
11のデータの一部を保持するテンポラリラッチ2と、こ
のテンポラリラッチ2に保持されているデータをDバス
8へ選択的に出力する選択出力回路3とを備え、ALU4の
選択出力回路5は指定された書込みサイズに対応するビ
ットのみをDバス8へ出力し、またテンポラリラッチ2
の選択出力回路3は指定された書込みサイズに対応する
ビット以外のビットをDバス8へ出力し、レジスタ11は
Dバス8からデータを入力して記憶する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ処理回路に関し、
更に詳述すれば、指定された書き込みサイズの部分のデ
ータのみが書き換えられるレジスタと、演算器とを含む
データ処理回路に関する。
【0002】
【従来の技術】図7のブロック図に従来例として、4バ
イト(1ワード)のデータを扱う演算器(ALU)4と、レジ
スタファイル1とで構成されたデータ処理回路の構成例
を示す。ALU4は、S1バス6,S2バス7からそれぞれ入力
されたデータ相互間の演算を行い、その演算結果をDバ
ス8に4バイトで出力する。レジスタファイル1は32ビ
ット(4バイト)のレジスタ11が16本で構成されてお
り、その内の1本のレジスタ11が選択されてALU4による
演算結果がDバス8から入力されてストアされる。ま
た、S1バス6,S2バス7へ各レジスタ11からデータが出
力される。
【0003】このデータ処理回路ではデータとしてはバ
イト,ハーフワード,ワードの3種類のサイズを扱うこ
とが可能であり、それぞれのデータ長は、 バイト :1バイト(8ビット) ハーフワード:2バイト(16ビット) ワード :4バイト(32ビット) である。
【0004】各レジスタ11は指定されたサイズ分のデー
タのみが書き込まれてそれ以外のデータは元の値、即ち
新たなデータが書き込まれる以前の値をそのまま維持す
るようになっている。また、各レジスタ11の32ビットの
内で各サイズのデータが占めるビット位置を図8に示
す。バイトサイズのデータはレジスタ11の下位1バイト
(24:31) が、ハーフワードサイズのデータはレジスタ11
の下位2バイト(16:31) が、ワードサイズのデータはレ
ジスタ11の4バイト全て(0:31)が有効なデータとなる。
【0005】3種類のサイズによる各レジスタ11への書
き込みを制御するために、従来の各レジスタ11は選択入
力回路13を備えている。1本のレジスタ11にはそれぞれ
選択入力回路13がペアで備えられており、両者で一つの
レジスタ部10と構成する。選択入力回路13は後述する制
御信号により制御されており、Dバス8から入力される
データを書き込むか否かを選択し、レジスタ11の書き込
みサイズにより指定されている部分のみにデータを書込
む。
【0006】図9に、各レジスタ部10の具体的な構成を
示す。3種類のデータ入力のためには3本の制御信号が
必要である。即ち、下位1バイト(24:31) をレジスタ11
に入力するための第1選択入力回路131 は制御信号C1に
より制御されてDバス8の一部であるD(24:31) 83から
データを書き込むか否かを選択する。その上の1バイト
(16:23) をレジスタ11に入力するための第2選択入力回
路132 は制御信号C2によりDバス8の一部であるD(16:
23) 82からデータを書き込むか否かを選択する。上位2
バイト(0:15)をレジスタ11に入力するための第3選択入
力回路133 は制御信号C3によりDバス8の一部であるD
(0:15)81からデータを書き込むか否かを選択する。
【0007】書き込みサイズとしてワードがしてされて
いる場合は、制御信号C1, 制御信号C2,制御信号C3の全
てが”1”になってD(0:31)、即ちDバス8の全てのデ
ータがレジスタ11に書き込まれる。書き込みサイズとし
てハーフワードが指定されいる場合は、制御信号C1, 制
御信号C2が”1”になってD(16:31) 、即ちDバス8の
内のD(16:23) 82とD(24:31) 83とのデータがレジスタ
11の下位2バイトに書き込まれる。
【0008】書き込みサイズとしてバイトが指定さてい
る場合は、制御信号C1のみが”1”になってD(24:31)
83のデータがレジスタ11の下位1バイトに書き込まれ
る。ところで、選択入力回路13は各レジスタ部10にレジ
スタ11とペアでそれぞれ一つが必要であるため、レジス
タ11の数が増加すればそれに伴って選択入力回路13の数
も増加してチップ上の占有面積が拡大し、また制御信号
も増加するのでそのための配線領域も拡大する。
【0009】また、スーパスカラ機能を有するプロセッ
サでは、レジスタの入力ポートは複数になる。この場合
には、レジスタ1本に必要な入力制御信号は”3×入力
ポート数”になるので、レジスタ本数が増加すればその
チップ上での占有面積が更に大きくなる。
【0010】
【発明が解決しようとする課題】上述のような従来の技
術では、レジスタ1本について選択入力回路を一つずつ
設けているため、チップ上でのレジスタファイルの面積
が増大するという問題がある。特に、レジスタの本数が
多い場合、あるいはレジスタの入力ポートが複数である
場合に顕著となる。
【0011】本発明はこのような事情に鑑みてなされた
ものであり、レジスタファイルの面積を減少することを
可能としたデータ処理回路の提供を目的とする。
【0012】
【課題を解決するための手段】本発明に係るデータ処理
回路は、演算器の演算結果を選択的にデータバスへ出力
する選択出力回路と、演算結果が書き込まれるレジスタ
のデータの一部を保持するラッチと、このラッチに保持
されているデータをデータバスへ選択的に出力する選択
出力回路とを備えている。
【0013】
【作用】本発明のデータ処理回路では、演算器の選択出
力回路は指定された書込みサイズに対応するビットのみ
をデータバスへ出力し、またラッチの選択出力回路は指
定された書込みサイズに対応するビット以外のビットを
データバスへ出力し、レジスタはバスからデータを入力
して記憶する。
【0014】
【実施例】以下、本発明をその実施例を示す図面に基づ
いて詳述する。
【0015】図1のブロック図に本発明のデータ処理回
路の構成例を示す。図1において、参照符号1はレジス
タファイルであり、本実施例では従来例と同様に32ビッ
トのレジスタ11が16本で構成されている。
【0016】なお、従来例とは異なり、レジスタファイ
ル1内に選択入力回路は設けられていない。参照符号2
はテンポラリラッチを、3はテンポラリラッチ2のため
の選択出力回路をそれぞれ示しており、詳細は後述す
る。また、参照符号4は演算器(ALU) であり、4バイト
(1ワード)のデータを扱う。参照符号5はALU4のため
の選択出力回路である。
【0017】参照符号6, 7, 8はS1バス,S2バス,Dバ
スであり、それぞれ32ビット構成のデータバスである。
レジスタファイル1からはソースデータがS1バス6へ、
デスティネーションデータがS2バス7へそれぞれ出力さ
れる。そして、レジスタファイル1の16本のレジスタ11
の内の書き込み指定された1本のレジスタ11のみにDバ
ス8からデータが入力される。
【0018】レジスタファイル1の入出力データは常に
32ビットである。ALU4はS1バス6,S2バス7からデータ
を入力して演算を実行する。その結果は選択出力回路5
により選択的にDバス8へ出力される。テンポラリラッ
チ2は書き込み指定されたレジスタからバス7へ出力さ
れたデータの上位3バイトを入力してラッチし、またラ
ッチしているデータを選択出力回路3の制御により選択
的にDバス8へ出力する。
【0019】詳しくは後述するが、レジスタファイル1
の各レジスタ11へのDバス8からのデータの書き込みは
最小のバイトサイズが指定されている場合でも下位1バ
イトには必ずALU4の演算結果が入力されるため、テンポ
ラリラッチ2は下位1バイトをラッチする必要がない。
【0020】データは従来例と同様に、バイト,ハーフ
ワード,ワードの3種類のサイズを扱うことが可能であ
り、それぞれのデータ長は、 バイト :1バイト(8ビット) ハーフワード:2バイト(16ビット) ワード :4バイト(32ビット) である。
【0021】各レジスタ11は指定されたサイズ分のデー
タのみが書き込まれてそれ以外のデータは元の値、即ち
新たなデータが書き込まれる以前の値をそのまま維持す
るようになっていることも従来例と同様である。また、
各レジスタ11の32ビットの内で各サイズのデータが占め
るビット位置は前述の図8に示されている従来例と同様
である。バイトサイズのデータはレジスタ11の下位1バ
イト(24:31) が、ハーフワードサイズのデータはレジス
タ11の下位2バイト(16:31) が、ワードサイズのデータ
はレジスタ11の4バイト全て(0:31)が有効なデータとな
る。
【0022】以下、本発明のデータ処理回路の動作につ
いて説明する。 〔2オペランド命令の場合〕2オペランド命令は、 ”ソース op デスティネーション −> デスティネ
ーション” の形を取る。これは、「ソースデータとデスティネーシ
ョンデータとを演算(op)してデスティネーションに格納
する」という意味である。
【0023】この命令が実行される際、ソースデータは
S1バス6から、デスティネーションデータはS2バス7か
らそれぞれALU4に入力される。そして、デスティネーシ
ョンレジスタに演算結果が書き戻される。この場合、S2
バス7にデータ(デスティネーションデータ)を出力す
るレジスタと演算結果が書き込まれるレジスタとは同一
のレジスタであり、そのレジスタからバス7へ出力され
た4バイト(32ビット)のデータの内の3バイトのデー
タがS2バス7からテンポラリラッチ2に入力される。
【0024】図2に、テンポラリラッチ2のための選択
出力回路3及びALU4のための選択出力回路5の詳細な構
成を示す。ALU4の32ビットの演算結果の出力の内の下位
1バイト(24:31) はゲート51を介してDバス8の一部で
あるD(24:31) 83に、その上位1バイト(16:23) はゲー
ト52を介してDバス8の一部であるD(16:23) 82に、上
位の2バイト(0:15)はゲート53を介してDバス8の一部
であるD(24:31) 83にそれぞれ接続されている。なお、
ゲート51は制御信号C1により、ゲート52は制御信号C2に
より、ゲート53は制御信号C3によりそれぞれオン/オフ
制御される。
【0025】また、テンポラリラッチ2の出力の内の下
位1バイト(24:31) の上位側の1バイト(16:23) はゲー
ト31を介してDバス8の一部であるD(16:23) 82に、上
位の2バイト(0:15)はゲート32を介してDバス8の一部
であるD(0:15)81にそれぞれ接続されている。なお、ゲ
ート31は制御信号C4により、ゲート32は制御信号C5によ
りそれぞれオン/オフ制御される。
【0026】従って、書き込みサイズの指定がワードで
ある場合、ALU4の選択出力回路5の各ゲート51, 52, 53
に与えられている制御信号C1, 制御信号C2, 制御信号C3
がいずれも”1”になってゲート51, 52, 53がいずれも
オン (開路) するので、ALU4の演算結果の32ビットの出
力全てがDバス8へ出力される。一方、テンポラリラッ
チ2の選択出力回路3の各ゲート31, 32に与えられてい
る制御信号C4, 制御信号C5はいずれも”0”になって、
ゲート31, 32は共にオフ (閉路) するので、テンポラリ
ラッチ2に保持されているデータは全く出力されない。
【0027】書き込みサイズの指定がハーフワードであ
る場合、ALU4の選択出力回路5のゲート51, 52及びテン
ポラリラッチ2の選択出力回路3のゲート32に与えられ
ている制御信号C1, 制御信号C2, 制御信号C5が”1”に
なってゲート51, 52, 32がオンするので、ALU4の演算結
果の下位16ビット(16:31) がDバス8のD(16:31) 、即
ちD(16:23) 82及びD(24:31) 83へ、テンポラリラッチ
2の上位16ビット(0:15)がDバス8のD(0:15)81へそれ
ぞれ出力される。
【0028】書き込みサイズの指定がバイトである場
合、ALU4の選択出力回路5のゲート51及びテンポラリラ
ッチ2の選択出力回路3のゲート31, 32に与えられてい
る制御信号C1, 制御信号C4, 制御信号C5が”1”になっ
てゲート51, 31, 32がオンするので、ALU4の演算結果の
下位8ビット(24:31) がDバス8のD(24:31) 83へ、テ
ンポラリラッチ2の上位24ビット(0:23)がDバス8のD
(0:23)、即ちD(16:23)82及びD(24:31) 83へそれぞれ
出力される。
【0029】このような本発明のデータ処理回路の具体
的な動作について、タイミングチャートを参照して説明
する。図3のタイミングチャートには、 ”r1. バイト + r2. バイト −> r2. バイト”、 即ち「レジスタ(1) のバイトデータ + レジスタ(2)
のバイトデータをバイトサイズでレジスタ(2) に書込
む」処理を実行する場合の状態が示されている。
【0030】図3において、(a), (b)に示されているφ
1,φ2はノンオーバラップ2相クロックである。ま
た、レジスタ(1) に格納されているデータを図3(c) に
示されているようにr1={a1, a2, a3, a4}で、レジス
タ(2) に格納されているデータを図3(d) に示されてい
るようにr2={b1, b2, b3, b4}でそれぞれ表す。但
し、an, bn(n=1, 2, 3, 4) はそれぞれ8ビットデータ
を表す。
【0031】クロックφ1の立上がりで、図3(e) 及び
(f) に示されているように、レジスタ(1) のデータr1=
{a1, a2, a3, a4}がS1バス6へ、レジスタ(2) のデー
タr2={b1, b2, b3, b4}がS2バス7へそれぞれ出力さ
れる。この場合は、両レジスタ(1), (2)からはいずれも
32ビット全てが出力される。ALU4はS1バス6とS2バス7
とからデータを入力して演算を実行する。
【0032】テンポラリラッチ2はS2バス7からデータ
を入力する。このテンポラリラッチ2は前述の如く3バ
イトのラッチであり、図3(h) に示されているように、
レジスタ(2) からバス7へ出力されている32ビットのデ
ータr2={b1, b2, b3, b4}の内の上位3バイト{b1,
b2, b3}を入力する。この際、書き込みサイズがバイト
で指定されているので、図3(i), (j), (k), (l), (m)
にそれぞれ示されているように、制御信号C1, 制御信号
C4, 制御信号C5が”1”になり、制御信号C2,制御信号C
3は”0”になる。この結果、Dバス8の内のD(0:15)8
1及びD(16:23) 82、即ちD(0:23)にはテンポラリラッ
チ2に保持されている3バイトのデータ{b1, b2, b3}
が出力され、D(24:31) 83にはALU4の演算結果の下位1
バイトが出力される。従って、図3(g) に示されている
ように、Dバス8上の32ビットのデータはは{b1, b2,
b3, c4}となる。
【0033】レジスタファイル1は図3(b) に示されて
いるφ2の立上がりでDバス8のデータを入力してその
まま書込むので、命令の実行終了後はレジスタ(2) のデ
ータはr2={b1, b2, b3, c4}となり、下位1バイトの
みが書き換えられたことになる。但し、c4=a4+b4とす
る。
【0034】図4のタイミングチャートには、”r1. ハ
ーフワード + r2. ハーフワード −> r2. ハーフ
ワード”、即ち「レジスタ(1) のハーフワードデータ
+ レジスタ(2) のハーフワードデータをハーフワード
サイズでレジスタ(2) に書込む」処理を実行する場合の
状態が示されている。
【0035】図4(a) に示されているクロックφ1の立
上がりで、図4(e) 及び(f) に示されているように、レ
ジスタ(1) のデータr1={a1, a2, a3, a4}がS1バス6
へ、レジスタ(2) のデータr2={b1, b2, b3, b4}がS2
バス7へそれぞれ出力される。この場合は、両レジスタ
(1), (2) からはいずれも32ビット全てが出力される。
ALU4はS1バス6とS2バス7とからデータを入力して演算
を実行する。
【0036】テンポラリラッチ2はS2バス7からデータ
を入力する。テンポラリラッチ2は、図4(h) に示され
ているように、レジスタ(2) からバス7へ出力されてい
る32ビットのデータr2={b1, b2, b3, b4}の内の上位
3バイト{b1, b2, b3}を入力する。この際、書き込み
サイズがハーフワードで指定されているので、図4(i),
(j), (k), (l), (m) にそれぞれ示されているように、
制御信号C1, 制御信号C2, 制御信号C5が”1”になり、
制御信号C3, 制御信号C4は”0”になる。この結果、D
バス8の内のD(0:15)81にはテンポラリラッチ2に保持
されている3バイトのデータの内の上位2バイトのデー
タ{b1, b2}が出力され、D(16:31) 、即ちD(16:23)
82及びD(24:31) 83にはALU4の演算結果の下位2バイト
が出力される。従って、ステップ4(g) に示されている
ように、Dバス8上の32ビットのデータは{b1, b2, c
3, c4}となる。
【0037】レジスタファイル1は図4(b) に示されて
いるφ2の立上がりでDバス8のデータを入力してその
まま書込むので、命令の実行終了後はレジスタ(2) のデ
ータはr2={b1, b2, c3, c4}となり、下位2バイトの
みが書き換えられたことになる。但し、{c3, c4}=
{a3, a4}+{b3, b4}とする。
【0038】図5のタイミングチャートには、 ”r1. ハーフワード + r2. ワード −> r2. ワー
ド”、 即ち「レジスタ(1) のハーフワードデータ + レジス
タ(2) のワードデータをワードサイズでレジスタ(2) に
書込む」処理を実行する場合の状態が示されている。
【0039】図5(a) に示されているクロックφ1の立
上がりで、図5(e) 及び(f) に示されているように、レ
ジスタ(1) のデータr1={a1, a2, a3, a4}がS1バス6
へ、レジスタ(2) のデータr2={b1, b2, b3, b4}がS2
バス7へそれぞれ出力される。この場合は、両レジスタ
(1), (2)からはいずれも32ビット全てが出力される。AL
U4はS1バス6とS2バス7とからデータを入力して演算を
実行する。この際、S1バス6のデータサイズはハーフワ
ードに指定されているので、ワードサイズに揃えるため
に下位16ビットはそのまま入力し、上位16ビットは符号
拡張して32ビットのデータとして入力する。
【0040】テンポラリラッチ2はS2バス7からデータ
を入力する。テンポラリラッチ2は、図5(h) に示され
ているように、レジスタ(2) からバス7へ出力されてい
る32ビットのデータr2={b1, b2, b3, b4}の内の上位
3バイト{b1, b2, b3}を入力する。この際、書き込み
サイズがハーフワードで指定されているので、図5(i),
(j), (k), (l), (m) にそれぞれ示されているように、
制御信号C1, 制御信号C2, 制御信号C3が”1”になり、
制御信号C4, 制御信号C5は”0”になる。この結果、D
バス8の全ビットD(0:31)にはALU4の4バイトが出力さ
れ、Dバス8={c1, c2, c3, c4}となる。
【0041】レジスタファイル1は図5(b) に示されて
いるφ2の立上がりでDバス8のデータを入力してその
まま書込むの。従って、命令の実行終了後はレジスタ
(2) のデータはr2={c1, c2, c3, c4}となり、4バイ
ト全てが書き換えられたことになる。但し、{c1, c2,
c3, c4}={a1, a2, a3, a4}+{b1, b2, b3, b4}と
する。
【0042】〔3オペランド命令の場合〕3オペランド
命令は、 ”ソース1 op ソース2 −> デスティネーショ
ン” の形式を取る。これは、「ソース1データとソース2デ
ータとを演算(op)してデスティネーションに格納する」
という意味である。
【0043】この場合、ソース1データはS1バス6か
ら、ソース2データはS2バス7からALU4に入力される。
そして、演算結果はデスティネーションレジスタに書き
込まれる。ここで、S1バス6,S2バス7とも使用される
ため、別の経路9を設けてデスティネーションレジスタ
の値をテンポラリラッチ2に転送する必要が生じる。こ
のため、図6のブロック図に示されているように、レジ
スタファイル1には出力ポートが一つ追加され、レジス
タファイル1の各レジスタ11とテンポラリラッチ2との
間を接続するバス9が設けられている。なお、各レジス
タ11の出力ポートとバス9との間には制御信号C6により
オン/オフ制御されるゲート111 がそれぞれ介装されて
いる。
【0044】ALU4の演算結果とテンポラリラッチ2に保
持されているデータとがDバス8へ出力さてレジスタに
書込まれる際の動作は上述の2オペランド命令のそれぞ
れの場合と同様である。
【0045】ALU 以外の、演算結果の書き込みサイズで
指定された部分のみをレジスタに書込む演算器に関して
は、上述のようなALU4の選択出力回路5と同様の選択出
力回路が必要になる。あるいは、演算器の結果を出力す
るバスとレジスタに書き込まれるデータを転送するバス
とを別個のバスとして分ける構成も可能である。この場
合、演算結果が出力されているバスから選択出力回路に
より書き込みサイズで指定された部分のみをレジスタ書
き込み用バスへ転送するようにする。また同時に、テン
ポラリラッチ2からは書き込みサイズで指定された部分
以外の部分をレジスタ書き込み用バスへ出力する。レジ
スタにはレジスタ書き込み用バスから32ビットのデータ
が書き込まれる。
【0046】本発明のデータ処理回路では以上のような
構成を採ることにより、従来に比してテンポラリラッチ
2と演算器との選択出力回路とが新たに付加される。し
かし一方、各レジスタに関しては制御線と選択入力回路
とが削減される。通常、レジスタは本数が多いため、本
発明のデータ処理回路では従来に比してチップ上で付加
される面積よりも削減される面積の方が大となり、全体
としてはチップの占有面積は減少する。また、レジスタ
の入力ポートが複数である場合には更に占有面積は減少
する。
【0047】
【発明の効果】以上に詳述したように本発明によれば、
レジスタファイルのチップ上での占有面積を減少させる
ことが可能になり、チップ全体を小形することも、また
高速動作させることも可能になる。
【図面の簡単な説明】
【図1】本発明のデータ処理回路の構成例を示すブロッ
ク図である。
【図2】テンポラリラッチのための選択出力回路及びAL
U のための選択出力回路の詳細な構成を示すブロック図
である。
【図3】本発明のデータ処理回路の動作状態を説明する
ためのタイミングチャートである。
【図4】本発明のデータ処理回路の動作状態を説明する
ためのタイミングチャートである。
【図5】本発明のデータ処理回路の動作状態を説明する
ためのタイミングチャートである。
【図6】本発明のデータ処理回路の他の実施例を示すブ
ロック図である。
【図7】従来のデータ処理回路の構成例を示すブロック
図である。
【図8】従来及び本発明のデータ処理回路の各レジスタ
の32ビットの内で各サイズのデータが占めるビット位置
を示す模式図である。
【図9】従来のデータ処理回路の各レジスタ部の具体的
な構成を示すブロック図である。
【符号の説明】
1 レジスタファイル 2 テンポラリラッチ 3 選択出力回路 4 ALU 5 選択出力回路 6 S1バス 7 S2バス 8 Dバス
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成5年5月13日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0005
【補正方法】変更
【補正内容】
【0005】3種類のサイズによる各レジスタ11への書
き込みを制御するために、従来の各レジスタ11は選択入
力回路13を備えている。1本のレジスタ11には選択入力
回路13が備えられており、両者で一つのレジスタ部10を
構成する。選択入力回路13は後述する制御信号により制
御されており、Dバス8から入力されるデータを書き込
むか否かを選択し、レジスタ11の書き込みサイズにより
指定されている部分のみにデータを書込む。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】変更
【補正内容】
【0007】書き込みサイズとしてワードが指定されて
いる場合は、制御信号C1, 制御信号C2,制御信号C3の全
てが”1”になってD(0:31)、即ちDバス8の全てのデ
ータがレジスタ11に書き込まれる。書き込みサイズとし
てハーフワードが指定されいる場合は、制御信号C1, 制
御信号C2が”1”になってD(16:31) 、即ちDバス8の
内のD(16:23) 82とD(24:31) 83とのデータがレジスタ
11の下位2バイトに書き込まれる。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0025
【補正方法】変更
【補正内容】
【0025】また、テンポラリラッチ2の出力の内の下
位側の1バイト(16:23) はゲート31を介してDバス8の
一部であるD(16:23) 82に、上位の2バイト(0:15)はゲ
ート32を介してDバス8の一部であるD(0:15)81にそれ
ぞれ接続されている。なお、ゲート31は制御信号C4によ
り、ゲート32は制御信号C5によりそれぞれオン/オフ制
御される。
【手続補正書】
【提出日】平成6年2月17日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0024
【補正方法】変更
【補正内容】
【0024】図2に、テンポラリラッチ2のための選択
出力回路3及びALU4のための選択出力回路5の詳細な構
成を示す。ALU4の32ビットの演算結果の出力の内の下位
1バイト(24:31) はトライステートバッファ51を介して
Dバス8の一部であるD(24:31) 83に、その上位1バイ
ト(16:23) はトライステートバッファ52を介してDバス
8の一部であるD(16:23)82に、上位の2バイト(0:15)
トライステートバッファ53を介してDバス8の一部で
あるD(24:31) 83にそれぞれ接続されている。なお、
ライステートバッファ51は制御信号C1により、トライス
テートバッファ52は制御信号C2により、トライステート
バッファ53は制御信号C3によりそれぞれデータをDバス
8へ出力するか否かを制御される。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0025
【補正方法】変更
【補正内容】
【0025】また、テンポラリラッチ2の出力の内の下
位側1バイト(24:31) の上位側の1バイト(16:23) は
ライステートバッファ31を介してDバス8の一部である
D(16:23) 82に、上位の2バイト(0:15)はトライステー
トバッファ32を介してDバス8の一部であるD(0:15)81
にそれぞれ接続されている。なお、トライステートバッ
ファ31は制御信号C4により、トライステートバッファ32
は制御信号C5によりそれぞれデータをDバス8へ出力す
るか否かを制御される。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0026
【補正方法】変更
【補正内容】
【0026】従って、書き込みサイズの指定がワードで
ある場合、ALU4の選択出力回路5の各トライステートバ
ッファ51, 52, 53に与えられている制御信号C1, 制御信
号C2, 制御信号C3がいずれも”1”になってトライステ
ートバッファ51, 52, 53がいずれもデータを出力する状
態になるので、ALU4の演算結果の32ビットの出力全てが
Dバス8へ出力される。一方、テンポラリラッチ2の選
択出力回路3の各トライステートバッファ31, 32に与え
られている制御信号C4, 制御信号C5はいずれも”0”に
なって、トライステートバッファ31, 32は共にデータを
出力しない状態になるので、テンポラリラッチ2に保持
されているデータは全く出力されない。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0027
【補正方法】変更
【補正内容】
【0027】書き込みサイズの指定がハーフワードであ
る場合、ALU4の選択出力回路5のトライステートバッフ
51, 52及びテンポラリラッチ2の選択出力回路3の
ライステートバッファ32に与えられている制御信号C1,
制御信号C2, 制御信号C5が”1”になってトライステー
トバッファ51, 52, 32がデータを出力する状態になる
で、ALU4の演算結果の下位16ビット(16:31) がDバス8
のD(16:31) 、即ちD(16:23) 82及びD(24:31) 83へ、
テンポラリラッチ2の上位16ビット(0:15)がDバス8の
D(0:15)81へそれぞれ出力される。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0028
【補正方法】変更
【補正内容】
【0028】書き込みサイズの指定がバイトである場
合、ALU4の選択出力回路5のトライステートバッファ51
及びテンポラリラッチ2の選択出力回路3のトライステ
ートバッファ31, 32に与えられている制御信号C1, 制御
信号C4, 制御信号C5が”1”になってトライステートバ
ッファ51, 31, 32がデータを出力する状態になるので、
ALU4の演算結果の下位8ビット(24:31) がDバス8のD
(24:31) 83へ、テンポラリラッチ2の上位24ビット(0:2
3)がDバス8のD(0:23)、即ちD(16:23) 82及びD(10:
24) 81へそれぞれ出力される。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0039
【補正方法】変更
【補正内容】
【0039】図5(a) に示されているクロックφ1の立
上がりで、図5(e) 及び(f) に示されているように、レ
ジスタ(1) のデータr1={a1, a2, a3, a4}がS1バス6
へ、レジスタ(2) のデータr2={b1, b2, b3, b4}がS2
バス7へそれぞれ出力される。この場合は、両レジスタ
(1), (2)からはいずれも32ビット全てが出力される。AL
U4はS1バス6とS2バス7とからデータを入力して演算を
実行する。この際、S1バス6のデータサイズはハーフワ
ードに指定されているので、ワードサイズに揃えるため
に下位16ビットはそのまま入力し、上位16ビットは符号
/0拡張命令によって符号または0拡張して32ビットの
データとして入力する。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0041
【補正方法】変更
【補正内容】
【0041】レジスタファイル1は図5(b) に示されて
いるφ2の立上がりでDバス8のデータを入力してその
まま書込むの。従って、命令の実行終了後はレジスタ
(2) のデータはr2={c1, c2, c3, c4}となり、4バイ
ト全てが書き換えられたことになる。但し、{c1, c2,
c3, c4}={s, s, a3, a4}+{b1, b2, b3, b4}と
する。なお、sは{a3, a4}の符号を8ビットに拡張し
たデータである。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0043
【補正方法】変更
【補正内容】
【0043】この場合、ソース1データはS1バス6か
ら、ソース2データはS2バス7からALU4に入力される。
そして、演算結果はデスティネーションレジスタに書き
込まれる。ここで、S1バス6,S2バス7とも使用される
ため、別の経路9を設けてデスティネーションレジスタ
の値をテンポラリラッチ2に転送する必要が生じる。こ
のため、図6のブロック図に示されているように、レジ
スタファイル1には出力ポートが一つ追加され、レジス
タファイル1の各レジスタ11とテンポラリラッチ2との
間を接続するバス9が設けられている。なお、各レジス
タ11の出力ポートとバス9との間には制御信号C6により
データをバス9へ出力するか否かを制御されるトライス
テートバッファ111 がそれぞれ介装されている
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0045
【補正方法】変更
【補正内容】
【0045】ALU 以外の、演算結果の書き込みサイズで
指定された部分のみをレジスタに書込む演算器に関して
は、上述のようなALU4の選択出力回路5と同様の選択出
力回路が必要になる。あるいは、図10のブロック図に示
されているようにALU4の演算結果を出力するバスとレジ
スタ11に書き込まれるデータを転送するDバス8とを別
個のバスとして分離した構成を採ることも可能である。
図10において、参照符号16はALU4の演算結果を出力する
32ビットのRバスを、14はALU4以外のALU(演算器) を、
15はRバス16から32ビットのデータを入力してレジスタ
11への書き込みサイズに従って下位8ビット,16ビッ
ト, 32ビットのいずれかを選択してレジスタ書き込み用
のDバス8へ出力する選択出力回路をそれぞれ示してい
る。 このような構成では、ALU4の演算結果が出力されて
いるRバス16から選択出力回路15により書き込みサイズ
で指定された部分のみをレジスタ書き込み用のDバス8
へ転送するようにする。また同時に、テンポラリラッチ
2からは書き込みサイズで指定された部分以外の部分を
レジスタ書き込み用のDバス8へ出力する。レジスタ11
にはレジスタ書き込み用のDバス8から32ビットのデー
タが書き込まれる。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】図10
【補正方法】追加
【補正内容】
【図10】本発明のデータ処理回路の更に他の実施例を
示すブロック図である。
【手続補正11】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】変更
【補正内容】
【図5】
【手続補正12】
【補正対象書類名】図面
【補正対象項目名】図10
【補正方法】追加
【補正内容】
【図10】

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 それぞれがnビットのデータを保持する
    複数のレジスタからなるレジスタファイルと、 前記レジスタファイルの内のデータの書き込みが指定さ
    れた一つのレジスタから第1のバスを介してデータを受
    け取る演算器と、 データの書き込みが指定された前記レジスタから前記第
    1のバスを介してnビットの内の少なくとも一部のデー
    タを入力して保持するラッチと、 前記演算器に接続され、前記演算器の演算結果を第2の
    バスの書き込みサイズとして指定されたmビットの部分
    へ出力する第1の選択出力回路と、 前記ラッチに接続され、前記ラッチに保持されているデ
    ータを前記第2のバスの書き込みサイズとして指定され
    た前記mビットの部分以外の部分へ出力する第2の選択
    出力回路とを備え、 データの書き込みが指定された前記レジスタは、前記第
    2のバスからnビットのデータを入力すべくなしてある
    ことを特徴とするデータ処理回路。
  2. 【請求項2】 それぞれがnビットのデータを保持する
    複数のレジスタからなるレジスタファイルと、 前記レジスタファイルの内のデータの書き込みが指定さ
    れた一つのレジスタから第1のバスを介してnビットの
    内の少なくとも一部のデータを入力して保持するラッチ
    と、 演算器に接続され、前記演算器の演算結果の内の書き込
    みサイズとして指定されたmビットを第2のバスへ出力
    する第1の選択出力回路と、 前記ラッチに接続され、前記ラッチに保持されているデ
    ータの内の書き込みサイズとして指定されたmビットに
    対応しないビットを前記第2のバスへ出力する第2の選
    択出力回路とを備え、 データの書き込みが指定された前記レジスタは、前記第
    2のバスからnビットのデータを入力すべくなしてある
    ことを特徴とするデータ処理回路。
  3. 【請求項3】 前記第1の選択出力回路から出力した第
    2のバスの一部と、前記第2の選択出力回路から出力し
    た第2のバスの一部とのビット数の和がnビットである
    ことを特徴とする請求項1及び2に記載のデータ処理回
    路。
JP5013110A 1993-01-29 1993-01-29 データ処理回路 Pending JPH06230960A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP5013110A JPH06230960A (ja) 1993-01-29 1993-01-29 データ処理回路
US08/353,163 US5495433A (en) 1993-01-29 1994-12-09 Data processing circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5013110A JPH06230960A (ja) 1993-01-29 1993-01-29 データ処理回路

Publications (1)

Publication Number Publication Date
JPH06230960A true JPH06230960A (ja) 1994-08-19

Family

ID=11824018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5013110A Pending JPH06230960A (ja) 1993-01-29 1993-01-29 データ処理回路

Country Status (2)

Country Link
US (1) US5495433A (ja)
JP (1) JPH06230960A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501276B2 (en) 2012-12-31 2016-11-22 Intel Corporation Instructions and logic to vectorize conditional loops

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4525776A (en) * 1980-06-02 1985-06-25 Bell Telephone Laboratories, Incorporated Arithmetic logic unit arranged for manipulating bits
US4740894A (en) * 1985-09-27 1988-04-26 Schlumberger Systems And Services, Inc. Computing processor with memoryless function units each connected to different part of a multiported memory
JPH0731669B2 (ja) * 1986-04-04 1995-04-10 株式会社日立製作所 ベクトル・プロセツサ
US5073864A (en) * 1987-02-10 1991-12-17 Davin Computer Corporation Parallel string processor and method for a minicomputer
FR2656710A1 (fr) * 1989-12-29 1991-07-05 Radiotechnique Compelec Microcontroleur pour l'execution rapide d'un grand nombre d'operations decomposable en sequence d'operations de meme nature.
US5153846A (en) * 1990-07-30 1992-10-06 At&T Bell Laboratories Digital shift register using random access memory
JPH04172533A (ja) * 1990-11-07 1992-06-19 Toshiba Corp 電子計算機

Also Published As

Publication number Publication date
US5495433A (en) 1996-02-27

Similar Documents

Publication Publication Date Title
EP0743594B1 (en) Matrix transposition
EP0744686B1 (en) Manipulation of data
US7350054B2 (en) Processor having array of processing elements whose individual operations and mutual connections are variable
JPH09512651A (ja) 複数命令セットのマッピング
JPH08305568A (ja) 情報処理装置
US5704052A (en) Bit processing unit for performing complex logical operations within a single clock cycle
JPH05150979A (ja) 即値オペランド拡張方式
US7822955B2 (en) Data processing apparatus and method for utilizing endianess independent data values
US20030033503A1 (en) Single instruction having opcode and stack control field
US5903779A (en) System and method for efficient packing data into an output buffer
US6332188B1 (en) Digital signal processor with bit FIFO
US6334135B2 (en) Data processing system and register file
JP2000322235A (ja) 情報処理装置
JPH06230960A (ja) データ処理回路
JPH034936B2 (ja)
JPS60153543A (ja) バレルシフタ
EP0325226B1 (en) Information processing apparatus and method
JPS62156742A (ja) デ−タ書込み制御方式
US7616628B2 (en) Switched processor datapath
JPS59114677A (ja) ベクトル処理装置
US5446909A (en) Binary multiplication implemented by existing hardware with minor modifications to sequentially designate bits of the operand
US5784634A (en) Pipelined CPU with instruction fetch, execution and write back stages
JPS6184777A (ja) パイプライン演算装置
EP4011051B1 (en) A network packet processor for processing a data packet
JPH076032A (ja) 高速のマイクロプロセッサ分岐決定回路