【発明の詳細な説明】
マイクロプロセッサおよび
スタックメモリを有する回路装置
マイクロプロセッサは、それによって実行すべきプログラムを処理するために
スタックメモリを必要とする。プロセッサがプログラムの処理の際にシーケンシ
ャルに連続するプログラム・インストラクションを処理しなければならないばか
りでなく、例えばサブプログラム呼び出しの場合のように、プログラム飛び越し
も実施しなければならないときはいつも、戻り飛び越しアドレスを記録するため
にスタックメモリ(「スタック」とも称される)が用いられる。即ちこの場合、
プロセッサは、プロセッサがサブプログラム飛び越しを行ったのと同じ個所でプ
ログラムの処理を続行するために、サブプログラムの終了後このアドレスに戻り
飛び越しするのである。スタックメモリを管理するために、所謂スタックポイン
タがあって、それは通例は、スタックメモリへの最後のエントリのアドレスを含
んでおりかつスタックメモリへの新たなエントリの際に相応にインクリメントさ
れる。戻り飛び越しアドレスの他に、変数もスタックメモリに記憶することも普
通である。
プロセッサによって処理すべきプログラムはこの目
的のためにプロセッサの作業メモリにロードされる。作業メモリは通例、RAM
(Random Access Memory)によって実現されている。その際作業メモリは、プロ
セッサのアドレス出力側を介して直接アドレッシング可能である論理的なアドレ
ス空間に存在している。
スタックメモリを上述の論理的なアドレス空間に配置することも普通である。
この場合は、スタックメモリおよび作業メモリは、使用可能な論理的なアドレス
空間を分かつことになる。アドレス空間の大きさは、プロセッサのアドレス出力
側の数によって決められている。型名8051のマイクロコントローラの場合に
そうであるような、単に8つのアドレス出力側しかない場合には、コントローラ
のアドレス出力側を介して直接アドレッシング可能な論理的なアドレス空間は僅
か256バイトの大きさである。処理すべきプログラムの複雑さおよび実施すべ
きサブプログラム呼び出しの最大数に応じて、必要とされるスタックメモリに対
する大きさが生じる。従ってスタックメモリの大きさは、処理すべきプログラム
の形式に直接依存している。しかしマイクロプロセッサの製造の際、通例は、ど
んな形式のソフトウェアが最終的にマイクロプロセッサによって処理されるべき
であるかはわかっていない。それ故に、スタックメモリは通例、比較的大きく設
計されているので、複雑なプログラムもプロセッサによって処理することができ
る。しかしその場合それ程
複雑でない数多くのその他の用途に対してはスタックメモリは過度に設計されて
いる。
スタックメモリは、通例、マイクロプロセッサの論理的なアドレス空間の上側
のアドレス領域に配置されている。この目的のために、スタックポインタはプロ
セッサの始動ないし初期化の際にスタックメモリの最も下側のアドレスにプリセ
ットされる。引き続いてデータがスタックメモリにファイルされると、スタック
ポインタは相応にインクリメントされる。それからプロセッサの作業メモリに対
して、論理アドレス空間において、該アドレス空間の始めからスタックメモリの
始端までの領域しか使用することができない。単に256バイトしかない論理ア
ドレス空間を有する型名8051の既述のマイクロコントローラに対しては、例
えば64バイトの大きさのスタックメモリでは作業メモリに対して192バイト
しか残っていない。しかし作業メモリの残っている大きさは、プログラマーの構
成の可能性およびプロセッサによってプログラムを処理することができる速度に
対して決定的である。
本発明の課題は、プロセッサによってそのアドレス出力側を介して直接アドレ
ッシング可能な論理アドレス空間のできるだけ大きな領域を作業メモリに対して
使用することができしかもこの論理アドレス空間のできるだけ僅かな部分しかス
タックメモリによって占有されないようにした、マイクロプロセッサを有する回
路装置およびマイクロプロセッサに対するスタックメモリを提供することである
。
この課題は請求項1に記載の回路装置によって解決される。本発明によれば、
スタックメモリの少なくとも一部をマイクロプロセッサの直接アドレッシング可
能な論理アドレス空間の外部に配置するようになっている。
このことは、スタックメモリをそれぞれ同じ大きさのメモリ領域に分割し、そ
のうちの1つだけを直接アドレッシング可能な論理アドレス空間内に配置するこ
とによって特別簡単に実現可能である。その場合、メモリ領域のうち、論理アド
レス空間に存在するメモリ領域をマイクロプロセッサのアドレス出力側を介して
直接アドレス指定することを簡単な手法ででき、一方スタックメモリのその他の
メモリ領域をアドレス指定するために、種々異なったメモリ領域間の切換を考慮
する固有のロジックが必要である。
それ故に、回路装置が、メモリ領域の1つを選択するための情報が記憶可能で
ある第1のレジスタを有しておりかつその都度選択されたメモリ領域に格納され
ているメモリユニットを選択するための情報が記憶可能である第2のレジスタを
有していれば、特別有利である。有利にもこの第2のレジスタは従来のスタック
メモリに相応しているものであってよい。それぞれのメモリ領域のメモリユニッ
トは、それぞれ1つのデー
タ語を記録するために用いられる。メモリ領域のそれぞれに、それぞれ第2のレ
ジスタないしスタックメモリに記憶可能な同一のアドレスを有するメモリユニッ
トが存在しているようにすれば、有利である。同じアドレスを有するこれらメモ
リユニットのいずれがその都度アドレッシングされるかは、第1のレジスタの内
容およびこれによって規定される、相応のメモリ領域の選択によって決められる
。
その際本発明のこの実施例は次のように機能する:回路装置の始動の際に、第
1のレジスタに第1のメモリ領域を選択するための情報が記憶される。スタック
メモリが充填されると、相応のデータ(戻り飛び越しアドレスまたは変数)が最
初これに続いて、第1のメモリ領域のメモリユニットに記憶される。その際第2
のレジスタないしスタックポインタの内容が相応にインクリメントされる。第1
のメモリ領域のすべてのメモリユニットにデータが格納された状態になると、第
1のレジスタの内容がインクリメントされ、これにより第2のメモリ領域が選択
される。引き続いて第2のレジスタの内容を介してそのメモリユニットに必要の
場合にはデータが充填されかつ以下このように続けられる。
本発明によれば、対してコストをかけずにしかも、マイクロプロセッサおよび
相応のスタックメモリを有している従来の回路装置をほんの僅かに変更して、ス
タックメモリのできるだけ小さな部分を論理アドレス空間に配置することによっ
て、論理アドレス空間のできるだけ大きな部分をマイクロプロセッサの作業メモ
リのために使用することができるようになり、その際同時に、任意の大きさのス
タックメモリが実現可能であり、その大部分は論理アドレス空間の外部に配置さ
れている。上述した実施例では、これら2つの目標は、メモリ領域当たりのメモ
リユニットの数をできるだけ低くしかつスタックメモリのメモリ領域の数をでき
るだけ大きく選択することによって、特別簡単に実現することができる。
本発明の1つの形態によれば、回路装置は検出手段を有しており、該検出手段
はデータの、スタックメモリへの書き込みないしそこからの読み出しの際にスタ
ックメモリの限界値を上回ったことを検出するために用いられる。同時に、スタ
ックメモリの上側の限界値を上回った場合または下側の限界値を下回った場合に
この検出手段の結果信号に依存して、スタックメモリを少なくとも部分的に空に
するようになってれば、スタックメモリのオーバフローないしアンダーフローの
結果としての誤機能を回避することができる。
上記の検出手段の結果信号によって有利には、割り込みがトリガ可能であり、
これによりプロセッサはその都度のプログラムの処理をカレント位置で中断しか
つ前以て決められている別のプログラムアドレスに飛
び越す。それからそこに処理すべきプログラム指令は、最後にスタートされたサ
ブプログラムの強制的な終了によってスタックメモリを空にするように働くこと
ができる。サブプログラムの処理の中断によってスタックメモリを空にすること
に対して択一的に、スタックメモリの内容を少なくとも部分的に、別のメモリ領
域、例えば作業メモリのメモリ領域またはプロセッサによって直接アドレッシン
グ可能なアドレス空間の外部のメモリに、少なくとも一時的に移し替えることが
できる。このことは、移し替えるべきデータを所望の個所にコピーすることによ
って行われる。
上記の検出手段の結果信号に基づいてスタックメモリを空することに対して付
加的にまたは択一的に、相応のエラー通報を、プロセッサのユーザにスタックメ
モリの誤機能を指示する割り込みによって生成するようにすれば効果的である。
スタックメモリの上側の限界値を上回ることを回避するために、回路装置が、
メモリ領域の数が記憶されている第3のレジスタを有しているようにすれば、特
別有利であり、その結果この第3のレジスタの内容と、その都度選択されたメモ
リ領域のアドレスが記憶されている第1のレジスタの内容とを比較することによ
って上記の検出手段を用いて、スタックメモリのオーバフローが検出可能である
。
次に本発明を各図に基づいて詳細に説明する。
第1図は、本発明の1つの実施例を示し、
第2図は、第1図の詳細を示す。
第1図には、相応のアドレスデコーダ20を介して論理アドレス空間3をアド
レッシングするための制限された数のアドレス出力側2を有するマイクロプロセ
ッサ1が示されている。この実施例では、マイクロプロセッサ1は8つのアドレ
ス出力側を有しているものとする。このことは例えば、マイクロプロセッサ1が
型名8051のマイクロコントローラである場合にそうである。論理アドレス空
間3内のメモリユニットの2進アドレスは第1図から同様にわかる。論理アドレ
ス空間の最も下側のアドレスは00000000である。最も上側のアドレスは
11111111である。メモリユニットは、それぞれ1つまたは複数のバイト
の大きさを有しているデータ語とすることができる。メモリユニットは1バイト
の大きさを有しているものと仮定しよう。その場合8つのアドレス出力側2を介
して、デコーダ20を用いて256バイトがアドレッシング可能である。
第1図における実施例では、4つの同じ大きさのメモリ領域5(ページ1ない
しページ4)に分割されているスタックメモリ4が設けられている。メモリ領域
5のそれぞれは個別のアドレッシング可能なメモリユニット9に分割されている
。メモリ領域5のそれぞれのメモリユニット9はそれぞれ、プロセッサ1のアド
レス出力側2に現れる同一のアドレスを介してアドレッシング可能である。これ
らは、アドレス11110000と11111111との間の論理アドレス空間
3の最も上側の領域における16ビットに対応している。
それぞれ同じアドレスを有するメモリユニット9の1つの選択は、第2のデコ
ーダ30を介して行われる。第1のレジスタ6に記憶可能な情報ないしメモリ領
域5の1つを選択するためのアドレスに基づいて、第2のデコーダ30を介して
メモリ領域5の1つが選択可能である。即ち、プロセッサ1のアドレス出力側2
に、スタックメモリに割り当てられている、論理アドレス空間3のアドレスが生
じると、第1のレジスタ6および第2のデコーダ30を用いて、メモリ領域5の
いずれにおいて、相応のアドレスを有するメモリユニットが選択されるかが確定
される。メモリ領域5内のメモリユニット9のいずれがプロセッサ1によって要
求されているかは第2のレジスタ7の内容によって決定される。この第2のレジ
スタは従来のスタックポインタに対応している。
これまでは通例、スタックメモリ4全体を論理アドレス空間3内に配置してい
た。スタックメモリがそれぞれ16バイトを有する4つのメモリ領域5、即ち全
部で6バイトを有している図示の実施例では、論理アドレス空間3内にスタック
メモリ4全体が配置されて
いる場合、このアドレス空間のうち、プロセッサ1の作業メモリに対してなお2
56−6=192バイトしか残らない。本発明により有利にも、第1図に示され
ているように、作業メモリ10は256−16=240バイトの大きさであるよ
うに実現される。メモリ領域5内のメモリユニット数を変えることによって、依
然として残る作業メモリ10の大きさを更に拡大または縮小することができる。
メモリ領域の数を一層大きくすることによって、依然として残る作業メモリ10
を低減することなしに、スタックメモリ4の全体の大きさを高めることができる
。
従来技術においても通例であるように、プロセッサ1の始動の際にまず、第2
のレジスタないしスタックメモリの初期化が行われる。その際第2のレジスタ7
の内容はまず、スタックメモリ4のメモリユニット9の最も下側のアドレス、即
ち11110000にプリセットされる。初期化の際、従来技術においては存在
していない第1のレジスタ6の内容も、第2のデコーダ30を介して第1のメモ
リ領域ページ1が選択されるように調整設定される。第1図の実施例の場合のよ
うに、4つのメモリ領域5しか存在していない場合には、第1のレジスタ6はそ
のアドレッシングのために2ビットだけを有していればよい。しかし、第1のレ
ジスタ6のアドレスビットの数を非常に大きく選択しかつ選択可能なメモリ領域
の数も相応に高めるように
することができる。既述のように、スタックメモリ4の所要メモリは、サブプロ
グラム分岐およびスタックメモリ4に更に記憶することができる変数の数に依存
している。
スタックメモリ4の、プロセッサ1の論理アドレス空間3の外部に配置されて
いるメモリ領域5は、第1のメモリ領域ページ1が配置されているメモリの1つ
または複数の種々のメモリに配置されているようにすることができる。これらの
別のメモリが、第1のメモリ領域ページ1および作業メモリ10と同じ集積回路
上に存在していることは有意味である。スタックメモリ4全体および作業メモリ
10が1つの共通のメモリの構成要素部分であって、このメモリのうち、作業メ
モリ10および第1のメモリ領域ページ1を含んでいる部分だけが、マイクロプ
ロセッサ1のアドレス出力側2によって直接アドレッシング可能な論理アドレス
空間3内にあるようにすれば、特別効果的である。
第1のレジスタ6が値YY=00に初期化されておりかつ第2のレジスタ7が
値11110000に初期化されておりかつ引き続いて(例えばサブプログラム
飛び越しに基づいて)相応の戻り飛び越しアドレスまたは変数をスタックメモリ
4に記憶すべきであるとき、従来技術においてもそうであるように、まず第2の
レジスタ7ないしスタックポインタが相応にインクリメントされる。スタックメ
モリ4からデータを読み出
す際に、相応のデクリメントが行われる。このようにして、常に、スタックメモ
リ4に最後に書き込まれた情報が第1のものとして再び読み出されることが保証
されている。
そこで本発明によれば、第1のメモリ領域ページ1にデータが充填された状態
になるや否や、即ちスタックポインタ7がアドレス1111111を有するや否
や、スタックポインタ7の最後の4ビットのオーバフローによって、次のものと
して、今度もスタックポインタにアドレス11110000が含まれているよう
にすることができる。このことは、スタックポインタの最初の4つのビットを変
化せずに1111に調整設定することによって実現される。同時に第2のレジス
タのオーバフローが第1のレジスタ6によって記録されかつこのレジスタが相応
にインクリメントされ、その結果今や第2のメモリ領域ページ2においてメモリ
領域9がプロセッサ1のアドレス出力側2を介してアドレス11110000に
よってアドレス指定可能である。別のメモリ領域ページ3、ページ4への切換に
対しても相応のことが当てはまる。同様に、スタックメモリ4からデータを読み
出す際にスタックポインタは相応にデクリメントされる。
もう一度強調しておくが、スタックポインタの最も上側の4ビットは1111
に固定的に調整設定されておりかつ最も下側の4ビットXXXXだけが可変であ
る。アドレス11110000を有するメモリ領域5の1つの下側の領域に既に
達し、かつ別のデータが読み出されると、減算ないしデクリメントにより第2の
レジスタ7に11111111の新しい計数状態が生じる。同時に、第1のレジ
スタ6はこのアンダーフローを記録しかつ相応にデクリメントされ、これに基づ
いて第2のデコーダ10を介して次に下側のメモリ領域5が選択可能である。
第1図には、検出手段11も示されている。これは、第1のレジスタ6の内容
の監視によって、スタックメモリ4のオーバフローないしアンダーフローを検出
する。アンダーフローは、検出手段11が、第1のレジスタ6の先行する内容が
YY=00であってかつ引き続いて次のデクリメントが生じた場合に相応の結果
信号をプロセッサ1に送出することによって妨げられる。即ちこれに基づいて、
プロセッサは作業メモリ10に記憶されたプログラムの引き続く処理を一時的に
中断しかつまず、第1のレジスタ6および第2のレジスタ7の新たな初期化を行
う。
オーバフローの記録のために、回路装置は第3のレジスタ8を有している、こ
れには、利用可能なメモリ領域5の数が記憶されている。第1のレジスタ6のア
ンダーフローの上述した例に類似して、検出手段11は、第1のレジスタの内容
を第3のレジスタの内容に比較することによって、スタックメモリ4のオーバフ
ローを検出しかつ相応の結果信号をプロセッサ1に送出する。プロセッサはこれ
に基づいて一時的に丁度その時実行すべきプログラムの処理を中断しかつまず、
スタックメモリ4を少なくとも部分的に空にする。これに続いて、第1のレジス
タ6および第2のレジスタ7の相応の初期化が行われる。
第1図にはデータバス40も示されている。このデータバスを介してプロセッ
サ1はデータを作業メモリ10ないしスタックメモリ4に書き込みかつここから
再び読み出すことができる。
第2図には更に第1図からの第1レジスタ6と第2のレジスタ7とがもう一度
図示されている。第2図に基づいてもう一度、インクリメントおよびデクリメン
トの過程について説明する。サブプログラム呼び出し(コール)の場合、相応の
取り飛び越しアドレスがスタックメモリ4に、2つのレジスタ6および7の内容
によって決められているアドレスの所にファイルされる。同時に、第2のレジス
タ7の最後の4ビットXXXXが1だけインクリメントされ、その結果スタック
ポインタ7はスタックメモリ4における次の空いているメモリユニットを指示す
る。その際オーバフローが生じると、即ち第2のレジスタ7の内容が11111
111から11110000に飛び越すと、ロジック60はこのことを記録しか
つ第1のレジスタ6の内容を値1だけインクリメントする。逆に、サブプログラ
ムからの戻り飛び越の際(リターン)、相応の戻り飛び越しアドレスがスタック
メモリ4から取り出され、かつスタックポインタ7の最後の4つのビットXXX
Xが値1だけデクリメントされる。その際最後の4つのビットXXXXのアンダ
ーフローが生じると、このことをロジック60が記録しかつ第1のレジスタ6の
内容を1だけデクリメントする。
1だけの、インクリメントないしデクリメントに代わって、これとは異なった
インクリメントないしデクリメント(例えば2づつ)を行うようにすることがで
きる。このことは、その都度スタックメモリに記憶すべきデータがどんな大きさ
を有しているかに依存している、メモリユニットはそれぞれ1バイトの大きさを
有しているという、第1図に関して説明した実施例では、記憶すべき戻り飛び越
しアドレスないし変数が2バイトの大きさを有している場合、その都度2づつの
インクリメントないしデクリメントを選択すればよい。
第2図には、マイクロプロセッサにおいて通例そうであるように、スタックポ
インタ7に対して相対的にないしスタックポインタ7を修正する命令を実施する
ことができる別のロジック50も設けられているのがわかる。このような場合、
プロセッサは新しいアドレスをデータバスに加え、このアドレス分だけ、従来技
術において通例の回路装置においてはスタックポイン
タの内容が高められるないし低減されるようになっている。この形式の相対的な
いし修正する指令を本発明においても可能にするために、別のロジック50が設
けられていて、これは加算ないし減算によって、2つのレジスタ6,7の内容を
正しい値に調整設定する。
本発明は、同時に大きさ作業メモリ10および大きなスタックメモリ4が実現
可能であるという利点を有している。更に、本発明の回路装置は、従来の回路装
置と同一のスタックメモリの命令を実施することができる。
本発明の回路装置は更に、それが従来の形式の回路装置をほんの僅かに変更す
るだけで実現可能であるという利点を有している。即ち、従来のデータバス40
およびアドレス出力側2を有する従来のマイクロプロセッサ1および従来のデコ
ーダ20が使用可能である。これまで通例のスタックポインタは、所望の数のビ
ットが不変であるようにだけ修正すべきである。第1図における実施例では、ス
タックポインタ7において、4つの最も上側のビットは不変に1111に調整設
定されている。更に、論理アドレス空間の外部に配置される、スタックメモリ4
のメモリ領域5を収容するために、このアドレス空間より大きいメモリが必要に
なる。付加的に、本発明の回路装置にはメモリ領域5の1つをその都度選択する
ために第1のレジスタ6および第2のデコーダ30が必要である。
本発明は殊に、例えば型名8051のマイクロコントローラにおいてそうであ
るように、非常に僅かな数のアドレス出力側を有するマイクロコントローラ1し
か使用できないようなところで有利である。このように使用可能な論理アドレス
空間3が小さい場合にはまさに、この論理アドレス空間3においてスタックメモ
リ4が占める割合をできるだけ僅かに抑えることが絶対に必要である。確かに、
比較的大きな数のアドレス出力側を有する数多くのプロセッサが既に公知であり
、その場合これら出力側を介して一層大きな論理空間がアドレス指定可能である
が、これらプロセッサは通例、例えば型名8051のマイクロコントローラより
すっと大きな面積を有している。1つまたは複数の集積された半導体回路がカー
ド形状のプラスチックケーシング内に収容されなければならない、チップカード
の製造の際には殊に、チップ面積ができるだけ小さいことが重要である。という
のは、チップカードにおける機械的な応力は非常に大きいので、大面積のチップ
は破壊され易いからである。この理由から、例えば型名8051のような僅かな
アドレス出力側2を有する、現在のところ使用可能な小面積のチップの使用が非
常に重要である。この種のチップの、直接アドレス指定可能な論理アドレス空間
3が非常に小さいという欠点は本発明により部分的に取り除くことができる。一
層大きな数のアドレス出力側2を有する一層大きなプ
ロセッサは著しく高価でもある。
本発明の回路装置はこれまで通例のスタックメモリ指令に対して完全にコンパ
チブルであるので、プロセッサ1によって実施すべきソフトウェア適用に対する
開発ツールの整合は必要でない。
本発明の回路装置により、プロセッサ1の直接アドレッシング可能な論理アド
レス空間を拡張する必要なしに、スタックメモリ領域のアドレス拡張が可能であ
る。
スタックメモリ命令はすべての別の命令から区別されなければならない。それ
故に、有利な方法によれば、相対的なないし修正する指令において、11110
000より大きいアドレスだけがスタックポインタ7に転送される。このことは
簡単なコンパレータによって検査可能である。すべて別のアドレスでは、第2の
デコーダ30の選択線路はメモリ領域5の選択のために非活性化される。
スタックメモリ7のオーバフローないしアンダーフローはスタックポインタ7
のキャリービットに基づいて検出可能である。両方の場合とも、このキャリービ
ットは変化する。その前にXXXX=0000であったときは、アンダーフロー
である。その前にXXXX=1111であったときは、オーバフローである。
第1のレジスタ6および第2のレジスタ8が唯一のレジスタの構成部分である
ようにすることも可能であ
り、この場合第1のレジスタ6がこのレジスタの最上位ビット(MSB,most s
ignificant bits)を占めかつ第2のレジスタ7が下位のビットを示す。その場
合、第2のレジスタ7のオーバフローによって自動的に第1のレジスタ6のイン
クリメントが生じかつアンダーフローによって第1のレジスタ6のデクリメント
が生じる。
【手続補正書】特許法第184条の8第1項
【提出日】1998年10月2日(1998.10.2)
【補正内容】
スタックメモリを上述の論理的なアドレス空間に配置することも普通である。
この場合は、スタックメモリおよび作業メモリは、使用可能な論理的なアドレス
空間を分かつことになる。アドレス空間の大きさは、プロセッサのアドレス出力
側の数によって決められている。型名8051のマイクロコントローラの場合に
そうであるような、単に8つのアドレス出力側しかない場合には、コントローラ
のアドレス出力側を介して直接アドレッシング可能な論理的なアドレス空間は僅
か256バイトの大きさである。処理すべきプログラムの複雑さおよび実施すべ
きサブプログラム呼び出しの最大数に応じて、必要とされるスタックメモリに対
する大きさが生じる。従ってスタックメモリの大きさは、処理すべきプログラム
の形式に直接依存している。しかしマイクロプロセッサの製造の際、通例は、ど
んな形式のソフトウェアが最終的にマイクロプロセッサによって処理されるべき
であるかはわかっていない。それ故に、スタックメモリは通例、比較的大きく設
計されているので、複雑なプログラムもプロセッサによって処理することができ
る。しかしその場合それ程複雑でない数多くのその他の用途に対してはスタック
メモリは過度に設計されている。
スタックメモリは、通例、マイクロプロセッサの論理的なアドレス空間の上側
のアドレス領域に配置されている。この目的のために、スタックポインタはプロ
セッサの始動ないし初期化の際にスタックメモリの最も下側のアドレスにプリセ
ットされる。引き続いてデータがスタックメモリにファイルされると、スタック
ポインタは相応にインクリメントされる。それからプロセッサの作業メモリに対
して、論理アドレス空間において、該アドレス空間の始めからスタックメモリの
始端までの領域しか使用することができない。単に256バイトしかない論理ア
ドレス空間を有する型名8051の既述のマイクロコントローラに対しては、例
えば64バイトの大きさのスタックメモリでは作業メモリに対して192バイト
しか残っていない。しかし作業メモリの残っている大きさは、プログラマーの構
成の可能性およびプロセッサによってプログラムを処理することができる速度に
対して決定的である。
米国特許第5107457号明細書に、プロセッサおよびスタックメモリを備
えている回路装置が記載されている。スタックメモリはレジスタによって実現さ
れている。更に、この回路装置は外部メモリを有しており、そこに、スタックメ
モリのオーバフローの差異にここのそのレジスタの内容が伝送されるようになっ
ていて、このレジスタは引き続き再びスタックメモリに新たに書き込むべきデー
タを使用することができる。外部メモリは更に、プロセッサによってプログラム
およびデータの記憶のために利用される。
米国特許第5255382号明細書には、型名80
51のマイクロコントローラのメモリ領域を64KBから512KBに高めるた
めのシステムが記載されている。
本発明の課題は、プロセッサによってそのアドレス出力側を介して直接アドレ
ッシング可能な論理アドレス空間のできるだけ大きな領域を作業メモリに対して
使用することができしかもこの論理アドレス空間のできるだけ僅かな部分しかス
タックメモリによって占有されないようにした、マイクロプロセッサを有する回
路装置およびマイクロプロセッサに対するスタックメモリを提供することである
。
請求の範囲
1.論理アドレス空間(3)を直接アドレス指定可能であるアドレス出力側(
2)を有するマイクロプロセッサ(1)を備え、
前記論理アドレス空間(3)の下側の領域に存在している作業メモリ(10)を
備え、
少なくとも2つの同じ大きさのメモリ領域(5)に分割されているスタックメモ
リ(4)を備え、そのうちの1つは前記論理アドレス空間(3)の上側の領域に
配置されておりかつその他は前記論理アドレス空間(3)の外部に配置されてお
り、前記スタックメモリ(4)に記憶すべきデータは、前記論理アドレス空間(
3)に配置されているメモリ領域(5)が、データが前記別のメモリ領域(5)
に記憶される前に充填されるように記憶され、
前記メモリ領域(5)の1つを選択するための情報を記憶するための第1のレジ
スタ(6)を備え、
該第1のレジスタ(6)の内容によってその都度選択されるメモリ領域(5)内
でメモリユニット(9)を選択するための情報を記憶するための第2のレジスタ
(7)を備えている
ことを特徴とする回路装置。
2.前記第2のレジスタ(7)は第1のアドレスデコーダ(20)に接続され
ており、該第1のアドレス
デコーダ(20)を介して前記メモリ領域(5)内のメモリユニット(9)がア
ドレッシング可能であり、その際第1のアドレスデコーダ(20)はアドレス出
力側(2)を介して前記共通の論理アドレス空間(3)をアドレス指定するため
にも用いられ、
かつ前記第1のレジスタ(6)は第1のアドレスデコーダ(30)に接続されて
おり、該アドレスデコーダを介して前記メモリ領域(5)がアドレス指定可能で
ある
請求項1記載の回路装置。
3.前記第1のレジスタ(6)は前記第2のレジスタ(7)のオーバフローな
いしアンダーフローによってインクリメントないしデクリメントされる
請求項1または2記載の回路装置。
4.データの書き込みないし読み出しの際に前記スタックメモリ(4)の限界
値を上回ったことを検出するための検出手段(11)が設けられており、
前記検出手段(11)の結果信号に依存して、上回った場合には、前記スタック
メモリ(4)は少なくとも部分的を空にすることができる
請求項1から3までのいずれか1項記載の回路装置。
5.前記メモリ領域(6)の数を記憶するための第3のレジスタ(8)を備え
、
その都度選択されたメモリ領域(5)と前記第3のレジスタ(8)の内容を比較
することによって前記検出
手段(11)によって前記スタックメモリ(4)の上側の限界値が上回ったこと
を検出可能である
請求項4記載の回路装置。
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 シュテファン プファープ
ドイツ連邦共和国 D―82049 グロース
ヘッセローエ ヴェターシュタインシュト
ラーセ 2