JPH05210573A - アドレス生成方法 - Google Patents
アドレス生成方法Info
- Publication number
- JPH05210573A JPH05210573A JP1706992A JP1706992A JPH05210573A JP H05210573 A JPH05210573 A JP H05210573A JP 1706992 A JP1706992 A JP 1706992A JP 1706992 A JP1706992 A JP 1706992A JP H05210573 A JPH05210573 A JP H05210573A
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- output
- value
- bits
- 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
Landscapes
- Information Transfer Systems (AREA)
Abstract
(57)【要約】
【目的】 本発明は、データバスのビット幅より小なる
ビットのデータを連続して転送するためのアドレス生成
方法に関し、バス転送効率の向上及びアドレス生成の自
由度向上を目的とする。 【構成】 ストライド値が“1”のときはベースアドレ
スが上位側のデータアドレスであるか否か判定し(ステ
ップ102,103)、出力アドレスをベースアドレス
とし(ステップ104,113)、ストライド値に転送
データ幅を乗じた値を上記ベースアドレス(前回の出力
アドレス)に加算して新たな出力アドレスを生成する
(ステップ106,115)。これにより、64ビット
幅のデータバスで32ビットのデータを2個ずつ転送す
る。ストライド値が“−1”のときも上記と略同様の処
理を実行する(ステップ116〜125)。
ビットのデータを連続して転送するためのアドレス生成
方法に関し、バス転送効率の向上及びアドレス生成の自
由度向上を目的とする。 【構成】 ストライド値が“1”のときはベースアドレ
スが上位側のデータアドレスであるか否か判定し(ステ
ップ102,103)、出力アドレスをベースアドレス
とし(ステップ104,113)、ストライド値に転送
データ幅を乗じた値を上記ベースアドレス(前回の出力
アドレス)に加算して新たな出力アドレスを生成する
(ステップ106,115)。これにより、64ビット
幅のデータバスで32ビットのデータを2個ずつ転送す
る。ストライド値が“−1”のときも上記と略同様の処
理を実行する(ステップ116〜125)。
Description
【0001】
【産業上の利用分野】本発明はアドレス生成方法に係
り、特にデータバスのビット幅より小なるビットのデー
タを連続して転送するためのアドレス生成方法に関す
る。
り、特にデータバスのビット幅より小なるビットのデー
タを連続して転送するためのアドレス生成方法に関す
る。
【0002】例えば、図7に示す如くマイクロプロセッ
サ11と、このマイクロプロセッサ11にデータバス1
2、アドレスバス13を介して接続される外部メモリ1
4や周辺マイクロプロセッサ15等で構成されるシステ
ムにおいて、データバス12のビット幅の1/2倍より
小なるビットのデータが連続して存在している場合は、
それらのデータを同時に転送する方がデータバス12の
効率が良く、システムの性能の向上に寄与する。そこ
で、データバス12のビット幅より小なるビットのデー
タを同時に転送できるようなアドレスの生成方法が必要
とされる。
サ11と、このマイクロプロセッサ11にデータバス1
2、アドレスバス13を介して接続される外部メモリ1
4や周辺マイクロプロセッサ15等で構成されるシステ
ムにおいて、データバス12のビット幅の1/2倍より
小なるビットのデータが連続して存在している場合は、
それらのデータを同時に転送する方がデータバス12の
効率が良く、システムの性能の向上に寄与する。そこ
で、データバス12のビット幅より小なるビットのデー
タを同時に転送できるようなアドレスの生成方法が必要
とされる。
【0003】
【従来の技術】マイクロプロセッサ11によるアドレス
生成方法としては、従来は例えば図8(A)に模式的に
示す如く、基準となるアドレス(以下、「ベースアドレ
ス」という)Asと、1つ前に出力されたアドレスから
の距離(これはデータ数の整数倍でその単位を表わし、
以下、「ストライド」という)とに基づいて、(ストラ
イド)×(データ単位)でアドレスをインクリメントし
て生成する方法が知られている。
生成方法としては、従来は例えば図8(A)に模式的に
示す如く、基準となるアドレス(以下、「ベースアドレ
ス」という)Asと、1つ前に出力されたアドレスから
の距離(これはデータ数の整数倍でその単位を表わし、
以下、「ストライド」という)とに基づいて、(ストラ
イド)×(データ単位)でアドレスをインクリメントし
て生成する方法が知られている。
【0004】従って、この方法によれば、例えば、デー
タが64ビットでストライドが“1”のときには、出力
するアドレスは前に出力したアドレスに8バイト分のア
ドレスを加算した値となる。
タが64ビットでストライドが“1”のときには、出力
するアドレスは前に出力したアドレスに8バイト分のア
ドレスを加算した値となる。
【0005】
【発明が解決しようとする課題】しかし、データが図8
(B)に模式的に示す如く、ストライドが“1”又は
“−1”でデータが連続して存在している場合であっ
て、データ長が64ビット幅のデータバスの1/2倍の
32ビットの場合には、データを転送する時は2つのデ
ータを同時に(即ち64ビットにして)転送した方がデ
ータバス転送効率が良いにも拘らず、従来方法のように
1つ前に出力したアドレスに(ストライド値)×(1つ
前に出力したデータアドレス)を単に加算したものをア
ドレスとして生成したのでは2つのデータの同時転送が
できず、バス転送効率を向上できないという問題があ
る。また、アドレス生成の自由度が低いという問題もあ
る。
(B)に模式的に示す如く、ストライドが“1”又は
“−1”でデータが連続して存在している場合であっ
て、データ長が64ビット幅のデータバスの1/2倍の
32ビットの場合には、データを転送する時は2つのデ
ータを同時に(即ち64ビットにして)転送した方がデ
ータバス転送効率が良いにも拘らず、従来方法のように
1つ前に出力したアドレスに(ストライド値)×(1つ
前に出力したデータアドレス)を単に加算したものをア
ドレスとして生成したのでは2つのデータの同時転送が
できず、バス転送効率を向上できないという問題があ
る。また、アドレス生成の自由度が低いという問題もあ
る。
【0006】本発明は上記の点に鑑みなされたもので、
複数のデータの同時転送が可能なアドレス生成方法を提
供することを目的とする。
複数のデータの同時転送が可能なアドレス生成方法を提
供することを目的とする。
【0007】
【課題を解決するための手段】本発明のアドレス生成方
法は、ビット幅Nのデータバスにビット数がN/m(た
だし、mは2以上の整数)で、ストライド値が1又は−
1の連続するデータをm個ずつ同時に転送するためのア
ドレス生成方法であって、ベースアドレスがm個のデー
タの下位側アドレスと上位側アドレスのどちらから始ま
っているかを判定すると共に、前記ストライド値の値を
判定し、ベースアドレス及びストライド値の判定結果に
基づき、m個又はm−1個のデータを転送する出力アド
レスをまず生成し、以後前回の転送データの個数に応じ
てストライド値とN又はN/mを乗じた値を前回の出力
アドレスに加算した値を新たな出力アドレスとして生成
する。
法は、ビット幅Nのデータバスにビット数がN/m(た
だし、mは2以上の整数)で、ストライド値が1又は−
1の連続するデータをm個ずつ同時に転送するためのア
ドレス生成方法であって、ベースアドレスがm個のデー
タの下位側アドレスと上位側アドレスのどちらから始ま
っているかを判定すると共に、前記ストライド値の値を
判定し、ベースアドレス及びストライド値の判定結果に
基づき、m個又はm−1個のデータを転送する出力アド
レスをまず生成し、以後前回の転送データの個数に応じ
てストライド値とN又はN/mを乗じた値を前回の出力
アドレスに加算した値を新たな出力アドレスとして生成
する。
【0008】
【作用】本発明方法では、ベースアドレスが転送するm
個のデータの上位側アドレスか下位側アドレスのどちら
かから始まるかに応じて、かつ、ストライド値に応じて
最適なアドレスを生成できる。しかも、本発明方法はス
トライド値が“1”の場合だけでなく、“−1”の場合
のアドレスを生成することができる。
個のデータの上位側アドレスか下位側アドレスのどちら
かから始まるかに応じて、かつ、ストライド値に応じて
最適なアドレスを生成できる。しかも、本発明方法はス
トライド値が“1”の場合だけでなく、“−1”の場合
のアドレスを生成することができる。
【0009】
【実施例】図1は本発明方法の一実施例の動作説明用フ
ローチャートを示す。本実施例は図7において示したシ
ステムにおいてマイクロプロセッサ11により生成され
るアドレスの生成方法に関し、図2に示す如く、ビット
幅64ビットのデータバス(図7の12)に、ビット数
が64ビットのデータを1個、又はビット数が32ビッ
トのデータを2個同時に又は1個転送するためのアドレ
ス生成方法である。図1において、まずマイクロプロセ
ッサは32ビットデータのアクセスか否か判定し(ステ
ップ101)、32ビットデータのアクセスのときには
ストライド値を判定する(ステップ102)。ストライ
ド値には“1”と“−1”とそれ以外の値がある。
ローチャートを示す。本実施例は図7において示したシ
ステムにおいてマイクロプロセッサ11により生成され
るアドレスの生成方法に関し、図2に示す如く、ビット
幅64ビットのデータバス(図7の12)に、ビット数
が64ビットのデータを1個、又はビット数が32ビッ
トのデータを2個同時に又は1個転送するためのアドレ
ス生成方法である。図1において、まずマイクロプロセ
ッサは32ビットデータのアクセスか否か判定し(ステ
ップ101)、32ビットデータのアクセスのときには
ストライド値を判定する(ステップ102)。ストライ
ド値には“1”と“−1”とそれ以外の値がある。
【0010】そこで、まず、ステップ102でストライ
ド値が“1”と判定された場合のアドレス生成方法につ
いて図1及び図3と共に説明する。この場合はベースア
ドレスが上位側から始まっているか否か判定され(ステ
ップ103)。上位側から始まっているときには、図3
(A)にAB1で模式的に示す如く第1番目の出力アドレ
スをベースアドレスとして64ビットのデータ転送(す
なわち、四角数字の1と2で示す最初の2個の32ビッ
トデータの同時転送)を行なう(ステップ104)。
ド値が“1”と判定された場合のアドレス生成方法につ
いて図1及び図3と共に説明する。この場合はベースア
ドレスが上位側から始まっているか否か判定され(ステ
ップ103)。上位側から始まっているときには、図3
(A)にAB1で模式的に示す如く第1番目の出力アドレ
スをベースアドレスとして64ビットのデータ転送(す
なわち、四角数字の1と2で示す最初の2個の32ビッ
トデータの同時転送)を行なう(ステップ104)。
【0011】続いて、データ個数のカウンタを“2”デ
クリメントする(ステップ105)。このデータ個数の
カウンタは予め転送すべき総データ数がセットされてお
り、ステップ104で2個のデータ転送が行なわれたの
で、ステップ105で“2”デクリメントするのであ
る。
クリメントする(ステップ105)。このデータ個数の
カウンタは予め転送すべき総データ数がセットされてお
り、ステップ104で2個のデータ転送が行なわれたの
で、ステップ105で“2”デクリメントするのであ
る。
【0012】次に、ストライド値“1”に転送データ幅
である64ビット(データ長×カウンタのデクリメント
値)を乗じた値を上記のベースアドレスに加算して出力
アドレスを生成する(ステップ106)。続いて、デー
タ個数のカウンタが示す残りの転送データ数が“2”よ
り小であるか否か判定し(ステップ107)、“2”以
上のときにはステップ106で生成したアドレスに基づ
いて64ビット分のデータ転送が行なわれた後(ステッ
プ108)、データ個数カウンタの値を“2”デクリメ
ントすると共に、ベースアドレスを現在の出力アドレス
に更新する(ステップ109)。
である64ビット(データ長×カウンタのデクリメント
値)を乗じた値を上記のベースアドレスに加算して出力
アドレスを生成する(ステップ106)。続いて、デー
タ個数のカウンタが示す残りの転送データ数が“2”よ
り小であるか否か判定し(ステップ107)、“2”以
上のときにはステップ106で生成したアドレスに基づ
いて64ビット分のデータ転送が行なわれた後(ステッ
プ108)、データ個数カウンタの値を“2”デクリメ
ントすると共に、ベースアドレスを現在の出力アドレス
に更新する(ステップ109)。
【0013】続いて、データ個数のカウンタの値が
“0”か否か判定し(ステップ110)、“0”でない
ときには再びステップ106に戻り、ベースアドレス
に、ストライド値“1”と64ビットとを乗じた値を加
算して出力アドレスを生成する。以下、上記と同様にし
てステップ106〜110により前回の出力アドレス
(ここでは更新されたベースアドレス)に64ビットを
加算した値が新たな出力アドレスとして生成され、図3
(A)に丸数字に示す順番で、32ビットのデータは2
個ずつ転送されていく。
“0”か否か判定し(ステップ110)、“0”でない
ときには再びステップ106に戻り、ベースアドレス
に、ストライド値“1”と64ビットとを乗じた値を加
算して出力アドレスを生成する。以下、上記と同様にし
てステップ106〜110により前回の出力アドレス
(ここでは更新されたベースアドレス)に64ビットを
加算した値が新たな出力アドレスとして生成され、図3
(A)に丸数字に示す順番で、32ビットのデータは2
個ずつ転送されていく。
【0014】そして、残りのデータ数が1個になった場
合は、ステップ107から111へ進んでステップ10
6で生成した出力アドレスで11番目の32ビットのデ
ータ転送を行なう。ステップ110でデータ個数が
“0”と判定されたとき、又はステップ111で32ビ
ットのデータ転送が行なわれると、アドレス生成処理が
終了となる(ステップ112)。
合は、ステップ107から111へ進んでステップ10
6で生成した出力アドレスで11番目の32ビットのデ
ータ転送を行なう。ステップ110でデータ個数が
“0”と判定されたとき、又はステップ111で32ビ
ットのデータ転送が行なわれると、アドレス生成処理が
終了となる(ステップ112)。
【0015】次にストライド値が“1”であるが、ステ
ップ103でベースアドレスが下位側から始まっている
と判定された場合のアドレス生成方法について図1及び
図3(B)と共に説明する。この場合は図3(B)に模
式的に示す如く第1番目の出力アドレスをベースアドレ
スAB2としてまず1番目の32ビットのデータ転送を行
なう(ステップ113)。
ップ103でベースアドレスが下位側から始まっている
と判定された場合のアドレス生成方法について図1及び
図3(B)と共に説明する。この場合は図3(B)に模
式的に示す如く第1番目の出力アドレスをベースアドレ
スAB2としてまず1番目の32ビットのデータ転送を行
なう(ステップ113)。
【0016】続いて、データ個数カウンタを“1”デク
リメントした後(ステップ114)、データ長(ここで
は32ビット)と上記デクリメント値“1”との乗算値
である転送データ幅32ビットとストライド値“1”と
を乗算し、その乗算結果32ビットを上記ベースアドレ
スAB2に加算して第2番目の出力アドレスとして生成す
る(ステップ115)。
リメントした後(ステップ114)、データ長(ここで
は32ビット)と上記デクリメント値“1”との乗算値
である転送データ幅32ビットとストライド値“1”と
を乗算し、その乗算結果32ビットを上記ベースアドレ
スAB2に加算して第2番目の出力アドレスとして生成す
る(ステップ115)。
【0017】しかる後に、前記したステップ107〜1
11,106の処理が実行され、残りのデータ個数が2
個以上のときには32ビットのデータは2個ずつ転送さ
れ、また出力アドレスは前回の出力アドレスに64ビッ
トを加算した値を新たな出力アドレスとして生成され
る。これにより、図3(B)に示したデータは丸数字で
示す順番で転送されていく。
11,106の処理が実行され、残りのデータ個数が2
個以上のときには32ビットのデータは2個ずつ転送さ
れ、また出力アドレスは前回の出力アドレスに64ビッ
トを加算した値を新たな出力アドレスとして生成され
る。これにより、図3(B)に示したデータは丸数字で
示す順番で転送されていく。
【0018】次にステップ102でストライド値が“−
1”と判定され、ステップ116でベースアドレスが下
位側から始まっていると判定された場合のアドレス生成
方法について、図1及び図4(A)と共に説明する。こ
の場合は第1番目の出力アドレスはベースアドレスでは
なく、ベースアドレスから32ビットの上位側アドレス
を示す、図4(A)のAB3のアドレスとされ、このアド
レスAB3に基づき1番目と2番目の32ビットデータ2
個の転送が行なわれる(ステップ117)。
1”と判定され、ステップ116でベースアドレスが下
位側から始まっていると判定された場合のアドレス生成
方法について、図1及び図4(A)と共に説明する。こ
の場合は第1番目の出力アドレスはベースアドレスでは
なく、ベースアドレスから32ビットの上位側アドレス
を示す、図4(A)のAB3のアドレスとされ、このアド
レスAB3に基づき1番目と2番目の32ビットデータ2
個の転送が行なわれる(ステップ117)。
【0019】続いて、データ個数カウンタを“2”デク
リメントした後(ステップ118)、上記の第1の出力
アドレスAB3をベースアドレスとして更新し(ステップ
119)、データ個数カウンタの値が“2”未満である
か否か判定する(ステップ120)。データ個数カウン
タの値が“2”以上のときにはストライド値“−1”と
転送データ幅(64ビット)との乗算値を、更新したベ
ースアドレスに加算して出力アドレスを生成する(ステ
ップ121)。
リメントした後(ステップ118)、上記の第1の出力
アドレスAB3をベースアドレスとして更新し(ステップ
119)、データ個数カウンタの値が“2”未満である
か否か判定する(ステップ120)。データ個数カウン
タの値が“2”以上のときにはストライド値“−1”と
転送データ幅(64ビット)との乗算値を、更新したベ
ースアドレスに加算して出力アドレスを生成する(ステ
ップ121)。
【0020】すなわち、ステップ121では前回の出力
アドレスから64ビットを減算した値を新たな出力アド
レスとして生成する。この新たな出力アドレスに基づい
て32ビットデータ2個が転送されると共に、データ個
数カウンタが“2”デクリメントされた後(ステップ1
22)、データ個数カウンタが“0”であるか否か判定
される(ステップ123)。
アドレスから64ビットを減算した値を新たな出力アド
レスとして生成する。この新たな出力アドレスに基づい
て32ビットデータ2個が転送されると共に、データ個
数カウンタが“2”デクリメントされた後(ステップ1
22)、データ個数カウンタが“0”であるか否か判定
される(ステップ123)。
【0021】まだ、残りの転送データがあるときは、上
記のステップ119〜123により上位側のデータの先
頭バイトアドレスが出力アドレスとして生成されて32
ビットのデータが2個ずつ転送されていく。また残りの
転送データが1個となったときには、ステップ120か
らステップ124へ進み、ストライド値“−1”に1つ
のデータ長32ビットを乗じた値を前回の出力アドレス
(ベースアドレス)に加算した値を新たな出力アドレス
として生成する。そして、この出力アドレスに基づいて
図4(A)に示す如く7番目の32ビットの下位側デー
タの転送が行なわれる(ステップ125)。ステップ1
23又は125の処理後アドレス生成処理が終了となる
(ステップ126)。
記のステップ119〜123により上位側のデータの先
頭バイトアドレスが出力アドレスとして生成されて32
ビットのデータが2個ずつ転送されていく。また残りの
転送データが1個となったときには、ステップ120か
らステップ124へ進み、ストライド値“−1”に1つ
のデータ長32ビットを乗じた値を前回の出力アドレス
(ベースアドレス)に加算した値を新たな出力アドレス
として生成する。そして、この出力アドレスに基づいて
図4(A)に示す如く7番目の32ビットの下位側デー
タの転送が行なわれる(ステップ125)。ステップ1
23又は125の処理後アドレス生成処理が終了となる
(ステップ126)。
【0022】次に、ステップ102でストライド値が
“−1”と判定され、ステップ116でベースアドレス
が上位側から始まっていると判定された場合のアドレス
生成方法について、図1及び図4(B)と共に説明す
る。この場合は、第1番目の出力アドレスは図4(B)
にAB4で模式的に示すベースアドレスとして生成され、
1番目の32ビットのデータの転送を行なわせる(ステ
ップ127)。続いて、データ個数カウンタを“1”デ
クリメントした後(ステップ128)、ステップ119
以後の処理を行なう。
“−1”と判定され、ステップ116でベースアドレス
が上位側から始まっていると判定された場合のアドレス
生成方法について、図1及び図4(B)と共に説明す
る。この場合は、第1番目の出力アドレスは図4(B)
にAB4で模式的に示すベースアドレスとして生成され、
1番目の32ビットのデータの転送を行なわせる(ステ
ップ127)。続いて、データ個数カウンタを“1”デ
クリメントした後(ステップ128)、ステップ119
以後の処理を行なう。
【0023】従って、前記したように以後は図4(B)
に模式的に示すように上位側のデータの先頭バイトアド
レスが出力アドレスとして生成されて丸数字に示す順番
で32ビットのデータが2個ずつ転送されていく。
に模式的に示すように上位側のデータの先頭バイトアド
レスが出力アドレスとして生成されて丸数字に示す順番
で32ビットのデータが2個ずつ転送されていく。
【0024】なお、ステップ101で32ビットアクセ
スでないと判定されたとき、又はステップ102でスト
ライド値が“1”及び“−1”のいずれでもないと判定
されたときには、出力アドレスは従来と同様に、前回の
出力アドレスに、(ストライド値)×(転送データ幅)
の乗算値を加算した値が今回の出力アドレスとして生成
される(ステップ129)。
スでないと判定されたとき、又はステップ102でスト
ライド値が“1”及び“−1”のいずれでもないと判定
されたときには、出力アドレスは従来と同様に、前回の
出力アドレスに、(ストライド値)×(転送データ幅)
の乗算値を加算した値が今回の出力アドレスとして生成
される(ステップ129)。
【0025】このようにして、本実施例によれば、32
ビットデータを2個ずつ同時に64ビット幅のデータバ
スにより転送することができるため、バス転送効率を従
来に比し向上でき、また、データ転送順はアドレスが大
なる方から小なる方へも行なうことができるため、メモ
リなどの使用の自由度を大幅に増すことができる。
ビットデータを2個ずつ同時に64ビット幅のデータバ
スにより転送することができるため、バス転送効率を従
来に比し向上でき、また、データ転送順はアドレスが大
なる方から小なる方へも行なうことができるため、メモ
リなどの使用の自由度を大幅に増すことができる。
【0026】なお、ステップ103〜128の32ビッ
ト転送処理を、図5に示す回路によって行なうこともで
きる。同図中、比較器41はストライド値が“1”か否
か比較し、“1”のときのみ論理「1」の信号を出力す
る。比較器42はストライド値が“−1”か否か比較
し、“−1”のときのみ論理「1」の信号を出力する。
OR回路43は比較器41及び42のうち、どちらか一
方から論理“1”の信号が出力されたときのみ、連続す
るデータであると判断して論理「1」を出力する。
ト転送処理を、図5に示す回路によって行なうこともで
きる。同図中、比較器41はストライド値が“1”か否
か比較し、“1”のときのみ論理「1」の信号を出力す
る。比較器42はストライド値が“−1”か否か比較
し、“−1”のときのみ論理「1」の信号を出力する。
OR回路43は比較器41及び42のうち、どちらか一
方から論理“1”の信号が出力されたときのみ、連続す
るデータであると判断して論理「1」を出力する。
【0027】比較器44はデータ長が32ビットか否か
比較し、32ビットのときのみ論理「1」を出力する。
AND回路45はOR回路43及び比較器44の出力が
共に「1」であるときのみ、すなわち32ビットのデー
タがストライド値“1”又は“−1”で連続して存在し
ているときのみ論理「1」をデクリメント制御回路46
へ出力する。
比較し、32ビットのときのみ論理「1」を出力する。
AND回路45はOR回路43及び比較器44の出力が
共に「1」であるときのみ、すなわち32ビットのデー
タがストライド値“1”又は“−1”で連続して存在し
ているときのみ論理「1」をデクリメント制御回路46
へ出力する。
【0028】一方、比較器47はベースアドレスの下位
3ビットが“000”であるか否かを比較して、ベース
アドレスが上位側データのアドレスであるか否かの判定
結果をデクリメント制御回路46へ出力する。また、加
算回路48はベースアドレス49とデクリメント制御回
路46により制御されるアドレスストライド50とを加
算して出力アドレス51を生成し、それをベースアドレ
ス49として更新させる。
3ビットが“000”であるか否かを比較して、ベース
アドレスが上位側データのアドレスであるか否かの判定
結果をデクリメント制御回路46へ出力する。また、加
算回路48はベースアドレス49とデクリメント制御回
路46により制御されるアドレスストライド50とを加
算して出力アドレス51を生成し、それをベースアドレ
ス49として更新させる。
【0029】また、デクリメント制御回路46はデータ
転送が行なわれる毎に、残りのデータ個数を比較器52
へ出力し、ここでデータ個数が“1”であるか否か比較
させる。比較器52は残りデータ個数が“1”のときに
所定論理値をデクリメント制御回路46へ出力する。デ
クリメント制御回路46は残りデータ個数が“1”のと
きはアドレスストライド50を32ビットとする。
転送が行なわれる毎に、残りのデータ個数を比較器52
へ出力し、ここでデータ個数が“1”であるか否か比較
させる。比較器52は残りデータ個数が“1”のときに
所定論理値をデクリメント制御回路46へ出力する。デ
クリメント制御回路46は残りデータ個数が“1”のと
きはアドレスストライド50を32ビットとする。
【0030】また、図1のステップ129によるアドレ
ス生成は、図6の回路によっても実現できる。図6にお
いて、加算回路61はベースアドレス62に、ストライ
ド値とデータ長との乗算結果63を加算し、その加算結
果を出力アドレス64として生成する。この出力アドレ
ス64はベースアドレス62に更新され、以後上記と同
様の動作が繰り返される。第1番目の出力アドレス64
はベースアドレス62が出力アドレスとされる。
ス生成は、図6の回路によっても実現できる。図6にお
いて、加算回路61はベースアドレス62に、ストライ
ド値とデータ長との乗算結果63を加算し、その加算結
果を出力アドレス64として生成する。この出力アドレ
ス64はベースアドレス62に更新され、以後上記と同
様の動作が繰り返される。第1番目の出力アドレス64
はベースアドレス62が出力アドレスとされる。
【0031】
【発明の効果】上述の如く、本発明によれば、ベースア
ドレスが上位側か否かの判定結果とストライド値に応じ
て最適なアドレスを生成できるため、データバスのビッ
ト幅Nの1/m倍のビット数の連続するデータを、m個
ずつデータ転送させることができ、よってバス転送効率
を向上させることができ、またストライド値が“−1”
の場合にもアドレスを生成することができるため、メモ
リの領域の使用の自由度を従来に比し大幅に増すことが
できる等の特長を有するものである。
ドレスが上位側か否かの判定結果とストライド値に応じ
て最適なアドレスを生成できるため、データバスのビッ
ト幅Nの1/m倍のビット数の連続するデータを、m個
ずつデータ転送させることができ、よってバス転送効率
を向上させることができ、またストライド値が“−1”
の場合にもアドレスを生成することができるため、メモ
リの領域の使用の自由度を従来に比し大幅に増すことが
できる等の特長を有するものである。
【図1】本発明の一実施例の動作説明用タイムチャート
である。
である。
【図2】本発明方法の一実施例におけるデータサイズと
転送データ個数を示す図である。
転送データ個数を示す図である。
【図3】本発明の一実施例の要部の動作説明図である。
【図4】本発明の一実施例の他の要部の動作説明図であ
る。
る。
【図5】本発明の一実施例の要部を実現する回路図であ
る。
る。
【図6】ストライド付アドレス生成回路の一例のブロッ
ク図である。
ク図である。
【図7】本発明が適用されるシステムの構成図である。
【図8】従来方法の一例の説明図である。
11 マイクロプロセッサ 12 データバス 102 ストライド値判定ステップ 103,116 ベースアドレスの位置判定ステップ 106,115,121,124 出力アドレス生成ス
テップ
テップ
Claims (5)
- 【請求項1】 ビット幅Nのデータバス(12)にビッ
ト数がN/m(ただし、mは2以上の整数)で、ストラ
イド値が1又は−1の連続するデータをm個ずつ同時に
転送するためのアドレス生成方法であって、 ベースアドレスがm個のデータの下位側アドレスと上位
側アドレスのどちらから始まっているかを判定すると共
に、前記ストライド値の値を判定し、 該ベースアドレス及びストライド値の判定結果に基づ
き、m個又はm−1個のデータを転送する出力アドレス
をまず生成し、以後前回の転送データの個数に応じてス
トライド値とN又はN/mを乗じた値を前回の出力アド
レスに加算した値を新たな出力アドレスとして生成する
ことを特徴とするアドレス生成方法。 - 【請求項2】 前記データはビット数がN/2でストラ
イド値が1であり、 前記ベースアドレスが2個のデータの上位側アドレスか
ら始まっているときは、 第1番目の出力アドレスとして該ベースアドレスを出力
して2個のデータを同時に転送させ、以後前回の出力ア
ドレスにNビットを加算した値を新たな出力アドレスと
して生成することを特徴とする請求項1記載のアドレス
生成方法。 - 【請求項3】 前記データはビット数がN/2でストラ
イド値が1であり、 前記ベースアドレスが2個のデータの下位側アドレスか
ら始まっているときは、 第1番目の出力アドレスとして該ベースアドレスを出力
して1個のデータを転送させ、続いて第2番目の出力ア
ドレスとして該第1番目の出力アドレスにN/2ビット
を加算した値を生成し、以後前回の出力アドレスにNビ
ットを加算した値を新たな出力アドレスとして生成する
ことを特徴とする請求項1記載のアドレス生成方法。 - 【請求項4】 前記データはビット数がN/2でストラ
イド値が−1であり、前記ベースアドレスが2個のデー
タの上位側のアドレスから始まっているときは、第1番
目の出力アドレスとして該ベースアドレスを出力して1
個のデータを転送させ、以後前回の出力アドレスにNビ
ットを減算した値を新たな出力アドレスとして生成する
ことを特徴とする請求項1記載のアドレス生成方法。 - 【請求項5】 前記データはビット数がN/2でストラ
イド値が−1であり、前記ベースアドレスが2個のデー
タの下位側のアドレスから始まっているときは、第1番
目の出力アドレスとして該ベースアドレスからN/2ビ
ット減算した値を生成して2個のデータ転送を行なわ
せ、以後は前回の出力アドレスにNビットを減算した値
を新たな出力アドレスとして生成することを特徴とする
請求項1記載のアドレス生成方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1706992A JPH05210573A (ja) | 1992-01-31 | 1992-01-31 | アドレス生成方法 |
| US08/705,562 US5809552A (en) | 1992-01-29 | 1996-08-29 | Data processing system, memory access device and method including selecting the number of pipeline stages based on pipeline conditions |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1706992A JPH05210573A (ja) | 1992-01-31 | 1992-01-31 | アドレス生成方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05210573A true JPH05210573A (ja) | 1993-08-20 |
Family
ID=11933701
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1706992A Pending JPH05210573A (ja) | 1992-01-29 | 1992-01-31 | アドレス生成方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH05210573A (ja) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS56166551A (en) * | 1980-05-26 | 1981-12-21 | Toshiba Corp | Operation control |
| JPS5856164A (ja) * | 1981-09-30 | 1983-04-02 | Toshiba Corp | デ−タ処理装置 |
| JPS61214028A (ja) * | 1985-03-20 | 1986-09-22 | Hitachi Ltd | マイクロプログラム制御型計算機 |
| JPS63225837A (ja) * | 1987-03-13 | 1988-09-20 | Fujitsu Ltd | 距離付きベクトルアクセス方式 |
| JPS6482236A (en) * | 1987-09-25 | 1989-03-28 | Casio Computer Co Ltd | Variable length data transfer device |
-
1992
- 1992-01-31 JP JP1706992A patent/JPH05210573A/ja active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS56166551A (en) * | 1980-05-26 | 1981-12-21 | Toshiba Corp | Operation control |
| JPS5856164A (ja) * | 1981-09-30 | 1983-04-02 | Toshiba Corp | デ−タ処理装置 |
| JPS61214028A (ja) * | 1985-03-20 | 1986-09-22 | Hitachi Ltd | マイクロプログラム制御型計算機 |
| JPS63225837A (ja) * | 1987-03-13 | 1988-09-20 | Fujitsu Ltd | 距離付きベクトルアクセス方式 |
| JPS6482236A (en) * | 1987-09-25 | 1989-03-28 | Casio Computer Co Ltd | Variable length data transfer device |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2000056946A (ja) | デジタルアキュムレ―タおよび高速デジタル累算のための方法 | |
| US6049858A (en) | Modulo address generator with precomputed comparison and correction terms | |
| CN113783702A (zh) | 一种椭圆曲线数字签名与验签的硬件实现方法和系统 | |
| US5144577A (en) | Two-sum comparator | |
| JPH05210573A (ja) | アドレス生成方法 | |
| JPH04233629A (ja) | 先取り加算器 | |
| US6415311B1 (en) | Sign extension circuit and method for unsigned multiplication and accumulation | |
| US6321247B1 (en) | System and method for multiplication modulo (2N+1) | |
| US20030126177A1 (en) | Arithmetic unit and method thereof | |
| JPH0869372A (ja) | 2進乗算器 | |
| JP2991788B2 (ja) | 復号器 | |
| JP2907276B2 (ja) | 演算処理装置 | |
| JP3107930B2 (ja) | データメモリ装置 | |
| JP3206863B2 (ja) | コード変換方法及びコード変換器 | |
| JPH0580978A (ja) | 演算処理回路 | |
| JP3261742B2 (ja) | 丸め処理を含む冗長2進/2進変換回路 | |
| JP2753922B2 (ja) | 固定小数点除算方法 | |
| JP3210356B2 (ja) | データのゼロ判定装置 | |
| JPH0784755A (ja) | デジタル信号処理装置 | |
| JP3265856B2 (ja) | Dma転送装置 | |
| JPS59197920A (ja) | アドレス制御装置 | |
| JP3078696B2 (ja) | 逆数演算装置 | |
| JPS62196918A (ja) | 波形発生装置 | |
| JP2599984B2 (ja) | 入力データのピーク値検出回路 | |
| JPH10307710A (ja) | 剰余系演算方法及びその装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19980331 |