JP2000515654A - 最大ビットスライスを用いてビットストリングにブール演算を施すための方法とシステム - Google Patents

最大ビットスライスを用いてビットストリングにブール演算を施すための方法とシステム

Info

Publication number
JP2000515654A
JP2000515654A JP09521291A JP52129197A JP2000515654A JP 2000515654 A JP2000515654 A JP 2000515654A JP 09521291 A JP09521291 A JP 09521291A JP 52129197 A JP52129197 A JP 52129197A JP 2000515654 A JP2000515654 A JP 2000515654A
Authority
JP
Japan
Prior art keywords
bit
input
slice
bit slice
resulting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP09521291A
Other languages
English (en)
Inventor
エー. マークイス,ジャン
ダブリュ. マックール,マイケル
Original Assignee
サンド テクノロジー システムズ インターナショナル インコーポレイティド
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 サンド テクノロジー システムズ インターナショナル インコーポレイティド filed Critical サンド テクノロジー システムズ インターナショナル インコーポレイティド
Publication of JP2000515654A publication Critical patent/JP2000515654A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled

Abstract

(57)【要約】 ビットストリングにブール演算を施して結果のビットストリングを形成するためのシステム(10)と方法。各ビットストリングは入力ビットスライスに分割される。結果のビットストリングは結果のビットスライスに分割される。作用は、第1のビットストリームからの第1の入力ビットスライスと第2のビットストリングからの第2の入力ビットスライスとに基づく。第1および第2の入力ビットスライスからより長いビット長の入力ビットスライスが選択される。より長い入力ビットスライスと、より短かいビット長の入力ビットスライスを有するビットストリングの複数の入力ビットスライスとがより長いビット長に等しい少なくとも一方のビットストリングのビット数まで作用に従って処理されて少なくとも1つの結果のビットスライスを形成する。

Description

【発明の詳細な説明】 最大ビットスライスを用いてビットストリングにブール演算を施すための方法と システム 発明の分野 本発明は、ビットストリングにブール演算を施すための方法とシステム、特に 、最大ビットスライスを用いてビットストリングにブール演算を施すための方法 と装置に関する。 発明の背景 ビットストリングは関係データベース管理システム(RDBMS)においてデータベ ースに格納されているレコード内で発生するデータ項目のインスタンスを表現す るために用いることができる。データ格納に対する従来のアプローチでは、デー タの行と列に組織化されたテーブルを集めたものが利用されている。各列は情報 の特定の形式を含み、各行はそれぞれの列で情報が異なる個別のレコードからな る。すべての行は同一の構造を有するレコードとして隣り合って格納される。こ のようなレコード指向のアプローチは多数の入出力を必要とし、複雑なインデッ クス機構を必要とし、データを周期的に戻し非正規化する必要がある。 これらの問題を実質的に軽減するRDBMSのデータ表現方法は10月7日に出願さ れた国際出願PCT/US88/03528に記載されており、その開示全体は参照すること によってここに組み込まれる。ビットストリングを用いたデータベーステーブル においてそれらの使用からデータ値を分離する列指向のアプローチを使用するこ とによりデータベースが構造化される。情報を隣り合ったレコードとして格納 するのでなく、データは列的に組織化された形で格納される。各テーブルをつく るデータ値はビットストリングを用いて分離され、ビットストリングの各々は各 列からの1つの行のユニークな値を表わす。各ビットストリング内で、2進ビッ ト値は与えられたレコード(または行)内の列値の発生率を示している。 RDBMSにおけるように、クエリーを使ってデータベースに問い合わせを行なう ことによって個々のデータレコードの位置を知ることができる。クエリー過程の 共通の形式は、1対のビットストリングにブール演算を施してクエリーの条件を 満足するデータベースレコードを表わす“結果のビットストリング”を形成する ことを含んでいる。 スペースを節約するため、ビットストリングはGlaser et al.の米国特許第5, 036,457に開示されたようなブール演算に従って圧縮、符号化および復号が可能 であるが、この開示全体が参照によりここに組み入れられる。非圧縮の2進値ビ ットストリングはランまたはインパルスのいずれかからなる圧縮された2進ビッ ト形式に変換される。反復的なループ構造を使って圧縮形の1対のインパルスに ブール演算が施されて結果のビットストリングが形成される。この技術は通常行 なわれているような1ビットずつの操作と比べて著しく高速である。 1対の圧縮されたインパルスが1対の符号化されたビットストリングから得ら れ、より短かい長さの(いわゆる最小の)インパルスが選択される。最小長イン パルスの多数のビットに対してブール演算が施されこの最小長の結果のビットス トリングが形成される。このサイクルが残りの最小長インパルスの各々に対して 繰り返される。ブール演算を達成するに必要なサイクルの総数は2つの入入力ビ ットストリングのインパルスの合計にほぼ等しい。多くの長いインパ ルスを有するビットストリングでは一般に問題にはならないが、多くの短かいイ ンパルスを有するビットストリングを処理するための計算オーバーヘッドは過大 である。それゆえ、不確定の長さの圧縮ビットストリングの対に対してブール演 算を施す方法であって、各最小長インパルスに対する繰り返しを行なうことによ る計算オーバーヘッドを回避できる方法へのニードがある。 発明の概要 本発明は最小長インパルスの代わりに最大長インパルスを使ってビットストリ ングにブール演算を施すための方法とシステムを提供することにより従来技術を 改良する。 本発明の一具体例は、コンピュータを使ってビットストリングの連なりにブー ル演算を施して結果のビットストリングを形成するためのシステムと方法である 。各ビットストリングは入力ビットスライスに分割される。結果のビットストリ ングは結果のビットスライスに分割される。第1のビットストリングからの第1 の入力ビットスライスと第2のビットストリングからの第2の入力ビットスライ スとに基づきブール演算による作用が決定される。第1の入力ビットスライスと 第2のビットスライスとの中からより長いビット長の入力ビットスライスが選択 される。より長いビット長に等しい少なくとも一方のビットストリングのビット 数まで、より長い入力ビットスライスと、より短かいビット長の入力ビットスラ イスを有するビットストリングの複数の入力ビットスライスとが、決定された作 用に従って処理されて少なくとも1つの結果のビットスライスを形成する。 本発明のさらに他の具体例が以下の詳細な記述から当業者に容易に明らかにな るであろう。ここで、本発明を実施する上で企図され た最良の形態の図解により本発明の具体例のみが示され記述される。理解される ように、本発明は他の異なる具体例が可能であり、そのいくつかの詳細は本発明 の精神と範囲から逸脱することなく種々の自明な点で修正が可能である。したが って、図面と詳細な記述は例示にすぎず、限定的ではないと考えるべきである。 図面の簡単な説明 図1は本発明に係りブール演算を達成するためのコンピュータプラットフォー ムを備えたコンピュータシステムの機能ブロック図であり、 図2は図1のコンピュータプラットフォームの機能ブロック図であり、 図3Aおよび3Bは例として非圧縮ビットストリングと圧縮ビットストリング を図示し、 図4は生のビットストリング、符号化ビットストリング、および圧縮ビットス トリングの関係を示すフローチャートであり、 図5Aおよび5Bは1対の非圧縮ビットストリングを表わし、 図6A,6Bおよび6Cは図5Aおよび5Bの非圧縮ビットストリングにそれ ぞれブール関数AND,ORおよびXORの演算を施して形成される非圧縮の結果のビッ トストリングを表わし、 図7A,7Bおよび7Cはブール関数AND,ORおよびXORの演算にそれぞれ対応 する作用関数のカルノー図であり、 図8A,8Bおよび8Cはブール関数AND,ORおよびXORの演算にそれぞれ対応 する特徴形式関数のカルノー図であり、 図9A,9Bおよび9Cはブール関数AND,ORおよびXORの演算にそれぞれ対応 するジェンダ関数のカルノー図であり、 図10A,10Bおよび10Cはブール関数AND,ORおよびXORにそれ ぞれ対応するtakeビット関数のカルノー図であり、 図11はブール関数XORに対応するフリップビット関数のカルノー図であり、 図12Aは図7A,7B,7C,8A,8B,8C,9A,9B,9C,10A, 10B,10Cおよび11の作用、特徴形式、ジェンダ、takeビットおよびフリップ関 数を融合させた出力関数ルックアップテーブルであり、 図12Bは図12Aの出力関数ルックアップテーブルを格納するデータ構造であり 、 図13は図12Aのルックアップテーブルを図解的に表わすテーブルであり、 図14は本発明に係るブール演算を達成する方法の流れ図であり、 図15は図14の方法で使用されるコピー関数の流れ図であり、 図16は図14の方法で使用されるスキャン関数の流れ図である。 詳細な記述 I.概説 図5A,5Bおよび6Aを参照すると、本発明の一実施例はビットストリング A40及びB46の対にブール演算を施してビットストリングC52を生成する。ビッ トストリングAおよびBの双方は一連の入力ビットスライス41a,47a−jで表 わされ、それらはこの例ではランとして処理される(ランおよびインパルスは後 にさらに説明される)。ビットストリングA40とB46の対はブール演算に従って 処理される。すなわち、ビットストリングA40とB46の対の各々からより長い長 さ44を有するビットスライス41aが選択され、この入力ビットスライス41aはよ り長い長さ41aに等しいビット数について他のビットストリング46の1つ以上の ビットスライス47a−jに 対して処理され、その結果として少なくとも1つのビットスライス53a−jの連 なりが生成される。記述された具体例において、結果としてのビットスライス53 aが出力インパルスを生成するときはいつでも好ましくはそれはさらに処理され て符号化された格納効率の良い形式になる。 II.用語 “ビットストリング”とは2進ビットの列をいう。 “ラン”とは同じ2進値(またはジェンダ)のビットが1つ以上連続するビッ トストリングをいう。 “インパルス”とは同じ2進値(またはジェンダ)のビットの1つ以上の連続 の後にその2進値と反対の2進値を持つ終了ビットが続くビットストリングをい う。 “特徴形式”とはビットストリングをランまたはインパルスのいずれかに分類 するインジケータをいう。 “ジェンダ”とはランまたはインパルスの2進値を示すインジケータをいい、 互換的に“極性”ともいわれる。 “非圧縮形”とはランまたはインパルスのいずれかである2進値の一次元アレ イをいう。 “圧縮形”とはランまたはインパルスを(1)極性(2)特徴形式及び(3) 長さで表わした表現形式をいう。 “符号化形式”とはパケット形式で格納される1つ以上連続するインパルスを いう。 A.コンピュータシステムの説明 本発明に係り1対のビットストリングにブール演算を施すプログラム可能コン ピュータとコンピュータプログラムを有するコンピュータシステムが図1に示さ れる。このコンピュータシステムは、プログラム可能なマイクロプロセッサ2、 ディスプレイ3、マイクロ プロセッサ2のためのキーボード入力装置11およびビットストリングの格納また はバッファリングのための外部記憶装置12を含んでいる。変換のためのハードウ ェア、ソフトウェアまたはファームウェア及びブール演算のためのハードウェア 、ソフトウェアまたはファームウェアはマイクロプロセッサ2に組み込まれたコ ンピュータプラットフォーム10(破線で示される)に収容されている。コンピュ ータプラットフォーム10はGlaser et al.の米国特許第5,306,457号に示された ように、ビットストリングに対してブール演算を施すことに関連する種々の実体 を調整する。 伝統的に、コンピュータプラットフォーム10は多くの標準的なコンピュータシ ステムで容易に採用することのできるプリント回路基板上に組み立てられた凡用 プログラマブルコンピュータであり、それはその動作をここに開示されるように 向けるためのコンピュータプログラムソフトウェアを備えた、パーソナル、ミニ 、及びメインフレームコンピュータを含んでいる。コンピュータプラットフォー ム10はまた集積回路チップ(またはチップの集合)上に形成された、または通常 の手段でまたはマイクロコードとして読み出すことのできる実行可能な符号を焼 き付けられた読み出し専用メモリ(ROM)チップを有する特殊目的のコンピュータ でも良い。 B.コンピュータプログラムの説明 より特定的に、図2を参照すると、コンピュータプラットフォーム10はエンコ ーダ/デコーダ14、バス15と27でオプションとしてのバッファメモリ18に相互接 続されたオプションとしての2次メモリ16(これはコンピュータプラットフォー ム10の外に置くこともできる)、ブール論理ユニット(BLU)20、標準の処理ユニ ット25およびシステム調整器26を含んでいる。ビットストリングを符号化/復号 化し、ブール演算を行ない、コンポーネント間のデータ転送を調整 するソフトウェアプログラム(後にさらに説明する)がコンピュータプラットフ ォーム10にロードされると、コンピュータプラットフォーム10が形成され処理の 準備が整う。 コンピュータプラットフォーム10の特殊なコンポーネントの詳細な議論をここ に行なう。外部記憶装置12は符号化されたビットストリングを格納するための永 続的またはバッファ的な記憶ユニットであり、典型的にはハードディスクである 。ビットストリングは、関係データベース内の組織化されたデータ、外部通信手 段が収集した組織化されていないデータ、または連続したビット列によって表わ すことのできる任意の他の形式のデータを代表する。 外部装置12の内容はバス13によってコンピュータプラットフォーム10にロード され、エンコーダ/デコーダ14にロードされ、エンコーダ/デコーダ14は符号化 されたビットストリングを1つ以上の圧縮されたインパルスに分離する。この明 細書を通してインパルスは1つの終了ビットを有するものとして記述されるが、 1つの開始ビットを有するインパルスにも等しく適用される。また、“極性”お よび“ジェンダ”という用語は交換可能に使用され単に2進値をいう。ビットス トリングを4つの異なる符号化されたインパルス形式の1つへ符号化またはそれ から復号するためのエンコーダ/デコーダ14が実行するルーチンはGlaser et al ,の米国特許第5,036,457号に記述されている。 オプションとしての2次メモリ16は将来のブール演算のために圧縮されたビッ トストリングを格納するものであり、ホストコンピュータに含まれるメモリコン ポーネントまたはコンピュータプラットフォーム10内に含まれるメモリコンポー ネントであり得る。バッファメモリ18はBLU 20におけるビットストリングの処理 の前または処理の後にビットストリングを2次メモリ16に格納する前に圧縮され たビットストリングを一時的に保持するための他のメモリ領域である。 BLU 20はインテル社製のペンティアムのようなマイクロプロセッサ(図示せず )上で実施されるBLUの具体例を利用して2つのビットストリングにブール演算 を施す。ブール演算のいくつかまたはすべてはハードウェアでより効率的に実施 することができる。しかしながら、ブール演算が主としてソフトウェアで実現さ れるとしても、BLU 20は圧縮されたビットストリングに対するブール演算を達成 する現在公知の技術よりも格納、速度等の点でより効率的にブール演算を達成す る。BLU 20は非常に速いクロック速度を持つ32ビットまたは64ビットのマイクロ プロセッサのような最新のコンポーネントの利点をフルに取り入れることができ る。 結果としてのビットスライス、すなわち、インパルスまたはランの対にブール 演算が施された結果がBLU 20によって決定されると、結果のビットスライスはバ ス21によって標準処理ユニット25に送られる。標準処理ユニット25は結果の圧縮 された(しかし符号化されていない)ビットスライスをそれらが圧縮されたイン パルスに結合されるまで一時的に保持するための本質的に1対のバッファである 。圧縮されたインパルスが標準処理ユニット25に形成されると、インパルスは符 号化のためにバス23によってバッファメモリ18に出力される。 システム調整器26はコンピュータプラットフォーム10上でのデータの処理を制 御する。バスシステムの動作およびコンピュータプラットフォーム10上のコンポ ーネントの動作はシステム調整器26のソフトウェアプログラムによって制御され る。システム調整器26から出ている図2の点線は種々のコンポーネントに対する 制御を示している。 IV.ビットストリングの形式 図3Aおよび図3Bを参照すると、圧縮されていないビットストリングと圧縮 されたビットストリングとが2進ビット値33,36及び2値波形33’,36’として 図解的に示されている。2進ビット値がこの明細書を通して言及されているが2 値波形にも交換可能に適用できる。 A.非圧縮形式 ビットスライスの2つのタイプは、ラン34とインパルス35である。これらは前 述したようにいずれも生のビットストリングである。 B.圧縮形式 ラン34またはインパルス35のような各ビットスライスはスライスを圧縮形式で 記述する属性5,6,7で表わすことができる。ビットスライスを伸長すること なく属性5,6,7を使ってブール演算を達成することができる。記述された具 体例において、入力属性は:特徴形式rS5;ジェンダgS6;及び長さlS7を含ん でいる。特徴形式rS5の“0”または“1”はスライスがそれぞれインパルス35 またはラン34であることを示している。ジェンダgS6の“0”または“1”は終 了ビットの前に続く1つ以上のビットのジェンダを示す。長さlS7はスライス内 のビット数を示している。図3の例は、インパルスすなわちrS=0で、ジェンダ が“1”の連続ビットすなわちgS=1で、長さが14ビットすなわちlS=14である ことを示している。 記述されている具体例はもっぱら圧縮形式に作用するが、本発明は生の非圧縮 のビットストリングにもそれらを次のように圧縮することにより拡張可能である 。各非圧縮ビットストリング33に対して、同じジェンダの1つ以上の連続ビット すなわちラン34をメモリ(図示せず)にシリアルに読み込み、ラン34とは反対の ジェンダの単 一ビットすなわち終了ビットが読まれるまで連続ビットを数えることによりスト リングの各スライス34,35が形成される。ビットストリングの各インパルスが非 圧縮形から圧縮形へ変換されるにつれ、属性5,6,7が生成される。特徴形式 rS5にはビットストリングがインパルス35であることを示す“0”が格納され、 ジェンダgS6にはラン34の適切なジェンダが格納され、長さlS7としてビットカ ウントが格納される。ブール演算が完了した後、結果のビットストリングをオプ ションとして非圧縮ビットストリング33に逆変換することができる。 1対の入力ビットストリング40,47がスライスAおよびB(図示せず)を形成 し、それぞれ特徴形式rA42とrB48、ジェンダgA43とgB49及び長さlA44とlB50を具 備するものとする。そこで、長さはインパルスの長さであり、特徴形式rAとrBは 次式から決定される。 rA=(lA<lB)|rA (1) rB=(lA>lB)|rB (2) ここでlAおよびlBは前に定義された長さである。式(1)及び(2)は“0”ま たは“1”を返しそれらはスライスAおよびBがそれぞれインパルス35またはラ ン34として処理され戻り値を特徴形式rA42またはrB48として格納することを示す 。等値性、すなわち、長さ44,50が等しいことは、ブール条件−rA & −rBで 表わされそれは双方のビットスライスが同じ長さのインパルスであることを示し ている。 C.ビットストリング形式間の関係 図4を参照すると、生のビットストリング、符号化ビットストリング及び圧縮 インパルスの関係を示す流れ図が示されている。生のビットストリング(ブロッ ク120)はビットストリング変換手段121好ましくはプロセッサ2によって圧縮イ ンパルス(ブロック122)に 変換される。符号化ビットストリング(ブロック123)は復号手段124、好ましくは エンコーダ/デコーダ14によって圧縮インパルス(ブロック122)に復号される。 ブール演算125は本発明によれば1対の圧縮インパルス(ブロック122)に対して 行なわれ、結果の圧縮インパルス(ブロック126)を形成する。オプションとして 、結果の圧縮インパルス(ブロック126)は符号化手段127好ましくはエンコーダ/ デコーダ14によって符号化ビットストリング(ブロック128)に変換される。 V.ビットストリング処理 図5A,5B,6A,6Bおよび6Cを参照すると、1対のビットストリング A40とB46が主プログラムループの各サイクルの中で最長(最大)カレントビッ トスライス41aの長さを使って反復的に処理されて結果のビットストリング52, 58,64を形成する。上記の様に、1対のビットストリングA40とB46と各結果の ビットストリング52,58,64が2進ビット値40,46,52,58,64および2値波形 40’,46’,52’,58’,64’として示されている。2進ビット値がこの明細書 を通して言及されるが、同じ記述が互換的に2値波形にも適用される。 結果のビットストリングC52における各結果のビットスライス53a−jに対す る結果の属性54,55,56は、以下にさらに詳細に記述される5つの出力関数によ って決定される。各関数からの出力は各入力ビットスライス41a,47a−jに関 する入力属性42,43,44,48,49,50から得られる入力パラメータに基づくもの である。 主プログラムの各サイクルの中で処理されるビットの数は次式で表わされるよ うな2つのスライスの長い方のビット数である。 lC=MAX(lA,lB)−take (3) ここでlAとlBは入力ビットストリングA40とB46の各々についての 長さ41a,47aのような入力ビットスライスの長さであり、lCは結果のビットス トリング52,58,64についての結果のビットスライス47a,53a,65aの長さで あり、MAX( )は最大ビットスライス長を戻す関数であり、takeは入力スライス41 a,47aの長さが等しくないとき1値(“1”)であり、それ以外ではゼロ値( “0”)である。各サイクルの中で非常に多数のビットを処理できるので、最小 長インパルス技術よりも著しいスピードアップが達成される。 A.入力パラメータ 入力パラメータを決定するためには次の3項目の情報を知り確認しなければな らない:図7A,7B,7C,8A,8B,8C,9A,9Bおよび9Cに表わ される所望のブール演算;ビットストリングA40における各入力ビットスライス 41aについての入力属性42,43,44;およびビットストリングB46における各入 力ビットスライス47aについての入力属性48,49,50。 3つの基本的なブール演算が実装される:図7A,8A,9Aおよび10Aに示 されるAND;図7B,8B,9Bおよび10Bに示されるOR;図7C,8C,9C ,10Cおよび11に示されるXOR(排他的OR)、 特に記述されないが、さらなるブール演算または派生物が表1に示すように達 成できる。さらに、3つ以上の入力に対するブール演算が想定できる。さらに、 例えば、ブール演算子はNAND(ANDの補数)、NOR(ORの補数)、XNOR(XORの補 数)、XAND(排他的AND)およびXNAND(排他的ANDの補数)を含んでいる。派生 物は加法性、可換性および分配性またはド・モルガンの定理のような通常のブー ル代数の性質や定理を適用することによって形成される等価的または組み合わせ 的ブール演算子を含む。上記のリストは完全なものではなく本発明の範囲内でさ らに他のブール演算が可能である。 B.出力関数 以下の記述において、それぞれの作用または出力関数はブール演算AND,ORお よびXORの各形式に1つのカルノー図で表わされる。各カルノー図は行と列から なる表である。例えば図7Aを参照すると、各行はビットストリングA40の各ビ ットスライス41aの入力属性42,43からの特徴形式rA70およびgA71でインデック スされる。各列はビットストリングB46の各ビットスライス47a−jの入力属性 48,49からの特徴形式rB73とジェンダgB74によってインデックスされる。ビット ストリングA40からの特徴形式とジェンダのペアrA,gAとビットストリングB46 についての特徴形式とジェンダのペアrB,gBが特定されることによってカルノー 図の行72の1つと列75の1つが特定される。各関数の出力は特定された行および 列の交点の2進値によって示される。 1.作用関数 ブール関数AND,ORおよびXORの演算について達成されるべき作用の形式を示す カルノー図はそれぞれ図7A,7Bおよび7Cに示される。作用はコピー作用ま たはスキャン作用のいずれかである。各サイクルの間、入力ビットストリングA 40とB46の各々に対するビットスライス41a,47aのような2つの入力ビットス ライスから最大すなわち最長の入力ビットスライスが選択される。 短かい方のビットスライスからの1つ以上の入力ビットスライスの個々のジェ ンダと長さを考慮する必要があるならばコピー作用が行なわれる。そうでなけれ ば、スキャン作用が行なわれる。しかし、入力ビットスライスの長さが同じであ れば、スキャンまたはコピー作用のいずれを行なっても良い。この場合、スキャ ン作用の方がコピー作用よりも速いのでスキャン作用が好ましい。 従って、コピーまたはスキャン作用のいずれかが要求される状況 はカルノー図80,81,82中でそれぞれ1値(“1”)及びゼロ値(“0”)とし てテーブル化されている。1値(“1”)は、より長いビット長に等しい数のビ ット数まで入力ビットストリングがスライスごとにコピーされることを示してい る。結果のビットスライスは1以上のより短かい入力ビットスライスの各々に対 する属性に基づくものであるから、より長いビット長の入力ビットスライスは無 視される。ゼロ値(“0”)は長さlCに等しいビット数までより短かい入力ビッ トストリングがスキャンされなければならないことを示している。結果のビット スライスは長さlCの属性に基づくものであるから、1つ以上のより短かい入力ビ ットスライスのジェンダが出力では無視される。 2.特徴形式関数 ブール関数AND,ORおよびXORの演算に対する結果のビットスライス53a−j, 59a−j,65a−jの特徴形式rC54,60,66を示すカルノー図が図8A,図8B および図8Cにそれぞれ示されている。特徴形式はランまたはインパルスのいず れかである。したがって、結果のビットスライスにランまたはインパルスのいず れが出力されるかの状況がカルノー図85,86,87にランに対する1値(“1”) およびインパルスに対するゼロ値(“0”)としてテーブル化されている。 3.ジェンダ関数 ブール関数AND,ORおよびXORの演算に対する結果のビットスライス53a−j, 59a−j,65a−jのジェンダgC55,61,67を示すカルノー図がそれぞれ図9A ,9Bおよび9Cに示されている。従って、適切なジェンダはカルノー図90,91 ,92に1値(“1”)およびゼロ値(“0”)としてそれぞれテーブル化されて いる。 4.take関数 ブール関数AND,ORおよびXORの演算に対して“take”ビットが必要かどうか示 すカルノー図がそれぞれ図10A,10Bおよび10Cに示されている。takeビットは 以前に記述した式(3)に従いより長いビット長44から差し引かれる単一ビット 値である。takeビットはビットストリングA40とB46の対の各々からの入力ビッ トスライス41a,47aの長さlA44とlB50の関数である。長さが等しくなければta keビットは1に設定され、それ以外では“0”に設定される。したがってtakeビ ットが必要であるか(否か)の状況はカルノー図95,96,97に1値(“1”)お よびゼロ値(“0”)としてそれぞれテーブル化されている。 5.フリップ関数 ブール関数XORの演算について“フリップ”作用が行なわれなければならない かを示すカルノー図が図11に示されている。フリップビットとして表わされるフ リップ作用とはカレントビットスライス47a−jから出力されるかまたは決定さ れる各ビットのジェンダを“フリッピング”することにより結果のビットスライ ス65a−iのジェンダが反転されなければならないかを意味する。したがって、 フリップ作用が行なわれるか(否か)の状況はカルノー図102に1値(“1”) およびゼロ値(“0”)としてそれぞれ(フリップビットとして)テーブル化さ れている。ブール関数ANDとORの演算に対するカルノー図はない。というのは、 それらのブール演算に対して結果のビットスライス53a−i,59a−iは決して 反転されないからカルノー図はすべてゼロ値であるからである。 C.出力関数ルックアップテーブル 図7A,7B,7C,8A,8B,8C,9A,9B,9C,10A,10B,10 Cおよび11の5つの関数に対するカルノー図が組み合わせられて図12Aに出力関 数のルックアップテーブルとして示され ている。入力ビットスライスの特徴形式とジェンダおよびブール関数AND,ORお よびXORの演算の各々に対応する関数からの出力にそれぞれ相当する4組の列が ある。特に、第1列はビットストリングA40の各ビットスライス41aについての 人力属性42,43からの特徴形式rA70とジェンダgA、およびビットストリングB46 の各ビットスライス47a−jについての入力属性48,49に対する特徴形式rB70と ジェンダgB74によってインデックスされる。ブール関数AND,ORおよびXORの演算 に対する列は作用a80,81,82、特徴形式rC85,86,87、ジェンダgC90,91,92 、takeビットt95,96,97およびフリップビットf100,101,102に相当する出力 を含んでいる。ビットストリングA40からの特徴形式rAとジェンダgAのペア及び ビットストリングB46についての特徴形式rBとジェンダgBのペアが特定されてル ックアップテーブルの行106が選択される。各関数105の出力は行106と選択され たブール演算に対する出力関数に相当する列との交点にある。 VI.実施例 図13を参照すると、理解を容易にするため、図12Aの出力関数ルックアップテ ーブルを図解的に表わすテーブルが示されている。それは、ビットストリングA 40からの特徴形式rAとジェンダgAのペアおよびビットストリングB46についての 特徴形式rBとジェンダgBのペアを使ってルックアップテーブルと同じ形でインデ ックスされている。作用、結果のビットスライスの特徴形式rCとジェンダgC、ta keビットおよびフリップビットはブール関数AND,ORおよびXORでそれぞれまとめ られた列110,111および112にテキスト形式115で記述されている。さらに、入力 ビットスライス41a,47aの各々に対するそれぞれの入力属性42,43,44,48, 49,50、そして特に、特徴形式rA42とrB48、ジェンダgA43とgB49及び長さlA44と lB50が列 113に図解的に描かれている。図12Aのルックアップテーブルと同様に、出力関 数の各々の出力115が、入力属性に相当する行と選択されたブール演算に相当す る列110,111,112の交点に記述されている。 ビットスライスの対に対する2値波形を図解的に示しそれ故に理解が容易な図 13を参照して各ブール演算の例を記述する。 A.ブール関数ANDの演算 所望のブール演算がAND110であるとする。入力ビットストリングA40とB46の 対は図5Aおよび5Bに示されている。結果のビットストリングC52は図6Aに 示されている。第1のビットスライス41aがビットストリングA40から選択され 第2のビットスライス47aがビットストリングB46から選択される。第1のビッ トスライス41aは式(1)から計算された“1”に等しい特徴形式rA42(第1の ビットスライス41aはより短かいビットスライスの長さまでは“ラン”であるこ とを示す)、“1”のジェンダgA43(第1のビットスライス41aは極性が“1” のランを含んでいることを示す)および34ビットの長さlA44を含む入力属性を有 している。より短かいビットスライス47aの長さまでの第2のビットスライスは “0”の特徴形式rB48(第2のビットスライス47aはより短かいビットスライス の長さまではインパルスであることを示す)、“0”のジェンダgB(第2のビッ トスライス47aは極性が“0”のランを含んでいることを示す)および6ビット の長さlB50を含む入力属性を有している。 図13の“1100”に等しい行114(rA,gA,rBおよびgBを組み合わせてビットス トリング“1100”が形成された)が選択されAND演算(列110)に対する出力関数 から出力が決定される。第1のビットスライス41aは第2のビットスライス47a よりも長いビット長lA44を 有しているから、ビットストリングB46のより短かいビットスライス47a−jの 各々が第1のビットスライス41aの長さlA44からtakeビットを引いたものに等し いビット数、すなわち33ビットまで結果のビットスライスC52へとコピーされる 。コピーが完了したら、第1のビットスライス41aには1ビットが残り、第2の ビットスライスはビットスライス47jとなりその中の1ビットが(暗黙の後縁の ゼロビットとともに)残る。 次に、図13の“1010”に等しい行116が選択される(列110)。ビットスライス41 aの残りの部分はより短かいビットスライス47jよりも長いビット長lA44(暗黙 の後縁ビットのゼロを含む)を有するので、ビットストリングB46のより短かい ビットスライス47jがスキャンされその後入力終了状態が検知されて演算が完了 する。 B.ブール関数ORの演算 所望のブール演算がOR lllであるとする。入力ビットストリングA40とB46の 対は図5Aおよび5Bに示されている。結果のビットストリングC52は図6Aに 示されている。第1のビットスライス41aがビットストリングA40から選択され 第2のビットスライス47aがビットストリングB46から選択される。第1のビッ トスライス41aは式(1)から計算された“1”に等しい特徴形式rA42(第1の ビットスライス41aはより短かいビットスライスの長さまでは“ラン”であるこ とを示す)、“1”のジェンダgA43(第1のビットスライス41aは極性が“1” のランを含んでいることを示す)および34ビットの長さlA44を含む入力属性を有 している。より短かいビットスライス47aの長さまでの第2のビットスライスは “0”の特徴形式rB48(第2のビットスライス47aはより短かいビットスライス の長さまではインパルスであることを示す)、“0”のジェンダgB(第2のビッ トスライス47aは極性が“0”のランを含んでいるこ とを示す)および6ビットの長さlB50を含む入力属性を有している。 図13の“1100”に等しい行114が選択されOR演算(列111)に対する出力関数から 出力が決定される。第1のビットスライス41aは第2のビットスライス47aより も長いビット長lA44を有しているから、ビットストリングB46のより短かいビッ トスライス47a−jの各々が第1のビットスライス41aの長さlA44からtakeビッ トを引いたものに等しいビット数、すなわち33ビットまで結果のビットスライス C58へとスキャンされる。スキャンが完了したら、第1のビットスライス41aに は1ビットが残り、第2のビットスライスはビットスライス47jとなりその中の 1ビットが残る。 次に、図13の“1010”に等しい行116が選択される(列110)。ビットスライス41 aの残りの部分はより短かいビットスライス47jよりも長いビット長lA44(暗黙 の後縁ビットのゼロを含む)を有するので、ビットストリングB46のより短かい ビットスライス47jがコピーされその後入力終了状態が検知されて演算が完了す る。 C.ブール関数XORの演算 所望のブール演算がXOR 112であるとする。入力ビットストリングA40とB46 の対は図5Aおよび5Bに示されている。結果のビットストリングC52は図6A に示されている。第1のビットスライス41aがビットストリングA40から選択さ れ第2のビットスライス47aがビットストリングB46から選択される。第1のビ ットスライス41aは式(1)から計算された“1”に等しい特徴形式rA42(第1 のビットスライス41aはより短かいビットスライスの長さまでは“ラン”である ことを示す)、“1”のジェンダgA43(第1のビットスライス41aは極性が“1 ”のランを含んでいることを示す)および34ビットの長さlA44を含む入力属性を 有している。より短かいビ ットスライス47aの長さまでの第2のビットスライスは“0”の特徴形式rB48( 第2のビットスライス47aはより短かいビットスライスの長さまではインパルス であることを示す)、“0”のジェンダgB(第2のビットスライス47aは極性が “0”のランを含んでいることを示す)および6ビットの長さlB50を含む入力属 性を有している。 図13の“1100”に等しい行114が選択されXOR演算(列112)に対する出力関数か ら出力が決定される。第1のビットスライス41aは第2のビットスライス47aよ りも長いビット長lA44を有しているから、ビットストリングB46のより短かいビ ットスライス47a−jの各々が第1のビットスライス41aの長さlA44からtakeビ ットを引いたものに等しいビット数、すなわち33ビットまで結果のビットスライ スC64へとコピーされる。コピーが完了したら、第1のビットスライス41aには 1ビットが残り、第2のビットスライスはビットスライス47jとなりその中の1 ビットが残る。 次に、図13の“1010”に等しい行116が選択される(列110)。ビットスライス41 aの残りの部分はより短かいビットスライス47jよりも長いビット長lA44(暗黙 の後縁ビットのゼロを含む)を有するので、ビットストリングB46のより短かい ビットスライス47jがコピーされその後入力終了状態が検知されて演算が完了す る。 VII.コンピュータプログラム構造 図1のシステムにおいて使用するためのコンピュータプログラムの構造と、本 発明に係りブール演算を達成するためのコンピュータプログラムによって創出さ れるプロセスが図14−16の流れ図に図解的に示される。 A.最大ループ 結果のビットストリングCを形成するために、ビットストリング AおよびBの対についてブール演算110,111,112を施すためのプロセスが図14 に示される。その目的は、各サイクルの中で長さlCの最大ビットスライスに等し いビット数までビットストリングAおよびBの対からのビットスライスをブール 演算に従って反復的に処理することにある。 それらの入力属性42,43,44,48,49,50を含むビットストリングA40および B46は2次メモリ16に格納され、処理のためにBLU 20へロードされるに先立って バッファメモリ18に格納される。ビットストリングA40とB46のそれぞれを反転 させることを表わす1対の反転インジケータフラグcAおよびcBが設定される(ブ ロック149)。次に主プログラムループ(ブロック150−166)に入る。ビットスライ ス41a,47aがビットストリングA40とB46のそれぞれから選択され、それぞれ の長さlA44とlB50、ジェンダgA43とgB49、および特徴形式rA42とrB48を含む入力 属性が決定される(ブロック150)。ジェンダgA43とgB49はそれぞれの反転イン ジケータフラグcAとcBにより、後者のフラグがセットされていたら反転される( ブロック151)。これらの入力属性に基づき、達成されるべき作用(スキャンまた はコピー)80,81,82、結果のビットスライス53a−j,59a−b,65a−jの 特徴形式rC85,86,87とジェンダgC90,91,92、およびtakeビット95,96,97ま たはフリップビット100,101,102が必要であるかが決定される(ブロック152)。 図12Bを参照すると、図12Aに示されるルックアップテーブルに示される作用 a、特徴形式rC、ジェンダgC、takeビットtおよびフリップビットfを格納する ための2次元アレイfunctions〔3〕〔16〕(3列16行)を記述するデータ構造 が示されている。3つの列は所望のブール演算(AND,ORまたはXOR)を示すためで あり、16の行は所望のブール演算に対応する作用a、特徴形式rC、ジェンダgC 、takeビットtおよびフリップビットfを格納するためである。アレイfunction 〔3〕〔16〕は所望のブール演算によってインデックスされて列が選択され、ス トリングA40の特徴形式rAとジェンダgAとストリングB46の特徴形式rBとジェン ダgBでインデックスされて行が選択される。アレイfunction〔3〕〔16〕は外部 記憶装置12に格納され、コンピュータプログラムのソフトウェアがプログラムの スタートアップ時にロードされるとき2次メモリ16へ読み込まれる。作用、特徴 形式およびジェンダが決定され格納されると、ストリングA40とストリングB46 の対について入力ビットスライス41a,47aの中からそれらのビット長lA44とlB 50を比較することによってより長いビット長を持つ入力ビットスライスが選択さ れる(ブロック153)。ビットストリングA40からの入力ビットスライス41aがよ り長いビット長lA44を持つならば、結果のビットスライス53a,59a,65aのビ ット長lC56,62,68はビットスライス長lA44に等しく設定される(ブロック154) 。ビットストリングB46からのビットスライス47aがより長いビット長lB50を持 つならば、ビットストリングA40とB46及びそれらの反転インジケータフラグcA とcBがスワップされる(ブロック155)。その理由は、取り扱いを簡単にするため より長いビット長を持つビットスライスを有するビットストリングが常にビット ストリングAになるようにするためである。次に、結果のビットスライス53a, 59a,65aのビット長lC56,62,68がビット長lB50に等しく設定される(ブロッ ク156)。 入力ビットスライス41a,47aの対に対する入力属性42,43,48,49に基づき takeビット95,96,97が決定され、takeビットがゼロでなければ(ブロック157) 、結果のビットスライス53a,59a,65aの長さlC56,62,68がデクリメントさ れ、より長いビットスライス41aの長さlA44が結果のビットスライス47a,53a ,65aの長さ lC56,62,68だけ減らされる(ブロック159)。そうでなくてtakeビットがゼロで あれば(ブロック157)、もしあればビットストリングA40すなわちより長いビッ トスライスを持つビットストリングの中のビットスライス41aに続く次の入力ビ ットスライス(図5Aに示されるビットストリング40では次の入力ビットスライ スはない)が2次メモリ16から獲得される(ブロック160)。 (ブロック152で決定されたような)コピー作用が必要であれば(ブロック161) 、33に等しい数のビット(結果のビットスライス53a−i,65a−iの長さlC56 ,62,68)がビットストリングB46からコピーされる(ブロック162)。これはさ らに図15との関係において以下に記述される。(ブロック152で決定されたよう な)スキャン作用が必要であれば(ブロック161)、33に等しい数のビット(結果 のビットスライス59aの長さlC56,62,68)がビットストリングB46からスキャ ンされる(ブロック163)。これもさらに図16との関係において以下に記述される 。 入力終了変数eoiBで示されるように、ビットストリングB46の終わりが検出さ れたら(ブロック164)、ビットストリングA40内の残りのビットはビットストリ ングA40の残りのビットを標準プロセッサ25に出力することによって処理され( ブロック165)それによってプログラムが終了する。そうでなくてビットストリン グB46の終わりが検出されず(ブロック164)、入力終了変数eoiAで示されるよう に、ビットストリングA40の終わりが検出されたら(ブロック166)、ビットスト リングB46の残りのビットはビットストリングB46の残りのビットを標準プロセ ッサ25へコピーすることによって処理され(ブロック167)それによってプログラ ムが終了する。そうでなくてビットストリングA40の終わりが検出されなかった ら(ブロック166)、制御はもしあれば次の入力ビットスライス41a,47jの組の ために主プログラムループ(ブロック151−166)の先頭に戻る。 B.コピー手続 上記のプロセスに基づくコピー作用(ブロック162)を達成する手続が図15に示 されている。その目的は結果のビットストリングC52,58,64に対する結果のビ ットスライス53a,59a,65aの長さlC56,62,68に等しい数のビットをビット ストリングB46からスライスごとにコピーすることである。初めに、結果のビッ トスライス53a,59a,65aのジェンダgC55,61,67、特徴形式rC54,60,66お よび長さlC56,62,68がそれぞれプログラム変数g,rおよびlenに格納される( ブロック180)。 ビットストリングB46の1つ以上の入力ビットスライス47a−jの各々を処理 するためのループ(ブロック181−190)が開始する。最初に、現在の入力ビットス ライス47aに対する特徴形式rB48と長さlB50が現在の結果のビットスライス53a ,65aの特徴形式rC54,66および長さlC56,58にコピーされる(それぞれブロッ ク181および182)。プログラム変数lenの値が現在のビットスライス47a−iの長 さlB50だけ減じられる(ブロック183)。結果のビットスライス53a,65aのジェ ンダgC55,67が現在の入力ビットスライス47a−iのジェンダgB49と同じ値に設 定される。ただし、フリップビット100,101,102または反転インジケータフラ グcBがオンであれば、結果のビットスライス53a,65aのジェンダgC55,67は反 転される(ブロック184)。特徴形式rC54,66、ジェンダgC55,67および長さlC56 ,68を含む現在の結果のビットスライス53a,65aが標準プロセッサ25へ出力さ れ(ブロック185)、ビットストリングB46の次の入力ビットスライス47bが獲得 される(ブロック186)。入力終了変数eoiBで示されるように、ビットストリング B46の終わりが検出されたら(ブロック187)、処理ループ(ブロック181−190)か らブロ ック188へ抜ける。処理を完了するため、結果のビットスライス53a,65aの特 徴形式rC54,66とジェンダgC55,67はプログラム変数rとgに格納されていた( ブロック180)特徴形式とシェンダに設定される(それぞれブロック188と189)。上 記のように、フリップビットまたは反転インジケータフラグcBがセットされてい れば結果のビットスライス53a,65aのジェンダgC55,67が反転される(ブロッ ク189)。ビットストリングB46の終わりが検出されなければ(ブロック187)、プ ログラム変数lenにおける長さが現在の入力ビットスライス47b−iと比較され る。格納されている長さlenが現在の入力ビットスライス長lB50よりも短かけれ ば、処理ループ(ブロック181−190)から抜ける。そうでなければ、処理は処理ル ープ(ブロック181−190)の先頭に続く。 処理ループ(ブロック181−190)から抜けたら(ブロック190)、結果のビットス ライス53a,65aの特徴形式rC54,66とジェンダgC55,67は値1(“1”)と現 在の入力ビットスライス47b−iのジェンダgB49に設定される(それぞれブロッ ク191と192)。上記したように、フリップビットまたは反転インジケータフラグc Bがセットされていれば、結果のビットスライス53a,65aのジェンダgC55,67 は反転される(ブロック192)。さらに、現在の入力ビットスライス47b−iはプ ログラム変数lenの値だけ減じられる(ブロック193)。最後に、結果のビットスラ イス53a,65aの長さlC56,68がプログラム変数lenの長さに設定され(ブロック 194)、特徴形式rC54,66、ジェンダgC55,67および長さlC56,58を含む現在の結 果のビットスライス53a,65aが標準プロセッサ25へ出力される(ブロック195) 。ビットストリングB46に対する長さlB50、特徴形式rB48、ジェンダgB49および 入力終了変数eoiBが戻される(ブロック196)。 C.スキャン手続 上記のプロセスに基づくスキャン(ブロック163)を達成する手続が図16に示さ れる。その目的は、長さlCに等しいビット数までビットストリングBの1つ以上 の入力ビットスライス47a−jをスキャンすることにある。特徴形式rC60、ジェ ンダgC61および長さlC62を含む現在の結果のビットスライス59aが標準プロセッ サ25へ出力される。 ビットストリングB46の1つ以上のより短かい入力ビットスライス47a−iを 処理するためのループ(ブロック201−204)が始まる。最初に、結果のビットスラ イス59aの長さlC62がビットストリングB46の長さlB50に等しいビット数だけ減 じられる(ブロック201)。入力ビットストリングB46の次の入力ビットスライス4 7bが獲得される(ブロック202)。入力終了変数eoiBによって示されるビットスト リングBの終わりが検出されたら、処理ループ(ブロック201−204)から抜ける。 そうでなければ、結果のビットスライス59aの長さlC62が現在の入力ビットスラ イス47bの長さlBよりも小さければ(ブロック204)、処理は処理ループ(ブロック 201−204)の先頭に続く。そうでなければ、処理ループ(ブロック201−204)から 抜けて現在の入力ビットスライス47b−iの長さlB50が結果のビットスライス59 aの長さlC62に等しいビット数だけ減じられる(ブロック205)。長さlB50、特徴 形式rB48、ジェンダgB49および入力終了変数eoiB B46が戻される(ブロック206 )。 本発明が好適な実施例を参照して特定的に示され記述されたが、当業者であれ ば本発明の範囲および精神から逸脱することなく形式および詳細において前記お よびそれ以外の変更を加え得ることがわかるであろう。 表 1.
【手続補正書】 【提出日】平成10年6月30日(1998.6.30) 【補正内容】 請求の範囲 1.(補正後)関係データベース管理システムを動かすためのコンピュータを 使用してビットストリングにブール演算を施して結果のビットストリングを形成 するためのステップを具備する方法であって、ビットストリングは関係データベ ース管理システムにおける組織化されたデータを表わし、結果のビットストリン グはユーザによるクエリーの条件を満足する関係データベース管理システムにお けるレコードを表わし、 各ビットストリングは入力ビットスライスに分割され、 結果のビットストリングは結果のビットスライスに分割され、コンピュータを使 用するステップはさらに、関係データベース管理システムにおける組織化された データを表わす 第1のビットストリングからの第1の入力ビットスライスと関係 データベース管理システムにおける組織化されたデータを表わす 第2のビットス トリングからの第2の入力ビットスライスとに基づきブール演算による作用を決 定し、 第1の入力ビットスライスと第2のビットスライスとの中からより長いビット 長の入力ビットスライスを選択し、 より長いビット長を有するビットストリングのビット数まで、より長い入力ビ ットスライスと、より短かいビット長の入力ビットスライスを有するビットスト リングの複数の入力ビットスライスとを、決定された作用に従って処理してユー ザのクエリーの条件を満足する結果のビットストリングについて 少なくとも1つ の結果のビットスライスを形成する各ステップを具備する方法。 2.各入力ビットスライスは属性で表わされ、前記決定するステップは、第1 の入力ビットスライスを表わす属性と第2の入力ビットスライスとに基づいて作 用を特定し、前記処理するステップは、決定された作用に従って属性を処理する 請求の範囲1記載の方法。 3.(補正後)第1の圧縮ビットスライスから第1の入力ビットスライスの入 力属性を決定し第2の圧縮ビットスライスから第2の入力ビットスライスの入力 属性を決定するステップをさらに具備し、前記決定するステップは第1の入力ビ ットスライスの入力属性を第2の入力ビットスライスの入力属性と比較するステ ップを具備する請求の範囲2記載の方法。 4.(補正後)圧縮ビットスライスは、圧縮ビットスライスが表わす各入力 ビットスライスの特徴形式を示すための特徴形式インジケータを具備し、第1の 圧縮入力ビットスライスの特徴形式インジケータを第1の入力ビットスライスの 入力属性に結合し、第2の圧縮入力ビットスライスの特徴インジケータを第2の 入力ビットスライスの入力属性に結合する段階をさらに具備する請求の範囲2記 載の方法。 5.(補正後)圧縮ビットスライスは圧縮ビットスライスが表わす各入力ビ ットスライスの2進値を示すジェンダインジケータを具備し、第1の圧縮入力ビ ットスライスのジェンダインジケータを第1の入力ビットスライスの入力属性に 結合し、第2の圧縮入力ビットスライスのジェンダ.インジケータを第2の入力 ビットスライスの入力属性に結合するステップをさらに具備する請求の範囲2記 載の方法。 6.(補正後)圧縮ビットスライスは圧縮ビットスライスが表わす各入力ビ ットスライスの長さを示す長さインジケータを具備し、第1の圧縮入力ビットス ライスの長さインジケータを第1の入力ビットスライスの入力属性に結合し、第 2の圧縮入力ビットスライスの長さインジケータを第2の入力ビットスライスの 入力属性に結合するステップをさらに具備する請求の範囲2記載の方法。 7.第1の入力ビットスライスと第2の入力ビットスライスの双方の入力属性 はそれぞれが特徴形式を具備し、作用を決定するために第1の入力ビットスライ スの特徴形式を第2の入力ビットスライスの特徴形式と比較するステップをさら に具備する請求の範囲2記載の方法。 8.(補正後)各入力ビットスライスの入力属性はそれぞれの入力ビットスラ イスのビットの2進値を示すジェンダを具備し、作用の決定のために第1の入力 ビットスライスのジェンダを第2の入力ビットスライスのジェンダと比較するス テップをさらに具備する請求の範囲2記載の方法。 9.(補正後)各入力ビットスライスの入力属性はビット長を具備し、作用の 決定のために第1の入力ビットスライスビット長を第2の入力ビットスライスの ビット長と比較するステップをさらに具備する請求の範囲2記載の方法。 10.入力ビットスライスの少なくとも一方はインパルスを具備し、インパルス は同じ2進値の少なくとも1つの連続する2進ビットとそれに続き少なくとも1 つの連続2進ビットの一方の終わりに反対の2進値の2進ビットを具備し、前記 処理するステップはインパルスを処理するステップを具備する請求の範囲1記載 の方法。 11.前記決定するステップは結果のビットストリングを表わす各結果のビット スライスの少なくとも1つの結果の属性を特定する請求の範囲1記載の方法。 12.各結果のビットスライスの結果の属性は結果のビットスライスの複数の特 徴形式の1つを示す特徴形式を具備し、前記処理するステップは特徴形式を決定 するステップを具備する請求の範囲11記載の方法。 13.各結果のビットスライスの結果の属性は結果のビットスライスの複数のジ ェンダの1つを示すジェンダを具備し、前記処理するステップはジェンダを決定 するステップを具備する請求の範囲11記載の方法。 14.各結果のビットスライスの結果の属性は結果のビットスライスのビット数 を示すビット長を具備し、前記処理するステップはビット長を決定するステップ を具備する請求の範囲11記載の方法。 15.(補正後)前記処理するステップは、より短かいビット長の入力ビットス ライスを有するビットストリングの複数の入力ビットスライスへのコピー作用を 達成するステップを具備する請求の範囲1記載の方法。 16.(補正後)前記処理するステップはより長い入力ビットスライスへのスキ ャン作用を達成するステップを具備する請求の範囲1記載の方法。 17.(補正後)第1のビットストリングからの第1の入力ビットスライスと第 2のビットストリングからの第2の入力ビットスライスとに基づきフリップ関数 が必要であるかを決定し、 フリップ関数が必要とされるとき、処理するステップの中で第1の入カビット スライスまたは第2の入力ビットスライスへフリップ関数を施すステップをさら に具備する請求の範囲1記載の方法。 18.(補正後)第1のビットストリングからの第1の入力ビットスライスと第 2のビットストリングからの第2の入力ビットスライスとに基づいてtake関数が 必要であるかを決定し、 take関数が必要であるとき、処理するステップの中で結果のビットスライスと 第1の入力ビットスライスまたは第2の入力ビットスライスとにtake関数を施す ステップをさらに具備する請求の範囲1記載の方法。 19.(補正後)複数のビットストリングを格納するメモリであってその各々は 関係データベース管理システムにおける組織化されたデータを表わし各々が入力 ビットスライスに分割されるものを具備する関係データベース管理システムと、 ビットストリングの1つにブール演算を施して結果のビットストリングを形成 する手段であって、該結果のビットストリングはユーザのクエリーの条件を満足 する関係データベース管理システムにおけるレコードを表わし、 結果のビットス トリングは結果のビットスライスに分割されるものと関係データベース管理システムにおける組織化されたデータを表わす第1のビ ットストリングからの第1の入力ビットスライスと関係データベース管理システ ムにおける組織化されたデータを表わす 第2のビットストリングからの第2の入 力ビットスライスとに基づきブール演算による作用を決定する手段と、 第1の入力ビットスライスと第2のビットスライスとの中からより長いビット 長の入力ビットスライスを選択する手段と、 より長いビット長を有するビットストリングのビット数まで、より長い入力ビ ットスライスと、より短かいビット長の入力ビットスライスを有するビットスト リングの複数の入力ビットスライスとを、決定された作用に従って処理してユー ザのクエリーの条件を満足する結果のビットストリングについて 少なくとも1つ の結果のビットスライスを形成する手段とを具備するシステム。 20.(補正後)関係データベース管理システムを動かすためのコンピュータを 使用して各々が2進ビットスライスの連なりで表わされる1対の2進ビットスト リングへブール演算を効率的に施すための方法であって、2進ビットストリング は関係データベース管理システムにおける組織化されたデータを表わしブール演 算はユーザのクエリーに基づく関数を表わし、 ブール演算に従って1対の2進ビットストリングを処理して、結果のビットス ライスの連なりによって表わされ、ユーザのクエリーの条件を満足する関係デー タベース管理システムにおけるレコードを表わす 結果の2進ビットストリングを 形成するステップを具備し、該ステップは、 ビットスライスの連なりの各々からの1対の2進ビットスライスの中からより 長いビット長の2進ビットスライスを選択し、 より長いビット長を有する2進ビットストリングのビット数まで、ブール演算 を施してユーザのクエリーの条件を満足する結果のビットストリングについて少 なくとも1つの結果のビットスライスを形成するステップを具備する方法。 21.(補正後)結果のビットスライスの連なりの各々はさらに特徴形式を具備 し、前記施すステップは、 1対の2進ビットスライスを比較して結果のビットスライスの連なりの各々に よって表わされるビットスライスの形式を決定し、 ビットスライスの形式を結果のビットスライスの連なりの各々の特徴形式に割 り当てることをさらに具備する請求の範囲20記載の方法。 22.ビットスライスの形式はランまたはインパルスのいずれかを表わし、前記 割り当てるステップはランインジケータまたはインパルスインジケータを特徴形 式にそれぞれ割り当てることをさらに具備する請求の範囲21記載の方法。 23.(補正後)結果のビットスライスの連なりの各々はジェンダをさらに具備 し、前記施すステップは 1対の2進ビットスライスを調べて結果のビットスライスの連なりの各々によ って表わされる2進値を決定し、 結果のビットスライスの連なりの各々のジェンダに前記2進値を割り当てるこ とをさらに具備する請求の範囲20記載の方法。 24.1対の2進ビットスライスの各々はさらに反転インジケータを具備し、前 記調べるステップは反転インジケータを調べることをさらに具備し、前記割り当 てるステップは反転またはフリップが必要であるとき結果のビットスライスの連 なりの各々のジェンダを反転させることをさらに具備する請求の範囲23記載の方 法。 25.(補正後)結果のビットスライスの連なりの各々は長さをさらに具備し、 前記施すステップは、 1対の2進ビットスライスを調べて結果のビットスライスの連なりの各々の長 さを決定し、 長さを結果のビットスラスイの連なりの各々に割り当てることをさらに具備す る請求の範囲20記載の方法。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),OA(BF,BJ,CF ,CG,CI,CM,GA,GN,ML,MR,NE, SN,TD,TG),AP(KE,LS,MW,SD,S Z,UG),EA(AM,AZ,BY,KG,KZ,MD ,RU,TJ,TM),AL,AM,AT,AU,AZ ,BA,BB,BG,BR,BY,CA,CH,CN, CU,CZ,DE,DK,EE,ES,FI,GB,G E,HU,IL,IS,JP,KE,KG,KP,KR ,KZ,LC,LK,LR,LS,LT,LU,LV, MD,MG,MK,MN,MW,MX,NO,NZ,P L,PT,RO,RU,SD,SE,SG,SI,SK ,TJ,TM,TR,TT,UA,UG,UZ,VN (72)発明者 マックール,マイケル ダブリュ. アメリカ合衆国,カリフォルニア 91101, パサデナ,ナンバー 5,イースト デル マー ブールバード 500

Claims (1)

  1. 【特許請求の範囲】 1.コンピュータを使用してビットストリングにブール演算を施して結果のビ ットストリングを形成するための方法であって、各ビットストリングは入力ビッ トスライスに分割され、結果のビットストリングは結果のビットスライスに分割 され、 第1のビットストリングからの第1の入力ビットスライスと第2のビットスト リングからの第2の入力ビットスライスとに基づきブール演算による作用を決定 し、 第1の入力ビットスライスと第2のビットスライスとの中からより長いビット 長の入力ビットスライスを選択し、 より長いビット長に等しい少なくとも一方のビットストリングのビット数まで 、より長い入力ビットスライスと、より短かいビット長の入力ビットスライスを 有するビットストリングの複数の入力ビットスライスとを、決定された作用に従 って処理して少なくとも1つの結果のビットスライスを形成する各ステップを具 備する方法。 2.各入力ビットスライスは属性で表わされ、前記決定するステップは、第1 の入力ビットスライスを表わす属性と第2の入力ビットスライスとに基づいて作 用を特定し、前記処理するステップは、決定された作用に従って属性を処理する 請求の範囲1記載の方法。 3.第1および第2の圧縮ビットスライスから第1の入力ビットスライスの入 力属性と第2の入力ビットスライスの入力属性とを決定するステップをさらに具 備し、前記決定するステップは第1の入力ビットスライスの入力属性を第2の入 力ビットスライスの入力属性と比較するステップを具備する請求の範囲2記載の 方法。 4.圧縮ビットスライスは、圧縮ビットスライスが表わす各入力ビットスライ スの特徴形式を示すための特徴形式インジケータを具 備し、第1の圧縮入力ビットスライスの特徴形式インジケータを第1の入力ビッ トスライスの入力属性に結合し、第2の圧縮入力ビットスライスの特徴インジケ ータを第2の入力ビットスライスの入力属性に結合する段階をさらに具備する請 求の範囲2記載の方法。 5.圧縮ビットスライスは圧縮ビットスライスが表わす各入力ビットスライス の2進値を示すジェンダインジケータを具備し、第1の圧縮入力ビットスライス のジェンダインジケータを第1の入力ビットスライスの入力属性に結合し、第2 の圧縮入力ビットスライスのジェンダインジケータを第2の入力ビットスライス の入力属性に結合するステップをさらに具備する請求の範囲2記載の方法。 6.圧縮ビットスライスは圧縮ビットスライスが表わす各入力ビットスライス の長さを示す長さインジケータを具備し、第1の圧縮入力ビットスライスの長さ インジケータを第1の入力ビットスライスの入力属性に結合し、第2の圧縮入力 ビットスライスの長さインジケータを第2の入力ビットスライスの入力属性に結 合するステップをさらに具備する請求の範囲2記載の方法。 7.第1の入力ビットスライスと第2の入力ビットスライスの双方の入力属性 はそれぞれが特徴形式を具備し、作用を決定するために第1の入力ビットスライ スの特徴形式を第2の入力ビットスライスの特徴形式と比較するステップをさら に具備する請求の範囲2記載の方法。 8.各入力ビットスライスの入力属性はそれぞれがそれぞれの入力ビットスラ イスのビットの2進値を示すジェンダを具備し、作用の決定のために第1の入力 ビットスライスのジェンダを第2の入力ビットスライスのジェンダと比較するス テップをさらに具備する請求の範囲2記載の方法。 9.各入力ビットスライスの入力属性はそれぞれがビット長を具 備し、作用の決定のために第1の入力ビットスライスビット長を第2の入力ビッ トスライスのビット長と比較するステップをさらに具備する請求の範囲2記載の 方法。 10.入力ビットスライスの少なくとも一方はインパルスを具備し、インパルス は同じ2進値の少なくとも1つの連続する2進ビットとそれに続き少なくとも1 つの連続2進ビットの一方の終わりに反対の2進値の2進ビットを具備し、前記 処理するステップはインパルスを処理するステップを具備する請求の範囲1記載 の方法。 11.前記決定するステップは結果のビットストリングを表わす各結果のビット スライスの少なくとも1つの結果の属性を特定する請求の範囲1記載の方法。 12.各結果のビットスライスの結果の属性は結果のビットスライスの複数の特 徴形式の1つを示す特徴形式を具備し、前記処理するステップは特徴形式を決定 するステップを具備する請求の範囲11記載の方法。 13.各結果のビットスライスの結果の属性は結果のビットスライスの複数のジ ェンダの1つを示すジェンダを具備し、前記処理するステップはジェンダを決定 するステップを具備する請求の範囲11記載の方法。 14.各結果のビットスライスの結果の属性は結果のビットスライスのビット数 を示すビット長を具備し、前記処理するステップはビット長を決定するステップ を具備する請求の範囲11記載の方法。 15.前記処理するステップは、より短かいビット長の入力ビットスライスを有 するビットストリングの複数の入力ビットスライスへのコピー作用(図15)を達 成するステップを具備する請求の範囲1記載の方法。 16.前記処理するステップはより長い入力ビットスライスへのス キャン作用(図16)を達成するステップを具備する請求の範囲1記載の方法。 17.第1のビットストリングからの第1の入力ビットスライスと第2のビット ストリングからの第2の入力ビットスライスとに基づきフリップ関数が必要であ るかを決定し、 フリップ関数が必要とされるとき、処理するステップの中で第1の入力ビット スライスまたは第2の入力ビットスライスの少なくとも一方へフリップ関数を施 すステップをさらに具備する請求の範囲1記載の方法。 18.第1のビットストリングからの第1の入力ビットスライスと第2のビット ストリングからの第2の入力ビットスライスとに基づいてtake関数が必要である かを決定し、 take関数が必要であるとき、処理するステップの中で結果のビットスライスと 第1の入力ビットスライスまたは第2の入力ビットスライスの少なくとも一方と にtake関数を施すステップをさらに具備する請求の範囲1記載の方法。 19.ビットストリングにブール演算を施して結果のビットストリングを形成す るためのコンピュータであって、各ビットストリングは入力ビットスライスに分 割され、結果のビットストリングは結果のビットスライスに分割され、 第1のビットストリングからの第1の入力ビットスライスと第2のビットスト リングからの第2の入力ットスライスとに基づきブール演算による作用を決定す る手段と、 第1の入力ビットスライスと第2のビットスライスとの中からより長いビット 長の入力ビットスライスを選択する手段と、 より長いビット長に等しい少なくとも一方のビットストリングのビット数まで 、より長い入力ビットスライスと、より短かいビット 長の入力ビットスライスを有するビットストリングの複数の入力ビットスライス とを、決定された作用に従って処理して少なくとも1つの結果のビットスライス を形成する手段とを具備するコンピュータ。 20.コンピュータを使用して各々が2進ビットスライスの連なりで表わされる 1対の2進ビットストリングへブール演算を効率的に施すための方法であって、 ブール演算に従って1対の2進ビットストリングを処理して、結果のビットス ライスの連なりによって表わされる結果の2進ビットストリングを形成するステ ップを具備し、該ステップは、 ビットスライスの連なりの各々からの1対の2進ビットスライスの中からより 長いビット長の2進ビットスライスを選択し、 より長いビット長に等しい少なくとも一方の2進ビットストリングのビット数 まで、ブール演算を施して少なくとも1つの結果のビットスライスとするステッ プを具備する方法。 21.結果のビットスライスの連なりの各々はさらに特徴形式を具備し、前記変 換するステップは、 1対の2進ビットスライスを比較して結果のビットスライスの連なりの各々に よって表わされるビットスライスの形式を決定し、 ビットスライスの形式を結果のビットスライスの連なりの各々の特徴形式に割 り当てることをさらに具備する請求の範囲20記載の方法。 22.ビットスライスの形式はランまたはインパルスのいずれかを表わし、前記 割り当てるステップはランインジケータまたはインパルスインジケータを特徴形 式にそれぞれ割り当てることをさらに具備する請求の範囲21記載の方法。 23.結果のビットスライスの連なりの各々はジェンダをさらに具 備し、前記変換するステップは 1対の2進ビットスライスを調べて結果のビットスライスの連なりの各々によ って表わされる2進値を決定し、 結果のビットスライスの連なりの各々のジェンダに前記2進値を割り当てるこ とをさらに具備する請求の範囲20記載の方法。 24.1対の2進ビットスライスの各々はさらに反転インジケータを具備し、前 記調べるステップは反転インジケータを調べることをさらに具備し、前記割り当 てるステップは反転またはフリップが必要であるとき結果のビットスライスの連 なりの各々のジェンダを反転させることをさらに具備する請求の範囲23記載の方 法。 25.結果のビットスライスの連なりの各々は長さをさらに具備し、前記変換す るステップは、 1対の2進ビットスライスを調べて結果のビットスライスの連なりの各々の長 さを決定し、 長さを結果のビットスラスイの連なりの各々に割り当てることをさらに具備す る請求の範囲20記載の方法。
JP09521291A 1995-12-01 1996-11-18 最大ビットスライスを用いてビットストリングにブール演算を施すための方法とシステム Withdrawn JP2000515654A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US56600595A 1995-12-01 1995-12-01
US08/566,005 1995-12-01
PCT/US1996/018509 WO1997021170A1 (en) 1995-12-01 1996-11-18 Method and system for performing a boolean operation on bit strings using a maximal bit slice

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006055239A Division JP4044586B2 (ja) 1995-12-01 2006-03-01 最大ビットスライスを用いてビットストリングにブール演算を施すための方法とシステム

Publications (1)

Publication Number Publication Date
JP2000515654A true JP2000515654A (ja) 2000-11-21

Family

ID=24261049

Family Applications (2)

Application Number Title Priority Date Filing Date
JP09521291A Withdrawn JP2000515654A (ja) 1995-12-01 1996-11-18 最大ビットスライスを用いてビットストリングにブール演算を施すための方法とシステム
JP2006055239A Expired - Fee Related JP4044586B2 (ja) 1995-12-01 2006-03-01 最大ビットスライスを用いてビットストリングにブール演算を施すための方法とシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2006055239A Expired - Fee Related JP4044586B2 (ja) 1995-12-01 2006-03-01 最大ビットスライスを用いてビットストリングにブール演算を施すための方法とシステム

Country Status (6)

Country Link
US (1) US6035311A (ja)
EP (1) EP0912922B1 (ja)
JP (2) JP2000515654A (ja)
AU (1) AU707738B2 (ja)
DE (1) DE69627391T2 (ja)
WO (1) WO1997021170A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6378127B1 (en) * 1998-09-21 2002-04-23 Microsoft Corporation Software installation and validation using custom actions
US7467155B2 (en) * 2005-07-12 2008-12-16 Sand Technology Systems International, Inc. Method and apparatus for representation of unstructured data
US20080030382A1 (en) * 2006-07-17 2008-02-07 Shu-Kai Yang Real Number Coding Apparatus
US10031938B2 (en) 2006-12-04 2018-07-24 International Business Machines Corporation Determining Boolean logic and operator precedence of query conditions
US8229940B2 (en) * 2007-07-16 2012-07-24 International Business Machines Corporation Query predicate generator to construct a database query predicate from received query conditions
US9626421B2 (en) 2007-09-21 2017-04-18 Hasso-Plattner-Institut Fur Softwaresystemtechnik Gmbh ETL-less zero-redundancy system and method for reporting OLTP data
US9053466B2 (en) 2007-10-31 2015-06-09 International Business Machines Corporation Publishing and subscribing to calendar events information via categorical mapping methodology
US8229867B2 (en) * 2008-11-25 2012-07-24 International Business Machines Corporation Bit-selection for string-based genetic algorithms
US10514914B2 (en) * 2017-08-29 2019-12-24 Gsi Technology Inc. Method for min-max computation in associative memory
CN109962711B (zh) * 2019-04-09 2022-07-08 深圳市道通智能航空技术股份有限公司 一种数据压缩方法、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5036457A (en) * 1987-09-24 1991-07-30 Nucleus International Corporation Bit string compressor with boolean operation processing capability
AU632267B2 (en) * 1987-10-09 1992-12-24 Nucleus International Corporation A relational database representation with relational database operation capability

Also Published As

Publication number Publication date
WO1997021170A1 (en) 1997-06-12
EP0912922A4 (en) 2000-03-15
AU1054797A (en) 1997-06-27
JP4044586B2 (ja) 2008-02-06
DE69627391T2 (de) 2004-03-04
AU707738B2 (en) 1999-07-15
US6035311A (en) 2000-03-07
EP0912922B1 (en) 2003-04-09
DE69627391D1 (de) 2003-05-15
EP0912922A1 (en) 1999-05-06
JP2006155663A (ja) 2006-06-15

Similar Documents

Publication Publication Date Title
JP4044586B2 (ja) 最大ビットスライスを用いてビットストリングにブール演算を施すための方法とシステム
US20230048032A1 (en) Methods and systems for handling data received by a state machine engine
US11599770B2 (en) Methods and devices for programming a state machine engine
US20160379114A1 (en) Methods and systems for data analysis in a state machine
JPS5924356A (ja) デ−タ・レコ−ドの探索方法
JP2001236207A (ja) ナンバの集合内で最小/最大値を探索するための方法及び回路
US10489062B2 (en) Methods and systems for using state vector data in a state machine engine
WO1989012363A2 (en) Data compression/decompression apparatus
JPH05189518A (ja) 論理ネットワークを最適化する方法および装置
US5974411A (en) N-way processing of bit strings in a dataflow architecture
JP3026962B2 (ja) 語列圧縮回路
WO2016109570A1 (en) Systems and devices for accessing a state machine
US20190354380A1 (en) Systems and devices for accessing a state machine
JP2752634B2 (ja) ソート処理装置
JP3588049B2 (ja) 処理回路及び検索プロセッサ回路
KR20020080789A (ko) 패스트퓨리에변환 장치
JP3196637B2 (ja) ソートプロセッサおよびソート処理装置
US10769099B2 (en) Devices for time division multiplexing of state machine engine signals
CA2239157C (en) Method and system for performing a boolean operation on bit strings using a maximal bit slice
EP1115056A2 (en) Method and circuits for performing a quick search of the minimum/maximum value among a set of numbers
JPH06105459B2 (ja) ベクトル処理装置
JP3087488B2 (ja) データ復元回路
JPH02158987A (ja) フロッピーディスクファイルのデータ件数検索装置
JPH1021053A (ja) データ処理装置
JPH0589196A (ja) 論理演算処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050531

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050831

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051101

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20080911