JP2002507023A - データ変換用ハードウェアのサポート - Google Patents

データ変換用ハードウェアのサポート

Info

Publication number
JP2002507023A
JP2002507023A JP2000535994A JP2000535994A JP2002507023A JP 2002507023 A JP2002507023 A JP 2002507023A JP 2000535994 A JP2000535994 A JP 2000535994A JP 2000535994 A JP2000535994 A JP 2000535994A JP 2002507023 A JP2002507023 A JP 2002507023A
Authority
JP
Japan
Prior art keywords
address
data
data value
conversion
software
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
JP2000535994A
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 JP2002507023A publication Critical patent/JP2002507023A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 コンピュータに基づくシステムにおけるソフトウェアの極めて効率的な更新を達成するためにリンク手段(24)を介して接続された2つのパーティション(A、B)を含むソフトウェア処理システムが提供される。これら2つのパーティション(A、B)が旧ソフトウェアの実行中に一方のメモリ手段(12)における新ソフトウェアのステートを他方のメモリ手段(32)における旧ソフトウェアのステートに更新するようになっている。特に旧ソフトウェアから新ソフトウェアへのデータの転送は変換すべきデータ変数に関連する変換プログラムのスタートアドレスを出力するようになっているデータ変換サポートデバイス(50)によってサポートされる。

Description

【発明の詳細な説明】
【0001】 (発明の分野) 本発明はデータ変換用ハードウェアのサポートに関し、より詳細にはソフトウ
ェアをアップグレードするためのステートコピー方法で使用するためのデータ変
換用ハードウェアのサポートに関する。
【0002】 (発明の背景) ソフトウェアの更新を実行する際に、更新中のシステムのオペレーションに通
常、ある種の乱れが生じる。この乱れには何時間、または起こり得る場合には何
日もの間、全システムが停止してしまう事態から、例えば数秒の間システムの全
機能のうちのごく限られた部分しか、短時間に不能となるような事態まであり得
る。全く乱れが生じないような事態も考えられ得るが、このようなことは現在の
実際のシステムでは生じないケースである。しかしながら通信の交換のようなシ
ステムでは乱れが小さく、できるだけ短時間であることが重要である。
【0003】 ソフトウェアモジュールを永続的に長く実行しながら、を乱れがない状態でソ
フトウェアを更新するには、旧いソフトウェアを連続的に実行しながら、旧いソ
フトウェアからの必要なデータと共に新しいソフトウェアに更新することが前提
となる。新ソフトウェアのデータが旧ソフトウェアのデータと同じステートに達
したとき、新ソフトウェアは実行を引き継ぐ。
【0004】 ソフトウェアを更新する最も簡単な方法は旧ソフトウェアの実行を停止し、新
しいソフトウェアをロードし、最後に新しいソフトウェアをスタートする方法で
ある。この方法を使用する場合、旧ソフトウェアと新ソフトウェアとの間でデー
タは転送されない。更に、確立されているすべてのソフトウェアプロセスが失わ
れ、新ソフトウェアのロードおよびスタート中にソフトウェアの実行が停止され
る。通常、この方法は例えばワークステーションおよびパソコンで使用される。
【0005】 エリクソンレビュー誌第2号(1996年)の66、67ページの「AXE1
0ソフトウェアのリモートアップグレードおよび更新」には通信システムのため
の改善された方法が記載されている。この方法では旧ソフトウェアがまだ加入者
に対して行われるサービスの確立を処理している間に新ソフトウェアがロードさ
れる。旧ソフトウェアと新ソフトウェアとの間でデータが転送され、転送すべき
データを含むデータ変数はいわゆるデータ変更情報と識別され、コピーするタイ
プまたは変換するタイプのいずれかとなり得る。各変換データ変数に対して、デ
ータ変更情報内で特定される変換プログラムが実行され、変換を実行し、更に変
換出力を新ソフトウェアに転送する。しかしながら既に行われたサービスに必要
なデータを旧ソフトウェアから新ソフトウェアへ転送する間、付加的なサービス
の確立が停止される。
【0006】 これまでの方法の基礎となるハードウェア構造は図16に示されている。新ソ
フトウェアをロードしている間に旧ソフトウェアを連続的に実行できるようにす
るために、システムアーキテクチャはAサイドとBサイドとに区分される。Aサ
イドは第1の処理間制御ユニット10と第1のメモリパーティション12とを含
む。メモリパーティション12はデータおよびソフトウェアモジュールを記憶し
ており、データおよびソフトウェアモジュールは処理兼制御ユニット10内で実
行され、このユニットによって制御される。データ情報とソフトウェア情報とを
相互変換するためにアドレスバス14とデータバス16とが設けられており、こ
れらバスはデータアドレスバス制御ユニット18によって制御される。このデー
タアドレスバス制御ユニット18は、データ−アドレスバス制御ライン20を介
して処理兼制御ユニット10に接続されている。
【0007】 更にアドレスバス14およびデータバス16とソフトウェアを更新するために
設けられた外部更新バス24とをリンクする更新バス制御ユニット22が設けら
れる。この更新バス制御ユニット22は制御のために更新バス制御ライン26を
通して処理制御ユニット10に接続されている。更にオプションは、更新バス2
4を介して転送されるデータに関連するコピー/変換情報をコピー/変換データ
ライン28を通して更新バス制御ユニット22へ転送する方法がある。
【0008】 図16に示されるように、Aサイドに関連して説明したのと同じ構造がBサイ
ドにも適用される。従って、Bサイドでは、第2の処理兼制御ユニット30と、
第2メモリパーティション32とが設けられる。この第2処理制御ユニット30
と第2メモリパーティションとは第2アドレスバス34および第2バスライン3
6によって接続されており、これらバスの双方は第2データアドレスバス制御ユ
ニット38によって制御される。この第2データバス制御ユニット38は第2デ
ータ/アドレスバス制御ライン40を介し、第2処理兼制御ユニット30へ接続
されている。データの外部交換を行うために第2更新バス制御ユニット42が設
けられており、この第2更新バス制御ユニット42は第2更新バス制御ライン4
4を介し、第2処理および制御ユニット30へ接続されている。A/Bサイドと
の間でやりとりされるコピー/変換データは第2コピー/変換データライン46
を介し、第2更新バス制御ユニット42へ転送される。
【0009】 図16に示されるように、このような双区分化されたアーキテクチャは、新ソ
フトウェアをロードし、転送すべきデータを含むデータ変数をコピーし、Aサイ
ドとBサイドとの間で変換しながら、旧ソフトウェアを更に実行できるようにす
るものである。
【0010】 しかしながら、このような方法によって生じる問題は、ソフトウェアを更新す
る間にシステム全体の特性が低下することである。とくに通常、データを転送し
ている間、旧ソフトウェアと新ソフトウェアとでデータを一貫してコピーするた
めにサービスを停止しなければならない。
【0011】 図16に示される双区分化アーキテクチャに関連する別の欠点は、データ変換
のための専用のハードウェアのサポートがないことである。従って、ソフトウェ
アをベースとするデータ変換は時間がかかることがあり、システムの停止時間が
長くなるので、このハードウェア構造を使ったサービスプロバイダの収入が低下
することになる。
【0012】 米国特許第5,155,837号では、このような欠点を解消するために第1の工程で 新サービス用のデータの入力を新ソフトウェアに切り替えることを提案している
。旧ソフトウェアに基づき進行中のサービスがすべて終了した時に、進行中のこ
れらサービスからのデータの出力を旧ソフトウェアから新ソフトウェアに切り替
える。従って、新ソフトウェアが作動する前に旧ソフトウェアに関連するサービ
スを終了しなければならず、この結果、短い期間でサービスを処理することしか
できない。更にこの米国特許第5,155,837号にはデータ変換用ハードウェアのサ ポートは開示されていない。
【0013】 (発明の概要) 上記に鑑み、本発明の目的はコンピュータに基づくシステムにおいてソフトウ
ェアの極めて効率的な更新を達成することにある。
【0014】 本発明によれば、この目的は、第1メモリ手段を備えた第1パーティションと
、第2メモリ手段を備えた第2パーティションとを備え、前記第1パーティショ
ンと第2パーティションとがリンク手段を介して接続されており、旧ソフトウェ
アの実行中に一方のメモリ手段における新ソフトウェアのステートを他方のメモ
リ手段における旧ソフトウェアのステートに更新するようになっており、旧ソフ
トウェアから新ソフトウェアへのデータの転送が変換すべきデータ変数に関連し
た変換プログラムのスタートアドレスを出力するようになっているデータ変換サ
ポートデバイスによってサポートされる、パーティションタイプのソフトウェア
処理システムによって達成される。
【0015】 従って、本発明はコンピュータに基づくシステムにおけるソフトウェアの更新
中に、例えば機能の追加および/または障害の修正に起因する更新中に、旧ソフ
トウェアおよび新ソフトウェアに関連したデータの必要な転送および変換を達成
するためのハードウェア装置を提供するものである。 更に本発明によれば、ノード、ブランチ、サブツリーおよびリーフの2進ツリ
ーデータ構造に従ってソートされた順に(特別なケースでは)オプションとして
メモリデバイスに記憶される所定のデータ値の記憶アドレスを決定するための変
換記憶手段に適したアクセス手段であって、前記メモリデバイスの所定の現在サ
ーチアドレスにおけるデータ値を読み出すための読み出し手段と、前記読み出さ
れたデータ値とサーチすべき前記データ値とを比較し、前記読み出されたデータ
値がサーチすべき前記データ値よりも大であるか小であるかを判別するための比
較手段と、前記比較の結果および前記現在サーチアドレスに基づき、データ値の
ためにサーチすべき次の完全なサーチアドレスを決定するための決定手段とを備
え、所定の許容度以内で前記読み出されたデータ値がサーチすべき前記データ値
に一致するまで、前記読み出し手段、前記比較手段および前記決定手段が前記読
み出し、前記比較および前記決定を再帰的に実行するアクセス手段が提供される
。 従って、特殊なケースに係わるこのアクセス手段は2進ツリーにおけるノード
のアドレスを判断するための記憶集中ポインタ方式を使用する従来の方法と大幅
に異なる。特に2進ツリーを横断中、アドレスの最も重要な部分は2進ツリーの
横断中のどのステップでも変化する。 このため、行がアドレスの最も重要な部分に対応し、列がアドレスの最も重要
でない部分に対応するような行/列アドレス指定方式の代表的なDRAMでは時
間がかかることになる。 これと対照的に、本発明は2進ツリーサーチ中に記憶ロケーションを決定する
ためにポインタを使用することなくメモリデバイス内のあらかじめ決められたデ
ータ値の記憶アドレスを決定するためのアクセス手段およびそれに関連する方法
を提供するものである。更にこのアクセス手段は公知の方法よりも高速で記憶ア
ドレスを決定できる。 基本的には、本発明によればアドレスの最も重要な部分を頻繁に変更する必要
がないようにすること、およびアドレスの列部分とアドレスの行部分とを比較の
結果および現在アドレスに基づき決定することが実現された。本発明ではマッピ
ングの列アドレス部分とマッピングの行アドレス部分とを組み合わせることによ
り、メモリ内でデータ値を発見するまでのサーチ時間を短縮することが可能とな
っている。 本発明によれば、サーチ中にサブツリー内のリーフに達すると、別のサブツリ
ーの新しいルートノードを決定する。このサブツリー内でもデータ値が発見され
なければ、サーチは現在のサブツリー内のリーフノードから別のサブツリーの更
に別のルートノードまで進み、このようなサーチはツリー全体の底部リーフに達
するまで続ける。サーチは頂部から底部までツリーを横断することを常に意味す
るので、サーチの結果、主にサブツリー内部の横断が行われる。最小回数のステ
ップを行う結果、サブツリーが変化する。本発明に係わるマッピングの結果とし
て、サブツリー内部の横断中には列アドレスしか変化しない。従って、行アドレ
スの変化を生じさせるようなステップの回数は最小となる。すなわち行アドレス
の変更は最小に維持される。従って、サーチに要する時間はかなり短縮されるこ
とになる。
【0016】 以下、添付図面を参照し、本発明の好ましい実施例について説明する。
【0017】 (好ましい実施例の説明) 図1は、本発明に係わるデータ変換用ハードウェアのサポートのための基本ア
ーキテクチャを示す。図16を参照してこれまで説明した部品に類似または同一
の部品は同じ番号で表示し、これら部品の説明については本書では省略すること
とする。
【0018】 図1に示されるように、このデータ変換用ハードウェアのサポートのアーキテ
クチャは専用の変換サポートユニット50が設けられているという点で、これま
で公知の方法とは異なっている。ここで、変換サポートユニット50はソフトウ
ェア処理システムの異なるパーティションA、Bに従い、すなわちAサイドおよ
びBサイドに従って別個のユニットでもよいし、また同じユニットでもよい。変
換サポートユニット50は変換キューユニット52と、変換テーブル記憶ユニッ
ト54と、マッチングユニット56と、逆アドレス計算ユニット58とを含む。
【0019】 図1に示されるように、変換サポートユニット50内で変換すべきデータ変数
のアドレスは、アドレス入力ライン60を介し、このユニット50へ供給される
。アドレス入力ライン60はポイント62にてAサイドのパーティションに接続
され、かつポイント64でBサイドのパーティションに接続されている。
【0020】 変数サポートユニット50へ供給されるアドレスは変換キューユニット52に
記憶され、この変換キューユニット52はデータ変数の転送アドレスをバッファ
化し、例えばダイナミックRAMメモリで構成できる。更に変換キューユニット
52が満杯になった時に、キューへの新データの記憶を一時的に停止する必要が
生じた場合、変換キューユニット52から第1バックプレッシャ信号ライン66
を介し、Aサイドにある第1更新バス制御ユニット22または第2バックプレッ
シャ信号ライン68を介し、第2更新制御バスユニット42のいずれかにバック
プレッシャ信号が送られる。
【0021】 図1に示されるように、変換サポートユニット50は更に変換テーブル記憶ユ
ニット54を含み、この記憶ユニット54は最終的に変換キューユニット52へ
転送できる各アドレスのためのエントリを含む。このエントリは変換キューユニ
ット52内のアドレスに関連する変換ソフトウェアおよびデータ構造に関する情
報を誘導できる。従って、一旦変換テーブル記憶ユニット54へアドレスが供給
されると、このアドレスに供給されるアドレスに従った変換テーブルの出力は、
次のDWA、DINFO、PAとなる。
【0022】 DWA: 変換テーブル記憶ユニット54へ供給されるアドレスに関連するデ
ータ構造のスタートアドレスである。 DINFO: 逆アドレス計算および/または変換に必要な変数に関する構造
的情報である。 PA: 変数のための変換プログラムに対するアドレスである。
【0023】 従って、変換サポートユニット50によって実行される第1ステップは、変換
キューユニット52から取り出されたアドレスに対応する変換テーブル記憶ユニ
ット54におけるエントリを探すことである。変換テーブル記憶ユニット54に
おけるサーチを効率的に実行するために、マッチングユニット56が設けられて
おり、このマッチングユニットではアドレス供給ライン60を介し、変換キュー
ユニット52から供給される所定のアドレス以下の最大DWAを探すために、変
換テーブルにおけるサーチが実施される。
【0024】 特に、特殊なケースでは、図5〜図12に関連して下記により詳細に説明する
ように、2進ツリーを使ってマッチングユニット56がサーチを実施する。
【0025】 変換すべきデータ変数のアドレスおよび関連するデータ構造に関する情報が利
用できるようになるとすぐに、これらはアドレス供給ライン70、DWA供給ラ
イン72およびDINFO供給ライン74を介し、逆アドレス計算ユニット58
へ供給される。逆アドレス計算ユニット58はこの情報を使って変換すべき変数
に関する別情報、例えばアレイ内のインデックスまたはマトリックスのためのイ
ンデックスを誘導する。
【0026】 一般に、この結果はN個のインデックスから成り、これらインデックスはオフ
セット供給ライン76−1、....、76−Nを介し、AサイドまたはBサイドの
いずれかに供給される。更に、第1処理制御ユニット10または第2処理制御ユ
ニット30のいずれかにおける変換を実際に実行するのに有効な変換プログラム
のアドレスは、図1に示されている変換プログラムのアドレスライン78を介し
、これらユニットへ供給される。
【0027】 図1に示されるように、データ変換ハードウェアサポートは更新バス24を使
用する。ここで、AサイドとBサイドとの間でアドレスが転送される。このアド
レスは更新され、ロードされたメモリパーティション32または12への書き込
みに使用される。更新すべきサイドにメモリパーティションの独立ユーザ達がい
るので、各サイドにはメモリパーティションのアクセスのための仲裁ロジック(
図示せず)が設けられている。
【0028】 変換プログラムを遅延してスタートしたい場合、本発明によれば、変換サポー
トユニット50はマッチングユニット56および逆アドレス計算ユニット58に
よって行われる変換の結果を記憶するために追加できる関連するバッファユニッ
ト(図示せず)も含むことができる。この場合、この関連するバッファメモリが
変換プログラムの実際のスタートを遅延する。関連するバッファメモリが同じエ
ントリを2回記憶しない場合、あらかじめ指定した遅延インターバル中に同じ変
換が数回スタートしないように保証する。
【0029】 上記ハードウェア構造を使用し、図2および3を参照して、変換のために実行
される基本プロセスについて説明する。説明のために本発明の範囲を限定するこ
となく、データがAサイドからBサイドへ転送され、Bサイドのメモリパーティ
ション内に新ソフトウェアがロードされると仮定する。
【0030】 図2に示されるように、第1ステップ1では、両サイドAおよびBはパラレル
同期モードを実行しており、同じソフトウェアを実行している。更に、図2に示
されたステップ2は第1処理兼制御ユニット10で旧ソフトウェアの実行を続行
しながら、新ソフトウェアをBサイドへロードすることに関するものである。ス
テップ3では、第1処理兼制御ユニット10はAサイドからBサイドへのデータ
のコピーを実行する。
【0031】 ステップ3に関連する下方部分に示されるように、データはコピーできるだけ
でなく、本発明によれば、変換サポートユニット50内におけるBサイドへの転
送中に変換することも可能である。ここで、変換は大きなスピードアップを行う
ために第1処理兼制御ユニット10内での旧ソフトウェアの実行を乱すことなく
、この実行と並列して変換が実行される。
【0032】 図2に示されるように、第2処理兼制御ユニット30は第1処理兼制御ユニッ
ト10内で実行される旧ソフトウェアを乱すことなく、これに平行に第2メモリ
パーティション32の初期化を実行する。ここで、初期化ステップはステップ2
により第2メモリパーティション32への新ソフトウェアのロード直後に実行す
るか、またはステップ3における旧ソフトウェアからコピーされるデータに依存
する場合に、できるだけ速やかに実行される。
【0033】 更に旧ソフトウェアに関連するデータは一部だけを転送することができ、Bサ
イドへの切り替え前または直後に特別な初期化ステップを実行し、切り替えソフ
トウェアからのデータの完全な入力を必要としないデフォルト初期化動作を実行
する。
【0034】 図2に示されるように、ステップ5でBサイドにおいて適当なステートに達す
るとすぐに、第2処理兼制御ユニット30を通した新ソフトウェアの実行への切
り替えが行われる。ここで、メモリパーティション12および32の双方におけ
る対応するソフトウェアモジュールに対し、同じステートが得られた直後に、単
一ソフトウェアモジュールに従って切り替えを行ってもよい。データの部分転送
だけに起因し、切り替え時に転送されない旧ソフトウェアに関連するデータが存
在する場合、このデータは必要であれば新ソフトウェアのスタート前に転送して
もよい。
【0035】 更に、ステップ3および4に関連して図2に示されるように、本発明に係わる
変換サポートユニット50はBサイドのメモリパーティションのための初期化ス
テップ中にも連続して作動する。従って、この理由はソフトウェアは更新プロセ
ス中に連続して作動し、変換サポートユニット50に既に転送されたデータを書
き直すことができるからである。よって、第1メモリパーティション10内での
変化するステートのトラッキングを維持するための新ソフトウェアへの切り替え
までに、バックグラウンド内で1回または数回の更新および変換プロセスが実行
される。この繰り返しプロセスはBサイドメモリパーティション32のための初
期化工程にパラレルに変換サポートユニット50によって実行できる。
【0036】 図3は、図2を参照して説明した更新プロセスに関するフローチャートを示す
。特に準備ステップに関連し、新ソフトウェアがロードされることが理解できよ
う。本発明によれば、Bサイドへの切り替えが行われるまで、変換サポートユニ
ット50はパラレルモードで同時に作動される。
【0037】 従って、本発明によれば、新ソフトウェアの更新および旧ソフトウェアに関連
するデータの変換が、変換サポートユニット50内のハードウェアサポートによ
って実行される間、旧ソフトウェアの実行が中断されることはない。
【0038】 図1〜図3に関連し、データ変換用ハードウェアサポートの基本アウトライン
について説明したが、特に変換テーブル記憶ユニット54に関連する次の細部で
は、図4〜15を参照してマッチングユニット56および逆アドレス計算ユニッ
ト58について説明する。
【0039】 図4は、変換テーブル記憶ユニット54の内部構造を示す。既に概略を述べた
ように、最終的に変換サポートユニット50により変換できる各データ変数に対
し、変換すべきすべての変数に対する一組Vs内にエントリViが設けられている
【0040】
【数12】
【0041】 各アドレス、従って変換テーブル内の各エントリは次のようにデータ構造dj に関連している。
【0042】
【数13】
【0043】 ここで、njはデータ構造における変数の数を示し、αはデータ構造djにおけ
るデータ変数のアドレスを示し、DINFOはデータ構造djにおける変数に関 する構造の情報を示し、Piはそれぞれのデータ変数に割り当てられた変換プロ グラムのスタートアドレスを示す。
【0044】 図4に示されるように、変換テーブルは各エントリviおよびサーチすべきア ドレスに対するデータ構造djの第1変数のアドレスDWAしか記憶しない。換 言すれば、データ構造djの異なるデータ変数に対しては変換テーブル記憶ユニ ット54により常に同じスタートアドレスDWAが出力されることになる。
【0045】 更にエントリDINFOはそれが1次元のアレイに関するものであるか、2次
元のアレイ、すなわちマトリックスに関するものであるか、または他の任意のフ
レキシブルなデータ構造であるかに係わらず、サーチすべきデータ変数のための
構造情報に関するものである。
【0046】 変換テーブルにおける各エントリの第3項目は処理兼制御ユニット10および
30のいずれかにおいて、変換すべきデータ変数に割り当てられた変換プログラ
ムのスタートアドレスPiである。
【0047】 変換サポートユニット50に供給されるデータ構造の各アドレスαに対し、次
の式が成り立つよう、DWA値を有する変換テーブルにおいてエントリviを発 見しなければならない。
【0048】
【数14】
【0049】 図5〜13は、特にこのサーチを最も効率的に実行するようになっているマッ
チングユニット56および変換テーブル記憶ユニット54の実施例を示す。
【0050】 一般に、多数のエントリを含むメモリ内の関連する情報と共に、特定のデータ
値に対する高速サーチを実行しなければならないことが多い。1つの選択方法は
特定データ値に対し複数のデータ値を含むメモリデバイスを逐次サーチすること
であり、データ値が発見されると、関連情報を読み出す。しかしながらメモリデ
バイスにデータ値をランダムに記憶する場合、データ値を発見するように全メモ
リをサーチすることができる。
【0051】 メモリデバイス全体のサーチを回避するために所定の規則によりメモリデバイ
スにデータ値を記憶することもできる。例えば、データ値をソートし、後にこの
規則を使ってサーチ中にデータ値を探すことができる。
【0052】 図5は、列アドレス部分Aおよび行アドレス部分Bを有するアドレスによって
データエントリがアドレス指定される場合、すなわちアドレスS=<B(X),
A(X)>である場合の2次元メモリの一例を示す。ここで、Xは特定の行アド
レスと列アドレスが交差する、2進ツリー内のノードと見なすことができる。図
5に示されるように、個々のデータ値Dはメモリデバイス内にランダムに記憶し
てもよい。別の可能性としてソートされたデータ値を示すために2進ツリーデー
タ構造に従って記憶部分に対するデータ値のマッピングを使用することが考えら
れる。例えば、国際特許出願第WO 96/09580号から、記録データのソートを実行 するのに2進ツリーを使用することが知られている。
【0053】 図6に示されるように、2進ツリーデータ構造では各ノード(データ値を入力
したり読み出すことができる交差ポイントX)は他の2つのノードに接続されて
いる。2進ツリーのサーチ(マッピングされたエントリを有するメモリデバイス
)は次のとおりである。(行アドレスB(X)および列アドレスA(X)に位置
する)ノードX1からデータ値D1を読み出し、このデータ値D1は記憶アドレ スを決定すべきデータ値Iと比較される。I<D1であればツリーの左ブランチ
Lをとり、D1<Iであれば右ブランチRをとる。データ構造(すなわちメモリ
デバイスにおけるデータ値)はノードX2がデータ値D2<D1を有し、データ値 D3>D1となるように論理的に構成される。実際に、例えばデータ[0、Dma x ]の範囲を仮定すると、ルートノードDRNに記憶されるデータ値はツリーをデ ータ値(0....DRN−1)、DRN、(DRN+1....Dmax)に分割する。ここで 、最初に述べたデータおよび最後に述べたデータをそれぞれ左ブランチと右ブラ
ンチとの間のノードにそれぞれ見い出すことができる。しかしながら、個々のデ
ータ値D1、D2、D3はメモリデバイス内にランダムに記憶できるので、2進ツ リーサーチはA(X1)、B(X1)でD1を読み出した後に、D2またはD3のロ ケーション、すなわちメモリアドレスに関する情報を提供しなければならない。
【0054】 従って、従来は1つの解は各データ値D1、D2、D3が関連する(記憶された )2つのポインタを有していた。すなわち読み出されたデータ値より大きいデー
タ値(R)または読み出されデータ値よりも小さいデータ値(L)の位置を示す
アドレスを含む別の2つのメモリ位置を有していた。別のサブレベルごとに、記
憶されるデータ値が図5に示されるようにメモリデバイス自身における先のサブ
レベル(サブツリー)内よりもそれぞれ大小となるような2進ツリー構造体が論
理的に使用されるが、アドレスポインタを使用する論理的マッピングは1つしか
なく、基本的にはデータ値はメモリデバイス内にランダムに記憶される。
【0055】 異なるアドレスポインタと共にデータエントリを使用するには、データ値を読
み出し、サーチすべきデータ値と、記憶すべき第1ノードであるルートノードR
Nをあらかじめ定義しなければならない。かかるサーチアルゴリズムについては
アホ、ホップクロフト、ウルマンによる論文「データ構造およびアルゴリズム」
ISBNO−201−00023−7、155ffページに記載されている。多
数の種類のデータ値を記憶するのに必要とされるメモリスペースによりデータ値
ごとにブランチL、Rを示す別の2つのポインタエントリを記憶しなければなら
ないという欠点が明らかに存在する。
【0056】 図5では、メモリデバイス内の論理的2進ツリーが明瞭に表示されているが、
メモリデバイス内の固定アドレス、すなわちマトリックスアレイの要素に2進ツ
リーデータ構造へのマッピングを使用するという解決案がある。この場合、メモ
リデバイス内の所定ロケーションへの2進ツリーノードをマッピングすることに
よりあらかじめブランチアドレスが知られているので、ここではポインタは不要
であり、ポインタがメモリスペースを占めることもない。これらポインタは評価
する必要はないので、アホ、ホップクロフト、ウルマン著の論文「データ構造お
よびアルゴリズム」ISBN−O−201−00023−7、271ffページ
に開示されているように、サーチ時間を短くすることができる。メモリデバイス
内の特定ロケーションに対する個々のノードX1、X2、X3のかかる暗黙的マッ ピングを使用した場合、1つのサブツリー内のそれぞれの「子」ノードX2、X3 のアドレスを計算できる。実際にコラムアドレスAにより左右ブランチを示すこ
とにより、次のように左ブランチの次のノードのアドレスを計算する。
【0057】
【数15】
【0058】 一方、右ブランチRは次のように計算される。
【0059】
【数16】
【0060】 しかしながら、完全アドレス<B、A>に対するかかるマッピングを使用する
ことは、ツリーを短期間で最初に横断した後に、アドレスの最も重要なパーティ
ションが横断の別のステップごとに変化することを意味する。従って、そのサイ
ズによりダイナミックランダムアクセスメモリ手段に記憶しなければならない大
きなツリーに対してはサーチ時間がかなりの長さとなり得る。実際のアプリケー
ションに対しては、特にアドレスの最も重要なパーティションの変更数を減少す
るような、より高速の方法が必要である。
【0061】 次に説明するような本発明に係わる方法およびアクセス手段は、メモリデバイ
ス、好ましくはダイナミックランダムアクセスメモリDRAMのアドレスに対す
る2進ツリーにおけるノードのマッピングに基づいている。DRAMは通常、極
めて高密度の記憶装置となっているが、これらはランダムに分散されたアクセス
に関してはかなり低速である。本発明に係わる特定のアドレスモードを使用する
と、より低速のアクセス時間が得られる。このため、あるシーケンスの連続アク
セスのアドレスにより所定の制約を満たさなければならない。本発明に係わるマ
ッピングはツリーのサーチの結果、常にこれら制約を満たすようなあるシーケン
スのアクセスが得られることを保証するものである。達成可能な性能の増加(時
間の低速化)は約10倍となる。
【0062】 上で説明したようにDRAMのアドレスビットは行アドレスBおよび列アドレ
スAと称される2つの部分に通常分割される(図5参照)。通常、行アドレスと
列アドレスはサイズが同じである。行アドレスをできるだけ変えないようにしな
がら列アドレスを変えることにより、連続するアクセスを行えるようにする場合
、DRAMの内部構造によりアクセス時間は大幅に短くなる。従って、マッピン
グのための本発明に係わる新規な方法およびアクセス手段により、行アドレスを
できるだけ変えないようにするという基準を満たすツリーサーチアルゴリズムが
可能となる。
【0063】 図7は、本発明により2進ツリーを多数のサブツリーに分割した状態を示す。
全ツリーは多数のサブツリーを含むそのうちの5つのサブツリー1、2、3、4
、5が示されている。図7では、各サブツリーは「k=1」と表示された1つの
ルートノードを有する。同様に、サブツリーの各リーフノードは「k=K」と表
示されている。ここで、Kはサブツリーの深さであり、すなわち各サブツリー内
で点線で示されているにすぎない多数の他のノードが存在する。実際に図7にお
いて図示された各サブツリーは1つのサブツリー当たり総計2 −1個のノード
に対応するK個のレベルを含む。
【0064】 列アドレスおよび行アドレスを介して一旦1つのルートノードにアクセスがさ
れると、多数のレベルK(実際にはレベルKの数はメモリ内の行のサイズに応じ
て決まる)を有するサブツリー内でそれぞれサーチが実行される。各サブツリー
は次のサブツリーのそれぞれのルートノードに接続された(最底の)リーフノー
ドを有する。図7ではノードのうちの1つのサブセットしか完全に示されていな
いことが理解できよう。例えばサブツリー1のリーフノードLNは直接サブツリ
ー3のルートノードX1に選択されている。ルートノードX1とそのリーフノード
2、X3との間には多数の中間ノードが存在する。ルートノードはk=1に位置
し、リーフノードはk=Kに位置する。サブツリー5のリーフノードLNは全体
の2進ツリーのリーフノードも同時に構成する。従って、全体のツリーのうちの
ルートおよびリーフと、サブツリーのうちのルートおよびリーフとを区別するこ
とが重要である。各サブツリーにおいてサーチしている値が見つけられるまで、
すなわち全ツリーのうちのリーフノードがサーチされるまで、サブツリーを横断
するごとに変数kは繰り返して1からKまでステップ状に変化する。
【0065】 サブツリーにおけるレベルの数は実際のメモリのハードウェアに応じて決まる
。本発明によれば、1つの行が2K−1のエントリすなわち列を含むように、メ モリロケーションへのマッピングが実行される。次の説明で分かるように、本発
明に係わる各サブツリーにおけるサーチは1つの個々の行における1回のサーチ
に対応する。行すなわちサブツリー1に沿ったメモリロケーションは(列アドレ
スの増加に従ってシーケンシャルに)特定サブツリーのルートノード、中間ノー
ドおよびリーフノードLNに対応する。読み出された各データ値D1、D2、D3 は探すべきデータ値Iと比較され、サブツリー内の左ブランチまたは右ブランチ
をとる必要があるかどうかの判断を行う。
【0066】 従来の2進ツリーのための図6に示されるように、1つのツリーは内部にサイ
クルを有しない特殊なタイプのグラフである。すなわちツリーをワンステップ横
断した後に先のノードに戻る唯一の方法は同じ道に戻る方法である。このことは
まさに自然の木に一致する。更に、それ自身、1本のツリーを形成するツリーの
うちのどの部分も1つのサブツリーであるので、1本のツリーは一般に多数のサ
ブツリーを含む。
【0067】 図7に示されるような本発明に係わるツリー全体はサブツリーが排他的であり
、他のサブツリーに接続されないよう、すなわち(各々がルートノード、リーフ
ノードおよび中間ノードを含み、これらノードを図9に示されるように内部接続
できるようになっているサブツリーのうちのどれもが、他のサブツリーのいかな
る部分も含まないように、サブツリーに分割されている。当然ながら、ツリー全
体からサブツリーを形成する方法は多数存在する。ツリーをサブツリーに分割す
るということは、この分割は図7に示されるように行うことを意味しないので、
このような事実は重要である。従って、図7は本発明で行われる特殊なタイプの
サブツリーへの分割を示している。
【0068】 1つの行(サブツリー)内のデータの構造は図9に示されるようなものである
。ルートノードRNは常に第1列アドレスA=1にマッピングされる。Dminと Dmaxとの間のデータレンジを仮定した場合、ルートノードRNに位置するデー タ値D1は左までのノードに位置するデータ値D=[Dmin、D1−1]と右まで のノードに記憶されているデータ値D=[D1+1、Dmax]とに分割する。分割
によりデータの正確な値ではなく範囲しか与えられないことに留意することが重
要である。実際にk=2における次のノードはこれらノードに記憶されているそ
れぞれのデータ値D2、D3に従ってサブ分割を再び実行する。しかしながら、図
9から判るように列アドレスA’=2Aにはデータ値D2<D1が位置し、一方、
新しい列アドレスA’=2A+1には右ブランチのデータ値D3が位置する。再
び列アドレス2A、2A+1にそれぞれデータ値D4、D5が記憶される。K=3
と仮定すると、明らかにデータ値D4、D5、D6、D7は図9に示されるようなサ
ブツリーのリーフノードを構成する。一般に、左ブランチ上の新ノードアドレス
は2Aとなり、右ブランチの新ノードアドレスは2A+1となる。一般に2K-1 個のリーフノードが存在するが、一方、明らかに列アドレス2K-1−1にデータ 値DKが記憶される。中間ノードINの数は2K-1−2個となる。このことは、個
々の列アドレスへのノードのマッピングが1行であることを示している。
【0069】 しかしながら、1本の行でリーフノード(K=3の場合、D4、D5、D6、
D7もしくはDKすなわち列の右端部までの2K-1個のノード)に達すると、問題
はマトリックスメモリ内のどこに次のルートノード(K=3の場合、D4'、D4' ' ....であり、k=Kの場合、DK'、DK'')が位置するかということである。図
9に示されるように、次のサブツリーのルートノードは常に位置A=1に位置す
るが、これらルートノードは必ずしも次の行に記憶されるルートノード、次の中
間ノードおよびリーフノードではない。本発明によればコラム位置A=1および
行位置B(L(X))およびB(R(X))に次のサブツリーの次のルートノー
ドが位置する。本発明によれば、左ブランチに対するデータ値D4 ',DK 'は次の
位置に記憶される。
【0070】
【数17】
【0071】 右ブランチで接続されたサブツリーの次のルートノードは下記の行アドレスに
位置する。
【0072】
【数18】
【0073】 図8からも判るように、次のサブツリー(関連する行)は、必ずしも先のサブ
ツリーに隣接するわけではない。
【0074】 図9に従い、メモリ内の記憶位置に2進ツリーのノードをマッピングすること
は、ツリー内の(従って、更に図7、8、9における値が示すようにサブツリー
内の)値が大きくなる順にソートされる2進ツリーのノードにエントリが記憶さ
れることを意味する。
【0075】 当然ながら、(図9に示されているようなメモリの行における特定の順序に対
応する)2進ツリー内の大きくなる順に個々のデータ値を記憶することは、各サ
ブツリーで使用される、サブツリーのリーフから次のサブツリーのルートノード
までのサーチアルゴリズムに影響を与える。
【0076】 先に説明したように、主な目的は行の変化をできるだけ少なくすることである
。すなわち列方向のサーチだけが極めて高速となるので、アドレスS=<B、A
>の最も重要な部分をできるだけ少ない回数しか変えないようにすることである
。列方向の特定順序に従った1つの行における1つのサブツリーに対するデータ
値を記憶する結果、列方向の最終エントリは各サブツリーのリーフノードLNを
構成しなければならなくなる。どれだけ多くのリーフノードLN(図8における
リーフノードの記憶位置LN)を割り当てるかは、サブツリー内のレベルの数に
応じて決まる。すなわち列方向のメモリのサイズに応じて決まる。例えばレベル
K=3を有するサブツリーは列方向の最も右側の4つの位置にある4つのリーフ
ノードLNを含む(図11、12の例も参照)。
【0077】 説明を通して、上記マッピングを検討する場合、「ノード」なる(論理的)表
現は、メモリにおける(物理的な)マッピングされたメモリ位置に均等であるこ
とに留意すべきである。
【0078】 上に概略を示したように、本発明は各行がサブツリーに対応し、各行、すなわ
ちサブツリーによって特定のサーチ方法を使用するように2進ツリーを2次元の
メモリ空間にマッピングするものである。このサーチは読み出された値とサーチ
すべきデータ値とが一致することが判った場合、またはリーフノードLFが発見
された場合のいずれかにおいて、各サブツリーにおけるサーチは停止される。従
って、各サブツリーにおけるサーチを実行する間、サーチアルゴリズムはサブツ
リーが存在するレベルのトラックを位置しなければならない。その理由は、リー
フノードに到達した場合に行アドレスBの変更が行われるにすぎないからである
。本発明では、各サブツリーにおいてサーチアドレスを計算できることが判った
だけでなく、比較の結果およびリーフノードの現在アドレスのみから次のサブツ
リーの特定の新ルートノードアドレスを計算できることも判っている。すなわち
本発明によれば、次のデータ値を読み出すべきノードの記憶アドレスを指定する
新完全アドレスS=<B、A>は、比較の結果に基づき、現在読み出されている
メモリ位置の現在アドレスから計算される。このことは、サブツリー内の次のノ
ードのアドレスにも適用され、サーチすべき次のサブツリーの次のルートノード
の記憶アドレスを探すのにも有効である。
【0079】 図10は、本発明に係わるサーチ方法の実施例に係わるフローチャートを示す
。このアルゴリズムでは完全2進ツリーは図7に従い、サブツリーに分割されて
おり、ルートサブツリーの下のレベルにある最も左側のサブツリーはカットされ
ていることに留意すべきである。
【0080】 ここに説明するように、m個の列によってメモリをあらかじめ定める場合、レ
ベルの数はK=ln(m)/ln2(すなわち次に小さい整数)であり、実際の
ハードウェアの列アドレスにおけるビット数はK(ここでKはサブツリーにおけ
るレベルの数)に等しい。図7、図8、図9におけるすべての例では、ツリーの
形成に起因し、列アドレス0は使用しない。実際にmが列の総数を指定し、Kが
サブツリー内のレベルの数を指定する場合、m個のレベルのうちのm−1または
より小さい場合には2K−1個の列しか使用されない(図7、8、9を参照)。
【0081】 従って、ステップS1でサーチ方法をスタートした後に、第1サブツリー1の
レベルはk=1にセットされる。すなわちサブツリー1のルートノードRNでサ
ーチがスタートされる(図7参照)。次にステップS3において、サーチすべき
データ値I、サブツリーあたりのレベル数Kだけでなく、ルートノードRNのロ
ケーションすなわちルートアドレス[(2進表記で)<B(0)、A(0)>=
<0、1>]が入力される。従って、第1サブツリー1のルートノードRNはサ
ーチアルゴリズムのエントリポイントである。
【0082】 ステップS4では、現在のアドレス<B(0)、A(0)>におけるデータ値
Dおよび関連する情報がサブツリー1のルートノードRNから読み出される。ス
テップS5において、読み出されたデータ値Dは探すべきデータ値Iと比較され
る。ステップS5において、D=Iの一致が発見されると、サーチはステップS
11において終了となる。
【0083】 ステップS5において、読み出されたデータ値Dがサーチすべきデータ値Iよ
りも大となれば、ステップS6においてリーフノードLNに達しているかどうか
を判断する。この判断は実行数kとレベルの所定数Kとを比較することによって
行うことができる。ステップS6において、k<Kとなると、ステップS9、S
11を実行する。ステップS9では左ブランチ(I<D)に沿ったサブツリー1
内のリーフノードのできるだけ中間としての新アドレスを計算するのに、次の式
を使用する。
【0084】
【数19】
【0085】 ここで、B(L(X))およびA(L(X))はサブツリー1内の次のサブノ
ードの新行アドレスおよび列アドレスをそれぞれ示す。その後、ステップS14
において、深さレベルの実行数kを増加する。
【0086】 同様に、ステップS5において、I>Dと判断されれば、ルートノードRNか
らの右ブランチをとり、ステップS8においてサブツリーの全深さに達していな
いと判断されれば、すなわちk<Kと判断された場合、S9、S14と同じよう
にステップS12、S16を実行する。ここで、次の式(2)は次のようにサブ
ツリー1内の次のエントリ、すなわちサブノードの記憶アドレスを定めたもので
ある。
【0087】
【数20】
【0088】 ステップS5、ステップS6、S8およびステップS9、S12から判るよう
に、サブツリー内では列アドレス部分Aしか変更されない。すなわち左ブランチ
において2倍にされるか、または右ブランチにおいて2倍にされ、更に1つの列
だけ右側に移動されるだけである。ステップS5における判断と無関係に、行ア
ドレス部分Bは同じままであることに留意することが重要である。読み出された
データ値がより大きい場合、列アドレスの2倍のジャンプがあり、読み出された
データ値がサーチすべき値Iよりも小さければ、現在の列アドレス+1の2倍と
される。
【0089】 当然ながら、k<K(ここでK=1つのサブツリーにおける最大深さ、すなわ
ちレベルの数であり、このKはあらかじめ定められる)ではステップS9、S1
2が実行されるだけであるので、ステップS9、S12で定められた新アドレス
A、Bにおける新データ値Dがステップ4で読み出される。参照符号Rは個々の
ステップS4、S5、S6、S9、S14およびS4、S5、S8、S12、S
16をそれぞれ通るこのような再帰的実行を示す。この再帰プロセス中にサブツ
リー内でデータ値(I=D)が見いだされると、アルゴリズムはステップS11
において終了に達する。
【0090】 しかしながら、k回繰り返した後に、ステップS6またはステップS8におい
て、割り当てられたサブツリーの全深さに達したかどうか、すなわちk=Kとな
ったかどうかが判断される。このことは、リーフノードの記憶位置LNに到達し
なければならないことを意味している。図9に示されるようなデータ値のマッピ
ングを使用すれば、リーフノードLNは図8のメモリデバイスのアドレススペー
スにおいて列アドレスAのより高い端部(すなわち行の右端部)において最終の
K-1個のメモリ位置に対応しなければならないことが明らかである。
【0091】 サブツリーにおいてかかるリーフノードLNに達した場合、ステップS10、
S13において、次の式(3)、(4)を使用し、別のサブツリーのルートノー
ドの新しい行アドレスおよび列アドレスをそれぞれ計算する。
【0092】
【数21】
【0093】
【数22】
【0094】 リーフノードが発生した場合、列アドレスAはステップS5における判断と独
立して第1列に設定されること、すなわちA(L(X))=A(R(X))=1
となることが、式(3)、(4)から理解できる。しかしながら、ステップS5
における判断に応じて新しい行アドレスBが選択される。
【0095】 リーフノードLNからの矢印が式(3)、(4)に従った計算を示す図8およ
び図9から、列A=1に次のサブツリーの次のルートノードが位置するが、予想
したように次の隣接するサブツリー2には位置しないことに留意することは興味
深いことである。これと対照的に、式(3)、(4)は、サーチすべき次のサブ
ツリーの次のルートノードの新しい行アドレスが(サブツリーにおけるもっとも
左へのリーフノードを除き、すなわち図11の例における13〜19のイメージ
ングを除き)次の新行アドレスでないある種の列−行イメージングを実行する。
【0096】 ステップS13ではサーチすべき次のサブツリーの次のルートノードを決定し
た場合、明らかに次のサブツリーにおけるサーチはレベル1、すなわちルートノ
ードアドレスからスタートするので、kはステップS17においてk=1にリセ
ットされる。次にステップS4において再び次のデータ値Dが読み出され、Dと
Iとの一致が見いだされるか、再び新サブツリーのリーフノードが見いだされる
まで、新しいサブツリー(新しい行)に対しステップS5,S6,S9,S14
,またはS5,S8,S12,S16が再帰的に実行される。
【0097】 当然ながら、次のサブツリー(例えば図8内の4または5)においてもデータ
値が見つからず、従ってリーフノードLNに達することがあり得る。例えばサブ
ツリー5において、リーフノードLNに達した場合、式(3)または式(4)の
いずれも、(行の数と列の数が同じ場合に)行アドレススペース内に行アドレス
を含まないことがあり得る。行の数が列の数よりも大であれば、当然、新しいサ
ブツリーの新しい別の計算を実行できる。このことは、より多数のサブツリー(
行)を利用できることを意味する。実際に、既にアルゴリズムが図7においてサ
ブツリー2または3より下に達している場合、行アドレス内のビット数は列アド
レス内のビット数の2倍となっていなければならない。その理由は、2進ツリー
内で更にレベルが増すごとに、ノードの数は本来倍になるからである。
【0098】 サブツリー4においてリーフノードに達したときに更に別のルートノードを決
定できない場合、このことは、サブツリー内では2進サーチでデータ値を発見で
きず、よって2進ツリー全体でもデータ値を発見できないことを意味する。
【0099】 好ましくはステップS5において、所定の許容値内でDとIが一致するよう、
すなわち|D−I|<ΔD(ここでΔDはあらかじめ特定した所定の許容値を示す
)である場合に一致が発見されるように、所定の許容値を認める。
【0100】 特に図10におけるポイントAおよびBにおいて上で概略を述べた式(13)
に従った特性を得るために、更に図17に示されるような次のステップを実行す
る。
【0101】 ポイントAにおいて、第1ステップS21Aは現在のノードが全体のツリーの
うちのリーフノードであるか否かのテストに関連するものである。このテストは
真でなければアルゴリズムは図10におけるステップS6へ進む。しかしながら
、現在ノードがツリー全体のうちのリーフノードである場合、DおよびInfo
(D)の最後にセーブした値を使用し、その後、図7におけるステップS22A
およびS23Aに示されるようにアルゴリズムを停止しなければならない。
【0102】 ポイントBにおいて、第1ステップS21Bは現在のノードがツリー全体のう
ちのリーフノードであるか否かのテストに関連するものである。このテストが真
でなければ、将来起こり得る使用のためにDおよびInfo(D)の現在値をセ
ーブする。次にアルゴリズムは図10におけるステップS8へ進む。しかしなが
ら現在のノードがツリー全体のうちのリーフノードである場合、DおよびInf
o(D)の現在値を使用し、その後、図17におけるステップS22BおよびS
23Bに示されるようにアルゴリズムを停止しなければならない。
【0103】 図11、図12は列アドレスAおよび行アドレスBに対して2進表記を使用す
る特定の例(K=3)に対する図7、図8、図10における一般的アルゴリズム
を示す。K=3はメモリアドレススペース内に原則的に8つの列と、少なくとも
8つの行が設けられていることを意味する。2進ツリーの頂部にあるどの第1ル
ートノードRNもアドレスA(0)、B(0)=(000、000)を有する場
合、式(1)、(2)は列アドレスを変更しないので、第1列アドレスA=00
0は使用しない。従って、最初、図10に示されるステップS4を実行する際に
、ルックアップすべき第1ノードは常に図11内のメモリ内の上部左メモリロケ
ーションとなる。すなわち第1サブツリーのうちの上部の第1ルートノード(す
なわち2進ツリー全体のうちのルートノード)におけるB(0)=0およびA(
0)=1となる。
【0104】 行および列のアドレス番号に対する2進表示を使用すると、図12はアドレス
000、001を有する最初の2つの行に位置するサブツリー1およびサブツリ
ー2を示す。
【0105】 図11におけるメモリデバイス内のデータ値Dの割り当ては、既に図7を参照
して一般的に説明したように、図12に従って行われる。図11および図12の
例では、すべてのデータ値は所定のインターバル0〜100に属すものと仮定す
る。ルートノードから始まって、対応する値56はこのインターバルを2つの新
しいインターバル、すなわち0〜55(左ブランチ)および57〜100(右ブ
ランチ)に分割する。次に、左の子孫ツリーに下方のインターバル0〜55に属
するすべての値を記憶し、一方、右の子孫ツリー内により高いインターバル57
〜100に属するすべての値を記憶する。各レベルで新しいインターバルを使用
し、より低いすべてのレベルでこのプロセスを再帰的に繰り返す。例えばルート
ノードの左の子孫に対してはインターバル0〜55を使用する。次のノードで見
つけられる値は27である。従って、データ値27を含むノードから吊り下げら
れた2つの子孫サブツリーに対し、次の分割はインターバル0〜26および28
〜55となる。このことは、左の子孫サブツリーに0〜26に属するすべての値
が記憶され、右の子孫ツリー内に28〜55に属するすべての値が記憶されるこ
とを意味する。
【0106】 図12、図11に示されるように、データ値をマッピングするこの方法はレベ
ルの数kに従って介しインターバルが異なることを思い出せば、ツリー全体およ
びそのツリーのサブツリーに対して真であることが理解できよう。従って、デー
タ値に関し、図12に示されているものは完全にバランスのとれた2進ツリーで
ある。同じようにこのことは1つのサブツリーのノードにそれぞれ対応する各行
内のエントリによって示されている。
【0107】 正しいマッピングの最も重要な意味は、サーチしている値を見つけることなく
ツリー全体のうちのリーフノードに達した場合は、ツリー内にこの値が全く存在
しないということである。
【0108】 左ブランチLのために2を乗算することは、列アドレス部分Aを左側にシフト
することを意味するにすぎない。右ブランチRの結果、列アドレス部分Aは左に
シフトされ、1が加えられる。従って、k=2における中間ノードにあり、更に
k=3=Kにおけるリーフノードにある個々のアドレスは特定のデータ値Dが位
置する特定の行および列に対応する。図12は図9を参照して説明したように、
それぞれの中間ノードおよびリーフノードにおけるデータ値56、27、82、
....を示す。
【0109】 図15のアルゴリズムが4つのノード0、100または0、101または0、
110または0、111のうちの1つに達するときはいつも次のサブツリーのう
ちの新しいルートノードアドレスを計算することは明らかである。
【0110】 読み出されたデータ値D=13がサーチすべきデータ値Iよりも大きい状況に
おいて、アドレス0、100に対し、かつ認められない新ルートノードの計算の
ためのブランチは1つしかない。この場合、実際にアドレス0、100からの左
ブランチをとらなければならない。すなわち式(3)を使用しなければならない
。しかしながら、この場合、左ブランチ用の式(3)はB(L(X))=2K( 000)+2(100)−2K=0000+1000−1000=0000を生 じさせる。従って、サーチは再びルートノードアドレスから開始することになる
ので、図7および図12において、「カットされた」と表示された第1左ブラン
チをとってはならない。
【0111】 実際にサーチマシン自体は禁止された(カットされた)サブツリーへ進むよう
な横断を回避するテストはしない。しかしながら、このことは第1の(ルート)
サブツリーの左リーフノードにおけるリーフノードに特定のデータ値を記憶する
ことによって保証できる。すなわちルートサブツリーにおける最も左側のノード
はサーチデバイスにより常に右ブランチ、従って右への次のサブツリー(図12
におけるデータ値19)が選択されることを保証するようなデータ値を含む項目
を含む。図12から判るように、ツリー内にアイテムを順に記憶する場合、この
条件は自動的に満たされる。ツリーがカットされている場合、ルートサブツリー
における最も左のノードはツリー全体における最も左のノードともなる。従って
、この場所が最低値を有する項目を記憶する場所である。その他のどの値も右側
となる。
【0112】 しかしながら、右ブランチをとる際には式B(R(X))=001に従うが、
このことはアドレス0、100を有する最も左側のリーフノードLNの結果、0
01、001の次のリーフノードのルートアドレスが得られたことを意味する。
図12に示されるように、このアドレスは実際には第2行に位置するサブツリー
2のルートノードに対応する。図11から判るように、サブツリー1のリーフノ
ードの各々を特定行アドレスにおける位置A=1に位置する新サブツリーの新ル
ートノードにマッピングできる。行の数が列の大きさと少なくとも同じ大きさで
ある場合、サブツリー1の各リーフノードLNを第1列内の新ルートノードアド
レス内に「イメージ」または「転置」できる。
【0113】 図11、図12にも示されているように、2進ツリーのノードにデータ値が記
憶されている場合、式(1)〜(4)によって記述されるサーチアルゴリズムは
、最小時間内で「所定の許容値内で」データ値Iの一致を探すためにメモリマト
リックスをサーチしながら、最小回数の行アドレスの変更を使用することを保証
するものである。最底リーフノードに一致が見つけられなければ、データ値は発
見されなかったことになる。
【0114】 好ましくは列アドレス部分Aおよび行アドレス部分Bの2進表示を使用するこ
とによりサーチを促進できる。その理由は、2を乗算することはシフトレジスタ
においてアドレスを左にシフトすることを意味するにすぎないからである。
【0115】 上記のように、あるサブツリーから次のサブツリーへの横断時に列アドレスを
変更することは、次のステップで説明できる。まず、旧行アドレスをKステップ
だけ左へシフトし、「0」で満たす。次に、行アドレスを変更するために内側サ
ブツリーアルゴリズムを適用する(このことは次の列アドレス内にK+1個のビ
ットがあることを意味する)。次にこの列アドレスの最も左の1ビットが落され
る(このことは次のコラムアドレス内にK個のビットがあることを意味する)。
次に、この列アドレスを行アドレスのK個の0ビットに加える。最後に、列アド
レスを1にセットする。理解できるように、サブツリーを変更するごとに、図7
、図8、図9、図11および図12を参照してこれまで説明したように、行アド
レスを保持するのに更にK個のビットが必要である。従って、行アドレスにおけ
るビット数は列アドレスにおけるビット数の倍数でなければならない。このこと
は2進ツリー構造を有する変換テーブル記憶ユニットの実施例を使用する本発明
にかかわる好ましいマッピングである。
【0116】 しかしながら、行アドレス内のビット数が列アドレス内のビット数の倍数でな
いようなケースに対しても、同様な見解を保持できる。ここで、まず上記の好ま
しい数の行および列を満たす最小ツリーを構築する。次に、行アドレスの存在し
ていない部分にノードを含むすべてのサブツリーをカットする。従って、ブラン
チのカットを使用し、データを割り当てる際に行の数が列の数の倍数となってい
ないようなメモリを使用することもできる。再びアルゴリズムがカットされた(
実際には存在していない)禁止サブツリーに入ることを防止するために、カット
されたブランチへのパスをとる必要がないようにデータ値の特別な記憶を行うこ
とができる。
【0117】 後に図13を参照し、図7〜図12で説明したようなかかるサーチ方法を使用
する本発明にかかわるアクセス手段の一実施例のハードウェアによる実現につい
て説明する。
【0118】 図13では、DRAMはメモリデバイス54を含み、アクセス手段は読み出さ
れたデータ値Dとサーチすべき前記データ値Iとを比較し、前記読み出されたデ
ータ値Dがサーチすべき前記データ値Iよりも大であるか小であるかについて判
断するための比較手段MC84を含む。この比較手段84によりDとIとの一致
が(所定の許容度ΔDの範囲内で)見いだされると、一致信号Mを出力する。比
較の結果、Cは値Dが値Iよりも大であるか小であるかを示す。(詳細には示さ
れていない)読み出し手段82はツリーの横断中に中間の列アドレスおよび行ア
ドレスを保持する2つのレジスタRA、RBから入力される現在サーチアドレス
A、Bにおけるデータ値を読み出す。
【0119】 アクセス手段は更に比較の結果Cおよび前記現在サーチアドレスA、Bを元に
、データ値に対する次にサーチすべき完全なサーチアドレスを決定するためのレ
ジスタRB、RAを含む決定手段86を含む。
【0120】 この決定手段86は前記第1および第2レジスタと、第1および第2計算回路
SMB、SMAとを含み、これら計算回路は比較結果Cと、現在アドレスB、A
と、ステートマシンSEQが出力する制御信号Sに応じてサーチすべき次の列ア
ドレスA’および行アドレスB’を計算する。
【0121】 ステートマシンSEQは2進ツリーデータ構造のサーチ中にサーチステートを
判断し(実際にはkをモニタし、従って本来的には図10内のステップS6、S
8を実行し)、比較の結果をもとに制御信号Sを決定する。基本的にはこのステ
ートマシンSEQはカウンタと、内部STATEtを元に制御信号Sを発生する ためのステート決定手段STDMを含む。基本的には、このステートマシンの内
部ステートは現在レベルの数kに対応し、このkは比較手段MCにより(D&#16
3;IまたはD>Iであるかを示す)新しい比較結果Cが出力されるごとに更新さ
れる。すなわちこのステートはツリーのルートノードに対しては0であり、(ル
ートノードを除く)非リーフノードに対してはK−1であり、リーフノードに対
してはKである。同様に、制御信号Sはルートノードに対しては0であり、非リ
ーフノード(サブノード)に対しては1であり、リーフノードに対しては2であ
る。ステート0の(完全ツリーのうちの)ルートノード(他のサブツリーのルー
トノードに対してはステートは1である)からスタートし、ステートマシンSE
Qはツリーを上部から下に横断する際にサブツリーの区分に従って進む。信号S
は、マッピングに従い、SMBおよびSMAにおけるアドレス計算のタイプを選
択する。
【0122】 特に、アクセス手段の個々のアイテムは次の機能を実行する。第1計算回路S
MBは(関数表記で示される)次の関数を実行する。ここで、Kはサブツリーに
おけるレベルの数である。
【0123】
【数23】
【0124】 ここで、C(D>Iの場合0であり、D<Iの場合1である)は比較の結果を
示し、BおよびB’は現在および次の行アドレスを示し、Sは制御信号を示し、
Kはサブツリーにおけるレベルの前記所定の数を示し、Aは現在の列アドレスを
示す。
【0125】 第2計算回路SMAは(関数表記で示された)次の関数を実行する。
【0126】
【数24】
【0127】 ここで、Cは比較の結果を示し、AおよびA’は現在および次の列アドレスを
それぞれ示し、Sは制御信号を示す。
【0128】 ステートマシンSEQは次の式(8)および(9)に基づき、制御信号Sを計
算する。
【0129】
【数25】
【0130】 ここで、前記ステートマシンSEQのステート判別手段STDMは次の式(9
)に従い、ステートマシンSEQの内部ステートSTATEt(すなわち図10 における値k)を計算する。
【0131】
【数26】
【0132】 ここで、STATEtおよびSTATEt+1はそれぞれ時間tおよびt+1に
おけるステートをそれぞれ示し、tはツリー全体を横断する間、最初からカウン
トした比較の回数を示し(すなわちtは比較工程に換算したサーチの開始からの
時間、すなわちサイクルの表記である)、このtは0からツリー全体におけるレ
ベルの数まで変化し、この値は基本的には任意の大きい数でよいが、Kの倍数に
限定され、STATEt=0は2進ツリーデータ構造のうちのルートノードRNに 対応するメモリロケーションにおいて第1回の比較を実行する時のステートを示
す。
【0133】 これまで概略を述べたように、本発明にかかわる方法およびアクセス手段は、
サブツリー内の変化が生じる前に最小の数の工程しか使用しない。マッピングか
ら続くようにサブツリー内部の横断中は行のアドレスしか変化しない。ダイナミ
ックランダムアクセスメモリを使用しなければならない場合、データ量に起因し
、本発明は2進ツリーデータ構造に従ってソートされるデータ値に対する高速の
サーチエンジンを提供できる。時間の短縮は大きさのオーダとなる。従って、大
きいメモリでデータ値を探すのに時間が重要なすべての技術的分野で本発明を使
用できる。
【0134】 上記説明では、行と列とを交換できることに留意すべきである。その理由はこ
のような交換は記憶方向がそれぞれ行と列で示されるようなメモリの構造に依存
しているからである。
【0135】 上記マッチングユニット56が変換テーブル記憶ユニット54内のアドレスに
対するエントリを明らかにするとすぐに、変換すべきデータ変数に関連するデー
タ構造djのスタートアドレスDWAと構造情報DINFOだけでなく、関連す る変換プログラムのスタートアドレスpiが、上で概略を述べた変換サポートユ ニット50で利用できるようになる。
【0136】 次の工程は変換すべきデータ変数に従ってインデックスを決定することに関す
る工程である。かかるインデックスにより、物理的アドレスではなく、論理的ア
ドレスを使用する変換プログラムにより、変換すべきデータ変数へのアクセスが
可能となる。
【0137】 逆アドレス計算ユニット58における逆アドレス計算において、まず次の値を
計算する。
【0138】
【数27】
【0139】 次に、αinvの値をオフセット値1〜Nに分割する。これらオフセットは一般 的なデータ構造におけるィンデックスに関連しており、上で概略を述べた論理的
アドレス指定を使って実際に変換する前にデータ変数へのアクセスを実行するた
め、スタートアドレスpiと共に変換プログラムによって使用される。
【0140】 図14は、1次元アレイのための逆アドレスの計算を示す。変換すべきデータ
変数αを備えたデータ構造djは初期インデックスに割り当てられたアドレスD WAを有する。従って、αとDWAとの差を計算した後に、1次元アレイ内に各
データ変数の長さを記憶する構造情報DINFOを使ってデータ変数のインデッ
クスを決定する。特にこのインデックスはαとDWAとの差を1次元アレイ内の
各データ変数の長さで割ることによって誘導される。
【0141】 図15は2次元のアレイ、すなわちマトリックスの逆アドレス計算に関連した
別の例を示す。Iの範囲が0〜3であり、Jの範囲が0〜6であるように、マト
リックスA(I、J)の大きさを定めたと仮定する。図14の上部部分はマトリ
ックスAの要素A(2、3)をポイントするアドレスαを取り扱う変換キューユ
ニット52を示す。
【0142】 図14の下方部分に示すように、マトリックスA(I、J)の2次元の論理的
表示がメモリパーティション12、32におけるリニア構造にマッピングされて
いる。ここでDWAはマトリックス要素A(0、0)に対応するマトリックスA
のベースアドレスを示す。
【0143】 データ変数のインデックス2、3を決定するには、ベースアドレスDWA、D
INFOに記憶できる2次元マトリックスの各データ変数の長さ、更にインデッ
クスの範囲、例えば0〜3までの第1インデックス(行)および0〜6までの第
2インデックス(列)も知る必要がある。各アレイ要素の長さが既知である場合
、次の指揮に従ってインデックスの値を計算できる。
【0144】
【数28】
【0145】 ここで、INT(Z)はZの整数部分である。例えばINT(12/7)=1
であり、定数7は第2インデックスの範囲(列の数)および各要素の長さ(1)
から誘導されたものである。従って、Aのベースアドレスが1000である場合
、アドレス1017は次の式に対応する
【0146】
【数29】
【0147】 すなわち、メモリアドレス1017はA(2、3)に対応する。 この方法を使用すると、逆アドレス計算を任意の数のインデックスおよびアド
レス要素の長さに拡張できる。例えば要素の長さは2つのメモリワードである場
合、IおよびJの式における定数7は2×7=14に置換しなければならない。
かかる2ワードのアレイ要素の各ワードにアクセスできる場合、Zの残り部分と
してREM(Z)をとることにより、各要素の大小のワードを計算するのに式を
変更できる。
【0148】 これまでの説明では、可変アドレスに基づく変数の転送を参照して本発明につ
いて説明したが、同じように、より高いレベルのアドレスを使用できる。このよ
うなより高いレベルのアドレスはプログラムのユニット番号、変数のベースアド
レス、適用可能な場合には任意のインデックスの値から構成できる。本発明のこ
のような選択案は、マッチングユニット56をより簡単にでき、逆アドレス計算
ユニット58が不要となるので、変換用ハードウェアを簡略にできる。しかしな
がら、プログラムユニット番号およびこのプログラムユニット番号に対する変数
のベースアドレスからプログラムユニット番号および変換プログラムのスタート
アドレスへの変換はまだ必要である。それにもかかわらず、このようなより高い
レベルの変換方法による利点として、変換のために得られる容量が増すことが挙
げられる。
【図面の簡単な説明】
【図1】 本発明に係わるデータ変換用ハードウェアのサポートデバイスのアーキテクチ
ャを示す。
【図2】 本発明に係わるデータ変換用ハードウェアのサポートデバイスを使ってサポー
トされるステートコピー方法の異なるステップを示す。
【図3】 図2に示されたステートコピー方法によるフローチャートを示す。
【図4】 図1に示された変換テーブル記憶ユニットのアーキテクチャを示す。
【図5】 特定のアドレス位置にデータ値をランダムに記憶する、図1に示されたマッチ
ングユニットのメモリデバイスを示す。
【図6】 図1に示されたマッチングユニットのうちのメモリデバイスにおいて、2進ツ
リーサーチを実行するために使用される論理2進ツリー構造を示す。
【図7】 本発明に係わるサブツリーを使用する2進ツリー構造を示す。
【図8】 図7に示されたサブツリーに各行をマッピングするメモリデバイスを示す。
【図9】 図8に示されたサブツリーにおけるデータの構造を示す。
【図10】 本発明に係わる2進ツリー構造を使用する特殊なケースのためのマッチングユ
ニットによって使用されるサーチ方法を示すフローチャートである。
【図11】 2進ツリー構造に従ったメモリに記憶されたデータ値の一例を示す。
【図12】 図11における例に対応する2進ツリーおよびノードのそれぞれの位置を示す
【図13】 図1に示された変換テーブル記憶ユニットに記憶されるデータ値にアクセスす
るための、本発明に係わるアクセス手段の一実施例を示す。
【図14】 図1に示された逆アドレス計算により実行される逆アドレス計算のための一例
を示す。
【図15】 図1に示された逆アドレス計算により実行される逆アドレス計算のための別の
例を示す。
【図16】 本発明の技術的な背景により区分されるタイプのソフトウェア処理システムの
ためのアーキテクチャを示す。
【図17】 式(13)に従った出口条件を得るための、図10に示されたアルゴリズムへ
の加算を示す。
【符号の説明】
10 第1処理兼制御ユニット 12 第1メモリパーティション 14 第1アドレスバス 16 第1データバス 18 第1データアドレスバス制御ユニット 20 第1データアドレスバス制御ライン 22 第1更新バス制御ユニット 24 更新バス 26 第1更新バス制御ライン 28 第1コピー/変換データライン 30 第2処理兼制御ユニット 32 第2メモリパーティション 34 第2アドレスバス 36 第2データバス 38 第2データアドレスバス制御ユニット 40 第2データアドレスバス制御ライン 42 第2更新バス制御ユニット 44 第2更新バス制御ライン 46 第2コピー/変換データライン 50 変換サポートユニット 52 変換キューユニット 54 変換テーブル記憶ユニット 56 マッチングユニット 58 逆アドレス計算ユニット 60 アドレス入力ライン 62 第1アドレス接続ライン 64 第2アドレス接続ライン 66 第1バックプレッシャ信号ライン 68 第2バックプレッシャ信号ライン 70 アドレス供給ライン 72 DWA供給ライン 74 DINFO供給ライン 76−1〜76−N オフセット供給ライン 78 変換プログラムアドレスライン 82 マッチングユニットにおける読み出しユニット 84 マッチングユニットにおける比較ユニット 86 マッチングユニットにおける決定ユニット
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年3月2日(2000.3.2)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】請求項1
【補正方法】変更
【補正内容】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】請求項2
【補正方法】変更
【補正内容】
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】請求項3
【補正方法】変更
【補正内容】
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】請求項4
【補正方法】変更
【補正内容】
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】請求項5
【補正方法】変更
【補正内容】
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】請求項6
【補正方法】変更
【補正内容】
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】請求項7
【補正方法】変更
【補正内容】
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】請求項8
【補正方法】変更
【補正内容】
【数1】 に従い、変換テーブル記憶手段(54)におけるエントリを決定する、請求項5
〜請求項7のいずれかに記載のソフトウェア処理システム。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】請求項9
【補正方法】変更
【補正内容】
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】請求項10
【補正方法】変更
【補正内容】
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】請求項11
【補正方法】変更
【補正内容】
【手続補正12】
【補正対象書類名】明細書
【補正対象項目名】請求項12
【補正方法】変更
【補正内容】
【手続補正13】
【補正対象書類名】明細書
【補正対象項目名】請求項13
【補正方法】変更
【補正内容】
【手続補正14】
【補正対象書類名】明細書
【補正対象項目名】請求項14
【補正方法】変更
【補正内容】
【手続補正15】
【補正対象書類名】明細書
【補正対象項目名】請求項15
【補正方法】変更
【補正内容】
【手続補正16】
【補正対象書類名】明細書
【補正対象項目名】請求項16
【補正方法】変更
【補正内容】
【数2】 に従い、変換テーブル記憶手段(54)におけるエントリを決定する、請求項1
3〜請求項15のいずれかに記載のデータ変換サポートデバイス。
【手続補正17】
【補正対象書類名】明細書
【補正対象項目名】請求項17
【補正方法】変更
【補正内容】
【手続補正18】
【補正対象書類名】明細書
【補正対象項目名】請求項18
【補正方法】変更
【補正内容】
【手続補正19】
【補正対象書類名】明細書
【補正対象項目名】請求項19
【補正方法】変更
【補正内容】
【手続補正20】
【補正対象書類名】明細書
【補正対象項目名】請求項20
【補正方法】変更
【補正内容】
【発明の詳細な説明】
【手続補正21】
【補正対象書類名】明細書
【補正対象項目名】0001
【補正方法】変更
【補正内容】
【0001】 (発明の分野) 本発明はデータ変換用ハードウェアのサポートに関し、より詳細にはソフトウ
ェアをアップグレードするためのステートコピー方法で使用するためのデータ変
換用ハードウェアのサポートに関する。
【手続補正22】
【補正対象書類名】明細書
【補正対象項目名】0002
【補正方法】変更
【補正内容】
【0002】 (発明の背景) ソフトウェアの更新を実行する際に、更新中のシステムのオペレーションに通
常、ある種の乱れが生じる。この乱れには何時間、または起こり得る場合には何
日もの間、全システムが停止してしまう事態から、例えば数秒の間システムの全
機能のうちのごく限られた部分だけが短時間に不能となるような事態まであり得
る。全く乱れが生じないような事態も考えられ得るが、このようなことは現在の
実際のシステムでは生じないケースである。しかしながら通信の交換のようなシ
ステムでは乱れが小さく、できるだけ短時間であることが重要である。
【手続補正23】
【補正対象書類名】明細書
【補正対象項目名】0003
【補正方法】変更
【補正内容】
【0003】 ソフトウェアモジュールを永続的に長く実行しながら、乱れがない状態でソフ
トウェアを更新するには、旧いソフトウェアを連続的に実行しながら、旧いソフ
トウェアからの必要なデータと共に新しいソフトウェアに更新することが前提と
なる。新ソフトウェアのデータが旧ソフトウェアのデータと同じステートに達し
たとき、新ソフトウェアは実行を引き継ぐ。
【手続補正24】
【補正対象書類名】明細書
【補正対象項目名】0004
【補正方法】変更
【補正内容】
【0004】 国際特許出願第WO 94/01819号には関連する一例が記載されており、この一例 はコンピュータの作動中にソフトウェアを変更するためのシステムに関するもの
である。特にこの国際特許出願第WO 94/01819号に記載されているシステムは、 初期段階と、ローディング段階と、テスト段階と、ソフトウェアを更新するため
の完了段階との間で異なる。初期段階中はこのシステムは旧ソフトウェアバージ
ョンへすべてのトラヒックを向け、ローディング段階ではシステムは新ソフトウ
ェアバージョンおよびデータ変更情報を受信する。データ変更情報はソフトウェ
アが処理するデータの転送および関連する更新のための半永久データに関するも
のである。更にテスト段階中はシステムは新ソフトウェアバージョンによりテス
トトラヒックを向け、テストトラヒックが成功した場合にはサンプルトラヒック
を向ける。テスト段階に成功した場合、完了段階はすべてのトラヒックを新バー
ジョンへ向ける。旧ソフトウェアによって処理されているすべての旧トラヒック
が一旦完了すると、旧ソフトウェアバージョンを取り出すことができる。 更に、欧州特許第EP0629961A1号には、転送されたデジタルデータを変換する ための方法および装置が記載されている。特に、転送されたデジタルデータは最
初のリレーショナルデータベースに記憶されている情報を第2のリレーショナル
データベースに記憶される情報に変換することに関連するものである。 ソフトウェアを更新する簡単な方法は旧ソフトウェアの実行を停止し、新しい
ソフトウェアをロードし、最後に新しいソフトウェアをスタートする方法である
。この方法を使用する場合、旧ソフトウェアと新ソフトウェアとの間でデータは
転送されない。更に、確立されているすべてのソフトウェアプロセスが失われ、
新ソフトウェアのロードおよびスタート中にソフトウェアの実行が停止される。
通常、この方法は例えばワークステーションおよびパソコンで使用される。
【手続補正25】
【補正対象書類名】明細書
【補正対象項目名】0005
【補正方法】変更
【補正内容】
【0005】 エリクソンレビュー誌第2号(1996年)の66、67ページの「AXE1
0ソフトウェアのリモートアップグレードおよび更新」には通信システムのため
の改善された方法が記載されている。この方法では旧ソフトウェアがまだ加入者
に対して行われるサービスの確立を処理している間に新ソフトウェアがロードさ
れる。旧ソフトウェアと新ソフトウェアとの間でデータが転送され、転送すべき
データを含むデータ変数はいわゆるデータ変更情報と識別され、コピーするタイ
プまたは変換するタイプのいずれかとなり得る。各変換データ変数に対して、デ
ータ変更情報内で特定される変換プログラムが実行され、変換を実行し、更に変
換出力を新ソフトウェアに転送する。しかしながら既に行われたサービスに必要
なデータを旧ソフトウェアから新ソフトウェアへ転送する間、付加的なサービス
の確立が停止される。
【手続補正26】
【補正対象書類名】明細書
【補正対象項目名】0006
【補正方法】変更
【補正内容】
【0006】 これまでの方法の基礎となるハードウェア構造は図16に示されている。新ソ
フトウェアをロードしている間に旧ソフトウェアを連続的に実行できるようにす
るために、システムアーキテクチャはAサイドとBサイドとに区分される。Aサ
イドは第1の処理間制御ユニット10と第1のメモリパーティション12とを含
む。メモリパーティション12はデータおよびソフトウェアモジュールを記憶し
ており、データおよびソフトウェアモジュールは処理兼制御ユニット10内で実
行され、このユニットによって制御される。データ情報とソフトウェア情報とを
相互変換するためにアドレスバス14とデータバス16とが設けられており、こ
れらバスはデータアドレスバス制御ユニット18によって制御される。このデー
タアドレスバス制御ユニット18は、データ−アドレスバス制御ライン20を介
して処理兼制御ユニット10に接続されている。
【手続補正27】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】変更
【補正内容】
【0007】 更にアドレスバス14およびデータバス16とソフトウェアを更新するために
設けられた外部更新バス24とをリンクする更新バス制御ユニット22が設けら
れる。この更新バス制御ユニット22は制御のために更新バス制御ライン26を
通して処理制御ユニット10に接続されている。更にオプションは、更新バス2
4を介して転送されるデータに関連するコピー/変換情報をコピー/変換データ
ライン28を通して更新バス制御ユニット22へ転送する方法がある。
【手続補正28】
【補正対象書類名】明細書
【補正対象項目名】0008
【補正方法】変更
【補正内容】
【0008】 図16に示されるように、Aサイドに関連して説明したのと同じ構造がBサイ
ドにも適用される。従って、Bサイドでは、第2の処理兼制御ユニット30と、
第2メモリパーティション32とが設けられる。この第2処理制御ユニット30
と第2メモリパーティション32とは第2アドレスバス34および第2バスライ
ン36によって接続されており、これらバスの双方は第2データアドレスバス制
御ユニット38によって制御される。この第2データバス制御ユニット38は第
2データ/アドレスバス制御ライン40を介し、第2処理兼制御ユニット30へ
接続されている。データの外部交換を行うために第2更新バス制御ユニット42
が設けられており、この第2更新バス制御ユニット42は第2更新バス制御ライ
ン44を介し、第2処理兼制御ユニット30へ接続されている。A/Bサイドと
の間でやりとりされるコピー/変換データは第2コピー/変換データライン46
を介し、第2更新バス制御ユニット42へ転送される。
【手続補正29】
【補正対象書類名】明細書
【補正対象項目名】0009
【補正方法】変更
【補正内容】
【0009】 図16に示されるように、このような双区分化されたアーキテクチャは、新ソ
フトウェアをロードし、転送すべきデータを含むデータ変数をコピーし、Aサイ
ドとBサイドとの間で変換しながら、旧ソフトウェアを更に実行できるようにす
るものである。
【手続補正30】
【補正対象書類名】明細書
【補正対象項目名】0010
【補正方法】変更
【補正内容】
【0010】 しかしながら、このような方法によって生じる問題は、ソフトウェアを更新す
る間にシステム全体の特性が低下することである。とくに通常、データを転送し
ている間、旧ソフトウェアと新ソフトウェアとでデータを一貫してコピーするた
めにサービスを停止しなければならない。
【手続補正31】
【補正対象書類名】明細書
【補正対象項目名】0011
【補正方法】変更
【補正内容】
【0011】 図16に示される双区分化アーキテクチャに関連する別の欠点は、データ変換
のための専用のハードウェアのサポートがないことである。従って、ソフトウェ
アをベースとするデータ変換は時間がかかることがあり、システムの停止時間が
長くなるので、このハードウェア構造を使ったサービスプロバイダの収入が低下
することになる。
【手続補正32】
【補正対象書類名】明細書
【補正対象項目名】0012
【補正方法】変更
【補正内容】
【0012】 米国特許第5,155,837号では、このような欠点を解消するために第1の工程で 新サービス用のデータの入力をインソフトウェアに切り替えることを提案してい
る。旧ソフトウェアに基づき進行中のサービスがすべて終了した時に、進行中の
これらサービスからのデータの出力を旧ソフトウェアから新ソフトウェアに切り
替える。従って、新ソフトウェアが作動する前に旧ソフトウェアに関連するサー
ビスを終了しなければならず、この結果、短い期間でサービスを処理することし
かできない。更にこの米国特許第5,155,837号にはデータ変換用ハードウェアの サポートは開示されていない。
【手続補正33】
【補正対象書類名】明細書
【補正対象項目名】0013
【補正方法】変更
【補正内容】
【0013】 (発明の概要) 上記に鑑み、本発明の目的がコンピュータに基づくシステムにおいてソフトウ
ェアの極めて効率的な更新を達成することにある。
【手続補正34】
【補正対象書類名】明細書
【補正対象項目名】0014
【補正方法】変更
【補正内容】
【0014】 本発明によれば、この目的は請求項1に記載のパーティションタイプのソフト
ウェア処理システムによって達成される。 この目的は請求項13に記載の特徴事項を有するデータ変換サポートデバイス
によっても達成される。
【手続補正35】
【補正対象書類名】明細書
【補正対象項目名】0015
【補正方法】変更
【補正内容】
【0015】 従って、本発明はコンピュータに基づくシステムにおけるソフトウェアの更新
中に、例えば機能の追加および/または障害の修正に起因する更新中に、旧ソフ
トウェアおよび新ソフトウェアに関連したデータの必要な転送および変換を達成
するためのハードウェア装置を提供するものである。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,UG,ZW),E A(AM,AZ,BY,KG,KZ,MD,RU,TJ ,TM),AE,AL,AM,AT,AU,AZ,BA ,BB,BG,BR,BY,CA,CH,CN,CU, CZ,DE,DK,EE,ES,FI,GB,GD,G E,GH,GM,HR,HU,ID,IL,IN,IS ,JP,KE,KG,KP,KR,KZ,LC,LK, LR,LS,LT,LU,LV,MD,MG,MK,M N,MW,MX,NO,NZ,PL,PT,RO,RU ,SD,SE,SG,SI,SK,SL,TJ,TM, TR,TT,UA,UG,US,UZ,VN,YU,Z W (72)発明者 ヨンソン、ステン、エドバルド スウェーデン国 ファルスタ、リスビクス ガタン 3 Fターム(参考) 5B076 AA17 EA17 5B098 GA04 GD03

Claims (43)

    【特許請求の範囲】
  1. 【請求項1】 a)第1メモリ手段(12)を備えた第1パーティション(
    A)と、 b)第2メモリ手段(32)を備えた第2パーティション(B)とを備え、 c)前記第1パーティション(A)と第2パーティション(B)とがリンク手
    段(24)を介して接続されており、旧ソフトウェアの実行中に一方のメモリ手
    段(12;32)における新ソフトウェアのステートを他方のメモリ手段(32
    ;12)における旧ソフトウェアのステートに更新するようになっており、 d)旧ソフトウェアから新ソフトウェアへのデータの転送が変換すべきデータ
    変数に関連した変換プログラムのスタートアドレスを出力するようになっている
    データ変換サポートデバイス(50)によってサポートされる、パーティション
    タイプのソフトウェア処理システム。
  2. 【請求項2】 前記データ変換サポートデバイス(50)が前記第1パーテ
    ィション(A)のうちの第1処理兼制御ユニット(10)または第2パーティシ
    ョン(B)のうちの第2処理兼制御ユニット(30)のいずれか一方に変換プロ
    グラムのスタートアドレスを出力することを特徴とする、請求項1記載のソフト
    ウェア処理システム。
  3. 【請求項3】 前記データ変換サポートデバイス(50)に供給されるデー
    タ変換用のアドレスの数が許容可能なアドレスの最大数を越える場合に、前記デ
    ータ変換サポートデバイス(50)が第1バックプレッシャ信号ライン(66)
    を介し、前記第1パーティション(A)へ、または第2バックプレッシャ信号ラ
    イン(68)を介し、第2パーティション(B)へバックプレッシャ信号を出力
    するようになっていることを特徴とする、請求項1または請求項2記載のソフト
    ウェア処理システム。
  4. 【請求項4】 前記データ変換サポートデバイス(50)が変換プログラム
    により論理レベルで変換すべきデータ変数へアクセスするための少なくとも1つ
    の論理アドレスを、前記第1処理兼制御手段(10)および前記第2処理兼制御
    手段(30)のいずれか一方へ出力するようにもなっていることを特徴とする、
    請求項1〜請求項3のいずれかに記載のソフトウェア処理システム。
  5. 【請求項5】 前記データ変換サポートデバイス(50)が、 a)変換すべきデータアドレスのためのアドレス情報および構造情報を記憶す
    るようになっている、変換テーブル記憶手段(54)と、 b)データ変数のアドレス(α)およびデータ変数に関連するデータ構造のス
    タートアドレス(BWA)に従って、変換すべきデータ変数のための変換テーブ
    ル記憶手段(54)におけるエントリを探すようになっているマッチング手段(
    56)とを含むことを特徴とする、請求項2〜請求項4のいずれかに記載のソフ
    トウェア処理システム。
  6. 【請求項6】 前記変換テーブル記憶手段(54)が変換すべきデータ変数
    の各アドレスに対し、関連するデータ構造のスタートアドレス(DWA)と、構
    造情報(DINFO)と、関連する変換プログラムのスタートアドレスとを記憶
    するようになっていることを特徴とする、請求項5記載のソフトウェア処理シス
    テム。
  7. 【請求項7】 前記構造情報(DINFO)がデータ変数の長さに関連した
    少なくとも情報と、変換すべきデータ変数に関連したデータ構造(dj)の構成 とを含むことを特徴とする、請求項6記載のソフトウェア処理システム。
  8. 【請求項8】 マッチング手段(56)が、 【数1】 に従い、変換テーブル記憶手段(54)におけるエントリを決定することを特徴
    とする、請求項5〜請求項7のいずれかに記載のソフトウェア処理システム。
  9. 【請求項9】 マッチング手段(56)が2進サーチを実行することにより
    、変換テーブル記憶手段(54)におけるエントリを探すようになっていること
    を特徴とする、請求項5〜請求項8のいずれかに記載のソフトウェア処理システ
    ム。
  10. 【請求項10】 前記マッチング手段(56)が請求項21〜請求項31の
    いずれかに従って実現されることを特徴とする、請求項9記載のソフトウェア処
    理システム。
  11. 【請求項11】 前記データ変換サポートデバイス(50)が前記変換テー
    ブル記憶手段(54)から読み出された情報を使用し、変換すべき変数を論理ア
    ドレスレベルで識別するようになっている逆アドレス計算手段(58)を更に含
    むことを特徴とする、請求項5〜請求項10のいずれかに記載のソフトウェア処
    理システム。
  12. 【請求項12】 前記逆アドレス計算手段(58)が、前記データ変換サポ
    ートデバイス(50)に供給されたアドレス(α)と識別されたデータ構造(d j )のスタートアドレス(DWAi)との差をまず計算し、更に前記変換テーブル
    記憶手段(54)から提供された構造情報(DINFO)を使って、変換すべき
    アドレスに従い、オフセットされた少なくとも1つの論理アドレスを誘導するよ
    うになっていることを特徴とする、請求項11記載のソフトウェア処理システム
  13. 【請求項13】 a)変換すべきデータアドレスのためのアドレス情報およ
    び構造情報を記憶するようになっている、変換テーブル記憶手段(54)と、 b)データ変数のアドレス(α)に従って、データ変数変換プログラムのため
    の変換テーブル記憶手段(54)におけるエントリを探すようになっているマッ
    チング手段(56)とを備えたことを特徴とする、データ変換サポートデバイス
  14. 【請求項14】 前記変換テーブル記憶手段(54)が変換すべきデータ変
    数の各アドレスに対し、関連するデータ構造のスタートアドレス(DWA)と、
    構造情報(DINFO)と、関連する変換プログラムのスタートアドレスとを記
    憶するようになっていることを特徴とする、請求項13記載のデータ変換サポー
    トデバイス。
  15. 【請求項15】 前記構造情報(DINFO)がデータ変数の長さに関連し
    た少なくとも情報と、変換すべきデータ変数に関連したデータ構造(dj)の構 成とを含むことを特徴とする、請求項14記載のデータ変換サポートデバイス。
  16. 【請求項16】 マッチング手段(56)が、 【数2】 に従い、変換テーブル記憶手段(54)におけるエントリを決定することを特徴
    とする、請求項13〜請求項15のいずれかに記載のデータ変換サポートデバイ
    ス。
  17. 【請求項17】 マッチング手段(56)が2進サーチを実行することによ
    り、変換テーブル記憶手段(54)におけるエントリを探すようになっているこ
    とを特徴とする、請求項13〜請求項16のいずれかに記載のデータ変換サポー
    トデバイス。
  18. 【請求項18】 前記マッチング手段(56)が請求項21〜請求項31の
    いずれかに従って実現されることを特徴とする、請求項13〜請求項17のいず
    れかに記載のデータ変換サポート手段。
  19. 【請求項19】 前記変換テーブル記憶手段(54)から読み出された情報
    を使って、変換すべき変数を論理アドレスレベルで識別するようになっているこ
    とを特徴とする、請求項13〜請求項18のいずれかに記載のデータ変換サポー
    トデバイス。
  20. 【請求項20】 前記逆アドレス計算手段(58)が、前記データ変換サポ
    ートデバイス(50)に供給されたアドレス(α)と識別されたデータ構造(d j )のスタートアドレス(DWA)との差をまず計算し、更に前記変換テーブル 記憶手段(54)から提供された構造情報(DINFO)を使って、変換すべき
    アドレスに従い、オフセットされた少なくとも1つの論理アドレスを誘導するよ
    うになっていることを特徴とする、請求項13〜請求項19のいずれかに記載の
    データ変換サポートデバイス。
  21. 【請求項21】 ノード、ブランチ、サブツリーおよびリーフの2進ツリー
    データ構造に従ってメモリデバイスに記憶される所定のデータ値(D)の記憶ア
    ドレス(B(X)、A(X))を決定するためのメモリデバイスのためのマッチ
    ング手段であって、 a)前記メモリデバイスの所定の現在サーチアドレス(B(X)、A(X))
    におけるデータ値を読み出すための読み出し手段(R)と、 b)前記読み出されたデータ値(D)とサーチすべき前記データ値(I)とを
    比較し、前記読み出されたデータ値(D)がサーチすべき前記データ値(I)よ
    りも大であるか小であるかを決定するための比較手段(MC)と、 c)前記比較の結果(C)および前記現在サーチアドレス(B(X)、A(X
    ))に基づき、データ値のためにサーチすべき次の完全なサーチアドレス(B、
    A)を決定するための決定手段(SEQ、SMB、SMA、RB、RA)とを備
    え、 d)所定の許容度以内で前記読み出されたデータ値(D)がサーチすべき前記
    データ値(I)に一致(M)するまで、前記読み出し手段、前記比較手段および
    前記決定手段が前記読み出し、前記比較および前記決定を再帰的に実行する、メ
    モリデバイスのためのマッチング手段。
  22. 【請求項22】 前記データ値が行と列のマトリックスの配置に前記メモリ
    デバイス内に記憶され、各データ値(D)に列アドレス(A)および行アドレス
    (B)が割り当てられることを特徴とする、請求項21記載のマッチング手段。
  23. 【請求項23】 前記決定手段が、 − 次の行および列アドレス(B’、A’)を保持するための第1および第2
    レジスタ(RB;RA)と、 − 比較の結果(C)、現在アドレス(B、A)および制御信号(S)に応じ
    てサーチすべき次の列および行アドレス(B’、A’)を計算するための第1お
    よび第2計算回路(SMB、SMA)と、 − 2進ツリーデータ構造によりサーチ中にサーチステート(STATEt) を決定し、比較の結果(C)に基づき、前記制御信号(S)を決定するためのス
    テートマシン(SEQ)とを含むことを特徴とする、請求項22記載のマッチン
    グ手段。
  24. 【請求項24】 各サブツリー内に所定の数のレベルKを有する2進ツリー
    データ構造に前記メモリデバイス内のデータ値を記憶し、前記ステートマシン(
    SEQ)が前記比較手段(MC)によって実行される比較の回数(t)をカウン
    トするカウンタ(CNT)を含むことを特徴とする、請求項22記載のマッチン
    グ手段。
  25. 【請求項25】 次の式(5) 【数3】 (ここで、Cは比較の結果を示し、Iは、サーチすべきデータ値を示し、Dは読
    み出されたデータ値を示す)に従って、前記比較手段(MC)により前記比較の
    結果(C)を計算することを特徴とする、請求項23記載のマッチング手段。
  26. 【請求項26】 次の式(6) 【数4】 (ここで、Cは比較の結果を示し、BおよびB’はそれぞれ現在および次の行ア
    ドレスを示し、Sは制御信号を示し、Kはサブツリー内の前記所定の数のレベル
    (列アドレス内のビット)を示し、Aは現在の列アドレスを示す)に従って前記
    第1計算回路(SMB)が次の列アドレス(B’)を計算することを特徴とする
    、請求項25記載のマッチング手段。
  27. 【請求項27】 次の式(7) 【数5】 (ここで、Cは比較の結果を示し、AおよびA’はそれぞれ現在および次の行ア
    ドレスを示し、Sは制御信号を示す)に従って前記第2計算回路(SMA)が次
    の列アドレス(A’)を計算することを特徴とする、請求項25記載のマッチン
    グ手段。
  28. 【請求項28】 次の式(8) 【数6】 に基づき、前記ステートマシン(SEQ)が前記制御信号(S)を計算し、 次の式(9) 【数7】 (ここで、STATEtおよびSTATEt+1は時間tおよびt+1におけるステ
    ートを示し、tはカウンタ(CNT)がカウントする比較の回数を示し、ここで
    、0<t<K*Nであり、Nは完全な2進ツリーのサブツリーレベルの数を示し
    、STATEt=0は前記2進ツリーデータ構造のルートノードに対応するメモ リロケーションで第1回の比較を実行する時のステートを示す)に従って前記ス
    テートマシン(SEQ)のステート決定手段(STDM)が前記ステートマシン
    (SEQ)の内部ステートSTATEtを計算することを特徴とする、請求項2 3記載のマッチング手段。
  29. 【請求項29】 前記読み出し手段(R)が前記マッチングデータ値に関連
    して前記メモリ手段に記憶されている情報を読み出すことを特徴とする、請求項
    21記載のマッチング手段。
  30. 【請求項30】 前記メモリデバイスがDRAMまたはキャッシュメモリの
    一方であることを特徴とする、請求項21記載のマッチング手段。
  31. 【請求項31】 前記記憶アドレスが行アドレス部分および列アドレス部分
    を有し、前記列アドレス部分を使って特定のキャッシュライン内の前記シーケン
    シャルなデータエントリのうちの1つを選択し、前記行アドレス部分を使って特
    定のキャッシュラインを選択することを特徴とする、請求項30記載のマッチン
    グ手段。
  32. 【請求項32】 ノード(X)、ブランチ、サブツリーおよびリーフの2進
    ツリーデータ構造に従って所定の記憶アドレス(B(X)、A(X))にデータ
    値(D)を記憶するメモリデバイスにおける所定データ値(I)の記憶アドレス
    (B(X)、A(X))を決定するための方法であって、 a)前記メモリデバイスから現在のサーチアドレス(B(X)、A(X))に
    おけるデータ値(D)を読み出す工程と、 b)前記読み出されたデータ値(D)とサーチすべき前記データ値(I)とを
    比較し、前記読み出されたデータ値(D)がサーチすべき前記データ値(I)よ
    りも大であるか小であるかを決定する工程と、 c)前記比較の結果(C)および前記現在サーチアドレス(B(X)、A(X
    ))に基づき、データ値のためにサーチすべき次の完全なサーチアドレス(B’
    、A’)を決定する工程とを備え、 d)前記読み出されたデータ値(D)が所定の許容差(ΔD)内でサーチすべ
    き前記データ値(I)に一致するまで、前記工程a)〜c)を再帰的に実施する
    ことを特徴とする、記憶アドレス(B(X)、A(X))を決定するための方法
  33. 【請求項33】 各サブツリーにおける所定の数Kのレベルを有する2進ツ
    リーデータ構造内にデータ値を記憶し、前記工程c)において前記比較の結果(
    C)、前記現在のサーチアドレスおよび各サブツリーにおけるレベルの前記所定
    の数(K)に基づき、前記次のアドレスを決定することを特徴とする、請求項3
    2記載の方法。
  34. 【請求項34】 前記データ値(D)が最小データ値と最高データ値の範囲
    内にあり、前記レンジの中心値に対応する中心データ値を所定のルートアドレス
    (B(0)、A(0)=<0、1>)に記憶し、最初に工程a)を実行する際に
    、前記ルートアドレスを前記現在アドレスとして使用することを特徴とする、請
    求項32記載の方法。
  35. 【請求項35】 行と列のマトリックス配置にある前記メモリデバイスに前
    記データ値を記憶し、各データ値(D)を列アドレス(A)および行アドレス(
    B)に割り当てることを特徴とする、請求項32記載の方法。
  36. 【請求項36】 読み出されたデータ値がサーチすべき前記データ値(I)
    よりも大であると工程b)における前記比較の結果(C)が表示した時(左ブラ
    ンチ)、次の式(1) 【数8】 (ここで、Xは現在アドレス(B(X)、A(X))によって定められる現在ノ
    ードを表示し、A(X)およびB(X)は現在ノードXの列アドレスおよび行ア
    ドレスをそれぞれ示し、L(X)は現在ノードXに記憶されたデータ値よりも小
    さいデータ値が記憶されている次のノードを示し、A(L(X))およびB(L
    (X))は次のノードL(X)の列アドレスおよび行アドレスを示す)によって
    工程c)における前記次のアドレスを計算することを特徴とする、請求項32ま
    たは請求項35記載の方法。
  37. 【請求項37】 読み出されたデータ値がサーチすべき前記データ値(I)
    よりも小であると工程b)における前記比較の結果(C)が表示した時(右ブラ
    ンチ)、次の式(2) 【数9】 (ここで、Xは現在アドレス(B(X)、A(X))によって定められる現在ノ
    ードを表示し、A(X)およびB(X)は現在ノードXの列アドレスおよび行ア
    ドレスをそれぞれ示し、R(X)は現在ノードXに記憶されたデータ値よりも大
    であるデータ値が記憶されている次のノードを示し、A(R(X))およびB(
    R(X))は次のノードR(X)の列アドレスおよび行アドレスをそれぞれ示す
    )によって工程c)における前記次のアドレスを計算することを特徴とする、請
    求項32または請求項35記載の方法。
  38. 【請求項38】 読み出されたデータ値がサーチすべき前記データ値(I)
    よりも大であると工程b)における前記比較の結果(C)が表示した時(左リー
    フ)、次の式(3) 【数10】 (ここで、Xは現在アドレス(B(X)、A(X))によって定められる現在ノ
    ードを表示し、A(X)およびB(X)は現在ノードXの列アドレスおよび行ア
    ドレスをそれぞれ示し、L(X)は現在ノードXに記憶されたデータ値よりも小
    であるデータ値が記憶されている次のノードを示し、A(L(X))およびB(
    L(X))は次のノードL(X)の列アドレスおよび行アドレスをそれぞれ示し
    、2Kはメモリデバイスにおける列の数である)によって工程c)における前記 次のアドレスを計算することを特徴とする、請求項32、請求項33または請求
    項35記載の方法。
  39. 【請求項39】 読み出されたデータ値がサーチすべき前記データ値(I)
    よりも小であると工程b)における前記比較の結果(C)が表示した時(右リー
    フ)、次の式(4) 【数11】 (ここで、Xは現在アドレス(B(X)、A(X))によって定められる現在ノ
    ードを表示し、A(X)およびB(X)は現在ノードXの列アドレスおよび行ア
    ドレスをそれぞれ示し、R(X)は現在ノードXに記憶されたデータ値よりも大
    であるデータ値が記憶されている次のノードを示し、A(R(X))およびB(
    R(X))は次のノードR(X)の列アドレスおよび行アドレスをそれぞれ示し
    、2Kはメモリデバイスにおける列の数である)によって工程c)における前記 次のアドレスを計算することを特徴とする、請求項32、請求項33または請求
    項35記載の方法。
  40. 【請求項40】 工程b)で実行された比較回数がサブツリー(K)におけ
    るレベル数の倍数に等しい場合、前記次のアドレスを式(3)または(4)に従
    って計算することを特徴とする、請求項33および請求項38もしくは請求項3
    3および請求項39のいずれかに記載の方法。
  41. 【請求項41】 工程b)で実行された比較回数がサブツリー(K)におけ
    るレベル数に等しくない場合、前記次のアドレスを式(1)または(2)に従っ
    て計算することを特徴とする、請求項33および請求項36もしくは請求項33
    および請求項37のいずれかに記載の方法。
  42. 【請求項42】 前記工程d)の後に、前記マッチングデータ値に関連して
    記憶された情報を前記現在アドレスを有するメモリ位置から読み出すことを特徴
    とする、請求項32記載の方法。
  43. 【請求項43】 前記メモリデバイスがDRAMまたはキャッシュメモリの
    いずれかであることを特徴とする、請求項32記載の方法。
JP2000535994A 1998-03-12 1999-03-11 データ変換用ハードウェアのサポート Withdrawn JP2002507023A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19810784A DE19810784B4 (de) 1998-03-12 1998-03-12 Rechnersystem
DE19810784.6 1998-03-12
PCT/EP1999/001590 WO1999046676A2 (en) 1998-03-12 1999-03-11 Data conversion hardware support

Publications (1)

Publication Number Publication Date
JP2002507023A true JP2002507023A (ja) 2002-03-05

Family

ID=7860674

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000535994A Withdrawn JP2002507023A (ja) 1998-03-12 1999-03-11 データ変換用ハードウェアのサポート

Country Status (9)

Country Link
EP (1) EP1062574B1 (ja)
JP (1) JP2002507023A (ja)
KR (1) KR20010041804A (ja)
CN (1) CN1300390A (ja)
AU (1) AU3033899A (ja)
BR (1) BR9908729A (ja)
CA (1) CA2323017A1 (ja)
DE (1) DE19810784B4 (ja)
WO (1) WO1999046676A2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002048859A2 (en) * 2000-12-13 2002-06-20 Koninklijke Philips Electronics N.V. Method of and program for updating software
JP2004199490A (ja) * 2002-12-19 2004-07-15 Komatsu Ltd 車載プログラムの書き換え制御装置
CN100416503C (zh) * 2005-11-04 2008-09-03 中兴通讯股份有限公司 一种软件版本更新的方法
CN100454253C (zh) * 2006-04-29 2009-01-21 华为技术有限公司 一种终端软件升级方法及终端设备
US7818740B2 (en) 2006-05-05 2010-10-19 Microsoft Corporation Techniques to perform gradual upgrades
EP2365438A1 (de) * 2010-03-09 2011-09-14 Siemens Aktiengesellschaft Verfahren zum Betrieb eines Automatisierungssystems
CN101982813B (zh) * 2010-11-22 2014-05-14 株洲南车时代电气股份有限公司 用于列车乘客信息显示器的软件远程更新方法及更新系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5168567A (en) * 1989-05-30 1992-12-01 Tektronix, Inc. Data sorting circuit
US5410703A (en) * 1992-07-01 1995-04-25 Telefonaktiebolaget L M Ericsson System for changing software during computer operation
US5493671A (en) * 1993-06-04 1996-02-20 Marcam Corporation Method and apparatus for conversion of database data into a different format on a field by field basis using a table of conversion procedures
US5613110A (en) * 1995-01-05 1997-03-18 International Business Machines Corporation Indexing method and apparatus facilitating a binary search of digital data
DE19518266A1 (de) * 1995-05-18 1996-11-21 Philips Patentverwaltung Kommunikationssystem mit Mitteln zum Austausch von Software

Also Published As

Publication number Publication date
DE19810784A1 (de) 1999-09-16
EP1062574A2 (en) 2000-12-27
EP1062574B1 (en) 2004-01-21
AU3033899A (en) 1999-09-27
DE19810784B4 (de) 2006-03-16
KR20010041804A (ko) 2001-05-25
WO1999046676A3 (en) 1999-11-11
WO1999046676A2 (en) 1999-09-16
CN1300390A (zh) 2001-06-20
CA2323017A1 (en) 1999-09-16
BR9908729A (pt) 2000-11-21

Similar Documents

Publication Publication Date Title
US6578131B1 (en) Scaleable hash table for shared-memory multiprocessor system
US7287131B1 (en) Method and apparatus for implementing a fully dynamic lock-free hash table
US5497485A (en) Method and apparatus for implementing Q-trees
KR100748772B1 (ko) 최장의 정합 어드레스 탐색장치 및 방법
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
JP2957703B2 (ja) データを記憶し検索する方法及びメモリ構成体
US7146377B2 (en) Storage system having partitioned migratable metadata
JP4807686B2 (ja) メモリ装置内のデータ値の記憶アドレスを決定するための方法並びにアクセス装置
RU2517238C2 (ru) Выполнение параллельного повторного хэширования хеш-таблицы для многопоточных приложений
US5826262A (en) Parallel bottom-up construction of radix trees
US7702628B1 (en) Implementing a fully dynamic lock-free hash table without dummy nodes
US4575798A (en) External sorting using key value distribution and range formation
EP2069979B1 (en) Dynamic fragment mapping
US7370054B1 (en) Method and apparatus for indexing a hash table which is organized as a linked list
US7565343B2 (en) Search apparatus and search management method for fixed-length data
KR100529995B1 (ko) 데이터베이스에 엘리먼트를 저장하는 방법
US5355478A (en) Method for avoiding cache misses during external tournament tree replacement sorting procedures
US20130086135A1 (en) Scalable file management for a shared file system
US7805427B1 (en) Integrated search engine devices that support multi-way search trees having multi-column nodes
US5761501A (en) Stacked skip list data structures
Helman et al. Designing practical efficient algorithms for symmetric multiprocessors
US5659739A (en) Skip list data structure enhancements
US6295534B1 (en) Apparatus for maintaining an ordered list
EP1192565A1 (en) Memory based on a digital trie structure
CN115168247A (zh) 用于并行处理器中动态共享存储空间的方法及相应处理器

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060606