JPH05334178A - ループ状データ発生回路 - Google Patents
ループ状データ発生回路Info
- Publication number
- JPH05334178A JPH05334178A JP13848892A JP13848892A JPH05334178A JP H05334178 A JPH05334178 A JP H05334178A JP 13848892 A JP13848892 A JP 13848892A JP 13848892 A JP13848892 A JP 13848892A JP H05334178 A JPH05334178 A JP H05334178A
- Authority
- JP
- Japan
- Prior art keywords
- loop
- data
- value
- range
- output 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
- 230000000295 complement effect Effects 0.000 claims description 10
- 230000002194 synthesizing effect Effects 0.000 claims description 3
- 230000001143 conditioned effect Effects 0.000 abstract 2
- 238000001514 detection method Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 238000000034 method Methods 0.000 description 6
- 238000007796 conventional method Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Abstract
(57)【要約】
【目的】 回路規模が小さい、しかも、ループ状データ
(アドレスを含む)を高速に発生できるループ状データ
発生回路を実現する。 【構成】 データ空間の中でデータをループ状に順次発
生するループ範囲の幅を表すループ幅について、データ
空間の大きさの半分以下という条件を課す。また、相前
後する出力データ間のループ範囲内での相違量を表すオ
フセットについて、その絶対値がループ幅以下という条
件を課す。これにより現在の出力データにオフセットを
加算した加算値を次の出力データにできない場合の態様
が少なくなる。モジュール回路105は、加算値を次の
出力データにできない場合に対応する構成として、加算
値がループ範囲外の値になっていることを検出する範囲
内外検出手段203と、検出された場合に加算値を修正
して次の出力データを形成する加算値修正手段202と
を備えれば良い。
(アドレスを含む)を高速に発生できるループ状データ
発生回路を実現する。 【構成】 データ空間の中でデータをループ状に順次発
生するループ範囲の幅を表すループ幅について、データ
空間の大きさの半分以下という条件を課す。また、相前
後する出力データ間のループ範囲内での相違量を表すオ
フセットについて、その絶対値がループ幅以下という条
件を課す。これにより現在の出力データにオフセットを
加算した加算値を次の出力データにできない場合の態様
が少なくなる。モジュール回路105は、加算値を次の
出力データにできない場合に対応する構成として、加算
値がループ範囲外の値になっていることを検出する範囲
内外検出手段203と、検出された場合に加算値を修正
して次の出力データを形成する加算値修正手段202と
を備えれば良い。
Description
【0001】
【産業上の利用分野】本発明はループ状データ発生回路
に関し、例えば、デジタルシグナルプロセッサ(DS
P)のモジュールアドレス発生回路に適用し得るもので
ある。
に関し、例えば、デジタルシグナルプロセッサ(DS
P)のモジュールアドレス発生回路に適用し得るもので
ある。
【0002】
【従来の技術】連続する所定範囲のアドレス値の中か
ら、所定個数ずつ異なるアドレスを順次発生するループ
状アドレス発生回路(モジュールアドレス発生回路)が
DSP等に設けられている。
ら、所定個数ずつ異なるアドレスを順次発生するループ
状アドレス発生回路(モジュールアドレス発生回路)が
DSP等に設けられている。
【0003】図2は、従来のモジュールアドレス発生回
路の構成例を示すものである(文献『「ADSP−21
00/2100Aユーザーズ・マニュアル」ANALO
GDEVICES社発行』参照)。
路の構成例を示すものである(文献『「ADSP−21
00/2100Aユーザーズ・マニュアル」ANALO
GDEVICES社発行』参照)。
【0004】図2において、このモジュールアドレス発
生回路300は、Lレジスタ301、Mレジスタ30
2、Iレジスタ303、加算器304及びモジュール回
路305から構成されている。
生回路300は、Lレジスタ301、Mレジスタ30
2、Iレジスタ303、加算器304及びモジュール回
路305から構成されている。
【0005】Lレジスタ301は、アドレス空間におい
てループ状に発生する出力アドレスが取り得る値の連続
範囲(以下、ループ範囲と呼ぶ)の大きさ(以下、ルー
プ幅と呼ぶ)より1だけ小さい、外部から与えられた値
を格納するものである。Mレジスタ302は、次のアド
レスを現在のアドレスよりループ範囲内だけで数えて何
個先のアドレスとするかを規定する外部から与えられた
オフセット(アドレス更新値)を格納するものである。
このオフセットは2の補数データで与えられており、こ
れにより正順及び逆順の両方向への出力アドレスのルー
プ状変化が可能となっている。Iレジスタ303は、出
力アドレスを格納するものであり、出力アドレスの初期
値は外部から与えられてこのIレジスタ303に格納さ
れる。加算器304は、Mレジスタ302に格納されて
いるオフセットとIレジスタ303に格納されている直
前アドレスとを加算するものである。モジュール回路3
05は、Lレジスタ301やMレジスタ302に格納さ
れている情報に基づいて、加算器304からの値をその
まま出力アドレスにできるか否かを確認し、できれば加
算値をIレジスタ303に出力し、できなければ加算値
を修正して次の出力アドレスを形成してIレジスタ30
3に出力するものである。
てループ状に発生する出力アドレスが取り得る値の連続
範囲(以下、ループ範囲と呼ぶ)の大きさ(以下、ルー
プ幅と呼ぶ)より1だけ小さい、外部から与えられた値
を格納するものである。Mレジスタ302は、次のアド
レスを現在のアドレスよりループ範囲内だけで数えて何
個先のアドレスとするかを規定する外部から与えられた
オフセット(アドレス更新値)を格納するものである。
このオフセットは2の補数データで与えられており、こ
れにより正順及び逆順の両方向への出力アドレスのルー
プ状変化が可能となっている。Iレジスタ303は、出
力アドレスを格納するものであり、出力アドレスの初期
値は外部から与えられてこのIレジスタ303に格納さ
れる。加算器304は、Mレジスタ302に格納されて
いるオフセットとIレジスタ303に格納されている直
前アドレスとを加算するものである。モジュール回路3
05は、Lレジスタ301やMレジスタ302に格納さ
れている情報に基づいて、加算器304からの値をその
まま出力アドレスにできるか否かを確認し、できれば加
算値をIレジスタ303に出力し、できなければ加算値
を修正して次の出力アドレスを形成してIレジスタ30
3に出力するものである。
【0006】従って、以上の構成を有するモジュールア
ドレス発生回路300は、(1) 加算器304によってオ
フセットと直前アドレスを加算し、(2) モジュール回路
305が加算値を次の出力アドレスにできるか否かを確
認し、できる場合には加算値を次の出力アドレスとし、
できない場合には加算値から次の出力アドレスを形成
し、(3) このアドレスをIレジスタ303がラッチして
外部に出力する、という(1) 〜(3) の動作を繰返すこと
でループ状アドレスを順次発生する。
ドレス発生回路300は、(1) 加算器304によってオ
フセットと直前アドレスを加算し、(2) モジュール回路
305が加算値を次の出力アドレスにできるか否かを確
認し、できる場合には加算値を次の出力アドレスとし、
できない場合には加算値から次の出力アドレスを形成
し、(3) このアドレスをIレジスタ303がラッチして
外部に出力する、という(1) 〜(3) の動作を繰返すこと
でループ状アドレスを順次発生する。
【0007】次に、加算値をそのまま次の出力アドレス
とできない場合に行なうモジュール回路305の処理を
説明する。なお、従来回路の動作条件として、オフセッ
トがループ幅以下であるという条件があり、この条件下
ではモジュール回路305は、次の処理を行なう。な
お、処理(a) 及び(b) は処理(c) 及び(d) に対して優先
される。
とできない場合に行なうモジュール回路305の処理を
説明する。なお、従来回路の動作条件として、オフセッ
トがループ幅以下であるという条件があり、この条件下
ではモジュール回路305は、次の処理を行なう。な
お、処理(a) 及び(b) は処理(c) 及び(d) に対して優先
される。
【0008】(a) 加算器304の演算でキャリーが発生
した場合 加算器304の演算でキャリーが発生した場合には、次
の(1) 式を実行し、得られた値を次の出力アドレスとす
る。
した場合 加算器304の演算でキャリーが発生した場合には、次
の(1) 式を実行し、得られた値を次の出力アドレスとす
る。
【0009】 (直前アドレス+オフセット)−ループ幅 =加算値−(Lレジスタの格納値+1) …(1) 図3は、この場合の説明図であり、ループ範囲がアドレ
ス0(2進数では0000;以下2進数を必要に応じて
括弧書きで併記する)からアドレス12(1100)ま
でであってループ幅が13(1101)であり、オフセ
ットが6(0110;2の補数データ)の場合を示して
いる。ここで、直前アドレスが11(1011)である
と、オフセットを足した加算値は17(10001)と
なってキャリーが発生する。この加算値は、ループ範囲
外のアドレス13、14、15も6個のオフセット中に
カウントしているため、得られた加算値17(アドレス
となる下位4ビットは0001)を出力アドレスとする
ことはできず、ループ範囲外のアドレス個数3(001
1)分をさらに加算することを要する。ここで、加算値
17にループ範囲外のアドレス個数を加算することは、
ループ範囲とループ範囲外とでアドレス空間が形成され
ているので、加算値17からループ幅13を減算するこ
とと等価であり、従って、上記(1) 式によって出力アド
レスを計算でき、図3の例の場合には出力アドレスは4
(0100)となる。
ス0(2進数では0000;以下2進数を必要に応じて
括弧書きで併記する)からアドレス12(1100)ま
でであってループ幅が13(1101)であり、オフセ
ットが6(0110;2の補数データ)の場合を示して
いる。ここで、直前アドレスが11(1011)である
と、オフセットを足した加算値は17(10001)と
なってキャリーが発生する。この加算値は、ループ範囲
外のアドレス13、14、15も6個のオフセット中に
カウントしているため、得られた加算値17(アドレス
となる下位4ビットは0001)を出力アドレスとする
ことはできず、ループ範囲外のアドレス個数3(001
1)分をさらに加算することを要する。ここで、加算値
17にループ範囲外のアドレス個数を加算することは、
ループ範囲とループ範囲外とでアドレス空間が形成され
ているので、加算値17からループ幅13を減算するこ
とと等価であり、従って、上記(1) 式によって出力アド
レスを計算でき、図3の例の場合には出力アドレスは4
(0100)となる。
【0010】(b) 加算器304の演算でボローが発生し
た場合 加算器304の演算でボローが発生した場合には、次の
(2) 式を実行し、得られた値を出力アドレスとする。
た場合 加算器304の演算でボローが発生した場合には、次の
(2) 式を実行し、得られた値を出力アドレスとする。
【0011】 (直前アドレス+オフセット)+ループ幅 =加算値+(Lレジスタの格納値+1) …(2) 図4は、この場合の説明図であり、ループ範囲がアドレ
ス0(0000)からアドレス12(1100)までで
あってループ幅が13(1101)であり、オフセット
が−7(1001;2の補数データ)の場合を示してい
る。ここで、直前アドレスが1(0001)であると、
オフセットを足した加算値は−6(1010)となって
ボローが発生する。この加算値は、ループ範囲外のアド
レス−1、−2、−3も6個のオフセット中にカウント
しているため、得られた加算値−6を出力アドレスとす
ることはできず、ループ範囲外のアドレス個数3(00
11)分をさらに減算することを要する。ここで、加算
値−6からループ範囲外のアドレス個数を減算すること
は、ループ範囲とループ範囲外とでアドレス空間が形成
されているので、加算値−6にループ幅13を加算する
ことと等価であり、従って、上記(2) 式によって出力ア
ドレスを計算でき、図4の例の場合には出力アドレスは
7(0111)となる。
ス0(0000)からアドレス12(1100)までで
あってループ幅が13(1101)であり、オフセット
が−7(1001;2の補数データ)の場合を示してい
る。ここで、直前アドレスが1(0001)であると、
オフセットを足した加算値は−6(1010)となって
ボローが発生する。この加算値は、ループ範囲外のアド
レス−1、−2、−3も6個のオフセット中にカウント
しているため、得られた加算値−6を出力アドレスとす
ることはできず、ループ範囲外のアドレス個数3(00
11)分をさらに減算することを要する。ここで、加算
値−6からループ範囲外のアドレス個数を減算すること
は、ループ範囲とループ範囲外とでアドレス空間が形成
されているので、加算値−6にループ幅13を加算する
ことと等価であり、従って、上記(2) 式によって出力ア
ドレスを計算でき、図4の例の場合には出力アドレスは
7(0111)となる。
【0012】(c) 加算器304からの加算値がループ範
囲外の値の場合(正順ループ) 直前アドレスに正のオフセットを加算して得た加算値が
ループ範囲外の値になった場合には、次の(3) 式を実行
し、得られた値を出力アドレスとする。
囲外の値の場合(正順ループ) 直前アドレスに正のオフセットを加算して得た加算値が
ループ範囲外の値になった場合には、次の(3) 式を実行
し、得られた値を出力アドレスとする。
【0013】 (直前アドレス+オフセット)−ループ幅 =加算値−(Lレジスタの格納値+1) …(3) 図5は、この場合の説明図であり、ループ範囲がアドレ
ス0(0000)からアドレス12(1100)までで
あってループ幅が13(1101)であり、オフセット
が4(0100;2の補数データ)の場合を示してい
る。ここで、直前アドレスが10(1010)である
と、オフセットを足した加算値は14(1110)とな
ってループ範囲外の値が発生する。この加算値はループ
回転方向に数えてループ範囲外の2番目の値であり、こ
れをループ範囲内の値に戻す場合、ループ範囲内の先頭
アドレス0(0000)を1番目とした2番目のアドレ
ス1(0001)に戻せば良い。すなわち、ループ範囲
外の何番目の値かを求め、それより1小さい値を出力ア
ドレスとする。ループ範囲外の何番目の値かは、加算値
からループ範囲内の最大値(ループ幅−1)を減算すれ
ば良く、最終的な出力アドレスはこれより1小さいの
で、結局(3) 式に従って正確な出力アドレスを得ること
ができ、図5の例の場合には出力アドレスは1(000
1)となる。
ス0(0000)からアドレス12(1100)までで
あってループ幅が13(1101)であり、オフセット
が4(0100;2の補数データ)の場合を示してい
る。ここで、直前アドレスが10(1010)である
と、オフセットを足した加算値は14(1110)とな
ってループ範囲外の値が発生する。この加算値はループ
回転方向に数えてループ範囲外の2番目の値であり、こ
れをループ範囲内の値に戻す場合、ループ範囲内の先頭
アドレス0(0000)を1番目とした2番目のアドレ
ス1(0001)に戻せば良い。すなわち、ループ範囲
外の何番目の値かを求め、それより1小さい値を出力ア
ドレスとする。ループ範囲外の何番目の値かは、加算値
からループ範囲内の最大値(ループ幅−1)を減算すれ
ば良く、最終的な出力アドレスはこれより1小さいの
で、結局(3) 式に従って正確な出力アドレスを得ること
ができ、図5の例の場合には出力アドレスは1(000
1)となる。
【0014】(d) 加算器304からの加算値がループ範
囲外の値の場合(逆順ループ) 直前アドレスに負のオフセットを加算して得た加算値が
ループ範囲外の値になった場合には、次の(4) 式を実行
し、得られた値を出力アドレスとする。
囲外の値の場合(逆順ループ) 直前アドレスに負のオフセットを加算して得た加算値が
ループ範囲外の値になった場合には、次の(4) 式を実行
し、得られた値を出力アドレスとする。
【0015】 (直前アドレス+オフセット)+ループ幅 =加算値+(Lレジスタの格納値+1) …(4) 図6は、この場合の説明図であり、ループ範囲がアドレ
ス0(0000)からアドレス12(1100)までで
あってループ幅が13(1101)であり、オフセット
が−3(1101;2の補数データ)の場合を示してい
る。ここで、直前アドレスが1(0001)であると、
オフセットを足した加算値は−2(1110)となって
ループ範囲外の値である。この加算値はループ回転方向
に数えてループ範囲外の2番目の値であり、これをルー
プ範囲内の値に戻す場合、ループ範囲内の回転方向の先
頭アドレス−4(1100)から2番目のアドレス−5
(1011)に戻せば良い。すなわち、ループ範囲外の
何番目の値かを求め、それより1小さい値を出力アドレ
スとする。詳述は省略するが、これは(4) 式に従って演
算することとなり、図6の例の場合には出力アドレスは
−5=11(1011)となる。
ス0(0000)からアドレス12(1100)までで
あってループ幅が13(1101)であり、オフセット
が−3(1101;2の補数データ)の場合を示してい
る。ここで、直前アドレスが1(0001)であると、
オフセットを足した加算値は−2(1110)となって
ループ範囲外の値である。この加算値はループ回転方向
に数えてループ範囲外の2番目の値であり、これをルー
プ範囲内の値に戻す場合、ループ範囲内の回転方向の先
頭アドレス−4(1100)から2番目のアドレス−5
(1011)に戻せば良い。すなわち、ループ範囲外の
何番目の値かを求め、それより1小さい値を出力アドレ
スとする。詳述は省略するが、これは(4) 式に従って演
算することとなり、図6の例の場合には出力アドレスは
−5=11(1011)となる。
【0016】
【発明が解決しようとする課題】しかしながら、従来の
ループ状アドレス発生回路(モジュールアドレス発生回
路)においては、モジュール回路305は、加算器30
4からの出力(加算値、キャリー、ボロー)、Lレジス
タ301の格納内容(ループ幅−1)、Mレジスタ30
2の格納内容(オフセット)に基づいて、加算値をその
まま出力アドレスとできるか否かを判断すると共に、で
きない場合には上記(a) 〜(d) のいずれの場合に該当す
るかをに判別してそれに応じた処理を実行するので、モ
ジュール回路305の規模が大きくなってしまうという
欠点があった。
ループ状アドレス発生回路(モジュールアドレス発生回
路)においては、モジュール回路305は、加算器30
4からの出力(加算値、キャリー、ボロー)、Lレジス
タ301の格納内容(ループ幅−1)、Mレジスタ30
2の格納内容(オフセット)に基づいて、加算値をその
まま出力アドレスとできるか否かを判断すると共に、で
きない場合には上記(a) 〜(d) のいずれの場合に該当す
るかをに判別してそれに応じた処理を実行するので、モ
ジュール回路305の規模が大きくなってしまうという
欠点があった。
【0017】また、同様な理由によって、モジュール回
路305による演算時間が長くなって、アドレスの更新
周期も長くなってしまうという欠点があった。
路305による演算時間が長くなって、アドレスの更新
周期も長くなってしまうという欠点があった。
【0018】さらに、加算器304及びモジュール回路
305間が加算値についてアドレス幅と同じビット幅で
接続されていると、上述の処理(a) の場合のように、加
算器304の演算でオーバーフローが発生したときに、
加算器304の正常な演算結果をモジュール回路305
に与えることができず、上記(1) 式を正しく実行するこ
とができなくなる。これを防止しようとすると、加算器
304及びモジュール回路305間を加算値については
アドレス幅より1ビット多い幅で接続しなければなら
ず、キャリー線やボロー線まで含めれる接続線が多くな
り、それだけ回路規模が大きくなってしまう。
305間が加算値についてアドレス幅と同じビット幅で
接続されていると、上述の処理(a) の場合のように、加
算器304の演算でオーバーフローが発生したときに、
加算器304の正常な演算結果をモジュール回路305
に与えることができず、上記(1) 式を正しく実行するこ
とができなくなる。これを防止しようとすると、加算器
304及びモジュール回路305間を加算値については
アドレス幅より1ビット多い幅で接続しなければなら
ず、キャリー線やボロー線まで含めれる接続線が多くな
り、それだけ回路規模が大きくなってしまう。
【0019】以上、アドレスをループ状に発生する従来
回路における問題を述べたが、一般的なデータ(アドレ
ス以外のデータをいう)をループ状に発生する回路も、
上述した従来回路と同様な構成を有するので、同様な問
題が生じる。
回路における問題を述べたが、一般的なデータ(アドレ
ス以外のデータをいう)をループ状に発生する回路も、
上述した従来回路と同様な構成を有するので、同様な問
題が生じる。
【0020】本発明は、以上の点を考慮してなされたも
のであり、回路規模が小さい、しかも、ループ状データ
(それがアドレスとして用いられる場合を含む)を高速
に発生することができるループ状データ発生回路を提供
しようとするものである。
のであり、回路規模が小さい、しかも、ループ状データ
(それがアドレスとして用いられる場合を含む)を高速
に発生することができるループ状データ発生回路を提供
しようとするものである。
【0021】
【課題を解決するための手段】かかる課題を解決するた
め、本発明においては、データ空間の中で出力データを
ループ状に順次発生するループ範囲の幅を表すループ幅
の情報(ループ幅自体であっても良く、またループ幅に
所定数を加減算したものであっても良い)と、ループ状
データの初期値と、相前後する出力データ間のループ範
囲内での相違量を表すオフセットとが設定されて、ルー
プ範囲内でオフセットずつ異なるデータを順次出力する
ものであって、現在の出力データにオフセットを加算す
る加算器と、この加算器による加算値を次の出力データ
にできるか否かを確認してできない場合に加算値を修正
して次の出力データを形成するモジュール回路とを備え
たループ状データ発生回路において、以下の条件を課す
と共に、以下の各手段を設けた。
め、本発明においては、データ空間の中で出力データを
ループ状に順次発生するループ範囲の幅を表すループ幅
の情報(ループ幅自体であっても良く、またループ幅に
所定数を加減算したものであっても良い)と、ループ状
データの初期値と、相前後する出力データ間のループ範
囲内での相違量を表すオフセットとが設定されて、ルー
プ範囲内でオフセットずつ異なるデータを順次出力する
ものであって、現在の出力データにオフセットを加算す
る加算器と、この加算器による加算値を次の出力データ
にできるか否かを確認してできない場合に加算値を修正
して次の出力データを形成するモジュール回路とを備え
たループ状データ発生回路において、以下の条件を課す
と共に、以下の各手段を設けた。
【0022】すなわち、設定可能なループ幅がデータ空
間の大きさの半分以下という条件と、設定可能なオフセ
ットの絶対値がループ幅以下という条件を課した。
間の大きさの半分以下という条件と、設定可能なオフセ
ットの絶対値がループ幅以下という条件を課した。
【0023】また、モジュール回路の内部に、加算値を
次の出力データにできない場合に対応する構成として、
加算値がループ範囲外の値になっていることを検出する
範囲内外検出手段と、加算値がループ範囲外の値の場合
に、加算値がループ方向にみてループ範囲外の何番目の
値かに応じて加算値を修正して出力データを形成する加
算値修正手段とを設けた。
次の出力データにできない場合に対応する構成として、
加算値がループ範囲外の値になっていることを検出する
範囲内外検出手段と、加算値がループ範囲外の値の場合
に、加算値がループ方向にみてループ範囲外の何番目の
値かに応じて加算値を修正して出力データを形成する加
算値修正手段とを設けた。
【0024】ここで、オフセットを2の補数データで設
定することとし、出力データのループ方向が正逆いずれ
であっても対応することが好ましい。
定することとし、出力データのループ方向が正逆いずれ
であっても対応することが好ましい。
【0025】さらに、モジュール回路に、ループ範囲内
の全てのデータにおいて値が一致している上位ビット部
分のビット数と等しい、現在の出力データにおける上位
ビット部分の情報を含む上位情報データと、それより下
位ビット部分の情報を含む下位情報データとを形成する
現出力データ情報分離手段と、加算器又は加算値修正手
段から出力された次の出力データの下位情報データと現
出力データ情報分離手段から出力された上位情報データ
とから次の出力データを形成する上位下位合成手段とを
設けると共に、加算器、範囲内外検出手段及び加算値修
正手段が、現出力データ情報分離手段から出力された下
位情報データ又はこれから派生したデータにおいて有効
な下位ビット部分に対して処理を行なうようにすること
が好ましい。
の全てのデータにおいて値が一致している上位ビット部
分のビット数と等しい、現在の出力データにおける上位
ビット部分の情報を含む上位情報データと、それより下
位ビット部分の情報を含む下位情報データとを形成する
現出力データ情報分離手段と、加算器又は加算値修正手
段から出力された次の出力データの下位情報データと現
出力データ情報分離手段から出力された上位情報データ
とから次の出力データを形成する上位下位合成手段とを
設けると共に、加算器、範囲内外検出手段及び加算値修
正手段が、現出力データ情報分離手段から出力された下
位情報データ又はこれから派生したデータにおいて有効
な下位ビット部分に対して処理を行なうようにすること
が好ましい。
【0026】
【作用】次の出力データを形成しようとすると、現出力
データにオフセットを加算することを要するが、データ
空間の一部にループ範囲が設定されることが多いので、
加算値をそのまま次の出力データとすることができる場
合の外、次の出力データにできない場合も生じる。次の
出力データにできない場合が生じることは避けることが
できないが、この場合の態様が多ければ加算値を修正し
て次の出力データを形成する構成は多くの態様を考慮し
た構成となるので複雑となり、その結果、出力データの
発生周期も長くならざるを得ない。
データにオフセットを加算することを要するが、データ
空間の一部にループ範囲が設定されることが多いので、
加算値をそのまま次の出力データとすることができる場
合の外、次の出力データにできない場合も生じる。次の
出力データにできない場合が生じることは避けることが
できないが、この場合の態様が多ければ加算値を修正し
て次の出力データを形成する構成は多くの態様を考慮し
た構成となるので複雑となり、その結果、出力データの
発生周期も長くならざるを得ない。
【0027】そこで、本発明においては、設定可能なル
ープ幅がデータ空間の大きさの半分以下であるという条
件と、設定可能なオフセットの絶対値がループ幅以下で
あるという条件を課すこととし、加算値をそのまま次の
出力データとすることができない場合の態様を少なくす
ることとした。すなわち、加算値自体はループ範囲内の
値になるが、現出力データからループ範囲外のデータ個
数をも計数した加算値となっているような態様(図3や
図4参照)が生じることを排除している。従って、加算
値をそのまま次の出力データとすることができない場合
の態様は、加算値がループ範囲外の値になっているとき
だけである。
ープ幅がデータ空間の大きさの半分以下であるという条
件と、設定可能なオフセットの絶対値がループ幅以下で
あるという条件を課すこととし、加算値をそのまま次の
出力データとすることができない場合の態様を少なくす
ることとした。すなわち、加算値自体はループ範囲内の
値になるが、現出力データからループ範囲外のデータ個
数をも計数した加算値となっているような態様(図3や
図4参照)が生じることを排除している。従って、加算
値をそのまま次の出力データとすることができない場合
の態様は、加算値がループ範囲外の値になっているとき
だけである。
【0028】そこで、本発明においては、モジュール回
路の内部に、加算値を次の出力データにできない場合に
対応する構成として上述した態様だけを考慮し、加算値
がループ範囲外の値になっていることを検出する範囲内
外検出手段と、加算値がループ範囲外の値の場合に、加
算値がループ方向にみてループ範囲外の何番目の値かに
応じて加算値を修正して次の出力データを形成する加算
値修正手段とを設け、構成の簡単化及び出力データの発
生周期の短縮化を計った。
路の内部に、加算値を次の出力データにできない場合に
対応する構成として上述した態様だけを考慮し、加算値
がループ範囲外の値になっていることを検出する範囲内
外検出手段と、加算値がループ範囲外の値の場合に、加
算値がループ方向にみてループ範囲外の何番目の値かに
応じて加算値を修正して次の出力データを形成する加算
値修正手段とを設け、構成の簡単化及び出力データの発
生周期の短縮化を計った。
【0029】本発明は、出力データのループ方向(ルー
プ範囲を円とみなしたした場合の出力データの回転方
向)が1方向だけのループ状データ発生回路に適用でき
るだけでなく、オフセットを2の補数データで設定する
こととすれば、出力データのループ方向が正逆いずれで
あっても対応でき、必要に応じてこのようにすることが
好ましい。
プ範囲を円とみなしたした場合の出力データの回転方
向)が1方向だけのループ状データ発生回路に適用でき
るだけでなく、オフセットを2の補数データで設定する
こととすれば、出力データのループ方向が正逆いずれで
あっても対応でき、必要に応じてこのようにすることが
好ましい。
【0030】ループ幅やオフセットや出力データの初期
値の設定によっては、順次発生される出力データで常に
変化しない上位ビット部分がある。このような固定の上
位ビット部分に対しても一々演算すると、演算ミスが発
生する確率を高くすると共に、処理速度を遅くする可能
性がある。
値の設定によっては、順次発生される出力データで常に
変化しない上位ビット部分がある。このような固定の上
位ビット部分に対しても一々演算すると、演算ミスが発
生する確率を高くすると共に、処理速度を遅くする可能
性がある。
【0031】そこで、このようなことを考慮した場合に
は、モジュール回路に、ループ範囲内の全てのデータに
おいて値が一致している上位ビット部分のビット数と等
しい、現在の出力データにおける上位ビット部分の情報
を含む上位情報データと、それより下位ビット部分の情
報を含む下位情報データとを形成する現出力データ情報
分離手段と、加算器又は加算値修正手段から出力された
次の出力データの下位情報データと現出力データ情報分
離手段から出力された上位情報データとから次の出力デ
ータを形成する上位下位合成手段とを設けると共に、加
算器、範囲内外検出手段及び加算値修正手段が、現出力
データ情報分離手段から出力された下位情報データ又は
これから派生したデータにおいて有効な下位ビット部分
に対して処理を行なうようにすることが好ましい。
は、モジュール回路に、ループ範囲内の全てのデータに
おいて値が一致している上位ビット部分のビット数と等
しい、現在の出力データにおける上位ビット部分の情報
を含む上位情報データと、それより下位ビット部分の情
報を含む下位情報データとを形成する現出力データ情報
分離手段と、加算器又は加算値修正手段から出力された
次の出力データの下位情報データと現出力データ情報分
離手段から出力された上位情報データとから次の出力デ
ータを形成する上位下位合成手段とを設けると共に、加
算器、範囲内外検出手段及び加算値修正手段が、現出力
データ情報分離手段から出力された下位情報データ又は
これから派生したデータにおいて有効な下位ビット部分
に対して処理を行なうようにすることが好ましい。
【0032】
【実施例】以下、本発明をループ状アドレス発生回路に
適用した一実施例を図面を参照しながら詳述する。ここ
で、図1がこの実施例の構成を示すブロック図である。
適用した一実施例を図面を参照しながら詳述する。ここ
で、図1がこの実施例の構成を示すブロック図である。
【0033】図1において、このループ状アドレス発生
回路(モジュールアドレス発生回路)100は、Lレジ
スタ101、Mレジスタ102、Iレジスタ103、加
算器104及びモジュール回路105から構成されてい
る。
回路(モジュールアドレス発生回路)100は、Lレジ
スタ101、Mレジスタ102、Iレジスタ103、加
算器104及びモジュール回路105から構成されてい
る。
【0034】Lレジスタ101は、出力アドレスが取り
得るループ範囲のループ幅より1だけ小さい、外部から
与えられた値を格納するものである。Mレジスタ102
は、外部から与えられたオフセットを格納するものであ
り、このオフセットは2の補数データで与えられてい
る。これにより正順及び逆順の両方向へのアドレス変化
が可能となされている。Iレジスタ103は、出力アド
レスを格納するものである。なお、Iレジスタ103に
は、出力アドレスの初期値が外部から与えられるように
なされている。加算器104は、後述するような2入力
データを加算するものであり、次の出力アドレスの候補
値情報を形成するものである。モジュール回路105
は、ループ範囲やオフセット等を考慮して次の出力アド
レスを決定するものである。
得るループ範囲のループ幅より1だけ小さい、外部から
与えられた値を格納するものである。Mレジスタ102
は、外部から与えられたオフセットを格納するものであ
り、このオフセットは2の補数データで与えられてい
る。これにより正順及び逆順の両方向へのアドレス変化
が可能となされている。Iレジスタ103は、出力アド
レスを格納するものである。なお、Iレジスタ103に
は、出力アドレスの初期値が外部から与えられるように
なされている。加算器104は、後述するような2入力
データを加算するものであり、次の出力アドレスの候補
値情報を形成するものである。モジュール回路105
は、ループ範囲やオフセット等を考慮して次の出力アド
レスを決定するものである。
【0035】この実施例の場合、ループ幅及びオフセッ
トについて、次の条件が定められている。
トについて、次の条件が定められている。
【0036】条件1 ループ幅≦[アドレス空間の最大値/2]+1 但し、[x]はガウスの記号(xの小数点以下を切捨
て)を表す条件2 オフセットの絶対値≦ループ幅 条件1は、換言すると設定可能なループ幅がアドレス空
間の大きさの半分以下という条件であり、条件2は、設
定可能なオフセットの絶対値がループ幅以下という条件
である。このような条件1及び2は、後述するように、
加算器104の加算演算でキャリーやボローが生じるこ
と(図3及び図4参照)がないようにしたものであり、
モジュール回路105が行なう処理態様を従来より少な
くするための条件である。これによりモジュール回路1
05の簡単化及びアドレス更新周期の短縮化を実現でき
る。
て)を表す条件2 オフセットの絶対値≦ループ幅 条件1は、換言すると設定可能なループ幅がアドレス空
間の大きさの半分以下という条件であり、条件2は、設
定可能なオフセットの絶対値がループ幅以下という条件
である。このような条件1及び2は、後述するように、
加算器104の加算演算でキャリーやボローが生じるこ
と(図3及び図4参照)がないようにしたものであり、
モジュール回路105が行なう処理態様を従来より少な
くするための条件である。これによりモジュール回路1
05の簡単化及びアドレス更新周期の短縮化を実現でき
る。
【0037】因に、従来のループ状アドレス発生回路3
00におけるモジュール回路305においては、上述し
たようにモジュール回路305が加算結果に応じて切り
替える処理態様((a) 〜(d) )は4種類あったが、この
実施例の場合には2態様(図5及び図6参照)である。
00におけるモジュール回路305においては、上述し
たようにモジュール回路305が加算結果に応じて切り
替える処理態様((a) 〜(d) )は4種類あったが、この
実施例の場合には2態様(図5及び図6参照)である。
【0038】図7〜図9は、このような条件1及び2に
ついての意義の説明図である。これら図面は、アドレス
空間が4ビット幅の場合を示している。この場合、アド
レス空間の最大値は15(1111)であるので、条件
1によればループ幅は8以下であり、ループ幅を最大の
8とした場合には、そのループ幅(図7の斜線部分)は
図7に示すようにアドレス空間の半分の大きさとなる。
なお、図7の斜線部分以外の範囲をループ範囲とするこ
ともできる。このループ幅が最大の場合において(ルー
プ範囲外の幅が最小の場合において)、オフセットの絶
対値を最も大きくするとオフセットは8又は−8であ
る。図8は、オフセットが8であって直前出力アドレス
がループ範囲内で最も大きい値7(0111)の場合を
示しており、この場合に、直前出力アドレスにオフセッ
トを加算しても加算値はループ範囲外にあってループ範
囲外を通過してループ範囲内に進むことはない。すなわ
ち、従来の技術の項で説明した処理態様(a) が最も生じ
やすい状況を上記条件下で考えたとしても処理態様(a)
とはならない。図9は、従来の技術の項で説明した処理
態様(b) が最も生じやすい状況を上記条件下で考えた場
合であるが、この場合も処理態様(b) にはならない。
ついての意義の説明図である。これら図面は、アドレス
空間が4ビット幅の場合を示している。この場合、アド
レス空間の最大値は15(1111)であるので、条件
1によればループ幅は8以下であり、ループ幅を最大の
8とした場合には、そのループ幅(図7の斜線部分)は
図7に示すようにアドレス空間の半分の大きさとなる。
なお、図7の斜線部分以外の範囲をループ範囲とするこ
ともできる。このループ幅が最大の場合において(ルー
プ範囲外の幅が最小の場合において)、オフセットの絶
対値を最も大きくするとオフセットは8又は−8であ
る。図8は、オフセットが8であって直前出力アドレス
がループ範囲内で最も大きい値7(0111)の場合を
示しており、この場合に、直前出力アドレスにオフセッ
トを加算しても加算値はループ範囲外にあってループ範
囲外を通過してループ範囲内に進むことはない。すなわ
ち、従来の技術の項で説明した処理態様(a) が最も生じ
やすい状況を上記条件下で考えたとしても処理態様(a)
とはならない。図9は、従来の技術の項で説明した処理
態様(b) が最も生じやすい状況を上記条件下で考えた場
合であるが、この場合も処理態様(b) にはならない。
【0039】以上のように、上記条件下においては、従
来例で説明した処理態様(a) 及び(b) が生じることはな
く、モジュール回路105がこれら処理態様(a) 及び
(b) を考慮した構成とする必要はない。
来例で説明した処理態様(a) 及び(b) が生じることはな
く、モジュール回路105がこれら処理態様(a) 及び
(b) を考慮した構成とする必要はない。
【0040】なお、条件1は、上述したように、ループ
幅がアドレス空間の半分以下であると言い換えることが
できるが、実際上、ループ幅がアドレス空間の半分を越
えることはなく、このような条件を設定しても問題とな
ることはない。
幅がアドレス空間の半分以下であると言い換えることが
できるが、実際上、ループ幅がアドレス空間の半分を越
えることはなく、このような条件を設定しても問題とな
ることはない。
【0041】モジュール回路105は、マックス1検出
回路201、サブ加算器202、比較器203、2個の
アンド回路204及び205、オア回路206並びにセ
レクタ207から構成されている。
回路201、サブ加算器202、比較器203、2個の
アンド回路204及び205、オア回路206並びにセ
レクタ207から構成されている。
【0042】マックス1検出回路201は、Lレジスタ
101に格納されているループ幅情報(=ループ幅−
1)の論理が“1”であるビットの中で最も上位のビッ
トを検出するものであり、この検出結果に応じた2個の
マックス1検出データMax1(L)及びMax1(M) を形成す
る。マックス1検出データMax1(L) は、検出されたビッ
トを含めた下位側のビットを全て論理“1”にしたもの
であり、アンド回路205に入力される。他方のマック
ス1検出データMax1(M) は、マックス1検出データMax1
(L) の全ビットを反転したものであり、アンド回路20
4に入力される。これらマックス1検出データMax1(L)
及びMax1(M) は、出力アドレスで変化することがあるビ
ット位置(下位側)を明らかにしたものであり、逆に言
えば、出力アドレスで変化することがないビット位置
(上位側)を明らかにしたものである。
101に格納されているループ幅情報(=ループ幅−
1)の論理が“1”であるビットの中で最も上位のビッ
トを検出するものであり、この検出結果に応じた2個の
マックス1検出データMax1(L)及びMax1(M) を形成す
る。マックス1検出データMax1(L) は、検出されたビッ
トを含めた下位側のビットを全て論理“1”にしたもの
であり、アンド回路205に入力される。他方のマック
ス1検出データMax1(M) は、マックス1検出データMax1
(L) の全ビットを反転したものであり、アンド回路20
4に入力される。これらマックス1検出データMax1(L)
及びMax1(M) は、出力アドレスで変化することがあるビ
ット位置(下位側)を明らかにしたものであり、逆に言
えば、出力アドレスで変化することがないビット位置
(上位側)を明らかにしたものである。
【0043】例えば、Lレジスタ101にデータ000
01100が格納されていると、マックス1検出データ
Max1(L) は00001111となり、他方のマックス1
検出データMax1(M) は11110000となる。
01100が格納されていると、マックス1検出データ
Max1(L) は00001111となり、他方のマックス1
検出データMax1(M) は11110000となる。
【0044】アンド回路205は、Iレジスタ103に
格納されている現出力データとマックス1検出データMa
x1(L) とのビット毎の論理積をとるものである。従っ
て、このアンド回路205からの出力データは、変更さ
れることがあり得ない現出力アドレスの上位ビット側を
論理0に置き換えたものとなる。アンド回路204は、
Iレジスタ103に格納されている現出力アドレスとマ
ックス1検出データMax1(M) とのビット毎の論理積をと
るものである。従って、このアンド回路204からの出
力データは、変更されることがあり得る現出力データの
下位ビット側を論理0に置き換えたものとなる。
格納されている現出力データとマックス1検出データMa
x1(L) とのビット毎の論理積をとるものである。従っ
て、このアンド回路205からの出力データは、変更さ
れることがあり得ない現出力アドレスの上位ビット側を
論理0に置き換えたものとなる。アンド回路204は、
Iレジスタ103に格納されている現出力アドレスとマ
ックス1検出データMax1(M) とのビット毎の論理積をと
るものである。従って、このアンド回路204からの出
力データは、変更されることがあり得る現出力データの
下位ビット側を論理0に置き換えたものとなる。
【0045】例えば、Lレジスタ101にデータ000
01100が格納され、Iレジスタ103にデータ01
101011が格納されていると、マックス1検出デー
タMax1(L) が00001111となるのでアンド回路2
05からの出力データは“00001011”となり、
また、他方のマックス1検出データMax1(M) が1111
0000となるのでアンド回路204からの出力データ
は01100000となる。
01100が格納され、Iレジスタ103にデータ01
101011が格納されていると、マックス1検出デー
タMax1(L) が00001111となるのでアンド回路2
05からの出力データは“00001011”となり、
また、他方のマックス1検出データMax1(M) が1111
0000となるのでアンド回路204からの出力データ
は01100000となる。
【0046】アンド回路205からの出力データは加算
器104に与えられ、アンド回路204からの出力デー
タはオア回路206に与えられる。
器104に与えられ、アンド回路204からの出力デー
タはオア回路206に与えられる。
【0047】加算器104にはMレジスタ102に格納
されているオフセットも与えられるようになされてい
る。加算器104は、アンド回路05からの出力データ
にオフセットを加算して加算値を比較器203、サブ加
算器202及びセレクタ207に与える。なお、この実
施例の場合、ループ幅及びオフセットに対して上述した
条件を課しているので、ループ幅及びオフセットが条件
を満足する状態でどのように設定されても加算時にキャ
リーやボローが生じることはない。そのため、キャリー
やボローを他の回路に転送するための制御線は存在せ
ず、また、オーバーフローを考慮して加算値の出力線を
アドレス幅より1多くする必要もない。
されているオフセットも与えられるようになされてい
る。加算器104は、アンド回路05からの出力データ
にオフセットを加算して加算値を比較器203、サブ加
算器202及びセレクタ207に与える。なお、この実
施例の場合、ループ幅及びオフセットに対して上述した
条件を課しているので、ループ幅及びオフセットが条件
を満足する状態でどのように設定されても加算時にキャ
リーやボローが生じることはない。そのため、キャリー
やボローを他の回路に転送するための制御線は存在せ
ず、また、オーバーフローを考慮して加算値の出力線を
アドレス幅より1多くする必要もない。
【0048】また、加算時にキャリーやボローが生じる
ことがないことは、従来例における態様(a) 及び(b) の
処理を必要とする機会が生じないことを意味する。
ことがないことは、従来例における態様(a) 及び(b) の
処理を必要とする機会が生じないことを意味する。
【0049】比較器203には、Lレジスタ101に格
納されているデータ(=ループ幅−1)が与えられるよ
うになされている。比較器203は、加算値とLレジス
タ101の格納データとを大小比較し、加算値がLレジ
スタ101の格納データより大きいときに、セレクタ2
07にサブ加算器202からのサブ加算値を選択させ、
加算値がLレジスタ101の格納データ以下のときに、
セレクタ207に加算器104からの加算値を選択させ
る選択制御信号をセレクタ207に与える。この比較器
203による比較は、結局、加算器104からの加算値
がループ範囲内に属しているか否かを判断しているもの
である。
納されているデータ(=ループ幅−1)が与えられるよ
うになされている。比較器203は、加算値とLレジス
タ101の格納データとを大小比較し、加算値がLレジ
スタ101の格納データより大きいときに、セレクタ2
07にサブ加算器202からのサブ加算値を選択させ、
加算値がLレジスタ101の格納データ以下のときに、
セレクタ207に加算器104からの加算値を選択させ
る選択制御信号をセレクタ207に与える。この比較器
203による比較は、結局、加算器104からの加算値
がループ範囲内に属しているか否かを判断しているもの
である。
【0050】サブ加算器202は、加算器104からの
加算値がループ範囲外の場合に、その加算値をループ範
囲内の値に戻す演算を実行するものである。このサブ加
算器202には、加算器104からの加算値の外に、L
レジスタ101の格納データと、Mレジスタ102に格
納されているオフセットの最上位ビット(MSB)が与
えられている。
加算値がループ範囲外の場合に、その加算値をループ範
囲内の値に戻す演算を実行するものである。このサブ加
算器202には、加算器104からの加算値の外に、L
レジスタ101の格納データと、Mレジスタ102に格
納されているオフセットの最上位ビット(MSB)が与
えられている。
【0051】加算器104からの加算値がループ範囲外
になった場合でも、上述した従来例の場合と同様にルー
プ方向によって、加算値をループ範囲内のデータに戻す
処理を変えなければならない。上述したように、オフセ
ットは2の補数データとして与えられているので、オフ
セットの最上位ビット(MSB)は、ループ方向を規定
するものになっており、そのため、加算器104からの
加算値がループ範囲外になった場合に戻す処理演算を実
行するサブ加算器202にオフセットの最上位ビット
(MSB)が与えられるようになっている。
になった場合でも、上述した従来例の場合と同様にルー
プ方向によって、加算値をループ範囲内のデータに戻す
処理を変えなければならない。上述したように、オフセ
ットは2の補数データとして与えられているので、オフ
セットの最上位ビット(MSB)は、ループ方向を規定
するものになっており、そのため、加算器104からの
加算値がループ範囲外になった場合に戻す処理演算を実
行するサブ加算器202にオフセットの最上位ビット
(MSB)が与えられるようになっている。
【0052】サブ加算器202は、オフセットの最上位
ビット(MSB)に応じて、次の(5) 式又は(6) 式のい
ずれかの演算を実行する。
ビット(MSB)に応じて、次の(5) 式又は(6) 式のい
ずれかの演算を実行する。
【0053】オフセットのMSB≧0の場合 加算器104からの加算値−(Lレジスタ101の格納データ+1) …(5) オフセットのMSB<0の場合 加算器104からの加算値+(Lレジスタ101の格納データ+1) …(6) なお、これら演算によって、加算値をループ範囲内の値
に戻せることの理由は、従来例の処理態様(c) 及び(d)
の場合の理由と同様であるので、その説明は省略する。
に戻せることの理由は、従来例の処理態様(c) 及び(d)
の場合の理由と同様であるので、その説明は省略する。
【0054】例えば、サブ加算器202にフルアダー構
成の加算器を適用し、そのキャリー入力等を上手に利用
することで、(5) 式及び(6) 式が3項の演算であっても
実行することができる。すなわち、(5) 式及び(6) 式に
おける「1」部分の演算をそのための加算器によらずに
実行することができる。
成の加算器を適用し、そのキャリー入力等を上手に利用
することで、(5) 式及び(6) 式が3項の演算であっても
実行することができる。すなわち、(5) 式及び(6) 式に
おける「1」部分の演算をそのための加算器によらずに
実行することができる。
【0055】このような演算によって得られたサブ加算
値も、セレクタ207に与えられる。セレクタ207
は、比較器203からの選択制御信号に応じて、加算器
104からの加算値がループ範囲内のデータであるとき
にその加算値を選択し、加算器104からの加算値がル
ープ範囲外のデータであるときにサブ加算器202から
のサブ加算値を選択してオア回路206に与える。
値も、セレクタ207に与えられる。セレクタ207
は、比較器203からの選択制御信号に応じて、加算器
104からの加算値がループ範囲内のデータであるとき
にその加算値を選択し、加算器104からの加算値がル
ープ範囲外のデータであるときにサブ加算器202から
のサブ加算値を選択してオア回路206に与える。
【0056】オア回路206は、セレクタ207によっ
て選択されたデータとアンド回路204からのデータと
のビット毎の論理和を得てこれを出力アドレスとしてI
レジスタ103に与える。ここで、アンド回路204か
らのデータは、上述したように、変更されることがあり
得る現出力アドレスの下位ビット側を論理0に置き換え
たものであって変更されることがない上位ビット側につ
いては現出力アドレスの論理値を維持しているので、オ
ア回路206からの出力は、上位ビット側については現
出力アドレス(アンド回路204の出力)の論理値を選
択し、下位ビット側についてはセレクタ207からのデ
ータの論理値を選択したものとなる。
て選択されたデータとアンド回路204からのデータと
のビット毎の論理和を得てこれを出力アドレスとしてI
レジスタ103に与える。ここで、アンド回路204か
らのデータは、上述したように、変更されることがあり
得る現出力アドレスの下位ビット側を論理0に置き換え
たものであって変更されることがない上位ビット側につ
いては現出力アドレスの論理値を維持しているので、オ
ア回路206からの出力は、上位ビット側については現
出力アドレス(アンド回路204の出力)の論理値を選
択し、下位ビット側についてはセレクタ207からのデ
ータの論理値を選択したものとなる。
【0057】Iレジスタ103は、与えられた新たな
(次の)出力アドレスをラッチして出力すると共に、さ
らに次の出力アドレスを形成させるためにアンド回路2
04及び205に与える。
(次の)出力アドレスをラッチして出力すると共に、さ
らに次の出力アドレスを形成させるためにアンド回路2
04及び205に与える。
【0058】以上、この実施例によるモジュールアドレ
ス発生回路100の各部の機能を説明したが、上記説明
の流れは、出力アドレスがある値のときから次の出力ア
ドレスを形成するための一連の処理の流れにもなってい
る。
ス発生回路100の各部の機能を説明したが、上記説明
の流れは、出力アドレスがある値のときから次の出力ア
ドレスを形成するための一連の処理の流れにもなってい
る。
【0059】図10は図1の各部データの真理値を示す
図表であり、図11は図10に係るアドレス空間をルー
プ状に示したものである。以下、これら図10及び図1
1に基づいて、上記実施例の動作例を説明する。なお、
数値については2進数を用いて説明する。
図表であり、図11は図10に係るアドレス空間をルー
プ状に示したものである。以下、これら図10及び図1
1に基づいて、上記実施例の動作例を説明する。なお、
数値については2進数を用いて説明する。
【0060】図10及び図11は、アドレス幅が4ビッ
トであって、ループ幅として1000が指示され、オフ
セットとして0011が指示され、出力アドレスの初期
値として1000が指示された場合を示している。従っ
て、初期状態においては、図10の第1欄に記載のよう
に、Lレジスタ101、Mレジスタ102及びIレジス
タ103にはそれぞれ、0111、0011、1000
が格納される。なお、Lレジスタ101及びMレジスタ
102の格納値は、この条件下のアドレス発生が継続し
ている間だけ維持される。また、Lレジスタ101の格
納値0111が維持されるので、マックス1検出データ
Max1(L) 及びMax1(M) もそれぞれ、0111及び100
0に維持される。
トであって、ループ幅として1000が指示され、オフ
セットとして0011が指示され、出力アドレスの初期
値として1000が指示された場合を示している。従っ
て、初期状態においては、図10の第1欄に記載のよう
に、Lレジスタ101、Mレジスタ102及びIレジス
タ103にはそれぞれ、0111、0011、1000
が格納される。なお、Lレジスタ101及びMレジスタ
102の格納値は、この条件下のアドレス発生が継続し
ている間だけ維持される。また、Lレジスタ101の格
納値0111が維持されるので、マックス1検出データ
Max1(L) 及びMax1(M) もそれぞれ、0111及び100
0に維持される。
【0061】Iレジスタ103に1000が格納されて
いるため、各アンド回路204、205の出力は100
0、0000となる。その結果、加算器104は000
0+0011の演算を行ない、0011を出力する。比
較器203は、加算値0011の方がLレジスタ101
の格納データ0111より小さいので、セレクタ207
に加算値0011を選択させる。オア回路206はアン
ド回路204からのデータ1000とセレクタ207か
らのデータ0011とのビット毎の論理和1011をI
レジスタ103に出力して格納させる。Iレジスタ10
3に格納されたデータ1011が2番目の出力アドレス
として送出される。
いるため、各アンド回路204、205の出力は100
0、0000となる。その結果、加算器104は000
0+0011の演算を行ない、0011を出力する。比
較器203は、加算値0011の方がLレジスタ101
の格納データ0111より小さいので、セレクタ207
に加算値0011を選択させる。オア回路206はアン
ド回路204からのデータ1000とセレクタ207か
らのデータ0011とのビット毎の論理和1011をI
レジスタ103に出力して格納させる。Iレジスタ10
3に格納されたデータ1011が2番目の出力アドレス
として送出される。
【0062】このようにしてIレジスタ103に101
1が格納されると、図10の第2欄に示すように、各ア
ンド回路204、205の出力は1000、0011と
なる。その結果、加算器104は0011+0011の
演算を行ない、0110を出力する。比較器203は、
加算値0110の方がLレジスタ101の格納データ0
111より小さいので、セレクタ207に加算値011
0を選択させる。オア回路206はアンド回路204か
らのデータ1000とセレクタ207からのデータ01
10とのビット毎の論理和1110をIレジスタ103
に出力して格納させる。Iレジスタ103に格納された
データ1110が3番目の出力アドレスとして送出され
る。
1が格納されると、図10の第2欄に示すように、各ア
ンド回路204、205の出力は1000、0011と
なる。その結果、加算器104は0011+0011の
演算を行ない、0110を出力する。比較器203は、
加算値0110の方がLレジスタ101の格納データ0
111より小さいので、セレクタ207に加算値011
0を選択させる。オア回路206はアンド回路204か
らのデータ1000とセレクタ207からのデータ01
10とのビット毎の論理和1110をIレジスタ103
に出力して格納させる。Iレジスタ103に格納された
データ1110が3番目の出力アドレスとして送出され
る。
【0063】このようにしてIレジスタ103に111
0が格納されると、図10の第3欄に示すように、各ア
ンド回路204、205の出力は1000、0110と
なる。その結果、加算器104は0110+0011の
演算を行ない、1001を出力する。比較器203は、
加算値1001の方がLレジスタ101の格納データ0
111より大きいので、セレクタ207にサブ加算器2
02からのデータを選択させる。ここで、サブ加算器2
02からのデータは、加算値1001からLレジスタ1
01の格納値0111に0001を加えた値1000を
減算するので0001となる。オア回路206はアンド
回路204からのデータ1000とセレクタ207から
のデータ0001とのビット毎の論理和1001をIレ
ジスタ103に出力して格納させる。Iレジスタ103
に格納されたデータ1001が4番目の出力アドレスと
して送出される。
0が格納されると、図10の第3欄に示すように、各ア
ンド回路204、205の出力は1000、0110と
なる。その結果、加算器104は0110+0011の
演算を行ない、1001を出力する。比較器203は、
加算値1001の方がLレジスタ101の格納データ0
111より大きいので、セレクタ207にサブ加算器2
02からのデータを選択させる。ここで、サブ加算器2
02からのデータは、加算値1001からLレジスタ1
01の格納値0111に0001を加えた値1000を
減算するので0001となる。オア回路206はアンド
回路204からのデータ1000とセレクタ207から
のデータ0001とのビット毎の論理和1001をIレ
ジスタ103に出力して格納させる。Iレジスタ103
に格納されたデータ1001が4番目の出力アドレスと
して送出される。
【0064】以下、同様な処理がLレジスタ101及び
Mレジスタ102の格納値が変更されるまで繰返され、
ループ状アドレスが順次出力される。
Mレジスタ102の格納値が変更されるまで繰返され、
ループ状アドレスが順次出力される。
【0065】従って、上記実施例によれば、ループ幅及
びオフセットに対して上述した条件1及び2を設定した
ので、加算器104の出力をそのまま利用できない態様
が従来より少ない2態様だけとなり、そのため、このよ
うな特殊な態様に応じる構成が従来より簡単になる。構
成が簡単になった結果、出力アドレス周期を短縮するこ
ともできる。
びオフセットに対して上述した条件1及び2を設定した
ので、加算器104の出力をそのまま利用できない態様
が従来より少ない2態様だけとなり、そのため、このよ
うな特殊な態様に応じる構成が従来より簡単になる。構
成が簡単になった結果、出力アドレス周期を短縮するこ
ともできる。
【0066】また、加算器104がオーバーフローする
ことがなく、また、キャリーやボローを出力することが
ないので、加算器104との接続線も従来より少なくな
り、この点からも構成を簡単なものとすることができ
る。
ことがなく、また、キャリーやボローを出力することが
ないので、加算器104との接続線も従来より少なくな
り、この点からも構成を簡単なものとすることができ
る。
【0067】さらに、上記実施例によれば、ループ状の
出力アドレスとして論理値が変化することがある下位ビ
ット部分に対してのみ演算を行なうようにしたので、演
算ミスが発生する確率を低くすると共に、処理速度をこ
の点からも高めることができる。
出力アドレスとして論理値が変化することがある下位ビ
ット部分に対してのみ演算を行なうようにしたので、演
算ミスが発生する確率を低くすると共に、処理速度をこ
の点からも高めることができる。
【0068】なお、上記実施例においては、正逆どちら
の方向にも出力アドレスを変化させることができるもの
を示したが、一方向だけのループ状アドレス発生回路に
も本発明を適用することができる。
の方向にも出力アドレスを変化させることができるもの
を示したが、一方向だけのループ状アドレス発生回路に
も本発明を適用することができる。
【0069】また、上記実施例においては、ループ状の
出力アドレスとして論理値が変化することがある下位ビ
ット部分に対してのみ演算を行なうものを示したが、論
理値が変化しない上位ビット部分を含めた全体に対して
演算を行なうようにしても良い。
出力アドレスとして論理値が変化することがある下位ビ
ット部分に対してのみ演算を行なうものを示したが、論
理値が変化しない上位ビット部分を含めた全体に対して
演算を行なうようにしても良い。
【0070】さらに、上記実施例においては、アドレス
をループ状に発生するものを示したが、アドレス以外の
一般的なデータをハードウェア的にループ状に発生する
ものに対しても本発明を適用することができる。なお、
特許請求の範囲における「出力データ」という用語にお
けるデータは、アドレス及びこれ以外のデータの双方を
含むものである。
をループ状に発生するものを示したが、アドレス以外の
一般的なデータをハードウェア的にループ状に発生する
ものに対しても本発明を適用することができる。なお、
特許請求の範囲における「出力データ」という用語にお
けるデータは、アドレス及びこれ以外のデータの双方を
含むものである。
【0071】さらにまた、上記実施例のIレジスタから
出力されたアドレスにループ範囲についてのオフセット
を加算するようにして、出力アドレスに係るループ範囲
の自由度を高めるようにしても良い。
出力されたアドレスにループ範囲についてのオフセット
を加算するようにして、出力アドレスに係るループ範囲
の自由度を高めるようにしても良い。
【0072】
【発明の効果】以上のように、本発明によれば、設定可
能なループ幅がデータ空間の大きさの半分以下という条
件と、設定可能なオフセットの絶対値がループ幅以下と
いう条件を課すと共に、モジュール回路の内部に、加算
値を次の出力データにできない場合に対応する構成とし
て、加算値がループ範囲外の値になっていることを検出
する範囲内外検出手段と、加算値がループ範囲外の値の
場合に、加算値がループ方向にみてループ範囲外の何番
目の値かに応じて加算値を修正して出力データを形成す
る加算値修正手段とを設けたので、回路規模が小さい、
しかも、ループ状データを高速に発生することができる
ループ状データ発生回路を実現できる。
能なループ幅がデータ空間の大きさの半分以下という条
件と、設定可能なオフセットの絶対値がループ幅以下と
いう条件を課すと共に、モジュール回路の内部に、加算
値を次の出力データにできない場合に対応する構成とし
て、加算値がループ範囲外の値になっていることを検出
する範囲内外検出手段と、加算値がループ範囲外の値の
場合に、加算値がループ方向にみてループ範囲外の何番
目の値かに応じて加算値を修正して出力データを形成す
る加算値修正手段とを設けたので、回路規模が小さい、
しかも、ループ状データを高速に発生することができる
ループ状データ発生回路を実現できる。
【図1】実施例の全体構成を示すブロック図である。
【図2】従来回路の全体構成を示すブロック図である。
【図3】従来回路の特殊処理態様の説明図(その1)で
ある。
ある。
【図4】従来回路の特殊処理態様の説明図(その2)で
ある。
ある。
【図5】従来回路の特殊処理態様の説明図(その3)で
ある。
ある。
【図6】従来回路の特殊処理態様の説明図(その4)で
ある。
ある。
【図7】実施例の設定データに対する条件の意義説明図
(その1)である。
(その1)である。
【図8】実施例の設定データに対する条件の意義説明図
(その2)である。
(その2)である。
【図9】実施例の設定データに対する条件の意義説明図
(その3)である。
(その3)である。
【図10】実施例の動作例の各部データの真理値を示す
図表である。
図表である。
【図11】図10に係る出力アドレス変化をループ状に
示す説明図である。
示す説明図である。
100…ループ状アドレス発生回路(モジュールアドレ
ス発生回路)、101…Lレジスタ、102…Mレジス
タ、103…Iレジスタ、104…加算器、105…モ
ジュール回路、201…マックス1検出回路、202…
サブ加算器、203…比較器、204、205…アンド
回路、206…オア回路。
ス発生回路)、101…Lレジスタ、102…Mレジス
タ、103…Iレジスタ、104…加算器、105…モ
ジュール回路、201…マックス1検出回路、202…
サブ加算器、203…比較器、204、205…アンド
回路、206…オア回路。
Claims (3)
- 【請求項1】 データ空間の中でデータをループ状に順
次発生するループ範囲の幅を表すループ幅の情報と、ル
ープ状データの初期値と、相前後する出力データ間のル
ープ範囲内での相違量を表すオフセットとが設定され
て、ループ範囲内でオフセットずつ異なるデータを順次
出力するものであって、現在の出力データにオフセット
を加算する加算器と、この加算器による加算値を次の出
力データにできるか否かを確認してできない場合に加算
値を修正して次の出力データを形成するモジュール回路
とを備えたループ状データ発生回路において、 設定可能なループ幅がデータ空間の大きさの半分以下と
いう条件と、設定可能なオフセットの絶対値がループ幅
以下という条件を課すと共に、 上記モジュール回路が、 上記加算値を次の出力データにできない場合に対応する
構成として、 上記加算値がループ範囲外の値になっていることを検出
する範囲内外検出手段と、上記加算値がループ範囲外の
値の場合に、加算値がループ方向にみてループ範囲外の
何番目の値かに応じて加算値を修正して次の出力データ
を形成する加算値修正手段とを備えたことを特徴とする
ループ状データ発生回路。 - 【請求項2】 上記オフセットを2の補数データで設定
し、出力データのループ方向が正逆いずれであっても対
応することを特徴とした請求項1に記載のループ状デー
タ発生回路。 - 【請求項3】 上記モジュール回路が、ループ範囲内の
全てのデータにおいて値が一致している上位ビット部分
のビット数と等しい、現在の出力データにおける上位ビ
ット部分の情報を含む上位情報データと、それより下位
ビット部分の情報を含む下位情報データとを形成する現
出力データ情報分離手段と、上記加算器又は上記加算値
修正手段から出力された次の出力データの下位情報デー
タと上記現出力データ情報分離手段から出力された上位
情報データとから次の出力データを形成する上位下位合
成手段とを備えると共に、 上記加算器、上記範囲内外検出手段及び上記加算値修正
手段が、上記現出力データ情報分離手段から出力された
下位情報データ又はこれから派生したデータにおいて有
効な下位ビット部分に対して処理を行なうことを特徴と
した請求項1又は2に記載のループ状データ発生回路。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP13848892A JPH05334178A (ja) | 1992-05-29 | 1992-05-29 | ループ状データ発生回路 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP13848892A JPH05334178A (ja) | 1992-05-29 | 1992-05-29 | ループ状データ発生回路 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05334178A true JPH05334178A (ja) | 1993-12-17 |
Family
ID=15223275
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP13848892A Pending JPH05334178A (ja) | 1992-05-29 | 1992-05-29 | ループ状データ発生回路 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH05334178A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2000033194A1 (en) * | 1998-11-27 | 2000-06-08 | Matsushita Electric Industrial Co., Ltd. | Address generating device and moving vector detecting device |
| JP2008537620A (ja) * | 2005-03-21 | 2008-09-18 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | サーキュラー・バッファ・メモリを用いて蛇行走査順序でデータ・アレイを処理する方法 |
-
1992
- 1992-05-29 JP JP13848892A patent/JPH05334178A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2000033194A1 (en) * | 1998-11-27 | 2000-06-08 | Matsushita Electric Industrial Co., Ltd. | Address generating device and moving vector detecting device |
| US6662288B1 (en) | 1998-11-27 | 2003-12-09 | Matsushita Electric Industrial Co., Ltd. | Address generating apparatus and motion vector detector |
| JP2008537620A (ja) * | 2005-03-21 | 2008-09-18 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | サーキュラー・バッファ・メモリを用いて蛇行走査順序でデータ・アレイを処理する方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6049903A (en) | Digital data error detection and correction system | |
| US5936870A (en) | Arithmetic operating device for digital signal processing and method therefor | |
| US5043990A (en) | Semiconductor integrated circuit device | |
| JP2585649B2 (ja) | 除算回路 | |
| US5202954A (en) | Digital fuzzy apparatus having simplified barycentral operation arrangement | |
| US5113362A (en) | Integrated interpolator and method of operation | |
| US5325321A (en) | High speed parallel multiplication circuit having a reduced number of gate stages | |
| US4224680A (en) | Parity prediction circuit for adder/counter | |
| US5376915A (en) | Absolute value comparing apparatus for comparing absolute values of data at high speed | |
| EP0431576A2 (en) | BCH code decoder and method for decoding a BCH code | |
| JPH05334178A (ja) | ループ状データ発生回路 | |
| US4761757A (en) | Carry-save-adder three binary dividing apparatus | |
| US5974436A (en) | Execution processor for carrying out power calculation | |
| JPH09222991A (ja) | 加算方法および加算器 | |
| JP2766133B2 (ja) | パラレル・シリアル・データ変換回路 | |
| US4860235A (en) | Arithmetic unit with alternate mark inversion (AMI) coding | |
| JP2541758B2 (ja) | 剰余算出回路 | |
| US5031137A (en) | Two input bit-serial multiplier | |
| JP3260630B2 (ja) | 定数除算器及び定数除算方法 | |
| JP2509279B2 (ja) | 浮動小数点数一固定小数点数変換装置 | |
| JP2991788B2 (ja) | 復号器 | |
| US5983250A (en) | Arithmetic circuit for obtaining absolute-valued distance | |
| JP3207997B2 (ja) | データ変換装置 | |
| JP3595309B2 (ja) | アドレス生成回路 | |
| JP2864598B2 (ja) | ディジタル演算回路 |