JP3546788B2 - メモリ制御回路 - Google Patents

メモリ制御回路 Download PDF

Info

Publication number
JP3546788B2
JP3546788B2 JP36082799A JP36082799A JP3546788B2 JP 3546788 B2 JP3546788 B2 JP 3546788B2 JP 36082799 A JP36082799 A JP 36082799A JP 36082799 A JP36082799 A JP 36082799A JP 3546788 B2 JP3546788 B2 JP 3546788B2
Authority
JP
Japan
Prior art keywords
memory
channel
counter
master
access
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 - Fee Related
Application number
JP36082799A
Other languages
English (en)
Other versions
JP2001175529A (ja
Inventor
岳志 植松
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP36082799A priority Critical patent/JP3546788B2/ja
Priority to US09/733,938 priority patent/US6505287B2/en
Priority to TW089126872A priority patent/TW495666B/zh
Publication of JP2001175529A publication Critical patent/JP2001175529A/ja
Application granted granted Critical
Publication of JP3546788B2 publication Critical patent/JP3546788B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means

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

【0001】
【発明の属する技術分野】
本発明は、メモリ制御回路に関し、特に、リースト・リースントリー・ユースト(以降LRUと記す)による制御方法を用いてバーチャルチャネルメモリ(以降、VCMと記す箇所もある)を制御するメモリ制御回路に関する。
【0002】
【従来の技術】
従来のバーチャルチャネルメモリについて図面を参照して説明する。
図7は、バーチャルチャネルメモリの概念図である。
図8は、VCMを用いた従来の代表的なメモリシステムのブロック図である。
図7を参照すると、VCM60はそのメモリ内部に複数のチャネル50(レジスタで構成される)およびメモリセル51を備えている。メモリセル51は、複数のセグメントから成る。それぞれのチャネル50は、メモリセル51の全てのセグメントと接続され、アクセス単位である全てのセグメントにアクセス可能である。チャネル50には、個々を識別するためのチャネル番号が割り当てられる。また、図8を参照すると、メモリシステムは、VCM60と、メモリ制御回路62と、メモリマスタ67と、メモリマスタ70と、メモリマスタ73とから構成される。メモリマスタ67〜メモリマスタ73は、たとえば、ジョブを実行するプロセッサである。
【0003】
メモリ制御回路62は、チャネル50に対してリード/ライト動作をする(フォアグランド処理)。メモリセル51とチャネル50との間のデータ転送や、メモリセル51のプリチャージ、リフレッシュなどの内部動作はフォアグランド処理とは独立に行われる(バックグランド処理)。VCM60はこのフォアグランド処理とバックグランド処理とが独立に行うことにより、高い平均データ転送速度を可能にしている。
【0004】
VCM60のチャネル51とモリ制御回路62とは専用のメモリバス61で接続されている。メモリ制御回路62は、メモリバス61を制御するメモリインタフェース制御部63と、各メモリマスタ67、メモリマスタ70、メモリマスタ73のアクセス要求を調停するアービタ部64と、VCM60の各チャネル50の情報を格納するチャネル情報格納部65、チャネル情報格納部68、チャネル情報格納部71と、チャネル情報格納部65、チャネル情報格納部68、チャネル情報格納部71をそれぞれLRU制御するLRU制御部66、LRU制御部69、LRU制御部72とを有する。
【0005】
チャネル情報格納部65、チャネル情報格納部68、チャネル情報格納部71およびLRU制御部66、LRU制御部69、LRU制御部72は、VCM60の特徴を生かすために、それぞれメモリマスタ67、メモリマスタ70、メモリマスタ73に対応して設けられており、メモリマスタ67〜メモリマスタ73によるマルチタスク処理に対して各メモリマスタ67〜メモリマスタ73毎に割り当てるチャネル50の数を適宜変えて、各メモリマスタ67〜メモリマスタ73からのアクセスの待ち時間を短縮する。ここでは、例として、メモリマスタ67には3つ、メモリマスタ70には2つ、メモリマスタ73には4つのチャネル50が割り当てられたとする。ここで、チャネル50は重複しては、割り当てられない。
【0006】
以下に、上記のように構成されたメモリ制御回路62の動作について説明する。たとえば、まず、メモリマスタ67からサイクル要求(VCM60への要求)が発生する。このとき、メモリマスタ67からのサイクル要求信号がアービタ部64に入力され、当該サイクル要求が許可されたら、メモリアドレス(バンク、ロウ、セグメント、カラム)およびチャネル番号が、チャネル情報としてチャネル情報格納部65のチャネル番号に対応する位置に格納される。
【0007】
LRU制御部66は、メモリアドレスが格納されたチャネル(格納領域)をLRU制御の最下位にし、他の2つのチャネル(格納領域)をそれぞれ上位にする。メモリインタフェース制御部63は、アクセス要求されたメモリアドレスによりメモリバス61上にサイクルを発生させる。複数のメモリマスタからサイクル要求が同時に発生した場合は、アービタ部64で決められた優先順位にしたがってアクセス順位が決まる。
【0008】
アクセス要求されたサイクルのメモリアドレスが、すでに対応するチャネル情報格納部65〜チャネル情報格納部71に格納されているメモリアドレスと一致すれば、そのサイクルはヒットサイクルとして処理される。この際、アドレスが一致したチャネル情報格納部65、チャネル情報格納部68、チャネル情報格納部71の格納領域がLRU制御の最下位でなければ最下位に移動し、他の格納領域はそれぞれ上位にシフトする。
【0009】
アクセス要求されたサイクルのメモリアドレスが、すでに対応するチャネル情報格納部65〜チャネル情報格納部71に格納されているメモリアドレスのいずれとも一致せず、しかも対応するチャネル情報格納部65〜チャネル情報格納部71のすべてに他のアドレス情報が格納されている場合は、そのサイクルはチャネルミスとして処理される。この際、LRU制御の最上位のチャネル(格納領域)がアクセス要求のメモリマスタに対応するものになり、LRU制御の最下位に移動する。
【0010】
ただし、メモリマスタ67〜メモリマスタ73の種類が異なるシステムでは、メモリアクセス頻度も異なるため、チャネル50を効率よく使用するためにはそれぞれのシステムに合わせて各メモリマスタ67〜メモリマスタ73に割り当てるチャネル数を適切に設定する必要がある。
【0011】
図9は、リードサイクルにおいてチャネルヒットした場合とチャネルミスした場合のタイムチャートである。
【0012】
ここでPREはプリチャージコマンド(バンクアドレスを送出)、ACTはアクチベイトコマンド(バンク、ロウアドレスを送出)、PFCはプリフェッチコマンド(セグメントアドレス、チャネル番号を送出)、READはリードコマンド(チャネル番号、カラムアドレスを送出)をそれぞれ示している。チャネルミスの場合、つまり読み出そうとする有効データがチャネル50に保持されていない場合は、メモリセル51で活性化されているバンクをプリチャージコマンドにより非活性化した後、改めて有効データが格納されているロウアドレスをアクチベイトコマンドにより活性化、プリフェッチコマンドによりメモリセル51からデータをチャネル50にコピー、リードコマンドによりチャネル50からデータをリードという手順をとる必要がある。これに対して、ヒットサイクルの場合、つまりチャネル50に読み出そうとするデータがある場合は、リードコマンドのみでサイクルが終了する。図9を見るとわかるように、明らかにチャネルミスの場合はチャネルヒットよりもサイクルに要する時間が長い。
【0013】
また、「特開平7−221797号公報」記載の発明は、データ発生頻度は高いがデータを発生するチャネルの数が1チャネルである情報発生源を持つ情報処理システムと、データ発生頻度は低いがデータを発生するチャネルの数が複数チャネルである情報発生源を持つ情報処理システムとに共通して用いることができ、しかもメモリ使用効率が高いFIFOメモリ制御方式を提供するものである。
【0014】
【発明が解決しようとする課題】
上述した従来の技術の問題点は以下に示す。
各メモリマスタ67〜モリマスタ73に割り当てるチャネル数をコンフィグレーションレジスタ等の設定レジスタによって決定し、一度割り当てられたチャネル数はシステムを再起動させない限り変更することはできない。このため、各メモリマスタ67〜メモリマスタ73のメモリアクセス頻度を事前にもしくは自動的に理解して、各メモリマスタ67〜メモリマスタ73に割り当てるチャネル数を適切に調整することは非常に困難である。
【0015】
たとえば、図8においてメモリマスタ70のメモリアクセス頻度が非常に高く、メモリマスタ73のメモリアクセス頻度が非常に低いとする。しかし、メモリアクセス頻度とは逆に、メモリマスタ70に割り当てられたチャネル数は“2”と少なく、メモリマスタ73に割り当てられたチャネル数は“4”と多い。割り当てられたチャネル数が少ないということは、それだけメモリバス61を占有するチャネルミスが発生しやすいことになり、メモリアクセス頻度が高ければチャネルミスが発生する確率はさらに高まり、結果としてシステムとしての性能が低下する。
【0016】
また、「特開平7−221797号公報」記載の発明は、FIFOの分割の設定の組み合わせを変更するのみであり、変更の種類が限られているという欠点がある。
【0017】
本発明の目的は、VCMを使用してLRUによる制御方法を用いるシステムにおいて、アクセス頻度を考慮しながら制御するチャネルを各メモリマスタ間で移動することで、自動的にシステムに適したチャネル数を各メモリマスタに割り当て、VCMの持つチャネルの使用効率を高め、メモリアクセス性能を向上させることである。
【0018】
【課題を解決するための手段】
本発明の第1のメモリ制御回路は、複数のチャネルを備えたバーチャルチャネルメモリを制御するメモリ制御回路であって、
複数のメモリマスタにそれぞれ割り当てられ、かつ各前記チャネルに1対1対応し、前記チャネルを識別するチャネル番号および前記バーチャルチャネルメモリに対するアクセスに際したメモリアドレスを保持する複数の格納領域を備えるチャネル情報格納部と、
前記メモリマスタがアイドル状態になったことを検知してカウントアップし、前記メモリマスタからのアクセスが発生したらそのカウンタ値をクリアして、前記メモリマスタが長期間アクセスをしなかったことを判断するための情報を提供する前記メモリマスタ毎のアイドルカウンタと、
前記メモリマスタのアクセスが発生したらカウントアップし、前記アイドルカウンタが設定値までカウントアップしたら前記アイドルカウンタのカウンタ値をクリアして、前記メモリマスタのアクセス頻度を判断するための情報を提供する前記メモリマスタ毎のアクセスカウンタと、
前記アイドルカウンタが設定値までカウントアップしたら、対応する前記メモリマスタの名称をエントリし、各前記メモリマスタに割り当てられた前記格納領域を各メモリマスタ間で移動する必要性が生じたときに優先的に移動するための情報を提供する移動チャネルエントリ部と、
を有する。
【0019】
本発明の第2のメモリ制御回路は、前記第1のメモリ制御回路であって、各前記メモリマスタに割り当てられた前記格納領域を各メモリマスタ間で移動する必要性が生じたときに、前記アクセスカウンタのカウンタ値および前記移動チャネルエントリ部からの情報に基づいて、各前記メモリマスタへの前記格納領域の割り当てを更新する移動チャネル制御部を有する
【0020】
本発明の第3のメモリ制御回路は、
複数のチャネルを備えたバーチャルチャネルメモリを制御するメモリ制御回路であって、
複数のメモリマスタにそれぞれ割り当てられ、かつ各前記チャネルに1対1対応し、前記バーチャルチャネルメモリに対するアクセスに際したメモリアドレスを保持する複数の格納領域を備えるチャネル情報格納部と、
前記バーチャルチャネルメモリへのアクセスに際し前記格納領域に対応した前記チャネルを識別するチャネル番号を作成する手段と、
前記メモリマスタがアイドル状態になったことを検知してカウントアップし、前記メモリマスタからのアクセスが発生したらそのカウンタ値をクリアして、前記メモリマスタが長期間アクセスをしなかったことを判断するための情報を提供する前記メモリマスタ毎のアイドルカウンタと、
前記メモリマスタのアクセスが発生したらカウントアップし、前記アイドルカウンタが設定値までカウントアップしたら前記アイドルカウンタのカウンタ値をクリアして、前記メモリマスタのアクセス頻度を判断するための情報を提供する前記メモリマスタ毎のアクセスカウンタと、
前記アイドルカウンタが設定値までカウントアップしたら、対応する前記メモリマスタの名称をエントリし、各前記メモリマスタに割り当てられた前記格納領域を各メモリマスタ間で移動する必要性が生じたときに優先的に移動するための情報を提供する移動チャネルエントリ部と、
を有する
【0021】
本発明の第4のメモリ制御回路は、前記第3のメモリ制御回路であって、各前記メモリマスタに割り当てられた前記格納領域を各メモリマスタ間で移動する必要性が生じたときに、前記アクセスカウンタのカウンタ値および前記移動チャネルエントリ部からの情報に基づいて、各前記メモリマスタへの前記格納領域の割り当てを更新する移動チャネル制御部を有する
【0028】
【発明の実施の形態】
次に、本発明の第1実施の形態について図面を参照して詳細に説明する。
図1は、本発明の第1の実施の形態を示すブロック図である。
図1を参照すると、本発明の第1の実施の形態は、アクセス要求(VCM29への要求)を発生する複数のメモリマスタ10、メモリマスタ11、メモリマスタ12と、バーチャルチャネルメモリであるVCM29と、メモリ制御回路90と、VCM29およびメモリ制御回路90を接続するメモリバス80とから構成される。
【0029】
メモリ制御回路90は、メモリマスタ10〜メモリマスタ12が発生するサイクルのバンクアドレス、ロウアドレス、カラムアドレス、セグメントアドレス、およびチャネル番号(これらを総称してチャネル情報と記す)を格納するチャネル情報格納部13と、チャネル情報をLRU制御するメモリマスタ10に対応するLRU制御部16、メモリマスタ11に対応するLRU制御部17、およびメモリマスタ12に対応するLRU制御部18とを含む。
【0030】
また、メモリ制御回路90は、メモリマスタ10がアイドル状態になったときに制御クロック(図示せず)によりカウントアップし、メモリマスタ10からアクセスがあるとそのカウンタ値をクリアするアイドルカウンタ19、メモリマスタ11がアイドル状態になったときに制御クロックによりカウントアップし、メモリマスタ11からアクセスがあるとそのカウンタ値をクリアするアイドルカウンタ20、およびメモリマスタ12がアイドル状態になったときに制御クロックによりカウントアップし、メモリマスタ12からアクセスがあるとそのカウンタ値をクリアするアイドルカウンタ21とを含む。
【0031】
また、メモリ制御回路90は、メモリマスタ10がアクセス要求を発生させたときカウントアップし、アイドルカウンタ19が設定値(適宜定めた値)までカウントアップしたらアイドルカウンタ19をクリアするアクセスカウンタ22と、メモリマスタ11がアクセス要求を発生させたときカウントアップし、アイドルカウンタ20が設定値までカウントアップしたらアイドルカウンタ20をクリアするアクセスカウンタ23と、メモリマスタ12アクセス要求を発生させたときカウントアップし、アイドルカウンタ21が設定値までカウントアップしたらアイドルカウンタ21をクリアするアクセスカウンタ22とを含む。
【0032】
また、メモリ制御回路90は、アイドルカウンタ19〜アイドルカウンタ21が設定値までカウントアップしたときに、それぞれ、メモリマスタ10〜メモリマスタ12の名称および設定値に到達した順番を格納する移動チャネルエントリ部25と、アクセスカウンタ22〜アクセスカウンタ24および移動チャネルエントリ部25のそれぞれの情報に基づいて、チャネルミス(メモリマスタ10〜メモリマスタ12からのアクセス要求のメモリアドレスと、チャネル情報格納部13内の対応する位置のメモリとで一致するものが存在しなかった場合)の発生によりチャネル50のメモリマスタ10〜メモリマスタ12への割り当ての変更を制御する移動チャネル制御部26と、メモリマスタ10〜メモリマスタ12からのアクセス要求を調停するアービタ部27と、アービタ部27の結果およびチャネル情報格納部13内のチャネル情報のアドレスにしたがってメモリバス80上のサイクルを発生するメモリインタフェース制御部28とを含む。
【0033】
また、チャネル情報格納部13〜15は、各メモリマスタ10〜メモリマスタ12毎に割り当てられたチャネル数分だけチャネル情報を格納する領域を有している。
【0034】
ただし、メモリマスタ10〜メモリマスタ12の他に、他の図示しないメモリマスタが接続されており、図示しない対応するLRU制御部、アイドルカウンタ、アクセスカウンタがメモリ制御回路90に含まれているが、わかりやすくするため、これらに関しては説明を省略する。
【0035】
VCM29は、図7に示すように、複数のチャネル50とメモリセル51とから構成される。メモリセル51は、複数のセグメントから構成される。チャネル50は、たとえば、レジスタで構成され、1つのチャネル50は、全てのセグメントに接続されており、1セグメント分のデータを保持できる。チャネル50にメモリセル51から読み出されたデータ、あるいは、メモリ制御部から書き込まれたデータは、書き換えられるまで保持される。
【0036】
メモリアドレスは、たとえば、図2に示すように、バンクアドレス(1ビット)、ロウアドレス(13ビット)、セグメント単位を示すセグメントアドレス(2ビット)、カラムアドレス(7ビット)から構成される。チャネル情報としては、以上の他に、チャネル番号(4ビット)が含まれる。このメモリアドレスがメモリマスタ10〜メモリマスタ12から送出され、チャネル情報格納部13の各格納領域に格納される。
【0037】
また、チャネル番号は、全てのチャネル50の番号を指定できるように設けられる。たとえば、チャネル50が16存在すれば、チャネル番号は、4ビットである。また、チャネル情報格納部13は、各チャネル50に対応する格納領域を含む。たとえば、図14(a)を参照すると、チャネル情報格納部13の格納領域0〜2は、メモリマスタ10に、格納領域3〜4は、メモリマスタ11に、格納領域12〜15は、メモリマスタ12に対応するチャネル50のチャネル情報を格納する。ここで、チャネル番号0〜15と格納領域0〜15は対応している。
【0038】
チャネル番号0〜15は、システムの初期化時に生成され、チャネル情報の一部として対応する格納領域0〜15に格納される。
【0039】
各格納領域0〜15には、対応する有効フラグが設けられる(図示せず)。これは、その各格納領域内のチャネル情報が有効かどうかを示すものであり、初期値は、無効(空き)となっており、チャネル情報が格納されると、有効となり、チャネル情報が削除されると、無効(空き)となるように設定される。これについては、通常のキャッシュの有効フラグと同様に使用されるので、以降では、説明しない。
【0040】
図3は、アイドルカウンタ19〜アイドルカウンタ21の機能を説明するフローチャートである。図3を参照すると、アイドルカウンタ19〜アイドルカウンタ21は、基本的に、対応するメモリマスタ10〜メモリマスタ12がアイドル状態になると(図3S31/Yes)制御クロックにより設定値になるまで(図3S32)カウントアップし(図3S34)、カウンタ値を保持し(図3S35)、対応するメモリマスタ10〜メモリマスタ12からのアクセス要求(図3S31/No)またはチャネル移動の発生(図3S36)が発生したらそのカウンタ値をクリアする(図3S33)もので、これにより当該メモリマスタが長期間アクセスをしなかったかを判断することが可能である。
【0041】
図4は、アクセスカウンタ22〜アクセスカウンタ24の機能を説明するフローチャートである。図4を参照すると、アクセスカウンタ22〜アクセスカウンタ24は、基本的に、対応するメモリマスタ10〜メモリマスタ12がアクセス要求を発生したら(図4S43/Yes)、カウンタ値が適宜定めた設定値に達していなければ(図4S44/No)、カウントアップし(図4S45)、そうでなければ(図4S44/Yes)、カウンタ値を保持する(図4S46)。また、対応するアイドルカウンタ19〜アイドルカウンタ21が設定値までカウントアップしたら(図4S41/No)、カウンタ値をクリアする(図4S42)。
【0042】
図5は、移動チャネルエントリ部25の機能を説明するフローチャートである。図5を参照すると、移動チャネルエントリ部25は、基本的に、アイドルカウンタ19〜アイドルカウンタ21が設定値までカウントアップしたら(図5S54/Yes)、対応するメモリマスタ10〜メモリマスタ12をエントリするもの(図5S55)で、チャネルミス等の発生によりチャネルを移動する必要性が生じたときに優先的に移動するチャネルの情報を得ることが可能である。また、エントリしたメモリマスタ10〜メモリマスタ12にアクセス要求が発生すると(図5S51/Yes)、または、チャネル移動が発生すると(図5S53/Yes)、対応するメモリマスタ10〜メモリマスタ12のエントリを削除する(図5S52)。
【0043】
図6は、移動チャネル制御部26の機能を説明するフローチャートである。図6を参照すると、移動チャネル制御部26は、アクセスカウンタ22〜アクセスカウンタ24と、移動チャネルエントリ部25のそれぞれの情報に基づいて、チャネルミス等の発生によりチャネル50をメモリマスタ10〜メモリマスタ12で移動する必要性が生じたらどのチャネル50をどこに移動するかを制御する。
【0044】
チャネル移動の必要が生じると(図6S61/Yes)、移動チャネルエントリ部25に移動可能チャネルの属するメモリマスタ10〜メモリマスタ12のエントリがあると(図6S62/Yes)、エントリ順位の早かったメモリマスタ10〜メモリマスタ12に対応するチャネル50の内、LRUの最上位のものを指定する(図6S63)。
【0045】
エントリが無いと(図6S62/No)、各アクセスカウンタ22〜アクセスカウンタ24のカウンタ値を比較し(図6S64)、カウンタ値が最小のものに対応するメモリマスタ10〜メモリマスタ12と、チャネルミスを発生したメモリマスタ10〜メモリマスタ12とが同一であれば(図6S65/YeS)、チャネル移動はせずに、対応するLRU制御部16〜LRU制御部18のLRUの更新を行う(図6S66)。
【0046】
同一でないと(図6S65/No)、アクセスカウンタ22〜アクセスカウンタ24のカウンタ値で同一値のものがあれば(図6S67/Yes)、優先順位(これは、あらかじめ、メモリマスタ10〜メモリマスタ12に対し、適宜設定しておく)の高いメモリマスタ10〜メモリマスタ12に対応するLRU制御部16〜LRU制御部18のLRUの最上位のものを指定する(図6S68)。また、同一値のものがなければ(図6S67/No)、アクセスカウンタ22〜アクセスカウンタ24のカウンタ値が最小であるものに対応するLRU制御部16〜LRU制御部18のLRUの最上位のものを指定する(図6S69)。
【0047】
次に、本発明の第1の実施の形態の動作について説明する。メモリマスタ10、メモリマスタ11、メモリマスタ12以外のメモリマスタについては、説明を省略する。
【0048】
まず、メモリマスタ10からアクセス要求が発生した場合について説明する。このアクセス要求信号はアービタ部27に入力され、このアクセス要求が許可されると、チャネル情報格納部13のメモリマスタ10に割り当てられた格納領域にチャネル情報が格納される。このとき、アイドルカウンタ19がカウントアップしていればストップし、アイドルカウンタ19は、そのカウンタ値をクリアする。また、LRU制御部16はチャネル情報が格納された格納領域をLRUの最下位に移動し、他の2つの格納領域をそれぞれ上位にシフトする。さらに、アクセスカウンタ22はそのカウンタ値を1つカウントアップし、メモリインタフェース制御部28は、アクセス要求されたメモリアドレスでメモリバス80上にサイクルを発生させる。サイクルが終了すると、アイドルカウンタ19は再び制御クロックによりカウントアップを開始する。仮に、複数のメモリマスタからアクセス要求が同時に発生した場合は、アービタ部27で決められた優先順位にしたがってアクセス順位が決まる。
【0049】
もし、アクセス要求されたサイクルのメモリアドレスが、チャネル情報格納部13の3つの格納領域0〜2にすでに格納されているものと一致すれば、そのサイクルはチャネルヒットとして処理される。この際、メモリアドレスが一致した格納領域がLRU制御の最下位でなければ最下位に移動し、他の2つの格納領域はそれぞれ上位にシフトされる。
【0050】
逆に、アクセス要求されたサイクルのメモリアドレスが、チャネル情報格納部13の3つの格納領域0〜2にすでに格納されているもののどれとも一致しなければ、そのサイクルはチャネルミスとして処理される。この際、LRU制御の最上位の格納領域に要求されたメモリアドレスを格納し、LRU制御の最下位に移動する。
【0051】
メモリマスタ10からのアクセス要求がなければ、アイドルカウンタ19はカウントアップを続け、いずれは設定値までカウントアップする。ここでの設定値とは、メモリマスタからのアクセスが長期間なかったことを判断できる値である。アイドルカウンタ19が設定値までカウントアップすると、アイドルカウンタ19は設定値を超えてカウントアップはしないでその値を保持し、アクセスカウンタ22はアイドルカウンタ19のカウンタ値をクリアする。また、アイドルカウンタ19が設定値までカウントアップされたメモリマスタ10は、長期間アクセスがなかったと判断され、LRU制御の最上位にある格納領域が他のメモリマスタへの移動が可能とみなされ、移動チャネルエントリ部25にメモリマスタ10の名称がエントリされる。
【0052】
もし、このエントリ後にメモリマスタ10からのアクセス要求が発生したら、移動チャネルエントリ部25からメモリマスタ10の名称を削除し、アイドルカウンタ19のカウンタ値をクリアし、アクセスカウンタ22を1つカウントアップする。
【0053】
メモリマスタ10が移動チャネルエントリ部25にエントリされた状態で、メモリマスタ11からアクセス要求が発生し、そのサイクルがチャネルミスになった(すなわち、これはメモリマスタ11からのメモリアドレスがチャネル情報格納部13の格納領域3〜4に格納されているいずれのメモリアドレスとも一致しない)場合、移動チャネルエントリ部25には、移動可能なチャネルを持つメモリマスタ10がエントリされているので、移動チャネル制御部26はメモリマスタ10に割り当てられたチャネル情報格納部13の格納領域0〜2のうちLRU制御の最上位のものを移動可能チャネルとして指定する。
【0054】
指定されたチャネル情報格納部13の格納領域は、メモリマスタ11に割り当てられ(たとえば、図14(b)のように、格納領域2がメモリマスタ11に割り当てられ)、LRU制御部17は制御すべき格納領域を1つ追加して3つとして、移動してきた格納領域をLRU制御の最下位にランクする。
【0055】
また、LRU制御部16は制御すべきチャネル数を1つ減らして2つとする。このようにしてチャネルの移動が完了すると、移動チャネルエントリ部25にエントリされていたメモリマスタ10はそのエントリから削除される。さらに、アイドルカウンタ19も、設定値を保持していたそのカウンタ値をクリアする。
【0056】
仮に、移動チャネルエントリ部25に複数のメモリマスタがエントリされている状態で、同様にチャネルミス等の発生によりチャネルの移動の必要性が発生した場合は、移動チャネル制御部26によって、移動チャネルエントリ部25に先にエントリした方のメモリマスタが移動対象として指定される。このとき、移動チャネルエントリ部25では、チャネルの移動が完了した後、指定されたメモリマスタが削除されると、残っているエントリされたメモリマスタのエントリ順位を1つずつシフトして次回のチャネルの移動が必要になったときに備える。
【0057】
移動チャネルエントリ部25に1つでもエントリされていれば、このような手順によりチャネルの移動が行われるが、チャネルミス等の発生によりチャネルの移動の必要性が生じたにも関わらず、移動チャネルエントリ部25に何もエントリされていない場合もある。
【0058】
たとえば、どのメモリマスタ10〜メモリマスタ12もアイドルカウンタ19〜アイドルカウンタ21が設定値までカウントアップするよりも短い時間で周期的に、かつ各アクセス要求が異なるアドレスを持って発生することによってチャネルミスが生じた場合がこれに相当する。このとき移動チャネル制御部26は、それぞれのアクセスカウンタ22〜アクセスカウンタ24のカウンタ値を比較し、カウンタ値が一番小さかったメモリマスタに対応するチャネル情報格納領域のLRU制御の最上位の格納領域を移動対象として指定する。これにより、アイドルカウンタ19〜アイドルカウンタ21の設定値よりも短い時間で周期的にアクセス要求しているようなメモリマスタに対して、つまり全体のアクセス頻度か低いにも関わらずアイドルカウンタ19〜アイドルカウンタ21の設定値を満たさないため移動チャネルエントリ部25にエントリされないメモリマスタに対して、過剰に割り当てられたチャネル数(格納領域の数)を適切なチャネル数(格納領域の数)にすることが可能である。
【0059】
また、アクセスカウンタ22〜アクセスカウンタ24のカウンタ値を比較した際に、そのカウンタ値が最小となるメモリマスタが複数あり、かつそのカウンタ値が最小となるメモリマスタと、チャネルミスが発生したメモリマスタが一致した場合は、そのメモリマスタに対応するLRU制御部においてチャネル情報を更新するのみとし、チャネルの移動は行わない。一致しなかった場合は、あらかじめ決められた優先順位によって移動対象を決定する。
【0060】
これにより、各メモリマスタに割り当てるチャネル数が適切でなかった場合でも、アクセス要求の頻度の高いメモリマスタには多くの格納領域を割り当て、アクセス要求の頻度の低いメモリマスタには少ない格納領域を割り当てることが自動的に可能となる。結果的に、アクセス要求の頻度が高かったためにチャネルミスの確率も高かったメモリマスタに多くのチャネルを割り当てることでチャネルミスの確率を低く、逆に言えばチャネルヒットの確率を高くすることができ、全体としてのメモリアクセス性能を向上させることが可能となる。
【0061】
また、一度、メモリ制御回路90からVCM29へアクセス要求が出されると、読み出された、あるいは書き込まれたデータは、対応するチャネル50に保持されている。VCM29は、チャネル50に保持されているデータに対応するメモリアドレス(バンクアドレス、ロウアドレス、セグメントアドレス)を保持しており、その保持しているアドレスと同一のメモリアドレスに対する読み出し要求に対しては、メモリセル51にはアクセスせず、チャネル50に保持されているデータをメモリ制御回路90に送る。
【0062】
次に、本発明の第1の実施の形態の動作についてさらに詳細に図面を参照して説明する。
図10は、本発明の第1の実施の形態の動作を示すタイムチャートである。
図11は、チャネル情報格納部13のLRU制御の動作を示すタイムチャートである。
図12は、移動チャネルエントリ部25および移動チャネル制御部26の動作を示すタイムチャートである。
図13は、移動チャネルエントリ部25にエントリがなかった場合におけるチャネルの移動の動作を示すタイムチャートである。
【0063】
図11〜図13において、チャネル情報131、132、133は、それぞれLRU制御部16におけるLRUの低い順(すなわち、最近アクセス要求のあった順位)におけるチャネル情報を示す。同様に、チャネル情報141、142は、それぞれLRU制御部17のLRUにおける低い順のチャネル情報を示し、チャネル情報151、152、153、154は、それぞれLRU制御部18のLRUにおける低い順のチャネル情報を示す。また、移動チャネル151、152、153は、移動チャネルエントリ部25における削除される順位の高い順のエントリを示す。
【0064】
まず、メモリマスタ10〜メモリマスタ12、アイドルカウンタ19〜アイドルカウンタ21、アクセスカウンタ22〜アクセスカウンタ24、チャネル情報格納部13の動作について説明する。
【0065】
図10において、初期値ではメモリマスタ10には3つのチャネル50、メモリマスタ11には2つのチャネル50、メモリマスタ12には4つのチャネル50が割り当てられているとしており、チャネル情報格納部13の対応する各格納領域は、図14(a)に示すようである。また、各格納領域には、対応するチャネル番号がチャネル情報の一部として格納されている。
【0066】
初期状態では、チャネル情報格納部13にはチャネル情報は格納されていない(図10T0)。また、パワーオン後からいずれかのメモリマスタ10〜メモリマスタ12からのアクセス要求が発生するまでは、アイドル状態であってもそれぞれのアイドルカウンタ19〜アイドルカウンタ21はカウントアップしない。
【0067】
このような状態から、まず、メモリマスタ10からアクセス要求が発生する(図10T1)。メモリマスタ10からのアクセス要求はメモリアドレスadd10−1を伴って発生する。このアドレスadd10−1には、バンクアドレス、ロウアドレス、セグメントアドレス、カラムアドレスが含まれている。
【0068】
アービタ部27に入力されたメモリマスタ10からのアクセス要求が許可されると、メモリマスタ10からのアクセス要求は解除される(図10T2)。ここでは、メモリマスタ10からのアクセス要求が許可されたとして、アービタ部27からの許可信号に“10”と示している。また、このときアクセスカウンタ22はそのカウンタ値を1つカウントアップして“1”とし、LRU制御部16の最下位にランクされるチャネル情報格納部13の格納領域0にアドレスadd10−1が格納されると共にメモリバス80上にはサイクルが発生する(図10T3)。 ここでは、初期状態からどのロウアドレスも活性化されていないメモリへのライトサイクルが発生しているとしており、ACTコマンドにてロウアドレスを活性化し(図10T3)、WRITEコマンドにてデータを書き込んでいる(図10T5〜T8)。
【0069】
パワーオン後、いずれかのメモリマスタ、ここではメモリマスタ10からのアクセス要求が発生したことが認識されると(図10T3)、アクセス要求を発生しなかったメモリマスタ11、メモリマスタ12に対応するアイドルカウンタ20、アイドルカウンタ21はカウントアップを始める(図10T4)。
【0070】
アイドルカウンタ19は、メモリマスタ10からのサイクルが終了しアイドル状態になったことを認識するとカウントアップを始める(図10T8)。
【0071】
次に、メモリマスタ10とメモリマスタ11とから同時にアクセス要求が発生する(図10T8)。アービタ部27では、メモリマスタ11の方がメモリマスタ10よりも優先順位が高いとしておりアービタ部27からはメモリマスタ11への許可が発行される(図10T9)。メモリマスタ11からのアクセス要求が許可されたので、メモリマスタ11はそのアクセス要求を解除するが(図10T9)、メモリマスタ10はアクセス要求が許可されていないので引き続きアクセス要求を発生し続ける。
【0072】
メモリマスタ11からのアクセス要求が許可されると、これに対応するアイドルカウンタ20はそのカウンタ値をクリアし、アクセスカウンタ23はそのカウンタ値を1つカウントアップして“1”とし、LRU制御部17の最下位にランクされるチャネル情報格納部13の格納領域3にはadd11−1が格納され、メモリバス80上には要求されたサイクルが発生する(図10T10)。アイドルカウンタ20は、メモリマスタ11からのサイクルが終了しアイドル状態になったことを認識すると再度カウントアップを始める(図10T15)。
【0073】
先にメモリマスタ11からのアクセス要求と同時に発生していたメモリマスタ10からのアクセス要求がアービタ部27によって許可されると、メモリマスタ10からのアクセス要求は解除され(図10T14)、アイドルカウンタ19はそのカウント値をクリアし、アクセスカウンタ22はそのカウンタ値を1つカウントアップして“2”とする(図10T15)。
【0074】
ここで発生したアクセス要求でのアドレスadd10−1は、先にメモリマスタ10から発生したアクセス要求でのアドレスと一致し、これはすでにチャネル情報格納部13の格納領域0に格納されているので、メモリマスタ10からのサイクルはチャネルヒットと判断され、チャネル情報格納部13には変化はなく、メモリバス80上にはヒットサイクルが発生する(図10T15)。ここではリードサイクルが発生したものとしており、メモリバス80上にはヒットサイクルのためREADコマンドのみが発生する(図10T15)。アイドルカウンタ19は、メモリマスタ10からのサイクルが終了しアイドル状態になったことを認識すると再度カウントアップを始める(図10T20)。
【0075】
次に、チャネル情報格納部13とLRU制御部16〜LRU制御部18の動作について説明する。
【0076】
図11T0においては、メモリマスタ10〜メモリマスタ12はいずれもアイドル状態にあるが、メモリマスタ10からは先に5回のサイクルの発生があったためアクセスカウンタ22のカウンタ値は“5”、チャネル情報格納部13の可能領域0〜2にはLRUの優先順位の高い方からadd10−1、add10−2、add10−3が格納されている。つまり、最近にメモリマスタ10から発生したサイクルのアドレスはadd10−1であり、add10−1以外でその次の最近にメモリマスタ10から発生したサイクルのアドレスはadd10−2ということになる。また、図11T0でのアイドルカウンタ19の値は“11”であるので、最近にメモリマスタ10からサイクルが発生してから11クロックが経過していることになる。
【0077】
同様に、図11T0ではアイドルカウンタ20の値は“13”、アクセスカウンタ23の値は“4”、チャネル情報格納部13の格納領域3〜4には、add11−1、add11−2が格納されており、アイドルカウンタ21の値は“19”、アクセスカウンタ24の値は“7”、チャネル情報格納部13の格納領域3〜4にはadd12−1、add12−2、add12−3、add12−4が格納されている。
【0078】
このような状態において、メモリマスタ10からアクセス要求が発生し(図11T3)、このときのアドレスがadd10−3である場合について説明する。アービタ部27においてメモリマスタ10からのアクセス要求が許可されると、メモリマスタ10からのアクセス要求は解除され(図11T4)、アイドルカウンタ19はそのカウンタ値をクリアし、アクセスカウンタ22はそのカウンタ値を1つカウントアップして“6”とする(図11T5)。
【0079】
ここで発生したアクセス要求のアドレスは、add10−3であり、これはすでにチャネル情報格納部13のうちLRU制御の最上位にランクされている格納領域2内のメモリアドレスと一致している。このため、チャネル情報格納部13ではadd10−3のチャネル情報をLRU制御部16の最下位にランクし、add10−1およびadd10−2はそれぞれ1つずつ上位にシフトしてランクし、メモリバス80上にはヒットサイクルが発生する(図11T5)。アイドルカウンタ19は、メモリマスタ10からのサイクルが終了しアイドル状態になったことを認識すると再度カウントアップを始める(図11T10)。
【0080】
次に、移動チャネルエントリ部25および移動チャネル制御部26の動作について説明する。
【0081】
図11と同様に、図12T0ではメモリマスタ10〜メモリマスタ12はいずれもアイドル状態であり、アイドルカウンタ19の値は“60”、アクセスカウンタ22の値は“5”、チャネル情報格納部13の格納領域0〜3にはadd10−1、add10−2、add10−3が格納されており、アイドルカウンタ20の値は“58”、アクセスカウンタ23の値は“4”、チャネル情報格納部13の格納領域3〜4にはadd11−1、add11−2が格納されており、アイドルカウンタ21の値は“56”、アクセスカウンタ24の値は“7”、チャネル情報格納部13の格納領域12〜15にはadd12−1、add12−2、add12−3、add12−4が格納されている。
【0082】
いずれのメモリマスタ10〜メモリマスタ12もアイドル状態が続くと、それぞれのアイドルカウンタ19〜アイドルカウンタ21もカウントアップし続け、アイドルカウンタ19のカウンタ値が“64”となる(図12T4)。この値は、予め初期化中などで設定され、メモリマスタ10からのアクセス要求が長期間なかったことを判断できる値であり、一例として“64”とする。アイドルカウンタ19はメモリマスタ10がアイドル状態であっても“64”を超えてカウントアップしないでその値を保持し、アクセスカウンタ22はそのカウンタ値をクリアする(図12T5)。これによりメモリマスタ10からは長期間アクセスがなかったと判断され、移動チャネルエントリ部25の最上位にエントリされる(図12T4)。ここでは、メモリマスタ10に割り当てられたチャネル(格納領域)がエントリされたことを示すため、移動チャネルエントリ部25の最上位に“10”としてこれを示している。
【0083】
同様に、アイドルカウンタ20が設定値である“64”までカウントアップしたため(図12T6)、アイドルカウンタ20はそれ以上カウントアップはせずにその値を保持し、アクセスカウンタ23はそのカウンタ値をクリアし、移動チャネルエントリ部25にはメモリマスタ11を示す“11”が10の次にエントリされる。
【0084】
さらに同様に、アイドルカウンタ21が設定値である“64”までカウントアップしたため(図12T9)、アイドルカウンタ21はそれ以上カウントアップはせずにその値を保持し、アクセスカウンタ24はそのカウンタ値をクリアし、移動チャネルエントリ部25にはメモリマスタ12を示す12が“11”の次にエントリされる。
【0085】
このとき、メモリマスタ10からアクセス要求が発生する(図12T9)。アービタ部27にてこのアクセス要求が許可されると、メモリマスタ10からのアクセス要求は解除され(図12T10)、アイドルカウンタ19はその値をクリアし、アクセスカウンタ22はその値を1つカウントアップして“1”とする(図12T11)。ここで発生したアクセス要求のメモリアドレスはadd10−3であり、これはすでにチャネル情報格納部13の格納領域0〜3のうちLRU制御の最上位にランクされているメモリアドレスと一致するので、チャネル情報格納部13はadd10−3のチャネル情報をLRU制御部16の最下位にランクし、add10−1およびadd10−2をそれぞれ1つずつ上位にシフトしてランクし、メモリバス80上にはヒットサイクルを発生する(図12T11)。
【0086】
アイドルカウンタ19は、メモリマスタ10からのサイクルが終了しアイドル状態になったことを認識すると再度カウントアップを始める(図12T14)。また、移動チャネルエントリ部25にエントリされた“10”は削除され、“10”よりも下位にエントリされていた“11”、“12”はそれぞれ上位にシフトしてエントリされる。このようにして、一度移動チャネルエントリ部25にエントリされても、対応するメモリマスタからのサイクルが発生すればそのエントリが削除される。この一例では発生したアクセス要求のメモリアドレスとチャネル情報格納部13に格納されているメモリアドレスとが一致していたが、これは一致するしないに関わらず同様の動作となる。
【0087】
次に、再度、メモリマスタ10からアクセス要求が発生する(図12T13)。アービタ部27においてこのアクセス要求が許可されると、メモリマスタ10からのアクセス要求は解除され(図12T14)、アイドルカウンタ19はその値をクリアし、アクセスカウンタ22はその値を1つカウントアップして“2”とする(図12T15)。ここで発生したアクセス要求のメモリアドレスはadd10−4であり、これはチャネル情報格納部13の格納領域0〜3に格納されているどのメモリアドレスとも一致しないため、チャネルミスと判断される。移動チャネルエントリ部25には、アクセス要求を発生したメモリマスタ10を示す“10”がエントリされていないため、移動チャネル制御部26は移動チャネルエントリ部25の最上位にエントリされている“11”に割り当てられたチャネル(格納領域)のうち、LRU制御の最上位にランクされているチャネル(格納領域)を移動可能チャネルとして指定する。
【0088】
メモリマスタ11の指定された格納領域は、メモリマスタ10の格納領域として移動する(図12T15)。チャネル情報格納部13の格納領域は、割り当てられたチャネル(格納領域)が3つから4つに増えたことになり、アクセス要求のアドレスadd10−4がLRU制御部16の最下位にランクし、他のチャネル情報はそれぞれ1つずつ上位にシフトしてランクされる。また、チャネル(格納領域)が移動すると、移動チャネルエントリ部25から移動したチャネル(格納領域)が削除され、残った“12”が移動チャネルエントリ部25の最上位にシフトしてエントリされる。また、チャネル(格納領域)が移動されたメモリマスタ11のアイドルカウンタ20はその値をクリアし、再度カウントアップを始める。アイドルカウンタ19は、メモリマスタ10からのサイクルが終了しアイドル状態になったことを認識すると再度カウントアップを始める(図12T26)。
【0089】
次に、移動チャネルエントリ部25にエントリがなかった場合におけるチャネルの移動について説明する。
【0090】
図11、図12と同様に、図13T0ではメモリマスタ10〜メモリマスタ12はいずれもアイドル状態であり、アイドルカウンタ19の値は“20”、アクセスカウンタ22の値は“8”、チャネル情報格納部13の格納領域0〜2にはadd10−1、add10−2、add10−3が格納されており、アイドルカウンタ20の値は“10”、アクセスカウンタ23の値は“5”、チャネル情報格納部13の格納領3〜4にはadd11−1、add11−2が格納されており、アイドルカウンタ21の値は“30”、アクセスカウンタ24の値は“4”、チャネル情報格納部13の格納領域12〜15にはadd12−1、add12−2、add12−3、add12−4が格納されており、移動チャネルエントリ部25には何もエントリされていない状態である。
【0091】
このとき、メモリマスタ10からアクセス要求が発生する(図13T1)。アービタ部27によりこのアクセス要求が許可されると、メモリマスタ10からのアクセス要求は解除され(図13T2)、アイドルカウンタ19はその値をクリアし、アクセスカウンタ22はその値を1つカウントアップして“5”とする(図13T3)。ここで発生したアクセス要求のメモリアドレスはadd10−4であり、これはチャネル情報格納部13の格納領域0〜2に格納されているいずれのメモリアドレスとも一致しないためチャネルミスと判断され、メモリバス80上にはチャネルミスが発生する。
【0092】
チャネルミスと判断されてチャネルの移動が必要になったにも関わらず、移動チャネルエントリ部25には何もエントリされていないため、移動チャネル制御部26はそれぞれのアクセスカウンタ22〜アクセスカウンタ24のカウンタ値を比較する。ここで、アクセスカウンタ22およびアクセスカウンタ24のカウンタ値“4”が一番小さい値になるが、このようにカウンタ値の一番小さい値が複数ある場合は、カウンタ値の一番小さいアクセスカウンタ22〜アクセスカウンタ24がアクセス要求のあったメモリマスタ10に対応するものかどうかを判断する。
【0093】
ここでは、アクセス要求を発生したものはメモリマスタ10であり、カウンタ値が一番小さいアクセスカウンタの1つがアクセスカウンタ22で、アクセスカウンタ22はメモリマスタ10のものであるため、チャネル情報格納部13のチャネル情報を更新するだけとする。つまり、チャネル情報格納部13のうちLRU制御の最上位にランクされているチャネル情報のメモリアドレスをアクセス要求のメモリアドレスadd10−4に変更し、LRU制御の最下位にランクし、他のチャネル情報は1つずつ上位にシフトしてランクする(図13T3)。アイドルカウンタ19は、メモリマスタ10からのサイクルが終了しアイドル状態になったことを認識すると再度カウントアップを始める(図13T14)。
【0094】
次に、再度メモリマスタ10からアクセス要求が発生する(図13T13)。アービタ部27において、このアクセス要求が許可されると、メモリマスタ10からのアクセス要求は解除され(図13T14)、アイドルカウンタ19はその値をクリアし、アクセスカウンタ22はその値を1つカウントアップして“6”とする(図13T15)。ここで発生したアクセス要求のメモリアドレスはadd10−5であり、これはチャネル情報格納部13の格納領域0〜3に格納されているいずれのメモリアドレスとも一致しないためチャネルミスと判断され、メモリバス80上にはチャネルミスが発生する。
【0095】
チャネルミスと判断されてチャネルの移動が必要になったにも関わらず、移動チャネルエントリ部25には何もエントリされていないため、移動チャネル制御部26はそれぞれのアクセスカウンタ22〜アクセスカウンタ24のカウンタ値を比較する。ここで、アクセスカウンタ24のカウンタ値4が一番小さい値になるので、メモリマスタ12に割り当てられたチャネルのうちLRU制御の最上位にランクされているチャネル(格納領域)を移動可能チャネルとして指定する。
【0096】
指定されたチャネル(格納領域)は、メモリマスタ10に対応するものとなる(図13T15)。チャネル情報格納部13では、メモリマスタ10に割り当てられたチャネル(格納領域)が3つから4つに増えたことになり、アクセス要求のアドレスadd10−5がLRU制御部16の最下位にランクし、他のチャネル情報はそれぞれ1つずつ上位にシフトしてランクされる。アイドルカウンタ19は、メモリマスタ10からのサイクルが終了しアイドル状態になったことを認識すると再度カウントアップを始める(図13T26)。
【0097】
以上において、各メモリマスタ10〜メモリマスタ12に対応するチャネル情報格納部13の各格納領域の対応は、図示しない制御部に対応情報として保持されており、チャネル移動が発生すると、対応情報が更新される。メモリ制御回路90の各エレメントは、この対応情報を参照して動作する。
【0098】
また、各LRU制御部16〜LRU制御部18は、たとえば、全ての格納領域に対する16ビットのフラグを有し、各々に割り当てられた格納領域に対応するフラグをオンにし、他はオフにし、オンのフラグに対応する格納領域に対するLRU制御を実施する。そしてチャネル移動が発生すると、対応情報に基づいてフラグのオン、オフを更新する。
【0099】
次に、本発明の第2の実施の形態について説明する。
本発明の第2の実施の形態は、チャネル情報格納部13には、チャネル番号を格納せず、VCM29へのサイクルの際にメモリバス80に送出する格納領域に対応するチャネル番号を対応情報から作成する手段を有するものである。これにより、チャネル情報格納部13のハードウェア量が削減できる。
【0100】
【発明の効果】
以上説明したように、本発明によれば、VCMを使用してLRUによる制御方法を用いるシステムにおいて、各メモリマスタに割り当てるチャネル数が適切でなかった場合でも、アクセス頻度を考慮しながら制御するチャネルを各メモリマスタ間で移動することで、自動的にシステムに適したチャネル数が各メモリマスタに割り当てられ、VCMの持つチャネルの使用効率が高められメモリアクセス性能を向上させることが可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態を示すブロック図である。
【図2】チャネル情報を示す説明図である。
【図3】図1のアイドルカウンタの機能を示すフローチャートである。
【図4】図1のアクセスカウンタの機能を示すフローチャートである。
【図5】図1の移動チャネルエントリ部の機能を示すフローチャートである。
【図6】図1の移動チャネル制御部の機能を示すフローチャートである。
【図7】VCMの概念を示すブロック図である。
【図8】従来のVCMを用いたメモリシステムを示すブロック図である。
【図9】VCMへのアクセスを示すタイムチャートである。
【図10】本発明の実施の形態の動作を示すタイムチャートである。
【図11】チャネル情報格納部でのLRU制御を示すタイムチャートである。
【図12】移動チャネルエントリ部、チャネル移動制御部の動作を示すタイムチャートである。
【図13】チャネルの移動の動作を示すタイムチャートである。
【図14】チャネル情報格納領域の割り当てを示す説明図である。
【符号の説明】
10 メモリマスタ
11 メモリマスタ
12 メモリマスタ
13 チャネル情報格納部
16 LRU制御部
17 LRU制御部
18 LRU制御部
19 アイドルカウンタ
20 アイドルカウンタ
21 アイドルカウンタ
22 アクセスカウンタ
23 アクセスカウンタ
24 アクセスカウンタ
25 移動チャネルエントリ部
26 移動チャネル制御部
27 アービタ部
28 メモリインタフェース制御部
29 VCM
50 チャネル
51 メモリセル
60 VCM
61 メモリバス
62 メモリ制御回路
63 メモリインタフェース制御部
64 アービタ部
65 チャネル情報格納部
66 LRU制御部
67 メモリマスタ
68 チャネル情報格納部
69 LRU制御部
70 メモリマスタ
71 チャネル情報格納部
72 LRU制御部
73 メモリマスタ
80 メモリバス
90 メモリ制御回路

Claims (4)

  1. 複数のチャネルを備えたバーチャルチャネルメモリを制御するメモリ制御回路であって、
    複数のメモリマスタにそれぞれ割り当てられ、かつ各前記チャネルに1対1対応し、前記チャネルを識別するチャネル番号および前記バーチャルチャネルメモリに対するアクセスに際したメモリアドレスを保持する複数の格納領域を備えるチャネル情報格納部と、
    前記メモリマスタがアイドル状態になったことを検知してカウントアップし、前記メモリマスタからのアクセスが発生したらそのカウンタ値をクリアして、前記メモリマスタが長期間アクセスをしなかったことを判断するための情報を提供する前記メモリマスタ毎のアイドルカウンタと、
    前記メモリマスタのアクセスが発生したらカウントアップし、前記アイドルカウンタが設定値までカウントアップしたら前記アイドルカウンタのカウンタ値をクリアして、前記メモリマスタのアクセス頻度を判断するための情報を提供する前記メモリマスタ毎のアクセスカウンタと、
    前記アイドルカウンタが設定値までカウントアップしたら、対応する前記メモリマスタの名称をエントリし、各前記メモリマスタに割り当てられた前記格納領域を各メモリマスタ間で移動する必要性が生じたときに優先的に移動するための情報を提供する移動チャネルエントリ部と、
    を有することを特徴とするメモリ制御回路。
  2. 各前記メモリマスタに割り当てられた前記格納領域を各メモリマスタ間で移動する必要性が生じたときに、前記アクセスカウンタのカウンタ値および前記移動チャネルエントリ部からの情報に基づいて、各前記メモリマスタへの前記格納領域の割り当てを更新する移動チャネル制御部を有することを特徴とする請求項1記載のメモリ制御回路。
  3. 複数のチャネルを備えたバーチャルチャネルメモリを制御するメモリ制御回路であって、
    複数のメモリマスタにそれぞれ割り当てられ、かつ各前記チャネルに1対1対応し、前記バーチャルチャネルメモリに対するアクセスに際したメモリアドレスを保持する複数の格納領域を備えるチャネル情報格納部と、
    前記バーチャルチャネルメモリへのアクセスに際し前記格納領域に対応した前記チャネルを識別するチャネル番号を作成する手段と、
    前記メモリマスタがアイドル状態になったことを検知してカウントアップし、前記メモリマスタからのアクセスが発生したらそのカウンタ値をクリアして、前記メモリマスタが長期間アクセスをしなかったことを判断するための情報を提供する前記メモリマスタ毎のアイドルカウンタと、
    前記メモリマスタのアクセスが発生したらカウントアップし、前記アイドルカウンタが設定値までカウントアップしたら前記アイドルカウンタのカウンタ値をクリアして、前記メモリマスタのアクセス頻度を判断するための情報を提供する前記メモリマスタ毎のアクセスカウンタと、
    前記アイドルカウンタが設定値までカウントアップしたら、対応する前記メモリマスタの名称をエントリし、各前記メモリマスタに割り当てられた前記格納領域を各メモリマスタ間で移動する必要性が生じたときに優先的に移動するための情報を提供する移動チャネルエントリ部と、
    を有することを特徴とするメモリ制御回路。
  4. 各前記メモリマスタに割り当てられた前記格納領域を各メモリマスタ間で移動する必要性が生じたときに、前記アクセスカウンタのカウンタ値および前記移動チャネルエントリ部からの情報に基づいて、各前記メモリマスタへの前記格納領域の割り当てを更新する移動チャネル制御部を有することを特徴とする請求項3記載のメモリ制御回路。
JP36082799A 1999-12-20 1999-12-20 メモリ制御回路 Expired - Fee Related JP3546788B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP36082799A JP3546788B2 (ja) 1999-12-20 1999-12-20 メモリ制御回路
US09/733,938 US6505287B2 (en) 1999-12-20 2000-12-12 Virtual channel memory access controlling circuit
TW089126872A TW495666B (en) 1999-12-20 2000-12-15 Virtual channel memory access controlling circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP36082799A JP3546788B2 (ja) 1999-12-20 1999-12-20 メモリ制御回路

Publications (2)

Publication Number Publication Date
JP2001175529A JP2001175529A (ja) 2001-06-29
JP3546788B2 true JP3546788B2 (ja) 2004-07-28

Family

ID=18471096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP36082799A Expired - Fee Related JP3546788B2 (ja) 1999-12-20 1999-12-20 メモリ制御回路

Country Status (3)

Country Link
US (1) US6505287B2 (ja)
JP (1) JP3546788B2 (ja)
TW (1) TW495666B (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6791555B1 (en) * 2000-06-23 2004-09-14 Micron Technology, Inc. Apparatus and method for distributed memory control in a graphics processing system
US20030101312A1 (en) * 2001-11-26 2003-05-29 Doan Trung T. Machine state storage apparatus and method
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7200024B2 (en) * 2002-08-02 2007-04-03 Micron Technology, Inc. System and method for optically interconnecting memory devices
US7117316B2 (en) * 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US7254331B2 (en) * 2002-08-09 2007-08-07 Micron Technology, Inc. System and method for multiple bit optical data transmission in memory systems
US7149874B2 (en) * 2002-08-16 2006-12-12 Micron Technology, Inc. Memory hub bypass circuit and method
US6754117B2 (en) 2002-08-16 2004-06-22 Micron Technology, Inc. System and method for self-testing and repair of memory modules
US7836252B2 (en) * 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US6820181B2 (en) * 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7102907B2 (en) * 2002-09-09 2006-09-05 Micron Technology, Inc. Wavelength division multiplexed memory module, memory system and method
US6941438B2 (en) * 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US7245145B2 (en) * 2003-06-11 2007-07-17 Micron Technology, Inc. Memory module and method having improved signal routing topology
US7120727B2 (en) 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7260685B2 (en) * 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7428644B2 (en) * 2003-06-20 2008-09-23 Micron Technology, Inc. System and method for selective memory module power management
US7107415B2 (en) * 2003-06-20 2006-09-12 Micron Technology, Inc. Posted write buffers and methods of posting write requests in memory modules
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7210059B2 (en) * 2003-08-19 2007-04-24 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US7133991B2 (en) * 2003-08-20 2006-11-07 Micron Technology, Inc. Method and system for capturing and bypassing memory transactions in a hub-based memory system
US7136958B2 (en) * 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US20050050237A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
US7310752B2 (en) 2003-09-12 2007-12-18 Micron Technology, Inc. System and method for on-board timing margin testing of memory modules
US7194593B2 (en) 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US7120743B2 (en) * 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7234070B2 (en) * 2003-10-27 2007-06-19 Micron Technology, Inc. System and method for using a learning sequence to establish communications on a high-speed nonsynchronous interface in the absence of clock forwarding
US7330992B2 (en) 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7216196B2 (en) * 2003-12-29 2007-05-08 Micron Technology, Inc. Memory hub and method for memory system performance monitoring
US7188219B2 (en) * 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7181584B2 (en) * 2004-02-05 2007-02-20 Micron Technology, Inc. Dynamic command and/or address mirroring system and method for memory modules
US7412574B2 (en) * 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of memory responses in a hub-based memory system
US7366864B2 (en) 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7120723B2 (en) * 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US7213082B2 (en) * 2004-03-29 2007-05-01 Micron Technology, Inc. Memory hub and method for providing memory sequencing hints
US7447240B2 (en) * 2004-03-29 2008-11-04 Micron Technology, Inc. Method and system for synchronizing communications links in a hub-based memory system
US6980042B2 (en) * 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7590797B2 (en) * 2004-04-08 2009-09-15 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US7162567B2 (en) * 2004-05-14 2007-01-09 Micron Technology, Inc. Memory hub and method for memory sequencing
US7222213B2 (en) * 2004-05-17 2007-05-22 Micron Technology, Inc. System and method for communicating the synchronization status of memory modules during initialization of the memory modules
US7363419B2 (en) * 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US7519788B2 (en) 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
US7310748B2 (en) 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US7392331B2 (en) * 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
US20060168407A1 (en) * 2005-01-26 2006-07-27 Micron Technology, Inc. Memory hub system and method having large virtual page size
JP2006277619A (ja) * 2005-03-30 2006-10-12 Canon Inc メモリ制御システム及び画像形成装置
US8892844B2 (en) 2011-03-07 2014-11-18 Micron Technology, Inc. Methods of accessing memory cells, methods of distributing memory requests, systems, and memory controllers
US10838886B2 (en) * 2011-04-19 2020-11-17 Micron Technology, Inc. Channel depth adjustment in memory systems
KR102161448B1 (ko) 2014-02-03 2020-10-05 삼성전자 주식회사 멀티 채널 메모리를 포함하는 시스템 및 그 동작 방법
US9582430B2 (en) * 2015-03-27 2017-02-28 Intel Corporation Asymmetric set combined cache
US10037150B2 (en) * 2016-07-15 2018-07-31 Advanced Micro Devices, Inc. Memory controller with virtual controller mode
KR20210031185A (ko) * 2019-09-11 2021-03-19 에스케이하이닉스 주식회사 데이터 처리 장치 및 그 동작 방법
US11449443B2 (en) * 2020-10-16 2022-09-20 Western Digital Technologies, Inc. Identification and classification of write stream priority

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07221797A (ja) 1994-02-03 1995-08-18 Hitachi Ltd Fifoメモリシステム
US5757801A (en) * 1994-04-19 1998-05-26 Multi-Tech Systems, Inc. Advanced priority statistical multiplexer
WO1996041274A1 (en) * 1995-06-07 1996-12-19 Advanced Micro Devices, Inc. Dynamically reconfigurable data bus
US5954796A (en) * 1997-02-11 1999-09-21 Compaq Computer Corporation System and method for automatically and dynamically changing an address associated with a device disposed in a fire channel environment
US6091714A (en) * 1997-04-30 2000-07-18 Sensel; Steven D. Programmable distributed digital switch system
US5999435A (en) * 1999-01-15 1999-12-07 Fast-Chip, Inc. Content addressable memory device

Also Published As

Publication number Publication date
US6505287B2 (en) 2003-01-07
JP2001175529A (ja) 2001-06-29
US20010039605A1 (en) 2001-11-08
TW495666B (en) 2002-07-21

Similar Documents

Publication Publication Date Title
JP3546788B2 (ja) メモリ制御回路
JP2784440B2 (ja) データ・ページの転送制御方法
US5761731A (en) Method and apparatus for performing atomic transactions in a shared memory multi processor system
US9785564B2 (en) Hybrid memory with associative cache
US8171239B2 (en) Storage management method and system using the same
US20170242794A1 (en) Associative and atomic write-back caching system and method for storage subsystem
US7590802B2 (en) Direct deposit using locking cache
JP2002530731A (ja) 異常メモリアクセスまたは異なる時間のメモリアクセス実行の際のデータバス上のデータ衝突を検出するための方法および装置
US11734015B2 (en) Cache systems and circuits for syncing caches or cache sets
US11561903B2 (en) Allocation of spare cache reserved during non-speculative execution and speculative execution
US6988167B2 (en) Cache system with DMA capabilities and method for operating same
US20210034368A1 (en) Extended tags for speculative and normal executions
JP2019096309A (ja) メンテナンス動作の実行
US11954493B2 (en) Cache systems for main and speculative threads of processors
JP4888839B2 (ja) キャッシュメモリを備えるベクトル計算機システム、及びその動作方法
WO2024078342A1 (zh) 内存交换方法、装置、计算机设备及存储介质
US20020108021A1 (en) High performance cache and method for operating same
US8452920B1 (en) System and method for controlling a dynamic random access memory
JPH07129464A (ja) 情報処理装置
JP2003216506A (ja) フラッシュメモリを搭載した記憶装置及び計算機
US20060069873A1 (en) Instruction cache using single-ported memories
JPH06309231A (ja) キャッシュメモリ制御方法
JPH05225062A (ja) ディスク・キャッシュ装置
JPH0370259B2 (ja)
JPH07152650A (ja) キャッシュ制御装置

Legal Events

Date Code Title Description
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: 20040323

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040405

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees