[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2000506658A - Managing data structures - Google Patents

Managing data structures

Info

Publication number
JP2000506658A
JP2000506658A JP10528558A JP52855898A JP2000506658A JP 2000506658 A JP2000506658 A JP 2000506658A JP 10528558 A JP10528558 A JP 10528558A JP 52855898 A JP52855898 A JP 52855898A JP 2000506658 A JP2000506658 A JP 2000506658A
Authority
JP
Japan
Prior art keywords
list
read
elements
data
memory
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
JP10528558A
Other languages
Japanese (ja)
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
Priority claimed from GBGB9626752.1A external-priority patent/GB9626752D0/en
Application filed by ノーテル・ネットワークス・コーポレーション filed Critical ノーテル・ネットワークス・コーポレーション
Publication of JP2000506658A publication Critical patent/JP2000506658A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • 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
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • H04L49/203ATM switching fabrics with multicast or broadcast capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 電気通信の接続マップ等のデータ構造であって、メモリ装置(52)の所定順序の場所に格納されたデータ要素のリストの少なくとも1つを備える。この構造内の特定の位置に新たな要素を挿入したり、あるいは、既存の要素を削除あるいは変更するため、所定順序の記憶場所を通って、リストの一部を移動することで、この構造を更新する一方、リストの順序を維持する。本構造の要素は、それらが格納された順序で読み出され、所定順序の記憶場所を介して要素を移動して、この構造にアクセスしている間に、構造が更新される。本発明に特有のアプリケーションは、電気通信スイッチの接続マップの維持であり、このマップは、どのATMセル・ペイロードに、受信した狭帯域呼データを組み立てるかを規定する接続命令を格納している。 (57) [Summary] A data structure such as a connection map for telecommunications, comprising at least one of a list of data elements stored in a predetermined order of locations in a memory device (52). The structure can be modified by moving parts of the list through predetermined locations to insert new elements at specific locations in the structure, or delete or modify existing elements. Update while maintaining the order of the list. The elements of the structure are read in the order in which they were stored, and the structure is updated while accessing the structure by moving the element through the predetermined order of storage locations. An application specific to the present invention is the maintenance of a telecommunications switch connection map, which stores connection instructions that define in which ATM cell payload to assemble the received narrowband call data.

Description

【発明の詳細な説明】発明の名称 データ構造の管理発明の分野 本発明は、データ構造、特に、リアルタイム環境におけるダイナミック・デー タ・リストの管理に関するものである。本発明に特有のアプリケーションの一つ として、電気通信システムにおける接続マップの更新がある。背景技術 公知のデータ保存方法の一つは、連鎖リスト(linked list)の形 態をとる。連鎖リストを使うと、均一あるいは不均一のデータ項目をダイナミッ クに保存できる。多くの関連するデータ項目を単一のリストに包含させることが でき、それぞれの項目が、ポインタ・フィールドによって、リスト中の次の項目 とリンクされている。これは、本質的には、ソフトウェア処理である。このポイ ンタ・フィールドを使うと、リストの方向を変えて、データにアクセスできるよ うになる。最も簡単な形では、新たな項目が、常にリストの一番下に追加され、 古い項目が、常にリストの一番上から取り除かれる。この方式の最も一般的な例 は、FIFO装置である。このタイプのリストを更新するには、リストの連鎖や 項目の削除といった動作が必要になる。このタイプのリストが使われているアプ リケーションの一例として、オペレーティング・システム内でのタスクの待ち行 列作成があり、そこでは、タスクが、単にそれらの到着時間に従ってスケジュー ル管理されている。 連鎖リストをもっと複合的に使うことで、リスト内で、データ情報の全部ある いは一部を順番に並べることができる。このタイプのリストを更新するには、リ スト内の任意の位置において、新たな項目を付け加えたり、既存のリストを削除 する機能が必要となる。このタイプのリストが使われているアプリケーションの 例として、電気通信システムにおける経路指定テーブル、呼の記録、変換テーブ ルの配列、および、コンピュータのオペレーティング・システムにおける、優先 順位に従った、タスクのスケジュール管理がある。米国特許第5,274,76 8号(トロー(Traw)らによる)には、この種の連鎖リストの管理を使った 非同期転送モード(ATM)ネットワークのインタフェースが記載されている。 国際特許出願WO95/32596 A1(ノーザン・テレコム社)には、連鎖 構造を使って、特定のATM仮想回線のタイムスロットをリンクする、SDH/ ATMインタフェースが記載されている。 このタイプのリストの例を、図1に示す。メモリ30には、複数の記憶場所( メモリ・ロケーション)があり、それらには、1から20までの番号が付されて いる。場所1のように、メモリ内の予約された部分は、リスト内の最初の要素の 記憶場所を示すポインタstart_ptrを保持している。この例では、リス ト内の最初の要素が、記憶場所4を占有する。しかし、この要素は、記憶場所の どれをも占有できる。拡大した部分は、記憶場所4の内容を詳細に示している。 この記憶場所には、データ項目DATAとポインタptr_nextが格納され ている。このポインタは、連鎖リスト内の、次の要素の記憶場所を指している。 これは、値「16」を有し、それは、リスト内の2番目の要素が格納されている 記憶場所である。このメモリは、このような方法で互いにリンクされた多数の同 じ要素を保持する。 そこで、このタイプのリストを更新する処理を、図1A〜図1Cを参照して説 明する。図1Aは、記憶場所4に格納された要素と、記憶場所9に格納された2 番目の要素という、2つの要素を示している。場所4にある要素のポインタは、 記憶場所9を指している。 第1に、そのリストに新たな要素を加える必要のある状況が考慮される。この 新たな要素は、メモリ内の使用可能な場所に挿入される。これが、場所16であ る。この要素は、必要とするポイントで、リストと結び付いていなければならな い。図1Bは、既存の2つの要素間において、リストに新しい要素を追加した結 果を示している。記憶場所4に保持された、この要素のポインタ値は、現在、記 憶場所16を指しており、新たに挿入された要素のポインタ値は、記憶場所9を 指している。 第2に、リストから削除する必要のある既存の要素の状況を考慮に入れる。記 憶場所16にある既存の要素を、リストから削除する必要がある。場所4に保持 されている要素のポインタ値は、削除される要素に続く要素(すなわち、場所9 にある要素)の記憶場所を指すように変えられる。 連鎖リストに付随する問題は、特定のデータ項目を検索するために、リスト中 の最初の要素から始めて、その項目が見つかるまで、リストの終わりまで続ける という具合に、組織的にリストを検索する必要がある、ということである。この ため、検索処理が遅くなる。アクセス処理を改善するため、一般的には、2重連 鎖リストも使われる。2重連鎖リストでは、それぞれのデータ項目に対して、ポ インタを使用して、そのリスト内の次の要素と、前の項目の両方を指す。このよ うにすることで、リストをどちらの方向にも変えることができる。 連鎖リストと2重連鎖リストの使用には、多くの問題がある。まず、リストを 構成したり、維持する処理が複雑になり、従って、ソフトウェアを使った実行が 必要となる。このため、これらのリストを、リアルタイム、高スループットなア プリケーションとして使用できない。第2に、連鎖リストを更新するタスクが、 通常、データをアクセスする処理の妨害となる。そして、第3に、要素を互いに リンクするデータ要素とポインタの両方を格納する必要がある。 リアルタイムのハードウェア・システム内でデータ・リストを更新する公知の 方法として、シャドウ・メモリを使ったものがある。まず、更新されたリストは 、このシャドウ・メモリ内に構成され、次に、元のメモリと交換されて、更新処 理が完了する。シャドウ・メモリの使用には、全体のメモリ必要量が2倍になる と いう欠点がある。従って、この方法を選択することは、高価で、高性能なメモリ 装置を必要とする、超高速リアルタイム・アプリケーションには、特に費用がか かるものとなる。 これら両方の技術には、特にリアルタイムのアプリケーションで使用する場合 、望ましくない特質がある。 本発明は、従来技術の方法についての欠点を最小に抑える、データ・テーブル やリストを更新する改善された方法を提供する。発明の概要 本発明の第1の態様によれば、メモリ装置の所定順序の記憶場所に格納された データ要素のリストの少なくとも1つを読み出し、更新する方法において、個々 の記憶場所を指し示すことのできる読出しポインタと書込みポインタを提供する 工程と、上記読出しポインタを使って、上記リストの要素が格納された順序で、 これらの要素を読み出す工程と、上記リストの読出しの間、上記書込みポインタ を使って、既に読み出された記憶場所に要素を書き込んで上記リストを更新する 工程であって、これら書き込まれた要素は、上記読出し工程で読み出された要素 、上記リストに挿入される新規の要素からなる、当該工程とを備え、上記更新す る工程は、上記リストが読み出されると、結果として、上記所定順序の記憶場所 を通じて上記リストの一部を移動する方法が提供される。 所定順序の場所にデータ要素を格納することで、リスト内の1つの要素を次の 要素にリンクするという、複雑なポインタ・メカニズムが不要になる。共通のメ モリ・リソースを共有しながら、いくつかの連鎖リストを同時に管理できる。こ の方法は、ソフトウェアおよび/またはハードウェアの制御下でダイナミック・ データ構造を維持するのに、従来から連鎖リストと2重連鎖リストを使っていた 多くのアプリケーションに適している。 この移動処理によって、公知のシャドウ・メモリ技術で使っていたような、大 容量の追加高速メモリが不要になる。この方法は、簡単であると同時に、最小限 の装置で実行できる。 リストの通常のアクセスの間に更新を実行すると、更新期間の間にシステムを 中断する必要がなくなる。この技術は、データの完全な組が、動作サイクルごと に1回、順次、読み込まれる、周期的なアプリケーションに、申し分のない程、 適したものである。このような周期的な読み出しが発生する例として、電気通信 アプリケーションの接続テーブルがある。 リストの要素が維持されている順番が重要な場合もある。順序づけられた記憶 場所を通してリストの一部を移動し、新たな要素をリストに挿入したり、あるい は、リスト内の特定の位置にある既存の要素を削除したり、変更して、リストを 更新することが、更新が行われる際に、リスト内の要素を、それらの順序に維持 するという重要な利点をもたらす。 好適には、データ要素を移動して、リストの特定の位置に新たな要素を挿入す る、上記リストを更新する工程は、上記位置より先にあるデータ要素を、上記所 定順序の記憶場所を通じて移動して、上記新たな要素に合致したスペースを空け 、この新たな要素を上記スペースに挿入する工程を備える。 好ましくは、上記リストを更新する工程は、上記リストの特定の位置にある既 存の項目を削除する工程であって、上記位置より戻る方向にあるデータ要素を、 上記所定順序の記憶場所を通じて移動して、上記既存の項目を上書きする、当該 工程を備える。 好適には、データ要素が格納される上記所定順序の記憶場所は、一連の隣接し た記憶場所である。これによって、リスト内のデータ要素間を進む処理が簡単に なる。 提案された技術では、これまでの連鎖リストに比べ、制御オーバヘッドが最小 限になり、また、その動作が単純であるため、全体がハードウェアのシステム、 あるいは、ハードウェアと最小のソフトウェアを組み合わせたシステムにおいて 、非常に高速なアクセス速度と維持速度を確実に達成できる。データの更新は、 メモリの通常の動作に対して完全にトランスペアレントにできる。すなわち、更 新が発生している間、読み出しアクセス処理を中断する必要がない。 好ましくは、データ・リストを更新するための組になった命令が格納され、そ の組は、リストがアクセスされる順番に従って配列されている。このため、その リストについての、複数のデータ項目の追加や削除を含む完全なリスト更新が、 1つのサイクルで遂行できる。 好適には、本方法はさらに、上記読出しポインタで決められた上記記憶場所の 内容を、第2のメモリに読み込む工程と、上記書込みポインタによって決められ た上記記憶場所に、上記第2のメモリの最も古い内容を書き込むか、上記リスト に挿入される新たな項目を書き込むか、あるいは何も書き込まないかのいずれか を行う工程とを備える。この第2メモリは、好適には、FIFO装置で構成され る。あるいは、FIFOとして機能するよう構成された、主メモリの指定部分で 構成することもできる。 リストの特定の位置において既存の要素を削除する上記工程は、好適には、上 記書込みポインタが上記読出しポインタより遅れるよう設定することによって、 上記削除位置より戻る方向にある上記データ要素を、上記所定順序の記憶場所を 通じて移動して、所望のデータ要素を上書きする工程を備える。 上記リストの特定の位置に新たな要素を挿入する工程は、好ましくは、上記位 置に格納された上記データ要素を第2のメモリに読み込む工程と、上記新たな要 素を上記記憶場所に書き込み、続くアクセスで、次の位置にある上記データ要素 を上記第2のメモリに読み込み、そして、この第2のメモリ内にある最も古いデ ータ要素を上記次の位置に書き込むことによって、上記新たな要素より先にある データ要素を、上記所定順序の記憶場所を通じて移動する工程とを備える。 本発明の他の形態によれば、電気通信スイッチの接続マップを管理する方法で あって、このマップは、メモリ内の所定順序の場所に格納された、上記スイッチ の接続命令のリストからなり、当該方法は、個々の記憶場所を指し示すことので きる読出しポインタと書込みポインタを提供する工程と、上記読出しポインタを 使って、上記リストの命令が格納された順序で、これらの命令を読み出す工程と 、上記リストの読出しの間、上記書込みポインタを使って、既に読み出された記 憶場所に命令を書き込んで上記リストを更新する工程であって、これら書き込ま れた命令は、上記読出し工程で読み出された命令、上記リストに挿入される新規 の命令からなる、当該工程とを備え、上記更新する工程は、上記リストが読み出 されると、結果として、上記所定順序の記憶場所を通じて上記リストの一部を移 動する方法を提供する。 好適には、接続マップを管理する本方法は、電気通信スイッチを動作させる方 法の一部を構成し、その方法は、上記スイッチへの入力端において複数のソース からデータを受信する工程と、上記受信したデータにバッファを施す工程と、上 記受信したデータをペイロードに組み立てる工程と、上記ペイロードを、上記ス イッチの出力から複数の宛先に送信する工程とを備え、上記接続命令は、どのペ イロードに上記バッファが施されたデータを組み立てるかを規定する。 好ましくは、上記接続マップは、上記ペイロードが、それらの宛先で分解され る順序で、これらペイロードを組み立てるよう順序づけられている。こうするこ とで、宛先においてフレームを格納する必要がなくなり、このフレームの格納に 起因する伝送遅延を避けることができる。受信したデータは、狭帯域チャネルよ り構成でき、ペイロードは、ATMセルのペイロードより構成することができる 。 接続マップを管理する本方法は、さらに、ソースと複数の宛先との間のマルチ キャスト接続に対する要求を受信する工程と、上記マップに対する一連の更新命 令を作成する工程と、上記マップの使用中に、上記一連の更新命令で、このマッ プを更新する工程とを備える。マルチキャストの狭帯域電話呼に必要な接続性を 簡単に構成し、かつ、管理する機能は、マルチ・メディアや会議サービスのよう な先進機能をサポートする将来のネットワークに、特に望ましい機能である。 接続マップを管理する本方法は、さらに、特定の宛先への接続を示す、上記マ ップの要素を総計する工程と、上記総計に対応するペイロードの大きさを計算す る工程と、上記ペイロードのパディングが必要かどうかを決定する工程と、上記 決定の結果に応じてパディングを起動する工程とを備える。このように接続マッ プを実行することで、それぞれの宛先に対するペイロードの大きさを簡単に計算 できる。 本発明のさらなる態様によれば、データ要素のリストの少なくとも1つを管理 する装置において、上記データ要素を所定順序の記憶場所に格納する格納装置と 、個々の記憶場所を指し示すことのできる読出しポインタと書込みポインタを提 供する手段と、上記読出しポインタを使って、上記リストの要素が格納された順 序で、これらの要素を読み出す手段と、上記リストの読出しの間、上記書込みポ インタを使って、既に読み出された記憶場所に要素を書き込んで上記リストを更 新する手段であって、これら書き込まれた要素は、上記読出し手段で読み出され た要素、上記リストに挿入される新規の要素からなる、当該手段とを備え、上記 更新する手段は、上記リストが読み出されると、結果として、上記所定順序の記 憶場所を通じて上記リストの一部を移動する装置を提供する。 この装置は、ハードウェアだけで実施することができる。 本発明のさらなる態様によれば、複数のソースからデータを受信する入力部と 、上記受信したデータを格納するバッファと、上記受信したデータをペイロード に 組み立てる手段と、上記ペイロードを複数の宛先に送信する出力部と、メモリ内 にある所定順序の場所におけるデータ要素のリストの少なくとも1つとして、接 続命令のマップを格納する当該メモリと、上記マップを管理する管理部であって 、個々の記憶場所を指し示すことのできる読出しポインタと書込みポインタを提 供する手段と、上記読出しポインタを使って、上記リストの要素が格納された順 序で、これらの要素を読み出す手段と、上記リストの読出しの間、上記書込みポ インタを使って、既に読み出された記憶場所に要素を書き込んで上記リストを更 新する手段であって、これら書き込まれた要素は、上記読出し手段で読み出され た要素、上記リストに挿入される新規の要素からなる、当該手段とを有する上記 管理部とを備え、上記更新する手段は、上記リストが読み出されると、結果とし て、上記所定順序の記憶場所を通じて上記リストの一部を移動する電気通信スイ ッチを提供する。 この方法は、特に通信システムとデータ・ネットワークに使われる、接続マッ プと経路指定テーブルの更新に適している。これらのアプリケーションについて は、詳細に説明する。しかし、本方法は、リアルタイム・オペレーティング・シ ステムにおける、イベントおよび処理のスケジューリングのような、他のアプリ ケーションも可能である、ということが分かる。 当業者には明らかであるが、好適な機能を適宜、組み合わせたり、それらの機 能と本発明の態様のどれかを組み合わせることもできる。図面の簡単な説明 本発明をより良く理解し、それがどのように遂行されるかを例示するため、以 下、添付図面を参照して、実施の形態を説明する。 図1は、連鎖リストを実施する公知の方法を示す。 図1A〜図1Cは、図1の構成を使ってリストを更新する方法を示す。 図2は、メモリ内の連鎖リストの配列を概略的に示す。 図3は、メモリ内の連鎖リストの組の更新を示す。 図4は、図3に示された方法を実行するためのシステムを示す。 図5〜図5Bは、連鎖リストの更新に使用する、図4のシステムを示す。 図6は、連鎖リストを更新する方法のフローチャートを示す。 図7は、本方法を使った通信システムを示す。 図8は、図7のネットワークを介した相互接続を実施する一例を示す。 図9は、図7のネットワークを介して相互接続を実施する他の例を示す。 図10は、図9の方法で相互接続を実現するシステムを示す。 図11,図11Aは、図10のシステムで使用される接続テーブルの更新処理 を示す。 図12は、マルチキャストの概念を示す。 図13,図13Aは、図10のシステムで使用されている接続テーブルを更新 して、マルチキャストを実施する処理を示す。発明の実施の形態 メモリ内の組になった連鎖リストについての基本的な構成を、図2に示す。こ のメモリは、単一のデータ・リストを維持するのに使用でき、また、複数の連鎖 リストを包含することも可能である。メモリ全体の大きさによって、全データ・ リストを結合した長さの上限が規定される。個々のリストは、所定順序の記憶場 所に格納されている。図2の配列において、この所定順序の記憶場所は、一連の 隣接する記憶場所である。これによって、リストが断片的にならず、また、従来 の連鎖リストの構造を方向移動するのに必要な制御論理が不要となる。さらに、 メモリ内で割り当てられていない全ての場所が、メモリの一番下の場所において 、グループとして連続して発生する。連鎖リストと非割り当てメモリとを区別す る一つの方法は、空いている最初の記憶場所に、リストの終了(エンド・オブ・ リスト)マーカEOLを保持することである。 静的な動作では、リスト内のデータ項目は、メモリを連続して読み込む動作に よってアクセスされる。このようにして、1つの完結したサイクルで、メモリ全 体の内容にアクセスでき、次の処理で使えるようになる。メモリ内に複数の連鎖 リストが保持されている場合には、個々のリストの境界位置を記述できるように する必要がある。これには、いくつかの方法があり、例えば、それぞれのリスト の、現在の長さを外部よりカウントしたものを維持する、というものがある。あ るいは、メモリ内の追加フィールドを使って、リスト識別子35を保持すること もできる。このため、処理に必要な全体のメモリ量が増加するが、外付けの制御 素子を追加する必要がなくなる。これは、図2に示す方式である。この追加フィ ールドは、他の方法で格納が必要となる1つの情報を表示でき、そのため、メモ リ容量の追加が不要となる。例えば、後述する電気通信の接続マップのアプリケ ーションでは、リスト番号は、各オクテットが組み立てられた仮想チャネルの同 一性、格納する必要のある情報を示す。 図3は、リストを更新する処理を示す。リストを更新するため、メモリは、削 除する項目があるまで、あるいは、挿入する項目の位置まで、通常の方法で、順 次、移動される。挿入あるいは削除動作は、このポイントで発生する。続くメモ リ・アクセスでは、元のデータは、メモリ内で1つ分の位置だけ、下に移動して 、挿入のための補償を行ったり、あるいは、メモリ内で1つ分の位置だけ、上に 移動して、削除の埋め合わせをする。このように、1つの完結したメモリ・サイ クルで、連鎖リストの構造を完全に更新することができる。個々の連鎖リストは 隣接状態を維持し、空きの場所は、依然としてメモリの下部にある。更新された データ・リストは、続くメモリ・サイクル以降より、使用上、有効となる。ブロ ック40は、メモリの元の状態を示す。ブロック41は、削除動作を実行して、 リスト1から項目「334」を削除するメモリ・サイクルの後のメモリ状態を示 す。ブロック42は、さらに、リンク・リスト2に追加項目「45」を付加する メモリ・サイクルの後におけるメモリ状態を示す。 更新プロセスを実行するシステムの詳細を、図4に示す。このシステムは、一 般的な制御構成素子54、連鎖リストを格納するメモリ52(その大きさは、全 リストの最大長を合計したものと同じである)、メモリへの各アクセスの間、単 一の読み出し動作と単一の書込み動作を実行できるメモリ・アクセス機構(読出 しポインタと書込みポインタの位置は、異なる場合がある)、シャフル・ダウン 動作の間、中間的なデータ保存に使用する小さなFIFO53、および、メモリ 内で、それぞれの更新動作の位置を特定する比較器/論理機能部51から構成さ れる。FIFO53の大きさは任意であるが、各メモリ・サイクルの間に実行で きる挿入の総数には、上限が設けられている。これは、後に詳述するように、メ モリに項目を挿入する処理が、一時的にいくつかの要素の位置を変えるためであ る。このメモリは、標準のRAMデバイスであることが望ましい。これらの構成 部分は、ASICで集積化されていることが望ましい。 更新を行うには、制御構成素子によって、その処理にリストの同一性が与えら れなければならない(また、挿入の場合は、新たなデータ項目を与える必要があ る)。最も簡単な場合、すなわち、新たなデータが、常にリストの一番上に追加 され、古い項目が、常にリストの一番下から削除される場合、これが更新処理の 実行に十分な情報となる。しかし、この技法は、データをメモリへプッシュした り、ポップすることに限定されず、この技法によって、データ項目を各リスト内 の任意の位置に挿入、あるいは削除することができる。このような場合、制御構 成素子はまた、処理に十分な情報を与えて、挿入/削除の位置を十分に特定でき るようにしなければならない。この情報は、リスト内の相対的な位置という形を とったり(例えば、リスト4内の3番目の項目)、あるいは、データ項目(削除 されたり、あるいは、現在、挿入位置にあるデータ項目)の値となり得る。 次に、挿入処理と削除処理を詳細に説明する。「メモリ・サイクル」という用 語は、メモリの内容を1回、順次、完全に走査することで、その間、個々の記憶 場所が検索され、更新が行われる。「アクセス・サイクル」とは、このようなメ モリ・サイクルの1回の間、1つの記憶場所を検索することを示す用語である。 新規のデータ項目をリストに挿入するため、挿入ポイントが見つかるまで、通 常の方法で、順次、メモリがアクセスされる。この記憶場所の内容は、このポイ ントで、新たなデータ項目がメモリに書き込まれる前に、一時的な格納のためF IFOに転送される。次のアクセス・サイクルでは、次の記憶場所にあるデータ 項目が、FIFO内に保持されたデータによって、(メモリ内で)上書きされる 前に、FIFOに入れられる。この処理は、メモリ・サイクルの最後まで続き、 このポイントにおいて、挿入ポイント以降に位置する全てのデータ項目が、メモ リ内で1位置分、後退することになる。この処理は、単一のメモリ・サイクルの 間に複数の挿入が実行されるよう展開できる。このためには、FIFOの大きさ を増やして、1サイクルにつき望ましい最大の挿入数と同じにし、かつ、制御構 成素子によって、データ項目を挿入順に分けるようにする必要がある。このよう に、各入力ポイントの位置決めがなされると、FIFO内に保持されているデー タは、1要素分、大きくなり、さらに増えた位置分、シャフル長が長くなる。 削除プロセスも同じように動作する。メモリは、削除する項目が見つかる位置 まで、順次、アクセスされる。この位置で、書込みポインタは、1位置分、読出 しポインタより遅れるように設定される。次のアクセス・サイクルで、次の記憶 場所より読み出されたデータは、前の位置に書き込まれる(削除される項目を上 書きする)。この処理は、メモリ・サイクルの最後まで繰り返され、このポイン トにおいて、削除ポイント直後にある全てのデータが、メモリ内で、1位置分、 前に進む。また、1回のメモリ・サイクル内で、複数の削除を行えるように、こ の処理を展開することができ、1回の削除で、書込みポインタが、1位置分、読 出しポインタよりも、さらにデクリメントされるので、シャフル長が長くなる。 挿入処理と削除処理は互換性があるので、1サイクル内で、複数の挿入と削除 を実行することができる。この場合の唯一の条件は、制御構成素子が、入力/削 除位置に従って更新を行うよう指令することである。 また、リスト上で、挿入動作と削除動作を連続して行い、リスト内の項目を変 えるようにすることも可能である。 更新処理の詳細な例を、図5〜図5Bに示す。この例では、3つの連鎖リスト が、16個の要素メモリ内に保持されている。1回の更新で、3つの挿入と2つ の削除が実行される。なお、挿入と削除についての他の組み合わせも実行可能で あることは、明らかである。図5は、更新が行われる前の、メモリ・サイクル開 始時の状態を示すもので、そのサイクル50に対する一連の更新命令が、その更 新の実行が必要な順に配列されている。図5Aは、サイクルの途中の状態を示し ており、残り3つの更新が、実行待ちの状態となっている。図5Bは、サイクル の最後の状態を示している。表1は、この例の各工程を詳細に説明するもので、 この表には、完結したメモリ・サイクルの16のアクセス各々に対する、読出し 動作と書込み動作、および、FIFOの内容が記載されている。なお、読出し、 および書込み動作の説明の際、以下の表記を使用する。 「リスト番号/データ値...記憶場所」 例えば、“1より1/3”は、リスト1中の値「3」を有するデータを、記憶 場所1から読み出すことを意味する。 表 1 (各アクセス・サイクル中の更新処理の状態) 本構成に対して、純削除更新を行う場合、すなわち、以前は満杯であったメモ リにおいて、挿入動作よりも削除動作が多い更新の場合、リスト終了の境界マー カを再挿入する必要がある。 これを行う方法の1つとして、次のメモリ・サイクルで、予備の書込みアクセ スを使ってマーカを挿入するものがある。これが必要な理由は、書込みポインタ が、常に、読出しポインタより遅れているからである。制御構成素子によって、 次のサイクルで行われることになっている更新に、この方法を、確実に取り込む ことができる。直後の更新が、全ての使用可能な書込みアクセスを使う(つまり 、メモリの完全シャフル)という、非常に希な状況では、制御構成素子が、1回 のサイクル分、この新規な更新を遅らせる必要がある。 あるいは、「ホールドオーバ」書込みサイクルが実行される、連続したメモリ ・サイクルの間に、ハウスキーピング期間を設けることもできる。更新アルゴリズム 更新アルゴリズムの詳細を、図6に示すフローチャートを参照して説明する。 (a)メモリ52の最初の位置に対するRead_Ptr,Write_Ptr を初期化する。最初の更新の内容を、比較回路51に読み込む。 (b)Read_Ptrで示された記憶場所を、FIFOに読み込む。次の位置 に対するRead_Ptrを付加更新する。 (c)現行の更新フィールドと、比較器51内のFIFOの一番上に保持された 内容とを比べる。 (i) 削除位置が見つかれば、書込みポインタが示す記憶場所が、空きマー カ(ヌル・マーカ)で上書きされる。この書込みポインタは、付加更新されない 。FIFOの一番上に保持されるデータ内容が破壊される。比較回路51は、リ スト50内の次の更新内容で更新される。 (ii) 挿入位置が見つかれば、Write_Ptrで示される記憶場所が 、挿入データで上書きされる。このWrite_Ptrは、次の記憶場所を示す よう付加更新される。FIFOは更新されず(比較器は、更新内容との比較の際 、次のサイクルで同じデータ値を使う)、その長さは、1位置分、増大する。比 較 回路51は、リスト50中の次の更新内容によって更新される。 (iii) 挿入位置も、削除位置も見つからない場合、FIFOの一番上の 内容が、Write_Ptrで示される記憶場所に書き込まれ、FIFOが、1 位置分、前進する。Prite_Ptrは、1位置分、付加更新される。 あるいは、最初の更新位置に達していない場合、Write_Ptrで示され るメモリ内容は、書込み動作の後も、変わらない。従って、書込みアクセスを実 行する必要がなく、上述した純削除動作によって発生する、次のフレーム・サイ クルより何らかのホールドオーバ書込みを実行するといった、他のハウスキーピ ング・タスクに、この書込みアクセスを使用することができる。 (d)マップの終わりに達するまで、あるいは、全ての更新が実行されるまで、 工程(b),(c)を繰り返す(全ての挿入と削除が実行され、読出し処理によ ってファイルの終わりに達し、FIFOが空きになる)。 本方法が特に適するアプリケーションは、電気通信の経路指定テーブルである 。このアプリケーションの詳細を、図7〜図13Aを参照して説明する。 広帯域ATMネットワークを介して、狭帯域音声あるいはデータ・トラヒック を効率的に搬送するメカニズムが開発されつつある。この概念を図7に示す。同 期狭帯域トラヒックPOTS,ISDN BA,ISDN PRAが、64kb /sの構造(ファブリック)70を介して搬送される。これは、最初の相互動作 ユニット(インタワーク・ユニット:IWU)71で終端する。IWU71は、 狭帯域トラヒックをATMセルに変換し、次に、これらATMセルが、ATMネ ットワーク72を通って、遠端のIWU73に送信される。この遠端のIWUは 、さらに遠方にある64kb/sのファブリック74への送信のため、狭帯域ト ラヒックを同期ドメインに逆変換する。 適応仮想ジャンクタ(AVJ)と呼ばれる、ATM変換装置が提案されている 。この装置は、元のデータの同期フレーミング情報を保存する一方、狭帯域音声 チャネルをATMペイロードに組み立てたり、分解したりするタスクを実行する 。これについては、特許出願WO95/35008(ノーザン・テレコム社)に 詳細に説明されている。AVJは、バルク変換を実行する。すなわち、ATMネ ットワークを通じて送信するため、特定のトランク宛の全音声トラヒックを、単 一のPVCセル・ストリームにまとめる。このようにトラヒックを統合する際、 通常、音声トラヒックをATMセルに束ねることに関連するセル組立て遅延が、 大幅に減る。さらに、最小のチャネル・サイズ(単一のPVCに統合される音声 回線の最小数)を規定することで、最小のセル組立て遅延が保証されるため、音 声回線ごとのエコー・キャンセラが不要となる。このため、ネットワークのコス トと複雑さが、かなり解消される。AVJの第2の重要な機能は、瞬時のトラヒ ック負荷に従って、帯域幅が宛先に割り当てられていることである。従って、現 在、関連するトランクの宛先に接続されている音声チャネルの数に合うよう、P VCの大きさを増やしたり、減らしたりできる。トラヒックが、規定された最小 チャネル・サイズより少なくなれば、パディング(padding)を使って、 保証されたセル組立て期間を維持することができる。 AVJの入力(イングレス)機能部は、ATMネットワーク72を通じてセル を伝送する前に、狭帯域音声チャネルをセルに変換する役割を果たす。AVJの 出力(エグレス)機能部は、狭帯域音声チャネルを、ATMセルから同期ドメイ ンに逆変換する役割を果たす。本システム内では、AVJがダイナミック接続テ ーブルを維持して、狭帯域、フレーム同期音声トラヒックをATMセル・ペイロ ードに束ねたり(パック)、ATMセル・ペイロードより元に戻す(アンパック )ことのできる手段が必要となる。接続マップは、継続して走査される必要があ り、1つの完結した走査は、125μsのフレーム間隔で発生する。これによっ て、既存の(ソフトウェアを基礎とした)連鎖リスト構造を使う必要がなくなる 。さらに、ネットワークを介した、完全な相互接続性を提供するため、どのイン グレス・タイムスロットも、いかなるエグレス・タイムスロットに接続できな ければならない。これを行う1つの方法は、イングレス機能部とエグレス機能部 の両方に、切換段を設けることである。これは、図8に概念的に示されている。 各切換段は、フレーム格納部80,82からなり、これらへのアクセスは、接続 マップ81,83によって制御される。フレーム格納部は、時間切換え機能を実 行する。つまり、ローディングやアンローディングの順序を変えることができる 。このようにして、ATMセルを任意の順序でパックしたり、アンパックでき、 接続テーブルを任意の方法で順序づける一方、完全な相互接続性を実現している 。この方法の問題点は、切換段ごとに、(125μsの)大きな時間遅れが生じ 、2重切換の純粋な効果は、今日の通信ネットワークで特定される、切迫した狭 帯域遅延の収支を超えてしまうことである。 図8を参照して、仮想チャネル(VC)「A」のイングレス動作とエグレス動 作の詳細を説明する。イングレス側では、VC Aのペイロードが昇順にロード される。つまり、フレーム格納部80からの、イングレス・タイムスロット1内 のデータの次に、イングレス・タイムスロット2内のデータが続き、その後に、 イングレス・タイムスロット6内のデータが続く。しかし、エグレス側では、こ のデータを、それぞれタイムスロット2,1,4に配信する必要がある。従って 、データは、そのペイロード中では、エグレス・タイムスロットの構造において 要求される位置の順番通りにはなっていない。 この問題を解決するため、エグレス側において、フレーム格納部が、ペイロー ドの分解とエグレス同期タイムスロットの構造との間に、間接的なレベルを設け る必要がある。この例では、イングレス・タイムスロット1からのデータは、V CペイロードAから読み出され、エグレス・フレーム格納部82の位置2に書き 込まれ、イングレス・タイムスロット2からのデータは、エグレス・フレーム格 納部の位置1に書き込まれ、最後に、イングレス・タイムスロット6からのデー タが、エグレス・フレーム格納部の位置4に書き込まれる。従って、次の125 μsサイクルにおいて、このサイクルで構成されたフレーム格納部を、同期バッ クプレーン構造に順次、書き込むことができる。 切換段の1つを除去すると、遅延を減少させることができ、狭帯域遅延の収支 があう。エグレス機能部でATMセルをアンパックするのに要する順番で、(イ ングレス機能部において)ATMセルを組み立てることにより、エグレス切換段 を除去できる。そこで、この狭帯域チャネルは、エグレス・フレーム格納段82 がなくても、直接、同期バックプレーンに書き込むことができる。これを、図9 に示す。仮想チャネル(VC)「A」のペイロードは、イングレス・タイムスロ ット2,1,6からのデータ順に組み立てられる。エグレス側では、さらにフレ ームを格納する必要がなく、ペイロードは、直接、同期バックプレーンに対して 分解される。そこで、エグレス・マップは、単にVCについて明言し、このVC より、同期バックプレーンに書き込まれる、関連するデータ・オクテットを検索 する。このように、エグレス・タイムスロット1では、イングレス・タイムスロ ット2からのデータ・オクテットが、ペイロードから読み出され、バックプレー ンに書き込まれる。エグレス・タイムスロット2では、イングレス・タイムスロ ット1からのデータ・オクテットが、ペイロードから読み出され、バックプレー ンに書き込まれる。そして、エグレス・タイムスロット4では、イングレス・タ イムスロット6からのデータ・オクテットが、ペイロードから読み出され、バッ クプレーンに書き込まれる。従って、イングレス接続マップの順序づけは、エグ レス機能部によって指令される。新たな接続を設定するため、エグレス機能部は 、他の接続に関係する新たな呼の順序を知らせなければならない。これは、最小 の信号メッセージ・オーバヘッドで実行できる。というのも、全信号ハンドシェ イクが、通常通り、イングレス機能部とエグレス機能部の間で行われ、確実に、 信頼できる呼設定手順を実行できるからである。しかし、1個の新たな接続が、 イングレス接続テーブルの完全な再順序づけを必要とすることがある。これは、 これまでの接続マップを更新する方法では、処理の中断なしには、実現不可能で ある。ここに説明された、動的データ構造管理部の特性は、この処理に理想的な ものである。従って、イングレス機能部内の動的な接続テーブルの構造と維持は 、本発明の一アプリケーションとなる。 図10は、イングレス機能部とエグレス機能部のブロック図である。イングレ ス機能部は、フレーム格納部80を含み、そこには、バックプレーンからの同期 狭帯域データが格納される。ペイロードRAM91は、ATMセルが構築される 傍ら、それらを格納するのに使用される。さらに用意されたメモリが、接続マッ プを格納する。接続マップの制御下で、フレーム格納部からオクテットが読み出 され、ペイロードRAMに書き込まれる。完成したATMセルは、次に、ATM ネットワークを通じて、エグレス機能部に送られ、そこで、エグレス・ペイロー ドRAMに格納されて、分解待ち状態になる。これらのATMセルは、エグレス 接続テーブル90の制御のもとで分解される。狭帯域チャネルは、直接、同期T DMバックプレーンに書き込まれる。 接続テーブルは、一連の隣接した連鎖リストとして構成され、(PVC識別子 によって識別される)トランクの宛先ごとに1つのリストがある。各リストが、 現在、その宛先に接続されている狭帯域チャネルに関連したバックプレーン・ア ドレスの組を含んでいる。リスト内のアドレスの順番が、エグレス側におけるア ンパッキングの順序を表している。静的な動作では、接続テーブルには、順次、 アドレスがかけられ、空きではない記憶場所各々に対して、アドレス情報を使っ て、フレーム格納部80に格納された、TDMバックプレーン上の音声チャネル にアクセスする。一方、連鎖リストの識別子は、どのペイロード(チャネルA, B,C)にオクテットを配すべきかを識別する。 連鎖リストは、メモリ内において隣接して保持されているので、AVJにとっ て、ATMペイロードが含まれているときの、各トラヒックの宛先の、現在のチ ャネルの大きさを計算することは、簡単な処理であることが容易に分かる。現在 のチャネルの大きさは、リスト内の接続数の合計で表される。瞬時におけるチャ ネルの大きさが、あらかじめ規定した最小の大きさより小さい場合、ペイロード のパディング処理が自動的に起動し、ATMネットワークを通じて搬送された、 狭帯域回路ごとの所定の伝送遅延が維持される。 接続テーブルは、新たな呼が設定されるか、既存の呼が開放されると、更新す る必要がある。新たな呼を追加するため、エグレス機能部は、VC内の新たな呼 の順序を通知しなければならない。この順序は、オフセットとして計算される。 例えば、オフセットが0ということは、新たなチャネルがVC内で最初のチャネ ルとなることを示す。イングレス制御構成素子は、上記の更新(この素子が接続 される複数のエグレスAVJからは、複数の要求がある)を、VC順序に分類す る。接続テーブルの更新を、図11,図11Aに示す。更新要求は、フレームの 開始時に、接続マップに提示される。図11は、3つの更新要求の待ち行列を示 しており、2つの新たな接続と、削除される1つの既存の接続からなっている。 これらの更新は、処理される順番に配列され、2つの更新が仮想チャネルAに対 応し、1つが仮想チャネルCに対応している。接続テーブルは、順次、アクセス されるので、更新された情報は、元の接続情報とともに挿入あるいは削除され、 それに従って、メモリ内でシャフルされる。完全な更新は、1回の125μsフ レーム間隔で、新規の接続情報とともに実行され、次のフレーム以降から有効に なる。図11Aは、更新が完了した、メモリ・サイクルの最後における状態を示 す。この更新処理は、ATMセルの組立ての通常動作に対して、完全にトランス ペアレントであることが分かる。 更新処理のさらなる機能は、マルチキャスト(多重配信)呼を簡単に接続し、 維持できることである。マルチキャスト呼は、1つのイングレス・バックプレー ン音声チャネルを、いくつかのエグレス・バックプレーン接続に転写したものか らなっており、図12に、その概念を示す。特定のチャネルが、特定のペイロー ド内で、あるいは、多数の異なるペイロードに対して複製される。図12では、 フレーム格納部の場所「1」の内容(特定の狭帯域チャネルを示す)が、仮想チ ャネルAに対するペイロード内に2回、複製され、また、仮想チャネルCに対す るペイロード内に1回、複製される。 マルチキャスト呼の設定を行うため、制御構成素子は、その処理に、接続テー ブル内のTDMバックプレーン・アドレスと複数の挿入ポイントを与えるだけで よい(呼の複製は、単一のPVC内で行われたり、複数のPVCに渡って行われ るという具合に、両方の場合がある)。接続テーブルが更新された場合、複製し た呼の各々が、接続マップ内の1つの場所を占有する。マルチキャスト呼を提供 する動作は、他の変換処理に対して完全にトランスペアレントである。この技術 によってマルチキャスト呼を提供することは、複雑なオクテット複製回路が不要 となる、という重要な利点もある。これは、データが複製されるのではなく、デ ータが、フレーム格納部から単に読み出されるからである。 図13,図13Aは、接続テーブルを更新して、マルチキャスト動作をサポー トする処理を示している。図13は、3つの更新要求の待ち行列を示しており、 フレーム格納部の場所「1」の内容を、チャネルAに2回、追加し、チャネルC に1回、追加する。図13Aは、その結果得られた、更新された接続テーブルを 示す。DETAILED DESCRIPTION OF THE INVENTION Title of invention Managing data structures Field of the invention The present invention relates to data structures, and more particularly, to managing dynamic data lists in a real-time environment. One application unique to the present invention is the updating of connection maps in telecommunications systems. Background art One known data storage method takes the form of a linked list. Chained lists allow you to dynamically store even or uneven data items. Many related data items can be contained in a single list, with each item linked by a pointer field to the next item in the list. This is essentially a software process. This pointer field allows you to change the direction of the list and access the data. In the simplest form, new items are always added to the bottom of the list, and old items are always removed from the top of the list. The most common example of this scheme is a FIFO device. Updating this type of list requires actions such as chaining the list and deleting items. One example of an application in which this type of list is used is the queuing of tasks in an operating system, where the tasks are simply scheduled according to their arrival times. By using a linked list in a more complex way, all or part of the data information can be ordered in the list. Updating this type of list requires the ability to add new items or delete existing lists anywhere in the list. Examples of applications in which this type of list is used are routing tables, call records, translation table arrays in telecommunications systems, and task scheduling according to priorities in computer operating systems. There is. U.S. Pat. No. 5,274,768 (by Traw et al.) Describes an interface for an asynchronous transfer mode (ATM) network using this type of chained list management. International Patent Application WO 95/32596 A1 (Northern Telecom) describes an SDH / ATM interface that links the time slots of a particular ATM virtual circuit using a chain structure. An example of this type of list is shown in FIG. The memory 30 has a plurality of storage locations (memory locations), which are numbered from 1 to 20. Like location 1, the reserved portion in memory holds a pointer start_ptr that indicates the location of the first element in the list. In this example, the first element in the list occupies memory location 4. However, this element can occupy any of the storage locations. The enlarged portion shows the contents of the storage location 4 in detail. This storage location stores a data item DATA and a pointer ptr_next. This pointer points to the location of the next element in the chained list. It has the value "16", which is the storage location where the second element in the list is stored. This memory holds many identical elements linked together in such a way. Therefore, a process of updating this type of list will be described with reference to FIGS. 1A to 1C. FIG. 1A shows two elements, an element stored in storage location 4 and a second element stored in storage location 9. The pointer of the element at location 4 points to storage location 9. First, the situation where new elements need to be added to the list is considered. This new element is inserted into an available location in memory. This is location 16. This element must be tied to the list at the point where it is needed. FIG. 1B shows the result of adding a new element to the list between two existing elements. The pointer value of this element, held in memory location 4, now points to memory location 16, and the pointer value of the newly inserted element now points to memory location 9. Second, it takes into account the situation of existing elements that need to be removed from the list. Existing elements in storage location 16 need to be removed from the list. The pointer value of the element held at location 4 is changed to point to the storage location of the element following the element to be deleted (ie, the element at location 9). The problem with chained lists is that you need to search the list systematically to find a particular data item, starting with the first element in the list and continuing to the end of the list until the item is found. That is, there is. Therefore, the search process becomes slow. To improve access processing, a doubly linked list is generally used. In a doubly linked list, for each data item, a pointer is used to point to both the next element in the list and the previous item. In this way, the list can be changed in either direction. There are many problems with using linked and double linked lists. First, the process of constructing and maintaining lists becomes complicated, and therefore requires execution using software. Therefore, these lists cannot be used as real-time, high-throughput applications. Second, the task of updating the chained list usually hinders the process of accessing data. And third, it is necessary to store both data elements and pointers that link the elements together. A well-known method of updating a data list in a real-time hardware system is to use shadow memory. First, the updated list is constructed in this shadow memory and then replaced with the original memory to complete the update process. The use of shadow memory has the disadvantage of doubling the overall memory requirement. Therefore, choosing this method is particularly expensive for very fast real-time applications that require expensive, high performance memory devices. Both of these technologies have undesirable attributes, especially when used in real-time applications. The present invention provides an improved method for updating data tables and lists that minimizes the disadvantages of the prior art methods. Summary of the Invention According to a first aspect of the present invention, in a method for reading and updating at least one of a list of data elements stored in a predetermined order of storage locations of a memory device, a read pointer capable of pointing to individual storage locations. Providing read and write pointers; using the read pointer to read the elements of the list in the order in which they were stored; and during reading of the list, using the write pointer to Updating the list by writing elements to the read storage locations, wherein the written elements comprise elements read in the reading step, new elements inserted into the list, The step of updating includes, when the list is read, as a result, the list is stored through the storage locations in the predetermined order. A method for moving parts is provided. Storing data elements in a predetermined order eliminates the need for a complicated pointer mechanism to link one element in the list to the next. Several linked lists can be managed simultaneously while sharing common memory resources. This method is suitable for many applications that traditionally use chained and double chained lists to maintain dynamic data structures under software and / or hardware control. This moving process eliminates the need for a large-capacity additional high-speed memory as used in the known shadow memory technology. The method is simple and can be performed with minimal equipment. Performing the update during normal access to the list eliminates the need to interrupt the system during the update period. This technique is perfectly suitable for periodic applications where a complete set of data is read sequentially, once per operating cycle. An example of such a periodic read occurring is a connection table for a telecommunications application. The order in which the elements of the list are maintained may be important. Move parts of the list through the ordered storage location, update the list by inserting new elements into the list, or deleting or modifying existing elements at specific positions in the list This has the important advantage of keeping the elements in the list in their order as updates occur. Preferably, the step of updating the list, moving the data element and inserting a new element at a specific position in the list, comprises moving the data element that is earlier than the position through the storage locations in the predetermined order. And providing a space corresponding to the new element and inserting the new element into the space. Preferably, the step of updating the list is a step of deleting an existing item at a specific position in the list, and moving a data element in a direction returning from the position through the storage locations in the predetermined order. And overwriting the existing items. Preferably, the storage locations in the predetermined order in which the data elements are stored are a series of adjacent storage locations. This simplifies the process of navigating between data elements in the list. The proposed technology minimizes the control overhead and the operation is simpler than the conventional chained list, so the whole system is a hardware system or a combination of hardware and minimum software. Very fast access and maintenance speeds can be reliably achieved in the system. Data updates can be completely transparent to normal operation of the memory. That is, it is not necessary to interrupt the read access process while the update occurs. Preferably, sets of instructions for updating the data list are stored, the sets being arranged according to the order in which the lists are accessed. Therefore, a complete list update of the list including addition and deletion of a plurality of data items can be performed in one cycle. Preferably, the method further comprises reading the contents of the storage location determined by the read pointer into a second memory, and storing the content of the second memory in the storage location determined by the write pointer. Writing the oldest content, writing a new item to be inserted into the list, or writing nothing. This second memory is preferably composed of a FIFO device. Alternatively, it may be constituted by a designated portion of the main memory, which is configured to function as a FIFO. The step of deleting an existing element at a specific position in the list preferably includes the step of setting the write pointer to lag the read pointer so that the data element in a direction returning from the delete position is set to the predetermined position. Moving through the order storage location to overwrite the desired data element. Inserting a new element at a particular location in the list preferably comprises reading the data element stored at the location into a second memory; writing the new element to the storage location; Accessing, reading the data element at the next location into the second memory, and writing the oldest data element in the second memory to the next location, thereby leading the new element. Moving the data elements in the storage locations in the predetermined order. According to another aspect of the present invention, there is provided a method of managing a connection map of a telecommunications switch, the map comprising a list of connection instructions for the switch, stored in a predetermined order in a memory, The method includes providing a read pointer and a write pointer that can point to individual memory locations; using the read pointer to read the instructions in the list in the order in which they were stored; Updating the list by using the write pointer to write instructions to previously read storage locations during reading of the list, wherein the written instructions are read by the reading step. And the step comprising a new instruction to be inserted into the list. The step of updating, as a result of reading the list, It provides a way to move a part of the list through the memory locations of the predetermined order. Preferably, the method of managing a connection map forms part of a method of operating a telecommunications switch, the method comprising receiving data from a plurality of sources at an input to the switch; Buffering the received data, assembling the received data into a payload, transmitting the payload from the output of the switch to a plurality of destinations, wherein the connection command Specifies whether to assemble buffered data. Preferably, the connection map is ordered to assemble the payloads in the order in which the payloads will be decomposed at their destination. By doing so, it is not necessary to store the frame at the destination, and it is possible to avoid transmission delay caused by storing the frame. The received data can consist of a narrowband channel and the payload can consist of the payload of an ATM cell. The method of managing a connection map further includes receiving a request for a multicast connection between a source and a plurality of destinations, creating a series of update instructions for the map, and using the map. Updating the map with the series of update instructions. The ability to easily configure and manage the connectivity required for multicast narrowband telephone calls is a particularly desirable feature in future networks that support advanced features such as multimedia and conferencing services. The method of managing a connection map further comprises: summing elements of the map indicating a connection to a particular destination; calculating a size of a payload corresponding to the sum; and padding the payload. A step of deciding whether it is necessary and a step of activating padding according to the result of the decision. By executing the connection map in this manner, the size of the payload for each destination can be easily calculated. According to a further aspect of the invention, there is provided an apparatus for managing at least one of a list of data elements, a storage device for storing the data elements in storage locations in a predetermined order, and a read pointer capable of pointing to individual storage locations. Means for providing read and write pointers; means for reading the elements of the list using the read pointer in the order in which they are stored; and means for using the write pointer during reading of the list. Means for updating the list by writing elements to the read storage locations, the written elements comprising: elements read by the reading means; new elements inserted into the list; The updating means, when the list is read, as a result, through the storage locations in the predetermined order. To provide an apparatus for moving some of the bets. This device can be implemented in hardware only. According to a further aspect of the invention, an input for receiving data from a plurality of sources, a buffer for storing the received data, means for assembling the received data into a payload, and transmitting the payload to a plurality of destinations An output unit, a memory for storing a map of connection instructions as at least one of a list of data elements in a predetermined order in the memory, and a management unit for managing the map. Means for providing a read pointer and a write pointer capable of pointing to the list, means for reading the elements of the list in the order in which they are stored using the read pointer, and means for reading the list during reading of the list. Means for updating the list by writing an element to a storage location that has already been read, using a write pointer. These written elements include the element read by the reading unit, the management unit having the unit, which includes a new element to be inserted into the list, and the updating unit includes: When read, the result is to provide a telecommunications switch that moves a portion of the list through the predetermined order of storage locations. This method is particularly suitable for updating connection maps and routing tables used in communication systems and data networks. These applications will be described in detail. However, it will be appreciated that the method is also capable of other applications, such as scheduling events and processes in a real-time operating system. As will be apparent to those skilled in the art, suitable features may be combined as appropriate, or those features may be combined with any of the aspects of the present invention. BRIEF DESCRIPTION OF THE FIGURES Embodiments will be described below with reference to the accompanying drawings in order to better understand the present invention and illustrate how it is carried out. FIG. 1 shows a known method of implementing a linked list. 1A to 1C show a method of updating a list using the configuration of FIG. FIG. 2 schematically shows the arrangement of the linked list in the memory. FIG. 3 illustrates updating a set of linked lists in memory. FIG. 4 shows a system for performing the method shown in FIG. 5 to 5B show the system of FIG. 4 used for updating the linked list. FIG. 6 shows a flowchart of a method for updating a linked list. FIG. 7 shows a communication system using the method. FIG. 8 shows an example of implementing the interconnection via the network of FIG. FIG. 9 shows another example of implementing the interconnection via the network of FIG. FIG. 10 shows a system for realizing the interconnection by the method of FIG. 11 and 11A show a process of updating the connection table used in the system of FIG. FIG. 12 illustrates the concept of multicast. FIGS. 13 and 13A show processing for updating the connection table used in the system of FIG. 10 and executing multicast. Embodiment of the Invention FIG. 2 shows the basic structure of a linked list in a memory. This memory can be used to maintain a single data list and can contain multiple linked lists. The total size of the memory places an upper limit on the combined length of all data lists. Each list is stored in a predetermined order of storage locations. In the arrangement of FIG. 2, the storage locations in the predetermined order are a series of adjacent storage locations. This eliminates fragmentation of the list and eliminates the control logic required to traverse the structure of conventional chained lists. In addition, all unallocated locations in memory occur consecutively as a group at the lowest location in memory. One way to distinguish between a chained list and unallocated memory is to keep the end-of-list marker EOL in the first free location. In a static operation, the data items in the list are accessed by sequentially reading memory. Thus, in one complete cycle, the contents of the entire memory can be accessed and used in the next process. When a plurality of linked lists are held in the memory, it is necessary to be able to describe the boundary position of each list. There are several ways to do this, such as maintaining an external count of the current length of each list. Alternatively, the list identifier 35 can be held using an additional field in the memory. For this reason, the total amount of memory required for processing increases, but it is not necessary to add an external control element. This is the method shown in FIG. This additional field can display one piece of information that needs to be stored in another way, so that no additional memory capacity is required. For example, in a telecommunications connection map application described below, the list number indicates the identity of the virtual channel in which each octet is assembled and the information that needs to be stored. FIG. 3 shows a process for updating the list. To update the list, the memory is sequentially moved in the usual manner until there is an item to be deleted or to the position of the item to be inserted. An insert or delete operation occurs at this point. Subsequent memory accesses move the original data down one location in memory to compensate for insertion, or up one location in memory. Go to make up for the deletion. In this way, the structure of the chained list can be completely updated in one complete memory cycle. Individual linked lists remain contiguous, and empty locations are still at the bottom of memory. The updated data list becomes effective in use from the subsequent memory cycle onward. Block 40 indicates the original state of the memory. Block 41 indicates the memory state after the memory cycle of performing a delete operation to delete item "334" from list 1. Block 42 further indicates the memory state after the memory cycle of adding an additional item "45" to linked list 2. Details of the system that performs the update process are shown in FIG. The system includes a general control component 54, a memory 52 for storing a chained list (the size of which is the same as the sum of the maximum lengths of all lists), and a single A memory access mechanism (the read and write pointer locations may be different) that can perform a read operation and a single write operation, a small FIFO 53 used for intermediate data storage during a shuffle down operation, And a comparator / logic function unit 51 for specifying the position of each update operation in the memory. The size of FIFO 53 is arbitrary, but there is an upper limit on the total number of inserts that can be performed during each memory cycle. This is because, as described later in detail, the process of inserting an item into the memory temporarily changes the position of some elements. This memory is preferably a standard RAM device. These components are desirably integrated in an ASIC. To perform the update, the control component must provide the process with list identity (and in the case of an insert, a new data item must be provided). In the simplest case, where new data is always added to the top of the list and old items are always deleted from the bottom of the list, this is enough information to perform the update process. However, this technique is not limited to pushing or popping data into memory; it allows data items to be inserted or deleted anywhere in each list. In such a case, the control component must also provide enough information for the process to be able to fully locate the insertion / deletion. This information may take the form of a relative position in the list (eg, the third item in list 4), or the value of a data item (deleted or currently at the insertion position). Can be Next, the insertion processing and the deletion processing will be described in detail. The term "memory cycle" refers to a single, sequential, full scan of the contents of the memory during which individual storage locations are searched and updated. "Access cycle" is a term that refers to searching one memory location during one such memory cycle. To insert new data items into the list, the memory is accessed sequentially in the usual manner until an insertion point is found. At this point, the contents of this storage location are transferred to the FIFO for temporary storage before a new data item is written to memory. In the next access cycle, the data item at the next storage location is put into the FIFO before it is overwritten (in memory) by the data held in the FIFO. This process continues until the end of the memory cycle, at which point all data items located after the insertion point will be moved back one position in memory. This process can be deployed such that multiple insertions are performed during a single memory cycle. This requires increasing the size of the FIFO to equal the desired maximum number of insertions per cycle, and separating the data items by control component in the order of insertion. As described above, when each input point is positioned, the data held in the FIFO becomes larger by one element, and the shuffle length becomes longer by the increased position. The removal process works in the same way. The memory is accessed sequentially until the location where the item to be deleted is found. At this position, the write pointer is set to be one position behind the read pointer. In the next access cycle, data read from the next memory location is written to the previous location (overwriting the item to be deleted). This process is repeated until the end of the memory cycle, at which point all data immediately following the delete point is advanced one position in memory. This process can be expanded so that a plurality of deletions can be performed within one memory cycle. In one deletion, the write pointer is further decremented by one position than the read pointer. Therefore, the shuffle length becomes longer. Since the insertion processing and the deletion processing are compatible, a plurality of insertions and deletions can be executed within one cycle. The only condition in this case is that the control component commands the update according to the input / delete position. In addition, it is also possible to perform an insertion operation and a deletion operation on the list continuously to change items in the list. Detailed examples of the update processing are shown in FIGS. In this example, three linked lists are held in 16 element memories. In one update, three inserts and two deletes are performed. It should be apparent that other combinations of insertion and deletion are possible. FIG. 5 shows a state at the start of a memory cycle before an update is performed. A series of update instructions for the cycle 50 are arranged in the order in which the update needs to be executed. FIG. 5A shows a state in the middle of the cycle, and the remaining three updates are waiting for execution. FIG. 5B shows the last state of the cycle. Table 1 describes in detail each step of this example, which lists the read and write operations and the contents of the FIFO for each of the 16 accesses of a complete memory cycle. . Note that the following notation is used when describing the read and write operations. "List number / data value ... storage location" For example, "1/3 from 1" means that data having the value "3" in list 1 is read from storage location 1. Table 1 (Update processing status during each access cycle) When a pure deletion update is performed on this configuration, that is, in an update in which a deletion operation is performed more frequently than an insertion operation in a previously full memory, it is necessary to reinsert the end-of-list boundary marker. One way to do this is to insert a marker in the next memory cycle using a spare write access. This is necessary because the write pointer is always behind the read pointer. The control component ensures that this method is incorporated into updates that are to be made in the next cycle. In very rare situations, where the immediately following update uses all available write accesses (ie, full memory shuffle), the control component needs to delay this new update by one cycle. is there. Alternatively, a housekeeping period may be provided between successive memory cycles where a "holdover" write cycle is performed. Update algorithm The details of the update algorithm will be described with reference to the flowchart shown in FIG. (A) Initialize Read_Ptr and Write_Ptr for the first position of the memory 52. The contents of the first update are read into the comparison circuit 51. (B) Read the storage location indicated by Read_Ptr into the FIFO. Read_Ptr for the next position is added and updated. (C) Compare the current update field with the contents held at the top of the FIFO in the comparator 51. (I) If the deletion position is found, the storage location indicated by the write pointer is overwritten with an empty marker (null marker). This write pointer is not additionally updated. The data content held at the top of the FIFO is destroyed. The comparison circuit 51 is updated with the next update content in the list 50. (Ii) If the insertion position is found, the storage location indicated by Write_Ptr is overwritten with the insertion data. This Write_Ptr is additionally updated to indicate the next storage location. The FIFO is not updated (the comparator uses the same data value in the next cycle when comparing with the updated content) and its length increases by one position. The comparison circuit 51 is updated by the next update content in the list 50. (Iii) If neither an insertion position nor a deletion position is found, the top content of the FIFO is written to a storage location indicated by Write_Ptr, and the FIFO advances by one position. Print_Ptr is additionally updated by one position. Alternatively, if the first update position has not been reached, the memory content indicated by Write_Ptr does not change after a write operation. Therefore, it is not necessary to perform a write access, and use this write access for other housekeeping tasks, such as performing some holdover write from the next frame cycle, caused by the pure delete operation described above. Can be. (D) Repeat steps (b) and (c) until the end of the map or until all updates have been performed (all insertions and deletions have been performed and the end of the file has been reached by the read operation, FIFO becomes empty). An application for which the method is particularly suitable is a telecommunications routing table. Details of this application will be described with reference to FIGS. 7 to 13A. Mechanisms are being developed to efficiently carry narrowband voice or data traffic over wideband ATM networks. This concept is shown in FIG. Synchronous narrowband traffic POTS, ISDN BA, ISDN PRA are carried through a 64 kb / s structure (fabric) 70. It terminates at the first interworking unit (interwork unit: IWU) 71. The IWU 71 converts the narrowband traffic into ATM cells, which are then transmitted through the ATM network 72 to the far-end IWU 73. This far-end IWU converts the narrowband traffic back to the synchronous domain for transmission to the farther 64 kb / s fabric 74. An ATM conversion device called an adaptive virtual junctor (AVJ) has been proposed. This device performs the task of assembling and disassembling the narrowband voice channel into an ATM payload while preserving the synchronous framing information of the original data. This is described in detail in patent application WO 95/35008 (Northern Telecom). AVJ performs bulk conversion. That is, all voice traffic destined for a particular trunk is combined into a single PVC cell stream for transmission over the ATM network. In consolidating traffic in this manner, the cell assembly delay typically associated with bundling voice traffic into ATM cells is greatly reduced. Further, by defining a minimum channel size (the minimum number of voice circuits integrated into a single PVC), a minimum cell assembly delay is guaranteed, eliminating the need for an echo canceller per voice circuit. . This considerably reduces the cost and complexity of the network. A second important function of AVJ is that bandwidth is allocated to destinations according to the instantaneous traffic load. Thus, the size of the PVC can be increased or decreased to match the number of voice channels currently connected to the associated trunk destination. If traffic drops below a specified minimum channel size, padding can be used to maintain a guaranteed cell assembly period. The input (ingress) function of the AVJ serves to convert the narrowband voice channel into cells before transmitting the cells over the ATM network 72. The output (egress) function of the AVJ plays a role of inverting the narrowband voice channel from the ATM cell to the synchronous domain. Within this system, there is a means by which the AVJ can maintain a dynamic connection table to bundle (pack) narrowband, frame-synchronous voice traffic into an ATM cell payload or unpack (unpack) it from the ATM cell payload. Required. The connection map needs to be continuously scanned and one complete scan occurs at a frame interval of 125 μs. This eliminates the need to use an existing (software-based) linked list structure. Furthermore, any ingress time slot must be able to connect to any egress time slot to provide full interconnectivity over the network. One way to do this is to provide a switching stage in both the ingress function and the egress function. This is shown conceptually in FIG. Each switching stage includes frame storage units 80 and 82, and access to them is controlled by connection maps 81 and 83. The frame storage performs a time switching function. That is, the order of loading and unloading can be changed. In this way, ATM cells can be packed and unpacked in any order, and the connection tables can be ordered in any way, while still achieving full interconnectivity. The problem with this method is that each switching stage results in a large time delay (of 125 μs), and the net effect of double switching exceeds the imminent narrowband delay budget specified in today's communication networks. Is to put it. Referring to FIG. 8, details of the ingress operation and the egress operation of virtual channel (VC) “A” will be described. On the ingress side, the payloads of the VC A are loaded in ascending order. That is, the data in the ingress time slot 2 follows the data in the ingress time slot 2 from the frame storage unit 80, and then the data in the ingress time slot 6 follows. However, on the egress side, this data needs to be delivered to time slots 2, 1, and 4, respectively. Therefore, the data does not follow the required order of positions in the structure of the egress time slot in its payload. To solve this problem, on the egress side, the frame store needs to provide an indirect level between the decomposition of the payload and the structure of the egress synchronization time slot. In this example, data from ingress time slot 1 is read from VC payload A and written to location 2 of egress frame store 82, and data from ingress time slot 2 is stored in egress frame storage. The data from ingress time slot 6 is written to position 4 in the egress frame store. Therefore, in the next 125 μs cycle, the frame storage unit configured in this cycle can be sequentially written to the synchronous backplane structure. Eliminating one of the switching stages can reduce the delay and balance the narrowband delay. The egress switching stage can be eliminated by assembling the ATM cells (at the ingress function) in the order required to unpack the ATM cells at the egress function. The narrowband channel can then be written directly to the synchronous backplane without the egress frame storage stage 82. This is shown in FIG. The payload of the virtual channel (VC) “A” is assembled in data order from the ingress time slots 2, 1, 6. On the egress side, no additional frames need to be stored and the payload is decomposed directly to the synchronization backplane. The egress map then simply asserts the VC, from which it retrieves the relevant data octets to be written to the synchronous backplane. Thus, in egress time slot 1, data octets from ingress time slot 2 are read from the payload and written to the backplane. In egress time slot 2, data octets from ingress time slot 1 are read from the payload and written to the backplane. Then, in egress time slot 4, data octets from ingress time slot 6 are read from the payload and written to the backplane. Thus, the ordering of the ingress connection map is dictated by the egress function. In order to set up a new connection, the egress function must signal the new call order related to other connections. This can be done with minimal signaling message overhead. This is because a full signal handshake is performed between the ingress function and the egress function as usual, and a reliable call setup procedure can be executed reliably. However, one new connection may require a complete reordering of the ingress connection table. This is not feasible with the conventional method of updating the connection map without interrupting the processing. The characteristics of the dynamic data structure manager described here are ideal for this process. Thus, the structure and maintenance of a dynamic connection table in the ingress function is an application of the present invention. FIG. 10 is a block diagram of the ingress function unit and the egress function unit. The ingress function unit includes a frame storage unit 80 in which synchronous narrowband data from the backplane is stored. The payload RAM 91 is used to store ATM cells while they are being constructed. Further, a prepared memory stores the connection map. Octets are read from the frame store under the control of the connection map and written to the payload RAM. The completed ATM cell is then sent over the ATM network to the egress function, where it is stored in the egress payload RAM and awaiting disassembly. These ATM cells are decomposed under the control of the egress connection table 90. Narrowband channels are written directly to the synchronous TDM backplane. The connection table is organized as a series of contiguous linked lists, one list for each trunk destination (identified by a PVC identifier). Each list contains the set of backplane addresses currently associated with the narrowband channel connected to its destination. The order of the addresses in the list indicates the order of unpacking on the egress side. In the static operation, the connection table is sequentially assigned an address, and for each non-empty storage location, the address information is used to store the voice channel on the TDM backplane stored in the frame storage unit 80. To access. On the other hand, the identifier of the chained list identifies which payload (channel A, B, C) the octet should be allocated to. Because the concatenated list is held contiguously in memory, it is a simple process for the AVJ to calculate the current channel size for each traffic destination when an ATM payload is included. It is easy to see that The current channel size is represented by the sum of the number of connections in the list. If the instantaneous channel size is smaller than the predefined minimum size, the padding of the payload is automatically activated and a predetermined transmission delay per narrowband circuit carried over the ATM network is maintained. The connection table needs to be updated when a new call is set up or an existing call is released. In order to add a new call, the egress function must signal the order of the new call in the VC. This order is calculated as an offset. For example, an offset of 0 indicates that the new channel will be the first channel in the VC. The ingress control component classifies the updates (multiple requests from multiple egress AVJs to which this component is connected) in VC order. The update of the connection table is shown in FIGS. 11 and 11A. The update request is presented on the connection map at the start of the frame. FIG. 11 shows a queue of three update requests, consisting of two new connections and one existing connection to be deleted. These updates are arranged in the order in which they are processed, with two updates corresponding to virtual channel A and one corresponding to virtual channel C. Since the connection table is accessed sequentially, the updated information is inserted or deleted along with the original connection information, and is shuffled in the memory accordingly. A complete update is performed with new connection information at one 125 μs frame interval and becomes effective from the next frame onward. FIG. 11A shows the state at the end of the memory cycle when the update is complete. It can be seen that this update process is completely transparent to the normal operation of ATM cell assembly. A further feature of the update process is that multicast calls can be easily connected and maintained. A multicast call consists of a single ingress backplane voice channel transcribed to several egress backplane connections, the concept of which is shown in FIG. A particular channel is replicated within a particular payload or for a number of different payloads. In FIG. 12, the contents of the frame store location "1" (indicating a particular narrowband channel) are duplicated twice in the payload for virtual channel A and once in the payload for virtual channel C. Be replicated. To set up a multicast call, the control component need only provide its processing with the TDM backplane address in the connection table and multiple insertion points (call replication is done within a single PVC). Or across multiple PVCs). If the connection table is updated, each duplicate call occupies one place in the connection map. The operation of providing a multicast call is completely transparent to other conversion processes. Providing a multicast call with this technique also has the important advantage that complicated octet duplication circuits are not required. This is because the data is simply read from the frame store, rather than being duplicated. FIGS. 13 and 13A show processing for updating the connection table and supporting the multicast operation. FIG. 13 shows a queue of three update requests, where the contents of location "1" in the frame storage are added twice to channel A and once to channel C. FIG. 13A shows the resulting updated connection table.

───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),CA,JP,US (72)発明者 ステイシー・デビッド・ジョン イギリス国,エスジー12 8エイエイチ, ハートフォードシアー,スタンステッド アボット,オーチャード クロース 28────────────────────────────────────────────────── ─── Continuation of front page    (81) Designated countries EP (AT, BE, CH, DE, DK, ES, FI, FR, GB, GR, IE, IT, L U, MC, NL, PT, SE), CA, JP, US (72) Inventor Stacy David John             England, ESG12 8H,             Hartford Shear, Stansted             Abbott, Orchard Close 28

Claims (1)

【特許請求の範囲】 1. メモリ装置の所定順序の記憶場所に格納されたデータ要素のリストの少な くとも1つを読み出し、更新する方法において、 個々の記憶場所を指し示すことのできる読出しポインタと書込みポインタを提 供する工程と、 前記読出しポインタを使って、前記リストの要素が格納された順序で、これら の要素を読み出す工程と、 前記リストの読出しの間、前記書込みポインタを使って、既に読み出された記 憶場所に要素を書き込んで前記リストを更新する工程であって、これら書き込ま れた要素は、前記読出し工程で読み出された要素と、前記リストに挿入される新 規の要素からなる、当該工程とを備え、 前記更新する工程は、前記リストが読み出されると、結果として、前記所定順 序の記憶場所を通じて前記リストの一部を移動することを特徴とする方法。 2. 前記リストの要素は順序が維持され、また、このリストを更新する前記工 程は、前記リストの特定の位置に新たな要素を挿入するか、あるいは、その位置 において既存の要素を削除あるいは変更することで、そのリストの順序を維持す る工程を備えることを特徴とする請求項1に記載の方法。 3. さらに、前記データ要素のリストを更新するための組になった命令を格納 する工程と、前記リストがアクセスされる順序に従って、前記集合を配列する工 程とを備えることを特徴とする請求項1記載の方法。 4. 前記所定順序の記憶場所は、一連の隣接した記憶場所であることを特徴と する請求項1記載の方法。 5. 前記リストを更新する工程は、前記リストの特定の位置に新たな要素を挿 入する工程であって、前記位置より先にあるデータ要素を、前記所定順序の記憶 場所を通じて移動して、前記新たな要素に合致したスペースを空け、この新たな 要素を前記スペースに挿入する、当該工程を備えることを特徴とする請求項2記 載の方法。 6. 前記リストを更新する工程は、前記リストの特定の位置にある既存の項目 を削除する工程であって、前記位置より戻る方向にあるデータ要素を、前記所定 順序の記憶場所を通じて移動して、前記既存の項目を上書きする、当該工程を備 えることを特徴とする請求項2記載の方法。 7. 前記リストの要素が読み出される度に、要素を記憶場所に書き込む工程を 有することを特徴とする請求項1記載の方法。 8. さらに、前記読出しポインタで決められた前記記憶場所の内容を、第2の メモリに読み込む工程と、 前記書込みポインタによって決められた前記記憶場所に、前記第2のメモリの 最も古い内容を書き込むか、前記リストに挿入される新たな項目を書き込むか、 あるいは何も書き込まないかのいずれかを行う工程とを備えることを特徴とする 請求項1記載の方法。 9. 前記第2のメモリは、FIFO装置として動作することを特徴とする請求 項8記載の方法。 10. 前記リストの特定の位置において既存の要素を削除する工程は、前記書 込みポインタが前記読出しポインタより遅れるよう設定することによって、前記 削除位置より戻る方向にある前記データ要素を、前記所定順序の記憶場所を通じ て移動する工程を備えることを特徴とする請求項2記載の方法。 11. 前記リストの特定の位置に新たな要素を挿入する工程は、 前記位置に格納された前記データ要素を第2のメモリに読み込む工程と、 前記新たな要素を前記記憶場所に書き込み、続くアクセスで、次の位置にある 前記データ要素を前記第2のメモリに読み込み、そして、この第2のメモリ内に ある最も古いデータ要素を前記次の位置に書き込むことによって、前記新たな要 素より先にあるデータ要素を、前記所定順序の記憶場所を通じて移動する工程と を備えることを特徴とする請求項2記載の方法。 12. 電気通信スイッチの接続マップを管理する方法であって、このマップは 、メモリ内の所定順序の場所に格納された、前記スイッチの接続命令のリストか らなり、当該方法は、 個々の記憶場所を指し示すことのできる読出しポインタと書込みポインタを提 供する工程と、 前記読出しポインタを使って、前記リストの命令が格納された順序で、これら の命令を読み出す工程と、 前記リストの読出しの間、前記書込みポインタを使って、既に読み出された記 憶場所に命令を書き込んで前記リストを更新する工程であって、これら書き込ま れた命令は、前記読出し工程で読み出された命令と、前記リストに挿入される新 規の命令からなる、当該工程とを備え、 前記更新する工程は、前記リストが読み出されると、結果として、前記所定順 序の記憶場所を通じて前記リストの一部を移動することを特徴とする方法。 13. 電気通信スイッチを動作させる方法において、 前記スイッチへの入力端において複数のソースからデータを受信する工程と、 前記受信したデータにバッファを施す工程と、 前記受信したデータをペイロードに組み立てる工程と、 前記ペイロードを、前記スイッチの出力から複数の宛先に送信する工程とを備 え、 当該方法は、さらに、請求項12に係る接続マップを管理する工程を備え、前 記接続命令は、どのペイロードに前記バッファが施されたデータを組み立てるか を規定することを特徴とする方法。 14. 前記接続マップは、前記ペイロードが、それらの宛先で分解される順序 で、これらペイロードを組み立てるよう順序づけられていることを特徴とする請 求項13記載の方法。 15. 前記受信したデータは、狭帯域チャネルからなり、また、前記ペイロー ドは、ATMセルのペイロードからなることを特徴とする請求項13記載の方法 。 16. さらに、ソースと複数の宛先との間のマルチキャスト接続に対する要求 を受信する工程と、 前記マップに対する更新命令の組を作成する工程と、 前記マップの使用中に、前記更新命令の組で、このマップを更新する工程とを 備えることを特徴とする請求項13記載の方法。 17. さらに、特定の宛先への接続を示す、前記マップの要素を総計する工程 と、 前記総計に対応するペイロードの大きさを計算する工程と、 前記ペイロードのパディングが必要かどうかを決定する工程と、 前記決定の結果に応じてパディングを起動する工程とを備えることを特徴とす す請求項13記載の方法。 18. データ要素のリストの少なくとも1つを管理する装置において、 前記データ要素を所定順序の記憶場所に格納する格納装置と、 個々の記憶場所を指し示すことのできる読出しポインタと書込みポインタを提 供する手段と、 前記読出しポインタを使って、前記リストの要素が格納された順序で、これら の要素を読み出す手段と、 前記リストの読出しの間、前記書込みポインタを使って、既に読み出された記 憶場所に要素を書き込んで前記リストを更新する手段であって、これら書き込ま れた要素は、前記読出し手段で読み出された要素と、前記リストに挿入される新 規の要素からなる、当該手段とを備え、 前記更新する手段は、前記リストが読み出されると、結果として、前記所定順 序の記憶場所を通じて前記リストの一部を移動することを特徴とする装置。 19. 複数のソースからデータを受信する入力部と、 前記受信したデータを格納するバッファと、 前記受信したデータをペイロードに組み立てる手段と、 前記ペイロードを複数の宛先に送信する出力部と、 メモリ内にある所定順序の場所におけるデータ要素のリストの少なくとも1つ として、接続命令のマップを格納する当該メモリと、 前記マップを管理する管理部であって、 個々の記憶場所を指し示すことのできる読出しポインタと書込みポインタを提 供する手段と、 前記読出しポインタを使って、前記リストの要素が格納された順序で、これら の要素を読み出す手段と、 前記リストの読出しの間、前記書込みポインタを使って、既に読み出された記 憶場所に要素を書き込んで前記リストを更新する手段であって、これら書き込ま れた要素は、前記読出し手段で読み出された要素、前記リストに挿入される新規 の要素からなる、当該手段とを有する前記管理部とを備え、 前記更新する手段は、前記リストが読み出されると、結果として、前記所定順 序の記憶場所を通じて前記リストの一部を移動することを特徴とする電気通信ス イッチ。 20. 請求項19記載の電気通信スイッチに使用する接続マップの管理装置。 21. データ構造を更新する方法において、 前記構造は、メモリ装置の所定順序の場所に格納された、データ要素の順序づ けられたリストの少なくとも1つからなり、当該方法は、前記要素を追加、削除 、 あるいは変更することによって前記構造を更新して、前記要素の順序を維持し、 かつ、前記更新が実行されている間、前記要素の読出しが中断しないようにする 工程を備えることを特徴とする方法。[Claims] 1. A small list of data elements stored in a predetermined order of storage locations of the memory device. In a method of reading and updating at least one,   Provide read and write pointers that can point to individual memory locations Providing,   Using the read pointers, in the order in which the elements of the list were stored Reading the elements of   During the reading of the list, the write pointer is used to read the already read record. Updating the list by writing elements to the memory location, The read elements are the elements read in the read step and the new elements inserted in the list. Comprising the steps of   The step of updating includes, when the list is read, as a result, the predetermined order. Moving a portion of said list through an introductory storage location. 2. The elements of the list are maintained in order and the process of updating this list The procedure is to insert a new element at a specific position in the list, or Maintain the order of the list by removing or modifying existing elements in The method of claim 1, comprising the step of: 3. Further, storing a set of instructions for updating the list of data elements. Arranging the sets according to the order in which the lists are accessed. The method of claim 1, comprising the steps of: 4. The storage locations in the predetermined order are a series of adjacent storage locations. The method of claim 1, wherein 5. The step of updating the list includes inserting a new element at a specific position in the list. And storing the data elements prior to the position in the predetermined order. Move through the place to make room for the new element, 3. The method according to claim 2, further comprising the step of inserting an element into the space. The method described. 6. The step of updating the list comprises the step of updating an existing item at a particular position in the list. And deleting the data element in the direction returning from the position to the predetermined position. Providing a step to move through the order storage location and overwrite the existing item 3. The method according to claim 2, further comprising the steps of: 7. Writing the element to a memory location each time an element of the list is read. The method of claim 1, comprising: 8. Further, the contents of the storage location determined by the read pointer are stored in a second Reading into memory,   In the storage location determined by the write pointer, Whether to write the oldest content or a new item to be inserted into the list, Or a step of writing nothing. The method of claim 1. 9. The second memory operates as a FIFO device. Item 9. The method according to Item 8. 10. Deleting an existing element at a particular position in the list may include By setting the write pointer to be later than the read pointer, The data element in the direction from the delete position is returned through the storage locations in the predetermined order. 3. The method according to claim 2, further comprising the step of moving. 11. Inserting a new element at a specific position in the list,   Reading the data element stored at the location into a second memory;   Writes the new element to the memory location and on subsequent accesses will be at the next location Reading the data element into the second memory and storing the data element in the second memory By writing one oldest data element to the next location, the new element Moving the data elements that precede the element through the predetermined order of storage locations; 3. The method according to claim 2, comprising: 12. A method for managing a connection map of a telecommunications switch, this map A list of the switch connection instructions stored in a predetermined order location in the memory. And the method is   Provide read and write pointers that can point to individual memory locations Providing,   Using the read pointer, in the order in which the instructions of the list were stored, Reading the instruction of   During the reading of the list, the write pointer is used to read the already read record. Updating the list by writing instructions to the memory location, The read instruction is the instruction read in the read step and the new instruction inserted in the list. Comprising the steps of:   The step of updating includes, when the list is read, as a result, the predetermined order. Moving a portion of said list through an introductory storage location. 13. In a method of operating a telecommunications switch,   Receiving data from a plurality of sources at an input to the switch;   Buffering the received data;   Assembling the received data into a payload,   Transmitting the payload from the output of the switch to a plurality of destinations. e,   The method further comprises the step of managing a connection map according to claim 12, wherein The connection instruction is used to determine in which payload the buffered data is to be assembled. A method characterized in that: 14. The connection map shows the order in which the payloads are decomposed at their destination Contracts that are ordered to assemble these payloads. 14. The method of claim 13. 15. The received data comprises a narrowband channel, and the 14. The method of claim 13, wherein the code comprises a payload of an ATM cell. . 16. In addition, a request for a multicast connection between the source and multiple destinations Receiving the   Creating a set of update instructions for the map;   Updating the map with the set of update instructions while using the map. 14. The method of claim 13, comprising providing. 17. Aggregating the elements of the map, further indicating a connection to a particular destination; When,   Calculating the size of the payload corresponding to the total,   Determining whether padding of the payload is required;   Activating padding according to the result of the determination. The method of claim 13. 18. In an apparatus for managing at least one of a list of data elements,   A storage device for storing the data elements in storage locations in a predetermined order;   Provide read and write pointers that can point to individual memory locations Means to provide;   Using the read pointers, in the order in which the elements of the list were stored Means for reading the elements of   During the reading of the list, the write pointer is used to read the already read record. Means for updating the list by writing elements to a storage location, The elements read are the elements read by the reading means and the new elements inserted in the list. Said means consisting of the elements of the   The updating means, when the list is read, results in the predetermined order. Apparatus for moving a portion of said list through an introductory storage location. 19. An input for receiving data from a plurality of sources;   A buffer for storing the received data;   Means for assembling the received data into a payload,   An output unit for transmitting the payload to a plurality of destinations,   At least one of a list of data elements in a predetermined order of locations in memory A memory for storing a map of connection instructions,   A management unit that manages the map,   Provide read and write pointers that can point to individual memory locations Means to provide;   Using the read pointers, in the order in which the elements of the list were stored Means for reading the elements of   During the reading of the list, the write pointer is used to read the already read record. Means for updating the list by writing elements to a storage location, The read element is the element read by the reading means and the new element inserted in the list. Comprising the element, the management unit having the means,   The updating means, when the list is read, results in the predetermined order. Moving a portion of said list through an introductory storage location. Itch. 20. 20. A device for managing a connection map used for the telecommunication switch according to claim 19. 21. In the method of updating the data structure,   The structure includes an ordering of the data elements stored in a predetermined order in the memory device. And at least one of the following lists: , Or updating the structure by changing, maintaining the order of the elements, And ensure that reading of the element is not interrupted while the update is being performed A method comprising the steps of:
JP10528558A 1996-12-23 1997-12-22 Managing data structures Withdrawn JP2000506658A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GBGB9626752.1A GB9626752D0 (en) 1996-12-23 1996-12-23 Management of data structures
US08/869,898 1997-06-05
US08/869,898 US6252876B1 (en) 1996-12-23 1997-06-05 Management of data structures
US9626752.1 1997-06-05
PCT/GB1997/003535 WO1998028940A1 (en) 1996-12-23 1997-12-22 Management of data structures

Publications (1)

Publication Number Publication Date
JP2000506658A true JP2000506658A (en) 2000-05-30

Family

ID=26310718

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10528558A Withdrawn JP2000506658A (en) 1996-12-23 1997-12-22 Managing data structures

Country Status (4)

Country Link
EP (1) EP0886989A1 (en)
JP (1) JP2000506658A (en)
CA (1) CA2241883A1 (en)
WO (1) WO1998028940A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011141767A (en) * 2010-01-07 2011-07-21 Fujitsu Ltd List structure control circuit

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040254931A1 (en) * 2003-05-29 2004-12-16 Marconi Communications, Inc. Multiple key self-sorting table
US7536428B2 (en) * 2006-06-23 2009-05-19 Microsoft Corporation Concurrent read and write access to a linked list where write process updates the linked list by swapping updated version of the linked list with internal list

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3515881C2 (en) * 1985-05-03 1995-05-04 Deutsche Aerospace Circuit arrangement for sorting a current digital value size synchronously in the comparison clock
US4751675A (en) * 1985-08-19 1988-06-14 American Telephone And Telegraph Company, At&T Bell Laboratories Memory access circuit with pointer shifting network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011141767A (en) * 2010-01-07 2011-07-21 Fujitsu Ltd List structure control circuit

Also Published As

Publication number Publication date
EP0886989A1 (en) 1998-12-30
WO1998028940A1 (en) 1998-07-02
CA2241883A1 (en) 1998-07-02

Similar Documents

Publication Publication Date Title
US6252876B1 (en) Management of data structures
EP0299473B1 (en) Switching system and method of construction thereof
AU637250B2 (en) Traffic shaping method and circuit
US5930477A (en) Header converting method
US5884297A (en) System and method for maintaining a table in content addressable memory using hole algorithms
US6487202B1 (en) Method and apparatus for maximizing memory throughput
KR100269650B1 (en) Circuit emlating exchange using micro cells
JP2618327B2 (en) Wideband input buffer ATM switch
US6735203B1 (en) Switch arrangement
JPH08298522A (en) Selective ejection system and method to maintain space priority order to be used in common memory asynchronous transfer mode switch
JP2002520907A (en) System and method for packet switching in a network
JPH07321822A (en) Device with multi-casting function
JPH0685842A (en) Communication equipment
JPH08293877A (en) Communication system
US6167041A (en) Switch with flexible link list manager for handling ATM and STM traffic
US20030174708A1 (en) High-speed memory having a modular structure
US7126959B2 (en) High-speed packet memory
EP0809380A2 (en) Switching system for switching a fixed-length cell
US6023465A (en) Communications system
JP2000506658A (en) Managing data structures
US6490640B1 (en) Packet data switching apparatus
US7492825B2 (en) Methods and apparatuses for processing data channels
EP0454797B1 (en) An asynchronous time division multiplex switching system
JP2002368785A (en) Scheduling device and cell communication unit
JP3812784B2 (en) ATM switch

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041013

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20050727