(57)【要約】【課題】プロセッサの負荷を増加させることなく、アクセスに所定のルーチンを必要とするフラッシュメモリ等のメモリからの、読み出しにおける待ち時間を短縮する演算処理システムを提供することを目的とする。【解決手段】演算処理システムであって、プロセッサと、前記プロセッサによるアクセスの対象であるデータを格納する第１のメモリと、転送されたデータを格納するための領域を有する第２のメモリと、前記プロセッサによるアクセスに従って、データを前記第１のメモリから前記第２のメモリの前記領域に転送させ、前記領域に格納されているデータを示す領域情報を記憶するデータ管理部とを備え、前記データ管理部は、前記プロセッサによるアクセスの対象が前記領域情報に示されているデータである場合は、前記プロセッサを前記第２のメモリにアクセスさせるものである。【選択図】図１
2008009702.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサによるアクセスの対象であるデータを格納する第１のメモリと、
転送されたデータを格納するための領域を有する第２のメモリと、
第１のメモリに対するアクセスを制御する第１のアクセスコントローラと、
第２のメモリに対するアクセスを制御する第２のアクセスコントローラと、
前記第１のアクセスコントローラ及び前記第２のアクセスコントローラを介して、第１のメモリから第２のメモリにデータを転送するデータ転送部と、
前記プロセッサによるアクセスに従って、前記データ転送部に、データを前記第１のメモリから前記第２のメモリの前記領域に転送させ、前記領域に格納されているデータを示す領域情報を記憶するデータ管理部とを備え、
前記データ管理部は、
前記プロセッサによるアクセスの対象が前記領域情報に示されているデータである場合は、前記プロセッサを前記第２のメモリにアクセスさせるものである
ことを特徴とする演算処理システム。
【請求項２】
請求項１記載の演算処理システムにおいて、
前記データ管理部は、
前記領域への書き込みを、データの優先度に応じて行うものである
ことを特徴とする演算処理システム。
【請求項３】
請求項１記載の演算処理システムにおいて、
前記第１のアクセスコントローラは、
前記第１のメモリが、アクセスに所定のルーチンを必要とする種類のメモリ又はアドレスバスから受けたアドレスによってアクセスされる種類のメモリのいずれであっても、前記プロセッサによるアクセスができるように、前記第１のメモリに対するアクセスを制御するものである
ことを特徴とする演算処理システム。
【請求項４】
請求項３記載の演算処理システムにおいて、
前記第１のアクセスコントローラは、
前記第１のメモリが、アクセスに所定のルーチンを必要とする種類のメモリ又はアドレスバスから受けたアドレスによってアクセスされる種類のメモリのいずれであっても、前記プロセッサが同一のアドレス空間を用いてアクセスすることができるようにするものである
ことを特徴とする演算処理システム。
【請求項５】
請求項１記載の演算処理システムにおいて、
前記データ転送部は、
前記演算処理システムの起動時に、前記第１のメモリが格納するデータのうち所定の領域のデータを、自動的に前記第２のメモリに転送するものである
ことを特徴とする演算処理システム。
【請求項６】
請求項１記載の演算処理システムにおいて、
前記データ管理部は、
前記プロセッサからの要求に応じて、前記領域の大きさを変化させるものである
ことを特徴とする演算処理システム。
【請求項７】
請求項１記載の演算処理システムにおいて、
前記データ転送部は、
前記第１のメモリから前記第２のメモリに転送中のデータを格納するバッファメモリを備えるものであり、
前記データ管理部は、
前記プロセッサによるアクセスの対象が、前記バッファメモリが格納するデータと一致する場合には、前記プロセッサにそのデータを前記バッファメモリから読み出させるものである
ことを特徴とする演算処理システム。
【請求項８】
請求項１記載の演算処理システムにおいて、
前記データ管理部は、
前記プロセッサによってアクセスされたデータを格納する領域の次の領域のデータを、前記第１のメモリから前記第２のメモリにさらに転送させるものである
ことを特徴とする演算処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサを搭載した演算処理システムに関する。
【背景技術】
【０００２】
デジタルスチルカメラ等のシステムＬＳＩ（large-scale integrated circuit）において、大容量かつ比較的コストの安いＮＡＮＤ型フラッシュメモリが、広く用いられるようになった。プロセッサは、プログラム等をＮＡＮＤ型フラッシュメモリから直接読み出すことができず、プログラム等は、ＮＡＮＤ型フラッシュメモリからＤＲＡＭ（dynamic random access memory）等の別のメモリに転送された上で読み出されるため、プロセッサには待ち時間が生じていた。
【０００３】
そこで、プロセッサの待ち時間を短縮するために、カウンタを用いてデータ転送を監視し、既に転送されているデータについては、転送先のメモリから読み出すことを可能にしたマイクロコントローラが、例えば、下記特許文献１に開示されている。
【特許文献１】特開２００２−２９７４４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のマイクロコントローラでは、転送先のメモリに十分な容量がない場合、全てのデータを転送することができないため、プロセッサが必要に応じてデータを転送することになる。また、プログラムやデータの構成により、必ずしも転送元のアドレス順に転送先に転送されるとは限らないため、カウンタが保持するアドレスでは、転送先に格納されているかどうかの判断ができなかった。このため、プロセッサが転送された領域を管理する必要があり、プロセッサの負荷が増すという問題があった。
【０００５】
また、転送が完了し、プロセッサによる利用も完了したデータを、転送先のメモリから効率的に除去する必要がある。
【０００６】
本発明は、プロセッサの負荷を増加させることなく、アクセスに所定のルーチンを必要とするフラッシュメモリ等のメモリからの読み出しにおける待ち時間を短縮する演算処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
前記課題を解決するため、請求項１の発明が講じた手段は、演算処理システムであって、プロセッサと、前記プロセッサによるアクセスの対象であるデータを格納する第１のメモリと、転送されたデータを格納するための領域を有する第２のメモリと、第１のメモリに対するアクセスを制御する第１のアクセスコントローラと、第２のメモリに対するアクセスを制御する第２のアクセスコントローラと、前記第１のアクセスコントローラ及び前記第２のアクセスコントローラを介して、第１のメモリから第２のメモリにデータを転送するデータ転送部と、前記プロセッサによるアクセスに従って、前記データ転送部に、データを前記第１のメモリから前記第２のメモリの前記領域に転送させ、前記領域に格納されているデータを示す領域情報を記憶するデータ管理部とを備え、前記データ管理部は、前記プロセッサによるアクセスの対象が前記領域情報に示されているデータである場合は、前記プロセッサを前記第２のメモリにアクセスさせるものである。
【０００８】
請求項１の発明によると、データ管理部は、どの領域のデータが第１のメモリから第２のメモリに転送されたかを管理し、プロセッサによるアクセスの対象のデータが第２のメモリに存在する場合は、プロセッサを第２のメモリにアクセスさせる。このため、プロセッサがデータ転送を管理する必要がない。
【０００９】
請求項２の発明は、請求項１記載の演算処理システムにおいて、前記データ管理部は、前記領域への書き込みを、データの優先度に応じて行うものである。
【００１０】
請求項２の発明によると、第２のメモリの利用効率を高くすることができる。
【００１１】
請求項３の発明は、請求項１記載の演算処理システムにおいて、前記第１のアクセスコントローラは、前記第１のメモリが、アクセスに所定のルーチンを必要とする種類のメモリ又はアドレスバスから受けたアドレスによってアクセスされる種類のメモリのいずれであっても、前記プロセッサによるアクセスができるように、前記第１のメモリに対するアクセスを制御するものである。
【００１２】
請求項３の発明によると、プロセッサは、第１のメモリの種類がいずれであっても、第１のメモリにアクセスすることができる。
【００１３】
請求項４の発明は、請求項３記載の演算処理システムにおいて、前記第１のアクセスコントローラは、前記第１のメモリが、アクセスに所定のルーチンを必要とする種類のメモリ又はアドレスバスから受けたアドレスによってアクセスされる種類のメモリのいずれであっても、前記プロセッサが同一のアドレス空間を用いてアクセスすることができるようにするものである。
【００１４】
請求項４の発明によると、プロセッサは、第１のメモリの種類を問わず、同様に第１のメモリにアクセスすることができる。このため、第１のメモリの種類の違いによって処理を分ける必要がない。
【００１５】
請求項５の発明は、請求項１記載の演算処理システムにおいて、前記データ転送部は、前記演算処理システムの起動時に、前記第１のメモリが格納するデータのうち所定の領域のデータを、自動的に前記第２のメモリに転送するものである。
【００１６】
請求項５の発明によると、演算処理システムの起動時に、データ転送部は、第１のメモリ内の所定の領域のデータを、自動的に第２のメモリに転送する。起動時に使用するデータ等を第２のメモリに転送しておくことにより、データ転送による待ち時間が発生することなく、演算処理システムを起動できる。
【００１７】
請求項６の発明は、請求項１記載の演算処理システムにおいて、前記データ管理部は、前記プロセッサからの要求に応じて、前記領域の大きさを変化させるものである。
【００１８】
請求項６の発明によると、データ管理部は、転送されたデータを格納するための領域の大きさを変化させる。このため、第２のメモリを効率的に使用できる。
【００１９】
請求項７の発明は、請求項１記載の演算処理システムにおいて、前記データ転送部は、前記第１のメモリから前記第２のメモリに転送中のデータを格納するバッファメモリを備えるものであり、前記データ管理部は、前記プロセッサによるアクセスの対象が、前記バッファメモリが格納するデータと一致する場合には、前記プロセッサにそのデータを前記バッファメモリから読み出させるものである。
【００２０】
請求項７の発明によると、データ転送部は、転送中のデータをバッファメモリに一時的に格納し、格納したデータにプロセッサがアクセスできる。このため、転送中のデータについては、転送が終わるのを待つことなく、データを読み出すことができる。
【００２１】
請求項８の発明は、請求項１記載の演算処理システムにおいて、前記データ管理部は、前記プロセッサによってアクセスされたデータを格納する領域の次の領域のデータを、前記第１のメモリから前記第２のメモリにさらに転送させるものである。
【００２２】
請求項８の発明によると、データ管理部は、アクセスされたデータを含む領域の次の領域のデータも第２のメモリに転送する。このため、プロセッサがある領域とその次の領域とにまたがるアクセスを行った場合には、転送のための待ち時間が発生しない。
【発明の効果】
【００２３】
本発明によれば、第１のメモリから第２のメモリへのデータ転送を管理するデータ管理部を備えるので、プロセッサには負荷が掛からず、また、転送されて第２のメモリが格納するデータについては直接第２のメモリにアクセスすることができ、新たな転送による待ち時間が発生しない。
【発明を実施するための最良の形態】
【００２４】
（第１の実施形態）
以下、本発明の第１の実施の形態について、図面を参照しながら説明する。
【００２５】
図１は、本発明の第１の実施形態に係る演算処理システムの構成を示すブロック図である。図１の演算処理システムは、プロセッサ１０１と、プロセッサインタフェース１０２と、第１のアクセスコントローラとしてのフラッシュメモリインタフェース１０３と、第１のメモリとしてのフラッシュメモリ１０４と、データ転送部としてのＤＭＡ（direct memory access）コントローラ１０５と、データ管理部１０６と、第２のアクセスコントローラとしてのＤＲＡＭインタフェース１０７と、第２のメモリとしてのＤＲＡＭ１０８とを備えている。
【００２６】
フラッシュメモリ１０４は、例えば、ＮＡＮＤ型フラッシュメモリであって、フラッシュメモリ１０４が格納するデータへのアクセスには所定のルーチンを必要とする。フラッシュメモリ１０４が格納するデータは、ＤＲＡＭ１０８に転送されてから、読み出される。フラッシュメモリインタフェース１０３は、所定の信号波形を用いてフラッシュメモリ１０４にアクセスする。
【００２７】
また、フラッシュメモリ１０４は、アドレスバスを持たず、読み出しの際には、最初に論理的なアドレスが、フラッシュメモリ１０４内部に備えるアドレスレジスタに書き込まれる。その後に、書き込まれた論理的なアドレスが示すデータからシーケンシャルに、データ読み出しが行われる構造となっている。フラッシュメモリインタフェース１０３は、プロセッサインタフェース１０２から出力されるアドレスを、論理的なアドレスに変換する。
【００２８】
プロセッサ１０１は、アドレスや、リード要求及びライト要求信号、ならびに実際にデータをやり取りするデータバスを備えたプロセッサバスを備えている。プロセッサ１０１は、このプロセッサバスを通じてプロセッサインタフェース１０２と接続されている。プロセッサ１０１は、フラッシュメモリ１０４に対するアクセスをプロセッサインタフェース１０２に出力する。
【００２９】
プロセッサインタフェース１０２は、プロセッサバスにより、プロセッサ１０１がアクセスしようとする対象を判断し、フラッシュメモリインタフェース１０３、データ管理部１０６、ＤＲＡＭインタフェース１０７の中から適切な対象を選択してアクセスする。プロセッサインタフェース１０２は、プロセッサ１０１からフラッシュメモリ１０４に対するアクセスがあったことを通知する信号及びアクセス対象のアドレスを、データ管理部１０６に出力する。
【００３０】
データ管理部１０６は、フラッシュメモリ１０４のどの領域のデータがＤＲＡＭ１０８に転送されているかを示す情報（領域情報）を保持するタグメモリ１１０を備える。データ管理部１０６は、プロセッサインタフェース１０２から受け取ったアドレスと、タグメモリ１１０が保持する内容とに基づいて、プロセッサ１０１によるアクセスの対象のデータを含む領域のデータを、フラッシュメモリ１０４からＤＲＡＭ１０８に転送するよう制御する信号を、ＤＭＡコントローラ１０５に出力する。データ管理部１０６は、データの転送が完了したことを、プロセッサインタフェース１０２に通知する。データ管理部１０６は、転送が完了する毎にタグメモリ１１０の内容を更新する。
【００３１】
ＤＲＡＭ１０８の中にフラッシュメモリ１０４のどの領域のデータが格納されているかを判別するために、タグメモリ１１０には、ＤＲＡＭ１０８に格納されているフラッシュメモリ１０４の領域の先頭アドレスが、格納される。データ管理部１０６は、プロセッサインタフェース１０２から通知されるアドレスと、タグメモリ１１０が保持するフラッシュメモリ１０４の領域の先頭アドレスとを比較することにより、プロセッサ１０１がアクセス要求を行っているフラッシュメモリ１０４の領域のデータが、ＤＲＡＭ１０８に既に格納されているか否かを、判別する。
【００３２】
タグメモリ１１０はまた、領域を示すアドレスとともに、その領域のデータの優先度を格納する。優先度は、例えば、プロセッサにおけるキャッシュメモリに採用されるアルゴリズムと同等のアルゴリズムを適用して求めても良いし、独自のアルゴリズムを適用しても良い。
【００３３】
データ管理部１０６は、プロセッサ１０１からの新たなアクセス要求によりデータを転送する場合に、ＤＲＡＭ１０８に格納されたデータの領域のうち、優先度の最も低いデータの領域に上書きし、優先度の高いものはそのまま保存するように制御する。
【００３４】
なお、タグメモリ１１０を拡張して何らかの追加情報を書き加え、最もアクセスされていない領域を上書きされるべき領域であると判断するようにしても良いし、上書きされるべき領域を単純にランダムに選ぶようにしても良い。
【００３５】
なお、転送されたデータが格納されるＤＲＡＭ１０８の領域については、元のデータを退避させるために、フラッシュメモリ１０４の対応する領域に書き戻すようにしても良いし、フラッシュメモリ１０４の読み出しのみを本発明の適用対象として、単純に上書きするだけでも良い。
【００３６】
ＤＭＡコントローラ１０５は、データ管理部１０６から受けた信号に従って、フラッシュメモリ１０４のデータをフラッシュメモリインタフェース１０３から受け取り、ＤＲＡＭインタフェース１０７に転送する。
【００３７】
フラッシュメモリインタフェース１０３は、プロセッサインタフェース１０２及びＤＭＡコントローラ１０５から、フラッシュメモリ１０４に対するアクセス要求を受け付けて、フラッシュメモリ１０４にアクセスする。
【００３８】
ＤＲＡＭインタフェース１０７は、所定の信号波形を用いてＤＲＡＭ１０８にアクセスする。ＤＲＡＭインタフェース１０７は、プロセッサインタフェース１０２及びＤＭＡコントローラ１０５から、ＤＲＡＭ１０８に対するアクセス要求を受け付けて、ＤＲＡＭ１０８にアクセスする。
【００３９】
図２は、フラッシュメモリ１０４が格納するデータを、ＤＲＡＭ１０８に転送する処理を示す説明図である。図２（ａ）は、フラッシュメモリ１０４の論理的なメモリマップを示す説明図である。図２（ｂ）は、タグメモリ１１０の論理的なメモリマップを示す説明図である。図２（ｃ）は、ＤＲＡＭ１０８の論理的なメモリマップを示す説明図である。
【００４０】
図２（ａ）では、フラッシュメモリ１０４の全領域を、例として、領域Ａ〜Ｐの１６領域に分けている。これらの領域は、論理的なアドレス空間に基づいて決定されており、それぞれのサイズは等しい。
【００４１】
図２（ｃ）では、ＤＲＡＭ１０８の全領域のうち、フラッシュメモリ１０４から転送されたデータを格納する領域として、例として、３つの領域が割り当てられている。その各領域のサイズは、フラッシュメモリ１０４の１つの領域と同一である。なお、ＤＲＡＭ１０８のその他の領域は、他の用途に用いることが可能である。
【００４２】
タグメモリ１１０は、フラッシュメモリ１０４の領域のうち、データが転送されてＤＲＡＭ１０８に格納されている領域を示す情報を保持する。領域Ａ〜Ｐのいずれか、又は、何も格納されていない状態を示す空白が保持されていることになる。図２（ｂ）では、例えば、領域Ａ，Ｎ，Ｇの３つの領域のデータがフラッシュメモリ１０４から転送されて、ＤＲＡＭ１０８に格納されていることが、表されている。
【００４３】
図３は、プロセッサ１０１がアクセスを要求した場合のデータ管理部１０６の動作を示すフローチャートである。処理が開始されると、ステップＳ１０２では、データ管理部１０６は、プロセッサ１０１によるフラッシュメモリ１０４に対するアクセスを通知する信号を、プロセッサインタフェース１０２から受け取ると、アクセスがフラッシュメモリ１０４のどの領域を対象とするものかを判別する。
【００４４】
次に、ステップＳ１０４では、データ管理部１０６は、タグメモリ１１０にアクセスの対象の領域が示されているか否かを判定する。プロセッサ１０１によるアクセスが対象とするフラッシュメモリ１０４の領域がタグメモリ１１０に示されている場合は、処理はステップＳ１０６に進み、示されていない場合は、処理はステップＳ１０８に進む。
【００４５】
次に、ステップＳ１０６では、プロセッサ１０１は、プロセッサインタフェース１０２及びＤＲＡＭインタフェース１０７を介して、ＤＲＡＭ１０８にアクセスし、データを読み出す。
【００４６】
ステップＳ１０８では、データ管理部１０６は、タグメモリ１１０を参照して、最も優先度の低いデータを判断して、ＤＲＡＭ１０８において上書きする領域を決定する。
【００４７】
ステップＳ１１０では、データ管理部１０６は、フラッシュメモリ１０４からアクセス対象のデータを転送して、ステップＳ１０８で決定したＤＲＡＭ１０８の優先度の低いデータの領域に格納するように、ＤＭＡコントローラ１０５を制御する。
【００４８】
ステップＳ１１２では、データ管理部１０６は、プロセッサインタフェース１０２に、ＤＲＡＭ１０８に転送が完了したことを通知する。
【００４９】
ステップＳ１１４では、プロセッサ１０１は、プロセッサインタフェース１０２及びＤＲＡＭインタフェース１０７を介して、ＤＲＡＭ１０８にアクセスし、データを読み出す。
【００５０】
ステップＳ１１６では、データ管理部１０６は、タグメモリ１１０の内容を更新する。
【００５１】
次に、本実施形態に係る演算処理システムの起動時に、プロセッサ１０１が、フラッシュメモリ１０４から起動プログラムの読み出しを行う場合について説明する。
【００５２】
この場合、プロセッサ１０１は、プロセッサインタフェース１０２を介して、フラッシュメモリ１０４が格納する起動アドレスに対してリードアクセスを行う。プロセッサインタフェース１０２は、データ管理部１０６に対して読み出し要求があったことを通知する。
【００５３】
演算処理システムの起動時であるため、タグメモリ１１０には何も保持されていない。そのため、データ管理部１０６は、フラッシュメモリ１０４が格納する、プロセッサ１０１によるアクセスの対象のデータが、ＤＲＡＭ１０８に存在しないと判断する。よって、データ管理部１０６は、プロセッサ１０１によるアクセスの対象のデータ、すわなち、起動アドレスのデータを含む領域のデータを転送するように、ＤＭＡコントローラ１０５を制御する。
【００５４】
ＤＭＡコントローラ１０５は、プロセッサ１０１によるアクセスの対象のデータを含む領域のデータを、フラッシュメモリ１０４からＤＲＡＭ１０８に転送する。転送が完了すると、データ管理部１０６は、内部に持つタグメモリ１１０の内容を更新し、プロセッサインタフェース１０２に、ＤＲＡＭ１０８に該当データが存在することを通知する。
【００５５】
プロセッサ１０１は、プロセッサインタフェース１０２及びＤＲＡＭインタフェース１０７を介して、フラッシュメモリ１０４から転送されたデータを、ＤＲＡＭ１０８から読み出す。
【００５６】
次に、プロセッサ１０１が起動アドレスに続く次のアドレスへのアクセスを行う場合について、説明する。この場合、起動アドレスのデータを含む領域のデータの転送が既に行われているため、タグメモリ１１０に起動アドレスが保持されている。よって、データ管理部１０６は、プロセッサ１０１がアクセス要求するアドレスのデータが、既にＤＲＡＭ１０８に格納されていると判断して、ＤＲＡＭ１０８に該当データが存在することを、プロセッサインタフェース１０２に通知する。プロセッサ１０１は、プロセッサインタフェース１０２及びＤＲＡＭインタフェース１０７を介して、アクセス対象のデータを、ＤＲＡＭ１０８から読み出す。
【００５７】
以上のように、データ管理部１０６が、プロセッサ１０１からのアクセスに従ってデータを転送し、転送したデータを管理することにより、プロセッサ１０１はアドレスや領域管理をする必要がなく、負荷が軽減される。フラッシュメモリインタフェース１０３は、システムの起動を行うためにＳＲＡＭなどのメモリを持つ必要がない。
【００５８】
また、タグメモリ１１０が格納するデータに優先度を付して、その優先度に基づいてＤＲＡＭ１０８の過去に利用した領域のいずれかを選択し、選択された領域に上書きして、転送したデータを格納することにより、ＤＲＡＭ１０８の転送に用いる領域を使い切ることはない。
【００５９】
また、演算処理システムの起動時には、プロセッサ１０１のアクセスにより、起動アドレスのデータを含む領域のデータが転送され、起動アドレスに続く次のアドレスのデータについても転送されているため、プロセッサ１０１は、転送指示プログラム等を実行する必要がない。
【００６０】
（第２の実施形態）
本発明の第２の実施形態に係る演算処理システムでは、フラッシュメモリインタフェース１０３は、フラッシュメモリ１０４の種類に合わせて、プロセッサ１０１からのアドレス指示を変換する。すなわち、フラッシュメモリ１０４が、データへのアクセスに所定のルーチンが必要なものだけでなく、アドレスバスを介した指示によりデータへのアクセスが可能なフラッシュメモリであっても、フラッシュメモリインタフェース１０３は、プロセッサ１０１が、いずれも同一のアドレス空間を用いてアクセスすることができるようにする。
【００６１】
フラッシュメモリ１０４がアドレスバスを介した指示によりデータへのアクセスが可能な種類である場合は、フラッシュメモリインタフェース１０３は、プロセッサインタフェース１０２から受け取ったアドレスを、そのままフラッシュメモリ１０４に出力する。
【００６２】
また、本実施形態に係る演算処理システムは、図１の第１の実施形態に係る演算処理システムにおいて、ＤＭＡコントローラ１０５に代えてＤＭＡコントローラ２０５を備える。ＤＭＡコントローラ２０５は、ＤＲＡＭ領域設定レジスタを有する。プロセッサ１０１からの制御でＤＲＡＭ領域設定レジスタを用いることにより、ＤＲＡＭ１０８の領域のうち、フラッシュメモリ１０４からの転送のために使用する領域の大きさを、設定することができる。転送のために使用する領域の大きさは、フラッシュメモリ１０４の領域に基づいた単位で、増減させることが可能である。
【００６３】
図４は、第２の実施形態において、フラッシュメモリ１０４が格納するデータを、ＤＲＡＭ１０８に転送する動作を示す説明図である。図４（ａ）は、フラッシュメモリ１０４の論理的なメモリマップを示す説明図である。図４（ｂ）は、タグメモリ１１０の論理的なメモリマップを示す説明図である。図４（ｃ）は、ＤＲＡＭ１０８の論理的なメモリマップを示す説明図である。
【００６４】
図４では、例えば、ＤＲＡＭ１０８の領域のうち最大で７つの領域を、フラッシュメモリ１０４からの転送のために使用する領域として、利用可能である。
【００６５】
図４（ａ）では、フラッシュメモリ１０４の全領域を、例として、領域Ａ〜Ｐの１６領域に分けている。この区分は、論理的なアドレス空間を元に決定されており、それぞれのデータサイズは一定である。
【００６６】
図４（ｃ）では、ＤＲＡＭ１０８の全領域のうち、フラッシュメモリ１０４から転送されたデータを格納する領域として、例として、５つの領域が設定されている。その一つ一つの領域のデータサイズは、フラッシュメモリ１０４の領域と同一である。
【００６７】
タグメモリ１１０は、フラッシュメモリ１０４の領域のうち、データが転送されてＤＲＡＭ１０８に格納されている領域を示す情報を保持する。領域Ａ〜Ｐのいずれか、又は、何も格納されていない状態を示す空白が保持されていることになる。
【００６８】
図４（ｂ）では、例として、タグメモリ１１０は、最大で７つの領域の情報を保持できるが、ＤＲＡＭ１０８の領域は転送のために５つだけ使用されており、タグメモリ１１０が保持する情報によると、２つの領域が未使用となっている。図４（ｂ）では、例えば、領域Ａ，Ｎ，Ｇ，Ｈ，Ｉの５つの領域のデータがフラッシュメモリ１０４から転送されて、ＤＲＡＭ１０８に格納されていることが、表されている。
【００６９】
また、本実施形態においては、データ管理部１０６は、本実施形態に係る演算処理システムの起動時に、プロセッサ１０１からのアクセスを受けることなく、所定の領域のデータをフラッシュメモリ１０４からＤＲＡＭ１０８に、自動的に転送する。
【００７０】
図５は、第１の実施形態に係る演算処理システムの起動時における処理の流れを示すフローチャートである。図５は、例えば、メモリマップが図２（ａ）と同様の状態であるフラッシュメモリ１０４から、演算処理システムの起動時においてデータを読み出す場合を示す。
【００７１】
処理が開始されると、ステップＳ１２２では、プロセッサ１０１は、フラッシュメモリ１０４が格納する図２（ａ）の領域Ａのデータに対してアクセスを要求する。次に、ステップＳ１２４では、データ管理部１０６は、領域Ａのデータをフラッシュメモリ１０４からＤＲＡＭ１０８に転送するように、ＤＭＡコントローラ１０５を制御する。転送が完了すると、ステップＳ１２６では、プロセッサ１０１は、プロセッサインタフェース１０２及びＤＲＡＭインタフェース１０７を介して、ＤＲＡＭ１０８にアクセスし、領域Ａのデータを読み出す。
【００７２】
続いて、ステップＳ１２８では、プロセッサ１０１は、フラッシュメモリ１０４が格納する図２（ａ）の領域Ｂのデータに対してアクセスを要求する。次に、ステップＳ１３０では、データ管理部１０６は、領域Ｂのデータをフラッシュメモリ１０４からＤＲＡＭ１０８に転送するように、ＤＭＡコントローラ１０５を制御する。転送が完了すると、ステップＳ１３２では、プロセッサ１０１は、プロセッサインタフェース１０２及びＤＲＡＭインタフェース１０７を介して、ＤＲＡＭ１０８にアクセスし、領域Ｂのデータを読み出す。
【００７３】
よって、演算処理システムの起動時において、プロセッサ１０１が、フラッシュメモリ１０４の領域をまたぐアクセスを行い、かつ、データ管理部１０６が、図５のようにプロセッサ１０１からのアクセスを受けてからデータの転送を行う場合は、図２（ａ）の領域Ｂのデータを、フラッシュメモリ１０４からＤＲＡＭ１０８に転送する間の待ち時間が発生する。
【００７４】
図６は、第２の実施形態に係る演算処理システムの起動時における処理の流れを示すフローチャートである。図６は、例えば、メモリマップが図４（ａ）と同様の状態であるフラッシュメモリ１０４から、演算処理システムの起動時においてデータを読み出す場合を示す。
【００７５】
処理が開始されると、ステップＳ１４２では、プロセッサ１０１は、フラッシュメモリ１０４が格納する図４（ａ）の領域Ａに対してアクセスを要求する。次に、ステップＳ１４４では、データ管理部１０６は、領域Ａのデータをフラッシュメモリ１０４からＤＲＡＭ１０８に転送するように、ＤＭＡコントローラ２０５を制御する。転送が完了すると、ステップＳ１４６では、プロセッサ１０１は、プロセッサインタフェース１０２及びＤＲＡＭインタフェース１０７を介して、ＤＲＡＭ１０８にアクセスし、領域Ａのデータを読み出す。
【００７６】
また、ステップＳ１４８からステップＳ１５０までは、ステップＳ１４６と並列に処理される。ステップＳ１４８では、データ管理部１０６は、図４（ａ）の領域Ｂのデータをフラッシュメモリ１０４からＤＲＡＭ１０８に転送するように、ＤＭＡコントローラ２０５を制御する。ステップＳ１５０では、データ管理部１０６は、図４（ａ）の領域Ｃのデータをフラッシュメモリ１０４からＤＲＡＭ１０８に転送するように、ＤＭＡコントローラ２０５を制御する。
【００７７】
ステップＳ１５２では、プロセッサ１０１は、領域Ｂに対してアクセスを要求する。ステップＳ１５４では、プロセッサ１０１は、プロセッサインタフェース１０２及びＤＲＡＭインタフェース１０７を介して、ＤＲＡＭ１０８にアクセスし、領域Ｂのデータを読み出す。
【００７８】
図６のように処理されることにより、演算処理システムの起動時において、領域Ｂのデータは、プロセッサ１０１が領域ＡのデータをＤＲＡＭ１０８から読み出す間に、自動的にフラッシュメモリ１０４からＤＲＡＭ１０８に転送されるので、領域Ｂのデータを転送する間の待ち時間は、発生しない。
【００７９】
以上のように、フラッシュメモリインタフェース１０３が、プロセッサ１０１からのアドレス指示をフラッシュメモリ１０４の種類に合わせて変換することにより、プロセッサ１０１は、フラッシュメモリ１０４の種類が異なるものであっても、同一のアドレス空間を用いてアクセスできる。よって、異なる種類のフラッシュメモリ１０４へのアクセスのために異なるソフトウェアを用いたり、フラッシュメモリの違いによるソフトウェア修正を実施する必要がない。
【００８０】
また、ＤＭＡコントローラ２０５がＤＲＡＭ領域設定レジスタを有して、ＤＲＡＭ１０８の領域のうち、フラッシュメモリ１０４からの転送のために使用する領域の大きさを増減することにより、システムの状態に応じて、ＤＲＡＭ１０８を活用できる。
【００８１】
さらに、演算処理システムの起動時に、プロセッサ１０１からのアクセスを受けることなく、所定の領域のデータをフラッシュメモリ１０４からＤＲＡＭ１０８に自動的に転送することにより、プロセッサ１０１がフラッシュメモリ１０４に対して領域をまたぐアクセスを実施しても、待ち時間は発生せず、システム起動時間が短縮される。
【００８２】
（第３の実施形態）
本発明の第３の実施形態に係る演算処理システムは、図１の第１の実施形態に係る演算処理システムにおいて、ＤＭＡコントローラ１０５に代えてＤＭＡコントローラ３０５を備える。
【００８３】
図７は、ＤＭＡコントローラ３０５の構成を示すブロック図である。ＤＭＡコントローラ３０５は、ＤＭＡコントローラ１０５において、バッファメモリ７０２と、アドレスポインタ７０４とをさらに備える。バッファメモリ７０２には、図１のＤＲＡＭ１０８よりも少ない消費電力で、より高速にアクセスできる記憶装置が用いられる。
【００８４】
バッファメモリ７０２は、図１のフラッシュメモリ１０４からＤＲＡＭ１０８に転送されるデータを、一時的に格納する。アドレスポインタ７０４は、バッファメモリ７０２が格納するデータのフラッシュメモリ１０４におけるアドレスを格納し、フラッシュメモリ１０４からデータが転送される毎に値が更新される。
【００８５】
図１のデータ管理部１０６は、バッファメモリ７０２及びアドレスポインタ７０４にアクセスし、アドレスポインタ７０４が格納する値を参照することにより、バッファメモリ７０２が格納するデータの、フラッシュメモリ１０４におけるアドレスを判別する。データ管理部１０６は、図１のプロセッサ１０１によるアクセスの対象のデータと、バッファメモリ７０２が格納するデータとが一致すれば、データがＤＲＡＭ１０８に格納される前であっても、転送中にバッファ７０２からデータを読み出すことができる。
【００８６】
また、本実施形態においては、データ管理部１０６は、プロセッサ１０１のアクセスによってデータがフラッシュメモリ１０４からＤＲＡＭ１０８に転送される場合は、プロセッサ１０１が要求するデータとともに、次の領域のデータを転送する。
【００８７】
図８は、第３の実施形態において、プロセッサ１０１がアクセスを要求した場合のデータ管理部１０６の動作を示すフローチャートである。
【００８８】
処理が開始されると、ステップＳ１６２では、データ管理部１０６は、プロセッサ１０１によるフラッシュメモリ１０４に対するアクセスを通知する信号をプロセッサインタフェース１０２から受け取ると、アクセスがフラッシュメモリ１０４のどの領域を対象とするものかを判別する。
【００８９】
次に、ステップＳ１６４では、データ管理部１０６は、アクセスの対象のデータがバッファメモリ７０２に格納されているか否かを判定する。プロセッサ１０１によるアクセスの対象のデータがバッファメモリ７０２に格納されている場合は、処理はステップＳ１６６に進み、格納されていない場合は、処理はステップＳ１６８に進む。
【００９０】
ステップＳ１６６では、プロセッサ１０１は、プロセッサインタフェース１０２及びデータ管理部１０６を介して、バッファメモリ７０２からデータを読み出す。
【００９１】
なお、ステップＳ１６８，Ｓ１７０，Ｓ１７２，Ｓ１７４，Ｓ１７６，Ｓ１７８及びＳ１８０では、図３のステップＳ１０４，Ｓ１０６，Ｓ１０８，Ｓ１１０，Ｓ１１２，Ｓ１１４及びＳ１１６と、それぞれ同様の処理が行われる。
【００９２】
次に、ステップＳ１８２では、データ管理部１０６は、タグメモリ１１０を参照して、最も優先度の低い領域を判断して、ＤＲＡＭ１０８において上書きする領域を決定する。
【００９３】
ステップＳ１８４では、プロセッサ１０１によるアクセスが対象とする領域の、次の領域のデータを、フラッシュメモリ１０４からＤＲＡＭ１０８に転送する。ステップＳ１８６では、データ管理部１０６は、タグメモリ１１０の内容を更新する。
【００９４】
以上のように、ＤＭＡコントローラ３０５がバッファメモリ７０２を備え、プロセッサ１０１によるアクセスの対象のデータと、バッファメモリ７０２が格納するデータとが一致した場合には、プロセッサ１０１がバッファメモリ７０２からデータを読み出すようにすることにより、ＤＲＡＭ１０８へのアクセスを減らすことができる。よって、データへのアクセスに要する時間を短縮し、かつ、消費電力を抑えることができる。
【００９５】
また、データ管理部１０６が、アクセス対象のデータを転送する際に、そのデータを格納する領域の次の領域のデータを転送しておいても良い。すると、プロセッサ１０１が領域をまたぐアクセスを実施した場合に、次の領域のデータを転送するための待ち時間が発生しない。
【産業上の利用可能性】
【００９６】
以上説明したように、本発明は、プロセッサの負荷を増加させることなく、フラッシュメモリからの読み出しにおける待ち時間を短縮することができるので、ＮＡＮＤ型フラッシュメモリを使用するシステム全般について有用である。
【図面の簡単な説明】
【００９７】
【図１】本発明の第１の実施形態に係る演算処理システムの構成を示すブロック図である。
【図２】フラッシュメモリ１０４が格納するデータを、ＤＲＡＭ１０８に転送する処理を示す説明図である。図２（ａ）は、フラッシュメモリ１０４の論理的なメモリマップを示す説明図である。図２（ｂ）は、タグメモリ１１０の論理的なメモリマップを示す説明図である。図２（ｃ）は、ＤＲＡＭ１０８の論理的なメモリマップを示す説明図である。
【図３】プロセッサ１０１がアクセスを要求した場合のデータ管理部１０６の動作を示すフローチャートである。
【図４】第２の実施形態において、フラッシュメモリ１０４が格納するデータを、ＤＲＡＭ１０８に転送する動作を示す説明図である。図４（ａ）は、フラッシュメモリ１０４の論理的なメモリマップを示す説明図である。図４（ｂ）は、タグメモリ１１０の論理的なメモリマップを示す説明図である。図４（ｃ）は、ＤＲＡＭ１０８の論理的なメモリマップを示す説明図である。
【図５】第１の実施形態に係る演算処理システムの起動時における処理の流れを示すフローチャートである。
【図６】第２の実施形態に係る演算処理システムの起動時における処理の流れを示すフローチャートである。
【図７】ＤＭＡコントローラ３０５の構成を示すブロック図である。
【図８】第３の実施形態において、プロセッサ１０１がアクセスを要求した場合のデータ管理部１０６の動作を示すフローチャートである。
【符号の説明】
【００９８】
１０１  プロセッサ
１０２  プロセッサインタフェース
１０３  フラッシュメモリインタフェース（第１のアクセスコントローラ）
１０４  フラッシュメモリ（第１のメモリ）
１０５，２０５，３０５  ＤＭＡコントローラ（データ転送部）
１０６  データ管理部
１０７  ＤＲＡＭインタフェース（第２のアクセスコントローラ）
１０８  ＤＲＡＭ（第２のメモリ）
１１０  タグメモリ
７０２  バッファメモリ
【図１】
2008009702.tif 000003
【図２】
2008009702.tif 000004
【図３】
2008009702.tif 000005
【図４】
2008009702.tif 000006
【図５】
2008009702.tif 000007
【図６】
2008009702.tif 000008
【図７】
2008009702.tif 000009
【図８】
2008009702.tif 000010