JP2002063025A - 可変長データ処理用プロセッサ - Google Patents

可変長データ処理用プロセッサ

Info

Publication number
JP2002063025A
JP2002063025A JP2000248696A JP2000248696A JP2002063025A JP 2002063025 A JP2002063025 A JP 2002063025A JP 2000248696 A JP2000248696 A JP 2000248696A JP 2000248696 A JP2000248696 A JP 2000248696A JP 2002063025 A JP2002063025 A JP 2002063025A
Authority
JP
Japan
Prior art keywords
data
bit
carry
processor
processing
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.)
Withdrawn
Application number
JP2000248696A
Other languages
English (en)
Inventor
Masahiro Saito
雅博 齋藤
修司 ▲高▼田
Shuji Takada
Yasuhiro Oba
康弘 大場
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2000248696A priority Critical patent/JP2002063025A/ja
Priority to US09/817,074 priority patent/US20020124038A1/en
Publication of JP2002063025A publication Critical patent/JP2002063025A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/3816Accepting numbers of variable word length

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】 通信用アプリケーションに好適なプロセッサ
であって、リアルタイム性と高速処理性に優れ、かつ、
機能変更や機能追加等に柔軟に対処可能な、可変長デー
タ処理用のプロセッサを提供する。 【解決手段】 1ワード(W)単位でビット毎にデータ
の演算を行う複数の演算回路5を含むプロセッサ1であ
って、被演算対象のデータと非演算対象のデータを区分
する処理マスク制御部4と、演算回路5の間でキャリー
の伝播を制御するキャリーマスク制御部12と、2つの
被演算対象データ間で任意にビット入替えを行うビット
交換制御部34とを含んで構成される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、IP,ATM,S
DH等に代表されるデータ通信において使用されるデー
タ、すなわちフレーム構造を持ったデータ、の処理に応
用して好適な可変長データ処理用プロセッサに関する。
【0002】
【従来の技術】通信用アプリケーションにおいては、高
いリアルタイム性を要求されることが多く、また、デー
タ処理の内容に応じて対象とするデータの幅やそのデー
タのフレーム内での収容位置が変化する、いわゆる可変
長データを取り扱うことが多い。
【0003】例えば、ATM (Asynchronou
s Transfer Mode)やSDH(Sync
hronous Data Hierarchy)等の
データ通信においては、伝送すべきパケットのヘッダ内
から特定のビットだけを切り出して処理を行っている。
また、近年急速に発展しているIP(Internet
Protocol)通信では、伝送すべきパケット内
の可変長のヘッダを処理する等、可変長データを処理す
ることが必須となる通信用アプリケーションの需要が高
まっている。
【0004】従来、上述のような通信用アプリケーショ
ンの開発に不可欠なLSIの設計においては、専用のハ
ードウェアを組み上げることにより、そのLSIを実現
するということが行われていた。しかしそのような専用
のハードウェアからなるLSIを用いると、アプリケー
ション上の機能変更、機能追加、仕様変更等に対する柔
軟性がきわめて低くなり、そのような変更や追加がなさ
れたLSIが元のLSIとかなり近似した機能を持つL
SIであるにも拘らず、新たに当該LSIの再開発を行
う必要があった。このため、その再開発によってコスト
が増大したり、また、即応性(Time−to−Mar
ket)に対処できなくなったりしている。
【0005】このような背景のもとで近年、プロセッサ
を内蔵することによりプログラム処理が可能なLSIが
出現するようになった。このようにプロセッサを内蔵し
て処理機能毎のプログラムを用意することにより、複数
のプロトコル処理を1つのLSIで行うことができるよ
うになった。さらに、プログラムを変更するだけで、上
述した機能変更、機能追加、仕様変更等にも柔軟に対応
することができるようになった。
【0006】しかしながら、通信用アプリケーション
を、プロセッサ単体を核とする上記のLSIで実現する
ことは、その通信の実行に要求される処理速度を達成す
る上で、現状では、ほとんど不可能である。特にその通
信のために必要となる、インタリーブ/デインタリーブ
に代表されるデータの符号化/復号化におけるビットの
交換処理を行う場合や、使用するデータの収容ビット位
置やデータ幅が可変であるようなデータの処理を行う場
合に、既述したプロセッサ内臓のLSIでは、上述した
要求処理速度を満足することは非常に難しい。
【0007】その理由は、上記のLSI内のプロセッサ
が、可変長データの処理に対応しておらず、固定長デー
タのみを扱う構成となっているからである。このような
状況により、既存のプロセッサを用いて可変長データの
処理を行おうとすると、処理対象となるデータのロー
ド、データ位置合わせのためのシフト、処理に不要なビ
ットのマスク等、のデータに対する加工処理(前処理)
がどうしても必要となる。結局このようなデータの加工
処理が、上記LSIを実用化する上でのボトルネックと
なっている。
【0008】
【発明が解決しようとする課題】かくして現状の可変長
データ処理用プロセッサにおいては、 1)1ワード中の任意のフィールドに対するデータ処理
を行うために、データのシフト命令とマスク命令の組合
せによるデータの前処理が必要となる、という第1の問
題がある。
【0009】2)その第1の問題に起因して、上記前処
理用の命令も必要となり、1処理に必要とされるインス
トラクションメモリの容量が増大してしまう、という第
2の問題がある。 3)もともと通信用としては高速処理が要求されるが、
処理の内容によってさらに高速処理が要求されるような
場合には、上述したデータの加工処理(前処理)だけを
行うための専用のハードウェアを追加しなければならな
い、という第3の問題がある。
【0010】したがって本発明は上記諸問題点を同時に
解決することのできる可変長データ処理用プロセッサを
提供することを目的とするものである。
【0011】
【課題を解決するための手段】図1は本発明に係るプロ
セッサの第1の主要部を示す図である。本図において、
参照番号1は本発明に係る可変長データ処理用プロセッ
サ(以下、単にプロセッサとも称す)を示し、大きく分
けて、演算装置2と、出力選択部3と、処理マスク制御
部4とからなる。
【0012】まず本発明のプロセッサ1は、1ワード単
位でビット毎にデータの演算を行う複数の演算回路(A
LU)5を含むプロセッサである。処理マスク制御部4
は、各ワードW内のデータを、被演算対象のデータとそ
れ以外の非演算対象のデータとに区分するためのビット
指定を行う。また出力選択部3は、処理マスク制御部4
による上記のビット指定に従い、上記の被演算対象のデ
ータについては当該ビット対応で演算回路5による演算
処理を行ってその演算結果を取り出す機能および上記の
非演算対象のデータについては当該ビット対応で演算回
路5をスルーさせる機能のいずれかの機能を択一的に有
効にする。
【0013】なお図1において、各記号の意味は下記の
とおりである。 Alsb:入力Aの最下位ビット(least significant
bit) Blsb:入力Bの最下位ビット Amsb:入力Aの最上位ビット(most significant b
it) Bmsb:入力Bの最上位ビット ALU0:最下位ビットの演算回路(5)(Arithmetic
and Logic Unit) ALUn:最上位ビットの演算回路(5) Co lsb:最下位ビットのキャリー出力(carry ou
t) Slsb:最下位ビットの演算結果 Smsb:最上位ビットの演算結果 ここで、入力Aとは外部から与えられる通信対象のデー
タ(ワードW)のことであり、入力Bとはプロセッサ1
内の例えばテーブルに格納されているデータのことであ
る。また入力Aのうち、被演算対象のデータ(ビットデ
ータ)については、一例として、図中、ハッチングを付
して示す。
【0014】さらに具体的には、処理マスク制御部4
は、各ワードW内の各ビット(Alsb,A1,A2
…)が、被演算対象のビットであるか非演算対象のビッ
トであるかを、各ビット対応に指定するための論理1ま
たは0を格納する処理マスクレジスタ7を有している。
なお、処理マスクレジスタ7への上述した論理1または
0の格納は、演算回路5による処理を実行するのに先立
って外部から設定する。
【0015】また出力選択部3は、各ビット対応に、演
算回路5からの上記の演算結果およびこの演算回路5を
スルーした非演算対象のデータの双方を入力してこれら
を択一的に選択して出力する出力セレクタ6からなり、
各出力セレクタ6は処理マスクレジスタ7からの上記の
論理1または0 (図中の1/0)に従ってその選択を行
うようにする。
【0016】なお、上記の演算結果は図中のライン8を
転送され、上記のスルーのときは図中のライン9を通し
てデータを転送する。図2は本発明に係るプロセッサの
第2の主要部を示す図である。なお全図を通じて同様の
構成要素には同一の参照番号または記号を付して示す。
本図において、プロセッサ1は図1と同じく、複数の演
算回路(ALU)5を含む演算装置2を有している。ラ
イン8も図1と同様であるが、ライン9は必要に応じて
設ける。
【0017】本図に示す第2の主要部は、大きく分け
て、キャリー選択部11と、キャリーマスク制御部12
とからなる。キャリーマスク制御部12は、隣接する演
算回路(5)間で一方の演算回路から発生したキャリー
(Co0,Co1…)を他方の演算回路に伝播するかし
ないかを各ビット対応で設定するためのキャリー伝播指
定を行う。
【0018】またキャリー選択部11は、キャリーマス
ク制御部12による上記のキャリー伝播指定に従い、一
方の演算回路5からのキャリーを他方の演算回路5に伝
播させる機能およびその他方の演算回路にキャリーとし
て予め定めた固定論理(図では0で示す)を与える機能
のいずれかの機能を択一的に有効にする。さらに具体的
には、キャリーマスク制御部12は、キャリーの伝播を
行うか固定論理(図中の0)を与えるかを、各ビット対
応に指定するための論理1または0を格納するキャリー
マスクレジスタ14を有している。
【0019】なおキャリーマスクレジスタ14への論理
1または0の格納は、演算回路5による処理を実行する
のに先立って外部から設定する。またキャリー選択部1
1は、具体的には、各ビット対応に、演算回路5からの
キャリーおよび上記の固定論理(0)の双方を入力して
これらを択一的に選択して出力するキャリーセレクタ1
3からなり、各キャリーセレクタ13はキャリーマスク
レジスタ12からの上記の論理1または0(図中の1/
0)に従ってその選択を行うようにする。
【0020】図3は図2に示す第2の主要部の第1変形
例を示す図であり、図4は図2に示す第2の主要部の第
2変形例を示す図である。まず図3を参照すると、図2
のキャリー選択部11に代えてキャリー分配部21が示
されている。このキャリー分配部21は、演算回路
(5)間で一方の演算回路から発生したキャリーを他方
の演算回路に伝播させるためのものである。
【0021】さらに具体的には、キャリー分配部21
は、各ビット対応に、各演算回路5から発生したキャリ
ー(Co0,Co1…)を入力とし、予め定められた1
のキャリーを選択して(Ci0,Ci1…)、各ビット
対応の演算回路5に伝播させるキャリーセレクタ23か
らなる。そしてさらにキャリー分配設定部22を有する
のが好ましい。
【0022】このキャリー分配設定部22は、各キャリ
ーセレクタ23に対し、いずれの演算回路5から発生し
たキャリー(Co0,Co1…)を選択すべきかを予め
定めて、指定するものである。このキャリー分配部22
は、図2に示すキャリーマスクレジスタ14に相当する
が、このレジスタ14は1ビットの選択情報1/0でよ
いのに対し、図3の第1変形例においては、複数ビット
(2ビット以上)に対応するキャリー(Co0,Co1
…Con)の中から1つを選択する必要があるのでこの
選択情報を転送するライン24は多ビットラインとな
る。
【0023】次に図4を参照して第2変形例について見
てみると、キャリー選択部11(図2の11に相当)
は、一方の演算回路5からのキャリー(Co0,Co1
…)として、過去の演算処理で発生したキャリーを記憶
する記憶素子(例えば、レジスタ)25からのキャリー
を選択する機能も加えて選択を行うことができる。な
お、この第2変形例の適用の仕方については後述する
(図13)。
【0024】図5は本発明に係るプロセッサの第3の主
要部を示す図である。本図に示すように、プロセッサ1
は、各演算回路5に入力すべき第1ワードW1内の被演
算対象のデータを一旦格納する第1レジスタと、各演算
回路5に入力すべき第2ワードW2内の被演算対象のデ
ータを一旦格納する第2レジスタと、を具備している。
【0025】第3の主要部の特徴は、ビット交換スイッ
チ部33にある。このビットスイッチ部33は、その第
1および第2レジスタ31,32にそれぞれ格納された
データを、各ビット位置を揃えて複数のビット同士で同
時にビットの入替えを行うものである。なお、図5で
は、ビットの入替えの対象となるデータの一例をハッチ
ングを付して示す。
【0026】好ましくは上記ビットスイッチ部33は、
図示するビット交換制御部34と協働する。すなわちこ
のビット交換制御部34は、ビットスイッチ部33によ
りビット入替えをすべきビット位置を指定する。さらに
具体的には、このビット交換制御部34は、第1および
第2ワードW1,W2内の各ビットが、ビット入替えす
べきビット位置か否かを、各ビット対応に指定するため
の論理1または0を格納するビット交換レジスタ35を
有している。
【0027】なお、上記のビット入替えは例えばインタ
リーブ処理では不可欠なものであり、ビット交換レジス
タ34への上記の論理1または0の格納は、演算回路5
による処理を実行するのに先立って外部から設定する。
図6は本発明に係るプロセッサの第4の主要部を示す図
である。本図に示すプロセッサ1は、相互に同一構成を
有し、かつ、1ワード単位でビット毎にデータの演算を
行う複数の演算回路5を含むサブプロセッサ41を複数
(図では2つ)並列に接続してなるプロセッサである。
これらサブプロセッサ41同士は、キャリー入出力イン
タフェース部42を介して接続されている。
【0028】このキャリー入出力インタフェース部42
は、被演算対象のデータのデータ長が1ワード(W)の
ビット長を超えるときに有効となり、隣接する一方のサ
ブプロセッサ41内の演算回路5から発生したキャリー
を他方のサブプロセッサ41内の演算回路5に伝播させ
ると共に、その他方のサブプロセッサ41内の演算回路
5から発生したキャリーをその一方のサブプロセッサ4
1内の演算回路5に伝播させるものである。
【0029】上記キャリー入出力インタフェース部42
は好ましくはキャリーセレクタ43を有する。このキャ
リーセレクタ43は、各ビット対応に、各演算回路5か
ら発生したキャリー(Co0,Co1…)と隣接するサ
ブプロセッサ41(図中の右)内のいずれかの演算回路
5から発生したキャリーCo’とを入力とし、予め定め
られた1のキャリーを選択して各ビット対応の演算回路
5に伝播させると共に、その選択されたキャリーを隣接
するサブプロセッサ41(図中の右)に転送する。
【0030】上記キャリー入出力インタフェース部42
はさらに、転送キャリー制御部44を備える。この転送
キャリー制御部44は、各ビット対応に、キャリーセレ
クタ43により選択された選択キャリーSCを入力と
し、隣接するサブプロセッサ41(図中の右)に転送す
べき転送キャリーTCを選択する転送キャリーセレクタ
45を有すると共に、各キャリーセレクタ43に対し予
め定めた選択指示SIを与える。
【0031】以上、本発明に係るプロセッサ1の第1〜
第4の主要部について部分的に説明したので、次にプロ
セッサ1の全体構成について説明する。なお上記の第1
〜第4の主要部は、それぞれ単独で用いても良いし、あ
るいはそれらの任意の組合せで用いても良い。さらにそ
れら主要部を全て用いても良く、この場合には当然多様
な可変長データに対処できることになる。
【0032】図7は本発明に係るプロセッサの第1の全
体構成例を示す図である。本図の全体構成例は、前述し
た第1の主要部(図1)および第2の主要部(図2、図
3、図4)の双方 (本図中の構成要素4,7,12およ
び14)を採用したプロセッサ1を示す。図7におい
て、処理の対象となる有効フィールド (図中のF)が含
まれている1ワード分 (図中のW)のデータがメモリ5
1より読み出され、レジスタA(参照番号31で示す)
に格納される。以下、処理内容が論理演算の場合(1)
と算術演算の場合(2)とに分けて説明する。 (1)処理内容が論理演算の場合 処理マスク制御部4の中の処理マスクレジスタ7に対し
て、処理の対象とならない非演算対象のビットの設定を
行い、その設定値をもとに、処理マスク制御部4は、制
御信号Sc1を生成し、演算装置2に出力する。演算装
置2は、処理マスク制御部4からの上記制御信号Sc1
に従い、メモリ51よりセレクタ52を介して読み出さ
れたレジスタAとレジスタB (参照番号53で示す) 内
の、処理に必要なフィールド(F)同士の演算を実施
後、その演算結果をレジスタC(参照番号54で示す)
に格納する。
【0033】このとき、処理対象外となる非演算対象の
データについては、メモリ51から読み出した値をその
まま演算装置2より出力する。その後、レジスタCに格
納されたデータを、初めにメモリ51より読出しを行っ
た元のアドレスに対して書き込む。 (2)処理内容が算術演算の場合 論理演算の場合と同様に、処理マスク制御部4の中の処
理マスクレジスタ7に対して、処理の対象とならない非
演算対象のビットの設定を行うことにより、レジスタA
とレジスタBの各有効フィールドFに対し演算を実施す
る。
【0034】このとき、ワード(W)中の任意の位置に
あり、かつ、ビット長が可変であるデータの算術演算を
行うときには、演算処理の結果生ずるキャリー(Co
0,Co1…)の伝播を、任意のビットに対して印加す
るかしないかのオン/オフ設定制御を可能とする制御機
構すなわち図2の構成が有効になる。すなわちキャリー
マスク制御部12の中のキャリーマスクレジスタ14に
対して、キャリーの伝播を行わないビットの設定を行う
ことにより、キャリーマスク制御部12は、レジスタ1
4内のその設定値をもとにして制御信号Sc2を生成
し、これを演算装置2に出力する。
【0035】演算装置2は、処理マスク制御部4および
キャリーマスク制御部12よりそれぞれ入力される制御
信号Sc1およびSc2に従って、レジスタAとレジス
タBにそれぞれ格納されているデータの中の有効フィー
ルド(F)同士の算術演算を行う。以降は上記論理演算
のときと同様に、演算装置2からの演算結果と処理対象
外である非演算対象のデータとを、レジスタCに転送
し、さらに、初めにメモリ51より読出しを行った元の
アドレスに対して書き込みを行う。
【0036】上記(1)および(2)により、従来のプ
ロセッサにおいてデータの境界合わせや、データ格納時
に必要であったデータのシフトおよび、演算時に不要と
なるビットのマスク処理等を行うことなく、1ワード中
の任意の位置に格納され、かつ、任意の長さを有するデ
ータに対して算術・論理演算を行うことが可能となる。
【0037】図8は図7の構成をさらに具体的に示す図
であり、特に、処理マスク制御部4とキャリーマスク制
御部12をさらに具体化して示す。本図において新たに
示された構成要素は、制御メモリ56とデコーダ57お
よび58である。メモリ51が処理対象となる本来のデ
ータを格納するのに対し、制御メモリ56は既述の処理
マスクレジスタ7およびキャリーマスクレジスタ14に
それぞれ与えるべきビット指定データ (設定値)を格納
する。
【0038】デコーダ57および58は、上記のレジス
タ7および14に与えられた上記ビット指定データをデ
コードし、前述の制御信号Sc1およびSc2を生成す
る。図9は本発明に係るプロセッサの第2の全体構成例
を示す図である。本図の全体構成例は、前述した第1の
主要部 (図1)、第2の主要部 (図2、図3、図4)お
よび第3の主要部 (図5)を採用したプロセッサ1を示
す。したがって本図の構成は、図8の構成にビット交換
制御部34がさらに加わったものに相当する。またその
ために、図8の構成に対し、第2レジスタ (レジスタ
A’)32もさらに加わっている。このレジスタA’は
図5に示したものである。
【0039】上記ビット交換制御部34の理解のために
まず図10を参照しておく。図10はビット交換制御部
34の説明に用いるデータ構成図(その1)である。ま
ず第1段階では、図9のメモリ51よりLSB(Least S
ignificant Bit) を含む1ワードを読み出し、図10の
レジスタAにワード#nとして格納する。
【0040】また図9のメモリ51よりMSB(Most S
ignificant Bit) を含む1ワードを読み出し、図10の
レジスタA’にワード#n+1として格納する。次に第
2段階では、ビット交換制御部34を動作させて、図1
0の両方向矢印Xで図解するようにビット入替えを行
う。ここに図10の下方に示すデータフォーマットを有
するデータが得られる。これで丁度1ワード分のデータ
になって、演算装置2が演算可能なデータフォーマット
となる。図9のメモリ51内に示すような2ワード分の
領域にまたがるようなデータは演算装置2では受け付け
ることができない。なお、このようなデータ構造を持つ
ものとしては、例えば既述のATMにおける各セルのヘ
ッダ部分に書き込まれるVPI/VCIの値がある。
【0041】ここで再び図9に戻り、上記の図10を参
照しつつ、本図のプロセッサ1の動作を説明する。ま
ず、処理の対象となる被演算対象データのうち、図9の
メモリ51からLSBが格納されている1ワード分のデ
ータ (ワード#n)を読み出し、セレクタ52を介して
レジスタAに格納する。
【0042】次にそのメモリ51からMSBが格納され
ている1ワード分のデータ (ワード#n+1)を読み出
し、レジスタA’に格納する。ここで、レジスタAとレ
ジスタA’との間の任意のビット入替えするために、図
9のビット交換制御部34内のビット交換レジスタ35
が機能する。すなわち、交換制御部34内のビット交換
レジスタ35に対して、ビット入替えの対象となるビッ
トの設定を行うと、ビット交換制御部34はビット交換
レジスタ35への該設定値をもとにして、制御信号Sc
3を生成し、その設定値に従って、レジスタAとレジス
タA’の各該当ビットの内容を入れ替える。
【0043】これにより、メモリ51に2ワード分の領
域にまたがって格納されていた処理対象データが、1ワ
ード分のレジスタAに格納されることとなり、論理演算
については、図7の場合と同様に演算装置2による演算
処理が可能となる。このようにビット交換制御部34を
設けることにより、従来のプロセッサが苦手としてい
た、ビットの交換処理を高速に行うことが可能になる。
【0044】しかし一方、処理内容が算術演算の場合に
は、LSB側の演算処理の結果生ずるキャリーをMSB
側へ反映させなければならない。そこで、任意のビット
から出力されるキャリーを任意のビットへ入力すること
を可能とするために設けたのが、図3に示すキャリー分
配部21およびキャリー分配設定部22である。これに
より、有効フィールドに収容されているデータの任意の
位置をMSBとして、該データの演算をすることが可能
となり、結局、メモリ51内に2ワード分の領域にまた
がって格納されているデータに対する演算処理も、図7
の場合と同様に行うことができる。
【0045】上記の演算処理が終了した後は、その演算
結果はレジスタAに格納される。その後、ビット交換レ
ジスタ35に設定された上記の設定値に従って、レジス
タAとレジスタA’の各ビット内容を交換して、レジス
タAとレジスタA’に格納されている各データを、メモ
リ51内の元のアドレスに対して書き込む。図11はビ
ット交換制御部34の説明に用いるデータ構成図(その
2)である。このデータ構成の場合は演算処理がやや複
雑になるので、次の図を参照して説明する。
【0046】図12は図11に示すデータ構成について
演算処理を行う場合の処理フローを表す図である。また
図13は図12に表す処理フローにおいて一部採用する
処理部を示す図である。この処理部は前述した図4の構
成に基づくものである。まず図11を参照すると、本図
は、レジスタAとレジスタA’(図9の31と32)と
の間で、ビット入替えを行う際に、ビットのオーバーラ
ップが存在していることを表す。上述の図10に示すデ
ータ構成の例では、このようなビットのオーバーラップ
は存在しないが、図11では、同図の上2段のレジスタ
AとA’の各中央部分でオーバーラップが存在してい
る。
【0047】このようなオーバーラップを含む場合に
は、図12に表す処理フローが、図9に示すプロセッサ
1により、実行される。レジスタAにLSB側のデータ
をロード (矢印O)し、レジスタA’へMSB側のデー
タをロード (矢印P)した後、図示するFA−2とF
A’−2の各領域間でビット交換制御部34によりビッ
ト入替え (両矢印Q)する(図12の<1>)。なお、
FAはField Aの略である。
【0048】その後、図9の演算装置2(図13のAL
U0,ALU1…)により、レジスタAとレジスタBの
各データを使用して演算処理を実施し、その演算結果を
レジスタAへ格納する (図12の<2>)。このとき、
その演算処理で発生したキャリー(Co0,Co1…)
を、図13の記憶素子25に保持しておく。次に、演算
処理後のFA−2’とFA−2の内容をビット入替えす
る (両矢印R)。
【0049】次にそのレジスタAの内容をメモリ51の
元のアドレスに (矢印S)、に書き込む (図12の<3
>)。さらに今度は、レジスタA’とレジスタBの各デ
ータと、図13の記憶素子25に保持していたキャリー
ビットとを入力として、FA’−1に相当する領域に対
する演算を実施する。この演算の終了後、その演算結果
をレジスタA’へ転送し (図12の<4>)、その内容
をメモリ51へ書込む (矢印T)。
【0050】以後は、上記の<1>〜<4>の処理を繰
り返すことにより、処理対象のデータがメモリ51内に
2ワード以上の領域にまたがって格納されている場合で
も、プロセッサ1による演算処理が可能である。以上詳
述した図9の構成についてさらに補足して説明する。図
14は図9の構成をさらに具体的に示す図であり、図8
(図7の具体例)の場合と同様、特に処理マスク制御部
4とキャリーマスク制御部12について具体化して示
し、さらに、ビット交換制御部34についても具体化し
て示す。
【0051】図14の具体例は、図8に示した具体例に
対して、さらにビット交換制御部34の具体例を追加し
たものである。すなわち該制御部34内のデコーダ59
が図示されている。このデコーダ59の役割は、図8で
説明したデコーダ57および58の役割と同様であり、
外部から設定された、ビット交換レジスタ35内の設定
値に応じた制御信号Sc4を該デコーダ59より生成す
る。この制御信号Sc4は、図12の<1>および<2
>における両矢印QおよびRで示すビット入替えを指示
する。
【0052】図15は本発明に係るプロセッサの第3の
全体構成例を示す図である。本図の全体構成例は特に、
前述した図6に示す第4の主要部を採用したプロセッサ
1を示す。ただし図15においては、さらにもう1つの
サブプロセッサ63を追加した例を示している。これら
のサブプロセッサ41,42および63は、共通バス6
2を介してメモリ51に接続する。
【0053】サブプロセッサ41,42および63のそ
れぞれに設けられる演算部61は、図6に示す演算装置
2とキャリー入出力インタフェース部42とを1つにま
とめて表したものである。図15においては、メモリ5
1内に格納される被演算対象のデータの一例として、A
TM通信に用いるセルのヘッダ部分の値、特にVPI値
(左下りハッチングの領域)とVCI値 (右下りハッチ
ングの領域)を示している。
【0054】メモリ51内で3つのワードの領域にまた
がるVCI値に対して、3つのサブプロセッサ41,4
2,63が作業分担して、算術演算が行われ、発生した
キャリーは隣接するサブプロセッサに転送される。図1
5に示した3つのサブプロセッサ(41,42,63)
からなるマルチプロセッサ構成のプロセッサ1は、本発
明によりさらに高機能化を図ることができる。これにつ
いて以下詳しく説明する。
【0055】図16は本発明に係るマルチプロセッサ構
成のプロセッサ1を表す図である。すなわち、本図のプ
ロセッサ1は、相互に同一構成を有し、かつ、1ワード
単位でビット毎にデータの演算を行う複数の演算回路5
を含むサブプロセッサ(71,72,73)を複数並列
に接続してなるプロセッサである。このプロセッサ1
は、所定のスケジューラ70のもとに動作する。
【0056】サブプロセッサ71,72,73のいずれ
かは、被演算対象のデータのデータ長が1ワード(W)
のビット長を超えるときに機能し、該スケジューラ70
は、そのデータを複数の上記サブプロセッサに割り振っ
て分散処理させると共に、そのデータが割り振られた各
サブプロセッサでの演算処理を制御する。なお各サブプ
ロセッサ内の演算器75は同一構成であって、少なくと
も上記演算回路5を含んで形成されるものである。また
スケジューラ70は、フレーム内の制御情報Yに従っ
て、ブロック76内の処理を行う。
【0057】スケジューラ70はまた、ブロック77内
の処理も行う。サブプロセッサ間のデータのやり取りの
中には既述したキャリーのやり取りも含まれる。さらに
また、スケジューラ70はこのブロック77内に示すと
おり、演算器75の空きビット (アイドル)の管理も行
う。かくしてスケジューラ70は、1のサブプロセッサ
内の1または複数の演算回路5がアイドルになるとき、
当該演算回路5を、他のサブプロセッサに使用させるこ
とを可能とし、演算効率の良い可変長データ処理用プロ
セッサを実現することができる。
【0058】図17は図16の全体構成例を示す図であ
る。ただし、サブプロセッサをさらにもう1つ(74)
増やして示している。上記のスケジューラ70(70−
1,70−2)は、データ切出し手段78を介して各サ
ブプロセッサ(71〜74)にデータを供給し、また、
データ組立て手段79を介して各サブプロセッサ(71
〜74)からの分散処理結果を統合する。本図では、手
段78および79に対してそれぞれ個別にスケジューラ
70−1および70−2が作用する例を示す。
【0059】なお上記の分散処理としては、パイプライ
ン処理または並列処理を設定することができる。図18
は図16および図17に示す全体構成の詳細例を示す図
である。前述したデータ切出し手段78は、図18にお
いて、データ切出し制御部81およびデータ切出し部8
2として示される。また前述したデータ組立て手段79
は、図18において、データ組立て制御部83およびデ
ータ組立て部84として示される。
【0060】なお図18では簡略のため3つのサブプロ
セッサ71〜73を示す。データ切出し部82は、デマ
ルチプレクサにより構成されており、データ切出し制御
部81から出力される制御信号によって、入力データD
iを各サブプロセッサ(71〜73)へ割り振る。この
データ切出し制御部81は、メモリ85と、メモリ85
に格納されている実行プログラムによって制御される制
御回路86とによって構成される。この実行プログラム
が前述したコンパイラ70(70−1)に相当する。
【0061】データ組立て部84は、マルチプレクサに
より構成されており、データ組立て制御部83より出力
される制御信号によって、各サブプロセッサ(71〜7
3)より出力されるデータを結合し、外部へ出力データ
Doとして出力する。このデータ組立て制御部83はメ
モリ87と、メモリ87に格納されている実行プログラ
ムによって制御される制御回路88とによって構成され
ている。この実行プログラムが前述したコンパイラ70
(70−2)に相当する。
【0062】上記の実行プログラム(70)は、処理内
容を記述したソースプログラムSPをコンパイラCPに
よってコンパイルすることにより得られる。コンパイラ
CPは、ファイルFIL内の、対象となるシステム (プ
ロセッサ1)の構成に合わせて、実行プログラム(7
0)を生成する。上記のように、マルチプロセッサ構成
とすることにより、各サブプロセッサに搭載されている
演算装置2をビット長の大きい演算装置 (機能は各演算
装置と同じ)として動作させることができる。
【0063】最後に、本発明に係るプロセッサ1を動作
させるための命令、特にそのデータ構造について説明す
る。図19は本発明に係るプロセッサを動作させるため
の標準的な命令構成を示す図であり、図20は本発明に
係るプロセッサを動作させるための本発明に基づく命令
構成を示す図である。
【0064】まず図19を参照すると、標準的な命令9
1において、MASK−ALUは、既述したマスク付き
の演算を表し、SRC1およびSRC2は、データが入
力される既述のレジスタを指定し、SRC3は上記のマ
スク用のデータを表し、DSTは演算後のデータが出力
されるレジスタを指定する。すなわち、このような命令
91のオペランド部は、〔1〕入力となるデータを指定
するための2つのフィールド(SRC1,SRC2)
と、〔2〕出力先を指定するための1つのフィールド
(DST)と、〔3〕マスクパターンが格納されている
場所を指定するための1つのフィールド(SRC3)
と、により構成される。
【0065】一方図20を参照すると、本発明に基づく
命令92は、マスク命令MASKとマスク用のデータを
指定するデータSRC3は、命令の初めに1回現れるだ
けであり、その後はALU命令(SRC1+SRC2+
DST)のみが繰り返す。本発明の可変長データ処理用
プロセッサの好適な適用対象である通信用アプリケーシ
ョンでは、規則的な処理の繰り返しが多く、マスクパタ
ーンも一定である場合が多い。このようなアプリケーシ
ョンでは、図19に示すオペランド部の構成では、マス
クパターンを指定するためのフィールド(SRC3)が
冗長となる可能性が高い。
【0066】そこでマスクパターンが入る専用のレジス
タ (処理マスクレジスタ7)を設け、この処理マスクレ
ジスタ7に対する値の設定と、演算処理とを独立して行
う構成とし (図20)、命令の語長を図19の構成とす
る場合より少なくすることとした。これにより、命令が
格納されるメモリの量を少なくすることが可能となる。
また、そのために空きとなったフィールド93に、他の
フィールドを収容することも可能となる。
【0067】かくして図20の命令で動作するプロセッ
サ1、すなわち1ワード単位でビット毎にデータの演算
処理を、所定の命令に従って、実行する複数の演算回路
5を含むと共に、その演算処理に先行して演算前処理が
実行されるプロセッサにおいては、下記命令が有効であ
る。この命令は、上記の演算前処理に必要なパラメータ
(設定値)を、所定のパラメータレジスタ (例えばレジ
スタ7)に格納する第1命令(MASK)と、上記の演
算処理を繰り返し実行するための一群の同一の演算命令
であって、かつ、各演算命令は演算すべき2つの被演算
対象データを格納する2つの入力レジスタ (レジスタ
A、レジスタB)を個別に指定する2つのフィールド
(SRC1,SRC2)から構成される、第2命令(A
LU)と、に分割してなり、前記第2命令(ALU)内
の各演算命令は、上記の演算前処理に際して上記のパラ
メータレジスタ (レジスタ7)内のパラメータ (設定
値)を使用するようにしたものである。
【0068】上記の説明は処理マスクレジスタに注目し
て行ったが、キャリーマスクレジスタ14やビット交換
レジスタ35に対しても同様に、値の設定を行う命令
(MASK相当)と、演算命令(ALU)とを分離する
ことにより、命令のメモリを効率的に使用することがで
きる。さらに図15や図17等に示したマルチプロセッ
サ構成のプロセッサ1の場合には、上記のパラメータレ
ジスタを各サブプロセッサが共通に利用するようにすれ
ば、命令のメモリをさらに効率的に使用することができ
る。
【0069】すなわち、プロセッサ1が、1ワード単位
でビット毎にデータの演算処理を、所定の命令に従っ
て、実行する複数の演算回路5を含むと共に、この演算
処理に先行して演算前処理が実行されるサブプロセッサ
(71〜74)をマルチプロセッサ構成としたプロセッ
サであるとき、各該サブプロセッサは前述したパラメー
タレジスタを共有して上記の第1命令内での演算前処理
を実行することができる。
【0070】以上述べた本発明の実施の態様は、以下の
付記のとおりである。 (付記1) 1ワード単位でビット毎にデータの演算を
行う複数の演算回路を含むプロセッサであって、各ワー
ド内のデータを、被演算対象のデータとそれ以外の非演
算対象のデータとに区分するためのビット指定を行う処
理マスク制御部と、前記処理マスク制御部による前記ビ
ット指定に従い、前記被演算対象のデータについては当
該ビット対応で前記演算回路による演算処理を行ってそ
の演算結果を取り出す機能および前記非演算対象のデー
タについては当該ビット対応で前記演算回路をスルーさ
せる機能のいずれかの機能を択一的に有効にする出力選
択部と、を具備することを特徴とする可変長データ処理
用プロセッサ。
【0071】(付記2) 前記処理マスク制御部は、前
記各ワード内の各ビットが、前記被演算対象のビットで
あるか前記非演算対象のビットであるかを、各ビット対
応に指定するための論理1または0を格納する処理マス
クレジスタを有することを特徴とする付記1に記載の可
変長データ処理用プロセッサ。 (付記3) 前記出力選択部は、各ビット対応に、前記
演算回路からの前記演算結果および該演算回路をスルー
した前記非演算対象のデータの双方を入力してこれらを
択一的に選択して出力する出力セレクタからなり、各該
出力セレクタは前記処理マスクレジスタからの前記論理
1または0に従ってその選択を行うことを特徴とする付
記2に記載の可変長データ処理用プロセッサ。
【0072】(付記4) 1ワード単位でビット毎にデ
ータの演算を行う複数の演算回路を含むプロセッサであ
って、隣接する前記演算回路間で一方の演算回路から発
生したキャリーを他方の演算回路に伝播するかしないか
を各ビット対応で設定するためのキャリー伝播指定を行
うキャリーマスク制御部と、前記キャリーマスク制御部
による前記キャリー伝播指定に従い、前記一方の演算回
路からの前記キャリーを前記他方の演算回路に伝播させ
る機能および該他方の演算回路に該キャリーとして予め
定めた固定論理を与える機能のいずれかの機能を択一的
に有効にするキャリー選択部と、を具備することを特徴
とする可変長データ処理用プロセッサ。
【0073】(付記5) 前記キャリーマスク制御部
は、前記キャリーの伝播を行うか前記固定論理を与える
かを、各ビット対応に指定するための論理1または0を
格納するキャリーマスクレジスタを有することを特徴と
する付記4に記載の可変長データ処理用プロセッサ。 (付記6) 前記キャリー選択部は、前記一方の演算回
路からの前記キャリーとして、過去の演算処理で発生し
たキャリーを記憶する記憶素子からのキャリーを選択す
る機能も加えて選択を行うことを特徴とする付記4に記
載の可変長データ処理用プロセッサ。
【0074】(付記7) 前記キャリー選択部は、各ビ
ット対応に、前記演算回路からの前記キャリーおよび前
記固定論理の双方を入力してこれらを択一的に選択して
出力するキャリーセレクタからなり、各該キャリーセレ
クタは前記キャリーマスクレジスタからの前記論理1ま
たは0に従ってその選択を行うことを特徴とする付記5
に記載の可変長データ処理用プロセッサ。
【0075】(付記8) 1ワード単位でビット毎にデ
ータの演算を行う複数の演算回路を含むプロセッサであ
って、前記演算回路間で一方の演算回路から発生したキ
ャリーを他方の演算回路に伝播させるためのキャリー分
配部を具備することを特徴とする可変長データ処理用プ
ロセッサ。
【0076】(付記9) 前記キャリー分配部は、各ビ
ット対応に、各前記演算回路から発生したキャリーを入
力とし、予め定められた1の該キャリーを選択して各該
ビット対応の演算回路に伝播させるキャリーセレクタか
らなることを特徴とする付記8に記載の可変長データ処
理用プロセッサ。 (付記10) 各前記キャリーセレクタに対し、いずれ
の前記演算回路から発生したキャリーを選択すべきかを
予め定めて、指定するキャリー分配設定部をさらに有す
ることを特徴とする付記9に記載の可変長データ処理用
プロセッサ。
【0077】(付記11) 1ワード単位でビット毎に
データの演算を行う複数の演算回路を含むプロセッサで
あって、該プロセッサは、各該演算回路に入力すべき第
1ワード内の被演算対象のデータを一旦格納する第1レ
ジスタと、各該演算回路に入力すべき第2ワード内の被
演算対象のデータを一旦格納する第2レジスタと、を具
備し、かつ、該第1および第2レジスタにそれぞれ格納
されたデータを、各ビット位置を揃えて複数のビット同
士で同時にビットの入替えを行うビットスイッチ部を備
えることを特徴とする可変長データ処理用プロセッサ。
【0078】(付記12) 相互に同一構成を有し、か
つ、1ワード単位でビット毎にデータの演算を行う複数
の演算回路を含むサブプロセッサを複数並列に接続して
なるプロセッサであって、被演算対象の前記データのデ
ータ長が前記1ワードのビット長を超えるときに有効と
なり、隣接する一方の前記サブプロセッサ内の前記演算
回路から発生したキャリーを他方の前記サブプロセッサ
内の前記演算回路に伝播させると共に、前記他方のサブ
プロセッサ内の演算回路から発生したキャリーを前記一
方のサブプロセッサ内の演算回路に伝播させるキャリー
入出力インタフェース部を、各前記サブプロセッサ毎に
設けることを特徴とする可変長データ処理用プロセッ
サ。
【0079】(付記13) 各前記キャリー入出力イン
タフェース部は、各ビット対応に、各前記演算回路から
発生したキャリーと隣接する前記サブプロセッサ内のい
ずれかの前記演算回路から発生したキャリーとを入力と
し、予め定められた1の該キャリーを選択して各該ビッ
ト対応の演算回路に伝播させると共に、その選択された
キャリーを前記隣接するサブプロセッサに転送するキャ
リーセレクタを有することを特徴とする付記12に記載
の可変長データ処理用プロセッサ。
【0080】(付記14) 各前記キャリー入出力イン
タフェース部はさらに、各ビット対応に、前記キャリー
セレクタにより選択された選択キャリーを入力とし、前
記隣接するサブプロセッサに転送すべき転送キャリーを
選択する転送キャリーセレクタを有すると共に、各前記
キャリーセレクタに対し予め定めた選択指示を与える転
送キャリー制御部を有することを特徴とする付記13に
記載の可変長データ処理用プロセッサ。
【0081】(付記15) 相互に同一構成を有し、か
つ、1ワード単位でビット毎にデータの演算を行う複数
の演算回路を含むサブプロセッサを複数並列に接続して
なるプロセッサであって、被演算対象の前記データのデ
ータ長が前記1ワードのビット長を超えるときに機能し
て、該データを前記複数のサブプロセッサに割り振って
分散処理させると共に、該データが割り振られた各該サ
ブプロセッサでの演算処理を制御するスケジューラを具
備することを特徴とする可変長データ処理用プロセッ
サ。
【0082】(付記16) 前記スケジューラは、1の
前記サブプロセッサ内の1または複数の前記演算回路が
アイドルになるとき、当該演算回路を、他の前記サブプ
ロセッサに使用させることを特徴とする付記15に記載
の可変長データ処理用プロセッサ。
【0083】
【発明の効果】以上説明したように本発明によれば、従
来手法によれば必要とされた、 1)データの境界合せのためのシフト命令とビットのマ
スクのためのマスク命令の組合せによるデータの前処理
工程を不要とし、 2)上記前処理工程のための前処理命令を不要とし、 3)専用のハードウェアを追加することなく上記の前処
理工程を実施可能とする、プロセッサを実現することが
できる。
【0084】したがって、メモリの所要容量をできる限
り少なくして、1ワードを超えることがある可変長デー
タの演算を、リアルタイムで高速に効率良く実行するこ
とができる。またインタリーブ処理やデインタリーブ処
理もきわめて簡単なプロセスで実行することができる。
【図面の簡単な説明】
【図1】本発明に係るプロセッサの第1の主要部を示す
図である。
【図2】本発明に係るプロセッサの第2の主要部を示す
図である。
【図3】図2に示す第2の主要部の第1変形例を示す図
である。
【図4】図2に示す第2の主要部の第2変形例を示す図
である。
【図5】本発明に係るプロセッサの第3の主要部を示す
図である。
【図6】本発明に係るプロセッサの第4の主要部を示す
図である。
【図7】本発明に係るプロセッサの第1の全体構成例を
示す図である。
【図8】図7の構成をさらに具体的に示す図である。
【図9】本発明に係るプロセッサの第2の全体構成例を
示す図である。
【図10】ビット交換制御部34の説明に用いるデータ
構成図(その1)である。
【図11】ビット交換制御部34の説明に用いるデータ
構成図(その2)である。
【図12】図11に示すデータ構成について演算処理を
行う場合の処理フローを表す図である。
【図13】図12に表す処理フローにおいて一部採用す
る処理部を示す図である。
【図14】図9の構成をさらに具体的に示す図である。
【図15】本発明に係るプロセッサの第3の全体構成例
を示す図である。
【図16】本発明に係るマルチプロセッサ構成のプロセ
ッサ1を表す図である。
【図17】図16の全体構成例を示す図である。
【図18】図16および図17に示す全体構成の詳細例
を示す図である。
【図19】本発明に係るプロセッサを動作させるための
標準的な命令構成を示す図である。
【図20】本発明に係るプロセッサを動作させるための
本発明に基づく命令構成を示す図である。
【符号の説明】
1…可変長データ処理用プロセッサ 2…演算装置 3…出力選択部 4…処理マスク制御部 5…演算回路 6…出力セレクタ 7…処理マスクレジスタ 11…キャリー選択部 12…キャリーマスク制御部 13…キャリーセレクタ 14…キャリーマスクレジスタ 21…キャリー分配部 22…キャリー分配設定部 23…キャリーセレクタ 25…記憶素子 31…第1レジスタ(レジスタA) 32…第2レジスタ(レジスタA´) 33…ビットスイッチ部 34…ビット交換制御部 35…ビット交換レジスタ 41…サブプロセッサ 42…キャリー入出力インタフェース部 43…キャリーセレクタ 44…転送キャリー制御部 45…転送キャリーセレクタ 51…メモリ 53…レジスタB 54…レジスタC 55…制御メモリ 70,70−1,70−2…スケジューラ 78…データ切出し手段 79…データ組立て手段
───────────────────────────────────────────────────── フロントページの続き (72)発明者 大場 康弘 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B016 AA01 AA02 CE01 FA04 5B022 BA05 BA06 BA08 CA01 CA03 DA01 DA02 DA03 DA10 FA03 FA10 5K030 GA05 HA08 HB28 HC01 JL10 KA01

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 1ワード単位でビット毎にデータの演算
    を行う複数の演算回路を含むプロセッサであって、 各ワード内のデータを、被演算対象のデータとそれ以外
    の非演算対象のデータとに区分するためのビット指定を
    行う処理マスク制御部と、 前記処理マスク制御部による前記ビット指定に従い、前
    記被演算対象のデータについては当該ビット対応で前記
    演算回路による演算処理を行ってその演算結果を取り出
    す機能および前記非演算対象のデータについては当該ビ
    ット対応で前記演算回路をスルーさせる機能のいずれか
    の機能を択一的に有効にする出力選択部と、を具備する
    ことを特徴とする可変長データ処理用プロセッサ。
  2. 【請求項2】 1ワード単位でビット毎にデータの演算
    を行う複数の演算回路を含むプロセッサであって、 隣接する前記演算回路間で一方の演算回路から発生した
    キャリーを他方の演算回路に伝播するかしないかを各ビ
    ット対応で設定するためのキャリー伝播指定を行うキャ
    リーマスク制御部と、 前記キャリーマスク制御部による前記キャリー伝播指定
    に従い、前記一方の演算回路からの前記キャリーを前記
    他方の演算回路に伝播させる機能および該他方の演算回
    路に該キャリーとして予め定めた固定論理を与える機能
    のいずれかの機能を択一的に有効にするキャリー選択部
    と、を具備することを特徴とする可変長データ処理用プ
    ロセッサ。
  3. 【請求項3】 1ワード単位でビット毎にデータの演算
    を行う複数の演算回路を含むプロセッサであって、 前記演算回路間で一方の演算回路から発生したキャリー
    を他方の演算回路に伝播させるためのキャリー分配部を
    具備することを特徴とする可変長データ処理用プロセッ
    サ。
  4. 【請求項4】 1ワード単位でビット毎にデータの演算
    を行う複数の演算回路を含むプロセッサであって、該プ
    ロセッサは、 各該演算回路に入力すべき第1ワード内の被演算対象の
    データを一旦格納する第1レジスタと、 各該演算回路に入力すべき第2ワード内の被演算対象の
    データを一旦格納する第2レジスタと、を具備し、か
    つ、 該第1および第2レジスタにそれぞれ格納されたデータ
    を、各ビット位置を揃えて複数のビット同士で同時にビ
    ットの入替えを行うビットスイッチ部を備えることを特
    徴とする可変長データ処理用プロセッサ。
  5. 【請求項5】 相互に同一構成を有し、かつ、1ワード
    単位でビット毎にデータの演算を行う複数の演算回路を
    含むサブプロセッサを複数並列に接続してなるプロセッ
    サであって、 被演算対象の前記データのデータ長が前記1ワードのビ
    ット長を超えるときに有効となり、隣接する一方の前記
    サブプロセッサ内の前記演算回路から発生したキャリー
    を他方の前記サブプロセッサ内の前記演算回路に伝播さ
    せると共に、前記他方のサブプロセッサ内の演算回路か
    ら発生したキャリーを前記一方のサブプロセッサ内の演
    算回路に伝播させるキャリー入出力インタフェース部
    を、各前記サブプロセッサ毎に設けることを特徴とする
    可変長データ処理用プロセッサ。
JP2000248696A 2000-08-18 2000-08-18 可変長データ処理用プロセッサ Withdrawn JP2002063025A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000248696A JP2002063025A (ja) 2000-08-18 2000-08-18 可変長データ処理用プロセッサ
US09/817,074 US20020124038A1 (en) 2000-08-18 2001-03-26 Processor for processing variable length data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000248696A JP2002063025A (ja) 2000-08-18 2000-08-18 可変長データ処理用プロセッサ

Publications (1)

Publication Number Publication Date
JP2002063025A true JP2002063025A (ja) 2002-02-28

Family

ID=18738554

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000248696A Withdrawn JP2002063025A (ja) 2000-08-18 2000-08-18 可変長データ処理用プロセッサ

Country Status (2)

Country Link
US (1) US20020124038A1 (ja)
JP (1) JP2002063025A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017027259A (ja) * 2015-07-17 2017-02-02 株式会社安川電機 機械制御プログラム作成装置、コンピュータプログラム、機械制御プログラム中のレジスタへの参照の入れ替え方法及びコンピュータにより実行可能な電子データ作成装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002240742A1 (en) * 2001-03-02 2002-09-19 Astana Semiconductor Corp. Apparatus for variable word length computing in an array processor
US6959317B1 (en) * 2001-04-27 2005-10-25 Semtech Corporation Method and apparatus for increasing processing performance of pipelined averaging filters
US20030140076A1 (en) * 2002-01-22 2003-07-24 International Business Machines Corporation Interleaved arithmetic logic units
US7107435B2 (en) * 2003-05-27 2006-09-12 International Business Machines Corporation System and method for using hardware assist functions to process multiple arbitrary sized data elements in a register
DE102004013484B3 (de) * 2004-03-18 2005-08-11 Infineon Technologies Ag Rechenwerk
US8386543B1 (en) * 2006-09-28 2013-02-26 L-3 Communications Corp Reduced memory usage for digital signal processing system and method
US8539011B1 (en) 2007-07-19 2013-09-17 Xilinx, Inc. Device having programmable logic for implementing arithmetic functions
US8117247B1 (en) * 2007-07-19 2012-02-14 Xilinx, Inc. Configurable arithmetic block and method of implementing arithmetic functions in a device having programmable logic
US8010590B1 (en) 2007-07-19 2011-08-30 Xilinx, Inc. Configurable arithmetic block and a method of implementing a configurable arithmetic block in a device having programmable logic
US10313495B1 (en) * 2017-07-09 2019-06-04 Barefoot Networks, Inc. Compiler and hardware interactions to remove action dependencies in the data plane of a network forwarding element

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3576436A (en) * 1968-10-16 1971-04-27 Ibm Method and apparatus for adding or subtracting in an associative memory
US4789957A (en) * 1986-03-28 1988-12-06 Texas Instruments Incorporated Status output for a bit slice ALU
US5197140A (en) * 1989-11-17 1993-03-23 Texas Instruments Incorporated Sliced addressing multi-processor and method of operation
US5390135A (en) * 1993-11-29 1995-02-14 Hewlett-Packard Parallel shift and add circuit and method
US5509129A (en) * 1993-11-30 1996-04-16 Guttag; Karl M. Long instruction word controlling plural independent processor operations
US5504698A (en) * 1994-05-17 1996-04-02 Silicon Graphics, Inc. Compact dual function adder
US5555202A (en) * 1994-12-05 1996-09-10 Cirrus Logic, Inc. Low-power, high-performance barrel shifter
US5787030A (en) * 1995-07-05 1998-07-28 Sun Microsystems, Inc. Correct and efficient sticky bit calculation for exact floating point divide/square root results
US5835782A (en) * 1996-03-04 1998-11-10 Intel Corporation Packed/add and packed subtract operations

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017027259A (ja) * 2015-07-17 2017-02-02 株式会社安川電機 機械制御プログラム作成装置、コンピュータプログラム、機械制御プログラム中のレジスタへの参照の入れ替え方法及びコンピュータにより実行可能な電子データ作成装置

Also Published As

Publication number Publication date
US20020124038A1 (en) 2002-09-05

Similar Documents

Publication Publication Date Title
CN1127687C (zh) 带外部协处理器可访问的上下文切换寄存器组的risc处理器
JP3906003B2 (ja) プロセッサおよびその命令処理方法
JP3916680B2 (ja) プロセッサ
KR100497078B1 (ko) 프로그램 제품 및 데이터 처리장치
US7028170B2 (en) Processing architecture having a compare capability
KR100325658B1 (ko) 프로세서
US20110231616A1 (en) Data processing method and system
CA2337172C (en) Method and apparatus for allocating functional units in a multithreaded vliw processor
US10678724B1 (en) Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator
US20220100680A1 (en) Apparatuses, methods, and systems for a configurable accelerator having dataflow execution circuits
US7383419B2 (en) Address generation unit for a processor
GB2287109A (en) Multiple execution unit bypasses for efficient processor execution
US20110283089A1 (en) modularized micro processor design
US7765250B2 (en) Data processor with internal memory structure for processing stream data
JP2002063025A (ja) 可変長データ処理用プロセッサ
US7340591B1 (en) Providing parallel operand functions using register file and extra path storage
US7143268B2 (en) Circuit and method for instruction compression and dispersal in wide-issue processors
US7024540B2 (en) Methods and apparatus for establishing port priority functions in a VLIW processor
US8006074B1 (en) Methods and apparatus for executing extended custom instructions
US7613905B2 (en) Partial register forwarding for CPUs with unequal delay functional units
JPH04104350A (ja) マイクロプロセッサ
US6704855B1 (en) Method and apparatus for reducing encoding needs and ports to shared resources in a processor
JP3601758B2 (ja) 情報処理装置及びその処理方法
US7112991B1 (en) Extended custom instructions
EP0862111A2 (en) Dynamic conversion between different instruction codes by recombination of instruction elements

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20071106