JPH086821A - マイクロプロセッサ - Google Patents
マイクロプロセッサInfo
- Publication number
- JPH086821A JPH086821A JP6136778A JP13677894A JPH086821A JP H086821 A JPH086821 A JP H086821A JP 6136778 A JP6136778 A JP 6136778A JP 13677894 A JP13677894 A JP 13677894A JP H086821 A JPH086821 A JP H086821A
- Authority
- JP
- Japan
- Prior art keywords
- address
- stack pointer
- data access
- execution unit
- stack
- 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
Links
- 238000010586 diagram Methods 0.000 description 4
Landscapes
- Debugging And Monitoring (AREA)
- Microcomputers (AREA)
Abstract
(57)【要約】
【目的】 すでに存在しない一時変数をアクセスするプ
ログラムの誤りを検出する。 【構成】 全てのデータアクセスのアドレスが、スタッ
クポインタ5のアドレス以上となるようにプログラムを
作成する。スタックポインタ5のアドレスとデータアク
セスのアドレスを比較すると、正しいデータアクセスは
常にスタックポインタ5のアドレス以上である。スタッ
クポインタ5のアドレスとデータアクセスのアドレスを
常に比較器4で比較し、アドレスの大小が逆転した場合
に、プロセッサ例外を発生させる。
ログラムの誤りを検出する。 【構成】 全てのデータアクセスのアドレスが、スタッ
クポインタ5のアドレス以上となるようにプログラムを
作成する。スタックポインタ5のアドレスとデータアク
セスのアドレスを比較すると、正しいデータアクセスは
常にスタックポインタ5のアドレス以上である。スタッ
クポインタ5のアドレスとデータアクセスのアドレスを
常に比較器4で比較し、アドレスの大小が逆転した場合
に、プロセッサ例外を発生させる。
Description
【0001】
【産業上の利用分野】本発明は、プログラムの誤りを検
出するマイクロプロセッサに関する。
出するマイクロプロセッサに関する。
【0002】
【従来の技術】従来のマイクロプロセッサにおいては、
プログラムの誤りのために、正しくないメモリアクセス
を行った場合には、セグメントのリミット値を比較する
ことにより、あるいはページングにおけるアクセス可否
をチェックすることにより、メモリアクセスの誤りを検
出している。
プログラムの誤りのために、正しくないメモリアクセス
を行った場合には、セグメントのリミット値を比較する
ことにより、あるいはページングにおけるアクセス可否
をチェックすることにより、メモリアクセスの誤りを検
出している。
【0003】
【発明が解決しようとする課題】この従来のマイクロプ
ロセッサでは、スタック上に一時変数を確保、使用して
解放した後に、すでに存在しない一時変数をプログラム
の誤りのために使用したとしても、これを検出すること
ができなかった。
ロセッサでは、スタック上に一時変数を確保、使用して
解放した後に、すでに存在しない一時変数をプログラム
の誤りのために使用したとしても、これを検出すること
ができなかった。
【0004】本発明の目的は、すでに存在しない一時変
数をアクセスするプログラムの誤りを検出するマイクロ
プロセッサを提供することにある。
数をアクセスするプログラムの誤りを検出するマイクロ
プロセッサを提供することにある。
【0005】
【課題を解決するための手段】本発明のマイクロプロセ
ッサは、スタックポインタを含むレジスタ群と例外通知
信号を受付可能な実行ユニットと、データアクセスアド
レスを生成するアドレスユニットと、スタックポインタ
の値とアドレスユニットの生成したデータアクセスアド
レスを比較して実行ユニットに結果を渡す比較器とを備
えることを特徴としている。
ッサは、スタックポインタを含むレジスタ群と例外通知
信号を受付可能な実行ユニットと、データアクセスアド
レスを生成するアドレスユニットと、スタックポインタ
の値とアドレスユニットの生成したデータアクセスアド
レスを比較して実行ユニットに結果を渡す比較器とを備
えることを特徴としている。
【0006】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
て説明する。
【0007】図1は、本発明のマイクロプロセッサの一
実施例を示すブロック図である。本実施例は、スタック
ポインタ5を含むレジスタ群1と、実行ユニット2と、
アドレスユニット3と、比較器4とにより構成されてお
り、スタックポインタ5とアドレスユニット3は、比較
器4の2つの入力にそれぞれ接続され、比較器4の出力
は実行ユニット2に接続されている。
実施例を示すブロック図である。本実施例は、スタック
ポインタ5を含むレジスタ群1と、実行ユニット2と、
アドレスユニット3と、比較器4とにより構成されてお
り、スタックポインタ5とアドレスユニット3は、比較
器4の2つの入力にそれぞれ接続され、比較器4の出力
は実行ユニット2に接続されている。
【0008】本実施例において、レジスタ群1は、スタ
ックポインタ5を含むレジスタの集合である。スタック
ポインタ5は、スタックのプッシュ・ポップ操作におけ
るメモリアクセスを示すレジスタである。実行ユニット
2は、プログラムを実行し、例外通知信号を受け付け
る。アドレスユニット3は、メモリアクセスのためのア
ドレスを生成する。比較器4は、アドレスユニット3で
生成されたアドレスと、スタックポインタ5の値とを比
較し、不正な値であったときは、実行ユニット2に通知
する。
ックポインタ5を含むレジスタの集合である。スタック
ポインタ5は、スタックのプッシュ・ポップ操作におけ
るメモリアクセスを示すレジスタである。実行ユニット
2は、プログラムを実行し、例外通知信号を受け付け
る。アドレスユニット3は、メモリアクセスのためのア
ドレスを生成する。比較器4は、アドレスユニット3で
生成されたアドレスと、スタックポインタ5の値とを比
較し、不正な値であったときは、実行ユニット2に通知
する。
【0009】次に、本実施例の動作を説明する。
【0010】図2は、本実施例の動作概念図である。本
実施例においては、プログラムでアクセスする全てのデ
ータは、常にスタックポインタより上位アドレス側とな
るようにプログラミングする。これにより、全ての正し
いデータアクセスは、スタックポインタの値と比較し
て、同じアドレスかまたは上位側のアドレスとなり、ス
タックポインタの値より下位側のデータアクセスは、全
て誤りとみなすことができる。
実施例においては、プログラムでアクセスする全てのデ
ータは、常にスタックポインタより上位アドレス側とな
るようにプログラミングする。これにより、全ての正し
いデータアクセスは、スタックポインタの値と比較し
て、同じアドレスかまたは上位側のアドレスとなり、ス
タックポインタの値より下位側のデータアクセスは、全
て誤りとみなすことができる。
【0011】図2(a)の状態からスタック上に一時変
数の領域を確保すると、図2(b)の状態となる。この
とき、一時変数の領域は、スタックポインタの値以上に
あるため、アクセスは成功する。一時変数の領域を解放
すると、図2(c)の状態になる。このとき、解放され
てしまって、すでに存在しない一時変数の領域に対して
データアクセスを行うと、そのアドレスは、スタックポ
インタの値より小さいため、比較器4により無効なデー
タアクセスであることを検出することができる。
数の領域を確保すると、図2(b)の状態となる。この
とき、一時変数の領域は、スタックポインタの値以上に
あるため、アクセスは成功する。一時変数の領域を解放
すると、図2(c)の状態になる。このとき、解放され
てしまって、すでに存在しない一時変数の領域に対して
データアクセスを行うと、そのアドレスは、スタックポ
インタの値より小さいため、比較器4により無効なデー
タアクセスであることを検出することができる。
【0012】
【発明の効果】以上説明したように本発明は、スタック
ポインタの値とデータアクセスのアドレスを比較するこ
とにより、解放された一時変数へのアクセスというプロ
グラムの誤りを検出することができるという効果を有す
る。
ポインタの値とデータアクセスのアドレスを比較するこ
とにより、解放された一時変数へのアクセスというプロ
グラムの誤りを検出することができるという効果を有す
る。
【図1】本発明のマイクロプロセッサの一実施例を示す
ブロック図である。
ブロック図である。
【図2】本実施例の動作概念図である。
1 レジスタ群 2 実行ユニット 3 アドレスユニット 4 比較器 5 スタックポインタ
Claims (3)
- 【請求項1】スタックポインタを含むレジスタ群と例外
通知信号を受付可能な実行ユニットと、 データアクセスアドレスを生成するアドレスユニット
と、 スタックポインタの値とアドレスユニットの生成したデ
ータアクセスアドレスを比較して実行ユニットに結果を
渡す比較器とを備えることを特徴とするマイクロプロセ
ッサ。 - 【請求項2】プログラムでアクセスする全てのデータが
常にスタックポインタの値より上位アドレス側となるよ
うにプログラミングし、前記比較器が、スタックポイン
タの値より下位側のデータアクセスを全て誤りとみなす
結果を前記実行ユニットに渡すことを特徴とする請求項
1記載のマイクロプロセッサ。 - 【請求項3】スタック上に一時変数の領域をスタックポ
インタの値以上となるように確保し、一時変数の領域を
解放したときに、前記比較器が、すでに存在しない一時
変数の領域に対するデータアクセスを全て誤りとみなす
結果を前記実行ユニットに渡すことを特徴とする請求項
2記載のマイクロプロセッサ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6136778A JPH086821A (ja) | 1994-06-20 | 1994-06-20 | マイクロプロセッサ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6136778A JPH086821A (ja) | 1994-06-20 | 1994-06-20 | マイクロプロセッサ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH086821A true JPH086821A (ja) | 1996-01-12 |
Family
ID=15183303
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6136778A Pending JPH086821A (ja) | 1994-06-20 | 1994-06-20 | マイクロプロセッサ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH086821A (ja) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61148538A (ja) * | 1984-12-24 | 1986-07-07 | Canon Inc | 演算処理装置 |
| JPH0375833A (ja) * | 1989-08-17 | 1991-03-29 | Matsushita Electric Ind Co Ltd | マイクロプログラム制御装置 |
| JPH0484224A (ja) * | 1990-07-26 | 1992-03-17 | Nec Corp | スタックエリア保護回路 |
-
1994
- 1994-06-20 JP JP6136778A patent/JPH086821A/ja active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61148538A (ja) * | 1984-12-24 | 1986-07-07 | Canon Inc | 演算処理装置 |
| JPH0375833A (ja) * | 1989-08-17 | 1991-03-29 | Matsushita Electric Ind Co Ltd | マイクロプログラム制御装置 |
| JPH0484224A (ja) * | 1990-07-26 | 1992-03-17 | Nec Corp | スタックエリア保護回路 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5717851A (en) | Breakpoint detection circuit in a data processor and method therefor | |
| US5606662A (en) | Auto DRAM parity enable/disable mechanism | |
| KR930016880A (ko) | 전자장치 및 그것의 고정정보 수정방법 | |
| US6052801A (en) | Method and apparatus for providing breakpoints on a selectable address range | |
| JPH086821A (ja) | マイクロプロセッサ | |
| JPH03132829A (ja) | パリテイ検査システム | |
| JPS59123055A (ja) | 命令処理方式 | |
| JPH01160547U (ja) | ||
| JPS5965356A (ja) | シングル・チツプ・マイクロコンピユ−タ | |
| JPS63250753A (ja) | メモリアクセスチエツク方式 | |
| JPS6075945A (ja) | トリガタイミング機能を備えたプログラム制御式デ−タ処理装置 | |
| JPS6270947A (ja) | デバグ割込み制御方式 | |
| JPH11167500A (ja) | エミュレータ装置のイベント回路及びデバッグシステム | |
| JPH06175888A (ja) | 異常アクセス検出回路 | |
| JPH0371236A (ja) | エラー検出システム | |
| JPH01201735A (ja) | マイクロプロセッサ装置 | |
| JPH07281926A (ja) | 情報処理装置の保護装置 | |
| JPH10320269A (ja) | 搭載メモリサイズの検出方法 | |
| JPH05113903A (ja) | アドレス一致検出回路 | |
| JPH0520205A (ja) | メモリエラーアドレスの検出回路 | |
| JPH05158747A (ja) | マイクロプログラム制御装置 | |
| JPH04177533A (ja) | マイクロコンピュータ | |
| JPH02144744A (ja) | 外部メモリ診断機能付lsi | |
| JPH11184751A (ja) | メモリ制御回路及びメモリ装置 | |
| JPH031269A (ja) | マルチプロセッサ・カード・システム |