JP2006164279A - プロセッサ・アーキテクチャ - Google Patents

プロセッサ・アーキテクチャ Download PDF

Info

Publication number
JP2006164279A
JP2006164279A JP2005349339A JP2005349339A JP2006164279A JP 2006164279 A JP2006164279 A JP 2006164279A JP 2005349339 A JP2005349339 A JP 2005349339A JP 2005349339 A JP2005349339 A JP 2005349339A JP 2006164279 A JP2006164279 A JP 2006164279A
Authority
JP
Japan
Prior art keywords
instruction
processor
arithmetic
group
instruction word
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
JP2005349339A
Other languages
English (en)
Other versions
JP5112627B2 (ja
Inventor
Andrew Duller
ドゥラー アンドリュー
Gajinder Panesar
パネサール ガジンダール
Peter Claydon
クレイドン ピーター
William Robbins
ロビンズ ウィリアム
Andrew Kuligowski
クリゴウスキー アンドリュー
Olfat Younis
ユニス オルファット
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.)
Picochip Designs Ltd
Original Assignee
Picochip Designs 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 Picochip Designs Ltd filed Critical Picochip Designs Ltd
Publication of JP2006164279A publication Critical patent/JP2006164279A/ja
Application granted granted Critical
Publication of JP5112627B2 publication Critical patent/JP5112627B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • 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/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

【課題】多数の演算装置を含むVLIWプロセッサの命令長は長く且つ使用効率が低い。
【解決手段】LIWプロセッサは、複数の演算装置から構成される。プロセッサからなる複数の演算装置はグループ分けされ、入力命令語には、各グループの1つの演算装置に対する命令が含まれる。プロセッサからなる複数の演算装置は、プロセッサの望ましい用途に関する制限を特に設けることなくグループ化されているため、プロセッサは信号処理用に最適化される。これは、信号処理用途においては、必ずしも特定の演算装置が同時に動作する必要はないと判断されているからである。このため、上述の複数の演算装置がデバイスの動作に大きな影響を与えることはなく、そのうちの1つの演算装置のみがある特定の時間に動作可能となるようにグループ化することができる。アレイは、この種類のプロセッサを複数相互に接続することで形成されている。
【選択図】図2

Description

本発明は、プロセッサ・アーキテクチャに関し、さらに詳しくは、特に信号処理用途に有用なプロセッサ・アーキテクチャに関する。
現代の高性能な無線通信システムにはデジタル・プロセッサが不可欠である。デジタル・プロセッサを用いることにより、例えば、フィルタリング、均等化、復号化機能などの動作を実行するために、毎秒数兆規模の演算を実行し、仕様を満たす性能を実現することができる。こうした更なる高性能処理への要求に対し、単一のプロセッサ・サイクルで並行処理の可能な複数の演算装置(数値演算装置(ALU)、乗算器、アドレス生成器など)を使用することで対応しているため、サイクルごとに実行可能な演算の総数を増加することができる。
すでに開発されているアーキテクチャ面での手法として、複数の演算装置の並列処理を可能にする長命令語(LIW)アーキテクチャがある。この手法では、多数ある演算装置の各演算装置に対する複数の命令を、単一のプロセッサ・サイクルで実行可能な1語の「長命令語」に連結させる。通常、この手法を実行する場合、特定の演算装置が1プロセッサ・サイクルで動作するか否かにかかわらず、長命令語のビット・フィールドを各演算装置に対する命令のために用意するが、極めて長い命令語が生成されるため、動作していない演算装置にとっては冗長な情報が多く含まれることもあり、悪影響をもたらしている。その結果、設計規模が拡大し費用が増える。
本発明は、LIWプロセッサの代替的な実装に関する。
本発明の好適な実施の形態によると、複数の演算装置から構成されるプロセッサであって、前記プロセッサに含まれる前記複数の演算装置はグループに分けられ、入力命令語は、各グループの1つの演算装置に対する命令を含むことができる。
本発明の他の好適な実施の形態によると、プロセッサの複数の演算装置は、前記プロセッサの望ましい用途に関する制限を特に設けることなくグループ化されているため、前記プロセッサは信号処理用に最適化される。すなわち、信号処理用途において、必ずしも特定の演算装置が同時に動作する必要はないと判断されているからである。
従って、デバイスの操作に重大な影響を与えることなく、前記演算装置のうち1つのみが特定のときに動作可能となるように、前記演算装置をグループ化することができる。
本発明の他の好適な実施の形態によると、相互に接続される複数のプロセッサを備えるアレイであって、各プロセッサは上述のように複数の演算装置を備える。
図1は、WO02/50624にて概説されているプロセッサ・アレイのブロック略図である。このアレイは、バスとスイッチとに相互に接続されるアレイ素子20で構成される。
このアレイ構造は、第1バス対30を含む。第1バス対30は、図1で水平に配置され、各対にはそれぞれ、図1で左から右にデータを送信する第1バス32と右から左にデータを伝達させる第2バス36とを含む。
このアレイ構造は、第2バス対40を含む。第2バス対40は、図1で垂直に配置され、各対にはそれぞれ、図1で上方向にデータを送信する第3バス42と下方向にデータを送信する第4バス46とを含む。
図1において、各ダイヤモンド接続50はスイッチを表し、アレイ素子20とバス32及びバス36とをそれぞれ接続する。このアレイは、さらに第1バス対30と第2バス対40との各交点にスイッチ・マトリクス55を含む。データ・バス、スイッチ、及びスイッチ・マトリクスにより、処理の必要に応じてデータをアレイ素子間で次々に移動させることができる。
本発明の本実施例では、図2にさらに詳細に示すように、少なくともいくつかのアレイ素子20はプロセッサで構成される。本発明は個々のプロセッサにも適用可能であるが、本発明の図示の実施例では、プロセッサ20がアレイ素子として特に好適に使用されるよう適合させている。
プロセッサ20は、64×64ビットの命令メモリ60を有し、この64×64ビット命令メモリ60には、プロセッサの演算を制御するためにメモリにロードされる命令が含まれる。デバイスの動作時に、命令は命令メモリ60からフェッチされ命令デコーダ62に送られ、プロセッサのデータ・パスや演算装置の設定を行うためにデコードされる。
図示の本実施例では、プロセッサは6つの演算装置から構成される。第1に利用可能な演算装置は、第1の算術論理演算装置(ALU)64で、多くの算術演算及び論理演算が実行可能である。
第2に利用可能な演算装置は通信装置66で、入力通信バス68と出力通信バス70とに接続され、入力通信バス68及び出力通信バス70とデータのやりとりを行うために、「プット(put)」及び「ゲット(get)」操作を実行することができ、また、15×16ビットのデータ・レジスタ84とデータのやりとりを行うことができる。レジスタ84は、データ・バス85により、演算装置に接続される。
図示の本実施例では、アレイで実行される処理を支援するように、通信装置66は最適化される。このため、データは、ステージ毎に実行される処理の一部とともに、プロセッサ20を次々に移動する。
第3に利用可能な演算装置は、結合型メモリ・アクセス装置(MAU)/第2のALU72であり、様々な負荷を実行し、バス74を介して演算結果を、64×32ビットのデータ・メモリ76に格納し、また第1のALU64によって実行されるALU演算のサブ・セットを提供する。
第4に利用可能な演算装置は、分岐装置78で、多数の条件付き及び条件無しの分岐演算を実行する。
第5に利用可能な演算装置は、乗算アキュムレータ(MAC)装置80で、様々なビット幅で、多数の乗算や乗累算を実行する。本発明の他の実施例では、この装置を簡素化された乗算装置に置き換えてもよい。
図示の本実施例では、特定用途向け装置(ASU)82形式である第6の利用可能な演算装置がある。さらに具体的に言うと、ASU82は、CDMA送受信機能を支援するため、複合スプレッド、複合デスプレッドなど、無線信号処理用途として数々の高度に分化された演算を実行するように適合されている。本発明の他の実施例では、この装置を省略してもよい。
従来同様、通常、各実行装置は、1クロック・サイクルで1演算を実行することができる。しかしながら、第1のALU64もまた、基本的な数値演算または論理演算の第1のオペランドにおいてシフト演算を可能とする。このため、この特別な場合では、1つの実行装置において、2つの命令を効率よく同時に実行することができる。
広範な信号処理用途を分析することにより、現在では、必ずしも全ての処理装置が同時に処理可能に実装されるべきとは限らないという結論に至っている。本発明の図示の実施例では、演算装置は3つのグループにまとめられ、それぞれ、LIW命令の分離命令により制御される。
特に図示の本実施例では、第1のグループ86は、第1の演算論理装置(ALU)64のみ含み、第2のグループ88は、通信装置66と、結合型メモリ・アクセス装置(MAU)/第2のALU72を含み、第3のグループ90は、分岐装置78と、乗算アキュムレータ(MAC)装置80と、特定用途向け装置(ASU)82とを含む。
本発明の好ましい実施の形態によると、デバイスは、全3グループ86、88、90のうちのいかなる1つ、2つ、3つのグループも、どの時点においても、動作状態とすることができるように制御されるが、グループ内のわずか1つの実行装置も、どの時点においても動作状態とすることができるように制御されている。さらに、命令フォーマットは、その都度効率よく実行される態様である。
特に、長命令語には、第1グループ86用の命令LIW#1、第2グループ88用の命令LIW#2、第3グループ90用の命令LIW#3を含めることができる。
図3は、長命令語の命令の基本構造を示し、また図4、5、6においても詳細に説明する。
このように、長命令語は最初に短い3ビットのビット列を含む。これは、第1のグループ86が該当のプロセッサ・サイクルで動作しているかどうかを示している。動作している場合、どのクラスの演算が実行されるのかを示しているので、演算装置及びデータ・パスを設定できる。
図4に示すように、バイト0の最初の3ビットが000の場合を除いて、第1のグループ86は、このプロセッサ・サイクルにおいて動作しており、3ビットのビット列は、演算が第1の演算論理装置(ALU)64により実行されることを示している。
最初の3ビットの値が001−100の範囲内にある場合は、3つのオペランドを用いて実行されるALU演算である。例えば、2つの値を加算してその結果を求める場合、3つのオペランドは、加算される2つの値のレジスタ・アドレス及びその結果が格納されるレジスタ・アドレスである。
最初の3ビットの値が101−110の範囲内にある場合は、データ・メモリと指定レジスタまたはレジスタ・ペアとの間のロードまたはストア操作を意味する。
最初の3ビットの値が111の場合は、2つのオペランドを用いて、1つのオペランドを用いて、または、例えばノー・オペレーション命令など、オペランドを用いずに、実行されるALU演算を意味する。
上述のいかなる場合においても、以下にさらに詳しく説明するように、第4ビットは拡張バイトを使用するかどうかを示している。バイト0の残りの4ビットとバイト1の8ビットは、図4に示すように、バイト0の最初の3ビット値に依存し、オペランドまたはオペレーション・コードの値を示す。さらに具体的に言うと、図4では、これらの4ビットがオペランドを意味することを示し、レジスタ84でのアドレスを定義し、ここから第1のALU64が定義済みの演算を実行するため、各オペランドを取り込む。
バイト0の最初の3ビット値が000ではなく、かつ、このため第1のグループ86がプロセッサ・サイクルにおいて動作中の場合は、第4ビットは「1」に設定されているはずである。そして、第2のグループ88または第3のグループ90のいずれかが動作中の場合、拡張バイトを使用する必要がある。
バイト0の最初の3ビット値が000で、第1のグループ86がプロセッサ・サイクルにおいて動作中でなく、かつ、長命令語のバイト0にさらに短いビット列が含まれる場合、これは、第2のグループ88及び第3のグループ90が動作中かどうかを示す。動作中の場合、どのクラスの演算が実行されるのかを示す。
このように、図5に示すように、第2のグループ88に関連する3ビット列Lcode2と図6に示すように、第2のグループ90に関連する3ビット列Lcode3とがある。
第2のグループ88及び第3のグループ90のいずれか、または両方が動作中の場合、追加バイトLIW#2 108が必要な情報を提供するため、第2のグループ88が意図する機能を遂行できるようになり、また、追加バイトLIW#3 110が必要な情報を提供するため、第3のグループ90は意図する機能を遂行できるようになる。
バイト0の最初の3ビット値が000ではなく、LIW#1の命令または「短」メモリ・アクセス操作が行われる場合、拡張バイトを使用して、第2のグループ88及び第3のグループ90のいずれか、または両方が動作中かどうかを知る必要がある。動作中の場合、拡張バイトは、Lcode2及びLcode3を有し、追加バイトLIW#2 108及び追加バイトLIW#3 110が必要な情報を含んでいるため、関係のグループは意図する機能を遂行できるようになる。
拡張バイトもまた、2ビットの拡張オペレーション・コード「ex op」を有し、ALU#0に対しさらに実行可能な命令を与えることができる。拡張バイトは、1ビット・フラグSも含む。これが設定されている場合は、フラグSはALU第1オペランドでのシフト・オペレーションがあることを示している。この場合、拡張バイトに続く追加バイトを用いて、このシフトが論理演算か算術演算か、左シフトか右シフトか、及び何ビットシフトするのかを定義する(4ビット値)。
命令セット・アーキテクチャは、短い定数(図示の実施例では4ビット長)及び長い定数(図示の実施例では16ビット長)の使用に対応している。図4に示すように、オペランドは通常4ビット長で、この4ビットのオペランドのうち1ビットがレジスタ84の1つを意味するが、代わりに4ビットの定数を示すのに使用することもできる。さらに長い定数を使用する必要がある場合は、オペランド値「15」を用いて命令デコーダ62を指し、この場合16ビットの定数値として長命令語の命令の最後にくる16ビット・フィールド112の値を取り込む。従って、有効な情報はレジスタ・アドレス「15」(R15)には格納されない。このように、R15に書き込むことで実行結果が廃棄されることを示す。
従って、符号化された命令語は、バイト境界にまとめられていることがわかる。さらに、図3から図6では、個々のLIW命令が1バイト長(いずれのグループも動作していない特別な場合及びLIW#1、LIW#2、またはLIW#3の命令がない場合)から9バイト長の間にあることがわかる。このように、命令デコーダ62は、単一の64ビット命令語においては、いかなる命令語長の組合せにも対応することが可能で、連続する64ビット命令語に含まれるLIW命令を取り扱うことも可能である。
本発明の一実施例によると、いずれの単一のLIW命令長も8バイトを超えることはない。しかしながら、本発明の他の実施例によると、この最大長を所望値に設定することができる。上述の制限を設けることにより、上述の命令長より大きくなり対応できないLIW#1、LIW#2、及びLIW#3の命令の組合せが少数発生する。こうした不正な組合せは、命令デコーダ・ブロック62にトラップされ、その結果、不正命令フラグの設定が行われる。
プロセッサ・アーキテクチャを支援するコンパイラ及びアセンブラが、コンパイル時に規定外の命令の組合せを実行させないように設定されることが好ましい。
LIW命令の配列をさらに制限しなければならない状況がある。これは分岐先を指定する場合である。このアーキテクチャは、プロセッサ・サイクルごとにデコードされる命令に依存するため、分岐先を64ビットの命令語の最初に配列する必要がある。命令デコーダ62は、全て0のバイトの命令(「LIW#1なし、LIW#2なし、及びLIW#3なし」に等しい)を「新規データ・ライン」と解釈し、64ビットの命令語をフェッチする。そして、分岐先での命令の64ビット配列を確実にするため、コンパイラ及びアセンブラは「新規データ・ライン」命令を、命令列の最後、分岐先の直前に使うことができる。
このため、長命令語フォーマットには、長命令語長LIWinstが演算装置の総数とは無関係であるというプロパティがある。もっと正確に言うと、これは、単一プロセッサ・サイクルで動作可能な演算装置の最大数により決まる。図示の本実施例によると、6つの利用可能な演算装置の中で、最大で3つの演算装置が、単一のLIW命令/プロセッサ・サイクルで動作可能であり、単一LIW命令の最大長は64ビットに制限されている。
さらに、長命令語長LIWinstは、所定のサイクルで動作中の演算装置の数に応じて、命令を次々に変更することができる。このため、多くの命令サイクルにおいて、LIWinstが64ビット未満となると考えられる。
また、通常は命令語境界へ配列する必要はなく、複数の命令を64ビット幅の命令メモリ60に圧縮することができ、かつ、命令は、64ビット命令語境界を超過して以下の命令語となることがある。
総合すると、上述の要因により結果として、サイクルごとに複数の並列処理を実行する高性能信号処理用途及びさらに複雑な制御機能を実行する低性能信号処理用途の両方において、コンパクトで高性能なオブジェクト・コードとなる。
これにより、ハードウェアの複雑性を著しく低減させ、さらに重要なことに、アーキテクチャを支えるために必要なコンパイラ/アセンブラの複雑性を低減させている。
本発明の一実施例に係るプロセッサ・アレイのブロック略図である。 本発明の他の実施例に係る図1に示すプロセッサ・アレイのプロセッサのブロック略図である。 図2に示すプロセッサで使用される命令語形式の概観である。 図3に示す命令語の一部の形式をさらに詳細に示す。 図3に示す命令語の第2の部分の動作を示す。 図3に示す命令語の第3の部分の動作を示す。

Claims (13)

  1. 複数の演算装置と、サブ命令を含む命令語をデコードする手段とを備える長命令語プロセッサであって、
    前記演算装置は、複数のグループに分けられ、前記複数のグループの各グループは少なくとも1つの演算装置を備え、
    1つの命令語は、前記複数のグループの各グループに含まれる前記複数の演算装置のうち、1つの前記演算装置のみに対する1つのサブ命令を含み、
    1つの命令語は、所望数の前記複数のグループに含まれる各演算装置に対する各サブ命令を含むことを特徴とするプロセッサ。
  2. 固定幅の命令メモリを備え、命令語長が前記命令語のサブ命令数に依存することを特徴とする請求項1記載のプロセッサ。
  3. 前記命令メモリの固定幅は前記命令メモリの列を定義し、命令語をデコードする前記手段は前記命令メモリの列境界を越える命令語をデコードする手段から構成されることを特徴とする請求項2記載のプロセッサ。
  4. 前記複数のグループの第1のグループは、第1の算術論理演算装置で構成され、
    前記複数のグループの第2のグループは、前記プロセッサの受信データ・バスからデータを転送し、前記プロセッサの発信データ・バスにデータを転送するように適合されている通信装置で構成されていることを特徴とする前記請求項のいずれかに記載のプロセッサ。
  5. 前記通信装置は、前記プロセッサの内部レジスタからデータを転送し、前記プロセッサの前記内部レジスタにデータを転送するように適合されていることを特徴とする請求項4記載のプロセッサ。
  6. 前記複数のグループの前記第2のグループは、前記プロセッサの内部メモリからデータを転送し、前記プロセッサの前記内部メモリにデータを転送するように適合されたメモリ・アクセス装置とともに用いられる第2の算術論理演算装置をさらに備えることを特徴とする請求項4記載のプロセッサ。
  7. 演算装置からなる第3のグループをさらに備えることを特徴とする請求項4記載のプロセッサ。
  8. 演算装置からなる前記第3のグループは、分岐演算を実行するように適合された分岐装置で構成されることを特徴とする請求項7記載のプロセッサ。
  9. 演算装置からなる前記第3のグループは、乗算装置で構成されることを特徴とする請求項7または8記載のプロセッサ。
  10. 演算装置からなる前記第3のグループは、乗算アキュムレータ装置で構成されることを特徴とする請求項7または8記載のプロセッサ。
  11. 演算装置からなる前記第3のグループは、信号処理を実行する装置で構成されることを特徴とする請求項7〜10いずれかに記載のプロセッサ。
  12. 固定幅の命令メモリをさらに備え、
    前記複数の演算装置は、第1のグループ及び少なくとも第2のグループに分けられ、
    前記第1のグループにのみ含まれる1つの演算装置に対するサブ命令を含む命令語が第1の命令語長を有し、
    前記第2のグループに含まれる1つの演算装置に対するサブ命令を含む命令語が前記第1の命令語長よりも長い第2の命令語長を有し、
    前記命令メモリは、前記第1の命令語長を有する命令語及び前記第2の命令語長を有する命令語を格納するよう適合されていることを特徴とする請求項1に記載のプロセッサ。
  13. 複数の通信バスにより相互に接続される複数の長命令語プロセッサのアレイを備えるプロセッサ・アレイであって、
    前記長命令語プロセッサの各プロセッサは、
    少なくとも算術論理演算装置と、必要に応じて、前記複数の通信バスの1つからデータを転送する、または、前記複数の通信バスの1つへデータを転送するように適合された通信装置とを含む複数の演算装置と、
    サブ命令を含む命令語をデコードする手段とを備え、
    前記演算装置は複数のグループに分けられ、前記複数のグループの各グループは少なくとも1つの演算装置を備え、前記算術論理演算装置及び通信装置は異なるグループに含まれ、
    1つの命令語は、前記複数のグループの各グループに含まれる前記複数の演算装置のうち、1つの前記演算装置のみに対する1つのサブ命令を含み、
    1つの命令語は、所望数の前記複数のグループに含まれる各演算装置に対する各サブ命令を含むことを特徴とするプロセッサ・アレイ。


JP2005349339A 2004-12-03 2005-12-02 プロセッサ・アーキテクチャ Expired - Fee Related JP5112627B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0426606A GB2420884B (en) 2004-12-03 2004-12-03 Processor architecture
GB0426606.0 2004-12-03

Publications (2)

Publication Number Publication Date
JP2006164279A true JP2006164279A (ja) 2006-06-22
JP5112627B2 JP5112627B2 (ja) 2013-01-09

Family

ID=34044035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005349339A Expired - Fee Related JP5112627B2 (ja) 2004-12-03 2005-12-02 プロセッサ・アーキテクチャ

Country Status (4)

Country Link
US (2) US20060155958A1 (ja)
EP (1) EP1667016A3 (ja)
JP (1) JP5112627B2 (ja)
GB (1) GB2420884B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100813662B1 (ko) 2006-11-17 2008-03-14 삼성전자주식회사 프로세서 구조 및 응용의 최적화를 위한 프로파일러

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101478785B (zh) * 2009-01-21 2010-08-04 华为技术有限公司 资源池管理系统及信号处理方法
WO2015035339A1 (en) * 2013-09-06 2015-03-12 Huawei Technologies Co., Ltd. System and method for an asynchronous processor with heterogeneous processors
US9928074B2 (en) 2013-09-06 2018-03-27 Huawei Technologies Co., Ltd. System and method for an asynchronous processor with token-based very long instruction word architecture

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034471A (ja) * 1999-07-19 2001-02-09 Mitsubishi Electric Corp Vliw方式プロセッサ
US20030154358A1 (en) * 2002-02-08 2003-08-14 Samsung Electronics Co., Ltd. Apparatus and method for dispatching very long instruction word having variable length
WO2004029796A2 (en) * 2002-09-24 2004-04-08 Koninklijke Philips Electronics N.V. Apparatus, method ,and compiler enabling processing of load immediate instructions in a very long instruction word processor
WO2004034251A1 (en) * 2002-10-11 2004-04-22 Koninklijke Philips Electronics N.V. Vliw processor with power saving
JP2004525439A (ja) * 2000-12-19 2004-08-19 ピコチップ デザインズ リミテッド プロセッサアーキテクチャ

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5692139A (en) * 1988-01-11 1997-11-25 North American Philips Corporation, Signetics Div. VLIW processing device including improved memory for avoiding collisions without an excessive number of ports
DE69325785T2 (de) * 1992-12-29 2000-02-17 Koninkl Philips Electronics Nv Verbesserte Architektur für Prozessor mit sehr langem Befehlswort
EP0652509B1 (en) * 1993-11-05 2000-05-10 Intergraph Corporation Instruction cache associative cross-bar switch
US5848288A (en) 1995-09-20 1998-12-08 Intel Corporation Method and apparatus for accommodating different issue width implementations of VLIW architectures
JP3623840B2 (ja) * 1996-01-31 2005-02-23 株式会社ルネサステクノロジ データ処理装置及びマイクロプロセッサ
US5826054A (en) * 1996-05-15 1998-10-20 Philips Electronics North America Corporation Compressed Instruction format for use in a VLIW processor
US6216223B1 (en) * 1998-01-12 2001-04-10 Billions Of Operations Per Second, Inc. Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor
US6317820B1 (en) * 1998-06-05 2001-11-13 Texas Instruments Incorporated Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism
US6240510B1 (en) 1998-08-06 2001-05-29 Intel Corporation System for processing a cluster of instructions where the instructions are issued to the execution units having a priority order according to a template associated with the cluster of instructions
US6249861B1 (en) * 1998-12-03 2001-06-19 Sun Microsystems, Inc. Instruction fetch unit aligner for a non-power of two size VLIW instruction
JP2000305781A (ja) * 1999-04-21 2000-11-02 Mitsubishi Electric Corp Vliw方式プロセッサ、コード圧縮装置、コード圧縮方法およびコード圧縮プログラムを記録した媒体
US6631439B2 (en) * 2000-03-08 2003-10-07 Sun Microsystems, Inc. VLIW computer processing architecture with on-chip dynamic RAM
US7127588B2 (en) * 2000-12-05 2006-10-24 Mindspeed Technologies, Inc. Apparatus and method for an improved performance VLIW processor
JP2003005958A (ja) * 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
US7404067B2 (en) 2003-09-08 2008-07-22 Intel Corporation Method and apparatus for efficient utilization for prescient instruction prefetch
JP4283131B2 (ja) * 2004-02-12 2009-06-24 パナソニック株式会社 プロセッサ及びコンパイル方法
GB2414308B (en) * 2004-05-17 2007-08-15 Advanced Risc Mach Ltd Program instruction compression
US7840953B2 (en) 2004-12-22 2010-11-23 Intel Corporation Method and system for reducing program code size

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034471A (ja) * 1999-07-19 2001-02-09 Mitsubishi Electric Corp Vliw方式プロセッサ
US6615339B1 (en) * 1999-07-19 2003-09-02 Mitsubishi Denki Kabushiki Kaisha VLIW processor accepting branching to any instruction in an instruction word set to be executed consecutively
JP2004525439A (ja) * 2000-12-19 2004-08-19 ピコチップ デザインズ リミテッド プロセッサアーキテクチャ
US20030154358A1 (en) * 2002-02-08 2003-08-14 Samsung Electronics Co., Ltd. Apparatus and method for dispatching very long instruction word having variable length
WO2004029796A2 (en) * 2002-09-24 2004-04-08 Koninklijke Philips Electronics N.V. Apparatus, method ,and compiler enabling processing of load immediate instructions in a very long instruction word processor
JP2006500673A (ja) * 2002-09-24 2006-01-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 処理装置、処理方法及びコンパイラ
WO2004034251A1 (en) * 2002-10-11 2004-04-22 Koninklijke Philips Electronics N.V. Vliw processor with power saving

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100813662B1 (ko) 2006-11-17 2008-03-14 삼성전자주식회사 프로세서 구조 및 응용의 최적화를 위한 프로파일러
US8490066B2 (en) 2006-11-17 2013-07-16 Samsung Electronics Co., Ltd. Profiler for optimizing processor architecture and application

Also Published As

Publication number Publication date
US9104426B2 (en) 2015-08-11
GB2420884B (en) 2009-04-15
US20080065859A1 (en) 2008-03-13
GB0426606D0 (en) 2005-01-05
US20060155958A1 (en) 2006-07-13
EP1667016A2 (en) 2006-06-07
GB2420884A (en) 2006-06-07
EP1667016A3 (en) 2008-01-02
JP5112627B2 (ja) 2013-01-09

Similar Documents

Publication Publication Date Title
US10445451B2 (en) Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US10515046B2 (en) Processors, methods, and systems with a configurable spatial accelerator
US10469397B2 (en) Processors and methods with configurable network-based dataflow operator circuits
US6418527B1 (en) Data processor instruction system for grouping instructions with or without a common prefix and data processing system that uses two or more instruction grouping methods
KR100464406B1 (ko) 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법
US20190303297A1 (en) Apparatus, methods, and systems for remote memory access in a configurable spatial accelerator
US5903769A (en) Conditional vector processing
JP3842474B2 (ja) データ処理装置
US10678724B1 (en) Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator
US20030028750A1 (en) Method and system for digital signal processing in an adaptive computing engine
US5561808A (en) Asymmetric vector multiprocessor composed of a vector unit and a plurality of scalar units each having a different architecture
EP1267258A2 (en) Setting up predicates in a processor with multiple data paths
EP2069913A1 (en) Method and system to combine multiple register units within a microprocessor
US7139899B2 (en) Selected register decode values for pipeline stage register addressing
CN108139911B (zh) 在vliw处理器的同一执行包中使用有条件扩展槽的指令的有条件执行规格
JP2006500673A (ja) 処理装置、処理方法及びコンパイラ
US7861071B2 (en) Conditional branch instruction capable of testing a plurality of indicators in a predicate register
JP5112627B2 (ja) プロセッサ・アーキテクチャ
US20110072238A1 (en) Method for variable length opcode mapping in a VLIW processor
US7340591B1 (en) Providing parallel operand functions using register file and extra path storage
US11106465B2 (en) Vector add-with-carry instruction
Ezer Xtensa with user defined DSP coprocessor microarchitectures
US6438680B1 (en) Microprocessor
CN111984313A (zh) 矢量位转置
CN101042641B (zh) 一种具有动态提交流水线功能的数字信号处理器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101012

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110112

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110210

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120302

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120307

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120404

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121011

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

Free format text: PAYMENT UNTIL: 20151019

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees