JP2015046164A - リアルタイムデータフローの永続記憶装置用のアトミックトランザクションによるダブルバッファリング - Google Patents

リアルタイムデータフローの永続記憶装置用のアトミックトランザクションによるダブルバッファリング Download PDF

Info

Publication number
JP2015046164A
JP2015046164A JP2014172375A JP2014172375A JP2015046164A JP 2015046164 A JP2015046164 A JP 2015046164A JP 2014172375 A JP2014172375 A JP 2014172375A JP 2014172375 A JP2014172375 A JP 2014172375A JP 2015046164 A JP2015046164 A JP 2015046164A
Authority
JP
Japan
Prior art keywords
buffer
data
reader
lock
writer
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.)
Granted
Application number
JP2014172375A
Other languages
English (en)
Other versions
JP6526397B2 (ja
Inventor
エリヤフ・ラブナ
Ravuna Eliyahu
ゴーレン・コーン
Cohn Goren
ロエイ・レーマン
Lehman Roey
ヨハイ・アロン・ティマー
Alon Timmer Yochai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Biosense Webster Israel Ltd
Original Assignee
Biosense Webster Israel Ltd
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 Biosense Webster Israel Ltd filed Critical Biosense Webster Israel Ltd
Publication of JP2015046164A publication Critical patent/JP2015046164A/ja
Application granted granted Critical
Publication of JP6526397B2 publication Critical patent/JP6526397B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H10/00ICT specially adapted for the handling or processing of patient-related medical or healthcare data
    • G16H10/60ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H30/00ICT specially adapted for the handling or processing of medical images
    • G16H30/20ICT specially adapted for the handling or processing of medical images for handling medical images, e.g. DICOM, HL7 or PACS
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H30/00ICT specially adapted for the handling or processing of medical images
    • G16H30/40ICT specially adapted for the handling or processing of medical images for processing medical images, e.g. editing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Public Health (AREA)
  • Primary Health Care (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Epidemiology (AREA)
  • Radiology & Medical Imaging (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Medical Treatment And Welfare Office Work (AREA)
  • Memory System (AREA)

Abstract

【課題】 メモリ中に、第1のバッファデータを記憶する第1のバッファ、第2のバッファデータを記憶する第2のバッファ、及び記憶装置に残存するリアルタイムデータの永久記憶サイズを示す変数を構成することを含む方法を提供する。【解決手段】 記憶装置上には、リアルタイムデータを記憶するためのファイルが構成され、かつ変数を記憶するためのフィールドが構成される。リアルタイムデータのストリームを受信され、受信したストリームは第1のバッファデータにアペンドされる。ライト基準が満たされると、第1のバッファデータは第2のバッファデータとスワップされ、第2のバッファデータのバッファサイズが変数に加えられ、第2のバッファから第2のバッファデータがライトキャッシュへ送られる。コミット基準が満たされると、ライトキャッシュに記憶されたストリームがファイルにアペンドされ、変数はフィールドに残存する。【選択図】 図1

Description

本発明は、広義には、リアルタイムデータ処理に関し、詳しくは、アトミックトランザクションによるダブルバッファリングを用いてリアルタイムの電気生理学的データを処理する技術に関する。
広範にわたる医療処置において、患者の体内にセンサ、チューブ、カテーテル、分注用器具、及びインプラントなどの物体が配置される。これらの医療処置において、医師が物体及びその周囲を可視化することを支援するためにリアルタイムイメージがしばしば用いられる。しかしながら、多くの場合、リアルタイム三次元イメージングは可能でなく、望ましくもない。代わりに、体内の物体のリアルタイム空間座標を取得するよう構成された医療システムがしばしば利用されている。
医療処置の間に、このような医療システムは、アナログの電気生理学的(EP)データ及び/又はデジタルEPデータからなるリアルタイムの電気生理学的EPデータを収集することが可能である。アナログEPデータの例としては、電極の電圧及び電流、患者の体温、及び他のセンサから収集されるデータが含まれるが、これらに限定されない。デジタルEPデータの例としては、カテーテルの空間位置及び患者の呼吸状態のような他のシステムによって提供されるデジタルデータ、及び信号処理演算の結果が含まれるが、これらに限定されない。
上記説明は、当該分野における関連技術の一般的概論として記載したものであって、この説明に含まれる何らの情報が本特許出願に対する先行技術を構成することを容認するものと解釈するべきではない。
本発明の一実施形態によれば、リアルタイムデータを記憶するための方法であって、メモリ中に、第1のバッファデータを記憶するための第1のバッファ、及び第2のバッファデータ及び記憶装置に残存するリアルタイムデータの残存サイズを示す変数を記憶するための第2のバッファを構成することと、その記憶装置上に、リアルタイムデータを記憶するファイル及び変数を記憶するフィールドを構成することと、プロセッサによってリアルタイムデータのストリームを受信することと、リアルタイムデータのストリームを第1のバッファデータにアペンドすることと、を含む方法が提供される。この方法は、更に、ライト基準が満たされたら、第1のバッファ中の第1のバッファデータを第2のバッファ中の第2のバッファデータとスワップすることと、第2のバッファ中の第2のバッファデータのバッファサイズを上記変数に加えることと、ライト機能を呼び出して第2のバッファからライトキャッシュへ第2のバッファデータを送ることと、を含む。更に、この方法は、コミット基準が満たされたら、コミット機能を呼び出して、ライトキャッシュに記憶されたリアルタイムデータのストリームを上記ファイルにアペンドすることと、上記変数を上記フィールドに残存させることとを含む。
いくつかの実施形態においては、リアルタイムデータとしては、医療処置を実施中に収集された電気生理学的(EP)データが含まれ得る。別の実施形態においては、EPデータは、アナログデータ及びデジタルデータから選択することができる。更なる実施形態においては、アナログデータは、電圧、電流及び温度を含むリストから選択することが可能である。補足の実施形態においては、デジタルデータは、イメージデータ、位置測定データ、力測定データ、及び呼吸状態データを含むリストから選択することが可能である。
別の実施形態においては、第1のバッファデータはメモリの第1のアドレスに記憶することができ、第2のバッファデータはメモリの第2のアドレスに記憶することができ、かつ、第1のバッファ中の第1のバッファデータと第2のバッファ中の第2のバッファデータとのスワップは、バッファポインタに記憶されたバッファアドレスの第1のアドレスと第2のアドレスとの間でのトグリングによって、第1と第2のバッファの役割を切り換えることを含む。
更なる実施形態において、本発明の方法は、第1のバッファを保護するための第1のリーダ−ライタ・ロック、及び第2のバッファ及び変数を保護するための第2のリーダ−ライタ・ロックを構成することを含むことが可能である。第1及び第2のリーダ−ライタ・ロックを含むいくつかの実施形態において、本発明の方法は、リアルタイムデータのストリームをアペンドする前に第1のリーダ−ライタ・ロック用のライタロックを取得することと、リアルタイムデータのストリームのアペンド後に第1のリーダ−ライタからライタロックを解除することと、を含むことが可能である。第1及び第2のリーダ−ライタ・ロックを含む別の実施形態において、本発明の方法は、ライト基準が満たされたら、第1のバッファと第2のバッファをスワップする前に、第1のリーダ−ライタ・ロック用の第1のライタロック、及び第2のリーダ−ライタ・ロック用の第2のライタロックを取得することと、第1のバッファ中の第1のバッファデータと第2のバッファ中の第2のバッファデータとがスワップされたら、第1及び第2のライタロックを解除することと、を含むことが可能である。
第1及び第2のリーダ−ライタ・ロックを含む更なる実施形態において、本発明の方法は、ライト機能を呼び出した後バッファサイズを変数に加える前に、第2のリーダ−ライタ用のライタロックを取得することと、第2のバッファをクリアすることと、第2のバッファがクリアされたら、ライタロックを解除することと、を含むことが可能である。第1及び第2のリーダ−ライタ・ロックを含む補足の実施形態において、変数を上記フィールドに残存させることは、第2のリーダ−ライタ・ロック用のリーダロックを取得することと、変数を別の変数にコピーすることと、リーダロックを解除することと、上記別の変数を上記フィールドに記憶することと、を含むことが可能である。
第1及び第2のリーダ−ライタ・ロックを含む別の実施形態において、本発明の方法は、ある範囲のリアルタイムデータを取り出すべき要求を受信して、その範囲について範囲サイズを計算することと、メモリ中に応答バッファを構成することと、第1のリーダ−ライタ・ロック用の第1のリーダロック及び第2のリーダ−ライタ・ロック用の第2のリーダロックを取得することと、上記範囲と第1のバッファとの交わりを含み、第1のサイズを持つ第1のデータを上記応答バッファにコピーすることと、上記範囲と第2のバッファとの交わりを含み、第2のサイズを持つ第2のデータを上記応答バッファにプリペンドすることと、第1及び第2のリーダロックを解除することと、上記範囲サイズが上記第1のサイズと第2のサイズとの和より大きくなったら、上記ライトキャッシュ及び記憶装置から、上記範囲の補集合を含む第3のデータ、及び第1のデータ及び第2のデータを含む第4のデータを取り出すことと、第3のデータを応答バッファにプリペンドすることと、を含むことが可能である。
更なる実施形態において、本発明の方法は、第1のバッファを保護するための第1のリーダ−ライタ・ロック、第2のバッファを保護するための第2のリーダ−ライタ・ロック、及び変数を保護するための第3のリーダ−ライタ・ロックを構成することを含むことが可能である。第1、第2及び第3のリーダ−ライタ・ロックを含むいくつかの実施形態において、本発明の方法は、リアルタイムデータのストリームをアペンドする前に、第1のリーダ−ライタ・ロック用のライタロックを取得することと、リアルタイムデータのストリームをアペンドした後、第1のリーダ−ライタ・ロックからライタロックを解除することと、を含むことが可能である。第1、第2、及び第3のリーダ−ライタ・ロックを含む別の実施形態において、本発明の方法は、ライト基準が満たされたら、第1のバッファ中の第1のバッファデータを第2のバッファ中の第2のバッファデータとスワップする前に、第1のリーダ−ライタ・ロック用の第1のライタロック及び第2のリーダ−ライタ・ロック用の第2のライタロックを取得することと、第1のバッファ中の第1のバッファデータが第2のバッファ中の第2のバッファデータとスワップされたら、第1及び第2のライタロックを解除することと、を含むことが可能である。
第1、第2、及び第3のリーダ−ライタ・ロックを含む更なる実施形態にあって、本発明の方法は、ライト機能を呼び出した後、バッファサイズを変数に加える前に、第2のリーダ−ライタ・ロック用の第1のライタロック及び第3のリーダ−ライタ・ロック用の第2のライタロックを取得することと、第2のバッファをクリアすることと、第2のバッファがクリアされたら、第1及び第2のライタロックを解除することと、を含むことが可能である。第1、第2、及び第3のリーダライタ・ロックを含む補足の実施形態において、変数を上記フィールドに残存させることは、第3のリーダ−ライタ・ロック用のリーダロックを取得することと、変数を別の変数にコピーすることと、リーダロックを解除することと、その別の変数を上記フィールドに記憶することと、を含むことが可能である。
第1、第2、及び第3のリーダ−ライタ・ロックを含む捕捉の実施形態において、本発明の方法は、ある範囲のリアルタイムデータを取り出すべき要求を受信して、その範囲について範囲サイズを計算することと、メモリ中に応答バッファを構成することと、第1のリーダ−ライタ・ロック用の第1のリーダロック及び第2のリーダ−ライタ・ロック用の第2のリーダロックを取得することと、上記範囲と第1のバッファとの交わりを含み、第1のサイズを持つ第1のデータを上記応答バッファにコピーすることと、上記範囲と第2のバッファとの交わりを含み、第2のサイズを持つ第2のデータを上記応答バッファにプリペンドすることと、第1及び第2のリーダロックを解除することと、上記範囲サイズが上記第1のサイズと第2のサイズとの和より大きくなったら、上記ライトキャッシュ及び記憶装置から、上記範囲の補集合を含む第3のデータ、及び第1のデータ及び第2のデータを含む第4のデータを取り出すことと、第3のデータを応答バッファにプリペンドすることと、を含むことが可能である。
又、本発明の一実施形態によれば、リアルタイムデータを記憶するための装置であって、ファイルを記憶するよう、かつファイルに残存するリアルタイムデータの残存サイズを示すフィールドを記憶するよう構成された記憶装置と、第1のバッファデータを記憶するよう構成された第1のバッファ及びバッファデータを記憶するよう構成された第2のバッファを記憶するよう、かつ上記残存サイズを示す変数を記憶するよう構成されたメモリと、リアルタイムデータのストリームを受信するよう、かつリアルタイムデータのストリームを第1のバッファデータにアペンドするよう構成されたプロセッサと、を含む装置が提供される。又、ライト基準が満たされると、プロセッサは、第1のバッファ中の第1のバッファデータを第2のバッファ中の第2のバッファデータとスワップし、第2のバッファ中の第2のバッファデータのバッファサイズを変数に加え、第2のバッファデータを第2のバッファからライトキャッシュに送るよう構成されたライト機能を呼び出すよう構成される。コミット基準が満たされると、プロセッサは、更に、ライトキャッシュに記憶されたリアルタイムデータのストリームを上記ファイルにアペンドし、上記変数を上記フィールドに残存させるよう構成されたコミット機能を呼び出すよう構成される。
更に、本発明の一実施形態によれば、コンピュータソフトウェア製品であって、コンピュータによって読み出されると、コンピュータをして、第1のバッファデータを記憶する第1のバッファ、第2のバッファデータ及び記憶装置に残存するリアルタイムデータの残存サイズを示す変数を記憶する第2のバッファをメモリ中に構成させ、リアルタイムデータを記憶するファイル及び変数を記憶するフィールドを記憶装置上に構成させ、リアルタイムデータのストリームを受信させ、ライト基準が満たされると、リアルタイムデータのストリームを第1のバッファデータにアペンドさせ、かつ、コンピュータをして、第1のバッファ中の第1のバッファデータを第2のバッファ中の第2のバッファデータとスワップさせ、第2のバッファ中の第2のバッファデータのバッファサイズを変数に加えさせ、ライト機能を呼び出させて第2のバッファからライトキャッシュに第2のバッファデータを送らせる、プログラム命令が記憶された非一時的コンピュータ可読媒体を含む、コンピュータプログラム製品が提供される。コミット基準が満たされたら、プログラム命令は、更に、コンピュータをして、コミット機能を呼び出させてライトキャッシュに記憶されたリアルタイムデータのストリームをファイルにアペンドさせ、かつ上記変数を上記フィールドに残存させる。
ここで、本願開示の発明をあくまで一例として添付図面を参照しつつ説明する。
本発明の一実施形態に基づくリアルタイムの電気生理学的(EP)データの永続記憶装置用のアトミックトランザクションによるダブルバッファリングを実行するコンソールを構成する医療システムの概要図である。 本発明の一実施形態によるコンソールのブロック図である。 まとめて図3とし、本発明の一実施形態によるリアルタイムEPデータを処理する方法を概略説明するフローチャートである。 まとめて図3とし、本発明の一実施形態によるリアルタイムEPデータを処理する方法を概略説明するフローチャートである。 まとめて図3とし、本発明の一実施形態によるリアルタイムEPデータを処理する方法を概略説明するフローチャートである。 まとめて図3とし、本発明の一実施形態によるリアルタイムEPデータを処理する方法を概略説明するフローチャートである。
概論
心臓切除のような医療処置時には、ハードディスクのような永続記憶媒体(本願においては記憶装置とも称する)に残存させる必要があるリアルタイムの電気生理学的(EP)データの連続ストリームが存在し得る。リアルタイムEPデータは、処置の間に速度が変化することもあるが、一般に一定速度で流れる。医療データの性質上、リアルタイムEPデータは、システム障害又は停電が起こった場合に、システムが、残存するデータストリーム中の最後の信頼できるバイトを特定することができるようにするために、記憶媒体にトランザクション可能なやり方で残存される場合がある。
本発明のいくつかの実施形態は、リアルタイムEPデータを永続記憶媒体上のファイルに残存させるためにアトミックトランザクションによるダブルバッファリングを実行する方法及びシステムを提供する。いくつかの実施形態においては、ランダムアクセスメモリ(RAM)が2つのデータバッファ及び変数を記憶するように構成され、永続記憶媒体がファイル及びフィールドを記憶するように構成される。以下に説明するように、フィールドは記憶媒体に残存するリアルタイムデータの第1のサイズを記憶することができ、変数は、記憶媒体に残存するリアルタイムデータの第1のサイズと記憶媒体にデステージされる予定のバッファのうちの1つに記憶されたリアルタイムデータの第2のサイズとを記憶することができる。更に、第1のリーダ−ライタ(RW)ロックを第1のバッファを保護するよう構成することができ、第2のRWロックを第2のバッファ及び変数を保護するよう構成することができる。
リアルタイムEPデータのストリームを受信すると、そのストリームは第1のバッファにアペンドすることができる。以下に説明するように、第1のバッファに蓄積されたリアルタイムEPデータのストリームは、まず第1のバッファと第2のバッファをスワップし、変数を更新し、ライト機能を呼び出して第2のバッファからライトキャッシュにデータを送ることにより、周期的にライトキャッシュに送ることができる。ライトキャッシュに記憶されたデータを永続記憶媒体に残存させるには、コミット機能を呼び出してキャッシュから永続記憶媒体にリアルタイムEPデータをデステージし、変数中の値をライトキャッシュに送り、コミット機能をもう1回呼び出して、その値をライトキャッシュから記憶装置上のフィールドにデステージすることができる。
本発明のいくつかの実施形態によれば、リアルタイムEPデータのストリームは、システムリソースを保護する何らかのロックに起因する遅延に全く遭遇することなく、連続的に処理することができる。更に、本発明のいくつかの実施形態によれば、リアルタイムEPデータがバッファのいずれかに依然記憶されている限り、何らかのロック待機に起因する遅延に全く遭遇することなく、リード要求を処理することが可能である。その上更に、本発明の実施形態を実施するシステムは、リアルタイムEPデータの「チャンク」を、データがライトキャッシュへ送られた順序と異なる順序でそれらのチャンクが記憶装置にデステージされても、確実にアトミックトランザクションでコミットすることができる。
システムの説明
図1は、リアルタイムの電気生理学的(EP)データ永続記憶装置用のアトミックトランザクションによるダブルバッファリングを実施する制御コンソール22を含む医療システム20の概要図であり、図2は本発明の一実施形態によるコンソールのブロック図である。システム20は、制御コンソール22、及び心臓カテーテルのようなプローブ24を含む。以下に記載する実施形態において、プローブ24は、患者28の心臓26における電位マッピングのような、診断又は治療処置に使用するものと仮定する。代替的に、プローブ24は、必要な変更を加えて心臓又は他の体器官における他の治療及び/又は診断用に使用することもできる。
操作者30は、プローブ24の遠位端32が心臓26の心腔に進入するよう、患者28の脈管系にプローブ24を挿入する。図1及び2に示す例において、コンソール22は、磁気位置検出法を用いて心臓26内部の遠位端32の位置座標を決定する。位置座標を決定するために、コンソール22内のドライバ回路34は、磁場発生器36を駆動して患者28の体内に磁場を発生させる。通常、磁場発生器36はコイルを備え、コイルは患者胴体下方の、患者28の体外の既知の位置に設置される。これらのコイルは、心臓26を包含する既定の作業ボリューム内に磁場を生成する。プローブ24の遠位端32内部にある磁場センサ38(本願においては位置センサ38とも称する)は、これらの磁場に応動して電気信号を発生する。信号プロセッサ40は、通常距離及び方位座標の両方を含む遠位端32の位置座標を決定するために、これらの信号を処理する。上記の位置検出方法は、Biosense Webster Inc.of Diamond Bar,CA.が製造するCARTO(商標)マッピングシステムに実装されおり、以下に引用する特許及び特許出願に詳細に記載されている。
位置センサ38は、遠位端32の位置を示す信号をコンソール22に送信する。位置センサ38は、1つ以上の小型コイルを含んでもよく、通常は、異なる軸方向沿いに配置された複数のコイルからなる。あるいは、位置センサ38は、別の種類の磁気センサか、若しくはインピーダンスベース位置センサ又は超音波位置センサのような他の種類の位置トランスデューサからなるものであってもよい。図1には、単一の位置センサしか持たないプローブが示してあるが、本発明の実施形態は、2つ以上の位置センサを持つプローブを用いることも可能である。
図示例のシステム20は、磁気型センサを用いて遠位端32の位置を測定するが、他の位置追跡技術を用ることも可能である(例えばインピーダンス型センサ)。磁気位置追跡技術は、例えば、米国特許第5,391,199号、同5,443,489号、第6,788,967号、同第6,690,963号、同第5,558,091号、同第6,172,499号、同第6,177,792号に、記載されており、それらの開示内容を参照により本願に援用する。インピーダンス型位置追跡技術は、例えば、米国特許第5,983,126号、同第6,456,864号、及び同第5,944,022号に記載されており、それらの開示内容を参照によって本願に援用する。
参照によって本願に援用する文書は、それらの援用した文書中に、本願明細書中に明示的又は非明示的に与えられた定義と相反する形で何らかの用語が定義されている場合に本願明細書の定義のみが考慮されるべきである点を除き、本願の一部をなすものとみなされるべきである。
また、プローブ24は、遠位端32に内蔵されたた力センサ42、及び遠位端に結合された電極44をも含む。力センサ42は、プローブ24の遠位先端部46が心臓26の心内膜組織に及ぼす力を示す信号を発生してコンソールへ送ることにより、プローブの遠位先端部によって心内膜組織に加えられる力を測定する。一実施形態においては、力センサは、遠位端32にばねによって接続された磁場送受信器を備えて、ばねのたわみ測定に基づく力の指示を得ることが可能である。この種のプローブ及び力センサの更なる詳細は、米国特許出願公報第2009/0093806号及び同第2009/0138007号に記載されており、これらの開示内容を参照により本明細書に援用する。あるいは、遠位端32は別の種類の力センサを含むこともできる。
いくつかの実施形態においては、電極44はインピーダンス型位置トランスデューサとして機能するよう構成することもできる。これに加えるか又はこれに代えて、電極44は、心内膜組織上の複数の位置におけるある生理学的特性(例えば、局所表面電位)を測定するよう、かつ/又は切除処置時に心内膜組織に高周波(RF)エネルギーを伝達するよう構成することができる。
本願に記載する実施形態においては、プロセッサ40は、アナログ/デジタル(A/D)変換器54を介して受信されるデジタルEPデータ50及びアナログEPデータ52を含むリアルタイムの電気生理学的(EP)データ48を収集するよう構成される。デジタルEPデータ50の例としては、プローブ24からの位置測定値及び力測定値、患者28の呼吸状態データ、及び核磁気共鳴映像法(MRI)システムのような画像診断システム(図示せず)、あるいはコンピュータ断層撮影(CT)システムからのイメージデータが含まれるが、これらに限定されない。アナログEPデータ52の例としては、電圧、電流及び温度データが含まれるが、これらに限定されない。
プロセッサ40は、ディスプレイ56を駆動して、患者の身体の遠位端32の位置、並びに進行中の処置に関する状態情報及びガイダンスを表示するイメージ58を操作者30に提供する。診断治療中においては、イメージ58は、心臓26のシミュレート表面を含むことが可能である。いくつかの実施形態においては、操作者30は1つ以上の入力装置60を用いてイメージ58を操作することができる。
又、コンソール22は、ランダムアクセスメモリ(RAM)62、及びハードディスクドライブ又は半導体ディスクドライブのような記憶装置64を含む。記憶装置64は、2つ以上の物理デバイスを含み得る。ダブルバッファリングを実行するため、メモリ62はバッファ66及びバッファポインタ68を含む。本願の説明では、バッファは、バッファ66Aと66Bとからなり、バッファポインタはバッファポインタ68Aと68Bとからなるというように、バッファ66及びバッファポインタ68にはそれぞれの識別番号に文字記号を付けて区別することができる。以下に説明するように、リアルタイムEPデータ48を受信すると、プロセッサ40はバッファポインタ68Aによって指示された所与のバッファ66に受信データを記憶する。
又、メモリ62は、バッファ66からライトキャッシュ72へリアルタイムEPデータ48を送るよう構成されたライト機能70、及びリアルタイムEPデータをライトキャッシュから記憶装置64上のファイル76にデステージするよう構成されたコミット機能74を含む。メモリ62は、更に、記憶装置64上に記憶されたリアルタイムEPデータの残存サイズを示すuncommitted_size変数78、temp_committed_size変数80、応答バッファ82を含み、これらの動作については以下に説明する。
メモリ62、更に、リーダ−ライタ(RW)ロック84を含む。本願の説明では、RWロックがリーダ−ライタ・ロック84A、84B及び84Cからなるように、RWロック84は識別番号に文字記号を付けて区別することができる。本発明の実施形態においては、システム20は、2つあるいは3つのRWロック84を用いることによってアトミックトランザクションによるダブルバッファリングを行なうことができる。RWロック84は、バッファ66及びuncommitted_size 78のようなメモリ62内のリソースへのクライアント(例えばプロセッサ40上で実行されるアプリケーション)のアクセスを制御して、リードについては複数スレッドへの同時アクセスを許容するが、リソースへのライト(あるいは他の変更)については単一のスレッドへのアクセスを規制するよう構成される。動作について説明すると、プロセッサ40は、所与のRWロック84用のリーダロック又はライトロックを取得することができる。
ライタロックは、それが保護するリソースに対して最初のクライアントが読み出し及び書き込みをすることを可能にする。プロセッサ40が所与のリソースを保護するよう構成された所与のRWロック84用のライタロックを取得すると、その所与のリソースについてはそれ以上のリーダロックあるいはライタロックを取得することはできず、最初のクライアントがライタロックを解除するまで、その後の他のクライアントのリード要求及びライト要求はすべて阻止される。
リーダロックは、それが保護するリソースへの読み出し専用アクセス権を最初のクライアントに付与する。プロセッサ40が所与のリソースを保護するよう構成された所与のRWロック84用のリーダロックを取得すると、その所与のリソースに対して追加のリーダロックを取得することができ、その所与のリソースに対してリーダロックを有する他のクライアントからのリード要求を処理することができる。所与のリソースについて2つ以上のリーダロックを取得することはできるが、すべてのクライアントがそれらのリーダロックを解除するまで、所与のリソースからはライタロック(したがって、すべてのライト要求)が阻止される。
ファイル76は、残存するリアルタイムEPデータ86及びcommitted_sizeフィールド88を含む。残存するリアルタイムEPデータ86は、確認済みデータ90及び未確認データ92を含む。以下に説明する実施形態においては、矢印94によって示すように、committed_size 88は、永続記憶がアトミックトランザクションの完了によって確認される確認済みデータ90の最終バイトを指示する。committed_size 88の更新によって所与のアトミックトランザクションを完了する前、未確認データ92は、ライトキャッシュ72からファイル76にデステージされたリアルタイムデータ48を含む。したがって、システム障害又は停電が起きた場合には、committed_size 88は、確実に読み出すことができる残存するリアルタイムデータEP 86中の最終バイトを指示する。言い換えると、未確認データ92に記憶されているすべての残存するリアルタイムEPデータ86は、ライトキャッシュ72から記憶装置64上のファイル76に完全に残存させられる(すなわち、デステージされる)か、あるいは残存させられないリアルタイムEPデータ48を含む。
プロセッサ40は、通常、プローブ24から信号を受信し、かつコンソール22の他の構成部分を制御するための適切なフロントエンド及びインターフェース回路を備えた汎用コンピュータよりなる。プロセッサ40は、本願に記載する機能を実行するようソフトウェアでプログラムすることが可能である。このソフトウェアは、例えば、ネットワークを介してコンソール22に電子的形態でダウンロードすることができ、あるいは、光学記憶媒体、磁気記憶媒体又は電子記憶媒体のような非一時的有形媒体上で提供することができる。あるいは、プロセッサ40の機能のうちの一部又は全部を専用か又はプログラム可能なハードウェア構成要素によって実行することも可能である。
リアルタイムEPデータ処理
図3Aは、本発明の一実施形態によるリアルタイムEPデータ48を処理する方法を概略説明するフローチャートである。本願の実施形態では、医療処置を実施中に収集されたリアルタイムEPデータ48をダブルバッファリング及びアトミックトランザクションを用いて処理する技術を記載するが、何らかの他の形のリアルタイムデータを処理するためにダブルバッファリング及びアトミックトランザクションを使用することも、本発明の精神及び範囲内に包括されると考えられる。
第1の構成ステップ100で、プロセッサ40は、ファイル76及びcommitted_size 88を記憶するよう記憶装置64を構成する。図2に示す例においては、残存するEPデータ86及びcommitted_size 88はファイル76に記憶されるが、これらのリアルタイムEPデータ及びcommitted_sizeフィールドは記憶装置64上の別個のファイルに記憶することもできる。
初期化ステップ102で、プロセッサ40はuncommitted_size 78及びtemp_committed_size 80を初期化し、かつリアルタイムEPデータ48を記憶するようバッファ66を構成する。プロセッサ40は、リアルタイムEPデータ48を記憶するために、第1のバッファデータ記憶するよう第1のバッファを、又第2のバッファデータを記憶するよう第2のバッファをそれぞれ構成する。最初、uncommitted_size 78及びcommitted_size 88は、データ48を含むデータストリームの初期サイズを示す同じ値を記憶する。通常、データストリームの初期サイズは0であるが、データストリームにヘッダー情報がある場合、0を上回ることもある。
リアルタイムEPデータ48を処理している間、バッファ66は、空であるか、あるいはファイル76中の特定の範囲と一致するかのどちらかである。本願記載の実施形態においては、期間バッファ66又は所与のバッファ66が使用される場合は常に、期間は、それらのバッファ及びファイル76の対応する範囲に記憶されたリアルタイムEPデータの両方について言う。
以下に図3Bで説明するように、プロセッサ40は、バッファポインタ68Aによって指示された所与のバッファ66にリアルタイムEPデータ48を記憶する。したがって、バッファポインタ68Aによって指示されている所与のバッファは、本願で第1のバッファと称する「アクティブ」バッファからなり、バッファポインタによって指示されていないバッファは、本願で第2のバッファと称する「イナクティブ」バッファからなる。
本願発明の実施形態において、バッファポインタ68Aは常に第1のバッファを指示し、ポインタ68Bは常に第2のバッファを指示する。したがって、第1のバッファがバッファ66Aからなり、第2のバッファがバッファ66Bからなるならば、バッファポインタ66Aはバッファ66Aを指示し、バッファポインタ68Bはバッファ66Bを指示する。同様に、第1のバッファがバッファ66Bからなり、第2のバッファがバッファ66Aからなるならば、バッファポインタ66Aはバッファ66Bを指示し、バッファポインタ68Bバッファ66Aを指示する。以下に説明するように、プロセッサ40は、バッファポインタ68Aに記憶された第1のアドレスをバッファポインタ68Bに記憶された第2のアドレスとをスワップすることにより、第1のバッファと第2のバッファをスワップすることができる。
第2の構成ステップ104で、プロセッサ40は、第1のバッファを保護するようロック84Aを構成し、第2のバッファ及びuncommitted_size 78を保護するようロック84Bを構成する。本発明の一代替実施形態においては、プロセッサ40は、第1のバッファを保護するようロック84Aを構成し、第2のバッファを保護するようロック84Bを構成し、uncommitted_size 78を保護するようロック84Cを構成することができる。
第2の構成ステップ104が完了したら、プロセッサ40は、第1の実行ステップ106の1つ以上のリアルタイムデータ受信スレッド(以下に図3Bで説明する)、第2の実行ステップ108の単一のリアルタイムデータライト及びコミット・スレッド(以下に図3Cで説明するような)、及び第3の実行ステップ110の1つ以上のリアルタイムデータリード・スレッド(以下に図3Dで説明するような)を同時に実行することができる。
図3Bは、本発明の一実施形態によるリアルタイムデータ受信スレッドで実行される処理ステップを概略説明するフローチャートである。第1の比較ステップ120で、プロセッサ40は、リアルタイムEPデータ48を受信するまで待機する。リアルタイムEPデータ48のストリームを受信すると、プロセッサ40は、取得ステップ122で、RWロック84A用の(すなわち、第1のバッファを保護するための)ライタロックを取得する。プロセッサ40は、アペンドステップ124で、リアルタイムEPデータ48の受信ストリームを第1のバッファデータにアペンドする。最後に、プロセッサ40は、解除ステップ126で、RWロック84Aからライタロックを解除し、処理はステップ120へ続く。
図3Cは、本発明の一実施形態によるリアルタイムデータライト及びコミット・スレッドで実行される処理ステップを概略説明するフローチャートである。第1の比較ステップ130で、プロセッサ40はライト基準が満たされるまで待機する。ライト基準は、例えば、第1のバッファが第1の特定のデータ量(例えば1メガバイト)を持つこと、あるいはプロセッサ40が最後にライト機能70を呼び出した以後の第1の特定の経過時間(例えば20秒)とすることができる。
ライト基準が満たされたことを確認したら、プロセッサ40は、第1の取得ステップ132で、RWロック84A用の第1のライタロック及びRWロック84B用の第2のライタロックを取得し、かつ、スワップステップ134で、プロセッサは、第1のバッファ中の第1のバッファデータと第2のバッファ中の第2のバッファデータとをスワップすることにより、第1のバッファと第2のバッファとをスワップする。いくつかの実施形態においては、第1のバッファは、バッファポインタ68Aによって参照されるメモリ62の第1のアドレスに記憶され、第2のバッファは、バッファポインタ68Bによって参照されるメモリの第2のアドレスに記憶され、かつ、プロセッサ40は、第1のバッファ中の第1のバッファデータを第2のバッファ中の第2のバッファデータとスワップするために、バッファポインタ68Aに記憶されたアドレスを第1のアドレスと第2のアドレスとの間で「トグルする」(すなわち、バッファポインタ68Aと68Bとに記憶されたアドレスをスワップする)ことによって、第1と第2のバッファの役割を切り換える。
例えば、バッファポインタ68Aが現在バッファ66Aを指示していると、プロセッサ40は、第1のバッファ中の第1のバッファデータを第2のバッファ中の第2のバッファデータとスワップするために、バッファ66Bのアドレスをバッファポインタ68Aに記憶させる。同様に、バッファポインタ68Aが現在バッファ66Bを指示していると、プロセッサ40は、第1のバッファ中の第1のバッファデータを第2のバッファ中の第2のバッファデータとスワップするために、バッファ66Aのアドレスをバッファポインタ68Aに記憶させる。
第1のバッファ中の第1のバッファデータを第2のバッファ中の第2のバッファデータとスワップしたら、上記の実施形態で受信されたリアルタイムEPデータのストリームは第2のバッファに記憶され、プロセッサ40は、リアルタイムデータ受信スレッドを実行して、リアルタイムEPデータ48のさらなるストリームを第1のバッファに記憶することができる。第1の解除ステップ136で、プロセッサ40は、RWロック84Aから第1のライタロックを解除し、RWロック84Bから第2のライタロックを解除し、かつ、書き込みステップ138で、プロセッサは、ライト機能70を呼び出して、第2のバッファからライトキャッシュ72へ第2のバッファデータを送る。
第2の取得ステップ140では、プロセッサ40は、RWロック84B用の第3のライタロックを取得し、かつ、インクリメントステップ142で、プロセッサは、第2のバッファに記憶された第2のバッファデータのサイズでuncommitted_size 78をインクリメントする。プロセッサ40は、クリアステップ144で、第2のバッファをクリアし、かつ、第2の解除ステップ146で、RWロック84Bから第3のライタロックを解除する。
上記の代替実施形態においては、RWロック84Cがuncommitted_size 78を保護する場合、プロセッサ40は、ステップ140でRWロック用の第4のライタロックを84C取得し、かつ、プロセッサはステップ146でRWロックから第4のライタロックを84C解除する。この代替実施形態では、ステップ140でRWロック84B用に取得した第3のライタロックが第2のバッファを保護する。
第2の比較ステップ148で、プロセッサ40は、コミット基準が満たされているかどうかをチェックする。コミット基準は、例えば、第1のバッファが第2の特定のデータ量(例えば2メガバイト)を持つこと、あるいはプロセッサ40が最後にコミット機能70を呼び出した以後の第2の特定の経過時間(例えば40秒)とすることができる。
コミット基準が満たされたら、プロセッサ40は、第3の取得ステップ150でRWロック84B用のリーダロックを取得し、コピーステップ152で、uncommitted_size 78に記憶された値をtemp_committed_size 80にのコピーし、第3の解除ステップ154でリーダロックをRWロック84Bから解除する。上記の代替実施形態では、RWロック84Cがuncommitted_size 78を保護する場合、プロセッサ40は、ステップ150で、RWロック用のリーダロック84Cを取得し、ステップ154でリーダロックをRWロック84Cから解除する。
commitステップ156で、プロセッサ40は、コミット機能74を呼び出して、ライトキャッシュ72に記憶されているリアルタイムEPデータのストリームを記憶装置64上のファイル76に残存させる(すなわち、デステージする)。プロセッサ40で実行されるオペレーティングシステム(図示せず)が、既にリアルタイムEPデータをライトキャッシュ72からファイル76にデステージしている場合がありうる。そのような場合、プロセッサ40は、ステップ156をスキップすることができる。
最後に、残存ステップ158では、プロセッサ40は、temp_committed_size 80に記憶された値をcommitted_size 88に残存させ、処理はステップ130へ続く。temp_committed_size 80に記憶された値をcommitted_size 88に残存させるために、プロセッサ40は、ライト機能70を呼び出して値をライトキャッシュ72に送ることができ、コミット機能74を呼び出してその値をcommitted_size 88にデステージすることができる。ステップ148に戻って、commit基準が満たされていなかった場合、処理はステップ130へ続く。
図3Dは、本発明の一実施形態によるリアルタイムデータリード・スレッドで実行される処理ステップを概略説明するフローチャートである。本願記載の実施形態においては、リアルタイムデータ・スレッドは、現在下記のいずれかに記憶されているある範囲のリアルタイムEPデータ48に対するリード要求を処理するよう構成される:
・第1のバッファ。
・第1のバッファ及び第2のバッファ。
・第1のバッファ、第2のバッファ、及びライトキャッシュ72、及び/又はファイル76。
・第2のバッファ。
・第2のバッファ、及びライトキャッシュ72、及び/又はファイル76。
・ライトキャッシュ72及び/又はファイル76。
第1の比較ステップ160で、プロセッサ40は、リード要求を受信するまで待機し、プロセッサ40がある範囲のリアルタイムEPデータ48を検索するリード要求を受信すると、プロセッサは、要求されたデータの範囲ついて範囲サイズを計算ステップ162で計算し、構成ステップ164でメモリ62に応答バッファ82を構成する。応答バッファ82を構成するために、プロセッサ40は、応答バッファに、計算した範囲サイズに合致するサイズを持つメモリーブロック62を割り当てる。
取得ステップ166で、プロセッサ40は、RWロック84A用の第1のリーダロックを取得し、RWロック84B用に第2のリーダロックを取得する。コピーステップ168で、プロセッサ40は、要求された範囲と第1のバッファとの第1の交わりからなりかつ第1のサイズを有する第1のデータを応答バッファ82にコピーする。第1のバッファが要求された範囲のリアルタイムEPを全く記憶しない場合は、第1のデータは空部分集合からなり、第1のサイズは0である。
第1のプリペンドステップ170で、プロセッサ40は、要求された範囲と第2のバッファとの第2の交わりからなりかつ第2のサイズを有する第2のデータを応答バッファ82にプリペンドする。第2のバッファが要求された範囲のリアルタイムEPを全く記憶しない場合は、第2のデータは空部分集合からなり、第2のサイズは0である。
解除ステップ172で、プロセッサ40は、RWロック84Aから第1のリーダロックを解除し、RWロック84Bから第2のリーダロックを解除する。比較ステップ174で範囲サイズが第1のサイズと第2のサイズの和より大きい場合、プロセッサ40は、検索ステップ176で、要求された範囲の補集合からなる第3のデータ、及び第1及び第2のデータからなる第4のデータを取り出す。
第2のプリペンドステップ178で、プロセッサ40は、第3のデータを応答バッファ82にプリペンドし、処理はステップ160へ続く。いくつかの実施形態では、応答バッファ82へのデータ追加が完了すると(ステップ170又はステップ176のいずれかで)、プロセッサ40は、応答バッファ82のアドレスを指示しているリード要求に対して応答を送ることができる。一代替実施形態においては、応答は応答バッファ82であってもよい。ステップ174に戻って、範囲サイズが第1と第2のサイズの和以下であると、処理はステップ160へ続く。
前述したように、本発明の実施形態は、アトミックトランザクションを用いてリアルタイムEPデータを受信し、記憶装置64に残存させる。以上説明した実施形態においては、図3Bのステップ120で所与のアトミックトランザクションが開始され、図3Dのステップ178で終了する。
以上説明した実施形態は、例示のために記載したものであり、本発明が、上に具体的に示し、説明した内容に限定されるものではないということは正当に理解されよう。むしろ、本発明の範囲には、上で説明した様々な特徴の組合わせ及び部分的組合わせが併せて含まれるとともに、それらの変形形態及び修正形態が含まれ、これらは、上記説明を読むことにより当業者が想到するものであり、従来技術には開示されていないものである。
〔実施の態様〕
(1) リアルタイムデータを記憶する方法であって、
メモリ中に、第1のバッファデータを記憶するための第1のバッファ、第2のバッファデータを記憶するための第2のバッファ、及び記憶装置に残存する前記リアルタイムデータの残存サイズ(persisted size)を示す変数を構成することと、
前記記憶装置上に、前記リアルタイムデータを記憶するファイル及び前記変数を記憶するフィールドを構成することと、
プロセッサによって前記リアルタイムデータのストリームを受信することと、
前記リアルタイムデータの前記ストリームを前記第1のバッファデータにアペンドすることと、
ライト基準(write criteria)が満たされたら、
前記第1のバッファ中の前記第1のバッファデータを前記第2のバッファ中の前記第2のバッファデータとスワップし、
前記第2のバッファ中の前記第2のバッファデータのバッファサイズを前記変数に加え、
ライト機能を呼び出して前記第2のバッファからライトキャッシュへ前記第2のバッファデータを送る、ことと、
コミット基準が満たされたら、
コミット機能を呼び出して、前記ライトキャッシュに記憶された前記リアルタイムデータの前記ストリームを前記ファイルにアペンドし、
前記変数を前記フィールドに残存させる、ことと、を含む方法。
(2) 前記リアルタイムデータが、医療処置を実施中に収集される電気生理学的(EP)データを含む、実施態様1に記載の方法。
(3) 前記EPデータが、アナログデータ及びデジタルデータから選択される、実施態様2に記載の方法。
(4) 前記アナログデータが、電圧、電流及び温度を含むリストから選択される、実施態様3に記載の方法。
(5) 前記デジタルデータが、イメージデータ、位置測定値、力測定値、及び呼吸状態を含むリストから選択される、実施態様3に記載の方法。
(6) 前記第1のバッファが前記メモリの第1のアドレスに記憶され、前記第2のバッファが前記メモリの第2のアドレスに記憶され、かつ、前記第1のバッファ中の前記第1のバッファデータを前記第2のバッファ中の前記第2のバッファデータとスワップすることが、バッファポインタに記憶されたバッファアドレスを前記第1のアドレスと第2のアドレスとの間でトグルし、これによって前記第1のバッファと第2のバッファの役割を切り換えることを含む、実施態様1に記載の方法。
(7) 前記第1のバッファを保護するための第1のリーダ−ライタ・ロック、及び前記第2のバッファ及び前記変数を保護するための第2のリーダ−ライタ・ロックを構成することを含む、実施態様1に記載の方法。
(8) 前記リアルタイムデータの前記ストリームをアペンドする前に、前記第1のリーダ−ライタ・ロック用のライタロックを取得することと、
前記リアルタイムデータの前記ストリームのアペンド後に、前記第1のリーダ−ライタ・ロックから前記ライタロックを解除することと、を含む、実施態様7に記載の方法。
(9) 前記ライト基準が満たされたら、前記第1のバッファと第2のバッファをスワップする前に、前記第1のリーダ−ライタ・ロック用の第1のライタロック、及び前記第2のリーダ−ライタ・ロック用の第2のライタロックを取得することと、
前記第1のバッファ中の前記第1のバッファデータと前記第2のバッファ中の前記第2のバッファデータとがスワップされたら、前記第1及び第2のライタロックを解除することとを含む、実施態様7に記載の方法。
(10) 前記ライト機能を呼び出した後、前記バッファサイズを前記変数に加える前に、前記第2のリーダ−ライタ・ロック用のライタロックを取得することと、
前記第2のバッファをクリアすることと、
前記第2のバッファがクリアされたら、前記ライタロックを解除することと、を含む、実施態様7に記載の方法。
(11) 前記変数を前記フィールドに残存させることが、
前記第2のリーダ−ライタ・ロック用のリーダロックを取得することと、
前記変数を更なる変数にコピーすることと、
前記リーダロックを解除することと、
前記更なる変数を前記フィールドに記憶させることと、を含む、実施態様7に記載の方法。
(12) ある範囲の前記リアルタイムデータを取り出す要求を受信したら、
前記範囲について範囲サイズを計算することと、
前記メモリ中に応答バッファを構成することと、
前記第1のリーダ−ライタ・ロック用の第1のリーダロック及び前記第2のリーダ−ライタ・ロック用の第2のリーダロックを取得することと、
前記範囲と前記第1のバッファとの交わりを含み、第1のサイズを持つ第1のデータを前記応答バッファにコピーすることと、
前記範囲と前記第2のバッファとの交わりを含み、第2のサイズを持つ第2のデータを前記応答バッファにプリペンドすることと、
前記第1及び第2のリーダロックを解除することと、
前記範囲サイズが前記第1のサイズと第2のサイズの和より大きくなったら、
前記ライトキャッシュ及び前記記憶装置から、前記範囲の補集合を含む第3のデータ、及び前記第1及び第2のデータを含む第4のデータを取り出し、
前記第3のデータを前記応答バッファにプリペンドする、ことと、を含む、実施態様7に記載の方法。
(13) 前記第1のバッファを保護する第1のリーダ−ライタ・ロック、前記第2のバッファを保護する第2のリーダ−ライタ・ロック、及び前記変数を保護する第3のリーダ−ライタ・ロックを構成することを含む、実施態様1に記載の方法。
(14) 前記リアルタイムデータの前記ストリームをアペンドする前に前記第1のリーダ−ライタ・ロック用のライタロックを取得することと、
前記リアルタイムデータの前記ストリームのアペンド後に前記第1のリーダ−ライタ・ロックから前記ライタロックを解除することと、を含む、実施態様13に記載の方法。
(15) 前記ライト基準が満たされたら、前記第1のバッファ中の前記第1のバッファデータを前記第2のバッファ中の前記第2のバッファデータとスワップする前に、前記第1のリーダ−ライタ・ロック用の第1のライタロック、及び前記第2のリーダ−ライタ・ロック用の第2のライタロックを取得することと、
前記第1のバッファ中の前記第1のバッファデータが前記第2のバッファ中の前記第2のバッファデータとスワップされたら、前記第1及び第2のライタロックを解除することと、を含む、実施態様13に記載の方法。
(16) 前記ライト機能を呼び出した後、前記バッファサイズを前記変数に加える前に、前記第2のリーダ−ライタ・ロック用の第1のライタロック及び前記第3のリーダ−ライタ・ロック用の第2のライタロックを取得することと、
前記第2のバッファをクリアすることと、
前記第2のバッファがクリアされたら、前記第1及び第2のライタロックを解除することと、を含む、実施態様13に記載の方法。
(17) 前記変数を前記フィールドに残存させることが、
前記第3のリーダ−ライタ・ロック用のリーダロックを取得することと、
前記変数を更なる変数にコピーすることと、
前記リーダロックを解除することと、
前記更なる変数を前記フィールドに記憶させることと、を含む、実施態様13に記載の方法。
(18) ある範囲の前記リアルタイムデータを取り出す要求を受信したら、
前記範囲について範囲サイズを計算することと、
前記メモリ中に応答バッファを構成することと、
前記第1のリーダ−ライタ・ロック用の第1のリーダロック及び前記第2のリーダ−ライタ・ロック用の第2のリーダロックを取得することと、
前記範囲と前記第1のバッファとの交わりを含み、第1のサイズを持つ第1のデータを前記応答バッファにコピーすることと、
前記範囲と前記第2のバッファとの交わりを含み、第2のサイズを持つ第2のデータを前記応答バッファにプリペンドすることと、
前記第1及び第2のリーダロックを解除することと、
前記範囲サイズが前記第1のサイズと第2のサイズの和より大きくなったら、
前記ライトキャッシュ及び前記記憶装置から、前記範囲の補集合を含む第3のデータ、及び前記第1及び第2のデータを含む第4のデータを取り出し、
前記第3のデータを前記応答バッファにプリペンドする、ことと、を含む、実施態様13に記載の方法。
(19) リアルタイムデータを記憶するための装置であって、
ファイルを記憶するよう、かつ前記ファイルに残存する前記リアルタイムデータの残存サイズを示すフィールドを記憶するよう構成された記憶装置と、
第1のバッファデータを記憶するよう構成された第1のバッファ及び第2のバッファデータを記憶するよう構成された第2のバッファを記憶するよう、かつ前記残存サイズを示す変数を記憶するよう構成されたメモリと、
プロセッサと、を含み、前記プロセッサが、
前記リアルタイムデータのストリームを受信し、
前記リアルタイムデータの前記ストリームを前記第1のバッファデータにアペンドし、
ライト基準が満たされたら、
前記第1のバッファ中の前記第1のバッファデータを前記第2のバッファ中の前記第2のバッファデータとスワップし、
前記第2のバッファ中の前記第2のバッファデータのバッファサイズを前記変数に加え、
前記第2のバッファから前記第2のバッファデータをライトキャッシュに送るように構成されたライト機能を呼び出し、かつ
コミット基準が満たされたら、
前記ライトキャッシュに記憶された前記リアルタイムデータの前記ストリームを前記ファイルにアペンドするよう構成されたコミット機能を呼び出し、
前記変数を前記フィールドに残存させるように構成された、装置。
(20) 前記リアルタイムデータが、医療処置を実施中に収集される電気生理学的(EP)データを含む、実施態様19に記載の装置。
(21) 前記EPデータが、アナログデータ及びデジタルデータから選択される、実施態様19に記載の装置。
(22) 前記アナログデータが、電圧、電流及び温度を含むリストから選択される、実施態様21に記載の装置。
(23) 前記デジタルデータが、イメージデータ、位置測定値、力測定値、及び呼吸状態を含むリストから選択される、実施態様21に記載の装置。
(24) 前記プロセッサが、前記メモリの第1のアドレスに前記第1のバッファを記憶し、前記メモリの第2のアドレスに前記第2のバッファを記憶し、前記第1のアドレスと第2のアドレスとの間でバッファポインタに記憶されたバッファアドレスをトグルし、これによって前記第1のバッファと第2のバッファの役割を切り換えることによって前記第1のバッファ中の前記第1のバッファデータを前記第2のバッファ中の前記第2のバッファデータとスワップするよう構成されている、実施態様19に記載の装置。
(25) 前記プロセッサが、前記第1のバッファを保護する第1のリーダ−ライタ・ロックを構成し、かつ前記第2のバッファ及び変数を保護する第2のリーダ−ライタ・ロックを構成するよう構成されている、実施態様19に記載の装置。
(26) 前記プロセッサが、
前記リアルタイムデータの前記ストリームをアペンドする前に前記第1のリーダ−ライタ・ロック用のライタロックを取得し、かつ
前記リアルタイムデータの前記ストリームのアペンド後に前記第1のリーダ−ライタ・ロックから前記ライタロックを解除するよう構成されている、実施態様25に記載の装置。
(27) 前記プロセッサが、
前記ライト基準が満たされたら、前記第1のバッファと第2のバッファをスワップする前に、前記第1のリーダ−ライタ・ロック用の第1のライタロック、及び前記第2のリーダ−ライタ・ロック用の第2のライタロックを取得し、かつ
前記第1のバッファ中の前記第1のバッファデータと前記第2のバッファ中の前記第2のバッファデータとがスワップされたら、前記第1及び第2のライタロックを解除するよう構成されている、実施態様25に記載の装置。
(28) 前記プロセッサが、
前記ライト機能を呼び出した後、前記バッファサイズを前記変数に加える前に前記第2のリーダ−ライタ・ロック用のライタロックを取得し、
前記第2のバッファをクリアし、かつ
前記第2のバッファがクリアされたら、前記ライタロックを解除するよう構成されている、実施態様25に記載の装置。
(29) 前記プロセッサが、
前記第2のリーダ−ライタ・ロック用のリーダロックを取得し、
前記変数を更なる変数にコピーし、
前記リーダロックを解除し、かつ
前記更なる変数を前記フィールドに記憶させること、
によって、前記変数を前記フィールドに残存させるよう構成されている、実施態様25に記載の装置。
(30) 前記プロセッサが、ある範囲の前記リアルタイムデータを取り出す要求を受信したら、
前記範囲について範囲サイズを計算し、
前記メモリ中に応答バッファを構成し、
前記第1のリーダ−ライタ・ロック用の第1のリーダロック及び前記第2のリーダ−ライタ・ロック用の第2のリーダロックを取得し、
前記範囲と前記第1のバッファとの交わりを含み、第1のサイズを持つ第1のデータを前記応答バッファにコピーし、
前記範囲と前記第2のバッファとの交わりを含み、第2のサイズを持つ第2のデータを前記応答バッファにプリペンドし、
前記第1及び第2のリーダロックを解除し、かつ
前記範囲サイズが前記第1のサイズと第2のサイズの和より大きくなったら、
前記ライトキャッシュ及び前記記憶装置から、前記範囲の補集合を含む第3のデータ、及び前記第1及び第2のデータを含む第4のデータを取り出し、
前記第3のデータを前記応答バッファにプリペンドするよう構成されている、実施態様25に記載の装置。
(31) 前記プロセッサが、前記第1のバッファを保護する第1のリーダ−ライタ・ロックを構成し、前記第2のバッファを保護する第2のリーダ−ライタ・ロックを構成し、かつ前記変数を保護する第3のリーダ−ライタ・ロックを構成するよう構成されている、実施態様19に記載の装置。
(32) 前記プロセッサが、
前記リアルタイムデータの前記ストリームをアペンドする前に前記第1のリーダ−ライタ・ロック用のライタロックを取得し、かつ
前記リアルタイムデータの前記ストリームのアペンド後に前記第1のリーダ−ライタ・ロックから前記ライタロックを解除するよう構成されている、実施態様31に記載の装置。
(33) 前記プロセッサが、
前記ライト基準が満たされたら、前記第1のバッファ中の前記第1のバッファデータを前記第2のバッファ中の前記第2のバッファデータとスワップする前に、前記第1のリーダ−ライタ・ロック用の第1のライタロック、及び前記第2のリーダ−ライタ・ロック用の第2のライタロックを取得し、かつ
前記第1のバッファ中の前記第1のバッファデータが前記第2のバッファ中の前記第2のバッファデータとスワップされたら、前記第1及び第2のライタロックを解除するよう構成されている、実施態様31に記載の装置。
(34) 前記プロセッサが、
前記ライト機能を呼び出した後、前記バッファサイズを前記変数に加える前に、前記第2のリーダ−ライタ・ロック用の第1のライタロック、及び前記第3のリーダ−ライタ・ロック用の第2のライタロックを取得し、
前記第2のバッファをクリアし、かつ
前記第2のバッファがクリアされたら、前記第1及び第2のライタロックを解除するよう構成されている、実施態様31に記載の装置。
(35) 前記プロセッサが、
前記第3のリーダ−ライタ・ロック用のリーダロックを取得し、
前記変数を更なる変数にコピーし、
前記リーダロックを解除し、
前記更なる変数を前記フィールドに記憶させること、
によって、前記変数を前記フィールドに残存させるよう構成されている、実施態様31に記載の装置。
(36) 前記プロセッサが、ある範囲の前記リアルタイムデータを取り出す要求を受信したら、
前記範囲について範囲サイズを計算し、
前記メモリ中に応答バッファを構成し、
前記第1のリーダ−ライタ・ロック用の第1のリーダロック及び前記第2のリーダ−ライタ・ロック用の第2のリーダロックを取得し、
前記範囲と前記第1のバッファとの交わりを含み、第1のサイズを持つ第1のデータを前記応答バッファにコピーし、
前記範囲と前記第2のバッファとの交わりを含み、第2のサイズを持つ第2のデータを前記応答バッファにプリペンドし、
前記第1及び第2のリーダロックを解除し、かつ
前記範囲サイズが前記第1のサイズと第2のサイズの和より大きくなったら、
前記ライトキャッシュ及び前記記憶装置から、前記範囲の補集合を含む第3のデータ、及び前記第1及び第2のデータを含む第4のデータを取り出し、
前記第3のデータを前記応答バッファにプリペンドするよう構成されている、実施態様31に記載の装置。
(37) プログラム命令を記憶した非一時的なコンピュータ可読媒体を含むコンピュータソフトウェア製品であって、前記命令は、コンピュータによって読み込まれると、前記コンピュータに、
第1のバッファデータを記憶する第1のバッファ、第2のバッファデータを記憶する第2のバッファ、及び、記憶装置に残存するリアルタイムデータの残存サイズを示す変数をメモリ中に構成させ、
前記リアルタイムデータを記憶するファイル及び前記変数を記憶するフィールドを前記記憶装置上に構成させ、
前記リアルタイムデータのストリームを受信させ、
前記リアルタイムデータの前記ストリームを前記第1のバッファデータにアペンドさせ、
ライト基準が満たされたら、
前記第1のバッファ中の前記第1のバッファデータを前記第2のバッファ中の前記第2のバッファデータとスワップさせ、
前記第2のバッファ中の前記第2のバッファデータのバッファサイズを前記変数に加えさせ、
ライト機能を呼び出させて前記第2のバッファから前記第2のバッファデータをライトキャッシュに送らせ、かつ
コミット基準が満たされたら、
コミット機能を呼び出させて前記ライトキャッシュに記憶された前記リアルタイムデータの前記ストリームを前記ファイルにアペンドさせ、
前記変数を前記フィールドに残存させる、コンピュータソフトウェア製品。

Claims (37)

  1. リアルタイムデータを記憶する方法であって、
    メモリ中に、第1のバッファデータを記憶するための第1のバッファ、第2のバッファデータを記憶するための第2のバッファ、及び記憶装置に残存する前記リアルタイムデータの残存サイズを示す変数を構成することと、
    前記記憶装置上に、前記リアルタイムデータを記憶するファイル及び前記変数を記憶するフィールドを構成することと、
    プロセッサによって前記リアルタイムデータのストリームを受信することと、
    前記リアルタイムデータの前記ストリームを前記第1のバッファデータにアペンドすることと、
    ライト基準が満たされたら、
    前記第1のバッファ中の前記第1のバッファデータを前記第2のバッファ中の前記第2のバッファデータとスワップし、
    前記第2のバッファ中の前記第2のバッファデータのバッファサイズを前記変数に加え、
    ライト機能を呼び出して前記第2のバッファからライトキャッシュへ前記第2のバッファデータを送る、ことと、
    コミット基準が満たされたら、
    コミット機能を呼び出して、前記ライトキャッシュに記憶された前記リアルタイムデータの前記ストリームを前記ファイルにアペンドし、
    前記変数を前記フィールドに残存させる、ことと、を含む方法。
  2. 前記リアルタイムデータが、医療処置を実施中に収集される電気生理学的(EP)データを含む、請求項1に記載の方法。
  3. 前記EPデータが、アナログデータ及びデジタルデータから選択される、請求項2に記載の方法。
  4. 前記アナログデータが、電圧、電流及び温度を含むリストから選択される、請求項3に記載の方法。
  5. 前記デジタルデータが、イメージデータ、位置測定値、力測定値、及び呼吸状態を含むリストから選択される、請求項3に記載の方法。
  6. 前記第1のバッファが前記メモリの第1のアドレスに記憶され、前記第2のバッファが前記メモリの第2のアドレスに記憶され、かつ、前記第1のバッファ中の前記第1のバッファデータを前記第2のバッファ中の前記第2のバッファデータとスワップすることが、バッファポインタに記憶されたバッファアドレスを前記第1のアドレスと第2のアドレスとの間でトグルし、これによって前記第1のバッファと第2のバッファの役割を切り換えることを含む、請求項1に記載の方法。
  7. 前記第1のバッファを保護するための第1のリーダ−ライタ・ロック、及び前記第2のバッファ及び前記変数を保護するための第2のリーダ−ライタ・ロックを構成することを含む、請求項1に記載の方法。
  8. 前記リアルタイムデータの前記ストリームをアペンドする前に、前記第1のリーダ−ライタ・ロック用のライタロックを取得することと、
    前記リアルタイムデータの前記ストリームのアペンド後に、前記第1のリーダ−ライタ・ロックから前記ライタロックを解除することと、を含む、請求項7に記載の方法。
  9. 前記ライト基準が満たされたら、前記第1のバッファと第2のバッファをスワップする前に、前記第1のリーダ−ライタ・ロック用の第1のライタロック、及び前記第2のリーダ−ライタ・ロック用の第2のライタロックを取得することと、
    前記第1のバッファ中の前記第1のバッファデータと前記第2のバッファ中の前記第2のバッファデータとがスワップされたら、前記第1及び第2のライタロックを解除することとを含む、請求項7に記載の方法。
  10. 前記ライト機能を呼び出した後、前記バッファサイズを前記変数に加える前に、前記第2のリーダ−ライタ・ロック用のライタロックを取得することと、
    前記第2のバッファをクリアすることと、
    前記第2のバッファがクリアされたら、前記ライタロックを解除することと、を含む、請求項7に記載の方法。
  11. 前記変数を前記フィールドに残存させることが、
    前記第2のリーダ−ライタ・ロック用のリーダロックを取得することと、
    前記変数を更なる変数にコピーすることと、
    前記リーダロックを解除することと、
    前記更なる変数を前記フィールドに記憶させることと、を含む、請求項7に記載の方法。
  12. ある範囲の前記リアルタイムデータを取り出す要求を受信したら、
    前記範囲について範囲サイズを計算することと、
    前記メモリ中に応答バッファを構成することと、
    前記第1のリーダ−ライタ・ロック用の第1のリーダロック及び前記第2のリーダ−ライタ・ロック用の第2のリーダロックを取得することと、
    前記範囲と前記第1のバッファとの交わりを含み、第1のサイズを持つ第1のデータを前記応答バッファにコピーすることと、
    前記範囲と前記第2のバッファとの交わりを含み、第2のサイズを持つ第2のデータを前記応答バッファにプリペンドすることと、
    前記第1及び第2のリーダロックを解除することと、
    前記範囲サイズが前記第1のサイズと第2のサイズの和より大きくなったら、
    前記ライトキャッシュ及び前記記憶装置から、前記範囲の補集合を含む第3のデータ、及び前記第1及び第2のデータを含む第4のデータを取り出し、
    前記第3のデータを前記応答バッファにプリペンドする、ことと、を含む、請求項7に記載の方法。
  13. 前記第1のバッファを保護する第1のリーダ−ライタ・ロック、前記第2のバッファを保護する第2のリーダ−ライタ・ロック、及び前記変数を保護する第3のリーダ−ライタ・ロックを構成することを含む、請求項1に記載の方法。
  14. 前記リアルタイムデータの前記ストリームをアペンドする前に前記第1のリーダ−ライタ・ロック用のライタロックを取得することと、
    前記リアルタイムデータの前記ストリームのアペンド後に前記第1のリーダ−ライタ・ロックから前記ライタロックを解除することと、を含む、請求項13に記載の方法。
  15. 前記ライト基準が満たされたら、前記第1のバッファ中の前記第1のバッファデータを前記第2のバッファ中の前記第2のバッファデータとスワップする前に、前記第1のリーダ−ライタ・ロック用の第1のライタロック、及び前記第2のリーダ−ライタ・ロック用の第2のライタロックを取得することと、
    前記第1のバッファ中の前記第1のバッファデータが前記第2のバッファ中の前記第2のバッファデータとスワップされたら、前記第1及び第2のライタロックを解除することと、を含む、請求項13に記載の方法。
  16. 前記ライト機能を呼び出した後、前記バッファサイズを前記変数に加える前に、前記第2のリーダ−ライタ・ロック用の第1のライタロック及び前記第3のリーダ−ライタ・ロック用の第2のライタロックを取得することと、
    前記第2のバッファをクリアすることと、
    前記第2のバッファがクリアされたら、前記第1及び第2のライタロックを解除することと、を含む、請求項13に記載の方法。
  17. 前記変数を前記フィールドに残存させることが、
    前記第3のリーダ−ライタ・ロック用のリーダロックを取得することと、
    前記変数を更なる変数にコピーすることと、
    前記リーダロックを解除することと、
    前記更なる変数を前記フィールドに記憶させることと、を含む、請求項13に記載の方法。
  18. ある範囲の前記リアルタイムデータを取り出す要求を受信したら、
    前記範囲について範囲サイズを計算することと、
    前記メモリ中に応答バッファを構成することと、
    前記第1のリーダ−ライタ・ロック用の第1のリーダロック及び前記第2のリーダ−ライタ・ロック用の第2のリーダロックを取得することと、
    前記範囲と前記第1のバッファとの交わりを含み、第1のサイズを持つ第1のデータを前記応答バッファにコピーすることと、
    前記範囲と前記第2のバッファとの交わりを含み、第2のサイズを持つ第2のデータを前記応答バッファにプリペンドすることと、
    前記第1及び第2のリーダロックを解除することと、
    前記範囲サイズが前記第1のサイズと第2のサイズの和より大きくなったら、
    前記ライトキャッシュ及び前記記憶装置から、前記範囲の補集合を含む第3のデータ、及び前記第1及び第2のデータを含む第4のデータを取り出し、
    前記第3のデータを前記応答バッファにプリペンドする、ことと、を含む、請求項13に記載の方法。
  19. リアルタイムデータを記憶するための装置であって、
    ファイルを記憶するよう、かつ前記ファイルに残存する前記リアルタイムデータの残存サイズを示すフィールドを記憶するよう構成された記憶装置と、
    第1のバッファデータを記憶するよう構成された第1のバッファ及び第2のバッファデータを記憶するよう構成された第2のバッファを記憶するよう、かつ前記残存サイズを示す変数を記憶するよう構成されたメモリと、
    プロセッサと、を含み、前記プロセッサが、
    前記リアルタイムデータのストリームを受信し、
    前記リアルタイムデータの前記ストリームを前記第1のバッファデータにアペンドし、
    ライト基準が満たされたら、
    前記第1のバッファ中の前記第1のバッファデータを前記第2のバッファ中の前記第2のバッファデータとスワップし、
    前記第2のバッファ中の前記第2のバッファデータのバッファサイズを前記変数に加え、
    前記第2のバッファから前記第2のバッファデータをライトキャッシュに送るように構成されたライト機能を呼び出し、かつ
    コミット基準が満たされたら、
    前記ライトキャッシュに記憶された前記リアルタイムデータの前記ストリームを前記ファイルにアペンドするよう構成されたコミット機能を呼び出し、
    前記変数を前記フィールドに残存させるように構成された、装置。
  20. 前記リアルタイムデータが、医療処置を実施中に収集される電気生理学的(EP)データを含む、請求項19に記載の装置。
  21. 前記EPデータが、アナログデータ及びデジタルデータから選択される、請求項19に記載の装置。
  22. 前記アナログデータが、電圧、電流及び温度を含むリストから選択される、請求項21に記載の装置。
  23. 前記デジタルデータが、イメージデータ、位置測定値、力測定値、及び呼吸状態を含むリストから選択される、請求項21に記載の装置。
  24. 前記プロセッサが、前記メモリの第1のアドレスに前記第1のバッファを記憶し、前記メモリの第2のアドレスに前記第2のバッファを記憶し、前記第1のアドレスと第2のアドレスとの間でバッファポインタに記憶されたバッファアドレスをトグルし、これによって前記第1のバッファと第2のバッファの役割を切り換えることによって前記第1のバッファ中の前記第1のバッファデータを前記第2のバッファ中の前記第2のバッファデータとスワップするよう構成されている、請求項19に記載の装置。
  25. 前記プロセッサが、前記第1のバッファを保護する第1のリーダ−ライタ・ロックを構成し、かつ前記第2のバッファ及び変数を保護する第2のリーダ−ライタ・ロックを構成するよう構成されている、請求項19に記載の装置。
  26. 前記プロセッサが、
    前記リアルタイムデータの前記ストリームをアペンドする前に前記第1のリーダ−ライタ・ロック用のライタロックを取得し、かつ
    前記リアルタイムデータの前記ストリームのアペンド後に前記第1のリーダ−ライタ・ロックから前記ライタロックを解除するよう構成されている、請求項25に記載の装置。
  27. 前記プロセッサが、
    前記ライト基準が満たされたら、前記第1のバッファと第2のバッファをスワップする前に、前記第1のリーダ−ライタ・ロック用の第1のライタロック、及び前記第2のリーダ−ライタ・ロック用の第2のライタロックを取得し、かつ
    前記第1のバッファ中の前記第1のバッファデータと前記第2のバッファ中の前記第2のバッファデータとがスワップされたら、前記第1及び第2のライタロックを解除するよう構成されている、請求項25に記載の装置。
  28. 前記プロセッサが、
    前記ライト機能を呼び出した後、前記バッファサイズを前記変数に加える前に前記第2のリーダ−ライタ・ロック用のライタロックを取得し、
    前記第2のバッファをクリアし、かつ
    前記第2のバッファがクリアされたら、前記ライタロックを解除するよう構成されている、請求項25に記載の装置。
  29. 前記プロセッサが、
    前記第2のリーダ−ライタ・ロック用のリーダロックを取得し、
    前記変数を更なる変数にコピーし、
    前記リーダロックを解除し、かつ
    前記更なる変数を前記フィールドに記憶させること、
    によって、前記変数を前記フィールドに残存させるよう構成されている、請求項25に記載の装置。
  30. 前記プロセッサが、ある範囲の前記リアルタイムデータを取り出す要求を受信したら、
    前記範囲について範囲サイズを計算し、
    前記メモリ中に応答バッファを構成し、
    前記第1のリーダ−ライタ・ロック用の第1のリーダロック及び前記第2のリーダ−ライタ・ロック用の第2のリーダロックを取得し、
    前記範囲と前記第1のバッファとの交わりを含み、第1のサイズを持つ第1のデータを前記応答バッファにコピーし、
    前記範囲と前記第2のバッファとの交わりを含み、第2のサイズを持つ第2のデータを前記応答バッファにプリペンドし、
    前記第1及び第2のリーダロックを解除し、かつ
    前記範囲サイズが前記第1のサイズと第2のサイズの和より大きくなったら、
    前記ライトキャッシュ及び前記記憶装置から、前記範囲の補集合を含む第3のデータ、及び前記第1及び第2のデータを含む第4のデータを取り出し、
    前記第3のデータを前記応答バッファにプリペンドするよう構成されている、請求項25に記載の装置。
  31. 前記プロセッサが、前記第1のバッファを保護する第1のリーダ−ライタ・ロックを構成し、前記第2のバッファを保護する第2のリーダ−ライタ・ロックを構成し、かつ前記変数を保護する第3のリーダ−ライタ・ロックを構成するよう構成されている、請求項19に記載の装置。
  32. 前記プロセッサが、
    前記リアルタイムデータの前記ストリームをアペンドする前に前記第1のリーダ−ライタ・ロック用のライタロックを取得し、かつ
    前記リアルタイムデータの前記ストリームのアペンド後に前記第1のリーダ−ライタ・ロックから前記ライタロックを解除するよう構成されている、請求項31に記載の装置。
  33. 前記プロセッサが、
    前記ライト基準が満たされたら、前記第1のバッファ中の前記第1のバッファデータを前記第2のバッファ中の前記第2のバッファデータとスワップする前に、前記第1のリーダ−ライタ・ロック用の第1のライタロック、及び前記第2のリーダ−ライタ・ロック用の第2のライタロックを取得し、かつ
    前記第1のバッファ中の前記第1のバッファデータが前記第2のバッファ中の前記第2のバッファデータとスワップされたら、前記第1及び第2のライタロックを解除するよう構成されている、請求項31に記載の装置。
  34. 前記プロセッサが、
    前記ライト機能を呼び出した後、前記バッファサイズを前記変数に加える前に、前記第2のリーダ−ライタ・ロック用の第1のライタロック、及び前記第3のリーダ−ライタ・ロック用の第2のライタロックを取得し、
    前記第2のバッファをクリアし、かつ
    前記第2のバッファがクリアされたら、前記第1及び第2のライタロックを解除するよう構成されている、請求項31に記載の装置。
  35. 前記プロセッサが、
    前記第3のリーダ−ライタ・ロック用のリーダロックを取得し、
    前記変数を更なる変数にコピーし、
    前記リーダロックを解除し、
    前記更なる変数を前記フィールドに記憶させること、
    によって、前記変数を前記フィールドに残存させるよう構成されている、請求項31に記載の装置。
  36. 前記プロセッサが、ある範囲の前記リアルタイムデータを取り出す要求を受信したら、
    前記範囲について範囲サイズを計算し、
    前記メモリ中に応答バッファを構成し、
    前記第1のリーダ−ライタ・ロック用の第1のリーダロック及び前記第2のリーダ−ライタ・ロック用の第2のリーダロックを取得し、
    前記範囲と前記第1のバッファとの交わりを含み、第1のサイズを持つ第1のデータを前記応答バッファにコピーし、
    前記範囲と前記第2のバッファとの交わりを含み、第2のサイズを持つ第2のデータを前記応答バッファにプリペンドし、
    前記第1及び第2のリーダロックを解除し、かつ
    前記範囲サイズが前記第1のサイズと第2のサイズの和より大きくなったら、
    前記ライトキャッシュ及び前記記憶装置から、前記範囲の補集合を含む第3のデータ、及び前記第1及び第2のデータを含む第4のデータを取り出し、
    前記第3のデータを前記応答バッファにプリペンドするよう構成されている、請求項31に記載の装置。
  37. プログラム命令を記憶した非一時的なコンピュータ可読媒体を含むコンピュータソフトウェア製品であって、前記命令は、コンピュータによって読み込まれると、前記コンピュータに、
    第1のバッファデータを記憶する第1のバッファ、第2のバッファデータを記憶する第2のバッファ、及び、記憶装置に残存するリアルタイムデータの残存サイズを示す変数をメモリ中に構成させ、
    前記リアルタイムデータを記憶するファイル及び前記変数を記憶するフィールドを前記記憶装置上に構成させ、
    前記リアルタイムデータのストリームを受信させ、
    前記リアルタイムデータの前記ストリームを前記第1のバッファデータにアペンドさせ、
    ライト基準が満たされたら、
    前記第1のバッファ中の前記第1のバッファデータを前記第2のバッファ中の前記第2のバッファデータとスワップさせ、
    前記第2のバッファ中の前記第2のバッファデータのバッファサイズを前記変数に加えさせ、
    ライト機能を呼び出させて前記第2のバッファから前記第2のバッファデータをライトキャッシュに送らせ、かつ
    コミット基準が満たされたら、
    コミット機能を呼び出させて前記ライトキャッシュに記憶された前記リアルタイムデータの前記ストリームを前記ファイルにアペンドさせ、
    前記変数を前記フィールドに残存させる、コンピュータソフトウェア製品。
JP2014172375A 2013-08-28 2014-08-27 リアルタイムデータフローの永続記憶装置用のアトミックトランザクションによるダブルバッファリング Expired - Fee Related JP6526397B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/011,796 2013-08-28
US14/011,796 US10684986B2 (en) 2013-08-28 2013-08-28 Double buffering with atomic transactions for the persistent storage of real-time data flows

Publications (2)

Publication Number Publication Date
JP2015046164A true JP2015046164A (ja) 2015-03-12
JP6526397B2 JP6526397B2 (ja) 2019-06-05

Family

ID=51454556

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014172375A Expired - Fee Related JP6526397B2 (ja) 2013-08-28 2014-08-27 リアルタイムデータフローの永続記憶装置用のアトミックトランザクションによるダブルバッファリング

Country Status (7)

Country Link
US (1) US10684986B2 (ja)
EP (2) EP2846267B1 (ja)
JP (1) JP6526397B2 (ja)
CN (1) CN104424133B (ja)
AU (1) AU2014215988B2 (ja)
CA (1) CA2861176A1 (ja)
IL (2) IL234038B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110865770A (zh) * 2018-08-27 2020-03-06 爱思开海力士有限公司 存储器系统
JP2021526252A (ja) * 2018-06-08 2021-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ストリーミングデータの複数のキャッシュ処理

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10754842B2 (en) * 2014-06-13 2020-08-25 International Business Machines Corporation Preplaying transactions that mix hot and cold data
KR101634122B1 (ko) * 2015-10-28 2016-06-29 주식회사 인피니플럭스 고속의 데이터 입력 시스템 및 방법
CN105912479B (zh) * 2016-04-07 2023-05-05 合肥锐世数字科技有限公司 一种并发数据的缓存方法及装置
CN107305525A (zh) * 2016-04-22 2017-10-31 上海真虹信息科技有限公司 一种基于双缓冲同步机制的测试数据处理方法
CN110018784B (zh) 2018-01-09 2023-01-10 阿里巴巴集团控股有限公司 数据处理方法、装置及计算设备
CN109976675B (zh) * 2019-04-01 2023-02-03 广州市百果园信息技术有限公司 一种数据更新、读取方法、装置、设备及存储介质
EP4177755B1 (de) * 2021-11-05 2024-07-17 Fresenius Medical Care Deutschland GmbH Vorrichtung und verfahren zur speicherung von echtzeitdaten einer medizinischen behandlung

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695936A (ja) * 1992-09-16 1994-04-08 Nippon Telegr & Teleph Corp <Ntt> バッファ管理方法
JPH08179977A (ja) * 1994-12-21 1996-07-12 Nec Corp 更新バッファ管理装置
US5686960A (en) * 1992-01-14 1997-11-11 Michael Sussman Image input device having optical deflection elements for capturing multiple sub-images
JP2000347909A (ja) * 1999-06-07 2000-12-15 Hitachi Ltd トランザクション処理向けストレージ方法および装置、トランザクショナルストレージ
US20040250039A1 (en) * 2003-06-05 2004-12-09 Hanks D. Mitchel System and method for using swappable storage for high data content multi-source data storage
JP2006113927A (ja) * 2004-10-18 2006-04-27 Hitachi Ltd ストレージ装置、ストレージシステム、スナップショット維持方法、およびコマンド
JP2010122761A (ja) * 2008-11-17 2010-06-03 Toshiba Corp データ記憶装置及び筐体内レプリケーション方法
JP2012038262A (ja) * 2010-08-11 2012-02-23 Fujitsu Ltd キャッシュメモリおよびデータ処理装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163132A (en) 1987-09-24 1992-11-10 Ncr Corporation Integrated controller using alternately filled and emptied buffers for controlling bi-directional data transfer between a processor and a data storage device
US5391199A (en) 1993-07-20 1995-02-21 Biosense, Inc. Apparatus and method for treating cardiac arrhythmias
US5558091A (en) 1993-10-06 1996-09-24 Biosense, Inc. Magnetic determination of position and orientation
US5497487A (en) * 1994-04-28 1996-03-05 The United States Of America As Represented By The Secretary Of The Navy Merge, commit recovery protocol for real-time database management systems
CA2607769C (en) 1994-08-19 2012-04-24 Biosense, Inc. Medical diagnosis, treatment and imaging systems
US5876336A (en) 1994-10-11 1999-03-02 Ep Technologies, Inc. Systems and methods for guiding movable electrode elements within multiple-electrode structure
US6690963B2 (en) 1995-01-24 2004-02-10 Biosense, Inc. System for determining the location and orientation of an invasive medical instrument
US5697377A (en) 1995-11-22 1997-12-16 Medtronic, Inc. Catheter mapping system and method
US6177792B1 (en) 1996-03-26 2001-01-23 Bisense, Inc. Mutual induction correction for radiator coils of an objects tracking system
US5944022A (en) 1997-04-28 1999-08-31 American Cardiac Ablation Co. Inc. Catheter positioning system
US6100906A (en) 1998-04-22 2000-08-08 Ati Technologies, Inc. Method and apparatus for improved double buffering
US6547730B1 (en) * 1998-12-31 2003-04-15 U-Systems, Inc. Ultrasound information processing system
SE9901605L (sv) * 1999-05-04 2000-11-05 Net Insight Ab Förfarande och anordning för bufferthantering
US6172499B1 (en) 1999-10-29 2001-01-09 Ascension Technology Corporation Eddy current error-reduced AC magnetic position measurement system
US6678772B2 (en) 2000-12-19 2004-01-13 International Businesss Machines Corporation Adaptive reader-writer lock
US20060195704A1 (en) * 2005-01-27 2006-08-31 Hewlett-Packard Development Company, L.P. Disk array encryption element
JP2007122221A (ja) 2005-10-26 2007-05-17 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US20070297433A1 (en) * 2006-06-26 2007-12-27 Mediatek Inc. Method and apparatus for double buffering
US7853568B2 (en) 2007-03-01 2010-12-14 Air Liquide Large Industries U.S. Lp High speed data historian
US8122168B2 (en) 2007-05-17 2012-02-21 International Business Machines Corporation Method for implementing concurrent producer-consumer buffers
US8357152B2 (en) 2007-10-08 2013-01-22 Biosense Webster (Israel), Ltd. Catheter with pressure sensing
US8535308B2 (en) 2007-10-08 2013-09-17 Biosense Webster (Israel), Ltd. High-sensitivity pressure-sensing probe
US20100125695A1 (en) * 2008-11-15 2010-05-20 Nanostar Corporation Non-volatile memory storage system
US8973004B2 (en) * 2009-06-26 2015-03-03 Oracle America, Inc. Transactional locking with read-write locks in transactional memory systems
US8996563B2 (en) 2010-04-06 2015-03-31 Tokutek, Inc. High-performance streaming dictionary

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5686960A (en) * 1992-01-14 1997-11-11 Michael Sussman Image input device having optical deflection elements for capturing multiple sub-images
JPH0695936A (ja) * 1992-09-16 1994-04-08 Nippon Telegr & Teleph Corp <Ntt> バッファ管理方法
JPH08179977A (ja) * 1994-12-21 1996-07-12 Nec Corp 更新バッファ管理装置
JP2000347909A (ja) * 1999-06-07 2000-12-15 Hitachi Ltd トランザクション処理向けストレージ方法および装置、トランザクショナルストレージ
US20040250039A1 (en) * 2003-06-05 2004-12-09 Hanks D. Mitchel System and method for using swappable storage for high data content multi-source data storage
JP2006113927A (ja) * 2004-10-18 2006-04-27 Hitachi Ltd ストレージ装置、ストレージシステム、スナップショット維持方法、およびコマンド
JP2010122761A (ja) * 2008-11-17 2010-06-03 Toshiba Corp データ記憶装置及び筐体内レプリケーション方法
JP2012038262A (ja) * 2010-08-11 2012-02-23 Fujitsu Ltd キャッシュメモリおよびデータ処理装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021526252A (ja) * 2018-06-08 2021-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ストリーミングデータの複数のキャッシュ処理
JP7316724B2 (ja) 2018-06-08 2023-07-28 インターナショナル・ビジネス・マシーンズ・コーポレーション ストリーミングデータの複数のキャッシュ処理
CN110865770A (zh) * 2018-08-27 2020-03-06 爱思开海力士有限公司 存储器系统
KR20200023757A (ko) * 2018-08-27 2020-03-06 에스케이하이닉스 주식회사 메모리 시스템
KR102541897B1 (ko) * 2018-08-27 2023-06-12 에스케이하이닉스 주식회사 메모리 시스템
CN110865770B (zh) * 2018-08-27 2023-08-01 爱思开海力士有限公司 存储器系统
US11782825B2 (en) 2018-08-27 2023-10-10 SK Hynix Inc. Memory system which stores a plurality of write data grouped into a transaction

Also Published As

Publication number Publication date
IL272283A (en) 2020-02-27
EP3514676A3 (en) 2019-09-04
EP2846267B1 (en) 2019-09-25
IL272283B (en) 2021-09-30
AU2014215988A1 (en) 2015-03-19
EP2846267A2 (en) 2015-03-11
CN104424133B (zh) 2019-09-20
US10684986B2 (en) 2020-06-16
CN104424133A (zh) 2015-03-18
CA2861176A1 (en) 2015-02-28
US20150067000A1 (en) 2015-03-05
IL234038A0 (en) 2014-11-30
EP3514676A2 (en) 2019-07-24
IL234038B (en) 2020-02-27
EP2846267A3 (en) 2015-12-09
AU2014215988B2 (en) 2019-06-06
JP6526397B2 (ja) 2019-06-05

Similar Documents

Publication Publication Date Title
JP6526397B2 (ja) リアルタイムデータフローの永続記憶装置用のアトミックトランザクションによるダブルバッファリング
CN109199598B (zh) 用于实时三维(3d)心脏成像中玻璃态视图的系统和方法
JP5902878B1 (ja) 医療装置誘導システム
CN106255471B (zh) 用于动态虚拟碰撞物体的系统和方法
JP5478328B2 (ja) 診断支援システム、診断支援プログラムおよび診断支援方法
CN107750148B (zh) 阻抗位移及漂移检测和校正
JP5572440B2 (ja) 診断支援システム、診断支援プログラムおよび診断支援方法
CN107133946B (zh) 医学图像处理方法、装置及设备
JP2017217510A (ja) 手術中の位置調整および誘導を容易にするシステム
JP2018501834A (ja) 投影画像における介入器具の位置を決定する装置
US20240050162A1 (en) Determining the shape of an interventional device
Hori et al. Impact of low-voltage zones on the left atrial anterior wall on the reduction in the left atrial appendage flow velocity in persistent atrial fibrillation patients
US11648071B2 (en) Autonomous X-ray control for robotic navigation
JP2021083821A (ja) 医用画像診断支援システム及び医用画像処理装置、医用画像処理方法
JP7037810B2 (ja) 画像処理装置と画像処理プログラムと画像処理方法
EP3863551B1 (en) Using a current workflow step for control of medical data processing
CN109481016B (zh) 以患者面部作为触摸板用户界面
JP2021023548A (ja) 医用画像処理装置、医用画像処理システム、医用画像処理プログラム、及び医用画像処理方法
US20220043618A1 (en) Medical information processing apparatus and medical information processing method
EP3463074A1 (en) Impedance shift detection
CN114431877A (zh) 医学图像中的未经导航对象的识别和可视化

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181126

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190508

R150 Certificate of patent or registration of utility model

Ref document number: 6526397

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees