(57)【特許請求の範囲】
【請求項１】
メモリコントローラと、
該メモリコントローラに接続され、各々が複数のデータ項目を格納するように構成された複数のメモリバンクであって、
ある与えられたデータ項目が該データ項目の複数のコピーとして、これら複数のコピーが該メモリバンクの指定される最小数の各々の１つに格納されるやり方にて格納されている複数のメモリバンクを備えるメモリシステムにおいて、
該メモリコントローラは、該メモリバンク内に格納された該データ項目へのアクセスに対するリクエストをアクセスリクエスト間のバンク衝突が回避されるように構成されたある指定されるバンクアクセスシーケンスに従って処理するように適合され、
該メモリコントローラがさらに：
該アクセスリクエストを格納するように構成された、各々が該複数のメモリバンクの対応する１つと関連するセットのキューと、
該セットのキューに接続された、そこから該アクセスリクエストのある与えられた１つを該指定されるバンクアクセスシーケンスに従って選択するためのアービタと、を備えることを特徴とするメモリシステム。
【請求項２】
該与えられたデータ項目の複数のコピーを格納するための該メモリバンクの最小数が該メモリバンクのランダムサイクル時間の関数として決定される請求項１記載のメモリシステム。
【請求項３】
該与えられたデータ項目の複数のコピーを格納するための該メモリバンクの最小数が該メモリバンクのランダムサイクル時間と該メモリバンクのランダムバンクアクセス遅延の関数として決定される請求項２記載のメモリシステム。
【請求項４】
該与えられたデータ項目の複数のコピーを格納するための該メモリバンクの最小数が該メモリバンクのランダムサイクル時間の該メモリバンクのランダムバンクアクセス遅延に対する比より大きいかこれと等しい整数として決定される請求項３記載のメモリシステム。
【請求項５】
更に、該複数のメモリバンクを第一の複数のメモリバンクとして含む第一のメモリチャネルと、第二の複数のメモリバンクを含む第二のメモリチャネルを備える請求項1記載のメモリシステム。
【請求項６】
該指定されるバンクアクセスシーケンスがラウンドロビン選択シーケンスから成り、該アクセスリクエストの特定の１つがあるラウンドアクセスシーケンスに従って該セットのキューの先頭位置から選択され、該複数のメモリバンクの対応する１つに加えられる請求項１記載のメモリシステム。
【請求項７】
多重モードにて動作することができ、これら多重モードが、少なくとも：
ある与えられたデータ項目が該データ項目の複数のコピーとして、これら複数のコピーが該メモリバンクの指定される最小数の各々の１つに格納されるやり方にて格納され、該メモリコントローラが該メモリバンク内に格納されたこれらデータ項目へのアクセスに対するリクエストを該指定されるバンクアクセスシーケンスに従って処理するように適合される第一のモードと、
該与えられたデータ項目がそのデータ項目の単一のコピーとしてその単一のコピーが該複数のメモリバンクのある特定の１つの中に格納されるやり方にて格納され、該メモリコントローラが該メモリバンク内に格納されたこれらデータ項目へのアクセスに対するリクエストを該指定されるバンクアクセスシーケンスとは異なるあるシーケンスに従って処理するように適合される第ニのモードと、
を含む請求項１記載のメモリシステム。
【請求項８】
処理デバイスと、
該処理デバイスに接続されたメモリシステムとを備える処理システムにおいて、
該メモリシステムが：
メモリコントローラと、
該メモリコントローラに接続された、各々が複数のデータ項目を格納するように構成された複数のメモリバンクであって、ある与えられたデータ項目が該データ項目の複数のコピーとして、これら複数のコピーが該メモリバンクの指定される最小数の各々の１つに格納されるやり方にて格納されている複数のメモリバンクとを備え、
該メモリコントローラは、該処理デバイスから受信される該メモリバンク内に格納されたこれらデータ項目へのアクセスに対するリクエストを該アクセスリクエスト間のバンク衝突を回避するように構成されたある指定されるバンクアクセスシーケンスに従って処理するように適合され、
該メモリコントローラがさらに：
該アクセスリクエストを格納するように構成された、各々が該複数のメモリバンクの対応する１つと関連するセットのキューと、
該セットのキューに接続された、そこから該アクセスリクエストのある与えられた１つを該指定されるバンクアクセスシーケンスに従って選択するためのアービタと、を備える、ことを特徴とする処理システム。
【請求項９】
メモリコントローラと、このメモリコントローラに接続された、各々が複数のデータ項目を格納するように構成された複数のメモリバンクとを備えるメモリシステム内で用いるための方法であって、
ある与えられたデータ項目を該データ項目の複数のコピーとして、これら複数のコピーが該メモリバンクの指定される最小数の各々の１つに格納されるやり方にて格納するステップと、
該メモリコントローラを用いて該メモリバンク内に格納された該データ項目へのアクセスに対するリクエストを該アクセスリクエスト間のバンク衝突を回避するように構成されたある指定されるバンクアクセスシーケンスに従って処理するステップと、を含み、
該メモリコントローラが：
該アクセスリクエストを格納するように構成された、各々が該複数のメモリバンクの対応する１つと関連するセットのキューと、
該セットのキューに接続された、そこから該アクセスリクエストのある与えられた１つを該指定されるバンクアクセスシーケンスに従って選択するためのアービタと、を備える方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般的には網プロセッサ或いは他の処理デバイスとの関連で用いるためのメモリ、より詳細には複数のメモリバンク間の衝突を回避するように構成されたメモリアーキテクチャに関する。
【０００２】
【従来の技術】
網プロセッサは、一般には、例えば、非同期転送モード（ＡＴＭ）網或いは同期光網（ＳＯＮＥＴ）の物理層部分などの物理伝送媒体と、ルータ或いは他のタイプのパケットスイッチ内のスイッチファブリックの間のパケットの流れを制御する。動的ランダムアクセスメモリ（ＤＲＡＭ）は、ＤＲＡＭはある制限された電力消費にて大きなメモリ容量を提供できるという点で、このような網プロセッサとの関連で用いるのに適したメモリ技術である。
【０００３】
網プロセッサ内の、或いはこれと関連するＤＲＡＭは、典型的には多重メモリバンクの形式に構成される。これら複数のバンクのある与えられた１つ内の１つ或いは複数のアドレスへの一連の読出し或いは書込みアクセスには、ある要求されたアクセスプレチャージプロセス（ａｃｃｅｓｓ  ｐｒｅ−ｃｈａｒｇｅ  ｐｒｏｃｅｓｓ）が完結するまでのランダムサイクル時間（ｒａｎｄｏｍ  ｃｙｃｌｅ  ｔｉｍｅ）だけ待つことを要求される。ただし、バンクが異なるときはたとえ同一アドレスへのアクセスであっても、以降バンク衝突ペナルティ（ｂａｎｋ  ｃｏｎｆｌｉｃｔ  ｐｅｎａｌｔｙ）とも呼ばれるこのＴｒｃ待ち時間を待つことは要求されない。
【０００４】
静的ランダムアクセスメモリ（ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｉｅｓ，  ＳＲＡＭｓ）の場合は、このバンク衝突ペナルティが完全に回避される。つまり、メモリ内のあらゆるアドレスに、ＤＲＡＭと関連するＴｒｃ待ち時間の発生を伴うことなく、固定時間にてアクセスすることができる。ただし、ＳＲＡＭＳは、匹敵するサイズのＤＲＡＭと比較して、メモリ容量は典型的には一桁小さく、電力消費は二桁大きい、という短所がある。
【０００５】
当分野において周知の幾つかのＤＲＡＭは、上述のＴｒｃ待ち時間を低減するように特別に構成されている。例えば、いわゆる高速サイクルＤＲＡＭ（Ｆａｓｔ  Ｃｙｃｌｅ  ＤＲＡＭ）は、Ｔｒｃが最小となるように特別に設計されている。ＦＣＤＲＡＭのより具体的な例として、東芝から市販されるパーツ番号ＴＣ５９ＬＭ８１４ＣＦＴ−５０によって識別されるＦＣＤＲＡＭがある。ＦＣＤＲＡＭのこの特定のタイプにおいては、ランダムサイクル時間Ｔｒｃは5Tに制限されるが、ここでTはメモリクロック期間を表す。メモリアクセスには、読出しか書込みかをとわず、2クロック期間が必要とされ、最大データスループットはいわゆる「４バースト（ｆｏｕｒ  ｂｕｒｓｔ）」モードを用いて達成される。例えば、２００ＭＨｚメモリクロックと４つのバンクに構成されたＦＣＤＲＡＭが用いられ、各バンクが各々１６ビットの４Ｍメモリ語を含む場合は、メモリクロック期間Ｔは５ナノ秒となり、Ｔｒｃは２５ナノ秒となり、この４バーストモードを用いたときの最大データスループットは約６．４ギガビット／秒（Ｇｂｐｓ）となる。ただし、一連のメモリアクセスがこれら４バンクの同一の１つに向かう場合は、データスループットは、Ｔｒｃ待ち時間の結果として、約２．５Ｇｂｐｓに低減する。
【０００６】
【課題を解決するための手段】
上述から明らかなように、網プロセッサ或いは他の処理デバイスとの関連で用いるための、DRAMの長所である高いメモリ容量と低い電力消費能力を活かせ、同時に上述のバンク衝突ペナルティと関連する問題を回避できるというSRAMの長所も活かせる、改善されたDRAMベースのメモリアーキテクチャに対する必要性が存在する。
【０００７】
【課題を解決するための手段】
本発明は、網プロセッサ或いは他の処理デバイスと用いるのに適するDRAM-ベースのメモリを実現するための改善された技法を提供する。
【０００８】
本発明の一面によると、複数のメモリバンクを有するメモリシステムはアクセスリクエスト間のバンク衝突を回避するように構成される。このメモリシステムは、メモリコントローラと、このメモリコントローラに接続された、各々が複数のデータ項目を格納するように構成された複数のメモリバンクを含む。より具体的には、ある与えられたデータ項目は、そのデータ項目の複数のコピーとして、これら複数のコピーがメモリバンクの指定される最小数の各々の１つに格納されるやり方にて格納される。メモリコントローラは、これらメモリバンク内に格納されているこれらデータ項目へのアクセスに対するリクエストを、ある指定されるバンクアクセスシーケンス、例えばこれらアクセスリクエストの特定の１つがセットのバンクキューの先頭位置から選択され、これらメモリバンクの対応する1つに加えられるラウンドロビンシーケンスに従って処理するように適合される。
【０００９】
一つの実施例においては、メモリシステムは、少なくとも第一と第二のメモリチャネルを含むように構成され、各チャネルは同一セットのデータ項目を格納するある数のメモリバンクを含む。上述のメモリコントローラは、第一のセットのアドレス、データ及び制御バスを介して第一のチャネルの各メモリバンクに接続された第一のコントローラと、第ニのセットのアドレス、データ及び制御バスを介して第ニのチャネルの各メモリバンクに接続された第ニのコントローラを含む。メモリコントローラは、更に、アクセスリクエストを格納し、各々がこれらメモリバンクの対応する１つと関連するセットのキューと、これらセットのキューに接続された、それらからアクセスリクエストのある与えられた１つを指定されるバンクアクセスシーケンスに従って選択するように構成されたメモリアクセスアービタを含む。ある与えられた実施例のデータスループットはそのメモリシステムのチャネルの数を増やすことで増加することができる。
【００１０】
本発明のもう一面によると、与えられたデータ項目の複数のコピーを格納するためのメモリバンクの最小数は、それらメモリバンクのランダムサイクル時間とランダムバンクアクセス遅延の関数として、例えばランダムサイクル時間のランダムバンクアクセス遅延に対する比より大きいかこれに等しい整数として選択される。
【００１１】
本発明のもう一面によると、メモリシステムは、好ましくは、上述のバンク衝突回避モードと、通常のランダムアクセスモードにて動作できるように構成される。システムの特定の動作モードは、ホストプロセッサ或いは他の関連するデバイスを介してプログラム制御下で選択される。
【００１２】
このメモリシステムは、特に、不平衡な読出し/書込み比が存在するようなメモリ用途、つまり、典型的には書込みアクセスよりかなり多くの読出しアクセスを伴うようなメモリ用途に用いるのに適する。一つのこのようなメモリ用途は、網プロセッサ集積回路に対する外部木メモリ（ｔｒｅｅ  ｍｅｍｏｒｙ）としての用途であるが、本発明は様々な他の処理デバイスメモリ用途にも用いることができる。
【００１３】
長所として、本発明によるメモリシステムは、１０Ｇｂｐｓ或いはそれ以上の最大データスループットを達成するように構成することができる。
【００１４】
【発明の実施の形態】
本発明はここでは網プロセッサとの関連で外部メモリとして用いるのに特に適する一例としてのＤＲＡＭ−ベースのメモリアーキテクチャとの関連で説明される。ただし、本発明はより一般的に内部或いは外部ランダムアクセスメモリの複数のバンクにおける上述のバンク衝突ペナルティを緩和することが要望されるあらゆる処理デバイスに適用することができる。
【００１５】
ここで用いられる「処理デバイス（ｐｒｏｃｅｓｓｉｎｇ  ｄｅｖｉｃｅ）」なる用語は、例えば、これらに制限されるものではないが、網プロセッサ、マイクロプロセッサ、中央処理ユニット（ＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、及びその他のタイプのデータ処理デバイス、並びにこれら及び他のデバイスの一部及び組合せ等を含むことを意図される。
【００１６】
本発明は一つの実施例においては、網プロセッサ或いは他の処理デバイスと関連する多重バンクＤＲＡＭ−ベースメモリシステムにおける上述のバンク衝突ペナルティをシステムの異なるメモリバンク内に、所定の数の同一データのコピーを格納することで回避する。必要とされるデータ項目のコピーの最小数は、この実施例においては、用いられるＤＲＡＭデバイスのランダムサイクル時間Ｔｒｃとランダムバンクアクセス遅延Ｔｒｄｂの関数として決定される。例えば、メモリシステムのある与えられた多重バンクチャネルに対するデータ項目のコピーの最小数は、ＴｒｃのＴｒｂｄに対する比より大きいかこれと等しい整数として決定され、例えば、Ｔｒｃが２５ナノ秒で、Ｔｒｂｄが１０ナノ秒である場合は、異なるバンク内に格納されるべきある与えられたデータ項目の同一コピーの数は３とされる。
【００１７】
図1は本発明に従って構成されたメモリシステム100を示す。メモリシステム１００は、ここではＣｈａｎｎｅｌ  ０若しくはＣｈ０とも呼ばれる第一のチャネル１０２と、ここではＣｈａｎｎｅｌ  １若しくはＣｈ１とも呼ばれる第二のチャネル１０４を含む。チャネル１０２と１０４は、各々、バンクＢ０，Ｂ１，．．．，ＢＮと呼ばれるセットのＮ個のメモリバンクを含む。チャネル１０２は、さらに、図示されるようにアドレスバス１１２、データバス１１４、及び制御バス１１６を介してそれと関連するＣｈａｎｎｅｌ  ０のバンクＢ０，Ｂ１，．．．ＢＮの各々に接続されたＣｈａｎｎｅｌ  ０メモリコントローラ１１０を含む。同様に、チャネル１０４は、さらに、図示されるようにアドレスバス１２２、データバス１２４、及び制御バス１２６を介してそれと関連するＣｈａｎｎｅｌ１のバンクＢ０，Ｂ１，．．．ＢＮの各々に接続されたＣｈａｎｎｅｌ  １メモリコントローラ１２０を含む。メモリシステム１００は、さらに、セットの入力先入れ先出し（ＦＩＦＯ）キュー１３０とメモリアクセスアービタ１３２を含む。
【００１８】
メモリシステム１００は、これらメモリバンクに対しては外部のデコーダ論理を設け、図１には示されないが、このデコーダ論理をアドレス及び制御バス信号を従来のやり方にて処理するように構成することもできる。別個のセットのこのようなデコーダ論理をチャネル１０２と１０４のおのおのに対応させ、これらの全体或いは一部を関連するメモリコントローラ１１０或いは１２０内に組込むこともできる。
チャネル１０２と１０４のメモリバンクＢ０，Ｂ１，．．．ＢＮは、各々、一つ或いは複数のＤＲＡＭデバイスとして実現することもできる。例えば、これらメモリバンクは、各々、先に説明の一つ或いは複数の高速サイクルＤＲＡＭ（ＦＣＤＲＡＭ）として実現することもできる。これらデバイスを構成するやり方は当分野において周知であり、従ってここではこれ以上詳しくは説明しない。
【００１９】
本発明は、不平衡な読出し／書込み比が存在するようなメモリ用途、つまり、典型的には実質的に書込みアクセスより多くの読出しアクセスを伴うメモリ用途に用いるのに特に適する。不平衡な読出し／書込み比を有する用途の一例には、９５％の読出しアクセスと５％の書込みアクセスを有する用途がある。本発明は、ただし、読出しと書込みの特定の比、或いは不平衡のタイプを要求するものではない。
【００２０】
コントローラ１１０、１２０、キュー１３０、及びアクセスアービタ１３２は、集合的にシステム１００に対するメモリコントローラと見ることもできる。ここで用いられる「メモリコントローラ（ｍｅｍｏｒｙ  ｃｏｎｔｒｏｌｌｅｒ）」なる用語は、従って、より一般的に、コントローラ１１０や１２０など単一のチャネルコントローラを意味するものと解することも、或いは複数のチャネルコントローラ、並びに１つ或いは複数のアービタ、キュー或いは、他の関連する要素を含むより複雑な構成を意味するものと解することもできる。
【００２１】
図1に示すメモリシステム１００の特定の構成は、単に例示に過ぎず、本発明の範囲を任意の特定の実施態様或いは一群の実施態様に制限することを意図するものと解されるべきではない。例えば、各々がＮ個のメモリバンクを有する二つのチャネルを含むものとして示されるが、当業者においては理解できるように、本発明は、二つより多くのチャネルを用いて実現することも、たった1つのチャネルを用いて実現することもでき、更に、ある与えられた多重チャネル実現において、各チャネルが同数のメモリバンクを有することも必要とされない。
【００２２】
ある与えられた実施態様のデータスループットは、メモリシステムのチャネルの数を増やすことで増加することができる。換言すれば、データスループットは用いられるチャネルの数に比例する。
【００２３】
バンク衝突回避モードの動作においては、入力アクセスリクエストは、複数のＦＩＦＯキュー１３０の特定の１つに向けられる。これらキューは、好ましくは、バンク毎に、Ｃｈａｎｎｅｌ  ０或いはＣｈａｎｎｅｌ  １の複数のバンクの特定の１つに向けられたリクエストが、セットのＦＩＦＯキュー１３０内のそのバンクと関連するある特定のＦＩＦＯキュー内に格納されるように編成される。次に、メモリアクセスアービタ１３２によって、これらＦＩＦＯキュー１３０からアクセスリクエストが、異なるバンクに向けられたアクセスリクエスト間での前述のバンク衝突問題が回避されるように構成されたある指定されるバンクアクセスシーケンスに従って選択される。このシーケンス動作の例については後により詳細に説明される。
【００２４】
説明の目的に対しては、ＦＩＦＯキュー１３０内に格納されるべきアクセスリクエストの各々は、これらバンクのある与えられた１つ内のある指定されるアドレスからある特定のデータ項目を読み出す動作を伴うものと想定される。メモリシステム１００は、本発明の教示に従って上述のバンク衝突回避モードにて動作するように構成することができる。このモードにおいては、ある指定される数の同一データのコピーが、チャネル１０２と１０４内の、バンクＢ０，Ｂ１，．．．ＢＮの異なる１つ内に格納される。前述のように、必要とされるデータ項目のコピーの最小数は、説明の実施例においては、Ｃｈａｎｎｅｌ  ０とＣｈａｎｎｅｌ  １のバンクＢ０，Ｂ１，．．．ＢＮ内で用いられる特定のＤＲＡＭデバイスのランダムサイクル時間Ｔｒｃとランダムバンクアクセス遅延Ｔｒｂｄの関数として決定される。より具体的には、ある与えられたデータ項目の複数のコピーを格納するためのメモリバンクの最小数は、ランダムサイクル時間Ｔｒｃのランダムバンクアクセス遅延Ｔｒｂｄに対する比より大きいかこれに等しい整数として決定される。上述の例においては、データ項目のコピーの最小数は、ＴｒｃのＴｒｂｄに対する比より大きいかこれに等しい整数として決定される。従って、用いられる特定のＤＲＡＭデバイスが、２５ナノ秒なるＴｒｃと１０ナノ秒なるＴｒｂｄを有する場合は、ある与えられたメモリチャネルの異なるバンク内に格納されるべきある与えられたデータ項目の同一コピーの数は３となる。
【００２５】
図２はデータ項目の複数のコピーがバンク衝突回避モードにおいて指定される最小数のメモリバンク内に格納されるやり方を示す。この例においては、ある与えられたチャネル内のＮ個のバンクのバンクＢ０，Ｂ１及びＢ２の各々は、データ項目１、データ項目２、．．．データ項目Ｋと呼ばれる同一セットのＫ個のデータ項目を格納する。図面にはたった３つのバンクしか示されないが、説明の実施例においては、チャネル１０２と１０４の両方において同一のメモリ構成が利用され、全体で２Ｎ個のバンクの内の、全部で６個のバンクが同一セットのデータ項目を格納するものと想定される。各データ項目は、この実施例においては、あるメモリバンクのある特定のアドレス可能なワードに対応する。上述の入力アクセスリクエストは、好ましくは、これらメモリバンクのある特定の１つ内のこのようなアドレス可能なワードに向けられる。
【００２６】
図３は本発明の技術を用いる図１のシステム内で実現されるバンク衝突回避プロセスの流れ図である。ステップ３００において、システムはバンク衝突回避モードに入る。これは、当業者においては明らかなやり方にて、コントローラ１１０、１２０、キュー１３０及びアービタ１３２をプログラマブルに構成することで達成される。
【００２７】
次に、ステップ３０２において、同一セットのデータ項目が、上述のやり方にて、各チャネル内の最小数のバンク内に格納される。バンクの最小数は、ある与えられた既知のメモリシステム構成に基づいて予め決定しておくことも、或いはシステムメモリコントローラ内の論理回路を用いて動的に決定することもできる。システム１００がいったんバンク衝突回避モードに入り、複数のセットのデータ項目が前述のやり方にてメモリバンク内に格納されると、システム１００は、ステップ３０４において、入りアクセスリクエストを、バンク毎にセットのＦＩＦＯキュー１３０内に置く。次に、ステップ３０６において、これらアクセスリクエストがＦＩＦＯキュー１３０から、ラウンドロビン選択プロセス或いは他の指定されるバンクアクセスシーケンスに従って選択される。例えば、ラウンドロビン選択プロセスにおいては、これら複数のアクセスリクエストの特定の１つがこれらセットのキュー１３０の先頭位置からラウンドロビンシーケンスにて選択され、これらメモリバンクの対応する１つに加えられる。より具体的な例としては、これらアクセスリクエストは、Ｃｈ０−Ｂ０、Ｃｈ１−Ｂ０、Ｃｈ０−Ｂ１、Ｃｈ１−Ｂ１、Ｃｈ０−Ｂ２、Ｃｈ１−Ｂ２、Ｃｈ０−Ｂ０、Ｃｈ１−Ｂ０、．．．のようなバンクアクセスシーケンスパターンに基づいて選択される。本発明から逸脱することなく、チャネルとバンクの他の組合せを他のバンクアクセスシーケンスと共に用いることもできる。
【００２８】
図４は、図１のシステムの二つのチャネル１０２、１０４内のある数の異なるアクセスリクエストを、上述のバンク衝突回避モードを用いて、処理する際のタイミング図を示す。ここでも、図２との関連で説明したように、二重のセットのデータ項目がＣｈａｎｎｅｌ  ０とＣｈａｎｎｅｌ  １の各々のバンクＢ０，Ｂ１及びＢ２の各々の中に格納されるものと想定される。この一例としてのタイミング図においては、読出しアクセスリクエストは各々約１０ナノ秒を要することがわかる。これは上述のランダムバンクアクセス遅延Ｔｒｂｄに対応する。Ｃｈａｎｎｅｌ  ０とＣｈａｎｎｅｌ  １のバンクは、この実施例においては、完全に独立である。Ｃｈａｎｎｅｌ  ０内のある特定のバンクに対する読出しアクセスリクエストは、従って、図に示されるように、このタイプのスタガリング（ふらつき）は単に例示に過ぎず、本発明の要件ではないが、Ｃｈａｎｎｅｌ  １内のある特定のバンクに対する読出しアクセスリクエストと重なる。図４のタイミング図から、さらにバンクＢ０，Ｂ１及びＢ２の内容を更新するために、３０ナノ秒の書込みアクセスリクエストが用いられることもわかる。ランダムサイクル時間Ｔｒｃは、この実施例においては、２５ナノ秒であるものと想定される。この図面に示されるこれらの特定のタイミング間隔は単に例示であることに注意する。
【００２９】
図４に示される一例としてのセットの書込みアクセスリクエストの前後において、Ｔｒｃと等しい或いはこれより小さな遅延が発生する。これとの関連で、このメモリシステムは、ある与えられた実施態様における実際の待ち時間を低減するための追加の論理を設けることもできることに注意する。例えば、このような追加の論理は、図４内のバンクＢａ，Ｂｂ及びＢｃへの書込みアクセスの特定の順番を、更新前の（バンクＢｘへの）最後の読出しアクセスと更新後の（バンクＢｙへの）最初の読出しアクセスに基づいて決定するように構成することもできる。ここで、ａ、ｂ、ｃ、ｘ及びｙは、この実施例においては、０、１、或いは２のいずれかの値を取る。
【００３０】
長所として、本発明の上述の幾つかの実施例によると、１０Ｇｂｐｓ或いはそれ以上のオーダの最大データスループットを達成することができる。この場合、各チャネルは４つのバンクを含むように構成され、前述のように、これら４バンクの内の３つに同一のデータ項目が格納される。このＤＲＡＭデバイスは、東芝から市販されるＴＣ５９ＬＭ８１４ＣＦＴ−５０なるパーツ番号にて識別される上述のＦＣＤＲＡＭデバイスとすることもできるが、これは４−バーストモードにて動作し、２００ＭＨｚメモリクロックを用い、これらバンクの各々は、各々１６ビットの４Ｍメモリワードを含む。本発明との関連で用いるのに適する他の市販のＤＲＡＭメモリバンクには、例えば、単に一例として、東芝から市販されるパーツ番号ＴＣ５９ＬＭ８０６ＣＦＴ−５０、ＴＣ５９ＬＭ８０６ＢＦＴ−２２及びＴＣ５９ＬＭ８１４ＢＦＴ−２２や、富士通から市販されるパーツ番号ＭＢ８１Ｎ２５１６４７−５０及びＭＢ８１Ｎ２５８４７−５０などがあるが、ただし、達成可能な最大データスループットは用いられるデバイスによって異なる。
【００３１】
メモリシステム１００は、好ましい実施例においては、上述のバンク衝突回避モードと少なくとも１つの他のモードを含む複数のモードにて動作できるようにされる。この他のモードは、例えば、従来のＤＲＡＭ動作モードとされ、このモードにおいてはメモリシステム１００は実質的に従来のＤＲＡＭ−ベースのシステムとして動作し、従って上述のバンク衝突ペナルティを被る。この従来のＤＲＡＭ動作モードにおいては、各チャネル１０２、１０４内の各バンクＢ０，Ｂ１，．．．ＢＮは、異なるセットのデータ項目を格納し、これらデータ項目はランダムにアクセスされる。換言すれば、バンク衝突回避モードと関連する指定されるバンクアクセスシーケンスは用いられない。システム１００内に実現することができる従来のＤＲＡＭ動作は当分野において周知であり、従ってここでは詳細には説明されない。更に、ＤＲＡＭ動作モードにおいて、バンク衝突ペナルティの影響を最小限に押さえるためにランダムアクセスをスケジュールするための特定の技法を用いることもできる。システム１００のこの特定の動作モードは、率直なやり方にてプログラム制御下で選択することもできる。
【００３２】
図５は内部に本発明の技法によるメモリシステム１００を実現することができる一例としての処理システムを示す。この実施例においては、処理システム１００はラインカード５００を含み、この上には集積回路５０２が搭載される。この集積回路５０２は、処理デバイス５０４を含み、これは内部メモリ５０６を有する。処理デバイス５０４はラインカード５００上の外部メモリとやりとりするが、この外部メモリは図１との関連で説明したメモリシステム１００から成る。
図５に示す処理システムは説明を明快にするためにかなり簡略化されている。ただし、この処理システムは、各々が複数の集積回路を含む複数のラインカードを含むルータ或いはスイッチから構成されることも考えられる。本発明の類似の実現をルータ或いはスイッチの１つ或いは複数のポートカードに基づいて構成することもできる。
【００３３】
集積回路５０２の少なくとも一部として実現される処理デバイス５０４は、網プロセッサを構成する。上述のように、メモリシステム１００は、不平衡な読出し／書込み比が存在するようなメモリ用途、つまり、典型的には書込みアクセスよりかなり多くの読出しアクセスを伴うようなメモリ用途に用いるのに特に適する。本発明のこのような用途においては、メモリシステム１００は、例えば、網プロセッサ集積回路に対する外部木メモリ（ｔｒｅｅ  ｍｅｍｏｒｙ）として機能する。木メモリは、探索オブジェクトとある特定の格納されているデータ項目との間の一致の存在或いは不在を決定することを試みる二進或いは非二進木探索アルゴリズム（ｔｒｅｅ  ｓｅａｒｃｈ  ａｌｇｏｒｉｔｈｍ）との関連で用いられる。当分野において周知の非二進木探索アルゴリズムの一例が１９９８年９月２２日付けでＶ．Ａ．Ｂｅｎｎｅｔｔらに交付された「Ｍｅｔｈｏｄ  ｆｏｒｐｅｒｆｏｒｍｉｎｇ  ｏｐｔｉｍｉｚｅｄ  ｉｎｔｅｌｌｉｇｅｎｔ  ｓｅａｒｃｈｅｓ  ｏｆ  ｋｎｏｗｌｅｄｇｅ  ｂａｓｅｓ  ｕｓｉｎｇ  ｓｕｂｍａｐｓ  ａｓｓｏｃｉａｔｅｄ  ｗｉｔｈ  ｓｅａｒｃｈ  ｏｂｊｅｃｔｓ」なる名称の合衆国特許Ｎｏ．５，８１３，００１において説明されている。本発明のメモリシステム１００は、特に木メモリ探索用途に用いるのに適するが、ただし、様々な他の用途及び多様な他の処理システム構成にも利用できる。例えば、メモリシステム１００は、網プロセッサ或いは他の処理デバイス内の内部メモリとして用いることもできる。
【００３４】
本発明の上述の実施例はもっぱら解説のみを意図するものである。例えば、前述のように、本発明はメモリシステム要素の他の構成を用いて実現することもできる。加えて、ある与えられたデータ項目の複数のコピーを格納するために要求されるメモリバンクの最小数は、メモリバンクのランダムサイクル時間、メモリタスクのランダムバンクアクセス遅延、或いは両者の組合せなど別の関数に基づいて決定することもできる。更に説明の実施例は、二つの独立なメモリチャネルを利用し、各チャネルは、その中にデータコピーが格納される3つの最小数のメモリバンクを有し、各バンクには同一のデータ項目が格納されるが、他のチャネル数、チャネル当たりのバンク数、及びこれらバンクへのデータコピーの分配方式を用いることもできる。当業者においては明らかなように、クレームの範囲から逸脱することなく、これら及び他の様々な実施の形態が可能である。
【図面の簡単な説明】
【図１】本発明の技法に従って構成されたメモリシステムを示す略ブロック図である。
【図２】本発明によるバンク衝突回避モードにおいて図１のメモリシステムの各メモリバンク内に同一セットのデータ項目が格納されるやり方を示す図である。
【図３】本発明によるバンク衝突回避プロセスの流れ図を示す図である。
【図４】本発明の一つの実施例に従って図１のシステムの二つのチャネル内のアクセスリクエストが処理される際のタイミング図である。
【図５】図１のメモリシステムが内部メモリを含む処理デバイスに対する外部メモリとして用いられる様子を示す図である。
【符号の説明】
１００  メモリシステム
１０２  第一のチャネル
１０４  第二のチャネル
１１０  メモリコントローラ
１１２  アドレスバス
１１４  データバス
１１６  制御バス
１２０  メモリコントローラ
１２２  アドレスバス
１２４  データバス
１２６  制御バス
１３０  セットの入力先入れ先出し（ＦＩＦＯ）キュー
１３２  メモリアクセスアービタ
５００  ラインカード
５０２  集積回路
５０４  処理デバイス
５０６  内部メモリ
【図１】
0004369660.tif 000002
【図２】
0004369660.tif 000003
【図３】
0004369660.tif 000004
【図４】
0004369660.tif 000005
【図５】
0004369660.tif 000006