[go: up one dir, main page]

JPH06202942A - フラッシュメモリ回路と操作方法 - Google Patents

フラッシュメモリ回路と操作方法

Info

Publication number
JPH06202942A
JPH06202942A JP4349672A JP34967292A JPH06202942A JP H06202942 A JPH06202942 A JP H06202942A JP 4349672 A JP4349672 A JP 4349672A JP 34967292 A JP34967292 A JP 34967292A JP H06202942 A JPH06202942 A JP H06202942A
Authority
JP
Japan
Prior art keywords
memory
data
address
bank
flash 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
JP4349672A
Other languages
English (en)
Inventor
Kenneth R Cowles
アール.カウルズ ケネス
Mark J Duewiger
ジェイ.デューウィガー マーク
Alex D Green
ディー.グリーン アレックス
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.)
Allen Bradley Co LLC
Original Assignee
Allen Bradley Co LLC
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 Allen Bradley Co LLC filed Critical Allen Bradley Co LLC
Publication of JPH06202942A publication Critical patent/JPH06202942A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1018Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters
    • G11C7/1027Static column decode serial bit line access mode, i.e. using an enabled row address stroke pulse with its associated word line address and a sequence of enabled bit line addresses
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1045Read-write mode select circuits

Landscapes

  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【目的】 フラッシュメモリの消去や再プログラミング
を並列に行うと寿命が短くなるので、操作回数を減ら
し、かつ操作時間のかからない回路と操作方法を開示す
る。 【構成】 データを記憶するメモリ回路(55)が、2
個の並列のメモリ装置(73−80)を含むメモリバン
ク(71,72)を備える。第1モードではアクセス要
求とアドレス信号を受けると、制御機構(88)がアド
レスを発生してメモリバンク(71,72)から交互に
データを読み出す。第2モードではアクセス要求と共に
送られるアドレスを持つメモリバンク(71,72)に
アクセスする。メモリ装置の消去とプログラムは並列に
行う。ある記憶場所のビットが消去されていないことが
分かると、関連したメモリ装置にだけ次の消去コマンド
を送る。同様にデータ語を正しく記憶しなかったとき
は、関連するメモリ装置だけを書き込み状態にして再び
プログラミングを行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデジタルデータを記憶す
るための固体メモリ装置、より詳しくは一般にフラッシ
ュメモリと呼ぶ一種のメモリ装置に関する。
【0002】
【従来の技術】フラッシュメモリは、消去可能なプログ
ラマブルリードオンリーメモリ(EPROM)および電
気的に消去可能なプログラマブルリードオンリーメモリ
(EEPROM)技術に基づく不揮発性記憶装置であ
る。この種の装置は設備中でプログラムすることがで
き、プログラミング電圧や消去電圧を与えまた消去手順
を行うことによって、装置内の全てのビットを高論理レ
ベルにセットするのに用いられる。
【0003】これから述べるのは、新しいデータで装置
をプログラムするのに用いる新しい手順である。今日、
EPROM、EEPOM、電池でバックアップするスタ
テイックRAMおよびデイスクメモリなどが用いられて
いる多くの応用に、フラッシュ型の装置が用いられると
予測される。
【0004】標準メモリは一般に交互配置の装置のバン
クを形成して、性能を改善しアクセス時間を短くする。
本発明の技術では、同型のメモリ装置の2個以上のバン
クを、それぞれからのデータ要求が重なるように配列す
る。すなわち1個のバンクがデータを送っている間に、
他のバンクは次の一連のデータを送る準備をする。この
ようにして、遅くて安いが、高い機能を持つメモリ装置
を使用することができる。
【0005】フラッシュ型メモリの1つの欠点として、
現在利用できる装置は、プログラムする前に完全に消去
しなければならないことである。この種の装置を設備の
中で再プログラミングするときは、再プログラミングの
ために取り外すのではなくて、再プログラミングのソフ
トウエアルーチンを設備中の別の場所に記憶しなければ
ならない。このため一般には、再プログラミングルーチ
ン用として不揮発性メモリや別のリードオンリーメモリ
などの追加のメモリ装置を用意する。
【0006】別の種類のフラッシュメモリ装置も提案さ
れているが、まだ市販されていない。これは一般にセク
ター別消去フラッシュメモリと呼ばれる。このフラッシ
ュメモリは決して消去できない一群の記憶場所を回路中
に備え、この中に初期化ルーチンや再プログラミングル
ーチンが入る。
【0007】この保護されたセクターを持てば現在のフ
ラッシュメモリに関する問題は解決されるが、保護され
たルーチンを変更する場合には、恐らく新しい装置を設
けなければならない。またこのメモリは固定した大きさ
のセクターに分割されるので、各ユーザの必要に応じた
最適の大きさにはならない場合があることも問題であ
る。
【0008】
【発明が解決しようとする課題】従って望ましいフラッ
シュメモリは、初期化ルーチンおよび再プログラミング
ルーチンを記憶することができるものであって、装置の
別の部分を再プログラミングできるだけでなく、必要で
あれば初期化ルーチンおよび再プログラミングルーチン
を変更できるものである。
【0009】更に現在利用可能なフラッシュメモリ装置
は8ビットなので、多くのマイクロプロセッサが必要と
する16ビットや32ビットのデータ語を記憶するため
には、装置を何個か並列に接続しなければならない。こ
のように並列に接続することはよく知られており、各種
の他の型の8ビットメモリ装置で用いられてきた。
【0010】従来の並列構成では、並列のメモリバンク
にある装置をすべて消去し再プログラミングするのが普
通であった。すなわち所定のアドレスを並列接続の全て
の装置に与え、各装置の対応する記憶場所を同時に消去
する。
【0011】その後でその記憶場所をテストして、正し
く消去されたことを確認する。もし並列接続のメモリ装
置の中の1個で記憶場所が消去されていなければ、全て
の並列接続の装置を再び消去する工程を繰り返す。
【0012】この方法は他の型のメモリでは問題ない
が、フラッシュ型メモリの1つの欠点は、ある記憶場所
に行ってよい消去サイクルの回数が限られていることで
ある。
【0013】従って正しく消去されなかった装置が1個
しかないときに、そのバンク内の全ての装置に重ねて消
去サイクルを行うと、他の装置に不必要な消去サイクル
を行って完全に損傷させる場合もある。
【0014】従ってフラッシュ型メモリに用いられる普
通の方法は、バンク内の各装置を別個に消去して、各装
置が実際に必要とする消去サイクル回数だけをその装置
に与えることである。個々の装置を消去すればそれぞれ
の装置に不必要な消去サイクルを行う問題はなくなる
が、非常に時間がかかる。
【0015】従ってフラッシュメモリを含む回路の設計
者は、並列消去によって装置を消去し過ぎることと、個
々に消去して時間をかけ過ぎることとの取捨選択に直面
する。
【0016】
【課題を解決するための手段】メモリ中の別の記憶場所
にデジタルデータ語を記憶するメモリ回路をここに提供
する。第1手段は記憶場所アドレスを受け、第2手段は
メモリ回路へのアクセスを要求する制御信号を受ける。
このメモリは第1メモリバンクと第2メモリバンクを備
え、それぞれ一連の記憶場所を持ち、データを交換する
手段に結合される。
【0017】望ましい実施態様では、各メモリバンクは
複数の並列接続の集積回路メモリ装置で形成され、各装
置はデジタルデータ語の異なるビット群を記憶する。ア
ドレスバスが第1および第2メモリバンクに接続され、
アクセスする記憶場所を示すアドレス信号を伝える。
【0018】動作モードは2種類あり、制御機構がメモ
リ回路を一方の動作モードにする。第1モードでは、こ
の制御機構は最初のアクセス要求とアドレス信号に応答
して、一方のメモリバンク内の記憶場所からデータを読
み出す。その後次の隣接する記憶場所へアクセス要求を
行うときには、要求と共にアドレスを送る必要がない。
【0019】制御機構はその後の要求に応答してアドレ
スを発生し、第1および第2メモリバンクの記憶場所か
らデータを交互に読み出す。しかし次の隣接する記憶場
所以外へのアクセス要求の場合は、要求と共にアドレス
を送る必要がある。
【0020】第2の操作モードでは、第1モードと同様
に制御機構はメモリ回路への各アクセス要求に応答する
が、2個のメモリバンクの内、要求と共に送られる制御
信号が決定する方だけを動作可能にする。この方法は、
余分な外部メモリを必要とせずに他のメモリバンクを完
全に消去し再プログラミングすることのできる独特の手
段である。
【0021】また、メモリ回路を消去しプログラミング
する新しい方法も開示する。メモリは消去命令によって
消去するが、この命令はバンク中の各メモリ装置の全て
の記憶場所を消去する。次に各記憶場所の内容を順次読
み込んで、各場所の全てのビットが消去されたかどうか
を確認する。
【0022】所定の記憶場所に消去されていないビット
があることが分かると、ビットが消去されていないメモ
リ装置にだけ重ねて消去命令を送る。次にその記憶場所
の内容を再び読み出して、今度は全てのビットが消去さ
れているかどうか確認する。
【0023】メモリ回路が完全に消去されていることを
確認すると、再プログラミングを始めることができる。
全てのメモリ装置を同時に書き込み状態にして、所定の
記憶場所のアドレスとデータ語をメモリ装置に送る。次
にその記憶場所の内容を読み出す。
【0024】その記憶場所から読み出した内容と送った
データ語とを比較して、データ語を正しく記憶したかど
うか確認する。比較した結果データ語を正しく記憶して
いなければ、データ語のビットを正しく記憶しなかった
メモリ装置だけを書き込み状態にして、データ語を再び
そのメモリ回路に送る。
【0025】一般にその記憶場所を再びチェックして、
今度はデータを正しく記憶したかどうか確認する。もし
正しく記憶されていれば、他の記憶場所に移ってデータ
を記憶する手順を繰り返す。
【0026】この消去および再プログラミングの方法に
より、各記憶場所を正しく消去し再プログラミングした
ことを確認する。メモリバンク内のある特定のメモリ装
置が消去または再プログラミングされていなければ、そ
の装置だけを消去しまたは再プログラミングする。
【0027】この方法により、正しく作動したメモリ装
置に不必要な消去およびプログラミング操作をせずにす
み、またメモリ装置のプログラミング、消去、確認を並
列に行うことによって、システムの機能が向上する。
【0028】
【実施例】図1において本発明のプログラマブルコント
ローラ10はラック12に納められ、ラック12は複数
のプリント回路板モジュールを入れる一連のスロットを
含む。これらの機能モジュールは、ラック12の背面に
沿って伸びるマザーボードに接続して、バックプレーン
11を形成する。
【0029】バックプレーン11は、バックプレーンの
伝導パターンによって相互に接続される複数のモジュー
ルコネクタを備える。バックプレーン11はモジュール
を接続する一連の信号パスを備える。ラック12は電源
モジュール14、システムコントローラ16、多数のプ
ログラム実行プロセッサモジュール18、複数のリモー
ト入出力(I/O)スキャナモジュール20を含む。た
だしスキャナモジュールは1個だけでよい。
【0030】ラック12の残りの場所は空いていて、追
加の機能モジュールをスロットに挿入するまでは、スロ
ットは空のプレートで覆われている。
【0031】リモートI/Oスキャナモジュール20は
4個以内で、コントローラ10と外部のリモートI/O
ラック17とを、直列のI/Oデータリンク15を通し
てインターフェースする。各リモートI/Oラック17
は、制御対象設備の各センサおよび作動器に結合される
複数のローカルI/Oモジュール19を備える。
【0032】ローカルI/Oモジュール19には多くの
形式があり、例えばDC入出力、AC入出力、アナログ
入出力、開ループまたは閉ループ位置決めモジュールを
備えてよい。I/Oラック17とネットワーク15は、
従来のインターフェースおよび通信技術を用いる。
【0033】またリモートI/Oラック17はアダプタ
モジュール26を含む。これは例えば、アメリカ特許番
号4,413,319に記述されているように、I/O
ネットワーク15を通してI/Oモジュール19とスキ
ャナモジュール20との間のデータ伝送を制御する。
【0034】システムコントローラ16はケーブル25
を通してプログラミングターミナル24に接続される。
これはユーザのプログラムをプログラマブルコントロー
ラにロードして操作し、またシステムの機能を監視する
のに用いる。ターミナル24はパーソナルコンピュータ
で、ユーザがこのターミナルで制御プログラムを開発し
て、プログラマブルコントローラにロードすることがで
きるようにプログラムされている。
【0035】プログラムをプログラマブルコントローラ
にロードして働作をデバッグした後は、操作の監視が必
要でなければターミナル24をシステムコントローラ1
6から切り離してよい。
【0036】またシステムコントローラ16は、ローカ
ルエリアネットワーク(LAN)28に接続してよく、
LANを通してホストコンピュータからデータやプログ
ラム命令を受け、また状態の情報や報告データを送る。
これによりホストコンピュータまたは中央のターミナル
は、工場の現場にある複数のプログラマブルコントロー
ラの動作をプログラムし制御することができる。
【0037】図2に概略を示すシステムコントローラ回
路はバックプレーンバス21−23に接続し、3つの部
30、31、32(破線で示す)に分割され、バックプ
レーンのインターフェース、処理、通信の機能を持つ。
バックプレーンインターフェース部30は全てのラック
モジュールからラックバックプレーン11へのアクセス
を管理し、システムコントローラモジュール16をバッ
クプレーンに接続する。
【0038】プロセッサ部31はコントローラ10の監
視プログラムを実行し、通信部32は外部ターミナル2
4やLAN28のようなローカルエリアネットワークと
の通信を主業務とする。プロセッサ部31と通信部32
は共に、それぞれ1組の内部バス62−64と33−3
5を備える。
【0039】通信部バスは、通信部中の要素間を走る多
数の個々の制御線を備える制御バス33、並列のデータ
バス34、並列のアドレスバス35から成る。通信部3
2は第1マイクロプロセッサ36を中心に組み立てら
れ、マイクロプロセッサ36はリードオンリーメモリ
(ROM)38に記憶されている機械語命令を実行す
る。
【0040】命令はROMから取り出されてデコードさ
れ、マイクロプロセッサ36はこれを実行して通信機能
を行う。これらの機能を制御するプログラムは、前述の
プログラマブルコントローラで用いるものと同様であ
る。
【0041】従来型のアドレスデコード回路37が第1
プロセッサ36から送られる各アドレスを受けてデコー
ドし、相応する信号を生成して制御バス33に出す。例
えば第1マイクロプロセッサ36がROM38にアクセ
スすると、アドレスデコード回路37は、マイクロプロ
ッサがバス35に送るアドレスがROMのアドレスの範
囲内にあることを確認する。
【0042】通信部中のどの装置にアクセスするかが分
かると、アドレスデコード回路37はその装置のための
制御信号を生成してアクセスする。
【0043】2個の直列入出力装置UART43と直列
入出力コントローラ(SIO)44も、3本の通信部バ
ス33−35に接続される。UART43は、市販の一
般的な非同期送受信器集積回路のどれでよい。
【0044】UART43は通信部データバス34にあ
る並列データを正しくフォーマットされた直列信合に変
換し、入出力ラインドライバ45に送る。ラインドライ
バ45は、RS232、RS423、RS422などの
直列信号標準のどれかに対応する出力信号を出す。
【0045】直列I/O(SIO)通信コントローラ4
4は2本の同期直列通信チヤンネルを扱う標準集積回路
のどれでもよい。
【0046】SIO44はシステムコントローラ16の
通信部と、ラインドライバ46および47に接続される
ローカルエリアネットワーク、例えば図1のネットワー
ク28、とをインターフェースする。図1に示すプログ
ラミングターミナル24は合ラインドライバ46か47
の一方に接続する。
【0047】また通信部32内にはランダムアクセスメ
モリ(RAM)39もあり、システムコントローラ16
に接続される各種の外部装置と受け渡しするデータを一
時的に記憶する。
【0048】RAM39はアドレスバス35を通してア
クセスしてよく、制御バス33からの使用可能信号に従
ってバス34を通してデータをメモリに読み書きしてよ
い。直接メモリアクセス(DMA)回路41は、通信中
にSIO44とRAM39の間で高速のデータ交換を可
能にするために設けられる。
【0049】DMA回路41により、SIO44はRA
M39にアクセスして、各外部通信チヤンネルを通して
送受信するデータを記憶または取得することができる。
【0050】調停回路40は通信バス33−35へのア
クセスを制御し、これらのバスに複数の装置からアクセ
スの要求が同時に入ったときに調整する。調停回路40
は、通信部のどの要素が共有バス33−35にアクセス
するかを決める。
【0051】バスを要求する装置が制御バス33を通し
て要求信号を調停回路40に送ると、調停回路は一度に
1装置にだけ要求を認め、その装置用の制御線にアクセ
ス信号を出す。
【0052】カウンタ/タイマ回路(CTC)42は通
信バス33−35と第1マイクロプロセッサ36の割り
込み端子とに接続し、通信部内の他の要素からの割り込
み要求を処理する。
【0053】CTC42はタイマでもあり、所定の間
隔、例えば10ミリ秒毎に第1マイクロプロセッサ36
に割り込み要求を出し、実行中のタスクにかかわらず各
種のルーチンを定期的に実行させる。
【0054】この割り込み要求に応答して、第1マイク
ロプロセッサ36はCTC42からベクトルを読み出
し、ROM38に記憶されている該当する割り込みルー
チン、例えばUART43やSIO44からのデータ要
求を処理するルーチンに向かう。
【0055】更に図2においてプロセッサ部31は、制
御バス62、32ビットのデータバス63、並列のアド
レスバス64を含む一組のバスに連結する。バス62−
64へのアクセスは、通信バスの回路40と同様な調停
回路53で制御される。
【0056】2組の信号ゲート50と51が、通信部バ
ス34、35とシステムコントローラモジュール6のプ
ロセッサ部バス63、64の間に設けられる。詳しくい
うと、第1組のゲート50は、通信部データバス34と
プロセッサ部31のデータバス63を双方向に接続す
る。また第2組のゲート51は2本のアドレスバス35
と64を接続する。
【0057】バス間制御回路52がプロセッサ部31と
通信部32の制御バス62と33にそれぞれ接続され、
データゲート50とアドレスゲート51を動作可能にし
て、調停回路40と53からのアクセス要求信号に応答
する。
【0058】プロセッサ部31は32ビット第2マイク
ロプロセッサ54、例えばアドバンスト・マイクロ・デ
バイセス社製のモデル29000などを中心に構成され
る。第2プロセッサ54は、プログラマブルリードオン
リーメモリ(PROM)55に記憶されているプログラ
ム命令を実行する。
【0059】命令は別の命令バス61を通してPROM
55から読み出す。また以下に述べるように、データバ
ス63をPROMに接続して命令を記憶する。
【0060】PROM55はフラッシュ型メモリで、各
記憶場所は32ビットである。本発明は以下に述べるフ
ラッシュメモリ55の構成と動作の詳細に関する。
【0061】第2マイクロプロセッサ54は実質はメモ
リマップ装置で、入出力線は直接には接続されない。従
ってプロセッサバス上の他の要素へのアクセスは、バス
64にアドレスを出すことによって行う。
【0062】第2マイクロプロセッサ54から送られる
アドレスはアドレスデコード回路57でデコードされ、
アクセスする要素への制御信号を生成する。プロセッサ
部アドレスデコーダ57の機能は、通信部アドレスデコ
ード回路37と殆ど同様である。またプロセッサ部31
は、第2マイクロプロセッサ54への割り込みを制御す
る割り込みプロセッサ58を含む。
【0063】データ伝送応答およびバスエラー(DTA
CK/BERR)回路59もプロセッサ部制御バス62
に接続される。回路59はプロセッサ部31内の各要素
からの信号に応答してデータ伝送の完了の応答を出し、
また不適当なアドレシングやデータ伝送失敗が起こった
場合はバスエラー信号を出す。
【0064】これらの信号は、第2プロセッサ54が取
り上げて処置する。またプロセッサ部31は、主システ
ムクロックおよび実時間クロックを含むクロック回路6
0を含む。
【0065】システムコントローラ16の主RAM56
もプロセッサ部バス62−64に接続される。RAM5
6はメモリ場所を含む32ビットのメモリで、コントロ
ーラ10全体のシステムメモリの役目をする。
【0066】システムRAM56は、システムコントロ
ーラ内の第2マイクロプロセッサ54が介入することな
く、システム内の他のモジュールからバックプレーン1
1を通して直接アクセスすることができる。主RAM5
6は、ターミナル24を通してユーザから与えられる構
成データや、数個の機能モジュールが共用する他のデー
タを記憶する。
【0067】更に図2において、システムコントローラ
16のプロセッサ部31は、両バス群に結合する複数の
要素を通して、バックプレーン11のバス21−23と
インターフェースする。
【0068】詳しくいうと、バックプレーンデータバス
22は1組の双方向データ伝送ゲート66によってプロ
セッサ部データバス63に接続し、バックプレーンアド
レスバス23は別の1組の双方向ゲート65によってプ
ロセッサ部アドレスバス64に接続する。
【0069】システムコントローラ16がバックプレー
ン11を制御しようとするときは、マスターモード制御
回路67がプロセッサ部バス62の制御線の信号に応答
してバックプレーン制御バス21に必要な制御信号を出
し、ラック12内の他のモジュールにアクセスする。
【0070】ラック12内の他のモジュールがシステム
コントローラ16にアクセスして、例えば主RAM56
の内容を読み出そうとするときは、システムコントロー
ラはこのモジュールによるバックプレーン11の制御に
従う。
【0071】この場合システムコントローラ16内のス
レーブモード制御回路68が、バックプレーンアドレス
バス23および他のモジュールから来るバックプレーン
バス21の制御線を通して送られる信号に応答する。
【0072】スレーブモード制御回路68は伝送ゲート
65と66に信号を出して、他のバックプレーンモジュ
ールがシステムコントローラ16にアクセスできるよう
にする。この場合は、マスターモード制御回路67は休
止状態にある。
【0073】2個のバスゲート65と66は、バックプ
レーン通信のモードに従って、制御バス62の各線を通
してマスター制御回路67とスレーブ制御回路68から
使用可能制御信号を受ける。バックプレーン調停回路6
9はバックプレーン11へのアクセスを管理し、またシ
ステム中の各モジュールから来るアクセス要求を調整す
る。
【0074】プロセッサ部31のプログラマブルリード
オンリーメモリはフラッシュ型メモリ55で、例えばア
ドバンスト・マイクロ・デバイセス社が(1989年に
発行した、「フラッシュメモリ製品データブック」に記
述されている。この装置は、第2マイクロプロセッサ5
4が実行するバーストアドレシングモードで動作するよ
うに構成されている。
【0075】このアドレシングモードでは、第27イク
ロプロセッサ54はアクセスしようとするメモリ部の最
初のアドレスを送る。例えばこのアドレスは、メモリか
ら連続して読み出してマイクロプロセッサに与える一連
のプログラム命令の、最初の命令の記憶場所である。
【0076】フラッシュメモリ55が最初のアドレスを
受けた後、続いて各読み出し/書き込みサイクルの制御
信号を受けると、メモリアドレスジェネレータは次に続
く記憶場所に段階を増分する。
【0077】第2マイクロプロセッサ54が連続しない
アドレスにアクセスしようとするとき、例えば制御プロ
グラム中にジャンプ命令が来て次の命令が前の命令に隣
接していない場合には、第2マイクロプロセッサは新し
いアドレスをフラッシュメモリ55に送る。
【0078】またフラッシュメモリ55は、第2マイク
ロプロセッサ54のシーケンシャルアドレシングモード
にも適応する。このモードでは、ある記憶場所へのアク
セス要求は全てアドレスを伴って行う。マイクロプロセ
ッサ54から受ける制御信号は、その時刻に用いられて
いるアドレシングモードを指定する。
【0079】図3において、フラッシュメモリ55は破
線で示す2個のバンク71と72を備え、各バンクはそ
れぞれ4個のフラッシュメモリ装置73−76と77−
80を持つ。例えばフラッシュメモリ装置はアドバンス
ト・マイクロ・デバイセス製のモデル28F010装置
である。
【0080】各メモリ装置は8ビットで、4個が共通の
バンクアドレスバス81と内部バンク内部データバス8
2または83に並列に接続される。データバス82と8
3の個々のビット線が各メモリ装置73−76と77−
80に接続する。従って所定のバンクにある4個のメモ
リ装置の組合せにより、各バンク内の個々のアドレス可
能な各記憶場所に32ビットのデータ語が含まれる。
【0081】第2マイクロプロセッサ54は、データを
フラッシュメモリ55に記憶させる場合に32ビット語
ではなくバイトのデータでアドレスを出す。従ってプロ
セッサ部バス64のアドレスを4で割って、所望のバイ
トを含むメモリの語のアドレスを生成する。
【0082】このアドレスをここでは「語アドレス」と
呼び、バンクアドレスバス81に与える。各バンクの装
置の数を多くするか少なくするかにより、または8ビッ
ト以上の装置を使用することにより、各記憶場所には別
の大きさのデータ語を記憶することができる。
【0083】バンクアドレスバス81は、第1および第
27ラッシュメモリバンク71と72に対してそれぞれ
別個の8ビットの下位バス81L’と81L”に分割さ
れる。下位バス81L’と81L”は8ビットの最下位
アドレスビットを伝える。残りの上位のアドレスビット
は、両メモリバンク71と72に接続される共通上位ア
ドレスバス81Hが伝える。
【0084】交互配置のバンクアクセスモードで動作し
ているときにフラッシュメモリ55に一群のアドレスを
割り当てるには、第1メモリバンク71の記憶場所に奇
数の語アドレスを割り当て、第2メモリバンク72には
偶数の語アドレスを割り当てる。バス64のアドレスの
ビットA2(語アドレスの最下位ビット)は、どのメモ
リバンクが所望の記録場所を持つかを示す。
【0085】以下に述べるように、内部的には両メモリ
バンクはそれぞれ同じアドレスに記憶場所を含み、メモ
リ制御88は語アドレスの最下位ビットに基づいて、両
フラッシュメモリバンク71と72のどちらにアクセス
するかを決める。
【0086】図4Aと図4Bに示すように、第1メモリ
バンク71と第2メモリバンク72は共に、記憶部94
と95および96と97にそれぞれ2分割される。各フ
ラッシュメモリバンクの一方の記憶部95と97は、フ
ラッシュメモリ55を消去しまたプログラミングするた
めのプログラム命令の複写を含む。
【0087】これらの機能をプログラミングするルーチ
ンについては後で詳細に述べる。他方の部分94と96
は、他のプログラムの記憶と第2マイクロプロセッサ5
4の実行に用いられる。
【0088】プロセッサ部アドレスバス64は並列のマ
ルチプレクサ84に接続され、マルチプレクサ84は制
御バス62の信号に応答して、メモリアドレスバス87
かシフトしたメモリアドレスバス85を通してプロセッ
サ部アドレスバス64をバンクアドレスジェネレータ8
6に結合する。
【0089】マルチプレクサは、入力バス64をメモリ
アドレスバス87に結合すると、最下位の2ビットA0
とA1を落として、つまりアドレスを4で割って、語ア
ドレスを発生する。この結合はシーケンシヤルアクセス
モードで用いられる。
【0090】交互配置のバンクアクセスモードでは、マ
ルチプレクサはビットA0とA1を落とし、残りのビッ
トを1桁シフトして、第2マイクロプロセッサ54から
のアドレスを8で割る。これにより、シフトしたメモリ
アドレスバス85に与えられたアドレスからビットA2
を落とす。
【0091】マルチプレクサ84からの2本のバス85
と87は、バンクアドレスジェネレータ86に入力とし
て与えられ、得られたアドレスを開始アドレスとして用
い、バーストモードアドレッシング中に第1および/ま
たは第2メモリバンク71、72内の一連の隣接する記
憶場所にアドレスする。フラッシュメモリ制御回路88
によって使用可能になると、アドレスジェネレータ86
はアドレスをバンクアドレスバス81に与える。
【0092】プロセッサ部アドレスバス64からのアド
レス線A2はフラッシュメモリ制御88に入り、このア
ドレスビットを用いて2個のフラッシュメモリバンク7
1と72の一方を選択して、交互配置のモードでアクセ
スする。
【0093】またプロセッサ部制御バス62の選択され
た線はフラッシュメモリ制御88に接続され、バンクア
ドレスジェネレータ86と第1および第2フラッシュメ
モリバンク71と72を制御する信号を生成する。
【0094】またフラッシュメモリ制御88は2組の双
方向データバッファ90と91の一方を選択的に使用可
能にして、バンクデータバス82と83をプロセッサ部
データバス63にそれぞれ結合する。フラッシュメモリ
制御88がバッファ92と93をそれぞれ選択的に可能
にすると、バンクデータバス82と83を命令バス61
に結合することができる。
【0095】プロセッサ部データバス63の各線は制御
レジスタ89の入力に接続され、制御バス62の信号に
よって使用可能になると、制御レジスタ89はこれらの
線で送られたデータを記憶する。
【0096】以下に説明するように、制御レジスタ89
に記憶されている1データビットは、フラッシュメモリ
55が交互配置のバンクアクセスモードで動作するか、
単一バンクアクセスモードで動作するか、また後者のモ
ードではどのバンクをアクセスするか、を決定する。
【0097】前者のアクセスモードでは、第1バンク7
1にある記憶場所に奇数番号アドレスを割り当て、第2
バンク72に偶数番号アドレスを割り当てる。単一バン
クアクセスモードでは、メモリバンク71と72の一方
だけにアクセスする。どちらのアクセスモードでも、第
2マイクロプロセッサ54はバーストまたはシーケンシ
ヤルアドレスモードで動作することができる。
【0098】制御レジスタの他のビットは、個々にメモ
リバンク71と72を選んて消去またはプログラミング
する。制御レジスタ890出力は、バンクマルチプレク
サ84とフラッシュメモリ制御88に結合される。
【0099】フラッシュメモリ55は、メモリバンク7
1と72のどちらかの記憶場所だけに順次アクセスする
か、または交互配置の方式で両メモリバンクにアクセス
するように構成することができる。
【0100】交互配置のアクセスモードでは、バンク7
1と72は共に第2マイクロプロセッサ54からのアク
セス信号と制御信号によって同時に動作するが、バッフ
ァ90−93によって一度に一方のバンクだけが命令バ
ス61とデータバス63に接続される。
【0101】交互配置のアクセスモードでフラッシュメ
モリからプログラム命令を得る場合、命令は両バンク7
1と72から交互に読み出される。
【0102】プログラム命令をメモリバンク71と72
内の主記憶部94と96から読み出して実行するとき
は、制御レジスタ89内の1ビットがフラッシュメモリ
55をバンク交互配置アクセスモードにする。このデー
タは第2マイクロプロセッサから送られて制御レジスタ
89に記憶される。
【0103】このモードでは、奇数番号のアドレスを第
1バンク71に割り当て、偶数アドレスを第2バンク7
2に割り当てるので、命令を各フラッシュメモリバンク
から交互に読み出す。
【0104】更に第2プロセッサ54は一般に、バース
トアドレシングを用いてフラッシュメモリから実行する
命令を得る。バーストモードアドレシングの使用は、制
御バス62の信号によって指示される。
【0105】メモリアクセス操作は、一連の命令の最初
の命令を記憶するアドレスを第2マイクロプロセッサ5
4が発生することから始まる。このアドレスは偶数か奇
数で、プロセッサ部31のアドレスバス64を通してフ
ラッシュメモリ55に送られる。
【0106】同時にアドレスデコーダ回路57はこのア
ドレスをデコードして一連の制御信号を生成し、フラッ
シュメモリ55の必要な読み出しまたは書き込み動作を
可能にする。
【0107】フラッシュメモリ制御88は、アドレスデ
コーダ57および第2マイクロプロセッサ54から制御
バス62を通して送られる従来の制御信号を受ける。こ
れらの制御信号は読み出し動作が起こっていることを示
し、フラッシュメモリ制御88をシステムコントローラ
16の他の要素に同期させる。
【0108】フラッシュメモリ制御88はアドレスバス
64のビットA2に応答して、必要なフラッシュメモリ
バンク71または72を使用可能にする。詳しくいう
と、フラッシュメモリ制御によって、ビットA2が低論
理レベルのときは第1バンク71にアクセスし、ビット
A2が高論理レベルのときは第2バンク72にアクセス
する。
【0109】第2マイクロプロセッサ54からのアドレ
スはフラッシュメモリバンクマルチプレクサ84が受け
て、シフトしたメモリアドレスバス85を通してバンク
アドレスジェネータ86に、交互配置のアクセスモード
で送る。マルチプレクサは語アドレスを1ビット右にシ
フトし、語アドレスの最下位ビット(A2)を落とす。
【0110】この操作の結果をバンクアドレスジェネレ
ータ86に送り、ここでフラッシュメモリバンク71と
72にアクセスする第1アドレスとして用いる。この最
初のアドレスの最上位ビットは、バンクアドレスジェネ
レータから直接上位バンクアドレスバス81Hに与え、
最下位8ビットは下位アドレスバス81L’と81L”
に与える。
【0111】読み出される第1命令が第1メモリバンク
71に記憶されていると仮定する。フラッシュメモリ制
御88によってメモリ装置73−76と命令バスバッフ
ァ92が使用可能になり、第1フラッシュメモリバンク
71はプロセッサ部31内の命令バス61に接続され
る。
【0112】また第1メモリバンク71は、フラッシュ
メモリ制御88から他の制御信号を受ける。メモリ装置
はこれに応答して、アドレスされた場所の内容を第1バ
ンクデータバス82に与える。
【0113】命令をバス61に与えると、従来のデータ
伝送応答信号がフラッシュメモリ制御回路88から制御
バス62に与えられる。アクセスが完了すると、フラッ
シュメモリ制御88は制御バス62の信号に応答して、
命令バッファ92を使用不可能にする。
【0114】第1メモリバンク71にアクセスしている
間に、フラッシュメモリ制御88は制御信号を第2メモ
リバンク72に与えて、バンクアドレスバス81を通し
て送る同じアドレスの記憶場所にアクセスする。これに
より、この記憶場所の内容を第2バンクデータバス83
に与える。
【0115】しかし第2メモリバンク72に関連するバ
スバッファ91と93はこのとき使用可能になっていな
いので、第2バンクデータバス83はプロセッサ部バス
61と63には結合されない。
【0116】連続したプログラム命令がメモリバンク7
1と72から交互に読み出される。この例では、第2プ
ログラム命令はフラッシュメモリ55の第2バンク72
から読み出される。
【0117】第2マイクロプロセッサ54が次の読み出
し要求を制御バス62に発生させると、フラッシュメモ
リ制御88はこれに応答して、第2メモリバンク72に
関連する命令バスバッファ93を使用可能にする。
【0118】第1命令と第2命令は両メモリバンクのそ
れぞれ同じ内部アドレスにあったので、この命令は前の
アクセス要求のときにすでに第2バンクデータバス上に
ある。従って第2命令を得るのに必要な時間は、第1命
令に必要な時間よりはるかに小さい。
【0119】第2命令を第2フラッシュメモリバンク7
2から読み出している間に、バンクアドレスジェネレー
タは第1バンク71の下位アドレスバス81L’の最下
位8ビットを増分する。
【0120】従ってこのサイクルの間に、第1バンクは
次のアクセス要求を受けるとすぐ次の第3命令にアクセ
スする準備ができている。バスバッファ90と92が使
用不可能なので、第3命令はデータバス63にも命令バ
ス61にも与えられない。
【0121】フラッシュメモリ制御88はプログラム命
令に対する第3要求に応答して、第1メモリバンク71
と関連する命令バスバッファ92を使用可能にし、この
バンクから第3命令を読み出す。
【0122】この間に、バンクアドレスジェネレータ8
6は、第2フラッシュメモリバンク72の下位バス81
L”に与えられている最下位アドレスビットを増分す
る。この動作により、フッシュメモリ55が次のアクセ
ス要求を受けると、第2バンク72は次の命令を出す準
備ができている。
【0123】このようにして、フラッシュメモリ制御8
8は読み出し要求を受けると、メモリバンク71と72
から交互に命令を得る。この方法により、一連の隣接す
る記憶場所へのアクセスが速くなる。
【0124】次の命令が次の論理アドレスにある限り、
バンクアドレスジェネレータ86がアドレシングを制御
するので、第2マイクロプロセッサ54は各アクセス要
求と共にアドレスを送る必要がない。
【0125】ジヤンプ命令を実行するときのように、次
の命令が隣接するメモリ場所に記憶されていない場合
は、第2マイクロプロセッサ54はアクセス要求と共に
この命令のアドレスをフラッシュメモリ55に送る。フ
ラッシュメモリ制御88はこれに応答して、新しいアド
レスをバンクアドレスジェネレータ86にロードする。
【0126】フラッシュメモリのシーケンシャルアドレ
シングはバーストアドレシングほど効率的ではないが、
シーケンシャルアドレシングは交互配置のアクセスモー
ドで記憶場所にアクセスするのに用いることができる。
【0127】この場合フラッシュメモリ制御88は、シ
ーケンシャルアドレシングモードを用いることを示す信
号を第2マイクロプロセッサ54から受ける。制御88
はこれに応答して、バンクアドレスジェネレータに指示
し、シフトしたメモリアドレスバス85からのアドレス
を直接バンクアドレスバス81に与える。
【0128】プログラム命令ではなくてデータをフラッ
シュメモリ55から読み出すときは、データはメモリ装
置73−80のどれに記憶してもよい。その結果フラッ
シュメモリバンク71と72は各データ要求に応答して
同時に動作するが、プロセッサ部データバス63に、一
方のバンクだけが結合される。
【0129】この場合マルチプレクサ84は、命令では
なくてデータを要求していることを示す信号を制御バス
線98から受ける。この信号によりマルチプレクサ84
は入力するアドレスに作用し、制御レジスタが指定した
のが交互配置したアクセスモードか単一バンクアクセス
モードかにかかわらず、この結果をシフトしたアドレス
バス85に与える。
【0130】またフラッシュメモリ制御88は線98の
制御信号を受け、この信号とアドレスビットA2とを用
いて、所望のデータを含むメモリバンク71か72に関
連するデータバッファ90か91を使用可能にする。フ
ラッシュメモリバンク71と72は共にアドレスをバス
81から受けるが、一方のバンクだけがプロセッサ部デ
ータバス63に接続される。
【0131】更に図3において、フラッシュメモリ55
に記憶されたプログラムを更新する場合は、フラッシュ
メモリバンク71と72を共に完全に消去しなければな
らない。しかしフラッシュメモリを消去しまた再プログ
ラミングするソフトウエアルーチンもまた、これらの記
憶要素に含まれている。
【0132】このフラッシュメモリ55は、第1フラッ
シュメモリバンク71の95と第2フラッシメモリバン
ク72の97の部分にこれらのルーチンの複写を持って
いる。一方のバンクを再プログラミングしている間に、
第2マイクロプロセッサ54は他方のバンクに記憶して
いる消去および再プログラミングルーチンを実行する。
【0133】一方のバンクを消去すると、消去および再
プログラミングルーチンを他方のバンクから複写し、他
のソース、例えばRAM56からのプログラムをその主
記憶部に複写する。次に一方のバンクに記憶しているル
ーチンを用いて、他方のバンクを再プログラミングす
る。
【0134】従って、プログラミングの前に全ての場所
を順次消去する必要のある従来のフラッシュメモリ装置
を命令の記憶に用いて、自分を再プログラミングするこ
とができる。システムコントローラの初期化またはブー
トアップルーチンのような他の重要なデータの複写も、
このようにして記憶することができる。
【0135】フラッシュメモリの再プログラミング手順
を第1メモリバンク71のプログラミングについて述べ
るが、第2メモリバンク72のプログラムも同じ動作で
逐次行うことができる。
【0136】手順は、第2マイクロプロセッサ54が図
3の制御レジスタ894こ構成データをロードすること
から始まる。制御レジスタ89にロードするモード制御
ビットは、フラッシュメモリを単一バンクアクセスモー
ドにする諭理レベルを持つ。
【0137】制御レジスタの別のビットは、プログラミ
ングのために第1メモリバンク71を選んだことを示
す。フラッシュメモリ制御88はレジスタ89の制御ビ
ットに応答して、必要なバンクをプログラム可能にす
る。
【0138】プログラミング動作中は、第2マイクロプ
ロセッサ54はバーストアドレシングとシーケンシャル
アドレシングのどちらを用いてもよい。
【0139】マルチプレクサ81ま制御バス62の信号
に応じて、バーストアドレシングを用いるかシーケンシ
ャルアドレシングを用いるかに従って、メモリバス85
か87を通してプロセッサバス64をバンクアドレスジ
ェネレータ86に結合する。
【0140】プログラミング動作中はシーケンシャルア
ドレシングを用いる場合を考える。従って第2マイクロ
プロセッサ54からの命令アドレスは、バンクアドレス
ジェネレータ86に直接与えられる。
【0141】フラッシュメモリ制御88は語アドレスの
ビットA2を無視して、常に選択したバンクだけを使用
可能にする。フラッシュメモリ制御88が制御バス62
を通して受ける別の信号は、第2マイクロプロセッサか
らの要求が読み出し動作か書き込み動作かを示す。制御
回路88はこれに応じて、制御信号を必要なメモリバン
ク71か72に送る。
【0142】フラッシュメモリ制御88はデータバッフ
ァ90を使用可能にし、各書き込みまたはアクセス確認
サイクル中に、第1メモリバンクデータバス82をプロ
セッサ部データバス63に接続する。同様にバッファ9
3を使用可能にして、第2メモリバンクデータバス83
をプロセッサ部命令バス61に接続する。
【0143】このように接続すると、第2マイクロプロ
セッサ54は第2フラッシュメモリバンク72から消去
および再プログラミング命令を読み出して第1メモリバ
ンク71をプログラムするように、フラッシュメモリ5
5を構成することができる。
【0144】フラッシュメモリ55の特定の消去/プロ
グラミングのシーケンスとコマンドは、メモリ装置の製
作者が定義する。一般的な手順では、先ず各記憶場所を
低論理レベル(ゼロ)にセットし、次に指定したメモリ
装置に消去コマンドを出して、全ての記憶場所を同時に
消去する。
【0145】1個の消去コマンドで全ての記憶場所を消
去できれば理想的であるが、いくつかの記憶場所は消去
されないのが普通である。従って第2マイクロプロセッ
サ54はメモリ装置内の全ての記憶場所が消去されてい
るかどうか確認し、必要があれば装置全体が消去される
まで更に消去コマンドを出さなければならない。
【0146】図3に示すフラッシュメモリ55は、数個
のメモリ装置73−76と77−80を並列に接続して
第1バンク71と第2バンク72を形成するが、時間を
節約するには全てのバンクを一斉に消去するのが望まし
【0147】しかし確認手順中に1装置の記憶場所だけ
が消去されていないことが分かった場合は、4個の装置
全部に第2の消去コマンドを出すことは好ましくない。
これは、フラッシュメモリは限られた回数以上消去サイ
クルを行うと損傷するからである。
【0148】従って本技術の中心的な特徴の1つは、全
バンクの消去と確認は並列に行うが、追加の消去コマン
ドは更に消去を必要とする記憶装置にだけ出すことであ
る。
【0149】全てのフラッシュメモリバンクを消去した
ことが確認されれば、再プログラミングして記憶場所に
新しいプログラムデータを記憶することができる。消去
の場合と同様に、再プログラミングは全てのバンク一斉
に行う。確認の結果あるメモリ装置73−80がデータ
を保持していなければ、その装置だけ再プログラミング
する。
【0150】従って各記憶場所に行うプログラミングサ
イクルの回数も最小になる。本再プログラミング技術で
は、所定のバンク内で全てのメモリ装置について多くの
動作を同時に行うが、装置に不必要な消去およびプログ
ラミングサイクルは行わない。
【0151】本発明の詳細なフラッシュメモリ消去ルー
チンを図5のフローチヤートで説明する。このルーチン
の命令の複写は、両メモリバンク71と72の部分95
と97に記憶されている。消去と再プログラミング用の
プログラムの命令は他方のバンクから読み出される。
【0152】消去手順は段階100で始まり、第2マイ
クロプロセッサ54は制御レジスタ89をセットしてメ
モリバンク71と72のどちらを消去するかを選択し、
フラッシュメモリ回路を構成する。このルーチンはどち
らのバンクを選択しても同じなので、第1バンク71を
選択した場合について述べる。
【0153】次に段階101で図6に示すプログラミン
グルーチンを呼び出し、第1メモリバンク71の各記憶
場所をゼロにする。このゼロにする手順は、後でフラッ
シュメモリプログラミングルーチンの動作を説明する際
に述べるる。
【0154】第1バンク71の全ての記憶場所をゼロに
すると、プログラムの実行は段階102に戻る。ここで
第27マイクロプロセッサ54は消去手順中に用いる変
数、カウンタ、他のレジスタを初期化する。
【0155】段階104で第2マイクロプロセッサ54
は、消去セットアップコマンドと、また続いて消去コマ
ンドをフラッシュメモリ55に書き込む。これらのコマ
ンドはデータバス63とデータバッファ90を通して、
第1メモリバンク71の装置73−76に送られる。
【0156】次に段階106でプログラムは一定の時
間、例えば10ミリ秒遅れる。これはメモリ装置の製作
者が指定するもので、消去コマンドを出してから消去確
認が始まるまでの間に必要な遅れである。
【0157】このルーチンでフラッシュメモリ71に送
られる32ビット命令は4個のバイトに分割され、各バ
イトはメモリ装置73、74、75、76のそれぞれへ
の、個々のコマンドを含んでいる。これによりバンク7
1の各装置は別個の動作状態になり、他の装置は読み出
し状態のままで、ある1個の装置だけを消去することが
できる。
【0158】これが本発明の中心となる動作であって、
前回の動作で完全には消去されなかった装置だけを再び
消去することがでる。しかしこのとき、第1バンク71
の4個のメモリ装置73−76が受ける消去コマンドは
全く同一のものである。
【0159】段階104で1個のフラッシュメモリ命令
を出すと、選択したメモリバンク内のメモリ場所が全て
消去されるのが最もよい。しかしこれは実際には滅多に
起こらず、バンク内には完全には消去されない装置が1
1固以上あることがよくある。
【0160】従って段階108から始まって、第2マイ
クロプロセッサ54は第1メモリバンク71内の各記憶
場所に順次アクセスして、実際に消去されているかどう
か判断する。
【0161】ここで第2マイクロプロセッサはデータバ
ス63にフラッシュメモリ命令を出し、第1メモリバン
ク71の各記憶装置73−76を消去確認状態にし、各
装置の内容を並列に順次読み出せるようにする。次に段
階110で再びプログラムの実行は、装置の製作者が指
定する一定の時間、例えば6マイクロ秒遅れる。
【0162】段階112に進んで、第2マイクロプロセ
ッサ54はフラッシュメモリ55に記憶場所のアドレス
を送って、第1メモリバンク71から32ビットのデー
タ語を得る。次にこのデータ語を確認して、ビットが全
て消去されているかどうか判断する。
【0163】段階114でこのデータ語の全てのビット
が消去されていたと仮定すると、段階116で第2マイ
クロプロセッサは、第1フラッシュメモリバンク71の
最後のアドレスを確認したかどうか判断する。
【0164】確認が終った場合は、消去ルーチンは終了
して主制御プログラムに戻る。未確認のメモリ場所が残
っている場合は、段階118、第2マイクロプロセッサ
のレジスタに記憶している第1フラッシュメモリバンク
71のアドレスを増分する。
【0165】次に段階120で、各バイトを消去確認コ
マンドに設定して、フラッシュメモリ55の命令を形成
する。プログラムの実行は段階108に戻り、フラッシ
ュメモリ命令を送って、各記憶装置73−76が消去確
認状態にあって次の場所をチェックできることを確かめ
る。
【0166】段階114で、フラッシュメモリバンク7
1から読み出した語の中に消去されていないビットが1
個以上あることが分かると、プログラムの実行は段階1
22に分岐する。このプログラムの分岐は、語の各バイ
トを調べて、記憶装置73−76のどれを更に消去する
必要があるかを判断するためである。このために、バイ
トポインタを初期化してゼロにする。
【0167】次に段階124で第2マイクロプロセッサ
54はポインタが指定したバイトを調べて、全てのバイ
トが消去されたかどうか判断する。全てが消去された場
合は、段階136に進む前に段階126で、調べたデー
タを読み出したメモリ装置用のフラッシュメモリ命令の
パイトを、読み出しモードコマンドに設定する。
【0168】しかし調べたバイトが消去されていなけれ
ば、プログラムの実行は段階128に分岐して、データ
バイトを読み出したメモリ装置73−76用のフラッシ
ュメモリ命令のバイトを消去コマンドにセットする。そ
して段階130で、そのメモリ装置73−76の消去サ
イクル回数のカウンタを増分し、段階132で検査す
る。
【0169】このルーチンで1,000回消去サイクル
を行ってなお消去されないメモリ装置の場所があれば、
そのメモリ装置は有効な寿命を超す。この場合、段階1
34でどの装置が不良であるかを知らせる信号をユーザ
に送ってからプログラムを終了する。そしてメモリを交
換するまでこのシステムは休止状態に入る。
【0170】段階132で装置の消去サイクルが1,0
00回に達していない場合は、プログラムの実行は段階
136に分岐し、バイトポインタをテストして、データ
語のバイトを全て検査したかどうか判断する。
【0171】未検査のバイトが残っている場合は、段階
138でバイトポインタを増分し、段階124に戻って
次のバイトをテストし、その中のビットを全て消去した
かどうか判断する。
【0172】第1フラッシュメモリバンク71から読み
出した所定の語のバイトを全て検査し終ると、第2マイ
クロプロセッサ54は段階104に戻る。
【0173】この時点で、第2マイクロプロセッサ54
のレジスタに一時的に記憶されたフラッシュメモリ命令
の各バイトに含まれるのは、関連するメモリ装置73−
76を再び消去するコマンドか、またはこれまでチェッ
クした場所は全て消去されたためメモリ装置を読み出し
状態にするコマンドである。
【0174】段階104で、フラッシュメモリ命令をフ
ラッシュメモリ55に書き込んで、再消去する必要があ
るとして選択したメモリ装置73−76の消去を行う。
【0175】次に各装置の同じ組の場所を再び検査し、
これらの場所に記憶されていたビットが重ねて行った消
去サイクルによって全て完全に消去されたかどうか判断
する。
【0176】第2マイクロプロセッサ54は消去ルーチ
ンの各段階を循環して、記憶場所が全て消去されたこと
を確認するまで、第1フラッシュメモリバンク71の4
個のメモリ装置73−76の各記憶場所を検査し続け
る。
【0177】この時点で、フラッシュメモリ消去ルーチ
ンの実行は終了し、第2マイクロプロセッサ54は実行
中の主動作プログラムに戻る。
【0178】一般にフラッシュメモリ55の1バンクを
消去し終ると、すぐ再プログラミングする。これは第2
マイクロプロセッサ54が行い、図6のフローチヤート
に示すフラッシュメモリプログラミングルーチンを実行
する。
【0179】このプログラミング手順は段階101の消
去ルーチンでも用いられ、消去パルスを与える前に、選
択したフラッシュメモリバンク71か72の各記憶場所
をゼロにセットする。消去を始める前に全てのメモリセ
ルをゼロにプログラミングすることは、フラッシュメモ
リ装置の製作者からの要求である。
【0180】フラッシュメモリプログラミングルーチン
は段階140から始まり、プログラムで用いる変数、カ
ウンタ、レジスタを初期化する。段階142で、現在消
去モードであるかどうか判断する。
【0181】このプログラミングルーチンが消去手順の
一部として用いられていない場合は、プログラムは段階
143に分岐し、第2マイクロプロセッサ54は制御レ
ジスタ89にデータを送ってフラッシュメモリ回路55
をプログラムモードにし、メモリバンク71と72の一
方を再プログラミングするよう指定する。ここで再び第
1バンクを選択したとする。
【0182】段階144で、32ビットのフラッシュメ
モリ命令を形成する。この命令は消去ルーチンで用いた
ものと同様で、各バイトは再プログラミングする第1バ
ンク71のメモリ装置73−76のそれぞれに対する別
個の命令を含む。
【0183】各バイトは個別に構成されるので、他の装
置をプログラミングしている間に1個以上の装置を読み
出しモードにすることができる。この特徴が用いられる
のは、あるメモリ装置の記憶場所が第1プログラミング
サイクルでデータを保持せず、従って追加のサイクルが
必要な場合である。
【0184】従って第1サイクルで正しく再プログラミ
ングされなかったメモリ装置73−76だけが第2の再
プログラミングコマンドを受ける。しかし最初は、フラ
ッシュメモリ命令の全てのバイトにはセットアップコマ
ンドをロードする。また4個1組のカウンタをセットし
て、4個の各メモリ装置の場所を再プログラミングする
のに必要なプログラミングサイクル回数をカウントでき
るようにする。
【0185】プログラムの実行は次に段階146に進
み、実行中の手順が消去動作かプログラミング動作か判
断する。フラッシュメモリがプログラミングモードであ
れば、段階148でこのソフトウエアはRAM56、第
2フラッシュメモリバンク72またはシステム内のプロ
グラムを含む他の装置からプログラム命令語を取り出
し、第1フラッシュメモリバンク71にロードする。
【0186】命令を記憶する場所は、第2マイクロプロ
セッサ54のレジスタ内に保持されているソースアドレ
スで示される。段階148で、取り出した語を第2マイ
クロプロセッサ54のデータレジスタ内に一時的に記憶
する。
【0187】このプログラミングルーチンを消去ルーチ
ンの最初に実行しているのであれば、実行は段階150
に分岐して、第2マイクロプロセッサのこのデータレジ
スタをゼロにセットする。
【0188】前に述べたように、図6のプログラミング
ルーチンは消去ルーチンの最初にも用いられ、フラッシ
ュメモリバンクの記憶場所を全てゼロにリセットする。
【0189】段階148か150で記憶する命令を得た
後、段階152で4個1組のセットアッップおよびプロ
グラムコマンドをフラッシュメモリ55に送り、各メモ
リ装置の状態を、データを受けて記憶できるようにす
る。
【0190】図3のフラッシュメモリ制御88によって
第1双方向データバッファ90はすでに使用可能になっ
ており、プロセッサ部データバス63は第1フラッシュ
メモリバンク71のデータバス82に結合している。
【0191】フラッシュメモリ命令のコマンドはこの線
路を通って並列にメモリ装置73−76に送られる。各
メモリ装置は、その装置用の特定のコマンドを含むフラ
ッシュメモリ命令の個別のバイトに応答する。
【0192】ある場所を再プログラミングする最初の段
階では、これらの各バイトはプログラムセットアップコ
マンドを含んでいる。フラッシュメモリ命令を出した
後、第2マイクロプロセッサ54はアドレスバス64を
通して記憶場所のアドレスを送り、記憶のためのプログ
ラム命令をデータバス63に与える。
【0193】図3において、プログラミング用の制御レ
ジスタ89に記憶されたデータにより、マルチプレクサ
84はメモリアドレスバス87を通して、プロセッサ部
アドレスバス64をバンクアドレスジェネレータ86に
直接接続する。
【0194】またフラッシュメモリ制御88は制御信号
に応答して、再プログラミングのために選択した第1フ
ラッシュメモリバンク71に必要なコマンドを送る。
【0195】第1フラッシュメモリバンク71のメモリ
装置73−76はプログラムセットアップコマンドに応
答して、バス82のビットをアドレス記憶場所に記憶す
る。段階153では、マイクロプロセッサ54がプログ
ラム確認コマンドを出す前に10マイクロ秒の遅れが必
要である。
【0196】この後段階154で、第2マイクロプロセ
ッサ54はデータバス63と82および双方向バッファ
90を通して1組のプログラム確認コマンドを出す。こ
れらコマンドによりメモ装置73−76は、現在アクセ
スした記憶場所に記憶されたばかりのプログラム命令を
装置から読み出してプロセッサ部データバス63に与え
る。
【0197】一方第2マイクロプロセッサ54は段階1
56で6マイクロ秒遅れ、フラッシュメモリバンク71
を確認コマンドに従わせる。
【0198】この遅れ期間の最後に、段階158で第2
マイクロプロセッサ54はデータを読み出し、段階16
0で、第1フラッシュメモリバンク71から読み出した
データと段階152で記憶場所をプログラムするのに用
いたデータとを比較する。
【0199】比較した結果これらの語が同じである、つ
まりフラッシュメモリを正しくプログラムしたと仮定す
ると、プログラムの実行は段階162に分岐し、プログ
ラム命令を第1メモリバンク71に記憶し終ったかどう
か判断する。
【0200】記憶する命令がまだ残っている場合は、第
1フラッシュメモリバンク71内の記憶場所とプログラ
ミングデータのソースの記憶場所とを示す1対のアドレ
スジスタを、段階164で共に増分する。
【0201】命令をフラッシュメモリ55のバンク71
か72の一方にだけ書き込んでいる間に、命令の行き先
アドレスを8ビット増分し、これにより他のメモリバン
クの記憶場所をバイパスする。
【0202】次にプログラムの実行は段階144に戻
り、フラッシュメモリ55内の次の記憶場所をプログラ
ムする。しかし第1フラッシュメモリバンク71の最後
の場所のプログラムが終ると、ソフトウエアルーチンは
呼び出した元のプログラムに戻る。
【0203】段階160で、フラッシュメモリ55内の
現在アクセスした記憶場所を正しくプログラムしていな
いと第2マイクロプロセッサ54が判断すると、フラッ
シュメモリのプログラムルーチンの実行は図6の段階1
70に分岐する。
【0204】このプログラムの分岐では、記憶場所から
読み出した語の各バイトを検査して、プログラムに失敗
したのは並列のメモリ装置73−76のどれか判断す
る。このルーチンのこの部分の初めに、バイトポインタ
を初期化する。
【0205】このポインタが指定する対応するバイト
は、フラッシュメモリ55から読み出した語と段階15
2で記憶したばかりの命令語から得る。
【0206】次に段階174で、第2マイクロプロセッ
サ54はこれらのバイトを比較して、等しいかどうかを
判断する。等しければ、対応するメモリ装置は正しくプ
ログラムされていることを示す。この場台はプログラム
の実行は段階175に分岐し、比較したデータを含むメ
モリ装置のフラッシュメモリ命令のバイトに、読み出し
モードコマンドをロードする。
【0207】この場合、対応するメモリ装置73−76
は正しくプログラムされているので、1個以上の他の並
列のメモリ装置を再プログラミングする際に重ねて不必
要な再プログラミングサイクルを行わないようにするた
め、読み出しモードにしなければならない。フラッシュ
メモリ命令は、第2マイクロプロセッサ54のレジスタ
に一時的に記憶する。
【0208】段階174で比較したバイトが等しくない
場合は、関連するメモリ装置73、74、75、76の
プログラミングが正しく行われなかったことを示すの
で、段階176を実行する。この段階では、プログラム
に失敗した関連するメモリ装置を再プログラミングに指
定し、そのメモリ装置のフラッシュメモリ命令のバイト
にセットアップコマンドをロードする。
【0209】段階178でそのメモリ装置のプログラム
カウンタを増分し、段階180でチェックして、この記
憶場所を25回プログラムしてなお失敗したかどうか判
断する。もしそうであれば、段階182でユーザに信号
を送り、このメモリ装置は不良であることを知らせてか
らプログラムの実行を停止する。
【0210】この記憶場所で再プログラミングを行った
回数が25回未満であれば、段階184で第2マイクロ
プロセッサ54はバイトポインタをチェックし、データ
語のバイトを全てチェックしたかどうか判断する。もし
未チェックのものが残っていれば、段階186でバイト
ポインタを増分し、段階172に戻って別のバイトをチ
ェックする。
【0211】メモリ装置73−76からの4バイトをチ
ェックした結果プログラミングが完了していれば、プロ
グラムの実行は段階184から段階152に戻る。前回
の命令データを再びメモリバンク71に与えて、前回の
サイクルで正しくプログラムされなかったメモリ装置を
プログラムする。
【0212】しかし前回命令を記憶できなかったメモリ
装置だけをプログラムモードにし、その他は読み出しモ
ードにする。
【0213】第2マイクロプロセッサ54は図6に示す
フラッシュメモリプログラミングルーチンの各段階を循
環して、段階180で装置のどれかが不良であると分か
るまで、または階162で最後の命令を正しく記憶した
ことが分かるまで続ける。
【0214】消去および再プログラミングの本技術は、
フラッシュメモリに従来用いられた技術より優れた、い
くつかの利点がある。ここに説明した手順は多くの消去
および再プログラミング動作を並列に実行するので、メ
モリ装置が持つ最高の速さで手順を実行する。
【0215】しかし、消去またはプログラミングが失敗
したことが分かった場合は、問題の装置の動作が良くな
ったことが分かるまで、この装置だけを重ねて消去しま
たはプログラミングする。
【0216】このため正しく機能した装置に、不必要な
消去およびプログラミングサイクルを重ねて行わなくな
る。従って本技術によれば、正しく機能した装置を損傷
することはない。
【図面の簡単な説明】
【図1】プログラマブルコントローラの絵画図である。
【図2】本発明のフラッシュメモリを用いる、図1のシ
ステムコントローラの略図である。
【図3】フラッシュメモリの略図である。
【図4】フラッシュメモリの各バンクの記憶場所の記憶
地図である。
【図5】フラッシュメモリを消去するソフトウエアルー
チンのフローチヤートである。
【図6】フラッシュメモリをプログラミングするソフト
ウエアルーチンのフローチヤートである。
【符号の説明】
10 プログラマブルコントローラ 11 バックプレーン 12 ラック 14 電源モジュール 15 I/Oデータリンク 16 システムコントローラ 17 リモートI/Oラック 18 プロセッサモジュール 19 ローカルIAモジュール 20 リモートI/Oスキャナモジュール 21 バックプレーン制御バス 22 バックプレーンデータバス 23 バックプレーンアドレスバス 24 プログラムターミナル 25 ゲーブル 26 アダブタモジュール 28 ローカルエリアネットワーク 30 バックプレーンインターフェース部 31 プロセッサ部 32 通信部 33 通信部制御バス 34 通信部データバス 35 通信部アドレスバス 36 第1マイクロプロセッサ 37 通信部アドレスデコード回路 38 リードオンリーメモリ(ROM) 39 ランダムアクセスメモリ(RAM) 40 通信部調停回路 41 直接メモリアクセス(DMA) 42 カウンタ/タイマ回路(CTC) 43 入出力装置(UART) 44 入出力コントローラ(SIO) 45,46,47 入ラインドライバ 50,51 信号ゲート 52 バス間制御回路 53 制御部調停回路 54 第2マイクロプロセッサ 55 フラッシュメモリ 56 システムコントローラの主RAM 57 プロセッサ部アドレスデコーダ 58 割り込みプロセッサ 59 データ伝送応答およびバスエラー(DTA
CK/BERR) 60 クロック回路 61 命令バス 62 プロセッサ部制御バス 63 プロセッサ部データバス 64 プロセッサ部アドレスバス 65,66 信号ゲート 67 マスターモード制御回路 68 スレーブモード制御回路 69 バックプレーン調停回路 71 第1フラッシュメモリバンク 72 第2フラッシュメモリバンク 73−80 メモリ装置 81 バンクアドレスバス 81H 上位バンクアドレスバス 81L’,81L″ 下位バンクアドレスバス 82,83 内部データバス 84 マルチプレクサ 85 シフトしたメモリアドレスバス 86 バンクアドレスジェネレータ 87 メモリアドレスバス 88 フラッシュメモリ制御 89 制御レジスタ 90,91 データバッファ 92,93 バッファ 94,96 主記憶部 95,97 再プログラミング命令部 98 制御バス線
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成5年1月6日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正内容】
【書類名】 明細書
【発明の名称】 フラッシュメモリ回路と操作方法
【特許請求の範囲】
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデジタルデータを記憶す
るための固体メモリ装置、より詳しくは一般にフラッシ
ュメモリと呼ぶ一種のメモリ装置に関する。
【0002】
【従来の技術】フラッシュメモリは、消去可能なプログ
ラマブルリードオンリーメモリ(EPROM)および電
気的に消去可能なプログラマブルリードオンリーメモリ
(EEPROM)技術に基づく不揮発性記憶装置であ
る。この種の装置は設備中でプログラムすることがで
き、プログラミング電圧や消去電圧を与えまた消去手順
を行うことによって、装置内の全てのビットを高論理レ
ベルにセットするのに用いられる。
【0003】これから述べるのは、新しいデータで装置
をプログラムするのに用いる新しい手順である。今日、
EPROM、EEPROM、電池でバックアップするス
タティックRAMおよびディスクメモリなどが用いられ
ている多くの応用に、フラッシュ型の装置が用いられる
と予測される。
【0004】標準メモリは一般に交互配置の装置のバン
クを形成して、性能を改善しアクセス時間を短くする。
本発明の技術では、同型のメモリ装置の2個以上のバン
クを、それぞれからのデータ要求が重なるように配列す
る。すなわち1個のバンクがデータを送っている間に、
他のバンクは次の一連のデータを送る準備をする。この
ようにして、遅くて安いが、高い機能を持つメモリ装置
を使用することができる。
【0005】フラッシュ型メモリの1つの欠点として、
現在利用できる装置は、プログラムする前に完全に消去
しなければならないことである。この種の装置を設備の
中で再プログラミングするときは、再プログラミングの
ために取り外すのではなくて、再プログラミングのソフ
トウエアルーチンを設備中の別の場所に記憶しなければ
ならない。このため一般には、再プログラミングルーチ
ン用として不揮発性メモリや別のリードオンリーメモリ
などの追加のメモリ装置を用意する。
【0006】別の種類のフラッシュメモリ装置も提案さ
れているが、まだ市販されていない。これは一般にセク
ター別消去フラッシュメモリと呼ばれる。このフラッシ
ュメモリは決して消去できない一群の記憶場所を回路中
に備え、この中に初期化ルーチンや再プログラミングル
ーチンが入る。
【0007】この保護されたセクターを持てば現在のフ
ラッシュメモリに関する問題は解決されるが、保護され
たルーチンを変更する場合には、恐らく新しい装置を設
けなければならない。またこのメモリは固定した大きさ
のセクターに分割されるので、各ユーザの必要に応じた
最適の大きさにはならない場合があることも問題であ
る。
【0008】
【発明が解決しようとする課題】従って望ましいフラッ
シュメモリは、初期化ルーチンおよび再プログラミング
ルーチンを記憶することができるものであって、装置の
別の部分を再プログラミングできるだけでなく、必要で
あれば初期化ルーチンおよび再プログラミングルーチン
を変更できるものである。
【0009】更に現在利用可能なフラッシュメモリ装置
は8ビットなので、多くのマイクロプロセッサが必要と
する16ビットや32ビットのデータ語を記憶するため
には、装置を何個か並列に接続しなければならない。こ
のように並列に接続することはよく知られており、各種
の他の型の8ビットメモリ装置で用いられてきた。
【0010】従来の並列構成では、並列のメモリバンク
にある装置をすべて消去し再プログラミングするのが普
通であった。すなわち所定のアドレスを並列接続の全て
の装置に与え、各装置の対応する記憶場所を同時に消去
する。
【0011】その後でその記憶場所をテストして、正し
く消去されたことを確認する。もし並列接続のメモリ装
置の中の1個でも記憶場所が消去されていなければ、全
ての並列接続の装置を再び消去する工程を繰り返す。
【0012】この方法は他の型のメモリでは問題内が、
フラッシュ型メモリの1つの欠点は、ある記憶場所に行
ってよい消去サイクルの回数が限られていることであ
る。
【0013】従って正しく消去されなかった装置が1個
しかないときに、そのバンク内の全ての装置に重ねて消
去サイクルを行うと、他の装置に不必要な消去サイクル
を行って完全に損傷させる場合もある。
【0014】従ってフラッシュ型メモリに用いられる普
通の方法は、バンク内の各装置を別個に消去して、各装
置が実際に必要とする消去サイクル回数だけをその装置
に与えることである。個々の装置を消去すればそれぞれ
の装置に不必要な消去サイクルを行う問題はなくなる
が、非常に時間がかかる。
【0015】従ってフラッシュメモリを含む回路の設計
者は、並列消去によって装置を消去し過ぎることと、個
々に消去して時間をかけ過ぎることとの取捨選択に直面
する。
【0016】
【課題を解決するための手段】メモリ中の別の記憶場所
にデジタルデータ語を記憶するメモリ回路をここに提供
する。第1手段は記憶場所のアドレスを受け、第2手段
はメモリ回路へのアクセスを要求する制御信号を受け
る。このメモリは第1メモリバンクと第2メモリバンク
を備え、それぞれ一連の記憶場所を持ち、データを交換
する手段に結合される。
【0017】望ましい実施態様では、各メモリバンクは
複数の並列接続の集積回路メモリ装置で形成され、各装
置はデジタルデータ語の異なるビット群を記憶する。ア
ドレスバスが第1および第2メモリバンクに接続され、
アクセスする記憶場所を示すアドレス信号を伝える。
【0018】動作モードは2種類あり、制御機構がメモ
リ回路を一方の動作モードにする。第1モードでは、こ
の制御機構は最初のアクセス要求とアドレス信号に応答
して、一方のメモリバンク内の記憶場所からデータを読
み出す。その後次の隣接する記憶場所へアクセス要求を
行うときには、要求と共にアドレスを送る必要がない。
【0019】制御機構はその後の要求に応答してアドレ
スを発生し、第1および第2メモリバンクの記憶場所か
らデータを交互に読み出す。しかし次の隣接する記憶場
所以外へのアクセス要求の場合は、要求と共にアドレス
を送る必要がある。
【0020】第2の操作モードでは、第1モードと同様
に制御機構はメモリ回路への各アクセス要求に応答する
が、2個のメモリバンクの内、要求と共に送られる制御
信号が決定する方だけを動作可能にする。この方法は、
余分な外部メモリを必要とせずに他のメモリバンクを完
全に消去し再プログラミングすることのできる独特の手
段である。
【0021】また、メモリ回路を消去しプログラミング
する新しい方法も開示する。メモリは消去命令によって
消去するが、この命令はバンク中の各メモリ装置の全て
の記憶場所を消去する。次に各記憶場所の内容を順次読
み込んで、各場所の全てのビットが消去されたかどうか
を確認する。
【0022】所定の記憶場所に消去されていないビット
があることが分かると、ビットが消去されていないメモ
リ装置にだけ重ねて消去命令を送る。次にその記憶場所
の内容を再び読み出して、今度は全てのビットが消去さ
れているかどうか確認する。
【0023】メモリ回路が完全に消去されていることを
確認すると、再プログラミングを始めることができる。
全てのメモリ装置を同時に書き込み状態にして、所定の
記憶場所のアドレスとデータ語をメモリ装置に送る。次
にその記憶場所の内容を読み出す。
【0024】その記憶場所から読み出した内容と送った
データ語とを比較して、データ語を正しく記憶したかど
うか確認する。比較した結果データ語を正しく記憶して
いなければ、データ語のビットを正しく記憶しなかった
メモリ装置だけを書き込み状態にして、データ語を再び
そのメモリ回路に送る。
【0025】一般にその記憶場所を再びチェックして、
今度はデータを正しく記憶したかどうか確認する。もし
正しく記憶されていれば、他の記憶場所に移ってデータ
を記憶する手順を繰り返す。
【0026】この消去および再プログラミングの方法に
より、各記憶場所を正しく消去し再プログラミングした
ことを確認する。メモリバンク内のある特定のメモリ装
置が消去または再プログラミングされていなければ、そ
の装置だけを消去しまたは再プログラミングする。
【0027】この方法により、正しく作動したメモリ装
置に不必要な消去およびプログラミング操作をせずにす
み、またメモリ装置のプログラミング、消去、確認を並
列に行うことによって、システムの機能が向上する。
【0028】
【実施例】図1において本発明のプログラマブルコント
ローラ10はトラック12に納められ、ラック12は複
数のプリント回路板モジュールを入れる一連のスロット
を含む。これらの機能モジュールは、ラック12の背面
に沿って伸びるマザーボードに接続して、バックプレー
ン11を形成する。
【0029】バックプレーン11は、バックプレーンの
伝導パターンによって相互に接続される複数のモジュー
ルコネクタを備える。バックプレーン11はモジュール
を接続する一連の信号バスを備える。ラック12は電源
モジュール14、システムコントローラ16、多数のプ
ログラム実行プロセッサモジュール18、複数のリモー
ト入出力(I/O)スキャナモジュール20を含む。た
だしスキャナモジュールは1個だけでよい。
【0030】ラック12の残りの場所は空いていて、追
加の機能モジュールをスロットに挿入するまでは、スロ
ットは空のプレートで覆われている。
【0031】リモートI/Oスキャナモジュール20は
4個以内で、コントローラ10と外部のリモートI/O
ラック17とを、直列のI/Oデータリンク15を通し
てインターフェースする。各リモートI/Oラック17
は、制御対象設備の各センサおよび作動器に結合される
複数のローカルI/Oモジュール19を備える。
【0032】ローカルI/Oモジュール19には多くの
形式があり、例えばDC入出力、AC入出力、アナログ
入出力、開ループまたは閉ループ位置決めモジュールを
備えてよい。I/Oラック17とネットワーク15は、
従来のインターフェースおよび通信技術を用いる。
【0033】またリモートI/Oラック17はアダプタ
モジュール26を含む。これは例えば、アメリカ特許番
号4,413,319に記述されているように、I/O
ネットワーク15を通してI/Oモジュール19とスキ
ャナモジュール20との間のデータ伝送を制御する。
【0034】システムコントローラ16はケーブル25
を通してプログラミングターミナル24に接続される。
これはユーザのプログラムをプログラマブルコントロー
ラにロードして操作し、またシステムの機能を監視する
のに用いる。ターミナル24はパーソナルコンピュータ
で、ユーザがこのターミナルで制御プログラムを開発し
て、プログラマブルコントローラにロードすることがで
きるようにプログラムされている。
【0035】プログラムをプログラマブルコントローラ
にロードして動作をデバッグした後は、操作の監視が必
要でなければターミナル24をシステムコントローラ1
6から切り離してよい。
【0036】またシステムコントローラ16は、ローカ
ルエリアネットワーク(LAN)28に接続してよく、
LANを通してホストコンピュータからデータやプログ
ラム命令を受け、また状態の情報や報告データを送る。
これによりホストコンピュータまたは中央のターミナル
は、工場の現場にある複数のプログラマブルコントロー
ラの動作をプログラムし制御することができる。
【0037】図2に概略を示すシステムコントローラ回
路はバックプレーンバス21−23に接続し、3つの部
30、31、32(破線で示す)に分割され、バックプ
レーンのインターフェース、処理、通信の機能を持つ。
バックプレーンインターフェース部30は全てのラック
モジュールからラックバックプレーン11へのアクセス
を管理し、システムコントローラモジュール16をバッ
クプレーンに接続する。
【0038】プロセッサ部31はコントローラ10の監
視プログラムを実行し、通信部32は外部ターミナル2
4やLAN28のようなローカルエリアネットワークと
の通信を主業務とする。プロセッサ部31と通信部32
は共に、それぞれ1組の内部バス62−64と33−3
5を備える。
【0039】通信部バスは、通信部中の要素間を走る多
数の個々の制御線を備える制御バス33、並列のデータ
バス34、並列のアドレスバス35から成る。通信部3
2は第1マイクロプロセッサ36を中心に組み立てら
れ、マイクロプロセッサ36はリードオンリーメモリ
(ROM)38に記憶されている機械語命令を実行す
る。
【0040】命令はROMから取り出されてデコードさ
れ、マイクロプロセッサ36はこれを実行して通信機能
を行う。これらの機能を制御するプログラムは、前述の
プログラマブルコントローラで用いるものと同様であ
る。
【0041】従来型のアドレスデコード回路37が第1
プロセッサ36から送られる各アドレスを受けてデコー
ドし、相応する信号を生成して制御バス33に出す。例
えば第1マイクロプロセッサ36がROM38にアクセ
スすると、アドレスデコード回路37は、マイクロプロ
セッサがバス35に送るアドレスがROMのアドレスの
範囲内にあることを確認する。
【0042】通信部中のどの装置にアクセスするかが分
かると、アドレスデコード回路37はその装置のための
制御信号を生成してアクセスする。
【0043】2個の直列入出力装置UART43と直列
入出力コントローラ(SIO)44も、3本の通信部バ
ス33−35に接続される。UART43は、市販の一
般的な非同期送受信器集積回路のどれでもよい。
【0044】UART43は通信部データバス34にあ
る並列データを正しくフォーマットされた直列信号に変
換し、入出力ラインドライバ45に送る。ラインドライ
バ45は、RS232、RS423、RS422などの
直列信号標準のどれかに対応する出力信号を出す。
【0045】直列I/O(SIO)通信コントローラ4
4は2本の同期直列通信チャンネルを扱う標準集積回路
のどれでもよい。
【0046】SIO44はシステムコントローラ16の
通信部と、ラインドライバ46および47に接続される
ローカルエリアネットワーク、例えば図1のネットワー
ク28、とをインターフェースする。図1に示すプログ
ラミングターミナル24は、ラインドライバ46か47
の一方に接続する。
【0047】また通信部32内にはランダムアクセスメ
モリ(RAM)39もあり、システムコントローラ16
に接続される各種の外部装置と受け渡しするデータを一
時的に記憶する。
【0048】RAM39はアドレスバス35を通してア
クセスしてよく、制御バス33からの使用可能信号に従
ってバス34を通してデータをメモリに読み書きしてよ
い。直接メモリアクセス(DMA)回路41は、通信中
にSIO44とRAM39の間で高速のデータ交換を可
能にするために設けられる。
【0049】DMA回路41により、SIO44はRA
M39にアクセスして、各外部通信チャンネルを通して
送受信するデータを記憶または取得することができる。
【0050】調停回路40は通信バス33−35へのア
クセスを制御し、これらのバスに複数の装置からアクセ
スの要求が同時に入ったときに調整する。調停回路40
は、通信部のどの要素が共有バス33−35にアクセス
するかを決める。
【0051】バスを要求する装置が制御バス33を通し
て要求信号を調停回路40に送ると、調停回路は一度に
1装置にだけ要求を認め、その装置用の制御線にアクセ
ス信号を出す。
【0052】カウンタ/タイマ回路(CTC)42は通
信バス33−35と第1マイクロプロセッサ36の割り
込み端子とに接続し、通信部内の他の要素からの割り込
み要求を処理する。
【0053】CTC42はタイマでもあり、所定の間
隔、例えば10ミリ秒毎に第1マイクロプロセッサ36
に割り込み要求を出し、実行中のタスクにかかわらず各
種のルーチンを定期的に実行させる。
【0054】この割り込み要求に応答して、第1マイク
ロプロセッサ36はCTC42からベクトルを読み出
し、ROM38に記憶されている該当する割り込みルー
チン、例えばUART43やSIO44からのデータ要
求を処理するルーチンに向かう。
【0055】更に図2においてプロセッサ部31は、制
御バス62、32ビットのデータバス63、並列のアド
レスバス64を含む一組のバスに連結する。バス62−
64へのアクセスは、通信バスの回路40と同様な調停
回路53で制御される。
【0056】2組の信号ゲート50と51が、通信部バ
ス34、35とシステムコントローラモジュール16の
プロセッサ部バス63、64の間に設けられる。詳しく
いうと、第1組のゲート50は、通信部データバス34
とプロセッサ部31のデータバス63を双方向に接続す
る。また第2組のゲート51は2本のアドレスバス35
と64を接続する。
【0057】バス間制御回路52がプロセッサ部31と
通信部32の制御バス62と33にそれぞれ接続され、
データゲート50とアドレスゲート51を動作可能にし
て、調停回路40と53からのアクセス要求信号に応答
する。
【0058】プロセッサ部31は32ビット第2マイク
ロプロセッサ54、例えばアドバンスト・マイクロ・デ
バイセス社製のモデル29000などを中心に構成され
る。第2プロセッサ54は、プログラマブルリードオン
リーメモリ(PROM)55に記憶されているプログラ
ム命令を実行する。
【0059】命令は別の命令バス61を通してPROM
55から読み出す。また以下に述べるように、データバ
ス63をPROMに接続して命令を記憶する。
【0060】PROM55はフラッシュ型メモリで、各
記憶場所は32ビットである。本発明は以下に述べるフ
ラッシュメモリ55の構成と動作の詳細に関する。
【0061】第2マイクロプロセッサ54は実質はメモ
リマップ装置で、入出力線は直接には接続されない。従
ってプロセッサバス上の他の要素へのアクセスは、バス
64にアドレスを出すことによって行う。
【0062】第2マイクロプロセッサ54から送られる
アドレスはアドレスデコード回路57でデコードされ、
アクセスする要素への制御信号を生成する。プロセッサ
部アドレスデコーダ57の機能は、通信部アドレスデコ
ード回路37と殆ど同様である。またプロセッサ部31
は、第2マイクロプロセッサ54への割り込みを制御す
る割り込みプロセッサ58を含む。
【0063】データ伝送応答およびバスエラー(DTA
CK/BERR)回路59もプロセッサ部制御バス62
に接続される。回路59はプロセッサ部31内の各要素
からの信号に応答してデータ伝送の完了の応答を出し、
また不適当なアドレシングやデータ伝送失敗が起こった
場合はバスエラー信号を出す。
【0064】これらの信号は、第2プロセッサ54が取
り上げて処置する。またプロセッサ部31は、主システ
ムクロックおよび実時間クロックを含むクロック回路6
0を含む。
【0065】システムコントローラ16の主RAM56
もプロセッサ部バス62−64に接続される。RAM5
6はメモリ場所を含む32ビットのメモリで、コントロ
ーラ10全体ののシステムメモリの役目をする。
【0066】システムRAM56は、システムコントロ
ーラ内の第2マイクロプロセッサ54が介入することな
く、システム内の他のモジュールからバックプレーン1
1を通して直接アクセスすることができる。主RAM5
6は、ターミナル24を通してユーザから与えられる構
成データや、数個の機能モジュールが共用する他のデー
タを記憶する。
【0067】更に図2において、システムコントローラ
16のプロセッサ部31は、両バス群に結合する複数の
要素を通して、バックプレーン11のバス21−23と
インターフェースする。
【0068】詳しくいうと、バックプレーンデータバス
22は1組の双方向データ伝送ゲート66によってプロ
セッサ部データバス63に接続し、バックプレーンアド
レスバス23は別の1組の双方向ゲート65によってプ
ロセッサ部アドレスバス64に接続する。
【0069】システムコントローラ16がバックプレー
ン11を制御しようとするときは、マスターモード制御
回路67がプロセッサ部バス62の制御線の信号に応答
してバックプレーン制御バス21に必要な制御信号を出
し、ラック12内の他のモジュールにアクセスする。
【0070】ラック12内の他のモジュールがシステム
コントローラ16にアクセスして、例えば主RAM56
の内容を読み出そうとするときは、システムコントロー
ラはこのモジュールによるバックプレーン11の制御に
従う。
【0071】この場合システムコントローラ16内のス
レーブモード制御回路68が、バックプレーンアドレス
バス23および他のモジュールから来るバックプレーン
バス21の制御線を通して送られる信号に応答する。
【0072】スレーブモード制御回路68は伝送ゲート
65と66に信号を出して、他のバックプレーンモジュ
ールがシステムコントローラ16にアクセスできるよう
にする。この場合は、マスターモード制御回路67は休
止状態にある。
【0073】2個のバスゲート65と66は、バックプ
レーン通信のモードに従って、制御バス62の各線を通
してマスター制御回路67とスレーブ制御回路68から
使用可能制御信号を受ける。バックプレーン調停回路6
9はバックプレーン11へのアクセスを管理し、またシ
ステム中の各モジュールから来るアクセス要求を調整す
る。
【0074】プロセッサ部31のプログラマブルリード
オンリーメモリはフラッシュ型メモリ55で、例えばア
ドバンスト・マイクロ・デバイセス社が1989年に発
行した、「フラッシュメモリ製品データブック」に記述
されている。この装置は、第2マイクロプロセッサ54
が実行するバーストアドレシングモードで動作するよう
に構成されている。
【0075】このアドレシングモードでは、第2マイク
ロプロセッサ54はアクセスしようとするメモリ部の最
初のアドレスを送る。例えばこのアドレスは、メモリか
ら連続して読み出してマイクロプロセッサに与える一連
のプログラム命令の、最初の命令の記憶場所である。
【0076】フラッシュメモリ55が最初のアドレスを
受けた後、続いて各読み出し/書き込みサイクルの制御
信号を受けると、メモリアドレスジェネレータは次に続
く記憶場所に段階を増分する。
【0077】第2マイクロプロセッサ54が連続しない
アドレスにアクセスしようとするとき、例えば制御プロ
グラム中にジャンプ命令が来て次の命令が前の命令に隣
接していない場合には、第2マイクロプロセッサは新し
いアドレスをフラッシュメモリ55に送る。
【0078】またフラッシュメモリ55は、第2マイク
ロプロセッサ54のシーケンシャルアドレシングモード
にも適応する。このモードでは、ある記憶場所へのアク
セス要求は全てアドレスを伴って行う。マイクロプロセ
ッサ54から受ける制御信号は、その時刻に用いられて
いるアドレシングモードを指定する。
【0079】図3において、フラッシュメモリ55は破
線で示す2個のバンク71と72を備え、各バンクはそ
れぞれ4個のフラッシュメモリ装置73−76と77−
80を持つ。例えばフラッシュメモリ装置はアドバンス
ト・マイクロ・デバイセス製のモデル28F010装置
である。
【0080】各メモリ装置は8ビットで、4個が共通の
バンクアドレスバス81と内部バンク内部データバス8
2または83に並列に接続される。データバス82と8
3の個々のビット線が各メモリ装置73−76と77−
80に接続する。従って所定のバンクにある4個のメモ
リ装置の組合せにより、各バンク内の個々のアドレス可
能な各記憶場所に32ビットのデータ語が含まれる。
【0081】第2マイクロプロセッサ54は、データを
フラッシュメモリ55に記憶させる場合に32ビット語
ではなくバイトのデータでアドレスを出す。従ってプロ
セッサ部バス64のアドレスを4で割って、所望のバイ
トを含むメモリの語のアドレスを生成する。
【0082】このアドレスをここでは「語アドレス」と
呼び、バンクアドレスバス81に与える。各バンクの装
置の数を多くするか少なくするかにより、または8ビッ
ト以上の装置を使用することにより、各記憶場所には別
の大きさのデータ語を記憶することができる。
【0083】バンクアドレスバス81は、第1および第
2フラッシュメモリバンク71と72に対してそれぞれ
別個の8ビットの下位バス81L′と81L″に分割さ
れる。下位バス81L′と81L″は8ビットの最下位
アドレスビットを伝える。残りの上位のアドレスビット
は、両メモリバンク71と72に接続される共通上位ア
ドレスバス81Hが伝える。
【0084】交互配置のバンクアクセスモードで動作し
ているときにフラッシュメモリ55に一群のアドレスを
割り当てるには、第1メモリバンク71の記憶場所に奇
数の語アドレスを割り当て、第2メモリバンク72には
偶数の語アドレスを割り当てる。バス64のアドレスの
ビットA2(語アドレスの最下位ビット)は、どのメモ
リバンクが所望の記録場所を持つかを示す。
【0085】以下に述べるように、内部的には両メモリ
バンクはそれぞれ同じアドレスに記憶場所を含み、メモ
リ制御88は語アドレスの最下位ビットに基いて、両フ
ラッシュメモリバンク71と72のどちらにアクセスす
るかを決める。
【0086】図4Aと図4Bに示すように、第1メモリ
バンク71と第2メモリバンク72は共に、記憶部94
と95および96と97にそれぞれ2分割される。各フ
ラッシュメモリバンクの一方の記憶部95と97は、フ
ラッシュメモリ55を消去しまたはプログラミングする
ためのプログラム命令の複写を含む。
【0087】これらの機能をプログラミングするルーチ
ンについては後で詳細に述べる。他方の部分94と96
は、他のプログラムの記憶と第2マイクロプロセッサ5
4の実行に用いられる。
【0088】プロセッサ部アドレスバス64は並列のマ
ルチプレクサ84に接続され、マルチプレクサ84は制
御バス62の信号に応答して、メモリアドレスバス87
かシフトしたメモリアドレスバス85を通してプロセッ
サ部アドレスバス64をバンクアドレスジェネレータ8
6に結合する。
【0089】マルチプレクサは、入力バス64をメモリ
アドレスバス87に結合すると、最下位の2ビットA0
とA1を落として、つまりアドレスを4で割って、語ア
ドレスを発生する。この結合はシーケンシャルアクセス
モードで用いられる。
【0090】交互配置のバンクアクセスモードでは、マ
ルチプレクサはビットA0とA1を落とし、残りのビッ
トを1桁シフトして、第2マルチプレクサ54からのア
ドレスを8で割る。これにより、シフトしたメモリアド
レスバス85に与えられたアドレスからビットA2を落
とす。
【0091】マルチプレクサ84からの2本のバス85
と87は、バンクアドレスジェネレータ86に入力とし
て与えられ、得られたアドレスを開始アドレスとして用
い、バーストモードアドレッシング中に第1および/ま
たは第2メモリバンク71、72内の一連の隣接する記
憶場所にアドレスする。フラッシュメモリ制御回路88
によって使用可能になると、アドレスジェネレータ86
はアドレスをバンクアドレスバス81に与える。
【0092】プロセッサ部アドレスバス64からのアド
レス線A2はフラッシュメモリ制御88に入り、このア
ドレスビットを用いて2個のフラッシュメモリバンク7
1と72の一方を選択して、交互配置のモードでアクセ
スする。
【0093】またプロセッサ部制御バス62の選択され
た線はフラッシュメモリ制御88に接続され、バンクア
ドレスジェネレータ86と第1および第2フラッシュメ
モリバンク71と72を制御する信号を生成する。
【0094】またフラッシュメモリ制御88は2組の双
方向データバッファ90と91の一方を選択的に使用可
能にして、バンクデータバス82と83をプロセッサ部
データバス63にそれぞれ結合する。フラッシュメモリ
制御88がバッファ92と93をそれぞれ選択的に使用
可能にすると、バンクデータバス82と83を命令バス
61に結合することができる。
【0095】プロセッサ部データバス63の各線は制御
レジスタ89の入力に接続され、制御バス62の信号に
よって使用可能になると、制御レジスタ89はこれらの
線で送られたデータを記憶する。
【0096】以下に説明するように、制御レジスタ89
に記憶されている1データビットは、フラッシュメモリ
55が交互配置のバンクアクセスモードで動作するか、
単一バンクアクセスモードで動作するか、また後者のモ
ードではどのバンクをアクセスするか、を決定する。
【0097】前者のアクセスモードでは、第1バンク7
1にある記憶場所に奇数番号アドレスを割り当て、第2
バンク72に偶数番号アドレスを割り当てる。単一バン
クアクセスモードでは、メモリバンク71と72の一方
だけにアクセスする。どちらのアクセスモードでも、第
2マイクロプロセッサ54はバーストまたはシーケンシ
ャルアドレスモードで動作することができる。
【0098】制御レジスタの他のビットは、個々にメモ
リバンク71と72を選んで消去またはプログラミング
する。制御レジスタ89の出力は、バンクマルチプレク
サ84とフラッシュメモリ制御88に結合される。
【0099】フラッシュメモリ55は、メモリバンク7
1と72のどちらかの記憶場所だけに順次アクセスする
か、または交互配置の方式で両メモリバンクにアクセス
するように構成することができる。
【0100】交互配置のアクセスモードでは、バンク7
1と72は共に第2マルチプレクサ54からのアクセス
信号と制御信号によって同時に動作するが、バッファ9
0−93によって一度に一方のバンクだけが命令バス6
1とデータバス63に接続される。
【0101】交互配置のアクセスモードでフラッシュメ
モリからプログラム命令を得る場合、命令は両バンク7
1と72から交互に読み出される。
【0102】プログラム命令をメモリバンク71と72
内の主記憶部94と96から読み出して実行するとき
は、制御レジスタ89内の1ビットがフラッシュメモリ
55をバンク交互配置アクセスモードにする。このデー
タは第2マイクロプロセッサから送られて制御レジスタ
89に記憶される。
【0103】このモードでは、奇数番号のアドレスを第
1バンク71に割り当て、偶数アドレスを第2バンク7
2に割り当てるので、命令を各フラッシュメモリバンク
から交互に読み出す。
【0104】更に第2プロセッサ54は一般に、バース
トアドレシングを用いてフラッシュメモリから実行する
命令を得る。バーストモードアドレシングの使用は、制
御バス62の信号によって指示される。
【0105】メモリアクセス操作は、一連の命令の最初
の命令を記憶するアドレスを第2マイクロプロセッサ5
4が発生することから始まる。このアドレスは偶数か奇
数で、プロセッサ部31のアドレスバス64を通してフ
ラッシュメモリ55に送られる。
【0106】同時にアドレスデコーダ回路57はこのア
ドレスをデコードして一連の制御信号を生成し、フラッ
シュメモリ55の必要な読み出しまたは書き込み動作を
可能にする。
【0107】フラッシュメモリ制御88は、アドレスデ
コーダ57および第2マイクロプロセッサ54から制御
バス62を通して送られる従来の制御信号を受ける。こ
れらの制御信号は読み出し動作が起こっていることを示
し、フラッシュメモリ制御88をシステムコントローラ
16の他の要素に同期させる。
【0108】フラッシュメモリ制御88はアドレスバス
64のビットA2に応答して、必要なフラッシュメモリ
バンク71または72を使用可能にする。詳しくいう
と、フラッシュメモリ制御によって、ビットA2が低論
理レベルのときは第1バンク71にアクセスし、ビット
A2が高論理レベルのときは第2バンク72にアクセス
する。
【0109】第2マイクロプロセッサ54からのアドレ
スはフラッシュメモリバンクマルチプレクサ84が受け
て、シフトしたメモリアドレスバス85を通してバンク
アドレスジェネレータ86に、交互配置のアクセスモー
ドで送る。マルチプレクサは語アドレスを1ビット右に
シフトし、語アドレスの最下位ビット(A2)を落と
す。
【0110】この操作の結果をバンクアドレスジェネレ
ータ86に送り、ここでフラッシュメモリバンク71と
72にアクセスする第1アドレスとして用いる。この最
初のアドレスの最上位ビットは、バンクアドレスジェネ
レータから直接上位バンクアドレスバス81Hに与え、
最下位8ビットは下位アドレスバス81L′と81L″
に与える。
【0111】読み出される第1命令が第1メモリバンク
71に記憶されていると仮定する。フラッシュメモリ制
御88によってメモリ装置73−76と命令バスバッフ
ァ92が使用可能になり、第1フラッシュメモリバンク
71はプロセッサ部31内の命令バス61に接続され
る。
【0112】また第1メモリバンク71は、フラッシュ
メモリ制御88から他の制御信号を受ける。メモリ装置
はこれに応答して、アドレスされた場所の内容を第1バ
ンクデータバス82に与える。
【0113】命令をバス61に与えると、従来のデータ
伝送応答信号がフラッシュメモリ制御回路88から制御
バス62に与えられる。アクセスが完了すると、フラッ
シュメモリ制御88は制御バス62の信号に応答して、
命令バッファ92を使用不可能にする。
【0114】第1メモリバンク71にアクセスしている
間に、フラッシュメモリ制御88は制御信号を第2メモ
リバンク72に与えて、バンクアドレスバス81を通し
て送る同じアドレスの記憶場所にアクセスする。これに
より、この記憶場所の内容を第2バンクデータバス83
に与える。
【0115】しかし第2メモリバンク72に関連するバ
スバッファ91と93はこのとき使用可能になっていな
いので、第2バンクデータバス83はプロセッサ部バス
61と63には結合されない。
【0116】連続したプログラム命令がメモリバンク7
1と72から交互に読み出される。この例では、第2プ
ログラム命令はフラッシュメモリ55の第2バンク72
から読み出される。
【0117】第2マイクロプロセッサ54が次の読み出
し要求を制御バス62に発生させると、フラッシュメモ
リ制御88はこれに応答して、第2メモリバンク72に
関連する命令バスバッファ93を使用可能にする。
【0118】第1命令と第2命令は両メモリバンクのそ
れぞれ同じ内部アドレスにあったので、この命令は前の
アクセス要求のときにすでに第2バンクデータバス上に
ある。従って第2命令を得るのに必要な時間は、第1命
令に必要な時間よりはるかに小さい。
【0119】第2命令を第2フラッシュメモリバンク7
2から読み出している間に、バンクアドレスジェネレー
タは第1バンク71の下位アドレスバス81L′の最下
位8ビットを増分する。
【0120】従ってこのサイクルの間に、第1バンクは
次のアクセス要求を受けるとすぐ次の第3命令にアクセ
スする準備ができている。バスバッファ90と92が使
用不可能なので、第3命令はデータバス63にも命令バ
ス61にも与えられない。
【0121】フラッシュメモリ制御88はプログラム命
令に対する第3要求に応答して、第1メモリバンク71
と関連する命令バスバッファ92を使用可能にし、この
バンクから第3命令を読み出す。
【0122】この間に、バンクアドレスジェネレータ8
6は、第2フラッシュメモリバンク72の下位バス81
L″に与えられている最下位アドレスビットを増分す
る。この動作により、フラッシュメモリ55が次のアク
セス要求を受けると、第2バンク72は次の命令を出す
準備ができている。
【0123】このようにして、フラッシュメモリ制御8
8は読み出し要求を受けると、メモリバンク71と72
から交互に命令を得る。この方法により、一連の隣接す
る記憶場所へのアクセスが速くなる。
【0124】次の命令が次の論理アドレスにある限り、
バンクアドレスジェネレータ86がアドレシングを制御
するので、第2マイクロプロセッサ54は各アクセス要
求と共にアドレスを送る必要がない。
【0125】ジャンプ命令を実行するときのように、次
の命令が隣接するメモリ場所に記憶されていない場合
は、第2マイクロプロセッサ54はアクセス要求と共に
この命令のアドレスをフラッシュメモリ55に送る。フ
ラッシュメモリ制御88はこれに応答して、新しいアド
レスをバンクアドレスジェネレータ86にロードする。
【0126】フラッシュメモリのシーケンシャルアドレ
シングはバーストアドレシングほど効率的ではないが、
シーケンシャルアドレシングは交互配置のアクセスモー
ドで記憶場所にアクセスするのに用いることができる。
【0127】この場合フラッシュメモリ制御88は、シ
ーケンシャルアドレシングモードを用いることを示す信
号を第2マイクロプロセッサ54から受ける。制御88
はこれに応答して、バンクアドレスジェネレータに指示
し、シフトしたメモリアドレスバス85からのアドレス
を直接バンクアドレスバス81に与える。
【0128】プログラム命令ではなくてデータをフラッ
シュメモリ55から読み出すときは、データはメモリ装
置73−80のどれに記憶してもよい。その結果フラッ
シュメモリバンク71と72は各データ要求に応答して
同時に動作するが、プロセッサ部データバス63には一
方のバンクだけが結合される。
【0129】この場合マルチプレクサ84は、命令では
なくてデータを要求していることを示す信号を制御バス
線98から受ける。この信号によりマルチプレクサ84
は入力するアドレスに作用し、制御レジスタが指定した
のが交互配置したアクセスモードか単一バンクアクセス
モードかにかかわらず、この結果をシフトしたアドレス
バス85に与える。
【0130】またフラッシュメモリ制御88は線98の
制御信号を受け、この信号とアドレスビットA2とを用
いて、所望のデータを含むメモリバンク71か72に関
連するデータバッファ90か91を使用可能にする。フ
ラッシュメモリバンク71と72は共にアドレスをバス
81から受けるが、一方のバンクだけがプロセッサ部デ
ータバス63に接続される。
【0131】更に図3において、フラッシュメモリ55
に記憶されたプログラムを更新する場合は、フラッシュ
メモリバンク71と72を共に完全に消去しなければな
らない。しかしフラッシュメモリを消去しまた再プログ
ラミングするソフトウエアルーチンもまた、これらの記
憶要素に含まれている。
【0132】このフラッシュメモリ55は、第1フラッ
シュメモリバンク71の95と第2フラッシュメモリバ
ンク72の97の部分にこれらのルーチンの複写を持っ
ている。一方のバンクを再プログラミングしている間
に、第2マイクロプロセッサ54は他方のバンクに記憶
している消去および再プログラミングルーチンを実行す
る。
【0133】一方のバンクを消去すると、消去および再
プログラミングルーチンを他方のバンクから複写し、他
のソース、例えばRAM56からのプログラムをその主
記憶部に複写する。次に一方のバンクに記憶しているル
ーチンを用いて、他方のバンクを再プログラミングす
る。
【0134】従って、プログラミングの前に全ての場所
を順次消去する必要のある従来のフラッシュメモリ装置
を命令の記憶に用いて、自分を再プログラミングするこ
とができる。システムコントローラの初期化またはブー
トアップルーチンのような他の重要なデータの複写も、
このようにして記憶することができる。
【0135】フラッシュメモリの再プログラミング手順
を第1メモリバンク71のプログラミングについて述べ
るが、第2メモリバンク72のプログラムも同じ動作で
逐次行うことができる。
【0136】手順は、第2マイクロプロセッサ54が図
3の制御レジスタ89に構成データをロードすることか
ら始まる。制御レジスタ89にロードするモード制御ビ
ットは、フラッシュメモリを単一バンクアクセスモード
にする論理レベルを持つ。
【0137】制御レジスタの別のビットは、プログラミ
ングのために第1メモリバンク71を選んだことを示
す。フラッシュメモリ制御88はレジスタ89の制御ビ
ットに応答して、必要なバンクをプログラム可能にす
る。
【0138】プログラミング動作中は、第2マイクロプ
ロセッサ54はバーストアドレシングとシーケンシャル
アドレシングのどちらを用いてもよい。
【0139】マルチプレクサ84は制御バス62の信号
に応じて、バーストアドレシングを用いるかシーケンシ
ャルアドレシングを用いるかに従って、メモリバス85
か87を通してプロセッサバス64をバンクアドレスジ
ェネレータ86に結合する。
【0140】プログラミング動作中はシーケンシャルア
ドレシングを用いる場合を考える。従って第2マルチプ
レクサ54からの命令アドレスは、バンクアドレスジェ
ネレータ86に直接与えられる。
【0141】フラッシュメモリ制御88は語アドレスの
ビットA2を無視して、常に選択したバンクだけを使用
可能にする。フラッシュメモリ制御88が制御バス62
を通して受ける別の信号は、第2マイクロプロセッサか
らの要求が読み出し動作か書き込み動作かを示す。制御
回路88はこれに応じて、制御信号を必要なメモリバン
ク71か72に送る。
【0142】フラッシュメモリ制御88はデータバッフ
ァ90を使用可能にし、各書き込みまたはアクセス確認
サイクル中に、第1メモリバンクデータバス82をプロ
セッサ部データバス63に接続する。同様にバッファ9
3を使用可能にして、第2メモリバンクデータバス83
をプロセッサ部命令バス61に接続する。
【0143】このように接続すると、第2マイクロプロ
セッサ54は第2フラッシュメモリバンク72から消去
および再プログラミング命令を読み出して第1メモリバ
ンク71をプログラムするように、フラッシュメモリ5
5を構成することができる。
【0144】フラッシュメモリ55の特定の消去/プロ
グラミングのシーケンスとコマンドは、メモリ装置の製
作者が定義する。一般的な手順では、先ず各記憶場所を
低論理レベル(ゼロ)にセットし、次に指定したメモリ
装置に消去コマンドを出して、全ての記憶場所を同時に
消去する。
【0145】1個の消去コマンドで全ての記憶場所を消
去できれば理想的であるが、いくつかの記憶場所は消去
されないのが普通である。従って第2マイクロプロセッ
サ54はメモリ装置内の全ての記憶場所が消去されてい
るかどうか確認し、必要があれば装置全体が消去される
まで更に消去コマンドを出さなければならない。
【0146】図3に示すフラッシュメモリ55は、数個
のメモリ装置73−76と77−80を並列に接続して
第1バンク71と第2バンク72を形成するが、時間を
節約するには全てのバンクを一斉に消去するのが望まし
い。
【0147】しかし確認手順中に1装置の記憶場所だけ
が消去されていないことが分かった場合は、4個の装置
全部に第2の消去コマンドを出すことは好ましくない。
これは、フラッシュメモリは限られた回数以上消去サイ
クルを行うと損傷するからである。
【0148】従って本技術の中心的な特徴の1つは、全
バンクの消去と確認は並列に行うが、追加の消去コマン
ドは更に消去を必要とする記憶装置にだけ出すことであ
る。
【0149】全てのフラッシュメモリバンクを消去した
ことが確認されれば、再プログラミングして記憶場所に
新しいプログラムデータを記憶することができる。消去
の場合と同様に、再プログラミングは全てのバンク一斉
に行う。確認の結果あるメモリ装置73−80がデータ
を保持していなければ、その装置だけ再プログラミング
する。
【0150】従って各記憶場所に行うプログラミングサ
イクルの回数も最小になる。本再プログラミング技術で
は、所定のバンク内で全てのメモリ装置について多くの
動作を同時に行うが、装置に不必要な消去およびプログ
ラミングサイクルは行わない。
【0151】本発明の詳細なフラッシュメモリ消去ルー
チンを図5のフローチャートで説明する。このルーチン
の命令の複写は、両メモリバンク71と72の部分95
と97に記憶されている。消去と再プログラミング用の
プログラムの命令は他方のバンクから読み出される。
【0152】消去手順は段階100で始まり、第2マイ
クロプロセッサ54は制御レジスタ89をセットしてメ
モリバンク71と72のどちらを消去するかを選択し、
フラッシュメモリ回路を構成する。このルーチンはどち
らのバンクを選択しても同じなので、第1バンク71を
選択した場合について述べる。
【0153】次に段階101で図6に示すプログラミン
グルーチンを呼び出し、第1メモリバンク71の各記憶
場所をゼロにする。このゼロにする手順は、後でフラッ
シュメモリプログラミングルーチンの動作を説明する際
に述べるる。
【0154】第1バンク71の全ての記憶場所をゼロに
すると、プログラムの実行は段階102に戻る。ここで
第2マイクロプロセッサ54は、消去手順中に用いる変
数、カウンタ、他のレジスタを初期化する。
【0155】段階104で第2マイクロプロセッサ54
は、消去セットアップコマンドと、また続いて消去コマ
ンドをフラッシュメモリ55に書込む。これらのコマン
ドはデータバス63とデータバッファ90を通して、第
1メモリバンク71の装置73−76に送られる。
【0156】次に段階106でプログラムは一定の時
間、例えば10ミリ秒遅れる。これはメモリ装置の製作
者が指定するもので、消去コマンドを出してから消去確
認が始まるまでの間に必要な遅れである。
【0157】このルーチンでフラッシュメモリ71に送
られる32ビット命令は4個のバイトに分割され、各バ
イトはメモリ装置73、74、75、76のそれぞれへ
の、個々のコマンドを含んでいる。これによりバンク7
1の各装置は別個の動作状態になり、他の装置は読み出
し状態のままで、ある1個の装置だけを消去することが
できる。
【0158】これが本発明の中心となる動作であって、
前回の動作で完全には消去されなかった装置だけを再び
消去することがでる。しかしこのとき、第1バンク71
の4個のメモリ装置73−76が受ける消去コマンドは
全く同一のものである。
【0159】段階104で1個のフラッシュメモリ命令
を出すと、選択したメモリバンク内のメモリ場所が全て
消去されるのが最もよい。しかしこれは実際には滅多に
起こらず、バンク内には完全には消去されない装置が1
個以上あることがよくある。
【0160】従って段階108から始まって、第2マイ
クロプロセッサ54は第1メモリバンク71内の各記憶
場所に順次アクセスして、実際に消去されているかどう
か判断する。
【0161】ここで第2マイクロプロセッサはデータバ
ス63にフラッシュメモリ命令を出し、第1メモリバン
ク71の各記憶装置73−76を消去確認状態にし、各
装置の内容を並列に順次読み出せるようにする。次に段
階110で再びプログラムの実行は、装置の製作者が指
定する一定の時間、例えば6マイクロ秒遅れる。
【0162】段階112に進んで、第2マイクロプロセ
ッサ54はフラッシュメモリ55に記憶場所のアドレス
を送って、第1メモリバンク71から32ビットのデー
タ語を得る。次にこのデータ語を確認して、ビットが全
て消去されているかどうか判断する。
【0163】段階114でこのデータ語の全てのビット
が消去されていたと仮定すると、段階116で第2マイ
クロプロセッサは、第1フラッシュメモリバンク71の
最後のアドレスを確認したかどうか判断する。
【0164】確認が終った場合は、消去ルーチンは終了
して主制御プログラムに戻る。未確認のメモリ場所が残
っている場合は、段階118で、第2マイクロプロセッ
サのレジスタに記憶している第1フラッシュメモリバン
ク71のアドレスを増分する。
【0165】次に段階120で、各バイトを消去確認コ
マンドに設定して、フラッシュメモリ55の命令を形成
する。プログラムの実行は段階108に戻り、フラッシ
ュメモリ命令を送って、各記憶装置73−76が消去確
認状態にあって次の場所をチェックできることを確かめ
る。
【0166】段階114で、フラッシュメモリバンク7
1から読み出した語の中に消去されていないビットが1
個以上あることが分かると、プログラムの実行は段階1
22に分岐する。このプログラムの分岐は、語の各バイ
トを調べて、記憶装置73−76のどれを更に消去する
必要があるかを判断するためである。このために、バイ
トポインタを初期化してゼロにする。
【0167】次に段階124で第2マイクロプロセッサ
54はポインタが指定したバイトを調べて、全てのバイ
トが消去されたかどうか判断する。全てが消去された場
合は、段階136に進む前に段階126で、調べたデー
タを読み出したメモリ装置用のフラッシュメモリ命令の
バイトを、読み出しモードコマンドに設定する。
【0168】しかし調べたバイトが消去されていなけれ
ば、プログラムの実行は段階128に分岐して、データ
バイトを読み出したメモリ装置73−76用のフラッシ
ュメモリ命令のバイトを消去コマンドにセットする。そ
して段階130で、そのメモリ装置73−76の消去サ
イクル回数のカウンタを増分し、段階132で検査す
る。
【0169】このルーチンで1,000回消去サイクル
を行ってなお消去されないメモリ装置の場所があれば、
そのメモリ装置は有効な寿命を超す。この場合、段階1
34でどの装置が不良であるかを知らせる信号をユーザ
に送ってからプログラムを終了する。そしてメモリを交
換するまでこのシステムは休止状態に入る。
【0170】段階132で装置の消去サイクルが1,0
00回に達していない場合は、プログラムの実行は段階
136に分岐し、バイトポインタをテストして、データ
語のバイトを全て検査したかどうか判断する。
【0171】未検査のバイトが残っている場合は、段階
138でバイトポインタを増分し、段階124に戻って
次のバイトをテストし、その中のビットを全て消去した
かどうか判断する。
【0172】第1フラッシュメモリバンク71から読み
出した所定の語のバイトを全て検査し終ると、第2マイ
クロプロセッサ54は段階104に戻る。
【0173】この時点で、第2マイクロプロセッサ54
のレジスタに一時的に記憶されたフラッシュメモリ命令
の各バイトに含まれるのは、関連するメモリ装置73−
76を再び消去するコマンドか、またはこれまでチェッ
クした場所は全て消去されたためメモリ装置を読み出し
状態にするコマンドである。
【0174】段階104で、フラッシュメモリ命令をフ
ラッシュメモリ55に書き込んで、再消去する必要があ
るとして選択したメモリ装置73−76の消去を行う。
【0175】次に各装置の同じ組の場所を再び検査し、
これらの場所に記憶されていたビットが重ねて行った消
去サイクルによって全て完全に消去されたかどうか判断
する。
【0176】第2マイクロプロセッサ54は消去ルーチ
ンの各段階を循環して、記憶場所が全て消去されたこと
を確認するまで、第1フラッシュメモリバンク71の4
個のメモリ装置73−76の各記憶場所を検査し続け
る。
【0177】この時点で、フラッシュメモリ消去ルーチ
ンの実行は終了し、第2マイクロプロセッサ54は実行
中の主動作プログラムに戻る。
【0178】一般にフラッシュメモリ55の1バンクを
消去し終ると、すぐ再プログラミングする。これは第2
マイクロプロセッサ54が行い、図6のフローチャート
に示すフラッシュメモリプログラミングルーチンを実行
する。
【0179】このプログラミング手順は段階101の消
去ルーチンでも用いられ、消去パルスを与える前に、選
択したフラッシュメモリバンク71か72の各記憶場所
をゼロにセットする。消去を始める前に全てのメモリセ
ルをゼロにプログラミングすることは、フラッシュメモ
リ装置の製作者からの要求である。
【0180】フラッシュメモリプログラミングルーチン
は段階140から始まり、プログラムで用いる変数、カ
ウンタ、レジスタを初期化する。段階142で、現在消
去モードであるかどうか判断する。
【0181】このプログラミングルーチンが消去手順の
一部として用いられていない場合は、プログラムは段階
143に分岐し、第2マイクロプロセッサ54は制御レ
ジスタ89にデータを送ってフラッシュメモリ回路55
をプログラムモードにし、メモリバンク71と72の一
方を再プログラミングするよう指定する。ここで再び第
1バンクを選択したとする。
【0182】段階144で、32ビットのフラッシュメ
モリ命令を形成する。この命令は消去ルーチンで用いた
ものと同様で、各バイトは再プログラミングする第1バ
ンク71のメモリ装置73−76のそれぞれに対する別
個の命令を含む。
【0183】各バイトは個別に構成されるので、他の装
置をプログラミングしている間に1個以上の装置を読み
出しモードにすることができる。この特徴が用いられる
のは、あるメモリ装置の記憶場所が第1プログラミング
サイクルでデータを保持せず、従って追加のサイクルが
必要な場合である。
【0184】従って第1サイクルで正しく再プログラミ
ングされなかったメモリ装置73−76だけが第2の再
プログラミングコマンドを受ける。しかし最初は、フラ
ッシュメモリ命令の全てのバイトにはセットアップコマ
ンドをロードする。また4個1組のカウンタをセットし
て、4個の各メモリ装置の場所を再プログラミングする
のに必要なプログラミングサイクル回数をカウントでき
るようにする。
【0185】プログラムの実行は次に段階146に進
み、実行中の手順が消去動作かプログラミング動作か判
断する。フラッシュメモリがプログラミングモードであ
れば、段階148でこのソフトウエアはRAM56、第
2フラッシュメモリバンク72またはシステム内のプロ
グラムを含む他の装置からプログラム命令語を取り出
し、第1フラッシュメモリバンク71にロードする。
【0186】命令を記憶する場所は、第2マイクロプロ
セッサ54のレジスタ内に保持されているソースアドレ
スで示される。段階148で、取り出した語を第2マイ
クロプロセッサ54のデータレジスタ内に一時的に記憶
する。
【0187】このプログラミングルーチンを消去ルーチ
ンの最初に実行しているのであれば、実行は段階150
に分岐して、第2マイクロプロセッサのこのデータレジ
スタをゼロにセットする。
【0188】前に述べたように、図6のプログラミング
ルーチンは消去ルーチンの最初にも用いられ、フラッシ
ュメモリバンクの記憶場所を全てゼロにリセットする。
【0189】段階148か150で記憶する命令を得た
後、段階152で4個1組のセットアップおよびプログ
ラムコマンドをフラッシュメモリ55に送り、各メモリ
装置の状態を、データを受けて記憶できるようにする。
【0190】図3のフラッシュメモリ制御88によって
第1双方向データバッファ90はすでに使用可能になっ
ており、プロセッサ部データバス63は第1フラッシュ
メモリバンク71のデータバス82に結合している。
【0191】フラッシュメモリ命令のコマンドはこの線
路を通って並列にメモリ装置73−76に送られる。各
メモリ装置は、その装置用の特定のコマンドを含むフラ
ッシュメモリ命令の個別のバイトに応答する。
【0192】ある場所を再プログラミングする最初の段
階では、これらの各バイトはプログラムセットアップコ
マンドを含んでいる。フラッシュメモリ命令を出した
後、第2マイクロプロセッサ54はアドレスバス64を
通して記憶場所のアドレスを送り、記憶のためのプログ
ラム命令をデータバス63に与える。
【0193】図3において、プログラミング用の制御レ
ジスタ89に記憶されたデータにより、マルチプレクサ
84はメモリアドレスバス87を通して、プロセッサ部
アドレスバス64をバンクアドレスジェネレータ86に
直接接続する。
【0194】またフラッシュメモリ制御88は制御信号
に応答して、再プログラミングのために選択した第1フ
ラッシュメモリバンク71に必要なコマンドを送る。
【0195】第1フラッシュメモリバンク71のメモリ
装置73−76はプログラムセットアップコマンドに応
答して、バス82のビットをアドレス記憶場所に記憶す
る。段階153では、マイクロプロセッサ54がプログ
ラム確認コマンドを出す前に10マイクロ秒の遅れが必
要である。
【0196】この後段階154で、第2マイクロプロセ
ッサ54はデータバス63と82および双方向バッファ
90を通して1組のプログラム確認コマンドを出す。こ
れらのコマンドによりメモリ装置73−76は、現在ア
クセスした記憶場所に記憶されたばかりのプログラム命
令を装置から読み出してプロセッサ部データバス63に
与える。
【0197】一方第2マイクロプロセッサ54は段階1
56で6マイクロ秒遅れ、フラッシュメモリバンク71
を確認コマンドに従わせる。
【0198】この遅れ期間の最後に、段階158で第2
マイクロプロセッサ54はデータを読み出し、段階16
0で、第1フラッシュメモリバンク71から読み出した
データと段階152で記憶場所をプログラムするのに用
いたデータとを比較する。
【0199】比較した結果これらの語が同じである、つ
まりフラッシュメモリを正しくプログラムしたと仮定す
ると、プログラムの実行は段階162に分岐し、プログ
ラム命令を第1メモリバンク71に記憶し終ったかどう
か判断する。
【0200】記憶する命令がまだ残っている場合は、第
1フラッシュメモリバンク71内の記憶場所とプログラ
ミングデータのソースの記憶場所とを示す1対のアドレ
スレジスタを、段階164で共に増分する。
【0201】命令をフラッシュメモリ55のバンク71
か72の一方にだけ書き込んでいる間に、命令の行き先
アドレスを8ビット増分し、これにより他のメモリバン
クの記憶場所をバイパスする。
【0202】次にプログラムの実行は段階144に戻
り、フラッシュメモリ55内の次の記憶場所をプログラ
ムする。しかし第1フラッシュメモリバンク71の最後
の場所のプログラムが終ると、ソフトウエアルーチンは
呼び出した元のプログラムに戻る。
【0203】段階160で、フラッシュメモリ55内の
現在アクセスした記憶場所を正しくプログラムしていな
いと第2マイクロプロセッサ54が判断すると、フラッ
シュメモリのプログラミングルーチンの実行は図6の段
階170に分岐する。
【0204】このプログラムの分岐では、記憶場所から
読み出した語の各バイトを検査して、プログラムに失敗
したのは並列のメモリ装置73−76のどれか判断す
る。このルーチンのこの部分の初めに、バイトポインタ
を初期化する。
【0205】このポインタが指定する対応するバイト
は、フラッシュメモリ55から読み出した語と段階15
2で記憶したばかりの命令語から得る。
【0206】次に段階174で、第2マイクロプロセッ
サ54はこれらのバイトを比較して、等しいかどうかを
判断する。等しければ、対応するメモリ装置は正しくプ
ログラムされていることを示す。この場合はプログラム
の実行は段階175に分岐し、比較したデータを含むメ
モリ装置のフラッシュメモリ命令のバイトに、読み出し
モードコマンドをロードする。
【0207】この場合、対応するメモリ装置73−76
は正しくプログラムされているので、1個以上の他の並
列のメモリ装置を再プログラミングする際に重ねて不必
要な再プログラミングサイクルを行わないようにするた
め、読み出しモードにしなければならない。フラッシュ
メモリ命令は、第2マイクロプロセッサ54のレジスタ
に一時的に記憶する。
【0208】段階174で比較したバイトが等しくない
場合は、関連するメモリ装置73、74、75、76の
プログラミングが正しく行われなかったことを示すの
で、段階176を実行する。この段階では、プログラム
に失敗した関連するメモリ装置を再プログラミングに指
定し、そのメモリ装置のフラッシュメモリ命令のバイト
にセットアップコマンドをロードする。
【0209】段階178でそのメモリ装置のプログラム
カウンタを増分し、段階180でチェックして、この記
憶場所を25回プログラムしてなお失敗したかどうか判
断する。もしそうであれば、段階182でユーザに信号
を送り、このメモリ装置は不良であることを知らせてか
らプログラムの実行を停止する。
【0210】この記憶場所で再プログラミングを行った
回数が25回未満であれば、段階184で第2マイクロ
プロセッサ54はバイトポインタをチェックし、データ
語のバイトを全てチェックしたかどうか判断する。もし
未チェックのものが残っていれば、段階186でバイト
ポインタを増分し、段階172に戻って別のバイトをチ
ェックする。
【0211】メモリ装置73−76からの4バイトをチ
ェックした結果プログラミングが完了していれば、プロ
グラムの実行は段階184から段階152に戻る。前回
の命令データを再びメモリバンク71に代えて、前回の
サイクルで正しくプログラムされなかったメモリ装置を
プログラムする。
【0212】しかし前回命令を記憶できなかったメモリ
装置だけをプログラムモードにし、その他は読み出しモ
ードにする。
【0213】第2マイクロプロセッサ54は図6に示す
フラッシュメモリプログラミングルーチンの各段階を循
環して、段階180で装置のどれかが不良であると分か
るまで、または段階162で最後の命令を正しく記憶し
たことが分かるまで続ける。
【0214】消去および再プログラミングの本技術は、
フラッシュメモリに従来用いられた技術より優れた、い
くつかの利点がある。ここに説明した手順は多くの消去
および再プログラミング動作を並列に実行するので、メ
モリ装置が持つ最高の速さで手順を実行する。
【0215】しかし、消去またはプログラミングが失敗
したことが分かった場合は、問題の装置の動作が良くな
ったことが分かるまで、この装置だけを重ねて消去しま
たはプログラミングする。
【0216】このため正しく機能した装置に、不必要な
消去およびプログラミングサイクルを重ねて行わなくな
る。従って本技術によれば、正しく機能した装置を損傷
することはない。
【図面の簡単な説明】
【図1】プログラマブルコントローラの絵画図である。
【図2】本発明のフラッシュメモリを用いる、図1のシ
ステムコントローラの略図である。
【図3】フラッシュメモリの略図である。
【図4】フラッシュメモリの各バンクの記憶場所の記憶
地図である。
【図5】フラッシュメモリを消去するソフトウエアルー
チンのフローチャートである。
【図6】フラッシュメモリをプログラミングするソフト
ウエアルーチンのフローチャートである。
【符号の説明】 10 プログラマブルコントローラ 11 バックプレーン 12 ラック 14 電源モジュール 15 I/Oデータリンク 16 システムコントローラ 17 リモートI/Oラック 18 プロセッサモジュール 19 ローカルI/Oモジュール 20 リモートI/Oスキャナモジュール 21 バックプレーン制御バス 22 バックプレーンデータバス 23 バックプレーンアドレスバス 24 プログラムターミナル 25 ゲーブル 26 アダプタモジュール 28 ローカルエリアネットワーク 30 バックプレーンインターフェース部 31 プロセッサ部 32 通信部 33 通信部制御バス 34 通信部データバス 35 通信部アドレスバス 36 第1マイクロプロセッサ 37 通信部アドレスデコード回路 38 リードオンリーメモリ(ROM) 39 ランダムアクセスメモリ(RAM) 40 通信部調停回路 41 直接メモリアクセス(DMA) 42 カウンタ/タイマ回路(CTC) 43 入出力装置(UART) 44 入出力コントローラ(SIO) 45,46,47 入ラインドライバ 50,51 信号ゲート 52 バス間制御回路 53 制御部調停回路 54 第2マイクロプロセッサ 55 フラッシュメモリ 56 システムコントローラの主RAM 57 プロセッサ部アドレスデコーダ 58 割り込みプロセッサ 59 データ伝送応答およびバスエラー(DTACK/
BERR) 60 クロック回路 61 命令バス 62 プロセッサ部制御バス 63 プロセッサ部データバス 64 プロセッサ部アドレスバス 65,66 信号ゲート 67 マスターモード制御回路 68 スレーブモード制御回路 69 バックプレーン調停回路 71 第1フラッシュメモリバンク 72 第2フラッシュメモリバンク 73−80 メモリ装置 81 バンクアドレスバス 81H 上位バンクアドレスバス 81L′,81L″ 下位バンクアドレスバス 82,83 内部データバス 84 マルチプレクサ 85 シフトしたメモリアドレスバス 86 バンクアドレスジェネレータ 87 メモリアドレスバス 88 フラッシュメモリ制御 89 制御レジスタ 90,91 データバッファ 92,93 バッファ 94,96 主記憶部 95,97 再プログラミング命令部 98 制御バス線
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アレックス ディー.グリーン アメリカ合衆国オハイオ州クリーブランド ハイツ,シャノン ロード 3636

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】デジタルデータ語を記憶するメモリ回路で
    あって、 記憶場所のアドレスを受ける第1手段と、 前記メモリ回路にアクセスを要求する制御信号を受ける
    第2手段と、 外部装置とデータを交換する手段と、 一連の記憶場所を備え、前記データを交換する手段に結
    合される第1および第2メモリバンクと、 前記第1および第2メモリバンクに接続されるアドレス
    バスと、 前記第1および第2メモリバンクを制御する手段であっ
    て、前記制御手段は前記第1および第2受信手段からそ
    れぞれ受けたアドレスとアクセス要求に応答して前記メ
    モリバンク内の一方の記憶場所からデータを読み出し、
    次に前記メモリ回路へのその後のアクセス要求に応答し
    て前記アドレスバスにアドレスを発生し、前記第1よび
    第2メモリバンクの記憶場所から交互にデータを読み出
    す第1モードを持ち、また前記制御手段は前記メモリ回
    路へのアドレスとアクセス要求に応答して、前記第1お
    よび第2メモリバンクの一方だけを使用可能にし、次に
    前記アドレスバスにアドレスを発生して、前記一方のバ
    ンクの記憶場所から順次情報を読み出す第2モードを持
    つ制御手段とを含むメモリ回路。
  2. 【請求項2】前記第1および第2メモリバンクはそれぞ
    れ並列接続の複数の集積回路メモリ装置で形成され、各
    装置はデジタルデータ語の異なるビット群を記憶する、
    請求項1に記載のメモリ回路。
  3. 【請求項3】前記データを交換する手段は、前記第1お
    よび第2メモリバンクにそれぞれ接続される第1および
    第2データバッファを含み、各データバッファは前記制
    御手段からの別個の制御信号によって使用可能になり、 前記制御手段は前記第1モードでアクセス要求に応答し
    て、記憶すデータを読み出すように両メモリバンクを同
    時に使用可能にするが、前記第1および第2データバッ
    ファの一方だけを使用可能にする請求項1に記載のメモ
    リ回路。
  4. 【請求項4】デジタルデータの複合ビット語を記憶する
    メモリ回路であって、 前記メモリ回路にアクセスを要求する制御信号を受ける
    第1手段と、 それぞれ一連の記憶場所を備える第1および第2メモリ
    バンクと、 前記第1および第2メモリバンクに接続されるアドレス
    バスと、 複数の2進ビットから成る記憶場所アドレスを受けて、
    第1アドレス値と、前記第1アドレス値の実質的に半分
    に等しい第2アドレス値とを与える第2受信手段と、 前記第2受信手段に結合されるアドレスジェネレータで
    あって、一連の出力アドレスの最初のアドレスを示す第
    2アドレス値に応答して前記一連の出力アドレスを生成
    し、前記メモリが受ける制御信号によって使用可能にな
    ったときに前記出力アドレスを前記アドレスバスに与
    え、さもなければ前記アドレスジェネレータが前記第1
    アレス値を前記アドレスバスに与える、アドレスジェネ
    レータと、 前記アドレスジェネレータと前記第1および第2メモリ
    バンクを制御する手段であって、第1モードでは前記制
    御手段は前記メモリ回路へのアクセス要求に応答して前
    記第1および第2メモリバンクから記憶したデータを交
    互に読み出し、第2モードでは前記制御手段は前記メモ
    リ回路への各アクセス要求に応答して前記第1および第
    2メモリバンクの同じ一方を使用可能にする制御手段と
    を含むメモリ回路。
  5. 【請求項5】前記各第1および第2メモリバンクはそれ
    ぞれ並列接続の多数の集積回路メモリ装置で形成され、
    各装置はデジタルデータ語の異なるビット群を記憶す
    る、請求項4に記載のメモリ回路。
  6. 【請求項6】前記第2受信手段は前記記憶場所アドレス
    を各メモリバンク内の装置数で割って第1アドレス値を
    与え、前記記憶場所アドレスを各メモリバンク内の装置
    数の2倍で割って第2アドレス値を与える、請求項5に
    記載のメモリ回路。
  7. 【請求項7】入出力データバスと、 前記制御手段からの別個の制御信号によって各データパ
    ッファが使用可能になったとき、前記第1および第2バ
    ンクを前記入出力データバスにそれぞれ結合する第1よ
    び第2デーたバッファとを更に含む、請求項4に記載の
    メモリ回路。
  8. 【請求項8】前記第1モードの前記制御手段はアクセス
    要求に応答して、記憶したデータを読み出すために前記
    第1および第2メモリバンクを同時に使用可能可能にす
    るが、前記第1および第2データバッファの一方だけを
    使用可能にする、請求項7に記載のメモリ回路。
  9. 【請求項9】メモリ回路を消去する方法であって、 前記メモリ回路は並列結合の複数のメモリ装置の第1バ
    ンクを含んで1組の記憶場所を形成し、各メモリ装置は
    消去コマンドに応答して前記装置の複数のデータ記憶領
    域を消去するものであり、 (a) 前記第1バンクの全てのメモリ装置に消去信号
    を出す段階と、 (b) 次に前記各記憶場所の内容を順次読み出して、
    前記記憶場所の全てのビットが消去されたかどうか判断
    する段階と、 (c) ある記憶場所が消去されていないビットを含む
    ことが分かったときは、消去されていないビットに関連
    する記憶装置だけに更に消去コマンドを送り、次に前記
    記憶場所の前記内容を読み出して、今度は全てのビット
    が消去されたかどうか判断する段階と、を含む。
  10. 【請求項10】各記憶場所の前記内容を逐次読み出す前
    記段階は、前記バンクの全てのメモリ装置からデータを
    同時に読み出す、請求項9に記載の方法。
  11. 【請求項11】全ての記憶場所が消去されたと判断した
    後、 (d) データを記憶するために全てのメモリ装置を同
    時に書き込み状態にする段階と、 (e) 所定の記憶場所のアドレスとデータ語を前記メ
    モリ装置に送る段階と、 (f) 前記所定の記憶場所の前記内容を読み出す段階
    と、 (g) 前記所定の記憶場所から読み出した前記内容と
    送った前記データ語とを比較して、前記データ語が正し
    く記憶されたかどうか判断する段階と、 (h) 前記比較段階の結果前記データ語を正しく記憶
    しなかったことが分かったときは、前記データ語のビッ
    トを正しく記憶しなかったメモリ装置だけを書き込み状
    態にして、前記データ語を再び前記メモリ回路に送る段
    階と、を更に含む、請求項9に記載の方法。
  12. 【請求項12】前記所定の記憶場所の前記内容を読み出
    す前記段階は、全てのメモリ装置からデータを同時に読
    み出す、請求項11に記載の方法。
  13. 【請求項13】段階(h)の後で段階(f)に戻り、前
    記データを今度は正しく記憶したかどうか確認すること
    を更に含む、請求項11に記載の方法。
  14. 【請求項14】段階(g)で前記データ語を正しく記憶
    したと判断した後で段階(d)に戻り、異なる記憶場所
    に別のデータ語を記憶することを更に含む、請求項11
    に記載の方法。
  15. 【請求項15】前記メモリ回路が並列結合の複数のメモ
    リ装置の第2バンクを含んで1組の記憶場所を形成し、
    各記憶装置は消去コマンドに応答して前記装置内の複数
    のデータ記憶領域を消去し、前記メモリ回路内のデータ
    の消去と記憶を制御するプログラムの別の複写を各バン
    クに記憶し、一方のバンクで消去または記憶動作を実行
    中に他方のバンクからプログラムを読み出す、請求項1
    1に記載の方法。
  16. 【請求項16】並列結合の複数のメモリ装置の1バンク
    を含むメモリ回路を再プログラミングする方法であっ
    て、 (a) データを記憶するために全てのメモリ装置を同
    時に書き込み状態にする段階と、 (b) 所定の記憶場所のアドレスとデータ語を前記メ
    モリ装置に送る段階と、 (c) 前記所定の記憶場所の前記内容を読み出す段階
    と、 (d) 前記所定の記憶場所から読み出した前記内容と
    送った前記データ語とを比較して、前記データ語を正し
    く記憶したかどうか判断する段階と、 (e) 前記比較段階の結果前記データ語を正しく記憶
    しなかったことが分かったときは、前記データ語の部分
    を正しく記憶しなかったメモリ装置だけを書き込み状態
    にして、前記データ語を再び前記メモリ回路に送る段階
    と、を含む。
  17. 【請求項17】段階(e)の後で段階(c)に戻り、前
    記データを今度は正しく記憶したかどうか確認すること
    を更に含む、請求項16に記載の方法。
  18. 【請求項18】段階(d)が前記データ語を正しく記憶
    したと判断した後で段階(a)に戻り、異なる記憶場所
    に別のデータ語を記憶することを更に含む、請求項16
    に記載の方法。
  19. 【請求項19】前記所定の記憶場所の前記内容を読み出
    す前記段階は、全てのメモリ装置からデータを同時に読
    み出す、請求項16に記載の方法。
JP4349672A 1991-11-12 1992-11-12 フラッシュメモリ回路と操作方法 Pending JPH06202942A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/790,833 US5263003A (en) 1991-11-12 1991-11-12 Flash memory circuit and method of operation
US790833 1991-11-12

Publications (1)

Publication Number Publication Date
JPH06202942A true JPH06202942A (ja) 1994-07-22

Family

ID=25151865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4349672A Pending JPH06202942A (ja) 1991-11-12 1992-11-12 フラッシュメモリ回路と操作方法

Country Status (4)

Country Link
US (1) US5263003A (ja)
EP (1) EP0542205B1 (ja)
JP (1) JPH06202942A (ja)
DE (1) DE69226606T2 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH064399A (ja) * 1992-06-22 1994-01-14 Hitachi Ltd 半導体記憶装置
JP2000148583A (ja) * 1992-06-22 2000-05-30 Hitachi Ltd 半導体記憶装置
JP2000163314A (ja) * 1992-06-22 2000-06-16 Hitachi Ltd 半導体記憶装置
JP2002236612A (ja) * 2002-01-21 2002-08-23 Hitachi Ltd 半導体記憶装置
JP2004240993A (ja) * 2004-04-12 2004-08-26 Hitachi Ltd 半導体記憶装置
JP2005100470A (ja) * 2004-12-28 2005-04-14 Hitachi Ltd 半導体記憶装置
JP2005339581A (ja) * 2005-08-08 2005-12-08 Hitachi Ltd 半導体記憶装置
WO2006051779A1 (ja) * 2004-11-10 2006-05-18 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置の制御方法、メモリコントローラ及び不揮発性記憶装置
JP2008108281A (ja) * 2008-01-10 2008-05-08 Renesas Technology Corp 半導体ディスク装置
US8001319B2 (en) 1992-06-22 2011-08-16 Solid State Storage Solutions, Inc. Semiconductor storage device
US9405674B2 (en) 2012-12-27 2016-08-02 Kabushiki Kaisha Toshiba Address generating circuit and address generating method

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7190617B1 (en) 1989-04-13 2007-03-13 Sandisk Corporation Flash EEprom system
US7447069B1 (en) 1989-04-13 2008-11-04 Sandisk Corporation Flash EEprom system
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
JPH07176168A (ja) 1991-09-24 1995-07-14 Kalok Corp 大容量薄型ディスクドライブシステム、ディスクドライブアセンブリ及び組立方法
US5446609A (en) * 1991-09-24 1995-08-29 Teac Corporation Low profile disk drive assembly
TW261687B (ja) * 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
US6347051B2 (en) * 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
JP3178909B2 (ja) * 1992-01-10 2001-06-25 株式会社東芝 半導体メモリ装置
US5596738A (en) * 1992-01-31 1997-01-21 Teac Corporation Peripheral device control system using changeable firmware in a single flash memory
JPH05324489A (ja) * 1992-05-15 1993-12-07 Toshiba Corp 記憶装置
US5841991A (en) * 1992-11-18 1998-11-24 Canon Information Systems, Inc. In an Interactive network board, a method and apparatus for storing a media access control address in a remotely alterable memory
JPH06266596A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
US5519843A (en) * 1993-03-15 1996-05-21 M-Systems Flash memory system providing both BIOS and user storage capability
US6078520A (en) * 1993-04-08 2000-06-20 Hitachi, Ltd. Flash memory control method and information processing system therewith
KR970008188B1 (ko) 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US5509134A (en) * 1993-06-30 1996-04-16 Intel Corporation Method and apparatus for execution of operations in a flash memory array
US5596708A (en) * 1994-04-04 1997-01-21 At&T Global Information Solutions Company Method and apparatus for the protection of write data in a disk array
US5696917A (en) * 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
DE19540915A1 (de) * 1994-11-10 1996-05-15 Raymond Engineering Redundante Anordnung von Festkörper-Speicherbausteinen
US5682472A (en) * 1995-03-17 1997-10-28 Aehr Test Systems Method and system for testing memory programming devices
US5541130A (en) * 1995-06-07 1996-07-30 International Business Machines Corporation Process for making and programming a flash memory array
US5712977A (en) * 1995-09-18 1998-01-27 Tdk Systems, Inc. Method and apparatus for initial country selection in a universal modem with cable
US5684978A (en) * 1995-10-20 1997-11-04 International Business Machines Corporation Synchronous DRAM controller with memory access commands timed for optimized use of data bus
US5914906A (en) 1995-12-20 1999-06-22 International Business Machines Corporation Field programmable memory array
US5982697A (en) * 1996-12-02 1999-11-09 Micron Technology, Inc. Method for initializing and reprogramming a control operation feature of a memory device
US6229737B1 (en) * 1996-12-12 2001-05-08 Ericsson Inc. Method and apparatus for initializing semiconductor memory
KR100223844B1 (ko) * 1996-12-27 1999-10-15 구본준 옵션 자동 설정 회로
US5949997A (en) * 1997-01-03 1999-09-07 Ncr Corporation Method and apparatus for programming a microprocessor using an address decode circuit
US5787039A (en) * 1997-03-06 1998-07-28 Macronix International Co., Ltd. Low current floating gate programming with bit-by-bit verification
US6353927B1 (en) * 1997-10-14 2002-03-05 Lucent Technologies Inc. Data download technique into installed memory
JP3227698B2 (ja) * 1998-03-16 2001-11-12 日本電気株式会社 不揮発性半導体記憶装置
JP2000148997A (ja) * 1998-11-13 2000-05-30 Minolta Co Ltd 画像処理装置
AU4061700A (en) * 1999-04-01 2000-10-23 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
EP1073064A1 (en) * 1999-07-30 2001-01-31 STMicroelectronics S.r.l. Non-volatile memory with the functional capability of simultaneous modification of the contents and burst mode read or page mode read
US6215705B1 (en) * 2000-02-10 2001-04-10 Advanced Micro Devices, Inc. Simultaneous program, program-verify scheme
US6728161B1 (en) * 2000-06-30 2004-04-27 Micron Technology, Inc. Zero latency-zero bus turnaround synchronous flash memory
EP1295295A1 (en) * 2000-06-27 2003-03-26 Koninklijke Philips Electronics N.V. Integrated circuit with flash bridge and autoload
US6799264B2 (en) * 2001-02-20 2004-09-28 Koninklijke Philips Electronics N.V. Memory accelerator for ARM processor pre-fetching multiple instructions from cyclically sequential memory partitions
US6718406B2 (en) * 2001-08-02 2004-04-06 Key Technology Corporation Memory array apparatus with reduced data accessing time and method for the same
US20050251305A1 (en) * 2002-06-03 2005-11-10 Junkei Sato Electronic control apparatus
WO2004040586A1 (en) * 2002-10-28 2004-05-13 Sandisk Corporation Automated wear leveling in non-volatile storage systems
US8656185B2 (en) * 2004-07-30 2014-02-18 Safenet, Inc. High-assurance processor active memory content protection
US7046560B2 (en) 2004-09-02 2006-05-16 Micron Technology, Inc. Reduction of fusible links and associated circuitry on memory dies
US20060069896A1 (en) * 2004-09-27 2006-03-30 Sigmatel, Inc. System and method for storing data
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
KR20090087498A (ko) 2006-12-06 2009-08-17 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) 고-용량, 비-휘발성 스토리지를 위한 캐시로서의 솔리드-스테이트 스토리지 장치, 시스템 및 방법
US7710777B1 (en) * 2006-12-20 2010-05-04 Marvell International Ltd. Semi-volatile NAND flash memory
KR101382562B1 (ko) * 2007-08-24 2014-04-10 삼성전자주식회사 복수개의 뱅크들을 동시에 프로그램할 수 있는 반도체메모리 장치 및 방법
US7768838B2 (en) * 2007-10-30 2010-08-03 Micron Technology, Inc. Operating memory cells
KR100954913B1 (ko) * 2007-11-29 2010-04-27 주식회사 동부하이텍 플래시 메모리 소자의 제조 방법
US9213612B2 (en) 2008-09-29 2015-12-15 Cisco Technology, Inc. Method and system for a storage area network
FR2947664B1 (fr) * 2009-07-01 2013-10-04 Areva Np Dispositif de test d'un systeme de protection d'un reacteur d'une centrale nucleaire
US9342445B2 (en) 2009-07-23 2016-05-17 Hgst Technologies Santa Ana, Inc. System and method for performing a direct memory access at a predetermined address in a flash storage
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US8325534B2 (en) 2010-12-28 2012-12-04 Taiwan Semiconductor Manufacturing Co., Ltd. Concurrent operation of plural flash memories
US9430339B1 (en) 2012-12-27 2016-08-30 Marvell International Ltd. Method and apparatus for using wear-out blocks in nonvolatile memory
US9853873B2 (en) 2015-01-10 2017-12-26 Cisco Technology, Inc. Diagnosis and throughput measurement of fibre channel ports in a storage area network environment
US9900250B2 (en) 2015-03-26 2018-02-20 Cisco Technology, Inc. Scalable handling of BGP route information in VXLAN with EVPN control plane
US10222986B2 (en) 2015-05-15 2019-03-05 Cisco Technology, Inc. Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system
US11588783B2 (en) 2015-06-10 2023-02-21 Cisco Technology, Inc. Techniques for implementing IPV6-based distributed storage space
US10778765B2 (en) 2015-07-15 2020-09-15 Cisco Technology, Inc. Bid/ask protocol in scale-out NVMe storage
US9892075B2 (en) 2015-12-10 2018-02-13 Cisco Technology, Inc. Policy driven storage in a microserver computing environment
US10152262B2 (en) 2016-05-03 2018-12-11 Micron Technology, Inc. Memory access techniques in memory devices with multiple partitions
US10140172B2 (en) 2016-05-18 2018-11-27 Cisco Technology, Inc. Network-aware storage repairs
US20170351639A1 (en) 2016-06-06 2017-12-07 Cisco Technology, Inc. Remote memory access using memory mapped addressing among multiple compute nodes
US10387046B2 (en) * 2016-06-22 2019-08-20 Micron Technology, Inc. Bank to bank data transfer
US10664169B2 (en) 2016-06-24 2020-05-26 Cisco Technology, Inc. Performance of object storage system by reconfiguring storage devices based on latency that includes identifying a number of fragments that has a particular storage device as its primary storage device and another number of fragments that has said particular storage device as its replica storage device
US11563695B2 (en) 2016-08-29 2023-01-24 Cisco Technology, Inc. Queue protection using a shared global memory reserve
US10545914B2 (en) 2017-01-17 2020-01-28 Cisco Technology, Inc. Distributed object storage
US10243823B1 (en) 2017-02-24 2019-03-26 Cisco Technology, Inc. Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks
US10713203B2 (en) 2017-02-28 2020-07-14 Cisco Technology, Inc. Dynamic partition of PCIe disk arrays based on software configuration / policy distribution
US10254991B2 (en) 2017-03-06 2019-04-09 Cisco Technology, Inc. Storage area network based extended I/O metrics computation for deep insight into application performance
US10303534B2 (en) 2017-07-20 2019-05-28 Cisco Technology, Inc. System and method for self-healing of application centric infrastructure fabric memory
US10404596B2 (en) 2017-10-03 2019-09-03 Cisco Technology, Inc. Dynamic route profile storage in a hardware trie routing table
US10942666B2 (en) 2017-10-13 2021-03-09 Cisco Technology, Inc. Using network device replication in distributed storage clusters
KR102591011B1 (ko) * 2018-02-26 2023-10-19 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN114035853B (zh) * 2021-11-17 2023-07-07 珠海一微半导体股份有限公司 具备spi接口的mcu引导系统及芯片

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59185798U (ja) * 1983-05-27 1984-12-10 日本電気株式会社 情報書込装置
JPS61100848A (ja) * 1984-10-22 1986-05-19 Fuji Xerox Co Ltd マイクロコンピユ−タの主記憶装置
JPS61103258A (ja) * 1984-10-24 1986-05-21 インターナショナル ビジネス マシーンズ コーポレーション 多重プロセッサ・システム
JPS61204751A (ja) * 1985-03-08 1986-09-10 Fujitsu Ltd 記憶装置制御方式
JPS61246997A (ja) * 1985-04-23 1986-11-04 Toshiba Corp 電気的消去・再書込み可能型読出し専用メモリ
JPS61273798A (ja) * 1985-05-29 1986-12-04 Mitsubishi Electric Corp 紫外線消去形プログラマブルromの書込み試験方法
JPS6236799A (ja) * 1985-08-09 1987-02-17 Hitachi Ltd 不揮発性記憶装置
JPS62145339A (ja) * 1985-12-20 1987-06-29 Hitachi Ltd インタ−リ−ブ方式の記憶装置
JPS62188100A (ja) * 1986-02-13 1987-08-17 Mitsubishi Electric Corp 紫外線消去型プログラマブルromの書込方法
JPS63124298A (ja) * 1986-11-13 1988-05-27 Matsushita Graphic Commun Syst Inc メモリ装置
JPH01263849A (ja) * 1988-04-15 1989-10-20 Hitachi Ltd メモリ制御装置
JPH02292798A (ja) * 1989-04-13 1990-12-04 Sundisk Corp フラッシュEEpromシステム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4413319A (en) * 1981-03-09 1983-11-01 Allen-Bradley Company Programmable controller for executing block transfer with remote I/O interface racks
US4566082A (en) * 1983-03-23 1986-01-21 Tektronix, Inc. Memory pack addressing system
US4685084A (en) * 1985-06-07 1987-08-04 Intel Corporation Apparatus for selecting alternate addressing mode and read-only memory
US4691303A (en) * 1985-10-31 1987-09-01 Sperry Corporation Refresh system for multi-bank semiconductor memory
JPS63163937A (ja) * 1986-12-26 1988-07-07 Minolta Camera Co Ltd メモリ制御装置
JPH0760594B2 (ja) * 1987-06-25 1995-06-28 富士通株式会社 半導体記憶装置
US5060145A (en) * 1989-09-06 1991-10-22 Unisys Corporation Memory access system for pipelined data paths to and from storage
US5012408A (en) * 1990-03-15 1991-04-30 Digital Equipment Corporation Memory array addressing system for computer systems with multiple memory arrays
US5036493A (en) * 1990-03-15 1991-07-30 Digital Equipment Corporation System and method for reducing power usage by multiple memory modules

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59185798U (ja) * 1983-05-27 1984-12-10 日本電気株式会社 情報書込装置
JPS61100848A (ja) * 1984-10-22 1986-05-19 Fuji Xerox Co Ltd マイクロコンピユ−タの主記憶装置
JPS61103258A (ja) * 1984-10-24 1986-05-21 インターナショナル ビジネス マシーンズ コーポレーション 多重プロセッサ・システム
JPS61204751A (ja) * 1985-03-08 1986-09-10 Fujitsu Ltd 記憶装置制御方式
JPS61246997A (ja) * 1985-04-23 1986-11-04 Toshiba Corp 電気的消去・再書込み可能型読出し専用メモリ
JPS61273798A (ja) * 1985-05-29 1986-12-04 Mitsubishi Electric Corp 紫外線消去形プログラマブルromの書込み試験方法
JPS6236799A (ja) * 1985-08-09 1987-02-17 Hitachi Ltd 不揮発性記憶装置
JPS62145339A (ja) * 1985-12-20 1987-06-29 Hitachi Ltd インタ−リ−ブ方式の記憶装置
JPS62188100A (ja) * 1986-02-13 1987-08-17 Mitsubishi Electric Corp 紫外線消去型プログラマブルromの書込方法
JPS63124298A (ja) * 1986-11-13 1988-05-27 Matsushita Graphic Commun Syst Inc メモリ装置
JPH01263849A (ja) * 1988-04-15 1989-10-20 Hitachi Ltd メモリ制御装置
JPH02292798A (ja) * 1989-04-13 1990-12-04 Sundisk Corp フラッシュEEpromシステム

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH064399A (ja) * 1992-06-22 1994-01-14 Hitachi Ltd 半導体記憶装置
JP2000148583A (ja) * 1992-06-22 2000-05-30 Hitachi Ltd 半導体記憶装置
JP2000163314A (ja) * 1992-06-22 2000-06-16 Hitachi Ltd 半導体記憶装置
US8001319B2 (en) 1992-06-22 2011-08-16 Solid State Storage Solutions, Inc. Semiconductor storage device
JP2002236612A (ja) * 2002-01-21 2002-08-23 Hitachi Ltd 半導体記憶装置
JP2004240993A (ja) * 2004-04-12 2004-08-26 Hitachi Ltd 半導体記憶装置
WO2006051779A1 (ja) * 2004-11-10 2006-05-18 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置の制御方法、メモリコントローラ及び不揮発性記憶装置
JP2005100470A (ja) * 2004-12-28 2005-04-14 Hitachi Ltd 半導体記憶装置
JP2005339581A (ja) * 2005-08-08 2005-12-08 Hitachi Ltd 半導体記憶装置
JP2008108281A (ja) * 2008-01-10 2008-05-08 Renesas Technology Corp 半導体ディスク装置
US9405674B2 (en) 2012-12-27 2016-08-02 Kabushiki Kaisha Toshiba Address generating circuit and address generating method

Also Published As

Publication number Publication date
US5263003A (en) 1993-11-16
EP0542205A2 (en) 1993-05-19
DE69226606D1 (de) 1998-09-17
DE69226606T2 (de) 1999-03-25
EP0542205B1 (en) 1998-08-12
EP0542205A3 (ja) 1995-05-24

Similar Documents

Publication Publication Date Title
JPH06202942A (ja) フラッシュメモリ回路と操作方法
US5381538A (en) DMA controller including a FIFO register and a residual register for data buffering and having different operating modes
US7904639B2 (en) Modular command structure for memory and memory system
KR101397229B1 (ko) 메모리 시스템 및 메모리를 위한 모듈러 커맨드 스트럭처
US5826093A (en) Dual function disk drive integrated circuit for master mode and slave mode operations
US5548786A (en) Dynamic bus sizing of DMA transfers
EP2487794A2 (en) Modular command structure for memory and memory system
US20040054864A1 (en) Memory controller
EP2293188A2 (en) System boot using NAND flash memory and method thereof
EP0339224A2 (en) Memory controller
KR20000029997A (ko) 집적dma콘트롤러를이용한집적메모리테스트방법
JP4643729B2 (ja) インタリーブ制御装置、インタリーブ制御方法及びメモリシステム
JPH0256690B2 (ja)
US20080005387A1 (en) Semiconductor device and data transfer method
US4607328A (en) Data transfer apparatus for a microcomputer system
US4467454A (en) High-speed external memory system
US7249253B2 (en) Booting from a re-programmable memory on an unconfigured bus
US5379413A (en) User selectable word/byte input architecture for flash EEPROM memory write and erase operations
JPH0562380B2 (ja)
JP3635996B2 (ja) 情報処理システム
KR0136379B1 (ko) 데이타 처리시스템의 개발방법 및 데이타 처리용 반도체 집적회로
KR20010105938A (ko) 플레쉬 메모리를 내장하는 마이크로 컨트롤러 유닛 및그의 인터리빙 방식을 이용한 메모리 억세스 제어 방법
US20060095692A1 (en) Programmable control interface device
JPH0283678A (ja) データ処理システムの開発方法
JPH10312307A (ja) コンピュータシステムに適用するエミュレータ

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040109