JPH06131266A - ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置 - Google Patents

ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置

Info

Publication number
JPH06131266A
JPH06131266A JP25628492A JP25628492A JPH06131266A JP H06131266 A JPH06131266 A JP H06131266A JP 25628492 A JP25628492 A JP 25628492A JP 25628492 A JP25628492 A JP 25628492A JP H06131266 A JPH06131266 A JP H06131266A
Authority
JP
Japan
Prior art keywords
page
storage device
cpu
external storage
program
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.)
Granted
Application number
JP25628492A
Other languages
English (en)
Other versions
JPH0778766B2 (ja
Inventor
Hideto Niijima
秀人 新島
Akashi Sato
証 佐藤
Yoshiisa Sakagami
好功 坂上
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP25628492A priority Critical patent/JPH0778766B2/ja
Priority to EP93306877A priority patent/EP0592098A3/en
Publication of JPH06131266A publication Critical patent/JPH06131266A/ja
Publication of JPH0778766B2 publication Critical patent/JPH0778766B2/ja
Priority to US08/841,976 priority patent/US5787493A/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44573Execute-in-place [XIP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation

Abstract

(57)【要約】 【構成】 ページテーブルを含む実・仮想アドレス変換
テーブルを参照してアドレス変換を行うCPUと、CP
Uに接続されたランダム・アクセス可能かつ書換え可能
メモリを用いる外部記憶装置とを具備するコンピュータ
・システム。プログラムのコードが実行順序に応じてC
PUの仮想アドレス空間上で連続となるように、前記ペ
ージテーブルを構成し、このページテーブルを含む実・
仮想アドレス変換テーブルを参照することによって、外
部記憶装置に格納されたプログラムを、仮想アドレスを
用いて外部記憶装置から読み出して実行する。また、ラ
ンダム・アクセス可能メモリのデータ領域にのみ、CP
Uの実アドレスを割り当てる。 【効果】 プログラムを主記憶装置上に読み出すことな
く実行できる。プログラムとデータとを区別することな
くランダム・アクセス可能かつ書換え可能メモリ上で一
元的に管理できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ランダム・アクセス可
能メモリを用いる外部記憶装置に格納されたプログラム
を直接実行する、つまりシステムの主記憶装置上に展開
することなく、該外部記憶装置上で実行するための制御
方法および装置に関する。
【0002】
【従来の技術】特開平2−292798号公報に開示さ
れているように、ランダム・アクセス可能かつ書換え可
能メモリを用いた外部記憶装置が、フロッピー、あるい
はハードディスク装置の置き換えとして利用されてい
る。以下、この種の外部記憶装置をSSD(Solid
State Disk)と呼ぶことにする。SSDに
用いられるメモリとしては、ディスクのエミュレーショ
ンという特性を利用して、シーケンシャル・アクセスの
み可能なメモリを用いることもできるが、ROMの置き
換えとして開発された、ランダム・アクセス可能な不揮
発性メモリ(典型的には)を用いることも多い。
【0003】
【発明が解決しようとする課題】しかしながら、このよ
うなディスク装置の代替として機能し、かつ、メモリに
対してランダム・アクセス可能であることを利用して、
そこに格納されたプログラムを主記憶装置に読み出すこ
となく実行する機能を備えたSSDは、従来は存在しな
かった。ただし、単純な不揮発性メモリカードとして、
そこに格納されたプログラムを直接実行できるシステム
は既に存在している。しかしながら、この種のメモリカ
ードは、ディスクの代替としての機能を備えていない。
また、JEIDA(社団法人日本電子工業振興協会)−
Ver4.1には、直接実行形式(XIP)の記述があ
るが、これは、メモリチップを、直接実行できるプログ
ラムを格納する領域(XIPパーティション)と、それ
以外の領域(例えばFATまたは他のファイル・システ
ム・パーティション)とに分割し、区別して使用するも
のである。XIPパーティションにはXIPアプリケー
ション(プログラム)のみ格納可能で、文書データなど
を混在させることはできない。
【0004】一般的にオペレーティングシステムは、デ
ィスク記憶装置上のデータを管理するに当り、セクター
(典型的には512バイト)という単位を用いて行う。
それゆえ、1つの長いファイルはディスク記憶装置上で
連続した領域に置かれるという保障がない。プログラム
を実行するためにはCPUの仮想アドレス空間上におい
て、そのプログラムコードが連続している必要があるた
め、ディスク記憶装置上に不連続に置かれたプログラム
コードを直接実行することは従来の手法ではできなかっ
た。また、通常、ディスク記憶装置はCPUのI/O空
間に置かれているため、その上で管理されている実行形
式のデータは何らかの方法(典型的には主記憶装置上へ
の転送という方法)をもってメモリ空間上へマッピング
する必要があった。
【0005】さらに、SSDをディスク装置の代替とし
て使用する場合は、ステイタス、誤り訂正コード(Er
ror Correction Code: 以下、E
CCという)などのユーザに見えないデータを格納する
いわゆる管理領域と、ユーザに見えるデータを格納する
データ領域とを混在させることとなる。このため、デー
タ領域のアドレスが不連続となり、SSD上でプログラ
ムを直接実行することは困難であった。たとえ、管理領
域を混在させない構成をとったとしても、データとEC
Cパリティとを別々のページアドレスでアクセスするこ
ととなり、制御が複雑になるため、ハードディスク装置
と比較しての有効性が疑わしくなる。
【0006】よって、本発明の目的は、ランダム・アク
セス可能かつ書換え可能メモリを用いる外部記憶装置に
格納されたプログラムを、システムの主記憶装置上に展
開することなく、該外部記憶装置上で実行するための制
御方法および装置を提供することにある。
【0007】本発明の他の目的は、ディスク装置との整
合性がよい外部記憶装置を実現できるランダム・アクセ
ス可能メモリを提供することにある。
【0008】
【課題を解決するための手段】上記の目的を達成するた
めに、本発明は、ページテーブルを含む実・仮想アドレ
ス変換テーブルを参照してアドレス変換を行う中央処理
装置(CPU)と、該CPUに接続されたランダム・ア
クセス可能かつ書換え可能メモリを用いる外部記憶装置
とを具備し、前記外部記憶装置の入出力装置としてのア
クセス単位とする論理ページのサイズを、前記CPUの
管理するページのサイズに適合させ、前記CPUの実ア
ドレス空間に前記外部記憶装置の論理ページをマップ
し、その際、該実アドレス空間上で、前記CPUの管理
するページと前記外部記憶装置の論理ページの境界を整
合させたコンピュータ・システムにおいて、前記外部記
憶装置に格納されたプログラムの直接実行を制御する方
法であって、(a)前記プログラムのコードが実行順序
に応じて前記CPUの仮想アドレス空間上で連続となる
ように、前記ページテーブルを書き換える過程と、
(b)前記プログラムを格納する前記外部記憶装置の論
理ページに対する書き込みを禁止するために、前記アド
レス変換テーブルに書き込み禁止フラグを設定する過程
と、(c)前記ページテーブルを含む実・仮想アドレス
変換テーブルを参照することによって、前記プログラム
を、仮想アドレスを用いて前記外部記憶装置から読み出
して実行する過程とを具備することを特徴とする。
【0009】また、本発明は、ページテーブルを含む実
・仮想アドレス変換テーブルを参照してアドレス変換を
行う中央処理装置(CPU)と、該CPUに接続された
ランダム・アクセス可能かつ書換え可能メモリを用いる
外部記憶装置とを具備し、前記外部記憶装置の論理ペー
ジのサイズを、前記CPUの管理するページのサイズに
適合させ、前記CPUの実アドレス空間に前記外部記憶
装置の論理ページをマップし、その際、該実アドレス空
間上で、前記CPUの管理するページと前記外部記憶装
置の論理ページの境界を整合させたコンピュータ・シス
テムにおいて、(a)前記外部記憶装置に格納されたプ
ログラムのコードが実行順序に応じて前記CPUの仮想
アドレス空間上で連続となるように、前記ページテーブ
ルを書き換える手段と、(b)前記ページテーブルを含
む実・仮想アドレス変換テーブルを参照することによっ
て、前記プログラムを、仮想アドレスを用いて前記外部
記憶装置から読み出して実行する手段とを具備すること
を特徴とする。
【0010】さらにまた、本発明は、複数のワードライ
ンを備えたランダム・アクセス可能メモリにおいて、前
記各ワードラインに設けられた第1の領域であって、該
ランダム・アクセス可能メモリの接続される中央処理装
置(CPU)の実アドレス空間上の連続アドレスが割り
当てられた複数の単位要素を含む第1領域と、前記各ワ
ードラインに設けられた第2の領域と、第1のモード
で、前記CPUの実アドレスに対応する前記第1領域の
単位要素にアクセスするランダム・アクセスを実行し、
第2のモードで、前記第1領域および第2領域の単位要
素を連続的にアクセスするシーケンシャル・アクセスを
実行するアクセス手段とを具備することを特徴とする。
【0011】
【作用】本発明によれば、ランダム・アクセス可能かつ
書換え可能メモリを用いる外部記憶装置に分散して置か
れているプログラムのコードが実行順序に応じてCPU
の仮想アドレス空間上で連続となるように、ページテー
ブルが書き換えられる。このページテーブルを含むアド
レス変換テーブルを参照することによって、CPUの仮
想アドレスを用いて、プログラムを外部記憶装置から読
み出して実行する。したがって、プログラムを主記憶装
置上に展開することなく実行できる。また、プログラム
とデータとを区別することなく一元的に管理できる。
【0012】また、本発明によるランダム・アクセス可
能メモリによれば、データ領域に対してCPUの一連の
実アドレスが割り当てられるため、プログラムの直接実
行の制御が簡単に実現できる。さらに、データとECC
パリティとを連続して読み書きすることもできるので、
ハードディスクシステムとの整合性がよい。データとE
CCパリティとは、同一のワードライン上にあるので、
ページアドレスを変えることなくアクセスできるため制
御が簡単になる。
【0013】
【実施例】次に、CPUとしてインテル社の80386
DXを用い、IBM社のPC−DOSをオペレーティン
グシステムとして用いるコンピュータ・システムを例に
とって本発明を詳細に説明する。
【0014】図1は、本発明の一実施例の全体構成を示
すブロック図である。
【0015】図において、1はCPU(中央処理装置)
である。CPU1には、システムバス3を介してメモリ
制御部5とディスク制御部7とが接続されている。ま
た、メモリ制御部5には主記憶装置9が接続され、ディ
スク制御部7にはハードディスク装置11が接続されて
いる。主記憶装置9はメモリ空間にマップされ、ハード
ディスク装置11はI/O空間にマップされている。さ
らに、メモリ制御部5とディスク制御部7には、ディレ
クトリとファイル・アロケーション・テーブル(FA
T)とを含むファイル管理領域を有するSSD(Sol
id StateDisk)13が接続されている。し
たがって、SSD13は、CPU1から、主記憶装置9
と同様にメモリ空間を通してアクセスできるとともに、
ハードディスク装置11と同様にI/O空間を通してア
クセスすることもできる。いいかえれば、SSD13
は、主記憶装置としての機能と、入出力装置(ハードデ
ィスク装置)としての機能を兼ね備えていることにな
る。メモリ空間を通してのSSD13へのアクセスにつ
いては、後で図5を参照して説明する。
【0016】ここで、SSD13に用いられるランダム
・アクセス可能かつ書換え可能メモリとしては、フラッ
シュEEPROMが代表的であるが、その他に、電池バ
ックアップされたDRAMやSRAMを使用することも
できる。また、フェロ・エレクトリック・メモリやマグ
ネット・レジスティブ・メモリなどの半導体メモリ技術
を用いたランダム・アクセス可能メモリを使用すること
もできる。
【0017】図2は、CPU1のページング機構を示す
ブロック図であり、インテル社の80386マイクロプ
ロセッサのマニュアルから引用したものである。
【0018】図において、コントロール・レジスタCR
3は、ディレクトリテーブル21のベースアドレスを格
納している。ディレクトリテーブル21は、4Kバイト
からなるテーブルで、32ビットのディレクトリテーブ
ル・エントリ23を1024個収納している。ディレク
トリテーブル・エントリ23は、図3に示すような構成
を有している。すなわち、12〜31ビットにはページ
テーブル25のベースアドレスが実アドレスで格納さ
れ、0〜8ビットにはページングに必要な各種情報がセ
ットされ、9〜11ビットは、システムプログラムの使
用のために確保されている。0〜8ビットの中、1ビッ
ト目はR/Wビットであり、1を書き込んでおく。すな
わち、対応するページテーブルを、読み出し・書き込み
ともに可能に設定しておく。
【0019】ページテーブル25も、ほぼ同様の構成で
あり、32ビットのページテーブル・エントリ27を1
024個格納している。各ページテーブル・エントリ2
7は、図4に示すような構成を有している。すなわち、
12〜31ビットにはページフレーム29のベースアド
レスが実アドレスで格納され、0〜8ビットにはページ
ングに必要な各種情報がセットされ、9〜11ビット
は、オペレーティングシステムの使用のために確保され
ている。0〜8ビットの中、1ビット目はR/Wビット
であり、対応するページが読み出しのみ可能(0)であ
るか、読み出し・書き込みともに可能(1)であるかを
表示している。
【0020】ディレクトリテーブル23およびページテ
ーブル25は、主記憶装置9上に設けられている。主記
憶装置9上には、さらに、ページフレーム29が複数個
確保されている。SSD13は、複数の論理ページに分
割される。そして、CPU1の実アドレス空間にマップ
されるSSD13の論理ページのサイズは、CPU1の
管理するページのサイズと同じ4Kバイトに合わせてあ
る。すなわち、SSD13の一般的なセクターサイズは
512バイトであるので、8セクターを1クラスターと
し、これをCPU1から見たSSD13の論理ページの
サイズとしている。ただし、1セクターを4KBとして
管理してもよい。クラスタあるいはセクターのサイズに
関する情報は、SSD13のルート・セクターに書き込
まれる。なお、後述するように、SSD13の実際の論
理ページには、実アドレス空間にマップされる4KB
(データ領域のデータ)の他に、マップされないデータ
(例えばECC)が格納される。
【0021】ここで重要な点は、SSD13の各論理ペ
ージがCPU1の実アドレス空間31にマップされ、か
つ実アドレス空間上でSSD13の各論理ページの境界
がCPU1の管理するページの境界と整合するように設
定されている点である。たとえば、80386マイクロ
コンピュータは、32ビットのアドレス線をもつので、
4GBの実アドレス空間31をもつが、その中の数メガ
ないし数十メガの実アドレス空間がSSD13の容量に
合わせて割り当てられ、しかも、該実アドレス空間上
で、CPU1のページ内オフセット値とSSD13の論
理ページのオフセット値が同一になるように設定され
る。以上の結果、SSD13上の各論理ページは、実ア
ドレス空間上31の一定の位置にマップされることとな
る(図5参照)。
【0022】CPU1の仮想(論理)アドレスは、32
ビットのリニアアドレス33として与えられる。ここ
で、リニアアドレス33は、ディレクトリアドレス35
(22〜31ビット)、テーブルアドレス37(12〜
21ビット)、およびオフセットアドレス39(0〜1
1ビット)の3つの部分から構成されている。ディレク
トリアドレス35は、加算器41において、コントロー
ル・レジスタCR3から供給されるディレクトリテーブ
ル21のベースアドレスと加算され、ディレクトリテー
ブル21内の一つのエントリ23を指示する。テーブル
アドレス37は、加算器43において、上記指示された
エントリ23の示すページテーブル25のベースアドレ
スと加算され、ページテーブル25内の一つのエントリ
27を指示する。オフセットアドレス39は、加算器4
5において、上記指示されたエントリ27の示すページ
のベースアドレスに加算され、実際の物理アドレス49
を生成する。こうして、仮想アドレス33から実アドレ
ス49が作られる。
【0023】図5は、実アドレス空間31上のSSD1
3の論理ページとページテーブル25のエントリ27と
の関係を示す概念図である。直接実行形式のデータ、す
なわち、実行プログラムを格納する論理ページCode
0,Code1,Code2,...Code102
3,Code1024は、SSD13上でランダムに不
連続に置かれている。一方、ページテーブル25上で
は、最初のエントリP0がページCode0のベースア
ドレスを指示し、2番目のエントリP1がページCod
e1の、3番目のエントリP2がページCode2の各
ベースアドレスを指示するように並べ換えられている。
この結果、CPU1は、仮想アドレス空間上でページP
0からP1024までを順にたどることによって、SS
D13上にある不連続な実行プログラムCode0〜C
ode1024を、あたかも連続したプログラムのよう
に、SSD13から読み出すことによって実行すること
ができる。
【0024】図6は、このようなページテーブル25の
作成とプログラムの実行の流れを示すフローチャートで
ある。ここで走行するプログラムは、SSD13のセク
ター番号を実アドレスに変換するためのSSDデバイス
ドライバ・プログラム、もしくはSSD13上の実行プ
ログラムの直接実行を管理するプログラムであり、この
両者を総称して本明細書では管理プログラムと呼ぶ。
【0025】管理プログラムは、ステップSP1におい
て、オペレーティングシステムのコマンドプロセッサか
ら送られてきたコマンドを受け取ると、ステップSP2
において、このコマンドに対応する実行プログラムがS
SD13上にあるか否かを調べる。これは、ディスク指
定子を調べることによって判断することができる。直接
実行可能の場合、管理プログラムは、ステップSP3に
おいて、SSD13上のファイル管理領域を参照して実
行形式ファイルの位置情報を得る。たとえば、管理プロ
グラムは、上記コマンドに相当する実行プログラムが、
SSD13上の1、7、3という論理ページに、この順
番で格納されていることを、ディレクトリおよびファイ
ル・アロケーション・テーブル(FAT)から認識す
る。ディレクトリおよびFATへのアクセスは、ディス
ク制御部7を介して行われる(図1参照)。次に、ステ
ップSP4において、管理プログラムは、図5に示すよ
うにページテーブル25を書き換える。上の例でいえ
ば、エントリP0,P1,P2に、CPU1の実アドレ
ス空間にマップされたページ1、7、3のベースアドレ
スを書き込む。ページテーブルのエントリは、通常、空
のものが適宜使用される。
【0026】こうして、ページテーブル25が書き換え
られると、管理プログラムは、ステップSP5におい
て、実行対象プログラムを格納するすべての論理ページ
に対して書き込み禁止フラグを立てる。すなわち、ペー
ジテーブル25内の当該プログラムに関連するすべての
エントリ(上の例ではP0,P1,P2)のR/Wビッ
ト(第1ビット)を0にセットする。書き込み禁止フラ
グを立てる理由は、以下の通りである。実行プログラム
の中には、そのプログラム領域内に変数を静的に割り当
てているものがある。プログラムの実行によって、この
静的変数を変化させることは、プログラム内部を直接書
き換えることになる。通常のシステムでは、プログラム
は、主記憶装置上に展開されるため問題はないが、SS
Dは、一般に、ランダムな書き込みができない半導体メ
モリによって実現されているので、SSD上のプログラ
ムに対して直接書き込もうとすると非常に大きなオーバ
ーヘッドがかかることになる。さらに、一度書き込まれ
ると、次回の実行時にその値が初期値となるおそれがあ
り、プログラムの実行が阻害されることになる。このよ
うな不都合を避けるために、SSDのプログラム格納ペ
ージは書き込み禁止にしておく必要がある。80386
マイクロコンピュータの場合、これらの属性は、ページ
テーブル内の各エントリ中のR/Wビットを0にセット
することによって実現される。ただし、ディレクトリテ
ーブル内の各エントリ中のR/Wビットは、前述したよ
うに、1にセットしておくものとする。
【0027】上述した準備完了後、管理プログラムは、
ステップSP6において、上記コマンドに相当するプロ
グラムを実行する。すなわち、図2に示す機構によっ
て、SSD13上の実アドレスを順次生成し、そのアド
レスをアクセスして実行プログラムを読み出し、順次プ
ログラムを実行していく。具体的には、CPU1は生成
された実アドレスを含む読出コマンドをメモリ制御部5
へ出力する。メモリ制御部5は、受け取った実アドレス
に基づいて、SSD13に向けられたコマンドであると
判断し、SSD13に対して当該実アドレスを含む読出
コマンドを出力する。この場合、ページテーブル25上
では、エントリP0,P1,P2と順番に次のページに
進んでいくが、SSD13上では対応ページが不連続に
なっているため、論理ページがとびとびにアクセスされ
る。
【0028】プログラムの実行が完了すると、管理プロ
グラムは、ステップSP7において後処理を行う。すな
わち、後述のページ複写によって主記憶装置9上に割り
振られたページや、使用したワークエリアを解放する。
また、不要となったページテーブルのエントリも解放す
る。なお、ステップSP2において、実行プログラムが
SSD上にない場合は、ステップSP8を通って、通常
のプログラム実行ルーチンへ移行する。
【0029】図7は、書き込み禁止割り込みが発生する
前後の状態を示す概略図であり、同図(A)は割り込み
発生前、(B)は割り込み発生後の状態を示している。
この割り込みは、SSD13の実行対象プログラムを格
納するすべてのページが書き込み禁止となっているため
に、SSD13上の実行プログラムに対する書き込みが
起こると、システムによって発生されるものである。
【0030】割り込み発生前においては、ページテーブ
ル25のエントリPnによって、SSD13のページC
ode・nのベースアドレスAnが指示され、このペー
ジに格納されているプログラムが直接実行される。この
とき、SSD13のページCode・nへの書き込みが
起こると、書き込み禁止割り込みが発生し、同図(B)
の状態に移行する。すなわち、管理プログラムは、
(1)SSD13のページCode・nのデータ領域を
主記憶装置9に複写するとともに、(2)ページテーブ
ル25のエントリPnが主記憶装置9上の複写ページの
ベースアドレスAnxを指示するように書き換える。こ
のベースアドレスAnxは、主記憶装置9の空き領域か
ら適宜選ぶことができる。さらに、エントリPnのR/
Wビットを1にセットし、読み出しおよび書き込み可能
状態にする。
【0031】図8は、書き込み禁止割り込みが発生した
ときのCPU1の動作を示すフローチャートである。
【0032】ステップSP11で、書き込み禁止エラー
が発生すると、割り込み処理プログラムは、ステップS
P12において、エラーが発生した論理ページつまり書
き込み対象となったページEpのSSD13上での位置
を確認する。次いで、ステップSP13において、この
論理ページEpのデータ領域を、主記憶装置9上のペー
ジEmに複写する。また、ステップSP14において、
ページテーブル25内でページEpを指示していたエン
トリを更新して、ページEmを指すようにする。また、
ステップSP15において、このエントリのR/Wビッ
トを1にセットして、ページEmへの書き込みを許可す
る。こうして、通常通りの実行を可能にする環境が整っ
たならば、割り込み処理プログラムは、ステップSP1
6にて、エラー発生点からの処理を再開する。主記憶装
置9上に移されたこのページへの書き込みを許可したこ
とにより、以後、このページへの書き込みが発生しても
書き込み禁止割り込みが生じることはない。
【0033】SSD13上のセクター全体がECCによ
ってプロテクトされている場合は、実行プログラムの処
理に先だって、実行プログラムを、ディスク制御部7を
介して、外部記憶装置上のデータとして主記憶装置9上
に読み出し、ECCエラーの無いことを確認してから実
行処理に移るようにしてもよい。ただし、主記憶装置上
に読み出したデータは、逐次読み捨てるものとする。
【0034】このECCチェックにおいて、回復可能な
読み込みエラーが発生した場合は、SSD13上で行う
エラー回復処理の後に、エラーを発生したセクターが属
する論理ページのデータ領域全体を主記憶装置9上に複
写する。同時に、この主記憶装置上の複写ページを、読
み込みエラーを起こしたSSD13上のページの代わり
として、ページテーブル25に登録し、実行プログラム
の処理を開始する。
【0035】このような処理を実現するためには、デー
タ領域のみがCPUの実アドレス空間として連続になっ
ているランダム・アクセス可能メモリを用いると好都合
である。すなわち、ランダムアクセスする場合には、セ
クターのデータ部分だけが見え、他の特殊なモード(た
とえば、カラムモード、ニブルモード)においてのみ、
ECCパリティを読み書きできるようなメモリを用いる
とよい。次の実施例は、このようなランダム・アクセス
可能メモリに関するものである。
【0036】図9は、本発明によるフラッシュ・メモリ
のチップの構成を示すブロック図である。上述した実施
例のSSD13(図1参照)は、通常、メモリ・チップ
のアレイとそれに付随する制御部(図示せず)から構成
される。
【0037】図9において、参照符号51は、メモリ・
セル領域である。一本のワード線を共有するメモリ・セ
ル領域51は、ステイタス領域53、データ領域55、
およびECCパリティ領域57の、3つの領域に分割さ
れている。ステイタス領域53は、同じワード線上のデ
ータの有効・無効などを示す管理情報を格納する管理領
域であり、システム立ち上げ時には必ず全部が読み込ま
れる。データ領域55は、ユーザに見えるデータを格納
する領域であり、ECCパリティ領域57は、エラーを
訂正するためのコードを格納する管理領域である。ここ
で、ステイタス、データ、およびECCパリティ各領域
の代表的な長さは、それぞれ、6バイト、512バイ
ト、および10バイトである。
【0038】メモリ・セル領域51は、図10に示すよ
うな構成になっている。すなわち、メモリ・セル領域5
1の各行は、1ワードライン、すなわち1物理ページを
構成し、各ワードラインが上述した3領域に分割されて
いる。そして、各ワードラインのデータ領域55には、
CPUの実アドレスが連続的に割り振られている。すな
わち、Nをデータ領域の長さ、kをワードラインの本数
として、第1ワードラインにはアドレス0から(N−
1)まで、第2ワードラインにはアドレスNから(2N
−1)まで、...最終ワードラインには(k−1)N
から(kN−1)までの連続した実アドレスが割り当て
られている。一方、ステイタス領域53およびECCパ
リティ領域57には、実アドレスは割り振られていな
い。
【0039】再び図9に戻り、メモリ・セル領域51の
各ワードラインは、行デコーダ61に接続され、各列
(ビットライン)は、センスアンプ63を介して、列デ
コーダ65に接続されている。列デコーダ65は、デー
タ領域55のみをランダムにアクセスするためのフル・
デコーダ(ランダム・デコーダ)67と、ステイタス、
データ、ECCパリティの3領域をシーケンシャルにア
クセスするためのシーケンシャル・デコーダ69とを備
えている。これらのデコーダ61、65、およびセンス
・アンプ63は、アドレス・タイミング制御回路71に
よって制御される。センス・アンプ63には、データ入
出力バッファ73が接続されている。データ領域55
は、2のM乗(Mは自然数。たとえば、M=8)の長さ
をもっており、フル・デコーダ67は、CPUの実アド
レスに関連するビット線を一本選択すればよいので簡単
な構成で済む。一方、シーケンシャル・デコーダ69
は、シフトレジスタ形式によって実現してよい。あるい
は、ステイタス、ECCパリティ領域にもそれぞれフル
・デコーダを置いて、内蔵アドレス発生器によって3つ
の領域にわたって、ビット線を選択するようにしてもよ
い。その場合、シーケンシャル・デコーダ69は、フル
・デコーダ67の機能を利用して、データ領域55のビ
ット線を選択してもよい。
【0040】このように構成された半導体メモリは、ラ
ンダム・アクセスモードとシーケンシャル・アクセスモ
ードの2つのモードで動作する。以下、これらのモード
別に本半導体メモリの動作を説明する。ここで、これら
2つのモードの切り替えは、上記SSDの制御部(図示
せず)がチップに対してコマンドを出力して指示する。
【0041】図1に即して説明すると、通常SSD13
の半導体メモリはランダム・アクセス・モードになって
いる。CPU1がディスク制御部7を介してSSD13
にアクセスするときには、SSD13の制御部がアクセ
ス対象のメモリ・チップに対してシーケンシャル・アク
セスを指示するコマンドを出し、処理終了後はランダム
・アクセスを指示するコマンドを出す。CPU1がメモ
リ制御部5を介してSSD13にアクセスするときは、
SSD13の制御部は通常介在しない。すなわち、ラン
ダム・アクセス・モードで、SSD13の半導体メモリ
はアクセスされる。
【0042】(1)ランダム・アクセスモード ランダム・アクセスモードでは、データ領域55のアク
セスのみが可能である。データ領域55は、上で述べた
ように、CPUの実アドレスが連続的に割り当てられて
いる。このモードは、上の実施例で説明したような、外
部記憶装置上でプログラムを直接実行するために必要と
なるもので、ステイタスおよびECCパリティ領域5
3、57にはアクセスできなくなる。
【0043】このモードでは、アドレス・タイミング制
御回路71は、アドレス信号およびコントロール信号を
SSDの制御部(図示せず)より受信して、先ず行デコ
ーダ61にアドレス信号を送り、所望の1ワードライン
を選択し、このワードライン全体の情報をセンス・アン
プ63に移す。次いで、フル・デコーダ67にアドレス
信号を送って、すでにセンス・アンプ中にホールドされ
ている情報の中から指定された情報を選択して、データ
入出力バッファ73に供給する。
【0044】図6に示したフローチャートのステップS
P6では、メモリ・セル領域51のステイタスおよびE
CCパリティ領域53、57を隠してしまう必要があ
る。そうしないと、ECCパリティ領域57を読み飛ば
すために、1ワードライン(物理ページ)境界毎に、C
PU1は割り込み制御を行わなければならず、多大なオ
ーバーヘッドがかかることになる。さらに、上記実施例
による直接実行の制御は、CPU1のページング機構を
使用しているため、CPUのページとSSDの物理的な
ページとを適合させるなどの制御が必要となり、ハード
ウェア量も増大してしまう。本実施例では、データ領域
のみをランダム・アクセスできるようにしたので、この
ような不都合を解消することができる。
【0045】(2)シーケンシャル・アクセスモード シーケンシャル・アクセスモードでは、ステイタス、デ
ータ、およびECCパリティ領域53、55および57
の領域を1ワードライン分連続してアクセスする。SS
D13上のデータをディスク制御部7を介してアクセス
するSSDモードにおいては、ランダム・アクセスは必
要とされないが、データ領域55およびECCパリティ
領域57内の両データを連続して読み書きできなければ
ならない。SSDモードは、図6に示したフローチャー
トのSP3で必要とされる。シーケンシャル・アクセス
モードは、これを実現するために必要となるもので、シ
ーケンシャル・デコーダをシフトレジスタ形式とする場
合、ワードライン(物理ページ)のアドレスを最初に一
度与えるだけで、そのワードラインのステイタス、デー
タおよびECCパリティ領域を連続アクセスすることが
できる。あるいは、内蔵アドレス発生器で先頭メモリ・
セルを指定し、そこからワードラインの最後までを連続
アクセスすることもできる。
【0046】このモードでは、アドレス・タイミング制
御回路71は、アドレス信号およびコントロール信号を
SSDの制御部(図示せず)より受信して、先ず行デコ
ーダ61にアドレス信号を送り、所望の1ワードライン
を選択し、このワードライン全体の情報をセンス・アン
プ63に移す。次いで、センス・アンプ中にホールドさ
れている情報を、データ入出力バッファ73を通して順
次出力する。
【0047】図11は、メモリ・チップのシーケンシャ
ル・アクセスモードでのアクセスシーケンスの1例を示
す図であり、ステイタス、データおよびECCパリティ
が順次読み出される。図において、CEはチップイネー
ブル、WEはライトイネーブル、SEQはシーケンスト
グルを意味している。Dataは、データ入出力バッフ
ァ73を通じて転送されるデータを表わす。
【0048】図12は、シーケンシャル・アクセスモー
ドでのアクセスシーケンスの他の例を示す図であり、ス
テイタス以外の、データおよびECCパリティが順次読
み出される。ステイタスを読むのはシステム立ち上げ時
だけでよく、それ以外のときは、このようにしてステイ
タスを読み飛ばせばよい。
【0049】これらのランダム・アクセスモードとシー
ケンシャル・アクセスモードとのモード切り替え、ある
いは、シーケンシャル・モードでの図11および12に
示す動作の切り替えは、コマンドを用いてソフトウェア
的に行う。現在生産されているフラッシュEEPROM
チップは、消去、書き込み、読み出しなどのモード切り
替えのために、外部からコマンドを与えるようになって
いる。これらのコマンド入力端子を、そのまま利用して
上記の切り替えを行う。この方法は、ソフトウェアによ
ってモードを切り替えるので、ハードウェアに負担がか
からずに済む。ただし、入力ピンを増やし、そのピンへ
の入力信号によって、切り替えることも可能である。コ
マンド形式によってソフトウェア的に切り替える場合
は、読出先頭メモリ・セルのアドレスの与え方を変える
ことによって、シーケンシャル読み込みを先頭のステイ
タスから読む場合(図11)と、途中のデータから読む
場合(図12)との2通りに分けることが簡単に実現で
きる。これによって、ディスク制御部7からSSD13
をアクセスするとき、つまり、SSDモードでの、ステ
イタス読み飛ばしのためのオーバーヘッドを無くすこと
ができる。
【0050】一般に、半導体メモリの物理ページ長は、
256バイト、512バイトなど、2のM乗であるの
で、ページアドレスを入力するピン数は、丁度M本で足
りる。ところで、SSDがエミュレートすべきハードデ
ィスクのセクターは、データとECCパリティの両方の
領域を含むため、その長さは2のM乗とはならない。こ
のため、通常の半導体メモリを用いてSSDを実現する
場合、物理ページとセクターとを1対1対応させると、
ステイタスおよびECCパリティの分だけ物理ページか
らはみ出すことになり、そのための特別な制御が必要と
される。これを回避するために、本実施例においては、
ステイタスおよびECCに対してはシーケンシャルモー
ドによる連続アクセスのみを許すことにより、2のN乗
とはなっていない長さの物理ページに対して、簡単にア
クセスできるようにしている。もし、ページアクセスを
フル・デコードによって実現したとすると、その物理ペ
ージに含まれるすべてのメモリ・セルに対して、逐一列
アドレスを外部から入力しなければならない。しかも、
そのアドレス数は、2のN乗とはなっていないため、ア
ドレスピンの数が増え、入力パターンも不規則になると
いう不都合が生じる。これに対して、本実施例では、こ
のような不都合は全く生じない。
【0051】なお、データ書き込みは、データ入出力バ
ッファ73を通してセンス・アンプ63に1ワードライ
ン分のデータを移し、次いで行デコーダでワードライン
をアドレス指定して行う。データ書き込みはSSDモー
ドに限ってもよい。
【0052】図9および図10に示した半導体メモリの
構造は、書換え不能ランダム・アクセス可能メモリに採
用することも可能である。
【0053】以上説明した実施例によれば、様々な効果
をあげることができる。まず、図1ないし図8に示した
ようにプログラムの実行を制御すれば、次のような効果
をあげることができる。
【0054】(1) プログラムを主記憶装置上に読み
出すことなく実行できる。
【0055】(2) プログラムとデータとを区別する
ことなく一元的に管理できる。すなわち、従来のように
領域を切り換えて読み書きの操作を行うといった煩わし
さがなく、データ管理も一元化され、ユーザインターフ
ェースにも優れている。
【0056】(3) 既存のCPUに備えられたページ
ング機構を利用して直接実行を制御しているため、大規
模なハードウェアを必要とせず、ソフトウェアの開発の
みで実現可能である。このため、コストアップは、最小
限で済む。
【0057】(4) アプリケーション・プログラムを
主記憶装置に展開する必要がないので、システムに大容
量の主記憶装置を備える必要がない。
【0058】近年、ノートブック型パーソナルコンピュ
ータなどの超小型製品においても、アプリケーション・
プログラムが大きくなり、主記憶装置に大きな容量が要
求されるようになってきた。このため、システムには、
多数のDRAMチップが装着され、低消費電力化にとっ
て大きな障害となっている。このような場合、SSD上
でプログラムを直接実行すれば、主記憶装置の容量は、
ワークデータの分のみで済むため、DRAMチップの個
数を減らすことができる。さらに、大容量の主記憶装置
を必要としないという利点を生かして、主記憶装置をた
とえばSRAMで構成するなどの方法をとれば、リフレ
ッシュコントローラや、アドレスマルチプレックサなど
の回路も不要になると考えられ、大幅な低消費電力化が
実現できる。これらは、今後さらに増えると予測される
特定アプリケーション用に開発される専用化された超小
型システムにも重要であると思われる。
【0059】(5) ROMタイプのICカードの置き
換えが簡単である。
【0060】近年、パーソナル・コンピュータ用のアプ
リケーション・ソフトウェアがICカードの形式で市販
されることもあり、今後、このようなパッケージが増え
ると思われる。現状では、ROMカードによって供給さ
れているが、ディスク装置と見ることもできるSSDを
使用すればより柔軟なシステムが構築できる。
【0061】また、図9ないし図12に示したランダム
・アクセス可能メモリによれば、以下の効果が得られ
る。
【0062】(6) データとECCパリティとを連続
してアクセスできるので、ディスク装置との整合性がよ
い外部記憶装置を実現できる。データとECCパリティ
とは、同一のワードライン(物理ページ)上にあるの
で、ページアドレスを変えることなくアクセスでき、し
たがって制御が簡単になる。
【0063】(7) データ領域に対してCPUの一連
の実アドレスが割り当てられるため、プログラムの直接
実行の制御が簡単に実現できる。
【0064】(8) ステイタス領域が各ワードライン
の先頭にあるので、この領域を速やかにアクセスでき
る。ステイタス領域は、システム立ち上げ時に必ず全部
を読み込むことになるが、この領域が先頭にあるので読
み込み時間が短くてすむ。また、あるワードラインのデ
ータを無効にするためには、ステイタス領域をアクセス
して書き込みをする必要があるが、このアクセス時間も
短縮化できる。
【0065】(9) 市販されている不揮発性半導体メ
モリと機能上の互換性がある。ランダム・アクセス・モ
ードにおいては、EEPROMと同様のアクセスができ
るため、汎用チップとしても流用可能である。この場
合、ステイタスおよびECCパリティ領域にはアクセス
しないことになる。
【0066】
【発明の効果】本発明によれば、プログラムとデータと
をランダム・アクセス可能かつ書換え可能メモリ上で一
元的に管理しつつ、プログラムを主記憶装置に展開する
ことなしに実行することが可能となる。また、本発明の
ランダム・アクセス可能メモリを用いれば、ディスク装
置との整合性がよい外部記憶装置を実現できる。
【図面の簡単な説明】
【図1】本発明を具体化するコンピュータ・システムの
構成を示すブロック図である。
【図2】図1のCPUにおけるページング機構を示すブ
ロック図である。
【図3】ディレクトリテーブル・エントリの構成例を示
す概念図である。
【図4】ページテーブル・エントリの構成例を示す概念
図である。
【図5】ページング機構を用いてプログラムデータを整
列する方法を説明するための概念図である。
【図6】ページテーブルの書換えとプログラムの直接実
行の流れを示すフローチャートである。
【図7】プログラムの直接実行中に、該プログラムを格
納するSSDへの書き込みが生じた場合の、書き込み禁
止例外処理を示す概念図である。
【図8】図7に示す書き込み禁止例外処理の流れを示す
フローチャートである。
【図9】本発明によるランダム・アクセス可能メモリの
実施例の構成を示すブロック図である。
【図10】図9に示すランダム・アクセス可能メモリへ
のCPU実アドレスの割り当てを示す概念図である。
【図11】図9に示すランダム・アクセス可能メモリに
おけるシーケンシャル・アクセスモードで、ステイタス
を含む全領域のデータを読み出す場合のアクセスシーケ
ンスを示すタイミング・チャートである。
【図12】図9に示すランダム・アクセス可能メモリに
おけるシーケンシャル・アクセスモードで、ステイタス
以外の領域のデータを読み出す場合のアクセスシーケン
スを示すタイミング・チャートである。
【符号の説明】
1 CPU 3 システムバス 5 メモリ制御部 7 ディスク制御部 9 主記憶装置 11 ハードディスク 13 SSD(Solid State Disk) 21 ディレクトリテーブル 23 ディレクトリテーブル・エントリ 25 ページテーブル 27 ページテーブル・エントリ 29 ページフレーム 31 ユーザメモリ 33 リニアアドレス 35 ディレクトリアドレス 37 テーブルアドレス 39 オフセットアドレス 41,43,45 加算器 49 物理アドレス 51 メモリ・セル領域 53 ステイタス領域 55 データ領域 57 ECCパリティ領域 61 行デコーダ 63 センス・アンプ 65 列デコーダ 67 フル・デコーダ 69 シーケンシャル・デコーダ 71 アドレス・タイミング制御回路 73 データ入出力バッファ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成5年2月1日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】請求項1
【補正方法】変更
【補正内容】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】請求項2
【補正方法】変更
【補正内容】
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】請求項10
【補正方法】変更
【補正内容】
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】請求項12
【補正方法】変更
【補正内容】
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0008
【補正方法】変更
【補正内容】
【0008】
【課題を解決するための手段】上記の目的を達成するた
めに、本発明は、ページテーブルを含む実・仮想アドレ
ス変換テーブルを参照してアドレス変換を行う中央処理
装置(CPU)と、該CPUに接続されたランダム・ア
クセス可能かつ書換え可能メモリを用いる外部記憶装置
とを具備し、前記外部記憶装置の入出力装置としてのア
クセス単位とする論理ページのサイズを、前記CPUの
管理するページのサイズに適合させ、前記CPUの実ア
ドレス空間に前記外部記憶装置の論理ページをマップ
し、その際、該実アドレス空間上で、前記CPUの管理
するページと前記外部記憶装置の論理ページの境界を整
合させたコンピュータ・システムにおいて、前記外部記
憶装置に格納されたプログラムの直接実行を制御する方
法であって、(a)前記プログラムのコードが実行順序
に応じて前記CPUの仮想アドレス空間上で連続となる
ように、前記ページテーブルを構成する過程と、(b)
前記プログラムを格納する前記外部記憶装置の論理ペー
ジに対する書き込みを禁止するために、前記アドレス変
換テーブルに書き込み禁止フラグを設定する過程と、
(c)前記ページテーブルを含む実・仮想アドレス変換
テーブルを参照することによって、前記プログラムを、
仮想アドレスを用いて前記外部記憶装置から読み出して
実行する過程とを具備することを特徴とする。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0009
【補正方法】変更
【補正内容】
【0009】また、本発明は、ページテーブルを含む実
・仮想アドレス変換テーブルを参照してアドレス変換を
行う中央処理装置(CPU)と、該CPUに接続された
ランダム・アクセス可能かつ書換え可能メモリを用いる
外部記憶装置とを具備し、前記外部記憶装置の論理ペー
ジのサイズを、前記CPUの管理するページのサイズに
適合させ、前記CPUの実アドレス空間に前記外部記憶
装置の論理ページをマップし、その際、該実アドレス空
間上で、前記CPUの管理するページと前記外部記憶装
置の論理ページの境界を整合させたコンピュータ・シス
テムにおいて、(a)前記外部記憶装置に格納されたプ
ログラムのコードが実行順序に応じて前記CPUの仮想
アドレス空間上で連続となるように、前記ページテーブ
ルを構成する手段と、(b)前記ページテーブルを含む
実・仮想アドレス変換テーブルを参照することによっ
て、前記プログラムを、仮想アドレスを用いて前記外部
記憶装置から読み出して実行する手段とを具備すること
を特徴とする。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0011
【補正方法】変更
【補正内容】
【0011】
【作用】本発明によれば、ランダム・アクセス可能かつ
書換え可能メモリを用いる外部記憶装置に分散して置か
れているプログラムのコードが実行順序に応じてCPU
の仮想アドレス空間上で連続となるように、ページテー
ブルが構成される。このページテーブルを含むアドレス
変換テーブルを参照することによって、CPUの仮想ア
ドレスを用いて、プログラムを外部記憶装置から読み出
して実行する。したがって、プログラムを主記憶装置上
に展開することなく実行できる。また、プログラムとデ
ータとを区別することなく一元的に管理できる。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0025
【補正方法】変更
【補正内容】
【0025】管理プログラムは、ステップSP1におい
て、オペレーティングシステムのコマンドプロセッサか
ら送られてきたコマンドを受け取ると、ステップSP2
において、このコマンドに対応する実行プログラムがS
SD13上にあるか否かを調べる。これは、ディスク指
定子を調べることによって判断することができる。直接
実行可能の場合、管理プログラムは、ステップSP3に
おいて、SSD13上のファイル管理領域を参照して実
行形式ファイルの位置情報を得る。たとえば、管理プロ
グラムは、上記コマンドに相当する実行プログラムが、
SSD13上の1、7、3という論理ページに、この順
番で格納されていることを、ディレクトリおよびファイ
ル・アロケーション・テーブル(FAT)から認識す
る。ディレクトリおよびFATへのアクセスは、ディス
ク制御部7を介して行われる(図1参照)。次に、ステ
ップSP4において、管理プログラムは、図5に示すよ
うにページテーブル25を構成する。上の例でいえば、
エントリP0,P1,P2に、CPU1の実アドレス空
間にマップされたページ1、7、3のベースアドレスを
書き込む。ページテーブルのエントリは、通常、空のも
のが適宜使用される。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0026
【補正方法】変更
【補正内容】
【0026】こうして、ページテーブル25が構成され
と、管理プログラムは、ステップSP5において、実
行対象プログラムを格納するすべての論理ページに対し
て書き込み禁止フラグを立てる。すなわち、ページテー
ブル25内の当該プログラムに関連するすべてのエント
リ(上の例ではP0,P1,P2)のR/Wビット(第
1ビット)を0にセットする。書き込み禁止フラグを立
てる理由は、以下の通りである。実行プログラムの中に
は、そのプログラム領域内に変数を静的に割り当ててい
るものがある。プログラムの実行によって、この静的変
数を変化させることは、プログラム内部を直接書き換え
ることになる。通常のシステムでは、プログラムは、主
記憶装置上に展開されるため問題はないが、SSDは、
一般に、ランダムな書き込みができない半導体メモリに
よって実現されているので、SSD上のプログラムに対
して直接書き込もうとすると非常に大きなオーバーヘッ
ドがかかることになる。さらに、一度書き込まれると、
次回の実行時にその値が初期値となるおそれがあり、プ
ログラムの実行が阻害されることになる。このような不
都合を避けるために、SSDのプログラム格納ページは
書き込み禁止にしておく必要がある。80386マイク
ロコンピュータの場合、これらの属性は、ページテーブ
ル内の各エントリ中のR/Wビットを0にセットするこ
とによって実現される。ただし、ディレクトリテーブル
内の各エントリ中のR/Wビットは、前述したように、
1にセットしておくものとする。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】図6
【補正方法】変更
【補正内容】
【図6】ページテーブルの構成手順とプログラムの直接
実行の流れを示すフローチャートである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 佐藤 証 東京都千代田区三番町5−19 日本アイ・ ビー・エム株式会社 東京基礎研究所内 (72)発明者 坂上 好功 東京都千代田区三番町5−19 日本アイ・ ビー・エム株式会社 東京基礎研究所内

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】 ページテーブルを含む実・仮想アドレス
    変換テーブルを参照してアドレス変換を行う中央処理装
    置(CPU)と、該CPUに接続されたランダム・アク
    セス可能かつ書換え可能メモリを用いる外部記憶装置と
    を具備し、前記外部記憶装置の入出力装置としてのアク
    セス単位とする論理ページのサイズを、前記CPUの管
    理するページのサイズに適合させ、前記CPUの実アド
    レス空間に前記外部記憶装置の論理ページをマップし、
    その際、該実アドレス空間上で、前記CPUの管理する
    ページと前記外部記憶装置の論理ページの境界を整合さ
    せたコンピュータ・システムにおいて、前記外部記憶装
    置に格納されたプログラムの直接実行を制御する方法で
    あって、 (a)前記プログラムのコードが実行順序に応じて前記
    CPUの仮想アドレス空間上で連続となるように、前記
    ページテーブルを書き換える過程と、 (b)前記プログラムを格納する前記外部記憶装置の論
    理ページに対する書き込みを禁止するために、前記アド
    レス変換テーブルに書き込み禁止フラグを設定する過程
    と、 (c)前記ページテーブルを含む実・仮想アドレス変換
    テーブルを参照することによって、前記プログラムを、
    仮想アドレスを用いて前記外部記憶装置から読み出して
    実行する過程とを具備することを特徴とするランダム・
    アクセス可能かつ書換え可能メモリを用いる外部記憶装
    置におけるプログラム直接実行の制御方法。
  2. 【請求項2】 前記ページテーブルの書換は、オペレー
    ティング・システムが管理する前記外部記憶装置上のフ
    ァイル管理領域を参照して行うことを特徴とする請求項
    1に記載の方法。
  3. 【請求項3】 前記過程(a)および(b)は、前記外
    部記憶装置に記憶されたプログラムの実行が指示された
    ことに応答して行うことを特徴とする請求項1に記載の
    方法。
  4. 【請求項4】 前記プログラム実行中に、前記書き込み
    禁止フラグの設定された論理ページに対する書き込みが
    起こったときに、ページ書き込み禁止割り込みを発生す
    る過程を具備することを特徴とする請求項1に記載の方
    法。
  5. 【請求項5】 前記ページ書き込み禁止割り込みが発生
    したときに、書き込みの対象となった論理ページの前記
    CPU実アドレス空間にマップされた領域を前記システ
    ムの主記憶上に複写し、前記書き込み対象ページの代り
    に該主記憶上の複写ページの実アドレスを前記ページテ
    ーブルに登録し、かつ該複写ページを書き込み可とした
    後、前記プログラムの実行を再開する過程を具備するこ
    とを特徴とする請求項4に記載の方法。
  6. 【請求項6】 前記外部記憶装置の論理ページは、誤り
    訂正コードによって保護されており、前記CPUは、前
    記プログラムを実行する前に、該プログラムのコードを
    主記憶上に読み出し、前記誤り訂正コードを用いて誤り
    の無いことを確認することを特徴とする請求項1に記載
    の方法。
  7. 【請求項7】 前記誤り訂正コードを用いた誤り確認に
    おいて、回復可能なエラーが発生した場合は、エラー回
    復後、該エラー発生ページの前記CPU実アドレス空間
    にマップされた領域を前記システムの主記憶上に複写
    し、前記エラー発生ページの代わりに該主記憶上の複写
    ページの実アドレスを前記ページテーブルに登録する過
    程を具備することを特徴とする請求項6に記載の方法。
  8. 【請求項8】 前記ランダム・アクセス可能かつ書換え
    可能メモリは、ユーザに見えるデータを格納する第1の
    領域およびユーザに見えないデータを格納する第2の領
    域を備え、前記第1の領域にのみ前記CPUの実アドレ
    ス空間上の連続アドレスが割り当てられていることを特
    徴とする請求項1に記載の方法。
  9. 【請求項9】 前記ランダム・アクセス可能かつ書換え
    可能メモリは、フラッシュEEPROMである請求項1
    に記載の方法。
  10. 【請求項10】 ページテーブルを含む実・仮想アドレ
    ス変換テーブルを参照してアドレス変換を行う中央処理
    装置(CPU)と、該CPUに接続されたランダム・ア
    クセス可能かつ書換え可能メモリを用いる外部記憶装置
    とを具備し、前記外部記憶装置の入出力装置としてのア
    クセス単位とする論理ページのサイズを、前記CPUの
    管理するページのサイズに適合させ、前記CPUの実ア
    ドレス空間に前記外部記憶装置の論理ページをマップ
    し、その際、該実アドレス空間上で、前記CPUの管理
    するページと前記外部記憶装置の論理ページの境界を整
    合させたコンピュータ・システムにおいて、 (a)前記外部記憶装置に格納されたプログラムのコー
    ドが実行順序に応じて前記CPUの仮想アドレス空間上
    で連続となるように、前記ページテーブルを書き換える
    手段と、 (b)前記ページテーブルを含む実・仮想アドレス変換
    テーブルを参照することによって、前記プログラムを、
    仮想アドレスを用いて前記外部記憶装置から読み出して
    実行する手段とを具備することを特徴とするランダム・
    アクセス可能かつ書換え可能メモリを用いる外部記憶装
    置におけるプログラム直接実行の制御装置。
  11. 【請求項11】 ページテーブルを含む実・仮想アドレ
    ス変換テーブルを参照してアドレス変換を行う中央処理
    装置(CPU)と、該CPUに接続されたランダム・ア
    クセス可能かつ書換え可能メモリを用いる外部記憶装置
    とを具備し、前記外部記憶装置の入出力装置としてのア
    クセス単位とする論理ページのサイズを、前記CPUの
    管理するページのサイズに適合させ、前記CPUの実ア
    ドレス空間に前記外部記憶装置の論理ページをマップ
    し、その際、該実アドレス空間上で、前記CPUの管理
    するページと前記外部記憶装置の論理ページの境界を整
    合させたコンピュータ・システム。
  12. 【請求項12】 ページテーブルを含む実・仮想アドレ
    ス変換テーブルを参照してアドレス変換を行う中央処理
    装置(CPU)と、該CPUに接続されたランダム・ア
    クセス可能かつ書換え可能メモリを用いる外部記憶装置
    とを具備し、前記外部記憶装置の入出力装置としてのア
    クセス単位とする論理ページのサイズを、前記CPUの
    管理するページのサイズに適合させ、前記CPUの実ア
    ドレス空間に前記外部記憶装置の論理ページをマップ
    し、その際、該実アドレス空間上で、前記CPUの管理
    するページと前記外部記憶装置の論理ページの境界を整
    合させたコンピュータ・システムにおいて、 (a)前記外部記憶装置に格納されたプログラムのコー
    ドが実行順序に応じて前記CPUの仮想アドレス空間上
    で連続となるように、前記ページテーブルを書き換える
    手段と、 (b)前記ページテーブルを含む実・仮想アドレス変換
    テーブルを参照することによって、前記プログラムを、
    仮想アドレスを用いて前記外部記憶装置から読み出して
    実行する手段とを具備することを特徴とするコンピュー
    タ・システム。
  13. 【請求項13】 前記コンピュータ・システムは、主記
    憶装置とディスク装置を具備し、前記外部記憶装置は、
    前記主記憶装置とともにメモリ制御部を介して前記CP
    Uに接続されていると同時に、前記ディスク装置ととも
    にディスク制御部を介しても前記CPUに接続されてい
    る請求項12に記載のコンピュータ・システム。
  14. 【請求項14】 前記手段(a)は、前記ディスク制御
    部を介して前記外部記憶装置にアクセスし、前記手段
    (b)は、前記メモリ制御部を介して前記外部記憶装置
    にアクセスする請求項13に記載のコンピュータ・シス
    テム。
  15. 【請求項15】 前記手段(a)は、前記外部記憶装置
    にシーケンシャルにアクセスし、前記手段(b)は、前
    記外部記憶装置にランダムにアクセスする請求項14に
    記載のコンピュータ・システム。
  16. 【請求項16】 複数のワードラインを備えたランダム
    ・アクセス可能メモリにおいて、 前記各ワードラインに設けられた第1の領域であって、
    該ランダム・アクセス可能メモリの接続される中央処理
    装置(CPU)の実アドレス空間上の連続アドレスが割
    り当てられた複数の単位要素を含む第1領域と、 前記各ワードラインに設けられた第2の領域と、 第1のモードで、前記CPUの実アドレスに対応する前
    記第1領域の単位要素にアクセスするランダム・アクセ
    スを実行し、第2のモードで、前記第1領域および第2
    領域の単位要素を連続的にアクセスするシーケンシャル
    ・アクセスを実行するアクセス手段とを具備することを
    特徴とするランダム・アクセス可能メモリ。
  17. 【請求項17】 前記アクセス手段は、外部から供給さ
    れたコマンドに応答して、前記第1および第2のモード
    を切り換えることを特徴とする請求項16に記載のラン
    ダム・アクセス可能メモリ。
  18. 【請求項18】 前記第1領域はユーザに見えるデータ
    を格納し、前記第2領域はユーザに見えないデータを格
    納することを特徴とする請求項17に記載のランダム・
    アクセス可能メモリ。
  19. 【請求項19】 前記ランダム・アクセス可能メモリは
    一括消去可能であり、前記第2領域は、前記第1領域に
    格納されたデータに関するステイタス情報を格納する領
    域と誤り訂正コードを格納する領域を含むことを特徴と
    する請求項18に記載のランダム・アクセス可能メモ
    リ。
  20. 【請求項20】 前記ステイタス情報格納領域は、各ワ
    ードラインの最初にアクセスされる部分に位置すること
    を特徴とする請求項19に記載のランダム・アクセス可
    能メモリ。
  21. 【請求項21】 前記誤り訂正コード格納領域は、各ワ
    ードラインの最後にアクセスされる部分に位置すること
    を特徴とする請求項19に記載のランダム・アクセス可
    能メモリ。
JP25628492A 1992-09-25 1992-09-25 ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置 Expired - Lifetime JPH0778766B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP25628492A JPH0778766B2 (ja) 1992-09-25 1992-09-25 ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置
EP93306877A EP0592098A3 (en) 1992-09-25 1993-08-31 Control method and apparatus for directly executing a program on an external device using a rewritable random access memory.
US08/841,976 US5787493A (en) 1992-09-25 1997-04-08 Control method and apparatus for direct execution of a program on an external apparatus using a randomly accessible and rewritable memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25628492A JPH0778766B2 (ja) 1992-09-25 1992-09-25 ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置

Publications (2)

Publication Number Publication Date
JPH06131266A true JPH06131266A (ja) 1994-05-13
JPH0778766B2 JPH0778766B2 (ja) 1995-08-23

Family

ID=17290515

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25628492A Expired - Lifetime JPH0778766B2 (ja) 1992-09-25 1992-09-25 ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置

Country Status (3)

Country Link
US (1) US5787493A (ja)
EP (1) EP0592098A3 (ja)
JP (1) JPH0778766B2 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187529A (ja) * 1996-10-31 1998-07-21 Internatl Business Mach Corp <Ibm> 動的romデータの書込み時ロードを可能にするためのシステムおよび方法
JP2004334895A (ja) * 1998-02-16 2004-11-25 Sony Computer Entertainment Inc 携帯用電子機器及びエンタテインメントシステム
JP2006294028A (ja) * 2005-04-05 2006-10-26 Internatl Business Mach Corp <Ibm> 直接実行機能を提供するためのシステム、コンピュータシステム、方法およびプログラム
JP2006338370A (ja) * 2005-06-02 2006-12-14 Toshiba Corp メモリシステム
JP2008535131A (ja) * 2005-03-24 2008-08-28 フリースケール セミコンダクター インコーポレイテッド データとして用いることと誤り訂正符号(ecc)として用いることとの間で切り替えられることが可能である部分を有するメモリ
JP2010186477A (ja) * 2009-02-10 2010-08-26 Samsung Electronics Co Ltd メモリシステム及びその磨耗度管理方法
JP2011517789A (ja) * 2005-10-27 2011-06-16 エムジン カンパニー リミテッド 直接実行制御機能とストレージ機能が複合された大容量保存装置
JP2014063358A (ja) * 2012-09-21 2014-04-10 Fixstars Corp 情報処理装置、情報処理方法、およびプログラム
JP2014149758A (ja) * 2013-02-04 2014-08-21 Fixstars Corp 情報処理装置、情報処理方法、およびプログラム
JP2014182449A (ja) * 2013-03-18 2014-09-29 Toshiba Corp メモリコントローラ
WO2014171223A1 (ja) * 2013-04-15 2014-10-23 株式会社フィックスターズ 情報処理装置、情報処理方法、およびプログラム
WO2015033767A1 (ja) * 2013-09-04 2015-03-12 株式会社フィックスターズ ファイル管理装置、プログラム及びファイル管理方法

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR980013092A (ko) 1996-07-29 1998-04-30 김광호 교환시스템의 화일관리장치 및 방법
KR100260028B1 (ko) * 1996-08-13 2000-06-15 윤종용 화일시스템의 정보 복구방법
US6117186A (en) * 1998-01-15 2000-09-12 Dvp Media Pty Ltd. System and method for easy loading of CD-ROM computer software without installation process
US6266739B1 (en) * 1998-02-12 2001-07-24 International Business Machines Corporation Method and apparatus for ultra high-speed formatting of a disk drive volume
US6449607B1 (en) * 1998-09-11 2002-09-10 Hitachi, Ltd. Disk storage with modifiable data management function
US6453398B1 (en) * 1999-04-07 2002-09-17 Mitsubishi Electric Research Laboratories, Inc. Multiple access self-testing memory
AU2001243502A1 (en) * 2000-03-09 2001-09-17 Exent Technologies, Inc. Registry emulation
TW465784U (en) * 2000-04-26 2001-11-21 Accusys Inc Disk array system controller
US7904897B2 (en) * 2002-08-08 2011-03-08 Rudelic John C Executing applications from a semiconductor nonvolatile memory
DE10310290A1 (de) * 2003-03-10 2004-09-23 Robert Bosch Gmbh Rechenvorrichtung
US20050041453A1 (en) * 2003-08-22 2005-02-24 Brazis Paul W. Method and apparatus for reading and writing to solid-state memory
TWI240203B (en) * 2004-02-25 2005-09-21 Via Tech Inc A device which updates firmware by a memory card
US7647358B2 (en) * 2004-03-22 2010-01-12 Microsoft Corporation Computing device with relatively limited storage space and operating/file system thereof
US8069192B2 (en) * 2004-03-22 2011-11-29 Microsoft Corporation Computing device with relatively limited storage space and operating / file system thereof
EP1585028A1 (fr) * 2004-04-07 2005-10-12 Stmicroelectronics SA Procédé et dispositif de calcul d'adresses d'un programme stocké dans une mémoire segmentée
JP2005322109A (ja) * 2004-05-11 2005-11-17 Renesas Technology Corp Icカードモジュール
US20060120235A1 (en) * 2004-12-06 2006-06-08 Teac Aerospace Technologies System and method of erasing non-volatile recording media
DE102004059392B4 (de) * 2004-12-09 2015-09-10 Infineon Technologies Ag Verfahren zur Neubelegung eines Befehlsspeichers, Subsystem zur Durchführung eines derartigen Verfahrens, sowie Mikrokontroller
US7184235B2 (en) * 2005-01-18 2007-02-27 Teac Aerospace Technologies, Inc. Power management in operating recording media
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
CN101256535B (zh) * 2007-03-01 2011-03-09 创惟科技股份有限公司 硬盘资料读写快取装置及方法
KR101303535B1 (ko) * 2009-12-04 2013-09-03 한국전자통신연구원 메인 메모리를 이용한 메모리 디스크 구성 방법 및 장치
KR20120082218A (ko) * 2011-01-13 2012-07-23 (주)인디링스 파티션 정보를 기초로 호스트의 요청에 대한 처리 기법을 적응적으로 결정하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US20140201599A1 (en) * 2013-01-15 2014-07-17 International Business Machines Corporation Error protection for integrated circuits in an insensitive direction
US9201727B2 (en) 2013-01-15 2015-12-01 International Business Machines Corporation Error protection for a data bus
US9021328B2 (en) 2013-01-15 2015-04-28 International Business Machines Corporation Shared error protection for register banks
US9041428B2 (en) 2013-01-15 2015-05-26 International Business Machines Corporation Placement of storage cells on an integrated circuit
US9043683B2 (en) 2013-01-23 2015-05-26 International Business Machines Corporation Error protection for integrated circuits
US10108567B2 (en) * 2016-12-22 2018-10-23 Integrated Device Technology, Inc. Memory channel selection control
TWI703501B (zh) * 2018-08-23 2020-09-01 慧榮科技股份有限公司 具有分散式信箱架構的多處理器系統及其溝通方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63244152A (ja) * 1987-03-30 1988-10-11 Fujitsu Ltd 拡張記憶装置アクセス制御装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4617624A (en) * 1984-04-16 1986-10-14 Goodman James B Multiple configuration memory circuit
JP2513024B2 (ja) * 1989-03-16 1996-07-03 日本電気株式会社 拡張記憶アドレス制御方式
US5088026A (en) * 1990-02-09 1992-02-11 International Business Machines Corporation Method for managing a data cache using virtual external storage addresses as arguments
JP2854680B2 (ja) * 1990-06-15 1999-02-03 株式会社東芝 Icメモリカード
DE9109977U1 (ja) * 1991-08-12 1992-12-24 Intelligent Solution Services Gmbh, 8051 Marzling, De
US5379417A (en) * 1991-11-25 1995-01-03 Tandem Computers Incorporated System and method for ensuring write data integrity in a redundant array data storage system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63244152A (ja) * 1987-03-30 1988-10-11 Fujitsu Ltd 拡張記憶装置アクセス制御装置

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187529A (ja) * 1996-10-31 1998-07-21 Internatl Business Mach Corp <Ibm> 動的romデータの書込み時ロードを可能にするためのシステムおよび方法
JP2004334895A (ja) * 1998-02-16 2004-11-25 Sony Computer Entertainment Inc 携帯用電子機器及びエンタテインメントシステム
JP2008535131A (ja) * 2005-03-24 2008-08-28 フリースケール セミコンダクター インコーポレイテッド データとして用いることと誤り訂正符号(ecc)として用いることとの間で切り替えられることが可能である部分を有するメモリ
JP2006294028A (ja) * 2005-04-05 2006-10-26 Internatl Business Mach Corp <Ibm> 直接実行機能を提供するためのシステム、コンピュータシステム、方法およびプログラム
JP2006338370A (ja) * 2005-06-02 2006-12-14 Toshiba Corp メモリシステム
JP2011517789A (ja) * 2005-10-27 2011-06-16 エムジン カンパニー リミテッド 直接実行制御機能とストレージ機能が複合された大容量保存装置
JP2010186477A (ja) * 2009-02-10 2010-08-26 Samsung Electronics Co Ltd メモリシステム及びその磨耗度管理方法
JP2014063358A (ja) * 2012-09-21 2014-04-10 Fixstars Corp 情報処理装置、情報処理方法、およびプログラム
JP2014149758A (ja) * 2013-02-04 2014-08-21 Fixstars Corp 情報処理装置、情報処理方法、およびプログラム
JP2014182449A (ja) * 2013-03-18 2014-09-29 Toshiba Corp メモリコントローラ
WO2014171223A1 (ja) * 2013-04-15 2014-10-23 株式会社フィックスターズ 情報処理装置、情報処理方法、およびプログラム
WO2015033767A1 (ja) * 2013-09-04 2015-03-12 株式会社フィックスターズ ファイル管理装置、プログラム及びファイル管理方法
JPWO2015033767A1 (ja) * 2013-09-04 2017-03-02 株式会社フィックスターズ ファイル管理装置、プログラム及びファイル管理方法
US9904483B2 (en) 2013-09-04 2018-02-27 Fixstars Corporation File management device, program and file management method

Also Published As

Publication number Publication date
US5787493A (en) 1998-07-28
EP0592098A2 (en) 1994-04-13
JPH0778766B2 (ja) 1995-08-23
EP0592098A3 (en) 1995-02-01

Similar Documents

Publication Publication Date Title
JPH06131266A (ja) ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置
JP3197815B2 (ja) 半導体メモリ装置及びその制御方法
US5371876A (en) Computer system with a paged non-volatile memory
JP2856621B2 (ja) 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
JP2582487B2 (ja) 半導体メモリを用いた外部記憶システム及びその制御方法
US5829013A (en) Memory manager to allow non-volatile memory to be used to supplement main memory
KR100448905B1 (ko) 낸드플래쉬메모리를 시스템구동 및 저장용으로 사용하는장치
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
JP3574078B2 (ja) 記憶装置と記憶装置制御方法
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
EP1804156A2 (en) Unified memory and controller
US20060064538A1 (en) Memory controller, memory device and control method for the memory controller
JP2007183961A (ja) ハードディスクドライブキャッシュメモリ及び再生デバイス
KR20040082921A (ko) 플래쉬 파일 시스템
JPWO2002052416A1 (ja) フラッシュメモリシステム
JPH10124381A (ja) 半導体記憶装置
JPH06175829A (ja) コンピュータ・システムを動作させる方法
US7136986B2 (en) Apparatus and method for controlling flash memories
JP2006350430A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2008108257A (ja) 不揮発性記憶装置
JP2011039585A (ja) 不揮発性ランダムアクセスメモリおよび不揮発性メモリシステム
JP2003076605A (ja) ブロック消去型不揮発メモリを搭載した半導体記憶装置とそのデータの書込み・読出し方法
US6738887B2 (en) Method and system for concurrent updating of a microcontroller&#39;s program memory
JPH07153284A (ja) 不揮発性半導体記憶装置及びその制御方法
US6542955B1 (en) Microcontroller virtual memory system and method