JPH06180673A - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH06180673A JPH06180673A JP4284987A JP28498792A JPH06180673A JP H06180673 A JPH06180673 A JP H06180673A JP 4284987 A JP4284987 A JP 4284987A JP 28498792 A JP28498792 A JP 28498792A JP H06180673 A JPH06180673 A JP H06180673A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- cpu
- space
- error
- 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.)
- Pending
Links
Abstract
(57)【要約】
【目的】 実際のメモリ・I/O空間以外のアドレスを
指示してしまった場合のイメージ発生のデバックを容易
にする。 【構成】 コンピュータ装置に、メモリ構成をメモリ設
定レジスタで指定することによりあらかじめCPUに知
らせる手段、プログラムが指定するアドレスが実際のア
ドレス空間を越えるアドレスを指定するときCPUがメ
モリI/Oエラー例外を発生させる手段を備える。
指示してしまった場合のイメージ発生のデバックを容易
にする。 【構成】 コンピュータ装置に、メモリ構成をメモリ設
定レジスタで指定することによりあらかじめCPUに知
らせる手段、プログラムが指定するアドレスが実際のア
ドレス空間を越えるアドレスを指定するときCPUがメ
モリI/Oエラー例外を発生させる手段を備える。
Description
【0001】
【産業上の利用分野】本発明は情報処理装置におけるメ
モリアクセスの管理方法および中央処理装置に関する。
モリアクセスの管理方法および中央処理装置に関する。
【0002】
【従来の技術】高級プログラム言語でアプリケーション
プログラムを作るような場合は、メモリは変数名を付け
て利用するために、メモリ外のエリアをアドレシングす
ることはほとんど起こらない。
プログラムを作るような場合は、メモリは変数名を付け
て利用するために、メモリ外のエリアをアドレシングす
ることはほとんど起こらない。
【0003】ところが、メモリの有効利用や処理速度の
高速化のため、マシン語やアセンブラ、あるいはC言語
などの低級言語で組んだシステムプログラムやアプリケ
ーションプログラムでは直接アドレスを扱うので、実際
に存在しないアドレス空間をアドレシングすることが起
こる場合がある。
高速化のため、マシン語やアセンブラ、あるいはC言語
などの低級言語で組んだシステムプログラムやアプリケ
ーションプログラムでは直接アドレスを扱うので、実際
に存在しないアドレス空間をアドレシングすることが起
こる場合がある。
【0004】従来の情報処理装置の場合、誤って存在し
ないアドレス空間を指示したときイメージが発生した。
イメージとは実際に求めるアドレスに存在するデータで
ない、わけのわからないデータのことである。すなわち
画像音声処理が中心の情報処理装置であるコンピュータ
ゲーム装置の場合、画像データでは実際の画像(実像)
と違う画像となるためにこれをイメージ(虚像)と呼ん
でいる。なぜイメージが現れるかは、以下のような理由
による。
ないアドレス空間を指示したときイメージが発生した。
イメージとは実際に求めるアドレスに存在するデータで
ない、わけのわからないデータのことである。すなわち
画像音声処理が中心の情報処理装置であるコンピュータ
ゲーム装置の場合、画像データでは実際の画像(実像)
と違う画像となるためにこれをイメージ(虚像)と呼ん
でいる。なぜイメージが現れるかは、以下のような理由
による。
【0005】図1はメモリ空間の例を表す。CPUがア
ドレスできるメモリ空間とメモリが実装されているメモ
リ空間が違うのが普通である。メモリ空間(0000)
16〜(1000)16までがメモリの実装された部分で、
それ以上の高アドレスにはメモリボードが実装されてい
ない。プログラムでアドレスを指定すると、アドレス用
ICチップがアドレスをデコードし、実際のメモリ空間
をアドレシングする。
ドレスできるメモリ空間とメモリが実装されているメモ
リ空間が違うのが普通である。メモリ空間(0000)
16〜(1000)16までがメモリの実装された部分で、
それ以上の高アドレスにはメモリボードが実装されてい
ない。プログラムでアドレスを指定すると、アドレス用
ICチップがアドレスをデコードし、実際のメモリ空間
をアドレシングする。
【0006】ところが、従来の装置ではメモリの実装部
分のアドレス空間内でアドレスを解析している。たとえ
ばプログラムでアドレス(3000)16を指定した場
合、アドレスデコーダー(アドレス用ICチップ)はア
ドレス場所を(1000)16と解析する。
分のアドレス空間内でアドレスを解析している。たとえ
ばプログラムでアドレス(3000)16を指定した場
合、アドレスデコーダー(アドレス用ICチップ)はア
ドレス場所を(1000)16と解析する。
【0007】これは、実装部分の最上限以上のビットを
アドレスデコーダーが無視するからである。図2にその
様子を示すように、実装されているメモリの上限アドレ
ス以上のビットが無視されるために、(3000)16は
(1000)16とデコードされるのである。図では、実
装されているメモリ空間以上のアドレスを指定した場合
に、デコーダーがどのアドレスをポイントするかを示し
ている。
アドレスデコーダーが無視するからである。図2にその
様子を示すように、実装されているメモリの上限アドレ
ス以上のビットが無視されるために、(3000)16は
(1000)16とデコードされるのである。図では、実
装されているメモリ空間以上のアドレスを指定した場合
に、デコーダーがどのアドレスをポイントするかを示し
ている。
【0008】したがって本来データがないはずなのに、
あたかも(3000)16にもデータがあるものとして扱
われてしまったことになる。
あたかも(3000)16にもデータがあるものとして扱
われてしまったことになる。
【0009】
【発明が解決しようとする課題】このようなことからデ
バッグをする場合、イメージは見つけにくい。たとえば
画像データを扱っている場合、本来求める映像と違った
画像が現れたり、まったくわけのわからない映像(通常
画像の乱れ)が現れると、まず最初に疑うのは画像を定
義している画像データが間違っているのではないかと疑
ってしまうからである。
バッグをする場合、イメージは見つけにくい。たとえば
画像データを扱っている場合、本来求める映像と違った
画像が現れたり、まったくわけのわからない映像(通常
画像の乱れ)が現れると、まず最初に疑うのは画像を定
義している画像データが間違っているのではないかと疑
ってしまうからである。
【0010】それでも画像データなどの場合には目に見
えるエラーであるから、デバッグもしやすい。しかし直
接、アウトプットに関係のない処理でこのようなエラー
を起こすと、エラーが後の処理で現れることになり、エ
ラーの原因がまったくわからなくなることがある。
えるエラーであるから、デバッグもしやすい。しかし直
接、アウトプットに関係のない処理でこのようなエラー
を起こすと、エラーが後の処理で現れることになり、エ
ラーの原因がまったくわからなくなることがある。
【0011】たとえば、あるデータを間違って実際のメ
モリ空間以上のアドレス指定で書き出したりすると、ま
ったく関係のないデータや命令文が壊され、後の処理で
壊されたデータや命令を使用したときに予期しない結果
が現れる。
モリ空間以上のアドレス指定で書き出したりすると、ま
ったく関係のないデータや命令文が壊され、後の処理で
壊されたデータや命令を使用したときに予期しない結果
が現れる。
【0012】命令文が壊された場合には、そこで例外エ
ラーが発生して処理が止まるが、デバッグでその命令箇
所を何度調べてもエラーは見つからない。なぜなら、そ
の原因を作ったのはまったく別の箇所で出力した命令文
(実際にはアドレス指定)に原因があったからである。
本発明はこのような種々の困難を解決するメモリ管理方
法を目的とする。
ラーが発生して処理が止まるが、デバッグでその命令箇
所を何度調べてもエラーは見つからない。なぜなら、そ
の原因を作ったのはまったく別の箇所で出力した命令文
(実際にはアドレス指定)に原因があったからである。
本発明はこのような種々の困難を解決するメモリ管理方
法を目的とする。
【0013】
【課題を解決するための手段】本発明では、従来技術の
問題点に述べたような不都合が起きないために、システ
ムを利用するときにあらかじめメモリ構成をCPUに知
らせるようにするものである。
問題点に述べたような不都合が起きないために、システ
ムを利用するときにあらかじめメモリ構成をCPUに知
らせるようにするものである。
【0014】そして従来のようなアドレス用ICチップ
を使わずに、プログラムからメモリ(DRAM)のコン
フィグレーション(構成)を指定できるようにし、かつ
メモリをCPUが直接アドレシングができるようにす
る。具体的には以下のように行う。
を使わずに、プログラムからメモリ(DRAM)のコン
フィグレーション(構成)を指定できるようにし、かつ
メモリをCPUが直接アドレシングができるようにす
る。具体的には以下のように行う。
【0015】メモリ構成はメモリ設定レジスタで指定す
る。メモリ設定レジスタは32ビットで、次のような構
成になっている。 ROW_SIZE<2:0>:DRAMローアドレスビ
ット数 COL_SIZE<4:3>:DRAMカラムアドレス
ビット数 ARRAYS<5> :アレイ数 REFRESH_EN<6>:リフレッシュ許可 ここで<n:m>はmビットからnビットの範囲を表
す。また<n>はnビット目1ビットだけであることを
表す。
る。メモリ設定レジスタは32ビットで、次のような構
成になっている。 ROW_SIZE<2:0>:DRAMローアドレスビ
ット数 COL_SIZE<4:3>:DRAMカラムアドレス
ビット数 ARRAYS<5> :アレイ数 REFRESH_EN<6>:リフレッシュ許可 ここで<n:m>はmビットからnビットの範囲を表
す。また<n>はnビット目1ビットだけであることを
表す。
【0016】メモリ構成は、ROW_SIZE、COL
_SIZEおよびARRYASで決まる。その対応表が
図3である。Row×Colはメモリ設定レジスタのR
OW_SIZE×COL_SIZEに対応している。た
とえばメモリ設定レジスタで ROW_SIZE=10 COL_SIZE=9 ARRAYS=2 と指定すると、図3のRow×Col=10×9かつア
レイ=2に対応するから、メモリは図4に示すような2
アレイ構成の1MW(1Mワード)のメモリ空間である
ことをシステムに知らせることになる。
_SIZEおよびARRYASで決まる。その対応表が
図3である。Row×Colはメモリ設定レジスタのR
OW_SIZE×COL_SIZEに対応している。た
とえばメモリ設定レジスタで ROW_SIZE=10 COL_SIZE=9 ARRAYS=2 と指定すると、図3のRow×Col=10×9かつア
レイ=2に対応するから、メモリは図4に示すような2
アレイ構成の1MW(1Mワード)のメモリ空間である
ことをシステムに知らせることになる。
【0017】一方、プログラムで指定されたアドレスは
MCUによって、RAS信号とCAS信号に変えられ、
実際のアドレシングが行われる。図5はその様子を示し
たもので、RASとCASの交点が求めるアドレスとな
る。
MCUによって、RAS信号とCAS信号に変えられ、
実際のアドレシングが行われる。図5はその様子を示し
たもので、RASとCASの交点が求めるアドレスとな
る。
【0018】もしこのとき、指定するアドレスが実際の
アドレス空間(実装DRAMの空間)を越えるアドレス
を指定すると、CPUはメモリI/Oエラー例外を発生
させる。このようなことができるのも、あらかじめメモ
リ設定レジスタでメモリ構成をシステムに知らせてある
ために、CPUは実装メモリ空間の上限がわかるからで
ある。
アドレス空間(実装DRAMの空間)を越えるアドレス
を指定すると、CPUはメモリI/Oエラー例外を発生
させる。このようなことができるのも、あらかじめメモ
リ設定レジスタでメモリ構成をシステムに知らせてある
ために、CPUは実装メモリ空間の上限がわかるからで
ある。
【0019】本発明はメモリ空間でけでなく、I/O空
間にも対応している。これによって例外を発生させてエ
リアが保護される。この機能をエリアプロテクションブ
レークと呼ぶ。
間にも対応している。これによって例外を発生させてエ
リアが保護される。この機能をエリアプロテクションブ
レークと呼ぶ。
【0020】
【実施例】本発明の実施例のCPUについて説明する。
このCPUは命令フェッチユニット(IPU)、メモリ
制御ユニット(MCU)、I/O制御ユニット(IO
U)から構成される32ビットCPUで、図6に示すよ
うな2Gバイトのメモリバス空間と2GバイトのI/O
空間を有している。そしてこのCPUはメモリ(DRA
M)空間およびI/O空間に対してエリアプロテクショ
ンブレークをサポートしている。
このCPUは命令フェッチユニット(IPU)、メモリ
制御ユニット(MCU)、I/O制御ユニット(IO
U)から構成される32ビットCPUで、図6に示すよ
うな2Gバイトのメモリバス空間と2GバイトのI/O
空間を有している。そしてこのCPUはメモリ(DRA
M)空間およびI/O空間に対してエリアプロテクショ
ンブレークをサポートしている。
【0021】メモリを越えたアドレスにデータを書き出
した場合を考えてみよう。図7は本発明のCPUのもと
で実行したときのフローチャートである。まずメモリ設
定レジスタでメモリ構成を本発明のCPUに知らせる。
そのあとで、実装のメモリ空間を越えたアドレスにデー
タを出力する。
した場合を考えてみよう。図7は本発明のCPUのもと
で実行したときのフローチャートである。まずメモリ設
定レジスタでメモリ構成を本発明のCPUに知らせる。
そのあとで、実装のメモリ空間を越えたアドレスにデー
タを出力する。
【0022】すると、この出力命令でメモリI/Oエラ
ー例外によるブレークが発生し、ブレーク処理ルーチン
(ここではメモリI/Oエラー処理ルーチン)にCPU
のコントロールが移る。
ー例外によるブレークが発生し、ブレーク処理ルーチン
(ここではメモリI/Oエラー処理ルーチン)にCPU
のコントロールが移る。
【0023】このルーチンでエラーメッセージが出力さ
れ、プログラムは終了する。メモリI/Oエラーである
ことをエラーメッセージからわかるから、プログラマは
メモリあるいはI/O空間に入出力を行っている命令文
とその周辺のアドレス設定文をチェックすれば、エラー
箇所が発見できる。これにより、デバッグが非常に楽に
行える。
れ、プログラムは終了する。メモリI/Oエラーである
ことをエラーメッセージからわかるから、プログラマは
メモリあるいはI/O空間に入出力を行っている命令文
とその周辺のアドレス設定文をチェックすれば、エラー
箇所が発見できる。これにより、デバッグが非常に楽に
行える。
【0024】参考のために、従来の方法ではどうなるか
を述べてみよう。図8は従来の方法で、図7と同じ処理
をさせた場合をフローチャートにしたものである。従来
技術で述べたように、アドレシングはメモリ用ICチッ
プ(アドレスデコーダー)によってなされるから、メモ
リ設定レジスタでのメモリ構成の指定は要らない。
を述べてみよう。図8は従来の方法で、図7と同じ処理
をさせた場合をフローチャートにしたものである。従来
技術で述べたように、アドレシングはメモリ用ICチッ
プ(アドレスデコーダー)によってなされるから、メモ
リ設定レジスタでのメモリ構成の指定は要らない。
【0025】しかし、実装メモリを越えたアドレスへの
データ出力はどのエリアに書き出されるかわからない。
ここでは、プログラムの後ろの方の命令文(図では「あ
る命令文」)が壊されたと仮定する。すると、この命令
がCPUにフェッチされ解析されると、実際に存在しな
い命令ということが判定される(「データ出力」で破壊
されているため)。
データ出力はどのエリアに書き出されるかわからない。
ここでは、プログラムの後ろの方の命令文(図では「あ
る命令文」)が壊されたと仮定する。すると、この命令
がCPUにフェッチされ解析されると、実際に存在しな
い命令ということが判定される(「データ出力」で破壊
されているため)。
【0026】そこで非存在命令例外が発生し、ブレーク
ルーチン(ここでは非存在命令例外処理ルーチン)へC
PUのコントロールが移る。このルーチンではエラーメ
ッセージを出力して、プログラムを終了させる。
ルーチン(ここでは非存在命令例外処理ルーチン)へC
PUのコントロールが移る。このルーチンではエラーメ
ッセージを出力して、プログラムを終了させる。
【0027】エラーメッセージから「ある命令文」がお
かしいということはわかるが、ソースプログラムリスト
を見ても正常な命令文になっている。なぜなら、実行時
に壊された命令文だからである。
かしいということはわかるが、ソースプログラムリスト
を見ても正常な命令文になっている。なぜなら、実行時
に壊された命令文だからである。
【0028】このため、実際のエラー原因となった「デ
ータ出力」に着眼するには、経験とデバッグ能力をが求
される。この種のエラーが発生すると、たった1つのエ
ラーをつぶすのに長時間が費やされることも少なくな
い。
ータ出力」に着眼するには、経験とデバッグ能力をが求
される。この種のエラーが発生すると、たった1つのエ
ラーをつぶすのに長時間が費やされることも少なくな
い。
【0029】
【発明の効果】本発明を用いると、アドレス空間を越え
たアクセスはエラーとなるために、イメージが出なくな
る。またエラー発生箇所とエラーメッセージの箇所が一
致するために、エラー箇所と原因がすぐにわかり、デバ
ッグはいたって容易になる。とくにアセンブラやC言語
で直接アドレスをハンドリングすることの多いゲームプ
ログラムでは、開発期間の短縮化に大いに効果がある。
たアクセスはエラーとなるために、イメージが出なくな
る。またエラー発生箇所とエラーメッセージの箇所が一
致するために、エラー箇所と原因がすぐにわかり、デバ
ッグはいたって容易になる。とくにアセンブラやC言語
で直接アドレスをハンドリングすることの多いゲームプ
ログラムでは、開発期間の短縮化に大いに効果がある。
【図1】メモリ空間の例を表す図である。
【図2】アドレスデコーダーとアドレシング。
【図3】メモリ構成の対応を示す図である。
【図4】メモリ設定レジスタでRow×Col=10×
9を指定したときのメモリ構成図である。
9を指定したときのメモリ構成図である。
【図5】RAS(ロー)とCAS(カラム)によるメモ
リ空間のアドレス指定の説明図である。
リ空間のアドレス指定の説明図である。
【図6】本発明の実施例のCPUのアドレスマップであ
る。
る。
【図7】メモリI/Oエラー例外処理ルーチンを含むフ
ローチャートである。
ローチャートである。
【図8】非存在命令例外処理ルーチンを含むフローチャ
ートである。
ートである。
【手続補正書】
【提出日】平成4年11月20日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0019
【補正方法】変更
【補正内容】
【0019】本発明はメモリ空間だけでなく、I/O空
間にも対応している。これによって例外を発生させてエ
リアが保護される。この機能をエリアプロテクションブ
レークと呼ぶ。
間にも対応している。これによって例外を発生させてエ
リアが保護される。この機能をエリアプロテクションブ
レークと呼ぶ。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0028
【補正方法】変更
【補正内容】
【0028】このため、実際のエラー原因となった「デ
ータ出力」に着眼するには、経験とデバッグ能力を要求
される。この種のエラーが発生すると、たった1つのエ
ラーをつぶすのに長時間が費やされることも少なくな
い。
ータ出力」に着眼するには、経験とデバッグ能力を要求
される。この種のエラーが発生すると、たった1つのエ
ラーをつぶすのに長時間が費やされることも少なくな
い。
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】変更
【補正内容】
【図5】
Claims (1)
- 【請求項1】 メモリ構成をメモリ設定レジスタで指定
することによりあらかじめCPUに知らせる手段、プロ
グラムが指定するアドレスが実際のアドレス空間を越え
るアドレスを指定するときCPUがメモリI/Oエラー
例外を発生させる手段を備えたことを特徴とする情報処
理装置。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4284987A JPH06180673A (ja) | 1992-10-01 | 1992-10-01 | 情報処理装置 |
TW085200112U TW390446U (en) | 1992-10-01 | 1993-09-08 | Information processing system |
EP93307737A EP0590967B1 (en) | 1992-10-01 | 1993-09-29 | Wait-state control in an information processing system bus |
DE69322051T DE69322051T2 (de) | 1992-10-01 | 1993-09-29 | Wartezustandsteuerung auf einem Informationverarbeitungssystembus |
CA002107437A CA2107437A1 (en) | 1992-10-01 | 1993-09-30 | Information processing system |
US08/971,405 US5822753A (en) | 1992-10-01 | 1997-11-17 | Information processing system with a memory control unit for refreshing a memory |
US09/084,385 US6065132A (en) | 1992-10-01 | 1998-05-27 | Information processing system having a CPU for controlling access timings of separate memory and I/O buses |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4284987A JPH06180673A (ja) | 1992-10-01 | 1992-10-01 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06180673A true JPH06180673A (ja) | 1994-06-28 |
Family
ID=17685674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4284987A Pending JPH06180673A (ja) | 1992-10-01 | 1992-10-01 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06180673A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8909905B2 (en) | 2006-08-18 | 2014-12-09 | Freescale Semiconductor, Inc. | Method for performing plurality of bit operations and a device having plurality of bit operations capabilities |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5899841A (ja) * | 1981-12-10 | 1983-06-14 | Nec Corp | 部分実装された制御メモリのアドレス制御方式 |
JPS61255451A (ja) * | 1985-05-07 | 1986-11-13 | Mitsubishi Electric Corp | デ−タ処理装置 |
-
1992
- 1992-10-01 JP JP4284987A patent/JPH06180673A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5899841A (ja) * | 1981-12-10 | 1983-06-14 | Nec Corp | 部分実装された制御メモリのアドレス制御方式 |
JPS61255451A (ja) * | 1985-05-07 | 1986-11-13 | Mitsubishi Electric Corp | デ−タ処理装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8909905B2 (en) | 2006-08-18 | 2014-12-09 | Freescale Semiconductor, Inc. | Method for performing plurality of bit operations and a device having plurality of bit operations capabilities |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0213843A2 (en) | Digital processor control | |
US6052801A (en) | Method and apparatus for providing breakpoints on a selectable address range | |
JPH06180673A (ja) | 情報処理装置 | |
JP2915680B2 (ja) | Riscプロセッサ | |
JP3507193B2 (ja) | ロード・ストア命令処理装置 | |
JP2000029690A (ja) | デ―タ処理の方法および装置 | |
JP2587468B2 (ja) | ロツクデータ設定装置 | |
JP2000099370A (ja) | 信号処理装置 | |
JPH0353320A (ja) | マイクロプログラム制御方式 | |
JP2504151B2 (ja) | デ―タ処理装置 | |
JP2803552B2 (ja) | データ受信装置 | |
JP3428253B2 (ja) | シーケンサ | |
KR910006841A (ko) | 마이크로프로그램 제어를 기초로한 데이타 처리장치 | |
JPH06309236A (ja) | メモリの不正書込み検出回路 | |
JPH07104834B2 (ja) | 処理装置間ロック制御システム | |
JPH05324389A (ja) | 擬似障害評価方式 | |
JPH04205144A (ja) | マイクロプロセッサ | |
JP3014701B2 (ja) | 情報処理装置 | |
JPH0795288B2 (ja) | マイクロコンピュータ | |
JPS60193046A (ja) | 命令例外検出方式 | |
JPS60112148A (ja) | メモリ装置 | |
JPS6277656A (ja) | プログラムデバッグ方式 | |
JPS60132249A (ja) | デ−タ処理装置 | |
JPH0492933A (ja) | 電子計算機 | |
JPH05165624A (ja) | 常駐モジュールの修正方式 |