(57)【特許請求の範囲】
【請求項１】
複数のポートからアクセスされる記憶装置において、
第１の種類のアクセスと、帯域保障を行うために必要なアクセス周期が前記第１の種類のアクセスよりも長い第２の種類のアクセスとのうち、前記第１の種類のアクセスが行われる各ポートに割り当てる１個のタイムスロットの長さＴａｃｃｅｓｓ１と、前記第２の種類のアクセスが行われる各ポートに割り当てる１個のタイムスロットの長さＴａｃｃｅｓｓ２とを、
前記第１の種類のアクセスを帯域保障するために必要なアクセス周期×Ｍ≒前記第２の種類のアクセスを帯域保障するために必要なアクセス周期（但しＭは２以上の整数）
の条件を満たすように設定し、
前記第１の種類のアクセスを帯域保障するために必要なアクセス周期以内に収めた長さのスロットユニットを、前記第２の種類のアクセスを帯域保障するために必要なアクセス周期以内に収めるように時間軸上で前記Ｍ本繋げることによってトータルスケジュールを構成し、
各々の前記スロットユニットに、時間軸で早い方から順に第１の種類のアクセススロットエリア，第２の種類のアクセススロットエリアを設け、
前記複数のポートのうち、前記第１の種類のアクセスが行われるポートには、１つの前記スロットユニット毎に、前記第１の種類のアクセススロットエリアに前記長さＴａｃｃｅｓｓ１の１個のタイムスロットを割り当て、
前記第２の種類のアクセスが行われるポートには、前記トータルスケジュール１周期で１つだけの前記スロットユニットの前記第２の種類のアクセススロットエリアに、前記長さＴａｃｃｅｓｓ２の１個のタイムスロットを割り当てるアクセス制御手段を備えた
記憶装置。
【請求項２】
請求項１に記載の記憶装置において、
前記アクセス制御手段は、前記複数のポートのうち、帯域保障を行わない種類のアクセスが行われるポートのタイムスロットを、前記スロットユニットの末尾に配置し、該タイムスロットの長さを、前記スロットユニットの長さが前記第１の種類のアクセスを帯域保障するために必要なアクセス周期以内に収まるように制御する
記憶装置。
【請求項３】
請求項１に記載の記憶装置において、
前記記憶装置は、フラッシュメモリを記憶媒体として用いており、
前記第１の種類のアクセスは再生のためのアクセスであり、
前記第２の種類のアクセスは記憶のためのアクセスである
記憶装置。
【請求項４】
複数のポートからアクセスされる記憶装置内でアクセス制御手段が実行するアクセス制御方法において、
第１の種類のアクセスと、帯域保障を行うために必要なアクセス周期が前記第１の種類のアクセスよりも長い第２の種類のアクセスとのうち、前記第１の種類のアクセスが行われる各ポートに割り当てる１個のタイムスロットの長さＴａｃｃｅｓｓ１と、前記第２の種類のアクセスが行われる各ポートに割り当てる１個のタイムスロットの長さＴａｃｃｅｓｓ２とを、
前記第１の種類のアクセスを帯域保障するために必要なアクセス周期×Ｍ≒前記第２の種類のアクセスを帯域保障するために必要なアクセス周期（但しＭは２以上の整数）
の条件を満たすように設定し、
前記第１の種類のアクセスを帯域保障するために必要なアクセス周期以内に収めた長さのスロットユニットを、前記第２の種類のアクセスを帯域保障するために必要なアクセス周期以内に収めるように時間軸上で前記Ｍ本繋げることによってトータルスケジュールを構成し、
各々の前記スロットユニットに、時間軸で早い方から順に第１の種類のアクセススロットエリア，第２の種類のアクセススロットエリアを設け、
前記複数のポートのうち、前記第１の種類のアクセスが行われるポートには、１つの前記スロットユニット毎に、前記第１の種類のアクセススロットエリアに前記長さＴａｃｃｅｓｓ１の１個のタイムスロットを割り当て、
前記第２の種類のアクセスが行われるポートには、前記トータルスケジュール１周期で１つだけの前記スロットユニットの前記第２の種類のアクセススロットエリアに、前記長さＴａｃｃｅｓｓ２の１個のタイムスロットを割り当てる
アクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のポートにそれぞれタイムスロットを割り当ててアクセスを制御する記憶装置に関し、特に、帯域保障を行うために必要なアクセスの周期がアクセスの種類によって異なる場合のアクセス制御方法に特徴を有するものに関する。
【背景技術】
【０００２】
単一の記憶装置に対して外部の複数の機器がデータの記憶や再生を行うための方式として、記憶装置に複数のポートを設け、各ポートにそれぞれタイムスロット（当該ポートからのアクセスを受け付ける時間枠）を割り当てて、各機器がそれぞれ別々のポートからこの記憶装置にアクセスするという方式が行われている。
【０００３】
図１は、複数のポートを設けた記憶装置へのアクセスの様子を概念的に示す図である。記憶装置に設けられたｎ個のポートであるＰｏｒｔ１〜Ｐｏｒｔｎに、それぞれタイムスロットが割り当てられる。記憶装置内には、ｎ個のバッファーメモリ２１（２１（１）〜２１（ｎ））が、Ｐｏｒｔ１〜Ｐｏｒｔｎに対応して設けられている。
【０００４】
Ｐｏｒｔ１〜Ｐｏｒｔｎのうちの或るＰｏｒｔｉからデータを記憶する場合には、Ｐｏｒｔｉから入力したデータが、バッファーメモリ２１（ｉ）に一時的に蓄積された後、Ｐｏｒｔｉに割り当てたタイムスロットにバッファーメモリ２１（ｉ）から読み出されて記憶装置内の記憶媒体２０（例えば、半導体記憶装置の一種であるフラッシュメモリ装置の場合にはフラッシュメモリ）に書き込まれる。
【０００５】
また、或るＰｏｒｔｊからデータを再生する場合には、そのデータが、Ｐｏｒｔｊに割り当てたタイムスロットに記憶媒体２０から読み出されてバッファーメモリ２１（ｊ）に一時的に蓄積された後、バッファーメモリ２１（ｊ）から読み出されてＰｏｒｔｊから出力される。
【０００６】
ところで、このように記憶装置の複数のポートにタイムスロットを割り当てる場合に、記憶装置へのアクセスを帯域保障する（一定の通信量を保障する）ためには、帯域保障しようとするアクセスが行われるポートから、単位時間毎に一定の長さの時間アクセスを行えるようにすることが必要となる。
【０００７】
ここで、この帯域保障のために必要な単位時間当たりのアクセス時間長が、アクセスの種類にかかわらず一定である場合には、帯域保障しようとするアクセスが行われる各ポートには、互いに均等な長さのタイムスロットを同じ数だけ割り当てれば足りる（特許文献１，２参照）。
【０００８】
しかし、帯域保障のために必要な単位時間当たりのアクセス時間長は、アクセスの種類によって異なる場合がある。例えば、フラッシュメモリ装置では、或る量のデータを記憶するための所要時間よりも、同じ量のデータを再生するための所要時間が長くなる。したがって、再生のためにアクセスされるポートは、記憶のためにアクセスされるポートよりも、帯域保障のために必要な単位時間当たりのアクセス時間が長くなる。
【０００９】
また、同じくデータを再生する場合でも、例えば転送速度５０Ｍｂｐｓで再生する場合と転送速度３０Ｍｂｐｓで再生する場合とでは、前者のほうが単位時間当たりに再生すべきデータ量が多くなる。したがって、転送速度５０Ｍｂｐｓで再生を行うためにアクセスされるポートは、転送速度３０Ｍｂｐｓで再生を行うためにアクセスされるポートよりも、帯域保障のために必要な単位時間当たりのアクセス時間が長くなる。
【００１０】
図２は、そのような場合における、従来のアクセス制御方法を示す。ここでは、アクセスモード（アクセスの種類）を、Ｍｏｄｅ１，Ｍｏｄｅ２，ＢｅｓｔＥｆｆｏｒｔの３種類としている。Ｍｏｄｅ１，Ｍｏｄｅ２は、それぞれ帯域保障すべき種類のアクセスであるが、Ｍｏｄｅ１のほうが、帯域保障のために必要な単位時間当たりのアクセス時間が長くなっている。ＢｅｓｔＥｆｆｏｒｔは、ベストエフォート型の（帯域保障はしないが可能な限り高速化する、いわゆる出来高型の）アクセスである。
【００１１】
そして、ポート数をＰｏｒｔ１〜Ｐｏｒｔ１０の１０本とし、Ｐｏｒｔ１，２，５，１０からＭｏｄｅ１のアクセスが行われ、Ｐｏｒｔ３，４，７，８からＭｏｄｅ２のアクセスが行われ、Ｐｏｒｔ６，９からＢｅｓｔＥｆｆｏｒｔのアクセスが行われるものとしている。
【００１２】
Ｍｏｄｅ１の各ポート（Ｐｏｒｔ１，２，５，１０）と、Ｍｏｄｅ２の各ポート（Ｐｏｒｔ３，４，７，８）には、１個ずつのタイムスロットを割り当てている。Ｍｏｄｅ１の各ポートのタイムスロットの長さＴａｃｃｅｓｓ１と、Ｍｏｄｅ２の各ポートのタイムスロットの長さＴａｃｃｅｓｓ２とは、次のような条件を満たすように設定している。
【００１３】
条件：Ｍｏｄｅ１のアクセスを帯域保障するために必要なアクセス周期（これは、Ｍｏｄｅ１のポートに対応するバッファーメモリ（図１のバッファーメモリ２１）が、アクセス１回当たりに蓄積しなければならないデータ量を、時間の長さに換算したものであるといえるので、Ｔｂｕｆ１と表す）と、Ｍｏｄｅ２のアクセスを帯域保障するために必要なアクセス周期（同じくＴｂｕｆ２と表す）とが、
【数１】
0004609356.tif 000002
となる。
【００１４】
そして、ＢｅｓｔＥｆｆｏｒｔのポート（Ｐｏｒｔ６，９）のタイムスロットを末尾に配置し、このＢｅｓｔＥｆｆｏｒｔのポートのタイムスロットの長さＴａｃｃｅｓｓ＿ｂｅｓｔを、全タイムスロットの合計の長さＴｔｏｔａｌ＿ａｃｃｅｓｓが下記式の条件を満たすように制御することにより、Ｍｏｄｅ１のアクセスとＭｏｄｅ２のアクセスとを帯域保障している。
【数２】
0004609356.tif 000003
但し、Ｔｂｕｆは、Ｔｂｕｆ１，Ｔｂｕｆ２のうちの短いほうの時間であり、Ｎｍｏｄｅ１，Ｎｍｏｄｅ２はそれぞれＭｏｄｅ１，Ｍｏｄｅ２でアクセスされるポートの数（ここではＮｍｏｄｅ１＝４，Ｎｍｏｄｅ２＝４）である。
【００１５】
【特許文献１】特開平１１−２３４６２５号公報（段落番号００１３〜１９、図１，５）
【特許文献２】特開平１１−３０８５５８号公報（段落番号００２２〜２５、図１〜２）
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかし、この図２のアクセス制御方法では、仮にＭｏｄｅ１はアクセス１回当たりの時間を短くすることによってアクセス周期Ｔｂｕｆ１を短くすることが可能な種類のアクセスであっても、Ｍｏｄｅ２がアクセス１回当たりの時間を短くできないためにアクセス周期Ｔｂｕｆ２を短くできない種類のアクセスである場合には、上記式（１）の条件から、アクセス周期Ｔｂｕｆ１をアクセス周期Ｔｂｕｆ２とほぼ一致させなければならないので、アクセス周期Ｔｂｕｆ１を短くすることができない。
【００１７】
例えば、フラッシュメモリ装置では、再生のためのアクセスはフラッシュメモリのブロックよりも小さいページ単位で行っても速度がほとんど低下しないのでアクセス１回当たりの時間を短くすることが可能であるが、記憶のためのアクセスを高速に行うためにはブロック単位でアクセスを行う必要があるためアクセス１回当たりの時間を短くできないので、Ｍｏｄｅ１が再生のためのアクセスでありＭｏｄｅ２が記憶のためのアクセスであるときが、こうした場合に該当する。
【００１８】
図３は、図２のアクセス制御方法による、Ｍｏｄｅ１，Ｍｏｄｅ２のポートに対応するバッファーメモリ（図１のバッファーメモリ２１）のデータ蓄積量であるバッファー量の推移を示す図である。仮にＭｏｄｅ１がアクセス１回当たりの時間を短くすることが可能な種類のアクセスであっても、Ｍｏｄｅ２がアクセス１回当たりの時間を短くできない種類のアクセスである場合には、アクセス周期Ｔｂｕｆ１を短くすることができないので、Ｍｏｄｅ１のアクセスが繰り返される間隔が長くなる。そのため、Ｍｏｄｅ１のアクセスを要求してからそのアクセスが実行されるまでの遅延時間が大きく（最大でＴｂｕｆ１に）なるので、外部の機器から見て、Ｍｏｄｅ１のアクセスを行う際の記憶装置の反応が遅くなってしまう。
【００１９】
また、Ｍｏｄｅ１のアクセスが繰り返される間隔が長くなることから、図３にも表れているように、Ｍｏｄｅ１のポートに対応するバッファーメモリのバッファー量の最大値Ｄｂｕｆ１が大きくなる。そのため、Ｍｏｄｅ１のポートに対応するバッファーメモリをオーバーフローさせたりアンダーフローさせないためのバッファー容量を、この最大値Ｄｂｕｆ１に合せて大きくしなければならない。
【００２０】
これに対し、図４は、Ｍｏｄｅ１がアクセス１回当たりの時間を短くすることが可能な種類のアクセスである場合の、アクセス制御方法の改善例を示す。この例では、Ｍｏｄｅ１のポート（Ｐｏｒｔ１，２，５，１０）には、Ｎｄｉｖ個（Ｎｄｉｖは２以上の整数であり、図ではＮｄｉｖ＝３）ずつのタイムスロットを割り当てている。Ｍｏｄｅ１の各ポートのタイムスロットの長さＴａｃｃｅｓｓ１と、Ｍｏｄｅ２の各ポートのタイムスロットの長さＴａｃｃｅｓｓ２とは、前述のＭｏｄｅ１のアクセスを帯域保障するためのアクセス周期Ｔｂｕｆ１と、Ｍｏｄｅ２のアクセスを帯域保障するためのアクセス周期Ｔｂｕｆ２とが、下記式の条件を満たすように設定している。
【数３】
0004609356.tif 000004
【００２１】
これにより、Ｍｏｄｅ１の各ポートのタイムスロットの長さＴａｃｃｅｓｓ１は、図２の場合よりも短くなっている。
【００２２】
そして、ＢｅｓｔＥｆｆｏｒｔのポート（Ｐｏｒｔ６，９）のタイムスロットを末尾に配置し、このＢｅｓｔＥｆｆｏｒｔのポートのタイムスロットの長さＴａｃｃｅｓｓ＿ｂｅｓｔを、全タイムスロットの合計の長さＴｔｏｔａｌ＿ａｃｃｅｓｓが下記式の条件を満たすように制御することにより、Ｍｏｄｅ１のアクセスとＭｏｄｅ２のアクセスとを帯域保障している。
【数４】
0004609356.tif 000005
【００２３】
図５は、この改善例による、Ｍｏｄｅ１，Ｍｏｄｅ２のポートに対応するバッファーメモリのバッファー量の推移を示す図である。この改善例では、Ｍｏｄｅ１のアクセスが繰り返される間隔は、Ｍｏｄｅ２のアクセスが繰り返される間隔よりは短くなるものの、不均一になってしまう。そして、アクセスの遅延時間はワーストケース（アクセスの間隔が最も長い部分）で見積もらなければならないので、図２のアクセス制御方法の場合（図３）よりは改善されるものの、やはり遅延時間が大きくなってしまう。
【００２４】
また、Ｍｏｄｅ１のポートに対応するバッファーメモリのバッファー量も、図２のアクセス制御方法の場合よりは小さくなるものの、図５に表れているように、やはりこのワーストケースの部分で他の部分よりも大きな最大値Ｄｂｕｆ１をとるようになる。そのため、Ｍｏｄｅ１のポートに対応するバッファーメモリをオーバーフローさせたりアンダーフローさせないためのバッファー容量を、やはりこの最大値Ｄｂｕｆ１に合せて大きくしなければならない。
【００２５】
本発明は、上述の点に鑑み、このＭｏｄｅ１とＭｏｄｅ２とのように、帯域保障を行うために必要なアクセス周期が異なる２種類のアクセスを複数のポートから記憶装置に対して行う場合に、このアクセス周期が短いほうの種類のアクセスについての遅延時間やバッファー容量を小さくすることを課題とする。
【課題を解決するための手段】
【００２６】
上記課題を解決するために、本発明に係る記憶装置は、
複数のポートからアクセスされる記憶装置において、
第１の種類のアクセスと、帯域保障を行うために必要なアクセス周期がこの第１の種類のアクセスよりも長い第２の種類のアクセスとのうち、第１の種類のアクセスが行われる各ポートに割り当てる１個のタイムスロットの長さＴａｃｃｅｓｓ１と、第２の種類のアクセスが行われる各ポートに割り当てる１個のタイムスロットの長さＴａｃｃｅｓｓ２とを、
第１の種類のアクセスを帯域保障するために必要なアクセス周期×Ｍ≒第２の種類のアクセスを帯域保障するために必要なアクセス周期（但しＭは２以上の整数）
の条件を満たすように設定し、
第１の種類のアクセスを帯域保障するために必要なアクセス周期以内に収めた長さのスロットユニットを、第２の種類のアクセスを帯域保障するために必要なアクセス周期以内に収めるように時間軸上でこのＭ本繋げることによってトータルスケジュールを構成し、
各スロットユニットに、時間軸で早い方から順に第１の種類のアクセススロットエリア，第２の種類のアクセススロットエリアを設け、
複数のポートのうち、この第１の種類のアクセスが行われるポートには、１つのこのスロットユニット毎に、この第１の種類のアクセススロットエリアにこの長さＴａｃｃｅｓｓ１の１個のタイムスロットを割り当て、
この第２の種類のアクセスが行われるポートには、このトータルスケジュール１周期で１つだけのスロットユニットのこの第２の種類のアクセススロットエリアに、この長さＴａｃｃｅｓｓ２の１個のタイムスロットを割り当てるアクセス制御手段を備えたことを特徴とする。
【００２７】
この記憶装置では、帯域保障のために必要なアクセス周期が短い第１の種類のアクセスと、帯域保障のために必要なアクセス周期が長い第２の種類のアクセスとのうち、第１の種類のアクセスが行われる各ポートに割り当てる１個のタイムスロットの長さＴａｃｃｅｓｓ１と、第２の種類のアクセスが行われる各ポートに割り当てる１個のタイムスロットの長さＴａｃｃｅｓｓ２とが、
第１の種類のアクセスを帯域保障するために必要なアクセス周期×Ｍ≒第２の種類のアクセスを帯域保障するために必要なアクセス周期（但しＭは２以上の整数）
の条件を満たすように設定される。
そして、第１の種類のアクセスを帯域保障するために必要な短いアクセス周期以内に収まる長さのスロットユニットを、第２の種類のアクセスを帯域保障するために必要な長いアクセス周期以内に収まるように時間軸上でこのＭ本繋げることによって、トータルスケジュールが構成される。
そして、各スロットユニットに、時間軸で早い方から順に第１の種類のアクセススロットエリア，第２の種類のアクセススロットエリアが設けられる。
【００２８】
そして、複数のポートのうち、第１の種類のアクセスが行われるポートには、１つのスロットユニット毎に、この第１の種類のアクセススロットエリアにこの長さＴａｃｃｅｓｓ１の１個のタイムスロットを割り当てることにより、トータルスケジュール１周期当たり、ほぼ均一な間隔で複数のタイムスロットが割り当てられる。また、第２の種類のアクセスが行われるポートには、トータルスケジュール１周期で１つだけのスロットユニットのこの第２の種類のアクセススロットエリアに、この長さＴａｃｃｅｓｓ２の１個のタイムスロットを割り当てることにより、トータルスケジュール１周期当たり１個だけのタイムスロットが割り当てられる。
【００２９】
したがって、第１の種類のアクセスが繰り返される間隔は、第２の種類のアクセスが繰り返される間隔よりも短く、且つ、ほぼ均一な間隔になる（すなわち、ワーストケースでも間隔が短くなる）。これにより、第１の種類のアクセス（帯域保障のために必要なアクセス周期が短いほうの種類のアクセス）を要求してからそのアクセスが実行されるまでの遅延時間が短くなる。その結果、外部の機器から見て、帯域保障のために必要なアクセス周期が短いほうの種類のアクセスを行う際の記憶装置の反応が速くなる。
【００３０】
また、このように第１の種類のアクセスが繰り返される間隔が短く且つほぼ均一であることから、第１の種類のアクセス（帯域保障のために必要なアクセス周期が短いほうの種類のアクセス）を行うポートに対応して設けられるバッファーメモリのバッファー量の最大値が小さくなる。これにより、このバッファーメモリをオーバーフローさせたりアンダーフローさせないためのバッファー容量を小さくすることができる。
【００３１】
次に、本発明に係るアクセス制御方法は、
複数のポートからアクセスされる記憶装置内でアクセス制御手段が実行するアクセス制御方法において、
第１の種類のアクセスと、帯域保障を行うために必要なアクセス周期がこの第１の種類のアクセスよりも長い第２の種類のアクセスとのうち、第１の種類のアクセスが行われる各ポートに割り当てる１個のタイムスロットの長さＴａｃｃｅｓｓ１と、第２の種類のアクセスが行われる各ポートに割り当てる１個のタイムスロットの長さＴａｃｃｅｓｓ２とを、
第１の種類のアクセスを帯域保障するために必要なアクセス周期×Ｍ≒第２の種類のアクセスを帯域保障するために必要なアクセス周期（但しＭは２以上の整数）
の条件を満たすように設定し、
第１の種類のアクセスを帯域保障するために必要なアクセス周期以内に収めた長さのスロットユニットを、第２の種類のアクセスを帯域保障するために必要なアクセス周期以内に収めるように時間軸上でＭ本繋げることによってトータルスケジュールを構成し、
各スロットユニットに、時間軸で早い方から順に第１の種類のアクセススロットエリア，第２の種類のアクセススロットエリアを設け、
複数のポートのうち、この第１の種類のアクセスが行われるポートには、１つのこのスロットユニット毎に、この第１の種類のアクセススロットエリアにこの長さＴａｃｃｅｓｓ１の１個のタイムスロットを割り当て、
この第２の種類のアクセスが行われるポートには、このトータルスケジュール１周期で１つだけのスロットユニットのこの第２の種類のアクセススロットエリアに、この長さＴａｃｃｅｓｓ２の１個のタイムスロットを割り当てることを特徴とする。
【００３２】
このアクセス制御方法は、前述の本発明に係る記憶装置によるアクセス制御方法に該当するものであり、帯域保障のために必要なアクセス周期が短いほうの種類のアクセスを要求してからそのアクセスが実行されるまでの遅延時間を短くすることができるとともに、帯域保障のために必要なアクセス周期が短いほうの種類のアクセスを行うポートに対応して設けられるバッファーメモリの容量を小さくすることができる。
【発明の効果】
【００３３】
本発明によれば、帯域保障を行うために必要なアクセス周期が異なる２種類のアクセスを複数のポートから記憶装置に対して行う場合に、帯域保障のために必要なアクセス周期が短いほうの種類のアクセスを要求してからそのアクセスが実行されるまでの遅延時間が短くなるので、外部の機器から見て、帯域保障のために必要なアクセス周期が短いほうの種類のアクセスを行う際の記憶装置の反応が速くなるという効果が得られる。
【００３４】
また、帯域保障のために必要なアクセス周期が短いほうの種類のアクセスを行うポートに対応して設けられるバッファーメモリの容量を小さくすることができるという効果が得られる。
【発明を実施するための最良の形態】
【００３５】
以下、本発明の実施の形態を図面を用いて説明する。図６は、本発明を適用したフラッシュメモリ装置の全体構成を示すブロック図である。このフラッシュメモリ装置には、フラッシュメモリ１と、スロットアクセスコントローラ２と、ｎ個のバッファーメモリ３（３（１）〜３（ｎ））と、ｎ個のポート入出力プロセッサ４（４（１）〜４（ｎ））とが設けられている。
【００３６】
スロットアクセスコントローラ２は、このフラッシュメモリ装置に設けられた複数のポートであるＰｏｒｔ１〜Ｐｏｒｔｎからのフラッシュメモリ１に対するアクセスを、タイムスロットを割り当てることによって制御するコントローラである。
【００３７】
バッファーメモリ３（１）〜３（ｎ）と、ポート入出力プロセッサ４（１）〜４（ｎ）とは、Ｐｏｒｔ１〜Ｐｏｒｔｎにそれぞれ１対１に対応している。各ポート入出力プロセッサ４（１）〜４（ｎ）は、Ｐｏｒｔ１〜Ｐｏｒｔｎから入力したデータをフラッシュメモリ１への記憶に適した形式のデータに変換するための信号処理（例えば圧縮）を行う役割と、バッファーメモリ３（１）〜３（ｎ）から送られたデータをＰｏｒｔ１〜Ｐｏｒｔｎからの出力用に信号処理する（例えば圧縮データを伸張する）役割とを果たす。
【００３８】
Ｐｏｒｔ１〜Ｐｏｒｔｎのうちの或るＰｏｒｔｉからデータを記憶する場合には、Ｐｏｒｔｉから入力したデータが、ポート入出力プロセッサ４（ｉ）の処理を経て、バッファーメモリ３（ｉ）に一時的に蓄積される。そして、バッファーメモリ３（ｉ）に蓄積されたデータが、スロットアクセスコントローラ２によってＰｏｒｔｉに割り当てられたタイムスロットに、バッファーメモリ３（ｉ）から読み出され、スロットアクセスコントローラ２からフラッシュメモリ１に転送されてフラッシュメモリ１に書き込まれる。
【００３９】
また、或るＰｏｒｔｊからデータを再生する場合には、そのデータが、スロットアクセスコントローラ２によってＰｏｒｔｊに割り当てられたタイムスロットに、フラッシュメモリ１から読み出され、スロットアクセスコントローラ２からバッファーメモリ３（ｊ）に転送されてバッファーメモリ３（ｊ）に一時的に蓄積される。そして、バッファーメモリ３（ｉ）に蓄積されたデータが、バッファーメモリ３（ｊ）から読み出され、ポート入出力プロセッサ４（ｊ）の処理を経てＰｏｒｔｉから出力される。
【００４０】
図７は、このスロットアクセスコントローラ２が実行するアクセス制御方法を示す図である。ここでは、アクセスモード（アクセスの種類）を、Ｍｏｄｅ１，Ｍｏｄｅ２，ＢｅｓｔＥｆｆｏｒｔの３種類としている。Ｍｏｄｅ１，Ｍｏｄｅ２は、それぞれ帯域保障すべき種類のアクセスであるが、Ｍｏｄｅ１のほうが、帯域保障のために必要な単位時間当たりのアクセス時間が長くなっている。ＢｅｓｔＥｆｆｏｒｔは、ベストエフォート型の（帯域保障はしないが可能な限り高速化する、いわゆる出来高型の）アクセスである。Ｍｏｄｅ１の例としては、リアルタイム性を要求されるデータの再生のためのアクセスが挙げられる。Ｍｏｄｅ２の例としては、リアルタイム性を要求されるデータの記憶のためのアクセスが挙げられる。ＢｅｓｔＥｆｆｏｒｔの例としては、リアルタイム性を要求されない、ネットワーク経由でのファイル転送によるデータの記憶または再生のためのアクセスが挙げられる。
【００４１】
また、ここでは、ポート数をＰｏｒｔ１〜Ｐｏｒｔ１０の１０本とし、Ｐｏｒｔ１，２，５，１０からＭｏｄｅ１のアクセスが行われ、Ｐｏｒｔ３，４，７，８からＭｏｄｅ２のアクセスが行われ、Ｐｏｒｔ６，９からＢｅｓｔＥｆｆｏｒｔのアクセスが行われるものとしている。なお、どのポートからどのアクセスモードのアクセスが行われるかは、予め固定しておいてもよいし、動的に変化させてもよい。
【００４２】
Ｍｏｄｅ１の各ポート（Ｐｏｒｔ１，２，５，１０）に割り当てる１個のタイムスロットの長さＴａｃｃｅｓｓ１と、Ｍｏｄｅ２の各ポート（Ｐｏｒｔ３，４，７，８）に割り当てる１個のタイムスロットの長さＴａｃｃｅｓｓ２とは、次のような条件を満たすように設定している。
【００４３】
条件：Ｍｏｄｅ１のアクセスを帯域保障するために必要なアクセス周期（これは、Ｍｏｄｅ１のポートに対応するバッファーメモリ（図６のバッファーメモリ３）が、アクセス１回当たりに蓄積しなければならないデータ量を、時間の長さに換算したものであるといえるので、Ｔｂｕｆ１と表す）と、Ｍｏｄｅ２のアクセスを帯域保障するために必要なアクセス周期（同じくＴｂｕｆ２と表す）とが、
【数５】
0004609356.tif 000006
となる。
但し、Ｍは２以上の整数であり、図ではＭ＝３である。
【００４４】
例えばＭｏｄｅ１，Ｍｏｄｅ２が前述のようにそれぞれリアルタイム性を要求されるデータの再生，記憶のためのアクセスである場合には、具体的には、Ｔａｃｃｅｓｓ１は、フラッシュメモリ１に対してブロックよりも小さいページ単位でアクセスしてデータを再生するための時間長に設定し、Ｔａｃｃｅｓｓ２は、フラッシュメモリ１に対してブロック単位でアクセスしてデータを記憶するための時間長に設定することができる。
【００４５】
そして、Ｍ本（図では３本）のスロットユニットであるＳｌｏｔＵｎｉｔ１〜ＳｌｏｔＵｎｉｔ３を時間軸上で繋げることによって、トータルスケジュールを構成する（図では、図示の都合上、時間軸を、ＳｌｏｔＵｎｉｔ１の末尾から図の斜め上方向に跳んでＳｌｏｔＵｎｉｔ２の先頭に移り、ＳｌｏｔＵｎｉｔ２の末尾から図の斜め上方向に跳んでＳｌｏｔＵｎｉｔ３の先頭に移るように、３つに分けて描いている）。
【００４６】
各ＳｌｏｔＵｎｉｔ１〜ＳｌｏｔＵｎｉｔ３には、先頭（時間軸で早い方）から順に、Ｍｏｄｅ１アクセススロットエリア，Ｍｏｄｅ２アクセススロットエリア，ＢｅｓｔＥｆｆｏｒｔアクセススロットエリアを設ける。
【００４７】
そして、Ｍｏｄｅ１の各ポート（Ｐｏｒｔ１，２，５，１０）については、ポートがオープンされた時点で、各ＳｌｏｔＵｎｉｔ１〜ＳｌｏｔＵｎｉｔ３のＭｏｄｅ１アクセススロットエリアに、前述の長さＴａｃｃｅｓｓ１のタイムスロットを１個ずつ（トータルスケジュール１周期でＭ＝３個）割り当てる。
【００４８】
また、Ｍｏｄｅ２の各ポート（Ｐｏｒｔ３，４，７，８）については、ポートがオープンされた時点で、ＳｌｏｔＵｎｉｔ１から順に、Ｍｏｄｅ２アクセススロットエリアに前述の長さＴａｃｃｅｓｓ２のタイムスロットを１個（トータルスケジュール１周期で１個だけ）割り当てる。図では、最初にＰｏｒｔ３がオープンされてＳｌｏｔＵｎｉｔ１のＭｏｄｅ２アクセススロットエリアにタイムスロットが割り当てられ、２番目にＰｏｒｔ４がオープンされてＳｌｏｔＵｎｉｔ２のＭｏｄｅ２アクセススロットエリアにタイムスロットが割り当てられ、３番目にＰｏｒｔ７がオープンされてＳｌｏｔＵｎｉｔ３のＭｏｄｅ２アクセススロットエリアにタイムスロットが割り当てられ、４番目にＰｏｒｔ８がオープンされて再びＳｌｏｔＵｎｉｔ１のＭｏｄｅ２アクセススロットエリアに（Ｐｏｒｔ３のタイムスロットに続く時間位置に）タイムスロットが割り当てられている。
【００４９】
また、各ＳｌｏｔＵｎｉｔ１〜ＳｌｏｔＵｎｉｔ３のＢｅｓｔＥｆｆｏｒｔアクセススロットエリアに割り当てるタイムスロットの長さＴａｃｃｅｓｓ＿ｂｅｓｔは、下記式の条件を満たすように制御する。
【数６】
0004609356.tif 000007
但し、Ｎｍｏｄｅ１，Ｎｍｏｄｅ２は、それぞれＭｏｄｅ１，Ｍｏｄｅ２でアクセスされるポートの数（ここではＮｍｏｄｅ１＝４，Ｎｍｏｄｅ２＝４）であり、ＲｏｕｎｄＵｐ（Ｎｍｏｄｅ２／Ｍ，０）は、Ｎｍｏｄｅ２／Ｍの値を切り上げた整数（ここでは、４／３を切り上げた整数２）である。
【００５０】
図では、この式（６）の条件を満たすように、ＢｅｓｔＥｆｆｏｒｔのポート（Ｐｏｒｔ６，９）のうちのＰｏｒｔ６のタイムスロットが、ＳｌｏｔＵｎｉｔ１のＢｅｓｔＥｆｆｏｒｔアクセススロットエリアに割り当てられるとともに、Ｐｏｒｔ９のタイムスロットが、ＳｌｏｔＵｎｉｔ１のＢｅｓｔＥｆｆｏｒｔアクセススロットエリア（Ｐｏｒｔ６のタイムスロットに続く時間位置）とＳｌｏｔＵｎｉｔ２のＢｅｓｔＥｆｆｏｒｔアクセススロットエリアとにまたがって割り当てられている。
【００５１】
上記式（６）の条件を満たすことにより、Ｍｏｄｅ１の各ポート（Ｐｏｒｔ１，２，５，１０）に、帯域保障のために必要なアクセス周期Ｔｂｕｆ１以内の間隔でタイムスロットが割り当てられるので、Ｍｏｄｅ１のアクセスが帯域保障される。
【００５２】
また、上記式（５）と式（６）との関係から、トータルスケジュール１周期の長さＴｏｔａｌ＿Ｓｃｈｅｄｕｌｅは、下記式の条件を満たすようになる。
【数７】
0004609356.tif 000008
【００５３】
したがって、Ｍｏｄｅ２の各ポート（Ｐｏｒｔ３，４，７，８）にも、帯域保障のために必要なアクセス周期Ｔｂｕｆ２以内の間隔でタイムスロットが割り当てられるので、Ｍｏｄｅ２のアクセスも帯域保障される。
【００５４】
図８は、図７のアクセス制御方法による、Ｍｏｄｅ１，Ｍｏｄｅ２の各ポートに対応するバッファーメモリ（図６のバッファーメモリ３）のデータ蓄積量であるバッファー量の推移を示す図である。Ｍｏｄｅ１のアクセスが繰り返される間隔は、Ｍｏｄｅ２のアクセスが繰り返される間隔よりも短く、且つ、ほぼ均一な間隔になっている（すなわち、ワーストケースでも間隔が短くなっている）。
【００５５】
このように、Ｍｏｄｅ１のアクセスが繰り返される間隔がほぼ均一な短い間隔になることにより、次のような２つの点でメリットが生まれる。
【００５６】
１つ目のメリットは、図６のバッファーメモリ３がＭｏｄｅ１のアクセスを要求してからそのアクセスが実行されるまでの遅延時間が短くなることである。
【００５７】
例えば、ビデオデータのシャトル再生では、外部の機器でのシャトル操作（２倍速，４倍速，８倍速といった再生速度の選択操作）に応じて、バッファーメモリ３が、フラッシュメモリ１からのデータの読出しアドレスを決定し、そのアドレスのデータを読み出すためのアクセス要求をスロットアクセスコントローラ２に対して行う。そして、スロットアクセスコントローラ２がその要求を処理することにより、シャトル再生のためのデータの読み出しが実現される。
【００５８】
したがって、バッファーメモリ３がＭｏｄｅ１のアクセスとしてシャトル再生のためのアクセスを要求してから、そのアクセスが実行されるまでの遅延時間が短くなるので、シャトル操作を行う外部の機器から見て、シャトル操作に対するフラッシュメモリ装置のポートからのビデオデータ出力の反応が早くなる（シャトルレスポンスが向上する）というメリットが生まれる。
【００５９】
２つ目のメリットは、図８にも表れているように、Ｍｏｄｅ１のポートに対応するバッファーメモリ３のバッファー量の最大値Ｄｂｕｆ１が小さくなり、その結果、Ｍｏｄｅ１のポートに対応するバッファーメモリ３をオーバーフローさせたりアンダーフローさせないためのバッファー容量を小さくできることである。
【００６０】
最後に、図７のアクセス制御方法を実現するためのスロットアクセスコントローラ２の構成例を、図９を用いて説明する。スロットアクセスコントローラ２には、スロットコントローラ１１と、フラッシュメモリ１（図６）にアクセスするためのＤＭＡ（ダイレクトメモリアクセス）コントローラ１２と、バッファーメモリ３（１）〜３（ｎ）（図６）とのインタフェースであるｎ個のバッファーインタフェース１３（１３（１）〜１３（ｎ））とが設けられている。
【００６１】
スロットコントローラ１１には、Ｍｏｄｅ１スロット割り当て部１４と、Ｍｏｄｅ２スロット割り当て部１５と、ＢｅｓｔＥｆｆｏｒｔスロット割り当て部１６と、Ｍ個（図７の場合にはＭ＝３）のＳｌｏｔＵｎｉｔ１スケジューラ１７（１）〜ＳｌｏｔＵｎｉｔＭスケジューラ１７（Ｍ）と、スロットユニットスイッチ１８とが設けられている。
【００６２】
Ｐｏｒｔ１〜Ｐｏｒｔｎのうちのいずれかのポートがオープンして、そのポートに対応するバッファーメモリ３からの要求がバッファーインタフェース１３を介してスロットコントローラ１１に送られる毎に、スロットコントローラ１１では、その要求の内容から、そのポートがＭｏｄｅ１，Ｍｏｄｅ２，ＢｅｓｔＥｆｆｏｒｔのうちのいずれのアクセスモードのポートであるかを判別する。
【００６３】
そして、Ｍｏｄｅ１のポートである場合には、Ｍｏｄｅ１スロット割り当て部１４が、図７に例示したようにＭ本のスロットユニットＳｌｏｔＵｎｉｔ１〜ＳｌｏｔＵｎｉｔＭのＭｏｄｅ１アクセススロットエリアにそれぞれそのポートのタイムスロットを割り当てる処理を行う。
【００６４】
他方、Ｍｏｄｅ１のポートである場合には、Ｍｏｄｅ２スロット割り当て部１５が、図７に例示したように１本ずつのスロットユニットのＭｏｄｅ２アクセススロットエリアに順番にそのポートのタイムスロットを割り当てる処理を行う。
【００６５】
他方、ＢｅｓｔＥｆｆｏｒｔのポートである場合には、ＢｅｓｔＥｆｆｏｒｔスロット割り当て部１６が、図７に示したようにスロットユニットのＢｅｓｔＥｆｆｏｒｔアクセススロットエリアにそのポートのタイムスロットを割り当てる処理を行う。
【００６６】
ＳｌｏｔＵｎｉｔ１スケジューラ１７（１）〜ＳｌｏｔＵｎｉｔＭスケジューラ１７（Ｍ）は、これらのスロット割り当て部１４〜１６の割り当て結果に基づいて、図７に例示したようにそれぞれ１本ずつのスロットユニットＳｌｏｔＵｎｉｔ１〜ＳｌｏｔＵｎｉｔＭをスケジューリングする処理を行う。
【００６７】
スロットユニットスイッチ１８は、ＳｌｏｔＵｎｉｔ１スケジューラ１７（１）〜ＳｌｏｔＵｎｉｔＭスケジューラ１７（Ｍ）のスケジューリング結果（すなわちトータルスケジュール１周期分のスケジューリング結果）に基づき、各バッファーメモリ３からバッファーインタフェース１３を介してＤＭＡコントローラ１２に送られるデータを１つずつ切り換えてＤＭＡコントローラ１２からフラッシュメモリ１に転送させる制御と、フラッシュメモリ１からＤＭＡコントローラ１２に送られるデータをどのバッファーインタフェース１３に送るかを切り換える制御とを行う。
【００６８】
なお、以上の説明では、Ｍｏｄｅ１，Ｍｏｄｅ２の例として、それぞれデータの再生のためのアクセス，データの記憶のためのアクセスを挙げた。しかし、本発明は、これに限らず、帯域保障を行うために必要なアクセス周期が異なる２種類のアクセスを複数のポートから行うあらゆるケースに適用することができる。
【００６９】
また、以上の説明ではフラッシュメモリ装置に本発明を適用している。しかし、本発明は、これに限らず、フラッシュメモリ装置以外の記憶装置に対して、帯域保障を行うために必要なアクセス周期が異なる２種類のアクセスを複数のポートから行う場合にも適用することができる。
【図面の簡単な説明】
【００７０】
【図１】複数のポートを設けた記憶装置へのアクセスの様子を概念的に示す図である。
【図２】複数のポートを設けた記憶装置における従来のアクセス制御方法を示す図である。
【図３】図２のアクセス制御方法によるバッファー量の推移を示す図である。
【図４】図２のアクセス制御方法に対する改善例を示す図である。
【図５】図４の改善例によるバッファー量の推移を示す図である。
【図６】本発明を適用したフラッシュメモリ装置の全体構成を示すブロック図である。
【図７】図６のスロットアクセスコントローラによるアクセス制御方法を示す図である。
【図８】図７のアクセス制御方法によるバッファー量の推移を示す図である。
【図９】図６のスロットアクセスコントローラの構成例を示す図である。
【符号の説明】
【００７１】
１  フラッシュメモリ、  ２  スロットアクセスコントローラ、  ３（１）〜３（ｎ）  バッファーメモリ、  ４（１）〜４（ｎ）  ポート入出力プロセッサ、  １１  スロットコントローラ、  １２  ＤＭＡコントローラ、  １３（１）〜１３（ｎ）  バッファーインタフェース、  １４  Ｍｏｄｅ１スロット割り当て部、  １５  Ｍｏｄｅ２スロット割り当て部、  １６  ＢｅｓｔＥｆｆｏｒｔスロット割り当て部、  １７（１）〜１７（Ｍ）  ＳｌｏｔＵｎｉｔ１スケジューラ〜ＳｌｏｔＵｎｉｔＭスケジューラ、  １８  スロットユニットスイッチ
【図１】
0004609356.tif 000009
【図２】
0004609356.tif 000010
【図３】
0004609356.tif 000011
【図４】
0004609356.tif 000012
【図５】
0004609356.tif 000013
【図６】
0004609356.tif 000014
【図７】
0004609356.tif 000015
【図８】
0004609356.tif 000016
【図９】
0004609356.tif 000017