JPH0636197B2 - マイクロコンピユ−タ - Google Patents
マイクロコンピユ−タInfo
- Publication number
- JPH0636197B2 JPH0636197B2 JP8880986A JP8880986A JPH0636197B2 JP H0636197 B2 JPH0636197 B2 JP H0636197B2 JP 8880986 A JP8880986 A JP 8880986A JP 8880986 A JP8880986 A JP 8880986A JP H0636197 B2 JPH0636197 B2 JP H0636197B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- write
- prom
- signal
- address
- 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.)
- Expired - Lifetime
Links
Landscapes
- Microcomputers (AREA)
- Read Only Memory (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明はプログラマブル・リード・オンリー・メモリ(P
ROM)とマイクロプロセッサとを結合したマイクロコンピ
ュータに関し、とくにPROMとマイクロプロセッサとを単
一半導体基板上に集積化したシングルチップマイクロコ
ンピュータに関する。
ROM)とマイクロプロセッサとを結合したマイクロコンピ
ュータに関し、とくにPROMとマイクロプロセッサとを単
一半導体基板上に集積化したシングルチップマイクロコ
ンピュータに関する。
近年、集積回路製造技術の進歩に伴い単一半導体基板上
に集積化可能な回路の数が増え、非常に高度のシングル
チップマイクロコンピュータが実用化されている。シン
グルチップマイクロコンピュータは通常読出し専用メモ
リ(ROM)と読出し書込み可能メモリ(RAM)とをメモリとし
て有し、これらを使って中央処理ユニット(CPU)が各種
プログラムを実行するように構成されている。ここで、
ROMは一旦書き込まれた内容を変更することはできな
いが、電源が切れてもその内容は消滅しない。一方RA
Mは内容の変更はできるが、電源が切れるとその内容は
すべて消滅してしまう。従って、ユーザプログラムや定
数データのように予め決められている情報はROMに書
いておき、変数のように内容変更を伴う情報はRAMに
書込むのが普通である。
に集積化可能な回路の数が増え、非常に高度のシングル
チップマイクロコンピュータが実用化されている。シン
グルチップマイクロコンピュータは通常読出し専用メモ
リ(ROM)と読出し書込み可能メモリ(RAM)とをメモリとし
て有し、これらを使って中央処理ユニット(CPU)が各種
プログラムを実行するように構成されている。ここで、
ROMは一旦書き込まれた内容を変更することはできな
いが、電源が切れてもその内容は消滅しない。一方RA
Mは内容の変更はできるが、電源が切れるとその内容は
すべて消滅してしまう。従って、ユーザプログラムや定
数データのように予め決められている情報はROMに書
いておき、変数のように内容変更を伴う情報はRAMに
書込むのが普通である。
しかるに、定数データであっても個々のシステムに対し
最適な値を設定した場合や、ユーザプログラムに依存し
て変更の可能性のある情報を取り扱う場合には、内容の
変更が可能で、かつ電源が切れても内容の保存が可能な
メモリが要求される。このため、不揮発性機能をもつPR
OMがマイクロコンピュータとともに用いられ、しかもマ
イクロコンピュータと同一半導体チップ上に形成された
ものもある。
最適な値を設定した場合や、ユーザプログラムに依存し
て変更の可能性のある情報を取り扱う場合には、内容の
変更が可能で、かつ電源が切れても内容の保存が可能な
メモリが要求される。このため、不揮発性機能をもつPR
OMがマイクロコンピュータとともに用いられ、しかもマ
イクロコンピュータと同一半導体チップ上に形成された
ものもある。
半導体チップ上にPROMを有するシングルチップマイクロ
コンピュータにおいては、PROMはCPUによって制御さ
れている。しかしながらPROMはRAMと同じ様には高速
に制御することはできない。ある種のPROMはトンネリン
グ効果によってフローティングゲート電極に電荷を注入
することによってデータの書込みを行なわなければなら
ないので、高電圧を長時間(50mS)印加する必要があ
る。
コンピュータにおいては、PROMはCPUによって制御さ
れている。しかしながらPROMはRAMと同じ様には高速
に制御することはできない。ある種のPROMはトンネリン
グ効果によってフローティングゲート電極に電荷を注入
することによってデータの書込みを行なわなければなら
ないので、高電圧を長時間(50mS)印加する必要があ
る。
上述した従来のPROM内蔵シングルチップマイクロコンピ
ュータにおいては、内蔵PROMの制御を同一チップ上のC
PUが行なうことができるという利点をもつ反面、CP
Uのデータ処理効率が大幅に低下するという欠点があっ
た。例えば、PROMへのデータ書き込みを例にとると、一
回の書込み時間に約50mSもの長時間が要求される。従っ
て、CPUが一命令を実行するのに要求する時間を1μ
sとすると、50,000命令もの処理が書き込み中に実行可
能であることになる。従って、CPUの処理効率を向上
せしめるためには、PROMへの書込み時間を短縮しなけれ
ばならない。従来、PROMの書込み時間を短縮するための
手段としてPROM書込み器を用いることが提案されてい
る。しかしながら、この提案によれば、PROMライターを
チップに外付けしなければならないのでハードウェアが
増加し、かつCPUの制御も複雑になるという欠点があ
る。しかも、PROMライターによる書込み期間中はマイク
ロコンピュータは処理を中断しなければならないので、
CPU処理効率の著しい改善は期待できない。
ュータにおいては、内蔵PROMの制御を同一チップ上のC
PUが行なうことができるという利点をもつ反面、CP
Uのデータ処理効率が大幅に低下するという欠点があっ
た。例えば、PROMへのデータ書き込みを例にとると、一
回の書込み時間に約50mSもの長時間が要求される。従っ
て、CPUが一命令を実行するのに要求する時間を1μ
sとすると、50,000命令もの処理が書き込み中に実行可
能であることになる。従って、CPUの処理効率を向上
せしめるためには、PROMへの書込み時間を短縮しなけれ
ばならない。従来、PROMの書込み時間を短縮するための
手段としてPROM書込み器を用いることが提案されてい
る。しかしながら、この提案によれば、PROMライターを
チップに外付けしなければならないのでハードウェアが
増加し、かつCPUの制御も複雑になるという欠点があ
る。しかも、PROMライターによる書込み期間中はマイク
ロコンピュータは処理を中断しなければならないので、
CPU処理効率の著しい改善は期待できない。
さらに、メモリ技術の分野ではPROMライターにベリファ
イ機能をもたせて書込時間を短縮させることが提案され
ている。これは1回のデータ書込みに数10mSもの長い時
間をかけるのではなく、数mSで一旦書込みを中断し、実
際に書込まれたデータをPROMチップの外に読み出すもの
である。読み出されたデータはチップ外で正しいデータ
と比較される。その結果、両者が一致していれば、書込
みが完了したものとして次のデータの書込みに移る。し
かし、不一致の場合、再度数mSの同様の書込みを行な
う。そして、外部でチェックする。この操作を両者が一
致するまで繰り返す。かくして、最小の時間で書込みが
行なわれる。
イ機能をもたせて書込時間を短縮させることが提案され
ている。これは1回のデータ書込みに数10mSもの長い時
間をかけるのではなく、数mSで一旦書込みを中断し、実
際に書込まれたデータをPROMチップの外に読み出すもの
である。読み出されたデータはチップ外で正しいデータ
と比較される。その結果、両者が一致していれば、書込
みが完了したものとして次のデータの書込みに移る。し
かし、不一致の場合、再度数mSの同様の書込みを行な
う。そして、外部でチェックする。この操作を両者が一
致するまで繰り返す。かくして、最小の時間で書込みが
行なわれる。
しかし、この操作はPROMチップの外にベリファイ機能を
有する高価なPROMライターが必要である。従って、この
技術をシングルチップマイクロコンピュータに適用する
と非常に多くの外部端子数が必要となり、かつPROMライ
ターを外付けできるように設計しなければならない。し
かも、やはりPROM書込み期間中は、CPUは処理をホー
ルドしなければならないため、実質的なCPU処理効率
の改善は何ら得られないわけである。従って近い従来実
用化が普及するであろうICカードの如く、非常に小型
で軽量のパッケージに対して従来のシングルチップマイ
クロコンピュータは適合しにくい多くの欠点を有してい
る。
有する高価なPROMライターが必要である。従って、この
技術をシングルチップマイクロコンピュータに適用する
と非常に多くの外部端子数が必要となり、かつPROMライ
ターを外付けできるように設計しなければならない。し
かも、やはりPROM書込み期間中は、CPUは処理をホー
ルドしなければならないため、実質的なCPU処理効率
の改善は何ら得られないわけである。従って近い従来実
用化が普及するであろうICカードの如く、非常に小型
で軽量のパッケージに対して従来のシングルチップマイ
クロコンピュータは適合しにくい多くの欠点を有してい
る。
本願はPROMを有するシングルチップマイクロコンピュー
タにおいて、CPUの処理効率を実質的に向上する手段
を提供することを目的とするものである。
タにおいて、CPUの処理効率を実質的に向上する手段
を提供することを目的とするものである。
また、本願はPROMの種類に依存されることなく、あらゆ
るPROMに対してデータ書込み効率とCPUの処理効率と
をともに向上できるシングルチップマイクロコンピュー
タを提供することを目的とするものである。
るPROMに対してデータ書込み効率とCPUの処理効率と
をともに向上できるシングルチップマイクロコンピュー
タを提供することを目的とするものである。
本発明のシングルチップマイクロコンピュータは、電気
的にデータの書き込みが可能な不揮発性メモリと、プロ
グラムをストアするプログラムメモリと、このプログラ
ムメモリをアクセスして命令を読み出すためのプログラ
ムカウンタと、読み出された命令を実行し、前記不揮発
性メモリに対しデータ書き込みアドレスと書き込むべき
データとを有するデータ書き込み要求を実行する中央処
理ユニットと、前記データ書き込み要求に応答して前記
中央処理ユニットの代わりに前記データ書き込みアドレ
スおよび前記書き込むべきデータを用いて前記不揮発性
メモリに対しデータ書き込みを実行する書き込み回路
と、前記書き込み回路がデータ書き込みを実行する書き
込み回路と、前記書き込み回路がデータ書き込みの実行
を開始してから一定時間経過した後に前記書き込み回路
にデータ書き込みを中断させるとともに特殊割り込み信
号を前記中央処理ユニットに発行する書き込み制御手段
とを有し、前記中央処理ユニットは、前記特殊割り込み
信号に応答して、命令の実行を中断し、そのときの前記
プログラムカウンタの内容を退避せずにそのままの状態
を保持したまま、所定のマイクロプログラムを起動して
実行し、当該所定のマイクロプログラムの実行により、
前記不揮発メモリに対し前記書き込みアドレスを用いた
データリードが実行されて前記不揮発メモリからデータ
が読み出され、当該読み出されたデータが前記書き込む
べきデータと一致するか否かの判定が実行されて不一致
のときは前記書き込み回路にデータ書き込みが再実行さ
れることを特徴とする。
的にデータの書き込みが可能な不揮発性メモリと、プロ
グラムをストアするプログラムメモリと、このプログラ
ムメモリをアクセスして命令を読み出すためのプログラ
ムカウンタと、読み出された命令を実行し、前記不揮発
性メモリに対しデータ書き込みアドレスと書き込むべき
データとを有するデータ書き込み要求を実行する中央処
理ユニットと、前記データ書き込み要求に応答して前記
中央処理ユニットの代わりに前記データ書き込みアドレ
スおよび前記書き込むべきデータを用いて前記不揮発性
メモリに対しデータ書き込みを実行する書き込み回路
と、前記書き込み回路がデータ書き込みを実行する書き
込み回路と、前記書き込み回路がデータ書き込みの実行
を開始してから一定時間経過した後に前記書き込み回路
にデータ書き込みを中断させるとともに特殊割り込み信
号を前記中央処理ユニットに発行する書き込み制御手段
とを有し、前記中央処理ユニットは、前記特殊割り込み
信号に応答して、命令の実行を中断し、そのときの前記
プログラムカウンタの内容を退避せずにそのままの状態
を保持したまま、所定のマイクロプログラムを起動して
実行し、当該所定のマイクロプログラムの実行により、
前記不揮発メモリに対し前記書き込みアドレスを用いた
データリードが実行されて前記不揮発メモリからデータ
が読み出され、当該読み出されたデータが前記書き込む
べきデータと一致するか否かの判定が実行されて不一致
のときは前記書き込み回路にデータ書き込みが再実行さ
れることを特徴とする。
第2図にPROM内蔵シングルチップマイクロコンピュータ
の基本ブロック図を示し、以下その動作を説明する。ま
ず、チップの構成について説明する。プログラムカウン
タ1はアドレスを発生するアドレスポインタとして用い
られ、ROM2は固定情報(例えばユーザプログラム)
がマスクを用いて書込まれている読出し専用メモリであ
る。
の基本ブロック図を示し、以下その動作を説明する。ま
ず、チップの構成について説明する。プログラムカウン
タ1はアドレスを発生するアドレスポインタとして用い
られ、ROM2は固定情報(例えばユーザプログラム)
がマスクを用いて書込まれている読出し専用メモリであ
る。
ROM2はプログラムカウンタ1から発生されたアドレ
スによってアクセスされ、命令コード(あるいはデー
タ)がデータバス3を介して命令レジスタ4にフェッチ
される。フェッチされた命令コードは命令デコーダ5で
解読され、CPUの動作を制御する各種制御信号が作り
出される。データバス3にはテンポラリレジスタ7およ
び8が接続され、それらの出力は算術論理演算ユニット
(ALU)6へ入力される。算術論理演算ユニット6はテン
ポラリレジスタ7,8(一方をアキュムレータと呼ぶこ
ともある)にロードされたデータに対し指定された算術
論理演算を行い結果をデータバス3へ出力する。RAM
9は汎用レジスタ群12およびその他の処理データ格納
レジスタを含み、アドレスバス10上のアドレスによっ
て指定された領域に格納されているデータをデータバス
3へ出力したり、データバス3上のデータをアドレスバ
ス10上のアドレスで指定される領域に格納する。以上
が、いわゆるマイクロコンピュータを構成するハードウ
ェア回路(なお、I/Oポートは省略)である。本発明
が対象とする従来のシングルチップマイクロコンピュー
タはチップ上にさらにPROMブロック11を有している。
PROMブロック11はアドレス10上のアドレスで指定さ
れる領域にデータバス3上のデータを書込んだりあるい
はそこからデータを読み出す。一般に、プログラムカウ
ンタ1命令レジスタ4,デコーダ/制御部5,テンポラ
リレジスタ7および8,汎用レジスタ群12,算術論理
演算ユニット6を含めてCPUと称している。
スによってアクセスされ、命令コード(あるいはデー
タ)がデータバス3を介して命令レジスタ4にフェッチ
される。フェッチされた命令コードは命令デコーダ5で
解読され、CPUの動作を制御する各種制御信号が作り
出される。データバス3にはテンポラリレジスタ7およ
び8が接続され、それらの出力は算術論理演算ユニット
(ALU)6へ入力される。算術論理演算ユニット6はテン
ポラリレジスタ7,8(一方をアキュムレータと呼ぶこ
ともある)にロードされたデータに対し指定された算術
論理演算を行い結果をデータバス3へ出力する。RAM
9は汎用レジスタ群12およびその他の処理データ格納
レジスタを含み、アドレスバス10上のアドレスによっ
て指定された領域に格納されているデータをデータバス
3へ出力したり、データバス3上のデータをアドレスバ
ス10上のアドレスで指定される領域に格納する。以上
が、いわゆるマイクロコンピュータを構成するハードウ
ェア回路(なお、I/Oポートは省略)である。本発明
が対象とする従来のシングルチップマイクロコンピュー
タはチップ上にさらにPROMブロック11を有している。
PROMブロック11はアドレス10上のアドレスで指定さ
れる領域にデータバス3上のデータを書込んだりあるい
はそこからデータを読み出す。一般に、プログラムカウ
ンタ1命令レジスタ4,デコーダ/制御部5,テンポラ
リレジスタ7および8,汎用レジスタ群12,算術論理
演算ユニット6を含めてCPUと称している。
次に作動の説明を行う。
第2図に示したPROM内蔵シングルチップマイクロコンピ
ュータはプログラムカンウンタ1で指定されるアドレス
の命令コードをROM2から読み出し、データバス3を
介して命令レジスタ4に格納する。命令レジスタ4に格
納された命令コードは命令デコーダ5で解読され各種制
御信号が発生される。例えば、汎用レジスタに格納され
ているデータの二項演算が指示された場合、汎用レジス
タの内容をRAM9から読み出し、テンポラリレジスタ
7および8に夫々格納する。次にALU6で指定された
演算を行ない結果をデータバス3を介して、デスティネ
ーションで指定された汎用レジスタの中に書き込み。こ
れは通常のCPU動作として周知である。
ュータはプログラムカンウンタ1で指定されるアドレス
の命令コードをROM2から読み出し、データバス3を
介して命令レジスタ4に格納する。命令レジスタ4に格
納された命令コードは命令デコーダ5で解読され各種制
御信号が発生される。例えば、汎用レジスタに格納され
ているデータの二項演算が指示された場合、汎用レジス
タの内容をRAM9から読み出し、テンポラリレジスタ
7および8に夫々格納する。次にALU6で指定された
演算を行ない結果をデータバス3を介して、デスティネ
ーションで指定された汎用レジスタの中に書き込み。こ
れは通常のCPU動作として周知である。
次にCPUがPROMブロック11をアクセスする場合につ
いて、PROMブロック11の構成を示した第3図を用いて
以下に説明する。
いて、PROMブロック11の構成を示した第3図を用いて
以下に説明する。
PROMブロック11は命令デコーダ5からのライト信号3
3に従って書込み電圧34とともに、ロウアクティブな
ライトストローブ信号35をPROMアレイ32に供給する
書込制御回路31とPROMアレイ32とを有する。PROMア
レイ32はリードストローブ信号36に応答してリード
モードとなり、ライトストローブ信号35に応答してラ
イトモードになる。
3に従って書込み電圧34とともに、ロウアクティブな
ライトストローブ信号35をPROMアレイ32に供給する
書込制御回路31とPROMアレイ32とを有する。PROMア
レイ32はリードストローブ信号36に応答してリード
モードとなり、ライトストローブ信号35に応答してラ
イトモードになる。
(PROMブロック11へのデータライト動作) PROMブロック11へのライト命令コードはROM2に記
録されており、ライト動作時に読み出されて命令レジス
タ4に格納される。命令デコーダ5はこれをデコードし
てライト動作に必要な制御信号を発生する。すなわち、
命令デコーダ5はアドレスバス10およびデータバス3
にアドレスとデータとを夫々出力する制御信号を出した
後、ライト信号33を書込み制御回路31に送る。この
結果、書込み電圧34とライトストローブ信号35とが
PROMアレイ32に印加される。書込みに必要な時間が経
過するまでこの状態が保たれる。この間CPUは上記の
動作を繰り返すロープ処理を実行している。なお、この
処理はマイクロプログラムで制御することができる。所
定時間経過後、命令デコーダ5はライト信号33を止め
る。これに伴ってライト電圧34およびライトストロー
ブ信号35の供給が中止され、ライト動作が終了する。
ライト動作終了後、CPUは次の命令の実行に移る。
録されており、ライト動作時に読み出されて命令レジス
タ4に格納される。命令デコーダ5はこれをデコードし
てライト動作に必要な制御信号を発生する。すなわち、
命令デコーダ5はアドレスバス10およびデータバス3
にアドレスとデータとを夫々出力する制御信号を出した
後、ライト信号33を書込み制御回路31に送る。この
結果、書込み電圧34とライトストローブ信号35とが
PROMアレイ32に印加される。書込みに必要な時間が経
過するまでこの状態が保たれる。この間CPUは上記の
動作を繰り返すロープ処理を実行している。なお、この
処理はマイクロプログラムで制御することができる。所
定時間経過後、命令デコーダ5はライト信号33を止め
る。これに伴ってライト電圧34およびライトストロー
ブ信号35の供給が中止され、ライト動作が終了する。
ライト動作終了後、CPUは次の命令の実行に移る。
以上説明したようにPROM32へのデータライト期間中
は、CPUはデータライトに必要な処理(前述したルー
プ処理)を実行しているため、他の命令は何も実行でき
ず、その間処理効率が大幅に低下していた。しかも一回
の書込み処理には数10mSの長い時間が必要であるから、
その間の処理効率の低下は必要に大きな性能ダウンをも
たらすことが理解できるであろう。
は、CPUはデータライトに必要な処理(前述したルー
プ処理)を実行しているため、他の命令は何も実行でき
ず、その間処理効率が大幅に低下していた。しかも一回
の書込み処理には数10mSの長い時間が必要であるから、
その間の処理効率の低下は必要に大きな性能ダウンをも
たらすことが理解できるであろう。
(PROMブロック11へのデータリード動作) PROMブロック11からのデータリードはROM2に記録
されているリード命令コードで制御される。CPUはリ
ード命令コードを読み出し、命令レジスタ4に一旦これ
を格納する。その後命令デコーダ5によって命令コード
をデコードし、必要な制御信号が発生される。すなわ
ち、命令デコーダ5はアドレスバス10にアドレスを出
力する制御信号を発生した後、リードストローブ信号3
6をPROMアレイ32に与える。これにより、指定された
アドレスのデータがデータバス3に読み出される。所定
の期間が経過するとリードストローブ信号36を切って
リード動作を終了する。
されているリード命令コードで制御される。CPUはリ
ード命令コードを読み出し、命令レジスタ4に一旦これ
を格納する。その後命令デコーダ5によって命令コード
をデコードし、必要な制御信号が発生される。すなわ
ち、命令デコーダ5はアドレスバス10にアドレスを出
力する制御信号を発生した後、リードストローブ信号3
6をPROMアレイ32に与える。これにより、指定された
アドレスのデータがデータバス3に読み出される。所定
の期間が経過するとリードストローブ信号36を切って
リード動作を終了する。
以上のように、従来のPROM内蔵シングルチップマイクロ
コンピュータはデータの書込期間および消去期間中はC
PUは何ら他の処理を並列して実行することができず、
CPUの処理効率がPROMへのデータの書込みによって著
しく低下するという欠点がある。さらに、PROMへのデー
タ書込み効率を上げるためには、チップに付加されるべ
き外付回路が複雑かつ大規模となり、加えてチップの設
計も非常に煩雑になるという欠点がある。しかも、たと
えば外付回路を付加したとしても、PROMへのデータ書
込,消去中はやはり、CPUの処理をホールドしなけれ
ばならないため、CPUの処理効率の実質的な改善とは
ならないことが理解できるであろう。
コンピュータはデータの書込期間および消去期間中はC
PUは何ら他の処理を並列して実行することができず、
CPUの処理効率がPROMへのデータの書込みによって著
しく低下するという欠点がある。さらに、PROMへのデー
タ書込み効率を上げるためには、チップに付加されるべ
き外付回路が複雑かつ大規模となり、加えてチップの設
計も非常に煩雑になるという欠点がある。しかも、たと
えば外付回路を付加したとしても、PROMへのデータ書
込,消去中はやはり、CPUの処理をホールドしなけれ
ばならないため、CPUの処理効率の実質的な改善とは
ならないことが理解できるであろう。
次にCPUの処理効率を改善したシングルチップマイク
ロコンピュータの例を説明する。これはCPUを変更す
ることなくPROMブロックのみを改良した例である。第1
図に改良されたPROMブロック41の構成ブロック図を示
す。
ロコンピュータの例を説明する。これはCPUを変更す
ることなくPROMブロックのみを改良した例である。第1
図に改良されたPROMブロック41の構成ブロック図を示
す。
本実施例のPROMブロック40において、PROMアレイ32
以外にバスインターフェイス回路41,アドレスバッフ
ァ42,データバッファ43およびライトコントロール
回路44が設けられている。なお、PROMアレイ32の構
成は従来と同じでよい。
以外にバスインターフェイス回路41,アドレスバッフ
ァ42,データバッファ43およびライトコントロール
回路44が設けられている。なお、PROMアレイ32の構
成は従来と同じでよい。
バスインターフェイス回路41はアドレスバス10とデ
ータバス3とに接続され、ライト信号45とリード信号
46とに応答してアドレスラッチ信号47およびデータ
ラッチ信号48を必要に応じて発生する。バスインター
フェイス回路41とPROMアレイ32の間にはアドレスバ
ッファ42とデータバッファ43とが設けられており、
これらはアドレスラッチ信号42およびデータラッチ信
号48に応答してアドレス,データを夫々ラッチする。
さらに、ウェイト信号49をCPUに送る機能とライト
スタート信号50とリードストローブ信号51とを発生
する機能とを有している。ライトスタート信号50に応
答してライトコントロール回路44はライト動作を開始
する。ライトコントロール回路44はライト動作中ライ
トアクノリッジ信号52をバスインターフェイス回路4
1に送りライト中であることを知らせる。さらに、ライ
ト時、ライトストローブ信号53およびライト電圧54
をPROMアレイ32に印加する。これに対してリードスト
ローブ信号51はデータリード動作時にバスインタフェ
イス回路41からPROMアレイ32に送られる。
ータバス3とに接続され、ライト信号45とリード信号
46とに応答してアドレスラッチ信号47およびデータ
ラッチ信号48を必要に応じて発生する。バスインター
フェイス回路41とPROMアレイ32の間にはアドレスバ
ッファ42とデータバッファ43とが設けられており、
これらはアドレスラッチ信号42およびデータラッチ信
号48に応答してアドレス,データを夫々ラッチする。
さらに、ウェイト信号49をCPUに送る機能とライト
スタート信号50とリードストローブ信号51とを発生
する機能とを有している。ライトスタート信号50に応
答してライトコントロール回路44はライト動作を開始
する。ライトコントロール回路44はライト動作中ライ
トアクノリッジ信号52をバスインターフェイス回路4
1に送りライト中であることを知らせる。さらに、ライ
ト時、ライトストローブ信号53およびライト電圧54
をPROMアレイ32に印加する。これに対してリードスト
ローブ信号51はデータリード動作時にバスインタフェ
イス回路41からPROMアレイ32に送られる。
次に、第1図のPROMブロック40の動作を説明する。初
期状態およびPROMアクセス以外の状態ではPROMブロック
40は非動作状態である。従って、この状態ではCPU
からはライト信号45もリード信号46も発生されな
い。すなわちアドレスバス10およびデータバス3とPR
OMブロック40とはバスインタフェイス回路40により
電気的に分離されている。さらにアドレスラッチ信号4
7とデータラッチ信号48とはともに非アクティブであ
るから、アドレスバッファ42およびデータバッファ4
3は夫々以前のデータを保持したままである。ライトコ
ントロール回路44は書込電圧54をロウレベルに保
ち、かつライトストローブ信号53を非アクティブにし
ている。
期状態およびPROMアクセス以外の状態ではPROMブロック
40は非動作状態である。従って、この状態ではCPU
からはライト信号45もリード信号46も発生されな
い。すなわちアドレスバス10およびデータバス3とPR
OMブロック40とはバスインタフェイス回路40により
電気的に分離されている。さらにアドレスラッチ信号4
7とデータラッチ信号48とはともに非アクティブであ
るから、アドレスバッファ42およびデータバッファ4
3は夫々以前のデータを保持したままである。ライトコ
ントロール回路44は書込電圧54をロウレベルに保
ち、かつライトストローブ信号53を非アクティブにし
ている。
上記状態においてPROMブロック40に対しデータライト
が指示された場合を説明する。この時はまずライト命令
コードがROM2から読み出され、命令ジレスタ4に、
格納される。この命令コードはデコーダ5で解読され、
それに対応したマイクロプログラムが選択される。この
マイクロプログラムによって、まずデータバス3とアド
レスバス10に各々書込まれるべきデータおよびそのア
ドレスが転送される。その後ライト信号35がPROMブロ
ック40に供給される。これに応答してバスインターフ
ェイス回路41はアドレスバス10上のアドレスをデコ
ードして、それがPROMアレイ32をアクセスするもので
あることを確認した後、アドレスラッチ信号47および
データラッチ信号48を発生する。これによってアドレ
スバス10およびデータバス3上のデータは夫々アドレ
スバッファ42およびデータバッファ43に夫々ラッチ
される。しかる後、アドレスバス10およびデータバス
3をPROMブロック40から電気的に切り離す。この結
果、CPUとPROMブロック40とは電気的に切り離され
た状態となる。従って、PROMブロック40はCPUから
独立してデータ書込み処理を実行する。一方、CPUは
データ書込み以外の処理を独立に実行することができ
る。
が指示された場合を説明する。この時はまずライト命令
コードがROM2から読み出され、命令ジレスタ4に、
格納される。この命令コードはデコーダ5で解読され、
それに対応したマイクロプログラムが選択される。この
マイクロプログラムによって、まずデータバス3とアド
レスバス10に各々書込まれるべきデータおよびそのア
ドレスが転送される。その後ライト信号35がPROMブロ
ック40に供給される。これに応答してバスインターフ
ェイス回路41はアドレスバス10上のアドレスをデコ
ードして、それがPROMアレイ32をアクセスするもので
あることを確認した後、アドレスラッチ信号47および
データラッチ信号48を発生する。これによってアドレ
スバス10およびデータバス3上のデータは夫々アドレ
スバッファ42およびデータバッファ43に夫々ラッチ
される。しかる後、アドレスバス10およびデータバス
3をPROMブロック40から電気的に切り離す。この結
果、CPUとPROMブロック40とは電気的に切り離され
た状態となる。従って、PROMブロック40はCPUから
独立してデータ書込み処理を実行する。一方、CPUは
データ書込み以外の処理を独立に実行することができ
る。
この状態で、PROMブロック40内のバスインターフェイ
ス回路41はライトコントロール回路44にライトスタ
ート信号50を与える。ライトコントロール回路44は
このスタート信号50に応答して書込みに必要なライト
電圧(プログラム電圧)54およびライト(プログラ
ム)ストローブ信号53をPROMアレイ32に印加する。
この結果、アドレスバッファ(アドレスラッチ)42に
ラッチされているアドレスで指定された領域にデータバ
ッファ(データラッチ)43にラッチされているデータ
が書込まれる。書込みはビット単位のシリアル書込みで
も、あるいはバイト(ワード)単位のパラレル書込みで
もよい。ライトコントロール回路44はこの書込み期間
ライトアクノリッジ信号52をバスインターフェイス回
路41に送り、書込み中であることを知らせる。書込み
に必要な所定期間経過後、ライトコントロール回路はラ
イトアクノリッジ信号52を止めるとともに、ライト電
圧54およびライトストローブ信号53の印加を止め
る。かくして、PROMアレイ32へのデータライト動作が
終了する。
ス回路41はライトコントロール回路44にライトスタ
ート信号50を与える。ライトコントロール回路44は
このスタート信号50に応答して書込みに必要なライト
電圧(プログラム電圧)54およびライト(プログラ
ム)ストローブ信号53をPROMアレイ32に印加する。
この結果、アドレスバッファ(アドレスラッチ)42に
ラッチされているアドレスで指定された領域にデータバ
ッファ(データラッチ)43にラッチされているデータ
が書込まれる。書込みはビット単位のシリアル書込みで
も、あるいはバイト(ワード)単位のパラレル書込みで
もよい。ライトコントロール回路44はこの書込み期間
ライトアクノリッジ信号52をバスインターフェイス回
路41に送り、書込み中であることを知らせる。書込み
に必要な所定期間経過後、ライトコントロール回路はラ
イトアクノリッジ信号52を止めるとともに、ライト電
圧54およびライトストローブ信号53の印加を止め
る。かくして、PROMアレイ32へのデータライト動作が
終了する。
一方、この期間CPUはPROMブロックへのデータ書込み
処理から解放されているので、CPUはライト信号45
を出力した後は、直ちに次の命令を実行することができ
る。従って、数10mSもの書込期間中にCPUは別の処理
を並列に実行できるわけである。この結果、CPUの処
理効率を大幅に向上することができる。しかしながら、
CPUがこのように独立に別の処理を行なう場合、その
処理の実行によってPROMへの書込みが必要なデータを作
成したり、あるいはそのようなデータを取り扱う場合が
ありうる。本願はかかる場合の対策として次のような手
段を設けている。
処理から解放されているので、CPUはライト信号45
を出力した後は、直ちに次の命令を実行することができ
る。従って、数10mSもの書込期間中にCPUは別の処理
を並列に実行できるわけである。この結果、CPUの処
理効率を大幅に向上することができる。しかしながら、
CPUがこのように独立に別の処理を行なう場合、その
処理の実行によってPROMへの書込みが必要なデータを作
成したり、あるいはそのようなデータを取り扱う場合が
ありうる。本願はかかる場合の対策として次のような手
段を設けている。
上記の場合、CPUはマイクロプログラム制御に基いて
ライト信号45を発生する。前述したようにCPUはラ
イト信号45を発生すると次の処理に移ることができる
が、実際はPROMブロック40とCPUとが電気的に切り
離されているため、CPUからデータバス3上に送った
データはPROMブロック40には入力されない。従って、
データの書込みが実質的に行なわれないことになる。こ
れを避けるために、バスインターフェイス回路41はラ
イト信号45を実信すると、ライトコントロール回路4
4からライトアクノリッジ信号52が出力されているか
否かを判定する。書込み中であればこのアクノリッジ信
号52が出力されているため、バスインターフェイス回
路41はCPUに対してウェイト信号49を直ちに発生
する。CPUはライト信号45を送った後このウェイト
信号49が返信されると、ウェイト状態に入りアドレス
バス10およびデータバス3上にのせたデータをそのま
ま保存するように働く。PROMアレイ32へのデータ書込
みが終了するとライトアクノリッジ信号52が非アクテ
ィブになるので、バスインターフェイス回路41はアド
レスバス10およびデータバス3とPROMブロック120
とを電気的に結合して、アドレスラッチ信号47および
データラッチ信号48を発生してアドレスバスおよびデ
ータバスに保持されているアドレスおよびデータをアド
レスバッファ42およびデータバッファ43に夫々格納
する。しかる後、アドレスバス10とデータバス3とを
PROMブロック120から切り離し、ライトスタート信号
50を出力してライトコントロール回路44にPROMアレ
イ32のデータ書込みを指示するとともにウェイト信号
49を切る。CPUはこのウェイト信号49が非アクテ
ィブになるとウェイト状態を解除して次の命令の実行に
移る。かくして、書き込まれるべきデータの消失を防止
することができる。
ライト信号45を発生する。前述したようにCPUはラ
イト信号45を発生すると次の処理に移ることができる
が、実際はPROMブロック40とCPUとが電気的に切り
離されているため、CPUからデータバス3上に送った
データはPROMブロック40には入力されない。従って、
データの書込みが実質的に行なわれないことになる。こ
れを避けるために、バスインターフェイス回路41はラ
イト信号45を実信すると、ライトコントロール回路4
4からライトアクノリッジ信号52が出力されているか
否かを判定する。書込み中であればこのアクノリッジ信
号52が出力されているため、バスインターフェイス回
路41はCPUに対してウェイト信号49を直ちに発生
する。CPUはライト信号45を送った後このウェイト
信号49が返信されると、ウェイト状態に入りアドレス
バス10およびデータバス3上にのせたデータをそのま
ま保存するように働く。PROMアレイ32へのデータ書込
みが終了するとライトアクノリッジ信号52が非アクテ
ィブになるので、バスインターフェイス回路41はアド
レスバス10およびデータバス3とPROMブロック120
とを電気的に結合して、アドレスラッチ信号47および
データラッチ信号48を発生してアドレスバスおよびデ
ータバスに保持されているアドレスおよびデータをアド
レスバッファ42およびデータバッファ43に夫々格納
する。しかる後、アドレスバス10とデータバス3とを
PROMブロック120から切り離し、ライトスタート信号
50を出力してライトコントロール回路44にPROMアレ
イ32のデータ書込みを指示するとともにウェイト信号
49を切る。CPUはこのウェイト信号49が非アクテ
ィブになるとウェイト状態を解除して次の命令の実行に
移る。かくして、書き込まれるべきデータの消失を防止
することができる。
次にPROMアレイ32からのデータリード動作について説
明する。
明する。
リード命令コードはROM2の中に予め記憶されてお
り、必要に応じて読み出される。命令レジスタ4にこの
リード命令コードがフェッチされると、デコーダ/制御
部5はそれに対応したマイクロプログラムの実行を指示
する。まず、マイクロプログラムに基いて読み出すべき
データが格納されているPROMアレイ32のアドレスがア
ドレスバス10に出力される。さらにリード信号46が
バスインターフェイス回路に供給される。バスインター
フェイス回路41はアドレスバス10上のアドレスをデ
コードしてPROMアレイ32へのアクセスであることを確
認すると、ライトアクノリッジ信号52をチェックす
る。ライトアクノリッジ信号52が非アクティブであれ
ば、アドレスバス10とデータバス3とをPROMブロック
に結合し、アドレスラッチ信号47を出力してアドレス
バス10上のアドレスをアドレスバッファ42にラッチ
する。その後リードストローブ信号51をアクティブに
し、PROMアレイ32からデータを読み出す。読み出され
たデータはデータラッチ信号48に応答してデータバッ
ファ48に一旦格納され、その後データバス3に転送さ
れる。その結果、CPUはデータバス3に出力されたデ
ータを受信することができる。バスインターフェイス回
路41はアドレスバス10とデータバス3とをPROMブロ
ック40から切り離し、リード動作を終了する。
り、必要に応じて読み出される。命令レジスタ4にこの
リード命令コードがフェッチされると、デコーダ/制御
部5はそれに対応したマイクロプログラムの実行を指示
する。まず、マイクロプログラムに基いて読み出すべき
データが格納されているPROMアレイ32のアドレスがア
ドレスバス10に出力される。さらにリード信号46が
バスインターフェイス回路に供給される。バスインター
フェイス回路41はアドレスバス10上のアドレスをデ
コードしてPROMアレイ32へのアクセスであることを確
認すると、ライトアクノリッジ信号52をチェックす
る。ライトアクノリッジ信号52が非アクティブであれ
ば、アドレスバス10とデータバス3とをPROMブロック
に結合し、アドレスラッチ信号47を出力してアドレス
バス10上のアドレスをアドレスバッファ42にラッチ
する。その後リードストローブ信号51をアクティブに
し、PROMアレイ32からデータを読み出す。読み出され
たデータはデータラッチ信号48に応答してデータバッ
ファ48に一旦格納され、その後データバス3に転送さ
れる。その結果、CPUはデータバス3に出力されたデ
ータを受信することができる。バスインターフェイス回
路41はアドレスバス10とデータバス3とをPROMブロ
ック40から切り離し、リード動作を終了する。
次に、PROMブロック40がデータライト動作中にCPU
からデータリードを要求する場合について説明する。
からデータリードを要求する場合について説明する。
CPUはマイクロプログラムに従ってアドレスをアドレ
スバス10に出力した後リード信号46をバスインター
フェイス回路41に供給する。バスインターフェイス回
路41はアドレスバス10上のアドレスをデコードし
て、PROMアレイ32へのアクセスであることを確認する
と、ライトアクノリッジ信号52をチェックする。この
時アクノリッジ信号52はアクティブであるからウェイ
ト信号49をCPUに送る。CPUはウェイト信号49
に応答してアドレスバス10にアドレスを出力したまま
動作を停止する。ライト動作が終了すると、ライトコン
トロール回路44はライトアクノリッジ信号52を非ア
クティブにしてPROMアレイ32へのリードアクセスが可
能であることをバスインターフェイス回路41に知らせ
る。この結果、バスインターフェイス回路41はアドレ
スバス10とデータバス3とをPROMブロック120に接
続しアドレスラッチ信号47を発生してアドレスバッフ
ァ42にアドレスをラッチした後、リードストローブ信
号51をアクティブにする。これによってPROMアレイ3
2から読み出されたデータがデータラッチ信号48によ
ってデータバッファ43に入力され、それを介してデー
タバス3に転送される。バスインターフェイス回路41
はその後ウェイト信号49を非アクティブにしてCPU
にリード可能状態を知らせる。CPUがデータバス3上
のデータを引きとった後、バスインターフェイス回路4
1はアドレスバス10とデータバス3とをPROMブロック
120から切り離す。かくして、PROMブロック40がデ
ータライト中にCPUからリード信号が発生されても、
正しいデータをCPUに転送することができる。
スバス10に出力した後リード信号46をバスインター
フェイス回路41に供給する。バスインターフェイス回
路41はアドレスバス10上のアドレスをデコードし
て、PROMアレイ32へのアクセスであることを確認する
と、ライトアクノリッジ信号52をチェックする。この
時アクノリッジ信号52はアクティブであるからウェイ
ト信号49をCPUに送る。CPUはウェイト信号49
に応答してアドレスバス10にアドレスを出力したまま
動作を停止する。ライト動作が終了すると、ライトコン
トロール回路44はライトアクノリッジ信号52を非ア
クティブにしてPROMアレイ32へのリードアクセスが可
能であることをバスインターフェイス回路41に知らせ
る。この結果、バスインターフェイス回路41はアドレ
スバス10とデータバス3とをPROMブロック120に接
続しアドレスラッチ信号47を発生してアドレスバッフ
ァ42にアドレスをラッチした後、リードストローブ信
号51をアクティブにする。これによってPROMアレイ3
2から読み出されたデータがデータラッチ信号48によ
ってデータバッファ43に入力され、それを介してデー
タバス3に転送される。バスインターフェイス回路41
はその後ウェイト信号49を非アクティブにしてCPU
にリード可能状態を知らせる。CPUがデータバス3上
のデータを引きとった後、バスインターフェイス回路4
1はアドレスバス10とデータバス3とをPROMブロック
120から切り離す。かくして、PROMブロック40がデ
ータライト中にCPUからリード信号が発生されても、
正しいデータをCPUに転送することができる。
次に、第1図のバスインターフェイス回路41の詳細を
第4図を用いて説明する。バスインターフェイス回路4
1はアドレスデコーダ56とバス制御回路57とを含ん
でいる。アドレスデコーダ56はアドレスバス10上の
アドレスをデコードして、これが実際にPROMアレイ32
内のアドレスであるか否をチェックする機能を有してお
り、PROM内のアドレスである時PROMアレイ32をアクセ
スするアクセス信号55をアクティブにする。バス制御
回路57はアクセス信号55に応答してゲートを開きア
ドレスバス10およびデータバス3上のデータをアドレ
スバッファ42およびデータバッファ43に転送する。
さらにライト信号45とリード信号46とに基いてライ
トスタート信号50およびリードストローブ信号51を
発生する。
第4図を用いて説明する。バスインターフェイス回路4
1はアドレスデコーダ56とバス制御回路57とを含ん
でいる。アドレスデコーダ56はアドレスバス10上の
アドレスをデコードして、これが実際にPROMアレイ32
内のアドレスであるか否をチェックする機能を有してお
り、PROM内のアドレスである時PROMアレイ32をアクセ
スするアクセス信号55をアクティブにする。バス制御
回路57はアクセス信号55に応答してゲートを開きア
ドレスバス10およびデータバス3上のデータをアドレ
スバッファ42およびデータバッファ43に転送する。
さらにライト信号45とリード信号46とに基いてライ
トスタート信号50およびリードストローブ信号51を
発生する。
例えば、1アドレスが16ビット構成で、PROMアレイ
(256バイト容量)32にFF00〜FFFF(16進記法)
のアドレス空間が割り当てられているとすれば、アドレ
スデコード回路53はアドレスバス10上の上位8ビッ
トが全てハイレベルである時、アクセス信号55をアク
ティブにしてPROMへのアクセスを指示する。バス制御回
路57は上記のゲート以外に信号45,46,52,5
5に応答し、信号47〜51を発生する任意のランダム
ロジック回路で構成することができる。
(256バイト容量)32にFF00〜FFFF(16進記法)
のアドレス空間が割り当てられているとすれば、アドレ
スデコード回路53はアドレスバス10上の上位8ビッ
トが全てハイレベルである時、アクセス信号55をアク
ティブにしてPROMへのアクセスを指示する。バス制御回
路57は上記のゲート以外に信号45,46,52,5
5に応答し、信号47〜51を発生する任意のランダム
ロジック回路で構成することができる。
第5図にライトコントロール回路44の詳細な回路ブロ
ック図を示す。ライトコントロール回路113はライト
(プログラム)電圧供給回路60,カウンタ62,リセ
ットフラグ61およびインバータ65を含む。電圧供給
回路60はリセットフラグ602の出力であるリセット
信号63がロウレベルの時、データライトに必要なライ
ト(プログラム)電圧53とライトストローブ信号54
とをPROMアイイ32に印加する。カウンタ62はCPU
から供給されるシステムクロック66の数をリセット信
号63がロウレベルの期間カウントする。またカウンタ
62はリセット信号63がハイレベルになるとクリアさ
れカウント動作を停止する。さらに、カウンタ62はそ
の最上位ビットからキャリー信号64を出力してリセッ
トフラグ61をセットする。カウント数はPROMへデータ
ライトに必要な時間に基いて任意に設定されればよい。
このカウンタがプログラマブルカウンタであればカウン
ト数の変更を容易に行なうことができる。リセットフラ
グ602はキャリー信号64がハイレベルの時セットさ
れる1ビットのフリップ・フロップで、ライトスタート
信号50が入力されるとクリア(リセット)され、ロウ
レベルのリセット信号63を発生する。
ック図を示す。ライトコントロール回路113はライト
(プログラム)電圧供給回路60,カウンタ62,リセ
ットフラグ61およびインバータ65を含む。電圧供給
回路60はリセットフラグ602の出力であるリセット
信号63がロウレベルの時、データライトに必要なライ
ト(プログラム)電圧53とライトストローブ信号54
とをPROMアイイ32に印加する。カウンタ62はCPU
から供給されるシステムクロック66の数をリセット信
号63がロウレベルの期間カウントする。またカウンタ
62はリセット信号63がハイレベルになるとクリアさ
れカウント動作を停止する。さらに、カウンタ62はそ
の最上位ビットからキャリー信号64を出力してリセッ
トフラグ61をセットする。カウント数はPROMへデータ
ライトに必要な時間に基いて任意に設定されればよい。
このカウンタがプログラマブルカウンタであればカウン
ト数の変更を容易に行なうことができる。リセットフラ
グ602はキャリー信号64がハイレベルの時セットさ
れる1ビットのフリップ・フロップで、ライトスタート
信号50が入力されるとクリア(リセット)され、ロウ
レベルのリセット信号63を発生する。
次にライトコントロール回路44の動作を説明する。初
期状態では、ライトアクノリッジ信号52は非アクティ
ブ、リセットフラグ61はセットされており、リセット
信号63がハイレベルとなってカウンタ62をクリアし
た状態に保持している。ライトスタート信号50が入力
されるとリセットフラグ61がクリアされ、リセット信
号63がアクティブ(ロウレベル)となる。これに応答
してインバータ65はライト動作を指示するライトアク
ノリッジ信号52をアクティブ(ハイレベル)にする。
リセット信号63がロウレベルとなると同時にカウンタ
(タイマ)62はカウント動作を開始し、システムクロ
ック66をカウントする。ライト(プログラム)電圧供
給回路60はライト電圧53とライトストローブ信号5
4とをPROMアレイ32に印加しデータライト動作を実行
する。カウンタ62の最上位ビットからキャリー信号6
4が出力されると、リセットフラグ61がセットされ
る。この結果、リセット信号63がハイレベルとなり、
カウンタ62はクリアされ、動作が停止される。さら
に、ライト電圧53およびライトストローブ信号54の
印加が止められ、かつライトアクノリッジ信号52はロ
ウレベルとなる。これによってバスインターフェイス回
路41にライト動作終了が通知される。
期状態では、ライトアクノリッジ信号52は非アクティ
ブ、リセットフラグ61はセットされており、リセット
信号63がハイレベルとなってカウンタ62をクリアし
た状態に保持している。ライトスタート信号50が入力
されるとリセットフラグ61がクリアされ、リセット信
号63がアクティブ(ロウレベル)となる。これに応答
してインバータ65はライト動作を指示するライトアク
ノリッジ信号52をアクティブ(ハイレベル)にする。
リセット信号63がロウレベルとなると同時にカウンタ
(タイマ)62はカウント動作を開始し、システムクロ
ック66をカウントする。ライト(プログラム)電圧供
給回路60はライト電圧53とライトストローブ信号5
4とをPROMアレイ32に印加しデータライト動作を実行
する。カウンタ62の最上位ビットからキャリー信号6
4が出力されると、リセットフラグ61がセットされ
る。この結果、リセット信号63がハイレベルとなり、
カウンタ62はクリアされ、動作が停止される。さら
に、ライト電圧53およびライトストローブ信号54の
印加が止められ、かつライトアクノリッジ信号52はロ
ウレベルとなる。これによってバスインターフェイス回
路41にライト動作終了が通知される。
以上の動作説明においては、データライト,データリー
ドの場合について述べた、ここで、PROMアレイにE2PROM
セルが用いられている場合、本願はそのデータ消去時に
おいても有効である。すなわちE2PROMの場合、書込まれ
たデータの消去は全てのE2PROMセルにデータ“0”もし
くは“1”を書込むことによって行なわれる。従って、
データのライト動作と同様に、データの消去動作中で
も、CPUは独立に別の処理(例えば符号処理や外部と
のデータ転送処理等)を実行することができるという効
果が得られる。さらに、PROMへデータの書込みもしくは
消去中に、他のデータの書込みもしくは書込まれている
データの消去、またはデータリードをCPUが要求した
場合、バスインターフェイス回路41がCPUにウェイ
トを指示し、現在のデータの書込み・消去の実行終了ま
で待たせ、終了後直ちにデータの書込み・消去またはリ
ード動作を行うように制御されているので、従来に比べ
てより高速にPROMをアクセスすることができる。なお、
第1図において、アドレスバッファ42およびデータバ
ッファ43を多段構成(いわゆるキュー構成)とするこ
とによって、PROMへの連続データアクセスに対してCP
Uのデータ処理能力をさらに向上せしめることが可能で
ある。
ドの場合について述べた、ここで、PROMアレイにE2PROM
セルが用いられている場合、本願はそのデータ消去時に
おいても有効である。すなわちE2PROMの場合、書込まれ
たデータの消去は全てのE2PROMセルにデータ“0”もし
くは“1”を書込むことによって行なわれる。従って、
データのライト動作と同様に、データの消去動作中で
も、CPUは独立に別の処理(例えば符号処理や外部と
のデータ転送処理等)を実行することができるという効
果が得られる。さらに、PROMへデータの書込みもしくは
消去中に、他のデータの書込みもしくは書込まれている
データの消去、またはデータリードをCPUが要求した
場合、バスインターフェイス回路41がCPUにウェイ
トを指示し、現在のデータの書込み・消去の実行終了ま
で待たせ、終了後直ちにデータの書込み・消去またはリ
ード動作を行うように制御されているので、従来に比べ
てより高速にPROMをアクセスすることができる。なお、
第1図において、アドレスバッファ42およびデータバ
ッファ43を多段構成(いわゆるキュー構成)とするこ
とによって、PROMへの連続データアクセスに対してCP
Uのデータ処理能力をさらに向上せしめることが可能で
ある。
第1図に示した例は、PROMとしてE2PROMを使った場合と
UVEPROMを使った場合のいずれにおいても、CPUの処
理効率を実質的に向上せしめることができるという効果
が得られる。
UVEPROMを使った場合のいずれにおいても、CPUの処
理効率を実質的に向上せしめることができるという効果
が得られる。
以上説明したように、上記構成によればCPUの処理効
率を向上することができる。しかし、まだ解決すべき問
題点が残っている。したがって、以下にPROMへの書込効
率をも向上することができるシングルチップマイクロコ
ンピュータを示す。
率を向上することができる。しかし、まだ解決すべき問
題点が残っている。したがって、以下にPROMへの書込効
率をも向上することができるシングルチップマイクロコ
ンピュータを示す。
(実施例) 第6図は本発明の一実施例を示すPROM内蔵シングルチッ
プマイクロコンピュータの構成ブロック図である。
プマイクロコンピュータの構成ブロック図である。
プログラムカウンタ101は固定情報が書込まれている
ROM102から命令コードに読み出すためのアドレス
ポインタである。命令レジスタ104はROM102か
ら読み出された命令コードを格納するレジスタである。
CPU制御部(デコーダ/制御部)105は命令レジス
タ104に格納された命令コードまたは特殊処理要求信
号219に基いてCPU動作をマイクロプログラムで制
御するブロックである。汎用レジスタ群112は演算の
中心となるレジスタ群であり、RAM109内に存在す
る。テンポラリレジスタ107および108は算術論理
演算ユニット(ALU)106への入力データを一時保
持するためのレジスタである。算術論理演算ユニット1
06はテンポラリレジスタ107,108に格納された
データに対し命令で指定された算術論理演算を行い、結
果をデータバス103へ出力する。RAM109は汎用
レジスタおよび種々の処理データ格納領域を含む読出し
書込みが可能なメモリで、アドレスバスとデータバス1
03に接続されている。PROMブロック11はPROMアレイ
を含み、アドレスバス110およびデータバス103に
接続されている。なお、データライトのとき、特殊処理
要求信号219を出力し、CPUに特殊処理を指示す
る。データバッファ301はPROMブロック111に書込
まれるべきデータを格納する領域で、RAM109内に
存在する。ライト信号205はアクティブロウの信号
で、PROMにデータを書込む命令に基いて発生される。リ
ード信号206はアクティブロウの信号で、PROMからデ
ータを読み出す命令に基いて発生される。ライト信号2
05およびリード信号206は第1図で示したライト信
号45およびリード信号46と同じであってもよい。タ
ーミナルカウンタ(以下、TCという)302は、PROM
ブロック111に対する書込動作の際にCPUで行われ
る特殊処理の処理回数の制御に使用されるカウンタでR
AM109内に存在する。第1の実施例と同様にプログ
ラムカウンタ101,命令レジスタ104,CPU制御
部105,汎用レジスタ群112,テンポラリレジスタ
107,108および算術論理演算ユニット106でC
PUを構成している。
ROM102から命令コードに読み出すためのアドレス
ポインタである。命令レジスタ104はROM102か
ら読み出された命令コードを格納するレジスタである。
CPU制御部(デコーダ/制御部)105は命令レジス
タ104に格納された命令コードまたは特殊処理要求信
号219に基いてCPU動作をマイクロプログラムで制
御するブロックである。汎用レジスタ群112は演算の
中心となるレジスタ群であり、RAM109内に存在す
る。テンポラリレジスタ107および108は算術論理
演算ユニット(ALU)106への入力データを一時保
持するためのレジスタである。算術論理演算ユニット1
06はテンポラリレジスタ107,108に格納された
データに対し命令で指定された算術論理演算を行い、結
果をデータバス103へ出力する。RAM109は汎用
レジスタおよび種々の処理データ格納領域を含む読出し
書込みが可能なメモリで、アドレスバスとデータバス1
03に接続されている。PROMブロック11はPROMアレイ
を含み、アドレスバス110およびデータバス103に
接続されている。なお、データライトのとき、特殊処理
要求信号219を出力し、CPUに特殊処理を指示す
る。データバッファ301はPROMブロック111に書込
まれるべきデータを格納する領域で、RAM109内に
存在する。ライト信号205はアクティブロウの信号
で、PROMにデータを書込む命令に基いて発生される。リ
ード信号206はアクティブロウの信号で、PROMからデ
ータを読み出す命令に基いて発生される。ライト信号2
05およびリード信号206は第1図で示したライト信
号45およびリード信号46と同じであってもよい。タ
ーミナルカウンタ(以下、TCという)302は、PROM
ブロック111に対する書込動作の際にCPUで行われ
る特殊処理の処理回数の制御に使用されるカウンタでR
AM109内に存在する。第1の実施例と同様にプログ
ラムカウンタ101,命令レジスタ104,CPU制御
部105,汎用レジスタ群112,テンポラリレジスタ
107,108および算術論理演算ユニット106でC
PUを構成している。
次に第7図を用いてPROMブロック111の構成をより詳
細に説明する。
細に説明する。
まずPROMが電気的な書込みが可能でかつ紫外線照射によ
りデータ消去が可能なUVEPROMの場合について述べる。
りデータ消去が可能なUVEPROMの場合について述べる。
バスインターフェイス回路201はアドレスバス110
およびデータバス103とPROMブロック111との電気
的接続を主に制御する回路で、ライト信号205,リー
ド信号206およびアドレスバス110上のアドレスに
従って、アドレスラッチ信号210,データラッチ信号
209を発生し、アドレスバス110上のアドレス,デ
ータバス103上のデータを各々アドレスバッファ20
2,データバッファ203へラッチする。データラッチ
動作の場合、非書込を指示するフラグ(RF)213を
リセットし、タイマ起動信号207を出力してタイマー
211を起動する。タイマー/書込み制御回路211は
バスインターフェイス回路201からの信号に応答して
タイマー動作を実行し、予め定められた時間が経過する
と(オーバーフローすると)停止する。タイマー動作中
はロウアクティブなライトストローブ信号214とライ
ト(プログラム)電圧215をPROMアレイ204に印加
する。またタイマーのオーバーフローと同時に特殊処理
要求信号219を発生してCPUに特殊処理を要求す
る。フラグ213はPROMアレイ204に対する書き込み
が終了したことをCPUに指示するフラグである。この
フラグ213はPROMブロック111がライト処理を開始
する際バスインターフェイス回路213によりリセット
され、PROMアレイ204への書き込み終了時、CPU制
御105が指示する特殊処理ルーチンによってマイクロ
命令でセットされる。リードストローブ信号208はロ
ウアクティブな信号で、データリードの際バスインター
フェイス回路201からPROMアレイ204に供給され
る。
およびデータバス103とPROMブロック111との電気
的接続を主に制御する回路で、ライト信号205,リー
ド信号206およびアドレスバス110上のアドレスに
従って、アドレスラッチ信号210,データラッチ信号
209を発生し、アドレスバス110上のアドレス,デ
ータバス103上のデータを各々アドレスバッファ20
2,データバッファ203へラッチする。データラッチ
動作の場合、非書込を指示するフラグ(RF)213を
リセットし、タイマ起動信号207を出力してタイマー
211を起動する。タイマー/書込み制御回路211は
バスインターフェイス回路201からの信号に応答して
タイマー動作を実行し、予め定められた時間が経過する
と(オーバーフローすると)停止する。タイマー動作中
はロウアクティブなライトストローブ信号214とライ
ト(プログラム)電圧215をPROMアレイ204に印加
する。またタイマーのオーバーフローと同時に特殊処理
要求信号219を発生してCPUに特殊処理を要求す
る。フラグ213はPROMアレイ204に対する書き込み
が終了したことをCPUに指示するフラグである。この
フラグ213はPROMブロック111がライト処理を開始
する際バスインターフェイス回路213によりリセット
され、PROMアレイ204への書き込み終了時、CPU制
御105が指示する特殊処理ルーチンによってマイクロ
命令でセットされる。リードストローブ信号208はロ
ウアクティブな信号で、データリードの際バスインター
フェイス回路201からPROMアレイ204に供給され
る。
次に第6図および第7図を用いて、一実施例の動作を説
明する。
明する。
CPUからライト信号205およびリード信号206の
いずれも出力されていない時、アドレスバス110およ
びデータバス103はバスイターフェイス回路201か
ら電気的に切り離されている。この状態ではタイマ起動
信号207は発生されておらず、タイマー/書込制御回
路211のタイマーはオーバーフローした状態で停止し
ている。従って、ライト電圧215およびライトストロ
ーブ信号214はPROMアレイ204に印加されていな
い。また、特殊処理要求信号219も出力されない。フ
ラグ213はセットされている。
いずれも出力されていない時、アドレスバス110およ
びデータバス103はバスイターフェイス回路201か
ら電気的に切り離されている。この状態ではタイマ起動
信号207は発生されておらず、タイマー/書込制御回
路211のタイマーはオーバーフローした状態で停止し
ている。従って、ライト電圧215およびライトストロ
ーブ信号214はPROMアレイ204に印加されていな
い。また、特殊処理要求信号219も出力されない。フ
ラグ213はセットされている。
この状態において、PROMアレイ204からデータをリー
ドする場合の動作を説明する。フラグ213を設けてい
るので、ソフトウェアによってこのフラグ213がセッ
トされているか否かをチェックすることができる。従っ
て、セットされている場合にPROMアレイ204をアクセ
スするようにプログラムを作成し、これをROM102
の中に記憶させておくことが可能である。
ドする場合の動作を説明する。フラグ213を設けてい
るので、ソフトウェアによってこのフラグ213がセッ
トされているか否かをチェックすることができる。従っ
て、セットされている場合にPROMアレイ204をアクセ
スするようにプログラムを作成し、これをROM102
の中に記憶させておくことが可能である。
命令レジスタ104にROM102から読み出されたリ
ード命令コードが格納されると、CPU制御部105は
これをデコードして対応したマイクロプログラムの実行
を開始する。まず、必要なアドレスをアドレスバス11
0に出力するとともにリード信号206を発生する。バ
スインタフェイス回路201はアドレスバス110上の
アドレスをデコードしてこれがPROMアレイ204内のア
ドレスであることを確認した後、アドレスバス110お
よびデータバス103とPROMブロック111とを結合
し、アドレスラッチ信号210を出力してアドレスバッ
ファ202にアドレスを入力する。その後、リードスト
ローブ信号208をアクティブにして、PROMアレイ20
4からデータをリードする。そしてデータラッチ信号2
09をアクティブにしてリードされたデータをデータバ
ッファ203に格納する。このデータはバスインターフ
ェイス回路201を介してデータバス103に転送され
る。この結果、CPUはリードされたデータを受け取る
ことができる。バスインタフェイス回路201はデータ
をデータバス103に送るとアドレスバス110とデー
タバス103とをPROMブロック111から電気的に切り
離す。かくして、データリード動作が終了する。
ード命令コードが格納されると、CPU制御部105は
これをデコードして対応したマイクロプログラムの実行
を開始する。まず、必要なアドレスをアドレスバス11
0に出力するとともにリード信号206を発生する。バ
スインタフェイス回路201はアドレスバス110上の
アドレスをデコードしてこれがPROMアレイ204内のア
ドレスであることを確認した後、アドレスバス110お
よびデータバス103とPROMブロック111とを結合
し、アドレスラッチ信号210を出力してアドレスバッ
ファ202にアドレスを入力する。その後、リードスト
ローブ信号208をアクティブにして、PROMアレイ20
4からデータをリードする。そしてデータラッチ信号2
09をアクティブにしてリードされたデータをデータバ
ッファ203に格納する。このデータはバスインターフ
ェイス回路201を介してデータバス103に転送され
る。この結果、CPUはリードされたデータを受け取る
ことができる。バスインタフェイス回路201はデータ
をデータバス103に送るとアドレスバス110とデー
タバス103とをPROMブロック111から電気的に切り
離す。かくして、データリード動作が終了する。
次にPROMアレイ204にデータを書込む場合について、
第8図のフローチャートを参照して説明する。
第8図のフローチャートを参照して説明する。
第8図(a)に示すように、ROM102からライト命令
コードが読み出されると、PROM204へのライト命令実
行処理がマイクロプログラムに従って実行される。マイ
クロプログラムによってまずRAM109内のTC30
2に初期値(例えば“10”)がセットされる。PROMアレ
イ204に書込まれるべきデータはデータレジスタ30
1に格納される。次に、アドレスバス110およびデー
タバス103に各々PROMアレイ204へのアドレスおよ
びデータを出力し、ライト信号205を発生してPROMブ
ロック111へライト処理を指示する。
コードが読み出されると、PROM204へのライト命令実
行処理がマイクロプログラムに従って実行される。マイ
クロプログラムによってまずRAM109内のTC30
2に初期値(例えば“10”)がセットされる。PROMアレ
イ204に書込まれるべきデータはデータレジスタ30
1に格納される。次に、アドレスバス110およびデー
タバス103に各々PROMアレイ204へのアドレスおよ
びデータを出力し、ライト信号205を発生してPROMブ
ロック111へライト処理を指示する。
PROMブロック111は第8図(b)のフローチャートに従
って、ライト操作を実行する。バスインタフェイス回路
201はアドレスバス110上のアドレスをデコードし
て、これがPROMアレイ204に対するアドレスであるこ
とを確認した後、まずアドレスバス110およびデータ
バス103とPROMブロック111とを結合する。さら
に、アドレスラッチ信号210とデータラッチ信号20
9とを出力して、アドレスバス110およびデータバス
103上のアドレスとデータとを各々アドレスバッファ
202およびデータバッファ203にラッチする。その
後、アドレスバス110とデータバス103とをPROMブ
ロック111から電気的に切り離す。さらに、バスイン
タフェイス回路201はフラグ213をリセットすると
ともに、タイマ起動信号207をタイマー書込み制御回
路211に印加する。
って、ライト操作を実行する。バスインタフェイス回路
201はアドレスバス110上のアドレスをデコードし
て、これがPROMアレイ204に対するアドレスであるこ
とを確認した後、まずアドレスバス110およびデータ
バス103とPROMブロック111とを結合する。さら
に、アドレスラッチ信号210とデータラッチ信号20
9とを出力して、アドレスバス110およびデータバス
103上のアドレスとデータとを各々アドレスバッファ
202およびデータバッファ203にラッチする。その
後、アドレスバス110とデータバス103とをPROMブ
ロック111から電気的に切り離す。さらに、バスイン
タフェイス回路201はフラグ213をリセットすると
ともに、タイマ起動信号207をタイマー書込み制御回
路211に印加する。
タイマー書込制御回路211はライト電圧215とライ
トストローブ信号214とをPROMアレイ204に印加
し、アドレスバッファ202に格納されているアドレス
にデータバッファ203に格納されているデータを書込
む。一定時間経過後タイマーがオーバーフローすると、
ライト電圧215とライトストローブ信号214との印
加を停止し、特殊処理要求信号219を出力する。以上
をPROMブロックにおける基本ライト動作と呼ぶ。
トストローブ信号214とをPROMアレイ204に印加
し、アドレスバッファ202に格納されているアドレス
にデータバッファ203に格納されているデータを書込
む。一定時間経過後タイマーがオーバーフローすると、
ライト電圧215とライトストローブ信号214との印
加を停止し、特殊処理要求信号219を出力する。以上
をPROMブロックにおける基本ライト動作と呼ぶ。
CPUはライト信号205を出力した後、次の命令を実
行している。従って第1の実施例と同様にPROMへのデー
タライト期間中におけるCPUの処理効率を向上するこ
とができる。
行している。従って第1の実施例と同様にPROMへのデー
タライト期間中におけるCPUの処理効率を向上するこ
とができる。
基本ライト動作によるPROMへのデータ書込時間は従来の
PROM書込み時間(50mS)に比べてはるかに短い時間(例
えば1mS)とする。本実施例では、この短い時間の基本
ライト動作を繰り返すことによってデータの書込みを行
なうものである。ただし、データ書込みは基本ライト動
作を最小必要回数だけ繰り返されればよいように工夫さ
れている。このために次に述べる特殊処理を用いてい
る。
PROM書込み時間(50mS)に比べてはるかに短い時間(例
えば1mS)とする。本実施例では、この短い時間の基本
ライト動作を繰り返すことによってデータの書込みを行
なうものである。ただし、データ書込みは基本ライト動
作を最小必要回数だけ繰り返されればよいように工夫さ
れている。このために次に述べる特殊処理を用いてい
る。
特殊処理はCPUで実行され、とくにCPU制御部10
5のマイクロプログラムによって制御される。これを第
9図のフローチャートを参照して説明する。特殊処理ル
ーチンはPROMブロック111からの特殊処理要求信号2
19によって起動される。この信号219をCPUがう
けると、CPU制御部105はROM102に格納され
ているユーザプログラムの実行を中断し、その時のプロ
グラムカウンタ101および汎用レジスタ群112の内
容を保持したまま以下の順序で特殊マイクロプログラム
ルーチンを実行する。
5のマイクロプログラムによって制御される。これを第
9図のフローチャートを参照して説明する。特殊処理ル
ーチンはPROMブロック111からの特殊処理要求信号2
19によって起動される。この信号219をCPUがう
けると、CPU制御部105はROM102に格納され
ているユーザプログラムの実行を中断し、その時のプロ
グラムカウンタ101および汎用レジスタ群112の内
容を保持したまま以下の順序で特殊マイクロプログラム
ルーチンを実行する。
特殊マイクロプログラムに基いてCPU制御部105
はPROMアレイ204から基本ライト動作によって書込ま
れたデータを読み出す(この処理はデータリード動作と
同じでよい)。読み出したデータを一方のテンポラリレ
ジスタ108に格納する。
はPROMアレイ204から基本ライト動作によって書込ま
れたデータを読み出す(この処理はデータリード動作と
同じでよい)。読み出したデータを一方のテンポラリレ
ジスタ108に格納する。
CPU制御部105はPROMに書込まれるべき正しいデ
ータが残されているRAM109内のデータバッファ3
01からデータを読み出し、データバス103を介して
他方のテンポラリレジスタ107に格納する。
ータが残されているRAM109内のデータバッファ3
01からデータを読み出し、データバス103を介して
他方のテンポラリレジスタ107に格納する。
CPU制御部105は次にALU106を用いてテン
ポラリレジスタ107と108との各データを比較する
(例えば、演算処理を行なう)。
ポラリレジスタ107と108との各データを比較する
(例えば、演算処理を行なう)。
両者が異なる場合はPROMに正しいデータが書込まれて
いないと判断して、前記基本ライト動作を再度指示す
る。ただし、その時、RAM109内のTCレジスタの
内容をALU106を用いて1だけ減算し、その結果を
再びTCレジスタ302に格納する。なお、基本ライト
動作を指示する時には、必要に応じてアドレスおよびデ
ータ(バッファレジスタ301のデータ)をPROMブロッ
ク111に送りライト信号205を出力する。但しTC
レジスタ302の内容をデクリメント(−1)した結果
が“0”の場合は書き込み不能であると身做し、これに
対応した処理プログラム(ROM102に予め格納して
おく)を実行する。この操作はPROMセルの破損や原因不
明の異常に対して有効であり、誤書込みおよび書込不能
を容易に検出することができる。
いないと判断して、前記基本ライト動作を再度指示す
る。ただし、その時、RAM109内のTCレジスタの
内容をALU106を用いて1だけ減算し、その結果を
再びTCレジスタ302に格納する。なお、基本ライト
動作を指示する時には、必要に応じてアドレスおよびデ
ータ(バッファレジスタ301のデータ)をPROMブロッ
ク111に送りライト信号205を出力する。但しTC
レジスタ302の内容をデクリメント(−1)した結果
が“0”の場合は書き込み不能であると身做し、これに
対応した処理プログラム(ROM102に予め格納して
おく)を実行する。この操作はPROMセルの破損や原因不
明の異常に対して有効であり、誤書込みおよび書込不能
を容易に検出することができる。
レジスタ108と109の内容が同一の場合はフラグ
213をセットする。なお、に続いて、PROMへの書き
込みをより確実にするためさらに一定時間もしくは所定
回数基本ライト動作を実行してもよい。
213をセットする。なお、に続いて、PROMへの書き
込みをより確実にするためさらに一定時間もしくは所定
回数基本ライト動作を実行してもよい。
特殊処理終了後、CPUは保持していたプログラムカウ
ンタ101の内容および汎用レジスタ群112の内容を
用いて、中断していたプログラムの実行を再開する。従
って、ユーザからはプログラムの中断は見えずにあたか
も特殊処理がプログラム処理中に自動的に挿入されたか
のように映る。
ンタ101の内容および汎用レジスタ群112の内容を
用いて、中断していたプログラムの実行を再開する。従
って、ユーザからはプログラムの中断は見えずにあたか
も特殊処理がプログラム処理中に自動的に挿入されたか
のように映る。
次に、PROMとして電気的に消去可能なPROM(EEPROM)を用
いた場合の動作を説明する。第10図にEEPROMア
レイ212を用いた場合のPROMブロック111の構成を
示す。第7図のUVEPROMを用いたPROMブロックの構成要
素以外にデータラッチ203の内容が“0”であるか否
かを検出し、“0”の場合のみ零検出信号402をアク
ティブにする零検出回路401が付加され、タイマー/
制御回路404が若干変更されている。タイマー/制御
回路404は消去ストローブ信号403をEEPROMアレイ
212に供給する機能を有している。これ以外の構成は
第7図と同じでよいため説明を省略する。
いた場合の動作を説明する。第10図にEEPROMア
レイ212を用いた場合のPROMブロック111の構成を
示す。第7図のUVEPROMを用いたPROMブロックの構成要
素以外にデータラッチ203の内容が“0”であるか否
かを検出し、“0”の場合のみ零検出信号402をアク
ティブにする零検出回路401が付加され、タイマー/
制御回路404が若干変更されている。タイマー/制御
回路404は消去ストローブ信号403をEEPROMアレイ
212に供給する機能を有している。これ以外の構成は
第7図と同じでよいため説明を省略する。
次に動作を説明する。データ消去以外の動作は第7図の
UVEPROMの場合と同じであるから、ここではとくにデー
タ消去動作について詳述する。
UVEPROMの場合と同じであるから、ここではとくにデー
タ消去動作について詳述する。
EEPROMアレイ212の内容消去は、例えばユーザプログ
ラムによってEEPROMアレイ212のすべてのセルに
“0”を書き込むことにより実現する。まず、前述した
データライト処理と同様にバスインターフェイス回路2
01を介してアドレスバッファ202およびデータバッ
ファ203に夫々アドレスおよびデータをラッチする。
その後、零検出回路401はデータが0であることを検
出して零検出信号402をアクティブにする。タイマー
/制御回路404はタイマー起動信号207に応答して
ライトモードを設定するが、この時零検出信号402が
アクティブであれば消去ストローブ信号403を発生し
てE2PROMアレイ212の指定されたセルのデータを消去
する。なお、データライト動作において、“0”を書込
む時は実質的に上述したデータ消去処理を実行すればよ
い。従って、データ消去時においても、CPUは消去処
理と独立に別の処理を実行することができる。ここで、
データ消去が完全か否かを前述した特殊処理を用いてチ
ェックしてもよい。この場合は、RAM109内のデー
タバッファ301には“0”を書込んでおけばよい。
ラムによってEEPROMアレイ212のすべてのセルに
“0”を書き込むことにより実現する。まず、前述した
データライト処理と同様にバスインターフェイス回路2
01を介してアドレスバッファ202およびデータバッ
ファ203に夫々アドレスおよびデータをラッチする。
その後、零検出回路401はデータが0であることを検
出して零検出信号402をアクティブにする。タイマー
/制御回路404はタイマー起動信号207に応答して
ライトモードを設定するが、この時零検出信号402が
アクティブであれば消去ストローブ信号403を発生し
てE2PROMアレイ212の指定されたセルのデータを消去
する。なお、データライト動作において、“0”を書込
む時は実質的に上述したデータ消去処理を実行すればよ
い。従って、データ消去時においても、CPUは消去処
理と独立に別の処理を実行することができる。ここで、
データ消去が完全か否かを前述した特殊処理を用いてチ
ェックしてもよい。この場合は、RAM109内のデー
タバッファ301には“0”を書込んでおけばよい。
次に一実施例におけるCPUの動作とPROMブロックの動
作との関係を第11図に示す。
作との関係を第11図に示す。
第11図において、時刻t0,t1はそれぞれ書き込みシー
ケンスの開始,終了時刻であり、TWは書き込みに要する
時間、TBは基本ライト処理時間を表わす。また、処理P0
はCPUにおける書き込み処理以外の処理期間、処理P1
はCPUのライト命令実行処理、処理P2,P3はそれぞれ
CPUの基本ライト動作起動処理(第8図a)および特
殊処理(第9図)である。処理P4はPROMブロック111
の基本ライト処理(第8図b)である。
ケンスの開始,終了時刻であり、TWは書き込みに要する
時間、TBは基本ライト処理時間を表わす。また、処理P0
はCPUにおける書き込み処理以外の処理期間、処理P1
はCPUのライト命令実行処理、処理P2,P3はそれぞれ
CPUの基本ライト動作起動処理(第8図a)および特
殊処理(第9図)である。処理P4はPROMブロック111
の基本ライト処理(第8図b)である。
第11図から明らかなように、本実施例によれば、PROM
へのデータ書込み処理はその大半がPROMブロック内で遂
行されるので、その間CPUは並列に他の処理を実行す
ることができる。従って、CPUの処理効率を著しく向
上することができる。さらに、PROMに対するデータの書
込み効率を複雑な外付回路を用いることなくチップ内で
向上せしめることができる。
へのデータ書込み処理はその大半がPROMブロック内で遂
行されるので、その間CPUは並列に他の処理を実行す
ることができる。従って、CPUの処理効率を著しく向
上することができる。さらに、PROMに対するデータの書
込み効率を複雑な外付回路を用いることなくチップ内で
向上せしめることができる。
さらに、一実施例において、ROMおよび/もしくはR
AMをチップの外に設け、いわゆるCPUとPROMとを同
一チップ上に集積化してもよい。また、場合によって
は、CPUとPROMブロックとを別々のチップで作っても
よい。さらに、ライト(プログラム)電圧はチップの外
から印加するようにしてもよいし、あるいはチップの中
に昇圧回路を設けチップ内部で発生するようにしてもよ
い。
AMをチップの外に設け、いわゆるCPUとPROMとを同
一チップ上に集積化してもよい。また、場合によって
は、CPUとPROMブロックとを別々のチップで作っても
よい。さらに、ライト(プログラム)電圧はチップの外
から印加するようにしてもよいし、あるいはチップの中
に昇圧回路を設けチップ内部で発生するようにしてもよ
い。
以上説明したように本発明のシングルチップマイクロコ
ンピュータによれば、PROMへのデータ書込みおよび消去
期間中における実質的なCPUの処理効率を大幅に向上
することができる。さらに、CPUの処理能力の改善と
ともに、PROMへのデータ書込みおよび消去時間を複雑な
付加回路なしに短縮せしめることができるという優れた
効果を有している。また、ユーザに意識させない形態で
書込み効率とCPUの処理効率との双方を向上せしめて
おり、ユーザが非常に使い易いマイクロコンピュータを
提供することができる。加えて、ICカードのように小
型・軽量のパッケージの中に収めやすいシングルチップ
マイクロコンピュータを提供することができる。
ンピュータによれば、PROMへのデータ書込みおよび消去
期間中における実質的なCPUの処理効率を大幅に向上
することができる。さらに、CPUの処理能力の改善と
ともに、PROMへのデータ書込みおよび消去時間を複雑な
付加回路なしに短縮せしめることができるという優れた
効果を有している。また、ユーザに意識させない形態で
書込み効率とCPUの処理効率との双方を向上せしめて
おり、ユーザが非常に使い易いマイクロコンピュータを
提供することができる。加えて、ICカードのように小
型・軽量のパッケージの中に収めやすいシングルチップ
マイクロコンピュータを提供することができる。
第1図は例によるシングルチップマイクロコンピュータ
のPROMのブロック図、第2図はPROM内蔵シングルチップ
マイクロコンピュータの基本ブロック図、第3図はPROM
内蔵シングルチップマイクロコンピュータの従来のPROM
のブロック図、第4図は例におけるバスインターフェイ
ス回路のブロック図、第5図はライトコントロール回路
のブロック図、第6図は本発明の一実施例によるシング
ルチップマイクロコンピュータのブロック図、第7図は
第6図のPROMのブロック図、第8図は一実施例によるシ
ングルチップマイクロコンピュータのPROMへのデータラ
イトシーケンスを示す図で、(a)はCPU動作のフロー
チャート、(b)はPROMブロックのフローチャート、第9
図は特殊処理ルーチンのフローチャート、第10図はE2
PROMに一実施例を適用した時のPROMのブロック図、第1
1図は一実施例におけるPROMへのデータライトシーケン
スのタイミングチャートである。 1……プログラムカウンタ、2……ROM、3……デー
タバス、4……命令レジスタ、5……デコーダ/制御
部、6……算術論理演算ユニット(ALU)、7……テ
ンポラリレジスタ、8……テンポラリレジスタ、9……
RAM、10……アドレスバス、11……PROMブロッ
ク、12……汎用レジスタ群、31……書込み制御回
路、32……PROMアレイ、33……ライト信号、34…
…ライト(プログラム)電圧、35……ライトストロー
ブ信号、36……リードストローブ信号、41……バス
インターフェイス回路、42……アドレスバッファ、4
3……データバッファ、44……ライトコントロール回
路、45……ライト信号、46……リード信号、47…
…アドレスラッチ信号、48……データラッチ信号、4
9……ウェイト信号、50……ライトスタート信号、5
1……リードストローブ信号、52……ライトアクノリ
ッジ信号、53……ライト(プログラム)電圧、54…
…ライトストローブ信号、55……アクセス信号、56
……アドレスデコーダ、57……バス制御回路、60…
…ライト(プログラム)電圧供給回路、61……リセッ
トフラグ、62……カウンタ、63……リセット信号、
64……キャリー信号、65……インバータ、66……
システムクロック(SC)、101……プログラムカウ
ンタ、102……ROM、103……データバス、10
4……命令レジスタ、105……CPU制御部、106
……算術論理演算ユニット(ALU)、107……テン
ポラリレジスタ、108……テンポラリレジスタ、10
9……RAM、110……アドレスバス、111……PR
OMブロック、112……汎用レジスタ群、201……バ
スインターフェイス回路、202……アドレスバッフ
ァ、203……データバッファ、204……PROMアレ
イ、205……ライト信号、206……リード信号、2
07……タイマ起動信号、208……リードストローブ
信号、209……データラッチ信号、210……アドレ
スラッチ信号、211……タイマー/制御回路、212
……EEPROMアレイ、213……フラグ、214……ライ
トストローブ信号、215……ライト(プログラム)電
圧、301……データレジスタ、302……ターミナル
カウンタ、401……零検出回路、402……零検出信
号、403……消去ストローブ信号、404……タイマ
/制御回路。
のPROMのブロック図、第2図はPROM内蔵シングルチップ
マイクロコンピュータの基本ブロック図、第3図はPROM
内蔵シングルチップマイクロコンピュータの従来のPROM
のブロック図、第4図は例におけるバスインターフェイ
ス回路のブロック図、第5図はライトコントロール回路
のブロック図、第6図は本発明の一実施例によるシング
ルチップマイクロコンピュータのブロック図、第7図は
第6図のPROMのブロック図、第8図は一実施例によるシ
ングルチップマイクロコンピュータのPROMへのデータラ
イトシーケンスを示す図で、(a)はCPU動作のフロー
チャート、(b)はPROMブロックのフローチャート、第9
図は特殊処理ルーチンのフローチャート、第10図はE2
PROMに一実施例を適用した時のPROMのブロック図、第1
1図は一実施例におけるPROMへのデータライトシーケン
スのタイミングチャートである。 1……プログラムカウンタ、2……ROM、3……デー
タバス、4……命令レジスタ、5……デコーダ/制御
部、6……算術論理演算ユニット(ALU)、7……テ
ンポラリレジスタ、8……テンポラリレジスタ、9……
RAM、10……アドレスバス、11……PROMブロッ
ク、12……汎用レジスタ群、31……書込み制御回
路、32……PROMアレイ、33……ライト信号、34…
…ライト(プログラム)電圧、35……ライトストロー
ブ信号、36……リードストローブ信号、41……バス
インターフェイス回路、42……アドレスバッファ、4
3……データバッファ、44……ライトコントロール回
路、45……ライト信号、46……リード信号、47…
…アドレスラッチ信号、48……データラッチ信号、4
9……ウェイト信号、50……ライトスタート信号、5
1……リードストローブ信号、52……ライトアクノリ
ッジ信号、53……ライト(プログラム)電圧、54…
…ライトストローブ信号、55……アクセス信号、56
……アドレスデコーダ、57……バス制御回路、60…
…ライト(プログラム)電圧供給回路、61……リセッ
トフラグ、62……カウンタ、63……リセット信号、
64……キャリー信号、65……インバータ、66……
システムクロック(SC)、101……プログラムカウ
ンタ、102……ROM、103……データバス、10
4……命令レジスタ、105……CPU制御部、106
……算術論理演算ユニット(ALU)、107……テン
ポラリレジスタ、108……テンポラリレジスタ、10
9……RAM、110……アドレスバス、111……PR
OMブロック、112……汎用レジスタ群、201……バ
スインターフェイス回路、202……アドレスバッフ
ァ、203……データバッファ、204……PROMアレ
イ、205……ライト信号、206……リード信号、2
07……タイマ起動信号、208……リードストローブ
信号、209……データラッチ信号、210……アドレ
スラッチ信号、211……タイマー/制御回路、212
……EEPROMアレイ、213……フラグ、214……ライ
トストローブ信号、215……ライト(プログラム)電
圧、301……データレジスタ、302……ターミナル
カウンタ、401……零検出回路、402……零検出信
号、403……消去ストローブ信号、404……タイマ
/制御回路。
Claims (1)
- 【請求項1】電気的にデータの書き込みが可能な不揮発
性メモリと、プログラムをストアするプログラムメモリ
と、このプログラムメモリをアクセスして命令を読み出
すためのプログラムカウンタと、読み出された命令を実
行し、前記不揮発性メモリに対しデータ書き込みアドレ
スと書き込むべきデータとを有するデータ書き込み要求
を実行する中央処理ユニットと、前記データ書き込み要
求に応答して前記中央処理ユニットの代わりに前記デー
タ書き込みアドレスおよび前記書き込むべきデータを用
いて前記不揮発性メモリに対しデータ書き込みを実行す
る書き込み回路と、前記書き込み回路がデータ書き込み
を実行する書き込み回路と、前記書き込み回路がデータ
書き込みの実行を開始してから一定時間経過した後に前
記書き込み回路にデータ書き込みを中断させるとともに
特殊割り込み信号を前記中央処理ユニットに発行する書
き込み制御手段とを有し、前記中央処理ユニットは、前
記特殊割り込み信号に応答して、命令の実行を中断し、
そのときの前記プログラムカウンタの内容を退避せずに
そのままの状態を保持したまま、所定のマイクロプログ
ラムを起動して実行し、当該所定のマイクロプログラム
の実行により、前記不揮発メモリに対し前記書き込みア
ドレスを用いたデータリードが実行されて前記不揮発メ
モリからデータが読み出され、当該読み出されたデータ
が前記書き込むべきデータと一致するか否かの判定が実
行されて不一致のときは前記書き込み回路にデータ書き
込みが再実行されることを特徴とするマイクロコンピュ
ータ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8880986A JPH0636197B2 (ja) | 1986-04-16 | 1986-04-16 | マイクロコンピユ−タ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8880986A JPH0636197B2 (ja) | 1986-04-16 | 1986-04-16 | マイクロコンピユ−タ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS62243056A JPS62243056A (ja) | 1987-10-23 |
JPH0636197B2 true JPH0636197B2 (ja) | 1994-05-11 |
Family
ID=13953215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8880986A Expired - Lifetime JPH0636197B2 (ja) | 1986-04-16 | 1986-04-16 | マイクロコンピユ−タ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0636197B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01118298A (ja) * | 1987-10-30 | 1989-05-10 | Nec Corp | Eepromへのデータ書き込み回路 |
JPH02144641A (ja) * | 1988-11-25 | 1990-06-04 | Nec Corp | マイクロコンピュータ |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62164299A (ja) * | 1986-01-13 | 1987-07-20 | Mitsubishi Electric Corp | マイクロコンピユ−タ装置 |
-
1986
- 1986-04-16 JP JP8880986A patent/JPH0636197B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPS62243056A (ja) | 1987-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100375217B1 (ko) | 전기적으로 재기입 가능한 불휘발성 메모리를 구비하는마이크로컨트롤러 | |
JP3737529B2 (ja) | 不揮発性半導体メモリ装置のデータ処理能力を増大する方法 | |
US8327161B2 (en) | Command decoder for microcontroller based flash memory digital controller system | |
US4450519A (en) | Psuedo-microprogramming in microprocessor in single-chip microprocessor with alternate IR loading from internal or external program memories | |
EP0592098A2 (en) | Control method and apparatus for direct execution of a program on an external apparatus using a randomly accessible and rewritable memory | |
JPS63145531A (ja) | マイクロプロセッサ | |
US6189070B1 (en) | Apparatus and method for suspending operation to read code in a nonvolatile writable semiconductor memory | |
EP0370529B1 (en) | Microcomputer having EEPROM | |
US4460972A (en) | Single chip microcomputer selectively operable in response to instructions stored on the computer chip or in response to instructions stored external to the chip | |
KR950010304B1 (ko) | 불휘발성 기억소자를 구비한 반도체 집적회로장치 | |
US7161870B2 (en) | Synchronous flash memory command sequence | |
JP4229946B2 (ja) | フラッシュ用のトップ/ボトム対称保護スキーム | |
JPH0636197B2 (ja) | マイクロコンピユ−タ | |
JP2006164511A6 (ja) | フラッシュ用のトップ/ボトム対称保護スキーム | |
EP0020972A1 (en) | Program controlled microprocessing apparatus | |
KR100264758B1 (ko) | 마이크로컴퓨터 | |
JPS61246997A (ja) | 電気的消去・再書込み可能型読出し専用メモリ | |
JPS6246493A (ja) | 半導体集積回路装置 | |
JPH11288410A (ja) | マイクロコンピュータ | |
JPH0561659B2 (ja) | ||
JP2001290755A (ja) | Eepromアクセス方法およびeepromを有する電子装置 | |
JPH0991267A (ja) | 不揮発性メモリのデータ書き込み装置 | |
JP2004078996A (ja) | データ処理装置 | |
JP2003076672A (ja) | マイクロコンピュータ | |
KR19980043600A (ko) | 시리얼 eeprom 콘트롤러 |