JP2007310760A - 記憶装置 - Google Patents
記憶装置 Download PDFInfo
- Publication number
- JP2007310760A JP2007310760A JP2006140981A JP2006140981A JP2007310760A JP 2007310760 A JP2007310760 A JP 2007310760A JP 2006140981 A JP2006140981 A JP 2006140981A JP 2006140981 A JP2006140981 A JP 2006140981A JP 2007310760 A JP2007310760 A JP 2007310760A
- Authority
- JP
- Japan
- Prior art keywords
- buffer memory
- data
- address control
- control unit
- storage device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 239000000872 buffer Substances 0.000 claims abstract description 285
- 238000012546 transfer Methods 0.000 claims description 163
- 238000012545 processing Methods 0.000 claims description 103
- 230000006870 function Effects 0.000 claims description 12
- 238000000034 method Methods 0.000 description 59
- 230000008569 process Effects 0.000 description 54
- 238000006243 chemical reaction Methods 0.000 description 17
- 238000007726 management method Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 14
- 230000000694 effects Effects 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000011094 buffer selection Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005291 magnetic effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000011347 resin Substances 0.000 description 1
- 229920005989 resin Polymers 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Abstract
【課題】情報端末からのフラッシュメモリとICカードへの並列アクセスを行うことができ、また、フラッシュメモリから情報端末とICカードへのデータ転送を並列に行うことができる記憶装置を提供する。
【解決手段】記憶装置において、フラッシュメモリデバイス130へのアクセスに用いられるフラッシュメモリバッファと、ICカードデバイス180へのアクセスに用いられるICカードバッファを持ち、かつそれらはデータの読み出しに用いられるREADバッファとデータの書き込みに用いられるWRITEバッファに分けて管理し、記憶装置に接続された情報端末、記憶装置内部のICカード、フラッシュメモリへのアクセスを制御するアドレス制御部(160、162、164)と、それらのデータ転送時の競合を調停するアドレス制御管理部190を備えた。
【選択図】図1
【解決手段】記憶装置において、フラッシュメモリデバイス130へのアクセスに用いられるフラッシュメモリバッファと、ICカードデバイス180へのアクセスに用いられるICカードバッファを持ち、かつそれらはデータの読み出しに用いられるREADバッファとデータの書き込みに用いられるWRITEバッファに分けて管理し、記憶装置に接続された情報端末、記憶装置内部のICカード、フラッシュメモリへのアクセスを制御するアドレス制御部(160、162、164)と、それらのデータ転送時の競合を調停するアドレス制御管理部190を備えた。
【選択図】図1
Description
本発明は汎用的な処理機能と不揮発性記憶領域を持つ記憶装置に関し、特に、内部でのアクセス処理に適用して有効な技術に関する。
従来、汎用的な処理機能と不揮発性記憶領域を持つ記憶装置としては、国際公開第2004/034318パンフレット(特許文献1)に記載されたICカードおよびアダプタがあった。これは、ICカードとフラッシュメモリ、および制御回路を有する構成の記憶装置であり、制御回路により、ICカードとフラッシュメモリへのアクセスを制御するものである。
また、ホスト機器からの要求に応じて、フラッシュメモリチップとICカードチップの両方にアクセスする記憶装置が、特開2003−22216号公報(特許文献2)に記載されている。
国際公開第2004/034318パンフレット
特開2003−22216号公報
しかしながら、特許文献1に記載の記憶装置は、接続された情報端末からのアクセスに応じてICカードとフラッシュメモリの相互にアクセスする必要があるが、その処理は排他的であり、ICカードのアクセスが発生している際にはフラッシュメモリの、フラッシュメモリがアクセスされている際にはICカードのアクセスが制限されるという問題があった。
また、特許文献2に記載の記憶装置は、フラッシュメモリチップとICカードチップの両方にアクセスはしているが、ホスト機器からの要求でフラッシュメモリチップとICカードチップの両方にアクセスするものであり、記憶装置のみでのフラッシュメモリチップとICカードチップと間のデータ転送は行わず、データ転送などは、ホスト機器からの要求のみで行われていた。
そこで、本発明の目的は、情報端末からのフラッシュメモリとICカードへの並列アクセスを行うことができ、また、フラッシュメモリから情報端末とICカードへのデータ転送を並列に行うことができる記憶装置を提供することにある。
また、記憶装置内の複数のバッファにより、情報端末、フラッシュメモリ、ICカード間のデータの転送効率を向上させることができる記憶装置を提供することにある。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
本発明による記憶装置は、情報端末が接続されるインターフェースと、不揮発性の記憶領域を有する記憶部と、汎用のデータ処理機能を有する処理部と、記憶部へのデータ書き込み時のデータを格納する第1のバッファメモリと、記憶部からのデータ読み出し時のデータを格納する第2のバッファメモリと、処理部へのデータ書き込み時のデータを格納する第3のバッファメモリと、処理部からのデータ読み出し時のデータを格納する第4のバッファメモリと、第1のバッファメモリ、第2のバッファメモリ、第3のバッファメモリ、および第4のバッファメモリと情報端末との間のデータ転送を制御する第1のアドレス制御部と、第1のバッファメモリ、第2のバッファメモリ、第3のバッファメモリ、および第4のバッファメモリと処理部との間のデータ転送を制御する第2のアドレス制御部と、第1のバッファメモリ、第2のバッファメモリ、第3のバッファメモリ、および第4のバッファメモリと記憶部との間のデータ転送を制御する第3のアドレス制御部とを備え、第1のアドレス制御部、第2のアドレス制御部、および第3のアドレス制御部は、データを転送する際、第1のバッファメモリ、第2のバッファメモリ、第3のバッファメモリ、および第4のバッファメモリの状態に基づいて、データの転送制御を行うものである。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
本発明によれば、情報端末からのフラッシュメモリとICカードへの並列アクセスにより処理効率が向上するという効果を奏する。
また、フラッシュメモリから情報端末とICカードへのデータ転送を並列に行うことが可能となることで処理効率が向上するという効果を奏する。
また、ICカードデバイスへのデータ入出力に上記のフラッシュメモリへのアクセスを主目的とするバッファと、ICカードへのアクセスに主に用いられるバッファの双方を用いることが可能となるため、処理効率が向上するという効果を奏する。
また、連続して情報端末からフラッシュメモリへの転送並びにフラッシュメモリから情報端末への転送を行う場合にフラッシュメモリへのアクセスを主目的とするバッファの読み出しを主目的とするバッファと書き込みを主目的とするバッファを交互に利用することにより転送効率が向上するという効果を奏する。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
<記憶装置の構成>
図1により、本発明の一実施の形態に係る記憶装置の構成について説明する。図1は本発明の一実施の形態に係る記憶装置の構成を示す構成図である。
図1により、本発明の一実施の形態に係る記憶装置の構成について説明する。図1は本発明の一実施の形態に係る記憶装置の構成を示す構成図である。
図1において、記憶装置100は、インターフェース110と、コントローラデバイス120、フラッシュメモリデバイス130、ICカードデバイス180を有する。ここで記憶装置100には、メモリーカード、USBメモリ、HDD、ICカードなどの情報記憶媒体等が該当する。
インターフェース110は、外部の端末とコマンドコード、データ、クロック、電源、媒体セレクト信号等をやりとりするためのインターフェースであり、MMC(MultiMediaCardの略である)、SDメモリカード、USB、ATA、ISO7816、LAN等の接触インターフェースや、IEEE 802.11b、Bluetooth、ISO 14443 TypeA等の非接触インターフェースであってもよい。
また、後述するように、これらの通信インターフェースを組み合わせたものであってもよい。
コントローラデバイス120は、記憶装置100内部を制御する回路であり、通信制御回路の他に、CPU、メモリ、EEPROMが含まれる構成であってもよい。コントローラデバイス120は、それらの機能の他に第1のバッファメモリであるフラッシュWRITEバッファ150、第2のバッファメモリであるフラッシュREADバッファ152、第3のバッファメモリであるICカードWRITEバッファ154、第4のバッファメモリであるICカードREADバッファ156、第1〜第3のアドレス制御部であるアドレス制御部(160、162、164)、アドレス制御管理部190を含む。
フラッシュWRITEバッファ150、フラッシュREADバッファ152、ICカードWRITEバッファ154、ICカードREADバッファ156はSRAMやDRAMのような揮発性のメモリ素子からなるデバイスであり、一続きのメモリ空間を分割したものであってもよいが、ここではその役割から4つの領域に分けて扱っている。
また、フラッシュWRITEバッファ150、フラッシュREADバッファ152と、ICカードWRITEバッファ154、ICカードREADバッファ156についても取り扱うデータの種類から、ここでは分けて扱い、図1においてもそのように記載している。
また、各バッファの容量は、例えば、主にフラッシュメモリデバイス130のバッファとして用いられるフラッシュWRITEバッファ150およびフラッシュREADバッファ152はデータの転送量なども多いため、大きな容量のバッファを使用し、主にICカードデバイス180のバッファとして用いられるICカードWRITEバッファ154およびICカードREADバッファ156はICカードデバイス180との間のデータは少ないため、フラッシュWRITEバッファ150およびフラッシュREADバッファ152の容量よりは小さい容量のバッファが使用される。
例えば、フラッシュWRITEバッファ150およびフラッシュREADバッファ152はそれぞれ2Kバイトのバッファ、ICカードWRITEバッファ154およびICカードREADバッファ156は256バイトのバッファを使用する。
なお、ICカードWRITEバッファ154およびICカードREADバッファ156は、フラッシュWRITEバッファ150およびフラッシュREADバッファ152の替わりとして一時的に使用されることもあるため、フラッシュWRITEバッファ150およびフラッシュREADバッファ152の基本的な転送単位である512バイトの容量としてもよい。
アドレス制御部(160、162、164)は接続された各メモリの入出力を制御するモジュールであり、論理回路またはコントローラ上で動作するプログラムとして実装されていてもよい。また、アドレス制御部(160、162、164)はデータ入出力の切り替えだけではなく、転送アドレスの変換を行ってもよい。
この処理はコントローラデバイス120上に予め組み込まれたプログラムや回路、特定のアドレスへのアクセスや、外部コマンドがトリガーになっていてもよいが、ICカードデバイス180のようなプログラマブルなデバイスの指示によりアドレス変換の仕組みを決定できてもよい。
この場合、記憶装置100の初期化時にコントローラデバイスはICカードデバイスと通信し、変換の仕組みをロードしてもよい。その場合、アドレス制御部(160、162、164)はロードされたパターンを用いることでアドレス変換の仕組みを制御してもよい。また、このような仕組みをアドレス制御管理部190が行ってもよい。その場合、アドレス制御部(160、162、164)はデータ入出力の際にアドレス制御管理部190にアドレス変換の有無を訪ねてもよい。この時アドレス変換部(160、162、164)は予め決められたタイミングまたは直前に問い合わせた時に指示されたタイミングによりICカードデバイス180にアドレス変換のパターンを問い合わせることにより、動的にアドレス変換のパターンを変更できる仕組みであってもよい。
その際にICカードデバイス180上のパターンを送出するソフトウエアは、予め定められたアドレス変換機能によりアドレス変換のパターンを生成してもよく、それらは予め定められたタイミングでパターンの変換を行ったり、フラッシュメモリデバイス130の内容や、外部インターフェースから入力されたコマンドをトリガーにしてパターンの変換を行う仕組みであってもよい。
例えば、ログ情報の格納を行う場合で、外部からは格納位置の特定を行わせたくない場合、フラッシュメモリデバイス130上のアドレスをアドレス制御部160または164が制御することにより、端末200からのアクセス制限を行うことと同時に、ログ情報が上書きされないように毎回異なるアドレスにすることや、ログ情報格納領域がすべて埋まった際に古いデータを消去して書き込むなどの操作を行うことが可能となる。
アドレス制御管理部190は、バッファの利用状態と各データ出力バスの状態に関する情報を管理し、アドレス制御部が複数ある場合に、各アドレス制御部の競合を調停する役割を果たすモジュールであり、論理回路またはコントローラ上で動作するプログラムとして実装されていてもよい。
アドレス制御管理部190はフラッシュWRITEバッファ150、フラッシュREADバッファ152、ICカードWRITEバッファ154、ICカードREADバッファ156の利用を排他制御またはキューにより管理してもよい。アドレス制御部(160、162、164)はデータ転送先にバッファを指定する場合、そのバッファにデータを格納可能かどうかをアドレス制御管理部190に問い合わせてもよい。
そのバッファが利用可能ならばアドレス制御管理部190は指定されたバッファにデータを点数するための伝送路をロックし、メッセージをアドレス制御部(160、162、164)に返してもよい。
また、アドレス制御管理部190は、テーブルやフラグを持つことにより、複数のアドレス制御部(160、162、164)の動作時の競合の調停を行うようにしてもよいし、各アドレス制御部(160、162、164)が、アドレス制御管理部190やその他の記憶部に格納されたテーブルやフラグを参照することにより、それぞれが競合の調停を行うようにしてもよい。
ここで、簡単のために以下の説明ではアドレス制御部(160、162、164)が転送路のロックを行うように記述するが、実際の処理はアドレス制御管理部190が行う。
ロック状態はアドレス制御部(160、162、164)が利用完了通知をアドレス制御管理部190に返すことで解除される。ただし、各バッファの利用状態をキューにより管理できるならば、アドレス制御管理部190は要求をキューとしてためておき、利用可能となった段階で利用許可を与えてもよい。
これらのバッファメモリと各アドレス制御部(160、162、164)の接続は汎用バスのようなデータ通信路を介して行われてもよいが、専用のメモリアクセスバスを通して行ってもよい。
このとき、各アドレス制御部(160、162、164)が個別にメモリアクセスバスを持ってもよい。その場合、複数のバッファメモリ領域を有している効果とあわせて、処理効率が向上するという効果がある。この向上のプロセスについては後述する。
また、専用のメモリアクセスバスを持たない場合でも、複数のメモリ領域を持つことで、処理のパイプライン化が可能であり、結果として処理効率が向上する効果を持つ。アドレス制御部(160、162、164)はアドレス制御管理部190により、データの流れを制御する。
記憶部であるフラッシュメモリデバイス130は、外部より電力を供給されてない状態でも書き込んだ情報を保持する装置であり、フラッシュメモリ、磁気ディスク、EEPROM、強磁性体メモリ等が該当する。したがって、SDRAM等の揮発性記憶装置と、SDRAMにデータ保持のための電力を供給するバッテリー装置を組み合わせた構成であってもよい。また不揮発性記憶装置は、記憶装置の外部からは直接操作できないアクセス制限領域を持ってもよい。
処理部であるICカードデバイス180はCPU、RAM、ROM、EEPROM、データバス、インターフェース回路、クロックジェネレータ、シリアル−パラレルデータ変換回路等から構成される処理装置であり、JAVA(登録商標)カード、MULTOSカード等に利用されているセキュリティチップや、同等の構成を持つものが該当する。
ICカードデバイス180はオペレーティングシステムを搭載していてもよく、そのオペレーティングシステム上で任意のソフトウエアが動作可能であってもよい。
また、図1ではICカードデバイス180をコントローラデバイス120に接続する構成を取っているが、ICカードデバイス180が2つ以上のIOポートを有するならば、コントローラデバイス120と接続されていない端子は、コントローラデバイス120に接続されずに直接外部インターフェースに接続されていたり、コントローラデバイス120を介するものの、中の制御回路とは独立または、伝送インターフェースの変換やデータのバッファリングのみを行う形で外部インターフェースと接続される形式であってもよい。
ここで伝送インターフェースの変換とは、シリアル−パラレル変換や、RF(Radio Frequencyの略である)変換、ATAやMMC等の命令セットへの変換や、これらのデータのUSBインターフェースへの変換などが該当する。
また、IOポートは1つであるものの、インターフェースからの入力に応じて上記のような外部インターフェースとの接続方法と伝送経路が切り替え可能な形式であってもよい。
ICカードデバイス180がセキュリティ処理を主目的とする場合、消費電流や外部クロックを変化させることによる内部動作解析や、ICのレジンコーティングやメタル層を除去することによるプローブによる解析から内部の動作およびメモリの内容を保護する耐タンパー化が施されていてもよい。
図1で示した構成により、複数の目的でのフラッシュメモリアクセス、複数の目的での外部インターフェースからのデータ入出力、複数の目的でのICカードデバイスアクセスの並列処理が可能となる効果がある。また、データ入出力処理の高速化が可能になる効果がある。
ここで複数の目的とは、外部からのデータアクセスと内部処理のためのデータアクセスが発生する場合など、データ要求元またはデータ送出先が異なる場合を意味している。ただし、複数の目的での利用は、単一での目的での利用を拡張したものであり、単一での目的での利用が制限されるものではない。
<記憶装置の動作>
次に、図2〜図6により、本発明の一実施の形態に係る記憶装置の動作について説明する。図2は本発明の一実施の形態に係る記憶装置のフラッシュメモリデバイスのデータの並列処理を示すフローチャート、図3は本発明の一実施の形態に係る記憶装置の情報端末からのデータの並列転送処理を示すフローチャート、図4は本発明の一実施の形態に係る記憶装置のICカードデバイスへのデータ転送を示すフローチャート、図5は本発明の一実施の形態に係る記憶装置の情報端末からのデータ転送を示すフローチャート、図6は本発明の一実施の形態に係る記憶装置の異なる接続形態を説明するための説明図である。
次に、図2〜図6により、本発明の一実施の形態に係る記憶装置の動作について説明する。図2は本発明の一実施の形態に係る記憶装置のフラッシュメモリデバイスのデータの並列処理を示すフローチャート、図3は本発明の一実施の形態に係る記憶装置の情報端末からのデータの並列転送処理を示すフローチャート、図4は本発明の一実施の形態に係る記憶装置のICカードデバイスへのデータ転送を示すフローチャート、図5は本発明の一実施の形態に係る記憶装置の情報端末からのデータ転送を示すフローチャート、図6は本発明の一実施の形態に係る記憶装置の異なる接続形態を説明するための説明図である。
まず、図2は端末200からフラッシュメモリデバイス130へのデータ転送と、フラッシュメモリデバイス130内のデータをICカードデバイス180が処理し、再びフラッシュメモリデバイス130に書き戻す処理を例示しており、このような処理を行うケースとしては、端末200からのデータ転送処理がログ情報を格納し、格納したログ情報をICカードデバイス180で検証するような処理が該当する。
また、この他に、ICカードデバイス180でデータを暗号化、スクランブル化するなどの処理を行ってもよく、この場合、データ転送速度を犠牲にせずにセキュリティ処理を施すことが可能となる効果がある。
また、フラッシュメモリデバイス130からのデータ読み出しは直前に格納したデータである必要はなく、任意にタイミングでの任意のアドレスへのアクセスであってもよい。
また、データの読み出しと書き込みが対になっている必要はなく、読み出しのみ、書き込みのみが行われてもよい。また、読み出しと書き込みが行われる際にそのアドレスは異なっていてもよい。
まず、端末200上のデータ230は、アドレス制御部160により指定されたフラッシュWRITEバッファ150にデータを転送する(ステップ210)。フラッシュWRITEバッファ150上のデータ233は、アドレス制御部164により指示されたタイミングでフラッシュメモリデバイス130に格納される(ステップ212)。
格納が終了した場合、コントローラデバイス120は端末200に処理結果を通知する(ステップ214)。ここで、データ(230、233,235)は、インターフェースにあわせた形式でエンコードされており、アドレスや命令コードを持っていてもよく、転送する毎に変化してもよい。
例えば、データ233がフラッシュメモリデバイス130への格納アドレスを含んだ形である場合、フラッシュメモリデバイス130に格納後のデータ235はアドレスに関するデータを含まなくてもよい。
また、端末200インターフェースとの通信が暗号化されていたり、データ格納時にバルク暗号処理が施される場合などは、ステップ210またはステップ212のタイミングで、またフラッシュWRITEバッファ150にデータがある際にデータの暗復号処理等のデータ処理を行ってもよい。
以下においても、特に断らない限り、アドレス制御部(160、162、164)がデータを処理するタイミングまたはフラッシュWRITEバッファ150、フラッシュREADバッファ152、ICカードWRITEバッファ154、ICカードREADバッファ156にデータがあるタイミングで上記のようなデータ処理を行ってもよい。
ステップ214により通知を受け取った後、端末200は新しいデータ240を転送し(ステップ216)、アドレス制御部160により指定されたフラッシュWRITEバッファ150に格納する。
フラッシュWRITEバッファ150は、データ243をアドレス制御部164により指示されたタイミングでフラッシュメモリデバイス130に格納する(ステップ218)。格納が終了すると、コントローラデバイス120は、終了通知を端末200に転送する(ステップ220)。
このような通常のデータ転送シーケンスと並列に、ステップ212の終了後にフラッシュメモリデバイス130にあるデータ235はICカードデバイス180での処理のために、アドレス制御部164により、ICカードWRITEバッファ154に転送される(ステップ250)。ICカードWRITEバッファ154にデータが格納されると、アドレス制御部162はデータ270をICカードデバイス180に転送する(ステップ252)。
このときのステップ252はステップ216とタイミング的に重なる可能性がある。仮にタイミングが重なる場合でも利用するWRITEバッファが異なり、また、端末200からフラッシュWRITEバッファ150と、ICカードWRITEバッファ154からICカードデバイス180のデータ伝送経路、それぞれのデータの転送を制御するアドレス制御部(160、162)も異なることから、これらの処理は並列に実行可能となる。
ただし、アドレス制御部の動作をコントローラデバイス120上の1つのCPUが処理する場合、それぞれの処理は同時には実行できないが、その場合でもデータ転送要求とデータ転送完了通知を割り込み処理としてCPUに知らせることにより、干渉を極力減らした形で処理の効率化を図れるという効果がある。
以下、同じシーケンスラインで同時にデータ転送が発生する場合が記述されるが、特に断りがない限りここで示したようにそれぞれの処理は並列化されて実行されている。
また、各データのシーケンスは便宜的にタイミングをあわせて記載しているが、実際には処理するデータ量、または、インターフェースの転送速度、データ処理に要する時間により、正確に図のよう切り分けられるものではない。
ただし、データ格納時の転送先と転送元のバッファは、フラッシュメモリデバイス130とICカードデバイス180で分かれており、さらに、それぞれWRITEバッファ、READバッファに分かれており、バッファが異なることにより、処理の実行中に他の処理で利用中のデータが破壊されるおそれはなく、また、インターフェース110とアドレス制御部160、ICカードデバイス180とアドレス制御部162、フラッシュメモリデバイス130とアドレス制御部164の間の転送バスにおける競合は各アドレス制御部(160、162,164)およびアドレス制御管理部190が調停するため転送処理が中止されたままになることはないという効果を持つ。
例えば、ステップ218のフラッシュメモリデバイス130へのデータ転送とステップ256の処理は重なるおそれがあるが、それぞれのデータが格納されているバッファが異なり、かつアドレス制御部164がこれらの処理を排他的に切り分けることによりデータが破壊されるおそれなく処理を継続できる。このことは他のケースにおいても同様である。
ICカードデバイス180で処理されたデータ275は、アドレス制御部162により指定されたICカードREADバッファ156に格納される(ステップ254)。ICカードREADバッファ156上のデータ280はアドレス制御部164により指示されたタイミングでフラッシュメモリデバイス130に格納される(ステップ256)。
このときデータ285のアドレスはデータ235のアドレスと異なっていてもよい。このように動作することでフラッシュメモリデバイス130へのアクセスに関するステップ230からステップ245までの処理と、ステップ250からステップ256までの処理は並列化が可能となり、処理が高速化される。
また、図3は端末200がデータをフラッシュメモリデバイス130に格納する処理と、端末200がデータをICカードデバイス180で計算させる処理を例示したものであり、このような処理を行うケースとしては、コンテンツの転送処理を行いながら、ICカードデバイス180での課金処理を行う場合等が該当する。
図3においては、ステップ310からステップ320までの処理とデータ(330、333、335、390、393、395)は、それぞれ図2のフォローチャートにおけるステップ210からステップ220までの処理と、データ(230、233、235、240、243、245)と同等であり、説明は省略する。
このような処理の実行中に、記憶装置100がICカード処理の実行を許可している場合、端末200から転送されたデータ370がアドレス制御部160により選択されたICカードWRITEバッファ154に転送される(ステップ350)。
ICカードWRITEバッファ154にあるデータ373はアドレス制御部162により指定されたタイミングでICカードデバイス180に送られる(ステップ352)。
ICカードデバイス180で計算されたデータ375はアドレス制御部162により指定されたICカードREADバッファ156に格納される(ステップ354)。ICカードREADバッファ156上のデータ377はアドレス制御部160により指定されたタイミングで端末200に転送される。
ここでもフラッシュメモリアクセスとICカード処理において利用するバッファは、フラッシュWRITEバッファ150、ICカードWRITEバッファ154、ICカードREADバッファ156と異なっており、また、端末200との通信はアドレス制御部160が端末200との間での転送バス上の競合を調停するため、それぞれの処理を実行中に他の処理のデータが破壊されるおそれはないという効果を持つ。
図3に示すように、それぞれの処理において他の処理の影響を軽微にできるため、並列度を向上させるという効果を持つ。このように動作することで端末200からのアクセスに関するステップ310からステップ320までの処理と、ステップ350からステップ356までの処理は並列化による高速実行が可能となる。
また、図4は端末200がデータをICカードデバイス180で計算させる処理と、フラッシュメモリデバイス130上のデータをICカードデバイス180で計算させる処理とを例示したものであり、このような処理を行うケースとしては、ICカードデバイス180での決済処理後に決済処理の履歴やバランスシートをフラッシュメモリに格納する処理等が該当する。
まず、端末200がICカードデバイス180で処理を行うために用意したデータ450は、アドレス制御部160によって指定されたICカードWRITEバッファ154に送られる(ステップ410)。
ICカードWRITEバッファ154上のデータ453は、アドレス制御部162によって指定されたタイミングでICカードデバイス180に送られる(ステップ412)。
ICカードデバイス180で計算されたデータ455は、アドレス制御部162によって指定されたICカードREADバッファ156へ送られる(ステップ414)。
ICカードREADバッファ156上のデータ457は、アドレス制御部160によって指定されたタイミングで端末200へ送られる。
この処理と平行してフラッシュメモリデバイス130上のデータ470をICカードデバイス180で処理したい場合、アドレス制御部164は既にICカードWRITEバッファ154とICカードREADバッファ156の組が利用されているためにアドレス制御部164はフラッシュWRITEバッファ150とフラッシュREADバッファ152の利用を選択し、フラッシュWRITEバッファ150をデータ470の転送先として選択する(ステップ420)。
次に、アドレス制御部162によって指定されたタイミングでデータ475はICカードデバイス180に転送される(ステップ422)。ICカードデバイス180により計算された後に、処理後のデータ480はアドレス制御部162により選択されたフラッシュREADバッファ152に転送される(ステップ424)。
フラッシュWRITEバッファ150上のデータ485はアドレス制御部164の指定したタイミングでフラッシュメモリデバイス130に格納される(ステップ426)。
ここでフラッシュメモリデバイス130からのデータ読み出しが必要ないならば、ステップ420およびステップ422は省略してもよい。
また、ステップ420はステップ410の後に始まっているが、ステップ412が終了した以降に始まってもよい。
これらの場合、データ転送要求元はICカードデバイス180であると考えられるため、ICカードデバイス180からの通知をトリガーにしてステップ412以降が開始される。
その際のデータ通信要求は、ICカードデバイス180とコントローラデバイス120の間の通常のデータ転送路の他に専用の通信路を設け、そこからフラッシュメモリアクセスが指示されてもよいし、データ転送を伴わない端末200からのコマンドに応じて開始されてもよい。
また、ステップ414を通じてICカードREADバッファ156に格納されるデータ457にその指定が含まれていてもよい。
また、ICカードアクセス後等にコントローラデバイス120が発行する特定の命令によりその情報がコントローラデバイス120に通知されてもよい。
図4においては、ステップ412とステップ422の処理が同時に発生する可能性がある。この場合、アドレス制御部162は片方の通信が完了するまで、もう片方の通信を待たせておく。
例えば、ステップ412が優先して処理される場合、ステップ412とステップ414が終了するまでステップ422の実行を待たせておいてもよい。この結果、ステップ414とステップ424が同時に発生する可能性はなくなる。
以上のように、ステップ410からステップ416までの処理と、ステップ420からステップ426までの処理は利用するバッファが、フラッシュWRITEバッファ150、フラッシュREADバッファ152、ICカードWRITEバッファ154、ICカードREADバッファ156と異なっており、また、ICカードデバイス180との通信は、アドレス制御部162がICカードデバイス180との間での転送バス上での競合を調停するため、それぞれの処理を実行中に他の処理のデータが破壊されるおそれはないという効果を持つ。したがって処理の並列化に高速実行が可能となる。
図5は端末200からフラッシュメモリデバイス130への転送処理が連続して発生した場合の処理を表しており、従来では、図2〜図4に示すフローチャートで説明してきた動作の場合、ICカードデバイス180のような処理機能とフラッシュメモリデバイス130のような記憶領域を持つデバイスでは、他方のデータ処理を行っている際のデバイス間の調停を端末200となる機器が行わなければならず性能の向上しないという問題があった。
そのため、本実施の形態のように転送処理用のバッファを2つに分けることでデータ転送時のバッファの競合をなくし、また、読み出し用のバッファと書き込み用のバッファに分けることでデータ処理のパイプライン化が可能となる。
いままでの説明によれば、端末200からのデータをICカードデバイス180で処理させる場合、データはICカードWRITEバッファ154からICカードデバイス180に送られ、計算された後に結果がICカードREADバッファ156に格納され端末200に返されることになる。
したがって、ICカードWRITEバッファ154やICカードREADバッファ156が1つ以上のデータを格納できるだけのサイズを有するならば、それらのデータをキューで管理し、複数の命令を同時に受け付けておくことが可能となる。
これは端末200からのデータ転送やフラッシュメモリデバイス130からのデータ読み出しについても同様である。
例えば、フラッシュメモリ等のデバイスは、あるサイズのメモリセル毎に一括して読み書きするように設計されているため、連続してデータ転送がある場合にはデータが書き換えのサイズに達した段階でデータを転送するとデータ処理効率が高まる。
このとき、少なくともデータ書き換えサイズのデータバッファが2つあれば、データ書き込み処理とデータ転送処理を並列して行えるため、よりデータ転送処理の効率が増すという効果がある。
図5において端末200上のデータ550は、アドレス制御部160により指定されたフラッシュWRITEバッファ150に転送される。このときデータ550がフラッシュメモリデバイス130のデータ書き込みサイズに満たない場合で、さらに連続してデータがくることがわかっている場合、データが来るのを待ち、データが書き込みサイズまたはフラッシュWRITEバッファ150のサイズに達した後に処理512を行ってもよい。
ここで連続してデータが転送されるかどうかは、端末200からデータに付随して送られてくるコマンドによって識別してもよい。MMCのようなメモリカードでは、シングルデータ転送命令とマルチデータ転送命令が用意されており、この場合、マルチデータ転送命令と転送サイズをトリガーにこの制御を行ってもよい。
この制御は以下のステップ514においてフラッシュREADバッファ152を転送先に指定可能とするかどうかを決める際の情報としてもよい。
アドレス制御部164は先ほど示したような指定したタイミングでフラッシュメモリデバイス130にデータを転送する(ステップ512)。ステップ512が実行中にさらに端末200からデータ560の転送要求が生じた場合、アドレス制御部160は、フラッシュREADバッファ152が使われていないならばフラッシュREADバッファ152にデータを転送してもよい(ステップ514)。
この場合、このステップ514での処理は、ステップ512での処理で利用するフラッシュWRITEバッファ150とは異なるフラッシュREADバッファ152を用いてデータ転送を行い、また、データ転送のバスはインターフェース110とアドレス制御部160、フラッシュメモリデバイス130とアドレス制御部164の間で異なっているため、並列に動作可能となる。
このときもデータ560がフラッシュREADバッファ152のサイズまたはフラッシュメモリデバイス130の書き込みサイズに達しておらず、かつ連続してデータが来ることがわかっている場合、データが来るのを待ち、データが書き込みサイズまたはフラッシュREADバッファ152のサイズに達した後にステップ516を行ってもよい。
アドレス制御部164は先ほど示したような指定したタイミングでフラッシュメモリデバイス130にデータを転送してもよい(ステップ516)。同様にステップ518およびステップ520もステップ510とステップ512と同様に実行されてもよい。
アドレス制御部(160、162、164)はデータ入出力の競合を調停するモジュールであるが、データ転送先が、図6に示すように、多くある場合、それらのうちのどのデバイスを用いるかを制御する目的で利用してもよい。
図6で記憶装置600は、2つのインターフェース(110,610)、2つのICカードデバイス(180,680)、2つのフラッシュメモリデバイス(130、630)を有し、それらがコントローラデバイス620に接続された構成である。
例えば、インターフェースとして無線と有線の接続インターフェースを持ち、有線と無線の接続に対応したICカードデバイスを持ち、フラッシュメモリとHDDを搭載したようなデバイスがこれに相当する。ただし、この構成においてインターフェース、ICカードデバイス、フラッシュメモリデバイスが1つの場合を含む任意の数であってもよい。
このような構成を取る場合、図2から図5に示すフローチャートで説明した経路とは別に、ICカードデバイス(180、680)間、フラッシュメモリデバイス(130,630)間でのデータ転送をアドレス制御部(162,164)が制御してもよい。
この場合、ICカードデバイス(180、680)間の通信は通信要求元をICカードデバイス180、通信相手をICカードデバイス680とした場合に、データがアドレス制御部162により選択されたICカードWRITEバッファ154に送られ、その後に再びアドレス制御部162を通じてICカードデバイス680に送信されて計算される。
計算された結果はアドレス制御部162により選択されたICカードREADバッファ156に送られ、その後に再びアドレス制御部162を通じてICカードデバイス180に送信される。これが逆の場合も同様でデータ送信時はICカードWRITEバッファ154が用いられ、データ受信時はICカードWRITEバッファ156が用いられることとなる。
フラッシュメモリデバイス(130,630)間の通信では共通してフラッシュWRITEバッファ150が用いられ、データ転送サイズが大きい場合には、図5と同様にフラッシュWRITEバッファ150とフラッシュREADバッファ152を交互に使うことによりデータ転送効率を向上させる効果がある。
端末200からのデータ転送が生じた場合で、図6に示すようにフラッシュメモリデバイス(130、630)が複数ある場合、アドレスによりどちらのデバイスを用いるか定めてもよい。この場合、2つのデバイスは容量や記憶方式が異なっていてもよい。
また、端末200からは片方のフラッシュメモリデバイス(130、630)しかアクセスできない仕組みであってもよい。ここの2つのフラッシュメモリデバイス(130、630)は物理的には1つの装置でありながら、論理的に2つの装置として分かれるような構成であってもよい。
同様に、ICカードデバイス(180、680)も機能や性能が異なっていてもよく、また物理的には1つのデバイスでありながら論理チャネルのような仕組みを持つことによって論理的に2つのデバイスのように見せる仕組みであってもよい。
端末200からICカードデバイス(180、680)にアクセスが発生した場合、どのインターフェースからアクセスされたかに応じてICカードデバイス(180、680)のどちらを用いるか選択する仕組みであってもよいし、ICカードデバイス(180、680)への命令を発効する前にどちらのICカードデバイス(180、680)を用いるかを選択する仕組みであってもよい。
2つのICカードデバイス(180、680)が同じ機能を持つならば、処理を行っていない方のICカードデバイスを選択するという方式であってもよい。
いずれの場合もアドレス制御部162によりどちらのデバイスを用いるかを定めてもよい。例えば、記憶装置600の初期化時にそれぞれのICカードデバイス(180、680)が有しているアプリケーションのIDをコントローラデバイスに送信し、アドレス制御部(160、162、164)、またはアドレス制御管理部190がその情報に応じて端末200からの送信されたアプリケーション選択のコマンドからどちらのデバイスを用いるかを判断してもよい。
ただし、この情報はアプリケーション選択時のみしか得られないため、そのコマンドがどのアプリケーションに向けられたものなのかを判断するために、アドレス制御部160は論理チャネルと同等の機能を有しておくことが望ましい。
また、図6に示すように、コントローラデバイス620に2つのフラッシュメモリデバイス(130、630)が接続されている場合に、読み出しと書き込みを行うデバイスを別にしてもよい。これにはフラッシュメモリデバイス130に格納したデータをフラッシュメモリデバイス630にコピーすることでデータのバックアップを行う操作や、フラッシュメモリデバイス130のデータのハッシュ値、またはECCコードをフラッシュメモリデバイス630に格納することでフラッシュメモリデバイス130上のデータの完全性を向上させることが可能になる。
このような利用において、端末200とのデータ転送経路およびバッファと、フラッシュメモリデバイス130上のデータを処理するために読み出すバッファが異なる方が処理効率は高くなり、また、その際のデータ格納先のバッファ選択のためにアドレス制御部164が必要になる。
<アドレス制御部の動作>
次に、図7〜図9により、本発明の一実施の形態に係る記憶装置において、以上のような動作を実現するためのアドレス制御部(160、162,164)の動作について説明する。図7〜図9は本発明の一実施の形態に係る記憶装置のアドレス制御部の動作を示すフローチャートであり、図7はアドレス制御部160、図8はアドレス制御部162、図9はアドレス制御部164の基本動作を示している。
次に、図7〜図9により、本発明の一実施の形態に係る記憶装置において、以上のような動作を実現するためのアドレス制御部(160、162,164)の動作について説明する。図7〜図9は本発明の一実施の形態に係る記憶装置のアドレス制御部の動作を示すフローチャートであり、図7はアドレス制御部160、図8はアドレス制御部162、図9はアドレス制御部164の基本動作を示している。
この他に、アドレス制御部160ならば、格納アドレスの変換処理や高速転送のためのバッファ選択処理を行ってもよいし、アドレス制御部162またはアドレス制御部164ならば接続された(ICカードデバイス180と680、フラッシュメモリデバイス130と630のような)2つのデバイス間でデータ通信を行う機能をサポートしてもよい。
アドレス制御部160の基本動作としては、コントローラデバイス120内のCPU上で動作するプログラムなどがバッファに対してデータ転送を行いたい場合、そのプログラムはアドレス制御部160に対してアクセス要求を発生させる。
そして、図7(a)に示すように、アドレス制御部160はアクセス要求元からのアクセス発生により(ステップ710)、転送処理がロック中かどうかを調べる(ステップ712)。
ロック処理の判断の対象となるデータ転送路は、それぞれのアドレス制御部が制御するデータ転送路のみである。
転送処理がロックされている場合、アドレス制御部160はロック状態であることを呼び出し元に通知する(ステップ732)。
ただし、データ転送処理をキャンセルすることができない場合などはロックが解除されるまで待ち続けてもよい。ただし、この場合でも一定の時間ロックが解除されない場合はエラーを通知する仕組みであってもよい。
ステップ712でロック中でない、またはロックが解除された場合には、アドレス制御部160は自身がバスを占有するために転送処理のロックを行う(ステップ714)。
次に、アドレス制御部160は、その要求がフラッシュメモリアクセスかICカードアクセスかを判断する(ステップ716)。
この判断は要求元からの指示により判断してもよいし、データ転送インターフェースが複数あり、その違いにより判断できる場合には、インターフェースの違いを判断基準としてもよい。
また、外部と信号線をつながっており、その信号線上のデータによって判断できる仕組みであってもよい。ICカードアクセスの場合、ICカードWRITEバッファ154にデータが存在するかどうかを調べる(ステップ720)。
ICカードWRITEバッファ154にデータが存在しないならば、転送先をICカードWRITEバッファに設定し(ステップ724)、データをセットする(ステップ726)。データ転送完了後、アドレス制御部はロックを解除し、処理の終了を呼び出し元に通知する(ステップ728)。
ステップ720においてICカードWRITEバッファにデータがある場合、データセットエラーを呼び出し元に通知する(ステップ730)。ステップ716においてフラッシュメモリアクセスである場合、フラッシュWRITEバッファ150にデータがあるかどうかを調べる(ステップ718)。データが存在しない場合、転送先をフラッシュWRITEバッファ150にセットし(ステップ722)、ステップ726以降の操作を行う。
フラッシュWRITEバッファ150にデータがある場合、データセットエラーを返す(ステップ730)。
なお、以上の処理は基本動作であり、例えば、図5のフローチャートに示すような連続してデータ転送を行う場合などでは、フラッシュWRITEバッファ150にデータがある場合に、フラッシュREADバッファ152にデータを転送先にセットすることも可能である。
次に、コントローラデバイス120内のCPU上で動作するプログラムなどがバッファからデータ転送を行いたい場合、そのプログラムはアドレス制御部160に対してアクセス要求を発生させる。
そして、図7(b)に示すように、アドレス制御部160はアクセス要求元からのアクセス発生により(ステップ750)、転送処理がロック中かどうかを調べる(ステップ752)。転送処理がロック中でないならば転送処理をロックし(ステップ754)、データを出力し(ステップ756)、転送処理ロックを解除して要求元に処理の完了を通知する(ステップ758)。
ステップ752において転送処理がロック中であるならばロック状態であることを要求元に通知する(ステップ760)。
また、アドレス制御部162の基本動作としては、図8(b)に示すように、アドレス制御部162は要求元よりバッファからの転送要求が生じると(ステップ850)、それがフラッシュWRITEバッファ150からのデータ転送か、ICカードWRITEバッファ154からのデータ転送なのかを判別する(ステップ852)。
このときの判別は、要求元からの情報によって行われてもよい。データ転送元がICカードWRITEバッファである場合、ICカードREADバッファにデータがあるかどうかを確かめる(ステップ856)。
これは出力データの出力タイミングをICカードデバイス180が制御するため、出力バッファも確保しておく必要があるためである。ICカードREADバッファが空いている状態ならば、アドレス制御部は転送処理をロックし(ステップ860)、そのデータ出力元がフラッシュWRITEバッファ150なのかICカードWRITEバッファ154なのかを記憶しておき、データをICカードデバイスに出力する。
このとき、転送元のバッファがコマンドAPDUのみを格納するならば転送処理とICカードWRITEバッファ150、ICカードREADバッファ154をロックした状態で端末200からのデータ転送を受け付ける仕組みであってもよい。
ステップ856においてデータがある場合、バッファ転送エラーを呼び出し元に通知する(ステップ868)。
ステップ852においてフラッシュWRITEバッファ150からの転送処理であった場合、フラッシュREADバッファにデータがあるかどうかを確かめる(ステップ854)。データがない場合、ステップ858以下を実行する。データがあるならば、バッファ転送エラーを呼び出し元に通知する(ステップ868)。
また、図8(a)に示すように、ICカードデバイスからのアクセスが発生した場合(ステップ810)、アドレス制御部162は処理862で記録した転送元バッファをチェックする。それがICカードWRITEバッファ154であった場合、ICカードREADバッファ156を選択し(ステップ816)、データを出力し(ステップ818)、転送処理のロックを解除する(ステップ820)。
ステップ812においてステップ862で記憶していた転送元が、フラッシュWRITEバッファ150であった場合、転送先としてフラッシュREADバッファ152を選択し(ステップ814)、ステップ818以降を実行する。このときのステップ812、ステップ816、ステップ814までの手順は、出力するデータに依存しないため、ステップ810を行う前に実行してもよい。
また、出力データがデータのみであったり、ACKのみである場合には、続くコマンドのために転送処理とICカードWRITEバッファ150、ICカードREADバッファ154を他の要求元からの処理を行わせないためにロック状態を維持しておいてもよい。
また、アドレス制御部164の基本動作としては、図9(a)に示すように、アドレス制御部164は要求元よりフラッシュメモリデバイス130からの転送要求が生じると(ステップ910)、転送処理がロック中かどうかを判断する(ステップ912)。
転送処理がロック中である場合、アドレス制御部164はロック状態であることを転送元に通知する(ステップ936)。転送処理がロックされていなければ、アドレス制御部164は転送処理をロックする(ステップ914)。
次に、アドレス制御部164はそれが端末200へのデータ転送であるかどうかを判断する(ステップ916)。この判断は要求元からの情報を元に行ってもよい。それが端末200へのデータ転送である場合、フラッシュREADバッファ152にデータがあるかどうかを確かめる(ステップ918)。
データがある場合はICカードWRITEバッファ154およびICカードREADバッファ156にデータがあるかどうかを確かめる(ステップ922)。どちらにもデータがある場合、アドレス制御部164は要求元にバッファエラーを通知する(ステップ930)。
ステップ922においてICカードWRITEバッファ154およびICカードREADバッファ156にデータがないならば、転送先をICカードREADバッファ156にセットする(ステップ928)。
このとき通常とは異なる転送バッファが選択されているため、その旨を転送要求元に通知してもよいし、アドレス制御管理部190に通知してもよい。
ステップ918においてフラッシュREADバッファ152にデータがない場合、転送先をフラッシュREADバッファ152にセットする(ステップ926)。ステップ916においてそれがICカードデバイス180へのデータ転送でないならば、ICカードWRITEバッファ154およびICカードREADバッファ156にデータがあるかどうかを確かめる(ステップ920)。
データがある場合、次にフラッシュREADバッファ152にデータがあるかどうかを確かめる(ステップ924)。両方にデータがある場合、アドレス制御部164は要求元にバッファエラーを通知する(ステップ930)。
ステップ924においてフラッシュREADバッファ152にデータがないならば、転送先をフラッシュREADバッファ152にセットする(ステップ926)。
このとき通常とは異なる転送バッファが選択されているため、その旨を転送要求元に通知してもよいし、アドレス制御管理部190に通知してもよい。
ステップ920においてICカードWRITEバッファ154およびICカードREADバッファ156にデータがないならば、転送先をICカードREADバッファ156にセットする(ステップ928)。
ステップ926およびステップ928後にアドレス制御部164はデータ出力を行い(ステップ932)、転送処理ロックを解除して要求元に完了通知を行う(ステップ934)。
次に、図9(b)に示すように、バッファからのフラッシュメモリデバイスへの転送が発生した場合(ステップ950)、アドレス制御部164は転送処理がロック中かどうかを調べる(ステップ952)。
転送処理がロック中でないならば転送処理をロックし(ステップ954)、データを出力し(ステップ956)、転送処理ロックを解除して要求元に処理の完了を通知する(ステップ958)。ステップ952において転送処理がロック中であるならばロック状態であることを要求元に通知する(ステップ960)。
以上のアドレス制御部(160、162、164)のそれぞれの制御により、インターフェース110に接続された端末200、フラッシュメモリデバイス130、ICカードデバイス180と、各バッファ間のデータ転送が制御されることにより、処理効率を向上させることが可能である。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は汎用的な処理機能と不揮発性記憶領域を持つ記憶装置に関し、特に、内部で複数のアクセスを処理するデバイスに適用可能である。
100…記憶装置、200…端末(情報端末)、120、620…コントローラデバイス、110、610…インターフェース、130、630…フラッシュメモリデバイス、180、680…ICカードデバイス、150…フラッシュWRITEバッファ、152…フラッシュREADバッファ、154…ICカードWRITEバッファ、156…ICカードREADバッファ、160、162、164…アドレス制御部、190…アドレス制御管理部。
Claims (15)
- 情報端末が接続されるインターフェースと、
不揮発性の記憶領域を有する記憶部と、
データ処理機能を有する処理部と、
前記記憶部へのデータ書き込み時のデータを格納する第1のバッファメモリと、
前記記憶部からのデータ読み出し時のデータを格納する第2のバッファメモリと、
前記処理部へのデータ書き込み時のデータを格納する第3のバッファメモリと、
前記処理部からのデータ読み出し時のデータを格納する第4のバッファメモリと、
前記第1のバッファメモリ、前記第2のバッファメモリ、前記第3のバッファメモリ、および前記第4のバッファメモリと前記情報端末との間のデータ転送を制御する第1のアドレス制御部と、
前記第1のバッファメモリ、前記第2のバッファメモリ、前記第3のバッファメモリ、および前記第4のバッファメモリと前記処理部との間のデータ転送を制御する第2のアドレス制御部と、
前記第1のバッファメモリ、前記第2のバッファメモリ、前記第3のバッファメモリ、および前記第4のバッファメモリと前記記憶部との間のデータ転送を制御する第3のアドレス制御部とを備え、
前記第1のアドレス制御部、前記第2のアドレス制御部、および前記第3のアドレス制御部は、データを転送する際、前記第1のバッファメモリ、前記第2のバッファメモリ、前記第3のバッファメモリ、および前記第4のバッファメモリの状態に基づいて、データの転送制御を行うことを特徴とする記憶装置。 - 請求項1記載の記憶装置において、
前記第1のアドレス制御部、前記第2のアドレス制御部、および前記第3のアドレス制御部は、それぞれ、前記インターフェースとの間の転送バス、前記処理部との間の転送バス、および前記記憶部との間の転送バスにおける転送データの競合の調停処理を行うことを特徴とする記憶装置。 - 請求項1記載の記憶装置において、
前記第1のアドレス制御部と前記インターフェースとの間の転送バス、前記第2のアドレス制御部と前記処理部との間の転送バス、および前記第3のアドレス制御部と前記記憶部との間の転送バスにおける転送データの競合の調停を行うアドレス制御管理部を備えたことを特徴とする記憶装置。 - 請求項3記載の記憶装置において、
前記アドレス制御管理部は、前記第1のアドレス制御部、前記第2のアドレス制御部、および前記第3のアドレス制御部による前記第1のバッファメモリ、前記第2のバッファメモリ、前記第3のバッファメモリ、および前記第4のバッファメモリの利用状態を管理し、その管理情報に基づいて前記第1のアドレス制御部、前記第2のアドレス制御部、および前記第3のアドレス制御部のデータ転送処理における競合の調停を行うことを特徴とする記憶装置。 - 請求項3記載の記憶装置において、
前記アドレス制御管理部は、前記第1のアドレス制御部、前記第2のアドレス制御部、および前記第3のアドレス制御部による前記第1のバッファメモリ、前記第2のバッファメモリ、前記第3のバッファメモリ、および前記第4のバッファメモリの利用状態を管理するテーブルを有し、
前記第1のアドレス制御部、前記第2のアドレス制御部、および前記第3のアドレス制御部は、前記テーブルの情報に基づいて、前記第1のバッファメモリ、前記第2のバッファメモリ、前記第3のバッファメモリ、および前記第4のバッファメモリへのデータの転送制御を行うことを特徴とする記憶装置。 - 請求項1記載の記憶装置において、
前記情報端末からの、前記記憶部へのデータ転送および前記処理部へのデータ転送が発生した場合に、
前記第1のアドレス制御部は、前記記憶部へのデータ転送には前記第1のバッファメモリを優先的に用い、前記処理部へのデータ転送には前記第3のバッファメモリを優先的に用いることを特徴とする記憶装置。 - 請求項6記載の記憶装置において、
前記第1のアドレス制御部は、前記第1のバッファメモリまたは前記第3のバッファメモリが既に利用され、かつ前記第2のバッファメモリまたは前記第4のバッファメモリが利用可能である場合に、データ転送に前記前記第2のバッファメモリまたは前記第4のバッファメモリを用いることを特徴とする記憶装置。 - 請求項1記載の記憶装置において、
前記記憶部の第1のデータを前記処理部へ転送して処理する場合に、
前記第2のアドレス制御部および前記第3のアドレス制御部は、前記第3のバッファメモリおよび前記第4のバッファメモリを優先的に用いることを特徴とする記憶装置。 - 請求項8記載の記憶装置において、
前記第3のアドレス制御部は、前記処理部へ送る第1のデータを前記第3のバッファメモリに転送し、
前記第2のアドレス制御部は、前記第3のバッファメモリのデータを前記処理部に転送し、前記処理部で前記第1のデータを処理した結果である第2のデータを前記第4のバッファメモリに転送することを特徴とする記憶装置。 - 請求項8または9記載の記憶装置において、
前記第3のアドレス制御部および前記第2のアドレス制御部は、前記第3のバッファメモリおよび前記第4のバッファメモリが既に利用され、かつ前記第1のバッファメモリおよび前記第2のバッファメモリが利用可能である場合に、データ転送に前記第1のバッファメモリと前記第2のバッファメモリを用いることを特徴とする記憶装置。 - 請求項1記載の記憶装置において、
前記記憶部から、前記情報端末へのデータ転送および前記処理部へのデータ転送が発生した場合に、
前記第3のアドレス制御部は、前記情報端末へのデータ転送には前記第2のバッファメモリを優先的に用い、前記処理部へのデータ転送には前記第3のバッファメモリを優先的に用いることを特徴とする記憶装置。 - 請求項11記載の記憶装置において、
前記第3のアドレス制御部は、前記第2のバッファメモリまたは前記第3のバッファメモリが既に利用され、かつ前記第1のバッファメモリまたは前記第4のバッファメモリが利用可能である場合に、データ転送に前記前記第1のバッファメモリまたは前記第4のバッファメモリを用いることを特徴とする記憶装置。 - 請求項1記載の記憶装置において、
前記情報端末から連続して前記記憶部へデータが転送され、その処理が連続して発生した場合に、
前記第1のアドレス制御部は、前記記憶部へのデータ転送に前記第1のバッファメモリおよび前記第2のバッファメモリの両方を用いることを特徴とする記憶装置。 - 請求項13記載の記憶装置において、
前記第1のアドレス制御部は、前記第3のアドレス制御部による前記第1のバッファメモリまたは前記第2のバッファメモリから前記記憶部へのデータ転送中に、前記情報端末から次のデータを受け付け、前記第1のバッファメモリまたは前記第2のバッファメモリにデータを転送することを特徴とする記憶装置。 - 請求項13記載の記憶装置において、
前記第3のアドレス制御部は、前記第1のバッファメモリまたは前記第2のバッファメモリのデータを前記記憶部に転送する際、前記記憶装置の書き込みサイズに基づいて、複数のデータをまとめて転送することを特徴とする記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006140981A JP2007310760A (ja) | 2006-05-22 | 2006-05-22 | 記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006140981A JP2007310760A (ja) | 2006-05-22 | 2006-05-22 | 記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007310760A true JP2007310760A (ja) | 2007-11-29 |
Family
ID=38843535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006140981A Withdrawn JP2007310760A (ja) | 2006-05-22 | 2006-05-22 | 記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007310760A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814011A (zh) * | 2009-02-24 | 2010-08-25 | 恩益禧电子股份有限公司 | Usb主机控制器以及用于usb主机控制器的控制方法 |
US20120246369A1 (en) * | 2009-11-26 | 2012-09-27 | Toshiki Takeuchi | Bus monitor circuit and bus monitor method |
JP2014059326A (ja) * | 2008-05-09 | 2014-04-03 | Robert Bosch Gmbh | 広域ラムダセンサのための評価及び制御ユニット |
-
2006
- 2006-05-22 JP JP2006140981A patent/JP2007310760A/ja not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014059326A (ja) * | 2008-05-09 | 2014-04-03 | Robert Bosch Gmbh | 広域ラムダセンサのための評価及び制御ユニット |
EP2277035B1 (de) | 2008-05-09 | 2016-11-30 | Robert Bosch GmbH | Eine auswerte- und steuereinheit für eine breitband-lamdasonde |
CN101814011A (zh) * | 2009-02-24 | 2010-08-25 | 恩益禧电子股份有限公司 | Usb主机控制器以及用于usb主机控制器的控制方法 |
JP2010198171A (ja) * | 2009-02-24 | 2010-09-09 | Renesas Electronics Corp | Usbホストコントローラ、及びusbホストコントローラの制御方法 |
US8386725B2 (en) | 2009-02-24 | 2013-02-26 | Renesas Electronics Corporation | USB host controller and controlling method for USB host controller |
CN101814011B (zh) * | 2009-02-24 | 2014-06-18 | 瑞萨电子株式会社 | Usb主机控制器以及用于usb主机控制器的控制方法 |
US20120246369A1 (en) * | 2009-11-26 | 2012-09-27 | Toshiki Takeuchi | Bus monitor circuit and bus monitor method |
US9152524B2 (en) * | 2009-11-26 | 2015-10-06 | Nec Corporation | Bus monitor circuit and bus monitor method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2377028B1 (en) | Modifying commands | |
US7721046B2 (en) | Memory card authentication system, capacity switching-type memory card host device, capacity switching-type memory card, storage capacity setting method, and storage capacity setting program | |
JP5729774B2 (ja) | いくつかのコマンドを処理するためのメモリコントローラ、メモリシステム、ソリッドステートドライブ、および方法 | |
KR101105489B1 (ko) | Nand 플래시 메모리의 커맨드 기반 제어 | |
CN102723099B (zh) | 包括用于处理多命令描述符块以便利用并发性的主机接口的闪存装置 | |
CN102460405B (zh) | 用于通过存储器装置来控制主机存储器存取的方法及系统 | |
US7401183B2 (en) | Memory card authentication system, memory card host device, memory card, storage area switching method, and storage area switching program | |
US9639407B1 (en) | Systems and methods for efficiently implementing functional commands in a data processing system | |
US20060095671A1 (en) | System, method and storage medium for providing data caching and data compression in a memory subsystem | |
JP2003132305A (ja) | メモリカードを制御するための装置および方法 | |
US20180039523A1 (en) | Information processing system that determines a memory to store program data for a task carried out by a processing core | |
WO2008020389A2 (en) | Flash memory access circuit | |
US20030014570A1 (en) | Data processing apparatus and data input/output method | |
CN116685943A (zh) | 可编程原子单元中的自调度线程 | |
CN101198940A (zh) | 外部设备访问装置 | |
TWI269978B (en) | Method allowing single host to access plurality of peripheral devices and electronic system thereof | |
JP2007310760A (ja) | 記憶装置 | |
US9146693B2 (en) | Storage control device, storage system, and storage control method | |
CN113994314B (zh) | 扩展存储器接口 | |
EP2194458A2 (en) | Request processing device, request processing system, and access testing method | |
US20060277326A1 (en) | Data transfer system and method | |
US8234651B2 (en) | Information processing method and apparatus using the same | |
US20180336147A1 (en) | Application processor including command controller and integrated circuit including the same | |
US20110047320A1 (en) | System and method for performing program operation on nonvolatile memory device | |
JP2009129402A (ja) | Icカード用半導体装置、icカード、及びicカード用端末装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090108 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20100108 |