JPH04501332A - メモリ構造および利用方法 - Google Patents

メモリ構造および利用方法

Info

Publication number
JPH04501332A
JPH04501332A JP51113789A JP51113789A JPH04501332A JP H04501332 A JPH04501332 A JP H04501332A JP 51113789 A JP51113789 A JP 51113789A JP 51113789 A JP51113789 A JP 51113789A JP H04501332 A JPH04501332 A JP H04501332A
Authority
JP
Japan
Prior art keywords
memory
memory area
area
substructure
records
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP51113789A
Other languages
English (en)
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of JPH04501332A publication Critical patent/JPH04501332A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 メモリ構造および利用方法 本発明は、メモリ構造に関し、特に、その構造に格納されたデータの相対的に速 いシャフリング(shuffling)を許容し、その構造を通して、ソーティ ング(sorting)のような動作を商業的に容易にする、メモリ構造に関す る。
従来の技術 特に、限定するわけではないが、本明細書にて説明されるメモリ構造は、コンテ ント・アドレッサブル・メモリ(content addressable 1 l13110ry+ CAM)にてイ吏用される。
1970年代後半に、大部分のアプリケーションにおいてコンピュータに要求さ れる仕事の大部分が現在、ソーティング情報、キー(key)等によるアクセス 情報に関連していることが認識された。また、メモリ(例えば、RAM等)にお けるメモリアドレスによる情報の格納は、それに関して関連する動作が成される 情報を格納する最も効率的な方法ではないことが認識された。理想的には、情報 は、特定の複数のサーチキー(search key)によって格納され、それ らのサーチキーに、ある方法(すなわち、アルファベット順、数の順等)で関係 する1つのアルゴリズムに従って集められることが望ましい。
1′つのアドレスによる格納よりも、格納される情報の内容によって、メモリに 情報を記憶することは、コンテント・アドレッサブル・メモリ(content  addressable taetsory+ CAM)として知られるよう になった。以前そうであり、今もそうであるが、コンテント・アトI/ツサプル ・メモリのソフトウェア装備は、ソフトウェアの木構造をなしている。今日まで の本質的に全てのケースでは、その中に木構造が存在するメモリは、木構造のエ レメントがアトL/スによって格納されるRAMである。理想的には、ソフトウ ェアの木構造に結合された従来のハードウェアRAMよりも、ハードうエアのコ ンテント・アドレ・、―・サブル・メモリの構造の方が、相当高速であるはずで ある。望まれるCAM構造と、商業的に入手可能なRAMの安価さ、および、大 きな容量を考え合わせて、通常のアドレッサブルなRAMをコンテント・アドレ ・ンサブル・メモリとし7a作するよ二?にする試みが、今日まで多くなされて いる。P r i e e (、=、与えられた米国特許第4758982号は 、そのような試みの1つを開示し、また、コンテント・アドレッナプル・メモリ についての良い説明を掃供している。 Berndtに与えられた米国特許第4 758983号は、商業的に入手可能なRAMを、、′1ンテニ何・・アドレy ylサブlし・メモリとして動作するようにする他の試、みを示り、ている。
本発明の少なくとも1つの実施例においでは、商業的に入手可能なRAMが、( 相対的に)非常に高速のコンチンj・・アドレッサブル・、ぜモリ構造を提供す るように周辺バー・ドウエアき結合されている。
本発明の他の実施例においては、非常に急激に(すなわち、任意の(そして選択 可能な)少ないCP Uサイクルの闇に)シャフル(shuffle)され得る メモリスタック構造が開示される。この構造は、ソートされたリストオーダに保 持されたデータは、計算機的には(たとえ望ましいとしても)高度に非効率的で あるという、この分野における共通の認識を、少なくとも何らかの方法で覆す道 を探索する。
発明の詳細な説明 本発明の1つの形態は、複数の記録を格納するメモリ構造であって、 核メモリ構造は複数の隣接するメモリ領域を有し2、該複数のメモリ領域の各々 は、前記複数の記録の1つを格納するように構成され、 前記複数の、メモリ領域は、機能的に複数のメモリサブ構造に分けられ、 該複数のメモリサブ構造の各々は、1つの分離された、しかし、隣接する、前記 メモリ構造のサブ部分を有し、前記サブ構造の各々は、それに取付けられるバッ フ1メモリ領域を付加的に有し、 該バッファメモリ領域は、1つのメモリ領域内に格納される1つの記録を前記サ ブ構造内に受けるか、または、前記バッファメモリ領域に格納される1つの記録 を前記サブ構造内の1つのメモリ領域に転送するように構成され、前記バッファ メモリ領域は、更に、前記バッファメモリが取付けられる前記サブ構造のすぐ隣 にある1つのサブ構造内に、1つのメモリ領域に格納された記録を受けるか、あ るい゛は、前記バッファメモリが取付けられる前記サブ構造のすぐ隣にある1つ のサブ構造内の1つのメモリ領域に、前記バッファメモリ領域に格納された1つ の記録を転送するように構成されるものである。
本明細書において、「隣接する(contiguous) Jとは、論理的な意 味で並んでいる構造を意味するが、必ずしも物理的に並んでいる必要はない、こ の表現は、分かれてはいるが順゛序付けられたデータを保持するために、(メモ リ構造が)分離されてはいるが、論理的に連続していることを示すためには多分 最もよい表現であろう。
同様に、「あるメモリ領域が他のメモリ領域より上または下にある」というよう な表現についても、論理的な意味で読まんでもらいたい。特に、本発明の実施例 においては、実際、そのような言葉が、上下でなく、横方向の転置の意味にも使 われている。
好適には、上記のメモリ構造は、前記複数の記録をサーチキーの順序で格納する よう構成される。ここで、これらの記録の各々は、その記録の少なくとも1部分 を有する1つのサーチキーを含む。
好適には、上記のメモリ構造は、スタックまたはリストとして動作し、前記メモ リ構造内の選択されたメモリ領域において、上記のスタックまたはリストに1つ の記録を追加する。
このことは、前記メモリ構造において、上記の選択されたメモリ領域、および、 その上において、全ての記録を1メモリ領域シヤフル・アップ(shuffle  up)する(「アップ・シャフル・オペレーション」)かまたは、上記の選択 されたメモリ領域、および、そのFにおいて、全“Cの記録を1メモリ領域シヤ フル・ダウン(shuffle down)する(「ダウン・ジャツル・オペレ ーション」)するかの何れかによって、あるいはまた、前記サブ構造が転置され るとき、全ての記録をラスクツオーマットで横向きにシャフルすることにより行 われる。そして、これにより、論理的に逆のオーバーライドプロセスによって前 記スタックまたはリストから1つの記録が削除される。
本発明の他の形態は、メモリ構造におけるサーチキー順に複数の記録を保持する 方法であって、 該メモリ構造は、複数の隣接するメモリ領域を有し、該メモリ領域の各々は、前 記複数の記録の1つを格納するように構成され、 前記複数の、メモリ領域は、機能的に複数のメモリ・ザブ構造に分離され、 該メモリサブ・構造の各々は、分離されているが隣接するザブ部分または前記メ モリ構造を有し、前記サブ構造の各々は、該各々に取付けられるバッファメモリ 領域を付加的に含み、 前記バッファメモリ領域の各々は、1つのメモリ領域に格納された1つの記録を 前記サブ構造内に受けるか、または、前記バッファメモリ領域に格納された記録 を、前記サブ構造内の1つのメモリ領域に転送するように構成され、前記バッフ ァメモリ領域は、更に、前記バッファメモリが取付けられる前記サブ構造のすぐ 隣にある1つのサブ構造内に、1つのメモリ領域に格納された記録を受けるか、 あるいは、前記バッファメモリが取付けられる前記サブ構造のすぐ隣にある1つ のサブ構造内の1つのメモリ領域に、前記バッファメモリ領域に格納された1つ の記録を転送するように構成され、 前記方法は、前記複数の記録を、サーチキーによって順序付けられた前記構造内 の隣接する複数のメモリ領域に配列するものである。
本発明のもう1つの形態は、複数の記録を保持するコンテント・アドレッサブル ・メモリ構造であって、該構造は、複数の隣接するメモリ領域を有し、該メモリ 領域の各々は、前記複数の記録の1つを格納するように構成され、 前記複数のメモリ領域は、機能的に複数のメモリ・サブ構造に分離され、 該メモリサブ・構造の各々は、分離されているが隣接するサブ部分または前記メ モリ構造を有し、前記サブ構造の各々は、該各々に取付けられるバッファメモリ 領域を付加的に含み、 前記バッファメモリ領域の各々は、1つのメモリ領域に格納された1つの記録を 前記サブ構造内に受けるか、または、前記バッファメモリ領域に格納された記録 を、前記サブ構造内の1つのメモリ領域に転送するように構成され、前記バッフ ァメモリ領域は、更に、前記バッファメモリが取付けられる前記サブ構造のすぐ 隣にある1つのサブ構造内に、1つのメモリ領域に格納された記録を受けるか、 あるいは、前記バッファメモリが取付けられる前記サブ構造のすぐ隣にある1つ のサブ構造内の1つのメモリ領域に、前記バッファメモリ領域に格納された1つ の記録を転送するように構成され、 前記複数の記録は、キーによってソートされた順序で前記メモリ構造の前記複数 のメモリ領域に保持されるものである。
本発明の更にもう1つの形態は、コンテント・アドレッサブル・メモリとして動 作するように、複数の記録を格納する1つのメモリ構造を操作する方法であって 、該構造は、複数の隣接するメモリ領域を有し、該メモリ領域の各々は、前記複 数の記録の1つを格納するように構成され、 前記複数のメモリ領域は、機能的に複数のメモリ・サブ構造に分離され、 該メモリサブ・構造の各々は、分離されているが隣接するサブ部分または前記メ モリ構造を有し、前記サブ構造の各々は、該各々に取付けられるバッファメモリ 領域を付加的に含み、 前記バッファメモリ領域の各々は、1つのメモリ領域に格納された1つの記録を 前記サブ構造内に受けるか、または、前記バッファメモリ領域に格納された記録 を、前記サブ構造内の1つのメモリ領域に転送するように構成され、前記バッフ ァメモリ領域は、更に、前記バッファメモリが取付けられる前記サブ構造のすぐ 隣にある1つのサブ構造内に、1つのメモリ領域に格納された記録を受けるか、 あるいは、前記バッファメモリが取付けられる前記サブ構造のすぐ隣にある1つ のサブ構造内の1つのメモリ領域に、前記バッファメモリ領域に格納された1つ の記録を転送するように構成され、 前記方法は、前記複数の記録を、キーによってソートされた順序で前記メモリ構 造の前記複数のメモリ領域に保持することを含むものである。
好適な実施例の詳細な説明 複数の図面(図1以外)についての以下の詳細な説明は、コンテント・アドレッ サブル・メモリ構造として特に装備されたときの本発明の複数の実施例に関する ものである。しかしながら、これら好適な実施例の説明は、請求の範囲に示され た本発明の最も広い形態にも限定されるものではない。
1、基j弘[4土1−火1構−造9J01陥本発明の最も広い形態は、特に、メ モリ構造の概念に関する。この概念は、図1に示されている。初めに、図1は概 念的なものであって、本発明のメモリ構造の実際の装備には直接の物理的な間係 は全くないことを強固しておく。コンビ、1−タおよびコンピュータのメモリに おいては、メモリ領域の他のメモリ領域に対する相対的な位置については、実際 の物理的な位置はさほど重要ではなく、むしろ、メモリ領域間のテ゛−・タパス の接続が重要である。
図1を参照しで、本発明の第1のの実施例のメモリ構造1は、複数のメモリ領域 A1.A2.A3.A4.Bl、B2゜B3.B4.CI、C2,C3,C4, からZi、、Z2.Z3、Z4までを有している。これらのメモリ領域は隣接す る(す゛なわら、これらは、以下に述べる順序で共ムー接続され、2:して、メ モリ領域A4内のデータのために2、例えば、メモリもa域A2に到達するため r、データは、メモリ領域A3を逼し″(処理されねばならない)9メモリ領域 Al−24は、こうして、スタックまたはリストを有するものとして考えら47 、得る。加えて、メモリ構造メモリ領域間域サブ構造2,3゜4、および、5お 名づけられた複数のメモリ領域のナブグループに゛分けられる(図1によってス イ・ンチングデペイスに提供された概念に従、っγ、メ千り領域D Iからゾ4 に対するサブ構造も続く)、メ王り領域に従って、そして、メモリ領域が4ドブ グル・−i7’ lご分けられたと同様に、4i″ブ構造2,3.4゜!jもま た順序付けられる。すなわら、複数のメモリ領域A1〜A4を含むサブ構造2は 、複数のメ1゛り領域B 1. ” B 4を含むサブ構造3の「上に」存在し 、同様に1.サブ構造2内では、メモリ領域A1はメモリ領域A2の上にあり、 メモリ領域4はメモリ領域A3の下にある。
図1に説明した順序付けられたメモリ構造に加えて、各サブ構造2,3,4.5 に結合されるものとして、それぞれ、バッフ1メモリ領域6,7,8.9がある 。これらのバッファメモリ領域は、メモリにおける情報の通常の格納のために意 図されたものではなく、むしろ、各サブ構造2.3.4゜5において、データを 複数のメモリ領域分シャフルアップまたはダウンした結果として発生する「オー バフロー」データに相当するものを保持する目的で存在する。これらのバッファ メモリ領域は、全てのサブ構造2,3,4.5において共に(並行して)メモリ がシ、ヤフルすることを許容する。
(後に、[スプリット・ブツシュ−プル(sprit push−pull)」 と称するコンテント・アドレッサブル・メモリの実施例において使用される)図 1が適用される1つの例を取り上げる。メモリ領域、A1からA4の内容を1メ モリ領域分シフトダウンするために4クロフクサイクル掛かると仮定すると(す なわち、A4の内容がサブ構造2の底から(または最初にサブ構造2の底から) バッファメモリ領域6まで落とされるとき、A3の内容はA4まで移動し、A2 の内容はA3まで移動し、A1の内容はA2まで移動すると)、この同じ4クロ ツクサイクルの間に、サブ構造3,4.および、5のメモリの内容もまた、1メ モリ領域分下にシフトする。下方向のシャフル動作を完了するために、次の2. 3のクロ・ンクサイクルにおいて、バッファメモリ領域6の内容は、サブ構造2 の一番上において、メモリ領域B1に転送され、tzlツファメモリ領域7の内 容はメモリ領域C1に転送され、そして、メモリ構造1を有する複数のサブ構造 全てについても(並行して)同様に動作する。こうして、基本的に、下方メモリ シャフルは、以下の2つのステップからなる: (恐らく、各サブ構造の最も低 いメモリ領域をそのサブ構造のバッファメモリ領域に初期ブツシュする動作から 始まる)各サブ構造のメモリ内容が(この機能を実行する全てのサブ構造におい て同時に並行して)下方にシフトされる第1のステップ、および、ソノ後に続く 、この第1の動作からのオーバフロー(今、前記バッファメモリ領域に存在する )の隣接するサブ構造内の適当なメモリ領域への転送(再び、並行動作)。
アップ・シャフルも同様に実行され、上記の複数のサブ構造の各々の内容は上方 向に並行動作でシフトされ、各サブ構造の最も上からのオーバフローは、その直 ぐ上に位置するそのサブ構造のバッファメモリ領域に格納され、そのバッファメ モリ領域の内容は、そのバッファメモリ領域が取付けられたサブ構造の最も下の メモリ領域に転送される。
図1に関連して説明される例においては、上記の複数のメモリ領域および上記の 複数のバッファメモリ領域の各々のサイズ(データ保持キャパシティ)は同じで ある。また、この例では、特に、各々が4つのメモリ領域(および個々のメモリ 領域の何れとも等しいサイズの1つのバッファメモリ領域)を含む26のサブ構 造が存在する。
図1に示される複数のサブ構造の関係に適用されねばならない広い解釈を強調す る、図1に適用される、もう1つの例においては、それらに結合されるバッファ メモリ領域6,7゜8.9と共にサブ構造2.3.4.5は、隣接する列として 横に位置するとして最も良(考えられるように転置される。
(この例は、後に説明されるように、図7および8に示され、[セグメント伜プ ・ンシュー=プル(segment push−pulり 」と称するコンテン ト・アドレッサブル・メモリの実施例に適用される。)この第2の例においては 、メモリの内容のシャフリング(shuf f 1 ing)は、幾らか異なっ た方法で行われ、如何なるシャフル動作の間においても、バッファメモリ領域6 .“l。
8.9をより多く使用する。この例においては、メモリの内容の「順序付けj左 から右であり、一番上の行はメモリ領域At、Bl、C1,・・・Zlを含み、 次の行はメモリ領域A2.B2.C2,・・・Z2を含み、以下同様である。メ モリの内容をシャフルするためには、領域A3の内容はバッファメモリ領域6に 移動されねばならない、同時に、並行して、メモリ領域B3の内容は、バッファ メモリ領域7に移動し5、メモリ領域C3の内容は、バッファメモリ領域8に移 動し、そして、メモリ領域Z3の内容は、バッファメモリ領域9に移動する。第 2のステップまたは動作として、バッファメモリ領域6,1,8.9の内容は、 ラップ・アラウンド(wrap around) L、第2の行の最も左のサブ 構造に置かれるバッファメモリ領域9の内容並皿1て、直ぐ隣の列(サブ構造) に転送される。すなわち、バッファメモリ領域6はメモリ領域B3に、バッファ メモリ領域6はメモリ領域C3に、バッファメモリ領域6はメモリ領域D3に、 そして、バッファメモリ領域9はメモリ領域A3に転送する。これは、一般に左 から右のラスクスキャンタイプのシャフルに帰結する。
第1の例と同様に、完全なシャフルが行われる速度は、基本的に複数のサブ構造 の深さによって決定される。しかしながら、この第2の例の構成は、上記の複数 のサブ構造の「並列処理」の、より効率的な使用を許容し、同じ量のデータに対 して、第1の例におけるよりも速いシャフルを行う。特に、全てのサブ構造がデ ータで満たされているわけではないときに、そうである。
この基本構造は複数の変形が可能であるが、決して以下のものに限定されるわけ ではない。
各サブ構造内のメモリ領域の数の、上記のメモリ構造における全サブ構造の数に 対する比は任意であって、設計上の制限に依存する。上記のメモリ構造における 全サブ構造の数に対する比として、各サブ構造におけるメモリ領域の数が増加す るにつれて、第1のステップにおけるシャフル動作の実行速度は低下する。
バッファメモリ領域は、そのサイズにおいても、構造においても変化し得る。例 えば、バッファメモリ領域は、一方が他方にスタックする2つのメモリ領域を含 むことができる。
これにより、1つのサブ構造の中の2つのメモリ領域が、このバッファメモリ領 域の中にオーバフローすることができる。
図1に説明された構造は、特に、複数の記録がキーによって順序付けられた図1 のメモリ構造1に格納されるとき、ソート動作をスピードアップするために、特 に、有用である。
如何なる順序付は動作の基本部分としても、メモリ構造において任意のメモリ領 域に空きを作り、新しい記録を挿入したり、逆に記録を削除したりできるように することが必要である。一般に、図1のメモリ構造は、新しい記録のために空き を作るに必要なシャフル動作が、その実行速度については、各サブ構造における メモリ領域の数にのみ依存し、全メモリ構造の全メモリ領域の数には依存しない ような性質を有している。したがって、多数のメモリ領域を含む非常に大きなメ モリ構造も、全メモリ構造を構成する複数のサブ構造の何れか1つのみの中のメ モリ領域の数のみを含むメモリ構造と同じ速さでシャフルすることができる。こ の特徴は、以下に説明される本発明のさらに好適な実施例において利用される。
2、ユZ12」・アドレ1ユ1゛ル・メモIの活性化されたメモリの1ピースを 形成するために複数のメモリセルとサーチ(探索)論理を結合する他のハードウ ェアCAMとは異なり、以下に述べるコンテント・アドレッサブル・メモリの内 容の例においては、上記の論理をメモリから離しており、メモリを製造し易くし 、更に、論理回路の設計により多くの柔軟性を許容している。本実施例のコンテ ント・アドレッサブル・メモリは、以下では、ブツシュ−プル・コンテント・ア ドレッサブル・メモリ(PPCAM)と称する。
上記のPPCAMの1つの特徴は、高速サーチのためのデータ構造を維持する並 列処理技術の使用であり、これにより、サーチのために要求されるハードウェア を顕著に少なくしている。
PPCAMは、例えば、メイン、メモリからキャッシュへ、あるいは、キャッシ ュからレジスタへというようにメモリ機構を通してデータを移動させるのではな く、データを直接メモリ内で操作する。この非レジスタ構成は、メモリの速度を CP tJの速度に近づけて、直接のメモリ操作による欠点を少なくした近年の メモリ技術の発達のみによって実現できるものである。
ソフトウェアのコストが増加し、ハードウェアのコストが減少するに・つれ、P PCAMのような解決策に基づくハードウェアがより魅力的になってくる。例え ば、最近のVLS 1技術の発達は、以前より非常に安価にPPCAMを装備す ることを可能にし7ている。
2、 1 −フニじ(を−2ニーゴーzp:z企6テヱトユード二Jイニ乙コL −ジノ1−二一)(−1−−ffAI PPCAMは簡単な逐次的な操作に基づいており、−見、非常に非効率的に見え る。並列処理技術の使用は、このような従来の問題点を克服した。
多くの他のハードウェアCAMとは異なり、PPCAMは1、′、のPPCAM は、ソートされたリストに基づき、す・−チのバー ドウエアに加えて、ソート された順序にデータを維持するための専用のバー ドウエ/を使用してビットあ たり非常に低いロジック比で、上記のパーフォーマンスを達成する。
2.2 PPCAMアーキーLLL 上記のPPCAMが多(の高いレベルの動作をサポートするのに対して、基本と なる操作は、lN5ERT、FIND。
および、DELETEのみである。FIND操作のためには、PPCAMは1. サーチアルゴリズム(例えば、バイナリ・サーチ)を実行して、要求される1つ または複数の記録(図1)の位置を示す。
lN5ERTのためには、PPCAMは、FIND操作を使用して記録を挿入す るだめのアドレスを探索する。それから、そのアドレスに続く全ての記録を下に 押し下げ、新しい記録を挿入する空きを作る(図3)。
同様に、DELETEのためには、PPCAMは、捨てられるべき記録を、その 1つ下の記録によって上書きし、それに続く全ての記録を引き上げる(図4)。
FIND操作においては、全てのデータを走査する多くの他のPPCA、Mとは 異なり、本発明のPPCAMは、データの小さい部分のみを走査する。これによ り、本発明のPPCAMは、他の全てのPPCAMの中で最も高速のサーチ時間 を達成する。最近のハードウェアCAMは、1秒あたり約1000 Mbits のサーチ速度を有し、12MH2のPC/ATタイプのパーソナルコンピュータ 上のソフトウェアCAMは、1秒あたり約5Mbitsのサーチ速度を有する( Cosputerworld Au5tra1.ia+ 25 August  1989)。上記のパーソナルコンピュータと同じタイプのRAMを使用する1 6ビツトワードサイズのPPCAMは、1秒あたり100 Gbitsを超える サーチ速度、すなわち、現在入手可能なハードウェアCA Mより1゜000倍 高速であり、ソフトウェアのツリーによる解法よりも20.000倍高速である 。
上記の例におけるような超高速のサーチ速度は、データが’、) −トされる順 序にあl;ねばならないという代償によ、って達成され、6もノテある。[N5 ERTおよびDELETE動作における複数のデ〜り・ア・イテムの押し込み、 および、引きト;1゛は、典型的には非効率的である7上記のI N S E  R1’およびD E 1.、、 F’、 T E動作は、PPCAM巾のデータ の順序をソ・トされる順序に維持するために使用される1、本発明におりる並列 処理は、? P (:、 A Mにお□ける、これらの処理速度を上げるためq 使用されろ。
本質的に、本発明のPPCAMは、ソ・−ト処理を容易にする方法を提(1−7 て ゛これにより、コンビ、j−一夕におけるコン・’i’)′l・・ブ゛ドレ ッナ7′ル・、メモリの装備を容易にする方法を提供′1)゛るご゛と嵯ある。
この構成は、サーチ・エンジンSE。
オペレーション・:1ントロ・−5001人出力インターフェイス!ON、およ び、ブッシブ、−プル・メモリPPM(図5)からなる。
P PCA、 Mの」−記の4つの構成窒素は、物理的というよりはit的なも のである。各々は、その応用および性能の要求に応じて゛ノン1ウエアあるいは バー・F′ウェアによ、って実現される。以下に1−記の4−1)の(概念的な )構成要素に付いて説明する。
2.1.2 左jレーション・コン ローーOC上記のオペレーション・コント ローラOCは、PPCAMの他のモジュールを制御して、内部バスの競合を防止 する。
ホストコンピュータからの要求を続出し、PPCAMの状態をチェックし、要求 された動作を実行するために、PPCAM内の他のモジュールを活性化する。
もし、PPCAMの動作を簡単にするために、要求される動作が、基本のlN5 ERT、DELETE、および、FINDの動作のみであっ了、したがって、殆 どの他のコ・プロセッサにおいて発生する命令をフェッチすること、格納するこ と、デコードすること、および、実行することを避けることができるならば、オ ペレーション・コントローラOCは、2.3の簡単な論理チップによって実現で きる。
しかしながら、オペレーション・コントローラOCはまた、より高度の機能を従 供するために、ホスI・コンピュータまたはPPCAMの動作専用のマイクロコ ンピュータ上で実行スるソフトウェアによっても実現できる。
2゜1. 3 入日カニフタ二フ互イl土q土入出ノjインターフェイス1ON は、主に、PPCAMのワードサイズとホストコンピュータのワードサイズとの 間の変換を行うために使用される。PPCAMのワードサイズとホストコンビ二 一夕のワードサイズとが同じ場合には、PPCAMは、単に、直接にホストコン ピュータのアドレス空間にマツピングできるので、入出力インターフェ・イスI OIは通常要求されない。
人出力インターフエイスIOIの他の機能は、ホストコンピュータへのバスと主 記憶装置へのバスとの分離された複数のデータバスとが設けられる高性能システ ムにおいて存在する。この場合、入出力インターフェイスIOIは、自身のスト レージ・インターフェイスを有して、ホスト・データバス上のPPCAMの負荷 を減少させる。ホストコンピュータと主記憶装置とはPPCAMの異なる部分に 同時にアクセスできる。
PPCAMのデータ構造は、ソートされ、線状である。また、直接CPUからア クセスできるう現存するコンピュータシステムへの継ぎ目無のインターフェイス は、メモリ・マツピングおよびファンクション・コールの使用を通して可能であ る。プログラミングにおける手順上の豊富な技術によって、PPCAMへのイン ターフェイスは、より容易になった。PPCAMの動作は、サーチおよびソート ・ファンクション・コールを直接、置き換えるものである。
その実際の機能に依存して、上記の人出力インターフエイスIOIは、CPUま たはDMAコントローラへのインターフェイスを提供するためには、数個の論理 ゲートから数ラインのコーグまで変化し得る。
2.1.4 サーチ・エンジンSE サーチ・エンジンSEは、ルック・アップ動作を行うために使用される。これは 、比較器によって制御されるアドレス演算器を有する。この比較器は、試験され るデータの大きさがターゲットデータより大きいか、等しいか、あるいは、小さ いかを示す(実際のアルゴリズムに依存して3ウエイの代わりに2ウエイの比較 器が使用され得る)。
上記のアドレス演算器は、一般的な状況においては、バイナリ・サーチの技術を 使用してもよいが、もし、データの分布が知られているならば、その時は、より 早く結果を得るために、例えば、最初の2.3のサーチにおいて、より低いレン ジへのバイアスを幾らか与えるために、2の代わりに3によって除算する等、異 なるサーチ技術を用いてもよい。
バイナリ・サーチ技術のためには、上記のサーチ・エンジンSEは、複数の加算 器、複数のシフタ、および、複数の比較器のような簡単な論理部品を使用して構 成され得る。もし、例えば、フィポナッチ(Fibonacci) ・サーチ( Fengt T、 ”Parallel Processing”、 Spri nger Verlag 1975参照)のような高度の性能が要求されるなら ば、より洗練された並列パイプラインサーチプロセッサが使用され得る。
サーチ・エンジンSHにマスキング・レジスタを組み入れることもできる。その 時は、1つのワード内の特定の複数のサブフィ・−ルド上でソートおよびサーチ を行うこおが可能である。複数のビットをマスキング・レジスタにセットするこ とにより、比較器は、データの異なる部分で要求されるように動作し得る。これ は、例えば、同じセットのデータにおいて代わりのサーチキーが必要であるよう な場合において有用である。
要求される性能に応じて、上記のサーチ・エンジンSEは、ホストコンピュータ 上で実行されるソフトウェアであっても、専用のマイクロプロセッサであっても 、または、カスタムハードウェアであってもよい。マイクロプロセッサを使用す る場合は、複数のPPMワードを比較のためにマイクロプロセッサのレジスタに 移動させるオーバーヘッドを避けるために外部の比較器が要求される。その時は 、64ビツト幅のPPMを効率的にサーチするためには、比較器の幅が64ビツ トである限りは8ビツトのプロセッサが使用され得る。
2.1.5 1・・シュープル・メモIPP Mブツシヱーフ゛ル・メモリPP Mの目的は、ブツシュ−プル技術によってホストコンピュータとは独立に、メモ リデータをソートされる順序に維持することにある。各ブツシュ−プルは、デー タをメモリ領域の上または下にシフトさせる1連の動作からなる。ブツシュ(押 し)またはプル(引き)は、INSERTまたはDELETEの動作が存在する か否かによって行われる。
上記のブツシュ−プル動作を達成するためには2つの方法がある。このブツシュ −プル動作は、アドレスデコーダ回路(図6)の後でメモリセル上で直接実行す る(バ・ツク・ブツシューブル, Back Push−Pull)か、デコー ダ回路(図7)を使用してブツシュ−プル動作を行う(フロント・ブツシュ−プ ル、 Front Push−Pull)こともできる。
バック・ブツシュ−プルは、CCDやシフトレジスタ等を使用するV L S  Iの装備のためにはより適している。他方、フロント・ブツシュ−プルは、容易 に入手可能な複数のRAMチップを使用する場合に適しており、スタンダードな マクロ・セルを使用するV L S Iにも適用できる。本出願では、フロント ・ブツシュ−プルのタイプのブツシュ−プル・メモリPPMに集中して説明する が、本発明は、フロント・ブツシュ−プルのタイプに限定されるものではない。
ブツシュ−プル・メモリPPMのワードサイズは、主に、アプリケーションに依 存する。専用に使用する場合には、ブツシュ−プル・メモリPPMは、操作され るデータ・アイテムと同じワードサイズを有するであろう。多くの一般的なアプ リケーションにおいては、ワ・−ドサイズは、通常、ホストコンピュータのワー ドサイズと同じである。
高性能のシステムにおいては、ブツシュ−プル・メモリPPMのワードサイズは 、ホストコンピュータのワードサイズの倍数である。例えば、もし、ホストコン ピュータが32ビツトのワードサイズであるときは、ブツシュ−プル・メモリP PMは、64ビツトまたは128ビツトのワードサイズである。これにより、ブ ツシュ−プルおよびサーチ動作が速くなる。CPUとは異なり、関連する論理回 路の増加が少ないので、ワードサイズの増加はコスト増にはならない.また、I Cパッケージ技術における最近の発達(例えば、サーフェス・マウント部品のビ ンサイズの減少)は、要求されるピンの数が増加するにつれて幅の広いメモリワ ードを、より実現可能なものとした。
2、 1.5A 工LZと≦Uヒ」! ロール・ビ・・PPCAMの機能性は、 PPMコードの最後に2.3のコントロールビットを付加することにより改善さ れる0例えば、ブツシュ−プル動作は、順序正しく割り込みをかけられ、曖昧な アドレッシングも可能であろう。
FIND動作は非常に高速であるが、過去の複数のlN5ERTおよびDELE TE動作によって始められた複数のブツシュ−プルによって遅らせられ得る。こ の問題を解決する1つの方法は、ブツシュ−プルの割り込みを許容することであ る。ブツシュ−プルの性質は、ブツシュ−プルが進行中にFINDアクセスを行 うことを許容する。これは、これらのブツシュ−プルの間に前記リストが順序通 りに保持されているからである。
上記のブツシュ−プル動作の間、複数の複写された記録が定常的に生成され、且 つ、廃棄される。ブツシュ−プル動作に割り込むときには、矛盾の無い方法で、 データを維持しなければならない。これは、各ワードの最後に2,3のコントロ ールビットを負荷することによりなされる。この概念、所謂、ブツシュ−プルコ ントロールビットは、複数のワードを望ましいように同定して再度整列させるた めに用いられる。
例えば、各記録の最後に削除ビットがあり、このビットは通常Oにセットされ、 記録が削除されるときに1にセットされると仮定する。もし、より「低い」アド レスの(物理アドレスの大きい)削除ビットを1にセットし、そのとき、その値 が、その「上」のものより大きいならば、2つの複写されたビットが互いに相手 の次にあるであろう、そのとき、FIND動作は正しく行われ得るであろう。こ のFIND動作が終了した後は、ブツシュ−プル動作を続けることができる。
ブツシュ−プルコントロールビットの概念は、また、他の状況においても有用で ある。マルチプル・フエイヴアラプル・リスポンス(Multiple Fav orable Re5ponse) (曖昧なアドレッシング)を分解するため には、複数の記録の最後に追加ビットを付加し、lにセットされたときには、そ れらが唯一ではないことを示す、これは、同じ内容を有する複数の記録を扱うと きには有用である。
2、 1.58 PPM −−サイズ PPMのワードサイズは、主として、そのアプリケーションに依存する。あるア プリケーションに専用に使用されるときには、PPMは、操作されるデータ・ア イテム(記録)のサイズと同じであろう、一般には、ワードサイズは通常、ホス トコンピュータのワードサイズと同じである。
高性能のシステムにおいては、ブツシュ−プル・メモリPPMのワードサイズは 、ホストコンピュータのワードサイズの倍数であろう。例えば、もし、ホストコ ンピュータが32ビツトのワードサイズであるときは、ブツシュ−プル・メモリ PPMは、64ビツトまたは128ビツトのワードサイズである。これにより、 ブツシュ−プルおよびサーチ動作が速くなる。CPUとは異なり、関連する論理 回路の増加が少ないので、ワードサイズの増加はコスト増にはならない。また、 ICパンケージ技術における最近の発達(例えば、サーフェス・マウント部品の ビンサイズの減少)は、要求されるピンの数が増加するにつれて幅の広いメモリ ワードを、より実現可能なものとした。
PPCAMは異なるサイズの複数のデータ・アイテムを非常に容易に操作するこ とができる。ハードウェアの設計においても使用においても容易である。
PPCAMの複数のメモリモジュールは、共に水平状にカスケード接続されるの で、複雑さが増加することはない。これにより、ハードウェア設計者は、PPM のワードサイズを、特定の用途に併せて自由に作ることができる。
使用段階において、上記の複数のデータ・アイテムは、PPMワードの全体また は一部分を占める。マスキングビットを使用することにより、2.3のデータ・ アイテムが1つのPPMワードによって操作できる。もし、これらのデータ。
アイテムがあまりに大きいときには、これらは、2.3のPPMワードにわたる ことができる。サーチの間複数のアドレスを計算するときには、単に、1つのア ドレスにオフセットを置き、一度に1ワードを処理する。
2.1.61!ブ・・シュープル PPCAMが他の複数の技術と異なるのは、従来のRAMにおいてデータの操作 の並列処理の使用である。こうして、高速であるだけでなく、低コストで、高い 集積性を有する。
メモリを複数の分離されたバンクに分けることによりブツシュ−プルの速度を増 加させるには2つの方法がある。目的は、付加的な複数のバッファおよびデータ バスを提供することにより同時に2,3の記録を移動させることである。
並列ブツシュ−プル動作によってバンクの数が多くなればなるほど、ブツシュ− プル動作が高速になる。この速度増加は線型である。十分なメモリバンクを有す る限り、いかなる料のデータをブツシュ−プルするに要する全時間も、1つのメ モリバンクにおいてデータをブツシュ−プルする時間に等しい。ブツシュ−プル 時間は、一定であってデータの量に対して独立である。
セグメント・ブツシュ−プルと称する第1の方法によれば、複数のメモリワード の全セグメントは、1つのゴー命令によって下に移動される(図8)。図8では 3つのワードが下にダウンされるが、幾つのワードのブツシュ−プル距離も可能 である。このような操作を容易にするために、連続的なソートされた複数のデー タ・アイテムが、分離された複数のバンクに格納され得る(図8)。
複数のメモリワードがインタリーブされるので、各ブツシュ−プルに対して、複 数のワードがバンク間を転送されることが必要かもしれない。これらのバンクは 、1つのバンクから他のバンクへ転送されるワードを格納するために、それぞれ 自身のバッファを有する。これらのバッファは、トランスファーバッファと称さ れる。
スプリット・ブツシュ−プルと称される第2の方法においては、一定間隔で配置 された複数のワードが全て一度に移動される(図10)、前の方法とは異なり、 これらのワードは、ブツシュ−プル動作の最後に少エバンク間を転送される。こ こでは、連続的な、ソートされた複数のデータ・アイテムは、バンクが一杯にな るまで、同じバンクに格納される(図11)。
スプリット・ブツシュ−プルとセグメント・ブツシュ−プルとの間の1つの主な 違いは、データ・アイテムが移動して、複数のメモリバンクに格納される方法に ある。スプリット・ブツシュ−プルにおいては、データを複数のデータバンクを 物理的に横切って移動させるのに対して、セグメント・ブツシュ−プルにおいて は、データを物理的に複数のデータバンク分アップおよびダウンさせて移動させ る。スプリット・ブツシュ−プルにおけるデータは、複数のバンクを横切ってソ ートされた順序で格納されるのに対して、スプリット・ブツシュ−プルにおいて は、ソートされたデータが複数のバンクに落として格納される。
どちらのブツシュ−プルも並列処理の他の形態よりも効率的である。データが単 に動かされるだけなので、多重アクセスやデータの集積性による性能の低下はな い。また、PPMの秩序立った構造によってVLS I化も非常に容易である。
2、]、、7 大工11クユープル 並列ブツシュープル方法によれば、各ブツシュ−プルは、複数のPPMワードの 各々を1ポジシヨン移動させるだけであるので、各データ・アイテムが2.3の PPMワードにわたるときには性能上の問題がある。
各lN5ERTおよびDELETEについて、全てのアイテムを移動させるため には、1つのデータ・アイテム内のワードの数と同じブツシュ−プル動作が必要 である。もし、アイテムが5ワードのサイズであるときは、lN5ERTまたは DELETEを実行するためには、lワードのサイズのデータ・アイテムの5倍 かかる。これは、ブ・ンシューブルにおいては、唯1つのワードのみが、複数の メモリバンクを横切って転送され得るので、5ワードサイズのアイテムには5つ のプツシエーブル動作が必要であるからである。
もし、トランスファーバッファのサイズが、少な(ともデータ・アイテムのサイ ズまで増加されるならば、1つのデータ・アイテム全体が、1回のブツシュ−プ ル動作によって複数のバンクを横切ってブツシュ−プルされ得る。こうして、l N5ERTおよびDELETEの時間は、(データ・アイテムがメモリバンクの サイズより小さい限りは、)データ・アイテムのサイズに独立になる。
この概念は、大型ブツシュ−プルと名付けられる。移動されるべきデータの全合 計サイズがバンクのサイズより大きく無い限りは、1つのブツシュ−プル動作に よって異なるサイズの複数のデータが移動され得る。大型ブツシュ−プルにおい ては、各ブツシュ−プルが1ワードのみデータを移動させることに制限されない ので、ブツシュ−プル動作のブツシュ−プル距離を効果的に増加される。
大型ブツシュ−プルは、装置次第で、より多くのデータをブツシュ−プルするこ とができるが、多くの場合、次のバンクより向こうヘプッシューブルすることは できない。大型ブツシュ−プルにおいては、要求されるメモリの量がやや増加す る。メモリが安価であり、大きなデータ・アイテムのブツシュ−プルの速度がN !のオーダーからNのオーダーに改善されるので、上記のメモリ量の増加は許容 されるものである。
並列のブツシュ−プル方式によってブツシュ−プルの速度は、比例的に改善され るが、lN5ERTまたはDELETEがある毎に多くの記録を移動させるのは 、依然、非効率的である。速度を増加させる1つの方法は、各バンクにおけるワ ードの数を減少させることである。限られた場合においては、各バンクはlワー ドのみを含み、こうして、全てのワードが唯1回のメモリアクセスによって移動 される。
多くの場合には、上記のような高速ブツシュ−プルは必要ではflJ、s。多く のアプリケーシゴンにおいては、ホストコンピュータは、CAMにアクセスする 前および後に行うべきことがあり、例えば、インデックスをアクセスした前およ び後で、ディスクからファイルを探すこと、または、ステーションのステータス を修正した後で、ネットワークに情報を送ること等である。こうして、入力デー タがバッファされるならば、ブツシュ−プル動作は、ホストコンピュータの他の 動作と重複して行うことができる。これにより、ホストコンピュータが何か他の 仕事をしている間に、PPCAMも有用な仕事をすることができるので、並列処 理のもう1つの形態と言える。オフラインデータの構成時間は、オンラインサー チ時間のための梃子として使用される。
PPCAMのlN5ERTまたはDELETEコマンドは、サーチ段階とブツシ ュ−プル段階との2つの段階によって実行される。FIND動作を使用する第1 の段階(サーチ段階)は、非常に高速である。第1の段階(サーチ段階)によっ て、ブツシュ−プルを実行する開始位置が見つけられ、CPUが同じデータを挿 入したり、存在しないデータを削除したりしないことを確認する。
それから、制御はCPUに戻り、CPUが自身の処理を実行すると同時に、第2 の段階(ブツシュ−プル段階)が行われる。CPUのlN5ERTまたはDEL ETEコマンドは、FIND動作と同じぐらいの高速で行われる。
並列ブツシュ−プル技術によれば、(複数の挿入と削除とが常にPPMバンクの 先頭にあるような)最悪のシナリオにおいても、(ランダムアクセスパターンの )平均的な場合と同じである。全ブツシュ−プル時間は、常に、唯1つのバンク をブツシュ−・プルするに必要な時間と同じある。
あるアプリケーションにおいては、挿入と削除とは、常に、リストの最後に実行 される。例えば、インボイス番号、日付等である。更に、多(の場合、読み出し および変更の動作は、挿入および削除の動作の数より迩に多い、PPCAMの高 速FINDと転送lN5ERTおよびDELETEの性質は、これらのアプリケ ーションに完全に合致する。
2.1.9 可m星進歩 1方向に押し下げたり、引き上げたりするかわりに、より少ない数のブツシュ− プル動作が必要な方向を選択しつつ、両方向に行わせることもできる。これによ り、1または2のバンクメモリが使用されるときには、ブツシュ−プル時間を減 少させることができる。もし、2つを越えるバンクが並列ブツシュ−プルを実行 するように共にカスケード接続されているときには、ブツシュ−プル時間は、常 に、1つの一杯のバンクをブツシュ−プルするに必要な時間に等しい。2つを越 えるバンクがあるときには、付加的な論理回路が必要になるので、この性質は利 用する価値がない。
全てのバンクが互いに分離されるので、す・−チ・エンジンSEを各バンクに付 加して、複数のサーチが平行して行い得るようにしたい。このことは、多くの場 合、要求されない。
なぜならば1、付加的なハードウェアのために、速度の増加は、logNのオー ダーに過ぎないからである。
もし、PPCAMがマイクロプロセッサによって実現されるならば、より高いレ ベルの機能が容易に追加され得る。例えば、入出力インターフェイス101に幾 つかのトリックを施すことにより、仮想記憶の機能を付加することが可能である 。PPCAMは、部分的にディスク上に格納されたBツリー (B−tree) のトップレベルを実行するために使用される。この方法で、CAMは、ギガバイ トのサイズまで拡大される。
2、i、io l11没夏皿■ PPCAMを実現するためには、VLS IからビデオRAMまで多くの異なる 方法がある。PPCAMのような新しい概念は、それを効率的に実現するために は新しい装置設計を必要とする。スプリット・ブツシュ−プルPPCAMの実現 手段のサンプルについて次の項目で説明される。これは、最適のものではないが 、PPCAMの主な特徴を示す1つのプロトタイプとはなる。
図11を参照する、第1のハードウェアプロトタイプの説明は、図9および10 のスプリットブツシュ−プルのアプローチを実現するものである。
オヘレーション・コントローラOC1サーチ・エンシフ381人出力インターフ ェイスIOI、および、PPMの制御部分は、全て、1チツプのマイクロコンピ ュータおよびサポート論理回路によって実現される(図11)。
サポート論理回路は、サーチ・エンジンSEのための外部比較器を提供し、ホス トコンビエータ、マイクロコンピュータ、および、複数のメモリバンクの間の複 数のアドレスおよびデータバスを切り換える。上記のプロトタイプにおいては、 奇および偶のアドレスバスを駆動するために複数の高速カウンタが使用される。
ここで、データバスは、各バンクを分ける複数のスイッチを有して1つのデータ バス上に実現される。2セツトのスイッチがあり、多筒2のスイッチは、同じセ ットに属する。これらのスイッチをオンオフすることにより、特定の複数のバン クを、それらの隣に、あるいは、マイクロコンピュータに接続したり、分離した りすることができる。高性能システムにおいては、望ましくない伝播遅延を防止 するために上記のスイッチをバイパスして、マイクロコンピュータが複数のメモ リバンクに直接アクセスできるように第2のデータバスが要求されるかもしれな い。
各PPMメモリは、共通のデータバスによって接続された2つの等しいサイズの RA M eM域を含む。1つの領域は、偶アドレスデータに使用され、他方は 奇アドレスデータを格納するために使用される。上記の論理回路は、コンピュー タと複数のRAMバンクとの間で、ホストコンピュータおよびサーチ・エンジン SEからみたときに、上記の2つの領域が、恰も1つの連続するメモリ部分であ るかのように見えるように制御する。実際、これらの領域はインタリーブされる 。このことは、単に、正しい領域を選択し、残りのビットを選択された領域に渡 すために入力アドレスの最下位ビット(LSB)を使用することにより達成され る。
このプロトタイプにおいては、各RA M eTJ域の1部分は、M’pM域が 属する前記メモリバンクのトランスファーバッファのために保持される。トラン スファーバッファは、ブツシュ−プル動作の間、一時的なデータを保持するため に使用される。
他に、複数のRA M 9M域の間に空きを取り上げるのではな(、複数のバン クの間の複数のスイッチの中に上記のトランスファーバッファを組み込むという 方法もある。
マイクロコンピュータは、適当な複数の信号を複数のメモリバンクに送ることに よりブツシュ−プル動作を行う。
例えば、次のテーブルは、各々4つの記録を有する複数のメモリ領域を含む(バ ンクは8つの記録を格納できる)場合の押しく下げ)動作において要求される複 数の信号を示すものである。
ス±11 N皿型ユA立L 奇11AJ」、エアドレス R/W アドレス R /W 1 下げ W 11 R 211R11W 3 11 W 10 R 410R10W 5 10 W 01 R 60i R01W 7 0X W 00 R 800R00W 9 00 W 上げ R テーブル1 サンプル信号テーブル 上記のアドレスは(00から11の)バイナリであり、アドレス「下げ」は、こ のメモリバンクのトランスファーバッファのアドレスを示し、アドレス「上げ」 は、このメモリバンクの上のメモリバンクのトランスファーバッファのアドレス を示す。
ブツシュ−プル動作は、通常、次の複数の状態を通して動作する: 1、複数のメモリバンクは、初めに、全てのスイッチをオフにすることにより互 いに分離される。
2、このテーブルに上げられていると同様、信号は、その時、同時に、全てのメ モリバンクに印加され、こうして、(奇および偶の)2つのメモリ領域間の各バ ンクの中でのデータ転送を容易にする。
3、それから、1セツトのスイッチ(多筒2のスイッチ)はオンにされ、バンク の対の間の通信を許容する。1つのバンクのトランスファーバッファからのデー タは、それから、他のバンクの格納領域に書き込まれる。
4゜それから、上記のセットのスイッチはオフされ、他のセットのスイッチがオ ンされる。これにより、上記の複数のバンクは、それらのバンクに隣接する他の バンクに接続され得る。
5、それから、データは1つのバンクのトランスファーバッファから他のバンク のトランスファーバッファへと複写される。
上記の技術は、オーバーラツプスイッチングと称される。
これにより、バンク内のデータ転送の時間は(バンクの数に独立に)一定にする ことができる。
複数のRA M jJ域の代わりに、上記の複数のスイッチにトランスファーバ ッファを置くことにより、上記の段階3〜5は、トランスファーバッファからの データを次のバンクのデ二叉ILに複写する、という1つの段階に置き換えられ る。
この特別な設計は、低価格のRAMと進歩した1チツプマイクロコンピユータに 依るものである。これらの部品の価格/性能比は、過去2.3年の間に大いに向 上した。例えば、クロック速度の高い、大きな内部RAMおよび多くの周辺ボー トを有する1チツプマイクロコンピユータは、現在オーストラリアドルで$13 である。
このプロトタイプの全体の目的は、相対的に複雑で、より頻繁でない動作はソフ トウェアで、そして、繰り返し行われる単純な動作はハードウェアで動かすこと にある。これにより、ソフトウェアを変更することによりPPCAMの特徴を調 整することによって非常に融通のきく、用途の多いPPCAMを作ることができ る。
特別なハードウェアが必要なわけではないので、全体のコストは低い、全ての部 品は、市販の規格品で間に合う。バス1造は単純であって、このPPCAMは、 既存のチー・−キテクチャを用いてメモリー ピングを通17で構成できる。
ごのブolタイプそれぞれ自身は、既存のハードウェアおよびソフトウェアのC AMに対して十分優るものである。その動作は、依然ある程度ソフトウェアに依 存するが、このPPCAMの実際の能力は、その簡素な構成からくるものであ杓 11、Lの純粋なハードウェアを非常にコスト効率の艮いもの?・ニし”でいる 。大量生産においては、jチップ゛1/ビーL・−タ、衿5よび、そのソフトウ ェアは、カスタムまたは市販のICを用いマ′ハードウェアに置き換えることが できる。これにより−5F″P CA Mのコストは、更に、低下される。
2、 2. 1 −2−1区2も−“−グμり・ご運1−5ん舌ニーブーμ(q υ各へ、1〕1且y−上記のブッシヱープル段階は1、PPMの複数の部分に適 用されるのみである。lN5ERTおよびDELETEがソートされたリストの 真ん中で実行されるときには挿入または削除の点の「上」のデータのためのブツ シュ−プルのディスエーブルが必要である。
挿入または削除が要求されるアドレスは、アップデート(Upda te)・ア ドレスと名付けられる。並列ブツシュ−プルの間1.3つのタイプのメモリバン クが現れる:タイプ1:アツグデートアドレヌを含むバンク(挿入および削除が 発斗しつつある)、そ・のバンクのデー・夕の部分がブ・シシュープルされるこ とが要求される。
タイプ2;タイプ」のバンクの1\ヒ−Iの(夕・イブ1のバンクよりアドレス が小さい)複数のバンク。データのブツシュ−プルは要求されない。
タイフ゛3ニタイフ“1のバンクの1−下)の(タイプ゛1のバンクより゛、? ドレスが大きい)複数のバンク。全てのバンクのデー・夕の完全なプッジプ、− 7°ルが要求される。
タイプ3のバ〉′〃に1ついては、5そのバンクの全てのデータの完全なブパン ユープルを実行するために、上の信号チー・ブリ・に与えられ5たものと同様の 複数の信号を、単に4.これらのバンクに印加する。
ブツシュ−プルアドレスは、2重のアドレスバス上に現れるので、ア・:/ブデ ート・アドレスの最初の2,3のビットを使用して夕・イブ2のバンクをディス エーブルにするために簡単なアコーダまたはROMが使用され得る。
タイプ1のノ幻/りについ°Cは、プッシューーブルの開始時に、(押し下げの ために)イネーブルにされるか、または、(引き上げのために)ディスエーブル にされる。ブツシュ−プルがアップデート・アドレスに到達したときには、バン クは、それぞれ、(押し下げについては)ディスエーブルにされ、または、(引 き上げについては)イネーブルにされる。このことにより、ブツシュ−プル動作 においては、バンクの関係する部分のみが変化される。
タイプ1のバンク内で、データの部分的なブツシュ−プルを容易にするために、 バンクを何時ディスエーブルにし、または、イネーブルにするかを追跡するため にカウンタが使用され得る。
スプリット・ブツシュ−プルのためのプロトタイプを以下に説明する。セグメン トブツシュ−プルのためには、はとんどの場合、各ブツシュ−プルに伴って、デ ータがバンクを横切って移動するので、最後のバンクと最初のバンクとの間の接 続が必要である。
先の(図12)回路を使用して、単に、データバスを底部から最上部・\戻すよ うにループさせ、2つのバンクの間にスイッチを設ける。概念的には、その中を データが転送される複数のバンクの環状リングのようである。
もし、複数のトランスファーバッファが複数のスイッチの中に組み込まれるなら ば、全ての転送は並列に行われるので、バンク内転送は非常に高速に行われる。
この場合も、オーバーラツプスイッチングが使用され得る。
転送速度はやや遅いが、スイッチ内に複数のバッファを組み込む必要はない。
PPCAMの性質が、lN5ERTまたはDELETE動作毎に殆どのRAMが アクセスされるように強制するので、PPMにおけるダイナミックRAMの使用 は、問題ではない。
上記の挿入および削除の「上」の複数のメモリバンクは、同時にリフレッシュさ れ得、このとき、この動作の下のRAMは、押されるか、または、引かれる。全 てのバンクは、同じ複数のアドレス線を使用するので、これらのバンクの書き込 みをディスエーブルにするのみでよい。
FIND動作のみが存在するときは、全てのRAMは、明確にリフレッシュされ るべきである。全てのバンクは分離され、同じアドレス線を共有するので、リフ レッシュ手順も並列に行われるためである。
現在のダイナミックRAMは、ワードの深さにおいて、より大きくなりつつある が、ワードサイズについては、そうではない。他方、PPCAMは、高速動作の ためには、幅広いワードと小さいRAMの深さを要求する(何故ならば、ワード サイズが大きければ、1回のブシシュープル動作でより多くのデータが移動し得 、また、RAMの深さが浅ければ、バンクあたりのブツシュ−プルされるべきデ ータが少ないからである)。1つの解は、マルチプル・アドレス・レンジ(Mu  1tiple Address Range、 M^R)の使用である。マル チプル・アドレス・レンジでは、1つのRAMチップの中で(またはバンクの中 で)異なる複数のアプリケーションに対して異なる複数のアドレスのレンジを割 当てるものである(図13)。
これは、恰も、大きな物理的なメモリバンク各々の中に小さい論理的メモリバン クが多数設けられたようなものである。
小さいメモリバンクの各々は、異なるアプリケーションに使用される。メモリバ ンクまたはチップ全体を使用し切るよりは、各アプリケーションは、そのバンク の中で固定されたアドレスレンジを使用する。1つのバンクにおいて、アドレス レンジが使い切られたときには、次のバンクの同じアドレスレベルが使用される 。
異なる複数のアプリケーションが同じRAMチップ(またはバンク)を共有する ことを許容することは、メモリ空間を節約するのみではな(、異なるアプリケー ションに対するこれら複数のメモリバンクの深さのダイナミックな調整をも許容 する。
PPMの速度は、これらのメモリバンクの深さに逆比例するので、個々のアプリ ケーションについてPPCAMの性能の調整を可能にする。図13においては、 アプリケーションr3」に使用されるアドレスレンジは、アプリケーション「b 」に使用されるアドレスレンジより小さい。したがって、アプリケーション「a 」はアプリケーション「b」よりも、良いメモリ性能を示す。
必要とされるのは、アプリケーションを同定する複数のアイデンティファイヤ( identifier)と、RAMにおける対応するアドレスレンジとをリスト アツブするテーブルのみである。
このテーブルは、同じRAM (またはバンク)内に格納され得る。マルチプル ・アドレス・レンジはまた、ソフトウェアを使用するPPCAMプロトタイプに おいても容易に実現できる。
マルチプル・アドレス・レンジのもう1つの特徴は、PPCAMが位置によって 同じようにアドレスされ得るために、もし、PPM内の全てのRAMを使い切る に十分なコンテント・アドレッサブル(content addressabl e)なデータがないときには、残りのRA M SI域は、通常のデータの格納 に使用できることである。PPMによってRAMが無駄に使用されることなく、 残りの部分はホストコンピュータが通常のメモリとして使用すればよいのである 。
2.5 韮剋グ旦二バ止軌作 あるアプリケーションにおいてはアプリケーションデータの異なる複数の部分が 同じオペレータによって操作されることが要求される。PPCAMは、(データ が各バンク内で正しく整列している限り)同時に多重のバンクに対してアクセス することを許容するので、多重の位置において同時に読み出されたり書き込まれ たりすることができる。これにより、複数のデータ・アイテムの高速の大量の( bu lk)処理を許容する。
同じデー・夕を異なる複数の位置に同時に格納することもできることに注意して ほしい。例えば、PPMにおける全てのワードが0にリセットされるべきであっ て、1000ワードがあるときは、もし、PPMに10バンクあるならば、これ らのバンクは同時にリセットされ得るので、100ワードリセツトする作業を同 時に行えばよい。
データはまた、高速に大量に走査され得る。この場合、例えば、複数のオーブン ・コレクタのドライバの使用によって多重信号が同じバス上に同時に出力され得 るようにバスが修正されねばならない。1つの応用は、PP、Mの記録内の2゜ 3のビットの「低」または「0」の値によってPPM内の記録を選択したい場合 である。もし、PPMに10バンクがあるならば、全ての10バンクが同時にア クセスされ得、バス上の特定のビットがモニタされる。走査されるビットが要求 される値に一致したとき、要求された記録は、アクセスされた10の記録の1つ の中にある。
複数のバンクに幾つかのANDおよびORの回路を付加し、複数のトランスファ ーバッファを使用することにより、複数のPPMワード上の複数の部分における 高いレベルの動作を実行することができる。PPCAMは、簡単なSIMD(単 一命令多重データ処理)マシン(machine)であり、(例えば、データ線 の走査等の)多くの異なるデータ動作を実行できる。
これにより、CPUからの更なる仕事に対しても負荷を軽くすることができる。
2.6 l11−じヨL=A生 PI)CAMの主な弱点は、そのFIND動作に比較して相対的に低速のlN5 ERTおよびDELETEである。複数のデータのアップデートが高速で発生す ると、PPCAMはブツシュ−プル動作を行う充分な時間がなくなる。以下の複 数の方法は、lN5ERTおよびDELETEの突然のバーストを処理するため に使用され得る。
lN5ERTのためには、始めにデータは特殊なバッファにおいてソートされ、 その後、複数の押しを実行することができる。あるアプリケ・−シロンにおい− では、データが入力されると、すぐに多くのFIND動作が行われる。このよう な場合においては、PPMおよびバッファがサーチされねばならない。バッファ を通しての逐次走査はFIND動作の性能を悪化させるであろう。
このトリックは、マルチプル・アドレス・レンジを使用し、人力されるデータに 対して第2のアドレスレンジを割り当てることである。しかしながら、そのアプ リケーションのだめの主なアドレスレンジとは異なり、第2のレンジは深さにお いて塵かに短い、例えば、100ワードの深さに対して16ワードである。ブツ シュ−プルされるべきデータは少ないが、第2のアドレスレンジおよび第1のア ドレスレンジとがサーチされねばならないため、データは遥かに早く受容され、 サーチのみがやや遅い。
もし、最初は毎回、より小さいレンジをサーチするならば、サーチは全く速く  (データはソートされる)、複数のアプリケーションがより最近のデータを使用 する傾向にあるので、より小さいレンジで正しいデータを探索する可能性がより 大きいので、FINDの応答は実際に改善されるかもしれない。
、:れは、同じPPMを使用するアプリケ−シロンデータのためのキャッジz  (cache)において起こることである。上記の、より小さいレンジとは、よ り大きいレンジをキャッシング(C;iel+ing)することである。
もし、PPCAM上のロードが減少するならば、データは0、恐らく、大型プツ シ1−プル1j作を使用して、より小さいレンジから、より大きいレンジへマー ジ(+serge)され得る。
N) E L E T E動作については、人力される要求はバッファされない 。FrND動作は、削除されるべきデータ・アイテムの位置を決定するために使 用する。それから、そのデータ・アイテムの中のデータ・インバリッド・ビット がセットさ・ニジるか9、または、1削除1されたコヘードが、そのデータ・ア ・1゛テJ、の中に書かれる。プル(引き)動作は、PPCAM(1)(i:事 の負荷が減少するまで遅らせられる。並列グローバル動作の特徴は、全ての「削 除された」デー・夕・アイテムについ−え”走査3゛るため、および、その後で 上記のプル動作を使用して実際にそれらを(永久的Gご)削除するために使用さ れ得る、2、7 潜在−的墓n1 PPCAMは、°マルチプル・アクセス・コントロールや頻繁に使用される複数 の対象の保守(例えば、yイスクドライバのトラックおよびセクタのリスト、ま たは、実時間オペレーティングシステムにおけるアクティブプロセスリスト)の ような特殊な応用において使用され得る。ここで、データ・アイテムのサイズは 固定され、アクセスの頻度は高い。
1つの例は、仮想記憶の翻訳である。PPCAMは、仮想記憶の処理ルーチンの 単純な書き替えに関して、現存するコンビエ・−タシステムにおいて使用され得 る。コンビエ・−タノ製造者は、(アプリケージ9ンとは独立に)マシンのメモ リシステムの速度を増加させるだけでなく、付加される機能を提供することがで きる。
PPCAMは、1“オペレーティングシステムJから大きな負荷を取り除き、C P Uがブ【ニド仕ツサおよび記憶のリスト・マネージメントを行う代わりにア プリケージ薔ンを実行する時間をより多く許容ず、心ごとかできる(例えば、H ,M、DeiLel。
’An 1ntroduction to Operating System s”、 Addfson Wesley。
1984#照)。これがどのよつに達成されるかに関する、より詳細な例は次に 説明する9 Jンビュータ産業1、Jl、通信、アプリ、う−一−シッン、データベース2. 二?、−ザ・インターフ、−イス等にA呟ける標準に向かって進んでいる。PP C,A、Mは1、異なるシステムの間のデータ変換および他のシステムのエミュ レーシヨンをより速くすることができる。
他の領域は、通信ネットワークである。PPCAMは、データ、および、ステ・ −シロンアドレスおよびステータスのようなネットワークパラメータのエンコー ディングおよびデコーディングのために使用され得る。更に、PPCAMの変換 およびエミュレーシジン能力は、ネットワーク・ゲートウェイ(network  gateway)またはコミニュケーシヨン・サーバ(Cosmunucat ton 5erver)における動作をスピード・アップするであろう。
より一般に、PPCAMは、例えば、データベース管理領域におけるような、異 なるアプリケーションへの「ハードウェア・アシスト(hardware as sist) Jを提供する。各PPCAMは1つのデータテーブルを格納し得、 データベースへの問い合わせは、より高速に行われる。F IND、MAX、M IN、NOT等の各動作は、通常のFIND動作と同じ時間で実行され得る。部 分的一致(partial watch) 、レンジテス) (range t est)における、ネクスト・レコード(next record)、ラスト・ レコード(last record) 、セレクト(select)、プロジェ クト(project) 、ジジイン(join)のタイプの動作および完全性 制御(integrit、y control)もまた容易に実現され得る。よ り複雑な動作が要求されるときは、PPCAMは、より複雑なデータ構造のため のビルディング・ブロック(buiIding block)として使用され得 る。
PPCAMの1つの付随する効果は、もし、順序正しくならべられていない記録 がPPCAMに入力され、再び逐次的に読み出されるならば、それらは、ソート された順序に並んでいるであろう。こうして、PPCAMは、ハードウェアソー タとしても使用され得る。
PPCAMは、メモリ・アドレス・マツピング等の典型的なCAMのアプリケー ションよりは、より高いレベルの役割の方に位置するものである。オペレーショ ン・コントローラOCおよびサーチ・エンジンSEに、より大きな能力が負荷さ れているので、PPCAMは完全機能データコプロセッサ(full func tion data coprocessor)として使用され得る。PPCA Mの高い柔軟性および基本的性質により、実際に全ての状況で、現在の技術より 大いに進歩した手段が提供される。
2.8i スフ・キ ・・シュ・コン ロー−PPCAMの1つの応用は、ディ スク・キャッシュ・コントローラの装備である。キャッシングおよびバッフ1リ ングは、主に、殆どのコンピュータにおけるオペレーティングシステムにおける 実行されている。多くの時間は、キャッシュを維持すること、および、ディスク ・アクセスのスケジユーリング・アルゴリズムの実現に費やされる。
この問題の解は、(多(の高性能システムにおいて使用されるアプローチである ように)分離されたプロセッサを使用することである。しかしながら、正しいタ イプのプロセッサを選択する際にディレンマがある。このことは、大きなデータ の固まり上で非常に基本的な動作を実行するために必要である。
複数のディスクユニットにおけるセクタの位置(セクタ・アドレス)は、通常、 ドライブ番号、ヘッド番号、トランク番号、および、セクタ番号を表現するため に、少なくとも4または5バイトが要求される。このようなサイズは、8または 16ビツトのプロセッサにとっては、作業の維持を非常に困難にする。かといっ て、32ビツトプロセツサを使用すると、その多くの機能が無駄になる。
PPCAMを使用することにより、非常に高速のディスク・キャッシュ・コント ローラを低価格で実現する。データが、より精密なレベルでキャッシュされ得る だけではなく、洗練されたディスクスケジューリングアルゴリズムがヘッド・シ ーク時間を最小にするために使用され得る。
キャッシュ内に現在存在するセクタを示すための記録のリストとして、PPCA M内に[セクタ・アドレス・リスト」が格納される。PPCAMのワードサイズ は、記録のサイズと同じである。セクタ・アドレスによって自動的に格納されて 、このリストは、物理的に近接するセクタを共にリスト上に整列させる。
[ノット−j−−スト・リセントリ(Not−Used−Recently)  J置き換えスキームが、データをディスクから高速に読み出す(フラッシュ(f lush)する)ために使用され得るように、上記の記録には、2つの付加的ビ ットが追加される。これら2つのピント・は、リフアレンストビットおよびモデ ィファイドビットと呼ばれ、キャッシュ内の新しいセクタについてはOにリセッ トされる。これらのビットは、そのセクタが参照されたか、変更されたかに応じ て1にセットされる。時間の経過と共に、上記のビットの値に応じて、次の4つ のタイプのセクタが発生する: タイブ1;参照されず、変更されない、タイプ2:参照されず、変更された、 タイプ3;参照され、変更されない、およびタイプ4:参照され、変更された。
キャッシュが一杯で古いセクタが新しいセクタで置き換えられる必要があるとき には、上記のタイプ1から4の順で置き換えられるのが最もよい。タイプ2は論 理的でないように見えるが、これは、実際は、リフアレンストピットの周期的な リセット動作の結果である。
全てのリフアレンストピットを周期的にリセットする理由は、使用頻度が高いと きには殆どのリフアレンストピットが、ある程度の時間の経過後セットされるの で、置き換えるのが最も望ましいセクタを識別する能力を維持するためである。
リフアレンストピットのリセットは、先に説明したPPCAMのグローバル動作 を使用しつつ並列に実行される。
保守の容易さ、より良い性能のトラッキング、および、高速のアクセスに加えて 、ソートされたセクタ・リストは、上記のフラッシュ動作において、2つの付加 的な効果を有する。
2.8.1 公[4運国た1−112上ホストコンピユータがキャッシュ内に無 い新しいセクタをフェッチするとき、このセクタはディスクから読み出される。
キャッシュが一杯であると仮定すると、キャッシュ内の複数のセクタの1つが置 き換えられねばならない。
セクタ・リストの中の新しいセクタのための位置を決定するためにサーチ・エン ジンSEを使用することは、置き換えられるべき正しいタイプのセクタを見つけ るために、そこからなされるサーチを可能にする。もし、置き換えられるべきセ クタ変更されたならば、そのセクタは、外に書かれねばならない。
置き換えのためには、ディスクヘッドにより近い複数のセクタが最初にテストさ れるので、平均シーク時間は短縮される。セクタリストにおける新しいセクタと 古いセクタとの間の複数の記録のブツシュ−プルのみが必要であるので、ブツシ ュ−プル時間もまた短縮される。
2、8゜ 2 有J1互クーラJ−ンーとホストコンビエータがPPCAMから 供給されるサービスを要求していないときには、PPCAMはセクタリストを整 列させ、変更されたセクタを書き出す、全ての書き出しが終了するまで、ヘッド は1つの方向に連続的に移動するのみであるので、変更されたセクタを書き出し 、モディファイドピットをこの方法でリセットすることにより、シークの数を減 少させる。
リフアレンストピットおよびモディファイドピットの両方をリセットすることは 、バックグラウンドにおいて行われるので、ホストデータバスは他の仕事から自 由になるであろう。
2.9CAMの t のt の め PPCAMの好適な実施例は、殆どハードウェアCAMにとって変わるが、他の 主な目的は、現存しているソフトウェアのCAMの代わりにPPCAMを使用す ることである。
その柔軟性および調整能力は、それを、人工知能での推理を調べる簡単なテーブ ルから、一般的なアプリケーションに使用することを許容する。こうして、現存 するアプリケーションの価格/性能比を向−トさせるだけでな(、以前には価格 的に効率的ではなかったアプリケーションをも許容する。
この明細書ではフロント・スプリット・プツシエーブルが強調されているが、他 の異なるブツシュ−プル(バックおよびセグメント)および実現する技術(大型 ブツシュ−プル、マルチプル・アドレス・レンジM A、 R、高速プツシエー ブル・オーバーラツプ・スイッチング、ブツシュ−プル・コントロール・ピット )との混合および整合によって、PPCAMを殆ど全てのアプリケーションに合 わせて作ることが可能である。
PPCAMの好適な実施例は、非数値的なデータ対象の操作に対しても有効な手 段を提供する。
PPCAMは、コンピュータ演算において最も基本的な領域の幾つかを扱うもの である。第1に、CAMは位置がアドレス指定できる従来のメモリと仮想的に同 じコストで入手可能である。
PPCAMは、そのデータ操作へのアプローチ故に有利である。PPCAMは、 他の殆どの技術とは、次のように区別される: 1、効率的な並列動作: 他の殆どの技術とは異なり、PPCAMの並列処理能 力は、データ・アイテムの数が増加しても悪化しない。サーチ能力が実際、比例 的(線型)以上であるのに対して、ブツシュ−プル能力は比例的(線型)に留ま る。
2、幅広いデータバス: PPCAMの簡素な構成によって、メモリのワードサ イズが増加され得るので、対応する論理回路(またはコスト)の増加を少なくし て能力の向上を実現する。殆どのCAMは、ソフトウェアにしろハードウェアに (、ろy−タ・アイテムのサイズが大きくなると急激に能力が低Fする。PPC AMの幅広いデータバスを使用することにより、このような能力が低下は遥かに 少ない。
3、メモリ・ヒエラルキ・オーバーヘッドの防止z PPCAMはメモリ上で直 接動作する。データをメモリからキャバへに保持するために、あるいは、その逆 に移動させる必要はなくなる。
4゜現存の7−キテクチエアとの継ぎ目の無い・インタープ、−イス: P P  CA Mは、コンピュータの通常の主記憶に直接マツプするので、通常、デー タ・アイテム位置またはそれらの内容を使用してアドレスされ得る。
5゜命令実行の重なり: rNsERTやDELETE等のPPCAMの低速動 作ハ、ホストコンピュータの通常の処理と時間的に重複L2て行なわれるので、 それらの低速さは「隠される」。
6、」ンピュータ演算における殆どの時間の掛かる動作からの負荷軽減: サー チ、ソート、および、他の大量データ処理動作の負荷をなくすることでアプロー チの実行において、非常に大きなゲインが達成される。
7、柔軟な性能調整: PAMのダイナミックな性能調整は、多(の異なるアプ リケーションにおいて使用される。メモリセルから論理回路を切り離しまたこと により、新しい機能を、より容易にイ]加できる。
8゜可変データ長の扱い: PAMのメモリモジエールは、複雑さを増すことな く、−緒に水平にカスケード接続され、そのメモリワー・ドは、より大きいアイ テムを格納するために結合される。これは、可変長データの処理を非常に容易に するや 9、多重応答の分解: データがソートされるので、同じ内容を有する複数の記 録が、互いに次に格納されるので、(FINDに応答する)多重マツチ(mul tiple match)が容易に取扱い得る。
10、従来の技術に基づ<:i3AMは市販の部品から。
または、従来のRAMセルを使用して現存のVLS I技術によって作られ得る 。これらのデバイスの製造コストの低さによ、りて、大容量のPAMが安価に実 現できる。この大容量によって、異なるアプリケ・−くノ(ンのために、データ をロー・ドしたり、再ロードしたりすることが減少するので、大きなデータ・ア イテムを扱)に有用であるだけでなく、動作速度電増すためにも有用である。
11、多重アクセスモ・・〜・ドニ ソートされたデータによ、。
て1、少ないオーバー・ヘッドで、データ、ヒへのパワフルな問い合わせ(qu eries)が行い得る。正確な一致(+*a tch)を使用する、そして、 位置によるアドレッシングに加えて、部分一致、より大きい、より小さい、等し くない、最大、最小等もまた、デ・−タをアドレス(指定)するために使用され 得る。
PPCAMによ提供される効果の幾つかを以下に示す。
16 ソフトウェアの側においては、PPCAMの、現存の殆どのソフトウェア データ構造の代わりに置き換える能力から以下の効果が得られる: 高速のプログラム実行、 プログラムサイズの小型化、 能力調整の容易さ、 ソフトウェアの簡素化、 アプリケーション開発の短時間化、 ソフトウェア保守コストの減少、および、よりポータプルなソフトウェア。
2、他方、PPCAMは、CPUから活性化されたメモリに多くの仕事をシフト する。これにより、以下の効果が得られるニ ハードウェアの簡素化、 メモリ使用の効率化、 高い機能性、 簡素な取付け、および 集積化の容易さ。
図面の簡単な説明 図1は、本発明のメモリ槽重の〜般的な実施例の構成を示す図、 図2は、複数のアイテムの1つのリスト(スタック)上における、バイナリ号・ −チを使用する「探索」動作を示す図、図3は、1つのリスト上で「挿入」動作 を示す模式図、図4は、リストからの「削除」動作をポす図、図5は、CAM構 造としての本発明の第1の実施例のブロックダイ′アゲラムを示す図、 図6は、バック・ブッンユーブル法によるメモリ内容の移動の1実施例を示す図 、 図7は、フロント・ブツシュ−プル法によるメモリ内容の移動の他の実施例を示 す図、 図8は、セグメント・ブランエーブルと称するフロント・ブツシュ−プルの1つ の特殊な形態を示す図、図9は、図8のセグメント・ブツシュ−プルの実行のた めに並べられた複数のデータ・アイテムを示す図、図10は、スプリット・ブツ シュ−プルとして知られるフロント・ブツシュ−プルのもう1つの特殊な形態を 示す図、図11は、図10のスプリット・ブツシュ−プルのためにメモリに格納 された複数のデータ・アイテムを示す図、図12は、商業的に入手可能な複数の RAMチップを使用する、本発明のCAM実施例のハードウェア装備を示す図、 そして、 図13は1.複数のチップまたはメモリバンクの分割の、マルチプル・アドレス レンジ法(MAR)を示す図である。
浄書(内容に変更なし) 浄書(内容に変更なし) 浄書(内容に変更なし) 引く 押す 引く 押す 浄書(内容に変更なし) 浄書(内容に菱更なし) F/θ、10 F/θ、// ・浄書(内容に変更なし) Aニアドレス&コントロールバス D:データハス X+X:スイノチ(ヒツト1) X2X :スイッチー(セット2) 浄書(内容に変更なし) バンク1 バンク2 バンク3 手続−補正書(方式) %式% ■、事件の表示 PCT/AU89100460 2、発明の名称 メモリ構造および利用方法 3、補正をする者 事件との関係 特許出願人 氏名 チャン、ディピント シラ ツー4、代理人 住所 〒105東京都港区虎ノ門−丁目8番10号静光虎ノ門ビル 電話350 4−07215、補正命令の日付 自発補正 6、補正の対象 (1)委任状 (2)図面の翻訳文 7、補正の内容 (1)別紙の通り (2)図面の翻訳文の浄書(内容に変更なし)8、添付書類の目録 (1)委任状及びその翻訳文 各 1 通(2)図面の翻訳文 1通 国際調査報告 に[TO翳[F]DξりC込貫αaL9講λIはPゴな1111a’LaTl  APPLI IGINO,、Atl O8すCF入団(X

Claims (34)

    【特許請求の範囲】
  1. 1.複数の記録を格納するメモリ構造であって、該構造は複数の隣接するメモリ 領域を有し、該複数のメモリ領域の各々は、前記複数の記録の1つを格納するよ うに構成され、 前記複数のメモリ領域は、機能的に複数のメモリサブ構造に分けられ、 該複数のメモリサブ構造の各々は、1つの分離された、しかし、隣接する、前記 メモリ構造またはサブ部分を有し、前記サブ構造の各々は、それに取付けられる バッファメモリ領域を付加的に有し、 該バッファメモリ領域の各々は、1つのメモリ領域内に格納される1つの記録を 前記サブ構造内に受けるか、または、前記バッファメモリ領域に格納される1つ の記録を前記サブ構造内の1つのメモリ領域に転送するように構成され、前記バ ッファメモリ領域は、更に、前記バッファメモリが取付けられる前記サブ構造の すぐ隣にある1つのサブ構造内に、1つのメモリ領域に格納された記録を受ける か、あるいは、前記バッファメモリが取付けられる前記サブ構造のすぐ隣にある 1つのサブ構造内の1つのメモリ領域に、前記バッファメモリ領域に格納された 1つの記録を転送するように構成されることを特徴とするメモリ構造。
  2. 2.前記メモリ構造が、サーチキーの順序で前記複数の記録を格納するように構 成され、前記複数の記録の各々が、該記録の少なくとも1部分を有する1つのサ ーチキーを含む請求項1に記載のメモリ構造。
  3. 3.前記サブ構造の各々は、前記メモリ領域を等しい数を有する請求項1または 2の何れかに記載のメモリ構造。
  4. 4.前記バッファメモリ領域の各々は、前記メモリ領域の各々1つと同じサイズ である請求項1〜3の何れかに記載のメモリ構造。
  5. 5.前記バッファメモリ領域の各々は、前記メモリ領域に保持される2つ以上の 記録を保持する容量を有する請求項1〜3の何れかに記載のメモリ構造。
  6. 6.前記メモリ構造は、1つのスタックまたはリストとして機能し、これにより 、1つの記録が該スタックまたはリストに、選択されたメモリ領域において、前 記メモリ構造の範囲内で、該選択されたメモリ領域、および、該選択されたメモ リ領域より上の全ての記録を1メモリ領域分シャフル・アップし(アップ・シャ フル・オペレーション)、または、前記メモリ構造の範囲内で、該選択されたメ モリ領域、および、該選択されたメモリ領域より下の全ての記録を1メモリ領域 分シャフル・ダウンし(ダウン・シャフル・オペレーション)、または、前記複 数のサブ構造が転置されるときには、ラスタフォーマットの全ての記録を横方向 にシャフルすることにより、1つの記録が前記スタックまたはリストから論理的 に上書き(overwrite)のプロセスによって削除されることを特徴とす る請求項1〜5の何れかに記載のメモリ構造。
  7. 7.1つのアップ・シャフル・オペレーションが:A.前記メモリ領域の上の前 記選択されたメモリ領域を含むサブ構造内の全てのメモリ領域が、スタックとし て扱われ、 B.前記選択されたメモリ領域を含む前記サブ構造より上の全ての構造が、スタ ックとして扱われ、C.1つの記録が前記複数のスタックの各々の最も上からポ ップオフ(popped−off)され、該記録がポップオフされるサブ構造の 直ぐ上のサブ構造に取付けられるバッファメモリ領域にそれぞれ格納され、 D.全てのスタックが1メモリ領域分押し上げられ、E.前記アップ・シャフル ・オペレーションを完了させるために、それまでの該アップ・シャフル・オペレ ーションの記録として現在各バッファメモリ領域に格納されている各記録が、該 バッファメモリ領域が取付けられるサブ構造における最も底のメモリ領域に転送 され、 F.ステップEと同時に、または、ステップEに続いて前記スタックまたはリス トに付加されるべき前記記録が、前記選択されたメモリ領域に転送される、とい うステップによって実行される請求項6に記載のメモリ構造。
  8. 8.1つのダウン・シャフル・オペレーションが:A.前記選択されたメモリ領 域の下の前記メモリ領域を含むサブ構造内の全てのメモリ領域が、スタックとし て扱われ、 B.前記選択されたメモリ領域を含む前記サブ構造より下の全てのサブ構造が、 スタックとして扱われ、C.1つの記録が前記複数のスタックの各々の最も下か ら押し出され、該記録が落とされたサブ構造の直ぐ下のサブ構造に取付けられる バッファメモリ領域にそれぞれ格納され、D.全てのスタックが1メモリ領域分 押し下げられ、E.前記ダウン・シャフル・オペレーションを完了させるために 、それまでの該ダウン・シャフル・オペレーションの記録として現在各バッファ メモリ領域に格納されている各記録が、該バッファメモリ領域が取付けられるサ ブ構造における最も上のメモリ領域に転送され、 F.ステップEと同時に、または、ステップEに続いて前記スタックまたはリス トに付加されるべき前記記録が、前記選択されたメモリ領域に転送される、とい うステップによって実行される請求項6に記載のメモリ構造。
  9. 9.転置フォーマットにおいて動作し、1つのラスタタイプ・シャフルが: A.全てのサブ構造が、概念上、横に並べられたフォーマットにあると考え、 B.1つの挿入が要求される点より下の複数のメモリ領域から、前記選択された メモリ領域までについて開始し、C.全てのサブ構造内の複数のメモリ領域の最 も下の行の内容が、対応するバッファメモリ領域にシフトされ、D.前記バッフ ァメモリ領域の内容が、前記バッファメモリ領域の内容が丁度取り去られたメモ リ領域に対応する隣のサブ構造のメモリ領域にシフトされ、E.前記選択される メモリ領域から前記内容が取り去られるまで、全てのサブ構造内の複数のメモリ 領域の次の1つ上の行について、前記プロセスを繰り返し、F.前記スタックま たはリストに付加されるべき前記記録が、前記選択されたメモリ領域に挿入され る、というステップによって実行される請求項6に記載のメモリ構造。
  10. 10.転置フォーマットにおいて動作し、1つのラスタタイプ・シャフルが: A.全てのサブ構造が、概念上、横に並べられたフォーマットにあると考え、 B.1つの挿入が要求される点より上の複数のメモリ領域から、前記選択された メモリ領域までについて開始し、C.全てのサブ構造内の複数のメモリ領域の最 も上の行の内容が、対応するバッファメモリ領域にシフトされ、D.前記バッフ ァメモリ領域の内容が、前記バッファメモリ領域の内容が丁度取り去られたメモ リ領域に対応する隣のサブ構造のメモリ領域にシフトされ、E.前記選択される メモリ領域から前記内容が取り去られるまで、全てのサブ構造内の複数のメモリ 領域の次の1つ下の行について、前記プロセスを繰り返し、F.前記スタックま たはリストに付加されるべき前記記録が、前記選択されたメモリ領域に挿入され る、というステップによって実行される請求項6に記載のメモリ構造。
  11. 11.前記メモリ構造内の前記複数の記録がソートされた順序に維持される請求 項1〜10の何れかに記載のメモリ構造を含むコンテント・アドレッサブル・メ モリ構造。
  12. 12.複数のキーに関して動作するサーチ・アルゴリズムの使用によって前記メ モリ構造内で複数の記録がサーチされ、前記複数の記録は前記複数のキーによっ てソートされたものである請求項11に記載のコンテント・アドレッサブル・メ モリ構造。
  13. 13.前記使用されるサーチ・アルゴリズムは、バイナリサーチ・アルゴリズム である請求項12に記載のコンテント・アドレッサブル・メモリ構造。
  14. 14.1つのメモリ構造におけるサーチキー順に複数の記録を保持する方法であ って、 該メモリ構造は、複数の隣接するメモリ領域を有し、該複数の領域の各々は、前 記複数の記録の1つを格納するように構成され、 前記複数のメモリ領域は、機能的に複数のメモリ・サブ構造に分離され、 該メモリサブ構造の各々は、分離されているが隣接するサブ部分または前記メモ リ構造を有し、 前記サブ構造の各々は、該各々に取付けられるバッファメモリ領域を付加的に含 み、 前記バッファメモリ領域の各々は、1つのメモリ領域に格納された1つの記録を 前記サブ構造内に受けるか、または、前記バッファメモリ領域に格納された記録 を、前記サブ構造内の1つのメモリ領域に転送するように構成され、前記バッフ ァメモリ領域は、更に、前記バッファメモリが取付けられる前記サブ構造のすぐ 隣にある1つのサブ構造内に、1つのメモリ領域に格納された記録を受けるか、 あるいは、前記バッファメモリが取付けられる前記サブ構造のすぐ隣にある1つ のサブ構造内の1つのメモリ領域に、前記バッファメモリ領域に格納された1つ の記録を転送するように構成され、 前記方法は、前記複数の記録を、サーチキーによって順序付けられた前記構造内 の隣接する複数のメモリ領域に置くものであることを特徴とする方法。
  15. 15.前記メモリ構造が、サーチキーの順序で前記複数の記録を格納するように 構成され、前記複数の記録の各々が、該記録の少なくとも1部分を有する1つの サーチキーを含む請求項14に記載の方法。
  16. 16.前記サブ構造の各々は、前記メモリ領域を等しい数を有する請求項14ま たは15の何れかに記載の方法。
  17. 17.前記バッファメモリ領域の各々は、前記メモリ領域の各々1つと同じサイ ズである請求項14〜16の何れかに記載の方法。
  18. 18.前記バッファメモリ領域の各々は、前記メモリ領域に保持される2つ以上 の記録を保持する容量を有する請求項14〜16の何れかに記載の方法。
  19. 19.前記メモリ構造は、1つのスタックまたはリストとして機能し、これによ り、1つの記録が該スタックまたはリストに、選択されたメモリ領域において、 前記メモリ構造の範囲内で、該選択されたメモリ領域、および、該選択されたメ モリ領域より上の全ての記録を1メモリ領域分シャフル・アップし(アップ・シ ャフル・オペレーション)、または、前記メモリ構造の範囲内で、該選択された メモリ領域、および、該選択されたメモリ領域より下の全ての記録を1メモリ領 域分シャフル・ダウンし(ダウン・シャフル・オペレーション)、または、前記 複数のサブ構造が転置されるときには、ラスタフォーマットの全ての記録を横方 向にシャフルすることにより、1つの記録が前記スタックまたはリストから論理 的に上書き(overwrite)のプロセスによって削除されることを特徴と する請求項14〜18の何れかに記載の方法。
  20. 20.1つのアップ・シャフル・オペレーションが:A.前記メモリ領域の上の 前記選択されたメモリ領域を含むサブ構造内の全てのメモリ領域が、スタックと して扱われ、 B.前記選択されたメモリ領域を含む前記サブ構造より上の全ての構造が、スタ ックとして扱われ、C.1つの記録が前記複数のスタックの各々の最も上からポ ップオフ(popped−off)され、該記録がポップオフされるサブ構造の 直ぐ上のサブ構造に取付けられるバッファメモリ領域にそれぞれ格納され、 D.全てのスタックが1メモリ領域分押し上げられ、E.前記アップ・シャフル ・オペレーションを完了させるために、それまでの該アップ・シャフル・オペレ ーションの記録として現在各バッファメモリ領域に格納されている各記録が、該 バッファメモリ領域が取付けられるサブ構造における最も底のメモリ領域に転送 され、 F.ステップEと同時に、または、ステップEに続いて前記スタックまたはリス トに付加されるべき前記記録が、前記選択されたメモリ領域に転送される、とい うステップによって実行される請求項19に記載の方法。
  21. 21.1つのダウン・シャフル・オペレーションが:A.前記選択されたメモリ 領域の下の前記メモリ領域を含むサブ構造内の全てのメモリ領域が、スタックと して扱われ、 B.前記選択されたメモリ領域を含む前記サブ構造より下の全てのサブ構造が、 スタックとして扱われ、C.1つの記録が前記複数のスタックの各々の最も下か ら押し出され、該記録が落とされたサブ構造の直ぐ下のサブ構造に取付けられる バッファメモリ領域にそれぞれ格納され、D.全てのスタックが1メモリ領域分 押し下げられ、E.前記ダウン・シャフル・オペレーションを完了させるために 、それまでの該ダウン・シャフル・オペレーションの記録として現在各バッファ メモリ領域に格納されている各記録が、該バッファメモリ領域が取付けられるサ ブ構造における最も上のメモリ領域に転送され、 F.ステップEと同時に、または、ステップEに続いて前記スタックまたはリス トに付加されるべき前記記録が、前記選択されたメモリ領域に転送される、とい うステップによって実行される請求項19に記載の方法。
  22. 22.転置フォーマットにおいて動作し、1つのラスタタイプ・シャフルが: A.全てのサブ構造が、概念上、横に並べられたフォーマットにあると考え、 B.1つの押入が要求される点より下の複数のメモリ領域から、前記選択された メモリ領域までについて開始し、C.全てのサブ構造内の複数のメモリ領域の最 も下の行の内容が、対応するバッファメモリ領域にシフトされ、D.前記バッフ ァメモリ領域の内容が、前記バッファメモリ領域の内容が丁度取り去られたメモ リ領域に対応する隣のサブ構造のメモリ領域にシフトされ、E.前記選択される メモリ領域から前記内容が取り去られるまで、全てのサブ構造内の複数のメモリ 領域の次の1つ上の行について、前記プロセスを繰り返し、F.前記スタックま たはリストに付加されるべき前記記録が、前記選択されたメモリ領域に挿入され る、というステップによって実行される請求項19に記載の方法。
  23. 23.転置フォーマットにおいて動作し、1つのラスタタイプ・シャフルが: A.全てのサブ構造が、概念上、横に並べられたフォーマットにあると考え、 B.1つの挿入が要求される点より上の複数のメモリ領域から、前記選択された メモリ領域までについて開始し、C.全てのサブ構造内の複数のメモリ領域の最 も上の行の内容が、対応するバッファメモリ領域にシフトされ、D.前記バッフ ァメモリ領域の内容が、前記バッファメモリ領域の内容が丁度取り去られたメモ リ領域に対応する隣のサブ構造のメモリ領域にシフトされ、E.前記選択される メモリ領域から前記内容が取り去られるまで、全てのサブ構造内の複数のメモリ 領域の次の1つ上の行について、前記プロセスを繰り返し、F.前記スタックま たはリストに付加されるべき前記記録が、前記選択されたメモリ領域に挿入され る、というステップによって実行される請求項19に記載の方法。
  24. 24.前記メモリ構造内の前記複数の記録がソートされた順序に維持される請求 項14〜23の何れかに記載の記録格納方法によってメモリ構造を操作すること による、コンテント・アドレッサブル・メモリを操作する方法。
  25. 25.複数のキーに関して動作するサーチ・アルゴリズムの使用によって前記メ モリ構造内で複数の記録がサーチされ、前記複数の記録は前記複数のキーによっ てソートされたものである請求項24に記載の方法。
  26. 26.前記使用されるサーチ・アルゴリズムは、バイナリサーチ・アルゴリズム である請求項24または25の何れかに記載の方法。
  27. 27.複数の記録を保持するコンテント・アドレッサブル・メモリ構造であって 、 該構造は、複数の隣接するメモリ領域を有し、該メモリ領域の各々は、前記複数 の記録の1つを格納するように構成され、 前記複数のメモリ領域は、機能的に複数のメモリ・サブ構造に分離され、 該メモリサブ構造の各々は、分離されているが隣接するサブ部分または前記メモ リ構造を有し、 前記サブ構造の各々は、該各々に取付けられるバッファメモリ領域を付加的に含 み、 前記バッファメモリ領域の各々は、1つのメモリ領域に格納された1つの記録を 前記サブ構造内に受けるか、または、前記バッファメモリ領域に格納された記録 を、前記サブ構造内の1つのメモリ領域に転送するように構成され、前記バッフ ァメモリ領域は、更に、前記バッファメモリが取付けられる前記サブ構造のすぐ 隣にある1つのサブ構造内に、1つのメモリ領域に格納された記録を受けるか、 あるいは、前記バッファメモリが取付けられる前記サブ構造のすぐ隣にある1つ のサブ構造内の1つのメモリ領域に、前記バッファメモリ領域に格納された1つ の記録を転送するように構成され、 前記複数の記録は、キーによってソートされた順序で前記メモリ構造の前記複数 のメモリ領域に保持されることを特徴とするコンテント・アドレッサブル・メモ リ構造。
  28. 28.コンテント・アドレッサブル・メモリとして動作するように、複数の記録 を格納する1つのメモリ構造を操作する方法であって、 該構造は、複数の隣接するメモリ領域を有し、該メモリ領域の各々は、前記複数 の記録の1つを格納するように構成され、 前記複数のメモリ領域は、機能的に複数のメモリ・サブ構造に分離され、 該メモリサブ構造の各々は、分離されているが隣接するサブ部分または前記メモ リ構造を有し、 前記サブ構造の各々は、該各々に取付けられるバッファメモリ領域を付加的に含 み、 前記バッファメモリ領域の各々は、1つのメモリ領域に格納された1つの記録を 前記サブ構造内に受けるか、または、前記バッファメモリ領域に格納された記録 を、前記サブ構造内の1つのメモリ領域に転送するように構成され、前記バッフ ァメモリ領域は、更に、前記バッファメモリが取付けられる前記サブ構造のすぐ 隣にある1つのサブ構造内に、1つのメモリ領域に格納された記録を受けるか、 あるいは、前記バッファメモリが取付けられる前記サブ構造のすぐ隣にある1つ のサブ構造内の1つのメモリ領域に、前記バッファメモリ領域に格納された1つ の記録を転送するように構成され、 前記複数の記録を、キーによってソートされた順序で前記メモリ構造の前記複数 のメモリ領域に保持することを特徴とする方法。
  29. 29.請求項7または9の何れかに記載のプロセスによって、選択された領域の 下の全てのメモリ領域の内容を、1つの領域分だけ上にシフトすることにより、 前記選択された領域を上書きするために前記アップ・シャフル・オペレーション が使用される請求項6に記載のメモリ構造。
  30. 30.請求項8または10の何れかに記載のプロセスによって、選択された領域 の上の全てのメモリ領域の内容を、1つの領域分だけ下にシフトすることにより 、前記選択された領域を上書きするために前記ダウン・シャフル・オペレーショ ンが使用される請求項6に記載のメモリ構造。
  31. 31.オーバーラップ・スイッチングを利用して、請求項24、25、26、ま たは28の何れかに記載のコンテント・アドレッサブル・メモリを実現する方法 において、該オーバーラップ・スイッチングは、各バンクの間に複数のスイッチ を有することにより、1つの2段階プロセスを通して同時に前記複数のサブ構造 の間をデータが転送されることを許容し、 前記複数のスイッチは、(各第2のスイッチが同じセットに属する)2セットに 分けられ、 前記方法は、複数のバンクを、それらの隣と接続または切離しするように、前記 複数のセットをオンおよびオフして、複数のバンク間の同時データ転送を許容す ることにより実現されることを特徴とする方法。
  32. 32.請求項28に記載のコンテント・アドレッサブル・メモリを実現する方法 において、 占有されたメモリ領域の各々において前記複数の内容に複数の制御ビットが付加 され、 前記複数のビットは、前記メモリ構造におけるメモリの内容のシャフル・オペレ ーションの中断と再開とを容易にするために設けられ、 前記複数のビットは、また、異なる複数の記録の中の同一のサーチキーを同定す るために設けられる方法。
  33. 33.請求項20または22の何れかに記載のプロセスによって、選択された領 域の下の全てのメモリ領域の内容を、1つの領域分だけ上にシフトすることによ り、前記選択された領域を上書きするために前記アップ・シャフル・オペレーシ ョンが使用される請求項19に記載のメモリ構造。
  34. 34.請求項21または23の何れかに記載のプロセスによって、選択された領 域の上の全てのメモリ領域の内容を、1つの領域分だけ下にシフトすることによ り、前記選択された領域を上書きするために前記ダウン・シャフル・オペレーシ ョンが使用される請求項19に記載のメモリ構造。
JP51113789A 1988-10-20 1989-10-20 メモリ構造および利用方法 Pending JPH04501332A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
AU3848 1982-05-04
AU1065 1988-10-20
AU106588 1988-10-20
AU384889 1989-04-21

Publications (1)

Publication Number Publication Date
JPH04501332A true JPH04501332A (ja) 1992-03-05

Family

ID=25608981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51113789A Pending JPH04501332A (ja) 1988-10-20 1989-10-20 メモリ構造および利用方法

Country Status (1)

Country Link
JP (1) JPH04501332A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002358790A (ja) * 2001-05-30 2002-12-13 Fujitsu Ltd エントリデータの入れ替えを高速化したコンテンツ・アドレッサブル・メモリ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002358790A (ja) * 2001-05-30 2002-12-13 Fujitsu Ltd エントリデータの入れ替えを高速化したコンテンツ・アドレッサブル・メモリ

Similar Documents

Publication Publication Date Title
US5423015A (en) Memory structure and method for shuffling a stack of data utilizing buffer memory locations
US6389507B1 (en) Memory device search system and method
US8935507B2 (en) System and method for storing multiple copies of data in a high speed memory system
CN103314363B (zh) 用于设计分级存储器系统的高速存储器系统和方法
TWI238935B (en) Reconfigurable cache controller for nonuniform memory access computer systems
US3699533A (en) Memory system including buffer memories
CA1222573A (en) Address translation buffer
US4616310A (en) Communicating random access memory
US8838934B2 (en) System and method for storing data in a virtualized memory system with destructive reads
WO2013062562A1 (en) Shiftable memory supporting in-memory data structures
CN1201233C (zh) 带有可编程存储体选择的具有不同数据缓冲区容量的多层存储体
JPS6120156A (ja) メモリ・チツプ
US6363458B1 (en) Adaptive granularity method for integration of fine and coarse communication in the distributed shared memory system
CN101313290B (zh) 对仅m×n位外围设备执行n位写入访问的系统和方法
JPH04501332A (ja) メモリ構造および利用方法
AU627520B2 (en) Memory structure
JPS63308785A (ja) 半導体記憶装置
CN105426130A (zh) 邮件快速处理方法
JP2507721B2 (ja) バツフアメモリ装置
JP2591362B2 (ja) データ選択処理方法
JPH0313616B2 (ja)
JPH0282369A (ja) データ転送方法
JPH01156863A (ja) 計算機システム
JPH05109286A (ja) メモリ
JPH01106241A (ja) 計算機システム