(57)【要約】【課題】半導体記憶素子群のアレイにリアルタイムストリーミングを行う装置を提案すること。【解決手段】本装置は、個々のデータレートのデータストリームからのデータを並列的に受信する手段と、受信したデータをバッファリングする入力キャッシュと、入力バッファから半導体記憶素子群へデータを転送するバスシステムと、ページ受信期間t＿r、ページ書き込み期間wrt＿tm、データ量p及び各自のデータレートを利用して、バスシステムを動的に制御するように構築されたコントローラとを有し、第１のデータストリームから受信したデータは、半導体記憶素子群のアレイ内の第１サブセットをなす半導体記憶素子群のみに転送され、少なくとも第２のデータストリームから受信したデータは、半導体記憶素子群のアレイ内の別の第２サブセットをなす半導体記憶素子群のみに転送される。【選択図】図１
2010287239.tif 000002
【特許請求の範囲】
【請求項１】
半導体記憶素子群のアレイにリアルタイムストリーミングを行う装置であって、該半導体記憶素子群の各々は、n個の並列的なアドレス指定可能な半導体記憶素子を有し、該半導体記憶素子各々は１つ以上の半導体メモリユニットを有し、該半導体メモリユニットはページ受信機間t＿rの間に或るデータ量pをバッファリングするページバッファを有し、該半導体メモリユニット各々は、前記データ量pを前記ページバッファから前記半導体記憶素子へページ書き込み時間wrt＿tmの間に書き込み、リアルタイムストリーミングを行う当該装置は、
各自のデータレートとともに受信される高々k個のデータストリームから並列的にデータを受信する受信手段と、
受信したデータをバッファリングする入力バッファを有し、
前記入力バッファから、前記半導体記憶素子群へデータを転送するｎ個の並列バスを有するバスシステムと、
前記バスシステムを制御するコントローラと
を有し、前記コントローラにより、第１のデータストリームから受信したデータは、前記半導体記憶素子群のアレイ内の第１部分をなす半導体記憶素子群のみに転送され、少なくとも第２のデータストリームから受信したデータは、前記半導体記憶素子群のアレイ内の別の第２部分をなす半導体記憶素子群のみに転送され、
前記コントローラは、前記ページ受信期間t＿r、前記ページ書き込み期間wrt＿tm、前記データ量p及び各自のデータレートを利用して、前記バスシステムがデータをどの半導体記憶素子群へ転送するかを動的に制御する、装置。
【請求項２】
前記バスシステムが、前記半導体記憶素子群にアクセスするように構築されており、前記コントローラは、現在アクセスしている記憶素子群について、
現在アクセスしている記憶素子群へ最後にデータを転送して以来、ページ書き込み時間が経過しているか否かを判別し、経過していた場合、現在アクセスしている記憶素子群が前記第１部分又は前記第２部分に属するか否かを判別し、
判別された前記第１部分又は前記第２部分に対応するデータストリームから受信され前記バッファに蓄積したデータ量が、少なくとも１ページ分に達するか否かを判定し、
達していた場合、前記コントローラは、前記バッファに蓄積した１ページ分のデータを、対応するデータストリームから現在アクセスしている記憶素子群へ、前記バスシステムが転送することを引き起こし、
達していなかった場合、前記コントローラは、シーケンスにおける次の半導体記憶素子群に前記バスシステムがアクセスすることを引き起こす、請求項１記載の装置。
【請求項３】
リアルタイムストリーミング装置のバスシステムを制御するバス制御方法であって、前記バスシステムは、入力バッファから、半導体記憶素子群のアレイへデータを転送し、該半導体記憶素子群のアレイへ２つ以上のデータストリームをストリーミングし、前記半導体記憶素子群は前記バスシステムにより連続的にアクセスされ、当該方法は、
現在アクセスしている記憶素子群について、アクセスしている記憶素子群へ最後にデータを転送して以来、ページ書き込み時間が経過しているか否かを判別し、
経過していた場合、現在アクセスしている記憶素子群が、前記半導体記憶素子群の前記アレイにおける第１部分又は第２部分に属するか否かを判別するステップを有し、該第１部分は第１のデータストリームを保存するように指定され、該第２部分は少なくとも第２のデータストリームを保存するように指定され、
当該方法は、判別された前記第１部分又は前記第２部分に対応するデータストリームから受信され前記バッファに蓄積されたデータ量が、少なくとも１ページ分に達するか否かを判定し、
達していた場合にのみ、前記バッファに蓄積された少なくとも１ページ分のデータを、判別された部分に対して指定されているデータストリームから現在アクセスしている記憶素子群へ、前記バスシステムが転送することを引き起こし、
次の半導体記憶素子群に前記バスシステムがアクセスすることを引き起こすステップ
を有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶素子のメモリデバイスアレイに対する並列的な２つ以上のリアルタイムストリーミングを行う技術分野に関連する。
【背景技術】
【０００２】
ディジタルビデオカメラは、例えば相補型金属酸化物半導体（CMOS）又は電荷結合素子（CCD）のような画像捕捉装置を用いて、あるフレームレート及びあるフレーム解像度でフレームを取り込む。フレームレート及びフレーム解像度は、捕捉データレート（capture  data  rate）を決定する。
【０００３】
専門的な（プロフェッショナルな）用途では、フレームレート及び解像度は高い値である必要がある。さらに、生放送（live  production）やディジタル映画作成のワークフローでは、圧縮（compression）が行われていないのが一般的である。したがって、プロフェッショナルビデオ機器の捕捉データレート、さらにはそのようなプロフェッショナルビデオ機器により生成されたデータストリームのデータレートも非常に高い。
【０００４】
取り込まれたフレームは保存される必要がある。リアルタイムで保存する場合、保存データレートは、捕捉データレートに合致する必要がある。しかしながら、半導体記憶素子（例えば、フラッシュメモリ、相変化（phase−changed）ランダムアクセスメモリ又は磁気抵抗ランダムアクセスメモリ等）のように一般に使用されている低速のメモリ装置は、プロフェッショナルアプリケーションに合うような高速の捕捉データレートよりも極めて遅い保存データレートを使用する必要がある。その結果、いくつもの半導体記憶素子を含む半導体記憶素子群（半導体メモリデバイスセット）が使用されている。記憶素子群中の半導体記憶素子には、データが並列的に提供される。したがって、記憶素子群の保存データレートは、記憶素子群を形成する半導体記憶素子の保存データレートの累積（累積的な保存データレート）に等しい。
【０００５】
同期の目的のため、半導体記憶素子群は、リアルタイムストリーミング用装置により処理され、リアルタイムストリーミング用装置は、例えばビデオカメラの画像取得装置からのデータストリームを受信する受信手段を有する。同期をとるため、受信データは、キャッシュバッファ（例えば、ダイナミンクランダムアクセスメモリ（DRAM））に蓄積（バッファリング）され、半導体記憶素子群中の何れかにバスを介して転送される。
【０００６】
半導体記憶素子は、通常、メモリユニットと言及される１つ以上の半導体メモリチップにより形成され、メモリユニットは、一定のデータ量の単位（いわゆるページ）でデータを書き込むのに適している。これを行うため、メモリチップ各々はページバッファ（例えば、SRAM）を備え又は有し、１ページに対応する量のデータが、キャッシュバッファからそのページバッファに、バースト状にページ受信期間t_rをかけてコピーされる。１ページをコピーした後、ページ書き込み期間wrt＿tmの間半導体メモリチップへアクセスできなくなり、そのページ書き込み期間は、受信したページをページバッファから半導体メモリユニットへ書き込むのにかかる時間である。
【０００７】
ビデオ作品はいくつものデータストリームを並列的に益々生成しつつあり、幾つかを例示すると、例えば、オーディオストリームとビデオストリームを使用したり、3Dビデオの場合は、メインビデオストリームと１つ以上の衛星ビデオストリームを使用したり、メインビデオストリームと深度（depth）データストリームを使用し、それら各々は各自のデータレートとともに長きにわたって到来する。個々のデータレートが前もって既知であり固定されていた場合、ハードウェアレイアウトだけでなく関連する制御の最適化を達成することは容易である。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許出願公開第２００３／１３１１９１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、データレートやそれらの変更が事前には未知であった場合、又は処理するストリーム数でさえ未知であった場合、リアルタイムストリーミング用に装置のハードウェアレイアウトを最適化することに加えて、対応するバス制御を最適に行う問題は、従来技術において未解決である。
【００１０】
本発明の課題は、従来技術における問題を軽減又は解消することである。
【課題を解決するための手段】
【００１１】
本発明の一形態による装置は、
半導体記憶素子群のアレイにリアルタイムストリーミングを行う装置であって、該半導体記憶素子群の各々は、n個の並列的なアドレス指定可能な半導体記憶素子を有し、該半導体記憶素子各々は１つ以上の半導体メモリユニットを有し、該半導体メモリユニットはページ受信機間t＿rの間に或るデータ量pをバッファリングするページバッファを有し、該半導体メモリユニット各々は、前記データ量pを前記ページバッファから前記半導体記憶素子へページ書き込み時間wrt＿tmの間に書き込み、リアルタイムストリーミングを行う当該装置は、
各自のデータレートとともに受信される高々k個のデータストリームから並列的にデータを受信する受信手段と、
受信したデータをバッファリングする入力バッファを有し、
前記入力バッファから、前記半導体記憶素子群へデータを転送するｎ個の並列バスを有するバスシステムと、
前記バスシステムを制御するコントローラと
を有し、前記コントローラにより、第１のデータストリームから受信したデータは、前記半導体記憶素子群のアレイ内の第１部分をなす半導体記憶素子群のみに転送され、少なくとも第２のデータストリームから受信したデータは、前記半導体記憶素子群のアレイ内の別の第２部分をなす半導体記憶素子群のみに転送され、
前記コントローラは、前記ページ受信期間t＿r、前記ページ書き込み期間wrt＿tm、前記データ量p及び各自のデータレートを利用して、前記バスシステムがデータをどの半導体記憶素子群へ転送するかを動的に制御する、装置である。
【図面の簡単な説明】
【００１２】
【図１】マルチストリーム記録アーキテクチャにおけるフラッシュダイマトリクスの一例を示す図。
【図２】半導体記憶素子のアレイに書き込みを行う動作例を示すフローチャート。
【図３】本発明によるリアルタイムストリーミング装置を使用して再生する様子を示す図。
【図４】マルチストリーム記録アーキテクチャにおける別のフラッシュダイマトリクスの一例を示す図。
【図５】マルチストリーム記録アーキテクチャにおけるさらに別のメモリセットアレイを示す図。
【発明を実施するための形態】
【００１３】
本発明は、半導体記憶素子群のアレイにリアルタイムストリーミングを行う装置を提案し、当該装置は、個々のデータレートのデータストリームからのデータを並列的に受信する手段と、受信したデータをバッファリングする入力キャッシュ（入力バッファ）と、該入力バッファから半導体記憶素子群へデータを転送するバスシステムと、ページ受信期間t＿r、ページ書き込み期間wrt＿tm、データ量p及び各自のデータレートを利用して、バスシステムを動的に制御するように構築されたコントローラとを有し、第１のデータストリームから受信したデータは、半導体記憶素子群のアレイ内の第１サブセット（第１部分）をなす半導体記憶素子群のみに転送され、少なくとも第２のデータストリームから受信したデータは、半導体記憶素子群のアレイ内の別の第２サブセット（第２部分）をなす半導体記憶素子群のみに転送される。
【００１４】
より具体的には、半導体記憶素子群のアレイにリアルタイムストリーミングを行う本発明が提案する装置は、出願時の請求項１に記載の特徴を備える。
【００１５】
再生又は読み出しモードの場合、サブセット毎に保存されたデータストリームによる恩恵を受けることができる。半導体記憶素子群各々に無駄な読み出しサイクルはほとんど無いので、適切なチップ選択ラインをマッピングすることで、各素子を並べ替えることができ、１つのデータストリームについてバスのフルスピードでデータを提供することができる。
【００１６】
リアルタイムストリーミング装置のさらに有利な形態は、出願時の従属請求項に記載されている。
【００１７】
本発明は、リアルタイムストリーミング装置で使用するのに適したバス制御方法をも提供し、本方法は、半導体記憶素子群のレイアウトに２つ以上のデータストリームをストリーミングし、本方法の一形態による特徴は出願時の請求項３に記載されている。
【実施例１】
【００１８】
本発明による実施例は、図面を参照しながら以下において詳細に説明される。実施例の説明は、本発明を明らかにする観点からなされているにすぎず、特許請求の範囲に記載されている本発明の範囲及び精神を限定しようとするものではない。
【００１９】
図４は、フラッシュメモリの行列、マトリクス又はアレイを有する例示的なフラッシュ記録装置を示し、フラッシュメモリの各々は複数の半導体素子群のマトリクスである。記憶素子及びメモリは同義的に使用される。
【００２０】
このマルチストリーム記録アーキテクチャは、NANDフラッシュメモリではなくページベースの書き込みを当てにする他の半導体記憶素子を使用してもよい。図４に示す例の場合、32個の並列的なフラッシュバスが、連続的に接続された８つのフラッシュメモリとともにそれぞれ存在している。これにより、１つの物理的なフラッシュ装置は１つより多いフラッシュメモリを含むことができる。なぜなら、今日、１つより多い数のフラッシュダイ（Flash−die）が、１つのフラッシュ装置パッケージの中で結合されるからである。図４に示されているように、記憶素子群は、バス各々における順番が同じフラッシュメモリが集合したものであると規定できる。図５の場合、１つの記憶素子群は、例えば1，125Gbit／sの書き込みデータ帯域幅を提供する（仮想マッピング（virtual  mapping））。８つの記憶素子群は、フラッシュ技術のライトバックペナルティサイクル（Flash  technology  write−back  penalty）を完全にカバーするように、バスによりサポートされている。これは、全部で8×1，125Gbit／s＝9Gbit／sの総データ帯域幅をもたらす。
【００２１】
図示の例は、2Gbit／sのデータレートの入力データストリームと、それぞれが1Gbit／sのデータレートの４つの入力ストリームとを示す。８秒後にサンプリングが予定されている。そして、入力キャッシュが満たされ、図５に示すように仮想マッピングが実行可能である。２つのデータ記憶素子群が、カメラストリーム１のデータ帯域幅に割り当てられ、１つの記憶素子群がカメラストリーム２−５の各々に割り当てられるように決めることができる。２つの記憶素子群は未使用である。
【００２２】
記憶素子群各々に書き込みを行う場合、記憶素子群は、その同じ記憶素子群に再び書き込みを行う前に、インターナルライトバックペナルティサイクル（Internal  write−back  penalty  cycle）を要することを知っておくことは重要である。上記の例の場合、アーキテクチャは、有利なことに、他の全ての７つの記憶素子群が書き込まれる場合、最初の記憶素子群は再び書き込む準備が整っており、８つ全ての記憶素子群に対して書き込みを維持できるようにしている。また、フラッシュメモリは、フラッシュのページ全体のサイズ全部についてのみライトバックを行うことに留意を要する。ライトバック処理におけるこの制約に起因して、データのページ全体のみをフラッシュ記憶素子群に提供するために、小さな入力キャッシュが導入される必要がある。この入力キャッシュは、図４に示される例のように全体的に（グローバルに）設計することができる。あるいは、フラッシュメモリ各々に局所的に（ローカルに）実現されてもよい。記憶素子群当たりのライトバックデータに関する一定のページ長さ項目に応じて、到来するデータストリームの帯域幅との不適合に起因して、帯域幅のヘッドルームを予想する必要がある（図５におけるf＿por）。f＿porはメモリのスケジューリングにより使用される。f＿porのサイズは、ストリーム数及びそれらの帯域幅の割り当てに応じて変化する。記憶素子群のデータ帯域幅の10％により、f＿porの最悪ケースが測定される。しかしながら、仮想モデルを現実の記憶素子群にマッピングする際、記憶素子群のすべの範囲が使用可能である。
【００２３】
記録の際、有利なことに、様々なデータストリームが、バスにより或る記憶素子群に分類される（仕分けられる）。図示の例の場合、高々７つ（プラス、f＿porに起因する10％のビットレートを伴うものと）の独立した入力ストリームが記録に使用可能である。これらはすべて高々9Gbit／sのデータ帯域幅を共有することができる。帯域幅の割り当て処理は原則として完全に動的であるが、入力ストリーム毎の記憶素子群の利用は、必要に応じて、1，125Gbit／sの帯域幅の量毎に増加する。上述したように、記憶素子群の数は８つに限定されている。
【００２４】
より多くの記憶素子群をバスに設けることで、自由度を複数にすることができる。その場合、タイミングは緩和され、より多くの独立したデータストリームが記録可能である。
【００２５】
再生又は読み出しモードの場合、このアーキテクチャの形態は、記憶素子群毎に保存されたデータストリームによる恩恵を受けることができる。フラッシュメモリに伴う読み出しのペナルティサイクルはほとんど存在しないので、関連する記憶素子群は、適切なメモリチップ選択ラインをマッピングすることで並べ替え可能であり、データは、単独のデータストリームについてバスの全速力（目下の例の場合、9Gbit／s）で提供可能である、あるいはいくつものストリームが並列的に望まれるように配置可能である。
【００２６】
図２は、半導体記憶素子のアレイに書き込みを行う様子を示す。ポインタ（sched＿ptr）は、バスにおける全てのフラッシュ装置を連続的にアドレス指定する。開始点はF＿Dev＃0である。F＿Dev＃Nに達した場合、F＿Dev＃0に再びループして戻る。sched＿ptrが指し示しているフラッシュ装置各々について、関連するキャッシュにおけるデータ閾値（C＿Thres）に達したか否かが検査される。この場合、指定（言及）されているフラッシュ装置は、先行するデータ書き込み転送によりいずれは導入されるインターナルライトバック期間（Wrt＿tm）を経過したか否かも確認する。ライトバック期間が既に経過していた場合、フラッシュページサイズのデータ量はそのキャッシュからフラッシュに持ち出し可能である。上記の検査した状態の何れかが偽であった場合、バスにおける次のフラッシュ装置をアドレス指定するようにポインタが増やされる。
【００２７】
ここで、例示的なリアルタイムストリーミング装置が処理する最大入力データレートをDmaxとし、１ページに含まれるデータ量をpとし、記憶素子群１つをなす半導体記憶素子数をnとする。さらに、高々nページから記憶素子群へバーストコピーするのに要する時間をTrとし、バーストコピーされたnページを、記憶素子群のメモリユニットへ書き込むのに要する時間をTwとする。したがって、記憶素子群は、次式で表現されるデータレートDsetを有する。
【００２８】
【数１】
2010287239.tif 000003
さらに、高々nページから記憶素子群へバーストコピーするのに要する時間であるTrについて、以下の数式が成り立つ。
【００２９】
【数２】
2010287239.tif 000004
なぜなら、素子群数Nは、次式が成立するように選ばれる必要があるからである。
【００３０】
【数３】
2010287239.tif 000005
上記の例示的なリアルタイムストリーミング装置は、以下の条件が満たされている限り、データレートD0．．．Dk−1とともに高々ｋ個のストリームS0．．．Sk−1を処理する。
【００３１】
【数４】
2010287239.tif 000006
したがって、高々k＝（N−1）個が並列的に処理可能である。
【００３２】
ここで、Dj≧Dj（i＞j）とする。ストリームについて、割り当てられた個々のキャッシュバッファ容量C0．．．Ckが存在する。
【００３３】
【数５】
2010287239.tif 000007
上記の数式は、ストリームSiからデータ量pをキャッシュバッファ内に蓄積するのに必要な時間を表す。さらに、次式のように補助変数qk−i（i＝0，．．．，k）及びQを定義する。
【００３４】
【数６】
2010287239.tif 000008
及び
【数７】
2010287239.tif 000009
最高のデータレートSkとともにストリームからバーストコピーするデータは、開始時間tk’より前には開始できない：
【数８】
2010287239.tif 000010
したがって、ストリームSk−1から受信したデータのバーストコピーは、tkより早期には始まらず、１ページのデータ量がバーストコピーに必要なので、tk−1−Trが経過するまで遅延させられる。したがって、ストリームSk−1からのバーストコピーデータは、次式の開始時間t’k−1よりも早く始まることはできない：
【数９】
2010287239.tif 000011
また、ストリームSk−iからのバーストコピーデータは、次式の開始時間t’k−iよりも早く始まることはできない：
【数１０】
2010287239.tif 000012
さらに、ストリームS0からのバーストコピーデータは、次式の開始時間t’0よりも早く始まることはできない：
【数１１】
2010287239.tif 000013
したがって、全体的なキャッシュバッファリング容量の最小値Cminは、次式のように規定できる：
【数１２】
2010287239.tif 000014
定義により、Dk≧Diであるから次式が成立する。
【００３５】
【数１３】
2010287239.tif 000015
全体的なキャッシュバッファリング容量の最小値Cminの上限は、次式のように規定される：
【数１４】
2010287239.tif 000016
複数のストリームに対する帯域幅割り当ては、提供される最大帯域幅を、バス数nに関するバスN当たりのフラッシュ記憶素子群数（すなわち、並列的なバス数）で割った等分により行われる。利用可能な最大帯域幅は、バスにおける例示的なフラッシュメモリのインターリーブ配置により全体的にカバーされる。インターリーブ配置された例示的なフラッシュ記憶素子群のバス当たりの数がNであった場合、１つの部分のサイズに関する上限は、次式により決定可能である。
【００３６】
【数１５】
2010287239.tif 000017
提案のアーキテクチャによれば、N個のストリームは（N−1）個の部分を割り当てる。N個の内何れかの追加的な帯域幅の部分は、スケジューリングにより動的に消費されるので、理論的には、残りの部分が割り当てに利用可能であるが、実際には、この追加的な部分を利用しない場合、スケジューリングアルゴリズムはさらに簡易かつ規則的になる。
【図１】
2010287239.tif 000018
【図２】
2010287239.tif 000019
【図３】
2010287239.tif 000020
【図４】
2010287239.tif 000021
【図５】
2010287239.tif 000022
【外国語明細書】
2010287239000001.pdf