JP4439384B2 - バッファリング装置およびメモリ装置の利用方法 - Google Patents

バッファリング装置およびメモリ装置の利用方法 Download PDF

Info

Publication number
JP4439384B2
JP4439384B2 JP2004352019A JP2004352019A JP4439384B2 JP 4439384 B2 JP4439384 B2 JP 4439384B2 JP 2004352019 A JP2004352019 A JP 2004352019A JP 2004352019 A JP2004352019 A JP 2004352019A JP 4439384 B2 JP4439384 B2 JP 4439384B2
Authority
JP
Japan
Prior art keywords
data
area
memory device
storage areas
read
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.)
Active
Application number
JP2004352019A
Other languages
English (en)
Other versions
JP2006163641A (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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2004352019A priority Critical patent/JP4439384B2/ja
Priority to US11/291,489 priority patent/US7415592B2/en
Priority to AT05257424T priority patent/ATE415663T1/de
Priority to EP20050257424 priority patent/EP1669876B1/en
Priority to DE200560011237 priority patent/DE602005011237D1/de
Publication of JP2006163641A publication Critical patent/JP2006163641A/ja
Application granted granted Critical
Publication of JP4439384B2 publication Critical patent/JP4439384B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Description

本発明は、バッファリング装置およびメモリ装置の利用方法に関し、特に、リングバッファを利用したバッファリング装置およびメモリ装置の利用方法に関する。
近年、携帯型のゲーム装置や個人情報端末(PDA)などの携帯型電子装置が普及している。携帯型電子装置は、ユーザの多様なニーズに応えるべく様々な機能をもつことを求められている。
特に最近では、記録媒体からプログラムや動画像データなどのデジタルデータを読み出して、様々なアプリケーションを実行できる機能が切望されている。この機能が実現できると、携帯型電子装置は、多様な用途に利用可能となり、その有用性を増す。このとき、記録媒体から効率的にデジタルデータをバッファリングすることのできる技術が必要となる。特に携帯型電子装置は、軽量化および低廉化を求められるため、ハードウエアを効率的に利用したバッファリング技術を実現することが必要であるが、例えば設置型のPC(パーソナルコンピュータ)においても、バッファリング技術を効率化することは重要である。
本発明は、上記のような課題に鑑みてなされたものであり、その目的は、記録媒体からデジタルデータをバッファリングすることのできる技術を提供することにある。
上記課題を解決するために、本発明のある態様は、入力データを一旦格納してその後出力するデジタルデータのバッファリング装置を提供する。この態様のバッファリング装置は、連続した識別番号を割り当てられた複数の記憶領域を有するメモリ装置と、メモリ装置における複数の記憶領域を少なくとも第1領域と第2領域に分割して、含まれる記憶領域の識別番号が連続している第1領域をリングバッファ領域に割り当てる領域割当部とを備える。
本発明によれば、記録媒体からデジタルデータを効率的にバッファリングすることのできる技術を提供することができる。
図1は、本発明の実施例である携帯型電子装置100の正面図である。携帯型電子装置100の筐体10は、全体として横長の長円形状を有している。筐体10の両端は、中心線から一定の距離偏心した位置を中心とする円弧状に湾曲形成されている。
筐体10の中央部分には、表示装置としての液晶ディスプレイ(以下、「LCD」という)12が嵌め込まれている。例えば、携帯型電子装置100がゲーム装置として機能する場合、このLCD12にはゲーム画面が表示され、携帯型電子装置100がいわゆる個人情報端末として機能する場合には、スケジュール帳や住所録などが表示される。
筐体10の上側部10aの表面、つまりユーザに対する面は、主に、ユーザの左手により把持される左手領域48Lと、右手により把持される右手領域48Rと、LCD12の下方に位置し各種ボタンが配置される横長のボタン領域50と、LCD12の上方に位置する装飾領域16とから構成される。
左手領域48Lには、主に方向指示入力をするための十字キー20と、主に方向指示のアナログ入力をするためのアナログデバイス22が設けられている。右手領域48Rには、主に単一の指示を入力するための押しボタン30a、30b、30c、30d(以下、これらを総称するときには、「押しボタン30」という)が設けられている。
ボタン領域50は、携帯型電子装置100を保持するユーザから近い側の、筐体10の上側部の外縁近傍に配置される。ボタン領域50は、十字キー20、アナログデバイス22、押しボタン30以外の各種ボタンが配置される領域である。
Lボタン46L、Rボタン46Rは、それぞれユーザの左手人差し指または中指、右手人差し指または中指で操作されるボタンである。Lボタン46L、Rボタン46Rは、十字キー20または押しボタン30だけでは操作できない特別な指示を与えるために使用される。
図2は、携帯型電子装置100の平面図である。筐体10は、上側部10a、中間部10bおよび下側部10cから構成され、その内部に各種ボタン操作による信号を発生するスイッチ接点と、その信号を処理し各種演算を実行する中央処理装置などが搭載された回路基板(図示せず)を内蔵している。図示しない回路基板は、上側部10aまたは下側部10cに固定されている。また、中間部10bは上側部10aおよび下側部10cに比して剛性が高く、筐体10全体の剛性を確保している。
筐体10の背面の両端には膨らみ42L、42Rが形成されている。これら2つの膨らみの間は平面となっており、その平面のほぼ全体が、小型ディスクドライブの蓋44となっている。この蓋44は、中間部10bに設けられたスイッチをスライドすることによって、図2の上方に展開し、その下部にある図示しない小型ディスクドライブにディスクを載置できるようになっている。このディスクは、携帯型電子装置100のアプリケーションプログラムやゲームプログラム、また動画再生用のデータや音楽再生用のデータを提供する。
本実施例の携帯型電子装置100は、ディスクに格納されたプログラムおよびデータに応じて、様々な種類の装置として機能することができる。ディスクがゲームプログラムを格納していれば、携帯型電子装置100はゲーム装置として機能し、またディスクが音楽データを格納していれば、携帯型電子装置100が音声再生装置として機能する。さらに、ディスクが動画データを格納していれば、携帯型電子装置100は、動画再生装置として機能することになり、ユーザは、映画などの映像コンテンツを楽しむことができる。また携帯型電子装置100は、無線通信機能を有し、外部からのデータのダウンロードを可能とし、また外部に対して自身のデータを送信することができる。
図3は、本実施例の携帯型電子装置のハードウエア構成を示す。携帯型電子装置100は、装置全体を制御する中央処理装置200、装置全体に電力を供給するバッテリ210、表示装置であるLCD12、音声を出力するスピーカ212、無線通信を実行する無線モジュール214、ディスク80を載置するディスクドライブを回転するモータ216、およびモータ216を駆動するモータドライバ218、ディスク80からデータやプログラムのバッファリング処理などを制御するサブ処理装置300を備える。なお、以下では、データおよびプログラムを、統一的に「デジタルデータ」ないしは単に「データ」として表現する。
サブ処理装置300は、ディスク80に格納されているデータを読み出してメモリ装置に一旦格納し、その後、中央処理装置200に出力する。本実施例の携帯型電子装置100は、メモリ装置へのデータ読込み処理や、メモリ装置からの転送処理を効率的に行うことができる。
本実施例で説明するバッファリング機能は、携帯型電子装置100において特に効果的に利用することができる。携帯型電子装置100は軽量化および低廉化を求められるため、非常に高速なCPUや大容量のメモリ装置を搭載することができず、したがってハードウエア資源を効率的に使用する必要がある。なお、本実施例の効率的なバッファリング機能を、高速なCPUや大容量メモリ装置を搭載した設置型のPC(パーソナルコンピュータ)において利用することも可能である。
図4は、本実施例の携帯型電子装置における中央処理装置とサブ処理装置の構成を示す。サブ処理装置300は、連続した識別番号を割り当てられた複数の記憶領域を有するメモリ装置310、メモリ装置310の複数の記憶領域を分割する領域割当部320、主にメモリ装置310に格納されたデジタルデータの連続性を判定する判定部330、メモリ装置310からデジタルデータを中央処理装置200に転送する転送部340、およびディスク80からデジタルデータを読み出してメモリ装置310に書き込む読出部350を備える。
中央処理装置200は、全体の動作を制御する制御部230、メモリ装置310の複数の記憶領域を分割するための分割指示を生成する分割指示部240、ディスク80またはメモリ装置310からデジタルデータを読み出すための読出指示を生成する読出指示部242、転送されたデジタルデータを受け付ける受付部246、転送されたデータを一時記憶するメモリ装置250、画像処理を実行する画像処理部260、および音声処理を実行する音声処理部270を備える。
以上の構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
図4では、画像処理部260および音声処理部270が中央処理装置200に含まれているが、画像処理部260および音声処理部270は、それぞれ中央処理装置200とは独立したユニットとして構成されてもよい。また、中央処理装置200およびサブ処理装置300の機能は、別個のCPUにより実現されてもよいが、単一のCPUにより実現することも可能である。
メモリ装置310は、キャッシュ用メモリであり、SDRAMで構成される。本実施例において、SDRAMの容量は16Mbit(2Mbyte)であり、誤り訂正符号(ECC)ブロックを1単位として最大60の記憶領域のそれぞれにECCブロックを格納できる。なお、ディスク80はセクタを単位としてデジタルデータを記録しているが、ECCブロックは、ディスク80の16セクタ分とする。読出部350は、ディスク80からデジタルデータを読み出すと、誤りを訂正するために冗長データを付加し、メモリ装置310の所定領域に書き込む。なお、SDRAMの容量やECCブロックの大きさは例示であり、またメモリ装置310はSDRAM以外の他のメモリで構成されてもよい。
本実施例において、サブ処理装置300は、ディスク80から入力データを読み出して一旦メモリ装置310に格納し、その後、中央処理装置200に出力するデジタルデータのバッファリング装置として機能する。なお、このときサブ処理装置300は、中央処理装置200の一部の機能と協同して、バッファリング処理を実現してもよい。この場合は、サブ処理装置300と中央処理装置200の機能の一部がバッファリング装置として機能することになる。なお、メモリ装置310からの転送先は、別チップとして構成される中央処理装置200に限らない。例えば中央処理装置200とサブ処理装置300とが1つのチップとして構成されている場合には、転送先は、同一チップ内の画像処理部260または音声処理部270であってよい。なお、画像処理機能および音声処理機能が画像処理ユニットおよび音声処理ユニットなどの別チップとして構成されている場合には、転送先が、画像処理ユニットまたは音声処理ユニットであってよい。
図5(a)は、連続した識別番号を割り当てられた複数の記憶領域を有するメモリ装置310を概念的に示す。ここで、識別番号は記憶領域を特定するための番号である。メモリ装置310は、AREA0からAREA59までの60の記憶領域を有して構成される。各記憶領域には、誤り符号化されたデジタルデータが格納される。なお、各記憶領域に含まれる複数の記憶素子には、位置を示すアドレスが付けられている。このアドレスは、識別番号の小さい記憶領域から順に割り当てられる。全ての記憶素子のアドレスを連続して設定することで、後述するバッファリング処理を容易にすることができる。
図5(b)は、メモリ装置310における複数の記憶領域を2つの領域に分割した状態を示す。分割した2つの領域を、それぞれUNLOCK領域とLOCK領域と呼ぶ。UNLOCK領域は、主としてシーケンシャルデータを格納するための領域であり、LOCK領域は、中央処理装置200にて固定的に利用するデータを格納するための領域である。UNLOCK領域にはディスク80に記録されたデジタルデータが書き込まれ、LOCK領域にはディスク80に記録されたデジタルデータや中央処理装置200から供給されるデータなどが書き込まれる。例えば、動画や音声などのデータはシーケンシャルにUNLOCK領域にバッファリングされ、ファイルシステムのディレクトリエントリなどの固定的に使用されるデータはLOCK領域に格納される。
本実施例のメモリ装置310において、UNLOCK領域は、連続した識別番号で特定される複数の記憶領域により構成される。ここでは、UNLOCK領域が、AREA0からAREA(n-1)の計n個の連続した記憶領域で構成されている。なおUNLOCK領域において、各記憶領域内および記憶領域間で、記憶素子のアドレスは連続して割り振られている。
UNLOCK領域はリングバッファとして使用される。ディスク80から連続して読み出されたデータは、連続した識別番号で特定される記憶領域にリングバッファ方式で順次書き込まれる。ディスク80のデータは16セクタ分を1単位としてデコードされ、デコードされたデータが1つの記憶領域(AREA)に格納される。これにより、UNLOCK領域からシーケンシャルデータを読み出して中央処理装置200に転送するときのアドレス制御を容易にすることができる。すなわち、リングバッファ上でシーケンシャルデータを読み出すためには、UNLOCK領域において、読出開始アドレスから読出終了アドレスまでを1ずつインクリメントしていけばよく、アドレス管理が簡単なものとなる。
携帯型電子装置100の起動直後は、全ての記憶領域がUNLOCK領域に設定される。その後、中央処理装置200において、制御部230が、メモリ装置310を分割させるべく、分割指示部240を制御する。分割指示部240は、メモリ装置310の複数の記憶領域を分割するための分割指示を生成し、領域割当部320に送る。
領域割当部320は、生成された分割指示をもとに、メモリ装置310における複数の記憶領域をUNLOCK領域とLOCK領域に分割する。このときUNLOCK領域は、リングバッファ領域に割り当てられ、UNLOCK領域内の複数の記憶領域が連続した識別番号を有して構成される。なお、領域割当部320は、自律的にメモリ装置310の分割を行う機能を有してもよい。図5(b)の例では、UNLOCK領域内の複数の記憶領域が、0から(n-1)の連続した識別番号を有して構成される。既述したように、AREA内でアドレスは連続して設定されており、またAREA間でもアドレスの連続性は保たれているため、UNLOCK領域が複数のAREAで構成されていても、アドレスの連続性は維持されている。
一方、LOCK領域内の記憶領域は連続した識別番号を有していなくてもよい。図5(b)の例では、LOCK領域内の複数の記憶領域が、nから59の連続した識別番号を有して構成されているが、例えば、LOCK領域内の複数の記憶領域は、メモリ装置310の両端に分かれて設定されてもよい。UNLOCK領域は、基本的にシーケンシャルデータを中央処理装置200に転送する目的で利用されるため、記憶領域が連続して設定される必要があるが、LOCK領域は、シーケンシャルデータを格納するものではないため、記憶領域が連続して設定される必要はない。
分割指示は、UNLOCK領域とLOCK領域の境界を指定する。この指定は、境界となるAREAを指示するものであってもよく、具体的には境界となるメモリ装置310上のアドレスを指示するものであってよい。また、AREA0ないしはAREA59からのAREAの個数で境界を表現するものであってもよい。例えば、分割指示が、AREA59から(60-n)個分の記憶領域をLOCK領域に指定するものであってもよい。逆に、AREA0からn個分の記憶領域をUNLOCK領域とする分割指示であってもよい。このように、2つの異なる境界を指定することで領域割当部320は、メモリ装置310を異なる領域に割り当てることが可能となる。
分割指示部240は、UNLOCK領域とLOCK領域の境界を、ディスク80の種類に応じて設定してもよい。例えば、動画データ、ゲームプログラム、音楽データの3種類のデジタルデータについて考察すると、動画データおよび音楽データはシーケンシャルデータであり、再生される順に、ディスク80の連続するセクタに連続的に記録されている。したがって、データの連続性が高く、シーケンシャルデータを格納するUNLOCK領域を大きく設定することが好ましい。
一方、ゲームプログラムは、ユーザによる操作により出力を変化させるものであり、例えばゲームキャラクタやゲーム背景など、ゲームアプリケーションの実行に固有の情報を多く必要とする。そのため、動画データや音楽データなどのシーケンシャルデータと比較すると、LOCK領域に保持させるデータが多く、そのためLOCK領域を大きくとることが好ましい。このように、シーケンシャルデータの場合は、そうでない場合と比較してUNLOCK領域を相対的に大きくとることが好ましく、これにより、領域割当部320は、メモリ装置310をディスク80のアプリケーションに応じて効果的に領域設定することが可能となる。なお、領域割当部320は、1つのアプリケーションの実行中に、領域の境界を動かして、動的に領域の再割当てを行ってもよい。領域の動的な再割当ては、分割指示部240からの指示に基づいて行われてもよく、またメモリ装置310の利用状況を自律的に判定することで行われてもよい。例えば、領域割当部320は、メモリ装置310においてシーケンシャルデータの書込頻度が下がった場合に、UNLOCK領域を小さくできることを判定して、領域の再設定を行ってもよい。この場合、再設定した後の領域の範囲は制御部230に通知され、管理される。
本実施例の携帯型電子装置100において、メモリ装置310にデジタルデータを蓄積するために、読出指示部242が、サブ処理装置300に対して、ディスク80からデジタルデータの読出を要求する。この要求には、読出指示とプリフェッチ指示の2種類が存在する。
読出指示は、デジタルデータの読み込みおよび先読みを要求するコマンドであり、さらに読み込んだデジタルデータを中央処理装置200に転送するコマンドでもある。すなわち、読み込みを指示されたデータは、サブ処理装置300においてディスク80から読み込まれてメモリ装置310に一旦格納されると同時に中央処理装置200に転送され、このとき転送されるデータに後続する所定量のデータがディスク80から読み込ま(先読みさ)れる。先読みされるデータ量は、読出指示において指定される。既にメモリ装置310に先読みされているデータに対して読出指示が発行された場合には、そのデータをディスク80から読み込む必要はなく、メモリ装置310から中央処理装置200に直接転送し、そのデータから所定量分の後続データの先読みを行う。
プリフェッチ指示は、デジタルデータの読み込みを要求するコマンドである。先読みおよび中央処理装置200へのデータ転送は行わず、メモリ装置310にディスク80から読み込んだデータを保存しておく。
読出指示およびプリフェッチ指示には、LOCKビットが含まれる。LOCKビットが立てられたときには、デジタルデータがLOCK領域へバッファリングされ、LOCKビットが立てられていないときには、UNLOCK領域へバッファリングされる。また、LOCKビットが立てられた読出指示は先読みを行わない設定としてもよい。LOCK領域では固定長のデータのみがバッファリングされ、先読みを必要としないためである。なお、LOCKビットが立てられている読出指示で、LOCK領域にデータがなくてUNLOCK領域にデータが存在する場合には、UNLOCK領域にあるデータをLOCK領域へコピーする。LOCK領域へのデータのバッファリングは、確保されたLOCK領域のAREA識別番号の小さい順に行われる。
本実施例では、上記した2種類の読出要求のうち、読出指示に基づいて実行するディスク80からのデータ読込み、および先読みなどの処理を工夫することで、効率的なバッファリング処理を実現する。
図6は、読出指示を利用してディスクデータをメモリ装置310にバッファリングする状態例を示す。ディスク80の0番目のセクタからデータを連続的に読み出す場合を例にとる。制御部230が読出指示部242を制御することで、読出指示部242が、0番目のセクタからの読出指示をサブ処理装置300に送る。なお、メモリ装置310のUNLOCK領域には、データがまだ書き込まれていないものとする。
図6(a)は、データ書込み前のUNLOCK領域の状態を示す。リングバッファとして機能するUNLOCK領域において、ポインタは、データの書込み位置を特定する。
読出指示部242が、ディスク80のセクタ0−15に記録されているデジタルデータの読出指示を生成して、サブ処理装置300における判定部330に送る。本実施例において、読出指示は、48セクタ分のデジタルデータの先読みを要求する。判定部330は、読出および転送を要求されるセクタ0−15のデジタルデータがメモリ装置310に存在するか否かを判定する。このとき、メモリ装置310にはデータが書き込まれていないため、判定部330はセクタ0−15のデジタルデータがメモリ装置310に存在しないことを判定し、読出部350に、セクタ0−15のデジタルデータの読込み指示と、セクタ16−63のデジタルデータの先読み指示を通知し、また転送部340にセクタ0−15のデジタルデータの転送指示を通知する。
図6(b)は、セクタ0−15のデータの読出指示を受けて、読出部350によりディスク80から読み出したデータをメモリ装置310に書き込んだ状態を示す。まずAREA0にセクタ0−15のデータが書き込まれる。転送部340は、転送要求を受けたセクタ0−15のデータがメモリ装置310に書き込まれると、そのデータを中央処理装置200の受付部246に転送する。また読出部350は、先読み指示を受けてディスク80からセクタ16−63のデータを先読みし、先読みしたデータをメモリ装置310において連続するAREA1、AREA2、AREA3に書き込む。具体的には、AREA0にセクタ0−15のデータが書き込まれた時点で、ポインタがAREA1に移動し、AREA1にセクタ16−31のデータが書き込まれる。同様に、ポインタが移動して、AREA2、AREA3のそれぞれにセクタ32−47、セクタ48−63のデータが書き込まれる。先読みされる全てのデータがメモリ装置310に書き込まれた時点で、ポインタはAREA4に移動する。各AREAに格納されるデータのセクタ情報は、判定部330が保有するキャッシュ管理テーブル(図示せず)にて管理される。キャッシュ管理テーブルでは、AREAの識別番号と、記録したセクタ番号とが対応付けられている。なお、図6は、メモリ装置310の状態を示すものであるが、図6に示す情報は、キャッシュ管理テーブルに含まれる状態に相当している。
読出部350がディスク80からデータを読み出すまとまりは、識別番号が16の整数倍で表現されるセクタから16個分のセクタのデータとして設定されていてもよい。ここで、セクタ10−23のデータの読出指示が生成された場合には、セクタ10−23のデータをそれぞれ包含するセクタ0−15のデータとセクタ16−31のデータとが読み込まれることになる。このとき、キャッシュ管理テーブルは、AREAの識別番号と、そのAREAに記録した最初のセクタすなわち16の整数倍で表現されるセクタ番号とを対応付けて保持する。なお、この場合、各AREAには、常に連続する16個のセクタに記録されたデータがシーケンシャルに書き込まれることになる。
続いて、読出指示部242が、ディスク80のセクタ16−31に記録されているデジタルデータの読出指示を生成して、サブ処理装置300における判定部330に送る。ここでは、ディスク80が動画データなどのシーケンシャルデータを記録しており、連続再生する場合を想定している。
判定部330は、読出および転送を要求されるセクタ16−31のデジタルデータがメモリ装置310に存在するか否かを判定する。読出および転送を要求されるデータがメモリ装置310に存在していれば、メモリ装置310にデータをバッファリングせず、メモリ装置310から直接データが転送される。読出および転送を要求されるデータがメモリ装置310に存在する状態を、キャッシュがヒットした状態と呼ぶ。本実施例では、読出指示により要求されたデータがメモリ装置310の記憶領域上に連続したセクタの順序でバッファリングされているときに、キャッシュがヒットした状態となる。
判定部330は、キャッシュ管理テーブルを検索して、セクタ16−31のデータが連続してメモリ装置310に書き込まれているか否かを判定する。キャッシュ管理テーブルには、AREA1に先読みされたセクタ16−31のデジタルデータが書き込まれているキャッシュ管理情報が記述されており、判定部330はセクタ16−31のデジタルデータがメモリ装置310に存在することを判定し、転送部340にセクタ16−31のデジタルデータの転送指示を通知する。
判定部330は、上記した読込処理と同時に先読み処理を実行するか判断するために、データがメモリ装置310に連続して書き込まれているか否かを判定する。データの連続性は、ポインタに近い記憶領域から検索される。具体的に、判定部330は、最新のデータが書き込まれた記憶領域と、読出および転送要求されたセクタのデータが書き込まれている記憶領域の間の連続した記憶領域において、転送要求されたデータから、書き込まれた最新のデータまでが連続しているか否かを判定する。最新のデータが書き込まれた記憶領域とは、リングバッファにおいて最後にデータ書込がされた記憶領域であり、図6(b)の例ではAREA3に対応する。すなわち、ポインタが存在する直前のAREAである。また、転送要求されたセクタ16−31のデータが書き込まれている記憶領域はAREA1であり、したがって、判定部330は、AREA1からAREA3にかけて、データの連続性を判定する。
データの連続性は、ディスク80に記録されたデータが、その再生順にUNLOCK領域に書き込まれているか否かにより判定される。既述したように、データの連続性は、ポインタに近い記憶領域から検索される。ディスク80においてデータは、その再生順にしたがって連続するセクタに記録されているため、結局のところ、連続性の判断は、メモリ装置310に書き込まれたデータがセクタ番号順で存在するか否によることになる。判定部330は、上記したように、ポインタの直前のAREA(すなわち最新のデータが書き込まれた記憶領域)から、転送要求されたデータが書き込まれているAREAまでのセクタ情報をキャッシュ管理テーブルで確認する。このとき、各AREAに書き込まれる最初のセクタデータが16の整数倍で表現されるセクタ番号に限定されている場合には、各AREAの先頭のエリア番号が16ずつずれている場合に、データの連続性が判定されることになる。
図6(b)の例では、AREA1からAREA3にかけて、セクタ16−63のデータが連続して格納されている。したがって、判定部330は、先読みする価値が高いことを認識して、セクタ16−31に連続する48セクタ分のデータ、すなわちセクタ32−79のデータを先読みすることを決定する。このとき、キャッシュ管理テーブルにより、セクタ32−63のデータが既にメモリ装置310に格納されているため、残りのセクタ64−79のデジタルデータの先読み指示を読出部350に通知する。これにより、特にシーケンシャルデータである場合には、予め先読みしておくことで、リアルタイム再生をスムーズに行うことが可能となる。
図6(c)は、セクタ16−31のデータの読出指示を受けて、読出部350によりディスク80から読み出したデータをメモリ装置310に書き込んだ状態を示す。セクタ16−31のデータが既にAREA1に存在しているため、読出部350が同じデータをディスク80から再読込することなく、転送部340が、セクタ16−31のデータを受付部246に転送する。また読出部350は、先読み指示を受けてディスク80からセクタ64−79のデータを先読みし、先読みしたデータをメモリ装置310において連続するAREA4に書き込む。
図6(d)は、セクタ96−111のデータの読出指示を受けて、読出部350によりディスク80から読み出したデータをメモリ装置310に書き込んだ状態を示す。判定部330は、キャッシュ管理テーブルを参照した結果、セクタ96−111のデータがメモリ装置310に存在していないことを判定する。いわゆる、キャッシュがヒットしない状態に相当する。そのため判定部330は、読出部350に、セクタ96−111のデジタルデータの読込み指示と、セクタ112−159のデジタルデータの先読み指示を通知し、また転送部340にセクタ96−111のデジタルデータの転送指示を通知する。その結果、連続するAREAに、セクタ96−159までのデータが格納される。
なお、UNLOCK領域はリングバッファ方式で利用され、データがAREA(n-1)まで書き込まれると、始めのAREA0からまたデータの書込が行われる。データの書込位置はポインタの位置で特定され、ポインタはデータの書込が行われるごとに、次の識別番号の記憶領域に移動する。
上記した例では、1AREA分のデータに対して読出および転送要求が行われているが、読出および転送要求の単位はAREAではなく、読出および転送要求されるデータが連続していればよい。例えば、図6(c)に示すメモリ状態において、セクタ50−55のデータに対して読出および転送要求が行われた場合であっても、このデータが既にメモリ装置310にバッファリングされており、セクタ50のデータから最新の書込データまでのデータが連続しているため、転送処理および先読み処理が実行されることになる。なお、キャッシュ管理テーブルが、AREA識別番号と、16の倍数で表現される先頭セクタ番号とを対応付けて保持している場合には、セクタ48から最新の書込データまでの連続性が判定されることになる。
なお、先読みするデータ量を48セクタ分すなわち3AREA分と設定しているが、先読み処理において、最低限の先読みデータ量と、努力目標である最大限の先読みデータ量とが設定されていてもよい。例えば、最低限の先読みデータ量を48セクタ分とし、最大限の先読みデータ量を138セクタ分とする。上記したデータ連続性が満足されている限り、転送要求があったデータに後続する48セクタ分のデータは必ずメモリ装置310に先読みされ、まだ先読みする時間的な余裕がある場合には、さらに90セクタ分のデータが追加的に先読みされる。
この追加の先読み処理は、16セクタ分のデータを1単位とし、16セクタ分のデータごとに可能な場合に限り先読みされていく。予め多くのデータを先読みしておくことで、例えばデータ読出に瞬間的な不具合が生じる場合などに効果的に対応できるとともに、先読みデータ量に最大値を設けておくことで、中央処理装置200において要求されるデータの連続性が途絶えた場合に、無駄に先読みしていた状態を回避できる。特に、携帯型電子装置100はバッテリ駆動であり、無駄な先読み処理でディスク80を回転させるためにモータを駆動することはバッテリの浪費であり好ましくない。本実施例の先読み処理によると、データ再生の効率化とバッテリ消費量の低減化の双方を満足することが可能となる。
図7は、メモリ装置310に書き込まれたデータのバッファリング状態例を示す。なお、このバッファリングは、前述の先読みを行わないプリフェッチ指示に基づいて実行されたものとする。以下では、図7(a)〜図7(c)に示すバッファリング状態例を用いて、具体的なバッファリング処理方法を説明する。
図7(a)に示す状態では、AREA5のデータの連続性が保たれているが、AREA5とAREA4の間で連続性が途切れている。セクタ64−79のデータについて読出指示があった場合、判定部330はAREA4にセクタ64−79のデータが格納されていることを判定し、転送部340から受付部246に転送させる。このとき、最新の書込位置であるAREA5とAREA4との間で、データの連続性が失われているため、判定部330は先読み指示を読出部350に通知しない。したがって、セクタ64−79のデータ転送は行われるものの、後続するデータの先読み処理は行われないことになる。これは、バッファリングされているデータの連続性が既に損なわれていることから、今後読出要求がされるデータの連続性も損なわれていることが多いという予測に基づいている。一方、AREA4から直接データ転送を行うことで、予め先読みしていたデータを有効に利用できる。
一方、セクタ110−115のデータについて読出指示があった場合、判定部330はAREA5にセクタ110−115のデータが格納されていることを判定し、転送部340から受付部246に転送させる。このとき、AREA5では、データが連続して書き込まれているため、判定部330は先読み指示を読出部350に通知し、読出部350にセクタ116−163のデータを先読みさせる。
図7(b)に示す状態で、セクタ0−31のデータについて読出指示があった場合、判定部330は、セクタ0−31のデータが連続する記憶領域に存在しないことを判定する。AREA3にセクタ16−31のデータ、AREA0にセクタ0−15のデータが記録されているが、これらのAREAは連続していないため、キャッシュがヒットしない状態となる。判定部330は読出部350にセクタ0−31のデータの読出指示と、セクタ32−79のデータの先読み指示を送り、また転送部340にセクタ0−31のデータの転送指示を送る。
図7(c)に示す状態で、セクタ0−31のデータについて読出指示があった場合、判定部330はこのデータをポインタに近い記憶領域から検索する。AREA4にセクタ0−15のデータが存在するが、セクタ16−31のデータを包含していないため無視する。AREA0、AREA1にセクタ0−31のデータが連続して書き込まれていることを判定すると、判定部330は、転送部340にセクタ0−31のデータの転送指示を送る。なお、最新のデータが書き込まれたAREA5とAREA1との間で、データが連続して書き込まれていないため、判定部330は先読み指示を読出部350に通知しない。
以上のように、サブ処理装置300において、メモリ装置310のUNLOCK領域は、読出指示に基づいて先読みされたデータをシーケンシャルにバッファリングされる。キャッシュがヒットした場合には、そのデータをメモリ装置310から転送することで、ディスク80から読み出す場合と比較して、転送時間を短縮することができる。また、先読み処理を行う場合に一定に制限を課しておくことで、先読み処理が無駄になる事態を予め回避することができ、バッテリの省電力化に貢献できる。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
本発明の実施例である携帯型電子装置の正面図である。 携帯型電子装置の平面図である。 携帯型電子装置のハードウエア構成を示す図である。 本実施例の携帯型電子装置における中央処理装置とサブ処理装置の構成を示す図である。 メモリ装置の構造を概念的に示す図である。 読出指示を利用してメモリ装置にバッファリングする状態例を示す図である。 メモリ装置に書き込まれたデータのバッファリング状態例を示す図である。
符号の説明
240・・・分割指示部、250・・・メモリ装置、310・・・メモリ装置、320・・・領域割当部、330・・・判定部、340・・・転送部、350・・・読出部。

Claims (4)

  1. 入力データを一旦格納してその後出力するデジタルデータのバッファリング装置であって、
    連続した識別番号を割り当てられた複数の記憶領域を有するメモリ装置と、
    前記メモリ装置における複数の記憶領域を少なくとも第1領域と第2領域に分割して、含まれる記憶領域の識別番号が連続している第1領域をリングバッファ領域に割り当てる領域割当部と、
    ディスクからデジタルデータの読出を要求するコマンドを受け付ける判定部と、を備え、
    前記コマンドには所定のビットが含まれており、この所定のビットが立てられていないときには、ディスクから読み出されたデジタルデータが第1領域にバッファリングされ、この所定のビットが立てられているときには、ディスクから読み出されたデジタルデータが第2領域にバッファリングされ
    所定のビットが立てられていないコマンドは、先読みを要求する設定とされ、所定のビットが立てられたコマンドは先読みを行わない設定とされることを特徴とするバッファリング装置。
  2. 複数の記憶領域を分割するための分割指示を生成する分割指示部をさらに備え、
    前記領域割当部は、生成された前記分割指示をもとに、前記メモリ装置における複数の記憶領域を分割することを特徴とする請求項1に記載のバッファリング装置。
  3. 前記分割指示部は、第1領域と第2領域の境界を指定する前記分割指示を生成することを特徴とする請求項2に記載のバッファリング装置。
  4. 連続した識別番号を割り当てられた複数の記憶領域を有するメモリ装置の利用方法であって、
    複数の記憶領域を分割するための分割指示を生成するステップと、
    生成された前記分割指示をもとに、前記メモリ装置における複数の記憶領域を少なくとも第1領域と第2領域に分割して、含まれる記憶領域の識別番号が連続している第1領域をリングバッファ領域に割り当てるステップと、
    ディスクからデジタルデータの読出を要求するコマンドを受け付けるステップと、を備え、
    コマンドに含まれる所定のビットが立てられていないときには、ディスクから第1の種類のデータを読み出して第1領域にバッファリングするステップと、
    コマンドに含まれる所定のビットが立てられているときには、ディスクから第1の種類のデータとは異なる第2の種類のデータを読み出して第2領域にバッファリングするステップと、
    をさらに備え、
    第1の種類のデータは、バッファリング後にシーケンシャルに第1領域から読み出されるべきデータであることを特徴とするメモリ装置の利用方法。
JP2004352019A 2004-12-03 2004-12-03 バッファリング装置およびメモリ装置の利用方法 Active JP4439384B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2004352019A JP4439384B2 (ja) 2004-12-03 2004-12-03 バッファリング装置およびメモリ装置の利用方法
US11/291,489 US7415592B2 (en) 2004-12-03 2005-12-01 Ring-buffer based buffering apparatus and method of using memory apparatus
AT05257424T ATE415663T1 (de) 2004-12-03 2005-12-02 Ringpufferbasiertes puffergerät und verfahren zur speichergeräteverwendung
EP20050257424 EP1669876B1 (en) 2004-12-03 2005-12-02 Ring-buffer based buffering apparatus and method of using memory apparatus
DE200560011237 DE602005011237D1 (de) 2004-12-03 2005-12-02 Ringpufferbasiertes Puffergerät und Verfahren zur Speichergeräteverwendung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004352019A JP4439384B2 (ja) 2004-12-03 2004-12-03 バッファリング装置およびメモリ装置の利用方法

Publications (2)

Publication Number Publication Date
JP2006163641A JP2006163641A (ja) 2006-06-22
JP4439384B2 true JP4439384B2 (ja) 2010-03-24

Family

ID=36102621

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004352019A Active JP4439384B2 (ja) 2004-12-03 2004-12-03 バッファリング装置およびメモリ装置の利用方法

Country Status (5)

Country Link
US (1) US7415592B2 (ja)
EP (1) EP1669876B1 (ja)
JP (1) JP4439384B2 (ja)
AT (1) ATE415663T1 (ja)
DE (1) DE602005011237D1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7802062B2 (en) 2007-09-28 2010-09-21 Microsoft Corporation Non-blocking variable size recyclable buffer management
JP4634477B2 (ja) * 2008-03-07 2011-02-16 レノボ・シンガポール・プライベート・リミテッド メディア・ファイルの中断のない再生方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5487066A (en) * 1988-03-21 1996-01-23 First Pacific Networks, Inc. Distributed intelligence network using time and frequency multiplexing
US5381528A (en) * 1992-10-15 1995-01-10 Maxtor Corporation Demand allocation of read/write buffer partitions favoring sequential read cache
JP3586887B2 (ja) * 1994-06-10 2004-11-10 松下電器産業株式会社 情報記録再生装置およびデータキャッシュ方法
US5566317A (en) 1994-06-14 1996-10-15 International Business Machines Corporation Method and apparatus for computer disk drive management
JP3898782B2 (ja) * 1996-08-23 2007-03-28 オリンパス株式会社 情報記録再生装置
US6408409B1 (en) * 1999-11-15 2002-06-18 Sun Microsystems, Inc. Method and apparatus for ring buffer flow error detection
US6532513B1 (en) * 1999-11-16 2003-03-11 Matsushita Electric Industrial Co., Ltd. Information recording and reproduction apparatus
JP3915368B2 (ja) * 2000-03-31 2007-05-16 株式会社日立製作所 情報記録再生装置、及び、その記録、再生方法

Also Published As

Publication number Publication date
EP1669876B1 (en) 2008-11-26
EP1669876A1 (en) 2006-06-14
DE602005011237D1 (de) 2009-01-08
US20060140204A1 (en) 2006-06-29
ATE415663T1 (de) 2008-12-15
US7415592B2 (en) 2008-08-19
JP2006163641A (ja) 2006-06-22

Similar Documents

Publication Publication Date Title
JP4837891B2 (ja) メディアプレーヤーを用いたメディアアイテムの再生方法
JP3118189B2 (ja) Cd−rom再生装置及びその制御方法
US20060047889A1 (en) Memory device and controlling method for nonvolatile memory
TW200830097A (en) Method and apparatus for saving power for a computing system by providing instant-on resuming from a hibernation state
KR20070008548A (ko) 부트-업 속도를 증가시키는 방법
US20090087168A1 (en) Method and apparatus for reproducing media contents using non-volatile storage medium
JP2009163557A (ja) 情報処理装置
JP4634477B2 (ja) メディア・ファイルの中断のない再生方法
JP2007034537A (ja) 複合型記憶装置、データ書込方法及びプログラム
JP4364878B2 (ja) 演算処理装置
JP2005302152A (ja) 複合型記憶装置、データ書込方法及びプログラム
JP4439385B2 (ja) バッファリング装置およびバッファリング方法
JP4439384B2 (ja) バッファリング装置およびメモリ装置の利用方法
WO2007099421A2 (en) Cache feature in electronic devices
US6393498B1 (en) System for reducing processor workloads with memory remapping techniques
JP2005196781A (ja) 携帯端末機で補助メモリのファイルを処理する方法
KR100673093B1 (ko) 휴대형 멀티미디어 재생기에서 다중 파일 캐싱을 이용한리얼타임 멀티미디어 파일 재생 방법
JP4835977B2 (ja) 情報処理装置
JP2006127401A (ja) 媒体記憶装置、媒体記憶装置のキャッシュセグメント切り替え方法、及び媒体記憶システム
JP2005301885A (ja) データ記憶媒体へのアクセス方法,情報処理装置,データ記憶媒体へのアクセスプログラム
WO2021090608A1 (ja) 情報処理装置およびファイル生成方法
JP2008158572A (ja) データ記憶装置
JP2006163643A (ja) 電源制御装置、データ読出装置および電源制御方法
JP4664869B2 (ja) データ記録システム
JP2008009506A (ja) 情報処理装置及びそのファイルアクセス方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091208

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100105

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130115

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4439384

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130115

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140115

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250