JPH07146820A - フラッシュメモリの制御方法及び、それを用いた情報処理装置 - Google Patents

フラッシュメモリの制御方法及び、それを用いた情報処理装置

Info

Publication number
JPH07146820A
JPH07146820A JP6071049A JP7104994A JPH07146820A JP H07146820 A JPH07146820 A JP H07146820A JP 6071049 A JP6071049 A JP 6071049A JP 7104994 A JP7104994 A JP 7104994A JP H07146820 A JPH07146820 A JP H07146820A
Authority
JP
Japan
Prior art keywords
data
address
volatile
memory
cache memory
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.)
Pending
Application number
JP6071049A
Other languages
English (en)
Inventor
Kunihiro Katayama
国弘 片山
Takashi Tsunehiro
隆司 常広
Yasuhiro Hida
庸博 飛田
Ryuichi Hattori
隆一 服部
Jun Kitahara
潤 北原
Takashi Totsuka
隆 戸塚
Kenichi Kaki
健一 柿
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6071049A priority Critical patent/JPH07146820A/ja
Publication of JPH07146820A publication Critical patent/JPH07146820A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】情報処理装置の主記憶装置としてフラッシュメ
モリを採用することにより、バックアップ電源なしでリ
ジュームやクイックスタートを可能とする。また、大容
量の主記憶を安価に構成するとともに、補助記憶装置を
不必要としてシステム構成の簡略化を図る。その際、書
換え時間が遅い、小容量のランダムアクセスが不可能な
どの性能低下原因を解決し、いろいろな形式のフラッシ
ュメモリに対応するシステム構成を提案する。 【構成】システムのメモリバス7に、揮発性メモリであ
るキャッシュメモリ3を介して、フラッシュメモリ2を
接続する。キャッシュメモリ3には格納しているデータ
のアドレスやアクセス履歴などの情報を記録するアドレ
スアレイ4を設ける。コントローラ6が、アクセスする
アドレスを参照して、キャッシュメモリ3やフラッシュ
メモリ2のデータをメモリバス7に供給、あるいはメモ
リバス7のデータを格納する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、フラッシュメモリなど
の電気的書き込み可能な不揮発性メモリを情報処理装置
の主記憶に用いた場合の制御方法及び、装置に関する。
【0002】
【従来の技術】現在普及しつつある、有望な記憶素子の
一つにフラッシュメモリがある。フラッシュメモリを用
いることで、不揮発性の主記憶を備えた情報処理装置を
構成できる。フラッシュメモリの利点としては、次に示
す点が上げられる。
【0003】1.電源を切ってもデータが保持される
(DRAMでは電源を切るとデータが失われる。) 2.SRAMに比べて安価である。 ただし次に示す欠点もある。 1.データを書き込む際は、事前に書き込む領域を消去
する必要がある。 2.消去はチップ単位、または一定サイズのブロック単
位で行われる。 3.1、2の理由により、書き込みに時間を要する。 4.書き換えにより素子が劣化するので、書換回数に制
限がある。
【0004】図17はブロックサイズが512バイト、
全メモリサイズが524288バイトのフラッシュメモ
リの概略を示す図である。図17において110はフラ
ッシュメモリ内の一つのブロック、111はブロック1
10内の1バイト分のデータ保持部(本明細書ではこれ
をセルと呼ぶ)を示す。105は制御回路である。この
フラッシュメモリにリードアクセスが発生すると、アド
レス信号A9〜A18、バッファ131、デコーダ13
2で決まる該当ブロックの、アドレスA0〜A8、バッ
ファ121、デコーダ122で決まる該当セルからデー
タを読みだし、レジスタ141を介してI/O0〜I/
O7に出力する。123はバッファ121、デコーダ1
22の制御信号、133はバッファ131、デコーダ1
32の制御信号、142はレジスタ141の制御信号で
ある。一方、図17においてライトアクセスが発生する
と、アドレス信号A9〜A18、バッファ131、デコ
ーダ132で決まる該当ブロックを消去し、該当ブロッ
クの、アドレスA0〜A8、バッファ121、デコーダ
122で決まる該当セルにI/O0〜I/O7からの入
力データをレジスタ141を介して書き込む。401は
記憶装置104の制御信号である。
【0005】以上述べたフラッシュメモリを記憶媒体と
した記憶装置の従来技術としては、例えば、特開平2−
292798号公報のフラッシュEEPROMシステム
がある。この発明は、フラッシュメモリに欠陥セルが発
生した場合の対処方法であり、例えば、代替セルを設け
た構成にしたり、欠陥セルの発生により乱れるデータを
正規なものに訂正すべく、誤り訂正制御を行うことを提
案している。これにより、フラッシュメモリの欠点であ
る書換え回数の制限をカバーし、システム寿命の長期化
を図る効果を得ている。また、システムにライトキャッ
シュメモリを搭載して、キャッシュメモリへの最後の書
き込みからの経過時間に基づいて、フラッシュメモリへ
のライトバックを行なう。頻繁に書き変わるデータを、
フラッシュメモリ上で書換えずに、キャッシュメモリ上
で書換えることにより、フラッシュメモリの動作を少な
くし、システムの寿命の長期化を図ることを目的として
いる。
【0006】一方、高性能なパーソナルコンピュータな
どでは、リードまたはライト時間を高速化する手段とし
て、DRAM−SRAMキャッシュシステムがよく用い
られる。一般にキャッシュメモリは、CPUとアクセス
に時間を要する記憶装置の間に設けられてバッファメモ
リの機能を果たし、CPUが記憶装置をリードした場合
は、そのアドレス、データ等をキャッシュメモリに格納
しておき、次にCPUが記憶装置の同じアドレスをリー
ドした時はそのアドレスに対応するデータをキャッシュ
メモリから得ることによりアクセスを高速化する。キャ
ッシュメモリにはライトスルー方式とコピーバック方式
の2方式が知られている。ライトスルー方式は、記憶装
置への書き込み要求に対してキャッシュメモリとともに
記憶装置も同時に書き換える方式である。これに対して
コピーバック方式は、記憶装置への書き込み要求に対し
て、キャッシュメモリのみ書き換えを行ない、処理に時
間を要する記憶装置の書き換えを省略することによりア
クセスを高速化する方式である。
【0007】また、フラッシュメモリのチップコストを
低減するために、フラッシュメモリのチップ面積を小さ
くするセル構造が注目されている。たとえば、いわゆる
NAND構造を有したフラッシュメモリがこれに相当す
る。この構造では、ランダムアクセスではなく、ライン
アクセスを行い、データの入出力方法はライン単位でシ
リアルに行う。今後のフラッシュメモリは、メモリの高
集積化を目指したラインアクセス方式が主流になると考
えられる。他にも、前記ラインアクセスに類似したアク
セス方式を採用するメモリの開発が進んでいる。
【0008】
【発明が解決しようとする課題】特開平2−29279
8号公報記載の従来技術は磁気ディスク装置置き換えを
主目的としていると考えられる。外部とデータをやり取
りするためにシステムに備えられている外部IOバスに
よる、セクタ単位でのアクセスを前提としている。しか
し、フラッシュを主記憶に採用した場合のCPUからの
ランダムアクセス、すなわち数バイト等の少ない単位で
の直接のデータのやり取りについては全く考慮されてい
ない。上述の代替セル方法や、誤り訂正符号処理は、デ
ータのやり取りをセクタ単位で行うことを考慮してい
る。バイトあるいはワード単位でのやり取りは不可能で
ある。また、あるセクタ内で不良セルが発生すると、対
応した適切な処理を行うための時間が必要となる。その
結果、データの転送時間が長くなり、データの転送が遅
れてしまう事態を招く。特に誤り訂正符号を使用した処
理は、複雑なものとなる。また、同発明におけるキャッ
シュ方式は、システム寿命の長期化のために設けられた
ものである。データ書き込み時のキャッシュデータの操
作についての技術開示はなされているが、外部システム
であるホスト側へのリードデータの転送については、全
く技術開示がされていない。したがって、高速アクセス
可能な手段の提供とはいえない。
【0009】現在、パーソナルコンピュータ等の情報処
理装置において、一般的に使用されているキャッシュメ
モリシステムは、通常、DRAM(ダイナミックラム)
を有して主記憶を構成し、さらに、SRAM(スタティ
ックラム)を有して構成したキャッシュメモリを備え、
CPUの動作速度に、DRAMのアクセス動作が追い付
けないことに対処している。つまり、アクセスされたア
ドレスを、SRAMに割付け、アクセス速度の遅いDR
AMは、データのバックアップ用に使用して、CPUか
らは、アクセス速度の速いSRAMが、主記憶となって
いるように見せかける技術である。この技術において
は、DRAMのアクセススピードとSRAMのアクセス
スピードでは、数倍程度の違いがあるが、違いが大きな
場合でも、10倍以内であるため、キャッシュメモリに
割当てされていないアドレスに対するライトアクセスの
場合、すなわち、ライトミスヒット時のリカバリタイム
は、それほど大きなものではない。フラッシュメモリを
主記憶に採用した場合には、フラッシュメモリの書換え
時間は、DRAMと比較すると数桁の違いがあり、ライ
トミスヒット時のリカバリタイムは、非常に大きくなっ
てしまい、システムの性能の低下を招くことになる。し
たがって、この点を考慮したシステムを実現する必要が
ある。
【0010】また、上述のラインアクセス方式のメモリ
を用いて、ランダムアクセスを高速に行うことが今後重
要な技術となる。前記特開平2−292798号公報を
含め、従来の技術においては、この点を考慮したものが
ない。また、主記憶が不揮発性になることで、システム
上、大きな違いが生じる。例えば、主記憶が揮発性であ
れば、補助記憶装置を備えて、ファイルデータの保存を
行うのが一般的である。しかし、不揮発性の主記憶シス
テムの場合は、補助記憶装置を備える必要が無く、主記
憶がデータ保存の領域となる。このことが、不揮発性の
主記憶を備えるシステムの効果のひとつであるが、逆
に、このために発生する問題もある。例えば、各種の情
報処理装置では、プログラムや操作のミスにより装置が
暴走してしまうという事故が起こることがある。この
際、揮発性の主記憶であれば、最終手段として、ハード
リセットをかけたり、電源を一度切断して再スタートす
ることが可能である。これによって主記憶の内容をクリ
アし、補助記憶装置から再度、データを主記憶にロード
して、正常な状態に戻すことができる。しかし、不揮発
性の主記憶では、装置の暴走により、主記憶内に存在す
るデータが破壊されると、正しいデータが存在しなくな
り、正常な状態に戻すことが困難となる。
【0011】また、キャッシュメモリだけが書き換えら
れている状態で、システムの電源が切断された場合、主
記憶が揮発性のシステムでは、主記憶およびキャッシュ
メモリのいずれの記憶データも揮発するため問題は発生
しない。しかし、主記憶が不揮発性の場合には、キャッ
シュメモリだけに最新のデータが格納された状態で、電
源が落される事態が生じると、ユーザはデータが残され
ているつもりでも、実際には、ユーザが入力したつもり
のデータが、キャッシュメモリから揮発し、消滅してし
まうことが起こりうる。したがって、不揮発性の主記憶
を備える情報処理装置では、装置の暴走や、電源遮断に
対処する方式の提供が必要となる。また、上述のキャッ
シュメモリが揮発性の場合、電源遮断後の再起動時に、
初めのうちはミスヒットが続き、アクセス速度が劣化す
るという問題が生じる。
【0012】本発明の目的は、フラッシュメモリを主記
憶に備える情報処理装置を実現することである。具体的
には、CPUからのランダムアクセスに対応可能とする
ことである。さらには、高集積なラインアクセス方式の
フラッシュメモリに対応できる情報処理装置を実現する
ことである。さらには、その際のミスヒットアクセスに
対するリカバリタイムを短くして性能を向上させること
である。さらには、プログラムや操作のミスによる暴走
による重要なデータの破壊を防止することである。さら
には、キャッシュメモリ内の情報と、主記憶内の情報が
一致していない状況での電源が遮断された時の対処を考
慮して、信頼性を向上させることである。さらには、動
作の停止後、再開時のアクセス性能を向上させ、総合的
な使用感の向上を目指すことである。
【0013】
【課題を解決するための手段】上記目的を達成するため
に、本発明の情報処理装置は、中央処理装置と、データ
を入力するための入力手段と、データを出力するための
出力手段と、データを記憶する揮発性の第一記憶手段
と、記憶されたデータを電気的に書換え可能な記憶手段
であって、前記中央処理装置がアクセス可能なアドレス
空間を割付けた不揮発性の第二記憶手段と、前記揮発性
の第一記憶手段と前記不揮発性の第二記憶手段との相互
間でデータのやり取りを少なくとも行うデータ制御手段
と、前記揮発性の第一記憶手段に格納されたデータの、
前記不揮発性の第二記憶手段におけるアドレスを登録す
るアドレス登録手段と、該アドレス登録手段に登録され
ているアドレスと前記中央処理装置がデータアクセスの
ために出力したアドレスとの比較を行うアドレス比較手
段とを備えたことを特徴とする。
【0014】そして、前記データ制御手段は、前記中央
処理装置が、データをアクセスするために出力したアド
レスを、前記アドレス比較手段に入力し、当該アドレス
が、前記アドレス比較手段の出力結果にもとづき、前記
アドレス登録手段に登録されている登録アドレスと判断
したときには、前記揮発性の第一記憶手段内における登
録アドレスをアクセスし、逆に、前記アドレス登録手段
に格納されていないアドレスと判断したときには、少な
くとも当該アドレスを含む所定範囲のアドレスを、前記
アドレス登録手段に新たに登録し、該新たに登録された
アドレスに対応するデータ格納領域を前記揮発性の第一
記憶手段に新たに設定して、前記新たに登録された少な
くとも一つのアドレスをアクセスするように構成する。
【0015】さらに、本発明の情報処理装置は、CPU
からデータを書き込む前に、一旦、当該書込みの対象と
なるブロック内の全データを消去する必要がある記憶装
置であるフラッシュメモリを主記憶装置として用いる情
報処理装置において、前記主記憶装置の一部のブロック
データのコピーをそれぞれ保持する複数のデータ領域を
有するコピーバック方式のキャッシュメモリと、前記C
PUから前記主記憶装置への書き込み処理の際に前記キ
ャッシュメモリがヒットしたとき、前記キャッシュメモ
リの該当データ領域のデータを更新するとともに、前記
主記憶装置の、当該書き込みの対象となったブロックの
消去処理を行う制御手段とを備えたことを特徴とする。
【0016】
【作用】上記手段は、具体的には、例えば以下のように
動作する。外部IOバスを通さずに、直接CPUがフラ
ッシュメモリの格納データをアクセスできるようにする
ためには、高速ランダムアクセスを実現しなければなら
ない。フラッシュメモリを直接アクセスすると、ランダ
ムアクセス型のフラッシュメモリでは、リードアクセス
はDRAMなみの高速ランダムアクセスが可能である
が、ライトアクセスでは、書換えがブロック単位でしか
できず、しかも非常に遅い。そして先述のように、今後
主流になると考えられる、ラインアクセス方式のフラッ
シュメモリでは、リードアクセスにおいても、ランダム
アクセスには適合しない。そこで、キャッシュメモリと
して動作するバッファメモリを、フラッシュメモリとC
PUの間に設けた構成とする。このキャッシュメモリ
は、高速ランダムアクセスが可能な、DRAMやSRA
Mで構成するのが最適である。
【0017】そして、このキャッシュメモリに対応し
て、格納してあるデータのアドレスを記録するアドレス
アレイと、アクセス来歴を記録する記憶手段を備える。
そして、フラッシュメモリの書換えが、キャッシュメモ
リのアクセスに対して非常に遅いことに対処するため、
キャッシュメモリには、未格納のアドレスのデータを常
に書き込めるように、空き領域をあらかじめ用意してお
く。また、装置の暴走による、主記憶データの破壊に対
処するため、各データ領域に、ライトプロテクトフラグ
を備えた構成とし、このフラグにより、書換え禁止状態
のデータの書換えを行った場合には、CPUに割込みを
かけて警告を行う機能を設ける。また、フラグを書き変
える際にも、割込みによる警告を行うことにより、2重
の安全が図れる。そしてその後、特定の書き込み要求レ
ジスタにCPUが所定コードを書き込まなければデータ
の書換えを許可しないようにしておく。
【0018】さらに高速化を図るために、キャッシュメ
モリ上のデータがCPUにより書換えられたら、そのデ
ータに対応するフラッシュメモリ上の領域をあらかじめ
消去し、該データの書き戻しの際に、フラッシュメモリ
の当該領域を消去するための時間を節約できるようにす
る。また、前記アドレス登録手段のデータを、装置への
電源供給を遮断しても、揮発させることなく、再び電源
供給を開始して、装置の動作を再開した際に、保持され
ているようにし、このデータをもとに、キャッシュメモ
リ内のデータを復元する。さらに具体的に説明する。キ
ャッシュメモリを設けることにより、書換えが遅いフラ
ッシュメモリの欠点をカバーできるとともに、シリアル
バッファによって、外部インタフェースが接続されてお
り、高速なランダムアクセスが不可能なフラッシュメモ
リに対しても、キャッシュメモリのランダムアクセスは
可能である。これらは、見かけ上、CPUのメモリバス
に直結した、フラッシュメモリを備える主記憶として、
使用することが可能となる。
【0019】上述のように、キャッシュメモリに格納し
ているデータの論理アドレスを記録するアドレスアレイ
と、キャッシュメモリに格納しているデータの古さを示
すアクセス履歴を記録する記憶領域を設けることによ
り、まず、キャッシュメモリに存在するアドレスのアク
セスであるか否かを判断できる。次に、キャッシュメモ
リに存在しないアドレスのアクセスであれば、アクセス
履歴上、最後のアクセスが起きてから、最もアクセスさ
れていないデータを探し出して、主記憶たるフラッシュ
メモリにライトバックし、空き領域を作りだして、新た
なデータを格納するという動作を行うようにする。これ
は、キャッシュメモリのリプレースメントアルゴリズム
として、知られているものである。
【0020】また、キャッシュメモリ内に、常に空き領
域を確保しておくことにより、CPUからデータの書き
込み要求があり、そのデータのアドレスがキャッシュメ
モリに格納されていない場合に、要求があってから、該
データを格納するための空き領域を作り出していたので
は、書き込み動作の遅いフラッシュメモリでは大きな性
能劣化となるため、あらかじめ用意してある空き領域
に、とりあえずデータを格納し、CPUからの書き込み
データ転送が終了してから、フラッシュメモリ内に空き
領域を作り出す処理を始めればよい。
【0021】さらにまた、装置の暴走に対処するための
ライトプロテクトフラグを備えた構成とし、このフラグ
の書換えや、書き込み禁止領域の書換え時に、CPUに
割込みを行い、これに対応してCPUが警告を行う構成
にしておくことによって、CPUが、異常な書換えを行
おうとしているか否かが把握可能となる。そして、CP
Uが、特定のレジスタに対しての書換えを行わなけれ
ば、格納データの書換えを行わないようにすることによ
り、装置暴走等の異常時の主記憶内のデータの書換えを
防ぐことができる。なお、CPUでは、上記の割込みを
受けとった際には、ユーザに対して、データの書換えを
行うべきか否かを確認するルーチンを実行する構成とし
ておけばよい。ユーザは、この確認ルーチンで、装置が
暴走しているか否かを判断して、適宜、情報処理装置に
指示を与える事になる。この場合、もちろん、装置の動
作の中断や再開等の指示が可能な構成にしておくのが好
ましい。
【0022】また、図18を参照し、本発明による情報
処理装置の作用を説明する。CPU101から記憶装置
104へのリードアクセスでキャッシュメモリブロック
300がヒットした場合は、キャッシュメモリブロック
300から目的のデータを読みだす。リードアクセスで
キャッシュメモリブロック300がミスヒットした場合
は、CPU101は記憶装置104から直接データをリ
ードする。これに伴い、そのデータとアドレスはキャッ
シュメモリブロック300内の新たに選択されたレジス
タに保持される。新たなレジスタの選択は、先述の置き
換え操作(リプレースメントアルゴリズム)にしたがっ
て行われる。尚、この新たに選択されたレジスタ内に前
回以前のアクセスで更新されたアドレスとデータが保持
されている場合は、そのアドレスとデータを記憶装置1
04へ書き戻した後、新たな書き込みアドレスとデータ
を保持する。本発明では記憶装置104はフラッシュメ
モリで構成されるので、その書き込みの際に、該当ブロ
ックが未消去の場合はその該当ブロックを消去してから
書き込みを行う。
【0023】一方、本発明のキャッシュメモリブロック
300はコピーバック方式のキャッシュなので、CPU
101からのライトアクセスでキャッシュメモリブロッ
ク300がヒットした場合は、キャッシュメモリブロッ
ク300内の該当レジスタを更新するだけで、記憶装置
104への書き込みは省略される。すなわち、後にリプ
レースされる際に記憶装置104の該当するブロックへ
書き戻される。換言すれば、この記憶装置104の該当
ブロックのデータはいずれ消去される。したがって、本
発明では、そのブロックがまだ消去されていないときに
は、そのブロックの消去を前もって行う。この事前消去
処理では、CPU101はその消去が完了したブロック
に直ちに書き込みを行うわけではないので、その消去処
理の完了を待つ必要はない。以後、そのブロックへのデ
ータの書き戻しを行う必要が発生した際には、それに先
立つ消去処理が省略される(既に実行されている)ので
アクセス時間が短縮される。
【0024】CPU101からのライトアクセスでキャ
ッシュメモリブロック300がミスヒットした場合は、
キャッシュメモリブロック300内のリプレース対象レ
ジスタが新たに選択され、このレジスタが更新済みであ
れば、このレジスタに格納されている更新済みのデータ
を記憶装置104へ書き戻してから、CPU101から
の当該アクセスアドレスとデータをキャッシュメモリブ
ロック300内の該当レジスタに格納する。更新済みで
なければ、リプレース対象レジスタを更新する。上述し
た記憶装置104へ書き戻す処理は、キャッシュメモリ
ブロック300のリードアクセスミスヒットの際の記憶
装置104への書き込み処理と同様である。
【0025】次に、アドレス登録手段のデータを保持す
ることについての動作を説明する。キャッシュメモリに
格納されているデータは、CPUから高速にリードライ
トできるようにするために、一時的にキャッシュメモリ
に置かれているデータである。そしてキャッシュメモリ
の容量は限られているため、最もCPUからアクセスさ
れる可能性と頻度が高いとされるデータが選択されて置
かれている。もしキャッシュメモリ上に置かれていない
データが連続してアクセスされると、著しく性能を劣化
することになる。この事態が起きることがないように、
キャッシュメモリの構成や、リプレースメントアルゴリ
ズムなどを最適化する必要がある。しかし如何に最適化
しても、キャッシュメモリのデータが揮発してしまい、
キャッシュメモリに全くデータが格納されていない時に
は、全てのリードアクセスはミスヒットとなり、性能を
著しく劣化することになる。キャッシュメモリがある程
度のデータを主記憶から取り出して来るまでは、リード
アクセス速度は遅くなる。しかし、電源供給停止によっ
て、キャッシュメモリのデータが揮発してしまっても、
アドレス登録手段の比較的少ないデータさえ保持されて
いれば、キャッシュメモリ内のデータを、電源供給遮断
前の状態に復帰させることが可能である。つまりアドレ
ス登録手段に登録されているアドレスのデータを、主記
憶からキャッシュメモリに展開すればよい。アドレス登
録手段のデータ保持の方法としては、一つは、アドレス
登録手段のメモリを電池バックアップでデータを保持す
る。または、アドレス登録手段をランダムにリードライ
トが可能な不揮発性のメモリを使用する。そして他の方
法として、電源供給遮断時に、不揮発性メモリである主
記憶メモリの一部、あるいは同等のメモリに、アドレス
登録手段のデータを退避し、電源供給再開時に再びアド
レス登録手段に書き戻すという手段がある。
【0026】
【実施例】以下、本発明の実施例を図面を参照して説明
する。図1は、本発明の第1の実施例の構成図である。
図1において、1は、プログラムの実行や、データの処
理を行うCPU(中央処理装置)、2は、CPU1が処
理実行するためのプログラム、データ等を格納する大容
量の不揮発性メモリであるフラッシュメモリ、3は、フ
ラッシュメモリ2に格納されていて転送されてきたデー
タやCPU1からの書き込みデータ等を、一時的に記憶
する揮発性メモリであるキャッシュメモリである。この
キャッシュメモリは、例えば、DRAM(ダイナミック
ラム)、SRAM(スタティックラム)等によって実現
可能である。4は、キャッシュメモリ3が格納している
データに割り付けられているCPUアドレス(CPUが
データのアクセスのために出力するアドレスをいう)
と、それに付随した情報を記録するアドレスアレイ、5
は、CPU1がアクセスを要求したデータに対応するア
ドレスと、アドレスアレイ4に記録されているアドレス
を比較するアドレス比較回路、6は、CPU1のアクセ
ス要求に、可能な限り高速に、正確なデータをアクセス
できるよう統一管理制御するコントローラ、7はCPU
1のメモリバスである。アドレスアレイ4、アドレス比
較回路5、コントローラ6は、例えば、各種CMOS、
トランジスタ、抵抗、ROM(所定の処理を行うプログ
ラムが格納される)、RAM、CPU等の電子デバイス
にて実現可能である。なお、CPUがアクセスするアド
レスが存在するアドレス空間は、例えば、フラッシュメ
モリ2に対して割り当てられているとして説明を行う。
60は、データをアクセスするためのコマンド等の各種
コマンドや、アドレス等を少なくとも入力する機能を有
する入力手段である。例えば、マウス、キーボード等に
よって実現される。61は、後述するメッセージや、必
要な情報を出力する機能を有する手段であり、例えば、
プリンター等の印刷手段や、CRT、ELディスプレ
イ、液晶ディスプレイ等の表示手段によって実現でき
る。
【0027】次に、本構成における動作について説明す
る。CPUと記憶装置を備える、一般的な情報処理装置
では、主記憶装置として、DRAM等の揮発性メモリを
使用して構成するのが一般的であるが、これは、アクセ
ス速度を考慮してのことである。これに対して、例え
ば、携帯型パソコン等でニーズの高い、いわゆるリジュ
ーム機能、クイックスタート機能等の実現には、不揮発
性メモリを使用することが必要であるが、バッテリでバ
ックアップを行うSRAMでは、容量的にも、信頼性上
も問題点が多く、また、電気的書換え可能なROMで
は、書換え時間が非常に遅いため、これを使用すること
は難しい。そこで、本実施例では、揮発性メモリをデー
タ等の一時的な記憶を行うキャッシュメモリとして採用
し、CPU1が備えるメモリバス7に、直接接続して、
実質的な主記憶装置として、フラッシュメモリを使用し
た構成とする。つまり、主記憶装置であるフラッシュメ
モリ2は、CPU1から直接アクセスされることはな
く、したがって、主記憶装置のアクセスの遅さが、CP
U1の動作に殆ど影響を及ぼさないようにするものであ
る。
【0028】図1を参照して説明を続ける。CPU1
は、メモリバス7を介して、キャッシュメモリ3をアク
セスする。ただし、この時アクセスするアドレスは、ア
ドレス比較回路5に入力され、アドレスアレイ4に予め
登録されているアドレスと比較する。もし、登録されて
いるアドレスであれば(以下、これを「アドレスヒッ
ト」と称する)コントローラ6はキャッシュメモリ3内
における当該アドレスに相当する個所をアクセスする。
逆に、アドレスアレイ4に登録されていない(以下、こ
れを「アドレスミスヒット」と称する)アドレスであれ
ば、アドレスアレイ4に、当該アドレスを登録する。そ
の後、当該アドレスに対応するデータをキャッシュメモ
リに転送、格納し、当該アドレスに対応するフラッシュ
メモリ2内の領域のアクセスを行う。
【0029】図2に、かかるコントローラ6の構成図を
示す。図2中、11は、高速に連続アドレスを発生し
て、メモリを高速にアクセスするためのDMAコントロ
ーラであり、数十〜数百バイトの連続データの転送時に
使用する。12は、メモリ制御信号発生回路で、フラッ
シュメモリを始め、キャッシュメモリ、アドレスアレイ
等の動作を制御するための制御信号を生成する。例え
ば、CPU、ROM、RAM、各種ゲート、ROMに内
蔵されるプログラムによって実現できる。なお、キャッ
シュメモリ等でDRAMを使用している場合は、DRA
Mをリフレッシュするための、リフレッシュコントロー
ラも、前記メモリ制御信号発生回路が備える構成にすれ
ば良い。13は、メモリ制御タイマであり、フラッシュ
メモリの内容の消去、書き込み等の時間を測定する手段
であり、CPU、ROM、RAM、各種CMOS、RO
Mに内蔵されるプログラムによって実現できる。14
は、揮発性のデータメモリであり、制御プログラム実行
のワークエリアとして、また、メモリバスからのデータ
を一時的に蓄積したり、アドレスアレイの情報や、シス
テム内で授受されるデータを一時的に保存する領域とし
て使用される。15は、制御プログラムが格納されるR
OM、16は、制御プログラムを実行し、本発明のかか
るシステム全体を統括して制御するプロセッサ、17
は、システム内でやりとりされるアドレスや、システム
内でやりとりされるデータ等を伝送するためのバスであ
る。
【0030】このコントローラ6の動作、すなわち前記
制御プログラムが行う処理を説明するためのフローチャ
ートを図3に示す。図3に示すように、まず、CPU1
から、あるアドレスに対してのアクセス要求が出される
(ステップa)。このアドレスはアドレス比較回路5に
入力され、アドレスアレイ4に登録されているアドレス
と比較処理される(ステップb)。アドレスヒットであ
れば、所望のデータがキャッシュメモリ3内に存在する
ことになる。そこで、このアドレスをアドレスアレイ4
に記憶されている情報にもとづいてキャッシュメモリ3
の該当するアドレスに変換処理し(ステップc)、この
変換処理されたアドレスに従って、キャッシュメモリ3
の該当領域をアクセスする(ステップd)。すなわち、
リードアクセスであれば、キャッシュメモリ3内のデー
タをメモリバス7を介してCPU1へ出力し、ライトア
クセスであれば、キャッシュメモリ3の該当する場所
を、メモリバス7を介してCPU1から入力されるデー
タに書換える。一方、アドレスミスヒットであれば、キ
ャッシュメモリ3内に、新規に、データを格納するため
のデータ領域を作り出す(ステップe)。なお、ステッ
プeにおける処理の詳細については、本フローチャート
の説明の後で述べることにする。
【0031】さて、新規のデータ格納領域が作られたな
らば、当該領域に対して、アクセスを行う。もしリード
アクセスであれば、フラッシュメモリ2から該当するア
ドレスに格納されているデータを読み出して、キャッシ
ュメモリ3に転送、格納し(ステップf)、さらに、メ
モリバス7に当該データを出力する(ステップg)。も
し、ライトアクセスであれば、CPU1からのデータを
キャッシュメモリ3の新規のデータ格納領域に書き込む
(ステップh)。そして、最後に、アドレスアレイを新
規書き込みに合致するように更新する。すなわち、ミス
ヒットであるアドレスをアドレスアレイに登録する(ス
テップi)。以上が、コントローラ6の動作の概略であ
る。さて、前述した、ステップeの処理について説明す
る。なお、コントローラ6は、揮発性記憶手段に格納さ
れるデータ量を監視し、該データ量が予め定めた値をこ
えないように、予め定めた容量以上のデータ未格納領域
を設ける処理を行うように構成しておくのが好ましい。
【0032】仮に、この情報処理装置が動作開始後、そ
れほど処理を行っていない段階であれば、キャッシュメ
モリ3内には、データの未使用領域が多数存在している
ので、特別の処理をしなくとも、この未使用領域内に、
新規格納領域を割り当てればよい。しかしながら、未使
用領域が存在しなくなれば、既に格納しているデータを
消去してでもデータ格納領域を作り出さなければならな
い。そのために、アドレスアレイ4に登録されている各
アドレスに対応して、CPUがどのような順序でアクセ
スしたかを示す情報である「アクセス履歴」を記憶して
おく。キャッシュメモリ3に格納されているデータのう
ち、現時点以降、最もアクセスされないと予想されるも
のを探し出す。これが、キャッシュメモリ3内にアクセ
ス対象となるデータが存在する割合(以下「ヒット率」
と称する)と、アクセス速度の高速化等の性能を向上さ
せる。
【0033】そのためには、各アドレスが最後にアクセ
スされた相対的な古さを示す情報が記録されていればよ
い。つまり、この記録内容にもとづいて、前回のアクセ
スが行われたのが、最も古い(時間軸上で最も過去方向
に存在する)アドレスを探し出すことができ、キャッシ
ュメモリ3内からデータを消去しても、最も問題のない
ものと思われるものを選定できる。このアクセス履歴に
関する情報は、アドレスアレイ4に格納すると、処理速
度の向上等の点から効率的である。ただし、アクセス履
歴は、キャッシュメモリ容量が大きくなると、相対的な
古さを記録するためには、非常に複雑、かつ、大容量に
なるため、工夫が必要である。
【0034】その工夫として、ヒット率が大きく減少し
てしまうが、アクセスの来歴記録を簡略化することが可
能である。例えば、消去するデータをランダムに選択す
る方法が考えられる。あるいは、キャッシュメモリ3の
先頭から順にデータを書き込むことにしておき、データ
の消去も、先頭から順番に行えば、古く書き込まれた順
にしたがってデータを消去する、いわゆるFIFO制御
が簡単に実現可能である。または、一般的なキャッシュ
メモリシステムで使用されているセットアソシエティブ
方式を採用すれば、アドレス比較も簡単化する。
【0035】そこで、このセットアソシエティブ方式に
ついて図4を参照して説明する。今、n個の連続したア
ドレスで構成される領域を、一つのブロックとして考
え、キャッシュメモリは、数ブロックのデータで構成さ
れているものとする。図4は、この方式における構成例
を示している。21は、アドレスアレイ、22は、キャ
ッシュメモリ3に格納されているデータに1対1で対応
する、1つのアドレスを格納するアドレスアレイ21内
のアドレス格納領域、23は、アドレス格納領域22を
複数個有して構成されるブロックである。図4に示す実
施例では、ブロック23が4つずつ存在する。これが、
4ウェイセットアソシエティブ方式の構成である。24
は、CPUがメモリデータをアクセスするために出力し
たCPUアドレス、25、26は、それぞれ、CPUア
ドレス24を、セットアソシエティブ方式に適用するた
めに分割したもので、25を「ブロックアドレス」と称
し、26を「セットアドレス」と称する。
【0036】セットアドレス26は、CPUアドレス2
4のうち下位側のアドレスであり、そのビット数は、ブ
ロック23を構成するアドレス格納領域22の個数で決
まる。例えば、ブロック23が256個のアドレス格納
領域22を有して構成されておれば、セットアドレス
は、8ビットとなる。一方、ブロックアドレス25は、
CPUアドレス24の上位側のアドレスであり、そのビ
ット数はCPUアドレス24のビット数から、セットア
ドレス26のビット数を引いた数となる。ただし、CP
Uアドレス24によりアクセスするメモリデータのバイ
ト数は、キャッシュメモリとフラッシュメモリ間のデー
タ転送時のバイト数により決まる。例えば、これが16
バイトであるとすれば、CPUアドレスの最下位3ビッ
トについては、アドレス比較する必要はない。そのた
め、セットアドレスはCPUが実際に出力するアドレス
のうち、これに相当するビットを除くことができる。2
7は、セットアドレス26により選択されてアクセスさ
れた、キャッシュメモリに登録されているブロックアド
レスを示す。個々でアドレスアレイ21により出力され
たアドレス値に対応するデータは、キャッシュメモリに
格納されていることになる。4ウェイセットアソシエテ
ィブ方式では、一つのセットアドレスに対して4つのブ
ロックアドレスが存在する。28は、CPUアドレスの
ブロックアドレス25と、アドレスバッファ21より出
力されたブロックアドレス27が一致するか否かを検出
するアドレス比較回路であり、4ウェイセットアソシエ
ティブ方式であることから、4つの比較回路28を設け
ている。この比較回路は、例えば、各種ゲート等にて実
現できる。
【0037】次に、具体的に数値を設定して説明する。
主メモリ容量を16MBとし、CPUアドレスが24ビ
ットとする。また、フラッシュメモリとキャッシュメモ
リの制御方式として、前述の4ウェイセットアソシエテ
ィブ方式を採用し、1ブロック内の単位データ(16バ
イト単位)格納領域数を256とする。
【0038】従ってキャッシュメモリ容量は 16バイト×256×4ウェイ=16KB と算出できる。まず、CPUが主メモリデータをアクセ
スするために、24ビットのCPUアドレスを出力す
る。アドレスヒット、ミスヒットの判定では、CPUア
ドレスの下位4ビットは必要ないので、上位側20ビッ
トによりその判定を行う。このうち、セットアドレス2
6は256の格納領域が存在するため、8ビットである
ことになる。つまり、20ビットのアドレスのうち下位
から8ビットを使用して、アドレスアレイ21をアクセ
スすることになる。
【0039】この時、ブロック数が4つ存在するため、
4か所をアクセスして、4つのブロックアドレス27を
得る。尚、ブロックアドレスは、20ビットから8ビッ
トを引いた12ビットのデータである。このデータとC
PUアドレス24のブロックアドレス25を、比較回路
28を使用して一致するか否かの検出を行う。4つの比
較回路が、全て不一致状態を検出すれば、アドレスミス
ヒットであり、キャッシュメモリ内に所望のデータは存
在しないため、フラッシュメモリをアクセスすることに
なる。もし、一つでも一致状態にあることを検出すれ
ば、アドレスヒットであり、キャッシュメモリ内の該当
する個所をアクセスする。以上により、4ウェイセット
アソシエティブ方式の動作が完了する。なお、回路を簡
略化するために、ブロック数を減らせばヒット率が減少
することになるし、ブロック数を増加すればヒット率は
増加するが、比較回路やアドレスアレイが複雑化するこ
とになる。ブロック分けをせずに、全データアドレスア
レイの内容と、CPUアドレスを比較するための比較回
路を設けた構成にすることも、もちろん可能ではある。
しかしながら、プログラム実行においてはアクセスする
アドレスは局所性をもつため、ある程度ブロック分けし
た方式を採用した方が、ハードウェア構成上効率的であ
る。あるいは、アドレス比較回路の行う機能を、ソフト
ウェアで実現することも容易であるが、その際には、ア
ドレス比較器の数が、ソフトウェアにおけるアドレス比
較処理の回数になるため、処理速度の著しい低下などを
招く可能性がある。
【0040】次に、4ウェイセットアソシエティブ方式
を採用した場合のアクセス履歴の記録方法について説明
する。4ウェイセットアソシエティブ方式においては、
下位アドレスが連続している一連のデータを4通り格納
することになる。したがって、同一の下位アドレスのデ
ータが最高4つ存在することになり、その4つに対し
て、アクセス履歴が比較できれば、必要かつ十分であ
る。そこでアクセスが行われるたびに、アクセスされた
グループのアクセス履歴に、関する情報を更新し、アク
セスが行われたデータの履歴情報を「最新」として、そ
れ以外のデータの新しさを1段階ずつ下げていく。
【0041】例えばA、B、C、Dの4つのデータのア
クセス履歴が「3」、「4」、「1」、「2」の新しさ
の順序(数が小さいほど、新しさの度合いが高いことを
意味する)を有していたとする。次にAがアクセスされ
た場合、アクセス履歴は「1」、「4」、「2」、
「3」となる。つまり、Bはもともと最も古いデータで
あるため、アクセス履歴はそのままであり、C、Dのア
クセス履歴が、それぞれ繰り下がることになる。そし
て、新規にデータの格納領域を作り出す場合には、アク
セス履歴が4番目になっているデータが、最もアクセス
が起きていないデータと判断されるため、フラッシュメ
モリに書き戻せば(ライトバック)よい。もし、このよ
うなセットアソシエティブ方式を使用せずに、全てのデ
ータの相対的なアクセス履歴を記録していたら、膨大な
処理が必要になる。したがって、セットアソシエティブ
のセット数も、システム規模と処理効率のトレードオフ
を考慮して決定するのが好ましい。なお、以上の処理に
必要な情報を、アドレスアレイに全て格納しておけば良
い。
【0042】ところで、これまで説明した動作では、C
PU1からあるアドレスへの書き込み要求が発生し、そ
れがアドレスミスヒットであった場合に、実用上若干の
問題がある。というのは、キャッシュメモリ内の、ある
アドレスデータをフラッシュメモリにライトバックし
て、新規にデータの格納領域を作ることになるが、フラ
ッシュメモリのデータ書換えには、非常に時間がかかる
ため、処理速度の低下などのシステム性能の大きな低下
を招いてしまう。そこで、コントローラ6の制御を、図
5に示すようにする方が、システム性能の低下を防ぐこ
とができ、実用的である。図5は、図3と殆ど同じ処理
を示すため詳細な説明は省くが、ステップeにおける新
規格納領域の作成タイミングが、図3に示す処理フロー
とは異なる。CPU1からのデータ転送が終了した時点
で、新規格納領域の作成動作に入る。つまり、常に新規
格納領域を用意しておいて、CPU1からの書き込み要
求がアドレスミスヒットであった場合には、その新規格
納領域に書き込む。これにより、フラッシュメモリの書
換え時間が、CPU1の動作に影響を与えないようにす
る。ただし、この方法では、キャッシュメモリ3にデー
タの存在しない領域を常に用意しておく分、キャッシュ
メモリの格納データ容量が少なくなるため、ヒット率は
減少することになることを考慮しなくてはならない。も
ちろん、フラッシュメモリの書換え時間によるシステム
性能の低下を抑えることができる効果は大きい。
【0043】また、この時、キャッシュメモリ3が、図
4に示すような4ウェイセットアソシエティブ方式を採
用しているとすると、データが格納されるのは、3セッ
ト分だけである。残りの1セットは、CPUからの要求
によって発生したミスヒットのライトアクセス後以外
は、常に空き状態にしておくことになる。したがって、
アクセス履歴情報の保持、更新は、3番目まで行えばよ
いことになる。
【0044】また、他に、フラッシュメモリにおいて一
括消去の単位容量は、一回のアクセスデータと比べる
と、非常に大きいという問題がある。つまり、CPUの
一回のアクセスデータは、数バイト程度であるのに対
し、フラッシュメモリの消去の単位は、数百バイト以上
である。したがって、リードアクセスのために、数バイ
トのデータをフラッシュメモリからキャッシュメモリに
転送した後、そのデータの書換えが発生し、データをキ
ャッシュメモリ上で書換えると、対応するフラッシュメ
モリ内の領域のデータを、いずれ書換える。このとき、
フラッシュメモリ上では、数バイトだけの書換えはでき
ないため、消去領域全てを別に設けた揮発性メモリに読
み出し格納して、それに対して、該当個所の書換えを行
い、再度、フラッシュメモリ内のデータの消去を行った
領域にデータを書き込む、すなわち、フラッシュメモリ
にデータを書き戻すという処理が必要になる。
【0045】また、このとき、同一の消去領域内のデー
タがキャッシュメモリ内に別に存在するのであれば、同
時に前記書き戻しを行うのが効率的である。したがっ
て、フラッシュメモリへのライトバック時には、処理が
複雑になり、処理時間もかかってしまう。そこで、フラ
ッシュメモリ内のデータを、キャッシュメモリに転送す
る際には、単位消去領域をまとめて転送することにし、
この領域ごとにアクセス履歴を記録して、フラッシュメ
モリへのライトバックもこの領域ごとに行うことにすれ
ば、フラッシュメモリ上における同一領域に存在する、
キャッシュメモリ上のデータを、退避して書き込むとい
う処理や、探すという処理は不必要となる。つまり、ラ
イトアクセスが発生したら、そのデータを含む単位消去
領域全てのデータをキャッシュメモリに展開するように
すればよい。
【0046】しかしながら、読み出し時には、数バイト
のデータの読み出しのために、数百バイト以上を読み出
さなければならないとすれば、非効率的である。そこ
で、リードアクセスのために、所望のデータがキャッシ
ュメモリに転送されるときには、必要なバイト数だけキ
ャッシュメモリに転送し、ライトアクセスのための転送
時は、単位消去領域全てを転送することにすれば、リー
ド動作もライト動作も効率的に行える。また、アドレス
アレイに格納する情報として、キャッシュメモリ内のそ
のデータが書換えられたか否かを示すフラグを設定する
構成にすることも、処理速度の向上等の大きな効果が期
待できる。
【0047】次に、フラッシュメモリの応用例として、
シリアルバッファ内蔵型の実施例について述べる。本発
明において、フラッシュメモリの価格は、システムの価
格を決定する重要な要素となる。不揮発性メモリで構成
される主記憶は、大容量であることが要求されるため、
主記憶を構成するフラッシュメモリは、安価である必要
がある。メモリの価格を決定する大きな要因として、メ
モリ機能を実現する単位であるセルの大きさを表す「セ
ル面積」がある。すなわち、ひとつの記憶セルが占める
面積により、一定面積が有する記憶容量が定まるため、
メモリチップとしての価格に大きく関係する。
【0048】フラッシュメモリにおいては、1セルの面
積を可能な限り小さくするためには、ランダムアクセス
を犠牲にする必要がある。つまり、ある容量を有してい
る、チップ上の一ラインのデータを、一括してアクセス
し、これをシーケンシャルにアクセス可能なシリアルバ
ッファに転送し、当該シリアルバッファから、外部にシ
リアルアクセスして、データを出力する。したがって、
ある一つのデータをアクセスするためには、同一ライン
上のデータを一括してアクセスするためアクセス時間が
かかり、結果的にランダムアクセス性能を落すことにな
る。しかし、この場合、連続したデータの要求に対して
は一番目のアクセスは遅いものの、以降は高速にシリア
ルアクセスが可能である。通常、プログラム実行時は、
アクセスの局所性から、高速なシリアルアクセスは非常
に有効である。そこで、これを本発明に適用した実施例
について説明する。
【0049】図6は、本実施例で用いるフラッシュメモ
リの構成例である。31は、フラッシュメモリチップ、
32は、フラッシュメモリアレイ部、33は、シリアル
バッファ部、34は、アクセスするアドレス、35は、
シリアルクロック、36は、フラッシュメモリアレイ部
32とシリアルバッファ33との間で転送されるライン
データ、37は、メモリチップから入出力されるデータ
である。ただし、ここでのアドレスとはラインアドレス
であり、1ライン分全てのデータを転送するためのアド
レスである。
【0050】次に、本実施例における動作を説明する。
まず、リードアクセスであれば、フラッシュメモリチッ
プ31にアクセスするためラインアドレス34を入力す
ると、フラッシュメモリアレイ32上の該当するライン
に存在するデータ36を、一括してシリアルバッファ3
3に転送する。転送されたデータは、その後シリアルク
ロック35を入力することによって、シリアルバッファ
33から順番に取り出される。ライトアクセスの場合に
は、まず、シリアルクロック35の入力タイミングに合
わせて、データを順にシリアルバッファ33に入力せし
め、データ入力が終了した後、フラッシュメモリアレイ
32上の、ラインアドレス34で設定したラインに、デ
ータの転送を行う。以上が、本フラッシュメモリの動作
の概要である。
【0051】本フラッシュメモリを使用した実施例を、
図7、図8および図9を参照して説明する。図7は、ハ
ードウェア構成を示し、図1とほぼ同様の構成である。
図1と同一の符号が付加されている構成要素は、同一の
機能を有する手段である。ただし、コントローラ6の構
成は、後述するが、若干異なっている。図1のフラッシ
ュメモリ2の部分は、図6にて説明したフラッシュメモ
リチップ31を使用している。図8は、本実施例におけ
るコントローラ6の構成例を示したものであり、38
は、シリアルバッファ33用クロック発生回路で、他の
構成要素は図2にて説明した構成要素と同一である。図
9は、コントローラ6の動作を示すフローチャートであ
り、CPU1のアドレスと、フラッシュメモリ31のア
ドレスの扱いの違いが問題となる。
【0052】さて、図6、図7、図9を参照して動作を
説明する。まず、CPU1からのアクセス要求があり
(ステップa)、アドレスヒットであればキャッシュメ
モリ3をアクセスし(ステップb)、アドレスミスヒッ
トであれば、キャッシュメモリ3内に新たにデータを格
納するための新規格納領域を作り出す(ステップc)。
そして、フラッシュメモリ31をアクセスするためのア
ドレスを含むラインのアドレス34を与えて、シリアル
バッファ33に、そのラインデータを転送して、シリア
ルクロック35を入力して、データを引き出す(ステッ
プd)。この引き出されたデータを、キャッシュメモリ
3の新規格納領域に格納して(ステップe)、さらに、
リードアクセスの場合には、この新規格納領域の中から
CPU1のメモリバス7上に、所望のデータを出力する
(ステップf)。一方、ライトアクセスの場合には、新
規格納領域内のアクセスするアドレスに該当する個所に
データの書き込みを行なう(ステップg)。
【0053】最後に、アドレスアレイの内容を更新して
処理を終了する(ステップh)。ここで、ミスヒット時
の処理性能向上のためには、先の実施例である図5の動
作と同様、新規格納領域を作る処理をCPU1のアクセ
ス終了後に行い、新規格納領域を、実際に書き込み要求
がある以前に作成しておくとよい。なお、本実施例にお
いては、アドレスアレイやアクセス履歴の記録は、全て
ライン単位に設定するものとする。また、このラインア
クセスのフラッシュメモリに対して、セットアソシエテ
ィブ方式を適用すると、効率的にハード構成の簡略化が
図れる。次の実施例は、シリアルバッファを内蔵した構
造であるとともに、シリアルアクセス開始アドレスが設
定可能なフラッシュメモリチップを使用したものであ
る。詳しくは、まず、所望のラインをアクセスするため
に、ラインのアドレスを入力する。それとともに、その
ラインデータがシリアルバッファに転送された後、シリ
アルクロック入力により出力される最初のデータを、ラ
イン内の何個目のデータとするかを、アドレス入力によ
り設定可能とするものである。
【0054】例えば、1データの長さが1バイト、1ラ
インが512バイトとして、512個のデータのうちの
128番目のデータが必要であれば、ライン自体のアド
レスおよびライン内の128番目というアドレスを指定
する。これにより、シリアルクロック入力後の最初の出
力データは、128番目のデータとなり、所望のデータ
が瞬時にアクセス可能となる。かかるアクセスが可能で
あると、ラインの途中に存在するデータを取り出すと
き、ライン上の何番目に存在するかに相当する個数のシ
リアルクロックの入力が不要となり、ラインアクセス構
造でありながら、ランダムアクセスを比較的高速に行う
ことが可能となる。このようなメモリを使用したときの
実施例を、図10、図11を参照して説明する。
【0055】図10は、リードアクセス時のデータの扱
いを、図7、図8における実施例と対比して示したもの
で、図中、3は、キャッシュメモリ、33は、図6の構
成のフラッシュメモリ31のシリアルバッファ33の部
分であり、シリアルクロック35の入力によってデータ
の入出力が可能である。そして、特に、図10(2)に
示すシリアルバッファ33については、シリアルバッフ
ァ33内の先頭アドレスの設定が可能なものとする。4
1は、キャッシュメモリ内部の転送先領域であり、シリ
アルバッファ33と等しい容量を有している。42は、
シリアルバッファ33の中で先頭に指定されたアドレス
から1ないし数バイト離れた領域を示しており、その容
量は、キャッシュメモリ3のデータ格納単位と等しいも
のとする。この容量は、CPU性能、キャッシュメモリ
容量などにもとづいて決定される。43は、シリアルバ
ッファ33上の転送データ42の転送先であり、キャッ
シュメモリ3の領域を、格納単位で区切って作成した複
数の領域のうちの一つである。
【0056】図10(1)においては、フラッシュメモ
リアレイからシリアルバッファ33に転送されたデータ
を、1ライン分そのままキャッシュメモリ3に転送して
格納する。つまり、図9で示したフローチャートに従っ
てデータを扱っている。このデータ量は、フラッシュメ
モリの構成、具体的には、シリアルバッファの容量に依
存する。フラッシュメモリは、格納されているデータ
を、ある容量単位で一括消去する構造にしたために、メ
モリ構造の高集積化が可能となっているが、シリアルバ
ッファの大きさは、一括消去の単位容量に依存している
ため、ある程度の大きさになることは、フラッシュメモ
リの特性のため避けることはできない。
【0057】現在、この一括消去の容量を、HDD(H
ard Disk Drive)におけるセクタの容量にあわせ、5
12バイトとするものが開発されている。このようなメ
モリを採用したとすれば、図10の(1)では、データ
転送単位が512バイトとなる。一方、図10(2)で
は、この容量をさらに細かく区分してデータの転送を行
う。したがって、例えば数バイトの小さい単位でのデー
タの転送も可能であるため、転送時間を向上できる。ま
た、キャッシュメモリ3には、小さい単位で多くの個所
に分割して格納個所を構成しているため、長いシーケン
シャルアクセスがあまり発生しないプログラムの実行時
には、ヒット率を高くすることが期待できる。もちろ
ん、シーケンシャルなアクセスに対しては、単に、連続
アドレスで格納すればよいので、どちらでも対処可能で
ある。
【0058】この図10(2)に示す動作を説明するた
めのフローチャートを、図11に示す。まずCPU1か
らアクセス要求が出される(ステップa)。次に、アド
レス値をアドレスアレイ4で比較して、アドレスヒッ
ト、ミスヒットを判断する(ステップb)。アドレスヒ
ットの場合には、キャッシュメモリ3をそのままアクセ
スする。ミスヒットの場合には、アクセスするアドレス
を含む1ラインを、フラッシュメモリアレイ32からシ
リアルバッファ33に転送する(ステップc)。そし
て、リードアクセスの場合には、アクセスデータのライ
ン内における先頭アドレスを設定する(ステップd)。
そして、シリアルバッファ33にシリアルクロック35
を入力して所望のデータを取り出す(ステップe)。次
に、このデータをキャッシュメモリ3に用意されている
新規格納領域に格納する(ステップf)。CPU1は、
キャッシュメモリ3をアクセスし、アクセスされたデー
タは、メモリバス7上に出力される(ステップg)。
【0059】ライトアクセスの場合には、ステップcで
シリアルバッファ33に転送したデータを、全てキャッ
シュメモリ3に転送し(ステップh)、キャッシュメモ
リ3上に転送したデータに対して、アクセス個所をCP
U1からのライトデータに書換える(ステップi)。そ
して、次のミスヒットアクセスに備え、キャッシュメモ
リ3内に新規格納領域を作り出す(ステップj)。最後
に、アドレスアレイ4に格納されている情報を、その時
の状態に合致するよう更新する(ステップk)。ステッ
プjにおける、新規格納領域を作る処理は、キャッシュ
メモリ3の単位格納領域がリードアクセスされた場合に
は、データをライトバックする必要はないため、単にデ
ータを前記単位格納領域に上書きすればよい。ライトア
クセスの場合には、ライン単位で処理を行うため、候補
のラインを決定し、そのラインに存在するデータをシリ
アルバッファ33に格納して、フラッシュメモリアレイ
32に転送するという処理が必要である。
【0060】なお、DRAMとSRAMの組合せによ
る、情報処理装置で搭載されているキャッシュシステム
においては、数バイトから数10バイトを1ブロック容
量として、キャッシュ効率を上げている。同様に、本実
施例においてもCPUのワード単位ではなく、16バイ
トや64バイト等の単位で、キャッシュメモリとフラッ
シュメモリとのデータ転送を行うことにより、制御の簡
単化、ヒット率の向上に効果的となる場合がある。大容
量不揮発性の主記憶を用いたシステムで、CPUが何ら
かの原因で暴走した場合の対処について説明する。かか
る事態に対処するために、例えば、フラッシュメモリの
消去単位ごとに、書き込み禁止フラグを格納する格納レ
ジスタを設け、通常書き変わらないデータに対しては、
書き込み禁止フラグを立てる。書き込み禁止領域の書換
えにおいては、先述の書き込み禁止フラグを下げ、CP
Uに割込みが発生しないようにしてから、データの書換
えを行うのが正規の方法とする。フラグが立ったままで
この領域への書き込みが発生した場合には、CPUに対
する割込みを発生し、ユーザに対し確認を得るようにす
る。確認方法として、例えば出力手段61のCRT等の
ディスプレイに、CPUがメッセージを表示する処理を
行うようにしておけばよい。
【0061】つまり、ユーザはこのときに、例えば、表
示メッセージによって、暴走状態にあることを認識で
き、キャッシュメモリ内のデータのうち、退避すべきも
のを選択して、退避することができ、また、CPUが備
えるプログラムカウンタのリセットを実行できる。ま
た、キャッシュメモリにおいても、アドレスアレイ内に
同様のフラグレジスタを設けておけば、キャッシュメモ
リ内のデータに対する安全性が向上する。以上の処理を
実現する装置の構成図を図12に示した。図中、1は、
CPU、3は、アドレスアレイ、6は、コントローラ、
60は、入力手段、61は、出力手段、51は、フラッ
シュメモリの消去単位ごとに設けてある冗長領域、52
は、冗長領域51に設定した書き込み禁止フラグ、53
は、アドレスアレイ内に設けた書き込み禁止フラグ、5
4は、CPUへの割込み要求信号であり、マスク不可能
な割込み信号が望ましい。
【0062】入力手段60は、少なくともデータをアク
セスするためのコマンド等の各種コマンド、後述するメ
ッセージに対処するための指示等を入力する機能を有す
る入力手段である。例えば、マウス、キーボード等によ
って実現される。出力手段61は、後述するメッセージ
や、その他の必要な情報を出力する機能を有する手段で
あり、例えば、CRT、ELディスプレイ、液晶ディス
プレイ等の表示手段により実現できる。
【0063】コントローラ6は、フラッシュメモリ31
やキャッシュメモリ3への書き込み要求が発生すると、
その個所の書き込み禁止フラグ52、53を参照し、こ
のフラグが立っている場合には、割込み要求信号54を
発生する。CPU1は、これを受けると無条件に、ユー
ザにこの状況に対する処理を求めるシーケンスを実行す
る。ユーザに求める処理の内容としては、以下の内容が
考えられる。(1)書き込みを行うか、(2)暴走状態
と判断するか、(3)キャッシュメモリから主記憶へ退
避するデータの指定、(4)プログラムカウンタをクリ
アするか、(5)キャッシュメモリ内をクリアするか、
などである。ユーザに対する問い合わせは、例えば、C
RT等の表示装置に、その旨をメッセージ表示する構成
にすれば良い。また、ユーザは、問い合わせに対応する
ために、マウス、キーボード等の入力装置を介して、必
要な指示を与えるような構成にすればよい。また、CP
U1は、予め格納されたプログラムに従って、指示に対
応した処理を行うように構成しておけばよい。以上の処
理により、暴走による重要データの喪失を、ある程度回
避できるようになる。
【0064】以上の全ての実施例においては、キャッシ
ュメモリ3は、バスを介してCPU1に直接接続されて
いる。しかし、情報機器によっては、CPU1とキャッ
シュメモリ3の間に、メモリバスコントローラや、SR
AMによるキャッシュシステム等の装置が挿入されるも
のもある。ここでは、CPU1がそれらを含めた構成の
ものであるとする。キャッシュメモリ3が、情報処理シ
ステムに備わるメモリバスに、直接接続されることが重
要な点である。また、作業中断による電源遮断の際に
は、キャッシュメモリからフラッシュメモリにデータを
退避する必要がある。キャッシュメモリ内のデータのう
ち、リードアクセスだけであったために書き変わってい
ないデータに関しては、データ退避の必要はない。しか
し、ライトアクセスにより書き変えられたデータは、キ
ャッシュメモリ上には存在するが、フラッシュメモリ上
には存在しないため、退避を行わないと、最新のデータ
が失われることになる。
【0065】また、いわゆるリジューム機能を実現する
ためには、退避の際に、CPUが備える各レジスタが格
納する情報や、表示装置、入出力装置等が備えるデータ
格納部内に存在する内部データも記憶しておく必要があ
る。すなわち、リスタートに必要な、データを全て退避
しておかなければ、リジューム機能を実現できない。こ
のため、電源遮断を機械的なスイッチにより行うのでは
なく、電源遮断情報を論理的に処理するシーケンスを実
行する手段が必要である。このような手段は、CPU、
ROM、RAM、各種CMOS等を有して実現可能であ
る。この場合、必要な処理を、CPUが行うためのプロ
グラムをROMに内蔵しておけばよい。また、キャッシ
ュメモリ内に格納されたデータが喪失されないようにす
るために、定期的に、キャッシュメモリのデータをフラ
ッシュメモリにライトバックする処理を行う構成にして
おくことが効果的である。また、キャッシュメモリとし
て、バックアップ電源付きのSRAMや強誘電体メモリ
(FRAM:Ferroelectric RAM)を使用すると、
高速ランダムアクセス可能でありながら、データを喪失
することがなくなる。
【0066】以上のように、本発明によれば、データの
書換え速度が遅いフラッシュメモリを主記憶としたシス
テムを構築でき、バッテリーによるバックアップがなく
とも、リジューム機能やクイックスタート機能が容易に
実現できる。また、DRAMより安価になり得るフラッ
シュメモリを主記憶とするため、大容量の主記憶を安価
に提供できる。さらに、不揮発性の記憶手段によって主
記憶を構成したことにより、磁気ディスク装置や、その
他の外部記憶装置が不要となり、システムの簡略化が図
れる。さらにまた、処理途中でのファイルアクセスが高
速に行え、システムの性能が向上する。加えて、本発明
においては、フラッシュメモリには、ランダムアクセス
性能を主眼にしたNOR型だけではなく、ラインアクセ
ス方式のNAND型、AND型等、各種のフラッシュメ
モリを採用することができることが大きな特徴である。
【0067】図13に次の実施例の概略図を示す。図1
3において、101はCPU、102はバス、300は
コピーバック方式のキャッシュメモリシステム、104
はmバイト(mは整数)を1ブロックとするフラッシュ
メモリで構成される記憶装置(主記憶)、105は制御
回路である。キャッシュメモリシステム300内には、
アドレス情報を保持するアドレスアレイ310、データ
を保持するキャッシュメモリ320、およびアドレスア
レイ310のアドレスとCPU101からのアドレスを
比較するアドレス比較器330で構成される。データを
保持するキャッシュメモリ320はn本(nは整数)の
mバイト単位のレジスタ321で構成される。アドレス
を保持するアドレスアレイ310は、各々、アドレス情
報を保持する部分(アドレス部)aと、保持されている
アドレス情報に該当する記憶装置104内のブロックが
消去済みが否かを示す情報を保持する部分(消去情報
部)bと、アドレスアレイ310内の該当するレジスタ
321が更新されたか否かの情報を保持する部分(更新
情報部)cとからなるn本のレジスタ311で構成され
る。更新情報部cは既存のフィールドであるが、消去情
報部bは、本発明で新たに設けたフィールドである。3
12、322はアドレスアレイ310、キャッシュメモ
リ320の制御信号である。
【0068】図14は、図13の制御回路105の処理
フローを示す図である。以下、図14に示す処理フロー
について説明する。CPU101から記憶装置104へ
リードアクセスが発生した場合(STEP1)、比較器
330からのヒット判定信号331でキャッシュヒット
を判定すると(STEP2)、キャッシュメモリ320
内のレジスタ321の該当箇所からバス102へデータ
を出力し(STEP21)、CPU101はそのデータ
を読み込む。
【0069】CPU101からのリードアクセスでミス
ヒットを判定した場合で、更に、置き換えアルゴリズム
によって選択されたレジスタ311内の更新情報部cの
情報から、キャッシュメモリ320内のレジスタ321
の該当箇所が更新されていると判明した場合(STEP
22)は、STEP226へ進む。ここでレジスタ32
1から記憶装置104内の該当するブロックへデータを
書き込む。すなわちキャッシュメモリにおいて更新され
たデータを記憶装置104の該当ブロックへ書き戻す処
理を行う。続いて、CPU101からアクセスされたデ
ータを含む記憶装置104内のブロックデータを、レジ
スタ321内の置き換え対象になった個所に書き込む。
そして、当該CPUアドレスをレジスタ311へ書き込
むとともに、レジスタ311の更新情報部cに未更新を
示す情報を書き込む(STEP227)。そしてCPU
101からアクセスされたデータをレジスタ321から
バス102に出力する(STEP228)。STEP2
28の処理が完了するとSTEP1に戻り、CPU10
1からの次のアクセスを待つ。尚、ここで言うレジスタ
321が更新されている状態とは、記憶装置104内の
該当するブロックのデータとレジスタ321内に格納さ
れているデータが異なる、つまりレジスタ321だけが
書換えられている状態を示す。本明細書では以下同様で
ある。
【0070】リードアクセスでミスヒットを判定し、更
に新たに選択されたレジスタ311内の更新情報cの情
報から、キャッシュメモリの置き換えアルゴリズムに従
って選んだ、キャッシュメモリ320内の書き戻すべき
レジスタ321が更新されていないことを認識すると
(STEP22)、レジスタ321のデータを記憶装置
104へ書き戻す処理(STEP226)を省略する。
そして記憶装置104内の該当するブロックの全データ
をレジスタ321の選択された個所に書き込みととも
に、レジスタ311にアドレスを書き込む(STEP2
27)。また、STEP227でレジスタ311の更新
情報部cに未更新を示す情報を書き込み。そしてCPU
101からアクセスされたデータをレジスタ321から
バス102に出力する(STEP228)。STEP2
28の処理が完了するとSTEP1に戻り、CPU10
1からの次のアクセスを待つ。CPU101から記憶装
置104へライトアクセスが発生した場合(STEP
1)、キャッシュメモリがヒットすると(STEP
3)、レジスタ321の該当個所にCPU101からの
書き込みデータを書き込むとともに、レジスタ311を
更新する(STEP324)。そして、STEP324
の処理が完了すると、書き込み対象ブロックが消去済み
かどうかを判定して、消去済みでなければ該当ブロック
の事前消去処理を起動する(STEP33)。その後、
STEP1に戻りCPU101からの次のアクセスを待
つ。
【0071】STEP3でキャッシュミスヒットを判定
し、置き換えアルゴリズムで選択されたレジスタ311
の更新情報部cの情報から、レジスタ321に保持され
ているデータが更新済みであることを認識すると(ST
EP31)、レジスタ321内から選択した置き換えデ
ータを記憶装置104内の該当ブロックへ書き戻す(S
TEP322)。このSTEP322では、レジスタ3
11内のブロック消去情報部bに未消去を示す情報を書
き込む。STEP322の処理が完了すると、CPU1
01からのアクセス個所を含む記憶装置104内のブロ
ックデータを、置き換え対象になった個所に書き込み、
さらにレジスタ311に当該アドレスを書き込む(ST
EP323)。そしてレジスタ321の該当する個所
に、CPU101からの書き込みデータを書き込む(S
TEP324)。またSTEP324において、レジス
タ311内のレジスタ更新情報部cに更新済みを示す情
報を書き込む。一方、STEP31でレジスタ311の
更新情報部cの情報からレジスタ321に保持されてい
るデータが更新されていないことを認識すると、データ
の書き戻し(STEP322)は不要なので、これを省
略しSTEP324に進む。以下、STEP324の処
理が完了すると、書き込み対象ブロックが消去済みかど
うかを判定して、消去済みでなければ該当ブロックの事
前消去処理を起動する(STEP33)。その後、ST
EP1に戻りCPU101からの次のアクセスを待つ。
【0072】図14のフローにおいて、特徴的な点は、
STEP323、324でレジスタ311、321を更
新した後に、記憶装置104の対応するブロックを前も
って消去しておく(STEP33)ことにある。この場
合、本来ならば、コピーバック方式のキャッシュメモリ
においては、該当レジスタ311、321を更新すれば
足りる。しかし、この更新に伴い、更新情報部cが更新
済みとされるため、このレジスタ321の内容はいずれ
記憶装置104の対応ブロックに書き戻される。その
際、書き戻しに先立って、そのブロックの消去が必要と
なる。本実施例によれば、その、いずれは消去される対
応ブロックを予め消去しておくので、次回以降のライト
アクセス時のキャッシュミスヒットの際の、記憶装置1
04の新たなブロックへの書き戻し(STEP322)
において、本来ならこれに先立つべき消去処理が省略さ
れる分高速になる。
【0073】なお、本実施例は、CPUのアクセスサイ
ズと、フラッシュメモリの消去ブロック単位容量が異な
る場合を示している。たとえば、CPUは主記憶に対
し、16バイトのバースト転送によるデータのやり取り
を行なっているのに対し、フラッシュメモリの消去ブロ
ック単位容量は512バイトであった場合などを想定し
ている。フラッシュメモリの消去ブロック単位容量は、
メモリの高集積化を図るため、CPUのアクセス単位よ
り非常に大きいのが一般的である。ただし、もしこれら
のサイズをあわせたシステムの場合であれば、ライトミ
スヒット時の置き換え処理の際、図14におけるSTE
P323の処理において、CPU101のアクセス個所
を含む記憶装置104内のブロックデータを、置き換え
対象になった個所に書き込む処理が不必要になる。つま
り、CPU101のライトデータを、書き戻しを行なっ
た個所にそのまま書き込むだけでよい。
【0074】図19により、本実施例による効果を説明
する。ここでは、ブロック消去時間を10ms、ブロッ
クへの書き込み時間を4ms、キャッシュメモリ320
の更新時間を100nsと想定した場合の従来の方式と
本実施例の方式におけるアクセス時間を比較する。今、
CPU101から記憶装置104へのライトアクセスが
発生し、アドレスがミスヒットした場合を想定する。従
来であれば、この時点から、選択されたデータレジスタ
のデータ書き戻し先のブロック消去(10ms)を開始
し、その後、キャッシュメモリ300の該当レジスタ3
21のデータを記憶装置104の対応ブロックへ書き戻
す処理(4ms)を行い、さらに、キャッシュメモリ3
00を更新する(100ns)。これでライトアクセス
が完了し、CPU101は次の処理を開始する。従っ
て、ライトアクセスにトータル約14msを要する。
【0075】これに対し、本実施例では、アドレスがミ
スヒットした時点で、選択されたデータレジスタが更新
済み(書き戻し要)であっても、書き戻し先の対応ブロ
ックの消去が既に終了している。したがって、直ちに対
応ブロックへのデータ書き戻し処理(4ms)を開始す
ることができる。したがって、本実施例の場合のライト
アクセスはトータル約4msであり、従来の方式に比べ
て70%程度速く、CPU101が次の処理に移行でき
ることがわかる。また、次の処理として、上述のキャッ
シュメモリ300上で更新されたデータを書き戻す際
の、対応ブロックの消去処理を行なっておく。図15
に、CPU101から記憶装置104へのアクセスデー
タのサイズが記憶装置104のブロックサイズより小さ
い場合の実施例の概略図を示す。図15において10
1、102、300、310、312、320、32
1、322、330、331、104、401、105
は図13の実施例と同様である。
【0076】313は、アドレス情報を保持するアドレ
ス情報部aと、キャッシュメモリ320内の該当するレ
ジスタ321が更新されたか否かの情報を保持する更新
情報部cと、レジスタ321内の更新された領域を示す
情報を保持する更新領域情報部dからなるレジスタであ
る。350は、記憶装置104への書き込みの際に用い
るアドレス情報用レジスタ、340は、記憶装置104
への書き込みの際に用いるmバイト(記憶装置104の
1ブロック分)のデータ用レジスタである。アドレス情
報用レジスタ350は、アドレスアレイ310の各レジ
スタ313に対応してn本設けられる。同様に、データ
用レジスタ340は、キャッシュメモリ320の各レジ
スタ321に対応してn本設けられる。図16に、図1
5の制御回路105の処理フローを示す。以下、この処
理フローについて説明する。尚、この処理では、図13
の実施例のブロック消去の動作については、アクセスデ
ータサイズとブロックサイズの違いに対する対処につい
てのみ説明する。ブロック消去動作を考慮した処理フロ
ーについては後述する。
【0077】CPU101から記憶装置104へリード
アクセスが発生した場合(STEP1)、比較器330
からのヒット判定信号331でキャッシュヒットを判定
すると(STEP2)、アクセスされたレジスタ321
内の該当する部分のデータをバス102へ出力し(ST
EP21)、CPU101はそのデータを読み込む。同
様にリードアクセスでミスヒットを判定した場合(ST
EP2)は、キャッシュメモリの置き換えアルゴリズム
で選択されたレジスタ313内の更新情報部cの情報か
ら、キャッシュメモリ320内の書き戻すレジスタ32
1が更新されていない場合は(STEP22)、CPU
1からの読みだしアドレスに該当する記憶装置104内
の対応するブロックの全データをレジスタ321に書き
込む処理を行なう(STEP224)。尚、ここで言う
レジスタ321が更新されていない状態とは図13の実
施例同様、レジスタ321内に格納されているデータと
記憶装置104内の対応するデータとが同じである状態
を示す。また、STEP224でレジスタ311内の更
新情報部cに未更新を示す情報を書き込む。STEP2
24の処理が完了すると、CPU101が要求するレジ
スタ321内のアクセスされたデータをバス102へ出
力する(STEP225)。
【0078】STEP22で書き戻すべきレジスタ32
1が更新されていることを認識すると、レジスタ313
のアドレス情報に対応する記憶装置104内のブロック
の全データを読み出してレジスタ340に書き込む(S
TEP221)。STEP221が完了すると、レジス
タ313内のdの情報をもとにレジスタ321内の更新
されたデータのみをレジスタ340の該当部分に書き込
む処理と、レジスタ313内のアドレス情報をレジスタ
350に書き込む処理を行なう(STEP222)。S
TEP222が完了すると、該当レジスタ350のアド
レス情報に対応する記憶装置104内ブロックを消去
し、該当レジスタ340内の全データを、消去したブロ
ックに書き込む(STEP223)。STEP223が
完了するとSTEP224、STEP225へと進む。
STEP225の処理が完了すると、STEP1に戻り
CPU101からの次のアクセスを待つ。
【0079】CPU101から記憶装置104へライト
アクセスが発生した場合(STEP1)、キャッシュメ
モリがヒットすると(STEP3)、STEP314へ
進みCPU101からの書き込みデータをレジスタ32
1内の該当する部分へ書き込む。また、レジスタ313
内の更新情報部cに更新済みを示す情報を、更新領域情
報部dにレジスタ321の更新された領域を示す情報を
書き込む。STEP3でキャッシュミスヒットを判定
し、レジスタ313の更新情報部cから、書き戻すべき
レジスタ321が更新されていないことを認識すると
(STEP31)、STEP314へ進み前述した処理
を行なう。尚、ここで言うレジスタ321が更新されて
いない状態とは図13の実施例同様記憶装置104内の
該当するデータとレジスタ321内に格納されているデ
ータが同じである状態を示す。STEP31で記憶装置
104内の書き戻すべきレジスタが更新済みであること
を認識すると、レジスタ313のアドレス情報に対応す
る記憶装置104内のブロックの全データを読み出して
レジスタ340に書き込む(STEP311)。STE
P311が完了すると、レジスタ313内の更新領域情
報部dの情報をもとにレジスタ321内の更新されたデ
ータのみを該当レジスタ340の該当部分に書き込む処
理と、レジスタ313内のアドレス情報を該当レジスタ
350に書き込む処理を行なう(STEP312)。S
TEP312が完了すると、該当レジスタ350のアド
レス情報に対応する記憶装置104内ブロックを消去
し、該当レジスタ340内の全データを消去したブロッ
クに書き込む(STEP313)。STEP313の処
理が完了すると、STEP314に進み、前述した処理
を行なう。STEP314が完了すると、STEP1に
戻りCPU101からの次のアクセスを待つ。
【0080】図15の実施例によれば、CPU101か
らのライトアクセスが記憶装置104のブロックサイズ
より小さい場合でも、書き戻すブロックのデータを一旦
該当レジスタ340に取り込み、ブロック内の新たに書
き込まれる部分のみを該当レジスタ340上で更新し、
該当レジスタ340のデータ全てを一括して記憶装置1
04内の対応ブロックに書き込むことにより、ブロック
内の部分書き込みが実現できる。また、CPU101か
らのリードアクセスが記憶装置104のブロックサイズ
より小さい場合でも、ブロック内の全データを一旦レジ
スタ321に取り込み、レジスタ321内の該当するデ
ータのみをバス102へ出力することにより、ブロック
内の一部のデータを読み出すことができる。図20は、
図16の処理フローにおいて図14の事前のブロック消
去を考慮し、両者のステップを組み合わせたものであ
る。従って、図15におけるレジスタ313には、図1
3で示した消去情報部bが追加される。
【0081】図20中、図14および図16と同様のス
テップには同じ参照符号を付してある。図16のSTE
P223がSTEP801に置き換えられ、図14のS
TEP322および図16のSTEP313がSTEP
802に置き換えられている。また、図14のSTEP
33の前にSTEP803が新たに追加されている。こ
れにより、CPU101からのライトアクセスが記憶装
置104のブロックサイズより小さい場合に、事前のブ
ロック消去を行うことができる。STEP3においてキ
ャッシュメモリがヒットし、該当するレジスタ313内
の消去情報部bの情報が、ヒットしたメモリライトアク
セスに対応する記憶装置4内の対応するブロックが未消
去であることを示すため、STEP803へ進む、とい
うフローは、次の2通りの状況において考えられる。
【0082】1つは、ヒットしたメモリライトアクセス
により更新される前に、ミスヒットリードアクセスによ
りSTEP224、STEP225という処理フローを
行うことによって、データが記憶装置104内のブロッ
クから読みだされ、レジスタ321内に格納された場合
に起こる。この場合はリードされた記憶装置104内の
該当ブロックは消去されていない。そのため、この状態
で全く同じアドレスに対しライトアクセスが発生すると
キャッシュヒットメモリライトアクセスとなりSTEP
3からSTEP803へ進む。もう1つは、電源OFF
から電源ONに変化した後などにより、記憶装置104
内のデータのみ有効で、キャッシュメモリ内のレジスタ
321、313、340、350内のデータが無効な状
態、すなわち空きの状態の時に、記憶装置104へのメ
モリライトアクセスが発生した場合である。このとき、
レジスタのリプレースは起きないため、キャッシュヒッ
トとして扱える。そして、対応する記憶装置104内の
該当ブロックを消去するだけで更新は省略し、該当する
レジスタ321のみ更新するので、STEP3からST
EP803へ進む。
【0083】次に、電源を再供給後に、しばらくミスヒ
ットが続き著しい性能劣化を起こす、という問題解決の
実施例を、図21、22、23を用いて説明する。図2
1は、フラッシュメモリ2内に、アドレスアレイデータ
を退避するための領域を確保したことを示す図である。
図中、既出の番号は、以前に説明したものと同一のもの
である。新しい構成要素を説明する。201は本情報処
理装置の電源スイッチであり、機械的に電源を遮断する
ものではなく、本情報処理装置の電源供給装置204を
通して、CPU1に電源遮断要求信号202を出力する
働きを持つものである。202はCPU1に働きかける
電源遮断要求信号であり、CPU1はこれを受けると、
電源遮断のルーチンを実行することになっているものと
する。203はフラッシュメモリ2内のある領域に設け
られた、アドレスアレイのデータの退避領域である。2
05はCPU1から電源供給装置204に出力される電
源遮断許可信号である。電源遮断許可装信号205は、
情報処理装置の動作中は、常にネゲートされており、電
源スイッチ201が「切」になり、CPU1が電源遮断
ルーチンを終了したらアサートされ、このとき電源供給
装置204は、電源供給を遮断するように動作するもの
とする。図22は、CPU1が電源遮断要求信号202
を受けた後に実行される、電源遮断ルーチンである。
【0084】図21を参照しながら、図22のフローを
追って、本実施例の動作を説明する。CPU1は何らか
の処理を行っている最中に、電源遮断要求信号202を
受け取ったものとする。まず、現在行っている処理が、
外部デバイスと関連した処理であること等により、処理
の中断ができない、という場合を除き、処理を中断する
(ステップa)。処理の中断ができない処理の途中であ
った場合は、中断しても構わない状態まで処理を続け
る。基本的にはあらゆる状態においても処理を中断すべ
きとした方が好ましい。次に、キャッシュメモリ3に格
納されているもののうち、CPU1からのライトデータ
について、アドレスアレイ4を参照して、フラッシュメ
モリ2の該当する領域に書き戻す(ステップb)。もし
ライトデータとリードデータを区別していない、あるい
は処理の簡略化を図るのであれば、キャッシュメモリ3
内の全てのデータを書き戻してもよいが、時間がかかっ
てしまうため、ライトデータのみの書き戻しの方が好ま
しい。次に、アドレスアレイ4に格納されている、キャ
ッシュメモリ3とフラッシュメモリ2のデータの対比を
示すアドレスデータを、フラッシュメモリの領域203
に退避する(ステップc)。以上の処理が終了したら、
CPU1は電源供給装置204に電源遮断許可信号20
5を出力する(ステップd)。これを受けて電源供給装
置204は、本情報処理装置への電源供給を停止する
(ステップe)。
【0085】一方、図23は電源供給開始時のフローで
ある。同様に図21を参照しながら説明すると、まず、
電源スイッチが「入」にされると、無条件に電源供給装
置204は、本情報処理装置に電源を供給するよう動作
する(ステップf)。もちろん電源供給装置が電源供給
可能な状態である場合に限る。次にCPU1は情報処理
装置に必要な初期処理を実行する(ステップg)。例え
ば各デバイスの動作チェック、内部レジスタへの設定な
どである。次に、フラッシュメモリ2のアドレスアレイ
データ退避領域203をアドレスアレイ4に転送する
(ステップh)。次にアドレスアレイ4を参照して、電
源遮断直前にキャッシュメモリ3に格納されていたデー
タを、フラッシュメモリ2内の該当する領域から引出
し、キャッシュメモリ3の該当する領域に格納する(ス
テップi)。以上の動作によりキャッシュメモリは電源
遮断前の状態に簡単に復帰することができ、以降のCP
U1からのアクセスに対し、高いヒット率でのアクセス
を提供することができる。なお、以上の実施例では、ア
ドレスアレイ4を揮発性のメモリとした場合のものであ
るが、アドレスアレイ4を不揮発性メモリとすれば、ア
ドレスアレイ4に格納されているデータの退避処理は必
要なくなり、電源再立ち上げ後の処理においても、アド
レスアレイ4の格納データの復帰処理は必要なくなる。
この場合、アドレスアレイ4は、ランダムアクセス(リ
ードライトとも)可能であることが好ましいため、バッ
クアップ電源付きのSRAMや、強誘電体メモリ(FR
AM)を用いるべきである。
【0086】次は、電源の突発的な遮断が起きたときに
被害を小さくする方式の実施例について説明する。キャ
ッシュメモリに格納されたデータのうち、ライトアクセ
スにより書き込まれたデータは、フラッシュメモリにラ
イトバックされていないうちは、電源遮断により失われ
ては困るデータである。そのため、電源遮断時には、こ
のデータをフラッシュメモリに格納する必要がある。そ
して、電源遮断時にデータ退避を行うためには、電源遮
断要求を、実際の電源遮断実行前に認識し、フラッシュ
メモリへの格納を行った後に電源遮断を行うことにな
る。しかし、電源が突発的に遮断された場合には、この
フラッシュメモリへの格納動作が不可能であるため、フ
ラッシュメモリにライトバックされていないキャッシュ
メモリ上のデータは、失われてしまうことになる。先の
実施例で行ったアドレスアレイのデータ退避についても
同様のことがいえる。そこで、少しでもこのような事故
を防ぐために、定期的にキャッシュメモリのデータをフ
ラッシュメモリにライトバックする処理を行う。
【0087】これを実現するための構成を図24に示し
た。図中、211は定期的な時間を図るためのタイマ、
212は一定時間ごとにCPU1に入力される、タイマ
割込み信号である。なお、そのほかの既出の番号は、先
述の説明の通りである。211のタイマは、一定時間ご
とにタイマ割込み信号212を発生し、CPU1に入力
する。これを受けたCPU1は、キャッシュメモリ3に
おいて、フラッシュメモリ2にライトバックしていない
ライトデータを、フラッシュメモリ2の該当する領域に
書き込む。
【0088】タイマ211が計測する一定時間について
であるが、この時間が短いと、フラッシュメモリ2の書
換えが何度も発生し、フラッシュメモリ2を劣化するこ
とになる。逆に長いと、突発的な電源の遮断が起きたと
きに、データを失う確率も、失うデータ容量も、大きく
なることになる。したがってフラッシュメモリを破壊し
ない程度でできる限り短い時間間隔にすべきである。こ
の時間間隔は、フラッシュメモリの書換え可能回数と、
この情報処理装置の寿命により決定するのが好ましい。
その算出式を(式1)に示した。
【0089】 例えば、一日平均8時間使用して、情報処理装置の目標
寿命を5年とし、フラッシュメモリの書換え可能回数を
100万回とすれば、約53秒ごとに退避することがで
きる。また、このとき同時にアドレスアレイの格納デー
タも退避すれば、アドレスアレイを揮発性メモリとした
場合でも、突然の電源遮断でデータを失われる確率が小
さくなり、再立ち上げ直後のヒット率の低下を回避する
ことができるようになる。なお、本実施例を実施してい
ても、電源遮断時に最終的なデータを退避すべきである
ことは当然である。
【0090】
【発明の効果】情報処理装置の主記憶としてフラッシュ
メモリを採用することにより、バックアップ電源なしで
リジュームやクイックスタートが可能で、かつ、安価な
大容量主記憶を持った情報処理装置が構成できる。
【0091】また、電源遮断時の退避処理を行い、プロ
グラムが暴走したときに備えたライトプロテクト手段を
持つことにより、データの安全性を増すことができる。
【0092】また、本発明では、コピーバックキャッシ
ュメモリの内容更新の際に、いずれは消去される記憶装
置ブロックを事前に消去しておく。そのため、ブロック
への書き戻しが発生した場合の消去処理が不要である。
直ちに書き込み処理を開始することができる。従ってフ
ラッシュメモリを用いた記憶装置へのアクセス時間を短
縮できる。
【0093】また、キャッシュメモリのデータを、一旦
電源を遮断し、再開するときに復帰できる手段を提供す
るので、再開後のヒット率を向上させることができる。
【0094】また、キャッシュメモリのデータあるいは
アドレスアレイのデータを、定期的にフラッシュメモリ
に書き込むことにより、突然、電源供給が停止しても、
失うデータをなくすか、あるいは少なくすることができ
るので、被害を最小限に止めることができる。
【図面の簡単な説明】
【図1】フラッシュメモリを主記憶とした情報処理装置
の一実施例の概略の構成図である。
【図2】フラッシュメモリを主記憶としたシステムのコ
ントローラの構成図である。
【図3】フラッシュメモリを主記憶としたシステムのコ
ントローラの動作フローチャートである。
【図4】セットアソシエティブ方式のキャッシュメモリ
周辺の構成図である。
【図5】ミスヒット時に高速化を図るためのコントロー
ラの動作を説明するフローチャートである。
【図6】ラインアクセス方式のフラッシュメモリの動作
説明図である。
【図7】本発明にかかるフラッシュメモリを使用した主
記憶システムの構成図である。
【図8】本発明にかかるフラッシュメモリを使用した主
記憶システムのコントローラの構成図である。
【図9】コントローラの動作を説明するフローチャート
である。
【図10】ラインアクセスのフラッシュメモリのシリア
ルバッファとキャッシュメモリ間のデータ転送の説明図
である。
【図11】シリアルバッファ内のアドレス設定可能なフ
ラッシュメモリを使用した場合のコントローラの動作を
説明するフローチャートである。
【図12】書き込み禁止手段の実現手段の構成例の説明
図である。
【図13】本発明における書き戻し処理の高速化を図る
一実施例を示す概略図である。
【図14】図13の制御回路105の処理フローを示す
図である。
【図15】本発明における書き戻し処理の高速化を図る
他の実施例を示す概略図である。
【図16】図15の制御回路105の処理フローを示す
図である。
【図17】メモリサイズが524288バイトのフラッ
シュメモリの概略を示す図である。
【図18】本発明を実現するシステムの一実施例の構成
を示す図である。
【図19】本発明の効果の一例を示す図である。
【図20】図14および図16の処理フローを組み合わ
せた処理フローを示すフローチャートである。
【図21】本発明におけるアドレスアレイのデータ保持
を実現する実施例の構成図である。
【図22】図21の実施例におけるコントローラが行う
アドレスアレイのデータ退避の動作フローを示す図であ
る。
【図23】図21の実施例におけるコントローラが行う
アドレスアレイおよびキャッシュメモリのデータ復帰の
動作フローを示す図である。
【図24】キャッシュメモリのデータを一定時間ごとに
書き戻す実施例の構成図である。
【符号の説明】
1…CPU、2…フラッシュメモリ、3…キャッシュメ
モリ、4…アドレスアレイ、5…アドレス比較、6…コ
ントローラ、11…DMAコントローラ、12…メモリ
制御信号発生回路、13…メモリ制御タイマ、14…デ
ータRAM、15…制御ROM、16…プロセッサ、3
2…フラッシュメモリアレイ、33…シリアルバッフ
ァ、38…クロック発生回路、51…フラッシュメモリ
冗長領域、52…フラッシュメモリの書き込み禁止フラ
グ、53…キャッシュメモリの書き込み禁止フラグ、5
4…割込み要求信号、101…CPU、102…バス、
300…コピーバック方式キャッシュメモリ、310…
アドレス情報を保持するレジスタ群、311…レジスタ
群310内のレジスタ、312…レジスタ群310の制
御信号、a…アドレス情報を保持するアドレス部、b…
ブロック消去情報を保持する消去情報部、c…更新され
たか否かを示す情報を保持する更新情報部、d…更新さ
れた領域を示す情報を保持する更新領域情報部、320
…データを保持するデータ群、321…レジスタ群32
0内のレジスタ、322…レジスタ群320の制御信
号、330…アドレス比較器、331…アドレス比較器
330からのキャッシュヒット判定信号、340…デー
タを保持するレジスタ、341…レジスタ340の制御
信号、350…アドレス情報を保持するレジスタ351
…レジスタ350の制御信号、104…フラッシュメモ
リで構成される記憶装置、401…記憶装置105の制
御信号、105…制御回路、222…キャッシュメモリ
制御信号、A0〜A8、A9〜A18…アドレス信号
線、I/O0〜I/O7…データ信号線、201…電源
スイッチ、202…電源遮断要求信号、203…アドレ
スアレイデータ退避領域、204…電源供給装置、20
5…電源遮断許可信号、211…タイマ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 服部 隆一 神奈川県川崎市麻生区王禅寺1099番地株式 会社日立製作所システム開発研究所内 (72)発明者 北原 潤 神奈川県川崎市麻生区王禅寺1099番地株式 会社日立製作所システム開発研究所内 (72)発明者 戸塚 隆 東京都小平市上水本町五丁目20番1号株式 会社日立製作所半導体事業部内 (72)発明者 柿 健一 神奈川県海老名市下今泉810番地株式会社 日立製作所オフィスシステム事業部内

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】中央処理装置と、データを入力するための
    入力手段と、データを出力するための出力手段と、デー
    タを記憶する揮発性の第一記憶手段と、記憶されたデー
    タを電気的に書換え可能な記憶手段であって、前記中央
    処理装置がアクセス可能なアドレス空間を割付けた不揮
    発性の第二記憶手段と、前記揮発性の第一記憶手段と前
    記不揮発性の第二記憶手段との相互間でデータのやり取
    りを少なくとも行うデータ制御手段と、前記揮発性の第
    一記憶手段に格納されたデータの、前記不揮発性の第二
    記憶手段におけるアドレスを登録するアドレス登録手段
    と、該アドレス登録手段に登録されているアドレスと前
    記中央処理装置がデータアクセスのために出力したアド
    レスとの比較を行うアドレス比較手段とを具備し、 前記データ制御手段は、前記中央処理装置が、データを
    アクセスするために出力したアドレスを、前記アドレス
    比較手段に入力し、当該アドレスが、前記アドレス比較
    手段の出力結果にもとづき、前記アドレス登録手段に登
    録されている登録アドレスと判断したときには、前記揮
    発性の第一記憶手段内における登録アドレスをアクセス
    し、 逆に、前記アドレス登録手段に格納されていないアドレ
    スと判断したときには、少なくとも当該アドレスを含む
    所定範囲のアドレスを、前記アドレス登録手段に新たに
    登録し、該新たに登録されたアドレスに対応するデータ
    格納領域を前記揮発性の第一記憶手段に新たに設定し
    て、前記新たに登録された少なくとも一つのアドレスを
    アクセスすることを特徴とした情報処理装置。
  2. 【請求項2】アクセス来歴記録手段を備え、前記アクセ
    ス来歴記録手段は、アクセス履歴情報を記録することを
    特徴とする請求項1に記載の情報処理装置。
  3. 【請求項3】前記データ制御手段は、前記揮発性の第一
    記憶手段がデータで満たされ、新規にデータを格納する
    領域が存在しない場合には、前記アクセス来歴記録手段
    のアクセス履歴情報を参照し、最後に行われたアクセス
    が最も古いアドレスを検出し、当該アドレスを前記アド
    レス登録手段から抹消することを特徴とする請求項1ま
    たは2に記載の情報処理装置。
  4. 【請求項4】前記データ制御手段は、前記アドレス登録
    手段から抹消するアドレスに対応する前記揮発性の第一
    記憶手段内のデータを、前記不揮発性の第二記憶手段に
    転送することを特徴とする請求項3に記載の情報処理装
    置。
  5. 【請求項5】前記揮発性の第一記憶手段は、FRAM(F
    erroelectric RAM)を有して構成されることを特徴
    とする請求項1に記載の情報処理装置。
  6. 【請求項6】装置に与えられる電源を切断する際に、切
    断操作により起動する切断手段と、該切断手段による電
    源の切断処理に対応して、前記中央処理装置が備える内
    部レジスタの内容および前記入出力手段が備える内部レ
    ジスタの内容を含む情報を、前記不揮発性の第二記憶手
    段の一部の領域に格納する退避処理手段と、該退避処理
    手段の処理完了後に、装置への電源の供給を遮断する供
    給電源遮断手段とを備えることを特徴とする請求項1に
    記載の情報処理装置。
  7. 【請求項7】前記データ制御手段は、前記揮発性の第一
    記憶手段に格納されるデータ量を監視し、あらかじめ定
    めた容量以上の容量を有するデータ未格納領域を常に確
    保することを特徴とする請求項1に記載の情報処理装
    置。
  8. 【請求項8】前記不揮発性の第二記憶手段を複数の領域
    に分割して、各分割領域ごとに、データの書き込みを禁
    止する旨を表す書き込み禁止フラグを設定可能な書き込
    み禁止情報格納手段を備え、 前記データ制御手段は、前記不揮発性の第二記憶手段内
    の、ある領域にデータを格納する際、当該領域に対応し
    て備えられた、書き込み禁止情報格納手段に、前記書き
    込み禁止フラグが設定されているときには、前記出力手
    段に、当該領域への書き込み要求がある旨の出力をする
    ことを特徴とする請求項1に記載の情報処理装置。
  9. 【請求項9】前記不揮発性の第二記憶手段は、フラッシ
    ュメモリを有して構成されることを特徴とする請求項1
    ないし8に記載の情報処理装置。
  10. 【請求項10】前記アドレス登録手段を不揮発性のメモ
    リで構成したことを特徴とする、請求項1に記載の情報
    処理装置
  11. 【請求項11】電源供給手段を備え、電源供給手段が情
    報処理装置に電源供給を開始する際、 前記データ制御手段は、電源供給開始を検知した中央処
    理装置の指示により、前記アドレス登録手段に保持され
    ているアドレスを参照して、前記不揮発性の第二記憶手
    段の領域に格納されているデータと、該データが格納さ
    れていた揮発性の第一記憶手段内の場所を特定し、前記
    データを、前記不揮発性の第二記憶手段から読みだし、
    特定した前記揮発性の第一記憶手段の領域に格納するこ
    とを特徴とした請求項10に記載の情報処理装置。
  12. 【請求項12】電源供給手段を備え、電源供給手段が情
    報処理装置への電源供給を停止する際、前記データ制御
    手段は、電源供給停止を検知した中央処理装置の指示に
    より、アドレス登録手段が保持するアドレスを、不揮発
    性の第二記憶手段の特定の場所に格納し、前記電源供給
    手段が、再び電源供給を開始する際に、電源供給開始を
    検知した中央処理装置の指示により、該退避したアドレ
    スを前記アドレス登録手段に戻すことを特徴とする請求
    項1に記載の情報処理装置。
  13. 【請求項13】電源供給手段を備え、電源供給手段が情
    報処理装置への電源供給を停止する際、前記データ制御
    手段は、電源供給停止を検知した中央処理装置の指示に
    より、アドレス登録手段が保持するアドレスと、該アド
    レスに対応する揮発性の第一記憶手段が保持するデータ
    を、不揮発性の第二記憶手段の特定の場所に格納し、前
    記電源供給手段が、再び電源供給を開始する際に、電源
    供給開始を検知した中央処理装置の指示により、該退避
    したアドレスを前記アドレス登録手段に戻すことを特徴
    とする請求項1に記載の情報処理装置。
  14. 【請求項14】あらかじめ定めた時間毎に、計測結果を
    出力する時間計測手段を備え、前記データ制御手段は、
    時間計測手段が出力する時間計測結果に従い、一定時間
    ごとに、前記揮発性の第一記憶手段に格納されているデ
    ータを、前記不揮発性の第二記憶手段に書き戻すことを
    特徴とする請求項1に記載の情報処理装置。
  15. 【請求項15】あらかじめ定めた時間毎に、計測結果を
    出力する時間計測手段を備え、前記データ制御手段は、
    時間計測手段が出力する時間計測結果に従い、一定時間
    ごとに、前記揮発性の第一記憶手段に格納されているデ
    ータと、前記アドレス登録手段に登録されている該デー
    タに対応するアドレスを、前記不揮発性の第二記憶手段
    に書き戻すことを特徴とする請求項1に記載の情報処理
    装置。
  16. 【請求項16】不揮発性の第二記憶手段として、外部と
    のデータ入出力単位より容量の大きいバッファを内蔵
    し、該バッファからデータ入出力単位でデータを出力す
    る際は、バッファからの出力データを外部から指定可能
    で、電気的に書換え可能な不揮発性メモリを用い、 前記データ制御手段は該不揮発性の第二記憶手段から揮
    発性の第一記憶手段へのデータ転送においては、前記バ
    ッファの容量より少ない量を単位とするデータ転送を行
    い、前記揮発性の第一記憶手段から前記不揮発性の第二
    記憶手段へのデータ転送においては、前記バッファの容
    量を単位とするデータ転送を行うことを特徴とする請求
    項1に記載の情報処理装置。
  17. 【請求項17】CPUからデータを書き込む前に、一
    旦、当該書込みの対象となるブロック内の全データを消
    去する必要がある記憶装置であるフラッシュメモリを主
    記憶装置として用いる情報処理装置において、 前記主記憶装置の一部のブロックデータのコピーをそれ
    ぞれ保持する複数のデータ領域を有するコピーバック方
    式のキャッシュメモリと、前記CPUから前記主記憶装
    置への書き込み処理の際に前記キャッシュメモリがヒッ
    トしたとき、前記キャッシュメモリの該当データ領域の
    データを更新するとともに、前記主記憶装置の、当該書
    き込みの対象となったブロックの消去処理を行う制御手
    段とを備えたことを特徴とするフラッシュメモリを用い
    た情報処理装置。
  18. 【請求項18】前記制御手段は、前記CPUから前記主
    記憶装置への書き込み処理の際に、前記キャッシュメモ
    リがヒットしても前記主記憶装置内の該当するブロック
    が既に消去済みの場合は前記消去処理を省略することを
    特徴とする、請求項17に記載の情報処理装置。
  19. 【請求項19】前記キャッシュメモリは、自己がデータ
    のコピーを保持している前記主記憶装置内の各ブロック
    について、該ブロックが既に消去済みか否かを示す消去
    情報を保持する手段を有し、前記制御手段は該消去情報
    を参照し該参照結果に応じて前記消去処理の省略を行う
    ことを特徴とする、請求項18に記載の情報処理装置。
  20. 【請求項20】前記制御手段は、前記CPUから前記主
    記憶装置への書き込み処理の際に、前記キャッシュメモ
    リがミスヒットしたとき、当該書き込みの対象となる主
    記憶装置のブロックのデータのコピーを保持するために
    選択されたキャッシュメモリのデータ領域が未更新であ
    れば、そのデータ領域を書き込みデータで更新するとと
    もに、当該書き込みの対象となった前記主記憶装置のブ
    ロックのデータの消去を行うことを特徴とする、請求項
    17に記載の情報処理装置。
  21. 【請求項21】前記キャッシュメモリは、各データ領域
    について、前記CPUからの書き込み処理によってその
    データが更新されたか否かを示す更新情報を保持する手
    段を有し、前記制御手段は、該更新情報を参照し該参照
    結果に応じて前記ブロックのデータの消去を行うことを
    特徴とする、請求項20に記載の情報処理装置。
  22. 【請求項22】前記フラッシュメモリの各ブロックのサ
    イズおよび前記キャッシュメモリの各データ領域のサイ
    ズがそれぞれmバイト(mは任意の正の整数)であり、
    前記CPUが前記主記憶装置からmバイトより小さいサ
    イズのデータを読みだす場合、前記主記憶装置内の該当
    するデータを含むブロックの全データを一旦読みだし、
    その全データの中から前記CPUが要求する該当データ
    のみをバスへ出力する手段を有することを特徴とする、
    請求項17に記載の情報処理装置。
  23. 【請求項23】前記フラッシュメモリの各ブロックのサ
    イズおよび前記キャッシュメモリの各データ領域のサイ
    ズがそれぞれmバイト(mは任意の正の整数)であり、
    前記CPUが前記主記憶装置からmバイトより小さいサ
    イズのデータを書き込む場合、前記制御手段は、前記主
    記憶装置内の該当するブロックの全データを一旦読みだ
    し、その全データのうち前記CPUの書き込み処理の対
    象となる部分領域だけを更新したあと、その1ブロック
    分の全データを改めて前記主記憶装置内の該当ブロック
    に書き込むことを特徴とする、請求項17に記載の情報
    処理装置。
  24. 【請求項24】前記キャッシュメモリは、前記データ領
    域毎に、当該データ領域内のどの部分領域が更新された
    かを示す更新領域情報を保持する手段を有し、前記制御
    手段は、該更新領域情報を参照し該参照結果に応じて前
    記書き込み処理の対象となる部分領域だけの更新を行う
    ことを特徴とする、請求項23に記載の情報処理装置。
JP6071049A 1993-04-08 1994-04-08 フラッシュメモリの制御方法及び、それを用いた情報処理装置 Pending JPH07146820A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6071049A JPH07146820A (ja) 1993-04-08 1994-04-08 フラッシュメモリの制御方法及び、それを用いた情報処理装置

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP8164293 1993-04-08
JP5-81642 1993-04-08
JP5-246520 1993-10-01
JP24652093 1993-10-01
JP6071049A JPH07146820A (ja) 1993-04-08 1994-04-08 フラッシュメモリの制御方法及び、それを用いた情報処理装置

Publications (1)

Publication Number Publication Date
JPH07146820A true JPH07146820A (ja) 1995-06-06

Family

ID=27300518

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6071049A Pending JPH07146820A (ja) 1993-04-08 1994-04-08 フラッシュメモリの制御方法及び、それを用いた情報処理装置

Country Status (1)

Country Link
JP (1) JPH07146820A (ja)

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0997199A (ja) * 1995-09-28 1997-04-08 Canon Inc フラッシュrom管理方法及び装置及びコンピュータ制御装置
JP2002149491A (ja) * 2000-08-17 2002-05-24 Koninkl Philips Electronics Nv プロセッサメモリシステム
US6791877B2 (en) 2001-06-11 2004-09-14 Renesas Technology Corporation Semiconductor device with non-volatile memory and random access memory
JP2005235182A (ja) * 2004-02-16 2005-09-02 Samsung Electronics Co Ltd 不揮発性メモリを制御するためのコントローラ
JP2006065533A (ja) * 2004-08-26 2006-03-09 Sony Corp 半導体記憶装置およびそのアクセス方法、並びにメモリ制御システム
US7136978B2 (en) 2002-09-11 2006-11-14 Renesas Technology Corporation System and method for using dynamic random access memory and flash memory
JP2006323739A (ja) * 2005-05-20 2006-11-30 Renesas Technology Corp メモリモジュール、メモリシステム、及び情報機器
JP2007034944A (ja) * 2005-07-29 2007-02-08 Sony Corp コンピュータシステム
US7302517B2 (en) 2003-01-09 2007-11-27 Samsung Electronics Co., Ltd. Apparatus and method for controlling execute-in-place (XIP) in serial flash memory, and flash memory chip using the same
JP2008052313A (ja) * 2006-08-22 2008-03-06 Hitachi Ltd シリコンディスク記憶装置のアクセス制御方法
JP2008524747A (ja) * 2004-12-21 2008-07-10 サンディスク コーポレイション オンチップ不揮発性メモリ書き込みキャッシュを使用するシステムおよび方法
JP2008242944A (ja) * 2007-03-28 2008-10-09 Toshiba Corp 統合メモリ管理装置及び方法
WO2008136417A1 (ja) 2007-04-26 2008-11-13 Elpida Memory, Inc. 半導体装置
JP2009122826A (ja) * 2007-11-13 2009-06-04 Seiko Epson Corp 半導体記憶装置、半導体記憶装置の制御方法および制御プログラム
JP2009157663A (ja) * 2007-12-26 2009-07-16 Interchip Kk 調整機能付集積回路
US7613880B2 (en) 2002-11-28 2009-11-03 Renesas Technology Corp. Memory module, memory system, and information device
JP2010055531A (ja) * 2008-08-29 2010-03-11 Fujitsu Ltd データ処理装置
WO2010074352A1 (en) * 2008-12-27 2010-07-01 Kabushiki Kaisha Toshiba Memory system, method of controlling memory system, and information processing apparatus
JP2010225161A (ja) * 2010-04-13 2010-10-07 Renesas Electronics Corp 半導体記憶装置
WO2011007599A1 (ja) 2009-07-17 2011-01-20 株式会社 東芝 メモリ管理装置
JP2012038385A (ja) * 2010-08-06 2012-02-23 Renesas Electronics Corp データ処理装置
US8135900B2 (en) 2007-03-28 2012-03-13 Kabushiki Kaisha Toshiba Integrated memory management and memory management method
US8255614B2 (en) 2009-01-16 2012-08-28 Kabushiki Kaisha Toshiba Information processing device that accesses memory, processor and memory management method
JP2013513186A (ja) * 2009-12-07 2013-04-18 マイクロソフト コーポレーション ハイブリッドストレージを使用したssdの寿命の延長
US8589639B2 (en) 2009-11-30 2013-11-19 Kabushiki Kaisha Toshiba Memory management unit and memory management method for controlling a nonvolatile memory and a volatile memory
US8612692B2 (en) 2010-07-30 2013-12-17 Kabushiki Kaisha Toshiba Variable write back timing to nonvolatile semiconductor memory
US8645612B2 (en) 2010-07-30 2014-02-04 Kabushiki Kaisha Toshiba Information processing device and information processing method
JP2014086120A (ja) * 2012-10-26 2014-05-12 Toshiba Corp 半導体記憶装置及びその半導体記憶装置を用いたメモリシステム
US9032235B2 (en) 2012-07-31 2015-05-12 Kabushiki Kaisha Toshiba Semiconductor storage device and method for controlling the semiconductor storage device
JP2015092382A (ja) * 2014-12-24 2015-05-14 株式会社東芝 情報処理装置
US9235507B2 (en) 2009-12-16 2016-01-12 Kabushiki Kaisha Toshiba Memory management device and method
US9280466B2 (en) 2008-09-09 2016-03-08 Kabushiki Kaisha Toshiba Information processing device including memory management device managing access from processor to memory and memory management method
US9678877B2 (en) 2004-03-08 2017-06-13 Sandisk Technologies Llc Flash controller cache architecture
WO2017183096A1 (ja) * 2016-04-19 2017-10-26 株式会社日立製作所 計算機システム及び不揮発性メモリの冗長化方法
EP3441885A1 (en) * 2017-08-07 2019-02-13 INTEL Corporation Technologies for caching persistent two-level memory data
CN112579481A (zh) * 2020-12-07 2021-03-30 海光信息技术股份有限公司 数据处理方法、数据处理装置和计算装置

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60179857A (ja) * 1984-02-28 1985-09-13 Fujitsu Ltd キヤツシユ装置の制御方式
JPS60225924A (ja) * 1984-04-25 1985-11-11 Seiko Epson Corp 情報処理装置
JPS62130440A (ja) * 1985-12-03 1987-06-12 Nippon Telegr & Teleph Corp <Ntt> キヤツシユサブシステム
JPS6443897A (en) * 1987-08-10 1989-02-16 Nec Corp Non-volatile semiconductor memory device capable of being erased and written electrically
JPH0263389A (ja) * 1988-08-30 1990-03-02 Fujitsu General Ltd メモリ拡張用カードの着脱可能な文字放送受信装置
JPH02292798A (ja) * 1989-04-13 1990-12-04 Sundisk Corp フラッシュEEpromシステム
JPH03163617A (ja) * 1989-11-22 1991-07-15 Tokyo Electric Co Ltd コンピュータシステムにおけるプログラムのウオーム・ブート方法
JPH04268296A (ja) * 1991-02-25 1992-09-24 Nec Corp 消去可能形読出し専用メモリ
JPH04324194A (ja) * 1991-04-25 1992-11-13 Nec Corp Rom回路
JPH0528039A (ja) * 1991-07-22 1993-02-05 Melco:Kk 記憶装置
JPH05134928A (ja) * 1991-11-11 1993-06-01 Mitsubishi Electric Corp メモリ装置
JPH05334168A (ja) * 1992-02-18 1993-12-17 Hitachi Ltd フラッシュメモリを用いた情報処理装置

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60179857A (ja) * 1984-02-28 1985-09-13 Fujitsu Ltd キヤツシユ装置の制御方式
JPS60225924A (ja) * 1984-04-25 1985-11-11 Seiko Epson Corp 情報処理装置
JPS62130440A (ja) * 1985-12-03 1987-06-12 Nippon Telegr & Teleph Corp <Ntt> キヤツシユサブシステム
JPS6443897A (en) * 1987-08-10 1989-02-16 Nec Corp Non-volatile semiconductor memory device capable of being erased and written electrically
JPH0263389A (ja) * 1988-08-30 1990-03-02 Fujitsu General Ltd メモリ拡張用カードの着脱可能な文字放送受信装置
JPH02292798A (ja) * 1989-04-13 1990-12-04 Sundisk Corp フラッシュEEpromシステム
JPH03163617A (ja) * 1989-11-22 1991-07-15 Tokyo Electric Co Ltd コンピュータシステムにおけるプログラムのウオーム・ブート方法
JPH04268296A (ja) * 1991-02-25 1992-09-24 Nec Corp 消去可能形読出し専用メモリ
JPH04324194A (ja) * 1991-04-25 1992-11-13 Nec Corp Rom回路
JPH0528039A (ja) * 1991-07-22 1993-02-05 Melco:Kk 記憶装置
JPH05134928A (ja) * 1991-11-11 1993-06-01 Mitsubishi Electric Corp メモリ装置
JPH05334168A (ja) * 1992-02-18 1993-12-17 Hitachi Ltd フラッシュメモリを用いた情報処理装置

Cited By (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0997199A (ja) * 1995-09-28 1997-04-08 Canon Inc フラッシュrom管理方法及び装置及びコンピュータ制御装置
JP2002149491A (ja) * 2000-08-17 2002-05-24 Koninkl Philips Electronics Nv プロセッサメモリシステム
US8432716B2 (en) 2001-06-11 2013-04-30 Renesas Electronics Corporation Semiconductor device with non-volatile memory and random access memory
US7280426B2 (en) 2001-06-11 2007-10-09 Renesas Technology Corporation Semiconductor device with non-volatile memory and random access memory
US6952368B2 (en) 2001-06-11 2005-10-04 Renesas Technology Corporation Semiconductor device with non-volatile memory and random access memory
US7554830B2 (en) 2001-06-11 2009-06-30 Renesas Technology Corp. Semiconductor device with non-volatile memory and random access memory
US7068562B2 (en) 2001-06-11 2006-06-27 Renesas Technology Corporation Semiconductor device with non-volatile memory and random access memory
US7872895B2 (en) 2001-06-11 2011-01-18 Renesas Electronics Corporation Semiconductor device with non-volatile memory and random access memory
US6791877B2 (en) 2001-06-11 2004-09-14 Renesas Technology Corporation Semiconductor device with non-volatile memory and random access memory
US7136978B2 (en) 2002-09-11 2006-11-14 Renesas Technology Corporation System and method for using dynamic random access memory and flash memory
US8185690B2 (en) 2002-11-28 2012-05-22 Renesas Electronics Corporation Memory module, memory system, and information device
US7613880B2 (en) 2002-11-28 2009-11-03 Renesas Technology Corp. Memory module, memory system, and information device
US7991954B2 (en) 2002-11-28 2011-08-02 Renesas Electronics Corporation Memory module, memory system, and information device
US7302517B2 (en) 2003-01-09 2007-11-27 Samsung Electronics Co., Ltd. Apparatus and method for controlling execute-in-place (XIP) in serial flash memory, and flash memory chip using the same
JP2005235182A (ja) * 2004-02-16 2005-09-02 Samsung Electronics Co Ltd 不揮発性メモリを制御するためのコントローラ
US9678877B2 (en) 2004-03-08 2017-06-13 Sandisk Technologies Llc Flash controller cache architecture
JP2006065533A (ja) * 2004-08-26 2006-03-09 Sony Corp 半導体記憶装置およびそのアクセス方法、並びにメモリ制御システム
JP2008524747A (ja) * 2004-12-21 2008-07-10 サンディスク コーポレイション オンチップ不揮発性メモリ書き込みキャッシュを使用するシステムおよび方法
JP4834676B2 (ja) * 2004-12-21 2011-12-14 サンディスク コーポレイション オンチップ不揮発性メモリ書き込みキャッシュを使用するシステムおよび方法
JP2006323739A (ja) * 2005-05-20 2006-11-30 Renesas Technology Corp メモリモジュール、メモリシステム、及び情報機器
US8028119B2 (en) 2005-05-20 2011-09-27 Renesas Electronics Corporation Memory module, cache system and address conversion method
JP2007034944A (ja) * 2005-07-29 2007-02-08 Sony Corp コンピュータシステム
JP2008052313A (ja) * 2006-08-22 2008-03-06 Hitachi Ltd シリコンディスク記憶装置のアクセス制御方法
US8261041B2 (en) 2007-03-28 2012-09-04 Kabushiki Kaisha Toshiba Memory management device for accessing cache memory or main memory
JP2008242944A (ja) * 2007-03-28 2008-10-09 Toshiba Corp 統合メモリ管理装置及び方法
US8738851B2 (en) 2007-03-28 2014-05-27 Kabushiki Kaisha Toshiba Device and memory system for swappable memory
US8458436B2 (en) 2007-03-28 2013-06-04 Kabushiki Kaisha Toshiba Device and memory system for memory management using access frequency information
US8135900B2 (en) 2007-03-28 2012-03-13 Kabushiki Kaisha Toshiba Integrated memory management and memory management method
WO2008136417A1 (ja) 2007-04-26 2008-11-13 Elpida Memory, Inc. 半導体装置
US8886893B2 (en) 2007-04-26 2014-11-11 Ps4 Luxco S.A.R.L. Semiconductor device
JP2009122826A (ja) * 2007-11-13 2009-06-04 Seiko Epson Corp 半導体記憶装置、半導体記憶装置の制御方法および制御プログラム
JP2009157663A (ja) * 2007-12-26 2009-07-16 Interchip Kk 調整機能付集積回路
JP2010055531A (ja) * 2008-08-29 2010-03-11 Fujitsu Ltd データ処理装置
US9280466B2 (en) 2008-09-09 2016-03-08 Kabushiki Kaisha Toshiba Information processing device including memory management device managing access from processor to memory and memory management method
US8868842B2 (en) 2008-12-27 2014-10-21 Kabushiki Kaisha Toshiba Memory system, method of controlling memory system, and information processing apparatus
WO2010074352A1 (en) * 2008-12-27 2010-07-01 Kabushiki Kaisha Toshiba Memory system, method of controlling memory system, and information processing apparatus
US8255614B2 (en) 2009-01-16 2012-08-28 Kabushiki Kaisha Toshiba Information processing device that accesses memory, processor and memory management method
WO2011007599A1 (ja) 2009-07-17 2011-01-20 株式会社 東芝 メモリ管理装置
US8589639B2 (en) 2009-11-30 2013-11-19 Kabushiki Kaisha Toshiba Memory management unit and memory management method for controlling a nonvolatile memory and a volatile memory
JP2013513186A (ja) * 2009-12-07 2013-04-18 マイクロソフト コーポレーション ハイブリッドストレージを使用したssdの寿命の延長
US9235507B2 (en) 2009-12-16 2016-01-12 Kabushiki Kaisha Toshiba Memory management device and method
US10310747B2 (en) 2009-12-16 2019-06-04 Toshiba Memory Corporation Memory management device and method
JP2010225161A (ja) * 2010-04-13 2010-10-07 Renesas Electronics Corp 半導体記憶装置
US8612692B2 (en) 2010-07-30 2013-12-17 Kabushiki Kaisha Toshiba Variable write back timing to nonvolatile semiconductor memory
US8645612B2 (en) 2010-07-30 2014-02-04 Kabushiki Kaisha Toshiba Information processing device and information processing method
JP2012038385A (ja) * 2010-08-06 2012-02-23 Renesas Electronics Corp データ処理装置
US9032235B2 (en) 2012-07-31 2015-05-12 Kabushiki Kaisha Toshiba Semiconductor storage device and method for controlling the semiconductor storage device
JP2014086120A (ja) * 2012-10-26 2014-05-12 Toshiba Corp 半導体記憶装置及びその半導体記憶装置を用いたメモリシステム
JP2015092382A (ja) * 2014-12-24 2015-05-14 株式会社東芝 情報処理装置
WO2017183096A1 (ja) * 2016-04-19 2017-10-26 株式会社日立製作所 計算機システム及び不揮発性メモリの冗長化方法
EP3441885A1 (en) * 2017-08-07 2019-02-13 INTEL Corporation Technologies for caching persistent two-level memory data
CN112579481A (zh) * 2020-12-07 2021-03-30 海光信息技术股份有限公司 数据处理方法、数据处理装置和计算装置
CN112579481B (zh) * 2020-12-07 2023-01-20 海光信息技术股份有限公司 数据处理方法、数据处理装置和计算装置

Similar Documents

Publication Publication Date Title
JPH07146820A (ja) フラッシュメモリの制御方法及び、それを用いた情報処理装置
KR970008188B1 (ko) 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US6205521B1 (en) Inclusion map for accelerated cache flush
US9996278B2 (en) Memory device, control method for the memory device, and controller
US6078520A (en) Flash memory control method and information processing system therewith
US6799244B2 (en) Storage control unit with a volatile cache and a non-volatile backup cache for processing read and write requests
US5519831A (en) Non-volatile disk cache
EP1918939B1 (en) Semiconductor memory system for flash memory
US8316257B2 (en) NAND power fail recovery
US20090327837A1 (en) NAND error management
US20100235568A1 (en) Storage device using non-volatile memory
JPH06111588A (ja) 一括消去型不揮発性メモリ
JP2549034B2 (ja) 記憶装置
JPH06309234A (ja) ディスク制御装置
JPH10161938A (ja) ディスク制御装置
JP2008047155A (ja) 一括消去型不揮発性メモリおよび携帯電話
JP2004103043A (ja) 記憶装置
JP2003122644A (ja) 計算機及びその記憶装置
JP3166659B2 (ja) 記憶装置
JP3526160B2 (ja) データキャッシュ制御方法
JPH0756693A (ja) ディスク・アレイ装置とディスク書込み制御装置
JP3585859B2 (ja) ディスク制御方法および情報処理装置
JP2003242788A (ja) 不揮発性半導体メモリ装置及びその制御方法
JPH08241247A (ja) コンピュータ機器及びそのメモリアクセス方法及び回路
JP2006113841A (ja) データ記憶制御装置

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20040309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050301

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050427

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050614