JP3155056B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP3155056B2
JP3155056B2 JP08517692A JP8517692A JP3155056B2 JP 3155056 B2 JP3155056 B2 JP 3155056B2 JP 08517692 A JP08517692 A JP 08517692A JP 8517692 A JP8517692 A JP 8517692A JP 3155056 B2 JP3155056 B2 JP 3155056B2
Authority
JP
Japan
Prior art keywords
address
operand
register
word boundary
state
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 - Fee Related
Application number
JP08517692A
Other languages
English (en)
Other versions
JPH05289865A (ja
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP08517692A priority Critical patent/JP3155056B2/ja
Publication of JPH05289865A publication Critical patent/JPH05289865A/ja
Application granted granted Critical
Publication of JP3155056B2 publication Critical patent/JP3155056B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、パイプライン処理を行
う情報処理装置において、多重ロード命令および/また
は多重ストア命令を高速に実行するための情報処理装置
に関する。
【0002】多重ロード命令は、命令中のR1 部で指定
されるレジスタからはじまり、R3部で指定されるレジ
スタまでの一連の汎用レジスタに対して、B2 部、D2
部で指定される記憶域の内容をロードするものである。
また多重ストア命令は、命令中のR1 部で指定されるレ
ジスタからはじまり、R3 部で指定されるレジスタまで
の一連の汎用レジスタの内容を、B2 部、D2 部で指定
される記憶域に対してストアするものである。
【0003】
【従来の技術】従来から、上記多重ロード命令や多重ス
トア命令が実行されており、連続してアクセス処理が行
われるようにされている。
【0004】当該従来の場合の処理態様については、図
6ないし図8を参照して後述されるが、主記憶装置を共
有するマルチプロセッサ・システムの下で実行される場
合には、ダブル・ワード境界内(8バイト境界内)の1
ブロックの記憶域に対するアクセスに当っては、2つ以
上のプロセッサから同時にアクセスすることができない
ことが生じる。このような場合における処理能力を向上
するために、多重ロード命令や多重ストア命令の実行に
当っては、記憶域オペランドがワード境界にある場合に
はまずワード(4バイト)のアクセスを処理し(ダブル
・ワードのアクセスが出来るようになるのを待つように
することなしに)、続いてダブル・ワード(8バイト)
を単位として記憶域オペランドへアクセスするようにす
ることが行われる。
【0005】図6は従来の場合の多重ロード命令の処理
態様を示す。図中の符号1は命令レジスタ、2はレジス
タ・スタック、3はベース・レジスタ、4はディスプレ
ースメント・レジスタ、5は実効アドレス発生部、6、
7、8は夫々レジスタ、9はオペランド長生成回路、1
0は実効アドレス・レジスタ、11はワーク・アドレス
・レジスタ、12はオペランド長設定レジスタを表わし
ている。なお、図6中の符号4’、5’、10’は、第
1フロー(1st FLOW)において使用される構成
と同じものであり、第2フロー(2nd FLOW)に
おいて使用されることを表わしている。
【0006】パイプライン処理の流れは、Dステート、
Aステート、Tステート、Bステート、Eステート、W
ステートの6ステートをもつようにされているものであ
るが、多重ロード命令や多重ストア命令の場合には上述
した如く、ワード境界アクセスとダブル・ワード境界ア
クセスとが混在することになることから、第1フローに
おいて、Aステート(アドレス生成ステート)で1ステ
ート分のインターロックを必要とする。
【0007】即ち、図6に示す如く、命令レジスタ1の
内容にもとづいて、Aステートの先頭において、ベース
・レジスタ3とディスプレースメント・レジスタ4とが
セットされると共に、レジスタ6とレジスタ7とに命令
中のR1 部とR3 部とがセットされる。そしてAステー
トにおける処理の結果から記憶オペランド・アドレスが
ワード境界に位置するか否かがレジスタ8にセットされ
ることになり、オペランド長生成回路9がレジスタ6、
7、8の内容にもとづいてオペランド長を計算する。
【0008】従来の場合(図6の場合)、オペランド長
生成回路9がレジスタ6、7、8の内容を利用すること
から、第1フローに関して、Aステートが更に1ステー
ト分接続される。そして、Tステートの先頭において、
レジスタ10、11、12がセットされ、かつ第2フロ
ーのためにレジスタ4’がセットされる。第1フローは
以降、Bステート、Eステート、Wステートと処理が行
われるが、第2フローに関しては第2フローにおけるA
ステートにおいてアドレス計算が行われる。
【0009】図7は多重ロード命令の処理の一例を示し
ている。図示の場合には、主記憶装置におけるアドレス
「104」からの16バイト分を汎用レジスタGR
(1)からGR(4)までに多重ロードする処理が示さ
れている。
【0010】図示上方に、第1フローの処理と第2フロ
ーの処理と第3フローの処理とがパイプライン処理によ
って行われることが示されている。また図示下方に、主
記憶装置からどのようにデータがロードされるかが示さ
れている。
【0011】第1フローのAステート(インターロック
が行われたAステート)において、アドレス「104」
からレングス長「4」即ち4バイト分)をロードするこ
とが定まり、Bステートにおいて4バイト分のフェッチ
が行われ、Wステートにおいて4バイト分のデータが汎
用レジスタGR(1)にセットされる。
【0012】第1フローのTステートの際に第2フロー
のAステートが処理され、第2フローにおいては、
(i)アドレスが、「104」+「4」から、「10
8」となり、(ii) レングスが、残りレジスタ数が
「3」であることから、「8」とされ、Bステートにお
いて8バイト分のフェッチが行われ、Wステートにおい
て8バイト分のデータが汎用レジスタGR(2)とGR
(3)とにセットされる。
【0013】同様に第3フローにおいては、(iii)アド
レスが、「108」+「8」から、「110」となり、
(iv) レングスが、残りレジスタ数が「1」であことか
ら、「4」とされ、Bステートにおいて4バイト分のフ
ェッチが行われ、Wステートにおいて4バイト分のデー
タが汎用レジスタGR(4)にセットされる。
【0014】図8は多重ロード命令の処理の他の例を示
している。図示の場合には、主記憶装置におけるアドレ
ス「108」からの16バイト分を汎用レジスタGR
(1)からGR(4)までに多重ロードする処理が示さ
れている。
【0015】図7の場合には、主記憶アドレスの先頭が
「104」であったためにワード境界アクセスが介在し
たが、図8の場合には主記憶アドレスの先頭が「10
8」であるために最初からダブル・ワード境界アクセス
が行われるものとなっている。
【0016】図8の場合においても、第1フローのイン
ターロックされたAステートにおいて、アドレス「10
8」とレングス「8」とが定まり、その結果が第2フロ
ーのAステートに受渡される。
【0017】
【発明が解決しようとする課題】従来の場合には、上述
した如く、ワード境界アクセスとダブル・ワード境界ア
クセスとが混在していることから、第1フローにおいて
Aステートを1ステート分インターロックせしめる必要
があった。即ち、第1フローにおけるアドレス計算の結
果にもとづいて、オペランド長生成回路9がオペランド
長を決定していたために、上記1ステート分のインター
ロックを必要とした。これは、アドレス計算の結果を利
用しないと、第1フローにおいて、ワード境界アクセス
が行われるのかダブル・ワード境界アクセスが行われる
のかが正しく定まらないことに起因している。
【0018】上述の如く、従来の場合には、第1フロー
において1ステート分のインターロックを必要としてい
たために、遅延を生じるものとなっていた。本発明は、
第1フローにおけるインターロックを必要としないよう
にすることを目的としている。
【0019】
【課題を解決するための手段】図1は本発明の原理図を
示す。図中の符号D、A、T、B、E、Wはパイプライ
ン処理のステートを表わしている。また9はオペランド
長生成回路、12はオペランド長設定レジスタ、13は
制御回路であってワード境界アクセスかダブル・ワード
境界アクセスかによってレジスタ4’にセットする値を
「4」または「8」にするもの、15は修正回路であっ
てオペランド長設定レジスタ12の内容を修正する値が
セットされるもの、16は修正されたオペランド長がセ
ットされるレジスタ、17は4ワード・ロードか8ワー
ド・ロードかをセットするレジスタ、19は4ワード・
ロードであるか8ワード・ロードであるかをその内容か
ら見出してWステートにおける処理を行わせるレジスタ
を表わしている。
【0020】本発明の場合においては、図示のオペラン
ド長生成回路9は、残りレジスタ数のみをチェックし、
残りレジスタ数が「2」以上であればダブル・ワード境
界アクセスであるとみなして、オペランド長としてレン
グス「8」を発生するようにする。即ち、第1フローに
おけるアドレス計算がAステートにおいて行われるが、
その結果を待つことなく時間的に並行して、オペランド
長を仮決定してしまうようにする。
【0021】
【作用】本発明の場合には、第1フローにおけるAステ
ートにおいて、オペランド長生成回路9が、残りレジス
タ数のみをみて(アドレス計算の結果を待つことなし
に)、オペランド長を仮決定してしまうようにする。そ
して、当該Aステートにおいてアドレス計算が行われる
が、その結果を制御回路13が受取り、先に仮決定され
たオペランド長を修正すべきか否か判定し、修正すべき
場合には(即ち、ダブル・ワード境界アクセスであると
みなしたが、実際にはワード境界アクセスであった場合
には)、その修正値を修正回路15にセットし、レジス
タ16やレジスタ17の内容を修正するようにする。
【0022】換言すれば、図1下方に示す如く、残りレ
ジスタ数が例えば「4」であったとすれば、第1フロー
においてダブル・ワード境界アクセスとみなして、アド
レス「104」からの8バイト分をフェッチするように
する。そしてその後、前半の4バイト分についてのみが
汎用レジスタGR(1)にセットされることとなる。言
うまでもなく、第2フローにおいて、アドレス「10
8」からの8バイト分が汎用レジスタGR(2)とGR
(3)とにセットされる。
【0023】
【実施例】図2は本発明が行われるパイプライン処理の
構成を示す。図中の符号2、3、4、5は図6に対応
し、22はテーブル・ルックアサイド・バッファ(TL
B)、24はローカル・バッファ・ストレージ(LB
S)であってキャッシュ・メモリに相当するもの、27
は演算器、20、21、23、25、26、28はレジ
スタ、2’はレジスタ・スタック2と同じものを表わし
ている。
【0024】図2においては、パイプライン処理を6ス
テートで行うものとしている。 (a)Dステート;オペコードがデコードされ、レジス
タ・スタック(汎用レジスタGR、浮動小数点レジスタ
FRを含む)からアドレス計算用のデータが読出され、
レジスタ3、20にセットされる。またディスプレース
メントがレジスタ4にセットされる。
【0025】(b)Aステート(アドレス生成ステー
ト);レジスタ3、20、4の内容が加算され、その結
果が実効アドレスとしてレジスタ21にセットされる。 (c)Tステート(アドレス変換ステート);実効アド
レスがTLB22により実アドレスに変換され、レジス
タ23にセットされる。
【0026】(d)Bステート;実アドレスによりLB
S24からデータが読み出され、レジスタ25にセット
される。 (e)Eステート;レジスタ25の内容とレジスタ26
の内容とで演算が行われ、レジスタ28にセットされ
る。
【0027】(f)Wステート;結果をレジスタ・スタ
ック2’に書込む。これらレジスタの内容は、バスによ
ってレジスタ26にセットされ、演算器27に送り込む
ことができる。
【0028】図3は本発明の場合の多重ロード命令の処
理態様を示す。図中の符号1、2、3、4、5、6、
7、9、10、11、12、4’、5’、10’は図6
に対応し、13は制御回路(図1参照)、14はレジス
タであって残りレジスタ数からワード境界アクセスによ
り4バイトをロードするかダブル・ワード境界アクセス
により8バイトをロードするかがセットされるもの、1
5は修正回路(図1参照)、16、17、19はレジス
タ(図1参照)、18はレジスタを表わしている。
【0029】図3の場合においても、従来の図6の場合
と同様に、第1フローにおけるAステートにおいて、ア
ドレス計算が行われる。そしてその結果が、Tステート
においてレジスタ10、レジスタ11にセットされる。
【0030】ただ本発明の場合には、オペランド長生成
回路9は、(第1フローの場合には、レジスタ21、2
2にセットされた所の命令のR1 部とR3 部との値のみ
をみて)残りレジスタ数が「1」でない限ぎり、オペラ
ンド長を「8」であると仮決定するようにする。この処
理は、Aステートにおいてアドレス計算と並行して行わ
れる。オペランド長生成回路9からの出力は、Tステー
トの先頭において、オペランド長「8」がレジスタ12
にセットされ、かつ8バイト・ロードである旨がレジス
タ14にセットされる。
【0031】一方、Aステートの末尾においては、実効
アドレス発生部5からの出力が得られて、その結果が制
御回路13に通知される。制御回路13においては、当
該結果を調べて、第2フローのためにディスプレースメ
ント・レジスタ4’に値をセットする。即ち、第1フロ
ーにおいて8バイト・ロードであれば値「8」をセット
し、4バイト・ロードであった場合には値「4」をセッ
トする。
【0032】ただこのとき、第1フローにおいては、上
述の如く、オペランド長生成回路9が、残りレジスタ数
のみをみて、一般には、オペランド長「8」を仮決定
し、レジスタ12に「8」をセットし、かつレジスタ1
4に8バイト・ロードである旨をセットしている。この
ことから、上記制御回路13が、4バイト・ロードであ
ると判定した場合には、レジスタ12の内容やレジスタ
14の内容を修正することが必要となる。
【0033】レジスタ12の内容やレジスタ14の内容
を直ちに修正する必要はないので、制御回路13は修正
回路15に対して、修正すべき旨を指示しておく。そし
て、修正回路15は、レジスタ16とレジスタ17とに
おいて、必要とする修正を行わせるようにする。即ち、
修正が行われた場合には、レジスタ16の内容は値
「4」とされ、レジスタ17の内容は4バイト・ロード
である旨がセットされる。第1フローにおけるTステー
ト以降の処理においては、最初に8バイト・ロードであ
るものとして処理が進められており、図1を参照して上
述した如く主記憶からは(LSBからの場合もあるが)
8バイトがフェッチされてくる。そして、Wステートに
おいて、8バイトのデータ中の後半の4バイト分は無視
されることになる。
【0034】図4は本発明の場合の多重ロード命令の処
理の一例を示している。図4の場合は、従来の場合の図
7の処理に対応している。第1フローにおけるAステー
トにおいて、 アドレス=「104」、レングス=「8」 が与えられる。なおレングス「8」は仮決定のものであ
る。そしてBステートにおいて8バイト・フェッチが行
われるが、4バイト・ロードであったことから、8バイ
ト分のデータ中の前半の4バイトが汎用レジスタGR
(1)にセットされる。
【0035】第2フローにおけるAステートにおいて
は、第1フローが4バイト・ロードであったことから、 アドレス=「104」+「4」=「108」 レングス=「8」 となり、図示の如くBステートにおいて8バイト・フェ
ッチが行われ、Wステートにおいて当該8バイト分のデ
ータが汎用レジスタGR(2)とGR(3)とにセット
される。
【0036】第3フローにおけるAステートにおいて
は、 アドレス=「108」+「8」=「110」 とされ、かつオペランド長に関しては残りレジスタ数が
「1」であることから、 レングス=「4」 となり、Bステートにおいて4バイト・フェッチが行わ
れ、Wステートにおいて当該4バイト分のデータが汎用
レジスタGR(4)にセットされる。
【0037】図5は本発明の場合の多重ロード命令の処
理の他の例を示している。図5の場合は、従来の場合の
図8の処理に対応している。図5の場合には、図8の場
合と同様にダブル・ロード境界であることから、4バイ
ト・ロードが行われることはなく、第1フローにおいて
8バイト分のデータがロードされて汎用レジスタGR
(1)とGR(2)とにセットされ、第2フローにおい
ても8バイト分のデータがロードされて汎用レジスタG
R(3)とGR(4)とにセットされる。
【0038】なお、上記説明においては、多重ロード命
令の場合について説明したが、多重ストア命令の場合に
は、夫々のフローのWステートにおいて主記憶装置上の
所定のアドレスに書込まれることが行われるのであり、
実質上両者の処理に差異はない。
【0039】
【発明の効果】以上説明した如く、本発明によれば、第
1フローにおいて、残りレジスタ数が「1」でない限
り、ダブル・ワード境界アクセスであるものと仮決定し
て処理を進め、後で必要に応じて修正するようにしたの
で、従来必要とされた第1フローにおけるインターロッ
クが不必要となる。
【図面の簡単な説明】
【図1】本発明の原理図を示す。
【図2】本発明が行われるパイプライン処理の構成を示
す。
【図3】本発明の場合の多重ロード命令の処理態様を示
す。
【図4】本発明の場合の多重ロード命令の処理の一例を
示す。
【図5】本発明の場合の多重ロード命令の処理の他の例
を示す。
【図6】従来の場合の多重ロード命令の処理態様を示
す。
【図7】従来の場合の多重ロード命令の処理の一例を示
す。
【図8】従来の場合の多重ロード命令の処理の他の例を
示す。
【符号の説明】
1 命令レジスタ 2 レジスタ・スタック 3 ベース・レジスタ 4 ディスプレースメント・レジスタ 5 実効アドレス発生部 9 オペランド長生成回路 10 実効アドレス・レジスタ 12 オペランド長設定レジスタ 13 制御回路 15 修正回路
フロントページの続き (56)参考文献 特開 昭61−100835(JP,A) 特開 昭61−100836(JP,A) 特開 平2−100721(JP,A) 特開 昭57−111745(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/38

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 アクセスすべきアドレスを計算し、かつ
    当該アクセスに対応するオペランド長を生成すると共
    に、記憶域オペランド・アドレスがワード境界かダブル
    ・ワード境界かを判定して行うパイプライン処理が実行
    される情報処理装置において、 多重ロード命令を実行するに当って、 現フローにおけるアドレス生成ステートのアドレス計算
    処理と時間的に並行してオペランド長を得るよう構成さ
    れ、かつ残りレジスタ数のみを考慮して上記オペランド
    長を生成するオペランド長生成回路と、上記オペランド長生成回路の出力を入力する所の、現フ
    ローにおけるアドレス変換ステートのオペランド長設定
    レジスタと、 上記記憶域オペランド・アドレスがワード境界か否かに
    もとづいて、次フローの記憶域オペランド・アドレスを
    生成するアドレス生成回路部と、 記憶域オペランド・アドレスがワード境界にある場合
    に、ロードするレジスタ数を修正する修正回路とを設
    け、 ワード境界アクセスとダブル・ワード境界アクセスとが
    選択的に用いられるアクセス処理をパイプライン処理す
    るようにしたことを特徴とする情報処理装置。
  2. 【請求項2】 アクセスすべきアドレスを計算し、かつ
    当該アクセスに対応するオペランド長を生成すると共
    に、記憶域オペランド・アドレスがワード境界かダブル
    ・ワード境界かを判定して行うパイプライン処理が実行
    される情報処理装置において、 多重ストア命令を実行するに当って、 現フローにおけるアドレス生成ステートのアドレス計算
    処理と時間的に並行してオペランド長を得るよう構成さ
    れ、かつ残りレジスタ数のみを考慮して上記オペランド
    長を生成するオペランド長生成回路と、上記オペランド長生成回路の出力を入力する所の、現フ
    ローにおけるアドレス変換ステートのオペランド長設定
    レジスタと、 上記記憶域オペランド・アドレスがワード境界か否かに
    もとづいて、次フローの記憶域オペランド・アドレスを
    生成するアドレス生成回路部と、 記憶域オペランド・アドレスがワード境界にある場合
    に、記憶域オペランド長を修正する修正回路とを設け、 ワード境界アクセスとダブル・ワード境界アクセスとが
    選択的に用いられるアクセス処理をパイプライン処理す
    るようにしたことを特徴とする情報処理装置。
JP08517692A 1992-04-07 1992-04-07 情報処理装置 Expired - Fee Related JP3155056B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08517692A JP3155056B2 (ja) 1992-04-07 1992-04-07 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08517692A JP3155056B2 (ja) 1992-04-07 1992-04-07 情報処理装置

Publications (2)

Publication Number Publication Date
JPH05289865A JPH05289865A (ja) 1993-11-05
JP3155056B2 true JP3155056B2 (ja) 2001-04-09

Family

ID=13851356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08517692A Expired - Fee Related JP3155056B2 (ja) 1992-04-07 1992-04-07 情報処理装置

Country Status (1)

Country Link
JP (1) JP3155056B2 (ja)

Also Published As

Publication number Publication date
JPH05289865A (ja) 1993-11-05

Similar Documents

Publication Publication Date Title
US4794524A (en) Pipelined single chip microprocessor having on-chip cache and on-chip memory management unit
US4970641A (en) Exception handling in a pipelined microprocessor
US6779102B2 (en) Data processor capable of executing an instruction that makes a cache memory ineffective
US4967338A (en) Loosely coupled pipeline processor
JPS5852265B2 (ja) デ−タ処理装置
US5752273A (en) Apparatus and method for efficiently determining addresses for misaligned data stored in memory
US4954947A (en) Instruction processor for processing branch instruction at high speed
US5757685A (en) Data processing system capable of processing long word data
US5687353A (en) Merging data using a merge code from a look-up table and performing ECC generation on the merged data
EP0730220A2 (en) Method and apparatus for rapid execution of control transfer instructions
JPS59231652A (ja) メモリアクセス・オ−バラツプ検出方式
JPH02287626A (ja) パイプライン方式の分岐命令制御装置
JPH0410102B2 (ja)
JP3155056B2 (ja) 情報処理装置
US5452428A (en) Processor having different operand source information temporarily stored in plural holding registers to avoid using microprogram ROM capacity for such information
US6405233B1 (en) Unaligned semaphore adder
US4775933A (en) Address generation system
JPS61173345A (ja) 計算機システム
JPH0452488B2 (ja)
JPH01255933A (ja) 掃出し制御方式
JP2922979B2 (ja) 中央演算処理装置
JPH0535472A (ja) マイクロコンピユータ
JPS5925264B2 (ja) ベクトル命令処理方式
JP2926975B2 (ja) プログラム制御装置
JP3144678B2 (ja) 中央演算処理装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010116

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080202

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090202

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090202

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100202

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110202

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110202

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120202

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees