JP2013539149A - 疑似乱数列を使用することによってデータを格納するためのデバイス - Google Patents

疑似乱数列を使用することによってデータを格納するためのデバイス Download PDF

Info

Publication number
JP2013539149A
JP2013539149A JP2012558123A JP2012558123A JP2013539149A JP 2013539149 A JP2013539149 A JP 2013539149A JP 2012558123 A JP2012558123 A JP 2012558123A JP 2012558123 A JP2012558123 A JP 2012558123A JP 2013539149 A JP2013539149 A JP 2013539149A
Authority
JP
Japan
Prior art keywords
number sequence
sequence
memory
cross
correlation
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
JP2012558123A
Other languages
English (en)
Other versions
JP5787909B2 (ja
Inventor
智章 上田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Empire Technology Development LLC
Original Assignee
Empire Technology Development LLC
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 Empire Technology Development LLC filed Critical Empire Technology Development LLC
Publication of JP2013539149A publication Critical patent/JP2013539149A/ja
Application granted granted Critical
Publication of JP5787909B2 publication Critical patent/JP5787909B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • 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/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/58Random or pseudo-random number generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Holo Graphy (AREA)
  • Complex Calculations (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

データを格納するためのデバイスは、疑似乱数列である第1の数列を生成するように構成された数列生成器と、第1の数列と第3の数列との相互相関である第2の数列を生成するように構成された相互相関ユニットと、第2の数列をメモリ内に書き込み、メモリから第2の数列を読み出すように構成された書き込み/読み出しユニットとを備え、相互相関ユニットは、第1の数列とメモリから読み出された第2の数列との相互相関を求めることによって第3の数列を再構築するようにさらに構成される。

Description

本出願は、一般的にデータを格納するためのデバイスに関係する。
本明細書において別段の指示のない限り、この節で説明するアプローチは、本出願の請求項に対する従来技術ではなく、またこの節に含めることによって従来技術であると認められることはない。
メモリデバイスの記憶容量を増大させると、さまざまな技術的問題が生じるだけでなく、アプリケーションにも問題が生じる。たとえば、メモリデバイスの高い生産収率を達成するのが次第に困難になって行くことが挙げられる。妥当なコストでメモリデバイスを製造するために、デバイス1つ当たりの誤りビットの割合増加が許容されなければならない場合がある。
さらに、記憶容量を増やすことは、ストレージデバイスが故障したときに、データ損失が高まり、したがって損害が大きくなる可能性があることを意味する。ポータブルストレージデバイスの場合、このようなデバイスが盗まれると、結果として、機密保護違反のより大きなリスクを負う可能性がある。膨大な量のデータを単一のストレージデバイス内に局在させることを回避するのがよいと思われる。
データを格納するためのデバイスは、疑似乱数列である第1の数列を生成するように構成された数列生成器と、第1の数列と第3の数列との相互相関である第2の数列を生成するように構成された相互相関ユニットと、第2の数列をメモリ内に書き込み、メモリから第2の数列を読み出すように構成された書き込み/読み出しユニットとを備え、相互相関ユニットは、第1の数列とメモリから読み出された第2の数列との相互相関を求めることによって第3の数列を再構築するようにさらに構成される。
前述の説明は、例示的なものにすぎず、いっさい制限することを意図されていない。上述の例示的な態様、実施形態、および特徴に加えて、図面を参照し、以下の詳細な説明を参照することによってさらなる態様、実施形態、および特徴も明らかになるであろう。
本開示の発明対象は、明細書の結びのところで特に指摘され、明確に主張される。本開示の前記の特徴および他の特徴は、付属の図面を参照することで、以下の説明および付属の請求項からより完全に明らかになるであろう。これらの図面は本開示による複数の実施形態のみを示し、したがって本開示の範囲を制限するものであると考えるべきでないことを理解してもらい、そのうえで、付属の図面を用いてさらに具体的に、詳細に本開示を説明する。
一実施形態によりデータを格納するための例示的なデバイスを示す図面である。 相互相関ユニットおよび書き込みオペレーションに関係する書き込み/読み出しユニットの例示的な構成を示す図面である。 相互相関ユニットおよび読み出しオペレーションに関係する書き込み/読み出しユニットの例示的な構成を示す図面である。 最大長数列を生成するための線形フィードバックシフトレジスタの一例を示す図面である。 調節可能な長さとパターンとを持つ線形フィードバックシフトレジスタの構成の一例を示す図面である。 最大長数列の一例を示す図面である。 最大長数列の一例を示す図面である。 最大長数列の一例を示す図面である。 相互相関の例示的な計算の概略示す図面である。 図7Aの例示的な相互相関をグラフ形式で示す図面である。 読み出しオペレーションのときに計算される相互相関の一例を示す図面である。 最大長数列の別の例を示す図面である。 最大長数列の別の例を示す図面である。 読み出しオペレーションのときに計算される相互相関の例を示す図面である。 読み出しオペレーションのときに計算される相互相関の例を示す図面である。 読み出しオペレーションのときに計算される相互相関の例を示す図面である。 データを格納するための例示的なデバイスを示す図面である。 ホログラフィックデータを格納するために複数のストレージデバイスを使用する一例を示す図である。 ホログラムメモリを使用する例示的なコンピュータシステムを示す図面である。 安全な方法でホログラフィックデータを格納するための例示的なプロセスを示すフローチャートである。 図14に示されているプロセスによって格納されるホログラフィックデータを復元するための例示的なプロセスを示すフローチャートである。
これ以降、実施形態は、図面を参照しつつ説明される。
以下の説明では、請求項に記載の発明対象を完全に理解できるように具体的詳細とともにさまざまな実施例を述べる。しかし、当業者であれば、請求項に記載の発明対象は本明細書で開示されている具体的詳細が多少省かれていても実施されうることを理解するであろう。さらに、いくつかの状況において、よく知られている方法、手順、システム、コンポーネント、および/または回路については、請求項に記載の発明対象をいたずらにわかりにくくしないために、細部にわたって説明することはしていない。以下の詳細な説明では、詳細な説明の一部をなす、添付図面が参照される。図面中の類似の記号は、典型的には、文脈上別のものを示していない限り類似のコンポーネントを明示する。詳細な説明、図面、および請求項で説明されている例示的な実施形態は、制限することを意図されていない。他の実施形態も利用することができ、また本明細書に提示されている発明対象の精神または範囲から逸脱することなく、他の変更を加えることができる。本明細書で一般的に説明され、また図に例示されているような本開示の実施形態は、さまざまな異なる構成による配置、置換、組み合わせ、設計が可能であり、すべて明示的に考察され、本開示の一部をなすことは容易に理解されるであろう。
図1は、一実施形態によりデータを格納するための例示的なデバイスを示す図面である。図1に示されている構成は、乱数列生成器10、相互相関ユニット11、書き込み/読み出しユニット12、制御ユニット13、およびストレージユニット14を備える。データを格納するためのデバイスは、コンピュータに内蔵することができるか、または外付けハードディスクドライブ、USBフラッシュドライブ、メモリカード、コンパクトディスク、デジタル多用途ディスクなどの個別のデータストレージユニットであってよい、ストレージユニット14にデータを格納することができる、データI/O(つまり、データ入出力)インターフェースユニットなどの、コンピュータの一部とすることができる。データを格納するためのデバイスは、ホスト装置から分離可能なポータブルストレージユニットとすることができる。このような場合、図1に示されているすべての要素はデバイス内に備えることができ、これは外付けハードディスクドライブ、USBフラッシュドライブ、メモリカードなどであってよい。
乱数列生成器10は、疑似乱数列であってよい第1の数列を生成することができる。乱数列生成器10は、生成された数列が十分に鋭い自己相関を示しうる限り、線形合同法、混合線形合同法、平方採中法、線形フィードバックシフトレジスタ法、または同様の方法などの乱数生成法を使用することができる。つまり、生成された数列の自己相関は、原点のところにピークを有するが(つまり、ゼロシフト)、残りの点における自己相関の値は、ゼロに近いものとしてよい。このような自己相関により、後で説明されるように数列を再構築することが可能になりうる。
相互相関ユニット11は、第1の数列と第3の数列との相互相関である第2の数列を生成することができる。第3の数列は、ストレージユニット14に格納するために外部ソースから入力されるデータとして供給される入力数列であってよい。書き込み/読み出しユニット12は、第2の数列を書き込みオペレーションでストレージユニット14に書き込みおよび/またはストレージユニット14内に書き込むことができる。読み出しオペレーションでは、書き込み/読み出しユニット12は、ストレージユニット14から第2の数列を読み出すことができる。読み出しオペレーション時に、相互相関ユニット11は、第1の数列とストレージユニット14から読み出された第2の数列との相互相関を求めることによって第3の数列を再構築することができる。
書き込みオペレーションに対する第1の相互相関の後の読み出しオペレーションに対するこの第2の相互相関は、第1の数列の自己相関を計算するために使用することができ、したがって再構築された数列はデータ入力列と第1の数列の自己相関との間の相互相関となりうる。第1の数列は、自己相関が衝撃関数(つまり、ディラックのデルタ関数)に似た鋭いピークを持ちうる疑似乱数列であってよいため、データ入力列と読み出しオペレーション時の第1の数列の自己相関との間の相互相関は、データ入力列を再構築するために使用することができる。この再構築プロセスについて以下で詳細に説明する。
データを格納するこの方法において、データ入力列(つまり、第3の数列)に含まれる情報は、より長いより冗長な数列(つまり、第2の数列)として分散され、分配され、ストレージユニット14内に格納されうる。格納されているデータの一部が破損もしくは喪失している可能性があるとしても、上で説明されている再構築プロセスを通じてデータ入力列全体を再構築することができる。いくつかの状況において、本明細書でさらに詳しく説明されるように、データ入力列全体を格納されている数列の断片から再構築することができる。以下では、便宜上、このデータ格納方式は、光学的ホログラムの類推から「ホログラムメモリ」と称されうる。さらに、ホログラムメモリ内に格納されているデータは、ホログラフィックデータと称されうる。
制御ユニット13は、乱数列生成器10、相互相関ユニット11、および書き込み/読み出しユニット12のオペレーションを制御することができる。制御ユニット13は、外部ソースから制御データを受け取ることができる。制御データは、乱数列生成器10によって生成される第1の数列(つまり、疑似乱数列)の長さおよびパターンを指定することができる。たとえば、乱数列生成器10は、第1の数列として使用されうる最大長数列を生成するためのシフトレジスタ(つまり、線形フィードバックシフトレジスタ)とすることができる。そのような場合、制御ユニット13は、制御データに従って乱数列生成器10を制御することができ、したがって1つまたは複数のタップ位置および最大長数列を生成するために効果的に使用されるシフトレジスタのいくつかのカスケード接続されたレジスタのうちの少なくとも1つが乱数列生成器10内で変更されうる。つまり、乱数列生成器10は、制御データに応答して第1の数列の長さおよびパターンを変更することができる。線形フィードバックシフトレジスタが乱数列生成器10として使用される場合、制御ユニット13は、初期状態を線形フィードバックシフトレジスタに設定することができ、したがって、線形フィードバックシフトレジスタのいくつかのレジスタは、初期状態ですべてゼロに設定されなくてもよい。
制御ユニット13は、外部ソースから、読み出しオペレーション(「R」)、書き込みオペレーション(「W」)、または追加の書き込みオペレーション(「AW」)を示すデータ、ならびに書き込み/読み出し開始アドレスを示すアドレスデータをさらに受信することができる。書き込みオペレーションでは、制御ユニット13により、相互相関ユニット11がデータ入力(つまり、上述の第3の数列)をデータ入力列より著しく長いデータ列(つまり、上述の第2の数列)に変換することになる可能性がある。次いで、制御ユニット13により、外部から供給される書き込みアドレスによって指定されたアドレスから開始することによって書き込み/読み出しユニット12が得られた第2の数列をストレージユニット14に書き込むことができる。第2の数列は、長い数列とすることができ、ストレージユニット14内の多数の連続するアドレスに格納することができる。
読み出しオペレーションでは、制御ユニット13により、外部から供給される読み出しアドレスから開始することによって書き込み/読み出しユニット12が第2の数列をストレージユニット14から読み出すことができる。第2の数列は、長い数列とすることができ、ストレージユニット14内の多数の連続するアドレスから連続的に読み出すことができる。次いで、制御ユニット13により、第2の数列と乱数列生成器10によって生成される第1の数列との間の相互相関を計算することによって相互相関ユニット11が第2の数列を第2の数列より著しく短いデータ列(つまり、再構築されたデータ入力列)に変換することができる。第2の数列は、第1の数列とデータ入力列(つまり、第3の数列)との間の相互相関であってよく、ストレージユニット14からデータを取り出した後、第2の数列と第1の数列との相互相関を再度求めることができる。その結果得られた数列は、データ入力列と第1の数列の自己相関との間の相互相関となりうる。第1の数列の自己相関は鋭いピークを持ちうるため、データ入力列と読み出しオペレーション時の第1の数列の自己相関との間の相互相関は、データ入力列を再構築するために使用することができる。
追加の書き込みオペレーションでは、制御ユニット13により、相互相関ユニット11は、新しいデータ入力と第1の数列との間の相互相関を書き込みオペレーションと同様にして計算することができる。次いで、書き込み/読み出しユニット12は、ストレージユニット14から読み出された第2の数列を新しいデータ入力に対する相互相関ユニット11によって生成される第5の数列に加えることによって第4の数列を生成することができる。さらに、書き込み/読み出しユニット12は、第4の数列をストレージユニット14に書き込み、ストレージユニット14内の第2の数列を置き換えることができる。この追加の書き込みオペレーションについて以下で詳細に説明する。
制御ユニット13は、クロック信号およびタイミング信号を乱数列生成器10、相互相関ユニット11、および書き込み/読み出しユニット12に供給することによって乱数列生成器10、相互相関ユニット11、および書き込み/読み出しユニット12の間のデータ交換タイミングをさらに調整することができる。このようにして、制御ユニット13は、乱数列生成器10、相互相関ユニット11、および書き込み/読み出しユニット12の間の同期を維持することができる。乱数列生成器10は、長い数列であってよい第1の数列を生成し、この数列内の数を相互相関ユニット11に順次供給してゆくことができる。書き込みオペレーションにおいて、相互相関ユニット11は、乱数列生成器10から供給される第1の数列に関して適切なタイミングで第2の数列を生成することを開始することができる。次いで、書き込み/読み出しユニット12が、制御ユニット13によって指示された適切なタイミングでストレージユニット14に第2の数列を書き込むことを開始することができる。追加の書き込みオペレーションにおいて、書き込み/読み出しユニット12は、相互相関ユニット11から供給された第4の数列のタイミングと一致するような適切なタイミングでストレージユニット14から第2の数列を読み出すことを開始することができる。読み出しオペレーションにおいて、書き込み/読み出しユニット12は、乱数列生成器10から相互相関ユニット11に供給される第1の数列のタイミングと一致するような適切なタイミングでストレージユニット14から読み出された第2の数列を相互相関ユニット11に供給することができる。
図2は、相互相関ユニット11および書き込みオペレーションに関係する書き込み/読み出しユニット12の構成の一例を示す図面である。図2では、図1のと同じ要素は、同じ参照番号で参照され、その説明が省かれている場合がある。
図2に示されている構成は、図1にすでに示されている乱数列生成器10およびストレージユニット14に加えて、レジスタ21、カスケード接続されたレジスタ22−1から22−L−1からなるシフトレジスタ、乗算ユニット23−1から23−L、および加算ユニット24を備えることができ、相互相関ユニット11の一部をなすものとしてよい。図2に示されている構成は、書き込み/読み出し制御ユニット31、バッファ−&−加算器ユニット32、およびアドレス生成器33をさらに備えることができ、書き込み/読み出しユニット12の少なくとも一部をなすものとしてよい。
レジスタ21は、第3の数列(つまり、データ入力列)をビット系列S[0]からS[L−1]として格納することができる。乱数列生成器10によって生成される第1の数列は、この例においてビット列とすることができる。このビット列は、制御ユニット13から供給されるクロック信号と同期してカスケード接続されたレジスタ22−1から22−L−1へシフトして通過しうる。乗算ユニット23−2から23−Lは、それぞれ、レジスタ21に格納されているビット系列S[L−2]からS[0]とカスケード接続されたレジスタ22−1から22−L−1に格納されているビット系列とのビット毎の乗算を実行することができる。乗算ユニット23−1は、レジスタ21に格納されているビットS[L−1]と乱数列生成器10から直接出力されるビットとの乗算を実行することができる。乗算ユニット23−1に入力されるビットを格納するために乱数列生成器10とレジスタ22−1との間に追加のレジスタを備えることができる。あるいは、乱数列生成器10の出力段のところの内部レジスタをカスケード接続されたレジスタのうちの1つと見なすことができる。このような場合、乗算ユニット23−2から23−Lは、それぞれ、レジスタ21に格納されているビット系列S[L−1]からS[0]とカスケード接続されたレジスタに格納されているビット系列とのビット毎の乗算を実行することができると言って差し支えない。さらに、加算ユニット24は、ビット毎の乗算から結果として得られる乗算されたすべてのビットの総和を求めることができる。
書き込み/読み出し制御ユニット31は、図1の制御ユニット13から書き込みオペレーション「W」または読み出しオペレーション「R」を示すデータを受信することができ、ストレージユニット14にデータを書き込み、ストレージユニット14からデータを読み出すようにストレージユニット14を制御することができる。制御ユニット13からのこの指示データは、追加の書き込みオペレーションにおいて読み出しオペレーション「R」および書き込みオペレーション「W」を交互に示すことができる。バッファ−&−加算器ユニット32は、図1の制御ユニット13から書き込みオペレーション「W」または追加の書き込みオペレーション「AW」を示すデータを受信することができる。書き込みオペレーションの場合、バッファ−&−加算器ユニット32は、加算ユニット24の出力データをそのままストレージユニット14に供給し、中に格納することができる。バッファ−&−加算器ユニット32内の何らかのデータバッファリングを必要に応じて実行することができる。追加の書き込みオペレーションの場合、バッファ−&−加算器ユニット32は、ストレージユニット14から取り出されたデータを加算ユニット24の出力データに加算し、その後、その結果得られた総和をストレージユニット14に供給し、中に格納することができる。この総和は、ストレージユニット14内の取り出されたデータを置き換えることができる。
アドレス生成器33は、図1の制御ユニット13からアドレスデータを受け取り、アドレス生成器33は、アドレスデータによって指定されたアドレスから開始するアドレスをカウントアップするカウンターとして使用される。したがって、書き込みオペレーションまたは追加の書き込みオペレーションにおいて連続する書き込みデータは、ストレージユニット14内のアドレス生成器33よって生成される連続するアドレスに格納されうる。アドレス生成器33によるそれぞれのアドレスのインクリメントと同期して、乱数列生成器10は、新規ビットを生成し、カスケード接続されたレジスタ22−1から22−L−1に格納されているビット系列を右シフトすることができる。読み出しオペレーションでは、連続する読み出しデータは、アドレス生成器33によって生成された連続するアドレスから取り出すことができる。
図3は、相互相関ユニット11および読み出しオペレーションに関係する書き込み/読み出しユニット12の構成の一例を示す図面である。図3では、図2のと同じ要素は、同じ参照番号で参照され、その説明が省かれている場合がある。
図3に示されている構成は、図2にすでに示されているものに加えて、複数の加算ユニット25−1から25−Lを備えることができ、これは相互相関ユニット11の一部であってよい。乗算ユニット23−1から23−Lは、図2に示されている場合のものと異なる入力を受け取ることができる。図2の構成と図3の構成との間の入力の切り替えは、乗算ユニット23−1から23−Lの入力ノードにスイッチを備えることによって実行されうる。あるいは、図2の構成で使用される乗算ユニットに加えて図3の構成用に別の乗算ユニットを備えることができる。
乗算ユニット23−1から23−Lは、シフトレジスタ(たとえば、カスケード接続されたレジスタ22−1から22−L−1および乱数列生成器10内の1つの追加レジスタ)内に格納されている各ビットとストレージユニット14から読み出された単一の数との乗算を実行することができる。加算ユニット25−1から25−Lは、乗算の結果である複数の積との一対一対応関係を持つように形成されうる。加算ユニット25−1から25−Lの1つは、複数の積のうちの対応する1つと加算ユニット25−1から25−Lのうちの1つによって生成される直前の和との総和を生成することができる。つまり、それぞれの加算ユニットは、現在の出力を現在の入力に加えて、更新された出力を生成することができる。
加算ユニット25−1から25−Lの出力が得られる毎に、次の計算が開始する。つまり、書き込み/読み出し制御ユニット31は、ストレージユニット14から次の数を読み出すことができる。乱数列生成器10は、次のビットを生成することができ、したがってカスケード接続されたレジスタ22−1から22−L−1に格納されているビット列を1ビット右にシフトすることができる。乗算ユニット23−1から23−Lは、乗算を実行し、次いで、加算ユニット25−1から25−Lによって実行される加算オペレーションを実行することができる。これは、ストレージユニット14に格納されている第2の数列の系列全体がストレージユニット14から読み出され、乗算ユニット23−1から23−Lによる乗算が適用されるまで続けられる。第2の数列の系列全体が読み出され、乗算が適用された後、加算ユニット25−1から25−1の出力をそれぞれS[0]からS[L−1]からなる再構築されたビット系列としてレジスタ21内に格納することができる。
図4は、最大長数列を生成するための線形フィードバックシフトレジスタの一例を示す図面である。最大長数列生成器は、1つまたは複数の排他的ORゲートとカスケード接続されたレジスタからなるシフトレジスタとを備えることができる。所定のレジスタからのタップ出力を排他的ORゲートに供給し、すべてのタップ出力の排他的ORによる総和を初段レジスタの入力にフィードバックすることができる。図2の例では、第2および第3のレジスタからのタップ出力を排他的ORゲートに供給することができる。フィードバックにどのタップ出力を使用できるかによって、与えられた線形フィードバックシフトレジスタが最大長数列を生成できるかどうかが決まる。
N個のレジスタからなる最大長数列生成器は、長さ2−1の数列を生成することができる。最大長数列の統計的特性は十分に研究されている。便宜上、ビット値「1」は「1」として取り扱い、ビット値「0」は「−1」として取り扱うものとすることができる。「1」と「1」との乗算は「1」であり、「1」と「−1」との乗算は「−1」であり、「−1」と「−1」との乗算は「1」である。このような配置構成により、「2−1」の最大自己相関値は、ゼロビットシフトに関して観察されうるが、1ビットまたはそれ以上の位相シフトの結果、自己相関値は「−1」となる。
図5は、調節可能な長さとパターンとを持つ線形フィードバックシフトレジスタの構成の一例を示す図面である。図5に例示されている線形フィードバックシフトレジスタは、レジスタ41−1から41−n、ANDゲート42−1から42−n、および排他的ORゲート43−1から43−n−1を備えることができる。レジスタ41−i(i=1、2、...、またはn)の出力をANDゲート42−iの2つの出力のうちの1つに印加することができる。ANDゲート42−iの他の入力は、係数aを受け取ることができる。ANDゲート42−iの出力を排他的ORゲート43−iに供給することができる。
係数aからan−1を「0」または「1」のいずれかに設定することで、線形フィードバックシフトレジスタの所望の構成を形成することが可能になる。たとえば、aおよびaを「1」に設定し、残りすべての係数aおよびaからan−1を「0」に設定することで、最大長数列生成器を図4に例示されているようにすることができる。制御ユニット13は、タップ位置、および最大長数列を生成するために事実上使用されるカスケード接続されたレジスタの数を選択するためにこれらの係数を設定することができる。このようにして、図1の乱数列生成器10は、制御データに応答して第1の数列の長さおよびパターンを変更することができる。図4および図5に例示されている線形フィードバックシフトレジスタは、フィボナッチ構成の線形フィードバックシフトレジスタとすることができるけれども、ガロア構成の線形フィードバックシフトレジスタを代わりに使用することもできる。
以下では、書き込みオペレーションおよび読み出しオペレーションについて詳細に説明する。2−1ビットの長さを有する最大長数列は、m[j](j=0、1、2、3、...、2−2)で表すことができる。データ入力列は、S[i](i=0、1、2、...、L−1)で表すことができる。これらの列のそれぞれの要素は、すでに説明されているように「1」または「−1」のいずれかとすることができる。データ格納列M[j](j=0、1、2、3、...、2−2)」は、以下のように表すことができる。
[数式1]
Figure 2013539149
これは、m[0]からm[2−2]とS[0]からS[L−1]との相互相関である。最大長数列は循環していてもよい、つまり、最後の数m[2−2]の後に、m[1]からm[2−2]の別の系列が続きうることを意味していることに留意されたい。
与えられたjに対する上記の公式(1)によって表される相互相関は、図2に例示されている構成によって単一クロックサイクルで並列計算することができる。この場合、乗算ユニット23−1から23−Lは、排他的NORゲートとして実装されうる。排他的NORゲートは、2つの入力が同じである場合に「1」を生成し、2つの入力が互いに異なる場合に「0」を生成することができる。図2の構成において、m[j]およびS[i]は、典型的なビット列と同様に「0」または「1」のいずれかをとることができ、したがって、乗算ユニット23−1から23−Lとして機能する排他的NORゲートは、「0」または「1」のいずれかである積を生成することができる。加算ユニット24は、「0」の入力値を「−1」として、「1」の入力値を「1」として取り扱うことによって0および1の総和が計算できるように構成されうる。その結果得られる総和は、最初から「−1」または「1」のいずれかをとるm[j]およびS[i]を使用することによって得られる総和に等しいものとしてよい。
さらに、Lは、2−1より小さく、したがって、Lの長さを有するデータは、2N−1の長さを有するデータ上に分散されうることに留意されたい。Lは、2−1より小さい場合があるので、任意のjに対するM[j]の値は、少なくとも−(2−1)から2−1までの範囲内とすることができる。このようにして計算された相互相関は、少なくともNビットワード幅を有するメモリデバイス内に格納されうる。
データ入力列S[0]からS[L−1]の一部が変更されうる場合、差のみをストレージユニット14に格納することができる。たとえば、S[1]のみがS’[1]に変更される場合、「m[0]、m[1]、...、[2−2]」と「0、S’[1]−S[1]、0...、0」との相互相関が計算されうる。次いで、この相互相関を、ストレージユニット14にすでに格納されている可能性のあるm[0]からm[2−2]とS[0]からS[L−1]との相互相関に加えることができる。この加算オペレーションの結果をストレージユニット14に格納し、元の相互相関を置き換えることができる。これは、すでに説明されている追加の書き込みオペレーション「AW」に対応しうる。
追加の書き込みオペレーション「AW」は、元のデータ入力列に対して加えられた変更を書き込むために使用されるだけでなく、追加のデータ入力列を書き込むためにも使用されうる。たとえば、m[0]からm[2−2]とS[0]からS[L−1]はすべてゼロに設定されうるS[0]からS[2L−1]との相互相関は、元の数列S[0]からS[L−1]を書き込むために使用されるのと同じ最大長数列m[0]からm[2−2]を使用することによってストレージユニット14に追加書き込みすることができる。このような追加の書き込みオペレーションの結果、データ入力列S[0]からS[2L−1]、つまり、元の数列S[0]からS[L−1]および追加の数列S[L]からS[2L−1]を1つの列としてまとめて格納することができる。
さらに、追加の書き込みオペレーション「AW」は、同じ最大長数列を使用するだけでなく、異なる最大長数列を使用して新規データ入力列を書き込むこともできる。たとえば、m’[0]からm’[2−2]と新規入力列S’[0]からS’[L−1]との相互相関は、ストレージユニット14に追加書き込みすることができ、ただし、最大長数列m’[0]からm’[2−2]は、入力列S[0]からS[L−1]を書き込むために使用される最大長数列m[0]からm[2−2]と異なっていてもよい。このような追加の書き込みオペレーションの結果、同じメモリロケーションに、数列S[0]からS[L−1]に加えて新規数列S’[0]からS’[L−1]を格納することができる。m[0]からm[2−2]とm’[0]からm’[2−2]との相互相関は、鋭いピークを持ちえないため、再構築プロセスは、それでも、互いに別々に2つのデータ入力列を再構築することができる。このような異なる最大長数列は、タップ位置を変更することよって生成されうる。データ格納列の1つを削除するために、このデータ格納列をストレージユニット14内に格納されている値から差し引くことができる。
再構築されたデータ列O[0]からO[2−2]は、以下のように表すことができる。
[数式2]
Figure 2013539149
たとえば、O[0]は、以下のように計算することができる。
[数式3]
Figure 2013539149

ここで、上記の式中に出現するm[i+j]m[j]の総和は、i=0については2−1に等しく、i<>0については−1に等しい。そこで、O[0]は、以下のように表すことができる。
O[0]=(2−1)S[0]−(S[1]+S[2]+...+S[L−1])
同様にして、0からL−1までの範囲の与えられた任意のkについて、O[k]は以下のように表すことができる。
O[k]=(2−1)S[k]−(S[0]+S[1]+...+S[L−1]−S[k])
L−1より大きい与えられた任意のkについて、O[k]は以下のように表すことができる。
O[k]=−S[0]−S[1]−...−S[L−1]
Lは、2−1より小さくてもよいので、適切な閾値を使用することで、誤りなくO[k]を再構築することが可能である。
図6Aから6Cは、最大長数列の実際の例を示す図面である。線形フィードバックシフトレジスタのレジスタの数が5である場合、第2のタップ出力および第5のタップ出力をフィードバックに使用することで、31の長さを有する最大長数列を生成することができる。図6Aは、このような線形フィードバックシフトレジスタによって生成される最大長数列を示す。この表現では、「1」は「1」として示され、「0」は「−1」として示される。図6Bは、最大長数列をグラフ形式で示している。横軸は連続番号を表し、縦軸は「−1」または「1」のいずれかのビット値を表す。図6Cは、最大長数列の自己相関を例示している。図示されているように、自己相関は、ゼロシフト点で最大値を有し、これは原点と32番目毎の数列位置に対応する。ピークの値は31であり、残りの点の値は−1である。
図7Aは、相互相関の計算の概略示す図面である。この例で、図6Aおよび図6Bに例示されている最大長数列は、データ入力列(1,1,−1,1,−1,−1,1,−1)を分散するために使用される。図7Aでは、第1の行の一番左の桁51は、データ入力列の最初の数であるものとしてよい。第1の行の数列52は、図6Aに例示されている最大長数列であってよい。第2の行の一番左の桁53は、データ入力列の第2の数であるものとしてよい。第2の行の数列54は、1ビットだけ左にシフトされた図6Aに例示されている最大長数列であってよい。同様に、i番目の行の一番左の桁は、データ入力列のi番目の数であってよく、iビットだけ左にシフトされた最大長数例は、i番目の行上に例示されうる。与えられた行内の最大長数列のそれぞれの要素に同じ行の一番左の桁を乗算することができる。その結果得られる数列は、最下段に示されている相互相関55を生成するためにビット毎に足し合わせることができる。図7Bは、相互相関をグラフ形式で示している。横軸は連続番号を表し、縦軸は相互相関の値を表す。相互相関のこれらの値は、ホログラフィックデータとしてメモリ(つまり、ストレージユニット14)内に格納することができる。
図8は、読み出しオペレーションのときに計算される相互相関の一例を示す図面である。図6Bに例示されている最大長数列は、図7Bに例示されているホログラフィックデータと相互相関しているものとしてよい。結果として得られる数列が図8に例示されている。例示されているように、結果として得られる数列は、「+30」を中心とする大きな正の値、「−30」を中心とする大きな負の値、またはゼロに近い中間値を有する。第1の閾値は、0から30までの間の中点に設定され、第2の閾値は、0から−30までの間の中点に設定されうる。結果として得られる数列をこれら2つの閾値と比較することによって、データ入力列を再構築することが可能になる。図8を見るとわかるように、結果として得られる数列の一番左の8個の数は、データ入力列(1,1,−1,1,−1,−1,1,−1)の8桁に対応している。この方法で、データ入力列は、読み出しオペレーションのときに相互相関を計算することによって再構築されうる。
図9Aおよび9Bは、最大長数列の別の実際の例を示す図面である。図9Aは、7個のレジスタからなる線形フィードバックシフトレジスタによって生成される最大長数列を示す。横軸は連続番号を表し、縦軸は「−1」または「1」のいずれかのビット値を表す。この場合、数列の長さは127(=2−1)である。図9Bは、図9Aに例示されている最大長数列がデータ入力列(1,1,−1,1,−1,−1,1,−1)を分散するために使用されるときに得られる相互相関を示している。横軸は連続番号を表し、縦軸は相互相関の値を表す。相互相関のこれらの値は、ホログラフィックデータとしてメモリ(つまり、ストレージユニット14)内に格納することができる。
図10Aから10Cは、読み出しオペレーションのときに計算される相互相関の例を示す図面である。図9Aに例示されている最大長数列は、図9Bに例示されているホログラフィックデータと相互相関しているものとしてよい。結果として得られる数列が図10Aに例示されている。結果として得られる数列の一番左の8個の数は、データ入力列(1,1,−1,1,−1,−1,1,−1)の8桁に対応している。この方法で、データ入力列は、読み出しオペレーションのときに相互相関を計算することによって再構築されうる。
図10Bは、合計127個のデータ点のうちの40個のデータ点でデータが失われる(つまり、この例では「0」に設定される)場合を示している。この場合、読み出しオペレーションのときに相互相関を計算することによって得られる数列は、図10Bに例示されているような誤りを含みうる。点線で示されているような適切な閾値を使用することで、それでもデータ入力列(1,1,−1,1,−1,−1,1,−1)を再構築することが可能になりうる。
図10Cは、合計127個のデータ点のうちの80個のデータ点でデータが失われる(つまり、この例では「0」に設定される)場合を示している。この場合は、適切な閾値を使用することで、それでもデータ入力列(1,1,−1,1,−1,−1,1,−1)が再構築されうる閾値の場合であるものとしてよい。
ホログラムメモリでは、データ入力列に含まれる情報を、冗長的な方法で長いデータ格納列の上に分散し分配することができる。すでに説明されているように、「ホログラムメモリ」という言い回しは、光学的ホログラムの類推から便宜上使用されているにすぎない。この表現は、決して本開示の範囲を制限することを意図していない。データ格納列の長さが増加すると、冗長性も増大する可能性がある。言い換えると、最大長数列の長さとデータ入力列の長さとの比が大きければ大きいほど、ホログラムメモリのロバスト性が高まりうる。たとえば、15個のレジスタからなる線形フィードバックシフトレジスタは、32,767ビット長である最大長数列を生成することができる。この最大長数列を使用することによって273ビットの長さを有するデータ入力列がホログラムメモリ内に格納された場合、データ点の98.5%が破壊されてもデータ再構築が可能であった。
図11は、図1に例示されているデータを格納するためのデバイスの変更形態を示す図面である。図11では、図2のと同じ要素は、同じ参照番号で参照され、その説明が省かれている場合がある。図11では、ストレージシステムは、複数のストレージユニット14−1から14−4を備えることができる。ストレージユニット14−1から14−4の数は、図11に非限定的な例として示されている構成では4である。ストレージユニットの数は、任意の数であってよく、これはさまざまな要因を考慮して選択することができる。
書き込み/読み出しユニット12は、たとえば、ストレージユニット14−1内にデータ格納列(つまり、第2の数列)の第1の部分を書き込むことができ、またたとえば、ストレージユニット14−2内にデータ格納列の第2の部分を書き込むことができる。このようにして、データ格納列を各ロケーションに置かれている複数のストレージデバイス上に分配することができる。ストレージユニット14−1から14−4は、ネットワーク15を通じて書き込み/読み出しユニット12に接続されうる。このような場合、書き込み/読み出しユニット12は、データ格納列の第1の部分およびデータ格納列の第2の部分をネットワーク15に送信することができ、このネットワーク15を通じてストレージユニット14−1から14−4に到達することができる。ネットワーク15は、イントラネット、インターネット、または単一のロケーションからアクセス可能な異なるロケーションにストレージデバイスを有することができる任意の種類のネットワークとすることができる。
図12は、ホログラフィックデータを格納するために世界中の複数のストレージデバイスを使用することを示す図である。すでに説明されているように、「ホログラフィックデータ」という言い回しは、光学的ホログラムの類推から便宜上使用されているにすぎない。この表現は、決して本開示の範囲を制限することを意図していない。図12では、ホログラフィックデータは、データブロック60−1から60−8を含むことができる。これらのデータブロック60−1から60−8は、インターネットを通じて、たとえば、各データセンターに送信され、そこに格納されうる。データセンターは、世界中に散らばっているものとしてよい。データセンターのうちのどれか1つからデータが盗まれたとしても、ホログラフィックデータを作成するために使用されている最大長数列は知りえない。そのような最大長数列は、可能な最大長数列の数が天文学的に大きなものとなりうるため識別が困難であると思われる。さらに、データブロックは、ホログラフィックデータ全体の一部だけ提供されるので、1つのデータブロックからデータを再構築することが防止されうる。このような場合、最大長数列が識別されたとしても、データの盗まれた部分のみからデータ全体を再構築することはできない。さらに、ホログラフィックデータの一部がテロリストの攻撃、火災、ウイルスの攻撃、自然災害、または同様のものによって破壊されたとしても、残りのデータから元のデータを復元することができる。
図13は、ホログラムメモリを使用するコンピュータシステムの一例を示す図面である。図13に例示されているコンピュータシステムは、CPU 71、RAM 72、ROM 73、IO I/F(つまり、入出力インターフェース)74、キーボードおよびマウス75、ディスプレイ76、バス77、IO I/F 78、およびハードディスクドライブ79を備えることができる。キーボードおよびマウス75は、ユーザインターフェースを備え、コンピュータシステムを操作するためのさまざまなコマンドおよびデータ要求または同様の要求に応えるユーザ応答を受け取ることができる。ディスプレイ76は、液晶ディスプレイまたは同様のものとすることができる。ディスプレイ76は、コンピュータシステムによって実行される処理の結果を表示することができる。ディスプレイ76は、ユーザがコンピュータシステムと通信することを可能にするさまざまなデータを表示することもできる。ハードディスクドライブ79は、ストレージデバイスの一例にすぎず、代わりに、USBフラッシュドライブ、メモリカード、コンパクトディスク用のディスクドライブ、デジタル多用途ディスクなどの他の種類のストレージデバイスとすることもできる。
ホログラフィックデータを作成して、ハードディスクドライブ79に格納するために使用されるコンピュータプログラムをハードディスクドライブ79に用意することができる。キーボードおよびマウス75を通じてプログラム実行のためユーザ命令が入力された後、CPU 71は、プログラムをハードディスクドライブ79からRAM 72にロードすることができる。CPU 71は、作業領域としてRAM 72の利用可能なメモリ空間を使用することによってRAM 72にロードされたプログラムを実行することができ、そのような必要性が生じたときにユーザと通信しながら処理を続けることができる。ROM 73は、そこに、コンピュータシステムの基本オペレーションを制御することを目的とする制御プログラムを格納することができる。
I/O IF 78は、乱数列生成器10に対応するホログラムユニット81、相互相関ユニット11、書き込み/読み出しユニット12、および図1に例示されている制御ユニット13を備えることができる。ホログラムユニット81が備えられていないとしても、ホログラムデータは、CPU 71によって生成され、CPU 71は計算により最大長数列などの乱数列を生成することができ、相互相関を計算する。ホログラムユニット81またはCPU 71によって生成されるホログラフィックデータは、ハードディスクドライブ79に格納することができる。
図14は、安全な方法でホログラフィックデータを格納するプロセスを示すフローチャートである。ステップS1において、CPU 71は、I/O IF 78を通じてハードディスクドライブ79にホログラフィックデータ85を格納することができる。ホログラフィックデータ85は、FAT(ファイルアロケーションテーブル)82を使用するオペレーティングシステムの制御の下で管理されうるデータファイルとして格納されうる。ステップS2において、CPU 71は、I/O IF 78を通じてハードディスクドライブ79のFAT 82からホログラフィックデータ85のFATエントリを読み出すことができる。ホログラフィックデータ85のFATエントリは、ホログラフィックデータ85が格納されうるクラスタ位置を示すことができる。この構成で使用されるFATは、非限定的な例であり、別の種類のインデックスをFATの代わりに使用することができる。
ステップS3において、ホログラフィックデータ85のFATエントリが、暗号化プロセスを使用してCPU 71によって暗号化されうる。十分なセキュリティを確保できる限り、どのような種類の暗号化プロセスをも使用できる。ステップS4において、CPU 71は、I/O IF 78を通じてハードディスクドライブ79に暗号化されたFATエントリを格納することができる。ステップS4において、CPU 71は、ステップS1で作成されうるホログラフィックデータファイルを削除することができる。つまり、オペレーティングシステムが、FAT 82内のホログラフィックデータ85のFATエントリを削除することができるが、この時点ではホログラフィックデータ85を削除することはできない。この後、FAT 82は、他のデータ83および84のクラスタ位置を示すことができるが、ホログラフィックデータ85のクラスタ位置を示すことはできない。
上で説明されている例では、FAT 82におけるホログラフィックデータ85のFATエントリは、ホログラフィックデータ85を書き込んだ後に削除されうる。あるいは、ホログラフィックデータ85を、FAT内に対応するエントリを作らずにハードディスクドライブ79に書き込むことができる。つまり、ホログラフィックデータ85は、特別な書き込みコマンド、システムコール、または同様のものを使用することによって格納され、ホログラフィックデータファイルは、FAT 82を使用するファイルシステムの下では作成されない。ホログラフィックデータをこのようにして書き込むときに、ホログラフィックデータを格納するために使用される記憶領域がオペレーティングシステムによって現在使用されていないことを保証するためにFATにそれでもアクセスできる。
図14に示されているプロセスの後に、ホログラフィックデータファイルが存在しえないためホログラフィックデータ85にアクセスする直接的な手段はありえない。オペレーティングシステムは、ホログラフィックデータ85の存在を認識できないため、オペレーティングシステムは、ホログラフィックデータ85が格納されうるハードディスクドライブ79のいくつかの記憶領域を上書きすることがある。このような上書きオペレーションは、ホログラフィックデータ85の一部を破壊する可能性がある。一定期間の経過後、ホログラフィックデータ85の多くの部分が喪失する可能性がある。しかし、ホログラフィックデータ85はロバスト性を有しているため、ホログラフィックデータ85を、それでも、残りの部分から再構築することができる場合がある。
図15は、図14に例示されているプロセスによって格納されるホログラフィックデータ85を復元するためのプロセスを示すフローチャートである。ステップS1において、CPU 71は、I/O IF 78を通じてハードディスクドライブ79から暗号化されたデータを取り出すことができる。つまり、図14のステップS4で格納されている暗号化されたFATエントリを取り出すことができる。ステップS2において、CPU 71は、暗号化されたデータを復号してホログラフィックデータ85のFATエントリを取得することができる。FATエントリは、ホログラフィックデータ85が格納されうるクラスタ位置を示すことができる。ステップS3において、CPU 71は、FATエントリによって指示されたクラスタ位置にアクセスして、ハードディスクドライブ79からホログラフィックデータ85を読み出すことができる。取り出されたホログラフィックデータ85は、すでに説明されている再構築プロセス(つまり、相互相関プロセス)を使用することによって再構築されうる。
上で説明されている配置構成をとることで、ハッカーおよびコンピュータウイルスは、ホログラムデータが存在する場所を見つけ出すことができない。これは、ハッキングおよびコンピュータウイルスからの保護対策となりうる。上で説明されたように、ホログラフィックデータの一部は、時間の経過とともに破壊されることがある。この点を考慮して、定期的データリフレッシュオペレーションを実行するとよい。つまり、図15のプロセスを実行し、その後、元のデータを再構築し、その再構築されたデータを再びホログラフィックデータに変換し、次いで、図14のプロセスを実行することによって安全に格納することができる。このようなリフレッシュオペレーションは、一定間隔で実行するとよい。図14よび図15のプロセスを、ホログラフィックデータが図11または図12に例示されているような複数のデータストレージデバイス上に分配されうる構成に適用することができる。
図13に例示されているコンピュータシステムは、より高い誤り率を有するストレージデバイスに使用されうる。つまり、ハードディスクドライブ79は、より高い誤り率を有するそのようなストレージデバイスであるか、またはそのようなストレージデバイスによって置き換えられうる。ストレージデバイスの例は、ウルトラファイン(ultra-fine capacitor)DRAM、磁気記録および読取ヘッドのギャップが狭いHDD、および誤りの確率がメモリ容量の増加とともに高くなりうる他のすべてのデバイスを含みうる。ホログラフィックデータをデータ格納形式として使用することにより、誤り率の増大に対してロバストなデータストレージを実現することが可能になりうる。誤りは、パリティチェック、チェックサム、または他の従来の技術を使用することによって検出されうる。誤りが検出されうるデータは、ロストデータとして取り扱うことができる。ホログラフィックデータのロバスト性は、ホログラフィックデータ列の長さとデータ入力列の長さとの比を変化させることによって動的に変えることができる。
本発明は、実施形態に関して説明されているけれども、本発明はこれらの実施形態に限定されず、付属の請求項で述べられているように本発明の範囲から逸脱することなく、さまざまな変更および修正を加えられる。
本開示で「応答する」または「応答して」という言い回しを使用している場合、これは、特定の特徴および/または構造のみへの応答性に限定されない。特徴は、別の特徴および/または構造に応答性を有していることもあり、またその特徴および/または構造内に配置される場合もある。さらに、「結合される」または「応答する」または「応答して」または「通信する」などの言い回しまたは語句は、本明細書で、または請求項において使用されている場合、これらの言い回しまたは語句は、広い意味で解釈すべきである。たとえば、「に結合されている」という言い回しは、この言い回しが使用される文脈に適した形で通信可能なように、電気的に、および/または動作可能に結合されることを指す。
前記の詳細な説明のいくつかの部分は、コンピュータのメモリなどの、コンピューティングシステムのメモリ内に格納されているデータビットまたは2値デジタル信号に対するオペレーションのアルゴリズムまたはシンボル表現に関して提示されている。これらのアルゴリズムによる記述または表現は、作業の内容を当業者に伝えるためにデータ処理の技術者によって使用される技術のいくつかの例である。アルゴリズムは、本明細書では、また一般的に、所望の結果をもたらす自己矛盾のない一連のオペレーションもしくは類似の処理であると考えられる。この文脈において、オペレーションもしくは処理は、物理的量の物理的操作を伴う。典型的には、必ずというわけではないけれども、このような量は、格納、転送、組み合わせ、比較、および他の何らかの形の操作が可能な電気的または磁気的信号の形態をとることができる。主に共通使用の理由から、このような信号をビット、データ、値、要素、記号、文字、語、数、数詞、または同様のものとして参照することがときには都合がよいことが実証されている。しかし、これらの語および類似の語はすべて、適切な物理的量に関連付けられ、単に便利なラベルにすぎないことは理解されるべきである。以下の説明から明らかなように特に断りのない限り、本明細書全体を通して、「処理」、「コンピューティング」、「計算」、「決定(判定)」、または同様の語句などの語を使用する説明では、コンピューティングデバイスのメモリ、レジスタ、または他の情報ストレージデバイス、送信デバイス、もしくは表示デバイス内の物理的、電子的、または磁気的な量として表されるデータを操作もしくは変換する、コンピューティングデバイスのアクションもしくはプロセスを指すことは理解される。
前述の詳細な説明では、ブロック図、フローチャート、および/または例の使用によって、装置および/またはプロセスのさまざまな実施形態を説明してきた。そのようなブロック図、フローチャート、および/または例が1つまたは複数の機能および/または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および/または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組み合わせにより、個別におよび/または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、1つまたは複数のコンピュータ上で動作する1つまたは複数のコンピュータプログラムとして(たとえば、1つまたは複数のコンピュータシステム上で動作する1つまたは複数のプログラムとして)、1つまたは複数のプロセッサ上で動作する1つまたは複数のプログラムとして(たとえば、1つまたは複数のマイクロプロセッサ上で動作する1つまたは複数のプログラムとして)、ファームウェアとして、あるいは実質上それらの任意の組み合わせとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに/またはソフトウェアおよび/もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。さらに、本明細書に記載された主題のメカニズムをさまざまな形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フレキシブルディスク、ハードディスクドライブ(HDD)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、デジタルテープ、コンピュータメモリ、などの記録可能なタイプの媒体、ならびに、デジタル通信媒体および/またはアナログ通信媒体(たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど)の通信タイプの媒体が含まれるが、それらには限定されない。
本明細書で説明したやり方で装置および/またはプロセスを記載し、その後そのように記載された装置および/またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および/またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインターフェース、およびアプリケーションプログラムのうちの1つもしくは複数、タッチパッドもしくはスクリーンなどの1つもしくは複数の相互作用装置、ならびに/またはフィードバックループおよびコントロールモータを含むコントロールシステム(たとえば、位置検知用および/もしくは速度検知用フィードバック、コンポーネントの移動用および/もしくは数量の調整用コントロールモータ)を含み得ることを、当業者は理解するであろう。通常のデータ処理システムは、データコンピューティング/通信システムおよび/またはネットワークコンピューティング/通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。
本明細書に記載された主題は、さまざまなコンポーネントをしばしば例示しており、これらのコンポーネントは、他のさまざまなコンポーネントに包含されるか、または他のさまざまなコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例示にすぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の2つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されていると見なすこともでき、そのように関連付け可能な任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」と見なすこともできる。動作可能に結合できる場合の具体例には、物理的にかみ合わせ可能な、および/もしくは物理的に相互作用するコンポーネント、ならびに/またはワイヤレスに相互作用可能な、および/もしくはワイヤレスに相互作用するコンポーネント、ならびに/または論理的に相互作用する、および/もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。
本明細書における実質的にすべての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。さまざまな単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
通常、本明細書において、特に添付の特許請求の範囲(たとえば、添付の特許請求の範囲の本体部)において使用される用語は、全体を通じて「オープンな(open)」用語として意図されていることが、当業者には理解されよう(たとえば、用語「含む(including)」は、「含むがそれに限定されない(including but not limited to)」と解釈されるべきであり、用語「有する(having)」は、「少なくとも有する(having at least)」と解釈されるべきであり、用語「含む(includes)」は、「含むがそれに限定されない(includes but is not limited to)」と解釈されるべきである、など)。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも1つの(at least one)」および「1つまたは複数の(one or more)」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含む場合であっても、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に1つのそのような記載を含む実施形態に限定する、ということを示唆していると解釈されるべきではない(たとえば、「a」および/または「an」は、通常、「少なくとも1つの」または「1つまたは複数の」を意味すると解釈されるべきである)。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、通常、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう(たとえば、他の修飾語なしでの「2つの記載(two recitations)」の単なる記載は、通常、少なくとも2つの記載、または2つ以上の記載を意味する)。さらに、「A、BおよびC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、およびCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。「A、B、またはC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、またはCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。2つ以上の代替用語を提示する事実上いかなる離接する語および/または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方(one of the terms)、当該用語のいずれか(either of the terms)、または両方の用語(both terms)を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「AまたはB」は、「A」または「B」あるいは「AおよびB」の可能性を含むことが理解されよう。
また、「最適化する」という言い回しは、最大化および/または最小化を含みうることも理解されるであろう。本明細書で使用されているような「最小化」および/または同様の言い回しは、大域的最小、極小、近似的な大域的最小、および/または近似的な極小を含みうる。同様に、本明細書で使用されているような「最大化」および/または同様の言い回しは、大域的最大、極大、近似的な大域的最大、および/または近似的な極大を含みうることも理解されるであろう。
本明細書において「実装形態」、「一実装形態」、「いくつかの実装形態」、または「他の実装形態」と記述されている場合、これは、1つまたは複数の実装に関して説明されている特定の特徴、構造、または特性が少なくともいくつかの実装に含まれうるが、すべての実装形態に必ずしも含まれるわけではないことを意味するものとすることができる。前記の説明に「実装形態」、「一実装形態」、または「いくつかの実装形態」とさまざまな形で記載されている場合も、必ずしも同じ実装形態をすべて指しているわけではない。
本明細書ではいくつかの例示的な技術がさまざまな方法およびシステムを使用して説明され図示されているが、当業者であれば、請求項に記載の発明対象範囲から逸脱することなく、さまざまな他の修正を加え、同等物を代用することができることを理解するであろう。それに加えて、本明細書で説明されている中心的概念から逸脱することなく、さまざまな修正を行って、特定の状況を請求項に記載の発明対象の教示に適合させることができる。したがって、請求項に記載の発明対象は、開示されている特定の例に限定されないことが意図されているが、そのような請求項に記載の発明対象は、付属の請求項、およびその同等物の範囲内にあるすべての実装形態も含むことが意図されている。

Claims (22)

  1. 疑似乱数列を含む第1の数列を生成するように構成された数列生成器と、
    前記第1の数列と第3の数列との相互相関を含む第2の数列を生成するように構成された相互相関ユニットと、
    前記第2の数列をメモリ内に書き込み、前記メモリから前記第2の数列を読み出すように構成された書き込み/読み出しユニットとを備え、
    前記相互相関ユニットは、前記第1の数列と前記メモリから読み出された前記第2の数列との相互相関を求めることによって、および2つの閾値と、前記第1の数列と前記メモリから読み出された前記第2の数列との前記相互相関とを比較することによって、前記第3の数列を再構築するようにさらに構成され、
    前記数列生成器は、第1の数列として使用される、最大長数列を生成するように構成されたシフトレジスタを備え、前記数列生成器は、1つまたは複数のタップ位置および前記シフトレジスタのいくつかのカスケード接続されたレジスタのうちの少なくとも1つを変更し、それにより、制御データに応答して前記第1の数列の長さおよびパターンを変更するように構成され、
    前記書き込み/読み出しユニットは、前記メモリから読み出された前記第2の数列を前記相互相関ユニットによって生成される第5の数列に加えることによって第4の数列を生成するように構成された加算器を備え、前記書き込み/読み出しユニットは、前記第4の数列を前記メモリに書き込み、前記メモリ内の前記第2の数列を置き換えるようにさらに構成され、
    前記相互相関ユニットは、
    前記第3の数列を第1のビット系列として格納するように構成された入力レジスタと、
    前記第1の数列をシフトするように構成されたカスケード接続されたレジスタを備えるシフトレジスタと、
    前記入力レジスタ内に格納されている前記第1のビット系列と前記シフトレジスタ内に格納されている第2のビット系列とのビット毎の乗算を実行するように構成された乗算ユニットと、
    前記ビット毎の乗算から結果として得られる乗算されたすべてのビットの総和を求めるように構成された加算ユニットとを備え、
    前記乗算ユニットは、前記シフトレジスタ内に格納されている各ビットと前記メモリから読み出された単一の数との乗算を実行して乗算の複数の積を生成するようにさらに構成され、前記相互相関ユニットは、前記複数の乗算の積との一対一対応関係を持つように形成される複数の第2の加算ユニットをさらに備え、前記第2の加算ユニットのうちの少なくとも1つは、前記複数の乗算の積のうちの対応する1つと前記第2の加算ユニットの前記少なくとも1つによって生成される直前の和との総和を生成するように構成され、
    前記書き込み/読み出しユニットは、前記第2の数列の第1の部分を第1のストレージデバイス内に書き込み、前記第2の数列の第2の部分を第2のストレージデバイス内に書き込むようにさらに構成され、前記第1のストレージデバイスおよび前記第2のストレージデバイスは、前記メモリの少なくとも一部を含み、
    前記書き込み/読み出しユニットは、前記第2の数列の前記第1の部分および前記第2の数列の前記第2の部分をネットワーク経由で前記第1のストレージデバイスおよび前記第2のストレージデバイスに送信するようにさらに構成されるデータを格納するためのデバイス。
  2. 疑似乱数列を含む第1の数列を生成するように構成された数列生成器と、
    前記第1の数列と第3の数列との相互相関を含む第2の数列を生成するように構成された相互相関ユニットと、
    前記第2の数列をメモリに書き込み、前記メモリから前記第2の数列を読み出すように構成された書き込み/読み出しユニットとを備え、
    前記相互相関ユニットは、前記第1の数列と前記メモリから読み出された前記第2の数列との相互相関を求めることによって前記第3の数列を再構築するようにさらに構成されるデータを格納するためのデバイス。
  3. 前記数列生成器は、最大長数列を生成するように構成されたシフトレジスタを備え、前記最大長数列は、前記第1の数列を含む請求項2に記載のデバイス。
  4. 前記数列生成器は、制御データに応答して前記第1の数列の長さおよびパターンを変更するように構成される請求項2に記載のデバイス。
  5. 前記数列生成器は、制御データに応答して1つまたは複数のタップ位置および前記シフトレジスタのいくつかのカスケード接続されたレジスタのうちの少なくとも1つを変更するように構成される請求項3に記載のデバイス。
  6. 前記書き込み/読み出しユニットは、前記メモリから読み出された前記第2の数列を前記相互相関ユニットによって生成される第5の数列に加えることによって第4の数列を生成するように構成された加算器を備え、前記書き込み/読み出しユニットは、前記第4の数列を前記メモリに書き込み、前記メモリ内の前記第2の数列を置き換えるようにさらに構成される請求項2に記載のデバイス。
  7. 前記相互相関ユニットは、2つの閾値と、前記第1の数列と前記メモリから読み出された前記第2の数列との前記相互相関とを比較することによって、前記第3の数列を再構築するように構成される請求項2に記載のデバイス。
  8. 前記相互相関ユニットは、
    前記第3の数列を第1のビット系列として格納するように構成された入力レジスタと、
    前記第1の数列をシフトするように構成されたカスケード接続されたレジスタを備えるシフトレジスタと、
    前記入力レジスタ内に格納されている前記第1のビット系列と前記シフトレジスタ内に格納されている第2のビット系列とのビット毎の乗算を実行するように構成された乗算ユニットと、
    前記ビット毎の乗算から結果として得られる乗算されたすべてのビットの総和を求めるように構成された加算ユニットとを備える請求項2に記載のデバイス。
  9. 前記乗算ユニットは、前記シフトレジスタ内に格納されている各ビットと前記メモリから読み出された単一の数との乗算を実行して乗算の複数の積を生成するようにさらに構成され、前記相互相関ユニットは、前記複数の乗算の積との一対一対応関係で構成される複数の第2の加算ユニットをさらに備え、前記第2の加算ユニットのうちの少なくとも1つは、前記複数の乗算の積のうちの対応する1つと前記第2の加算ユニットの前記少なくとも1つによって生成される直前の和との総和を生成するように構成される請求項8に記載のデバイス。
  10. 前記メモリとして使用されるストレージユニットをさらに備える請求項2に記載のデバイス。
  11. 前記書き込み/読み出しユニットは、前記第2の数列の第1の部分を第1のストレージデバイス内に書き込み、前記第2の数列の第2の部分を第2のストレージデバイス内に書き込むようにさらに構成され、前記第1のストレージデバイスおよび前記第2のストレージデバイスは、前記メモリの少なくとも一部を含む請求項2に記載のデバイス。
  12. 前記書き込み/読み出しユニットは、前記第2の数列の前記第1の部分および前記第2の数列の前記第2の部分をネットワーク経由で前記第1のストレージデバイスおよび前記第2のストレージデバイスに送信するようにさらに構成される請求項11に記載のデバイス。
  13. 疑似乱数列を含む第1の数列を生成することと、
    前記第1の数列と第3の数列との相互相関である第2の数列を生成することと、
    前記第2の数列をメモリに書き込むことと、
    前記第2の数列を前記メモリから読み出すことと、
    前記第1の数列と前記メモリから読み出された前記第2の数列との相互相関を求めることによって前記第3の数列を再構築することとを含むデータを書き込み、読み出す方法。
  14. 第1の数列を前記生成することは、最大長数列を生成するように構成されたシフトレジスタを使用し、前記最大長数列は、前記第1の数列を含む請求項13に記載の方法。
  15. 制御データに応答して前記第1の数列の長さおよびパターンを変更することをさらに含む請求項13に記載の方法。
  16. 前記メモリから読み出された前記第2の数列を前記相互相関ユニットによって生成される第5の数列に加えることによって第4の数列を生成ことと、
    前記第4の数列を前記メモリに書き込んで、前記メモリ内の前記第2の数列を置き換えることとをさらに含む請求項13に記載の方法。
  17. 前記第3の数列を再構築することは、2つの閾値と、前記第1の数列と前記メモリから読み出された前記第2の数列との前記相互相関とを比較することによって、前記第3の数列を再構築することを含む請求項13に記載の方法。
  18. 前記第2の数列をメモリに書き込むことは、
    前記第2の数列の第1の部分を第1のストレージデバイスに書き込むことと、
    前記第2の数列の第2の部分を第2のストレージデバイスに書き込むこととを含み、前記第1のストレージデバイスおよび前記第2のストレージデバイスは、前記メモリの少なくとも一部を含む請求項13に記載の方法。
  19. 前記第2の数列をメモリに書き込むことは、前記第2の数列の前記第1の部分および前記第2の数列の前記第2の部分をネットワーク経由で前記第1のストレージデバイスおよび前記第2のストレージデバイスに送信することを含む請求項18に記載の方法。
  20. 疑似乱数列を含む第1の数列を生成することと、
    前記第1の数列と第3の数列との相互相関を含む第2の数列を生成することと、
    前記第2の数列をメモリに書き込み、前記第2の数列の格納位置を示すインデックスが前記メモリ内に存在しないようにすることとを含むデータを格納する方法。
  21. 前記第2の数列が前記メモリに書き込まれる位置を識別することと、
    前記第2の数列を前記メモリから読み出すことを、前記メモリ内の前記位置にアクセスすることによって行うことと、
    前記第1の数列と前記メモリから読み出された前記第2の数列との相互相関を求めることによって、前記第3の数列を再構築することとをさらに含む請求項20に記載の方法。
  22. 第2の数列が前記メモリに書き込まれる前記位置を暗号化することと、
    前記暗号化された位置を前記メモリ内に格納することとをさらに含み、
    位置を識別することは、
    前記暗号化された位置を前記メモリから取り出すことと、
    前記取り出された暗号化された位置を復号して前記位置を識別することとを含む請求項21に記載の方法。
JP2012558123A 2010-07-02 2010-07-02 疑似乱数列を使用することによってデータを格納するためのデバイス Expired - Fee Related JP5787909B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/004357 WO2012001747A1 (en) 2010-07-02 2010-07-02 Device for storing data by utilizing pseudorandom number sequence

Publications (2)

Publication Number Publication Date
JP2013539149A true JP2013539149A (ja) 2013-10-17
JP5787909B2 JP5787909B2 (ja) 2015-09-30

Family

ID=45400634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012558123A Expired - Fee Related JP5787909B2 (ja) 2010-07-02 2010-07-02 疑似乱数列を使用することによってデータを格納するためのデバイス

Country Status (4)

Country Link
US (1) US8732436B2 (ja)
JP (1) JP5787909B2 (ja)
KR (1) KR101526515B1 (ja)
WO (1) WO2012001747A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180082671A (ko) * 2017-01-09 2018-07-19 순천향대학교 산학협력단 웹 스토리지의 데이터 암호화 및 복호화 장치 및 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8683280B2 (en) * 2011-04-19 2014-03-25 Mentor Graphics Corporation Test generator for low power built-in self-test
US20150143197A1 (en) * 2013-07-10 2015-05-21 Shmuel T. Klein Codes for Enhancing the Repeated Use of Flash Memory
US9934094B2 (en) * 2015-10-30 2018-04-03 Seagate Technology Llc Process for verification of randomly generated I/O requests
US11526279B2 (en) * 2020-05-12 2022-12-13 Intel Corporation Technologies for performing column architecture-aware scrambling
KR102423479B1 (ko) * 2022-01-24 2022-07-21 유호전기공업주식회사 의사랜덤데이터를 이용한 고정확도의 온도 판독장치 및 그 방법
KR102423481B1 (ko) * 2022-01-24 2022-07-21 유호전기공업주식회사 의사랜덤데이터를 이용한 고정확도의 saw 온도센서 시스템을 구비한 수배전반
KR102423480B1 (ko) * 2022-01-24 2022-07-21 유호전기공업주식회사 의사랜덤데이터를 이용한 고정확도의 saw 온도센서 시스템

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03201049A (ja) * 1989-12-27 1991-09-02 Daikin Ind Ltd メモリ・アクセス方法およびその装置
JPH06276067A (ja) * 1993-03-18 1994-09-30 Anritsu Corp 擬似ランダム信号発生装置
JP2001155421A (ja) * 1999-11-29 2001-06-08 Victor Co Of Japan Ltd 記録装置、記録方法、再生装置、再生方法及び記録媒体
JP2001357533A (ja) * 1999-07-07 2001-12-26 Matsushita Electric Ind Co Ltd 光ディスク、その記録装置、記録方法及び再生装置
JP2007233529A (ja) * 2006-02-28 2007-09-13 Sun Corp コンピュータ端末装置に記憶されたデータを保護するためのデータセキュリティシステム
WO2008065725A1 (fr) * 2006-11-29 2008-06-05 Universal Solution Systems Inc. Système serveur de fichiers sécurisés

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064586A (en) * 1998-12-31 2000-05-16 Siros Technologies, Inc. Method for holographic data storage and retrieval
JP4213589B2 (ja) 2001-10-25 2009-01-21 パナソニック株式会社 光ディスク記録方法及び光ディスク再生方法
US6865660B2 (en) * 2002-06-28 2005-03-08 Micron Technology, Inc. Method and apparatus for generating deterministic, non-repeating, pseudo-random addresses
JP2006050142A (ja) 2004-08-03 2006-02-16 Media Glue Corp 放送用信号分散記憶装置および放送用信号送信装置
FR2893801A1 (fr) * 2005-11-21 2007-05-25 France Telecom Procede de diffusion maitrisee d'informations
US8489659B2 (en) * 2007-10-19 2013-07-16 Schneider Electric USA, Inc. Pseudorandom number generation
US8725967B2 (en) * 2008-08-08 2014-05-13 Amazon Technologies, Inc. Providing executing programs with access to stored block data of others

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03201049A (ja) * 1989-12-27 1991-09-02 Daikin Ind Ltd メモリ・アクセス方法およびその装置
JPH06276067A (ja) * 1993-03-18 1994-09-30 Anritsu Corp 擬似ランダム信号発生装置
JP2001357533A (ja) * 1999-07-07 2001-12-26 Matsushita Electric Ind Co Ltd 光ディスク、その記録装置、記録方法及び再生装置
JP2001155421A (ja) * 1999-11-29 2001-06-08 Victor Co Of Japan Ltd 記録装置、記録方法、再生装置、再生方法及び記録媒体
JP2007233529A (ja) * 2006-02-28 2007-09-13 Sun Corp コンピュータ端末装置に記憶されたデータを保護するためのデータセキュリティシステム
WO2008065725A1 (fr) * 2006-11-29 2008-06-05 Universal Solution Systems Inc. Système serveur de fichiers sécurisés

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180082671A (ko) * 2017-01-09 2018-07-19 순천향대학교 산학협력단 웹 스토리지의 데이터 암호화 및 복호화 장치 및 방법
KR101978384B1 (ko) 2017-01-09 2019-05-15 순천향대학교 산학협력단 웹 스토리지의 데이터 암호화 및 복호화 장치 및 방법

Also Published As

Publication number Publication date
US20120005455A1 (en) 2012-01-05
KR20130036117A (ko) 2013-04-10
US8732436B2 (en) 2014-05-20
KR101526515B1 (ko) 2015-06-05
WO2012001747A1 (en) 2012-01-05
JP5787909B2 (ja) 2015-09-30

Similar Documents

Publication Publication Date Title
JP5787909B2 (ja) 疑似乱数列を使用することによってデータを格納するためのデバイス
EP2684134B1 (en) Programmable data storage management
US10635400B2 (en) Seed generation
KR101577886B1 (ko) 무결성 검사 및 리플레이 공격들에 대한 보호를 이용하는 메모리 암호화를 위한 방법 및 장치
TWI417885B (zh) 非揮發記憶體中以頁及區塊為基礎之置亂方法
US10114692B2 (en) High/low energy zone data storage
JP5341896B2 (ja) 自己回復形不揮発性メモリ
US9424128B2 (en) Method and apparatus for flexible RAID in SSD
KR100928882B1 (ko) Raid 장치 및 갈로아체를 이용한 데이터 복원 장치
KR20090080032A (ko) 저장 장치들에 대한 보안을 제공하는 방법 및 시스템
US10698839B2 (en) Seed scrambling
US9959077B2 (en) Data randomization for flash memory
US20180253243A1 (en) Obfuscation-enhanced memory encryption
US9235532B2 (en) Secure storage of full disk encryption keys
KR20150043127A (ko) 메모리 시스템에서의 코딩 방법 및 디코딩 방법
GB2530043A (en) Device and method for storing data in a plurality of multi-level cell memory chips
CN110431531B (zh) 存储控制器、数据处理芯片及数据处理方法
JP2008140104A (ja) メモリシステム及びメモリアクセス方法
TW202420088A (zh) 資料加密的錯誤偵測裝置
JP2020027473A (ja) データ処理装置及びデータ処理プログラム
JP6074412B2 (ja) 偽vfoパターンの検出を軽減する装置、方法、およびプログラム
US20230068302A1 (en) Memory device and method for data encryption/decryption of memory device
JP2018206175A (ja) コンパイラ、情報処理装置及びコンパイル方法
US20230128638A1 (en) Method of operating storage device and method of operating storage system using the same
CN117891432A (zh) 一种随机数生成方法、装置及电子设备

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20140513

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140530

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140630

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150601

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: 20150630

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150728

R150 Certificate of patent or registration of utility model

Ref document number: 5787909

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees