JPH07168753A - モジュロ加算回路およびその動作方法 - Google Patents

モジュロ加算回路およびその動作方法

Info

Publication number
JPH07168753A
JPH07168753A JP6226334A JP22633494A JPH07168753A JP H07168753 A JPH07168753 A JP H07168753A JP 6226334 A JP6226334 A JP 6226334A JP 22633494 A JP22633494 A JP 22633494A JP H07168753 A JPH07168753 A JP H07168753A
Authority
JP
Japan
Prior art keywords
value
modulo
bit
adder circuit
circuit
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
Application number
JP6226334A
Other languages
English (en)
Inventor
Shiyuridouhaa Abadani
アバダニ・シュリドゥハー
Jieemuzu Goonii Dagurasu
ダグラス・ジェームズ・ゴーニィ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPH07168753A publication Critical patent/JPH07168753A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3552Indexed addressing using wraparound, e.g. modulo or circular addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/106Details of pointers, i.e. structure of the address generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【目的】 回路量の点で効率の良いモジュロ加算を可能
にする。 【構成】 モジュロ加算回路は、下限値と上限値を持つ
所定の範囲内で一連の値を生成する。モジュロ加算回路
は、先に定義した開始値に偏位値DISPを加算するこ
とにより第1の値を生成し、この第1の値に対してモジ
ュロ値を加算または減算することにより第2の値を生成
する。第1と第2の値は単一のアドレス回路を用いて1
回の計算サイクルで生成される。生成された第1の値が
下限値と上限値で定義された範囲にある時、モジュロ加
算回路はその第1の値を出力し、それ以外の場合には、
第2の値を出力する。モジュロ加算回路で出力された値
はレジスタに格納され、次の計算サイクルで開始値とし
て利用できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的には、マイクロ
プロセッサおよびディジタル信号処理プロセッサに対す
るアドレス生成回路に関し、詳細には、モジュロ加算を
用いて一連のアドレス値を生成するように特化された回
路に関する。
【0002】
【従来の技術】ディジタル信号処理プロセッサ上で行わ
れる計算処理では、モジュロ加算を用いたアドレス値の
生成が必要となることが多い。モジュロ・アドレシング
(アドレス生成法またはアドレス指定法)の背後にある
基本概念は、アドレスはある偏位で加算または減算され
てゆき、上限または下限に達すると、その時点で、使用
されているアドレス範囲の他端へと「循環」(wrap arou
nd) されるというものである。
【0003】例えば、開始アドレスが101、偏位が1
0、指定のアドレス範囲が100〜200であれば、ア
ドレスの値は、次の9計算サイクルの間は、111、1
21、131、....191へと増加し、その次のサ
イクルで、アドレスが循環して101に等しく設定され
る。
【0004】モジュロなる用語は、次のように定義され
る。
【0005】結果=A modulo B これは、AがBに満たない場合、結果はAに等しく、A
がBより大きい場合、結果はAをBで割った余りに等し
いという意味である。したがって、 結果=A− A÷B xB ただし、「 X 」は、Xの整数部を意味する。
【0006】「modulo」アドレシングの場合、各アドレ
スは、次のように計算される。
【0007】新たなアドレス=下限アドレス+(前アド
レス+偏位) modulo MODVAL ただし、下限アドレスは、アドレス範囲の下限であり、
前アドレスは、前の計算サイクルで用いたアドレス値で
あり、MODVALは、アドレス範囲の上限と下限との
差であり、偏位は、各計算サイクルに対するアドレスの
増分である。
【0008】前記のモジュロ・アドレス生成法の1つの
変形として指定のアドレス範囲を100〜199とし、
開始アドレスと偏位を前と同じにした場合、循環後のア
ドレス値が、102に等しく設定される。新たなアドレ
スが101ではなく102に設定される理由は、新たな
アドレスが、前記の定義を用いて次のように計算される
からである。
【0009】新アドレス=下限アドレス+(前アドレス
+偏位)modulo MODVAL =100+(91+10)modulo99 =100+2=102
【0010】
【発明が解決しようとする課題】DSPチップ上での既
存のモジュロ演算の実施には、配列の位置、および加算
される偏位およびアドレスに対する制限がある。特に、
配列の位置は、一般に、配列の下限アドレスの下位N+
1ビットは0でなければならないと制限される。ここ
で、Nは、1に等しく設定されるモジュロ値(MODV
AL)の最上位ビットである。この配列の位置の制限
は、計算で用いられる種々のデータ配列をメモリにおい
て最適に位置決定する問題を複雑にするため不便であ
る。本発明の第1の実施例では、この制限を避け、モジ
ュロ・アドレシングを用いてアクセスするべきメモリ配
列の位置の選択する際にユーザに対して完全なフレキシ
ビリティを与える。
【0011】DSP上で従来のモジュロ演算を実施する
ことにおける第2の欠点は、モジュロ・アドレシングの
実施に必要となる回路の量である。特に、従来のモジュ
ロ加算回路には、一般に、計算サイクルの度に新たなモ
ジュロ・アドレスを生成するために2つの縦続(カスケ
ード接続)加算回路が利用されてきた。
【0012】本発明の目的は、モジュロ加算に必要な回
路量の点で効率良くモジュロ加算を行うアドレス生成回
路を提供することにある。
【0013】本発明の他の1つの目的は、加算回路を1
つだけ備えたモジュロ加算アドレス生成回路を提供する
ことにある。
【0014】本発明のさらに他の1つの目的は、そのモ
ジュロ加算回路で生成されるアドレスの範囲に一切制限
を課さないモジュロ加算アドレス生成回路を提供するこ
とにある。
【0015】
【課題を解決するための手段】本発明は、下限値と上限
値を有する指定の範囲において一連の値を生成するモジ
ュロ加算回路である。このモジュロ加算回路は、前に決
定された開始値に偏位値を加えることにより第1の値を
生成し、さらに第1の生成値に対しモジュロ値を加算ま
たは減算することにより第2の値を生成する。モジュロ
値は、ラップアラウンド(wrap-around)値とも称し、こ
れによって、指定された範囲の上限と下限との間の差が
定義される。
【0016】第1および第2の値は、ともに1アドレス
回路を用いて1計算サイクル(CPUの命令サイクルと
称することもある)に生成することが好ましい。第1の
生成値が、上限および下限の値によって決まる範囲にあ
る場合、このモジュロ加算回路は、その第1の値を出力
し、そうでない場合は第2の生成値を出力する。この回
路が出力する値は、次の計算サイクルにおいて開始値と
して使えるようにレジスタに格納する。
【0017】第1のアドレスが指定の範囲内にあるか否
かの決定は、第1の実施例では第2の値の生成と同時に
行い、第2および第3の実施例では第2の値の生成の直
後に行う。実施例のいずれにおいても、この決定の結果
からマルチプレクサ制御信号を生成する。第1および第
2の生成値は、出力選択マルチプレクサのデータ入力ポ
ートに入力し、マルチプレクサ制御信号は、出力選択マ
ルチプレクサの選択ポートに入力する。出力選択マルチ
プレクサの出力から、第1および第2の生成値の内、マ
ルチプレクサ制御信号によって指定された生成値が出力
される。
【0018】本発明の第1の実施例において、マルチプ
レクサ制御信号の生成は、次の(A)と(B)との所定
の論理的組み合わせを形成することによって行う。
【0019】(A)偏位値の符号ビット (B)偏位値が負の場合は第1の生成値を指定の範囲の
下限値と比較し、偏位値が正の場合は第1の生成値を指
定の範囲の上限値と比較することにより生成した比較ビ
ットの値 本発明の第2および第3の実施例においては、デコーダ
回路により、モジュロ値の最上位ビット(「ビットN」
と称し、値「1」に設定する)を決定する。これらの2
つの実施例においてモジュロ加算回路により生成される
最終的な結果は、開始値の最上位N−Mビットに出力選
択マルチプレクサから出力された値の最下位Nビットを
連結することによって形成される。
【0020】本発明の第2の実施例において、(出力選
択マルチプレクサに対する)マルチプレクサ制御信号
は、(A)偏位値の符号ビットと、(B)第1の生成値
の符号ビットと、(C)第2の生成値の符号ビットとの
所定の論理的組み合わせを形成することによって生成さ
れる。
【0021】本発明の第3の実施例において、マルチプ
レクサ制御信号は、(A)偏位値の符号ビットと、
(B)第1の生成値の生成中に加算回路によって生成さ
れるビットNからビットN+1へのキャリービットと、
(C)第2の生成値の生成中に加算回路によって生成さ
れるビットNからビットN+1へのキャリービットとの
所定の論理的組み合わせを形成することによって生成さ
れる。
【0022】3つの実施例のいずれにおいても、モジュ
ロ加算回路に極力小規模の回路を用いるように、各計算
サイクル中に1つの加算回路を2回使用することが好ま
しい。しかしながら、極めて短い計算サイクル時間で実
施するために、2つの縦続加算回路を用いて本発明を実
施することができる。
【0023】本発明のその他の目的および特徴は、添付
図面に関して行う以下の詳細な説明および特許請求の範
囲からさらに容易に明らかになるであろう。
【0024】
【実施例】
アドレス・ユニットの概念的構造 図1に本発明の実施例において使用するアドレス・ユニ
ットの概念的構造を示す。実施例のアドレス・ユニット
1800は、ディジタル信号処理プロセッサにおいて実
施されるので、アドレス・ユニットは、アドレス信号を
生成して2つのアドレス・バスXA1108、YA11
10上に出力する。
【0025】8つのアドレス・レジスタ(xa0〜3お
よびya0〜3)1802〜1809および2つのスタ
ック・ポインタ(sp、sp+1)1816、1817
は、アドレス・バス1108および1110上に出すべ
きアドレス値のソースとして、またXアドレス・ユニッ
ト(XAU)1812およびYアドレス・ユニット(Y
AU)1814に対する入力値のソースとして使用され
る。インデックス・レジスタ(i0、i1)1818、
1820には、18ビットの指示値(即ち、偏位値)を
格納する。モジュロ・レジスタ(m0、m1)186
0、1864には、アクセスされるアドレス範囲の大き
さを決定するモジュロ値が記憶される。アドレス・レジ
スタ(xa0〜ya3)1802〜1809、スタック
・ポインタ(sp)1816、インデックス・レジスタ
(i0、i1)1818、1820およびモジュロ・レ
ジスタ(m0、m1)1860、1864は、いずれも
18ビットのアドレスまたは偏位値を格納する18ビッ
トレジスタである。
【0026】8個のアドレス・レジスタ(xa0〜ya
3)1802〜1809の各々は、Xアドレス・バス1
108に対するアドレス・ソースとなったり、またはY
アドレス・バス1110に対するアドレス・ソースとな
ったりすることができるだけでなく、XAU1812ま
たはYAU1814のいずれかに対するアドレス・ソー
スともなりうる(各アドレス・レジスタは、各命令サイ
クル中にXAUおよびYAUの一方のみに対してアドレ
ス・ソースとなりうる)。各インデックス・レジスタ
(i0、i1)1818、1820は、XAU181
2、YAU1814、またはこれらの両方に対するイン
デックス値ソースとなりうる。各モジュロ・レジスタ
(m0、m1)1860、1868は、XAU181
2、YAU1814、またはこれらの両方のモジュロ値
ソースとなりうる。
【0027】信号XBUSOP、YBUSOP、AXU
OP、YAUOP、XMD、YMD、XAUSRC、Y
AUSRC、XAUIS、YAUIS、およびDBLD
T(ここには図示しないデコーダ・ユニットにより生成
される)は、ローカル・アドレス・ユニット(AU)コ
ントローラ1850によって受信される。このコントロ
ーラにより、これらの信号をデコードし、それに応答し
て、アドレス・ユニット1800を構成する各回路の動
作を制御する制御信号を生成する。
【0028】信号XAUOPは、Xアドレス・ユニット
(XAU)1812が実行するアドレスの生成または更
新の動作を指定する。信号YAUOPは、Yアドレス・
ユニット(YAU)1814が実行するアドレス更新動
作を指定する。
【0029】信号XAUISは、XAUOP信号により
定義されXアドレス・ユニット1812により実行され
る種々のアドレス更新に使用されるインデックス・オペ
ランドの供給源を選択するものである。信号YAUIS
は、YAUOP信号により定義されYアドレス・ユニッ
ト1814により実行される種々のアドレス更新に使用
されるインデックス・オペランドの供給源を選択するも
のである。
【0030】Xアドレス・ソース(XAUSRC)信号
は4ビットの信号であり、この信号は、(a)アドレス
をXアドレス・バス1108に出力するためのアドレス
・ユニット(AU)1800の8個のレジスタ1802
〜1809の1つ、(b)アドレスをXアドレス・バス
1108に出力するためのプッシュ・スタックポインタ
(sp)1816およびポップ・スタックポインタ(s
p+1)1817のいずれか、または(c)即値データ
の即値データ線1698からXアドレス・バス1108
へのロード、のうちのいずれかを指定するものである。
Yアドレス・ソース(YARSC)信号は、アドレスを
Yアドレス・バス1110に出力するためのアドレス・
ユニット(AU)の8個のアドレス・レジスタ1802
〜1809の1つを指定する3ビット信号である。
【0031】ローカル・アドレス・ユニット(AU)コ
ントローラ1850は、信号XAUSRCおよびYAU
SRCに応答してセレクタ1830およびバッファ18
32に与えられるアドレス・ソース制御信号を生成す
る。
【0032】XAURC信号がアドレス・レジスタ(x
a0〜ya3)1802〜1809、プッシュ・スタッ
クポインタ(sp)1816またはポップ・スタックポ
インタ(sp+1)1817の1つを指定した場合、ロ
ーカル・アドレス・ユニット(AU)コントローラ18
50により生成されるアドレス・ソース制御信号にりセ
レクタ1830を制御し、これらのレジスタ中からXA
USRC信号で指定されたものであればいずれのレジス
タによって出力されたデータでも、その18ビットのデ
ータを18ビット内部XSRCバス1834およびXア
ドレス・バス1108に出力する。
【0033】XAURC信号が即値アドレス・データを
指定した場合、ローカル・アドレス・ユニット(AU)
コントローラ1850により生成されるアドレス・ソー
ス制御信号によってバッファ1832を制御し、即値デ
ータ線1698により与えられる18ビットのデータを
18ビット内部XSRCバス1834およびXアドレス
・バス1108に出力する。
【0034】一方、DBLDT信号が受信され、且つY
AUSRC信号がアドレス・レジスタ(xa0〜ya
3)1802〜1809の1つを指定した場合、ローカ
ル・アドレス・ユニット(AU)コントローラ1850
により生成されるアドレス・ソース制御信号によってセ
レクタ1830を制御し、これらのレジスタの中からY
AUSRC信号で指定されたものであればいずれのレジ
スタによって出力されたデータでも、その18ビットの
データを18ビットの内部YAUSRCバス1836お
よびYアドレス・バス1110に出力する。
【0035】信号XAUOPは、XAU1812が行う
べき動作を指定する。具体的には、XAUOPは、信号
XAURSCによって指定されたアドレス・レジスタ
(xa0〜ya3)1802〜1809によってXSR
Cバス1834に出力されるアドレスに対して行うべき
動作を、(a)更新しない、(b)インクリメントして
から同レジスタに格納する、(c)デクリメントしてか
ら同レジスタに格納する、または(d)インデックス
(即ち、偏位)値と加算して同レジスタに格納する、の
うちのいずれかに指定するものである。この信号XAU
OPに応答して、ローカル・アドレス・ユニット(A
U)コントローラ1850は、前記アドレスを直前に述
べた方法の1つで更新したり、しなかったりするXアド
レス・ユニット(XAU)1812を制御する制御信号
を生成する。信号XAUOPにより、XSRCバス18
34上のアドレスをインデックス値に加えることが指定
された場合、信号XAUISにより、インデックス値の
供給源を特定する。信号XAUISによりインデックス
・レジスタ(i0またはi1)1818、または182
0の1つが特定された場合、ローカル・アドレス・ユニ
ット(AU)コントローラ1850が、セレクタ182
2および1826を制御する制御信号を生成して、指定
されたインデックス・レジスタに収容されているインデ
ックス値をXアドレス・ユニット1812の供給源Iへ
と出力させる。一方、信号XAUISにより、即値デー
タはインデックス値であると指定された場合、ローカル
・アドレス・ユニット(AU)コントローラ1850
は、セレクタ1826を制御する制御信号を生成して、
即値データ線1698上のインデックス値をXアドレス
・ユニット1812の供給源Iへと出力させる。
【0036】信号YAUOPは、信号YAURSCによ
って指定されたアドレス・レジスタ(xa0〜ya3)
1802〜1809によってYAUSRCバス1836
に出力されるアドレスに対して行うべき動作を、(a)
更新しない、(b)インクリメントしてから同レジスタ
に格納する、(c)デクリメントしてから同レジスタに
格納する、または(d)インデックス(即ち、偏位)値
と加算して同レジスタに格納する、のうちのいずれかに
指定するものである。この信号YAUOPに応答して、
ローカル・アドレス・ユニット(AU)コントローラ1
850は、前記アドレスを直前に述べた方法の1つで更
新したり、しなかったりするYアドレス・ユニット(Y
AU)1814を制御する制御信号を生成する。信号Y
AUOPにより、YAUSRCバス1836上のアドレ
スをインデックス値に加えることが指定された場合、信
号YAUISにより、インデックス値の供給源を特定す
る。信号YAUISは、インデックス・レジスタ(i
0、i1)1818、1820の1つのみをインデック
ス源として特定することができるだけである。信号YA
UISに応答して、ローカル・アドレス・ユニット(A
U)コントローラ1850が、セレクタ1822を制御
する制御信号を生成して、指定されたインデックス・レ
ジスタに収容されているインデックス値をYアドレス・
ユニット1814の供給源Iへと出力させる。
【0037】信号XMDおよびYMDは、それぞれ信号
XAUOPおよび信号YAUOPによって指定された動
作に対しモジュロ演算を適用するべきか否かを指定す
る。例えば、信号XAUOPにより、インクリメント
(1加算)、デクリメント(1減算)またはインデック
ス加算(i0またはi1または即値データ線1698上
のデータを加える)動作が指定される場合がある。以上
のようなアドレス生成動作は、いずれもモジュロ演算を
使用するか否かにかかわらず行うことができる。
【0038】また、ローカル・アドレス・ユニット(A
U)コントローラ1850は、種々のデータ転送制御信
号を生成し、これらは、信号XRSEL、YRSEL、
XDBUSOP、YDBUSOPに応答してセレクタ1
822、1830、1832、1833に与えられる。
【0039】信号XDBUSOPは、レジスタからデー
タをデータ・メモリ・ユニット1900に格納、即ち、
プッシュするように指示する場合がある。このような指
示があり、且つそうするために、信号XRSELにより
アドレス・レジスタ(xa0〜ya3)1802〜18
09の1つ、スタック・ポインタ・レジスタ(sp)1
816、インデックス・レジスタ(i0またはi1)1
818または1820の1つ、またはモジュロ・レジス
タ1860、1864の1つが指定された場合、ローカ
ル・アドレス・ユニット(AU)コントローラ1850
は、セレクタ1830、セレクタ1822または183
3に送る制御信号を生成し、そのセレクタに、信号XR
SELにより指定されたレジスタによって格納されたデ
ータをXデータ・バス1102へと出力させる。
【0040】一方、信号XDBUSOPは、データをデ
ータ・メモリ・ユニット1900からレジスタにロー
ド、即ち、ポップするように指示する場合がある。この
ような指示があり、且つそうするために、信号XRSE
Lによりアドレス・レジスタ(xa0〜ya3)180
2〜1809の1つ、スタック・ポインタ・レジスタ
(sp+1)1817、インデックス・レジスタ(i
0、i1)1818、1820の1つ、またはモジュロ
・レジスタ1860、1864の1つが指定された場
合、ローカル・アドレス・ユニット(AU)コントロー
ラ1850は、セレクタ1824、セレクタ1838ま
たは1835に送る制御信号を生成し、そのセレクタを
制御して、データをXデータ・バス1102から信号X
RSELにより指定されたレジスタにロードさせる。
【0041】信号XDBUSOPの指示により、データ
を1つのレジスタから別のレジスタに移すときに、信号
XRSELによってアドレス・レジスタ(xa0〜ya
3)1802〜1809、インデックス・レジスタ(i
0、i1)1818、1820、またはモジュロ・レジ
スタ1860、1864の1つが指定された場合、ロー
カル・アドレス・ユニット(AU)コントローラ185
0が、セレクタ1822、1830、または1833に
送る制御信号を生成し、そのセレクタを制御して、信号
XRSELにより指定されたレジスタからデータをYA
U入力・バス1836に出力させる。さらに、この場
合、信号YRSELによりアドレス・レジスタ(xa0
〜ya3)1802〜1809、インデックス・レジス
タ(i0、i1)1818、1820、またはモジュロ
・レジスタ1860、1864の1つが指定された場
合、ローカル・アドレス・ユニット(AU)コントロー
ラ1850は、セレクタ1824、1838、または1
835に送る制御信号を生成し、そのセレクタを制御し
て、YAU出力データ・バス1842からのデータをY
RSELによって指定されたレジスタに入力させる。
【0042】また、ローカル・アドレス・ユニット(A
U)コントローラ1850は、クロック信号CK0およ
びCK1を受信する。ローカル・アドレス・ユニット
(AU)コントローラ1850は、これらの信号を用い
て、前記の制御信号を生成する際に適切なタイミングを
とる。
【0043】また、ローカル・アドレス・ユニット(A
U)コントローラ1850は、共通デコーダ・ユニット
1600の状態検査ブロック1616から信号CANC
ELを受信し、これに応答して、アドレス・レジスタ
(xa0〜ya3)1802〜1809、スタック・ポ
インタ・レジスタ1816、1817、またはインデッ
クス・レジスタ1818、1820を制御する制御信号
を生成し、セレクタ1824、1838および1835
を介してXデータ・バス1102、内部バス1840、
または内部バス1842から受信したデータを保存しな
いようにさせる。
【0044】さらに、ローカル・アドレス・ユニット
(AU)コントローラ1850は、並列アービタ210
0から与えられる信号STALLを受信する場合もあ
る。ローカル・アドレス・ユニット(AU)コントロー
ラ1850は、この信号を受信すると、制御信号を生成
することによって、アドレス・レジスタ1802〜18
09、1816〜1818、および1820が、セレク
タ1824、1838および1835を介してXデータ
・バス1102、内部バス1840、または内部バス1
842から受信したデータを保存しないようにする。
【0045】モジュロ論理回路 図1を参照すると、XおよびYアドレス・ユニット18
12、1814は、共にそれぞれに関係付けられたモジ
ュロ論理回路1870および1872を有する。2つの
モジュロ論理回路は同じであるから、本明細書の以下の
節ではモジュロ回路の一方(Yアドレス・ユニット18
14に対するモジュロ回路1872)のみを説明する。
【0046】なお、実施例のいずれにおいても、モジュ
ロの計算結果を有効にするためには、(1)モジュロの
各計算に対する開始アドレスの値ADRが指定のアドレ
ス範囲(MStartとMEndとの間)内にあり、且
つ(2)偏位値DISPのモジュロ値に等しいか、それ
より小さい(即ち、アドレス範囲の大きさに等しいか、
それより小さい:|DISP|≦MODVAL)という
ことが必要である。開始アドレス値ADRおよび偏位D
ISPがこれらの制限を満たすことを確認することは、
DSPによって実行されるプログラムのプログラマか、
コンパイラを使用する場合には、そのコンパイラ次第に
任される。
【0047】アドレス・ユニットおよび実行ユニットの
タイミング 次に、モジュロ論理回路1872の好ましいすべての実
施例の動作を、図2および4を参照して、実行される動
作シーケンスの点から説明する。アドレス・ユニットの
計算サイクルは、DSP実行ユニットの計算サイクルの
1/4・サイクル前に始まる。代表的には、アドレス値
は、1アドレス計算サイクルで計算され、次のアドレス
計算サイクル中にアドレス・バス1836に出される。
多くのDSP計算処理において、アドレス・レジスタの
アドレス・ポインタは、「事後インクリメント」または
「事後デクリメント」される場合が多いが、これは、ア
ドレス・ポインタが、それが使用される計算が終わる度
に自動的にインクリメントまたはデクリメントされるこ
とを意味する。このように、使用中のアドレス・ポイン
タを更新するために別の計算サイクルを使用することな
くアドレス・ポインタを更新して次の計算に備える。
【0048】バス1836上のアドレス値は、バスYA
上のYアドレスおよびYAU加算器1814への入力と
して使用される。選択されたアドレス・レジスタの内容
(図においてはADRと記した)は、アドレス計算サイ
クルの前半(CK1がロウ(low)の間)に透過性の
ラッチL1を通過する。アドレス計算サイクルの後半に
(CK1はハイ(high)の間)、ラッチL1は、ア
ドレス加算器1814への入力アドレスADRを一定に
保つ。
【0049】モジュロ論理回路1872と共にアドレス
・ユニット加算器1814によって計算された新たなア
ドレス値は、アドレス計算サイクルの後半に(CK1が
ハイ(high)の間)ラッチL2を通り、次のアドレ
ス計算サイクルの前半の間中、バス1842上で一定に
保持される。さらに、実行計算サイクルの後半に(CK
0がロウ(low)の間)、バス1842のアドレス値
が、指定されたアドレス・レジスタ(この内容は更新さ
れつつある)に格納される。この結果、選択されたアド
レス・レジスタから出力されたアドレス値は、CK0と
CK1が共にロウ(low)の間(アドレス計算サイク
ルの最終四半期)は過渡期にあり、このようにして更新
されたアドレス値が、次の実行ユニット計算サイクルの
開始の四半サイクル前に有効となる。
【0050】シーケンサ1878が、クロック信号CK
1およびモード・信号ModOPを入力信号として受信
する。前記のように、CK1は、各アドレス計算サイク
ルの前半はロウ(low)で、その後半はハイ(hig
h)であるようなクロック信号である。実施例において
は、クロック信号の周波数は、25MHzであり、した
がって、各計算サイクルは、40nsである。しかしな
がら、この技術分野の当業者には明らかなように、本発
明は、その他の計算速度を有する回路でも使用可能であ
る。ModOPは、ローカル・アドレス・ユニット(A
U)コントローラ1850によって生成される2値信号
であり、モジュロ演算が実行されているときにイネーブ
ルとなり(即ち、「1」に等しくなり)、その他の時に
ディスエーブルとなる(即ち、「0」に等しくなる)。
シーケンサ1878は、別の制御信号C1の生成に使用
されるシーケンス信号Sを生成する。各アドレス計算サ
イクルの前半は、クロック信号CK1とシーケンス信号
Sは、共にロウ(low)である。シーケンス信号S
は、ModOPがイネーブル(モジュロ演算が行われて
いる)ならば、各アドレス計算サイクルの後半、ハイ
(high)であり、ModOPがディスエーブル(モ
ジュロ演算が行われていない)ならば、全アドレス計算
サイクルに対してロウ(low)である。
【0051】第1の実施例:アドレス範囲に制限のない
モジュロ論理回路 図2〜4を参照しながら第1の実施例を説明すると、2
つのモジュロ値レジスタ1860および1864には、
関係付けられたモジュロ開始値およびモジュロ終了値の
各レジスタMS0 1861、ME0 1862、MS
1 1865、およびME1 1866が補助的に付加
されている。これらのレジスタは、モジュロ論理回路1
872−1Aにより、3つの関係付けられた値としてア
クセスされる。つまり、モジュロ・レジスタm0 18
60がアクセスされ、その値が内部バス1874を介し
てそのモジュロ回路に送られる際に、それに関係付けら
れたMS0およびME0レジスタ1861および186
2もアクセスされ、それらの内容が内部バス1875お
よび1876を介してモジュロ論理回路1872に送ら
れる。同様に、モジュロ・レジスタm1 1864がア
クセスされ、その値が内部バス1874を介してそのモ
ジュロ回路に送られる際に、それに関係付けられたMS
1およびME1レジスタ1865および1866もアク
セスされ、それらの内容が内部バス1875および18
76を介してモジュロ論理回路1872−1Aに送られ
る。
【0052】シーケンス信号S(これは、モジュロ・ア
ドレス演算が行われているときは、クロック信号CK1
と同じである)は、入力マルチプレクサ1826および
1880によって選択された入力信号を制御する。マル
チプレクサ1826は、2つの部分1826Aおよび1
826B(後述)を有する。なお、マルチプレクサ18
26および1880は、モジュロ演算には使用されない
入力(したがって、図示せず)も含む多数の入力を有す
る。本明細書では、シーケンス信号Sが0に等しい場合
は、これらのマルチプレクサが、ローカル・アドレス・
ユニット(AU)コントローラ1850からの制御信号
(例えば、マルチプレクサ1826Aへの選択信号AI
など)に基づいて入力を通すものとし、シーケンス信号
Sが「1」に等しい場合は、ポート1のデータを通すも
のと仮定する。したがって、本明細書においては、各ア
ドレス計算サイクルの前半では、マルチプレクサ188
0は、その入力ポート「0」のデータを通し、マルチプ
レクサ1826Aは、その入力ポート「0」、「2」ま
たは「3」のデータを通すが、モジュロ・アドレス計算
サイクルの後半では、これらのマルチプレクサは、共に
入力ポートのデータ「1」を通す。非モジュロ演算に対
しては、入力マルチプレクサは、入力ポートのデータ
「1」は使用しない。
【0053】結果として、モジュロ・アドレス計算サイ
クルの前半においては、アドレス・ユニット加算器18
14へのA入力は、内部バス1836上のADR値であ
り、アドレス・ユニット加算器1814へのI入力は、
内部バス1881上のインデックス値、あるいは+1ま
たは−1の値のいずれかである(Xアドレス・ユニット
の場合は、別の可能なI入力は、即値データ値であ
る)。ここでは、モジュロ・アドレス計算サイクルの前
半にI入力マルチプレクサ1826Aが通す値を偏位値
DISPと称する。
【0054】偏位値の符号ビットSignBit(DI
SP)は、線1882で運ばれ、負の偏位値に対しては
「1」に等しく、正の偏位値に対しては「0」に等し
い。偏位の符号ビットは、アドレス計算サイクルの前半
および後半にわたって値が一定に維持されるように、透
過性のラッチ1879(この入力ポートは、クロック信
号CK1がロウ(low)のときイネーブルとされる)
にラッチされる。
【0055】制御信号C1は、ANDゲート1884に
より、次のように生成される。
【0056】C1 = S .AND. 〜SignBit (DISP) ここで、「〜SignBit (DISP)」は、SignBit (DISP)の逆
である。したがって、モジュロ演算が行われていて、偏
位値が正ならば、C1は、アドレス計算サイクルの前半
では常にロウ(low)であり、その後半ではハイ(h
igh)である。
【0057】また、アドレス計算サイクルの前半におい
て、内部バス1874上の選択されたモジュロ値とその
1の補数がマルチプレクサ1826Bの2つの入力ポー
トに用意されるように、そのモジュロ値をインバータ1
886に通す。
【0058】第1の実施例:アドレス計算サイクルの前
半 アドレス計算サイクルの前半において、加算器1814
により、開始アドレス値ADRと偏位値(DISP)と
を加算し、この加算結果をR1レジスタ1897に格納
する。
【0059】R1=ADR+DISP ここで、ADRは、8つのアドレス・レジスタ1802
〜1809の内、信号XAUSRCによって指定された
レジスタからの選択アドレス・レジスタ値であり、DI
SPは、+1、−1、またはインデックス・レジスタ1
818および1820に格納されている2つの偏位値の
1つである。
【0060】第1の実施例:アドレス計算サイクルの後
半 モジュロ・アドレス計算サイクルの後半の目的は、
(A)第1の算出アドレスからモジュロ値に等しい量だ
け離れた第2のアドレス値R2を算出すること、(B)
算出した2つのアドレス値R1およびR2の内、指定の
アドレス範囲内にあるものを選択すること、および
(C)2つの算出アドレス値から選択されたものを出力
すること、である。
【0061】前半サイクルにおいて生成された値R1
は、ラッチL1でラッチされ、後半サイクルにおいてマ
ルチプレクサ1880によって、加算器1814のA入
力ポートに入力される。後半サイクルの間、加算器18
14のI入力ポートへの入力は、マルチプレクサ182
6AおよびBにより制御される。加算器1814のIポ
ート入力値は、偏位値DISPが負の場合、内部バス1
874上のモジュロ値MODVALであり、偏位値DI
SPが正の場合、モジュロ値MODVALの1の補数で
ある。さらに、偏位値DISPが正ならば、Carry
−In(キャリー・イン)の値「1」が加算器1814
に送られる。結果として、DISPが正の場合、R1か
らモジュロ値を引いて、値R2を内部バス1892上に
生成する。これは、加算器1814が次の計算を行うか
らである。
【0062】R2=R1+〜MODVAL+1 (DI
SPが正のとき) R1−MODVAL DISPが負の場合、R2は、R1にMODVALを加
えたものに等しい。
【0063】モジュロ演算により、ここでMStart
と称する値によって下端が決定され且つここでMEnd
と称する値によって上端が決定されるアドレス範囲にお
いて一連のアドレス値が生成される。第1の実施例にお
いて用いる値MEndP1は、MEndプラス1に等し
い。値MStartおよびMEndP1は、モジュロ・
アドレス演算を行う前にモジュロ・レジスタ1861お
よび1862、または1865および1866に格納さ
れ、内部バス1875および1876によってマルチプ
レクサ1889に送られる。マルチプレクサ1889に
対する出力選択信号は、C1である。前記のように、モ
ジュロ演算が行われていて、偏位値DISPが正の場
合、C1は、アドレス計算サイクルの後半期間は、1に
等しく、その他の場合は、0に等しい。そして、偏位値
DISPが正の場合、マルチプレクサ1889は、アド
レス計算サイクルの後半に、MEndP1値を出力し、
また偏位値DISPが負の場合、マルチプレクサ188
9は、アドレス計算サイクルの後半期間にMStart
値を出力する。
【0064】モジュロ・アドレス計算サイクルの後半に
おいて、偏位値DISPが負ならば、比較器1890に
より、R1レジスタ1879のR1値をMStart値
と比較し、偏位値DISPが正ならば、R1レジスタ1
879のR1値をMEndP1の値と比較する。
【0065】比較器1890の出力は、値R3の符号ビ
ットに等しいので、SignBit(R3)と称する。
ここで、R3を次のように定義する。
【0066】R3=R1−MStart (偏位値DI
SPが負のとき) R3=R1−MEndP1 (偏位値DISPが正のと
き) これに代わる実施例として、比較器1890は、上に示
した減算を行ってR3を計算する減算回路で置き換える
ことができ、その場合、結果R3の符号ビットをSig
nBit(R3)として用いることができる。
【0067】モジュロ論理回路1872は、次のように
定義される制御信号C2を生成する(ゲート1894〜
1897を用いて)。
【0068】 C2={SignBit(DISP) .AND. SignBit(R3) }OR ={〜SignBit(DISP) .AND. 〜SignBit(R3) } 概念的には、C1は、値R1がMStartおよびME
ndにより決定されるアドレス範囲にない場合、「1」
に等しく、その他の場合は、「0」に等しい。既に説明
したように、SignBit(DISP)の値は、ラッ
チ1879に格納されるので、その値は、I入力マルチ
プレクサ1826Aを通った値がアドレス計算の最中に
変化しても、アドレス計算の間、安定である。
【0069】最後に、モジュロ論理回路1872−1が
出力選択マルチプレクサ1898を介してバス1842
上に出力するアドレス値は、C2=「1」ならばR2に
等しく、その他の場合は、値R1に等しい。ラッチL2
は、アドレス計算サイクルの後半は開であり、次のアド
レス計算サイクルの前半の間中、選択されたアドレス出
力値をバス1842上に保持する。バス1842上に出
力された値は、開始アドレス値ADRが取り出された元
のアドレス・レジスタ1802〜1809と同じレジス
タに格納される。
【0070】モジュロ演算以外のアドレス演算を行うた
めに加算器1814を使用すると、ModOPがディス
エーブルとなり、シーケンサ1878は不活性となる。
結果的に、入力選択マルチプレクサ1826Aおよび1
880が、全計算サイクルにわたって、同じ2つの値A
DRおよびDISPを入力する。したがって、モジュロ
論理回路によって生成される値R1およびR2は、同じ
であり、値R1がバス1842に出力される。
【0071】第1の実施例においては、R1が使用され
るアドレス範囲の上限または下限(使用される偏位値D
ISPの正負による)と直に比較されるので、アドレス
範囲には制限がない。このため、アドレス範囲の上限と
下限とを格納するために少なくとも2つ余分にレジスタ
を使用する必要があるが、プログラマやコンパイラがデ
ータ配列をDSPで利用可能なメモリの任意の場所に配
置することができるので、メモリの使用を一層効率的且
つ(あるいは)便利にすることができるという利点があ
る。
【0072】第1の実施例:縦続加算器の実現 図2に示した第1の実施例の実現において、加算器18
14は、各計算サイクルにおいて2つの加算を行うのに
使用される。同じ機能を果たす、より高速な回路(ここ
では、モジュロ論理回路1872−1Bと称する)を図
5に示す。モジュロ論理回路のこの第2の例は、図2の
回路1872−1Aが十分に速くない状況、例えば、計
算サイクル時間が比較的短い例で使用するためのもので
ある。
【0073】モジュロ論理回路1872−1Bには、第
1のアドレス・ユニット加算器1814と縦続(カスケ
ード)接続された第2の加算器1930を使用する。第
2の縦続加算器1930を用いることにより、第1の実
施例からシーケンサ1878、R1レジスタ1879、
ANDゲート1884および入力マルチプレクサ182
6および1880の各回路を省略することができる。こ
れらの回路要素の省略により、第2の加算器に関してモ
ジュロ論理回路1872に付加される正味の回路量は削
減される。ラッチ用レジスタ1879およびシーケンサ
1878の省略により、2つの縦続加算器はクロックの
制限を受けることなくR1およびR2を生成することが
可能となり、したがって、有効な出力値の生成に必要な
時間が短縮される。
【0074】モジュロ論理回路1872−1Bの動作
は、図2に示した回路のそれと同様である。具体的に
は、R1は、第1の加算器1814により、次のように
計算される。
【0075】R1=ADR+DISP インバータ1886が接続されたマルチプレクサ182
6Bにより、第2の加算器1930の第2の入力に対
し、偏位値DISPが負の場合は、MODVALが送ら
れ、偏位値DISPが正の場合は、〜MODVALが送
られる。第2の加算器1930は、次の計算を行う。
【0076】R2=R1+MODVAL (偏
位値DISPが負のとき) R2=R1+〜MODVAL+1 (偏位値DISP
が正のとき) =R1−MODVAL SignBit(R3)およびC2の値は、図5に示し
た構成においても図2に示した構成と全く同じ方法で計
算される。したがって、このモジュロ論理回路によって
内部バス1842に出力される値は、図2に関して既に
述べたと同様な方法でR1およびR2から選択される。
【0077】第2の実施例:アドレス範囲に制限のある
モジュロ論理回路 図6において、このモジュロ・アドレス生成演算により
アクセスされる下限は、次のように制限される。即ち、
モジュロ値MODVALの「1」に設定されるビットの
最上位ビットが、ビットNならば、下限のアドレスのビ
ット0〜Nは「0」に設定しなければならない。
【0078】N= Log2(MODVAL) ここで、「 Log2(MODVAL) 」は、Log
2(MODVAL)の整数部を意味する。
【0079】MASK=2N+1 −1 (例えば、MASK=0
00...1111(「1」がN+1ビット)) 下限=ADR .AND. 〜MASK 図6に示すように、MASKの値は、選択されたモジュ
ロ・レジスタ1860または1864のモジュロ値MO
DVALからデコーダ1940によって生成される。デ
コーダで生成されたMASK値は、上位17−Nビット
が「0」に設定され、続くN+1ビットが「1」に設定
された18ビットの値である。モジュロ・アクセス演算
が行われていない場合、ModOPはディスエーブルに
され、デコーダ1940で生成されたMASK値のビッ
トがすべて「1」となる。
【0080】ANDゲート1942は、入力アドレスA
DRとMASKとの論理積をとることにより、入力アド
レスADRの最下位N+1ビットに等しい値を線194
4に出力する。
【0081】アクセスされるべきアドレス範囲の上限
は、モジュロ値MODVALにより指定され、下限にM
ODVALを加えたものから1を減じた値に等しい。
【0082】上限=下限+MODVAL−1 上限および下限のアドレスはMODVALで決定される
ので、MStartおよびMEndP1レジスタ186
1、1862、1865および1866(図2参照)は
この実施例では不要である。
【0083】なお、偏位値DISPの大きさは、モジュ
ロ値に等しいか、それ以下でなければならない。
【0084】−MODVAL≦DISP≦MODVAL 図2に示した第1の実施例と同様に、第2実施例(図6
に示す)のモジュロ論理回路1872−2には、第1の
実施例と同様のシーケンス信号Sを生成するシーケンサ
1878を利用する。
【0085】計算サイクルの前半において、(A)デコ
ーダ1940でMASK値を生成し、マスクを施したA
DR値(即ち、ADRの最上位N+1ビット)と偏位値
DISPとを入力マルチプレクサ1826および188
0からアドレス・ユニット加算器1814に渡し、
(B)加算器1814により、 R1=(ADR .AND.MASK)+DISP を計算し、さらに(C)このR1値をR1レジスタ18
79でラッチする。
【0086】各計算サイクルの後半(ModOPがイネ
ーブルにされる)の期間中、シーケンス信号Sが1に等
しいので、加算器の入力マルチプレクサ1826は、R
1およびMODVALの入力を選択する。図2に示した
第1の実施例と同様に、偏位値DISPが正ならば、C
1制御信号は「1」に等しく、負ならば、「0」に等し
い。
【0087】後半サイクルの期間中の加算器1814の
I入力ポートへの入力は、入力マルチプレクサ1826
Aおよび1826Bによって制御される。加算器181
4のIポートへの入力値は、偏位値DISPが負なら
ば、内部バス1874上のモジュロ値MODVALであ
り、偏位値DISPが正ならば、モジュロ値MODVA
Lの1の補数である。さらに、偏位値DISPが正の場
合、Carry−In(キャリー・イン)値「1」が加
算器1814に送られる。結果的に、偏位値DISPが
正の場合、R1からモジュロ値を引いてR2の値を内部
バス1892上に生成する。これは、加算器が次の計算
を行うからである。
【0088】R2=R1+〜MODVAL+1 (偏
位値DISPが正のとき) =R1−MODVAL DISPが負の場合は、R2はR1とMODVALの和
に等しい。
【0089】次に、モジュロ論理回路1872−2によ
って、次のように定義される制御信号C2を(ゲート1
896、1897、1946〜1948を用いて)生成
する。
【0090】 C2={SignBit(DISP) .AND. SignBit(R1) } OR ={〜SignBit(DISP) .AND. 〜SignBit(R2) } 概念的には、値R1が前記のように上限および下限によ
り決定されるアドレス範囲にない場合、C2は「1」に
等しく、R1が指定のアドレス範囲内にある場合は、
「0」に等しい。マルチプレクサ1898の出力値は、
C2が0のときR1値であり、C2が1のときR2値で
ある。
【0091】最後に、モジュロ論理回路1872−2が
バス1842上に出力するアドレス値は、ビット・マル
チプレクサ1950によって生成される。このマルチプ
レクサ1950は、本来、MASK信号の別々のビット
によってそれぞれ制御される18個の2対1マルチプレ
クサからなる。MASK信号の「0」に等しい各ビット
に対しては、ADR値の対応するビットが、ビット・マ
ルチプレクサ1950により出力バス1842に渡され
る。一方、MASK信号の「1」に等しい各ビットに対
しては、マルチプレクサ1898によって選択されたR
1またはR2の値の対応するビットが、ビット・マルチ
プレクサ1950により出力バス1842に渡される。
このように、ビット・マルチプレクサ1950は、18
ビットの値を出力し、その最上位17−Nビットは、A
DRの最上位17−Nビットであり、その最下位N+1
ビットは、マルチプレクサ1898によって出力される
値の最下位N+1ビットである。
【0092】出力選択マルチプレクサ1898およびビ
ット・マルチプレクサ1950の動作は、次のように表
すことができる。
【0093】 If C2=1{ 結果=(R2 .AND. MASK) .OR. (ADR .AND. 〜MASK) } Else { 結果=(R1 .AND. MASK) .OR. (ADR .AND. 〜MASK) } 出力バス1842上に出力される値は、開始アドレス値
のADRを取り出した元のアドレス・レジスタ1802
〜1809と同じレジスタに格納される。
【0094】第3の実施例:アドレス範囲に制限のある
モジュロ論理回路 図7について説明すると、第3の実施例の場合も、モジ
ュロ値MODVALの「1」に設定された最上位のビッ
トがビットNならば、モジュロ・アドレス生成演算によ
ってアクセスされるアドレス範囲の下限のビット0〜N
が「0」でなければならない。この点においては、第2
の実施例と類似している。第2の実施例と同様に、第3
の実施例においても、デコーダ1940を用いて、次の
ように定義されるMASK値を生成する。
【0095】MASK=2N+1 −1 (例えば、MASK=0
00...1111(「1」がN+1ビット)) モジュロ・アドレス演算が行われている(これは、Mo
dOPがイネーブルにされることによって示される)場
合、デコーダ1940で生成されたMASK値は、上位
17−Nビットが「0」に設定され、続くN+1ビット
が「1」に設定された18ビットの値である。ModO
Pがディスエーブルにされている場合、デコーダ194
0で生成されたMASK値のビットがすべて「1」とな
る。
【0096】図7の実施例が図5の実施例と異なるの
は、(A)入力アドレス値のADRがマスクされない、
(B)この実施例では、R1およびR2の符号ビットの
代わりに、アドレス・ユニット加算器1814´からの
内部キャリー信号を用いる、(C)R1およびR2の符
号ビットの代わりにキャリービットを使用することに合
わせて、デコーダ1940、レジスタ1879およびC
2論理生成回路が修正されている、さらに(D)C2の
論理的解釈を最初の2つの実施例のそれとは逆にする、
という点である。
【0097】特に、アドレス・ユニット加算器1814
´により生成されるキャリービットの指定された任意の
ものにアクセスできるように、加算器1814´に「キ
ャリー・マルチプレクサ」1952を加えることにより
加算器1814´を修正する。加算器1814´におい
て、18のキャリービットが生成される。ここで、各キ
ャリービットは、加算器1814´によって生成される
値の1つのビットから次に上位のビットへのキャリーを
表す。キャリー・マルチプレクサ1952は、マルチプ
レクサ選択信号CarrySelによって指定される通
りに前記の18のキャリービットの1つを線1954に
出力する。
【0098】デコーダ1940は、MASK信号に加え
て、CarrySel信号も生成する。加算器1814
´において、このCarrySel信号は、ビットNか
らビットN+1へのキャリービットを選択する(つま
り、加算器の第N番目のビットに対応するキャリービッ
ト)。ただし、ビットNは、モジュロ値MODVALの
「1」にセットされるビットの最上位ビットである。
【0099】加算器1814´が2つの正の数を加えて
いるとき、加算器がビットNから「溢れ」た場合に限
り、NからN+1へのキャリービットが「1」に等しく
なる。R1を生成するために2つの正の数を加える場
合、その2つの入力値の下位Nビットの和が、各ビット
が1であるNビットの2進数、即ちFF・・F(即ち、
N個の1)を超えた場合に限り、キャリービットCN1
が1となりうる。これは、生成された値R1が、指定さ
れたアドレス範囲を超えることを示す。加算器1814
´により、負の数に正の数を加える(例えば、R1を生
成する最初の加算において負の偏位値を用いる場合な
ど)場合、結果として得られる値の下位Nビットが負の
値を表すならば、NからN+1へのキャリービットは、
「0」に等しく、結果として得られる値の下位Nビット
が正ならば、NからN+1へのキャリービットは、
「1」に等しい。このように、負の偏位については、R
1の値が指定の範囲の外にある場合、キャリービットC
N1は、0に等しい。
【0100】計算サイクルの前半において、加算器の計
算から選択されたキャリービットCN1をR1レジスタ
1879の1ビット拡張段に格納する(さらに、偏位の
符号ビットを1879Bと記したR1レジスタの別の1
ビット拡張段に格納する)。計算サイクルの後半におけ
る加算器の計算により選択されたキャリービットは、C
N2と記してある。
【0101】モジュロ論理回路1872−3において、
次のように定義される制御信号C2を(ゲート189
6、1897、1946、および1956〜1958を
用いて)生成する。
【0102】C2={SignBit(DISP) .AND. CN1 } OR ={〜SignBit(DISP) .AND. 〜CN1 .AND. 〜CN2 } 値R1が、前記のように上限および下限によって境界が
決定されるアドレス範囲の内側にある場合、C2は
「1」に等しく、アドレス範囲から外れる場合は、
「0」に等しい。マルチプレクサ1898は、C2が1
に等しいとき、R1の値を出力し、またC2が0に等し
いとき、R2の値を出力する。
【0103】ビット・マルチプレクサ1950は、その
最上位17−NビットがADRの最上位17−Nビット
であり、その最下位N+1ビットがマルチプレクサ18
98により出力される値の最下位N+1ビットであるよ
うな18ビットの値を出力する。
【0104】出力選択マルチプレクサ1898およびビ
ット・マルチプレクサ1950の動作は、次のように表
すことができる。
【0105】 IF C2=1{ 結果=(R1 .AND. MASK) .OR. (ADR .AND. 〜MASK) } Else { 結果=(R2 .AND. MASK) .OR. (ADR .AND. 〜MASK) } 出力バス1842に出力される値は、開始アドレス値の
ADRが取り出された元のアドレス・レジスタ1802
〜1809と同じレジスタに格納される。
【0106】別の実施例 図2、6および7に示した実施例においては、各モジュ
ロ・アドレス・ユニットに対し1つの加算回路が使用さ
れる。これらの実施例は、40nsの計算サイクルに対
しては良好に機能し、さらに25nsの短い計算サイク
ルに対しても良好に機能するものと予測される。しかし
ながら、計算サイクル時間が極めて短い実施例に対して
は、2つの縦続加算回路を用いて本発明を実施すること
ができる。
【0107】図2および5の比較から明らかなように、
さらに高速な動作を達成するために3つの実施例のいず
れかに第2の縦続加算器を挿入すると、マルチプレクサ
用の回路は比較的少なくて済み、R1レジスタ1879
は不必要となる。第2の加算器に必要となる付加的な回
路は、マルチプレクサに用いられる他の回路およびR1
ラッチの削減により幾分埋め合わせされる。
【0108】さらに、この技術分野の当業者であれば明
らかなように、加算されるデータ値のビット数、および
モジュロ演算過程に使用される特定の論理回路は、別の
状況で使用するために変更することも可能であるが、そ
れらはいずれも本発明の原理および技術範囲に包含され
る。
【0109】以上、本発明を幾つかの実施例に基づいて
説明したが、これらは単に例示的なものであって、本発
明を制限するものではない。当業者であれば、本発明の
要旨から逸脱することなく、様々な変形を行うことがで
きる。
【0110】
【発明の効果】本発明によれば、モジュロ加算に必要な
回路量の点で効率良くモジュロ加算を行うことができ
る。
【0111】また、本発明によれば、モジュロ加算アド
レス生成回路に加算回路を1つだけ備えたものとするこ
とができる。
【0112】さらに、本発明によれば、モジュロ加算回
路で生成されるアドレスの範囲に一切の制限が課されな
いという利点が得られる。
【0113】また、本発明によれば、モジュロ加算につ
いて、配列の位置や加算される偏位やアドレスについて
制限がなく、ユーザにフレキシビリティを与えることが
できる。
【図面の簡単な説明】
【図1】ディジタル信号処理プロセッサでの使用に適し
た2アドレス・ユニットのブロック図である。
【図2】本発明によるモジュロ加算回路の第1の実施例
の概略図である。
【図3】図2に示した回路によって実行される動作シー
ケンスに対応する流れ線図である。
【図4】すべての実施例に対するタイミング図である。
【図5】2つの縦続回路を用いる第1の実施例の第2の
例の概略図である。
【図6】本発明によるモジュロ加算回路の第2の実施例
の概略図である。
【図7】本発明によるモジュロ加算回路の第3の実施例
の概略図である。
【符号の説明】
1102 Xデータ・バス 1108 Xアドレス・バス 1110 Yアドレス・バス 1698 即値データ線 1800 アドレス・ユニット 1812 Xアドレス・ユニット(XAU) 1814 アドレス・ユニット(YAU)加算器 1816 プッシュ・スタックポインタ(sp) 1817 ポップ・スタックポインタ(sp+1) 1826 入力マルチプレクサ 1822、18241830、1833、1835、1
838 セレクタ 1832 バッファ 1834 XSRCバス(内部XSRCバス) 1836 内部バス 1842 出力バス 1850 ローカル・アドレス・ユニット(AU)コン
トローラ 1872 モジュロ論理回路 1874 内部バス 1878 シーケンサ 1879 R1レジスタ 1880 マルチプレクサ 1881 内部バス 1890 比較器 1892 内部バス 1930 第2の加算器 1940 デコーダ 1950 ビット・マルチプレクサ 1952 キャリー・マルチプレクサ

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 モジュロ加算回路において、 加算回路と、 開始値、偏位値およびモジュロ値を前記加算回路に与え
    る入力値記憶装置と、 前記加算回路に接続された入力選択回路と、 前記加算回路に接続されたレジスタと、 出力回路とを備え、 前記モジュロ加算回路は、所定の計算サイクルの第1の
    期間と第2の期間を示す順序信号を受信し、 前記所定の計算サイクルの前記第1の期間に、前記順序
    信号により前記開始値および前記偏位値を前記加算回路
    に供給し、当該第1の期間に、前記加算回路が、第1の
    結果R1を算出し、 前記レジスタは前記第1の結果R1を記憶し、 前記入力選択回路は、前記所定の計算サイクルの前記第
    2の期間に、前記順序信号に応答して前記第1の結果R
    1および前記モジュロ値を前記加算回路に供給する手段
    を有し、これにより、当該第2の期間に、前記加算回路
    が、第2の結果R2を算出し、 前記出力回路は、選択結果が所定の値の範囲内に収まる
    ように、前記第1および第2の結果の1つを選択して出
    力することを特徴とするモジュロ加算回路。
  2. 【請求項2】 前記の与えられる偏位値には、該偏位値
    の正負を示す符号ビットが含まれ、 さらに、前記モジュロ加算回路が、 前記モジュロ値の1の補数を生成するために前記モジュ
    ロ値を反転するインバータと、 前記偏位値の前記符号ビットにしたがって前記モジュロ
    値および前記のモジュロ値の1の補数から1つを選択
    し、この選択した値を出力するモジュロ選択マルチプレ
    クサと、 前記モジュロ選択マルチプレクサが前記のモジュロ値の
    1の補数を選択したとき、前記偏位値の前記符号ビット
    により該偏位値が正であることが示された場合に、前記
    加算回路がR1から前記モジュロ値を引いたものに等し
    い前記R2を算出するように、前記加算回路に供給され
    るCarry−In(キャリー・イン)値を生成するC
    arry−In(キャリー・イン)回路とを備え、 前記モジュロ選択マルチプレクサが、前記入力選択回路
    が該モジュロ選択マルチプレクサにより出力される選択
    された値を前記加算回路に供給するように該入力選択回
    路に接続された出力ポートを有していることを特徴とす
    る請求項1記載のモジュロ加算回路。
  3. 【請求項3】 前記モジュロ値の「1」に設定されてい
    るビットの最上位ビット位置に対応する整数をNとし、 前記の出力される結果のビット長をMとし、 前記モジュロ加算回路が、マスク値を生成するように前
    記モジュロ値をデコードするデコーダを含み、前記マス
    ク値の最下位N+1ビットが、第1の2進値に設定さ
    れ、前記マスク値の最上位M−N−1ビットが、前記第
    1の2進値の逆である第2の2進値に等しく設定され、 前記出力回路が、ビット・マルチプレクサを含み、この
    ビット・マルチプレクサは、前記の選択された結果およ
    び前記開始値をその入力ポートで受信し、且つ前記のマ
    スク値出力をその選択ポートで受信するとともに、その
    最下位N+1ビットが前記の選択された結果の最下位N
    +1ビットであり、その最上位M−N−1ビットが前記
    開始値の最上位M−N−1ビットであるような値を出力
    することを特徴とする請求項1記載のモジュロ加算回
    路。
  4. 【請求項4】 前記の与えられる偏位値には、該偏位値
    の正負を示す符号ビットが含まれ、 前記加算回路がMビットのキャリービットを生成し、前
    記加算回路が、前記Mビットのキャリービットのうちキ
    ャリービット選択信号により指定されたキャリービット
    を出力するキャリービット・マルチプレクサを含み、前
    記キャリービット・マルチプレクサが、前記所定の計算
    サイクルの前記第1の期間に第1のキャリービットCN
    1を出力し、さらに前記所定の計算サイクルの前記第2
    の期間に第2のキャリービットCN2を出力し、 前記のモジュロ加算回路のデコーダが、前記加算回路の
    第N番目のビットに対応する該加算器の内部キャリービ
    ットを選択するように前記キャリービット選択信号を生
    成するために、前記の与えられるモジュロ値をデコード
    し、 前記モジュロ加算回路が、前記所定の計算サイクルの前
    記第1の期間に前記キャリービット・マルチプレクサに
    より出力される第1のキャリービットCN1を格納する
    ラッチを含み、さらに、 前記出力回路が、前記の偏位値の符号ビットならびに前
    記の第1および第2のキャリービットCN1およびCN
    2の所定の論理ブール関数に従って前記の第1および第
    2の結果の1つを選択して出力する論理回路を含むこと
    を特徴とする請求項3記載のモジュロ加算回路。
  5. 【請求項5】 前記の与えられる偏位値には、該偏位値
    の正負を示す符号ビットが含まれ、 前記の与えられるモジュロ値の「1」に設定されている
    ビットの最上位ビット位置に対応する整数をNとし、 前記の出力される結果のビット長をMとし、 前記加算回路がMビットのキャリービットを生成し、前
    記加算回路が、前記Mビットのキャリービットのうちキ
    ャリービット選択信号により指定されたキャリービット
    を出力するキャリービット・マルチプレクサを含み、前
    記キャリービット・マルチプレクサが、前記所定の計算
    サイクルの前記第1の期間に第1のキャリービットCN
    1を出力し、さらに前記所定の計算サイクルの前記第2
    の期間に第2のキャリービットCN2を出力し、 前記のモジュロ加算回路が、前記加算回路の第N番目の
    ビットに対応する該加算器の内部キャリービットを選択
    するように前記キャリービット選択信号を生成するため
    に、前記の与えられるモジュロ値をデコードするデコー
    ダを含み、 前記モジュロ加算回路が、前記所定の計算サイクルの前
    記第1の期間に前記キャリービット・マルチプレクサに
    より出力される第1のキャリービットを保持するラッチ
    を含み、さらに前記出力回路が、前記の偏位値の符号ビ
    ットならびに前記の第1および第2のキャリービットC
    N1およびCN2の所定の論理ブール関数に従って前記
    の第1および第2の結果の1つを選択して出力する論理
    回路を含むことを特徴とする請求項1記載のモジュロ加
    算回路。
  6. 【請求項6】 前記の与えられる偏位値には、該偏位値
    の正負を示す符号ビットが含まれ、 前記入力値記憶装置が、上限値および下限値をさらに与
    え、 前記出力回路は、前記の偏位値の符号ビットが、該偏位
    値が負であることを示す場合は前記第1の結果R1を前
    記下限値と比較し、前記の偏位値の符号ビットが、該偏
    位値が正であることを示す場合は前記第1の結果R1を
    前記上限値と比較して、比較結果信号を出力する比較器
    を含み、 前記出力回路が、前記の偏位値の符号ビットおよび前記
    比較結果信号の所定の論理関数に従って前記の第1およ
    び第2の結果の1つを出力する論理回路を含むことを特
    徴とする請求項1記載のモジュロ加算回路。
  7. 【請求項7】 2つの入力ポートおよび出力ポートを有
    し、第1の結果R1を生成する第1の加算回路と、 開始値および偏位値を前記の加算回路の2つの入力ポー
    トに供給するとともに、モジュロ値を与え、前記偏位値
    には、前記偏位値の正負を示す符号ビットが含まれてい
    る入力値記憶装置と、 前記の第1の加算回路の出力ポートに接続された第1の
    入力ポート、第2の入力ポートおよび出力ポートを有
    し、第2の結果R2を生成する第2の加算回路と、 前記モジュロ値の1の補数を生成するために前記モジュ
    ロ値を反転するインバータと、 前記偏位値の符号ビットに従って前記モジュロ値および
    前記のモジュロ値の1の補数から1つを選択し、この選
    択した値を前記の第2の加算回路の第2の入力ポートに
    出力するモジュロ選択マルチプレクサと、 前記モジュロ選択マルチプレクサが前記のモジュロ値の
    1の補数を選択したとき、前記偏位値の前記符号ビット
    により該偏位値が正であることが示された場合には、前
    記加算回路がR1から前記モジュロ値を引いたものに等
    しい前記R2を算出し、それ以外の場合には、前記加算
    回路がR1と前記モジュロ値との和に等しい前記R2を
    算出するように、前記第2の加算回路に供給されるCa
    rry−In(キャリー・イン)値を生成するCarr
    y−In(キャリー・イン)回路と、 選択結果が所定の値の範囲に収まるように前記の第1お
    よび第2の結果の1つを選択して出力する出力回路とを
    備えたことを特徴とするモジュロ加算回路。
  8. 【請求項8】 前記の与えられる偏位値には、該偏位値
    の正負を示す符号ビットが含まれ、 前記入力値記憶装置が、上限値および下限値をさらに与
    え、 前記出力回路は、前記の偏位値の符号ビットが、該偏位
    値が負であることを示す場合は前記第1の結果R1を前
    記下限値と比較し、前記の偏位値の符号ビットが、該偏
    位値が正であることを示す場合は前記第1の結果R1を
    前記上限値と比較して、比較結果信号を出力する比較器
    を含み、 前記出力回路が、前記の偏位値の符号ビットおよび前記
    比較結果信号の所定のブール関数に従って前記の第1お
    よび第2の結果の1つを出力する論理回路を含むことを
    特徴とする請求項7記載のモジュロ加算回路。
  9. 【請求項9】 モジュロ加算回路の動作方法において、 開始値、偏位値およびモジュロ値を前記加算回路に与え
    るステップと、 所定の計算サイクルの第1の期間と第2の期間を示す順
    序信号を与えるステップと、 前記所定の計算サイクルの前記第1の期間に第1の結果
    R1を算出するために、当該第1の期間に、前記開始値
    および前記偏位値を前記加算回路に供給するステップ
    と、 前記所定の計算サイクルの前記第1の期間の終わりに前
    記第1の結果R1をレジスタに記憶するステップと、 前記所定の計算サイクルの前記第2の期間に第2の結果
    R2を算出するために、当該第2の期間に、前記第1の
    結果R1および前記モジュロ値を前記加算回路に供給す
    るステップと、 選択結果が所定の範囲内に収まるように、前記所定の計
    算サイクルの前記第2の期間が終了する前に前記第1お
    よび第2の結果の1つを選択して出力するステップとか
    らなることを特徴とするモジュロ加算回路の動作方法。
  10. 【請求項10】 前記の与えられる偏位値には、該偏位
    値の正負を示す符号ビットが含まれ、 前記モジュロ値の1の補数を生成するために前記モジュ
    ロ値を反転するステップと、 前記所定の計算サイクルの前記第2の期間に、前記偏位
    値の符号ビットに従って前記モジュロ値および前記のモ
    ジュロ値の1の補数から1つを選択し、その選択した値
    を前記加算回路に出力するモジュロ選択ステップと、 前記モジュロ選択ステップが前記のモジュロ値の1の補
    数を選択したとき、前記偏位値の前記符号ビットにより
    該偏位値が正であることが示された場合に、前記加算回
    路が前記R1から前記モジュロ値を引いたものに等しい
    前記R2を算出するように、前記加算回路に供給される
    Carry−In(キャリー・イン)値を生成するステ
    ップとをさらに備えたことを特徴とする請求項9記載の
    モジュロ加算回路の動作方法。
  11. 【請求項11】 前記の与えられるモジュロ値の「1」
    に設定されているビットの最上位ビット位置に対応する
    整数をNとし、前記の出力される結果のビット長をMと
    し、前記モジュロ加算回路の動作方法が、 マスク値を生成するように前記の与えられるモジュロ値
    をデコードし、前記マスク値の最下位N+1ビットが、
    第1の2進値に設定され、前記マスク値の最上位M−N
    −1ビットが、前記第1の2進値の逆である第2の2進
    値に等しく設定されるようにするステップをさらに含
    み、 前記の選択して出力するステップが、その最下位N+1
    ビットが前記の選択された結果の最下位N+1ビットで
    あり、その最上位M−N−1ビットが前記開始値の最上
    位M−N−1ビットであるような値を出力することを特
    徴とする請求項9記載のモジュロ加算回路の動作方法。
  12. 【請求項12】 前記の与えられる偏位値に該偏位値の
    正負を示す符号ビットが含まれ、前記加算回路がMビッ
    トのキャリービットを生成し、さらに前記モジュロ加算
    回路の動作方法が、 前記所定の計算サイクルの前記第1の期間に前記加算回
    路の第N番目のビットに対応する第1のキャリービット
    CN1を前記加算回路から出力し、さらに前記所定の計
    算サイクルの前記第2の期間に前記加算回路の第N番目
    のビットに対応する第2のキャリービットCN2を前記
    加算回路から出力するステップと、 前記所定の計算サイクルの前記第1の期間に、前記加算
    回路により出力される第1のキャリービットCN1を格
    納するステップとを含み、さらに、 前記の選択して出力するステップが、前記の偏位値の符
    号ビットならびに前記の第1および第2のキャリービッ
    トCN1およびCN2からなる所定のブール関数に従っ
    て前記の第1および第2の結果の1つを選択して出力す
    るステップであることを特徴とする請求項11記載のモ
    ジュロ加算回路の動作方法。
  13. 【請求項13】 前記の与えられる偏位値に、該偏位値
    の正負を示す符号ビットが含まれ、 前記の与えられるモジュロ値の「1」に設定されている
    ビットの最上位ビット位置に対応する整数をNとし、前
    記の出力される結果のビット長をMとし、さらに前記モ
    ジュロ加算回路の動作方法が、 前記所定の計算サイクルの前記第1の期間に前記加算回
    路の第N番目のビットに対応する第1のキャリービット
    CN1を前記加算回路から出力し、さらに前記所定の計
    算サイクルの前記第2の期間に前記加算回路の第N番目
    のビットに対応する第2のキャリービットCN2を前記
    加算回路から出力するステップと、 前記所定の計算サイクルの前記第1の期間に、前記加算
    回路により出力される第1のキャリービットCN1を格
    納するステップとを含み、さらに、 前記の選択して出力するステップが、前記の偏位値の符
    号ビットならびに前記の第1および第2のキャリービッ
    トCN1およびCN2からなる所定のブール関数に従っ
    て前記の第1および第2の結果の1つを選択・出力する
    ステップとを含むことを特徴とする請求項9記載のモジ
    ュロ加算回路の動作方法。
  14. 【請求項14】 前記の与えられる偏位値には、該偏位
    値の正負を示す符号ビットが含まれ、さらに前記モジュ
    ロ加算回路の動作方法が、 上限値および下限値を与えるステップと、 前記の偏位値の符号ビットが、該偏位値が負であること
    を示す場合は前記第1の結果R1を前記下限値と比較
    し、前記の偏位値の符号ビットが、該偏位値が正である
    ことを示す場合は前記第1の結果R1を前記上限値と比
    較して、比較結果信号を出力するステップと、 前記の偏位値の符号ビットおよび前記比較結果信号の所
    定のブール関数に従って前記の第1および第2の結果の
    1つを出力するステップとを含むことを特徴とする請求
    項9記載のモジュロ加算回路の動作方法。
JP6226334A 1993-09-27 1994-09-21 モジュロ加算回路およびその動作方法 Pending JPH07168753A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/127,431 1993-09-27
US08/127,431 US5381360A (en) 1993-09-27 1993-09-27 Modulo arithmetic addressing circuit

Publications (1)

Publication Number Publication Date
JPH07168753A true JPH07168753A (ja) 1995-07-04

Family

ID=22430077

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6226334A Pending JPH07168753A (ja) 1993-09-27 1994-09-21 モジュロ加算回路およびその動作方法

Country Status (2)

Country Link
US (1) US5381360A (ja)
JP (1) JPH07168753A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6918024B2 (en) 2001-07-27 2005-07-12 Nec Corporation Address generating circuit and selection judging circuit
JP2007200360A (ja) * 2007-05-07 2007-08-09 Ricoh Co Ltd アドレスデータ生成装置及びメモリアドレッシング方法

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511017A (en) * 1994-06-01 1996-04-23 Exponential Technology, Inc. Reduced-modulus address generation using sign-extension and correction
US5790443A (en) * 1994-06-01 1998-08-04 S3 Incorporated Mixed-modulo address generation using shadow segment registers
US6055619A (en) * 1997-02-07 2000-04-25 Cirrus Logic, Inc. Circuits, system, and methods for processing multiple data streams
US6049858A (en) * 1997-08-27 2000-04-11 Lucent Technologies Inc. Modulo address generator with precomputed comparison and correction terms
US5983333A (en) * 1997-08-27 1999-11-09 Lucent Technologies Inc. High speed module address generator
US6047364A (en) * 1997-08-27 2000-04-04 Lucent Technologies Inc. True modulo addressing generator
US6073228A (en) * 1997-09-18 2000-06-06 Lucent Technologies Inc. Modulo address generator for generating an updated address
US6148386A (en) * 1998-03-19 2000-11-14 Lucent Technologies Inc Address generator circuity for a circular buffer
US5946735A (en) * 1998-09-09 1999-09-07 Bayes; James E. Quick-release football helmet chin strap
US6654871B1 (en) * 1999-11-09 2003-11-25 Motorola, Inc. Device and a method for performing stack operations in a processing system
US6754509B1 (en) * 1999-12-30 2004-06-22 Qualcomm, Incorporated Mobile communication device having dual micro processor architecture with shared digital signal processor and shared memory
GB2359641B (en) * 2000-02-25 2002-02-13 Siroyan Ltd Mapping circuitry and method
US6785798B2 (en) 2001-08-10 2004-08-31 Macronix International Co., Ltd. Method and system for circular addressing with efficient memory usage
JP2003110429A (ja) * 2001-09-28 2003-04-11 Sony Corp 符号化方法及び装置、復号方法及び装置、伝送方法及び装置、並びに記録媒体
CN1315058C (zh) * 2002-02-07 2007-05-09 旺宏电子股份有限公司 存储器中的循环寻址的地址产生装置及其集成电路
US20070011432A1 (en) * 2005-07-06 2007-01-11 Advanced Micro Devices, Inc. Address generation unit with operand recycling
DE602005021094D1 (de) * 2005-07-19 2010-06-17 Emma Mixed Signal Cv Arithmetisches Modul
US7849125B2 (en) 2006-07-07 2010-12-07 Via Telecom Co., Ltd Efficient computation of the modulo operation based on divisor (2n-1)
US8811401B2 (en) * 2012-06-21 2014-08-19 Breakingpoint Systems, Inc. Binding of network flows to process threads
US8929379B2 (en) 2012-06-21 2015-01-06 Breakingpoint Systems, Inc. High-speed CLD-based internal packet routing
JP6452508B2 (ja) * 2015-03-17 2019-01-16 オリンパス株式会社 3次元形状測定装置
RU2748743C1 (ru) * 2020-08-05 2021-05-31 Федеральное государственное казенное военное образовательное учреждение высшего образования "Военный учебно-научный центр Военно-воздушных сил "Военно-воздушная академия имени профессора Н.Е. Жуковского и Ю.А. Гагарина" (г. Воронеж) Министерства обороны Российской Федерации АРИФМЕТИЧЕСКОЕ УСТРОЙСТВО ПО МОДУЛЮ m
FR3122746A1 (fr) * 2021-05-10 2022-11-11 Commissariat à l'Energie Atomique et aux Energies Alternatives Procédé d'exécution d'un code machine par un microprocesseur

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4514808A (en) * 1978-04-28 1985-04-30 Tokyo Shibaura Denki Kabushiki Kaisha Data transfer system for a data processing system provided with direct memory access units
US4532590A (en) * 1980-04-25 1985-07-30 Data General Corporation Data processing system having a unique address translation unit
JPS5892025A (ja) * 1981-11-26 1983-06-01 Hitachi Ltd デ−タ処理方式
US4503500A (en) * 1982-02-11 1985-03-05 Texas Instruments Incorporated Microcomputer with bus interchange module
US4498135A (en) * 1982-02-22 1985-02-05 Texas Instruments Incorporated Microcomputer with accumulator addressing
US4893235A (en) * 1983-10-03 1990-01-09 Digital Equipment Corporation Central processing unit for a digital computer
NL8304442A (nl) * 1983-12-27 1985-07-16 Koninkl Philips Electronics Nv Geintegreerde en programmeerbare processor voor woordsgewijze digitale signaalbewerking.
US4847759A (en) * 1985-03-18 1989-07-11 International Business Machines Corp. Register selection mechanism and organization of an instruction prefetch buffer
US4742479A (en) * 1985-03-25 1988-05-03 Motorola, Inc. Modulo arithmetic unit having arbitrary offset and modulo values
US4744043A (en) * 1985-03-25 1988-05-10 Motorola, Inc. Data processor execution unit which receives data with reduced instruction overhead
US4722067A (en) * 1985-03-25 1988-01-26 Motorola, Inc. Method and apparatus for implementing modulo arithmetic calculations
US4935867A (en) * 1986-03-04 1990-06-19 Advanced Micro Devices, Inc. Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations
US4893279A (en) * 1986-03-04 1990-01-09 Advanced Micro Devices Inc. Storage arrangement having a pair of RAM memories selectively configurable for dual-access and two single-access RAMs
US4774652A (en) * 1987-02-18 1988-09-27 Apple Computer, Inc. Memory mapping unit for decoding address signals
US4908748A (en) * 1987-07-28 1990-03-13 Texas Instruments Incorporated Data processing device with parallel circular addressing hardware
US5233553A (en) * 1991-03-06 1993-08-03 Chips And Technologies, Inc. Apparatus for performing modulo arithmetic with three-port adder

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6918024B2 (en) 2001-07-27 2005-07-12 Nec Corporation Address generating circuit and selection judging circuit
JP2007200360A (ja) * 2007-05-07 2007-08-09 Ricoh Co Ltd アドレスデータ生成装置及びメモリアドレッシング方法

Also Published As

Publication number Publication date
US5381360A (en) 1995-01-10

Similar Documents

Publication Publication Date Title
JPH07168753A (ja) モジュロ加算回路およびその動作方法
US5511173A (en) Programmable logic array and data processing unit using the same
US6209017B1 (en) High speed digital signal processor
JP2625277B2 (ja) メモリアクセス装置
US6049858A (en) Modulo address generator with precomputed comparison and correction terms
US5249148A (en) Method and apparatus for performing restricted modulo arithmetic
US5978822A (en) Circuit for rotating, left shifting, or right shifting bits
JP3188467B2 (ja) 最小値・最大値検索装置
US5787025A (en) Method and system for performing arithmetic operations with single or double precision
US5459847A (en) Program counter mechanism having selector for selecting up-to-date instruction prefetch address based upon carry signal of adder which adds instruction size and LSB portion of address register
US5710914A (en) Digital signal processing method and system implementing pipelined read and write operations
US5983333A (en) High speed module address generator
US5402368A (en) Computing unit and digital signal processor using the same
JP3428741B2 (ja) 演算装置とアドレス発生装置及びプログラム制御装置
JPS62154032A (ja) インストラクシヨンカツシユメモリ
US4641278A (en) Memory device with a register interchange function
US5386534A (en) Data processing system for generating symmetrical range of addresses of instructing-address-value with the use of inverting sign value
US5751999A (en) Processor and data memory for outputting and receiving data on different buses for storage in the same location
JP2845115B2 (ja) デジタル信号処理回路
US6122651A (en) Method and apparatus for performing overshifted rotate through carry instructions by shifting in opposite directions
JPH0217828B2 (ja)
JP2000039995A (ja) 高性能マイクロプロセッサで使用するためのフレキシブル累算レジスタファイル
US5590302A (en) Device for generating structured addresses
JP2001216136A (ja) 加算回路およびプロセッサ
EP0888586A1 (en) Array indexing