JPH11154088A - 二重macプロセッサ操作用のインストラクションセットの数を低減する方法 - Google Patents

二重macプロセッサ操作用のインストラクションセットの数を低減する方法

Info

Publication number
JPH11154088A
JPH11154088A JP10252838A JP25283898A JPH11154088A JP H11154088 A JPH11154088 A JP H11154088A JP 10252838 A JP10252838 A JP 10252838A JP 25283898 A JP25283898 A JP 25283898A JP H11154088 A JPH11154088 A JP H11154088A
Authority
JP
Japan
Prior art keywords
double
statements
product
statement
accumulator
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.)
Granted
Application number
JP10252838A
Other languages
English (en)
Other versions
JP3595171B2 (ja
Inventor
Mazhar M Alidina
エム.アリディナ マザー
Sirvand Simanapalli
シマナパッリ サーヴァンド
Larry R Tat
アール.テイト ラリー
Mark E Thierbach
イー.シアバッチ マーク
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.)
Nokia of America Corp
Original Assignee
Lucent Technologies Inc
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 Lucent Technologies Inc filed Critical Lucent Technologies Inc
Publication of JPH11154088A publication Critical patent/JPH11154088A/ja
Application granted granted Critical
Publication of JP3595171B2 publication Critical patent/JP3595171B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 272個のコマンドの直交インストラクショ
ンセットの機能をわずか65個のコマンドで実現する疑
似直交二重MACインストラクションセットを提供す
る。 【解決手段】 コマンドの結果の対称性に基づいてイン
ストラクションの数を減らし、プロセッサによるデータ
の順番のようなアイテムに関連した単純な制限を課すこ
とにより行う。コマンドの特別な選択は、二重MACア
ーキテクチャに関連する整合した二倍ワードメモリアー
キテクチャにより決定される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、二重乗算アキュム
レータ(dual multiply-accumulator −MAC)ベース
のデジタル信号プロセッサのインストラクションセット
アーキテクチャに関する。
【0002】
【従来の技術】デジタル信号プロセッサ(DSP)は、
音声のようなアナログ信号ソースからの信号を解析し、
デジタル処理するのに用いられる特殊目的のCPUであ
る。アナログ信号はデジタル信号に変換され、例えば高
速フーリエ変換のような様々なアルゴリズムを用いて解
析される。DSPは、例えば蓄積された値を乗算しシフ
トし蓄積する(アキュームレートする)ようなある種の
数学的処理操作を特に高速で実行するためのものであ
る。DSP用に数学的操作を集約的に処理するアプリケ
ーションは、特にこのような前述したような操作に主に
基づいている。このためDSPは乗算,蓄積,シフト操
作を実行する特別なハードウェア回路を含んでいる。
【0003】DSPアーキテクチャの1つの一般的な形
態は、乗算−蓄積(即ちMAC)プロセッサとして知ら
れている。このMACプロセッサは、2つの値を乗算
し、その結果を別の値に加算してさらにその結果を蓄積
するような多くの共通したデータ処理動作を行うアーキ
テクチャである。これらの基本的な操作は、特別に構成
された高速の乗算器と蓄積器を用いて効率的に実行され
それ故に「乗算−蓄積」と称される。
【0004】MACプロセッサの処理能力を向上させる
ために、これらのプロセッサは異なる処理を同時に行え
るよう設計される。このために複数のMAC構造体を有
するDSPアーキテクチャが開発されている。例えば二
重MACプロセッサは、2つの独立したMAC動作を同
時に行うことができる。
【0005】従来の乗算−蓄積(multiply-accumulator
−MAC)は、2入力乗算器Mを有し、これが積レジス
タP内にその出力を記憶する。この積レジスタPは、2
入力加算器Aの1つの入力に接続され、この加算器の出
力は数個のアキュムレータ(蓄積器)レジスタの1つに
記憶される。この加算器の第2の入力は、アキュムレー
タのアレイに接続され、連続する一連の蓄積操作が可能
となる。
【0006】従来のベクトルプロセッサは、並列に動作
する複数個のMACプロセッサから構成される。各MA
Cはそれ自身独立したデータストリーム上で動作し、並
列に配置されたMACは、共通のアキュムレータによっ
てのみ結合されている。各個別のMACに対するインス
トラクションの数は制限され、特に数個のMACが並列
ベクトルプロセッサ内で結合されている場合にも制限さ
れている。そして符号化しなければならないMACコマ
ンドの全数は比較的少ない。
【0007】図1に示す本発明の二重MACプロセッサ
のアーキテクチャは、従来の並列ベクトルプロセッサと
は交差接続したデータラインを付加している点で異なる
ものである。図1の二重MACアーキテクチャは、2個
の32ビット入力x,y(それぞれ16ビットのハイデ
ータは、xhとyhと称し、16ビットのローデータ
は、xlとylと称する)からなり、2つの乗算器M
0,M1に対する演算子を保持する。
【0008】このxレジスタとyレジスタは、両方の乗
算器に交差接続され、そのため各乗算器は4個の入力フ
ァクタのうちの何れか2個のファクタで動作可能とな
る。積p0,p1は、2つの加算器A0,A1によりア
キュムレータa0〜a7のいずれかの内容と共に蓄積さ
れる。このp0積はA1加算器に交差して接続され、そ
の結果A1加算器は3個の入力を有する。好ましい実施
例においては、この二重MACプロセッサは、二倍ワー
ド整合メモリアーキテクチャと共に実現され、このアー
キテクチャが単一の32ビットフェッチで、2個の二倍
ワード(double words)を戻す。
【0009】この交差接続された二重MACアーキテク
チャにより、単一のFIRまたはIIRのデジタルフィ
ルタが並列で一時に2つの「タップ」を行う両方のMA
Cにより処理されるべきシングルデータストリームにフ
ィルタを加えることができる。ここで各「タップ」と
は、「乗算−蓄積」操作を意味する。相互接続されてい
ない従来の複数のベクトルプロセッサは、2個のFIR
フィルタを並列に計算できるが、各フィルタは一時に1
つのタップを処理できるだけである。このため単一のF
IRまたはIIRフィルタに対しては、この交差接続さ
れたアーキテクチャは、従来のベクトルプロセッサより
も二倍早く動作することができる。
【0010】図2は、図1の交差接続された二重MAC
アーキテクチャの全ての可能な指示コマンドのリストで
ある。これらのコマンドは、蓄積ステートメントと積ス
テートメントに分けられる。各ステートメントは、一方
のMACサイドまたは別のMACサイドで行われる単一
操作あるいは両方のMACサイドで並列に行われる2つ
の操作のいずれかを表す。これらのコマンドが、アーキ
テクトされたインストラクションの一部として実行され
る場合には、各コマンドは蓄積ステートメント(加算)
と、積ステートメント(乗算)あるいはこれらの加算と
蓄積の組み合わせのいずれかである。
【0011】図2に示すように、直交する二重MACイ
ンストラクションのセットには、12個の蓄積の組み合
わせと、20個の積の組み合わせが存在する。かくして
コマンドプロセッサ内でアーキテクチトされ、コマンド
内で符号化されるコマンドの全数は、12*20+12
+20=272 個である。このアーキテクトされた交
差接続は、アーキテクトされたコマンドとして符号化さ
れる可能な関数の数の組み合わせ乗算となる。
【0012】このアーキテクチャで発生する問題点は、
コマンドコード内で272個の二重MAC操作を符号化
するには9ビット(2の9乗=512)が必要である点
である。得られる機能性に影響を与えることなく二重M
ACインストラクションを符号化するのに必要なビット
数を減らすことが好ましい。このことは特にコマンドを
符号化するのに利用できるビット数が限られており、別
のコマンドもまたこの限られた同一数のビット内で符号
化しなければならない時に特にあてはまる。問題となっ
ている特殊の二重MACプロセッサにおいては、わずか
7個のビット(2の7乗=128)が二重MAC操作の
符号化コンマド専用である点である。
【0013】
【発明が解決しようとする課題】したがって本発明の目
的は、二重MAC操作用の符号化コマンドの数を減らす
ような二重MACプロセッサを提供することである。
【0014】
【課題を解決するための手段】本発明によれば疑似直交
(near-orthogonal)二重MACインストラクションセ
ットが、わずか65個のコマンドを用いて272個のコ
ンマドの直交インストラクションの全体の機能を実行で
きる。このようにインストラクションのセットを減らす
ことは、コマンドの結果の対称性に基づいてインストラ
ンクションの数を減らし、プログラマによるデータプレ
ゼンテーションのオーダのようなアイテムに関連する単
純な制限を課すことにより達成できる。
【0015】コマンドの特殊な選択も二重MACアーキ
テクチャに関連する二倍ワード整合メモリアーキテクチ
ャにより決定される。このように低減されたインストラ
クションセットのアーキテクチャは、コマンドセットの
機能性と固有の平行性(parallelism)を維持し、完全
な直交セットよりも実現すべきコマンドのビット数が少
なくて済む。
【0016】
【発明の実施の形態】図2に示すように、図1の二重M
ACプロセッサ用には12個の蓄積ステートメントと、
20個の積ステートメントが存在する。そしてこれらは
別個にあるいは組み合わされてアーキテクトされる。疑
似直交インストラクションセットの数を減らすために直
交インストラクションセットの数を減少させることは、
各関数タイプについて以下議論する。
【0017】以下に示すように4個の単一の二入力蓄積
ステートメントがある。 aD=aS+p0 aD=aS−p0 aD=aS+p1 aD=aS−p1 ここでaDとaSは図1の二重MACプロセッサの8個
のアキュムレータa0〜a7のいずれかである。
【0018】二重MACコマンドそのものを符号化する
ことに加えて、各コマンドが向けられるDとSのアキュ
ムレータのアイデンティティは、コマンドのopコード
内にストアしなければならない。これらのコマンドの1
つが実行されると、2個のMACパスのうちの一方のパ
スのみが関連し、他のパスはアイドル状態となる。蓄積
ステートメントの結果が、両方のMACパスに等しくア
クセス可能なアキュムレータ内にストアされているため
に、両方のパスに対するコマンドを符号化する必要はな
い。デフォルトとしてp0パスが選択される。そのため
低減したコマンドのセットは、aD=aS±p0であ
る。
【0019】次に示すように4個の三入力蓄積ステート
メントがある。 aD=aS+p0+p1 aD=aS+p0−p1 aD=aS−p0+p1 aD=aS−p0−p1
【0020】理論的にはこれらのコマンドの数の低減
は、プログラマが乗算器への入力の順番を調整すると、
p0とp1をスワップ(入れ換える)してもよいという
ことを認識することにより行われる。しかしこの方法
は、蓄積ストランクションセットと積インストラクショ
ンセットの両方の数を低減するためには用いることがで
きない。その理由は、後述するようにアキュムレータコ
マンドと積コマンドは、アキュムレート/積の対として
符号化することができなければならないからである。
【0021】かくしてこれらの対の中の2個のコマンド
のうちの一方のコマンドのみがこの方法により低減でき
る。この入力を入れ換える方法は、以下に述べるように
積ステートメントに対する最大の低減が可能であり、そ
のため全ての4個の三入力蓄積ステートメントが実現で
きる。
【0022】次に示すような4個の二入力アキュムレー
トステートメントがあり、それらは並列に実行できる2
個の二入力蓄積ステートメントから成り立っている。 aD0=aS0+p0 aD1=aS1+p1 aD0=aS0+p0 aD1=aS1−p1 aD0=aS0−p0 aD1=aS1+p1 aD0=aS0−p0 aD1=aS1−p1 ここで、aD0,aD1,aS0,aS1は8個のアキ
ュムレータのうちの1つを指している。
【0023】このセットにおけるコマンドの数は、三入
力蓄積ステートメントについて上述した理由と同様な理
由によりその数は減ってはいない。しかし、コマンドo
pコードの他の場所にある符号化ビットの数の減少は、
隣接するアキュムレータ対へのコマンド内で選択された
アキュムレータを制限することにより達成できる。好ま
しい実施例においては、aD0は偶数のアキュムレータ
のアドレスに制限され、aD1はアキュムレータaD0
+1として定義される。アキュムレータの連続する対
は、aDとaDPとして指定されている。同様にアキュ
ムレータ対aS0とaS1もaSとaSPに制限され
る。
【0024】このように数を減らすことにより、次に示
されるように、修正したコマンドセットが得られる。 aD=aS+p0 aDP=aSP+p1 aD=aS+p0 aDP=aSP−p1 aD=aS−p0 aDP=aSP+p1 aD=aS−p0 aDP=aSP−p1
【0025】4個のコマンドを符号化しなければならな
いが、アキュムレータ対の一方のアキュムレータのみを
特定すればよく、その理由はコマンドは隣接するアキュ
ムレータ対に制限されるからである。8個のアキュムレ
ータがあるために、3個のビットがアキュムレータを特
定するのに必要である。2個のアキュムレータ(4個で
はなく)のみを指定する必要があるようにするために、
アキュムレータを隣接する対に制限することにより、そ
して定義するアキュムレータ対の偶数のアキュムレータ
を選択することにより、opコードでアキュムレータを
指定するのに必要なビットの全数は12から4に減る。
【0026】乗算器へ表すことのできる4個のファクタ
がある。これらのファクタは2個の分割したレジスタ内
に記憶される。xレジスタは、xhとxlのファクタを
保持し、yレジスタはyhとylのファクタを保持す
る。交差接続されたアーキテクチャであるため4個のフ
ァクタのうちのいずれの2個も各乗算器M0,M1に入
力される。
【0027】次に示す8個の単一積のステートメントが
ある。 p0=xh*yh p0=xh*yl p0=xl*yh p0=xl*yl p1=xh*yh p1=xh*yl p1=xl*yh p1=xl*yl ここで、p0とp1は、それぞれ乗算器M0とM1から
出力された積である。
【0028】上記したような単一の二入力蓄積ステート
メントの場合と同様に、2個のMACパスのうちの一方
のパスのみがこれらのコマンドの一方が実行された時に
関係している。かくしてコマンドは、p0側にのみ制限
することができる。さらにxレジスタとyレジスタ内の
ファクタの位置は、プログラマの制御下にある。このセ
ットは、さらに操作を任意に選択されたxhとyhとな
るような2つのファクタ位置のみに制限することにより
さらに減らすことができる。このようにして減らされた
コマンドセットは、さらに単一のp0=xh*yh だけ
である。
【0029】次に示すように12個の二重積ステートメ
ントがある。 1. p0=xh*yh p1=xh*yl 2. p0=xh*yh p1=xl*yh 3. p0=xh*yh p1=xl*yl 4. p0=xh*yl p1=xh*yh 5. p0=xh*yl p1=xl*yh 6. p0=xh*yl p1=xl*yl 7. p0=xl*yh p1=xh*yh 8. p0=xl*yh p1=xh*yl 9. p0=xl*yh p1=xl*yl 10. p0=xl*yl p1=xh*yh 11. p0=xl*yl p1=xh*yl 12. p0=xl*yl p1=xl*yh
【0030】これらのコマンドのうち数個のコマンド
は、同一の乗算となり、MACプロセッサが使用され、
そして積レジスタにその結果が現れる点で異なるだけで
ある。その対称対は1−4,2−7,3−10,5−
8,6−11,9−12である。このためさらに数を減
らすことはこの対称性を利用し、各対称対の1個のコマ
ンドのみを符号化する。
【0031】このように数を減らすことにより得られた
6個のコマンドを次に示す。 1. p0=xh*yh p1=xh*yl 2. p0=xh*yh p1=xl*yh 3. p0=xh*yh p1=xl*yl 5. p0=xh*yl p1=xl*yh 6. p0=xh*yl p1=xl*yl 9. p0=xl*yh p1=xl*yl
【0032】このセットはさらに「疑似対称」対をプロ
グラマが必要に応じて、データをxレジスタまたはyレ
ジスタに向けることにより削減できることを認識するこ
とによりさらに減らすことができる。アイテム1と2に
ついては、p0操作は同一である。p1操作は、ハイワ
ードファクタとローワードファクタが選択されるレジス
タが異なるだけである。
【0033】コマンド2内のxレジスタとyレジスタの
データを切り換えることにより、コマンド1と同様な結
果が得られる。かくして、2個のコマンドのうちの一方
のコマンドのみを実行する必要がある。機能性は失われ
ているが、その理由はプログラマは、入力の順序を単に
変えるだけだからである。アイテム6と9もほぼ対称で
ある。
【0034】この実施例においては、二重MACプロセ
ッサは、整合した二倍ワードメモリアーキテクチャで実
現できる。その結果この疑似対称性は、アイテム3と5
については得られない。理論的には、プログラマはファ
クタデータがレジスタのどこに記録されるかそして二重
MACプロセッサにいかにそれを入力させるかについて
絶対的な制御を有しているが、この整合した二倍ワード
メモリアーキテクチャは、単一の二倍ワード操作内でフ
ェチされ、xレジスタまたはyレジスタにストアされる
2個のデータ値を提供する。
【0035】2つのデータ値がどちらのレジスタにスト
アするか、切り換えることは性能の低下なしに行うこと
ができる。しかし、データを分割することは余分のコマ
ンドを必要とし、そのため性能の低下が発生する。この
ような状況を回避するためにコマンド3と5の両方が実
行される。
【0036】最終的に数が減り得られた二重積コマンド
は次の通りである。 p0=xh*yh p1=xh*yl p0=xh*yh p1=xl*yl p0=xh*yl p1=xl*yh p0=xl*yh p1=xl*yl
【0037】このようにして完全に数が減らしたコマン
ドのセットを図3に示す。かくして10個の異なる蓄積
ステートメントと5個の異なる積ステートメントが得ら
れ、その結果アーキテクトされたコマンドの全数は、1
0*5+10+5=65 となる。これらの操作をopコ
ードの7ビットで符号化すると、必要なビット数を増加
させることなく63個のコマンドが可能となる。
【発明の効果】 【図面の簡単な説明】
【図1】二重MACプロセッサのブロック図
【図2】図1の二重MACプロセッサ用の直交コマンド
セットを表す表
【図3】図1の二重MACプロセッサ用の本発明による
疑似直交コマンドセットを表す表
フロントページの続き (71)出願人 596077259 600 Mountain Avenue, Murray Hill, New Je rsey 07974−0636U.S.A. (72)発明者 サーヴァンド シマナパッリ アメリカ合衆国,18104 ペンシルヴァニ ア,アレンタウン,ベンナー ロード 638−201 (72)発明者 ラリー アール.テイト アメリカ合衆国,60010 イリノイ,サウ ス バーリントン,チッピング キャンプ デン ドライブ 12 (72)発明者 マーク イー.シアバッチ アメリカ合衆国,18104 ペンシルヴァニ ア,アレンタウン,サウス ホワイトホー ル タウンシップ,ウェア ミル ロード 2282

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも4個の二入力蓄積ステートメ
    ントと、少なくとも4個の三入力蓄積ステートメント
    と、少なくとも4個の二重二入力蓄積ステートメント
    と、少なくとも8個の単一積ステートメントと、少なく
    とも12個の二重積ステートメントを有する完全なコマ
    ンドセットを有する交差接続された二重MACプロセッ
    サを操作するためのインストランクションの数を低減す
    るよう構成された二重MACプロセッサ操作用のインス
    トラクションセットの数を低減する方法において、 (A) 前記インストラクションセット中に前記2個の
    MACプロセッサの特定の1つに関連した二入力蓄積ス
    テートメントのみを含ませるステップと、 (B) 前記インストラクションセット中に前記三入力
    蓄積ステートメントを含ませるステップと、 (C) 前記インストラクションセット中に前記二重二
    入力蓄積ステートメントを含ませ、前記二重二入力蓄積
    ステートメントを隣接して番号付けられたアキュムレー
    タ対に制限するステップと、 (D) 前記インストラクションセット中に1個の単一
    積ステートメントのみを含ませるステップと、 (E) 前記インストラクションセット中に6個の対称
    二重積ステートメント対の各々から1個の二重積ステー
    トメントのみを含ませるステップとからなることを特徴
    とする交差接続された二重MACプロセッサ操作用のイ
    ンストラクションセットの数を低減する方法。
  2. 【請求項2】 (F) 前記インストラクションセット
    中に疑似対称対の二重積ステートメントから1個の二重
    積ステートメントのみを含ませることにより前記インス
    トラクションセットの数をさらに低減させるステップを
    さらに有することを特徴とする請求項1記載の方法。
  3. 【請求項3】 4n個の二重積乗算ステートメントをサ
    ポートする交差接続された二重MACアーキテクチャを
    有するプロセッサ内で乗算器の対を制御するインストラ
    クションセットの数を低減する方法において、 (A) 4n個の二重積ステートメントを2n個の二重
    積ステートメントの対称対に配列するステップと、 (B) 前記インストラクションセット内に、前記2n
    個の対称二重積ステートメント対の各々から1個の二重
    積ステートメントのみを含ませるステップとを有するこ
    とを特徴とする交差接続された二重MACアーキテクチ
    ャを有するプロセッサ内の乗算器の対を制御するインス
    トラクションセット数を減らす方法。
  4. 【請求項4】 (C) 2n個の対称対から選択された
    2n個の二重積ステートメントをn個の疑似対称二重積
    ステートメントの対に配列するステップと、 (D) 前記n個の疑似対称対の少なくとも1個の対に
    対し、前記インストラクションセット中に前記n個の疑
    似対称対の少なくとも1個の対からの1個の二重積ステ
    ートメントのみを含ませるステップとをさらに有するこ
    とを特徴とする請求項3記載の方法。
  5. 【請求項5】 加算器に接続される乗算器を有する2個
    の交差接続されたMACプロセッサを含むマイクロプロ
    セッサにおいて、 前記加算器は、複数のレジスタを有するアキュムレータ
    に接続され、 前記乗算器と加算器を制御するインストラクション中の
    インストラクションのセットを、 (A) 前記2個のMACプロセッサの一方のプロセッ
    サに関連する2個の単一二入力蓄積ステートメントと、 (B) アキュムレータレジスタの所定の対上で動作す
    るよう制限された4個の二重二入力蓄積ステートメント
    と、 (C) 4個の三入力蓄積ステートメントと、 (D) 1個の単一積ステートメントと、 (E) どの2つも対称対を構成しない4個の二重積ス
    テートメントに限定することを特徴とするマイクロプロ
    セッサ。
  6. 【請求項6】前記アキュムレータは8個のアキュムレー
    タレジスタを有し、 前記レジスタの所定の対は数字的に隣接するレジスタの
    4個の対を含み、 2個のビットがアキュムレータ対を特定するために前記
    二重の二入力アキュムレータステートメント内で保存さ
    れることを特徴とする請求項5記載のマイクロプロセッ
    サ。
  7. 【請求項7】 出力積レジスタp0とp1を有する第1
    と第2の二入力乗算器用の入力として選択的に接続され
    る4個の演算子レジスタxh,xl,yh,ylと、 そして入力としてp0内の値と、アキュムレータアレイ
    から選択されたレジスタの値を受領し、出力をアキュム
    レータアレイに与える第1加算器と、 そして入力としてp0内の値と、p1内の値と、アキュ
    ムレータアレイから選択されたレジスタの値を受領し、
    出力をアキュムレータアレイに与える第2加算器と、を
    有するマイクロプロセッサにおいて、 前記マイクロプロセッサは、データの整合した二倍ワー
    ドフェッチをサポートするメモリシステムに接続され、 前記乗算器と加算器を制御するインストラクションのセ
    ットを (A) 以下の形式の2個の二入力蓄積ステートメント
    と、 aD=aS±p0 ここでaDとaSは、それぞれ宛先とソースのアキュム
    レータレジスタを表し、 (B) 以下の形式の4個の三入力アキュムレータステ
    ートメントと、 aD=aS±p0±p1 (C) 以下の形式の4個の二重二入力アキュムレータ
    ステートメントと、 aD=aS±p0 aDP=aSP±p1 ここでaDPとaSPは、それぞれ宛先とソースのアキ
    ュムレータレジスタを表し、その後この宛先レジスタa
    DとaDPとソースレジスタaSとaSPのそれぞれ
    は、アキュムレータレジスタの所定の対を表し、 (D) p0=xh*yh を形成する1個の単一積ステ
    ートメントと、 (E) 以下の形式の4個の二重積ステートメントと、 p0=xh*yh p1=xh*yl p0=xh*yh p1=xl*yl p0=xh*yl p1=xl*yh p0=xl*yh p1=xl*yl に制限することを特徴とするマイクロプロセッサ。
JP25283898A 1997-09-08 1998-09-07 マイクロプロセッサ Expired - Fee Related JP3595171B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US5815797P 1997-09-08 1997-09-08
US60/058157 1997-09-08

Publications (2)

Publication Number Publication Date
JPH11154088A true JPH11154088A (ja) 1999-06-08
JP3595171B2 JP3595171B2 (ja) 2004-12-02

Family

ID=22015053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25283898A Expired - Fee Related JP3595171B2 (ja) 1997-09-08 1998-09-07 マイクロプロセッサ

Country Status (4)

Country Link
US (1) US6530014B2 (ja)
EP (1) EP0901068B1 (ja)
JP (1) JP3595171B2 (ja)
DE (1) DE69840187D1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235004A (ja) * 2004-02-20 2005-09-02 Altera Corp 乗算器−累算器ブロックモード分割

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230180B1 (en) 1998-10-14 2001-05-08 Conexant Systems, Inc. Digital signal processor configuration including multiplying units coupled to plural accumlators for enhanced parallel mac processing
US6820189B1 (en) 1999-05-12 2004-11-16 Analog Devices, Inc. Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation
JP2002544587A (ja) * 1999-05-12 2002-12-24 アナログ デバイセス インコーポレーテッド デジタル信号プロセッサ計算コア
US7107302B1 (en) 1999-05-12 2006-09-12 Analog Devices, Inc. Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units
US6859872B1 (en) 1999-05-12 2005-02-22 Analog Devices, Inc. Digital signal processor computation core with pipeline having memory access stages and multiply accumulate stages positioned for efficient operation
US7111155B1 (en) 1999-05-12 2006-09-19 Analog Devices, Inc. Digital signal processor computation core with input operand selection from operand bus for dual operations
JP3935678B2 (ja) * 2001-01-31 2007-06-27 富士通株式会社 Simd積和演算方法、積和演算回路、および、半導体集積回路装置
US20030105617A1 (en) * 2001-12-05 2003-06-05 Nec Usa, Inc. Hardware acceleration system for logic simulation
US20040193668A1 (en) * 2003-03-31 2004-09-30 Patrick Devaney Virtual double width accumulators for vector processing
US7873815B2 (en) * 2004-03-04 2011-01-18 Qualcomm Incorporated Digital signal processors with configurable dual-MAC and dual-ALU
US8074051B2 (en) 2004-04-07 2011-12-06 Aspen Acquisition Corporation Multithreaded processor with multiple concurrent pipelines per thread
US7353364B1 (en) * 2004-06-30 2008-04-01 Sun Microsystems, Inc. Apparatus and method for sharing a functional unit execution resource among a plurality of functional units
US20060179273A1 (en) * 2005-02-09 2006-08-10 Advanced Micro Devices, Inc. Data processor adapted for efficient digital signal processing and method therefor
US20060224653A1 (en) * 2005-04-01 2006-10-05 Kimming So Method and system for dynamic session control of digital signal processing operations
US7519794B2 (en) * 2005-06-29 2009-04-14 Intel Corporation High performance architecture for a writeback stage
US20070074000A1 (en) * 2005-09-28 2007-03-29 Liga Systems, Inc. VLIW Acceleration System Using Multi-state Logic
US7444276B2 (en) * 2005-09-28 2008-10-28 Liga Systems, Inc. Hardware acceleration system for logic simulation using shift register as local cache
US20070073999A1 (en) * 2005-09-28 2007-03-29 Verheyen Henry T Hardware acceleration system for logic simulation using shift register as local cache with path for bypassing shift register
US20070129924A1 (en) * 2005-12-06 2007-06-07 Verheyen Henry T Partitioning of tasks for execution by a VLIW hardware acceleration system
US20070129926A1 (en) * 2005-12-01 2007-06-07 Verheyen Henry T Hardware acceleration system for simulation of logic and memory
US20070150702A1 (en) * 2005-12-23 2007-06-28 Verheyen Henry T Processor
US8392174B2 (en) * 2006-08-07 2013-03-05 International Characters, Inc. Method and apparatus for lexical analysis using parallel bit streams
US8516027B2 (en) * 2010-04-30 2013-08-20 Src, Inc. Method and system for bit stacked fast Fourier transform
US10372417B2 (en) * 2017-07-13 2019-08-06 International Business Machines Corporation Multiply-add operations of binary numbers in an arithmetic unit

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717908A (en) 1993-02-25 1998-02-10 Intel Corporation Pattern recognition system using a four address arithmetic logic unit
DE69519449T2 (de) 1994-05-05 2001-06-21 Conexant Systems, Inc. Raumzeigersdatenpfad
US6055619A (en) * 1997-02-07 2000-04-25 Cirrus Logic, Inc. Circuits, system, and methods for processing multiple data streams

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235004A (ja) * 2004-02-20 2005-09-02 Altera Corp 乗算器−累算器ブロックモード分割

Also Published As

Publication number Publication date
EP0901068A3 (en) 1999-04-21
US20020099923A1 (en) 2002-07-25
EP0901068B1 (en) 2008-11-05
JP3595171B2 (ja) 2004-12-02
EP0901068A2 (en) 1999-03-10
US6530014B2 (en) 2003-03-04
DE69840187D1 (de) 2008-12-18

Similar Documents

Publication Publication Date Title
JPH11154088A (ja) 二重macプロセッサ操作用のインストラクションセットの数を低減する方法
US6286024B1 (en) High-efficiency multiplier and multiplying method
US6922716B2 (en) Method and apparatus for vector processing
US6571268B1 (en) Multiplier accumulator circuits
EP0657804B1 (en) Overflow control for arithmetic operations
EP1763739B1 (en) Digital signal processors with configurable dual-mac and dual-alu
KR101918464B1 (ko) 스위즐드 버추얼 레지스터 기반의 프로세서 및 스위즐 패턴 제공 장치
US20050021578A1 (en) Reconfigurable apparatus with a high usage rate in hardware
KR20120030332A (ko) 임플리시트 혼합형 오퍼랜드들을 구비한 dsp엔진
JPH0353652B2 (ja)
JPS63278136A (ja) 演算回路
KR20060060689A (ko) 병렬 처리 어레이 및 데이터 처리 방법
US5844828A (en) Shift circuit and system having the same
US8024549B2 (en) Two-dimensional processor array of processing elements
US6675286B1 (en) Multimedia instruction set for wide data paths
EP0403729B1 (en) Digital-signal processing apparatus
KR20190131611A (ko) 구성가능 논리 유닛 스위칭 장치 및 방법
US6209012B1 (en) System and method using mode bits to support multiple coding standards
JP3593439B2 (ja) 画像処理装置
US20020040427A1 (en) Single instruction multiple data processing
WO2006083768A2 (en) Same instruction different operation (sido) computer with short instruction and provision of sending instruction code through data
KR0175373B1 (ko) 칩 면적을 줄인 시변 교차 필터
JPH05324694A (ja) 再構成可能並列プロセッサ
JPH06309349A (ja) プログラム制御のプロセッサ
JP2511262Y2 (ja) デジタル信号処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040216

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040514

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040531

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040714

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: 20040811

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040902

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: 20080910

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080910

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090910

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100910

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100910

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110910

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120910

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130910

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees