JPH04199328A - ストア処理方式 - Google Patents
ストア処理方式Info
- Publication number
- JPH04199328A JPH04199328A JP33265090A JP33265090A JPH04199328A JP H04199328 A JPH04199328 A JP H04199328A JP 33265090 A JP33265090 A JP 33265090A JP 33265090 A JP33265090 A JP 33265090A JP H04199328 A JPH04199328 A JP H04199328A
- Authority
- JP
- Japan
- Prior art keywords
- store
- byte boundary
- processing
- microprogram
- data
- 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
- 238000001514 detection method Methods 0.000 claims abstract description 19
- 238000000034 method Methods 0.000 claims description 27
- 238000003672 processing method Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 2
- 101100243951 Caenorhabditis elegans pie-1 gene Proteins 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、ストア処理方式に関し、特に、マイクロプロ
グラム制御により演算パイプライン制御に行うデータ処
理装置に好適なストア処理方式に関するものである。
グラム制御により演算パイプライン制御に行うデータ処
理装置に好適なストア処理方式に関するものである。
従来、データ処理装置においては、複雑な演算処理を効
率よく行うため、マイクロプログラム制御による演算パ
イプライン制御が行なわれる。
率よく行うため、マイクロプログラム制御による演算パ
イプライン制御が行なわれる。
第4図は、データ処理装置の概酩の構成を示すブロック
図である。第4図において、41は命令を解読する命令
ユニット、42は命令およびデータを格納する記憶ユニ
ット、43は命令で指定された演算を実行する演算ユニ
ットである。
図である。第4図において、41は命令を解読する命令
ユニット、42は命令およびデータを格納する記憶ユニ
ット、43は命令で指定された演算を実行する演算ユニ
ットである。
マイクロプログラム制御による演算パイプライン制御は
、データ処理装置の処理能力を向上させるため、?gL
算ユニット43で演算実行に必要とする時間を複数サイ
クル数に分割し、複数の異なった命令処理を各サイクル
に割り当てて、各サイクルでの制御?マイクロプログラ
ムにより行い、当該演算ユニット43に対してパイプラ
イン制御を行う制御法である。
、データ処理装置の処理能力を向上させるため、?gL
算ユニット43で演算実行に必要とする時間を複数サイ
クル数に分割し、複数の異なった命令処理を各サイクル
に割り当てて、各サイクルでの制御?マイクロプログラ
ムにより行い、当該演算ユニット43に対してパイプラ
イン制御を行う制御法である。
また、データ処理装置でのストア処理は、1回のストア
動作でメモリへの書込みを行えるバイト数は決まってお
り、また、1回のストア動作ではそのバイト境界内への
ストアしかできない。ここでの例として、ストアの単位
を8バイトとし、8バイト境界でストア処理が行なれる
データ処理装置を例として説明する。
動作でメモリへの書込みを行えるバイト数は決まってお
り、また、1回のストア動作ではそのバイト境界内への
ストアしかできない。ここでの例として、ストアの単位
を8バイトとし、8バイト境界でストア処理が行なれる
データ処理装置を例として説明する。
このため、ストア命令のマイクロプログラム制御による
処理は、ストアデータが8バイト境界をクロスしない時
と、8バイト境界をクロスする時とで、マイクロプログ
ラム処理すなわちマイクロプログラムのエントリを変え
る必要がある。
処理は、ストアデータが8バイト境界をクロスしない時
と、8バイト境界をクロスする時とで、マイクロプログ
ラム処理すなわちマイクロプログラムのエントリを変え
る必要がある。
第5図、第6図、および第7図は、ストア命令およびス
トア命令を含む10進演算命令の各マイクロプログラム
処理の一例を示す図である。
トア命令を含む10進演算命令の各マイクロプログラム
処理の一例を示す図である。
ストアデータが8バイト境界をクロスしない時のストア
命令は、第5図に示すように、データのメモリ書込み位
置を指示するマークをセットして。
命令は、第5図に示すように、データのメモリ書込み位
置を指示するマークをセットして。
ストアを行う処理(メモリリクエストを発行する処理)
となり、■サイクルで処理は終了する。
となり、■サイクルで処理は終了する。
ストアデータが8バイト境界をクロスする時のストア命
令は、クロスする8バイト境界の前半部分と後半部分と
の2回のストア処理となる。このため、第6図に示すよ
うに、サイクルHa 1とサイクルNα2との2つのサ
イクルの処理となる。すなわち、サイクルNa 1にお
いて、8バイト境界の前半部分のデータのメモリ書込み
位置を指示するマークをセットし、ストア(1回目)を
行う。次に、サイクルNo 2において、8バイト境界
の後半部分のデータのメモリに書込むため、ストアアド
レスを+8し、8バイト境界の後半部分のデータのメモ
リ書込み位置を指示するマークを更新してセットし、次
にストア(2回目)を行う。
令は、クロスする8バイト境界の前半部分と後半部分と
の2回のストア処理となる。このため、第6図に示すよ
うに、サイクルHa 1とサイクルNα2との2つのサ
イクルの処理となる。すなわち、サイクルNa 1にお
いて、8バイト境界の前半部分のデータのメモリ書込み
位置を指示するマークをセットし、ストア(1回目)を
行う。次に、サイクルNo 2において、8バイト境界
の後半部分のデータのメモリに書込むため、ストアアド
レスを+8し、8バイト境界の後半部分のデータのメモ
リ書込み位置を指示するマークを更新してセットし、次
にストア(2回目)を行う。
また、ストア処理を含む10進加算命令(AP命令)の
処理をマイクロプログラムを行う場合にも、同様にして
、演算結果にかかるストアデータが8バイト境界をクロ
スするか否かで処理が2つに分かれる。10進演算命令
のマイクロプログラム処理は1例えば、第7図に示すよ
うに、3サイクル〜4サイクルを要するものとなってい
る。すなわち、10進演算命令のマイクロプログラム処
理は、まず、サイクルNα1で前処理を行い、サイクル
Nα2で10進演算を行うが、この時、演算結果にかか
るストアデータの8バイト境界クロスのテストを行う。
処理をマイクロプログラムを行う場合にも、同様にして
、演算結果にかかるストアデータが8バイト境界をクロ
スするか否かで処理が2つに分かれる。10進演算命令
のマイクロプログラム処理は1例えば、第7図に示すよ
うに、3サイクル〜4サイクルを要するものとなってい
る。すなわち、10進演算命令のマイクロプログラム処
理は、まず、サイクルNα1で前処理を行い、サイクル
Nα2で10進演算を行うが、この時、演算結果にかか
るストアデータの8バイト境界クロスのテストを行う。
そして、次のサイクルNo、 3では、演算結果のスト
アデータが8バイト境界をクロスするか否かで処理が2
つに分かれる。8バイト境界をクロスしない場合は、第
5図に示したストア処理と同様に、サイクルNa5(左
側)でマークセットを行い、ストアを行い処理を終了す
る。この場合は、3サイクルで処理が終了する。また、
8バイト境界をクロスする場合は、第6図に示したスト
ア処理と同様に、サイクルNα3(右側)でマークセッ
トを行い、ストア(1回目)を行い、更に次のサイクル
Nα4において、アドレス+8を行い、マーク更新を行
い、ストア(2回目)を行い、処理を終了する。この場
合は、4サイクルで処理が終了する。
アデータが8バイト境界をクロスするか否かで処理が2
つに分かれる。8バイト境界をクロスしない場合は、第
5図に示したストア処理と同様に、サイクルNa5(左
側)でマークセットを行い、ストアを行い処理を終了す
る。この場合は、3サイクルで処理が終了する。また、
8バイト境界をクロスする場合は、第6図に示したスト
ア処理と同様に、サイクルNα3(右側)でマークセッ
トを行い、ストア(1回目)を行い、更に次のサイクル
Nα4において、アドレス+8を行い、マーク更新を行
い、ストア(2回目)を行い、処理を終了する。この場
合は、4サイクルで処理が終了する。
第8図は、ストア処理を説明するためのバッファ記憶周
囲の回路構成を示すブロック図である。
囲の回路構成を示すブロック図である。
第8図において、51はアドレス制御回路、52はスト
アアドレスレジスタ、53はメモリリクエスト制御回路
、54はストアデータレジスタ(8バイト)、55はス
トアマーク制御回路、56はストアマークレジスタ(8
ビツト)、57はバッファ記憶、58はワークレジスタ
、59はアライン回路、60はメモリ書込み回路である
。
アアドレスレジスタ、53はメモリリクエスト制御回路
、54はストアデータレジスタ(8バイト)、55はス
トアマーク制御回路、56はストアマークレジスタ(8
ビツト)、57はバッファ記憶、58はワークレジスタ
、59はアライン回路、60はメモリ書込み回路である
。
ワークレジスタ58に格納された演算結果のストアデー
タは、アライン回路59により8バイト境界にあわせら
れ、ストアデータレジスタ54に格納される。アドレス
制御回路51はストアを行うアドレスを生成し、アドレ
スレジスタ52に格納して、バッファ記憶57に対し8
バイト精度でストアアドレスを指示する。ストアマーク
制御回路55は1バイトごとのストアを制御するストア
マークを生成して、ストアマークレジスタ56を介して
メモリ書込み回路60に供給する。メモリリクエスト制
御回路53がストアの実行を起動するメモリリクエスト
信号をメモリ書込み回路60に与えると、メモリ書込み
回路60は、バッファ記憶57に、ストアデータレジス
タ54のストアデータをストアマークレジスタ56のス
トアマークに従って書込む動作を行う。
タは、アライン回路59により8バイト境界にあわせら
れ、ストアデータレジスタ54に格納される。アドレス
制御回路51はストアを行うアドレスを生成し、アドレ
スレジスタ52に格納して、バッファ記憶57に対し8
バイト精度でストアアドレスを指示する。ストアマーク
制御回路55は1バイトごとのストアを制御するストア
マークを生成して、ストアマークレジスタ56を介して
メモリ書込み回路60に供給する。メモリリクエスト制
御回路53がストアの実行を起動するメモリリクエスト
信号をメモリ書込み回路60に与えると、メモリ書込み
回路60は、バッファ記憶57に、ストアデータレジス
タ54のストアデータをストアマークレジスタ56のス
トアマークに従って書込む動作を行う。
ストア命令を実行し、100番地から連続した4バイト
にデータall”F”C1F F F F F F F
F”)をストアする場合を考えると、アドレスレジス
タ52にはストア番地の” 100 ”がセットされ、
ストアデータレジスタ54に“FFFFFFFFo o
o o o o o o ”がセットされ、ストアマ
ークレジスタ56に“11110000″がセットされ
て、メモリリクエスト制御回路53からメモリリクエス
トが1回発行されると、メモリ書込み回路60が、スト
アマークのII I IIとなっているバイト位置のデ
ータのメモリ書込みをバッファ記憶57に対して8バイ
ト境界の100番地から107番地に一括して行なわれ
、データal111 F31がバッファ記憶57に書か
れてストア命令が完了する。
にデータall”F”C1F F F F F F F
F”)をストアする場合を考えると、アドレスレジス
タ52にはストア番地の” 100 ”がセットされ、
ストアデータレジスタ54に“FFFFFFFFo o
o o o o o o ”がセットされ、ストアマ
ークレジスタ56に“11110000″がセットされ
て、メモリリクエスト制御回路53からメモリリクエス
トが1回発行されると、メモリ書込み回路60が、スト
アマークのII I IIとなっているバイト位置のデ
ータのメモリ書込みをバッファ記憶57に対して8バイ
ト境界の100番地から107番地に一括して行なわれ
、データal111 F31がバッファ記憶57に書か
れてストア命令が完了する。
次に、106番地から連続した4バイトにデータail
“F IIをストアする場合を考えると、この場合には
、2回のストア動作で命令の処理が完了する。例えば、
ワークレジスタ58に演算結果データが” F F F
F F F F F OOOOOOOO” ト求まっ
ているとすれば、アライン回路59により先頭データの
11 F”をストア開始のアドレスに合せるアラインを
行い、ストアデータレジスタ54には” F F F
F OOOOOO00F F FF ”がセットされる
。1回目のストア動作は、アドレスレジスタ52にスト
アアドレスとして1″100 ”をセットし、ストアマ
ークレジスタ56にストアマークの”00000011
’″をセットして、1回目のメモリリクエトを発行する
。これにより、ストアデータレジスタ54のデータ後半
2バイトがバッファ記憶57に書き込まれる。これに引
き続き2回目のストア動作はアドレスレジスタ52に2
回目ストアのストアアドレスして” l O8”をセッ
トし、ストアデータレジスタ54のデータはそのままと
し、ストアデータレジスタ56のストアマークとしては
’11000000”をセットして、2回目のメモリリ
クエストを発行する。これにより、ストアデータレジス
タ54のデータの前半2バイトがバッファ記憶57に書
き込まれ、ストア命令が完了する。
“F IIをストアする場合を考えると、この場合には
、2回のストア動作で命令の処理が完了する。例えば、
ワークレジスタ58に演算結果データが” F F F
F F F F F OOOOOOOO” ト求まっ
ているとすれば、アライン回路59により先頭データの
11 F”をストア開始のアドレスに合せるアラインを
行い、ストアデータレジスタ54には” F F F
F OOOOOO00F F FF ”がセットされる
。1回目のストア動作は、アドレスレジスタ52にスト
アアドレスとして1″100 ”をセットし、ストアマ
ークレジスタ56にストアマークの”00000011
’″をセットして、1回目のメモリリクエトを発行する
。これにより、ストアデータレジスタ54のデータ後半
2バイトがバッファ記憶57に書き込まれる。これに引
き続き2回目のストア動作はアドレスレジスタ52に2
回目ストアのストアアドレスして” l O8”をセッ
トし、ストアデータレジスタ54のデータはそのままと
し、ストアデータレジスタ56のストアマークとしては
’11000000”をセットして、2回目のメモリリ
クエストを発行する。これにより、ストアデータレジス
タ54のデータの前半2バイトがバッファ記憶57に書
き込まれ、ストア命令が完了する。
このように、ストア命令のストア動作は、8バイト境界
をクロスしない時(100番地からのストア動作)と、
8バイト境界をクロスする時(106番地からのストア
動作)とで動作が異なり、マイクロプログラム制御の処
理では、プログラム処理すなわちマイクロプログラムの
エントリを変える必要がある(第5図、第6図)。
をクロスしない時(100番地からのストア動作)と、
8バイト境界をクロスする時(106番地からのストア
動作)とで動作が異なり、マイクロプログラム制御の処
理では、プログラム処理すなわちマイクロプログラムの
エントリを変える必要がある(第5図、第6図)。
ところで、」二連したように従来の技術においては、ス
トア命令では、ストアを行う際は、8バイト境界をクロ
スするかどうかで、マイクロプログラム処理を変える必
要があり、また、ストア処理を含む十進演算命令におい
ては、更に8バイトgt界をクロスするかどうかのテス
トを行わなければならない。このため、8バイト境界ク
ロスのテストによる性能の低下と、マイクロプログラム
処理のステップの増加とにより、命令の処理性能が低下
してしまうという問題がある。また、実際に8パイ1〜
境界をクロスしてストアを行う際には、更に]サイクル
のストア動作の処理を必要とするため、処理性能が低下
するという問題がある。
トア命令では、ストアを行う際は、8バイト境界をクロ
スするかどうかで、マイクロプログラム処理を変える必
要があり、また、ストア処理を含む十進演算命令におい
ては、更に8バイトgt界をクロスするかどうかのテス
トを行わなければならない。このため、8バイト境界ク
ロスのテストによる性能の低下と、マイクロプログラム
処理のステップの増加とにより、命令の処理性能が低下
してしまうという問題がある。また、実際に8パイ1〜
境界をクロスしてストアを行う際には、更に]サイクル
のストア動作の処理を必要とするため、処理性能が低下
するという問題がある。
本発明は、これらの問題点を解決するためになされたも
のである。
のである。
本発明の目的は、8バイト境界をクロスするが否かにか
かわらず、マイクロプログラム処理を変えないでストア
命令、ストア動作を含む十進演算命令を実行させ、マイ
クロプログラム処理ステップ数を低減させると共に、性
能向上を図がるストア処理方式製提供することにある。
かわらず、マイクロプログラム処理を変えないでストア
命令、ストア動作を含む十進演算命令を実行させ、マイ
クロプログラム処理ステップ数を低減させると共に、性
能向上を図がるストア処理方式製提供することにある。
本発明の他の目的は、ストア命令、ストア処理を含む十
進演算命令で8バイト境界をクロスしてストアを行う際
の実効的な処理性能を向上させるストア処理方式を提供
することにある。
進演算命令で8バイト境界をクロスしてストアを行う際
の実効的な処理性能を向上させるストア処理方式を提供
することにある。
上記目的を達成するため、本発明のストア処理方式は、
マイクロプログラム制御により演算パイプライン制御を
行い、1回のストアを行う単位バイトが存在し、かつそ
の単位バイト境界にあわせてストアするストア処理を行
うデータ処理装置において、単位バイト境界をクロスす
るストアを行うとき、単位バイト境界の1回目のストア
を実行した後に2ストア処理のマイクロプログラム命令
を終了させ、後続のマイクロプログラム命令の実行開始
と並行して、ストア処理の残り回数のストアを実行する
ことを特徴とする。
マイクロプログラム制御により演算パイプライン制御を
行い、1回のストアを行う単位バイトが存在し、かつそ
の単位バイト境界にあわせてストアするストア処理を行
うデータ処理装置において、単位バイト境界をクロスす
るストアを行うとき、単位バイト境界の1回目のストア
を実行した後に2ストア処理のマイクロプログラム命令
を終了させ、後続のマイクロプログラム命令の実行開始
と並行して、ストア処理の残り回数のストアを実行する
ことを特徴とする。
また、マイクロプログラム制御により演算パイプライン
制御を行い、演算にかかるストア処理を1回のストアを
行う単位バイトの単位バイト境界にあわせて行うデータ
処理装置において、ストアを行う際にストアデータの単
位バイト境界のクロスを検出する検出回路と、単位バイ
ト境界をクロスする後続ストアを行うストア制御データ
を生成するハードウェア回路を備え、検出回路が単位バ
イトクロスを検出した時、ハードウェア回路からのスト
ア制御データにより単位バイト境界をクロスする後続ス
トアを行い、単位バイト境界をクロスするストア処理で
あるか否かにかかわらず、スl〜ア処理を同しマイクロ
プログラム制御で処理することを特徴とする。
制御を行い、演算にかかるストア処理を1回のストアを
行う単位バイトの単位バイト境界にあわせて行うデータ
処理装置において、ストアを行う際にストアデータの単
位バイト境界のクロスを検出する検出回路と、単位バイ
ト境界をクロスする後続ストアを行うストア制御データ
を生成するハードウェア回路を備え、検出回路が単位バ
イトクロスを検出した時、ハードウェア回路からのスト
ア制御データにより単位バイト境界をクロスする後続ス
トアを行い、単位バイト境界をクロスするストア処理で
あるか否かにかかわらず、スl〜ア処理を同しマイクロ
プログラム制御で処理することを特徴とする。
これによれば、ストアデータが単位バイト境界をクロス
して複数回のストアデータを必要とする場合、単位バイ
ト境界の1回目のストアを実行した後に、ストア処理の
マイクロプロゲラ11命令を終rさせ、後続のマイクロ
プログラム命令の実行を開始する。これと並行して、ス
トア処理の残り回数のストアを実行する。1回目のスト
ア動作はマイクロプログラム処理により動作して、メモ
リリクエストが発行されて1通常のストア動作が行われ
る。そして、2回目のストア動作は単位バイト境界をク
ロスしたことを検出した時に、例えば、ハードウェア回
路により、1回目のストアアトレスに単位バイト境界分
を加算したアドレス、ストアマークが単位バイト境界を
クロスした残りの値。
して複数回のストアデータを必要とする場合、単位バイ
ト境界の1回目のストアを実行した後に、ストア処理の
マイクロプロゲラ11命令を終rさせ、後続のマイクロ
プログラム命令の実行を開始する。これと並行して、ス
トア処理の残り回数のストアを実行する。1回目のスト
ア動作はマイクロプログラム処理により動作して、メモ
リリクエストが発行されて1通常のストア動作が行われ
る。そして、2回目のストア動作は単位バイト境界をク
ロスしたことを検出した時に、例えば、ハードウェア回
路により、1回目のストアアトレスに単位バイト境界分
を加算したアドレス、ストアマークが単位バイト境界を
クロスした残りの値。
1回目と同じストアアデータ、メモリリクエストを生成
して順次の残りのストア動作を行う、これにより、2回
目以降のストア動作はマイクロプログラムに非同期での
実行が可能となる。
して順次の残りのストア動作を行う、これにより、2回
目以降のストア動作はマイクロプログラムに非同期での
実行が可能となる。
具体的には、ストアが8バイト境界をクロスするかどう
かの検出回路と、ストアアドレスを+8するアドレス加
算回路と、メモリリクエストを複数回発行するメモリリ
クエスト発行回路と、8バイト境界のクロスした残りの
ストアマークを待避するストアマークレジスタと、これ
らの回路からのアドレス、マーク、およびメモリリクエ
ストをストア制御データとしてセレクトして送出するセ
レクタとを備え、マイクロプログラム処理では1回のス
トア要求の処理を行うが、そのストアが8バイト境界を
クロスしない時は1回のメモリリクエト発行で処理を終
了し、ストアが8バトイ境界をクロスした場合は、1回
目のメモリリクエト発行に引き続き、2回目のストアに
必要なアドレス。
かの検出回路と、ストアアドレスを+8するアドレス加
算回路と、メモリリクエストを複数回発行するメモリリ
クエスト発行回路と、8バイト境界のクロスした残りの
ストアマークを待避するストアマークレジスタと、これ
らの回路からのアドレス、マーク、およびメモリリクエ
ストをストア制御データとしてセレクトして送出するセ
レクタとを備え、マイクロプログラム処理では1回のス
トア要求の処理を行うが、そのストアが8バイト境界を
クロスしない時は1回のメモリリクエト発行で処理を終
了し、ストアが8バトイ境界をクロスした場合は、1回
目のメモリリクエト発行に引き続き、2回目のストアに
必要なアドレス。
データ、マーク等をセットしてストア制御データとして
送出し、2回目のメモリリクエスト発行を行う。これに
より、2回目以降のストア動作はマイクロプログラム処
理に非同期で実行する。このため、マイクロプログラム
処理で8バイト境界をクロスするストアかどうかを意識
する必要がなくなり、マイクロプログラム処理ステップ
数を低減する。また、ストア処理を含む十進演算命令で
は、マイクロプログラム処理で8バイト境界をクロスす
るか否かテストを行う必要がなくなり、8バイト境界咎
クロスしてストアを行う際の実効的な処理性能が向上す
る。
送出し、2回目のメモリリクエスト発行を行う。これに
より、2回目以降のストア動作はマイクロプログラム処
理に非同期で実行する。このため、マイクロプログラム
処理で8バイト境界をクロスするストアかどうかを意識
する必要がなくなり、マイクロプログラム処理ステップ
数を低減する。また、ストア処理を含む十進演算命令で
は、マイクロプログラム処理で8バイト境界をクロスす
るか否かテストを行う必要がなくなり、8バイト境界咎
クロスしてストアを行う際の実効的な処理性能が向上す
る。
以下、本発明の一実施例を図面を用いて具体的に説明す
る。
る。
第1図は1本発明の一実施例にかかるストア処理方式を
一態様で実施するバッファ記憶周囲の回路構成を示すブ
ロック図である。第1図において、1はアドレス制御回
路、2はストアアドレスレジスタ、3はメモリリクエス
ト制御回路、4はストアデータレジスタ (8バイト)
、5はストアマーク制御回路、6はストアマークレジス
タ(8ビツト)、7はバッファ記憶、8はワークレジス
タ、9はアライン回路、10はメモリ書込み回路である
。また、11は8バイトクロス検出回路、12は8加算
回路、13はデイレイ回路、14は待避マークレジスタ
、15〜17はセレクタである。
一態様で実施するバッファ記憶周囲の回路構成を示すブ
ロック図である。第1図において、1はアドレス制御回
路、2はストアアドレスレジスタ、3はメモリリクエス
ト制御回路、4はストアデータレジスタ (8バイト)
、5はストアマーク制御回路、6はストアマークレジス
タ(8ビツト)、7はバッファ記憶、8はワークレジス
タ、9はアライン回路、10はメモリ書込み回路である
。また、11は8バイトクロス検出回路、12は8加算
回路、13はデイレイ回路、14は待避マークレジスタ
、15〜17はセレクタである。
8バイトクロス検出回路11は、ストアデータが8バイ
ト境界をクロスするかどうかを検出する回路あり、8加
算回路12はリクエストアドレスに8を加算する加算回
路である。また、デイレイ回路13は複数回のメモリリ
クエストを発行するメモリリクエスト発行回路を構成す
る回路であり、メモリリクエスト制御回路3からのメモ
リリクエトを受け、メモリリフストを2回連続して発行
する。待避マークレジスタ14はストアマーク制御回路
5から発行された8バイト境界をクロスした残りのスト
アマークを待避する。セレクタ15〜17は8バイトク
ロス検出回路11がらの制御により、ストアデータが8
バイト境界をクロスした時に、2回目のストア動作のた
めのストア制御データをセレク]・シて送出する。
ト境界をクロスするかどうかを検出する回路あり、8加
算回路12はリクエストアドレスに8を加算する加算回
路である。また、デイレイ回路13は複数回のメモリリ
クエストを発行するメモリリクエスト発行回路を構成す
る回路であり、メモリリクエスト制御回路3からのメモ
リリクエトを受け、メモリリフストを2回連続して発行
する。待避マークレジスタ14はストアマーク制御回路
5から発行された8バイト境界をクロスした残りのスト
アマークを待避する。セレクタ15〜17は8バイトク
ロス検出回路11がらの制御により、ストアデータが8
バイト境界をクロスした時に、2回目のストア動作のた
めのストア制御データをセレク]・シて送出する。
ワークレジスタ8に格納された演算結果のストアデータ
は、アライン回路9により8バイト境界にあわせられ、
ストアデータレジスタ4に格納される。アドレス制御回
路1はストアを行うアドレスを生成し、アドレスレジス
タ2に格納して、バッファ記憶7に対し8バイト精度で
ストアアドレスを指示する。ストアマーク制御回路5は
1バイトごとのストアを制御するストアマークを生成し
て、ストアマークレジスタ6、セレクタ17を介してメ
モリ書込み回路10に供給する。メモリリクエスト制御
回路3がストアの実行を起動するメモリリクエスト信号
をセレクタ16を介してメモリ書込み回路10に与える
と、メモリ書込み回路10は、バッファ記憶7に、スト
アデータレジスタ4のストアデータをストアマークレジ
スタ6のストアマークに従って書込む動作を行う、この
動作は、ストアデータが8バイト境界をクロスしない場
合の動作であり、1回目のストア動作となっている、基
本的には、前述の第8図の回路と同様な動作である。
は、アライン回路9により8バイト境界にあわせられ、
ストアデータレジスタ4に格納される。アドレス制御回
路1はストアを行うアドレスを生成し、アドレスレジス
タ2に格納して、バッファ記憶7に対し8バイト精度で
ストアアドレスを指示する。ストアマーク制御回路5は
1バイトごとのストアを制御するストアマークを生成し
て、ストアマークレジスタ6、セレクタ17を介してメ
モリ書込み回路10に供給する。メモリリクエスト制御
回路3がストアの実行を起動するメモリリクエスト信号
をセレクタ16を介してメモリ書込み回路10に与える
と、メモリ書込み回路10は、バッファ記憶7に、スト
アデータレジスタ4のストアデータをストアマークレジ
スタ6のストアマークに従って書込む動作を行う、この
動作は、ストアデータが8バイト境界をクロスしない場
合の動作であり、1回目のストア動作となっている、基
本的には、前述の第8図の回路と同様な動作である。
次に、ストアデータが8バイト境界をクロスする場合の
動作を説明する。具体的に、ストア命令を実行し、10
6番地から連続した4バイトにデータ11” F74を
ストアする場合を考える。この場合には、2回のストア
動作で命令の処理が完了するが、1回目のストア動作は
、前述と同様に行なわれる。アドレスレジスタ2にアド
レス“100 ”をセットし、ストアデータレジスタ4
に” F F FF00000oOOFFFF″をセッ
トし、マークレジスタ64:”00000011” を
セットして、メモリリクエスト制御回路3により生成さ
れたメモリリクエストを発行し、メモリ書込み回路10
により、まず、ストアデータレジスタ4のデータの後半
2バイトをバッファ記憶7に書き込む。
動作を説明する。具体的に、ストア命令を実行し、10
6番地から連続した4バイトにデータ11” F74を
ストアする場合を考える。この場合には、2回のストア
動作で命令の処理が完了するが、1回目のストア動作は
、前述と同様に行なわれる。アドレスレジスタ2にアド
レス“100 ”をセットし、ストアデータレジスタ4
に” F F FF00000oOOFFFF″をセッ
トし、マークレジスタ64:”00000011” を
セットして、メモリリクエスト制御回路3により生成さ
れたメモリリクエストを発行し、メモリ書込み回路10
により、まず、ストアデータレジスタ4のデータの後半
2バイトをバッファ記憶7に書き込む。
この1回目のストア動作が終了した時点で、ここでのマ
イクロプログラム処理のストア命令の処理は終了し、2
回目のストア動作の実行を待たずに、ストア命令の実行
を完了したかのように見せて、マイクロプログラムの処
理では、後続命令の実行を開始する。この時、同時に、
予じめストアする結果が8バイト境界をクロスしたこと
を、8バイトクロス検出回路11が検出しているので、
8バイトクロス検出回路J1の制御によりセレクタ15
〜17を制御して、2回目のストア動作が実行される。
イクロプログラム処理のストア命令の処理は終了し、2
回目のストア動作の実行を待たずに、ストア命令の実行
を完了したかのように見せて、マイクロプログラムの処
理では、後続命令の実行を開始する。この時、同時に、
予じめストアする結果が8バイト境界をクロスしたこと
を、8バイトクロス検出回路11が検出しているので、
8バイトクロス検出回路J1の制御によりセレクタ15
〜17を制御して、2回目のストア動作が実行される。
すなわち、8バイトクロス検出回路11の出力が111
1+となり、8バイト境界をクロスしている場合には、
8加算回路12でストアアドレスが+8されており、待
避マークレジスタ14にバイト境界をクロスした残りの
ストアデータに対応するマークが格納されており、また
、デイレイ回路13で2回目のメモリリクエストが生成
されているので、1回目のメモリリクエストが発行され
たのに引き続いて、8バイトクロス検出回路11の制御
によりセレクタ15〜17を制御して、2回目のストア
動作を実行する。
1+となり、8バイト境界をクロスしている場合には、
8加算回路12でストアアドレスが+8されており、待
避マークレジスタ14にバイト境界をクロスした残りの
ストアデータに対応するマークが格納されており、また
、デイレイ回路13で2回目のメモリリクエストが生成
されているので、1回目のメモリリクエストが発行され
たのに引き続いて、8バイトクロス検出回路11の制御
によりセレクタ15〜17を制御して、2回目のストア
動作を実行する。
2回目のストア動作により、ストアデータレジスタ4の
データの前半2バイトが、メモリ書込み回路10により
バッファ記憶7の108番地のアドレスから書き込んで
、ここでのストア命令の実行が完了する。
データの前半2バイトが、メモリ書込み回路10により
バッファ記憶7の108番地のアドレスから書き込んで
、ここでのストア命令の実行が完了する。
したがって、8バイト境界をクロスするストア命令の実
行は、本来、マイクロプログラムの処理サイクルで、2
サイクル必要であったが、ここでのストア処理によれば
、2サイクル目で、後続命令の実行を開始できる。この
ため、実効的な実行サイクルを1サイクルに低減するこ
とができる。
行は、本来、マイクロプログラムの処理サイクルで、2
サイクル必要であったが、ここでのストア処理によれば
、2サイクル目で、後続命令の実行を開始できる。この
ため、実効的な実行サイクルを1サイクルに低減するこ
とができる。
また、8バイト境界をクロスしないストア命令の実行時
は、8バイトクロス検出回路の出力は110 I+とな
るため、8加算回路12.第2メモリリクエストを発行
するデイレイ回路13.待避マークレジスタ14等の回
路から出力は、セレクタ15〜17により選択されず、
前述の動作と同じ動作となる。このため、8バイト境界
をクロスする時と。
は、8バイトクロス検出回路の出力は110 I+とな
るため、8加算回路12.第2メモリリクエストを発行
するデイレイ回路13.待避マークレジスタ14等の回
路から出力は、セレクタ15〜17により選択されず、
前述の動作と同じ動作となる。このため、8バイト境界
をクロスする時と。
8バイト境界をクロスしない時とのマイクロプログラム
処理を変える必要はない。ここでの8バイト境界をクロ
スするかどうかをマイクロプログラムで意識しないスト
ア処理を、8バイト境界クロスストア(これを88Xス
トアと略称する)と呼ぶ。この場合のストア命令および
ストア動作を含む10進演算命令のマイクロプログラム
による処理を、第2図および第3図にそれぞれに示す。
処理を変える必要はない。ここでの8バイト境界をクロ
スするかどうかをマイクロプログラムで意識しないスト
ア処理を、8バイト境界クロスストア(これを88Xス
トアと略称する)と呼ぶ。この場合のストア命令および
ストア動作を含む10進演算命令のマイクロプログラム
による処理を、第2図および第3図にそれぞれに示す。
第2図は1本発明の一実施例によるストア命令のマイク
ロプログラムによる処理を説明する図である。この場合
は、ストア命令の処理は、マイクロプログラムの処理で
は、ストアデータが8バイト境界をクロスしない、クロ
スするにかかわらず。
ロプログラムによる処理を説明する図である。この場合
は、ストア命令の処理は、マイクロプログラムの処理で
は、ストアデータが8バイト境界をクロスしない、クロ
スするにかかわらず。
第2図に示すように、サイクルHa 1において8BX
ストアを行うのみとなる。ストアデータが8バイト境界
をクロスしない時は、データのメモリ書込み位置を指示
するマークをセットし、ストアを行う処理となり、lサ
イクルで処理は終了する。
ストアを行うのみとなる。ストアデータが8バイト境界
をクロスしない時は、データのメモリ書込み位置を指示
するマークをセットし、ストアを行う処理となり、lサ
イクルで処理は終了する。
また、ストアデータが8バイト境界をクロスする時のス
トア動作では、マークをセットし、1回目のストア動作
を行い、更に続いてアドレスセ・レクト、マークセレク
ト、ストアにより2回目のストア動作の処理となる。こ
の場合にも、マイクロプログラムの処理は、サイクルN
a 1の8BXストアの処理で終了しており、実効的に
はサイクルNo 2では別の次命令が実行される。
トア動作では、マークをセットし、1回目のストア動作
を行い、更に続いてアドレスセ・レクト、マークセレク
ト、ストアにより2回目のストア動作の処理となる。こ
の場合にも、マイクロプログラムの処理は、サイクルN
a 1の8BXストアの処理で終了しており、実効的に
はサイクルNo 2では別の次命令が実行される。
上述の例は、ストア命令の実行におけるものであるが、
ストア動作を含む十進演算命令のマイクロプログラム処
理においてもまた有効となる。
ストア動作を含む十進演算命令のマイクロプログラム処
理においてもまた有効となる。
第3図は、ストア動作を含む10進演算命令のマイクロ
プログラムによる処理を説明する図である。十進演算命
令としてAP命令を例として説明すると、AP命令の場
合、演算結果のストア動作では、8バイト境界をクロス
するかどうかの判定が不要となり、第3図に示すように
、10進演算と同一サイクル(サイクルNo2 )で8
8Xストアを発行して、命令を完了することができる。
プログラムによる処理を説明する図である。十進演算命
令としてAP命令を例として説明すると、AP命令の場
合、演算結果のストア動作では、8バイト境界をクロス
するかどうかの判定が不要となり、第3図に示すように
、10進演算と同一サイクル(サイクルNo2 )で8
8Xストアを発行して、命令を完了することができる。
このように、8バイト境界をクロスするかどうかにかか
わらず、命令の実行を2サイクルで終了することができ
、マイクロプログラム処理の命令サイクル数が低減でき
る。
わらず、命令の実行を2サイクルで終了することができ
、マイクロプログラム処理の命令サイクル数が低減でき
る。
以上に説明した実施例では、1回にストアを動作行なう
単位バイト数を8バイトとして説明したが、これに限定
されるものでなく、単位バイトが16バトイ、32バイ
トである場合にも同様に適用し得る。また、ここでは、
ストア命令、十進演算命令を例として説明したが、これ
に限らず、ストア動作を伴う他の命令にも同様に適用可
能である。
単位バイト数を8バイトとして説明したが、これに限定
されるものでなく、単位バイトが16バトイ、32バイ
トである場合にも同様に適用し得る。また、ここでは、
ストア命令、十進演算命令を例として説明したが、これ
に限らず、ストア動作を伴う他の命令にも同様に適用可
能である。
また、本実施例では、1回のストア動作の単位バイト数
とストアデータレジスタのバイト数を等しい例で説明し
たため、命令終了後にバイト境界をクロスしたストアは
1回のみ行なわれるが、特に、ス1〜ア動作の単位バイ
ト数よりもストアデータレジスタのバイト数の方が大き
い場合には、単位バイト境界に合せてスアア動作を行う
ストア動作と合せて、更に複数回のストア動作が行なわ
れることになる。この場合にも同様にして、後続する複
数回のストア動作を引き続いて連続して行うようにする
ことができ、ストア命令終了後に、いわわる「置いてき
ぼり」となるストア回数は1回に限るものではない。
とストアデータレジスタのバイト数を等しい例で説明し
たため、命令終了後にバイト境界をクロスしたストアは
1回のみ行なわれるが、特に、ス1〜ア動作の単位バイ
ト数よりもストアデータレジスタのバイト数の方が大き
い場合には、単位バイト境界に合せてスアア動作を行う
ストア動作と合せて、更に複数回のストア動作が行なわ
れることになる。この場合にも同様にして、後続する複
数回のストア動作を引き続いて連続して行うようにする
ことができ、ストア命令終了後に、いわわる「置いてき
ぼり」となるストア回数は1回に限るものではない。
更に、ここでの実施例におけるストア動作では。
8バイト境界をクロスした残りのストアを2回目のスト
アとして説明したため、アドレスの加算回路は+8とし
ているが、これに限らず、マイナスの減算回路や複数の
加算回路を持つ構成であってもよい。
アとして説明したため、アドレスの加算回路は+8とし
ているが、これに限らず、マイナスの減算回路や複数の
加算回路を持つ構成であってもよい。
以上、本発明を実施例にもとづき具体的に説明したが、
本発明は、前記実施例に限定されるものではなく、その
要旨を逸脱しない範囲において種々変更可能であること
は言うまでもない。
本発明は、前記実施例に限定されるものではなく、その
要旨を逸脱しない範囲において種々変更可能であること
は言うまでもない。
以上、説明したように、本発明によれば、単位バイト境
界をクロスするストアであっても、単位バイト境界を意
識せずにストアを行うことができるため、ストア命令、
十進演算命令等の命令でマイクロプログラム処理を変え
る必要がなくなり、処理ステップ数を低減することがで
きる。また、AP命令等の十進演算命令では8バイト境
界クロスのテストが不要になり、十進演算命令の処理性
能を向上できる。
界をクロスするストアであっても、単位バイト境界を意
識せずにストアを行うことができるため、ストア命令、
十進演算命令等の命令でマイクロプログラム処理を変え
る必要がなくなり、処理ステップ数を低減することがで
きる。また、AP命令等の十進演算命令では8バイト境
界クロスのテストが不要になり、十進演算命令の処理性
能を向上できる。
また1本発明によれば、ストアする結果が単位バイト境
界をクロスした場合でも、従来ストア動作に2サイクル
要していたところを実質的に1サイクルで終了すること
ができるため、ストア処理性能を向上できる。
界をクロスした場合でも、従来ストア動作に2サイクル
要していたところを実質的に1サイクルで終了すること
ができるため、ストア処理性能を向上できる。
第1図は、本発明の一実施例にががるストア処理方式を
一態様で実施するバッファ記憶周囲の回路構成を示すブ
ロック図、 第2図は、本発明の一実施例によるストア命令のマイク
ロプログラムによる処理を説明する図、第3図は、スト
ア動作を含む1o進演算命令のマイクロプログラムによ
る処理を説明する図、第4図は、データ処理装置の概略
の構成を示すブロック図、 第5図、第6図、および第7図は、ストア命令およびス
トア命令を含む1o進演算命令の各マイクロプログラム
処理の一例を示す図。 第8図は、ストア処理を説明するためのバッファ記憶周
囲の回路構成を示すブロック図である。 図中、1・・・アドレス制御回路、2・・・ストアアド
レスレジスタ、3・・・メモリリクエスト制御回路、4
・・・ストアデータレジスタ、5・・・ストアマーク制
御回路、6・・・ストアマークレジスタ、7・・・バッ
ファ記憶、8・・・ワークレジスタ、9・・・アライン
回路。 10・・・メモリ書込み回路、11・・・8バイトクロ
ス検出回路、12・・・8加算回路、13・・・デイレ
イ回路、14・・・待避マークレジスタ、15〜17・
・・セレクタ、41・・・命令ユニット、42・・・記
憶ユニット、43演算ユニツト、51・・アドレス制御
回路、52・・・ストアアドレスレジスタ、53・・・
メモリリクエスト制御回路、54・・・ストアデータレ
ジスタ。 55・・・ストアマーク制御回路、56・・・ストアマ
ークレジスタ、57・・・バッファ記憶、58・・ワー
クレジスタ、59・・・アライン回路、60・・・メモ
リ書込み回路。
一態様で実施するバッファ記憶周囲の回路構成を示すブ
ロック図、 第2図は、本発明の一実施例によるストア命令のマイク
ロプログラムによる処理を説明する図、第3図は、スト
ア動作を含む1o進演算命令のマイクロプログラムによ
る処理を説明する図、第4図は、データ処理装置の概略
の構成を示すブロック図、 第5図、第6図、および第7図は、ストア命令およびス
トア命令を含む1o進演算命令の各マイクロプログラム
処理の一例を示す図。 第8図は、ストア処理を説明するためのバッファ記憶周
囲の回路構成を示すブロック図である。 図中、1・・・アドレス制御回路、2・・・ストアアド
レスレジスタ、3・・・メモリリクエスト制御回路、4
・・・ストアデータレジスタ、5・・・ストアマーク制
御回路、6・・・ストアマークレジスタ、7・・・バッ
ファ記憶、8・・・ワークレジスタ、9・・・アライン
回路。 10・・・メモリ書込み回路、11・・・8バイトクロ
ス検出回路、12・・・8加算回路、13・・・デイレ
イ回路、14・・・待避マークレジスタ、15〜17・
・・セレクタ、41・・・命令ユニット、42・・・記
憶ユニット、43演算ユニツト、51・・アドレス制御
回路、52・・・ストアアドレスレジスタ、53・・・
メモリリクエスト制御回路、54・・・ストアデータレ
ジスタ。 55・・・ストアマーク制御回路、56・・・ストアマ
ークレジスタ、57・・・バッファ記憶、58・・ワー
クレジスタ、59・・・アライン回路、60・・・メモ
リ書込み回路。
Claims (1)
- 【特許請求の範囲】 1、マイクロプログラム制御により演算パイプライン制
御を行い、1回のストアを行う単位バイトが存在し、か
つその単位バイト境界にあわせてストアするストア処理
を行うデータ処理装置において、単位バイト境界をクロ
スするストアを行うとき、単位バイト境界の1回目のス
トアを実行した後に、ストア処理のマイクロプログラム
命令を終了させ、後続のマイクロプログラム命令の実行
開始と並行して、ストア処理の残り回数のストアを実行
することを特徴とするストア処理方式。 2、マイクロプログラム制御により演算パイプライン制
御を行い、演算にかかるストア処理を1回のストアを行
う単位バイトの単位バイト境界にあわせて行うデータ処
理装置において、ストアを行う際にストアデータの単位
バイト境界のクロスを検出する検出回路と、単位バイト
境界をクロスする後続ストアを行うストア制御データを
生成するハードウェア回路を備え、検出回路が単位バイ
トクロスを検出した時、ハードウェア回路からのストア
制御データにより単位バイト境界をクロスする後続スト
アを行い、単位バイト境界をクロスするストア処理であ
るか否かにかかわらず、ストア処理を同じマイクロプロ
グラム制御で処理することを特徴とするストア処理方式
。 3、ストア制御データは、ストアアドレス、ストアマー
ク、およびストアリクエストから構成され、ストア制御
データを生成するハードウェア回路は、ストアアドレス
を単位バイト境界分だけ順次に加算するアドレス加算回
路と、単位バイト境界のクロスした残りのストアマーク
を格納するストアマークレジスタと、ストアリクエスト
を連続して発行するストアリクエスト発行回路と、スト
ア制御データを選択して出力するセレクタとを備えるこ
とを特徴とする請求項2に記載の特徴とするストア処理
方式。 4、単位バイト境界は8バイト境界であり、検出回路は
ストアが8バイト境界をクロスするかどうかを検出する
回路であることを特徴とする請求項2に記載の特徴とす
るストア処理方式。 5、マイクロプログラム制御により演算パイプライン制
御を行い、演算にかかるストア処理を8バイト境界にあ
わせて順次に行うデータ処理装置において、ストアデー
タが8バイト境界をクロスするかどうかを検出する検出
回路と、ストアアドレスを順次に+8して送出するアド
レス加算回路と、メモリリクエストを複数回発行するた
めのリクエスト発行回路と、8バイト境界のクロスした
残りのストアマークを待避するストアマーク待避レジス
タを備え、マイクロプログラム処理では1回のストア要
求を行い、ストアが8バイト境界をクロスしない時は、
1回のメモリリクエトを発行し、ストアが8バトイ境界
をクロスした場合は、1回目のメモリリクエトに引き続
き、2回目のストアに必要なアドレス、データ、マーク
をセットし、2回目のメモリリクエストを発行して、ス
トア処理を行うことを特徴とするストア処理方式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33265090A JPH04199328A (ja) | 1990-11-29 | 1990-11-29 | ストア処理方式 |
US08/837,885 US6045207A (en) | 1990-01-30 | 1997-04-25 | Ink-jet recording apparatus and ink tank cartridge therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33265090A JPH04199328A (ja) | 1990-11-29 | 1990-11-29 | ストア処理方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04199328A true JPH04199328A (ja) | 1992-07-20 |
Family
ID=18257335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33265090A Pending JPH04199328A (ja) | 1990-01-30 | 1990-11-29 | ストア処理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04199328A (ja) |
-
1990
- 1990-11-29 JP JP33265090A patent/JPH04199328A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5168571A (en) | System for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data | |
US5625840A (en) | Programmable external storage control apparatus | |
JP2550921B2 (ja) | 環状バッファ制御装置 | |
JPH0348537B2 (ja) | ||
JPS58225443A (ja) | 高速デ−タ処理装置 | |
JP3005626B2 (ja) | データ処理システムおよびデータ転送方法 | |
JPH04199328A (ja) | ストア処理方式 | |
JPH09212360A (ja) | データ処理装置 | |
JPH0377137A (ja) | 情報処理装置 | |
JPH05257807A (ja) | キャッシュメモリ制御装置 | |
JP2583614B2 (ja) | ベクトル演算装置 | |
JPH09146769A (ja) | パイプライン処理装置 | |
JPS6221130B2 (ja) | ||
JPS6057440A (ja) | 情報処理装置 | |
JPH0462086B2 (ja) | ||
JPH01305452A (ja) | バッファ記憶装置のストア制御方式 | |
JPH01134530A (ja) | パイプライン制御装置 | |
JPH0417530B2 (ja) | ||
JPH08297583A (ja) | 割り込み処理装置およびその方法 | |
JPS6263349A (ja) | メモリアクセス制御方式 | |
JPH09106344A (ja) | パイプライン処理装置 | |
JPS61112237A (ja) | デ−タ処理装置 | |
JP2000276438A (ja) | Dmaデータ転送方法 | |
JPS5846444A (ja) | 電子計算機 | |
JPS6343782B2 (ja) |