JP2009505178A - 少なくとも2つの命令実行部と少なくともデータ及び/または命令のための第1記憶装置または記憶領域とを備えたコンピュータシステムにおいて、データ及び/または命令を格納する装置及び方法 - Google Patents
少なくとも2つの命令実行部と少なくともデータ及び/または命令のための第1記憶装置または記憶領域とを備えたコンピュータシステムにおいて、データ及び/または命令を格納する装置及び方法 Download PDFInfo
- Publication number
- JP2009505178A JP2009505178A JP2008525516A JP2008525516A JP2009505178A JP 2009505178 A JP2009505178 A JP 2009505178A JP 2008525516 A JP2008525516 A JP 2008525516A JP 2008525516 A JP2008525516 A JP 2008525516A JP 2009505178 A JP2009505178 A JP 2009505178A
- Authority
- JP
- Japan
- Prior art keywords
- data
- instruction execution
- cache
- unit
- counter
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000012545 processing Methods 0.000 claims description 10
- 230000009977 dual effect Effects 0.000 description 29
- 230000008569 process Effects 0.000 description 28
- 230000008901 benefit Effects 0.000 description 9
- 230000003111 delayed effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 210000004027 cell Anatomy 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 210000000352 storage cell Anatomy 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000007420 reactivation Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1683—Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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
-
- 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
-
- 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/30181—Instruction operation extension or modification
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems in which the redundancy can be transformed in increased performance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本発明は、少なくとも2つの命令実行部と、少なくともデータ及び/または命令のための第1記憶装置または記憶領域とを備えたコンピュータシステムにおいて、データ及び/または命令を格納する装置及び方法であって、切り替え手段が設けられ、少なくとも2つの駆動モード間で切り替えられており、比較手段が設けられ、第1駆動モードがコンペアモードに、第2駆動モードがパフォーマンスモードに相当する装置及び方法において、装置に第2記憶装置または記憶領域が含まれており、装置はキャシュメモリシステムとして構成され、少なくとも2つの異なるポートが備えられており、1つのポートは第1命令実行部と直接接続されており、第2ポートと少なくとも第2命令実行部のとの間に第3装置が含まれており、第3装置は、前記第2命令実行部による前記第2記憶装置または記憶領域へのアクセスが前記第3装置を経由して行われるように、構成されていることを特徴とする、少なくとも2つの命令実行部とデータ及び/または命令のための少なくとも第1記憶装置または記憶領域とを備えたコンピュータシステムにおいて、データ及び/または命令を格納する装置及び方法に関する。
Description
本発明は、高速の緩衝記憶装置(キャッシュ)を備えたマイクロプロセッサシステムに関し、この関連において、デュアルポート・キャッシュ(dual port cache)について、及び特に、択一的に互いに独立して機能する、または同一のタスクを処理する少なくとも2つの命令実行部を備えるデータ処理システムで利用するための、デュアルポート・キャッシュの利用について記載する。
(独国特許出願公開第10332700号公報等に記載されているように)複数の命令実行部(コア、プロセッサ)が、様々な形式で、すなわち、様々な駆動モードで協働するマルチプロセッサ・アーキテクチャにおいて、少なくとも2つの異なるモードの切り替えが命令によって行われることが可能でなければならない。また、同一のタスクを処理する場合は、生成されたデータを互いに比較することが可能でなければならない。
プロセッサには、命令及びデータへのアクセスを加速させるために、キャッシュが設けられている。これは、データ量が常に増加し、その一方で常に高速化されて稼動するプロセッサによるデータ処理がますます複雑になっている状況においては必要不可欠である。キャッシュによって、容量が大きい(主)記憶装置へのゆっくりしたアクセスが部分的に回避され、プロセッサは、データが提供されるまで待つ必要がない。命令専用のキャッシュ、及びデータ専用のキャッシュが知られているが、データも命令も同一のキャッシュに格納されるユニファイド・キャッシュ(Unified Cache)も公知である。また、複数のレベル(階層レベル)のキャッシュを含むシステムも知られている。このような多層(構造)のキャッシュは、レベル分けされた記憶容量、及び様々な階層レベルにおけるキャッシュの様々な形式のアドレス指定ストラテジーによって、プロセッサと(主)記憶装置との間の速度を最適に調整するために組み込まれる。マルチプロセッサシステムにおいては、通常、各プロセッサに1つのキャッシュ、またはマルチレベルキャッシュ(Multi−Lebel Cache)の場合は、それに対応して複数のキャッシュが設けられている。さらに、米国特許第4345309号公報に記載されているように、様々なプロセッサによってアドレス指定可能な、(内部に)複数のキャッシュが存在するシステムが知られている。
本願を除いた上記のようなシステムにおいて、生成されたデータを比較するユニット(コンパレータ(Vergleicher))が、可能な実施形態において、キャッシュに従って配置されている。そのため、データはキャッシュから主記憶装置へのライトバック(書き戻し、Rueckschreiben)の際に始めて比較されることが可能であり、従ってデータの有効性に関する評価が遅延する可能性がある。一方、コンパレータが命令実行部とキャッシュとの間に配置される場合、命令実行部とキャッシュとの間のデータ転送が、信号の比較的高い電気的負荷によって遅くなる。
本発明の課題は、データ比較が、キャッシュへの格納とほぼ同時に、主記憶装置への応答時点に依存せずに行われることを確証することにある。その際、少なくとも1つの命令実行部とキャッシュとの間のデータ転送が、比較的高い電気的負荷によって阻止されるべきではない。
デュアルポート・キャッシュメモリ(Dual Port Cache−Speicher)の実現は、ハードウェアのコストが高いため、1つまたは複数の命令実行部(シングルコアまたはマルチコア)を備えた従来のプロセッサシステムにおいては進歩性がない。(独国特許出願公開第10332700 号広報等に記載されているように)複数の命令実行部(コア、プロセッサ)が様々な形式で、すなわち、様々な駆動モードで協働するマルチプロセッサ・アーキテクチャの場合、デュアルポート・キャッシュ・アーキテクチャは有利に投入される。複数のキャッシュを備えたマルチプロセッサシステムに対する重要な利点は、マルチプロセッサシステムの駆動モードを切り替える際に、キャッシュの内容がクリアされるか、または無効にされる必要がないことにある。すなわち、データは一度だけ格納され、従って切り替え後も(データの)整合性がある。
従って、少なくとも1つの命令実行部について、キャッシュとの直接的な接続によって、データ速度が速いこの高速領域においてデータ転送が妨害されずに行われ、それにもかかわらず、キャッシュでのデータ格納の直後に比較が遅延なく行われる実施形態には利点があるであろう。その際、比較のためデータがリードバック(zuruecklesen)される先となるキャッシュの、第2ポートが使用される。
複数の駆動モードを備えたマルチプロセッサシステムにおけるデュアルポート・キャッシュには、データ/命令が複数回キャッシュに呼び出されたり、また場合によっては、処理されたりする必要がない、という利点がある。さらに、このデータまたは命令が複数の命令実行部に利用されるとしても、1つの記憶セル(Speicherplatz)しか、データ/命令単位でハードウェアに基づき提供される必要がない。さらに、データは、マルチプロセッサシステムの様々な駆動モードにおいて、データがどのモードで処理されたのか、または呼び出されたのかということまで区別される必要がない。特別な利点として、キャッシュは、駆動モードの切り替えの際に、クリアされる必要がない。デュアルポート・キャッシュの場合、2つのプロセッサが、同時に同一のデータ/命令に読み出しアクセスすることが可能である。さらに、特別な利点として、「ライトスルー」(write through)モードの代わりに、「ライトバック」(write back)モードが、キャッシュのために投入される。この方法によって、(主)記憶装置は常に更新される必要がなく、キャッシュでデータが上書きされた際にはじめて更新される。その際、2つのプロセッサのためのキャッシュは、同一のソース(発生源)のデータを伝達しているので、整合性の問題は発生しない。さらに、比較は主記憶装置へのライトバック(Rueckschreiben)に依存せずに行われるので、データの比較時点も、整合性の問題に関係しない。
非対称なデュアルポート構造の利点は、ここで本発明に基づき提案されているように、特に、少なくとも1つの命令実行部のためのキャッシュへのデータの書き込みが阻止されず、その一方、キャッシュのデータが主記憶装置に書き込まれるまで比較を待つ必要がない、という点にある。従って、キャッシュ内のブロックが、他のブロックによって置き換えられた場合(「ライトバック」モード)、データは最初にブロック単位で主記憶装置へライトバックされる(zurueckschreiben)。そのため、キャッシュと主記憶装置との間のバスにおけるデータ速度は、キャッシュ内のデータの更新ごとに主記憶装置の対応するデータも同時に変更される「ライトスルー」モードに比べて遅い。その際、更新は、ブロックごとではなく、変更されたデータのみが並行して主記憶装置に伝送される。それにもかかわらず、バスにも書き込み命令が出されるため、主記憶装置へのバス負荷が(データ転送の意味で)より大きい。
「ライトバック」モードにおいて、命令実行部は、キャッシュのデータが使用可能である限り、キャッシュとのみ協働する。そのため、命令実行部によるキャッシュへの書き込みの際には、ブロックのデータがもはや主記憶装置と一致しないことを示すダーティビット(Dirty Bit)が設定される。関与している命令実行部が共通のキャッシュと協働する限り、主記憶装置のデータは、関連するブロックがキャッシュに残っている限り更新される必要がない。さらに、命令実行部のデータの整合性が損なわれることなく、複数のデータワードが複数回変更されることも可能である。
好ましくは、少なくとも2つの命令実行部と少なくともデータ及び/または命令のための第1記憶装置または記憶領域とを備えるコンピュータシステムにおけるデータ及び/または命令を格納する装置であって、切り替え手段(Umschaltmittel)が設けられ、少なくとも2つの駆動モード間で切り替えが行われ、比較手段が設けられ、第1駆動モードがコンペアモードに、第2駆動モードがパフォーマンスモードに相当する装置において、上記装置において、第2記憶装置または記憶領域が含まれ、上記装置は、キャシュメモリシステム(Cachespeichersystem)として構成され、少なくとも2つの異なる(getrennt)ポートが備えられ、1つの(第1)ポートは第1命令実行部と直接接続され、第2ポートと少なくとも第2命令実行部のとの間に第3装置が含まれており、上記第3装置は、上記第2命令実行部による上記第2記憶装置または上記記憶領域へのアクセスが上記第3装置を経由して行われるように構成される(ausgestalten)ことを特徴としている。
さらに好ましくは、上記装置は、上記切り替え手段及び/または比較手段に少なくとも1つの記憶手段(Speichermittel)が設けられており、切り替えは、(複数の)記憶手段内の少なくとも1ビットによって行われることを特徴としている。
さらに好ましくは、上記装置は、切り替えが、少なくとも1つの、上記コンピュータシステムへの外部または内部信号によって行われることを特徴としている。
さらに好ましくは、上記装置は、上記パフォーマンスモードにおいて、直接接続された命令実行部の上記第3装置が、接続されたポートを経由する上記第2記憶装置への読出し及び書き込みアクセスを保障することを特徴としている。
さらに好ましくは、上記装置は、上記キャッシュメモリシステムに少なくとも1つのカウンタがあり、上記カウンタは、上記第1命令実行部によって、比較に関するデータが、上記キャッシュメモリシステム(dieser Speicher)の第1ポートを経由して格納される度に、増分(inkrementieren)または減分(dekrementieren)されることを特徴としている。
さらに好ましくは、上記装置は、上記カウンタが、対応する接続されたポートにおいて上記コンペアモードに切り替えられる際にカウンタ値を出力し、上記カウンタ値が第3ユニット(die dritte Einheit)に格納されることを特徴としている。
さらに好ましくは、上記装置は、第2カウンタが上記第3装置内に設けられ、上記カウンタのカウンタ値が、上記第3ユニットの上記第2カウンタを設定するために使用されることを特徴としている。
好ましくは、少なくとも2つの命令実行部とデータ及び/または命令のための少なくとも第1記憶装置または記憶領域とを備えたコンピュータシステムにおいてデータ及び/または命令を格納する方法であって、切り替え手段が設けられ、少なくとも2つの駆動モード間で切り替えが行われ、比較手段が設けられ、第1駆動モードがコンペアモードに、第2駆動モードがパフォーマンスモードに相当する方法において、第2記憶装置または記憶領域が設けられ、上記第2記憶装置または記憶領域はキャッシュメモリシステムに含まれ、少なくとも2つの異なるポートが備えられており、第1命令実行部は第1ポートを経由して上記第2記憶装置または記憶領域に直接アクセスし、第2命令実行部は第3装置を経由して上記第2記憶装置または記憶領域へアクセスすることを特徴としている。
好ましくは、上記方法は、上記第3装置が記憶手段を含み、上記記憶手段において、接続された命令実行部のデータ及び/または信号が格納されることが可能であり、第3ユニットが、上記接続された命令実行部の状態に依存せずに、データを上記第2記憶装置または記憶手段と交換できることを特徴としている。
好ましくは、上記方法は、上記第3装置が、データ及び/またはアドレス及び/または制御信号を第2命令実行部(Verarbeitungseinrichtung)から獲得し(erhalten)、次いで上記第2記憶装置または記憶領域の対応するデータに読出しまたは書き込みアクセスすることを特徴としている。
好ましくは、上記方法は、上記キャッシュメモリシステムが、データの存在(Vorhandensein)について決定し、データが存在しない場合に信号を上記第3装置に送信することを特徴としている。
好ましくは、上記方法は、上記第3ユニット内のデータ及び/または命令の有効性が検査され、有効な場合に次に伝送されることを特徴としている。
好ましくは、上記方法は、有効性が、データ及び/または命令と共に格納された追加情報に基づいて検査されることを特徴としている。
好ましくは、上記方法は、上記コンペアモードへの切り替えと共に、同期信号が関連する命令実行部に発信されることを特徴としている。
好ましくは、上記方法は、比較を行い、比較されるデータが不一致(Abweichung)の際に、エラーが信号で通知されることを特徴としている。
好ましくは、上記方法は、多数決判定(Voting)を行い、多数決判定されるデータの少なくとも1つのデータが不一致の際に、状態及び/またはエラーが信号で通知されることを特徴としている。
好ましくは、上記方法は、上記キャッシュメモリシステム内にカウンタが設けられ、上記カウンタが、対応する接続されたポートにおいて上記コンペアもモードに切り替えられる際にカウンタ値を出力し、上記カウンタ値が上記第3ユニットに格納されることを特徴としている。
好ましくは、上記方法は、第2カウンタが上記第3装置内に設けられ、上記カウンタのカウンタ値が、上記第3ユニットの第2カウンタを設定するために利用されることを特徴としている。
好ましくは、上記方法は、上記キャッシュメモリシステムに設けられているカウンタが、1つのポートに割り当てられ、各ポートに接続された処理装置において上記コンペアモードが起動される際に、固定値に設定されることを特徴としている。
本発明の更なる別の利点や有利な実施形態は、特許請求の範囲に記載の請求項の構成要件及び明細書から明らかとなるであろう。
以下、プロセッサ、コア、CPU、FPU(浮動小数点演算装置)(Floating Point Unit)、DSP(デジタルシグナルプロセッサ)(Digitaler Singalprozessor)、コアプロセッサ、ALU(演算論理装置)(Arithmetic Logical Unit)を命令実行部と総称する。
図1に基づくデュアルポート・キャッシュ200は、その本質的な部分がデュアルポートRAM(dpRAM230)で構成されている。このdpRAM230は、特に、2つの互いに独立したアドレスデコーダ(Adressdecoder)と、2つのデータ書き込み/読み出しステップと、単一の記憶セルマトリックス(Speicherzellen−Matrix)とは違って二重化されたワード及びビット線(Wort−und Bitleitung)とが設けられている。従って、少なくとも、dpRAMの任意の記憶セル(Speicherzelle)のための読み出しプロセスが、2つのポートから同時に行われる。(しかし語義に従えば、すべてのアクセス構成要素が二重化されておらず、従ってdpRAMが、同時に2つのポートを介してのみ、アクセス可能である場合、配列(Anordnung)もこれに該当する。)従って、デュアルポートRAMは、2つのポート231及び232を備えたすべてのRAMとして理解される。その際、2つのポート231及び232は、読み出しまたは書き込みのための構成の実行のために、このポートがどのくらい時間を必要とするか、すなわち、要求された読み出しまたは書き込みプロセスが、場合によっては構成との相互作用で他方のポートによって終了されるまで、どのくらい時間が掛かるかということが考慮されることなく、互いに独立して使用される。dpRAMの2つのポートは、信号201または202を介して、装置210または220と接続されている。装置210または220は、独立した命令実行部215及び225からアクセスしてくるアドレス、データ及び制御信号211または221の検査を実行し、任意にアドレスを変換する。データは、読み出しの際ポートに従って、信号201を介して、装置210によって制御信号211に出力される、もしくは信号202を介して、装置220によって制御信号221に出力される、または、それぞれ逆方向に、命令実行部からキャシュメモリへ書き込まれる。dpRAMの2つのポートは、信号201及び202を介して、信号241と接続されたバスアクセス制御240と接続されている。信号241は、ここでは図示されていない(主)記憶装置への接続、または次ステップのキャッシュへの接続を形成している。
図2には、ユニット210、220及び250が詳細に示されている。デュアルポート・キャッシュへのアクセスの際に、信号211及び221に含まれる、命令実行部215及び225のアドレス212及び222が、装置250のアドレスコンパレータ251において互いに比較され、同様に信号211及び221で伝達された制御信号と共に、整合性(Vertraeglichkeit)が検査される。衝突(Konflikte)の際は、信号213または223に含まれる制御信号を利用して、デュアルポートRAM230へのアクセスが阻止される。このような衝突として、2つの命令実行部が同一のアドレスに書き込もうとしている、または、他方の命令実行部が同一のアドレスから読み出そうとしている間に、一方の命令実行部が同一のアドレスに書き込もうとするケースが挙げられるであろう。
キャッシュは、部分的にまたは完全に連想的に実現されることが可能である。すなわちデータは、キャッシュの複数のまたは全く任意の箇所に格納されることが可能である。さらに、dpRAMへのアクセスを可能にするため、所望のデータ/命令にアクセスする際のアドレスが求められなければならない。アドレス指定モードに従って、キャッシュ内のデータの検索先となる、1つまたは複数のブロックアドレスが選択される。これらブロックはすべて読み出され、キャッシュ内のデータと一緒に格納された識別子が、インデックスアドレス(オリジナルアドレスの構成要素)と比較される。一致の際は、同様にキャッシュ内の各ブロックに格納された制御ビット(有効ビット(Valid−Bit)、ダーティビット及びプロセスID等)を利用して有効性が追加的に検査された後に、有効性を示すキャッシュヒット信号(Cache Hit Signal)が生成される。
アドレス変換のため、特に、テーブル(Tabelle)が導入される。テーブルは、図2に示される記憶ユニット214または224(レジスタまたはRAM、TAG−RAMとも呼ばれる)に配置され、ユニット210または220内に設けられている。このテーブルは、アドレス変換ユニット(Adresstransformationseinheit)であり、仮想アドレスを物理アドレスに変換するだけではなく、ダイレクトマップ・キャッシュ(direct−mapped Cache)の場合は、正確な(一義的な)キャッシュ・アクセスアドレスを伝達する。すなわち、複数の連想キャッシュ構造の際には、複数のブロックが呼び出される。また、完全な連想キャッシュの場合、キャッシュの全ブロックが読み出され、比較されなければならない。このようなアドレス変換ユニットは、例えば米国特許第4669043号公報に記載されている。
例えば、上記のテーブルでは、ブロックの各アドレスまたはアドレスグループと、dpRAMのアクセスアドレスとが対応している。図3に示されるアドレス指定形式において、さらに、キャッシュのブロック容量に応じて、最上位のアドレスビット(インデックスアドレス)が、テーブルのアドレスとして使用され、その内容はdpRAMのアクセスアドレスである(図3)。その際、キャッシュのアドレスが読み出しアクセスされる場合、キャッシュミス(Cache Miss)(キャッシュに必要なデータが無いこと)の際にメモリから一緒にキャッシュへ呼び出される複数のバイトを、ブロック(Block)と呼ぶ。このようなブロック転送は、複数の構成要素でのハードウェアの実現に従って、時間的に連続して行われるか、または並行して実行される。
バイトまたはワード単位でのキャッシュへのアクセスのために、ブロックのための最上位のアドレスビットがテーブルによって変換され、残りの(下位の)アドレスビットは変更されずに引き継がれる。
書き込みプロセスのため、例えば、2つのポートの1つに、より高いプライオリティが与えられる。すなわち、同時に2つのポートによって書き込まれることが阻止される。優先順位が高いポートが書き込み動作を実行してはじめて、他方のポートは書き込んでもよい。場合によっては、1つのプロセッサだけが、対応する割り当てられたメモリ領域の書き込み(アクセス)権を持つ。同様に、記憶セルへの任意の書き込み動作の際に、同一の記憶セルがその都度他方のポートから読み出されることが阻止される。または、読み出しを要求するプロセッサが書き込み動作の終了まで停止されることによって、読み出し動作が遅延される。さらに、図2に示される全アドレスビットのアドレスコンパレータ(251)は、対応するアービタ(Arbiter)252を備えている。アービタ252は、プロセッサの制御信号も評価し、この書き込みプロセスを制御する出力信号213及び223を形成する。出力信号213及び223は、有利な実施形態において、その都度3つの信号状態、すなわち、選択(Select)、待機(wait)及びイコール(equal)の状態になることが可能である。純粋な命令キャッシュのために、書き込みアクセスは必要ではない。すなわち、この場合、出力信号213及び223の信号状態が「イコール」であれば十分である。
キャッシュミスの際、データまたは命令は、バスシステムを介してプログラムまたはデータメモリから呼び出されなければならない。呼び出されたデータは、次いで命令実行部へ伝達され、並行して、識別子及び制御ビットと共にキャッシュに書き込まれる。この場合も、アドレスコンパレータは、ヒット(Hit)がなくても、イコール信号(213及び223の構成要素または状態)がアドレスコンパレータによって表示される場合、メモリからのデータの再呼び出しを阻止する。イコール信号は、常に記憶装置の全ブロックが呼び出されるため、双方からの読み出しの際に最上位アドレスビットによってのみ形成される。ブロックがキャッシュで格納されてはじめて、待機している命令実行部はキャッシュにアクセスできる。
更なる別の有利な実施形態において、2つの異なる、データ及び命令のためのデュアルポート・キャッシュが設けられている。命令のためのデュアルポート・キャッシュでは、書き込みプロセスは設けられていない。この場合、アドレスコンパレータは、常に最上位のビットの一致(Gleichheit)のみを検査しており、対応する制御信号「イコール」を信号213及び223内に提供する。
更なる別の実施形態において、双方のポートからの同時の読み出しアクセスは、要求されたデータが、同時アクセスを可能にする異なる(別々の)アドレス領域にある場合に、無制限に行われる。従って、ハードウェア実現の際に記憶装置内の全アクセス構造(Zugriff−Mechanismus)が二重化される必要がないので、コストが節約される。例えば、キャッシュは、複数の互いに独立して駆動されるサブ記憶領域(Teilspeicherbereich)に実現されることが可能である。各サブ記憶領域は、選択信号(select−Signal)を介して、ポート実行のみを可能にする。図4には、このような記憶装置230が示されており、2つのサブ記憶領域235及び236を含んでいる。ここで示される実施形態において、アドレスビットAiから、2つの選択信号E0とE1が、Ai=0の際はE0=1、E1=0に、またAi=1の際はE0=0、E1=1となるように形成される。信号233及び234には、2つの選択信号と下位のアドレスビットAi−1・・・A0が含まれている。
4つのサブ記憶装置を備えた更なる別の実施形態において、各サブ記憶装置が一義的に1つの特定のアドレス領域を供給する(bedienen)ため、4つの選択信号が2つのアドレスビットから生成される。従って、例えば、4つのサブ記憶領域は、4つの選択信号E0〜E3が図T1(表1)に基づく2進値に対応して生成されることによって、2つのアドレスビットAi+1及びAiによって呼び出されることが可能である。
図5には、図4で示されるサブ記憶装置235及び236のための実施形態が示されている。サブ記憶装置260は、この特別な実施形態において、シングルポート(Single Port)RAM280として実現されており、そのアドレス、データ及び制御信号は、要求に応じて切り替えられる。切り替えは、制御回路(Steuerschaltung)270によって、マルチプレクサ(Multiplexer)275を利用して、対応するポートからの制御信号及び他の制御信号2901または2902(読み出し、書き込み等)に従って行われる。これらの信号は、データ及びアドレスと一緒に信号233及び234に含まれており、信号5281及び5282を介して、マルチプレクサ275に伝達される。マルチプレクサ275は、制御回路270の決定に基づき、出力信号2701に応じて、5281または5282を信号2801と接続する。この実施形態において、一般論に限定することなく、キャッシュへの直接的なアドレス指定に基づいている(ダイレクトマップ方式:direct−mapped)。多重連想キャッシュ構造(mehrfach−assoziative Cacheorganisation)の際には、ユニット275において有効性に関する比較が行われ、キャッシュヒット信号がポートに伝達される。または、全データがポート5331及び信号233を介してポート231へ、もしくは、ポート5332及び信号234を介してポート232へ伝達され、そこで有効性が検査される。
その際、制御回路は、信号5281または5282を、さらに、シングルポートRAM280への信号2801に切り替えることが可能であり、データ及び(シングルポートRAM)280の他の信号を逆方向に伝達することも可能である。これは、有効な制御信号、信号233及び234、及び/または、ポートがこれらの信号を介して読み出しまたは書き込み動作を記憶装置280によってうながす順序、に従って行われる。信号233及び234で、読み出しまたは書き込み信号が同時にアクティブになった場合、予め定義されたポートが最初に利用される。その後、この優先的なポートは、読み出しまたは書き込み信号がアクティブでない場合は、2801と接続されたままの状態にされる。優先的なポートは、任意で、動的にプロセッサシステムによって設定されることが可能であるが、特に、その際プロセッサシステムの状態情報に従って設定される。
シングルポートRAMを備えたこの配列は、並行アクセスが可能なデュアルポートRAMより安価である。しかし、同時に1つのサブ記憶装置に(読み出し)アクセスされた場合、少なくとも1つの命令実行部の実行が遅延する。適用(Anwendung)に応じて、RAMサブ領域を、様々な命令実行部の命令シーケンス及びデータアクセスの形成と同時に同一のRAMサブ領域への同時アクセスが可能な限り少なく行われるように、様々に分割することが可能である。この構成は、2つ以上のプロセッサによるアクセス(が可能なよう)に拡張されることも可能である。同様に、アドレス、データ及び制御信号の切り替えが、複数のマルチプレクサを介して、ステップごとに連続して設けられる場合(図6及び図7)、マルチポートRAMも実現可能である。
図6には、このようなマルチポートRAM290が示されている。マルチポートRAM290では、ポート入力信号261〜267が、復号化装置331〜337において、信号291〜297へと復号化される。この複合化によって、281、282〜288内の個々のRAMへのアクセスのための選択信号が生成される。図7には、サブ記憶装置28x(281・・・288)のための実施形態が詳細に示されている。サブ記憶装置では、制御装置370の第1ステップにおいて、制御信号291〜298からの選択信号及び制御信号3901〜3908が、出力信号3701〜3707へと加工される。この出力信号は、それぞれマルチプレクサ375を駆動する。マルチプレクサ375は、信号値に従って、バス381または382〜387または388を信号481〜488と接続する。更なる別のステップにおいて、類似した制御装置370及びマルチプレクサ375は、最後のステップにおいて制御装置のための信号5901及び5902が使用されるまで、適切に駆動される。その後、出力信号5701は、581または582を、シングルポートRAMと接続されている681と接続する。
図5に示されるマルチプレクサ275とは反対に、図7におけるマルチプレクサ375は、アドレス及びデータ及び制御(に関する)信号の他に、381〜388に含まれている、次ステップの制御信号も接続する。さらに、マルチプレクサ375内に、多重連想アドレス指定方式の際にサブ領域から読み出されたデータの有効性を求める、比較ユニットが含まれることが可能である。
更なる別の有利な実施形態において、RAM領域から様々な命令実行部への切り替えが、1つのまたは複数のシステム状態または構成に関連付けられることが可能である。従って、図8には、構成可能なデュアルポート・キャッシュの例が示されている。さらに、システムまたは構成信号1000が、2つのポートそれぞれの入力信号の復号化において使用される。図T2(表2)は、Mとして示されている信号1000に従った復号化の変更の可能性を示している。M=0の場合、例えば、2つのポートが全キャッシュへのアクセスを行う、コンペアモードになっている。しかし、M=1である場合(パフォーマンスモード等)、各ポートは、半分のキャッシュへのアクセス(権)のみ有するが、制限されずに(他のポートの動作の影響を受けずに)この領域(半分のキャッシュ)にアクセスすることが可能である。パフォーマンスモードにおいて、アドレスビットAiは、(ダイレクトマップモードの)キャッシュのアドレス指定に利用されるのではなく、アドレス指定においてアドレスビットと異なるデータは、キャッシュの同一箇所に格納される。キャッシュの内容を読み出す際にはじめて、識別子を用いて、検索されているデータが関連しており、これに応じてキャッシュヒット信号が生成されるかどうかが明らかになる。対応するコンパレータがどこに配列されているかに従って、識別子及び制御ビットを含むデータが、信号291〜297を介して、ポート331〜337へ出力される。さらに、信号261〜267が出力される。同様に、パフォーマンスモード(M=1)において、ポート1のみが全キャッシュへのアクセス権を持つ。この更なる別の実施形態は、図T3(表3)に示されている。利用者は、複数の構成信号によって、キャッシュを任意で他の形式で分割することが可能である。これによって、比較的大きなキャッシュ領域において、ヒット率(Hit−Rate)が一度高められ、それに伴い主記憶装置からデータを呼び出す必要性が低減される。一方、様々なポートを介して可能な限り別々の独立したキャッシュ領域がアクセスされた場合、様々な命令実行部は(アクセスが)阻止されない。この条件は利用のために設けられたプログラムに依存するので、利用に従って更なる別の構成が可能である場合に利点がある。一方、システム状態(コンペアモード/パフォーマンスモード)を切り替えた際に直接、キャッシュはモード信号1000によって自動的に切り替えられる。
このモードまたは構成信号に従ってポートを切り替える可能性は、図9のマルチポート・キャッシュ290において広げられる。その際、ポート331〜337は、モードまたは構成信号を用いて、様々なサブRAM領域281〜288を制御する。この制御は、これに対応してポートで生成された、信号291〜297に含まれている選択信号によって保障される。
図10には、多重連想キャッシュが存在する、更なる別の実施形態が示されている。多重連想キャッシュにおいて、各サブ記憶装置281〜288から、データが、識別子及び制御ビットと共にリードバック(zuruecklesen)される。比較装置2811〜2817、2821〜2827、・・・2881〜2887において有効性が検査され、検査結果に従って、信号2910、2920・・・2970のデータが、有効信号と共に次に転送される。その際、択一的に、モードまたは構成信号による切り替えが、すでに図9で示し解説したのと同様に可能である。ポート3310、3320、・・・3370において、有効性信号及び場合によってはモード及び構成信号1000が評価され、対応する有効なデータが、キャッシュヒット信号またはキャッシュミス信号と共に信号2610、2620、・・・2670へ転送される。
図B1には、2つの命令実行部を備えた非対称なシステム構造のためにデュアルポート・キャッシュを利用する、構造が示されている。その際、B110及びB111は、独自のデータ/アドレス及び制御信号B120またはB121を有する2つの命令実行部である。B100は、切り替え及び比較ユニット(UVE:Umschalt− und Vergleicheihheit)である。
図B2には、2つ命令実行部B10及びB11と接続して利用する際の、切り替え及び比較ユニットの基本機能が示されている。データ、制御及びアドレス信号B20またはB21等の、命令実行部B10及びB11の様々な出力信号は、切り替えユニットと接続されている。
さらに、少なくとも1つの同期信号が、すなわち本発明の一実施形態に基づく構成において、2つの出力信号B40及びB41が存在する。出力信号B40及びB41は、それぞれ比較ユニットと接続されている。
切り替えユニットは、少なくとも1つの制御レジスタB15を含んでいる。制御装置レジスタは、少なくとも1つの、二進信号(Bit)B16のためのメモリ要素を有している。その際、二進信号B16は、比較ユニットのモードを切り替える。このビットB16は、2つの値0及び1を獲得することが可能であり、命令実行部の信号B20もしくはB21によって、または切り替え装置の内部プロセスによって、設定されるか、またはリセットされる。
永続的にコンペアモードに調整される場合、切り替えユニットと、それに伴って制御レジスタB15及び切り替えビットB16とを省略することが可能である。その際、切り替え及び比較ユニットは、永続的に比較ユニットとなり、信号B101は常に1である。従って、図B3及びB4に示される状態が存在しない。従って以下のすべての考察においては、ビットB16が設定されており、信号B101=1であるものと仮定する。
このビットB16が1に設定される場合、切り替えユニットはコンペアモードで駆動する。このモードにおいて、B20のアクセスする全データ信号は、特定の設定可能な、信号B20及びB21の制御及び/またはアドレス信号の比較条件が満たされている限り、B21のデータ信号と比較される。制御及び/またはアドレス信号は、データの有効性及びアクセスするデータの比較の予定について信号で知らせる。
この比較条件が、2つの信号B20及びB21で同時に満たされている場合、これらの信号のデータが直接比較され、不一致の際にエラー信号B17が設定される。信号B20またはB21のどちらかの比較条件のみが満たされている場合、対応する同期信号B40またはB41が設定される。この信号は、対応する命令実行部B10またはB11において、処理を停止させる。さらに、対応する、それ以前に互いに比較されなかった信号を続けて切り替えること(Weiterschaltung)を阻止する。信号B40またはB41は、対応するその都度の他方の命令実行部B21またはB20の比較条件が満たされている限り、設定されたままである。この場合、比較が行われ、対応する同期信号がリセットされる。
上記のように比較されるデータが同時に提供されない場合に、2つの命令実行部による比較を保障するためには、対応する命令実行部のデータ及び比較条件を、対応する同期信号B40またはB41がリセットされるまで、対応する値に設定し続ける必要がある。または、最初に提供されたデータは、比較が行われるまで切り替えユニットで格納されなければならない。
どの命令実行部が最初にデータを提供するかに従って、独自のプログラムまたは工程を更に実行する命令実行部は、他方の命令実行部が対応する比較データを提供する限り、待機しなければならない。
図B2に基づく切り替えユニットの特別な実施形態において、信号B40またはB41の1つを省略することが可能である。すなわち、信号が付属している命令実行部が、他方の実行命令部より早く比較データを提供しないことが常に保障されている場合、信号B40またはB41は省略される。B16が設定されていない場合、同期信号B40及びB41並びにエラー信号B17は、常に0に設定される。その際比較は行われず、双方の命令実行部は、互いに独立してパフォーマンスモードで駆動する。
パフォーマンスモードにおいて、図B1に基づく2つの命令実行部は独立して、プログラム、プログラム部分またはプログラムセグメントを処理する。命令実行部B111は、B121を介して、キャッシュB105へアクセスし、キャッシュは、B161を介して、主記憶装置または他の記憶装置と接続する。命令実行部B110は、特に(制御信号B101によってパフォーマンスモードでは非アクティブに調整される)装置106を介して、同様にデュアルポート・キャッシュにアクセスし、その際このキャッシュの第2ポートを利用する(図B3参照)。切り替え及び比較ユニット(UVE)B100は、非アクティブである。すなわち、データは比較されない(B16が設定されない)。更なる別の実施形態において、命令実行部B110によるキャッシュを介したアクセスのために、しかしここでの更なる別の実施形態においては、B160を介した主記憶装置または他の記憶装置への直接的なアクセスが設けられている(図B4参照)。しかし、この更なる別の実施形態には、キャッシュのデータにもはや整合性がないという短所がある。従って、対応するブロックは、キャッシュで有効ビットをリセットすることによって無効にされなければならない。すなわち対応するブロックは、処理ユニット(Bearbeitungseinheit)B110自体によって、または、バスB161を監視し、キャッシュに設けられているブロックが書き込まれるかどうかを検出するキャッシュによって自発的に、無効にされなければならない。このプロセスは、バス監視(bus snooping)と呼ばれている。これに対して、図B3の更なる別の実施形態は、コストがより安価なため利点がある。
図B1に基づく構造のコンペアモードは、図B5において詳細に示されている。UVEB100においてB16が設定されることによってコンペアモードが駆動されると、双方の命令実行部は同一のプログラムの実行を開始する。このプログラムは、場合によっては双方の命令実行部において様々に実行される。すなわち、比較されるデータを生成する、様々なアルゴリズム及び/または命令が利用される。命令実行部B110は、互いに比較されるべきデータを、対応する識別子と一緒に切り替えまたは比較装置(UVE)B100に出力する。
この動作は、読み出し要求ユニットB106における制御信号(書き込み等)の格納を促す。場合によっては、識別子(状態またはプロセス情報、処理周期)が記憶要素B1061へ、さらに識別子に付属するアドレスが記憶要素B1062へ追加的に格納される。従って、ユニットB106は、制御ユニットB1064のB1061から生成された制御信号(読み出し等)と、B1021内の識別子と、B1062によって出力されたデュアルポート・キャッシュB105へのアドレス信号B1022とを用いて、読み出しプロセスを開始する。比較を目的とするキャッシュでの読み出しプロセスにおいては、常に、キャッシュに直接接続された命令実行部が既にデータをキャッシュに書き込み済みであることが前提である。このことは、命令実行部がコンペアモードへの切り替えと共に、適切に時間を合わせてプログラム処理を開始することよって保障される(以下、同期に関する段落を参照)。コンペアモードにおいて、比較されるデータがまだキャッシュで使用可能ではない場合(キャッシュミス)、キャッシュは、まだこのデータを主記憶装置で要求してはならず、データが直接キャッシュと接続されている命令実行部によって書き込まれキャッシュに存在するまで、読み出しアクセスを繰り返さなければならない。データが許容された時間領域で、または特定の試行回数(内)で処理されなかった際は、時間監視(zeitlische Ueberwachung)または失敗した試行を数えるカウンタが、エラー信号を生成する。
それに伴って受信されたデータ値は、B1023を介してB1063に書き込まれる。データの有効性は、受信された制御信号B1024に表示される(キャッシュヒット信号及び有効ビットの評価、有効な際にデータ、アドレス及び適切な制御信号がB1003、B1002及びB1001を介して、比較のためにB100に提供される)。その際、読み出し要求ユニットB106では、キャッシュのデータと共に送り戻された識別子(制御ビット)が現在処理中の(aktuell)識別子と比較される。識別子が不一致の場合、キャッシュ内の同一のアドレスへの読み出しプロセスが新たに開始される。データは、識別子が有効な際にはじめて、場合によっては追加的な識別子としても利用可能なアドレスと共に、比較のための適切な制御信号B1001を用いて使用される。比較値が利用できるまで(または、信号B120がB100内に一時的に格納されない際は、場合によっては比較が終了するまで)、命令実行部B110は、制御信号B140(待機(wait)、割り込み等)を介して停止される。従って、B110の比較データがまだ信号B120に存在することが保障される。信号B120がB100に含まれている先入れ先出し(FIFO)で格納される場合、命令実行部B110は、FIFOの容量が完全に一杯になるまで停止される必要はない。その際、複数のデータワードを格納でき、最初に格納されたデータも最初に再度出力する記憶装置ユニットを、FIFO(first in first out;先入れ先出し)と呼ぶ。
2つの命令実行部の同期は、命令実行部B111が比較データを識別子(アドレス及び追加的なビット、有効ビット、ダーティビット、プロセスID等)と共にキャッシュに格納し、比較の前に有効性が適切に検査されることによって行われる。さらに、格納されたアドレスデータ及び有効ビットが、キャッシュヒット信号の生成のために利用される。ダーティビットは、キャッシュの関連するブロックのデータが変更され、(データが)まだ主記憶装置にライトバック(zuruckgeschrieben)されていないかということのみを表示する。その際、プロセスIDは、有効なデータがB111によってキャッシュに新たに書き込まれる度に変更される、プログラム実行の識別子である。従って、プロセスIDが、例えばコンペアモードの開始と共に特定の値に設定され、公知の方法で変更される、例えば増分される場合に、データの現実性(Aktualitaet)が検査される。
図T4(表4)には、キャッシュの内部構造が示されている。各行は、データブロックに相当する。
アドレス日(Adress−Tag)は、アドレスの構成要素である。ブロックへのアクセスに関連し、実際のアクセスの際にはアドレスインデックスと比較される。有効な有効ビット(制御ビットの構成要素)と一致する際は、キャッシュヒット信号が生成される。データブロックは、若干数のビットから複数キロバイトまでのデータを含むことが可能である。図T5(表5)には、制御ビットの一例が示されている。
例えば、プロセスIDの増分を保障するため、キャッシュB105に、カウンタB1059が設けられている(図B6)。カウンタB1059は、コンペアモード(B101=1)の開始と共に信号B1021及び1022を介して、定義された値に設定される。この値は、第1コンペアモードが開始した場合、例えば、16進値0x0000であることが可能である。このカウンタは、継続的に、B111によって比較に関連するデータが書き込まれる度に増分されることが可能である。その際、比較に関連する(vergleichsrelevant)とは、アドレス及び/または他の制御信号を用いて、データが比較のために設けられているかどうかを設定できるということである。
キャッシュの各データと共にプロセスIDとしてのカウンタ値を格納した場合、データの状態(Datenstand)に一義的にラベル付けされる(kennzeichnen)。ユニットB106の同種のカウンタB1069を用いて、対応するデータがすでにキャッシュに存在するかが、簡単な比較によって決定される。さらに、カウンタB1069は、B101(コンペアモード)の作動と共に、カウンタB1059と同様に、特に同一の開始値に設定され、B110による関連するデータの各書き込み信号と共に増分される。読み出されたブロック内のプロセスIDビットが、B1069のカウンタ値と同じ値である、またはカウンタ値より高い場合、データは有効である。その際、ブロックにも複数回、様々なデータが書き込まれる可能性があるため、カウンタ値が比較的高い可能性がある。カウンタは、新たなサイクルの開始と共に、リセットされる必要がある。その際、新サイクルにおいて、まだ比較されていないデータが上書きされないように阻止されなければならない。
カウンタの更なる別の実施形態は、下位アドレスビット(図3に基づくブロックアドレス指定に関連しないアドレスビット0、・・・、k−1)をプロセスIDの構成要素として格納することである。その一方、他のプロセスIDビットは、サイクルにラベル付けする(kennzeichnen)。ワード幅が1バイトより大きい場合、対応する下位の(niederwertigster)ビットが省略される。従って、ブロック内のどのワードが最新で書き込まれたのかを検出することが可能である。さらに、プログラムシーケンス(Programmablauf)において、例えば、データは常に連続するアドレスと共に書き込まれる。または、時系列に沿って連続する(linear fortlaufend)プログラムを実行する際に、変換表を用いて、B111によって最新に書き込まれた値をB110の現在の(aktuall)比較値に、一義的に対応させることが可能である。
更なる可能性は、カウンタ状態を、プロセスIDとしてデータブロックと共にキャッシュに格納するのではなく、B106による読み出しアクセスの度に、目下のカウンタ状態を、制御信号B1064を介してB106へ伝達することにある。プロセスIDとして、進行中のサイクルのみが、これに対応して若干のメモリビット内に格納される。キャッシュのデータブロックは、今日では通常64キロバイトまで含むことが可能なので、記憶容量は本質的には低減されない。例えば、16個の追加的なプロセスIDビットの(データブロック内での占有率)は、0、0031%未満である。
カウンタB1059及びB1069を利用しない同期の更なる別の実施形態は、コンペアモードを要求するため、制御信号B141(割り込み等)を命令実行部B111へ送信することにある。命令実行部B111は、公知の最大周期(maximale Zeitspanne)Tの後に、コンペアモードでのプログラム実行を開始する。命令実行部B110は、適切に初期化され、コンペアモードを準備すると同時に、最大周期T遅れて開始される。従って、デュアルポート・キャッシュB106内の比較データは、常に、命令実行部B110が対応するデータを出力する前に、準備が出来ていることが保障される。その際、値Tにおいて、場合によっては、データが多様に計算されることも考慮される。すなわち、(計算の)多様性によって、命令実行部B110内(で消費される)よりも長い、命令実行部B111内で消費される時間(Zeitdauer)が、Tに追加されることが考慮される。
比較データの現実性がどのように防護されるかということと無関係に、命令実行部B111は、データが例えば周期的に更新される場合、まだ比較されていないデータを上書きすることが阻止される。更に、ビットB16のリセットは、例えば、命令実行部B111への制御信号B141のリセットも促すことが可能である。B141が設定されている限り、データの周期的な更新の際に、命令実行部B111は、最新サイクルのデータを上書きすることが阻止される。その際、命令実行部B111は、待機ループ(Warteschleife)に入る、またはデータの比較が無くてもよい動作を実行する。B141のリセットと共に、ユニットB106から比較のための更なるデータが要求されておらず、それまでの比較動作が終了していることが、信号で知らされる。B141が新たに設定されない限り、命令実行部B111はパフォーマンスモードで駆動する。従って、キャッシュのデータの上書きが再び可能であるが、B141の再活性化の後にようやく、再度コンペアモードが開始される。
更なる別の実施形態において、信号B141は、割り込みによって比較モードを準備するために、常に短時間アクティブになる。その際、B141が再び短時間設定され、それに伴って開始された割り込みによって、比較データを新たに提供する関連するプログラム箇所にジャンプする(springen)まで、データの上書きが阻止される。
比較開始後に、命令実行部B111によって比較データが準備されるまでの時間(Zeitdauer)が、命令実行部B110のデータとのデータ比較に必要とされる時間より常に長く、B111のデータが常に少なくとも同時にまたはB110のデータより早く準備されており、B110のデータをB100内の単一の記憶装置またはFIFOに一時格納することによって、命令実行部B110が信号B140によって同期を目的として停止される必要がないことが適切な処理によって保障される場合、全ての同期処理(Synchronisationsmassnahme)が省略されることが可能である。ここで提案される方法に関して、各適用(Anwendung)について、その都度必要な処理が行われる。
更なる別の有利な実施形態において、デュアルポート・キャッシュは、必ずしもデュアルポートRAMで実現される必要はなく、シングルポートRAMB1056が利用される(図B7参照)。アクセス制御B1057によって、2つのポートは、順々に要求に従い、利用される。しかし、その際常に、信号B1058を介するRAMへのアクセスのみが、双方のポートを使用する。従って、アクセスが衝突した際に、B106によるリードバック(Rucklesen)が、場合によって1または複数クロック、追加的に遅らされることが可能であるが、データはいずれにせよ2つの命令実行部によって非同期に伝達されるので、様々な利用において短所にはならない。重要なのは、命令実行部B111はより高い優先順位が与えられているので、アクセス時に阻止されないということである。さらに、上記の遅延が発生しうるとしても、全体のバランスから、第2ポートに十分なアクセスの可能性(チャンス)が提供されることが、重要である。この実施形態の利点は、第2ポートのためのハードウェアが明らかに節約されることにある。図B7で信号B1058が、直接信号B121と接続されており、B1057もB102も省略されている限りにおいて、従来技術に従った通常のシングルポートキャッシュが設けられている。シーケンス制御B1057による拡張及びそれに伴う可能なB102の接続は、真に並列なデュアルポートRAMを組み込むより、明らかに追加コストが少ない。
ユニットB106は、独立したユニットである必要はなく、UVEB100に統合されることが可能である、または、キャッシュまたは命令実行部と共にチップに統合されることが可能である。
図6に基づく2つ以上のポートを備えたキャッシュ、すなわち、マルチポート・キャッシュB205が使用される場合、図8に対応して、2つ以上のプロセッサが、データをコンペアモードで比較する、または多数決判定することが可能である。すなわち、多数決によって、有効な値を決定することが可能である。各追加的な命令実行部B112、・・・のために、追加的な読み出し要求ユニットB107、・・・が図B8に基づいて設けられ、従ってUVEB200は、それに対応する数の入力を有していなければならない。コンペアまたは多数決判定(Voting)モードにおいて、キャッシュに直接接続された命令実行部は、比較または多数決判定のためのデータを、直接キャッシュに書き込む。残りの命令実行部B110、B112、・・・のうち、最初に比較/多数判定のためのデータを準備する命令実行部(diejenige)は、接続された読み出し要求ユニットB106、B107・・・を介して、またキャッシュB205の接続されたポートを介して、対応するデータを要求する。さらに、この状態を他の命令実行部及びUVEへ、信号B8105を用いて伝達する。B102、B104、・・・を介して、キャッシュによってデータが準備された後、データは、UVEB200のB8105を介して、比較のために準備される。関係する(beteiligte)全ての命令実行部に、対応するデータが提供された場合、比較/多数決が行われる。場合によっては、他の命令実行部は、このデータの準備が整う時点まで、制御信号B140、B142.・・・を介して停止されなければならない。その際、時間監視(Zeitueberwachung)によって、許容されたタイムスロット(Zeitfenster)内に比較が行われるか、またはエラーが信号で知らされることが保障される。
RAM記憶装置の代わりに、本発明の一実施形態に基づく構成は、MRAM、FERAM等の、更なる別の記憶技術も備えることが可能である。
Claims (19)
- 少なくとも2つの命令実行部と、少なくともデータ及び/または命令のための第1記憶装置または記憶領域とを備えるコンピュータシステムにおけるデータ及び/または命令を格納する装置であって、切り替え手段が設けられ、少なくとも2つの駆動モード間で切り替えが行われ、比較手段が設けられ、第1駆動モードがコンペアモードに、第2駆動モードがパフォーマンスモードに相当する装置において、
前記装置において、第2記憶装置または記憶領域が含まれ、前記装置は、キャシュメモリシステムとして構成され、少なくとも2つの異なるポートが備えられ、1つのポートは第1命令実行部と直接接続され、第2ポートと少なくとも第2命令実行部のとの間に第3装置が含まれており、前記第3装置は、前記第2命令実行部による前記第2記憶装置または記憶領域へのアクセスが前記第3装置を経由して行われるように構成されることを特徴とする、少なくとも2つの命令実行部とデータ及び/または命令のための少なくとも第1記憶装置または記憶領域とを備えるコンピュータシステムにおけるデータ及び/または命令を格納する装置。 - 前記切り替え手段及び/または比較手段には、少なくとも1つの記憶手段が設けられ、切り替えは、記憶手段内の少なくとも1ビットによって行われることを特徴とする、請求項1に記載の装置。
- 切り替えは、少なくとも1つの、前記コンピュータシステムへの外部または内部信号によって行われることを特徴とする、請求項1に記載の装置。
- 前記パフォーマンスモードにおいて、直接接続された命令実行部の前記第3装置は、接続されたポートを経由する前記第2記憶装置への読出し及び書き込みアクセスを保障することを特徴とする、請求項1に記載の装置。
- 前記キャッシュメモリシステムに少なくとも1つのカウンタがあり、前記カウンタは、比較に関するデータが前記第1命令実行部によって前記キャッシュメモリシステムの第1ポートを経由して格納される度に、増分または減分されることを特徴とする、請求項1に記載の装置。
- 前記カウンタは、対応する接続されたポートにおいて前記コンペアモードに切り替えられる際にカウンタ値を出力し、前記カウンタ値は第3ユニットに格納されることを特徴とする、請求項5に記載の装置。
- 第2カウンタが前記第3装置内に設けられ、前記カウンタのカウンタ値は、前記第3ユニットの前記第2カウンタを設定するために使用されることを特徴とする、請求項5に記載の装置。
- 少なくとも2つの命令実行部と少なくともデータ及び/または命令のための第1記憶装置または記憶領域とを備えたコンピュータシステムにおいてデータ及び/または命令を格納する方法であって、切り替え手段が設けられ、少なくとも2つの駆動モード間で切り替えが行われ、比較手段が設けられ、第1駆動モードがコンペアモードに、第2駆動モードがパフォーマンスモードに相当する方法において、
第2記憶装置または記憶領域が設けられ、前記第2記憶装置または記憶領域はキャッシュメモリシステムに含まれ、少なくとも2つの異なるポートが備えられ、第1命令実行部は、第1ポートを経由して前記第2記憶装置または記憶領域に直接アクセスし、第2命令実行部は、第3装置を経由して前記第2記憶装置または記憶領域へアクセスすることを特徴とする、少なくとも2つの命令実行部と少なくともデータ及び/または命令のための第1記憶装置または記憶領域とを備えるコンピュータシステムにおけるデータ及び/または命令を格納する方法。 - 前記第3装置は記憶手段を含み、前記記憶手段には、接続された命令実行部の(von)データ及び/または信号が格納されることが可能であり、第3ユニットは、前記接続された命令実行部の状態に依存せずに、データを前記第2記憶装置または記憶手段と交換できることを特徴とする、請求項8に記載の方法。
- 前記第3装置は、データ及び/またはアドレス及び/または制御信号を第2命令実行部から獲得し、次いで前記第2記憶装置または記憶領域の対応するデータに読出しまたは書き込みアクセスすることを特徴とする、請求項8に記載の方法。
- 前記キャッシュメモリシステムが、データの存在について決定し、データが存在しない場合に信号を前記第3装置に送信することを特徴とする、請求項8に記載の方法。
- 前記第3ユニット内のデータ及び/または命令の有効性が検査され、有効な場合に次に伝送されることを特徴とする、請求項8に記載の方法。
- 前記有効性は、データ及び/または命令と共に格納された追加情報に基づいて検査されることを特徴とする、請求項12に記載の方法。
- 前記コンペアモードへの切り替えと共に、同期信号が関連する命令実行部に発信されることを特徴とする、請求項8に記載の方法。
- 比較を行い、比較されるデータが不一致の際に、エラーが信号で通知されることを特徴とする、請求項8に記載の方法。
- 多数決判定を行い、多数決判定されるデータの少なくとも1つのデータが不一致の際に、状態及び/またはエラーが信号で通知されることを特徴とする、請求項8に記載の方法。
- 前記キャッシュメモリシステム内にカウンタが設けられ、前記カウンタは、対応する接続されたポートにおいて前記コンペアモードに切り替えられる際にカウンタ値を出力し、前記カウンタ値は、前記第3ユニットに格納されることを特徴とする、請求項8に記載の方法。
- 第2カウンタが前記第3装置内に設けられ、前記カウンタのカウンタ値は、前記第3ユニットの第2カウンタを設定するために利用されることを特徴とする、請求項17に記載の方法。
- 前記キャッシュメモリシステムに設けられているカウンタが、1つのポートに割り当てられ、各ポートに接続された処理装置において前記コンペアモードが起動される際に、固定値に設定されることを特徴とする、請求項17に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102005037234A DE102005037234A1 (de) | 2005-08-08 | 2005-08-08 | Vorrichtung und Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Ausführungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle |
PCT/EP2006/064588 WO2007017367A1 (de) | 2005-08-08 | 2006-07-24 | Vorrichtung und verfahren zur speicherung von daten und/oder befehlen in einem rechnersystem mit wenigstens zwei ausführungseinheiten und wenigstens einem ersten speicher oder speicherbereich für daten und/oder befehle |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009505178A true JP2009505178A (ja) | 2009-02-05 |
Family
ID=36926336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008525516A Pending JP2009505178A (ja) | 2005-08-08 | 2006-07-24 | 少なくとも2つの命令実行部と少なくともデータ及び/または命令のための第1記憶装置または記憶領域とを備えたコンピュータシステムにおいて、データ及び/または命令を格納する装置及び方法 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1915684A1 (ja) |
JP (1) | JP2009505178A (ja) |
KR (1) | KR20080033338A (ja) |
CN (1) | CN101243404A (ja) |
DE (1) | DE102005037234A1 (ja) |
WO (1) | WO2007017367A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101432274B1 (ko) | 2013-12-12 | 2014-08-21 | (주)이건산전 | 백업모듈을 포함하는 철도 차량용 제어기 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073565B (zh) * | 2010-12-31 | 2014-02-19 | 华为技术有限公司 | 触发操作方法、多核分组调试方法、装置及*** |
CN112416609A (zh) * | 2021-01-22 | 2021-02-26 | 南京芯驰半导体科技有限公司 | 双核模式的模式配置方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0439952A2 (en) * | 1990-01-31 | 1991-08-07 | STMicroelectronics, Inc. | Dual-port cache tag memory |
JPH05128080A (ja) * | 1991-10-14 | 1993-05-25 | Mitsubishi Electric Corp | 情報処理装置 |
JP2552651B2 (ja) * | 1984-06-22 | 1996-11-13 | エイ ティ アンド ティ コーポレーション | 再構成可能なデュアル・プロセッサ・システム |
JPH09128347A (ja) * | 1995-06-07 | 1997-05-16 | Tandem Comput Inc | フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム |
US5751932A (en) * | 1992-12-17 | 1998-05-12 | Tandem Computers Incorporated | Fail-fast, fail-functional, fault-tolerant multiprocessor system |
US20020073357A1 (en) * | 2000-12-11 | 2002-06-13 | International Business Machines Corporation | Multiprocessor with pair-wise high reliability mode, and method therefore |
WO2003010638A1 (de) * | 2001-07-26 | 2003-02-06 | Infineon Technologies Ag | Prozessor mit mehreren rechenwerken |
US6615366B1 (en) * | 1999-12-21 | 2003-09-02 | Intel Corporation | Microprocessor with dual execution core operable in high reliability mode |
US20040123201A1 (en) * | 2002-12-19 | 2004-06-24 | Nguyen Hang T. | On-die mechanism for high-reliability processor |
-
2005
- 2005-08-08 DE DE102005037234A patent/DE102005037234A1/de not_active Withdrawn
-
2006
- 2006-07-24 JP JP2008525516A patent/JP2009505178A/ja active Pending
- 2006-07-24 EP EP06777936A patent/EP1915684A1/de not_active Withdrawn
- 2006-07-24 CN CNA2006800294352A patent/CN101243404A/zh active Pending
- 2006-07-24 KR KR1020087002749A patent/KR20080033338A/ko not_active Application Discontinuation
- 2006-07-24 WO PCT/EP2006/064588 patent/WO2007017367A1/de active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2552651B2 (ja) * | 1984-06-22 | 1996-11-13 | エイ ティ アンド ティ コーポレーション | 再構成可能なデュアル・プロセッサ・システム |
EP0439952A2 (en) * | 1990-01-31 | 1991-08-07 | STMicroelectronics, Inc. | Dual-port cache tag memory |
JPH04357539A (ja) * | 1990-01-31 | 1992-12-10 | Sgs Thomson Microelectron Inc | 2重ポートのキャッシュタグメモリデバイス |
JPH05128080A (ja) * | 1991-10-14 | 1993-05-25 | Mitsubishi Electric Corp | 情報処理装置 |
US5751932A (en) * | 1992-12-17 | 1998-05-12 | Tandem Computers Incorporated | Fail-fast, fail-functional, fault-tolerant multiprocessor system |
JPH09128347A (ja) * | 1995-06-07 | 1997-05-16 | Tandem Comput Inc | フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム |
US6615366B1 (en) * | 1999-12-21 | 2003-09-02 | Intel Corporation | Microprocessor with dual execution core operable in high reliability mode |
US20020073357A1 (en) * | 2000-12-11 | 2002-06-13 | International Business Machines Corporation | Multiprocessor with pair-wise high reliability mode, and method therefore |
WO2003010638A1 (de) * | 2001-07-26 | 2003-02-06 | Infineon Technologies Ag | Prozessor mit mehreren rechenwerken |
US20040123201A1 (en) * | 2002-12-19 | 2004-06-24 | Nguyen Hang T. | On-die mechanism for high-reliability processor |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101432274B1 (ko) | 2013-12-12 | 2014-08-21 | (주)이건산전 | 백업모듈을 포함하는 철도 차량용 제어기 |
Also Published As
Publication number | Publication date |
---|---|
CN101243404A (zh) | 2008-08-13 |
DE102005037234A1 (de) | 2007-02-15 |
EP1915684A1 (de) | 2008-04-30 |
WO2007017367A1 (de) | 2007-02-15 |
KR20080033338A (ko) | 2008-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7925840B2 (en) | Data processing apparatus and method for managing snoop operations | |
US20060059317A1 (en) | Multiprocessing apparatus | |
JP5485055B2 (ja) | 共有メモリシステム及びその制御方法 | |
US20160299857A1 (en) | Computer architecture with peripherals | |
JP4043225B2 (ja) | キャッシュ装置および方法 | |
JP2012522290A (ja) | キャッシュにおけるウエイ割り当て及びウエイロックのための方法 | |
JP2006012163A (ja) | マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置 | |
JPH11143775A (ja) | キャッシュメモリシステム | |
JP3236287B2 (ja) | マルチプロセッサシステム | |
JP2005234854A (ja) | マルチプロセッサシステム | |
WO2009122694A1 (ja) | キャッシュメモリ装置、キャッシュメモリシステム、プロセッサシステム | |
US6038642A (en) | Method and system for assigning cache memory utilization within a symmetric multiprocessor data-processing system | |
KR100280862B1 (ko) | 명령처리추적방법및장치 | |
JP2010097557A (ja) | セットアソシアティブ方式のキャッシュ装置及びキャッシュ方法 | |
JP2012043031A (ja) | 共有キャッシュメモリ装置 | |
JP2009505178A (ja) | 少なくとも2つの命令実行部と少なくともデータ及び/または命令のための第1記憶装置または記憶領域とを備えたコンピュータシステムにおいて、データ及び/または命令を格納する装置及び方法 | |
JP2634147B2 (ja) | コンピュータシステム、キャッシュヒットの判定方法 | |
JPH06348593A (ja) | データ転送制御装置 | |
JP2006244460A (ja) | キャッシュメモリ及びプロセッサ | |
JP4088763B2 (ja) | コンピュータシステム及び該コンピュータシステムに適したハードウェア/ソフトウェアロジック並びにキャッシュ方法 | |
JP2004326175A (ja) | プロセッサ、キャッシュシステム及びキャッシュメモリ | |
JP2000137646A (ja) | マルチプロセッサシステムにおけるキャッシュメモリ制御方法及びマルチプロセッサシステム | |
JP2008165318A (ja) | 計算機システム | |
JPH11143774A (ja) | キャッシュ制御機構 | |
JP3077807B2 (ja) | マイクロコンピュータシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100817 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110125 |