JP2000227872A - 複数メモリ要求の動的スロット割当および追跡 - Google Patents

複数メモリ要求の動的スロット割当および追跡

Info

Publication number
JP2000227872A
JP2000227872A JP11365695A JP36569599A JP2000227872A JP 2000227872 A JP2000227872 A JP 2000227872A JP 11365695 A JP11365695 A JP 11365695A JP 36569599 A JP36569599 A JP 36569599A JP 2000227872 A JP2000227872 A JP 2000227872A
Authority
JP
Japan
Prior art keywords
memory
request
memory request
slot
storage device
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.)
Withdrawn
Application number
JP11365695A
Other languages
English (en)
Inventor
Andrew S Kopser
エス. コプサー アンドリュー
Robert L Alverson
エル. アルバーソン ロバート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cray Inc
Original Assignee
Tera Computer Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tera Computer Co filed Critical Tera Computer Co
Publication of JP2000227872A publication Critical patent/JP2000227872A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 中央マイクロプロセッサに命令実行のジョブ
を行わせながら、同時にメモリユニットが、自身の機能
であるメモリ動作および検索の機能を実行できること。 【解決手段】 メモリ制御ユニットにメモリ動作要求を
供給する入力ラインと、上記メモリ要求を受け取るメモ
リ要求バスと、上記メモリ制御ユニットからメモリへの
メモリ要求出力ラインと、上記メモリ動作要求のソース
を格納するスロット制御レジスタと、上記メモリ要求バ
スに接続され、要求されたメモリ動作を格納するメモリ
要求格納装置と、上記メモリ要求格納装置から上記メモ
リ要求出力ラインへの接続部であって、上記格納された
メモリ要求の2回目の実行を可能にする、接続部と、を
含むメモリ要求を追跡するための装置により、上記課題
が達成される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、多数のメモリ要求
を同時に処理するシステムに関し、特に、可能な限り迅
速に応答する一方で多数のメモリ要求を受け取り、そし
て各要求を追跡する方法および装置に関する。
【0002】
【従来の技術】マイクロプロセッサのクロック速度は、
近年向上している。わずか数年前まで、マイクロプロセ
ッサのクロック速度がキロヘルツに及ぶものは、高性能
であると考えられていた。最近、民生用コンピュータに
使用される標準的なマイクロプロセッサの速度は、3〜
400メガヘルツを超えている。スーパーコンピュータ
の処理速度は、さらに急激に向上している。
【0003】
【発明が解決しようとする課題】現在のスーパーコンピ
ュータは、ギガヘルツおよびテラヘルツに及ぶクロック
サイクルで、しばしばデータを処理している。残念なが
ら、メモリへのアクセス速度は、マイクロプロセッサの
速度ほど向上していない。マイクロプロセッサがメモリ
動作を実行しようとする際、メモリ動作が完了するまで
に、しばしば100を超える多数のクロックサイクルを
費やす。メモリ動作が完了するのを待たなければ、マイ
クロプロセッサが後続の動作を実行しないシステムもあ
る。しかしながら、このようなシステムは、メモリ動作
よりも迅速に多くの動作が実行可能なマイクロプロセッ
サのサイクルタイムの、効率的な使用方法とはいえな
い。
【0004】
【課題を解決するための手段】本発明のメモリ要求を追
跡するための装置は、メモリ制御ユニットにメモリ動作
要求を供給する入力ラインと、上記メモリ要求を受け取
るメモリ要求バスと、上記メモリ制御ユニットからメモ
リへのメモリ要求出力ラインと、上記メモリ動作要求の
ソースを格納するスロット制御レジスタと、上記メモリ
要求バスに接続され、要求されたメモリ動作を格納する
メモリ要求格納装置と、上記メモリ要求格納装置から上
記メモリ要求出力ラインへの接続部であって、上記格納
されたメモリ要求の2回目の実行を可能にする、接続部
と、を含むことにより、上記目的が達成される。
【0005】上記装置は、上記メモリ要求への応答を受
け取る、上記メモリ制御ユニットに結合された、受け取
りバスと、上記メモリ動作の結果を提供する、上記メモ
リ制御ユニットからの出力ラインとを更に含んでもよ
い。
【0006】上記装置は、上記メモリ要求格納装置の一
部として、上記メモリ要求の状態を格納するためのスロ
ット状態レジスタを更に含んでもよい。上記メモリ要求
状態が、リトライあるいは未処理状態であってもよい。
【0007】上記装置は、上記メモリ要求の上記ソース
の識別タグを作成するためのスロット割当ブロックを更
に含んでもよい。
【0008】スロット制御ブロックおよびスロット状態
レジスタ、および上記メモリ要求格納装置のすべてが、
同一のタグ番号によりインデックス付けされてもよい。
【0009】タグが、日付とともに出力として返され、
上記タグは上記メモリ要求のソースの識別子を提供され
てもよい。
【0010】本発明のメモリ要求の追跡および実行方法
は、マイクロプロセッサからメモリ要求を受け取る工程
と、上記要求の実行のため、上記メモリ要求をメモリ回
路に出力する工程と、上記要求が出力される前に、上記
メモリ要求をメモリ要求格納装置にコピーする工程と、
上記メモリ回路から上記メモリ要求の結果を受け取る工
程と、上記要求が完了していれば、上記メモリ要求の上
記結果を上記マイクロプロセッサに戻す工程と、要求が
完了していなければ、上記メモリ要求格納装置にリトラ
イフラグをセットする工程と、メモリ要求回路に上記メ
モリ要求の2回目の出力を行う工程であって、上記出力
は、上記格納装置内に上記リトライフラグがセットされ
ている場合に、上記メモリ要求格納装置から出される工
程と、を含むことにより、上記目的が達成される。
【0011】上記方法は、上記要求が完了されるまで、
上記メモリ要求格納装置からの出力工程を繰り返す工程
と、上記要求が完了された際、上記メモリ要求格納装置
からエントリーをクリアする工程と、を更に含んでもよ
い。
【0012】上記方法は、メモリ要求を受け取った際、
メモリ要求のタグを作成する工程と、受け取られたタグ
のそれぞれにスロットを割り当てる工程と、メモリ要求
が満たされた際、スロットの割り当てを解除する工程
と、を更に含んでもよい。
【0013】本発明の原理によれば、マイクロプロセッ
サからのメモリ動作要求を追跡するメモリユニットが提
供される。メモリユニットには、メモリ要求ソースの識
別子と同様に、要求されているメモリ動作のタイプも格
納する。タグにより、メモリ要求ソースを識別する情報
を提供する。タグは、他の情報とともにメモリ要求ソー
スの識別および要求履行の追跡、ならびにマイクロプロ
セッサへの結果返送のためにスロット制御レジスタに格
納される。
【0014】スロット番号は、スロット制御レジスタお
よびメモリ要求の複製コピーを含むメモリ要求格納状態
のインデックス付けのために用いられる。同様にスロッ
ト番号でインデックス付けされるスロット状態は、要求
ステータスの識別子を含む。スロット状態は、要求ステ
ータスを追跡する。要求ステータスとは、要求が未処理
ステータスか、後にリトライを行うべきステータスか、
新たなメモリオペレータ用にスロットが利用可能ステー
タスか、あるいは未処理要求に関連する他のタイプの情
報である。未処理要求に対する応答が「ビジー」状態の
時、スロット状態は更新され、後のクロックサイクルに
おいて、リトライが行われる。リトライは、新たに受け
とったメモリ要求とともに、実行される。新たに受けと
った要求であれ、リトライであれ、未処理の要求が履行
され次第、結果はマイクロプロセッサに返送され、スロ
ット状態は、次のメモリ要求のために使用可能であるこ
とを示す「空」に変化する。
【0015】本発明における大きな利点は、中央マイク
ロプロセッサに命令実行のジョブを行わせながら、同時
にメモリユニットが、自身の機能であるメモリ動作およ
び検索の機能を実行できることである。メモリユニット
は、自身の制御下において要求を実行し、マイクロプロ
セッサにとって容認可能な制限時間内に、要求されたメ
モリの結果を中央プロセッサに提供する。これにより、
マイクロプロセッサは、メモリ要求を繰り返すためにク
ロックサイクルを使用することなく、他のタスクを実行
できる。メモリユニットの応答サイクルは、中央処理装
置(CPU)の要求サイクルとシンクしていないため、
それぞれが独立して割当られたタスクを実行できる。こ
れにより、論理および制御動作、ならびにメモリ動作の
両方における、システム全体の実行速度が大幅に向上さ
れ、また、最も重要な点として、メモリおよび演算のイ
ンタラクションを必要とする動作が行われる速度を向上
することができる。
【0016】
【発明の実施の形態】マイクロプロセッサ10は、論理
および制御動作ユニット12、ならびにメモリユニット
14の、少なくとも2つの別個のセクションを含む。論
理および制御動作ユニットは、マイクロプロセッサの心
臓部である。論理および制御動作ユニットは、命令を実
行し、演算動作および論理動作、ならびにその他の制御
機能などの多くの動作を実行する。本発明におけるマイ
クロプロセッサは、高速汎用プロセッサで、スーパーコ
ンピュータで使用されるタイプである。本プロセッサ
は、例えば、最高128の命令ストリームを同時に処理
することができる。さらに、128の各命令ストリーム
が、多数の動作要求を同時に処理することができる。1
実施形態において、各ストリングは、前のメモリ動作が
まだペンディング状態である間に、多数のメモリ動作の
実行を要求することができる。
【0017】ペンディングのメモリ動作は、メモリ内の
選択された位置へのデータの保存およびメモリ内の既知
の位置からの読み出し動作などを含み得る。マイクロプ
ロセッサ側から見れば、読み出し動作は、ロード動作と
呼ばれる。すなわち、読み出し要求は、マイクロプロセ
ッサの制御内の所定のレジスタに特定のデータをロード
させることにより、マイクロプロセッサは、このデータ
に対して動作を行い得る。マイクロプロセッサが、ロー
ドまたはストアなどのメモリ動作を要求する際、動作は
実行される必要がある(これにより、マイクロプロセッ
サは、今後の命令サイクルで必要に応じて結果を使用す
る用意ができる)。以下で説明するように、本発明にお
いて、マイクロプロセッサクロックのリソースを追加的
に消費することなく、このようなメモリ動作は、実行が
可能である。
【0018】図2は、本発明におけるメモリユニットの
概略図である。メモリユニット14は、マイクロプロセ
ッサ12から、メモリ動作要求16を受け取る。メモリ
動作要求は少なくとも2タイプあり、場合によっては、
これらのタイプ内で更なるタイプを有し得る。例えば、
ロードという要求には、メモリ内のデータの読み出しを
実行して、読み出しの結果をマイクロプロセッサに使用
されるために返すことを意味する。ロードメモリ動作に
は、いくつかの異なるタイプのロードがある。例えば、
識別された位置からデータを検索するノーマルロード、
フルであることが確認済みの識別された位置からデータ
を検索するフューチャーロード、そしてフルであること
が確認済みの位置のみからデータを得る点でフューチャ
ーロードと同様であるが、データを取得した際にメモリ
位置を自動的に「空」へと切り換えるシンクロード、な
どである。シンクロードは、ここでは特に説明しない
が、多くのアプリケーションにおいていくつかの利点を
有する。しかしながら、マイクロプロセッサ、そしてメ
モリユニットのいくつかのアプリケーションにおいて、
ロードタイプが、ノーマルロードであったのか、フュー
チャーロードであったのか、シンクロードであったの
か、あるいは実行可能な様々なタイプの中の任意の他の
タイプのロードであったのかを追跡することが望まし
い。また、メモリ動作の要求は「ストア」すなわち、特
定のメモリ位置に演算結果を格納する動作かもしれな
い。「ストア」にも様々なタイプがある。例えば、ノー
マル、フューチャーストア、シンクストア、あるいはそ
の他のタイプのロードの場合と相補的な「ストア」であ
る。「ストア」はまた、時間のかかるタスクである。マ
イクロプロセッサが、実際にストア動作が行われたかど
うかを追跡するために、何ら追加的なクロックサイクル
を使用することなく、他のタスクの実行に戻ることが好
ましい。
【0019】また、要求が出されたソースも、各メモリ
動作要求と関連している。本発明において、マイクロプ
ロセッサは、任意の時刻において最大128のストリー
ムを同時に動作させることができる。更に、これらの各
ストリームは、現在の要求がまだペンディングである間
に、最大8つのメモリ要求を行うことが可能である。
【0020】次に図2において、要求を出したストリー
ムの識別がライン18上に供給され、そしてストリーム
内のどの要求であるかを識別するフラグがライン20上
に供給される。本実施態様において、ストリーム要求ラ
インは7ビットラインであり、フラグは3ビットライン
である。7ビットは、128個のストリーム中の1つで
あることをユニークに識別するように、また3ビット
は、8つのメモリ要求中の1つであることをユニークに
識別するように、それぞれ必要である。ストリームコー
ドとフラグコードの組み合わせは、メモリユニット内の
ブロック22により、10ビットタグとして一体化され
る。スロット割当ブロック22は、スロットを割り当て
てタグに対応付ける。これによりブロック22は、スロ
ット制御レジスタ24ならびに、スロット状態30およ
びメモリ要求状態28を更新するための、更なるスロッ
ト割当を作成する準備ができる。スロット割当ブロック
22は、レジスタ24およびメモリ要求格納装置28、
ならびにスロット状態30にタグを提供する。
【0021】スロット制御レジスタ24は、マイクロプ
ロセッサ10から要求された未処理の各メモリ動作用の
タグを、常に格納するレジスタである。
【0022】ブロック22でのスロットの作成およびス
ロット制御レジスタ24へのタグの格納と同時に、メモ
リ動作要求は、メモリユニットを通じてライン17上で
処理され、出力26においてメモリ要求が実行される。
従って、メモリ要求自体は、メモリユニット14を非常
に迅速に通過し、これにより、即座に要求が満たされ始
められ得る。スロット番号は、メモリ要求の一部として
バス17上に提供される。これにより、スロット番号
は、要求の結果とともに返されることができる。メモリ
動作要求がなされる際、要求はメモリ要求格納装置28
にも格納される。メモリ要求全体がメモリ要求格納装置
28に格納されるため、マイクロプロセッサ自体は、何
の要求が出されたのか、または、どのストリームが、あ
るいはストリーム中のどの命令が要求を出したのかとい
うことさえも、追跡する必要がなくなる。メモリ動作要
求全体の完全なコピーが、メモリ要求格納装置28に格
納され、そして、要求ソースの識別子がスロット制御レ
ジスタ24に格納されている。従って、マイクロプロセ
ッサは、メモリ要求の結果の追跡あるいは要求の履行を
待つ必要なく、後続のタスクの実行に自由に戻ることが
できる。当然ながら後続のタスクは、未処理のメモリ要
求の完了に依存しないタイプのものでなければならな
い。これは、続いて実行される命令(命令のシーケン
ス)の適切な選択およびそのような命令の追跡により実
現されるが、これらの特徴は、本発明の主題と無関係で
あり、同時係属中の出願にて説明されているので、ここ
で詳細に説明しない。
【0023】メモリ要求格納装置28にメモリ要求を格
納するのと同時に、その要求の状態も、メモリ要求格納
装置28の一部であるスロット状態レジスタ30に格納
される。スロット状態30は、メモリ格納装置28に格
納された任意のメモリ動作要求の状態を追跡する。ブロ
ック24、28、そして30のそれぞれは、同一のスロ
ット番号でインデックス付けされている。要求あるいは
完了などの動作が実行される時、これらの各々は、同一
のインデックスコードで迅速にアドレスされることがで
きる。
【0024】要求の状態は、ライン26上になされた要
求の結果に基づいている。要求が最初になされた際、メ
モリ状態は未処理として格納される。これは、メモリ要
求がなされ、要求の結果はペンディング状態にあり、ラ
イン32上においてメモリユニット14に未だ報告され
ていないことを意味する。ライン26上に表されたメモ
リ要求を完了するための試みが即座に行われる。仮にそ
の試みが不成功に終わった場合、メモリ要求が依然とし
て完了していないことを示すリターンがライン32上に
提供される。これは一般的に、スロット番号およびビジ
ー信号のアクセスを要求されたメモリは現在アクセス不
可能であることを示す形をとる。このようなビジー信号
は、場合によって異なるストリームあるいは異なるマイ
クロプロセッサから出された別のメモリ要求が、同じメ
モリにアクセスして、例えば、ストアあるいは読み出し
などを実行させようとしている場合に受け取られ得る。
あるいは、メモリの位置がフルでない場合にも、受け取
られ得る。これは、メモリから読み取られようとしてい
るデータが指示された位置にまだ格納されていない場合
に起こり得るが、前の命令が依然として完了していない
ことなどのためであり得る。この場合、データ位置は依
然としてフルでないため、メモリ要求はデータの位置が
フルになるまで完了することができない。ライン32に
おけるメモリ要求の、もう1つあり得る応答は、メモリ
要求が実行されたことを意味する完了である。メモリ要
求が完了されると、メモリ要求の結果はライン32上に
供給される。結果は、ライン32上において、スロット
制御レジスタ24へと渡される。スロット制御レジスタ
24は、メモリ要求を対応付けられたタグと照合する。
その後、メモリ要求の結果は、ライン34上に供給さ
れ、これとともに、メモリ要求のソースであったストリ
ームおよびフラグが、ライン36およびライン38上に
それぞれ供給される。これにより、マイクロプロセッサ
10は、メモリ要求を要求ソースの識別とともに受け取
ることができ、そして現在受けとられたデータ上で更な
る命令を実行することができる。
【0025】メモリ要求からのリターン32は、日付以
上の情報、あるいは日付の代わりの情報を包含し得る。
例えば、バス32上のリターンは、特定のメモリ要求の
スロット番号を含み得る。また、ビジー、ペンディング
などのような要求の結果を含んでもよい。バス32上に
返される信号は、メモリユニット14にインデックスを
提供し、要求が完了されていない時にも、様々な方法で
使用可能である。要求が完了された際、日付(ロードの
場合)は、スロット番号などの他の情報とともに、バス
32上に返される。これは、スロットをメモリユニット
の様々な部分に割り当てるために使用され、そしてデー
タ自体は、ライン34上に提供される。日付とともに、
ストリームとフラグ(つまりタグ)も提供される。
【0026】ライン32が要求されたメモリ動作からビ
ジー信号を返す場合、スロット状態レジスタ30は、メ
モリ要求のステータスとしてリトライを格納する。未処
理メモリ要求で占められていない次に利用可能なクロッ
クサイクルにおいて、メモリ格納装置28にリトライ状
態として格納されているメモリ要求に対してのリトライ
が実行される。メモリ格納装置28は、要求されたすべ
てのペンディングメモリ動作の完全なコピーを含んでい
る。従って、メモリ格納装置28は、メモリ要求をライ
ン40を介してバス17へ出力する(ライン26におい
て出力される)。ライン26上に出力されたメモリ要求
を、システムはオリジナルのメモリ動作要求であるとみ
なす。なぜならば、メモリ格納装置28から来る情報
は、マイクロプロセッサ10に由来するオリジナルのメ
モリ動作要求の一部をなす情報の全てだからである。従
って、メモリは要求をオリジナルのメモリ要求として扱
い、この要求の実行を試み、要求の状態を未処理に変更
する。メモリがこの要求の実行を試みようとする一方
で、マイクロプロセッサからの更なるメモリ要求が、ラ
イン16上に受けとられ、あるいはバス17上において
オープンサイクルが利用可能な場合、メモリ要求格納装
置28は、レジスタ30中にリトライ状態の要求が他に
あるかどうかを調べ、もしあれば、これらの要求をバス
17上に出力し、ライン26上においてメモリ要求とし
てこれらを出力させる。メモリ要求格納装置28は、バ
ス17でサイクルが利用可能となった時には常に、メモ
リ要求を処理し続け、これにより、バス17でサイクル
が利用可能になった時には常に、リトライが実行され
る。メモリ要求のリトライは、スロット状態30の制御
下で行われ、マイクロプロセッサ12はこれを追跡する
必要はなく、あるいはそのような機能が代りに実行され
ていることにさえ気付く必要がない。代わりに、マイク
ロプロセッサは、多くのメモリ要求に対して多数のリト
ライがなされる一方で、更なる命令を自由に実行するこ
とができ、また、リトライのメモリ動作が最終的に成功
すると、結果は前述したように、内部バス33に沿って
伝送され、ライン34を介して出力される。
【0027】メモリ要求の完了とともに、スロット状態
30は「空」状態を格納する。この結果、スロット状態
30は、メモリ要求格納装置28中の対応するラインを
解放し、メモリOPライン16上に入力された後続の要
求を受けとり、また格納する。さらに、要求が履行され
た際、スロット制御レジスタ24は、データとともに照
合用タグを出力し、このタグはそれ以上格納しない。レ
ジスタは、これにより、スロット割当22から受けとら
れた後続のタグを格納するために利用可能となる。
【0028】メモリユニット14の1実施形態におい
て、メモリ要求格納装置28は、任意の所望のサイズの
RAMである。これは、32個あるいは64個程度のメ
モリ要求を格納するためのサイズにされてもよく、ある
いは、所望に応じて2056個以上のメモリ要求を格納
するためのサイズにすることができる。またタグの数だ
けのスロットを持つことができる。1実施形態におい
て、メモリ要求は384の個別のワードを持ち、別の例
においては、1024の個別のワードを持つ。すなわ
ち、メモリ要求は、最大384のペンディングメモリ動
作を追跡し、これらに対するメモリ参照情報を同時に格
納することができる。メモリ要求格納装置28の一部で
あるスロット状態レジスタ30は、メモリ要求格納装置
28内における、384個のペンディング動作のそれぞ
れに対応する状態を有する。スロット状態30は、従っ
て、「未処理」、「空」、「リトライ待ち」、あるいは
「リトライバリアント」などの、メモリ要求状態などの
データを格納する。異なる4つの状態のうちの1つを格
納するのに2ビット必要であるため、スロット状態レジ
スタ30は、1実施態様においては2ビットで構成され
得る。
【0029】さらに、メモリ要求格納装置28は、実行
中の動作タイプを識別するメモリ動作コードを含み得
る。実行中の動作には、ある位置からデータを取得し、
値を返すという意味のノーマルロード、フルであると識
別された位置のみからデータを取得し、同じデータで位
置をフルにしたままでデータを戻すフューチャーロー
ド、そしてフルと確認された位置からデータを取得し、
その位置を「空」に切り換えるシンクロードなどが含ま
れる。所望であれば、異なるシステムにおいて、その他
のタイプのロードも実行され得る。動作タイプは、メモ
リ内の位置に特定のデータを格納するという意味の「ス
トア」であってもよい。同様に「ストア」には、ノーマ
ル、フューチャー、あるいはシンクなどがあり得る。こ
の場合、格納されるデータの識別も、メモリ要求格納装
置28内に格納されることにより、マイクロプロセッサ
12との更なるインタラクションなしで、メモリ動作要
求を実行するのに必要なすべての情報の完全なセット
が、メモリ要求格納装置28に含まれることになる。
【0030】スロット番号でインデックス付けされたス
ロット制御レジスタ24は、7ビットのストリング識別
マーカーおよび3ビットフラグマーカーからなるタグを
含む。別の実施態様においては、スロットの数をタグの
数と同じにし、タグ番号がスロット番号と同じであるこ
とから、スロット割当ブロック22およびスロット制御
レジスタ24は必要でない。その代わりに、スロット状
態が、リトライが必要なスロット(すなわちメモリ要
求)の順序付けられたリストのリトライ格納装置とな
る。
【0031】本発明の1実施態様において、メモリユニ
ット14はまた、メモリ格納装置28が格納限度を超え
る要求でオーバーロードしていないかを確実にし、かつ
依然として履行されていない要求のリトライを規則的に
実行する。
【0032】メモリユニットは、スロットの割当および
割当解除の際、論理ユニット12に出力信号を戻す。メ
モリ要求格納装置28がオーバーフローするのを避ける
ため、論理ユニット12は、要求が送られた時、スロッ
トがまだ利用可能であることを確認する。使用されてい
る総スロット数がある一定の点に達した際、論理ユニッ
ト12が、メモリユニット14へのメモリ要求の数を削
減することにより、オーバーフローが避けられる。
【0033】論理制御ユニットおよびメモリユニットを
有するマイクロプロセッサであって、論理制御ユニット
は、メモリ動作要求を含む複数の命令を実行する。メモ
リ動作要求はメモリユニットに渡され、メモリユニット
は、メモリ要求を即座に履行し始める。メモリ要求がな
されると同時に、メモリ要求の完全なコピーが作成さ
れ、メモリユニット内の格納装置に格納される。さら
に、メモリ動作の元となった要求の識別も格納される。
メモリ要求が、データの検索であれ、データの格納であ
れ、即座に履行されると、メモリ要求の結果はマイクロ
プロセッサに提供される。その一方で、メモリが「ビジ
ー」状態であり要求を即座に履行できない場合、メモリ
ユニットは、後のメモリ要求サイクルにおいてメモリ要
求のリトライを実行する。マイクロプロセッサは、メモ
リ要求に関与することなく、更なる命令および他の動作
を実行することができる。なぜならば、メモリユニット
は、メモリ要求の複製コピーを含んでおり、メモリ要求
が首尾よく完了するまでメモリ要求の実行とリトライを
続けるからである。これにより、マイクロプロセッサの
動作全体を向上させ、命令セットのスループットを増加
させる。
【0034】上記説明から、本発明の特定の実施態様を
例示目的で説明したが、本発明の精神と範囲から逸脱す
ることなく、様々な改変が行われ得ることが理解され
る。従って、本発明は、添付の特許請求の範囲を除いて
は、限定されるものではない。
【0035】
【発明の効果】本発明のメモリ要求を追跡するための装
置およびその方法により、中央マイクロプロセッサに命
令実行のジョブを行わせながら、同時にメモリユニット
が、自身の機能であるメモリ動作および検索の機能を実
行できる。
【図面の簡単な説明】
【図1】図1は、本発明におけるマイクロプロセッサ
の、ブロック図である。
【図2】図2は、本発明による図1のメモリユニット
の、ブロック図である。
【符号の説明】
12 論理および制御動作ユニット 14 メモリユニット 24 スロット制御レジスタ 28 メモリ要求格納装置 30 スロット状態
───────────────────────────────────────────────────── フロントページの続き (71)出願人 500001703 Merrill Place, 411 F irst Avenue South, Suite 600, Seattle,W ashington 98104−2860,U. S.A. (72)発明者 アンドリュー エス. コプサー アメリカ合衆国 ワシントン 98103, シアトル, ノース 55ティーエイチ ス トリート 109 (72)発明者 ロバート エル. アルバーソン アメリカ合衆国 ワシントン 98115, シアトル, 54ティーエイチ アべニュー ノースイースト 6827

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 メモリ制御ユニットにメモリ動作要求を
    供給する入力ラインと、 該メモリ要求を受け取るメモリ要求バスと、 該メモリ制御ユニットからメモリへのメモリ要求出力ラ
    インと、 該メモリ動作要求のソースを格納するスロット制御レジ
    スタと、 該メモリ要求バスに接続され、要求されたメモリ動作を
    格納するメモリ要求格納装置と、 該メモリ要求格納装置から該メモリ要求出力ラインへの
    接続部であって、該格納されたメモリ要求の2回目の実
    行を可能にする、接続部と、を含むメモリ要求を追跡す
    るための装置。
  2. 【請求項2】 前記メモリ要求への応答を受け取る、前
    記メモリ制御ユニットに結合された、受け取りバスと、 前記メモリ動作の結果を提供する、前記メモリ制御ユニ
    ットからの出力ラインとを更に含む、請求項1に記載の
    装置。
  3. 【請求項3】 前記メモリ要求格納装置の一部とし
    て、前記メモリ要求の状態を格納するためのスロット状
    態レジスタを更に含む、請求項1に記載の装置。
  4. 【請求項4】 前記メモリ要求状態が、リトライあるい
    は未処理状態である、請求項3に記載の装置。
  5. 【請求項5】 前記メモリ要求の前記ソースの識別タグ
    を作成するためのスロット割当ブロックを更に含む、請
    求項1に記載の装置。
  6. 【請求項6】 スロット制御ブロックおよびスロット状
    態レジスタ、および前記メモリ要求格納装置のすべて
    が、同一のタグ番号によりインデックス付けされる、請
    求項1に記載の装置。
  7. 【請求項7】 タグが、日付とともに出力として返さ
    れ、該タグは前記メモリ要求のソースの識別子を提供す
    る、請求項1に記載の装置。
  8. 【請求項8】 マイクロプロセッサからメモリ要求を受
    け取る工程と、 該要求の実行のため、該メモリ要求をメモリ回路に出力
    する工程と、 該要求が出力される前に、該メモリ要求をメモリ要求格
    納装置にコピーする工程と、 該メモリ回路から該メモリ要求の結果を受け取る工程
    と、 該要求が完了していれば、該メモリ要求の該結果を該マ
    イクロプロセッサに戻す工程と、 要求が完了していなければ、該メモリ要求格納装置にリ
    トライフラグをセットする工程と、 メモリ要求回路に該メモリ要求の2回目の出力を行う工
    程であって、該出力は、該格納装置内に該リトライフラ
    グがセットされている場合に、該メモリ要求格納装置か
    ら出される工程と、を含む、メモリ要求の追跡および実
    行方法。
  9. 【請求項9】 前記要求が完了されるまで、前記メモリ
    要求格納装置からの出力工程を繰り返す工程と、 該要求が完了された際、該メモリ要求格納装置からエン
    トリーをクリアする工程と、を更に含む、請求項8に記
    載の方法。
  10. 【請求項10】 メモリ要求を受け取った際、メモリ要
    求のタグを作成する工程と、 受け取られたタグのそれぞれにスロットを割り当てる工
    程と、 メモリ要求が満たされた際、スロットの割り当てを解除
    する工程と、を更に含む、請求項8に記載の方法。
JP11365695A 1998-12-23 1999-12-22 複数メモリ要求の動的スロット割当および追跡 Withdrawn JP2000227872A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/221,185 US6338125B1 (en) 1998-12-23 1998-12-23 Dynamic slot allocation and tracking of multiple memory requests
US09/221.185 1998-12-23

Publications (1)

Publication Number Publication Date
JP2000227872A true JP2000227872A (ja) 2000-08-15

Family

ID=22826724

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11365695A Withdrawn JP2000227872A (ja) 1998-12-23 1999-12-22 複数メモリ要求の動的スロット割当および追跡

Country Status (3)

Country Link
US (1) US6338125B1 (ja)
EP (1) EP1020801A2 (ja)
JP (1) JP2000227872A (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636946B2 (en) * 2001-03-13 2003-10-21 Micron Technology, Inc. System and method for caching data based on identity of requestor
US7177853B1 (en) * 2002-02-21 2007-02-13 Emc Corporation Cache management via statistically adjusted time stamp queue
US6889295B2 (en) 2002-03-05 2005-05-03 Hewlett-Packard Development Company, L.P. Re-ordering requests for shared resources
JP2003288266A (ja) * 2002-03-28 2003-10-10 Fujitsu Ltd メモリ割当方法及びそのプログラム
US6779092B2 (en) 2002-05-15 2004-08-17 Hewlett-Packard Development Company, L.P. Reordering requests for access to subdivided resource
KR101396430B1 (ko) * 2007-10-31 2014-05-20 삼성전자주식회사 전자식별시스템에서 태그 충돌 방지 방법 및 장치
US8238349B2 (en) * 2008-06-18 2012-08-07 Altera Canada Co. Method of accessing stored information in multi-framed data transmissions
US10169235B2 (en) 2015-12-15 2019-01-01 Apple Inc. Methods of overriding a resource retry
US11314686B2 (en) * 2019-02-26 2022-04-26 Nxp Usa, Inc. Hardware for supporting time triggered load anticipation in the context of a real time OS

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4891788A (en) 1988-05-09 1990-01-02 Kreifels Gerard A FIFO with almost full/almost empty flag
US5623628A (en) 1994-03-02 1997-04-22 Intel Corporation Computer system and method for maintaining memory consistency in a pipelined, non-blocking caching bus request queue
US5594875A (en) 1994-07-01 1997-01-14 Digital Equipment Corporation Method and apparatus to provide pended transaction on a non-pended system bus
US5659707A (en) 1994-10-07 1997-08-19 Industrial Technology Research Institute Transfer labeling mechanism for multiple outstanding read requests on a split transaction bus
US5974511A (en) * 1997-03-31 1999-10-26 Sun Microsystems, Inc. Cache subsystem with pseudo-packet switch
US6070231A (en) * 1997-12-02 2000-05-30 Intel Corporation Method and apparatus for processing memory requests that require coherency transactions
US6134635A (en) * 1997-12-09 2000-10-17 Intel Corporation Method and apparatus of resolving a deadlock by collapsing writebacks to a memory

Also Published As

Publication number Publication date
EP1020801A2 (en) 2000-07-19
US6338125B1 (en) 2002-01-08

Similar Documents

Publication Publication Date Title
US5159678A (en) Method for efficient non-virtual main memory management
KR0122529B1 (ko) 슈퍼스칼라 프로세서 시스템에서 복수의 명령어를 단일 사이클 동안 디스패치하기 위한 방법 및 장치
EP0849665B1 (en) System and method for register renaming
US5892963A (en) System and method for assigning tags to instructions to control instruction execution
US5898882A (en) Method and system for enhanced instruction dispatch in a superscalar processor system utilizing independently accessed intermediate storage
US6996821B1 (en) Data processing systems and method for batching tasks of the same type in an instruction cache
US6256704B1 (en) Task management for data accesses to multiple logical partitions on physical disk drives in computer systems
US6934813B1 (en) System and method for caching data based on identity of requestor
US20080288691A1 (en) Method and apparatus of lock transactions processing in single or multi-core processor
JP2002117002A (ja) 共用型ペリフェラルアーキテクチャ
CN107729267B (zh) 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构
CN1196997C (zh) 不按序执行指令的装置和检测不按序指令的方法
JPH07105126A (ja) インターフェース・システムおよび方法
JPH0668736B2 (ja) 2個のシステムクロックサイクルを利用する書込み動作をもったキャッシュメモリユニットを供与する装置及び方法
JP2000227872A (ja) 複数メモリ要求の動的スロット割当および追跡
US6209081B1 (en) Method and system for nonsequential instruction dispatch and execution in a superscalar processor system
JP3431941B2 (ja) データ処理システムにおける命令の実行順序を決定する方法および装置
JPH08272686A (ja) インストラクションの実行順序の一貫性を照合する方法及びシステム
JPH08292932A (ja) マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
JPS626261B2 (ja)
US5960424A (en) Method and system for managing computer database connections
US7073004B2 (en) Method and data processing system for microprocessor communication in a cluster-based multi-processor network
JP2004086921A (ja) マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
RU2042193C1 (ru) Вычислительная система
JPH05216844A (ja) マルチプロセッサデータ処理システムにおける改良されたタスク分散のための方法および装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070306