JPH02289013A - 複数メモリーリクエストのオーダおよびキューイング方法および装置 - Google Patents
複数メモリーリクエストのオーダおよびキューイング方法および装置Info
- Publication number
- JPH02289013A JPH02289013A JP2024310A JP2431090A JPH02289013A JP H02289013 A JPH02289013 A JP H02289013A JP 2024310 A JP2024310 A JP 2024310A JP 2431090 A JP2431090 A JP 2431090A JP H02289013 A JPH02289013 A JP H02289013A
- Authority
- JP
- Japan
- Prior art keywords
- address
- cache
- memory
- physical
- stored
- 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
Links
- 238000000034 method Methods 0.000 title claims description 19
- 238000013519 translation Methods 0.000 claims abstract description 70
- 239000000872 buffer Substances 0.000 claims abstract description 65
- 230000004044 response Effects 0.000 claims abstract description 15
- 238000001514 detection method Methods 0.000 claims abstract description 3
- 238000012545 processing Methods 0.000 claims description 27
- 238000012913 prioritisation Methods 0.000 claims description 9
- 238000012546 transfer Methods 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims 1
- 239000011159 matrix material Substances 0.000 claims 1
- 238000006243 chemical reaction Methods 0.000 abstract 1
- 230000014616 translation Effects 0.000 description 60
- 230000009471 action Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000006854 communication Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 241001527902 Aratus Species 0.000 description 1
- 240000002329 Inga feuillei Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Memory System (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、これと同時に出願された次のような米国特許
出願に開示されているコンピュータシステムの幾つかの
特徴を有するものである。エバンス氏等の「デジタルコ
ンピュータのシステム制御ユニットとシステム処理ユニ
ットとの間のインターフェイス (AN INTII!
RFACB BET−EVEN A SYSTEMCO
NTROL UNIT AND A SYST
EM PROCESSrNG UNIT OF八
へIGITAL COMPUTER) J ; 7−
/ ルド氏等ノ[マイクロプロセッサシステムのシステ
ム制御ユニットと中央処理ユニットとをインターフェイ
スする方法及び装置(METIIOD AND APP
ARATUS FORINTER−FACING A
5YSTI!M C0NTR0L UNIT
FORA MULTIPROC1l!5SORSY
STEM WITHTHE (F!NTRAL PRO
CESSINGUNITS)J ;ガグリアード氏等の
1マルチプロセツサシステムのシステム制御ユニットを
システムメインメモリとインターフェイスするための方
法及び手段(METIIOD AND MEANS F
ORINTF!RPACING ASYSTEM C0
NTR0L UNIT FORA MULTIPROC
[!SSORSYSTEM匈IT)I TIIE SY
STEM MAIN MEMORY)J 、 D、フィ
ツト氏等の[パイプライン式コンピュータシステムにお
いて考えられる種々の数のメモリアクセス競合を分析す
る方法と装置(METIIOD AND AP−PAR
ATUS FORRESOLVING A VA
RIABLE NUMBII!R0FPOTENTI
AL ME!MORY ACCt!SS C0NPLI
CTS IN A PIPH−LINED COMPU
TER5YST聞)J ; D、フィツト氏等の[可変
長さの命令アーキテクチャにおいて多数の指定子をデコ
ードする方法(DHCODING MULTIPLES
PECIFIERS IN A VARIABLE L
ENGTII lN5TRLICTIONARCHIT
ECTLIRE);J ;D、 7 イツト氏等の「仮
想命令キャッシュリフィルアルゴリズム(VARTUA
LINSTRUCTION CAC)IE REFIL
L ALGO1?ITIIM)J ;マーレイ氏等の「
同じ命令内でのレジスタ及びレジスタ変更指定子のパイ
プライン処理(PIPELINEPROCESSING
OF REGISTERAND REGIST
ERMODIFY−ING 5PECIFIERS W
ITI(IN THESAME lN5TR[ICTl
0N)J ;マーレイ氏等の「デジタルコンピュータ用
のデータ依存性分析を行なう多命令予備処理システム(
M[ILTIPLE lN5TRIJCTION PI
?EPROCESSING SYSTEM匈ITHDA
TA DEPENDENCY RESOLUTIO
N FORDIGITALCOMPUTER) J
;D、フィツト氏等の[パイプラインプロセッサにおい
て暗示された指定子を予め処理する方法(PRE−PR
OCESSING IMPLIED 5PECIFIE
RSIN A PIPELINED PROCt!5S
OR)) ; D、フィツト氏等の「ブランチ予想(B
RANCII PREDICTION)J ; フォラ
サム氏等の「デジタルコンピュータのパイプライン式フ
ローティングポイント加算器(PIPELINE!D
FLOATING POINT ADDERFO
RDITIGAL COMPUTER)J ;グラン
ドマン氏等の「自己計時式レジスタファイル(SRLP
TIMED REGISTERFILE)J ;ベベ
ン氏等の[パイプライン式コンピュータシステムにおい
てエラーを検出して修正する方法及び装置(METII
OD AN口^PPARATtlS FORDll!T
ECTING ANDCORRECTING ERRO
S IN A PIPELINED COMPUTER
5YSTEM)J ; フリン氏等の「マルチプロセッ
サシステムにおいてシステム制御ユニットを用いて通信
要求を仲裁する方法及び装置(METIIOD AND
MEANSFORARBITRATING COM
MUNICATION RfiQUESTS US
INGA 5YST聞C0NTR0L UNIT IN
A MULTI−PROCBSSOR5YSTEM)
J ; E、フィツト氏等の「マイクロコード化実行ユ
ニットにおいて並列動作で多機能ユニットを制御する方
法(cONTROL OF MULTIPLE! FU
NCTIONUNITS WITHPARALLEL
0PERATION IN A MICROCODED
lliXECURION UNIT)J ; ウェブ二
世氏等の「仮想メモリシステムをベースとするデジタル
コンピュータの命令パイプライン内において予めフェフ
チした命令でメモリアクセス例外を処理する方法(PR
O−CERSSING OF MEMORY ACCE
SS EXCEPTIONS圓ITHPRE−FETC
HtiD lN5TRUCTIONS賀ITHIN T
IIHlN5TRUCTION PIPELINE O
F A VIRTUAL MEMORY SYSTEM
BASED DIGITAL COMPUTER)J
; ヘザリントン氏等の[エラー修正機能を有するライ
トバックバッツァ (WRITE BACK B
UFFER讐ITHERRORC0RRECTINGC
APABILITIES)J ; フリン氏等の「マル
チプロセッサシステムにおいてシステム制御ユニットを
用いて通信要求を仲裁する方法及び手段(METHOD
AND ME!ANS FORARBITRATI
NG COMMUNICATIONRE!QUEST
S USING A SYSTBM C0NT
R0L UNIT IN AMIJLTI−PR
OCI!5SORSYSTEM)J ;チナスウェイ氏
等の[マルチプロセッサシステムにおいてシステムユニ
ット間でデータトランザクションを行なうモジュール式
クロスバ−相互接続ネットワーク(MODULARCR
O5SBARINTE!RCONNECTION NE
T140RKFORDATA TRANSACTION
S BETWE[IN SYSTEM tlNITsI
N A MULTI−PROCt!5SORSYSTE
M)J ;ポルジン氏等の「入力/出カニニットとマル
チプロセッサシステムのシステム制御ユニットとをイン
ターフェイスする方法及び装置(METHOD AND
APPARATUS FORINTERFACING
A SYSTEM C0NTR0L tlN
IT FORAMtlLTI−PROCESSORS
YSTEM WIT)l INPUTloUTPtlT
UNITS)J ;ガグリアード氏等の[マルチプロセ
ッサシステムのシステム制御ユニットとシステムメイン
メモリとをインターフェイスする手段を用いるメモリ構
成(MEMORY C0NFIGtlRATION F
ORUSEWITHM[EANS FORINTERP
ACING A SYSTEM C0NTR0LUNI
T FORA MULTI−PROCESSORSYS
TEM WITI(THESYSTEM MAIN M
EMORY)J ;そしてガグリアード氏等の[システ
ムモジュール間のDRAM制御信号のエラーチエツクの
ための方法及び手段(METIIOD ANDMEAN
S FORERRORCHEIJING OF
OR八へ−CONTROLSIGNALS B[!TW
EEN SYSTEM MODULES)J 。
出願に開示されているコンピュータシステムの幾つかの
特徴を有するものである。エバンス氏等の「デジタルコ
ンピュータのシステム制御ユニットとシステム処理ユニ
ットとの間のインターフェイス (AN INTII!
RFACB BET−EVEN A SYSTEMCO
NTROL UNIT AND A SYST
EM PROCESSrNG UNIT OF八
へIGITAL COMPUTER) J ; 7−
/ ルド氏等ノ[マイクロプロセッサシステムのシステ
ム制御ユニットと中央処理ユニットとをインターフェイ
スする方法及び装置(METIIOD AND APP
ARATUS FORINTER−FACING A
5YSTI!M C0NTR0L UNIT
FORA MULTIPROC1l!5SORSY
STEM WITHTHE (F!NTRAL PRO
CESSINGUNITS)J ;ガグリアード氏等の
1マルチプロセツサシステムのシステム制御ユニットを
システムメインメモリとインターフェイスするための方
法及び手段(METIIOD AND MEANS F
ORINTF!RPACING ASYSTEM C0
NTR0L UNIT FORA MULTIPROC
[!SSORSYSTEM匈IT)I TIIE SY
STEM MAIN MEMORY)J 、 D、フィ
ツト氏等の[パイプライン式コンピュータシステムにお
いて考えられる種々の数のメモリアクセス競合を分析す
る方法と装置(METIIOD AND AP−PAR
ATUS FORRESOLVING A VA
RIABLE NUMBII!R0FPOTENTI
AL ME!MORY ACCt!SS C0NPLI
CTS IN A PIPH−LINED COMPU
TER5YST聞)J ; D、フィツト氏等の[可変
長さの命令アーキテクチャにおいて多数の指定子をデコ
ードする方法(DHCODING MULTIPLES
PECIFIERS IN A VARIABLE L
ENGTII lN5TRLICTIONARCHIT
ECTLIRE);J ;D、 7 イツト氏等の「仮
想命令キャッシュリフィルアルゴリズム(VARTUA
LINSTRUCTION CAC)IE REFIL
L ALGO1?ITIIM)J ;マーレイ氏等の「
同じ命令内でのレジスタ及びレジスタ変更指定子のパイ
プライン処理(PIPELINEPROCESSING
OF REGISTERAND REGIST
ERMODIFY−ING 5PECIFIERS W
ITI(IN THESAME lN5TR[ICTl
0N)J ;マーレイ氏等の「デジタルコンピュータ用
のデータ依存性分析を行なう多命令予備処理システム(
M[ILTIPLE lN5TRIJCTION PI
?EPROCESSING SYSTEM匈ITHDA
TA DEPENDENCY RESOLUTIO
N FORDIGITALCOMPUTER) J
;D、フィツト氏等の[パイプラインプロセッサにおい
て暗示された指定子を予め処理する方法(PRE−PR
OCESSING IMPLIED 5PECIFIE
RSIN A PIPELINED PROCt!5S
OR)) ; D、フィツト氏等の「ブランチ予想(B
RANCII PREDICTION)J ; フォラ
サム氏等の「デジタルコンピュータのパイプライン式フ
ローティングポイント加算器(PIPELINE!D
FLOATING POINT ADDERFO
RDITIGAL COMPUTER)J ;グラン
ドマン氏等の「自己計時式レジスタファイル(SRLP
TIMED REGISTERFILE)J ;ベベ
ン氏等の[パイプライン式コンピュータシステムにおい
てエラーを検出して修正する方法及び装置(METII
OD AN口^PPARATtlS FORDll!T
ECTING ANDCORRECTING ERRO
S IN A PIPELINED COMPUTER
5YSTEM)J ; フリン氏等の「マルチプロセッ
サシステムにおいてシステム制御ユニットを用いて通信
要求を仲裁する方法及び装置(METIIOD AND
MEANSFORARBITRATING COM
MUNICATION RfiQUESTS US
INGA 5YST聞C0NTR0L UNIT IN
A MULTI−PROCBSSOR5YSTEM)
J ; E、フィツト氏等の「マイクロコード化実行ユ
ニットにおいて並列動作で多機能ユニットを制御する方
法(cONTROL OF MULTIPLE! FU
NCTIONUNITS WITHPARALLEL
0PERATION IN A MICROCODED
lliXECURION UNIT)J ; ウェブ二
世氏等の「仮想メモリシステムをベースとするデジタル
コンピュータの命令パイプライン内において予めフェフ
チした命令でメモリアクセス例外を処理する方法(PR
O−CERSSING OF MEMORY ACCE
SS EXCEPTIONS圓ITHPRE−FETC
HtiD lN5TRUCTIONS賀ITHIN T
IIHlN5TRUCTION PIPELINE O
F A VIRTUAL MEMORY SYSTEM
BASED DIGITAL COMPUTER)J
; ヘザリントン氏等の[エラー修正機能を有するライ
トバックバッツァ (WRITE BACK B
UFFER讐ITHERRORC0RRECTINGC
APABILITIES)J ; フリン氏等の「マル
チプロセッサシステムにおいてシステム制御ユニットを
用いて通信要求を仲裁する方法及び手段(METHOD
AND ME!ANS FORARBITRATI
NG COMMUNICATIONRE!QUEST
S USING A SYSTBM C0NT
R0L UNIT IN AMIJLTI−PR
OCI!5SORSYSTEM)J ;チナスウェイ氏
等の[マルチプロセッサシステムにおいてシステムユニ
ット間でデータトランザクションを行なうモジュール式
クロスバ−相互接続ネットワーク(MODULARCR
O5SBARINTE!RCONNECTION NE
T140RKFORDATA TRANSACTION
S BETWE[IN SYSTEM tlNITsI
N A MULTI−PROCt!5SORSYSTE
M)J ;ポルジン氏等の「入力/出カニニットとマル
チプロセッサシステムのシステム制御ユニットとをイン
ターフェイスする方法及び装置(METHOD AND
APPARATUS FORINTERFACING
A SYSTEM C0NTR0L tlN
IT FORAMtlLTI−PROCESSORS
YSTEM WIT)l INPUTloUTPtlT
UNITS)J ;ガグリアード氏等の[マルチプロセ
ッサシステムのシステム制御ユニットとシステムメイン
メモリとをインターフェイスする手段を用いるメモリ構
成(MEMORY C0NFIGtlRATION F
ORUSEWITHM[EANS FORINTERP
ACING A SYSTEM C0NTR0LUNI
T FORA MULTI−PROCESSORSYS
TEM WITI(THESYSTEM MAIN M
EMORY)J ;そしてガグリアード氏等の[システ
ムモジュール間のDRAM制御信号のエラーチエツクの
ための方法及び手段(METIIOD ANDMEAN
S FORERRORCHEIJING OF
OR八へ−CONTROLSIGNALS B[!TW
EEN SYSTEM MODULES)J 。
本発明は、−船釣に、複数ボートからのメモリ・リクエ
ストを制御しプライオリタイジング(優先処理)する装
置に関するもので、特に、複数のリクエストボートに有
し、パイプラインのステージの間のバラレリズム(並行
性)を最大とし且つその間のコンフリクトを最小として
パイプラインの実行に適した装置に関するものである。
ストを制御しプライオリタイジング(優先処理)する装
置に関するもので、特に、複数のリクエストボートに有
し、パイプラインのステージの間のバラレリズム(並行
性)を最大とし且つその間のコンフリクトを最小として
パイプラインの実行に適した装置に関するものである。
(従来の技術)
簡単なコンピュータシステムは、典型的には、単一の点
のみから順次にメモリにアクセスするようになっている
。通常、実行ユニットは、データが実際に必要な時に、
すべてのメモリ・アクセス作用を開始する。例えば、C
PUが1つの命令の実行を完了し、次の命令の実行準備
状態の時にのみ、その次の命令がメイン・メモリから取
り出される。また、現在実行されている命令が、メモリ
読取動作を行なうことを必要とする場合、実行ユニット
がオペランド処理ユニット(OP U)を働かせること
を命令するまで、その読取操作を開始し所望のオペラン
ドで検索するためにOPUは何もしない。またOPUが
CPUの指示でその単一作用を一旦開始すると、これは
、現在の命令が完全に実行され次の命令が検索されるま
で、単にアイドル状態となったままである。従って、デ
ータが実際に必要とされるまで、データのリクエストを
待つことによって、リクエストされたデータがメモリか
らもどされるまで、実行ユニットは単に待つだけで、何
もしてはならない。
のみから順次にメモリにアクセスするようになっている
。通常、実行ユニットは、データが実際に必要な時に、
すべてのメモリ・アクセス作用を開始する。例えば、C
PUが1つの命令の実行を完了し、次の命令の実行準備
状態の時にのみ、その次の命令がメイン・メモリから取
り出される。また、現在実行されている命令が、メモリ
読取動作を行なうことを必要とする場合、実行ユニット
がオペランド処理ユニット(OP U)を働かせること
を命令するまで、その読取操作を開始し所望のオペラン
ドで検索するためにOPUは何もしない。またOPUが
CPUの指示でその単一作用を一旦開始すると、これは
、現在の命令が完全に実行され次の命令が検索されるま
で、単にアイドル状態となったままである。従って、デ
ータが実際に必要とされるまで、データのリクエストを
待つことによって、リクエストされたデータがメモリか
らもどされるまで、実行ユニットは単に待つだけで、何
もしてはならない。
CPUの部分をもっと有効に使用するために、もう少し
複雑なコンピュータシステムは、命令のブリフェッチン
グ段を使用する。ブリフエツチャは、実行ユニットとは
独立に作用して命令を検索し、現在の命令の実行が完了
する時に、上記の命令が直ちに実行ユニットに与えられ
るようにする。
複雑なコンピュータシステムは、命令のブリフェッチン
グ段を使用する。ブリフエツチャは、実行ユニットとは
独立に作用して命令を検索し、現在の命令の実行が完了
する時に、上記の命令が直ちに実行ユニットに与えられ
るようにする。
これらのコンピュータシステムにおいては、ブリフェッ
チャは相当に簡単で低コストの装置で、コンピュータシ
ステムの動作速度を著しく改良するものである。このシ
ステムが簡単であるために、このシステムをメモリに完
全に独立にアクセスさせることができる。すなわち、実
行ユニットによって開始されるメモリ・リクエストはブ
リフエツチャによって開始されるメモリ・リクエストと
リソースを共用することはない。かくして、全くメモリ
・アクセスのコンフリクトは生じない。
チャは相当に簡単で低コストの装置で、コンピュータシ
ステムの動作速度を著しく改良するものである。このシ
ステムが簡単であるために、このシステムをメモリに完
全に独立にアクセスさせることができる。すなわち、実
行ユニットによって開始されるメモリ・リクエストはブ
リフエツチャによって開始されるメモリ・リクエストと
リソースを共用することはない。かくして、全くメモリ
・アクセスのコンフリクトは生じない。
高速のパイプライン型のコンピュータシステムの出現と
ともに、命令処理は複数の小さいステージに分割された
。ここで、各ステージは、他のステツの各々によって行
なわれる動作から実質的に独立して、各命令に対するそ
の処理を連続的に行なう、かくして、−時に1つの命令
を処理するのではなく、同時に種々の処理ステージに複
数の命令が存在する。しかし、複雑な命令セット機にお
いては、種々の目的でメモリ・レファレンスがつくられ
る。これらのメモリ・レファレンスはパイプラインの種
々異なるステージで論理的に行なわれる。かくて、パイ
プライン型コンピュータシステムにおいては、メモリ・
リクエストは複数の異なるパイプラインステージから発
生する。
ともに、命令処理は複数の小さいステージに分割された
。ここで、各ステージは、他のステツの各々によって行
なわれる動作から実質的に独立して、各命令に対するそ
の処理を連続的に行なう、かくして、−時に1つの命令
を処理するのではなく、同時に種々の処理ステージに複
数の命令が存在する。しかし、複雑な命令セット機にお
いては、種々の目的でメモリ・レファレンスがつくられ
る。これらのメモリ・レファレンスはパイプラインの種
々異なるステージで論理的に行なわれる。かくて、パイ
プライン型コンピュータシステムにおいては、メモリ・
リクエストは複数の異なるパイプラインステージから発
生する。
各パイプラインのステージに、メモリに対する完全に独
立のアクセスを許すパイプライン型のコンピュータシス
テムを構成することは極めて困難で費用がかかるであろ
う。パイプラインの各ステージ毎に複雑で高価なリソー
スがダブって設けられることとなろう。それ故、複雑で
高価なリソースをダブって設けることを制限しながら、
メモリへの独立で並行なアクセスを最大化するパイプラ
イン型コンピュータシステムをつくることが望まれる。
立のアクセスを許すパイプライン型のコンピュータシス
テムを構成することは極めて困難で費用がかかるであろ
う。パイプラインの各ステージ毎に複雑で高価なリソー
スがダブって設けられることとなろう。それ故、複雑で
高価なリソースをダブって設けることを制限しながら、
メモリへの独立で並行なアクセスを最大化するパイプラ
イン型コンピュータシステムをつくることが望まれる。
(発明の要旨)
本発明は、上述の問題の1またはそれ以上を解決しよう
とするものである。
とするものである。
本発明の主たる目的は、プライオリティ・スキームに従
ってメモリ・リクエストを多重化するパイプライン型コ
ンピュータシステムを提供することである。
ってメモリ・リクエストを多重化するパイプライン型コ
ンピュータシステムを提供することである。
本発明の他の目的は、最もクリティカルなメモリ・リク
エストを最初に取扱うが、最高のプライオリティのリク
エストが直ちに扱うことができない時には、他のもっと
クリティカルでないリクエストの処理を可能にする多重
化したプライオリタイズ(優先処理)されるメモリ・ア
クセス・スキームを提供することである。
エストを最初に取扱うが、最高のプライオリティのリク
エストが直ちに扱うことができない時には、他のもっと
クリティカルでないリクエストの処理を可能にする多重
化したプライオリタイズ(優先処理)されるメモリ・ア
クセス・スキームを提供することである。
本発明の一つの特徴によれば、パイプライン型のコンピ
ュータシステム内の複数のロケーションからの独立のメ
モリ・アクセス・リクエストを制御する装置が提供され
る。この装置は、複数の並行なロケーションにメモリ・
アクセス・リクエストの各々を一時的に記憶する手段を
有している。
ュータシステム内の複数のロケーションからの独立のメ
モリ・アクセス・リクエストを制御する装置が提供され
る。この装置は、複数の並行なロケーションにメモリ・
アクセス・リクエストの各々を一時的に記憶する手段を
有している。
第1のプライオリタイゼーション・スキームに従って、
上記の記憶されたメモリ・アクセス・リクエストにアク
セスし、記憶されたメモリ・アクセス・リクエストの中
の選択された1つを供給する第1のマルチプレクサ手段
が設けられる。記憶されたメモリ・アクセス・リクエス
トの中の選択された1つを受取り、選択されたリクエス
トをフィジカル・メモリ・アドレスに変換し、そのフィ
ジカル・メモリ・アドレスを供給するようになっている
トランスレーション・バッファが設けられる。
上記の記憶されたメモリ・アクセス・リクエストにアク
セスし、記憶されたメモリ・アクセス・リクエストの中
の選択された1つを供給する第1のマルチプレクサ手段
が設けられる。記憶されたメモリ・アクセス・リクエス
トの中の選択された1つを受取り、選択されたリクエス
トをフィジカル・メモリ・アドレスに変換し、そのフィ
ジカル・メモリ・アドレスを供給するようになっている
トランスレーション・バッファが設けられる。
この装置は、さらに、複数の並列ロケーションにフィジ
カル・アドレスの各々を一時的に記憶する手段を含む。
カル・アドレスの各々を一時的に記憶する手段を含む。
第2のプライオリティゼーション・スキームに従って、
記憶されたフィジカル・アドレスにアクセスし、記憶さ
れたフィジカル・アドレスの中の選択された1つを供給
する第2のマルチプレクサ手段が設けられる。最後に、
記憶されているフィジカル・アドレスを受取り、記憶さ
れているアドレスをキャッシュ内に現在保持されている
アドレスに比較し、ヒツトに応答して記憶されているア
ドレスに記憶されたデータにアクセスし、ミスの検出に
応答してキャッシュのレフィルを開始するようになって
いるキャッシュが設けられる。
記憶されたフィジカル・アドレスにアクセスし、記憶さ
れたフィジカル・アドレスの中の選択された1つを供給
する第2のマルチプレクサ手段が設けられる。最後に、
記憶されているフィジカル・アドレスを受取り、記憶さ
れているアドレスをキャッシュ内に現在保持されている
アドレスに比較し、ヒツトに応答して記憶されているア
ドレスに記憶されたデータにアクセスし、ミスの検出に
応答してキャッシュのレフィルを開始するようになって
いるキャッシュが設けられる。
本発明の他の目的および利点は下記の詳細な説明および
図面から理解されよう。
図面から理解されよう。
(実施例)
本発明には、種々の変型が可能であるが、例として特定
の実施例を図示し説明する。しかし、本発明をこの特定
の形態に限定しようとするものではなく、本発明は特許
請求の範囲に記載された範囲に入る総ての変型、均等物
を含むものである。
の実施例を図示し説明する。しかし、本発明をこの特定
の形態に限定しようとするものではなく、本発明は特許
請求の範囲に記載された範囲に入る総ての変型、均等物
を含むものである。
第1図はパイプライン型コンピュータシステム10の一
部分のトップレベルのブロックダイアグラムである。シ
ステムlOは、少くとも1つのセントラル・プロセシン
グ・ユニット(cP U)12を有し、これはメイン・
メモリ14にアクセスする。このようなシステムにおい
ては、メインメモリ14を共用することによって付加的
なCPuを設けることができることを理解しなければな
らない。例えば、4個までのCPUを設け、同時に動作
させ、共用されたメイン・メモリ14を通して連絡させ
ることが実際的である。
部分のトップレベルのブロックダイアグラムである。シ
ステムlOは、少くとも1つのセントラル・プロセシン
グ・ユニット(cP U)12を有し、これはメイン・
メモリ14にアクセスする。このようなシステムにおい
ては、メインメモリ14を共用することによって付加的
なCPuを設けることができることを理解しなければな
らない。例えば、4個までのCPUを設け、同時に動作
させ、共用されたメイン・メモリ14を通して連絡させ
ることが実際的である。
CPU12内で、個々の命令の実行は複数の小さいタス
クに分けられる。これらのタスクは、その目的に対して
最適化した専用の別々の独立したファンクション・ユニ
ットによって行なわれる。
クに分けられる。これらのタスクは、その目的に対して
最適化した専用の別々の独立したファンクション・ユニ
ットによって行なわれる。
各命令は最終的に異なる作用をするものであるが、各命
令が分割される小さいタスクの多くは、総ての命令にと
って共通である。−船釣に、1つの命令の実行の間に、
下記のステップが行なわれる。命令のフェッチ(取出し
)、命令のデコード、オペランドのフェッチ、実行およ
び結果の記憶。
令が分割される小さいタスクの多くは、総ての命令にと
って共通である。−船釣に、1つの命令の実行の間に、
下記のステップが行なわれる。命令のフェッチ(取出し
)、命令のデコード、オペランドのフェッチ、実行およ
び結果の記憶。
か(して、専用のハードウェア・ステージを使用するこ
とによって、ステップをオーバラップすることができ、
これによって全命令のスループットを増大できる。
とによって、ステップをオーバラップすることができ、
これによって全命令のスループットを増大できる。
パイプラインを通るデータバスは、各パイプラインステ
ージの結果を次のパイプラインステージにトランスファ
するためのレジスタのそれぞれの組を含む。これらのト
ランスファレジスタは共通のシステムクロックに応答し
てクロックされる。
ージの結果を次のパイプラインステージにトランスファ
するためのレジスタのそれぞれの組を含む。これらのト
ランスファレジスタは共通のシステムクロックに応答し
てクロックされる。
例えば、第1のクロックサイクル中には、命令フェッチ
にディジケイトされたハードウェアによって第1の命令
が取り出される。第2のクロックサイクル中には、取出
された命令がトランスファされ命令デコードハードウェ
アによってデコードされるか、同時に、次の命令が命令
フェッチハードウェアによって取出される。第3のクロ
ックサイクルにおいて、各命令はパイプラインの次のス
テ−ジにシフトされ、新しい命令がフェッチされる。
にディジケイトされたハードウェアによって第1の命令
が取り出される。第2のクロックサイクル中には、取出
された命令がトランスファされ命令デコードハードウェ
アによってデコードされるか、同時に、次の命令が命令
フェッチハードウェアによって取出される。第3のクロ
ックサイクルにおいて、各命令はパイプラインの次のス
テ−ジにシフトされ、新しい命令がフェッチされる。
かくして、パイプラインがフィルされた後に、各クロッ
クサイクルの終りで命令が完全に実行される。
クサイクルの終りで命令が完全に実行される。
このプロセスは製造工程におけるアッセンブリ・ライン
に類似する。各作業者は、その作業ステージを通過する
製品毎に単一のタスクを実施するようにディジケートさ
れている。各タスクが行なわれると、製品は完成に近づ
く。最終ステージで、作業者がその割当てられたタスク
を行なう毎に、完成した製品がアッセンブリ・ラインか
ら出される。
に類似する。各作業者は、その作業ステージを通過する
製品毎に単一のタスクを実施するようにディジケートさ
れている。各タスクが行なわれると、製品は完成に近づ
く。最終ステージで、作業者がその割当てられたタスク
を行なう毎に、完成した製品がアッセンブリ・ラインか
ら出される。
第1図に示すように、各CPU12は少くとも3つのフ
ァンクション・ユニットすなわち、メモリ・アクセス・
ユニット16、命令ユニット18、実行ユニット20に
分けられる。
ァンクション・ユニットすなわち、メモリ・アクセス・
ユニット16、命令ユニット18、実行ユニット20に
分けられる。
命令ユニット18は命令をブリフェッチし、オブコード
をデコードして、オペランドおよびレザルト・スペシフ
ァイアを得て、オペランドをフェッチし、プログラムカ
ウンタを更新(アップデート)する。命令ユニット18
はオペランド処理ユニット22、プログラムカウンタ2
4、命令デコーダ26を含む。プログラムカウンタ24
は命令ユニット内に保持され、従って、メモリ・アクセ
ス・ユニット16内に保持されて高速キャッシュ・メモ
リ28から正しい命令を検索できる。キャッシュ28は
メイン・メモリ14に記憶された情報の小部分のコピー
を記憶し、メモリ・アクセス・タイムを減少することに
よって処理速度を増大するのに使用される。キャッシュ
28の動作はメモリ・アクセス・ユニットエ6の説明に
関連して詳細に説明する。
をデコードして、オペランドおよびレザルト・スペシフ
ァイアを得て、オペランドをフェッチし、プログラムカ
ウンタを更新(アップデート)する。命令ユニット18
はオペランド処理ユニット22、プログラムカウンタ2
4、命令デコーダ26を含む。プログラムカウンタ24
は命令ユニット内に保持され、従って、メモリ・アクセ
ス・ユニット16内に保持されて高速キャッシュ・メモ
リ28から正しい命令を検索できる。キャッシュ28は
メイン・メモリ14に記憶された情報の小部分のコピー
を記憶し、メモリ・アクセス・タイムを減少することに
よって処理速度を増大するのに使用される。キャッシュ
28の動作はメモリ・アクセス・ユニットエ6の説明に
関連して詳細に説明する。
プログラムカウンタ24は、好ましくは、メイン・メモ
リ14およびキャッシュ28のフィジカル・メモリ・ロ
ケーションではなく、仮のメモリ・ロケーションを使用
するのがよい。かくしてプログラムカウンタ24の仮の
アドレスは、命令を検索できる前に、メイン・メモリ1
4のフィジカル・アドレスにトランスレートしなければ
ならない。
リ14およびキャッシュ28のフィジカル・メモリ・ロ
ケーションではなく、仮のメモリ・ロケーションを使用
するのがよい。かくしてプログラムカウンタ24の仮の
アドレスは、命令を検索できる前に、メイン・メモリ1
4のフィジカル・アドレスにトランスレートしなければ
ならない。
従って、プログラムカウンタ24の内容はメモリ・アク
セス・ユニット16にトランスファされ、ここで、トラ
ンスレーション・バッファ30がアドレス変換を行なう
。
セス・ユニット16にトランスファされ、ここで、トラ
ンスレーション・バッファ30がアドレス変換を行なう
。
変換されたアドレスを使用して、キャッシュ28内のフ
ィジカル・メモリ・ロケーションから命令が検索される
。キャッシュ28はデータ・リターン・ライン32で命
令を命令デコーダ26に送る。キャッシュおよびトラン
スレーション・バッファの構成および動作については、
ディジタル・エクィップメンント・コーギレーション発
行のレビイ (Levy)およびニックハウス・ジュニ
ア(Eckhouse Jr、)の「コンピュータ・プ
ログラミングおよびアーキテクチャ、The VAX−
II Jのチャプタ11に説明されている。
ィジカル・メモリ・ロケーションから命令が検索される
。キャッシュ28はデータ・リターン・ライン32で命
令を命令デコーダ26に送る。キャッシュおよびトラン
スレーション・バッファの構成および動作については、
ディジタル・エクィップメンント・コーギレーション発
行のレビイ (Levy)およびニックハウス・ジュニ
ア(Eckhouse Jr、)の「コンピュータ・プ
ログラミングおよびアーキテクチャ、The VAX−
II Jのチャプタ11に説明されている。
また、オペランド処理ユニット(OPU)22は仮のア
ドレスを生じる。特に、0PU22は、メモリーソース
(読取)および行先(書込)のオペランドに対する仮の
アドレスを生ずる。少くともメモリー読取オペランドに
対しては、0PU22はこれらの仮のアドレスをメモリ
・アクセス・ユニット16に送らなければならない。こ
のユニット16で、仮のアドレスはフィジカル・アドレ
スにトランスレートされる。次に、キャッシュ28のフ
ィジカル・メモリー・ロケーションがアクセスされて、
メモリーソース命令のためのオペランドをフェッチする
。成るメモリー行先命令に対しては、0PU22はオペ
ランドの仮想アドレスを実行ユニット28に送る。
ドレスを生じる。特に、0PU22は、メモリーソース
(読取)および行先(書込)のオペランドに対する仮の
アドレスを生ずる。少くともメモリー読取オペランドに
対しては、0PU22はこれらの仮のアドレスをメモリ
・アクセス・ユニット16に送らなければならない。こ
のユニット16で、仮のアドレスはフィジカル・アドレ
スにトランスレートされる。次に、キャッシュ28のフ
ィジカル・メモリー・ロケーションがアクセスされて、
メモリーソース命令のためのオペランドをフェッチする
。成るメモリー行先命令に対しては、0PU22はオペ
ランドの仮想アドレスを実行ユニット28に送る。
仮のアドレスは、例えば、32ビツトの2進数である。
32ビツトの仮のアドレスを送るのに加えて、0PU2
2は、オペランドが読取操作を特定するか書込操作を特
定するかを指示する3ビツトのコントロールフィールド
を送る。コントロールフィールドが、仮のアドレスが読
取オペランドに対応することを指示する場合には、キャ
ッシュ28は、アイデンティファイされたフィジカル・
メモリ・ロケーションからのデータを検索し、これをデ
ータ・リターン・ライン34で実行ユニット20に送る
。
2は、オペランドが読取操作を特定するか書込操作を特
定するかを指示する3ビツトのコントロールフィールド
を送る。コントロールフィールドが、仮のアドレスが読
取オペランドに対応することを指示する場合には、キャ
ッシュ28は、アイデンティファイされたフィジカル・
メモリ・ロケーションからのデータを検索し、これをデ
ータ・リターン・ライン34で実行ユニット20に送る
。
逆に、書込操作については、書込アドレスは、書込むべ
きデータが得られるまで蓄積される。明らかに、MOV
EまははADDのような命令に対しては、書込むべきデ
ータは命令の実行が完了してしまうまで、得られない。
きデータが得られるまで蓄積される。明らかに、MOV
EまははADDのような命令に対しては、書込むべきデ
ータは命令の実行が完了してしまうまで、得られない。
しかし、行先の仮アドレスは、命令の実行に要する時間
の間、対応するフィジカル・アドレスにトランスレート
できる。また、命令が行なわれる全レートを増大させる
ために、この時間に、0PU22が複数の命令スペシフ
ァイアをブリプロセスするのが望ましい。これらの目的
で、メモリ・アクセス・ユニット16には可変数の書込
操作のフィジカル行先アドレスを記憶するために、トラ
ンスレーション・バッファ30とキャッシュ28の中間
に「書込キュー」36が設けられる。書込キュー36は
、実行ユニット20が命令を完了し、データをメモリ・
アクセス・ユニット16に送るまでアドレスを保持する
。データは前に記憶された書込アドレスとペアとされて
、キャッシュ28にそのメモリーロケーションで書込ま
れる。
の間、対応するフィジカル・アドレスにトランスレート
できる。また、命令が行なわれる全レートを増大させる
ために、この時間に、0PU22が複数の命令スペシフ
ァイアをブリプロセスするのが望ましい。これらの目的
で、メモリ・アクセス・ユニット16には可変数の書込
操作のフィジカル行先アドレスを記憶するために、トラ
ンスレーション・バッファ30とキャッシュ28の中間
に「書込キュー」36が設けられる。書込キュー36は
、実行ユニット20が命令を完了し、データをメモリ・
アクセス・ユニット16に送るまでアドレスを保持する
。データは前に記憶された書込アドレスとペアとされて
、キャッシュ28にそのメモリーロケーションで書込ま
れる。
また、0PU22は、メモリ・オペランドではない命令
によって動作する。例えば、0PU22は、即値オペラ
ンド、ショート・リテラル・レジスタ・オペランドも処
理する。これらの型式の命令の各々において、0PU2
2はその結果を実行ユニット20に直接送る。
によって動作する。例えば、0PU22は、即値オペラ
ンド、ショート・リテラル・レジスタ・オペランドも処
理する。これらの型式の命令の各々において、0PU2
2はその結果を実行ユニット20に直接送る。
命令処理の第1のステップは、命令の「オプコード」部
分をデコードすることである。各命令の第1のセグメン
トはそのオプコードより成り、このオプコードは命令に
おいて行なわれるべき操作をスベシファイする。デコー
ディングは、命令デコード26で標準のテーブル・ルッ
ク・アップ技術を使用して行なわれる。命令デコーダは
、ルック・アップ・テーブルで命令を実行するためにマ
イクロコードスターティングアドレスをみつけ、スター
ティングアドレスを実行ユニット20に送る。その後、
実行ユニット20は、指示されたスターティングアドレ
スで始めて、プリストアされたマイクロコードを実行す
ることによって、スベシファイされた操作を行なう。ま
た、デコーダ26は、命令中でソースと行先のスペシフ
ァイが生ずるところを決定し、これらのソースおよび行
先のスペシファイアをオペランド処理ユニット22に送
って、命令の実行前にブリプロセスを行なう。
分をデコードすることである。各命令の第1のセグメン
トはそのオプコードより成り、このオプコードは命令に
おいて行なわれるべき操作をスベシファイする。デコー
ディングは、命令デコード26で標準のテーブル・ルッ
ク・アップ技術を使用して行なわれる。命令デコーダは
、ルック・アップ・テーブルで命令を実行するためにマ
イクロコードスターティングアドレスをみつけ、スター
ティングアドレスを実行ユニット20に送る。その後、
実行ユニット20は、指示されたスターティングアドレ
スで始めて、プリストアされたマイクロコードを実行す
ることによって、スベシファイされた操作を行なう。ま
た、デコーダ26は、命令中でソースと行先のスペシフ
ァイが生ずるところを決定し、これらのソースおよび行
先のスペシファイアをオペランド処理ユニット22に送
って、命令の実行前にブリプロセスを行なう。
メモリ・アクセス・ユニット16は、キャッシュ28、
書込キュー36、−組のレジスタ38、マルチプレクサ
40を含む、前述のように、キャッシュ28は、メイン
・メモリI4内に記憶された情報の小部分のコピーを記
憶するのに使用される高速メモリである。キャッシュ2
8はメイン・メモリ14よりもずっと速い速度でアクセ
スできる。それ故、その目的はメモリ・アクセス(読取
または書込)を行なうに必要な平均時間を減少すること
にある。キャッシュ28はメイン・メモリに蓄積されて
いる情報の小部分のみを記憶するので、キャッシュ28
内に含まれてないメモリにアクセスを試みようとする命
令があるであろう。キャッシュ28これらの「ミス」が
生じた時にこれを確認し、これらの場合、キヤ、ツシュ
28はメイン・メモリ14からアイデンティファイされ
たデータを検索する。もちろん、これらの「ミス」の間
、CPU12の性能は影響を受けるが、全体のメモリ・
アクセス速度は増大される。
書込キュー36、−組のレジスタ38、マルチプレクサ
40を含む、前述のように、キャッシュ28は、メイン
・メモリI4内に記憶された情報の小部分のコピーを記
憶するのに使用される高速メモリである。キャッシュ2
8はメイン・メモリ14よりもずっと速い速度でアクセ
スできる。それ故、その目的はメモリ・アクセス(読取
または書込)を行なうに必要な平均時間を減少すること
にある。キャッシュ28はメイン・メモリに蓄積されて
いる情報の小部分のみを記憶するので、キャッシュ28
内に含まれてないメモリにアクセスを試みようとする命
令があるであろう。キャッシュ28これらの「ミス」が
生じた時にこれを確認し、これらの場合、キヤ、ツシュ
28はメイン・メモリ14からアイデンティファイされ
たデータを検索する。もちろん、これらの「ミス」の間
、CPU12の性能は影響を受けるが、全体のメモリ・
アクセス速度は増大される。
トランスレーション・バッファ30は、最モ近く使用さ
れた仮アドレスからフィジカル・アドレスへのトランス
レーションを記憶する高速の連想記憶装置である。仮想
メモリ・システムにおいては、リファレンスから単一仮
想アドレスまでには所望の情報が得られるようになる前
に、数個のメモリーリファレンスを生じ得る。しかし、
トランスレーション・バッファが使用される時には、ト
ランスレーションは、トランスレーション・バッファ3
0内に単に「ヒツト」をみつけるだけとされる。トラン
スレーション・バッファ30の使用は、メイン・メモリ
14にアクセスしなければならない数を減少し、それに
より、全体のプロセッサ速度を増大する。もちろん、メ
モリ・リファレンスは、時に、トランスレーション・バ
ッファ30に記憶されているトランスレーションに「ミ
スJを生じる。「ミス」の場合には、正しい仮想アドレ
ス−フィジカル・アドレスのトランスレーションがメモ
リから検索され、トランスレーション・バッファ30に
記憶される。2回目に比較が試みられ、必らず「ヒツト
」を生じる。
れた仮アドレスからフィジカル・アドレスへのトランス
レーションを記憶する高速の連想記憶装置である。仮想
メモリ・システムにおいては、リファレンスから単一仮
想アドレスまでには所望の情報が得られるようになる前
に、数個のメモリーリファレンスを生じ得る。しかし、
トランスレーション・バッファが使用される時には、ト
ランスレーションは、トランスレーション・バッファ3
0内に単に「ヒツト」をみつけるだけとされる。トラン
スレーション・バッファ30の使用は、メイン・メモリ
14にアクセスしなければならない数を減少し、それに
より、全体のプロセッサ速度を増大する。もちろん、メ
モリ・リファレンスは、時に、トランスレーション・バ
ッファ30に記憶されているトランスレーションに「ミ
スJを生じる。「ミス」の場合には、正しい仮想アドレ
ス−フィジカル・アドレスのトランスレーションがメモ
リから検索され、トランスレーション・バッファ30に
記憶される。2回目に比較が試みられ、必らず「ヒツト
」を生じる。
−度び、仮想アドレス−フィジカル・アドレスのトラン
スレーションが完了したら、フィジカル・アドレスは書
込キュー36またはレジスタ38のいずれかにトランス
ファされる。その名が示唆するように、書込キュー36
は、対応する命令がメモリへの書込である時にのみ、フ
ィジカル・アドレスを受ける。書込キュー36の目的は
、書込命令のフィジカル書込アドレスのための一時的な
記憶ロケーションを与えることである。CPU12はパ
イプライン型であるので、記憶すべきデータが利用可能
となる前に、書込アドレスが利用可能である。実際上、
データは実行ユニット20における命令の実行後にのみ
、利用可能となる。さらに、パイプライン内の命令に対
する複数のスペシファイアをプリプロセスすることが望
ましいので、多数のフィジカル書込アドレスが対応する
データを待っている可能性がある。従って、書込キュー
36は、多数のフィジカル書込アドレスに適応する複数
のポジションの先入れ先出しバッファである。
スレーションが完了したら、フィジカル・アドレスは書
込キュー36またはレジスタ38のいずれかにトランス
ファされる。その名が示唆するように、書込キュー36
は、対応する命令がメモリへの書込である時にのみ、フ
ィジカル・アドレスを受ける。書込キュー36の目的は
、書込命令のフィジカル書込アドレスのための一時的な
記憶ロケーションを与えることである。CPU12はパ
イプライン型であるので、記憶すべきデータが利用可能
となる前に、書込アドレスが利用可能である。実際上、
データは実行ユニット20における命令の実行後にのみ
、利用可能となる。さらに、パイプライン内の命令に対
する複数のスペシファイアをプリプロセスすることが望
ましいので、多数のフィジカル書込アドレスが対応する
データを待っている可能性がある。従って、書込キュー
36は、多数のフィジカル書込アドレスに適応する複数
のポジションの先入れ先出しバッファである。
逆に、フィジカル・アドレスに対応する命令が読出し命
令である場合には、トランスレーション・バッファは読
出し命令のオペランドに対するフィジカル・アドレスを
与える。読出しアドレスは、レジスタ38の1つにトラ
ンスファされ、ここでマルチプレクサ40により選択さ
れキャッシュ28に供給される。キャッシュ28はアイ
デンティファイされたメモリーロケーションにアクセス
し、このロケーションに記憶されたデータを、データリ
ターンライン34を通って、実行ユニット20に送る。
令である場合には、トランスレーション・バッファは読
出し命令のオペランドに対するフィジカル・アドレスを
与える。読出しアドレスは、レジスタ38の1つにトラ
ンスファされ、ここでマルチプレクサ40により選択さ
れキャッシュ28に供給される。キャッシュ28はアイ
デンティファイされたメモリーロケーションにアクセス
し、このロケーションに記憶されたデータを、データリ
ターンライン34を通って、実行ユニット20に送る。
読出しに対してはオペランドフェッチの間にキャッシュ
に即時アクセスするが、書込に対しては命令実行の間に
遅延されるCPU12の能力は、パイプラインにタイミ
ングの問題を生じ得る。例えば、順次の命令は、しばし
ば、第1の命令がメモリーのロケーションをモディファ
イすることを要求するが、後の命令はこの同じアドレス
を読出す。両方の命令は、小さいステップの列の中で実
行されているので、読出しおよび書込操作がシーケンス
外で行なわれる可能性がある。書込命令に対するスペシ
ファイアが続出命令に対するスペシファイアの前に処理
されて書込操作が続出操作の前に実行されても、実行の
遅延によって、書込操作の結果が記憶される前に、続出
操作のための1またはそれ以上のオペランドがフェッチ
されるかもしれない。それ故、続出オペランドのフェッ
チの結果、実行ユニットに[ステイルJ (stalc
i)データがリターンされるかもしれない。
に即時アクセスするが、書込に対しては命令実行の間に
遅延されるCPU12の能力は、パイプラインにタイミ
ングの問題を生じ得る。例えば、順次の命令は、しばし
ば、第1の命令がメモリーのロケーションをモディファ
イすることを要求するが、後の命令はこの同じアドレス
を読出す。両方の命令は、小さいステップの列の中で実
行されているので、読出しおよび書込操作がシーケンス
外で行なわれる可能性がある。書込命令に対するスペシ
ファイアが続出命令に対するスペシファイアの前に処理
されて書込操作が続出操作の前に実行されても、実行の
遅延によって、書込操作の結果が記憶される前に、続出
操作のための1またはそれ以上のオペランドがフェッチ
されるかもしれない。それ故、続出オペランドのフェッ
チの結果、実行ユニットに[ステイルJ (stalc
i)データがリターンされるかもしれない。
第2図はrMOVL、MEMI、MEM2Jの形態の4
バイトの転送命令に対する命令パイプラインの動作を示
す。ここで、MOVLは行なわれるべき動作を示し、M
EMlおよびMEM2は、それぞれ、ソースのアドレス
および行先のアドレスをスペシファイするオペランドス
ベシファイアである。第2図における斜めの方向に沿う
ボックスは、CPU12が転送命令を行なうためにCP
U12が行なう順次のアクションを示す。第2図の左か
ら右に向けて、11の順次に進んだサイクル或いは時間
の間隔(1)でアクションが生じる。
バイトの転送命令に対する命令パイプラインの動作を示
す。ここで、MOVLは行なわれるべき動作を示し、M
EMlおよびMEM2は、それぞれ、ソースのアドレス
および行先のアドレスをスペシファイするオペランドス
ベシファイアである。第2図における斜めの方向に沿う
ボックスは、CPU12が転送命令を行なうためにCP
U12が行なう順次のアクションを示す。第2図の左か
ら右に向けて、11の順次に進んだサイクル或いは時間
の間隔(1)でアクションが生じる。
第2図の上から下に向けて、パイプラインの範囲(X)
に沿って10の順次のステージでアクションが生じる。
に沿って10の順次のステージでアクションが生じる。
第1のステージで、その命令に対するプログラムカウン
タ(PC)24がロケーション201においてクリエー
トされる。これは、前の命令に対するプログラムカウン
タ(第1図の24)の値をインクリメントすることによ
り、或いはブランチ命令のターゲット・アドレスを使用
することによって、なされる。第2のステージにおいて
、ロケーション202で、命令ユニット18はプログラ
ムカウンタ24の仮想アドレスでトランスレーション・
バッファ30にアクセスする。トランスレーション・バ
ッファ30は仮想アドレスをフィジカル・アドレスに変
換し、メモリ・ユニット・キャッシュから命苓ユニット
内のバッファまたはキャソシュ(図示せず)にデータの
ブロックをダウンロード(down 1oad)する。
タ(PC)24がロケーション201においてクリエー
トされる。これは、前の命令に対するプログラムカウン
タ(第1図の24)の値をインクリメントすることによ
り、或いはブランチ命令のターゲット・アドレスを使用
することによって、なされる。第2のステージにおいて
、ロケーション202で、命令ユニット18はプログラ
ムカウンタ24の仮想アドレスでトランスレーション・
バッファ30にアクセスする。トランスレーション・バ
ッファ30は仮想アドレスをフィジカル・アドレスに変
換し、メモリ・ユニット・キャッシュから命苓ユニット
内のバッファまたはキャソシュ(図示せず)にデータの
ブロックをダウンロード(down 1oad)する。
命令ユニット内のバッファまたはキャッシュがPC24
によって指示された命令を含まない場合には、第2のス
テージを行なうだけでよい。キャッシュ28は第3ステ
ージでロケーション203で読出されて、PC24で指
示された命令MOVLを検索する。ロケーション204
で、第4ステージで、MOVLからのオプコードでデコ
ードテーブルにアクセスすることによって命令をデコー
ドする。
によって指示された命令を含まない場合には、第2のス
テージを行なうだけでよい。キャッシュ28は第3ステ
ージでロケーション203で読出されて、PC24で指
示された命令MOVLを検索する。ロケーション204
で、第4ステージで、MOVLからのオプコードでデコ
ードテーブルにアクセスすることによって命令をデコー
ドする。
その後、第5ステージにおいて、ロケーション205で
、第1のオペランドMEM1から、オペランド仮想アド
レスがクリエートされる。同様に、第5ステージにおけ
る後の時点において、ロケーション206で、第2のオ
ペランドMEM2から行先の仮想アドレスがクリエート
される。第6ステージ内の同時に、ロケーション207
で、0PU22はトランスレーション・バッファ30に
アクセスして、オペランドの仮想アドレスをフィジカル
・アドレスに変換する。同様に、パイプラインの第6ス
テージ内の後の時点において、ロケーション208で、
0PU22はトランスレーション・バッファ30にアク
セスして、行先の仮想アドレスをフィジカル・アドレス
に変換する。
、第1のオペランドMEM1から、オペランド仮想アド
レスがクリエートされる。同様に、第5ステージにおけ
る後の時点において、ロケーション206で、第2のオ
ペランドMEM2から行先の仮想アドレスがクリエート
される。第6ステージ内の同時に、ロケーション207
で、0PU22はトランスレーション・バッファ30に
アクセスして、オペランドの仮想アドレスをフィジカル
・アドレスに変換する。同様に、パイプラインの第6ス
テージ内の後の時点において、ロケーション208で、
0PU22はトランスレーション・バッファ30にアク
セスして、行先の仮想アドレスをフィジカル・アドレス
に変換する。
もちろん、MEM2に対応するフィジカル・アドレスに
おいて、記憶すべきデータが読出されてしまうまで、M
EM2に対応するフィジカル・アドレスへの書込操作は
完了できない。か(して、データが利用可能になるまで
、MEM2アドレスは、書込キュー6に記憶される。ロ
ケーション209における第7ステージでは、メモリ・
アクセス・ユニット・キャッシュ28を読出シ、ソノデ
ータを実行ユニット20に送る。
おいて、記憶すべきデータが読出されてしまうまで、M
EM2に対応するフィジカル・アドレスへの書込操作は
完了できない。か(して、データが利用可能になるまで
、MEM2アドレスは、書込キュー6に記憶される。ロ
ケーション209における第7ステージでは、メモリ・
アクセス・ユニット・キャッシュ28を読出シ、ソノデ
ータを実行ユニット20に送る。
第8ステージにおいて、ロケーション210でオペラン
ド・データおよび結果のアドレスの総てが利用可能で、
命令が実行される。第9ステージにおいて、ロケーショ
ン211で、データと書込フラッグはメモリ・アクセス
・ユニット16に送られ、書込キュー・アドレスは書込
キューから除去され、キャッシュ・ヒツトのについてテ
ストするだめにキャッシュタグにアクセスされる。キャ
ッシュ・ヒツトを仮定すると、第10および最終ステー
ジにおいて、ロケーション212で実際の書込が生ずる
。
ド・データおよび結果のアドレスの総てが利用可能で、
命令が実行される。第9ステージにおいて、ロケーショ
ン211で、データと書込フラッグはメモリ・アクセス
・ユニット16に送られ、書込キュー・アドレスは書込
キューから除去され、キャッシュ・ヒツトのについてテ
ストするだめにキャッシュタグにアクセスされる。キャ
ッシュ・ヒツトを仮定すると、第10および最終ステー
ジにおいて、ロケーション212で実際の書込が生ずる
。
従って、パイプライン型のプロセッシングの出現ととも
に、メモリ・アクセスの作用は、0PU22、PC24
、実行ユニット20のような複数のロケーションから発
生されることがわかる。さらに、コンピュータシステム
がパイプライン型であるために、これらの複数のメモリ
ーリクエストは同時に発生する可能性を有している。従
って、複数ソースの各々からのメモリーリクエストを取
扱うための専用ハードウェアを構成する複雑かつ高価な
提案を避けるために、トランスレーション・バッファ3
0およびキャッシュ28のリソースを共用する多重処理
および優先処理のスキームが設けられる。
に、メモリ・アクセスの作用は、0PU22、PC24
、実行ユニット20のような複数のロケーションから発
生されることがわかる。さらに、コンピュータシステム
がパイプライン型であるために、これらの複数のメモリ
ーリクエストは同時に発生する可能性を有している。従
って、複数ソースの各々からのメモリーリクエストを取
扱うための専用ハードウェアを構成する複雑かつ高価な
提案を避けるために、トランスレーション・バッファ3
0およびキャッシュ28のリソースを共用する多重処理
および優先処理のスキームが設けられる。
次に第3図について、トランスレーション・バッファ3
0へのプライオリダイズされマルチプレックスされたア
クセスについて説明する。トランスレーション・バッフ
ァ30は5つの異なるソースから仮想アドレスを受ける
ように接続される。
0へのプライオリダイズされマルチプレックスされたア
クセスについて説明する。トランスレーション・バッフ
ァ30は5つの異なるソースから仮想アドレスを受ける
ように接続される。
これらのソースの中の3個はメモリ・アクセス・ユニッ
ト16の外にあり、以後、エクスターナルと称する。残
りの2つのソースは、メモリ・アクセス・ユニット16
内から制御され、以後、インタナルと称する。これらの
インタナルレジスタは、トランスレーション・バッファ
がメモリからの仮想−フィジカルのトランスレーション
を検索するのを「ミス」しこれをトランスレーション・
バッファ30内に入れた間に使用される。
ト16の外にあり、以後、エクスターナルと称する。残
りの2つのソースは、メモリ・アクセス・ユニット16
内から制御され、以後、インタナルと称する。これらの
インタナルレジスタは、トランスレーション・バッファ
がメモリからの仮想−フィジカルのトランスレーション
を検索するのを「ミス」しこれをトランスレーション・
バッファ30内に入れた間に使用される。
エクスターナルソースは、命令プリフェッチ・アドレス
を送る責任のあるI−バッファ42と、オペランドのブ
リフェッチ・アドレスを送る0PU22と、暗黙のオペ
ランド・アドレスを送る実行ユニット20を含む。トラ
ンスレーション・バッファ30は、エクスターナル・ア
ドレスのどれが処理されているかに無関係で、すべて同
じに取扱われる。
を送る責任のあるI−バッファ42と、オペランドのブ
リフェッチ・アドレスを送る0PU22と、暗黙のオペ
ランド・アドレスを送る実行ユニット20を含む。トラ
ンスレーション・バッファ30は、エクスターナル・ア
ドレスのどれが処理されているかに無関係で、すべて同
じに取扱われる。
これらのエクスターナルソースの各々はマルチプレクサ
50の入力に送られ、マルチプレクサ50は選択された
入力を制御可能にトランスレーション・バッファ30に
送る。トランスレーション・バッファは、受けとった仮
想アドレスを、最近使用された仮想−フィジカル・アド
レス変換のキャッシュ51に比較する。マツチ状態がみ
つかったら、トランスレーション・バッファ30は対応
するフィジカル・アドレスを選択し、これをキャッシュ
28に送る。仮想−フィジカル・トランスレージジンを
フェッチするためにキャッシュ28にアクセスする必要
はない。その理由は、これは前に使用されているために
トランスレーション・バッファ・キャッシュ51にすで
に存在しているからである。然して、トランスレーショ
ン・バッファ30は、メモリへのアクセスの数を減少す
ることによって、プロセ・ノサ速度を著しく改良する。
50の入力に送られ、マルチプレクサ50は選択された
入力を制御可能にトランスレーション・バッファ30に
送る。トランスレーション・バッファは、受けとった仮
想アドレスを、最近使用された仮想−フィジカル・アド
レス変換のキャッシュ51に比較する。マツチ状態がみ
つかったら、トランスレーション・バッファ30は対応
するフィジカル・アドレスを選択し、これをキャッシュ
28に送る。仮想−フィジカル・トランスレージジンを
フェッチするためにキャッシュ28にアクセスする必要
はない。その理由は、これは前に使用されているために
トランスレーション・バッファ・キャッシュ51にすで
に存在しているからである。然して、トランスレーショ
ン・バッファ30は、メモリへのアクセスの数を減少す
ることによって、プロセ・ノサ速度を著しく改良する。
しかし、トランスレーション・バ・ソファ・キヤ・7シ
ユ51は少数の仮想−フィジカル・トランスレーション
しか含んでいない。従って、現在トランスレートされて
いる仮想アドレスがトランスレーション・バッファ・キ
ャッシュ51内に存在しないことがあり得る。このよう
なことが生じると、メモリから変換を検索して、これを
トランスレーション・バッファ・キャッシュ51に入れ
て、仮想−フィジカル変換が完成し得るようにする必要
がある。
ユ51は少数の仮想−フィジカル・トランスレーション
しか含んでいない。従って、現在トランスレートされて
いる仮想アドレスがトランスレーション・バッファ・キ
ャッシュ51内に存在しないことがあり得る。このよう
なことが生じると、メモリから変換を検索して、これを
トランスレーション・バッファ・キャッシュ51に入れ
て、仮想−フィジカル変換が完成し得るようにする必要
がある。
選択されたエクスターナルソースによって送られる仮想
アドレスは、トランスレーション・バッファ・フィック
ス・アンプ・ユニット(TBFixup) 52にも送
られる。その名前かられかるように、TBフィックスア
ップ52は主として、トランスレーション・バッファ・
キャッシュ51内に存在してない変換を検索しこれをト
ランスレーション・バッファ30に入れるように、デデ
イケートされる。
アドレスは、トランスレーション・バッファ・フィック
ス・アンプ・ユニット(TBFixup) 52にも送
られる。その名前かられかるように、TBフィックスア
ップ52は主として、トランスレーション・バッファ・
キャッシュ51内に存在してない変換を検索しこれをト
ランスレーション・バッファ30に入れるように、デデ
イケートされる。
TBフィックスアップ52はマルチプレクサ50から仮
想アドレスを受けるが、「ミス」が発生する時にトラン
スレーション・バッファ30を固定することのみが必要
である。従って、トランスレーション・バッファ30は
TBフィックスアップ52にミス信号を送って、計算さ
れたアドレスをキャッシュ28に送らせる。TBrミス
」の場合には、変換がキャッシュ28から検索され、ト
ランスレーション・バッファ・キャッシュ51に記憶さ
れる。かくして、すぐに続いてトランスレーション・バ
ッファ・キャッシュ51を現存の仮想アドレスに比較す
ることによって、必らず「ヒツト」を生じることになる
。それ故、TBフィックスアップ52は、一時的に、ト
ランスレーション・バッファ・キャッシュ51をアップ
デート(更新)するように、トランスレーション・バッ
ファ30をコントロールする働きをし、これにより、現
在の変換は「ミス」から「ヒツト」に変更され、仮想−
フィジカル・トランスレーションは完了する。
想アドレスを受けるが、「ミス」が発生する時にトラン
スレーション・バッファ30を固定することのみが必要
である。従って、トランスレーション・バッファ30は
TBフィックスアップ52にミス信号を送って、計算さ
れたアドレスをキャッシュ28に送らせる。TBrミス
」の場合には、変換がキャッシュ28から検索され、ト
ランスレーション・バッファ・キャッシュ51に記憶さ
れる。かくして、すぐに続いてトランスレーション・バ
ッファ・キャッシュ51を現存の仮想アドレスに比較す
ることによって、必らず「ヒツト」を生じることになる
。それ故、TBフィックスアップ52は、一時的に、ト
ランスレーション・バッファ・キャッシュ51をアップ
デート(更新)するように、トランスレーション・バッ
ファ30をコントロールする働きをし、これにより、現
在の変換は「ミス」から「ヒツト」に変更され、仮想−
フィジカル・トランスレーションは完了する。
時によって、TBrミス」から回復するために、もっと
精巧な方法が必要とされることがある。これらの場合に
は、キャッシュ28に直接的にアクセスしないで、TB
フィンクスアップ52が第2図でトランスレーション・
バッファ30に仮想アドレスを提供するようにしなけれ
ばならない。この第2のアクセスを達成するために、イ
ンクナル・レジスタ54にTBフィックスアップ52に
よって仮想アドレスが負荷される。インタナル・レジス
タ52は2人力マルチプレクサ56を通してマルチプレ
クサ50の人力ボートの1つにアクセスする。またシー
ケンサ58がインタナル・レジスタ54と同じバスでT
Bフィックスアップ52から入力を受ける。シーケンサ
58はマルチプレシジョン操作の間、或いは、メモリか
ら複数の連続するバイトを読出すことが必要なライン境
界を横切る操作の間に使用される。シーケンサ58はア
ドレスをインクリメントし、これをマルチプレクサ56
の1つの入力に送る。
精巧な方法が必要とされることがある。これらの場合に
は、キャッシュ28に直接的にアクセスしないで、TB
フィンクスアップ52が第2図でトランスレーション・
バッファ30に仮想アドレスを提供するようにしなけれ
ばならない。この第2のアクセスを達成するために、イ
ンクナル・レジスタ54にTBフィックスアップ52に
よって仮想アドレスが負荷される。インタナル・レジス
タ52は2人力マルチプレクサ56を通してマルチプレ
クサ50の人力ボートの1つにアクセスする。またシー
ケンサ58がインタナル・レジスタ54と同じバスでT
Bフィックスアップ52から入力を受ける。シーケンサ
58はマルチプレシジョン操作の間、或いは、メモリか
ら複数の連続するバイトを読出すことが必要なライン境
界を横切る操作の間に使用される。シーケンサ58はア
ドレスをインクリメントし、これをマルチプレクサ56
の1つの入力に送る。
アービトレーションロジック(arbitration
logic) 57が、プライオリティゼーション(優
先処理)スキームに従ってマルチプレクサ50゜56の
両者を制御する。インタナルレジスタ54.58は、も
ちろん、最高のプライオリティを割当てられている。明
らかに、TBミスが発生したら、TB30は、キャッシ
ュ51をアップデートできるまで、停められる。それ故
、インターナルレジスタ54.58は現在のミスを解消
するために最高のプライオリティを必要とする。しかし
、インターナルレジスタ54.58が現に使用されてな
い時には、アービトレーションロジック57がエクスタ
ーナルレジスタ20.22.42の間からプライオリテ
ィを決定しなければならない。
logic) 57が、プライオリティゼーション(優
先処理)スキームに従ってマルチプレクサ50゜56の
両者を制御する。インタナルレジスタ54.58は、も
ちろん、最高のプライオリティを割当てられている。明
らかに、TBミスが発生したら、TB30は、キャッシ
ュ51をアップデートできるまで、停められる。それ故
、インターナルレジスタ54.58は現在のミスを解消
するために最高のプライオリティを必要とする。しかし
、インターナルレジスタ54.58が現に使用されてな
い時には、アービトレーションロジック57がエクスタ
ーナルレジスタ20.22.42の間からプライオリテ
ィを決定しなければならない。
プライオリティは、実行ユニット20によって現に処理
されている命令に対するインパクトに従って、エクスタ
ーナルレジスタ20.22.42の間に割当てられる。
されている命令に対するインパクトに従って、エクスタ
ーナルレジスタ20.22.42の間に割当てられる。
それ故、実行ユニット20によるリクエストは、必らず
、現に処理されている命令に関連される。従って、実行
ユニットのリクエストは最高のプライオリティを割当て
られる。
、現に処理されている命令に関連される。従って、実行
ユニットのリクエストは最高のプライオリティを割当て
られる。
すなわち、実行ユニット20がメモリ・アクセス・リク
エストを発する時に、たとえ先きの0PU22またはI
BUF 42のリクエストが係属中であろうと、アー
ビトレーションロジック57は、実行ユニットのリクエ
ストをTB30にアクセスすることを許可する。
エストを発する時に、たとえ先きの0PU22またはI
BUF 42のリクエストが係属中であろうと、アー
ビトレーションロジック57は、実行ユニットのリクエ
ストをTB30にアクセスすることを許可する。
同じプライオリティのスキームは残りの2つのエクスタ
ーナルレジスタ22.42にも実施され、0PU22は
実行ユニット20に動作的に近接しているので、これは
次に最も高いプライオリティを割当てられる。かくして
、IBUF42は現在の命令に対するインパクトが最も
小さいのでIBUF42は最低のプライオリティを割当
てられる。さらに、命令デコーダ26は現に処理されて
いる命令よりも命令前とし得ることに注意しなければな
らない。かくして、IBUF42の処理に何等かの遅延
がある時に、この遅延は実行ユニットでの命令処理速度
にインパクトを与えることなしに容易に吸収される。
ーナルレジスタ22.42にも実施され、0PU22は
実行ユニット20に動作的に近接しているので、これは
次に最も高いプライオリティを割当てられる。かくして
、IBUF42は現在の命令に対するインパクトが最も
小さいのでIBUF42は最低のプライオリティを割当
てられる。さらに、命令デコーダ26は現に処理されて
いる命令よりも命令前とし得ることに注意しなければな
らない。かくして、IBUF42の処理に何等かの遅延
がある時に、この遅延は実行ユニットでの命令処理速度
にインパクトを与えることなしに容易に吸収される。
アービトレーションロジック57は、リクエストが係属
中である時を決定するために、3個のエクスターナルレ
ジスタ20.22.42からリクエスト入力を受け、る
。これらのリクエスト入力はレジスタ20,22.42
に記憶され、トランスレーションバッファ30を通して
パイプラインとされて、キャッシュ28へのアクセスを
待ちながら、アドレスがそのソースに関してアイデンテ
ィファイでき且つレジスタ38中に別々に記憶できるよ
うにされる。
中である時を決定するために、3個のエクスターナルレ
ジスタ20.22.42からリクエスト入力を受け、る
。これらのリクエスト入力はレジスタ20,22.42
に記憶され、トランスレーションバッファ30を通して
パイプラインとされて、キャッシュ28へのアクセスを
待ちながら、アドレスがそのソースに関してアイデンテ
ィファイでき且つレジスタ38中に別々に記憶できるよ
うにされる。
次に、第4図に、キャッシュおよびその関連アドレスお
よびデータインタフェースのブロックダイアグラムを示
す。複数レジスタ38は、IBUP。
よびデータインタフェースのブロックダイアグラムを示
す。複数レジスタ38は、IBUP。
OPUおよび実行ユニットに対する別々のレジスタ60
.62.64を含む。このようにして、別々のリクエス
トが再びプライオリクイズされ、個々のリクエストがキ
ャッシュ28内でミスすると、他の係属中のリクエスト
が処理され、一方、メインメモリ14は所望のデータを
キャッシュ28に戻どるように働く。
.62.64を含む。このようにして、別々のリクエス
トが再びプライオリクイズされ、個々のリクエストがキ
ャッシュ28内でミスすると、他の係属中のリクエスト
が処理され、一方、メインメモリ14は所望のデータを
キャッシュ28に戻どるように働く。
この点でエクスターナルレジスタ60,62.64の間
のプライオリティはエクスターナルレジスタ20,22
.42のプライオリティと同じ状態にある。唯一の相違
点は、キャッシュ28がトランスレーションバッファ3
0と異なって、メインメモリ14からのレフィルが係属
している間に他のキャッシュのリクエストを取扱うよう
に構成されていることである。かくして、キャッシュ2
8内のミスが他の係属中のメモリーアクセスを停めるこ
とはない。
のプライオリティはエクスターナルレジスタ20,22
.42のプライオリティと同じ状態にある。唯一の相違
点は、キャッシュ28がトランスレーションバッファ3
0と異なって、メインメモリ14からのレフィルが係属
している間に他のキャッシュのリクエストを取扱うよう
に構成されていることである。かくして、キャッシュ2
8内のミスが他の係属中のメモリーアクセスを停めるこ
とはない。
書込キュー36に記憶されているアドレスは実行ユニッ
ト20から送られるデータに関連しているので、これは
最高のプライオリティを割当てられる。書込バッファ6
6が、実行ユニット20からの32ビツトのデータバス
とキャッシュの64ビツトのデータバスの間に接続され
る。かくして、書込バッファ66は、キャッシュ28が
その現在の操作を完了する間に、実行ユニットのデータ
を記憶する。しかし、次のクロックサイクルの柊で実行
ユニット20を停めるのを避けるために、書込バッファ
66は次のクロックサイクルにおいてキャッシュ2日に
対して空白とされる。このような書込バッファ66の迅
速な取扱いを行なうために、書込キュー36はキャッシ
ュ28に対して最高のプライオリティをもたねばならな
い。
ト20から送られるデータに関連しているので、これは
最高のプライオリティを割当てられる。書込バッファ6
6が、実行ユニット20からの32ビツトのデータバス
とキャッシュの64ビツトのデータバスの間に接続され
る。かくして、書込バッファ66は、キャッシュ28が
その現在の操作を完了する間に、実行ユニットのデータ
を記憶する。しかし、次のクロックサイクルの柊で実行
ユニット20を停めるのを避けるために、書込バッファ
66は次のクロックサイクルにおいてキャッシュ2日に
対して空白とされる。このような書込バッファ66の迅
速な取扱いを行なうために、書込キュー36はキャッシ
ュ28に対して最高のプライオリティをもたねばならな
い。
前述のように、キャッシュのデータバスはメインメモリ
14および書込バッファ66に接続される。かくて、マ
ルチプレクサ68がキャッシュ28によって使用されて
、メインメモリI4の内容または書込バッファ66の内
容を選択的に負荷する。同様にマルチプレクサ40はキ
ャッシュ・アドレス・バスへのアクセスを制御する。レ
ジスタ38の各々および書込キュー36が、マルチプレ
クサ30への入力として接続され、このマルチプレクサ
はアービトレーションロジック70のセントによって制
御される。また、データバスは書込キュー36より高い
プライオリティをもつ。これは、前にミスしたメモリー
リクエストを取扱うために、キャッシュ28がメインメ
モリ14からレフィルデータを受けることができるよう
にするためである。
14および書込バッファ66に接続される。かくて、マ
ルチプレクサ68がキャッシュ28によって使用されて
、メインメモリI4の内容または書込バッファ66の内
容を選択的に負荷する。同様にマルチプレクサ40はキ
ャッシュ・アドレス・バスへのアクセスを制御する。レ
ジスタ38の各々および書込キュー36が、マルチプレ
クサ30への入力として接続され、このマルチプレクサ
はアービトレーションロジック70のセントによって制
御される。また、データバスは書込キュー36より高い
プライオリティをもつ。これは、前にミスしたメモリー
リクエストを取扱うために、キャッシュ28がメインメ
モリ14からレフィルデータを受けることができるよう
にするためである。
例えば、実行ユニット20.0PU22、[BUF42
が係属中のメモリ−リクエストを有しているとすると、
アービトレーションロジック70は実行レジスタ64の
内容を選択することにより、応答する。このメモリーリ
クエストがキャッシュ28でミスすると、メインメモリ
14からのレフィルがリクエストされ、キャッシュ28
は実行ユニットレジスタ64内に、「ミス」が発生した
ことを指示するステータス・フラグ(状態標識)をセッ
トする。アービトレーションロジック70はレジスタ6
0.62.64の各々および書込キュー36においてス
テータスフラグを同期的にサンプリングする。アービト
レーションロジックが実行ユニットレジスタ64内でミ
スしたステータフラグを検出すると、プライオリティゼ
ーシヲンのスキームは次の最高のバライオリティのリク
エストに移り、マルチプレクサ40を通してその入力を
選択する。かくしてOPUリクエストがキャッシュ28
に送られ、キャッシュ28内に「ヒツト」があると仮定
すると、データが検索され正しい行先に送られる。レフ
ィルデータがメインメモリ14から利用可能になると、
データリターン信号がアービトレーションロジック70
に送られ、これはマルチプレクサ68へのメインメモリ
入力を選択する。IBUFが未だ係属中であっても、キ
ャッシュのレフィルはプライオリティを有し、キャッシ
ュ28は係属している実行ユニットのミスを正しく取扱
う。
が係属中のメモリ−リクエストを有しているとすると、
アービトレーションロジック70は実行レジスタ64の
内容を選択することにより、応答する。このメモリーリ
クエストがキャッシュ28でミスすると、メインメモリ
14からのレフィルがリクエストされ、キャッシュ28
は実行ユニットレジスタ64内に、「ミス」が発生した
ことを指示するステータス・フラグ(状態標識)をセッ
トする。アービトレーションロジック70はレジスタ6
0.62.64の各々および書込キュー36においてス
テータスフラグを同期的にサンプリングする。アービト
レーションロジックが実行ユニットレジスタ64内でミ
スしたステータフラグを検出すると、プライオリティゼ
ーシヲンのスキームは次の最高のバライオリティのリク
エストに移り、マルチプレクサ40を通してその入力を
選択する。かくしてOPUリクエストがキャッシュ28
に送られ、キャッシュ28内に「ヒツト」があると仮定
すると、データが検索され正しい行先に送られる。レフ
ィルデータがメインメモリ14から利用可能になると、
データリターン信号がアービトレーションロジック70
に送られ、これはマルチプレクサ68へのメインメモリ
入力を選択する。IBUFが未だ係属中であっても、キ
ャッシュのレフィルはプライオリティを有し、キャッシ
ュ28は係属している実行ユニットのミスを正しく取扱
う。
トランスレーシランバッファ30によって新フィジカル
アドレスが送られる時に他のメモリーリクエストが係属
していない場合には、アービトレーションロジック7o
はリクエストを直ちに取扱うことができることを確認す
る。かくして、アービトレーションロジックはリクエス
トをバイパスして、マルチプレクサ72を経て直接にキ
ャッシュ28に送る。このようにして、レジスタ3oの
1つを無用にローディングおよびアンコーディングする
時間は使われない。
アドレスが送られる時に他のメモリーリクエストが係属
していない場合には、アービトレーションロジック7o
はリクエストを直ちに取扱うことができることを確認す
る。かくして、アービトレーションロジックはリクエス
トをバイパスして、マルチプレクサ72を経て直接にキ
ャッシュ28に送る。このようにして、レジスタ3oの
1つを無用にローディングおよびアンコーディングする
時間は使われない。
アービトレーションロジック68はマルチプレクサ40
.72.68のコントロールをするように多数の制御入
力を受ける。例えば、レジスタ38の各々および書込キ
ュー36内でステータスフラグにアクセスするのに加え
て、アービトレーションロジック70はフィジカルアド
レスとパイブライン状態のリクエストおよびアイデンテ
ィフィケーション信号をも受ける。リクエスト信号は、
メモリアクセス作用がリクエストされた時をアービトレ
ーションロジックがアイデンティファイするために必要
である。アイデンティフィケーション信号は、どのレジ
スタ38或いは書込キュー36がリクエストを負荷され
ているかを決定するのに有用である。
.72.68のコントロールをするように多数の制御入
力を受ける。例えば、レジスタ38の各々および書込キ
ュー36内でステータスフラグにアクセスするのに加え
て、アービトレーションロジック70はフィジカルアド
レスとパイブライン状態のリクエストおよびアイデンテ
ィフィケーション信号をも受ける。リクエスト信号は、
メモリアクセス作用がリクエストされた時をアービトレ
ーションロジックがアイデンティファイするために必要
である。アイデンティフィケーション信号は、どのレジ
スタ38或いは書込キュー36がリクエストを負荷され
ているかを決定するのに有用である。
第5図は、アービトレーションロジック7oによってな
される作用制御のスキームを示すフローチャートである
。決定ブロック100から始めて、ロジック70は、先
ず、メインメモリ14がらのレフィルデータが用意され
ているかどうかを決定するためにデータリターン信号を
チエツクする。
される作用制御のスキームを示すフローチャートである
。決定ブロック100から始めて、ロジック70は、先
ず、メインメモリ14がらのレフィルデータが用意され
ているかどうかを決定するためにデータリターン信号を
チエツクする。
メインメモリデータが用意されていれば、コントロール
ブロック102に行き、ここでマルチプレクサ68への
メインメモリ入力が選択され、コントロールはスタート
点に戻る。また、キャッシュのレフィルデータがメイン
メモリ14から戻されてない場合には、コントロールは
決定プロック104に行き、ここで書込キュー36のリ
クエストラインおよびアップライトラインはポーリング
される。両方の信号がアサート(assert)されて
いれば、コントロールはブロック106に行き、ここで
、書込キューについてミスか現在存在しているかどうか
を決定するために書込キュー36のステータスフラグの
ポーリングがなされる。ミスがないと、ブロック108
で、マルチプレクサ40への書込キューの入力が選択さ
れる。書込キューの選択がアサートされなかった場合、
或いは、書込キュー36についてミスが係属している場
合には、コントロールは次の低いプライオリティのリク
エストに行く。
ブロック102に行き、ここでマルチプレクサ68への
メインメモリ入力が選択され、コントロールはスタート
点に戻る。また、キャッシュのレフィルデータがメイン
メモリ14から戻されてない場合には、コントロールは
決定プロック104に行き、ここで書込キュー36のリ
クエストラインおよびアップライトラインはポーリング
される。両方の信号がアサート(assert)されて
いれば、コントロールはブロック106に行き、ここで
、書込キューについてミスか現在存在しているかどうか
を決定するために書込キュー36のステータスフラグの
ポーリングがなされる。ミスがないと、ブロック108
で、マルチプレクサ40への書込キューの入力が選択さ
れる。書込キューの選択がアサートされなかった場合、
或いは、書込キュー36についてミスが係属している場
合には、コントロールは次の低いプライオリティのリク
エストに行く。
実行レジスタ64、OPUレジスタ621BUPレジス
タ114についてもそれぞれ決定ブロック110.11
2.114において同様の動作が行なわれる。しかし現
在係属しているリクエストがなくコントロールが決定ブ
ロック116に進むと、アービトレーションブロック7
0は、トランスレーションバッファ30から新しいリク
エストが到着しているかどうかを決定するチエツクをす
る。
タ114についてもそれぞれ決定ブロック110.11
2.114において同様の動作が行なわれる。しかし現
在係属しているリクエストがなくコントロールが決定ブ
ロック116に進むと、アービトレーションブロック7
0は、トランスレーションバッファ30から新しいリク
エストが到着しているかどうかを決定するチエツクをす
る。
新しいリクエストが利用可能で他のリクエストがないと
、アービトレーションロジック70は、ブロック118
でマルチプレクサ72への第2の人力を選択することに
よって、レジスタ38およびマルチプレクサ40をバイ
パスする働きをする。
、アービトレーションロジック70は、ブロック118
でマルチプレクサ72への第2の人力を選択することに
よって、レジスタ38およびマルチプレクサ40をバイ
パスする働きをする。
第1図は中央処理ユニットとこれに組合されたメモリの
一部を示すブロックダイアグラムである。 第2図はロングワードMOVEオペランドのパイプライ
ン処理の作用を示すダイアグラムである。 第3図はメモリーリクエストを発生できる多数のボート
とのインタフェースを備えたトランレーションバッファ
およびトランスレーションバソファフイックスアノブユ
ニソトのブロックダイアグラムである。 第4図はキャッシュおよびそのアドレスおよびデータイ
ンタフェースを示すブロックダイアグラムである。 第5図はアービトレーションロジックによってなされる
作用のコントロールのスキームを示すフローチャートで
ある。 10・・・・・・コンピュータシステム、12・・・・
・・CPU、 14・・・・・・メインメモリ
、16・・・・・・メモリアクセスユニット、18・・
・・・・命令ユニット、20・・・・・・実行ユニット
22・・・・・・opu。 24・・・・・・プログラムカウンタ 26・・・・・・命令デコーダ、28・・・・・・キャ
ッシュ、30・・・・・・トランスレーションバッファ
、36・・・・・・書込キュー 38・・・・・・レ
ジスタ、40・・・・・・マルチプレクサ。
一部を示すブロックダイアグラムである。 第2図はロングワードMOVEオペランドのパイプライ
ン処理の作用を示すダイアグラムである。 第3図はメモリーリクエストを発生できる多数のボート
とのインタフェースを備えたトランレーションバッファ
およびトランスレーションバソファフイックスアノブユ
ニソトのブロックダイアグラムである。 第4図はキャッシュおよびそのアドレスおよびデータイ
ンタフェースを示すブロックダイアグラムである。 第5図はアービトレーションロジックによってなされる
作用のコントロールのスキームを示すフローチャートで
ある。 10・・・・・・コンピュータシステム、12・・・・
・・CPU、 14・・・・・・メインメモリ
、16・・・・・・メモリアクセスユニット、18・・
・・・・命令ユニット、20・・・・・・実行ユニット
22・・・・・・opu。 24・・・・・・プログラムカウンタ 26・・・・・・命令デコーダ、28・・・・・・キャ
ッシュ、30・・・・・・トランスレーションバッファ
、36・・・・・・書込キュー 38・・・・・・レ
ジスタ、40・・・・・・マルチプレクサ。
Claims (12)
- (1)パイプライン状のコンピュータシステムにおける
複数のロケーションからの独立のメモリー・アクセス・
リクエストを制御する装置において、複数のパラレルロ
ケーションにおける上記のメモリー・アクセス・リクエ
ストの各々を一時的に記憶する手段と、 第1のプライオリティゼーション・スキームに従って上
記の記憶されたメモリー・アクセス・リクエストにアク
セスして、上記の記憶されたメモリー・アクセス・リク
エストの中の選択された1つを供給する第1のマルチプ
レクサ手段と、 上記の記憶されたメモリー・アクセス・リクエストの選
択された1つを受け、この選択されたリクエストをフィ
ジカル・メモリー・アドレスに変換し、このフィジカル
・メモリー・アドレスを供給するようになっているトラ
ンスレーション・バッファと、 複数のパラレルロケーションに上記のフィジカル・アド
レスの各々を一時的に記憶する手段と、 第2のプライオリティゼーション・スキームに従って上
記の記憶されたフィジカル・アドレスにアクセスし、上
記の記憶されたフィジカルアドレスの中の選択された1
つを供給する第2のマルチプレクサ手段と、 上記の記憶されたフィジカル・アドレスを受けとり、こ
の記憶されたアドレスをキャッシュに現在保持されてい
るアドレスと比較し、ヒットに応答して上記の記憶され
たアドレスに記憶されているデータにアクセスし、ミス
(miss)の検査に応答してキャッシュのレフィルを
開始するキャッシュと、 を備えたことを特徴とする装置。 - (2)上記のキャッシュは、ミスの検出に応答して上記
の第2のマルチプレクサ手段に信号を送り、上記の第2
のマルチプレクサ手段は、ミスしたフィジカル・アドレ
スを一時的に無視し、上記の一時的記憶手段に記憶され
ている次の最低プライオリティのフィジカル・アドレス
を供給するようにした請求項(1)記載の装置。 - (3)上記の第2のマルチプレクサ手段は、上記のキャ
ッシュ・レフィルをキャッシュが受けるのに応答して、
上記のミスされたフィジカル・アドレスを供給するよう
にした請求項(2)記載の装置。 - (4)上記の第2のマルチプレクサ手段は、上記の一時
的記憶手段に記憶されている他のフィジカル・アドレス
が全くないことに応答して、上記の一時的フィジカル・
アドレス記憶手段をバイパスして、上記のフィジカル・
アドレスを直接的に、上記のキャッシュに送るようにし
た請求項(2)記載の装置。 - (5)パイプライン状のコンピュータシステムにおける
複数ロケーションからの独立のメモリー・アクセス・リ
クエストを制御する方法において、複数のパラレル・ロ
ケーションに上記のメモリー・アクセス・リクエストの
各々を一時的に記憶する行程と、 第1のプライオリティゼーション・スキームに従って、
上記の複数の記憶されたメモリー・アクセス・リクエス
トの中の選択された1つを供給する行程と、 上記の記憶されたメモリー・アクセス・リクエストの中
の選択された1つを受取り、この選択されたリクエスト
をフィジカル・メモリー・アドレスに変換し、このフィ
ジカル・メモリー・アドレスを供給する手段と、 複数のパラレル・ロケーションに、上記のフィジカル・
アドレスの各々を一時的に記憶する行程と、 第2のプライオリティゼーション・スキームに従って上
記の記憶されたフィジカル・アドレスにアクセスし、上
記の記憶されたフィジカルアドレスの中の選択された1
つを供給する行程と、 この記憶されたフィジカル・アドレスを受け、この記憶
されたアドレスをキャッシュに現在保持されているアド
レスに比較し、ヒットに応答して上記の記憶されたアド
レスに記憶されているデータにアクセスし、ミスの検出
に応答してキャッシュのレフィルを開始する行程と を特徴とする方法。 - (6)上記のキャッシュにおけるミスの検出に応答して
信号を供給し、ミスしたフィジカル・アドレスを一時的
に無視し、次の最高のプライオリティのフィジカル・ア
ドレスを供給する行程を含む請求項(5)記載の方法。 - (7)キャッシュが上記のキャッシュのレフィルを受け
るのに応答して、上記のミスしたフィジカル・アドレス
を供給する行程を含む請求項(6)記載の方法。 - (8)一時的に記憶されている他のフィジカル・アドレ
スがないことに応答して、上記の一時的なフィジカル・
アドレスの記憶をバイパスし、上記のキャッシュに上記
のフィジカル・アドレスを直接的に送る行程を含む請求
項(5)記載の方法。 - (9)パイプライン状コンピュータシステムにおける命
令デコーダ・オペランド処理ユニット、実行ユニットか
らのメモリー・アクセス・リクエストをサービスする方
法において、 (a)実行ユニットからのリクエストがオペランド処理
ユニットからのリクエストおよび命令デコーダからのリ
クエストに比してプライオリティを有し、且つオペラン
ド処理ユニットからのリクエストが命令デコーダからの
リクエストに比してプライオリティを有している第1の
プライオリティ・スキームに従って上記のメモリー・ア
クセス・リクエストを選択する行程と、 (b)トランスレーション・バッファを使用して、行程
(a)で選択されたメモリー・アクセス・リクエストに
対する仮のアドレスを、対応するフィジカル・メモリ・
アドレスにトランスレートする行程と、 (c)上記の対応するフィジカル・メモリ・アドレスを
少なくとも3個のレジスタに一時的に記憶する行程と、 (d)実行ユニットからのリクエストが、オペランド処
理ユニットからのリクエストおよび命令デコーダからの
リクエストに比してプライオリティを有し、オペランド
処理ユニットからのリクエストが命令デコーダからのリ
クエストに比してプライオリティを有している第2のプ
ライオリティゼーション・スキームに従って、対応する
メモリー・アクセス・リクエストに基いて上記のレジス
タに記憶されているフィジカル・メモリー・アドレスを
選択する行程と、 (e)上記の行程(d)で選択されたフィジカル・メモ
リー・アドレスをキャッシュ・メモリーに送り、選択さ
れたフィジカル・アドレスを上記のキャッシュ・メモリ
に現在保持されているアドレスに比較し、選択されたフ
ィジカル・アドレスがキャッシュ・メモリに現在保持さ
れている時に、選択されたフィジカル・アドレスに記憶
されたデータにアクセスし、選択されたフィジカル・ア
ドレスがキャッシュ・メモリに現在保持されてない時に
はキャッシュ・メモリをレフィルする行程と、 を含むことを特徴とする方法。 - (10)キャッシュ・メモリのレフィルを一時的に遅延
させて、上記のレジスタに記憶されている次の最低のプ
ライオリティのフィジカル・アドレスを選択し、次の最
低プライオリティのフィジカル・アドレスが現在このキ
ャッシュに保持さている時には選択されたフィジカル・
アドレスに記憶されているデータにアクセスする行程を
含む請求項(9)記載の方法。 - (11)上記の行程(d)は、書込行列からフィジカル
・アドレスを選択する行程を含み、上記の第2のプライ
オリティ・スキームは、上記の命令デコーダ、上記のオ
ペランド処理ユニット、上記の実行ユニットからのリク
エストに比して書込行列のプライオリティを与えるよう
になっている請求項(9)記載の方法。 - (12)上記の行程(a)は、トランスレーション・バ
ッファ・フィックス・アップ・ユニットからのメモリー
・アクセス・リクエストを選択する行程を含み、上記の
第1のプライオリティ・スキームは、上記の命令デコー
ダ、上記のオペランド処理ユニット、上記の実行ユニッ
トからのリクエストに比して上記のトランスレーション
・バッファ・フィックス・アップ・ユニットのプライオ
リティを与えるようになっている請求項(9)記載の方
法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US306870 | 1989-02-03 | ||
US07/306,870 US5222223A (en) | 1989-02-03 | 1989-02-03 | Method and apparatus for ordering and queueing multiple memory requests |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02289013A true JPH02289013A (ja) | 1990-11-29 |
JPH0526215B2 JPH0526215B2 (ja) | 1993-04-15 |
Family
ID=23187232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2024310A Granted JPH02289013A (ja) | 1989-02-03 | 1990-02-02 | 複数メモリーリクエストのオーダおよびキューイング方法および装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5222223A (ja) |
EP (1) | EP0391517B1 (ja) |
JP (1) | JPH02289013A (ja) |
AT (1) | ATE156278T1 (ja) |
AU (1) | AU628530B2 (ja) |
CA (1) | CA1325285C (ja) |
DE (1) | DE69031139T2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0594305A (ja) * | 1991-02-19 | 1993-04-16 | Matsushita Electric Ind Co Ltd | キヤツシユメモリ装置 |
WO2007052369A1 (ja) * | 2005-10-31 | 2007-05-10 | Fujitsu Limited | 演算処理装置,情報処理装置,及び演算処理装置のメモリアクセス方法 |
JPWO2008155825A1 (ja) * | 2007-06-19 | 2010-08-26 | 富士通株式会社 | 演算処理装置および演算処理方法 |
JP2017027156A (ja) * | 2015-07-16 | 2017-02-02 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Families Citing this family (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5226126A (en) * | 1989-02-24 | 1993-07-06 | Nexgen Microsystems | Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags |
US5781753A (en) | 1989-02-24 | 1998-07-14 | Advanced Micro Devices, Inc. | Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions |
US5465344A (en) * | 1990-08-20 | 1995-11-07 | Matsushita Electric Industrial Co., Ltd. | Microprocessor with dual-port cache memory for reducing penalty of consecutive memory address accesses |
JP2514292B2 (ja) * | 1991-04-25 | 1996-07-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | オペランドペ―ジメモリ及び命令ペ―ジメモリを有するコンピュ―タシステム |
US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
US5440752A (en) | 1991-07-08 | 1995-08-08 | Seiko Epson Corporation | Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU |
US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
US5459849A (en) * | 1991-08-02 | 1995-10-17 | International Business Machines Corporation | Method and apparatus for compressing cacheable data |
US5379396A (en) * | 1991-10-11 | 1995-01-03 | Intel Corporation | Write ordering for microprocessor depending on cache hit and write buffer content |
US5410677A (en) * | 1991-12-30 | 1995-04-25 | Apple Computer, Inc. | Apparatus for translating data formats starting at an arbitrary byte position |
US5848297A (en) * | 1991-12-30 | 1998-12-08 | Apple Computer, Inc. | Control apparatus for maintaining order and accomplishing priority promotion in a computer interconnect |
JPH05257851A (ja) * | 1991-12-30 | 1993-10-08 | Apple Computer Inc | データの転送の順序を制御させる装置 |
US5640599A (en) * | 1991-12-30 | 1997-06-17 | Apple Computer, Inc. | Interconnect system initiating data transfer over launch bus at source's clock speed and transfering data over data path at receiver's clock speed |
US5887196A (en) * | 1991-12-30 | 1999-03-23 | Apple Computer, Inc. | System for receiving a control signal from a device for selecting its associated clock signal for controlling the transferring of information via a buffer |
JP3730252B2 (ja) | 1992-03-31 | 2005-12-21 | トランスメタ コーポレイション | レジスタ名称変更方法及び名称変更システム |
JP3920931B2 (ja) * | 1992-04-17 | 2007-05-30 | サン・マイクロシステムズ・インコーポレイテッド | キャッシュされたデータを読出しおよび書込む方法ならびにデータをキャッシングする装置 |
EP0638183B1 (en) | 1992-05-01 | 1997-03-05 | Seiko Epson Corporation | A system and method for retiring instructions in a superscalar microprocessor |
US5398325A (en) * | 1992-05-07 | 1995-03-14 | Sun Microsystems, Inc. | Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems |
US5448706A (en) * | 1992-05-13 | 1995-09-05 | Sharp Microelectronics Technology, Inc. | Address generator for multi-channel circular-buffer style processing |
JPH05342084A (ja) * | 1992-06-08 | 1993-12-24 | Matsushita Electric Ind Co Ltd | データ記憶装置及びデータ記憶方法 |
US5418973A (en) * | 1992-06-22 | 1995-05-23 | Digital Equipment Corporation | Digital computer system with cache controller coordinating both vector and scalar operations |
EP0575651A1 (en) * | 1992-06-24 | 1993-12-29 | International Business Machines Corporation | Multiprocessor system |
JPH06222990A (ja) * | 1992-10-16 | 1994-08-12 | Fujitsu Ltd | データ処理装置 |
US5488706A (en) * | 1992-12-18 | 1996-01-30 | Amdahl Corporation | Retry request system in a pipeline data processing system where each requesting unit preserves the order of requests |
KR100292300B1 (ko) | 1992-12-31 | 2001-09-17 | 야스카와 히데아키 | 레지스터재명명시스템및방법 |
US5628021A (en) | 1992-12-31 | 1997-05-06 | Seiko Epson Corporation | System and method for assigning tags to control instruction processing in a superscalar processor |
US5471598A (en) * | 1993-10-18 | 1995-11-28 | Cyrix Corporation | Data dependency detection and handling in a microprocessor with write buffer |
US5615402A (en) * | 1993-10-18 | 1997-03-25 | Cyrix Corporation | Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch |
US5740398A (en) * | 1993-10-18 | 1998-04-14 | Cyrix Corporation | Program order sequencing of data in a microprocessor with write buffer |
US6219773B1 (en) | 1993-10-18 | 2001-04-17 | Via-Cyrix, Inc. | System and method of retiring misaligned write operands from a write buffer |
US5535358A (en) * | 1993-12-27 | 1996-07-09 | Matsushita Electric Industrial Co., Ltd. | Cache memory control circuit and method for controlling reading and writing requests |
US6003120A (en) * | 1993-12-30 | 1999-12-14 | Intel Corporation | Method and apparatus for performing variable length processor write cycles |
US5781750A (en) * | 1994-01-11 | 1998-07-14 | Exponential Technology, Inc. | Dual-instruction-set architecture CPU with hidden software emulation mode |
US5542059A (en) * | 1994-01-11 | 1996-07-30 | Exponential Technology, Inc. | Dual instruction set processor having a pipeline with a pipestage functional unit that is relocatable in time and sequence order |
KR970010368B1 (ko) * | 1994-01-18 | 1997-06-25 | 삼성전자 주식회사 | 캐시라인 리프레이스장치 및 방법 |
GB2287108B (en) * | 1994-02-28 | 1998-05-13 | Intel Corp | Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path |
EP0676690B1 (en) * | 1994-03-09 | 2003-05-14 | Sun Microsystems, Inc. | Delayed write of store instruction in processor device |
US6272595B1 (en) * | 1994-08-05 | 2001-08-07 | Intel Corporation | N-way set-associative cache memory which includes a store hit buffer for improved data access |
US5634073A (en) * | 1994-10-14 | 1997-05-27 | Compaq Computer Corporation | System having a plurality of posting queues associated with different types of write operations for selectively checking one queue based upon type of read operation |
US5680566A (en) * | 1995-03-03 | 1997-10-21 | Hal Computer Systems, Inc. | Lookaside buffer for inputting multiple address translations in a computer system |
DE813709T1 (de) * | 1995-03-03 | 1998-10-22 | Hal Computer Systems Inc | Mikro-tlb mit parallelem zugriff zum beschleunigen der adressübersetzung |
US5564062A (en) * | 1995-03-31 | 1996-10-08 | International Business Machines Corporation | Resource arbitration system with resource checking and lockout avoidance |
US5832297A (en) * | 1995-04-12 | 1998-11-03 | Advanced Micro Devices, Inc. | Superscalar microprocessor load/store unit employing a unified buffer and separate pointers for load and store operations |
US5802588A (en) * | 1995-04-12 | 1998-09-01 | Advanced Micro Devices, Inc. | Load/store unit implementing non-blocking loads for a superscalar microprocessor and method of selecting loads in a non-blocking fashion from a load/store buffer |
JPH0934786A (ja) * | 1995-07-14 | 1997-02-07 | Fujitsu Ltd | 命令供給装置 |
US6643765B1 (en) | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
US5680641A (en) * | 1995-08-16 | 1997-10-21 | Sharp Microelectronics Technology, Inc. | Multiple register bank system for concurrent I/O operation in a CPU datapath |
US6029242A (en) * | 1995-08-16 | 2000-02-22 | Sharp Electronics Corporation | Data processing system using a shared register bank and a plurality of processors |
US6101590A (en) | 1995-10-10 | 2000-08-08 | Micro Unity Systems Engineering, Inc. | Virtual memory system with local and global virtual address translation |
US5960463A (en) * | 1996-05-16 | 1999-09-28 | Advanced Micro Devices, Inc. | Cache controller with table walk logic tightly coupled to second level access logic |
US5987578A (en) * | 1996-07-01 | 1999-11-16 | Sun Microsystems, Inc. | Pipelining to improve the interface of memory devices |
WO1998002803A1 (en) * | 1996-07-16 | 1998-01-22 | Advanced Micro Devices, Inc. | Unified load/store unit for a superscalar microprocessor and method of operating the same |
EP1005672B1 (en) * | 1996-07-16 | 2010-10-06 | GlobalFoundries, Inc. | Load/store unit and method for non-blocking completion of loads in a superscalar microprocessor |
US6081873A (en) * | 1997-06-25 | 2000-06-27 | Sun Microsystems, Inc. | In-line bank conflict detection and resolution in a multi-ported non-blocking cache |
US6003126A (en) * | 1997-07-01 | 1999-12-14 | International Business Machines | Special instruction register including allocation field utilized for temporary designation of physical registers as general registers |
US6148372A (en) * | 1998-01-21 | 2000-11-14 | Sun Microsystems, Inc. | Apparatus and method for detection and recovery from structural stalls in a multi-level non-blocking cache system |
US6360307B1 (en) | 1998-06-18 | 2002-03-19 | Cypress Semiconductor Corporation | Circuit architecture and method of writing data to a memory |
US6212611B1 (en) | 1998-11-03 | 2001-04-03 | Intel Corporation | Method and apparatus for providing a pipelined memory controller |
US6295586B1 (en) * | 1998-12-04 | 2001-09-25 | Advanced Micro Devices, Inc. | Queue based memory controller |
US6240458B1 (en) * | 1998-12-22 | 2001-05-29 | Unisys Corporation | System and method for programmably controlling data transfer request rates between data sources and destinations in a data processing system |
GB2385174B (en) | 1999-01-19 | 2003-11-26 | Advanced Risc Mach Ltd | Memory control within data processing systems |
US6260090B1 (en) * | 1999-03-03 | 2001-07-10 | International Business Machines Corporation | Circuit arrangement and method incorporating data buffer with priority-based data storage |
US6499090B1 (en) | 1999-12-28 | 2002-12-24 | Intel Corporation | Prioritized bus request scheduling mechanism for processing devices |
DE60009355T2 (de) * | 2000-04-03 | 2005-02-24 | Advanced Micro Devices, Inc., Sunnyvale | Busbrücke mit einer speichersteuerung mit verbessertem speicheranforderungsarbitrierungsmechanismus |
US20020161978A1 (en) * | 2001-02-28 | 2002-10-31 | George Apostol | Multi-service system-on-chip including on-chip memory with multiple access path |
US6804758B2 (en) * | 2001-06-29 | 2004-10-12 | Xgi Technology Inc. | Method for adaptive arbitration of requests for memory access in a multi-stage pipeline engine |
US7039736B2 (en) * | 2003-01-15 | 2006-05-02 | Hewlett-Packard Development Company, L.P. | Systems and methods for accessing bus-mastered system resources |
US6961280B1 (en) | 2003-12-08 | 2005-11-01 | Altera Corporation | Techniques for implementing address recycling in memory circuits |
US7962698B1 (en) | 2005-10-03 | 2011-06-14 | Cypress Semiconductor Corporation | Deterministic collision detection |
US8108573B2 (en) * | 2008-02-29 | 2012-01-31 | International Business Machines Corporation | Apparatus, system, and method for enqueue prioritization |
US8006003B2 (en) * | 2008-02-29 | 2011-08-23 | International Business Machines Corporation | Apparatus, system, and method for enqueue prioritization |
US8930641B1 (en) * | 2011-06-14 | 2015-01-06 | Altera Corporation | Systems and methods for providing memory controllers with scheduler bypassing capabilities |
US11960400B2 (en) | 2022-04-26 | 2024-04-16 | Cadence Design Systems, Inc. | Managing multiple cache memory circuit operations |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1443777A (en) * | 1973-07-19 | 1976-07-28 | Int Computers Ltd | Data processing apparatus |
US4392200A (en) * | 1980-01-28 | 1983-07-05 | Digital Equipment Corporation | Cached multiprocessor system with pipeline timing |
US4500958A (en) * | 1982-04-21 | 1985-02-19 | Digital Equipment Corporation | Memory controller with data rotation arrangement |
US4551799A (en) * | 1983-02-28 | 1985-11-05 | Honeywell Information Systems Inc. | Verification of real page numbers of stack stored prefetched instructions from instruction cache |
US4729093A (en) * | 1984-09-26 | 1988-03-01 | Motorola, Inc. | Microcomputer which prioritizes instruction prefetch requests and data operand requests |
US4695943A (en) * | 1984-09-27 | 1987-09-22 | Honeywell Information Systems Inc. | Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization |
JPS62152043A (ja) * | 1985-12-26 | 1987-07-07 | Nec Corp | 命令コ−ドアクセス制御方式 |
CA1286784C (en) * | 1986-08-27 | 1991-07-23 | Joseph A. Petolino, Jr. | Cache storage queue |
US4722046A (en) * | 1986-08-27 | 1988-01-26 | Amdahl Corporation | Cache storage priority |
US4872111A (en) * | 1986-08-27 | 1989-10-03 | Amdahl Corporation | Monolithic semi-custom IC having standard LSI sections and coupling gate array sections |
US5006980A (en) * | 1988-07-20 | 1991-04-09 | Digital Equipment Corporation | Pipelined digital CPU with deadlock resolution |
US4875160A (en) * | 1988-07-20 | 1989-10-17 | Digital Equipment Corporation | Method for implementing synchronous pipeline exception recovery |
US5027270A (en) * | 1988-10-11 | 1991-06-25 | Mips Computer Systems, Inc. | Processor controlled interface with instruction streaming |
-
1989
- 1989-02-03 US US07/306,870 patent/US5222223A/en not_active Expired - Lifetime
- 1989-09-08 CA CA000610687A patent/CA1325285C/en not_active Expired - Fee Related
-
1990
- 1990-01-29 DE DE69031139T patent/DE69031139T2/de not_active Expired - Fee Related
- 1990-01-29 EP EP90300877A patent/EP0391517B1/en not_active Expired - Lifetime
- 1990-01-29 AT AT90300877T patent/ATE156278T1/de active
- 1990-02-02 JP JP2024310A patent/JPH02289013A/ja active Granted
- 1990-04-27 AU AU53947/90A patent/AU628530B2/en not_active Ceased
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0594305A (ja) * | 1991-02-19 | 1993-04-16 | Matsushita Electric Ind Co Ltd | キヤツシユメモリ装置 |
WO2007052369A1 (ja) * | 2005-10-31 | 2007-05-10 | Fujitsu Limited | 演算処理装置,情報処理装置,及び演算処理装置のメモリアクセス方法 |
US7797494B2 (en) | 2005-10-31 | 2010-09-14 | Fujitsu Limited | Arithmetic processor, information processing apparatus and memory access method in arithmetic processor |
JPWO2008155825A1 (ja) * | 2007-06-19 | 2010-08-26 | 富士通株式会社 | 演算処理装置および演算処理方法 |
JP4608011B2 (ja) * | 2007-06-19 | 2011-01-05 | 富士通株式会社 | 演算処理装置および演算処理方法 |
US8296518B2 (en) | 2007-06-19 | 2012-10-23 | Fujitsu Limited | Arithmetic processing apparatus and method |
JP2017027156A (ja) * | 2015-07-16 | 2017-02-02 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
AU5394790A (en) | 1991-12-19 |
DE69031139T2 (de) | 1998-02-19 |
JPH0526215B2 (ja) | 1993-04-15 |
EP0391517A2 (en) | 1990-10-10 |
US5222223A (en) | 1993-06-22 |
EP0391517A3 (en) | 1992-09-02 |
AU628530B2 (en) | 1992-09-17 |
DE69031139D1 (de) | 1997-09-04 |
CA1325285C (en) | 1993-12-14 |
ATE156278T1 (de) | 1997-08-15 |
EP0391517B1 (en) | 1997-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH02289013A (ja) | 複数メモリーリクエストのオーダおよびキューイング方法および装置 | |
US5349651A (en) | System for translation of virtual to physical addresses by operating memory management processor for calculating location of physical address in memory concurrently with cache comparing virtual addresses for translation | |
US4926323A (en) | Streamlined instruction processor | |
JP2701179B2 (ja) | データ処理システム | |
US4985825A (en) | System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer | |
US5125083A (en) | Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system | |
US4875160A (en) | Method for implementing synchronous pipeline exception recovery | |
US5418973A (en) | Digital computer system with cache controller coordinating both vector and scalar operations | |
US7991983B2 (en) | Register set used in multithreaded parallel processor architecture | |
US6212603B1 (en) | Processor with apparatus for tracking prefetch and demand fetch instructions serviced by cache memory | |
JPH02240735A (ja) | データ冗長度分解能をもつマルチプル命令処理システム | |
US20030188127A1 (en) | Risc processor supporting one or more uninterruptible co-processors | |
US6012134A (en) | High-performance processor with streaming buffer that facilitates prefetching of instructions | |
KR20040045035A (ko) | 힌트 버퍼를 이용한 메모리 액세스 대기시간 숨김 | |
US7430643B2 (en) | Multiple contexts for efficient use of translation lookaside buffer | |
JPH02208728A (ja) | 仮想命令キャッシュ再補充アルゴリズム | |
JP2004362564A (ja) | 統一イベント通知およびコンシューマ−プロデューサメモリ演算による仮想プロセッサ方法および装置 | |
JPH02207351A (ja) | データ路の巾が予め定められたコンピュータシステムのデータ記憶レートを増加する方法及び装置 | |
KR20100111700A (ko) | 로킹된 오퍼레이션을 수행하기 위한 방법 및 시스템 | |
US5897654A (en) | Method and system for efficiently fetching from cache during a cache fill operation | |
US20030196072A1 (en) | Digital signal processor architecture for high computation speed | |
JPH08249175A (ja) | スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置 | |
IE901527A1 (en) | Method and apparatus for ordering and queuing multiple¹memory requests | |
IE901528A1 (en) | Method and apparatus for controlling the conversion of¹virtual to physical memory addresses in a digital computer¹system | |
JP2005182791A (ja) | 汎用組込みプロセッサ |