JP4042364B2 - アドレス生成回路、選択判断回路 - Google Patents
アドレス生成回路、選択判断回路 Download PDFInfo
- Publication number
- JP4042364B2 JP4042364B2 JP2001227712A JP2001227712A JP4042364B2 JP 4042364 B2 JP4042364 B2 JP 4042364B2 JP 2001227712 A JP2001227712 A JP 2001227712A JP 2001227712 A JP2001227712 A JP 2001227712A JP 4042364 B2 JP4042364 B2 JP 4042364B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- bits
- circuit
- modulo
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
- G06F9/3552—Indexed addressing using wraparound, e.g. modulo or circular addressing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Error Detection And Correction (AREA)
Description
【発明の属する技術分野】
本発明はアドレス生成回路、選択判断回路に関し、特にモジュロ加算によるアドレス生成を高速に実行するアドレス生成回路、及びそのアドレス生成回路に適用される選択判断回路に関する。
【0002】
【従来の技術】
ディジタル信号を高速かつ効率的に処理する機構を備えるディジタル信号処理プロセッサ(DSP)は、組み込み用途に用いられることが多い。組み込み用途では、装置全体の大きさに制約があったり、製造コストを低く抑える必要があるため、DSPのチップサイズ、特に同チップに占める内蔵メモリの大きさが制限される。こうした事を考慮して、DSPには、内蔵メモリのサイズを制限しても効率を落とさないアーキテクチャが採用されている。例えば、DSPにおけるメモリアクセス方法の一つであるモジュロアドレシングは、モジュロ加算により生成したアドレスを用いて一定のメモリ領域を巡回的にアクセスすることで、限られたメモリ領域を何度も使い回すことを可能とする。しかし、このようなメモリ利用における効率化の反面、上記アドレス生成におけるモジュロ加算は、通常の加算と異なり、加算結果がその上限値あるいは下限値を逸脱した場合に適切な値に補正する必要があるため、回路としての遅延時間が大きくなる。また、本演算を行なう回路は、乗算器と並んでDSPの全データパスにおける遅延時間が最大のパス(=クリティカルパス)になる可能性が高い。このため、モジュロ加算を高速に実行できるアドレス生成回路が必要となる。
【0003】
このようなモジュロ加算を高速に実行するアドレス生成回路として、従来、例えば特開平7−168753号公報に示されているように、複数の演算器を用いてモジュロ加算における加算や補正処理を行う回路が提案されている。
【0004】
この従来のアドレス生成回路では、モジュロアドレシングの対象となるメモリ領域(以下、モジュロ対象領域)のサイズDMが2K-1 ≦DM<2K であり、領域の先頭アドレスBASEにおける下位Kビットがすべて0であるとする。そして、本回路が生成するアドレスはBASEからBASE+DM−1までの任意の整数値を取るとする。
【0005】
このような条件の下で、本回路は、更新前のアドレスDPに更新ステップDNを加算することで更新後のアドレスDP' を生成する。但し、DNの値が負であるとき加算後の値がBASEより小さくなった場合にはDMを加算し、DNの値が正であるとき同加算後の値がBASE+DMより大きいかあるいは等しくなった場合にはDMを減算することにより、同加算後の値を補正してDP' とする。
【0006】
図8は、従来のアドレス生成回路の構成を示すブロック図である。本回路は、アドレスDP205に更新ステップDN206を加算する2入力加算器201と、同加算器201の加算結果208に対して領域サイズDM207を加算あるいは減算する2入力加減算器202と、加算器201の出力結果208とBASEあるいはBASE+DMの減算によりこれらの大小比較を行い、本比較結果に基づいて加算器201,加減算器202の出力結果208,209のいずれか一方を選択するための選択信号210を生成する選択判断回路203と、選択信号210に基づいて出力結果208,209の一方を選択して回路出力DP' 211とするマルチプレクサ204とを含んで構成される。なお、選択判断回路203は、判断結果が真であるとき選択信号210として“0”を出力し、さもなければ“1”を出力する。また、マルチプレクサ204は、選択信号210が“0”であるとき加算器202の結果209を出力し、同信号が“1”であるとき加算器201の結果208を出力する。
【0007】
次に、本回路の動作について説明する。本回路では、補正が不要な場合と補正が必要な場合の両アドレスを投機的に計算し、補正が必要かどうかの判断に基づいて一方のアドレスを選択して回路出力とする。より具体的には、まず、補正が不要な場合のアドレスを計算するため、2入力加算器201において、DP205にDN206を加算する。次に、補正が必要な場合のアドレスを計算するため、2入力加減算器202において、DN206の値が正の場合、加算結果208からDM207を減算する。一方、同DN206の値が負の場合には、加算結果208にDM207を加算する。この加減算器202の動作と並行して、選択判断回路203において、補正が必要かどうかを次のように判断して選択信号210を出力する。DN206の値が正の場合、加算結果208がBASE+DMより大きいかあるいは等しいかどうかを判断し、大きいかあるいは等しいときには選択信号210として“0”を出力するが、そうでなければ同信号210として“1”を出力する。また、同DN206の値が負の場合、加算結果208がBASEより小さいかどうかを判断し、小さいときには選択信号210として“0”を出力するが、そうでなければ同信号210として“1”を出力する。その後、マルチプレクサ204において、選択信号210が“0”の場合、加減算器202の出力結果209を回路出力DP' 211として出力する。また、選択信号210が“1”の場合には、加算器201の出力結果208をDP' 211として出力する。
【0008】
【発明が解決しようとする課題】
上記従来技術では、加算器201の結果が確定するのを待ってから加減算器202および選択判断回路203が有効な動作を開始するため、これら演算器の動作が逐次的になっている。これにより、本アドレス生成回路の遅延時間は大きくなり、具体的には「(加算器201の遅延時間)+(加減算器202の遅延時間)+(マルチプレクサ204の遅延時間)」、あるいは「(加算器201の遅延時間)+(選択判断回路203の遅延時間)+(マルチプレクサ204の遅延時間)」となる。
【0009】
本発明は上記事情に鑑みてなされたものであり、演算器どうしの入出力依存関係を無くして逐次動作を解消することによりモジュロ加算を高速に実行するアドレス生成回路、及びそれに適用される選択判断回路を提供することを目的とする。
【0011】
【課題を解決するための手段】
係る目的を達成するために請求項1記載の発明は、一定のメモリ領域に巡回的にアクセスするためのアドレスをモジュロ加算により生成するアドレス生成回路であって、2NビットのアドレスとNビットの更新ステップおよびNビットのモジュロ対象領域サイズに対して、2NビットのアドレスとNビットの更新ステップを加算して2Nビットの加算結果を出力する2入力加算器と、2Nビットのアドレスにおける下位NビットとNビットの更新ステップおよびNビットのモジュロ対象領域サイズを加減算してNビットの加減算結果を出力する3入力加減算器と、3入力加減算器によるNビットの出力結果に対してその最上位ビット側から2Nビットのアドレスにおける上位Nビットを連接して2Nビットの連接結果を出力する連接手段と、2入力加算器の出力結果あるいは連接手段の出力結果のいずれか一方を選択するための選択信号を、2Nビットのアドレスにおける下位NビットとNビットの更新ステップおよびNビットのモジュロ対象領域サイズに基づいて生成する選択判断回路と、選択判断回路からの選択信号により2入力加算器による2Nビットの出力結果あるいは連接手段による2Nビットの出力結果のいずれか一方を選択するマルチプレクサと、を有し、2入力加算器と、3入力加減算器と、選択判断回路とをそれぞれ独立に並列動作させることを特徴とする。
【0012】
請求項2記載の発明は、請求項1記載の発明において、選択判断回路は、モジュロ対象領域のサイズを表す所定数のビットのうち、実際にサイズ表現に使用されたビットのなかで最上位のビットを検出し、アドレスにおいて、この検出した最上位のビットと同位のビットより上位のビットすべてをゼロクリアした値を生成するマスク回路と、上から所定数のビットがその符号を表す更新ステップの該符号ビットの否定と、モジュロ対象領域サイズを表す各ビットとの論理積を算出する否定論理積回路と、マスク回路の出力に更新ステップを加算し、否定論理積回路の出力を減算する3入力加減算器と、3入力加減算器の出力と更新ステップの符号ビットとの排他的論理和を算出する排他的論理和回路と、を有し、モジュロ対象領域サイズDMは、2 K-1 ≦DM<2 K (Kは任意の自然数)で、モジュロ対象領域の先頭アドレスにおける下位Kビットがすべて0であり、更新ステップを表すデータは、下位Kビットが更新ステップ数を表し、その上位ビットが該更新ステップの符号を表し、選択判断回路は、3入力加減算器によりアドレスの下位Kビットと更新ステップの下位Kビットの加算結果から、モジュロ対象領域サイズ、あるいは0を減算し、排他的論理和回路により、3入力加減算器の減算結果における固定の位置にある符号ビットと更新ステップの符号ビットとの排他的論理和を算出することで選択信号を生成することを特徴とする。
【0014】
請求項3記載の発明は、一定のモジュロ対象領域に巡回的にアクセスするために、更新前アドレスに更新ステップを加算することで生成した更新アドレスが、モジュロ対象領域を逸脱しているか否かを判断する選択判断回路であって、モジュロ対象領域のサイズを表す所定数のビットのうち、実際にサイズ表現に使用されたビットのなかで最上位のビットを検出し、更新前アドレスにおいて、この検出した最上位のビットと同位のビットより上位のビットすべてをゼロクリアした値を生成するマスク回路と、上から所定数のビットがその符号を表す更新ステップの該符号ビットの否定と、モジュロ対象領域サイズを表す各ビットとの論理積を算出する否定論理積回路と、マスク回路の出力に更新ステップを加算し、否定論理積回路の出力を減算する3入力加減算器と、3入力加減算器の出力と更新ステップの符号ビットとの排他的論理和を算出する排他的論理和回路と、を有し、モジュロ対象領域サイズDMは、2 K-1 ≦DM<2 K (Kは任意の自然数)で、モジュロ対象領域の先頭アドレスにおける下位Kビットがすべて0であり、更新ステップを表すデータは、下位Kビットが更新ステップ数を表し、その上位ビットが該更新ステップの符号を表し、選択判断回路は、3入力加減算器によりアドレスの下位Kビットと更新ステップの下位Kビットの加算結果から、モジュロ対象領域サイズ、あるいは0を減算し、排他的論理和回路により、3入力加減算器の減算結果における固定の位置にある符号ビットと更新ステップの符号ビットとの排他的論理和を算出することで選択信号を生成することを特徴とする。
【0016】
本発明によるアドレス生成回路は、アドレスと更新ステップを加算する2入力加算器(図1の101)と、アドレスと更新ステップおよび領域サイズを加減算する3入力加減算器(図1の102)と、これら加減算結果の選択信号を小さい遅延時間で決定できる選択判断回路(図1の103)とを有し、これらを独立に並列動作させる。
【0017】
このように、モジュロ加算に必要な演算器をすべて並列に動作させることで、アドレス生成を高速に実行することができる。
【0018】
【発明の実施の形態】
[構成の説明]
以下、本発明の実施の一形態について説明する。本実施の形態によるアドレス生成回路では、16ビットのアドレスでアクセスするメモリにおいて、16ビットのモジュロ対象領域サイズDMを2K-1 ≦DM<2K (Kは15以下の整数)とし、領域の先頭アドレスBASEの下位Kビットがすべて0であるとする。そして、本回路が生成するアドレスはBASEからBASE+DM−1までの任意の整数値を取るとする。このような条件の下で、本回路は、更新前のアドレスDPに16ビットの更新ステップDNを加算することで更新後のアドレスDP' を生成する。但し、DNの値が負であるとき加算後の値がBASEより小さくなった場合にはDMを加算し、DNの値が正であるとき同加算後の値がBASE+DMより大きいかあるいは等しくなった場合にはDMを減ずることにより、同加算後の値を補正してDP' とする。なお、DNの上から16−Kビットは、その符号を表すものとする。
【0019】
図1は本実施の形態によるアドレス生成回路の構成を示すブロック図である。本回路は、アドレスDP105に更新ステップDN106を加算する2入力加算器101と、DP105にDN106を加算し、さらにDM107を加算あるいは減算する3入力加減算器102と、加算器101,加減算器102の出力結果108, 109の何れか一方を選択するための選択信号110を生成する選択判断回路103と、選択信号110に基づいて出力結果108,109の一方を選択して回路出力DP’111とするマルチプレクサ104とを含んで構成される。
【0020】
2入力加算器101には、16ビットのアドレスDP105と16ビットの更新ステップDN106とを入力し、DP+DNを16ビットの加算結果108としてマルチプレクサ104に出力する。
【0021】
3入力加減算器102には、16ビットのDP105と、16ビットのDN106と、その符号ビット106’と、16ビットのDM107とを入力する。そして、DNの符号ビット(=DNの最上位ビット)が“0”のとき、DP+DN−DMを16ビットの加減算結果としてマルチプレクサ104に出力する。また、同符号ビットが“1”のときには、DP+DN+DMを16ビット加算結果109としてマルチプレクサ104に出力する。
【0022】
選択判断回路103には、16ビットのDP105と、16ビットのDN106と、その符号ビット106’と、16ビットのDM107を入力する。そして、DNの符号ビットが“0”のとき、DPの下位KビットとDNの下位Kビットの加算結果がDMより大きいか等しい場合に選択信号110として“0”を出力し、さもなければ“1”を出力する。一方、同符号ビットが“1”のとき、DPの下位KビットとDNの下位Kビットの加算結果が0より小さい場合に選択信号110として“0”を出力し、さもなければ“1”を出力する。但し、「DPの下位KビットとDNの下位Kビットの加算結果」は、図2に示すように、DP105の上位(16−K)ビットをゼロクリアした16ビットの値と、(16−K)ビットの符号ビット部およびKビットの有効数字部からなる16ビットのDN107との16ビット加算結果を指すものとする。なお、上記において、DP,DNにおける下位Kビットの加算結果とDMの比較は、BASEの下位Kビットがすべて0であることから、DP+DNとBASE+DMの比較と等価である。また、同様の理由により、DP,DNにおける下位Kビットの加算結果と0の比較は、DP+DNとBASEの比較と等価である。
【0023】
このような入出力を持つ本判断回路103は、さらに、図3に示すように、DP105の下位Kビットを切り出すマスク回路1030と、DN106の符号ビットの否定とDMにおける各ビットとの論理積を計算する否定論理積回路1031と、前記マスク回路1030の出力結果とDN106とを加算して、この加算結果から前記否定論理積回路1031の出力結果を減算する3入力加減算器1032と、この3入力加減算器1032の16ビット加減算結果における符号ビットとDN106の符号ビットとの排他的論理和を計算するEXORゲート1033とを含んで構成される。
【0024】
マルチプレクサ104では、2入力加算器101の16ビット出力結果108と3入力加減算器102の16ビット出力結果109が入力される。そして、同じく入力される選択信号110に基づいて、同信号110が“0”のとき、3入力加減算器102の結果109が16ビットの回路出力DP' 111として出力される。また、同信号110が“1”のときには、2入力加算器101の結果108が16ビットの回路出力DP' 111として出力される。
【0025】
なお、加減算を高速に実行するため、上記2入力加算器101にはキャリールックアヘッドアダーを適用し、3入力加減算器102, 3入力加減算器1032には、キャリーセーブアダーおよび加算器の最終段にキャリールックアヘッドアダーを適用する。
【0026】
[動作の説明]
本実施形態の動作について図1、3を参照しながら詳細に説明する。本回路では、補正が不要な場合と補正が必要な場合の両アドレスを投機的に計算し、補正が必要かどうかの判断に基づいて一方のアドレスを選択して回路出力とする。
【0027】
まず、2入力加算器101,3入力加減算器102,選択判断回路103が、それぞれ独立に並列動作する。
【0028】
2入力加算器101では、補正が不要な場合のアドレスを計算するため、DP105とDN106を加算して結果108を出力する。
【0029】
3入力加減算器102では、補正が必要な場合のアドレスを計算するため、DN106の符号ビットが“0”のとき、DP105とDN106を加算してDM107を減算する。また、同DN106の符号ビットが“1”のときには、DP105とDN106およびDM107を加算する。
【0030】
選択判断回路103では、まず、マスク回路1030において、DM107における各ビットのうち値が“1”であり、かつ最も上位に位置するビットを検出する。DM107の上から数えて1ビット目から(16−K)ビット目がすべて“0”であり、(16−K)ビット目の次のビット(すなわち、同DM107の下からKビット目)が“1”であることから、検出したビットは下からKビット目に位置する。この検出したビットに基づいて、下位Kビットをすべて“1”、それ以外のビットを“0”としたマスクを生成する。そして、本マスクの各ビットとDP105における各ビットとの論理積を計算することで、DP105の下位Kビットを切り出す。
【0031】
マスク回路1030の動作と並行して、否定論理積回路1031において、DN106の符号ビットの否定とDM107の各ビットとの論理積を計算する。これにより、DN106の符号ビットが“0”のときには値「DM」が生成され、同符号ビットが“1”のときには値「0」が生成される。
【0032】
マスク回路1030と否定論理積回路1031の出力が確定した後、3入力加減算器1032において、マスク回路1030の出力とDN106を加算して、否定論理積回路1031の出力を減算する。これにより、DN106の符号ビットが“0”のときには、DPの下位KビットとDNの下位Kビットの加算結果がDMより大きいかあるいは等しいかを判断するための減算が行われる。また、同符号ビットが“1”のときには、DPの下位KビットとDNの下位Kビットの加算結果が0より小さいかを判断するための減算が行われる。
【0033】
DN106の符号ビットが“0”のときに、3入力加減算器1032による加減算結果の符号ビット(上位16−Kビット)が“0”であると、DP+DNがモジュロ対象領域を逸脱していると判定できる。また、同符号ビットが“1”のときに加減算結果の符号ビットが“1”であると、DP+DNがモジュロ対象領域を逸脱していると判定できる。つまり、DN106の符号ビットと減算結果(=3入力加減算器1032による出力結果)の符号ビットが一致するとき、DP+DNがモジュロ対象領域を逸脱していることになる。そこで、EXORゲート1033において、3入力加減算器1032による出力結果の符号ビットとDNの符号ビットとの排他的論理和を計算する。これにより、更新アドレスがモジュロ対象領域を逸脱しているとき両符号ビットが一致するので選択信号110として“0”が出力され、さもなければ“1”が出力される。
【0034】
これら2入力加算器101,3入力加減算器102,選択判断回路103による出力が確定した後、マルチプレクサ104は、選択判断回路103からの選択信号が“0”の場合、3入力加減算器102の出力結果109を回路出力DP’として出力する。また、選択信号110が“1”の場合には、2入力加算器101の出力結果108をDP’111として出力する。
【0035】
このように、2入力加算器101、3入力加減算器102、選択判断回路103を独立に並列動作させたとき、選択判断回路103がクリティカルパスとなるため、アドレス生成回路全体の遅延時間は「(選択判断回路103の遅延時間)+(マルチプレクサ104の遅延時間)」となる。
【0036】
ここで、本実施形態と上述した特開平7−168753号公報(以下、従来例1という)に開示された「モジュロ加算回路」との遅延時間について比較考察する。
まず、本実施形態の選択判断回路103は、DP105の下位KビットとDN106の加算結果をDMあるいは0と比較している。このため、図4に示すように、3入力加減算器1032の出力結果における符号ビットを用いて選択判断を行なうことができる。すなわち、3入力加減算器1032の出力結果における下からK+1番目のビットがキャリーにより反転するのを検出することで選択判断を行なうことになるが、本実施形態においては、上位16−KビットをゼロクリアしたDPにDNを加算するため、K+1番目のビットのキャリーが最上位のビットまで反映される。そこで、このモジュロ対象領域のサイズ(2K-1 ≦DM<2K )が変更されても、この最上位のビットを見ることで選択判断を行なうことができる。一方、上述した従来例1のモジュロ加算回路においても、DP+DNの加算結果を、BASE+DM、あるいはBASEと比較する場合、図4に示されるように3入力加減算器の出力結果における下からK+1番目のビットがキャリーにより反転するのを検出することで選択判断を行なうことになる。しかしながら、従来例1では、K+1番目のビットのキャリーが最上位ビットまで反映されることはないので、この任意の位置にあるK+1番目のビットを検出しなければならない。そのため、図5に示されるように任意の位置にあるビットを抽出するためのマルチプレクサが必要となる。本実施形態は固定された位置にあるビットを用いるのでこのようなマルチプレクサが不要になる。これにより、従来例1は本実施形態よりもマルチプレクサの分だけ遅くなる。
【0037】
また、図5に示すように、本実施形態ではマスク回路が必要であるのに対し、従来例1では検出すべきキャリービットの位置(すなわち、下からK+1番目)を生成するデコーダ回路が必要となる。このデコーダ回路は、マスク回路と同様に、DM107における各ビットのうち値が“1”であり、かつ最も上位に位置するビットを検出するため、本実施形態は、従来例1のモジュロ加算回路よりも高々ANDゲート一段分だけ遅くなる。このように両者は互いに他より遅くなる要因を有するが、通常、マルチプレクサはANDゲート一段よりも遅いことから、本実施形態は従来例1のモジュロ加算回路よりも高速である。
【0038】
また、選択判断回路103内の3入力加減算器や3入力加減算器102による加減算は、3データの加減算を2回に分けて実行する従来技術の加減算よりも高速である。なぜなら、図6に示すように、前者ではキャリーセーブアダー1段とキャリールックアヘッドアダー1段で済むが、後者ではキャリールックアヘッドアダー2段が必要となるからである。なお、キャリーセーブアダーは、キャリールックアヘッドアダーよりも高速である。
【0039】
これらのことから、本アドレス生成回路の遅延時間は、従来技術の遅延時間である「(加算器201の遅延時間)+(加減算器202の遅延時間)+(マルチプレクサ204の遅延時間)」、あるいは「(加算器201の遅延時間)+(選択判断回路203の遅延時間)+(マルチプレクサ204の遅延時間)」よりも小さい。
【0040】
[実施例]
DN106の値が正である場合と負である場合の計算例を以下に示す。
まず、DNが正である場合の例として、「DP=0x012F,DN=0x0006,DM=0x0010」であるときの本実施の形態によるアドレス生成例を示す。本例では、DMが0x0010(=2^4)であることから、K=5であり、モジュロ対象領域は0x0120から0x012Fまでとなる。また、DP+DNが0x0135であることから、モジュロ対象領域を逸脱する例となっている。このとき、2入力加算器101の出力(DP+DN)108は、0x0135となり、3入力加算器102の出力(DP+DN−DM)109は0x0125となる。一方、選択判断回路103における3入力加減算器1032の出力は、
0x000F(マスク回路1030の出力)+0x0006(DN)−0x0010(DM)=0x0005
となる。そして、本出力の符号ビット“0”とDN106の符号ビット“0”との排他的論理和1033である選択信号110が“0”となることから、3入力加減算器102の出力結果109がマルチプレクサ104により選択されて回路出力DP' 111となる。
【0041】
次に、DNが負である場合の例として、「DP=0x0123,DN=0xFFFA,DM=0x0010」であるときのアドレス生成例を示す。本例においてもK=5であり、モジュロ対象領域は0x0120から0x012Fまでとなる。また、DP+DNが0x011Dであることから、モジュロ対象領域を逸脱する例となっている。このとき、2入力加算器101の出力(DP+DN)108は、0x011Dとなり、3入力加算器102の出力(DP+DN+DM)109は0x012Dとなる。一方選択判断回路103における3入力加減算器1032の出力は、
0x0003(マスク回路1030の出力)+0xFFFA(DN)−0x0000=0xFFFD
となる。そして、本出力の符号ビット“1”とDN106の符号ビット“1”との排他的論理和1033である選択信号110が“0”となることから、3入力加減算器102の出力結果109がマルチプレクサ104により選択されて回路出力DP' 111となる。
【0042】
上記実施の形態の説明では、アドレスDP105、更新ステップDN106、領域サイズDM107がすべて16ビットである場合について説明したが、他のビット長でも本発明の実施の形態が有効であることは明らかである。例えば、DPが32ビットであり、DNおよびDMが16ビットである場合のように、アドレスの長さが2Nビットであり、更新ステップや領域サイズの長さがNビットである場合の実施の形態について、図7を参照して簡単に説明する。同図において、2入力加算器101およびマルチプレクサ104のデータ幅が32ビットであり、DP105の下位16ビットを3入力加減算器102および選択判断回路103の入力とし、DP105の上位16ビットと3入力加減算器102の16ビット出力結果109とを連接部112により連接した32ビットの値をマルチプレクサ104の入力とする以外は図1の構成と同じである。2入力加算器101は32ビット演算となるが、選択判断回路103は16ビット演算のままでよい。このため、選択判断回路103の遅延時間は加算器101の遅延時間よりも小さくなる。よって、図7におけるアドレス生成回路の遅延時間は、「(2入力加算器101の遅延)+(マルチプレクサ104の遅延)」となり、通常の加算に対するモジュロ加算のオーバーヘッドはマルチプレクサ104の遅延時間だけですむ。
【0043】
なお、上述した実施形態は本発明の好適な実施の形態である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施が可能である。
【0044】
【発明の効果】
以上の説明より明らかなように本発明は、2入力加算器、3入力加減算器、選択判断回路をすべて並列動作させることで、逐次的動作を解消し、モジュロ加算によるアドレス生成を高速に実行することができる。
【0045】
また、選択判断回路は、下位Kビット以外の上位ビットをすべてゼロクリアしたアドレスと更新ステップとを加算し、この加算結果をモジュロ対象領域サイズ、あるいは0と比較している。従って、3入力加減算器による下からK+1番目のビットがキャリーにより反転するのを検出することで選択判断を行なう際に、K+1番目のビットのキャリーが最上位のビットまで反映され、モジュロ対象領域のサイズが変更されても、この最上位のビットを用いて選択判断を行なうことができる。従って、従来、任意の位置にあるビットを抽出するために必要であったマルチプレクサが不要となり、アドレスの生成をさらに高速に実現することができる。
【0046】
また、アドレスの長さが更新ステップや領域サイズの長さよりも大きい場合、選択判断回路の遅延時間が2入力加算器の遅延時間よりも小さくなり、通常の加算とマルチプレクサ1段の遅延時間でモジュロ加算を実行することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態によるアドレス生成回路の構成を示すブロック図である。
【図2】本発明の実施の形態における下位Kビットの加算を示す図である。
【図3】本発明の実施の形態による選択判断回路の構成を示すブロック図である。
【図4】実施形態と従来技術における3入力加減算器の違いを示す図である。
【図5】実施形態と従来技術との選択判断回路の違いを示す図である。
【図6】実施形態と従来技術との違いを示す図である。
【図7】本発明の第2の実施の形態によるアドレス生成回路の構成を示すブロック図である。
【図8】従来のアドレス生成回路の構成を示すブロック図である。
【符号の説明】
101 2入力加算器
102 3入力加減算器
103 選択判断回路
104 マルチプレクサ
Claims (3)
- 一定のメモリ領域に巡回的にアクセスするためのアドレスをモジュロ加算により生成するアドレス生成回路であって、
2NビットのアドレスとNビットの更新ステップおよびNビットのモジュロ対象領域サイズに対して、
2NビットのアドレスとNビットの更新ステップを加算して2Nビットの加算結果を出力する2入力加算器と、
2Nビットのアドレスにおける下位NビットとNビットの更新ステップおよびNビットのモジュロ対象領域サイズを加減算してNビットの加減算結果を出力する3入力加減算器と、
前記3入力加減算器によるNビットの出力結果に対してその最上位ビット側から2Nビットのアドレスにおける上位Nビットを連接して2Nビットの連接結果を出力する連接手段と、
2入力加算器の出力結果あるいは連接手段の出力結果のいずれか一方を選択するための選択信号を、2Nビットのアドレスにおける下位NビットとNビットの更新ステップおよびNビットのモジュロ対象領域サイズに基づいて生成する選択判断回路と、
前記選択判断回路からの前記選択信号により2入力加算器による2Nビットの出力結果あるいは連接手段による2Nビットの出力結果のいずれか一方を選択するマルチプレクサと、を有し、
前記2入力加算器と、前記3入力加減算器と、前記選択判断回路とをそれぞれ独立に並列動作させることを特徴とするアドレス生成回路。 - 前記選択判断回路は、
モジュロ対象領域のサイズを表す所定数のビットのうち、実際にサイズ表現に使用されたビットのなかで最上位のビットを検出し、前記アドレスにおいて、この検出した最上位のビットと同位のビットより上位のビットすべてをゼロクリアした値を生成するマスク回路と、
上から所定数のビットがその符号を表す前記更新ステップの該符号ビットの否定と、前記モジュロ対象領域サイズを表す各ビットとの論理積を算出する否定論理積回路と、
前記マスク回路の出力に前記更新ステップを加算し、前記否定論理積回路の出力を減算する3入力加減算器と、
前記3入力加減算器の出力と前記更新ステップの符号ビットとの排他的論理和を算出する排他的論理和回路と、
を有し、
前記モジュロ対象領域サイズDMは、2 K-1 ≦DM<2 K (Kは任意の自然数)で、前記モジュロ対象領域の先頭アドレスにおける下位Kビットがすべて0であり、
前記更新ステップを表すデータは、前記下位Kビットが更新ステップ数を表し、その上位ビットが該更新ステップの符号を表し、
前記選択判断回路は、
前記3入力加減算器により前記アドレスの下位Kビットと前記更新ステップの下位Kビットの加算結果から、モジュロ対象領域サイズ、あるいは0を減算し、
前記排他的論理和回路により、前記3入力加減算器の減算結果における固定の位置にある符号ビットと前記更新ステップの符号ビットとの排他的論理和を算出することで前記選択信号を生成することを特徴とする請求項1記載のアドレス生成回路。 - 一定のモジュロ対象領域に巡回的にアクセスするために、更新前アドレスに更新ステップを加算することで生成した更新アドレスが、前記モジュロ対象領域を逸脱しているか否かを判断する選択判断回路であって、
モジュロ対象領域のサイズを表す所定数のビットのうち、実際にサイズ表現に使用されたビットのなかで最上位のビットを検出し、更新前アドレスにおいて、この検出した最上位のビットと同位のビットより上位のビットすべてをゼロクリアした値を生成するマスク回路と、
上から所定数のビットがその符号を表す前記更新ステップの該符号ビットの否定と、前記モジュロ対象領域サイズを表す各ビットとの論理積を算出する否定論理積回路と、
前記マスク回路の出力に前記更新ステップを加算し、前記否定論理積回路の出力を減算する3入力加減算器と、
前記3入力加減算器の出力と前記更新ステップの符号ビットとの排他的論理和を算出する排他的論理和回路と、
を有し、
前記モジュロ対象領域サイズDMは、2 K-1 ≦DM<2 K (Kは任意の自然数)で、前記モジュロ対象領域の先頭アドレスにおける下位Kビットがすべて0であり、
前記更新ステップを表すデータは、前記下位Kビットが更新ステップ数を表し、その上位ビットが該更新ステップの符号を表し、
前記選択判断回路は、
前記3入力加減算器により前記アドレスの下位Kビットと前記更新ステップの下位Kビットの加算結果から、モジュロ対象領域サイズ、あるいは0を減算し、
前記排他的論理和回路により、前記3入力加減算器の減算結果における固定の位置にある符号ビットと前記更新ステップの符号ビットとの排他的論理和を算出することで前記選択信号を生成することを特徴とする選択判断回路。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001227712A JP4042364B2 (ja) | 2001-07-27 | 2001-07-27 | アドレス生成回路、選択判断回路 |
| US10/202,330 US6918024B2 (en) | 2001-07-27 | 2002-07-24 | Address generating circuit and selection judging circuit |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001227712A JP4042364B2 (ja) | 2001-07-27 | 2001-07-27 | アドレス生成回路、選択判断回路 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2003044353A JP2003044353A (ja) | 2003-02-14 |
| JP4042364B2 true JP4042364B2 (ja) | 2008-02-06 |
Family
ID=19060334
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001227712A Expired - Fee Related JP4042364B2 (ja) | 2001-07-27 | 2001-07-27 | アドレス生成回路、選択判断回路 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US6918024B2 (ja) |
| JP (1) | JP4042364B2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12133778B2 (en) | 2019-01-16 | 2024-11-05 | Tokuyama Dental Corporation | Curable composition for denture base |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8225306B2 (en) * | 2002-12-12 | 2012-07-17 | Dell Products L.P. | Platform independent imaging method and system |
| US7676537B2 (en) * | 2005-09-27 | 2010-03-09 | Micrel, Inc. | Address generation method for combining multiple selection results |
| US8914612B2 (en) * | 2007-10-29 | 2014-12-16 | Conversant Intellectual Property Management Inc. | Data processing with time-based memory access |
| US8195919B1 (en) * | 2007-10-29 | 2012-06-05 | Oracle America, Inc. | Handling multi-cycle integer operations for a multi-threaded processor |
| JP2009129503A (ja) * | 2007-11-22 | 2009-06-11 | Elpida Memory Inc | アドレス発生回路及び半導体記憶装置 |
| US8250440B2 (en) * | 2008-02-25 | 2012-08-21 | International Business Machines Corporation | Address generation checking |
| WO2015097494A1 (en) * | 2013-12-23 | 2015-07-02 | Intel Corporation | Instruction and logic for identifying instructions for retirement in a multi-strand out-of-order processor |
Family Cites Families (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4319335A (en) * | 1979-10-16 | 1982-03-09 | Burroughs Corporation | Arithmetic logic unit controller |
| IL59907A0 (en) * | 1980-04-23 | 1980-06-30 | Nathan Grundland | Arithmetic logic unit |
| JPS60140428A (ja) * | 1983-12-28 | 1985-07-25 | Hitachi Ltd | 除算装置 |
| JPS61166628A (ja) * | 1985-01-18 | 1986-07-28 | Hitachi Ltd | 除算装置 |
| US5007010A (en) * | 1985-01-31 | 1991-04-09 | Unisys Corp. (Formerly Burroughs Corp.) | Fast BCD/binary adder |
| US4800524A (en) * | 1985-12-20 | 1989-01-24 | Analog Devices, Inc. | Modulo address generator |
| US4833602A (en) * | 1987-06-29 | 1989-05-23 | International Business Machines Corporation | Signal generator using modulo means |
| US5206828A (en) * | 1990-04-02 | 1993-04-27 | Advanced Micro Devices, Inc. | Special carry save adder for high speed iterative division |
| JP2835153B2 (ja) * | 1990-06-25 | 1998-12-14 | 株式会社東芝 | 高基数除算器 |
| JP2523962B2 (ja) * | 1990-08-20 | 1996-08-14 | 松下電器産業株式会社 | 浮動小数点演算装置 |
| US5623621A (en) * | 1990-11-02 | 1997-04-22 | Analog Devices, Inc. | Apparatus for generating target addresses within a circular buffer including a register for storing position and size of the circular buffer |
| US5249148A (en) * | 1990-11-26 | 1993-09-28 | Motorola, Inc. | Method and apparatus for performing restricted modulo arithmetic |
| EP0643352A1 (en) * | 1993-09-09 | 1995-03-15 | International Business Machines Corporation | Self-checking complementary adder unit |
| US5381360A (en) | 1993-09-27 | 1995-01-10 | Hitachi America, Ltd. | Modulo arithmetic addressing circuit |
| US5798719A (en) * | 1994-07-29 | 1998-08-25 | Discovision Associates | Parallel Huffman decoder |
| JP3609512B2 (ja) * | 1994-12-15 | 2005-01-12 | 株式会社東芝 | 演算器 |
| KR100236536B1 (ko) * | 1997-01-10 | 1999-12-15 | 윤종용 | 모듈로 주소발생기 및 그 방법 |
| US5983333A (en) * | 1997-08-27 | 1999-11-09 | Lucent Technologies Inc. | High speed module address generator |
| US6298367B1 (en) * | 1998-04-06 | 2001-10-02 | Advanced Micro Devices, Inc. | Floating point addition pipeline including extreme value, comparison and accumulate functions |
| US6772186B1 (en) * | 1999-07-19 | 2004-08-03 | Renesas Technology Corp. | Multimedia multiply-adder |
| JP2001227712A (ja) | 2000-02-15 | 2001-08-24 | Susumu Nakada | 焼却炉 |
| US6760830B2 (en) * | 2000-12-29 | 2004-07-06 | Intel Corporation | Modulo addressing |
-
2001
- 2001-07-27 JP JP2001227712A patent/JP4042364B2/ja not_active Expired - Fee Related
-
2002
- 2002-07-24 US US10/202,330 patent/US6918024B2/en not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12133778B2 (en) | 2019-01-16 | 2024-11-05 | Tokuyama Dental Corporation | Curable composition for denture base |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2003044353A (ja) | 2003-02-14 |
| US6918024B2 (en) | 2005-07-12 |
| US20030023829A1 (en) | 2003-01-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3358996B2 (ja) | 自動ビタビトレースバックビット格納機能を有する並列算術論理プロセッサ | |
| US5633897A (en) | Digital signal processor optimized for decoding a signal encoded in accordance with a Viterbi algorithm | |
| JPH07210369A (ja) | 並列加算および平均演算を行うための回路およびその方法 | |
| JP4302640B2 (ja) | 被乗数のシフトを用いて乗算を計算するための装置およびその方法、上記装置を実行するためのプログラムコードを格納した記録媒体 | |
| US6101621A (en) | Logic circuit and method for designing the same | |
| US7400688B2 (en) | Path metric normalization | |
| JP2003044353A (ja) | アドレス生成回路、選択判断回路 | |
| US5097436A (en) | High performance adder using carry predictions | |
| JP3537378B2 (ja) | 加算器および集積回路 | |
| JPH1195982A (ja) | 演算処理回路及び演算処理方法並びに演算処理システム | |
| JP2003271056A (ja) | 剰余演算器 | |
| JPH09222991A (ja) | 加算方法および加算器 | |
| JP2004013519A (ja) | 演算方法および演算回路 | |
| JPH0816364A (ja) | カウンタ回路とそれを用いたマイクロプロセッサ | |
| KR101007259B1 (ko) | 패리티 생성 회로, 계수 회로 및 계수 방법 | |
| JP2000081966A (ja) | 演算装置 | |
| JP2790327B2 (ja) | 剰余乗算回路および剰余乗算方法 | |
| US6631393B1 (en) | Method and apparatus for speculative addition using a limited carry | |
| JP3685634B2 (ja) | アドレス演算装置およびアドレス演算方法 | |
| JP2664750B2 (ja) | 演算装置及び演算処理方法 | |
| KR100360926B1 (ko) | 경로 메트릭값의 오버플로우를 방지하기 위한 리스케일링 동작을 | |
| JP3122622B2 (ja) | 除算装置 | |
| JP3482102B2 (ja) | 絶対値距離演算回路 | |
| KR200156144Y1 (ko) | 절대값 계산 회로 | |
| KR20050102276A (ko) | 저전력 설계 덧셈기 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060817 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070727 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070731 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071001 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071023 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071105 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101122 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111122 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111122 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121122 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121122 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131122 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |