JP3798049B2 - データメモリおよびその動作方法 - Google Patents
データメモリおよびその動作方法 Download PDFInfo
- Publication number
- JP3798049B2 JP3798049B2 JP25146395A JP25146395A JP3798049B2 JP 3798049 B2 JP3798049 B2 JP 3798049B2 JP 25146395 A JP25146395 A JP 25146395A JP 25146395 A JP25146395 A JP 25146395A JP 3798049 B2 JP3798049 B2 JP 3798049B2
- Authority
- JP
- Japan
- Prior art keywords
- memory cell
- data
- memory
- output
- contents
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Dram (AREA)
Description
【発明の属する技術分野】
本発明は、データメモリへのアクセスに関する。
【0002】
【従来の技術】
データ処理システムにおける中央処理装置(CPU)のパフォーマンスを改善するために、キャッシュメモリを用いることは公知である。キャッシュメモリは、比較的小さい、高速度のランダムアクセスメモリ(RAM)であり、CPUにより頻繁に要求されるデータをストアするために用いられる。通常は、キャッシュRAMは、(例えば、外部メモリ管理ユニット(MMU)を経ずに)CPUにより直接アクセスされ、CPUとキャッシュメモリとの間の信号伝搬時間を短縮するために、CPUに物理的に接近して配置される。これらの特徴は、データが極めて速く、キャッシュRAMにストアされ、またそれから検索できることを意味する。
【0003】
キャッシュRAMは、通常は、いくつかのキャッシュ「ライン」として組織され、それぞれのラインは、例えば、8つのデータワードをストアできる。キャッシュRAMがアクセスされる時は、データライン全体が読出され、出力ビットライン上に配置される。もし次のキャッシュRAMアクセスが、同じキャッシュラインからのデータワードを要求しても、その時そのラインを再読出しする必要はない。そのワードは、出力ビットラインから簡単に読出すことができる。
【0004】
キャッシュラインを出力ビットライン上に読出す動作は、キャッシュRAMの全電力要求のかなりの割合を消費する。これは、読出し動作が、高度に容量性であるビットライン自体をチャージ(充電)する前の、データを読出すためのセンスアンプのプリチャージを含むからである。
【0005】
1つの公知のタイプのキャッシュRAMアーキテクチャにおいては、データワードおよびプロセッサ命令語の双方をストアするために単一のキャッシュRAMが用いられる。これは、1キャッシュラインからロードされた命令の実行が、プロセッサをして、異なるキャッシュラインからデータをロード、または異なるキャッシュラインにデータをストアする場合に、特に高電力消費を招く。この状況においては、プロセッサは最初、キャッシュRAMからの命令を、その命令をストアするキャッシュラインをして、ビットライン上へ読出されることによりロードする。該命令が実行される時、プロセッサはもう1つのキャッシュラインを読出すか、またはもう1つのキャッシュラインに書込む。これは、前記命令を含むキャッシュラインが、ビットラインから廃棄され、新しいキャッシュラインがビットライン上へ読取られることを意味する。(プロセッサがキャッシュRAMに書込む場合には、ビットラインが該書込みプロセスにおいて用いられるので、現在該ビットライン上に保持されている値もやはり廃棄されなければならない)。ロードまたはストア動作が完了した後は、ビットライン上に保持されていた新しい値は、再び廃棄されなくてはならず、また原キャッシュラインは再読出しされ、プロセッサは後の必要な命令にアクセスしうるようにされる。
【0006】
これらの多重命令−データ−命令アクセスは、電力消費と、キャッシュRAMのアクセス時間とをかなり増大させる可能性がある。電力消費の増加は、全キャッシュの電力消費の10%から30%の間であると推定され、これは、すでにシステムの電力の比較的高い割合を使用するキャッシュRAMの主要な問題である。また、上述のように、アクセス時間の増大は、主要な要求が高速度動作であるキャッシュRAMにおいては、特に不利となる。
【0007】
【発明が解決しようとする課題】
本発明の目的は、データメモリ、特にキャッシュメモリ、の電力消費およびアクセス時間を減少させることである。この目的は、携帯用の、電池電源式装置に用いるためのデータメモリに特に関連する。
【0008】
【課題を解決するための手段】
本発明が提供するデータメモリは、
所定のメモリセルグループとしてアクセスできる、アドレス指定が可能なメモリセルのアレイと、
少なくとも最も最近に読出されたメモリセルグループと、もう1つの前に読出されたメモリセルグループと、の内容をストアするための出力バッファ手段と、必要なメモリセルを含む前記メモリセルグループの前記内容が、前記出力バッファ内にストアされているか否かの表示に応答して、前記必要なメモリセルを含む前記メモリセルグループの前記内容を前記出力バッファ手段内へ読出す読出し手段と、を含み
少なくとも前記必要なメモリセルの前記内容が、前記出力バッファ手段から出力として供給される。
【0009】
本発明によるデータメモリにおいては、メモリセルのグループ(例えばキャッシュライン)が読出され、少なくとも1つの他の前に読出されたグループと共に出力バッファ内にストアされる。これは、上述の問題を軽減することができ、その場合、1キャッシュラインからロードされたプロセッサ命令の実行は、該プロセッサをして、異なるキャッシュラインからデータをロード、または異なるキャッシュラインへデータをストアさせた後に、原キャッシュラインへ復帰させて、後の必要な命令を読出す。これは、(上述の、前に提案されたメモリにおけるようには)原キャッシュラインが廃棄されず、出力バッファ手段内に保持されるからである。上述のように、これは、キャッシュラインの読出し動作の回数を、命令−データ−命令系列のアクセスの場合において、例えば、3回のアクセスから2回のアクセスへ減少させることにより、例えば、キャッシュRAMの電力消費を、劇的に改善できる。
【0010】
好ましくは、出力バッファ手段は、少なくとも2つの出力ラッチを含み、それぞれの出力ラッチは1メモリセルグループの内容をストアする。
実施例においては、該出力ラッチの少なくとも1つは、トランジスタまたは半導体ラッチのような能動ラッチである。しかし、代替例としては、該出力ラッチの少なくとも1つは、容量性またはダイナミックラッチであってもよい。このタイプのラッチは、実質的に、メモリセルのアレイに接続されたビットラインのキャパシタンスによって形成できる。
【0011】
出力バッファ手段がいくつかのラッチによって形成され、そのそれぞれが1メモリセルグループをストアする時、前にラッチされたデータに制御された方法でオーバライトすると有利である。これを行う1つの方法は、読出し手段が、必要なメモリセルを含むメモリセルグループの内容を、最も古く書込まれた出力ラッチ内に読出す動作ができる実施例において用いられる。
【0012】
データメモリが少なくとも2つのカテゴリのデータをストアする、別の実施例においては、それぞれのカテゴリからのデータは、出力ラッチのそれぞれの(専用の)1つの中にストアできる。好ましくは、この構成は、2つのカテゴリのデータ、すなわち、
命令語と、
非命令語と、
をストアするデータメモリに対して用いられる。
【0013】
データメモリは、新しいメモリセルグループが出力バッファ内へ読出されるべきか否かの表示が外部装置により供給されるように、外部装置から制御できるが、1実施例においては、この表示は、データメモリ自体内において、前記出力バッファ手段内にストアされている前記メモリセルグループのアドレスを表示するアドレスデータをストアする手段と、必要なメモリセルの前記アドレスおよびストアされているアドレスデータに応答して、該必要なメモリセルを含む前記メモリセルグループの前記内容が前記出力バッファ手段内にストアされているか否かを検出する検出手段とを用いることにより得られ、該検出手段は、前記必要なメモリセルを含む前記メモリセルグループの前記内容が前記出力バッファ手段内にストアされているか否かの前記表示を発生し且つ前記読出し手段へ供給する。
【0014】
実施例においては、前記検出手段は、前記データメモリにアクセスする装置からの、現在の必要なメモリセルが前の必要なメモリセルの隣接アドレスを有するか否かについての表示に応答する。これは、前記現在の必要なメモリセルの内容が、前記出力バッファ内において見出すことができることを、少なくとも部分的に示す。
【0015】
好ましくは、前記読出し手段は、前記データメモリにアクセスする装置からの、現在の必要なメモリセルが前の必要なメモリセルの隣接アドレスを有するか否かについての表示に応答する。この場合、前記検出手段は、(ある実施例において)順次アクセスが前記出力バッファ手段内に保持されているキャッシュラインの終端部をオーバランしたか否かをチェックするほかには、現在必要なワードが該バッファ手段内に保持されているか否かをチェックする必要はない可能性がある。
【0016】
好ましくは、前記読出し装置は、現在の必要なメモリセルのアドレスが、該必要なメモリセルを含む前記メモリセルグループ内の最後のアドレスであるか否かを検出する手段を含む。
前記データメモリは、好ましくはキャッシュメモリである。
本発明は、中央処理装置と、以上において定められたデータメモリとを含むデータ処理装置において特に有効に用いられる。
【0017】
好ましくは、中央処理装置は、現在の必要なメモリセルが、前の必要なメモリセルの隣接アドレスを有すること、を表示する動作を、該前の必要なメモリセルの該アドレスが、メモリセルグループ内の前記最後のアドレスを有することを検出されなかった時にのみ、行いうる。中央処理装置は、この検出を自身で行う、または上述の読出し手段による検出を信頼することができる。いずれの場合においても、次のアクセスが非順次的に行われる事実は、前記読出し装置を自動的にトリガして、新しいキャッシュラインを前記出力バッファ手段内へ読出すために用いることができる。
【0018】
本発明は、第2特徴から見ると、所定のメモリセルグループとしてアクセスできるアドレス指定が可能なメモリセルのアレイを有するデータメモリの動作方法を提供し、該方法は、少なくとも最も最近に読出されたメモリセルグループと、もう1つの前に読出されたメモリセルグループと、の内容を出力バッファ手段内にストアするステップと、必要なメモリセルを含む前記メモリセルグループの前記内容が、前記出力バッファ内にストアされているか否かの表示に応答して、前記必要なメモリセルを含む前記メモリセルグループの前記内容を前記出力バッファ手段内へ読出すステップとを含み、少なくとも前記必要なメモリセルの前記内容は、前記出力バッファ手段から出力として供給される。
【0019】
【発明の実施の形態】
本発明の、上述の、およびその他の、諸目的および諸利点は、添付図面を参照しつつ読まれるべき実施例に関しての以下の詳細な説明において明らかにされる。
【0020】
【実施例】
図1は、キャッシュランダムアクセスメモリ(RAM)20に接続された処理コア10を含むデータ処理装置の概略図である。キャッシュRAM20は、アクセス制御装置30と、トランジスタメモリセルのアレイを含むメモリアレイ40と、2つのラインバッファ50、60と、マルチプレクサ70とを含む。
【0021】
処理コア10およびキャッシュRAM20は、共通集積回路のそれぞれの部分として製造できる。
メモリアレイ40は、いくつかのキャッシュライン45を含み、そのそれぞれは、256メモリセルから形成される。従って、キャッシュラインは、それぞれが32ビット(4バイト)のデータを含む8つのデータワードをストアする。
【0022】
この図および図2から図4までにおいては、キャッシュRAMからデータを読取る機構が主として示されている。他の点では、ビットラインを経てのキャッシュRAMへのデータの書込みのための機構は通常のものである。
【0023】
以下に詳述されるアクセス制御装置30の制御のもと、キャッシュライン45の1つがアクセスのために選択可能であり、そのキャッシュライン内に保持されているデータは(通常のセンスアンプを経て)ビットライン55上へ出力される。ビットライン55は、ラインバッファ50およびラインバッファ60へ並列に供給される。
【0024】
キャッシュRAM20は、プロセッサ命令および処理されるべきデータの双方をストアするために用いられる。一般に、処理コア10は、キャッシュRAM20の1部分にストアされている1つまたはそれ以上の命令語へのアクセスを要求し、続いて、キャッシュRAM20の異なる部分にストアされているさまざまなデータワードへのアクセスが行われる。データワードがアクセスされた後には、処理コア10は、前にアクセスされた命令語に隣接してストアされている、さらなる命令語へのアクセスへ復帰する。
【0025】
従って、通常の動作においては、処理コア10は、メモリアレイ40の2つの異なる部分、すなわちデータワードをストアする部分と、命令語をストアする部分とに対し交互のアクセスを要求する。(前述された、前に提案されたキャッシュメモリにおけるように)処理コア10がキャッシュRAM20の新しい部分へのアクセスを要求する毎に、もし全キャッシュラインがアクセスされなくてはならないとすれば、これは、全キャッシュライン45が、交互の命令−データ−命令のアクセスのために、繰り返して読出されなくてはならないことを意味する。これは、キャッシュRAM20の平均電力消費(および恐らくは平均アクセス時間をも)増大させる。
【0026】
この問題を軽減するために、本実施例は、アクセス制御装置30の制御のもとに動作する2つのラインバッファ50、60を用いる。次に、この構成を詳細に説明する。
【0027】
本実施例においては、キャッシュライン45がアクセスされた時、そのキャッシュラインの内容は、ラインバッファ50、60の一方にストアされる。そのバッファは、アクセス制御装置30の制御下にあり、「現」バッファと呼ばれる。該現ラインバッファの内容は、マルチプレクサ70(これもアクセス制御装置30の制御下にある)を経て、処理コア10の入力へ送られる。メモリアレイ40から読出される次のキャッシュライン45は、ラインバッファ50、60の他方の1つの中にストアされ、そのバッファは次に、新しい現バッファになる。これは、前に読出されたキャッシュラインの内容が廃棄されずに、非現ラインバッファ内にストアされることを意味する。
【0028】
アクセス制御装置30は、ラインバッファ50、60のそれぞれの中にストアされている特定のキャッシュライン45のレコードを、いずれのラインバッファが現ラインバッファであるかの表示と共に保持する。処理コア10がキャッシュRAM20内にストアされているワードへのアクセスを要求する毎に、処理コア10は、アクセス制御装置30へアドレスを送信する。次に、アクセス制御装置30は、そのワードを保持するキャッシュライン45が既に読出され、かつなお現在ラインバッファ50、60の一方内にストアされているか否かを検出する。もし必要なキャッシュライン45が、ラインバッファ50、60の一方内にストアされていれば、そのバッファは次に現ラインバッファとなり、マルチプレクサ70がそのラインバッファの出力を選択し、必要なワードは、メモリアレイへのアクセスを再び必要とすることなく、処理コア10へ供給される。しかし、もしアクセス制御装置30が、必要なワードがラインバッファ50、60のいずれにもストアされていないことを検出すれば、アクセス制御装置30は、必要なキャッシュライン45がメモリアレイ40から読出されるように、メモリアレイ40を制御する。そのキャッシュライン45内にストアされているデータは、ビットライン55上へ出力され、かつアクセス制御装置30の制御のもとに、非現ラインバッファ内にストアされる(該非現ラインバッファは次に、出力のための現ラインバッファとなる)。
【0029】
図1に示されている実施例においては、ラインバッファ50、60のそれぞれは、命令語またはデータワードのいずれかをストアできる。実際には、ラインバッファ50、60の一方は、命令語をストアする傾向があり、他方は、データワードをストアする傾向があるが、その理由は、単にこれら2つのタイプのワード間で一般に交互するアクセスが要求されるからである。
【0030】
図2は、第2実施例を示し、この実施例は命令語をストアするための専用ラインバッファと、データワードをストアするための第2専用ラインバッファとを有する。
図2において、処理コア110は、アクセス制御装置130と、いくつかのキャッシュライン145から形成されたメモリアレイ140と、2つのラインバッファ150、160とを含むキャッシュRAM120と通信する。
【0031】
処理コア110は、必要なデータまたは命令語のアドレスを発生し、それはアクセス制御装置130により、「非データ命令(instruction−not−data)」(I/D(バー))信号ラインと共に処理される。非データ命令信号ラインは、処理コアがキャッシュRAM120から命令を読出しつつある時に、一方のラインバッファ(実際には、ラインバッファ150)が動作を可能化され、処理コア110がキャッシュRAM120からデータワードを読出しつつある時に、他方のラインバッファ(ラインバッファ160)が動作を可能化されるように、相補的なそれぞれの形式でラインバッファ150、160へ供給される。
【0032】
アクセス制御装置130は、もし現アクセスに対する必要なデータまたは命令語が、すでに適切なラインバッファ150、160内にストアされていれば、そのワードが再びアクセスされずに単に適切なすなわち該当するラインバッファから読出されるように、キャッシュラインのアドレスのレコードを、ラインバッファ150、160のそれぞれの中に保持する。
【0033】
図3は、第3実施例の概略図であり、この実施例においては、処理コア210は、アクセス制御装置230と、キャッシュライン245を有するメモリアレイ240と、ラインバッファ250、260とを含むキャッシュRAM220と通信する。
【0034】
この場合も、ラインバッファ250、260は、命令語またはデータワードのいずれかに対する専用のものとなる。現在必要なワードの性質に依存して用いられるべきラインバッファは、「適切な」ラインバッファと呼ばれる。
【0035】
アクセス制御装置230の動作は、処理コア210からの「順次」フラグの使用により、図2のアクセス制御装置130に比し簡単化される。順次フラグは、アクセス制御装置230へ供給され、処理コア210が要求する現キャッシュアクセスが、直前のキャッシュアクセスに対して順次的であることを表示する。順次アクセスの例は、処理コア210が第1命令にアクセスし、その命令を処理またはパイプラインし終わると、キャッシュRAM220内の隣接メモリアドレスにストアされている、直後に続く命令にアクセスするものである。
【0036】
図3の装置は、いくつかの異なる動作モードで動作させることができる。以下、これらを順次説明する。異なる諸モードは、処理コアおよび/またはアクセス制御装置のために用いられるハードウェアまたはオペレーティングソフトウェアに反映させることができる。一般に、これらの差は、図3の概略的性質からは明らかではないが、以下の説明において明らかにされる。
【0037】
第1動作モード
キャッシュアクセスが順次的である時は、それは一般に、前のキャッシュアクセスと同じキャッシュラインへのアクセスを要求する。しかし、上述のように、そのキャッシュラインは、(命令に対する)ラインバッファ250、または(データワードに対する)ラインバッファ260内にストアされているはずである。従って、必要なワードは、処理コア210からの非データ命令制御フラグによって選択された適切なラインバッファ250、260から読出すことができる。
【0038】
しかし、現在必要な順次アクセスされたワードが、適切なラインバッファ内に現在保持されているキャッシュラインの端部を実際にオーバランしているか否かを検出することが必要である。もしオーバランしていれば、そのラインバッファの内容は、次のキャッシュラインを該バッファ内へ読出すことによりリフレッシュされなければならない。
従って、この動作モードにおけるアクセス制御装置230の主な役割は、以下のようになる。
【0039】
【表1】
【0040】
現在必要なワードが、現在バッファされたキャッシュラインの端部をオーバランしたか否かの検出は、必要なアドレスの最低次ビットが、キャッシュラインの最初に対応するか否かを検出することによって行うことができる。
【0041】
第2動作モード
代替例としては、アクセス制御装置は、順次アクセスにおいては第1動作モードにおけるように動作するが、非順次アクセスにおいては常に、新しいキャッシュラインを適切なラインバッファ内へ読出す。これは、アクセス制御装置が行わなければならない唯一のアドレス比較によって、現在必要とされているワードが、バッファされたキャッシュラインの端部をオーバランしているか否かをチェックすることであることを意味する。これらの動作は以下のように要約される。
【0042】
【表2】
【0043】
第3動作モード
第3動作モードにおいては、アクセス制御装置は、現在必要なワードが、現在バッファされたキャッシュラインの端部にあるか否かを検出する。もしある場合は、アクセス制御装置は、処理コア210へ送られる「ライン端部」フラグをセットする。ライン端部フラグがセットされた時は、処理コアによる次のキャッシュアクセスは、常に非順次アクセスであるように強制される。非順次アクセスが処理コアによって行われる時、アクセス制御装置は応答して、常に、完全なキャッシュラインを適切なラインバッファ内に読出す。これらの動作は、以下のように要約される。
【0044】
【表3】
【0045】
この動作モードにおいては、処理コアおよびキャッシュRAMは、協働してアクセス制御装置の処理要求を減少させる。アクセス制御装置が、入来する(必要な)アドレスを、ストアされているアドレスと比較する必要はもうない。アクセス制御装置が行わなくてはならないのは、最後の(この場合は、8番目の)ワードが、ラインバッファの1つから読出されつつある時、フラグをセットすることのみである。処理コアは次に、(順次フラグをセットしないことにより)自動的に次のキャッシュアクセスを非順次アクセスにする。アクセス制御装置は、非順次アクセスを、キャッシュラインが適切なラインバッファ250、260内へ読出されることを常に要求するものとして解釈する。
【0046】
第4動作モード
もう1つの動作モードにおいては、処理コア自体が、それぞれのキャッシュラインから読出されたワード数の、またはキャッシュライン内の現在必要なワードの位置の、レコードを保持する。処理コアは次に、アクセス制御装置からのライン端部フラグを必要とすることなく、非順次アクセスでそれぞれのキャッシュラインへの最初のアクセスを自動的に行う。この場合は、アクセス制御装置の動作は以下のようにさらに簡単化される。
【0047】
【表4】
【0048】
第5および第6動作モード
さらなる可能な動作モードにおいては、アクセス制御装置は、順次アクセスにおける第3または第4モードにおけるように動作できるが、非順次アクセスにおいては、(第1モードにおけるように)アドレス比較を行うことができる。
【0049】
最後に、図4は、第4実施例の概略図であり、この実施例においては、中央処理装置(CPU)300は、処理コア310と、プリフェッチユニット312と、マルチプレクサ314と、キャッシュRAM320と通信するバスドライバ316とを含み、キャッシュRAM320は、アクセス制御装置330と、キャッシュライン345とを有するメモリ340と、ラインバッファ350、360と、バスドライバ370とを含む。
【0050】
マルチプレクサ314は、(ドライバ316および単方向バス380を経て)キャッシュRAM320へ伝送されるべき、以下の中から選択された情報を供給する。
キャッシュRAM(RA/WA)内の必要なワードのアドレスを示す読出しアドレスまたは書込みアドレス、
キャッシュRAM(WD)へ書込まれるべきデータ、および
前記キャッシュRAM内に保持されている命令のアドレスを示すプログラムカウンタ(PC)。
【0051】
マルチプレクサ314は、アドレスフラグ(AF)および命令フラグ(IF)の制御のもとに、単方向バス380を経て伝送されるべき以上のアイテムの1つを選択する。アドレスフラグは、処理コア310により発生され、該コアが、キャッシュRAM320への非順次的読出しまたは書込みアクセスを要求しており、かつ単方向バス380上にアドレスを配置しつつあることを表示し、命令フラグは、プリフェッチユニット312により発生され、該プリフェッチユニットがキャッシュRAM320内の命令語へのアクセスを要求していることを表示する。単方向バス380上へ伝送されるアイテムは、アドレスフラグおよび(データワードの読出しおよび書込み動作をそれぞれ表示する読出しフラグおよび書込みフラグを含む)他のフラグと共に、アクセス制御装置330へ供給される。アクセス制御装置330および処理コア310は、図3に関連して上述されたアクセス制御装置のいずれとも同様に動作し、順次または非順次アクセスおよび命令の表示としてアドレスフラグ、上述の非データ命令フラグの代わりに読出しおよび書込みフラグを用いる。もしさまざまな動作モードの特定の1つにおいて適切ならば、アクセス制御装置はライン端部フラグを処理コアへ供給し返す。
【0052】
アクセス制御装置330の制御のもとに、必要なデータまたは命令語は、メモリアレイ340から読出されるか、または、ラインバッファ350、360の適切な1つからバスドライバ370へ直接出力される。そのデータまたは命令語は次に、第2単方向バス390を経てCPU300へ伝送される。CPU300においては、単方向バス390上へ伝送されたアイテムは、(もしそれが命令であれば)プリフェッチユニット312へ、または(もしそれがデータワードであれば)処理コア310の読出しデータ(RD)入力へ送られる。
【0053】
図4に示されている単方向バスを用いる利点は、(それぞれのバスドライバを停止させることにより)1方向へのバス伝送を中止して、関連する電力消費および遅延を有する他方向への伝送を(異なるバスドライバを初期化することにより)再開する必要がないことである。
【0054】
全ての上述の実施例において、ラインバッファ(50、60;150、160;250、260;350、360)はスタティックラッチ、(キャパシタまたは、2つのバッファの一方においては、ビットラインのキャパシタンス、のような)ダイナミックラッチ、またはビットライン上の値を一時的に保持できる他の装置でもよい。もちろん、3つまたはそれ以上のラインバッファを使用することもでき、この構成は、図1から図4までに関連して上述された2つのカテゴリのワード(命令語およびデータワード)よりも多くをストアするキャッシュメモリに対して適切となろう。この場合には、ラインバッファの内容は、同じカテゴリのデータによって、または「最も古く用いられた」という根拠に基づいて、オーバライトされてもよい。
【0055】
さらに別の実施例においては、上述の技術は、それぞれが例えば1キロバイトのデータをストアするブロックまたはセグメントのアレイから形成されたキャッシュメモリに適用できる。この場合には、それぞれのセグメントに対して少なくとも1つのラインバッファが備えられ、そのセグメントによって出力された前に読出されたデータをストアする。それらのセグメントは、例えば、アソシアチブ4×4アレイによって配列され、該セグメントのそれぞれの行は、4重の連想(アソシアチブ)キャッシュを形成する。直接アドレス指定を用いて、正しい行が選択され、次にその行のセグメント内の正しいキャッシュラインが選択される。このようにして、キャッシュラインをセグメントに分割することにより、ビットラインのキャパシタンスは減少され、より高速度かつより低電力消費の動作が得られる。
【0056】
ここでは、添付図面を参照しつつ、本発明の実施例を詳細に説明してきたが、本発明は、これらの精細な実施例に限定されるものではないこと、および添付の特許請求の範囲によって定められる本発明の範囲および精神から逸脱することなく、本当業者によりさまざまな変更および改変を行えることを理解すべきである。
【図面の簡単な説明】
【図1】処理コアおよびキャッシュランダムアクセスメモリ(RAM)を含むデータ処理装置の概略図。
【図2】処理コアおよびキャッシュRAMを含むデータ処理装置の第2実施例の概略図。
【図3】処理コアおよびキャッシュRAMを含むデータ処理装置の第3実施例の概略図。
【図4】処理コアおよびキャッシュRAMを含むデータ処理装置の第4実施例の概略図。
【符号の説明】
10 処理コア
20 キャッシュRAM
30 アクセス制御装置
40 メモリアレイ
50 ラインバッファ
60 ラインバッファ
110 処理コア
120 キャッシュRAM
130 アクセス制御装置
140 メモリアレイ
150 ラインバッファ
160 ラインバッファ
210 処理コア
220 キャッシュRAM
230 アクセス制御装置
240 メモリアレイ
250 ラインバッファ
260 ラインバッファ
300 中央処理装置
310 処理コア
320 キャッシュRAM
330 アクセス制御装置
340 メモリアレイ
350 ラインバッファ
360 ラインバッファ
Claims (14)
- 所定のメモリセルグループとしてアクセス可能なアドレス指定が可能なメモリセルのアレイと、
少なくとも最も最近に読出されたメモリセルグループと、もう1つ前に読出されたメモリセルグループと、の内容をストアするための出力バッファ手段であり、少なくとも2つの出力ラッチであってそれぞれの出力ラッチが1メモリセルグループの前記内容をストアする、該少なくとも2つの出力ラッチを含む前記出力バッファ手段と、
必要なメモリセルを含む前記メモリセルグループの前記内容が、前記出力バッファ内にストアされているか否かの表示に応答して、前記必要なメモリセルを含む前記メモリセルグループの前記内容を前記出力バッファ手段内へ読出す読出手段とを含み、
少なくとも前記必要なメモリセルの前記内容が、前記出力バッファ手段から出力として供給され、
前記出力ラッチの異なるそれぞれに命令語と、非命令語とをストアする
データメモリ。 - 少なくとも1つの前記出力ラッチが能動ラッチである請求項1記載のデータメモリ。
- 少なくとも1つの前記出力ラッチが容量性ラッチである請求項1記載のデータメモリ。
- 前記容量性ラッチ、または前記容量性ラッチの1つが、前記メモリセルのアレイに接続されたビットラインのキャパシタンスにより実質的に形成される請求項3記載のデータメモリ。
- 前記読出手段が、前記必要なメモリセルを含む前記メモリセルグループの前記内容を、最も古く書込まれた前記出力ラッチ内に読出すべく動作可能な請求項1記載のデータメモリ。
- 前記出力バッファ手段内にストアされている前記メモリセルグループのアドレスを表示するアドレスデータをストアする手段と、
必要なメモリセルの前記アドレスおよび前記アドレスデータに応答して、該必要なメモリセルを含む前記メモリセルグループの前記内容が前記出力バッファ手段内にストアされているか否かを決定する検出手段とを含み、
該検出手段が、前記必要なメモリセルを含む前記メモリセルグループの前記内容が前記出力バッファ手段内にストアされているか否かの前記表示を生成し且つ前記読出手段へ供給する
請求項1記載のデータメモリ。 - 前記読出手段が、前記データメモリにアクセスする装置からの、現在の必要なメモリセルが前の必要なメモリセルの隣接アドレスを有するか否かについての表示に応答する
請求項1記載のデータメモリ。 - 現在の必要なメモリセルのアドレスが、該必要なメモリセルを含む前記メモリセルグループ内の最後のアドレスであるか否かを検出する手段を、前記読出手段が含む
請求項7記載のデータメモリ。 - 前記データメモリがキャッシュメモリである、請求項1記載のデータメモリ。
- 中央処理装置と、
請求項1記載のデータメモリと、
を含むデータ処理装置。 - 中央処理装置と、
請求項8記載のデータメモリと、
を含む、データ処理装置。 - 現在の必要なメモリセルが、前の必要なメモリセルの隣接アドレスを有することを表示する動作を、該前の必要なメモリセルの該アドレスが、メモリセルグループ内の前記最後のアドレスを有することを検出されなかった時にのみ前記中央処理装置が行うことができる、
請求項11記載のデータ処理装置。 - 所定のメモリセルグループとしてアクセス可能な、アドレス指定が可能なメモリセルのアレイを有するデータメモリの動作方法であって、該方法が、
少なくとも最も最近に読出されたメモリセルグループと、もう1つの前に読出されたメモリセルグループと、の内容を出力バッファ手段内にストアするステップであって、前記出力バッファ手段が少なくとも2つの出力ラッチであり、それぞれの出力ラッチが1メモリセルグループの前記内容をストアする、該少なくとも2つの出力ラッチを含む、前記ステップと、
必要なメモリセルを含む前記メモリセルグループの前記内容が、前記出力バッファ内にストアされているか否かの表示に応答して、前記必要なメモリセルを含む前記メモリセルグループの前記内容を前記出力バッファ手段内へ読出すステップと、を含み、
少なくとも前記必要なメモリセルの前記内容が、前記出力バッファ手段から出力として供給され、
前記データメモリが前記出力ラッチの異なるそれぞれに命令語と、非命令語とをストアする、
データメモリの動作方法。 - 請求項1記載のデータメモリのアレイ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB94197464 | 1994-09-30 | ||
GB9419746A GB2293668B (en) | 1994-09-30 | 1994-09-30 | Accessing data memories |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08185355A JPH08185355A (ja) | 1996-07-16 |
JP3798049B2 true JP3798049B2 (ja) | 2006-07-19 |
Family
ID=10762147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25146395A Expired - Lifetime JP3798049B2 (ja) | 1994-09-30 | 1995-09-28 | データメモリおよびその動作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5627988A (ja) |
JP (1) | JP3798049B2 (ja) |
GB (1) | GB2293668B (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU8181198A (en) * | 1997-07-02 | 1999-01-25 | Creative Technology Ltd | Audio effects processor having decoupled instruction execution and audio data sequencing |
EP0921471A1 (en) * | 1997-12-05 | 1999-06-09 | Texas Instruments France | Cache architecture |
FR2778256B1 (fr) * | 1998-04-29 | 2001-10-26 | Texas Instruments France | Circuit de memoire cache, procede pour inserer des donnees dans une memoire cache et dispositif de traitement utilisant une telle memoire |
JP3439350B2 (ja) | 1998-10-02 | 2003-08-25 | Necエレクトロニクス株式会社 | キャッシュ・メモリ制御方法及びキャッシュ・メモリ制御装置 |
US8427490B1 (en) | 2004-05-14 | 2013-04-23 | Nvidia Corporation | Validating a graphics pipeline using pre-determined schedules |
US8624906B2 (en) * | 2004-09-29 | 2014-01-07 | Nvidia Corporation | Method and system for non stalling pipeline instruction fetching from memory |
US8725990B1 (en) | 2004-11-15 | 2014-05-13 | Nvidia Corporation | Configurable SIMD engine with high, low and mixed precision modes |
US9092170B1 (en) | 2005-10-18 | 2015-07-28 | Nvidia Corporation | Method and system for implementing fragment operation processing across a graphics bus interconnect |
US7904647B2 (en) * | 2006-11-27 | 2011-03-08 | Lsi Corporation | System for optimizing the performance and reliability of a storage controller cache offload circuit |
US8683126B2 (en) * | 2007-07-30 | 2014-03-25 | Nvidia Corporation | Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory |
US8659601B1 (en) | 2007-08-15 | 2014-02-25 | Nvidia Corporation | Program sequencer for generating indeterminant length shader programs for a graphics processor |
US8698819B1 (en) | 2007-08-15 | 2014-04-15 | Nvidia Corporation | Software assisted shader merging |
US9024957B1 (en) | 2007-08-15 | 2015-05-05 | Nvidia Corporation | Address independent shader program loading |
US8411096B1 (en) | 2007-08-15 | 2013-04-02 | Nvidia Corporation | Shader program instruction fetch |
US8780123B2 (en) * | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US9064333B2 (en) | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8923385B2 (en) * | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
US8681861B2 (en) * | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US8489851B2 (en) * | 2008-12-11 | 2013-07-16 | Nvidia Corporation | Processing of read requests in a memory controller using pre-fetch mechanism |
US9281036B2 (en) * | 2013-01-08 | 2016-03-08 | Qualcomm Incorporated | Memory device having an adaptable number of open rows |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3938097A (en) * | 1974-04-01 | 1976-02-10 | Xerox Corporation | Memory and buffer arrangement for digital computers |
US5185879A (en) * | 1988-01-21 | 1993-02-09 | Akira Yamada | Cache system and control method therefor |
US5201041A (en) * | 1988-12-29 | 1993-04-06 | International Business Machines Corporation | Cache bypass apparatus |
GB2244157A (en) * | 1990-05-15 | 1991-11-20 | Sun Microsystems Inc | Apparatus for row caching in random access memory |
CA2043493C (en) * | 1990-10-05 | 1997-04-01 | Ricky C. Hetherington | Hierarchical integrated circuit cache memory |
US5126975A (en) * | 1990-10-24 | 1992-06-30 | Integrated Device Technology, Inc. | Integrated cache SRAM memory having synchronous write and burst read |
GB2255211B (en) * | 1991-04-25 | 1995-05-17 | Intel Corp | LRU pointer updating in a controller for two-way set associative cache |
-
1994
- 1994-09-30 GB GB9419746A patent/GB2293668B/en not_active Expired - Lifetime
-
1995
- 1995-08-16 US US08/515,543 patent/US5627988A/en not_active Expired - Lifetime
- 1995-09-28 JP JP25146395A patent/JP3798049B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH08185355A (ja) | 1996-07-16 |
GB2293668A (en) | 1996-04-03 |
GB9419746D0 (en) | 1994-11-16 |
GB2293668B (en) | 1999-09-29 |
US5627988A (en) | 1997-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3798049B2 (ja) | データメモリおよびその動作方法 | |
US8850112B2 (en) | Non-volatile hard disk drive cache system and method | |
US5555392A (en) | Method and apparatus for a line based non-blocking data cache | |
US6205521B1 (en) | Inclusion map for accelerated cache flush | |
US6782454B1 (en) | System and method for pre-fetching for pointer linked data structures | |
JP3289661B2 (ja) | キャッシュメモリシステム | |
JPH0668735B2 (ja) | キヤツシユメモリ− | |
US5251310A (en) | Method and apparatus for exchanging blocks of information between a cache memory and a main memory | |
JPH05127992A (ja) | 2レベルのキヤツシユ・メモリ内の干渉を低減する装置と方法 | |
US5161219A (en) | Computer system with input/output cache | |
US7577791B2 (en) | Virtualized load buffers | |
US6606687B1 (en) | Optimized hardware cleaning function for VIVT data cache | |
US6263408B1 (en) | Method and apparatus for implementing automatic cache variable update | |
EP0474356A1 (en) | Cache memory and operating method | |
CA1299767C (en) | Cache memory control system | |
EP0488566A2 (en) | Method and apparatus for fast page mode selection | |
JP2852232B2 (ja) | コンピュータ | |
JP2001222467A (ja) | キャッシュ装置 | |
US6385687B2 (en) | Method and apparatus for simultaneously accessing the tag and data arrays of a memory device | |
JPH07210464A (ja) | キャッシュ記憶装置および方法 | |
JPH09319657A (ja) | 命令読み込み用バッファを備えたプロセッサ | |
JP3039391B2 (ja) | メモリシステム | |
JPH0793215A (ja) | 半導体記憶装置 | |
CA1313422C (en) | Cache memory control system | |
EP0400851A2 (en) | Efficient cache utilizing a store buffer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050606 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050617 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050920 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060324 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060419 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090428 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100428 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100428 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110428 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120428 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130428 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130428 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140428 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |