JPS59231652A - メモリアクセス・オ−バラツプ検出方式 - Google Patents

メモリアクセス・オ−バラツプ検出方式

Info

Publication number
JPS59231652A
JPS59231652A JP58105528A JP10552883A JPS59231652A JP S59231652 A JPS59231652 A JP S59231652A JP 58105528 A JP58105528 A JP 58105528A JP 10552883 A JP10552883 A JP 10552883A JP S59231652 A JPS59231652 A JP S59231652A
Authority
JP
Japan
Prior art keywords
fetch
store
memory
overlap
byte
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
JP58105528A
Other languages
English (en)
Inventor
Kanji Kubo
久保 完次
Kenichi Shiozaki
塩崎 謙一
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP58105528A priority Critical patent/JPS59231652A/ja
Priority to US06/618,257 priority patent/US4670836A/en
Priority to DE3421737A priority patent/DE3421737C2/de
Publication of JPS59231652A publication Critical patent/JPS59231652A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明はパイプライン方式のn1算様において、ストア
系命令とフェッチ系命令の指定したメモリ上のオペラン
ドがオーバラップしていることを検出する方式の改良に
関する。
〔発明の背景〕
パイプライン方式の計算機においては、複数の命令が並
列に処理されるが、メそりにデータを書込むストア系命
令のあとにメモリからデータを読出す7エツテ系命令が
続く場合は、命令の実行順序を保障するために、先行の
ストア系命令が変更するメモリ上の領域と後続のフェッ
チ系命令が読出すメモリ上の領域とがオ・−バラツブし
ているか否かチェックし、オーバラップしている場合は
先行のストア系命令の処理が終了するまで後続のフェッ
チ系命令の処理を待つ必要がある。しかし、従来は、か
〜るストア系命令とフェッチ系命令のオーバラップをメ
モリのアクセス巾を単位とじて検出していたため、実際
にはオーバラップしていないにもかかわらずオーバラッ
プしていると検出される場合があり、バイブライン方式
の利点を損うとい5問題があった。例えば、メモリのア
クセス中が8バイトの計算機では、先行のストア系命令
がメモリ上のある8バイト境界内の前半4バイトを変更
し、後続のフェッチ系命令が上記8バイト境界内の後半
4バイトを読出すような場合、実際にはオーバジップし
ていないにもかかわらすオーバラップを検出していた。
このようなオーバラップを検出すると、先行のストア系
命令によるメモリへのストアが終了するまで後続のフェ
ッチ系命令によるメモリからの読出しが遅らせられる為
、パイプラインが有効に働かな(なり性能が低下する。
〔発明の目的〕
本発明の目的は、上記従来の問題点を解決するため、メ
モリのアクセス中以下の単位でオーバラップを検出する
方式を提供することにある。
〔発明の概要〕
本発明の特徴は、ストアアドレスと7エツチアドレスに
加えて、ストアマークと7エツチデータ長及びメモリの
アクセス中以下のアドレスを指定するのに必要なフェッ
チアドレスを用いることにより、メモリのアクセス中以
下の単位でオーバラップを検出することを可能とするも
のである。
〔発明の実施例〕
菖1図に本発明の一実施例のブロック図を示す。
本実施例では、メモリは32ビツト構成(0ビツト目が
最高位、31ビツト目が最下位)のアドレス情報でバイ
ト単位にアドレス付けされ、しかも、該メモリのページ
サイズは4にバイト、メモリのアクセス中は8バイト、
オーバラップ検出単位は4バイトと仮定している。
第1図において、1はストアデータのアドレスが格納さ
れるストアアドレスレジスタであり、そ(7)2fJ〜
アヒット位置で8バイトのアクセス中のページ内アドレ
スが指示される。2は8ビツト構成  。
のマークレジスタであり、8バイトのアクセス中の各バ
イト単位にストアデータの存在/不存在な示すストアマ
ークが格納される。即ち、該マークレジスタ2の各ビッ
トはアクセス巾8バイトの各バイト位置に対応し、それ
が1”であれば該当バイト位置にはストアデータが存在
し、′0”であれば該当バイト位置にはストアデータが
存在しないことを示す。3はフェッチデータの先頭アド
レスが格納されるフェッチアドレスレジスタであり、そ
の加〜四ビット位置で8バイトのアクセス中のページ内
アドレスが指示され、29〜31ピット位置で8バイト
内アドレスが指示される。4は8バイト境界内のフェッ
チデータ長を指示するレジスタであり、ここでは3ビツ
トでもって1〜8バイトのデータ長を指示するとしてい
る。例えば、該レジスタ4が1000”であると、フェ
ッチデータ長は1バイトであり、′111”であると、
フェッチデータ長は8バイトである。
5は一致検出回路であり、メモリのアクセス中である8
バイトを単位としてストアアドレスとフェッチアドレス
の一致性を検出するものである。
6は4バイト・クロス検出回路であり、フェッチすべき
データが4バイト境界をクロスして存在するかどうかを
検出するものである。7と8はそれぞれマークレジスタ
200〜3ビツト、4〜7ビツトの論理和をとるOR回
路である。9はフェッチアドレスレジスタ30ピツト2
9の値を反転するNOT回路り・・10は4バイト・ク
ロス検出回路6とNOT回路9の出力の論理積をとるA
ND回路、11ハフエツチアドレスレジスタ3のビット
四とAND回路回路l用力との論理和なとるOR回路で
ある。
12はOR回路7とNOT回路9の出力の論理状をとる
ANI)回路、13はOR回路8とOR回路11の出力
の論理積なとるAND回路、14はAND回路12と1
3の出力の論理和なとるOR回路、15は一致検出回路
5とOR回路14の出力の論理積をとるAND回路であ
る。
以下、第1図の実施例の動作を説明する。今、メモリに
ストアを行うストア系命令が発せられてストアアドレス
レジスタIKストアアドレスが、マークレジスタ2にス
トアマークが格納されると共に、該ストア系命令に続い
てメモリからデータをに出す7エツチ系命令が発せられ
て、フェッチアドレスレジスタ3に先頭フェッチアドレ
スが、フェッチデータ長レジスタ4にフェッチデータ・
バイト長が格納されたとする。一致検出回路5は、該ス
トアアドレスレジスタ1とフェッチアドレス鮎紛 加〜四ビット位置を比較し、一致していれば′1”、一
致していなければ′0”を出力する。
一致検出回路5の出力が′0”の場合、ストアとフェッ
チのメモリ上のオペランドはメモリ上の8バイト境界内
(メモリのアクセスlj単位)でオーバラップしていな
いことを意味し、パイプライン制御がそのまま有効に働
いて、先行のストア系命令と後続の7エツチ系命令は並
行に処理される。
一方、一致検出回路5の出力が“1″の場合は、ストア
とフェッチが少くともメモリの8バイト境界内でオーバ
ラップし【いることを意味している。
この場合、従来はオーバラップ成立と見做し、先行のス
トア系命令によるメモリへのδドアが完了するまで、後
続のフェッチ系命令によるメモリからの読出しを遅らせ
ていたのである。これに対し、E81図においては、メ
モリの8バイト境界内を前半4バイトと後半4バイトに
分けて、各々の領域でオーバラップしているかどうかh
lべ、これらの領域でオーバラップしていなければ、た
とえ8バイト境界内でのオーバ2ツブが検出されてもオ
ーバラップ不成立とするのである。以下、これについて
詳述する。
はじめ、メモリへの有効ストアデータが8バイト境界内
の前半4バイトにのみあるケースについて説明する。
この場合、OR回路7の出力が11”で、OR回路8の
出力は10″である。この時、フェッチアドレスが同じ
く8バイト境界内の前半4バイト中の任意バイトを指定
していれば、フェッチアドレスレジスタ3のビット29
は0”で、これがNOT回路9で反転されてAND回路
12で論理積がとられ、O11回路14経由でAND回
路15の出力はt′1#となり、オーバラップ成立が検
出される。
第2図0)はこのケースを示したものである。
一方、7エツチアドレスが8バイト境界内の後半4バイ
ト中の任意バイトを指定していれば、フェッチアドレス
レジスタ3のビット四は61″で、AND回路12の論
理811件は成立せず、又、OR回路8の出力が60#
であるためAND回路13の論理積条件も不成立である
。従って、8バイト境界内でのオーバラップが検出され
て一致検出回路5の出力が61”であっても、AND回
路15の出力は′0″であり、オーバラップ不成立とし
て処理される。第2図(ロ)はこのケースを示したもの
である。
次に、メモリへの有効ストアデータが8バイト境界内の
後半4バイトにのみあるケースについて説明する。
この場合、OR回路7の出力は′″0#で、0几回路8
の出力が′″1#である。この時、7エツチアドレスが
同じく8バイト境界内の後半4バイト中の任意バイトを
指定していれば、フェッチアドレスレジスタ30ビツト
四は”1sで、これがOR回路11経出でAND回路1
30入力となるため、AND回路13で論理積がとられ
、AND回路15よ一すオーバラツプ成立が検出される
。第3図(イ)はこのケースである。
一方、フェッチアドレスが8バイト境界内の前半4バイ
ト中の任意バイトを指定し【いれば、フェッチアドレス
レジスタ30ビツト四は60″である。この場合、フェ
ッチデータ長が8バイト境界内の4バイト境界をクロス
しているか否か調べ、クキスしていればオーバラップ成
立、クロスしていなければオーバラップ不成立とする必
要がある。
これを行うのが4バイト・りpス検出回路6である。
4バイト、クロス検出回路6はフェッチアドレスレジス
タ30ビツト30 、31の値とレジスタ4の7エツチ
データ長を入力し、両者の間に第4図(インに示す論理
条件が成立すると4バイト・クロス有と判定し、これ以
外のM4図(1=) 4C示す論理条件が成立すると4
バイト・クロス無と判定する。例えば、フェッチアドレ
スレジスタ30ビツトカ、31が′00#であると(な
お、ピッ)29は0”である)、フェッチアドレスの8
バイト内アドレス 。
は0バイト目を指している。従って、この場合は、フェ
ッチデータ長が5バイト以上(レジスタ4の値は″’i
oo’″以上)であると4バイト・クロス有、フェッチ
データ長が4バイト以下(レジスタの値は″’011’
以下)であると4バイト・クロス無となる。フェッチア
ドレスレジスタ3のピッ)30.31が′01#であ−
ると、8バイト内アドレスは1バイト目を指し、この場
合は、フェッチデータ長が4バイト以上(レジスタ4の
値は1″o11#以上)で4バイト・クロス有、3バイ
ト以下(レジスタ4の値は’010”以下)で4バイト
・クロス無となる。フェッチアドレスレジスタ3のピッ
) 30 、31が610#の場合は、8バイト内アド
レスは2バイト目を指し、フェッチデータ長が3バイト
以上(レジスタ4の値は’oio”以上)で4バイト・
クロス有、2バイト以下(レジ、  スタ4の値は60
01”以下)で4バイト・クロス無となる。フェッチア
ドレスレジスタ3のピッ)30.31が′11#の場合
は、8バイト内アドレスは3バイト目を指しており、7
エツチデータ長が2バイト以上(レジスタ4の値は00
1”以上)で4バイト・クロス有、1バイトだけ(レジ
スタ4の値は@000 ” )について4バイト・クロ
ス無となる。
このようにして、4バイト・クロス検出回路6は4バイ
ト・クロス有を検出すると61”を出力し、4バイト・
クロス無を検出すると′0#を出カスる。今、フェッチ
アドレスレジスタ3のビット29は°10”であるため
、4バイト・クロス検出回路6から°゛1″が出力され
ると、AND回路10で論理状がとられる。メモリへの
有効ストアデータは8バイト境界内の後半4バイトにあ
ると仮定しているので、OR回路8の出力は′1#であ
り、AND回路10で論理積がとられると、AND回路
13での論理状が成立し、OR回路14経由でAND回
路15の出力が@l”となり、オーバラップ成立が検出
される。t43図に)はこのケースを示したもので、7
エツチアドレスの8バイト内のアドレスは1バイト目を
指しく7エツチアドレスレジスタ  □3のビット刃、
31が@O1”)、フェッチデータ長は5バイト(レジ
スタ4の1+tiは”ioo”)とした例である。
一方、4バイト・りiス検出回路Gから@0”が出力さ
れると、AND回路10で論理積が成文せス、又、フェ
ッチアドレスレジスタ30ビツト29は′θ′であるた
め、OR回路11の出力は60”である。従って、AN
D回m13での論理積は成立しない。又、メモリへの有
効ストアデータは8バイト境界内の後半4バー1 )に
あると仮定しているので、OR回路7の出力はパ0”で
あり、AND回路12での論理積も不成立である。この
結果、AND回路15の出力は60”となり、8バイト
境界内でのオーバラップが検出され【一致検出回路5が
t′1″を出力しても、オーバラップ不成立として処理
される。第3図(ハ)はこのケースをボしたもので、フ
ェッチアドレスの8バイト内アドレスは1バイト目を指
し、フェッチデータ長は3バイト(レジスタ4の値は′
010”)とした例である。
以上、第1図の実施例ではメそりのアクセス巾を8バイ
トとしたが、勿論、本発明はこれに限定されるものでな
いことは云うまでもない。又、実施例では、ストアと7
エツチのオーバラップ検出単位を4バイトとしたが、こ
れも−例にすぎず、メモリのアクセス中以下であればよ
い。
〔発明の効果〕
以上の税引から明らかな如く、本発明によれば、先行ス
トア系命令と後続フェッチ系命令の指定したメモリ上の
オペランドがオーバラップしていることをメモリのアク
セス中以下の単位で検出するので、従来のように実際に
はオーバラップしていないのにオーバラップしていると
見做される割合かはとんとなくなり、パイプラインの有
効利用がもたらされる。
【図面の簡単な説明】
第1図は本発明の一実施例を示すブロック図、第2図及
び第3図はストアとフェッチのメモリのアクセス「IJ
以下でのオーバラップ存在/不存在の一例を示す図、第
4図はフェッチデータの4バイト・クロス有無の条件を
示す図である。 1・・・ストアアドレスレジスタ、  2・・・マーク
レジスタ、  3・・・フェッチアドレスレジスタ、4
°°°フエツチデータ長レジスタ、  5・・・メモリ
アクセスrlJ一致検出回路、  6・・・4ノ(イト
・クロス検出回路。 代理人弁理士  鈴 木   w、i

Claims (1)

    【特許請求の範囲】
  1. (1)複数の命令を並列に処理するパイプライン制御の
    電子計算機において、メモリにデータをストアするスト
    ア系命令の後にメモリからデータを読出すフェッチ系命
    令が続く場合、先行のストア系命令のストアアドレスと
    後続の7エツチ系命令のフェッチアドレスを比較してメ
    モリ上のオペランドがアクセスIJ単位でオーバラップ
    しているか否か判定すると共に、有効ストアデータの存
    在/不存在を示すストアマークとフェッチアドレスのア
    クセス中単位内アドレス及びフェッチデータ長によりメ
    モリのアクセス巾の領域内でオーバラップしているか否
    か判定し、前記アクセスl】単位でオーバラップしてい
    ても、該アクセス巾の領域内ではオーバラップしていな
    い場合、ストアとフェッチのメモリ上のオペランドはオ
    ーバラップなしとすることを特徴とするメモリアクセス
    ・オーバラップ検出方式。
JP58105528A 1983-06-13 1983-06-13 メモリアクセス・オ−バラツプ検出方式 Pending JPS59231652A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP58105528A JPS59231652A (ja) 1983-06-13 1983-06-13 メモリアクセス・オ−バラツプ検出方式
US06/618,257 US4670836A (en) 1983-06-13 1984-06-07 Device for detecting an overlap of operands to be accessed
DE3421737A DE3421737C2 (de) 1983-06-13 1984-06-12 Vorrichtung zur Ermittlung einer Überlappung von Operanden

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58105528A JPS59231652A (ja) 1983-06-13 1983-06-13 メモリアクセス・オ−バラツプ検出方式

Publications (1)

Publication Number Publication Date
JPS59231652A true JPS59231652A (ja) 1984-12-26

Family

ID=14410085

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58105528A Pending JPS59231652A (ja) 1983-06-13 1983-06-13 メモリアクセス・オ−バラツプ検出方式

Country Status (3)

Country Link
US (1) US4670836A (ja)
JP (1) JPS59231652A (ja)
DE (1) DE3421737C2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6255736A (ja) * 1985-08-30 1987-03-11 アドバンスト・マイクロ・デイバイシズ・インコ−ポレ−テツド デジタルプロセッサ制御装置
JPS6297037A (ja) * 1985-10-23 1987-05-06 Fujitsu Ltd アドレス・オ−バラツプ・チエツク処理方式
JPS63311438A (ja) * 1987-06-12 1988-12-20 Fujitsu Ltd ストア命令不一致制御回路
JPH0298733A (ja) * 1988-10-06 1990-04-11 Nec Corp 情報処理装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6275860A (ja) * 1985-09-30 1987-04-07 Toshiba Corp デ−タ転送制御装置
JP2667849B2 (ja) * 1988-01-06 1997-10-27 株式会社日立製作所 情報処理装置
US5019967A (en) * 1988-07-20 1991-05-28 Digital Equipment Corporation Pipeline bubble compression in a computer system
JPH0774994B2 (ja) * 1988-09-21 1995-08-09 株式会社日立製作所 バッファ記憶制御装置のosc検出方式
JP2504156B2 (ja) * 1989-01-25 1996-06-05 日本電気株式会社 情報処理装置
US5193167A (en) * 1990-06-29 1993-03-09 Digital Equipment Corporation Ensuring data integrity by locked-load and conditional-store operations in a multiprocessor system
EP0550289A3 (en) * 1992-01-02 1993-11-10 Amdahl Corp A mechanism to detect stores into the instruction stream
US5692151A (en) * 1994-11-14 1997-11-25 International Business Machines Corporation High performance/low cost access hazard detection in pipelined cache controller using comparators with a width shorter than and independent of total width of memory address
US5784586A (en) * 1995-02-14 1998-07-21 Fujitsu Limited Addressing method for executing load instructions out of order with respect to store instructions
US6070238A (en) * 1997-09-11 2000-05-30 International Business Machines Corporation Method and apparatus for detecting overlap condition between a storage instruction and previously executed storage reference instruction

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5115699A (ja) * 1974-01-18 1976-02-07 Reynolds Tobacco Co R
JPS522139A (en) * 1975-06-24 1977-01-08 Hitachi Ltd Information processing apparatus
JPS57185545A (en) * 1981-05-11 1982-11-15 Hitachi Ltd Information processor

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3728692A (en) * 1971-08-31 1973-04-17 Ibm Instruction selection in a two-program counter instruction unit
US4085450A (en) * 1976-12-29 1978-04-18 Burroughs Corporation Performance invarient execution unit for non-communicative instructions
JPS5466048A (en) * 1977-11-07 1979-05-28 Hitachi Ltd Information processor
JPS5621240A (en) * 1979-07-27 1981-02-27 Hitachi Ltd Information processor
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5115699A (ja) * 1974-01-18 1976-02-07 Reynolds Tobacco Co R
JPS522139A (en) * 1975-06-24 1977-01-08 Hitachi Ltd Information processing apparatus
JPS57185545A (en) * 1981-05-11 1982-11-15 Hitachi Ltd Information processor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6255736A (ja) * 1985-08-30 1987-03-11 アドバンスト・マイクロ・デイバイシズ・インコ−ポレ−テツド デジタルプロセッサ制御装置
JPS6297037A (ja) * 1985-10-23 1987-05-06 Fujitsu Ltd アドレス・オ−バラツプ・チエツク処理方式
JPS63311438A (ja) * 1987-06-12 1988-12-20 Fujitsu Ltd ストア命令不一致制御回路
JPH0298733A (ja) * 1988-10-06 1990-04-11 Nec Corp 情報処理装置

Also Published As

Publication number Publication date
US4670836A (en) 1987-06-02
DE3421737C2 (de) 1986-11-06
DE3421737A1 (de) 1984-12-13

Similar Documents

Publication Publication Date Title
US4970641A (en) Exception handling in a pipelined microprocessor
US11663006B2 (en) Hardware apparatuses and methods to switch shadow stack pointers
JPH0552968B2 (ja)
JPH0242569A (ja) ベクター処理システムに用いる文脈スイッチング方法及び装置
JPS59231652A (ja) メモリアクセス・オ−バラツプ検出方式
JP2773471B2 (ja) 情報処理装置
US6477635B1 (en) Data processing system including load/store unit having a real address tag array and method for correcting effective address aliasing
US7100029B2 (en) Performing repeat string operations
JPS5938677B2 (ja) 制御ワ−ド転送制御装置
JPS601655B2 (ja) デ−タプリフェツチ方式
JP2783285B2 (ja) 情報処理装置
JPS60195661A (ja) デ−タ処理システム
US20240111537A1 (en) Store instruction merging with pattern detection
JPH0351012B2 (ja)
JP2824484B2 (ja) パイプライン処理計算機
JPH0552539B2 (ja)
JPH0368034A (ja) チェックポイント再試行方式
JPS59172044A (ja) 命令制御方式
JPS61194566A (ja) ベクトルデ−タ参照制御方式
JPH0540629A (ja) 情報処理装置
JPS6010336B2 (ja) アドレス比較方式
JPH028333B2 (ja)
JPH0740226B2 (ja) 分岐命令制御方式
JPH03164945A (ja) データ処理装置
JPH031232A (ja) 情報処理装置