JP3526976B2 - プロセッサおよびデータ処理装置 - Google Patents
プロセッサおよびデータ処理装置Info
- Publication number
- JP3526976B2 JP3526976B2 JP19860995A JP19860995A JP3526976B2 JP 3526976 B2 JP3526976 B2 JP 3526976B2 JP 19860995 A JP19860995 A JP 19860995A JP 19860995 A JP19860995 A JP 19860995A JP 3526976 B2 JP3526976 B2 JP 3526976B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- instruction
- bit width
- long
- 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
- 238000012545 processing Methods 0.000 title claims description 45
- 238000000034 method Methods 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000011156 evaluation Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- AHLBNYSZXLDEJQ-FWEHEUNISA-N orlistat Chemical compound CCCCCCCCCCC[C@H](OC(=O)[C@H](CC(C)C)NC=O)C[C@@H]1OC(=O)[C@H]1CCCCCC AHLBNYSZXLDEJQ-FWEHEUNISA-N 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30098—Register arrangements
- G06F9/30101—Special purpose registers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Image Processing (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
式のプロセッサに関するものであり、特に、動画データ
等を含むマルチメディアデータの処理に好適な構成に関
するものである。
SO/MPEGとして知られている方式がある。この方
式では、動き補償を行うために、動画を構成する複数の
フレ−ム間で、相互に画像が近似している部分を探索す
る。そして、この相互に近似している部分の位置の変化
を、動画の動きを表す動きベクトルとして符号化するこ
とにより動画データの圧縮を行う。
ーム80の中のカレントマクロブロックと呼ばれる16
画素×16画素の領域の画像が、図1のリファレンスフ
レーム81の中のサーチウィンドウの中のどの部分に最
も近似しているかを検索することによりより行われる。
1)に示す評価式が広く用いられている。
は、前記探索は、この評価式の値が最も小さくなる
(u,v)の組合せを探すことにより成されることにな
る。
るための従来のプロセッサとしては、「MICROPROCESSOR
REPORT,DECEMBER 5, 1994」の16ページに記載のSU
NMicrosystemsのUltra SPARC が存在する。このプロセ
ッサでは、(数2)に示す演算を1命令で行うことが出
来る。
す。
ド・ストア処理装置9130と(数2)に示した演算を
行う画素演算処理装置9133とその他の演算を行う複
数の演算装置9131,9132と、64ビット幅の複
数のレジスタよりなるレジスタファイルと、それぞれの
処理装置に対応して設けた命令レジスタ30〜33と、
その命令レジスタ30〜33に命令を供給する命令供給
ユニット912と、命令列を記憶した主記憶装置等が接
続されているシステムバスとの入出力を制御するシステ
ムバス・インタフェースなどから構成されている。
ジスタファイルから読み出されたデータを図12に示す
ように、8個の8ビットデータの集まりとして扱う。そ
して、レジスタファイルから読み出された2組みの8個
の8ビットデータに対して、(数2)に示す演算を行
う。
処理装置9133に(数2)の演算を実行させる演算命
令を用いて、(数1)を最小とする(u,v)の組合せ
を見つけ出す処理は図13のような手順で実現される。
テップ402、409、410の働きによって、0−1
5の各vについて繰り返し、実行される。また、ステッ
プ407も、同様に0−15の各vについて実行される
が、さらに、各vの値毎に、ステップ403、405、
406の働きによって、1−15の間の各jの値につい
て、繰り返して実行される。
v)を用いて説明すると、図13のステップ404、4
07では、上記の繰り返し処理の間に、0−15の間の
uのそれぞれについて、0−15の間のjと0−15の
間のvの各組合せ(j,u,v)について、r(j,
u,v)を求める。ステップ404は、j=0について
r(j,u,v)を求め、ステップ407は1−15の
間のjについてr(j,u,v)を求める。
間に、同じ(u、v)の組合せに対して0−15の各j
について求めたr(j,u,v)の和を、Ruvとして
求める。これは、vを固定し,ステップ404で0−1
5の間のuに対しj=0の場合のr(0,u,v)を求
め、407で0−15の間のuに対し1−15の各jに
ついてr(j,u,v)を求め、uvの組合せ毎に設け
られるパラメ−タRuvに加算して処理を、0−15の
間の各vについて行うことにより実現される。
たRuvより小さいもののみを残し(ステップ72)、
最後に残ったRuvに対応する(u,v)の組合せを
(数1)を最小とする(u,v)とする。ここで、
(j,u,v)の特定の組合せに対するR(j,u,
v)を算出するためには、(数2)に示す演算を2回、
0−7のiについてと、8−15のiについてそれぞれ
行う必要がある。結果、このプロセッサによれば、数2
に示す演算と、この演算の前処理としてのデータの読み
だしや、演算に用いるデータの作成を膨大な回数行う必
要がある。
くすることにより前記演算の回数を少なくして処理を高
速化することもできるが、このようにすると圧縮効率が
低下したり動画像の画質が劣化したりすることになる。
たプロセッサを、(数1)に示す演算を1命令で行える
ように拡張することにより処理を高速化することが考え
られる。
9133の入力ビット幅を広げると共に、レジスタファ
イルのビット幅も広げて、同時により多くの画素データ
を扱えるようにしなけらばならない。そして、このよう
にすると、レジスタファイルの規模が増大してしまう。
また、画素演算処理装置9133以外の他の演算処理装
置9131−9133では、これほどのビット幅のデー
タを必要としないので全体としてみて効率的な手法とは
言えない。
ータの個数を増やし、複数の画素演算処理装置におい
て、並列に数2の演算を実行させるようにすることによ
り、処理を高速化することも考えられる。
ウェア規模が大きく増大し、ハードウェアのコストが非
常に大きくなる。
を、あまり増加することなく、レジスタファイルのデー
タ長より大きなデータ長のデータの演算処理を高速に実
行できるプロセッサを提供することを目的とする。
本発明は、並列にデータを読みだし可能な少なくとも2
つのレジスタを含んだ複数のビット幅Nのレジスタを備
えたレジスタファイルを有するプロセッサであって、命
令を格納する命令レジスタと、ビット幅M(但し、M>
N)のレジスタである第1のロングレジスタと、前記第
1のロングレジスタから読みだしたデータの一部を前記
レジスタファイルから読みだされたデータの一部に置き
換えたMビット幅のデータを、前記命令レジスタに格納
された命令に応じて生成する更新部と、前記レジスタフ
ァイルの複数のレジスタより並列に読みだされたデータ
を連結したMビット幅のデータ、もしくは、前記更新部
が生成したMビット幅のデータの一方を、前記命令レジ
スタに格納された命令に応じて選択する選択部と、前記
選択部が選択したMビット幅のデータに所定の演算を、
前記命令レジスタに格納された命令に応じて施す演算器
とを有し、前記第1のロングレジスタは、前記選択部が
選択したMビット幅のデータを、前記命令レジスタに格
納された命令に応じて格納することを特徴とするプロセ
ッサを提供する。
らに、前記レジスタファイルの複数のレジスタより並列
に読みだされたデータを連結したMビット幅のデータ
を、前記命令レジスタに格納された命令に応じて格納す
るビット幅Mのレジスタである第2のロングレジスタを
備え、前記演算器は、前記選択部が選択したMビット幅
のデータと、前記第2のロングレジスタから読みだされ
たMビット幅のデータとの間に前記所定の演算を、前記
命令レジスタに格納された命令に応じて施すことを特徴
とするプロセッサを提供する。
えば、前記命令レジスタにある特定の命令が格納された
場合に、前記選択部は前記レジスタファイルの複数のレ
ジスタより並列に読みだされたデータを連結したMビッ
ト幅のデータを選択し、前記第1のロングレジスタは前
記選択部が前記選択部が選択したMビット幅のデータを
格納する。
特定の命令が格納された場合には、前記更新部は、前記
第1のロングレジスタから読みだしたデータの一部を前
記レジスタファイルから読みだされたデータの一部に置
き換えたMビット幅のデータを生成し、前記選択部は前
記更新部が生成したMビット幅のデータを選択し、前記
第1のロングレジスタは前記選択部が選択したMビット
幅のデータを格納し、前記演算器は前記前記選択部が選
択したMビット幅のデータに所定の演算を施す。すなわ
ち、前記他の特定の命令が与えられる度に、第1のロン
グレジスタに格納されたMビット幅のデータの一部をレ
ジスタファイルから読みだしたデータの一部に置き換え
ることにより更新し、更新したMビットのデータに対し
て演算を施す。
イルのビット幅よりビット幅の大きいデータの部分的な
更新と、更新したデータの演算を行うことができ、処理
が高速化される。また、レジスタファイルのビット幅は
演算するデータのビット幅より小さくて済むのでハ−ド
ウェアコストもあまり増加することがない。
した動画処理システムの構成を示す。
あり、プロセッサ91はシステムバス92を介して主記
憶装置93に接続している。また、同様に、プロセッサ
91はシステムバス92を介して、二次記憶装置94や
通信装置96やビデオ入出力装置95等や、その他のI
/O装置97に接続している。主記憶装置93には、プ
ログラムや、その他の作業データが記憶されている。ま
た、主記憶装置93上には、画像を表すデータを記憶す
るフレ−ムバッファ等も構成されている。ビデオ入出力
装置95は、動画像を撮影するビデオカメラ951や動
画像を表示するディスプレイ952との間でビデオ信号
の入出力を担う。
て、ビデオカメラ951からビデオ入出力装置95によ
って取り込まれた動画像のデータは主記憶装置93内の
フレ−ムバッファに転送される。そして、主記憶装置9
3内の動画データはプロセッサ91によって処理され、
その結果が二次記憶装置94に蓄えられたり、通信装置
96によって、他のシステムに送られたりする。
部構成を、図2に示す。
91は、4つの読み出しポートと3つの書き込みポート
を持つ64ビット幅のレジスタファイル2と、整数演算
処理装置101と、他命令用演算処理装置102と、そ
れぞれの演算処理装置に対応して設けた命令レジスタ3
0、31と、ロード・ストア処理装置100と、命令供
給ユニット912、とシステムバス・インタフェース9
11とを備えている。また、図3に示すようにレジスタ
ファイルのビット幅の2倍の128ビットからなる第一
ロングレジスタ12と第二ロングレジスタ13と、12
8ビット幅の2つの入力データを処理する画素演算器1
1と、第二ロングレジスタ13の内容を更新するロング
レジスタ更新装置14設けられている。
R63の64個の64ビット幅のレジスタよりなり、4
つの読み出しポートと3つの書き込みポートにより、4
つのレジスタよりのデータの読みだしと3つのレジスタ
への書き込みを同時に行うことができる。
レ−ムバッファには、動画データとして、動画像を構成
するフレ−ム毎に、画素の輝度を表す1画素当たり8ビ
ットの輝度データの配列が格納される。動画像がカラ−
である場合には、動画データとして、画素の色成分を表
す、たとえば1画素当たり8ビットの2種類の色データ
の配列も格納される。
うち演算に用いられる輝度データは、は、演算に先立
ち、ロード・ストア処理装置100の制御下で、主記憶
装置91より読みだされ、システムバスインタフェ−ス
91セレクタ16を介してレジスタファイル2内に格納
される。レジスタファイル2の各レジスタには、先に図
12に示したように、8ビットの輝度データが格納され
る。
プログラムの命令は、命令供給ユニット912によって
システムバス・インタフェース911を通し順次読み出
され、命令の種類に応じて、図2の命令レジスタ30ま
たは命令レジスタ31に格納される。
スタファイル2の読み出しポートの内の2つと、他命令
用演算処理装置101と、画素演算器11と、ロングレ
ジスタ更新装置14と、画素演算ソースセレクタ15、
セレクタ16と、レジスタファイル2の書き込みポート
が制御される。
従って、レジスタファイル2の読み出しポートの内の2
つと、整数演算処理装置101と、ロード・ストア処理
装置100と、セレクタ16と、レジスタファイル2の
書き込みポートが制御される。前述した輝度データのレ
ジスタファイル2への主記憶装置93よりのロ−ドも、
この命令レジスタ30に格納された命令に従って、ロー
ド・ストア処理装置100によって行われることにな
る。
命令の実行と、命令レジスタ31に格納された一命令の
実行は、並列的に同時に行うことができる。また、これ
らの命令の実行に伴うレジスタファイル2の読みだし及
び書き込みを並列的に同時に行うことができる。
に係るプロセッサは、ロ−ド命令やストア命令や加算命
令次の3つの特徴的な命令をサポ−トする。すなわち、
ロングレジスタ格納命令と、ロングレジスタ格納画素演
算命令と、ロングレジスタ更新画素演算命令との3つの
命令をサポ−トする。
よって命令レジスタ31に格納される。
命令が格納されると、命令レジスタ31の情報に従って
レジスタファイル2内の2つのレジスタが選択され、こ
れら2つのレジスタに格納された64ビット幅のデータ
が2つ並列に2つの読みだしポートに出力される。そし
て、出力された2つのデータを連結した128ビット幅
のデータが第一ロングレジスタ12内に格納される。
タ格納画素演算命令が格納されると、ロングレジスタ格
納命令の場合と同様に、命令レジスタ31内の命令に従
ってレジスタファイル2内の2つのレジスタが選択さ
れ、64ビット幅の2つのデータが読みだしポートに出
力される。そして、出力された2つのデータを連結した
128ット幅のデータが、画素演算ソースセレクタ15
に伝えられる。
た128ビット幅のデータを選択し出力する。画素演算
ソースセレクタ15から出力されたデータは、第二ロン
グレジスタ13と画素演算器11へ伝えられる。また、
このとき第一ロングレジスタ12に格納されている12
8ビット幅のデータも、画素演算器11へ伝えられる。
8ビット幅のデータは、第二ロングレジスタ13に格納
される。一方、画素演算器11は、第一ロングレジスタ
12から伝えられた128ビット幅のデータと画素演算
ソースセレクタ15から伝えられた128ビット幅のデ
ータとの間で画素演算を行う。その画素演算の結果は、
命令レジスタ31の命令で指定されたレジスタファイル
2のレジスタに格納される。
に示しておく。
は、第一ロングレジスタ12と画素演算ソースセレクタ
15とから入力する2つの128ビットのデータである
第一画素演算ソースデータ501と第二画素演算器ソー
スデータ502をそれぞれ、画素演算ソース要素データ
X0 5010のように、8ビット幅の数値データ16
個の配列とみなし、(数4)に示す数式を演算するもの
である。
画素演算ソース要素データの差の絶対値を計算する演算
器であり、多入力加算器52は、それぞれの差演算器5
1の結果の総和を計算する演算器である。総和は、64
ビット幅のデータとして出力される。本実施例では、6
5ビット目へのキャリアップは無視している。
タ更新画素演算命令が格納されると、命令レジスタ31
の命令報に従ってレジスタファイル2内の1つのレジス
タが選択さ、64ビット幅のデータが1つの読みだしボ
ートに出力され、ロングレジスタ更新装置14に伝えら
れる。また、命令レジスタ31の命令に含まれる位置情
報とシフト情報がロングレジスタ更新装置14に伝えら
れる。また、これを並行して、ロングレジスタ更新装置
14には、第二ロングレジスタ13の内容も伝えられ
る。
部構成を図5に示す。
14には、命令レジスタ31の命令に従って、レジスタ
ファイル2の内の1つのレジスタから読みだされた64
ビット幅のデータが第一ソースデータ線210を通し
て、連結元データ601として伝えられる。また、第二
ソースデータ線220を通して、命令レジスタ31内の
命令に含まれている位置情報604とシフト情報605
が伝えられる。
タ61によって、位置情報604に従って左にシフトさ
れる。位置情報604の数値をnとした場合のシフト量
は8nビットである。これによって連結元データ601
は、n要素データ(n画素の輝度データ)だけ左にシフ
トされ、シフト後に連結元データシフタ61に残った6
4ビット幅のデータである連結元データシフタ出力信号
610として出力される。
ビット幅のデータと、第二ロングレジスタ出力データ線
130を通して、第二ロングレジスタ13より入力した
126ビット幅のデータである連結先データ602は、
連結され、連結シフタ62に伝えられる。連結シフタ6
2は、連結された192ビット幅のデータを、シフト量
情報605に従って左シフトし、ロングレジスタ更新デ
ータ線140上に、左側128ビットのデータをシフト
結果として出力する。シフト量情報605の数値をnと
した場合のシフト量は8nビットである。
よって、第二ロングレジスタ13の内容を任意画素分だ
け左シフトし、右に空いた画素分を、第一ソースデータ
線210上の任意の隣り合った画素で充墳したデータを
生成することが可能となる。
力された128ビット幅のデータ140(連結シフタ6
2出力)は、ロングレジスタ更新データ線140を通し
て、画素演算ソースセレクタ15に伝えられる。画素演
算ソースセレクタ15は、ロングレジスタ更新データ線
140上のデータを選択し出力する。
ータは、第二ロングレジスタ13と画素演算器11へ伝
えられる。また、これと並行して、第一ロングレジスタ
12に格納されているデータも、画素演算器11へ伝え
られる。
タは第二ロングレジスタ13に格納される。
に、第一ロングレジスタ12から伝えられたデータと画
素演算ソースセレクタ15から伝えられたデータ間で演
算を行う。その画素演算の結果は、命令レジスタ31の
命令で指定されたレジスタファイル2のレジスタに格納
される。
ポ−トする3つの命令が、どのように実行されるかを説
明した。
て、先に図13に示した処理において、ステップ404
やステップ407で行われる、特定の(j、v)の組合
せに対して、数3のr(j,u,v)のu=0からu=
15までの値を求める処理がどのように実現されるかを
説明する。
て、数3のr(j,u,v)のu=0からu=15まで
の値を求める処理とは、図6に示す、サ−チウィンドウ
の特定行から、順次左端となる画素を一つづつ右にずら
しながら選択した16画素の組16個のそれぞれと、カ
レントフレ−ムのカレントマクロブロックの特定行の1
6画素との輝度データとの差を求め、その総和を求める
処理に相当する。
うに、レジスタファイル2のレジスタR20,R21に
カレントフレ−ムのカレントマクロブロックの特定行の
16画素の輝度データを格納する。格納される輝度デー
タと画素の関係は、図6に示す通りであり、左側の8画
素をR20に、右側の8画素をR21に格納する。ま
た、同様に、レジスタファイル2のレジスタR30−R
33にサ−チウィンドウの特定行の31画素の輝度デー
タを格納する。格納される輝度データと画素の関係は、
図6に示す通りであり、左側のものより8画素づつ順番
に、R30、R31,..,R32の順に格納される。
なお、サ−チウィンドウの横のサイズは31画素である
ため、R32の右端の8ビットは演算に用いられない画
素の輝度データが格納される、もしくは、輝度データが
格納ことになる。
レジスタ格納画素演算命令と、ロングレジスタ更新画素
演算命令と、この処理で用いる加算命令のフォ−マット
を表1に示すように定める。
タ12を、LR2は第二ロングレジスタ13を表し、矢
印は右辺の演算結果を左辺のレジスタに格納することを
表す。また、矢印の右辺にあるRnもしくはLRnは、
レジスタRnもしくはLRnに格納されたデータを表
し、RniもしくはLRniは、レジスタRnもしくは
LRniに格納されたデータの第(8×i)ビットから
第(8×i+7)ビットの8ビットの輝度データを表す
ものとする。また、//は、//の両側の輝度データもしく
は輝度データ列を連結することを表す。
オペランドの#lが前述した位置情報604に、第4オ
ペランドの#mが前述したシフト量情報605である。
合、特定の(j、v)の組合せに対して、数3のr
(j,u,v)のu=0からu=15までの値を求める
処理は。図7に示すプログラムによって実現することが
できる。
と、ロングレジスタ更新画素演算命令画素演算器11の
処理はパイプライン処理が可能であり、そのレイテンシ
は3ステップであるとした。また、加算命令とロングレ
ジスタ格納命令のレイテンシは1ステップであるとし
た。なお、図4の各差演算器51と多入力加算器52の
間にラッチを挿入することにより、ロングレジスタ格納
画素演算命令と、ロングレジスタ更新画素演算命令画素
演算器11の処理のレイテンシは3となる。
キテクチャによって、命令レジスタ30に格納され整数
演算処理装置101で実行される加算命令と、前述した
ように命令レジスタ31に格納され実行される他の命令
は同時に実行できるものとして、同時実行可能な命令を
1行に記述した。
は、20ステップでレジスタファイルのレジスタファイ
ルR0からR15に特定の(j、v)の組合せに対して
求めた、数3のr(j,u,v)のu=0からu=15
までの値が格納されることになる。
て、第一行目でロングレジスタ格納命令idLRによっ
て、第一ロングレジスタ12にレジスタファイル2のレ
ジスタR20,R21に格納されているカレントフレ−
ムのカレントマクロブロックの特定行の16画素の輝度
データを格納し、第2行目でロングレジスタ格納画素演
算命令IdLRdistによって第一ロングレジスタ1
2に格納されたカレントマクロブロックのj行目の16
画素の輝度データと、レジスタR30,R31に格納さ
れたサ−チウィンドウの特定行の左端の16画素の輝度
データとの差の和を求めると共に、このサ−チウィンド
ウの特定行の左端の16画素の輝度データを第二ロンク
レジスタ13に格納している。そして、第3行目から第
17行目で、ロングレジスタ更新画素演算命令updL
Rdistによって、第二ロングレジスタ13に格納さ
れている輝度データを8ビットシフトして第二ロングレ
ジスタ13中の最も左の画素の輝度データを棄て、代わ
りに、第二ロングレジスタ13中の最も右の画素の右の
画素の輝度データをレジスタファイルより読みだし連結
したデータを作成し、これと、第2行目で第一ロングレ
ジスタ12に格納されたカレントマクロブロックのj行
目の16画素の輝度データとの差の和を求めている。
によって、第5行目から第29行目で右側のカラムの第
2行目から第17行目で求まった和を順次加算してい
る。画素演算器の処理のレイテンシは3ステップである
で、add命令は、初めに前記差の和を求める命令が発
せられた第2行目の3ステップ後の第5行目から開始し
ている。
セッサ(図11参照)によって、特定の(j、v)の組
合せに対して、数3のr(j,u,v)のu=0からu
=15までの値を求める処理を実現するプログラムを図
8に示す。
istは数2に示す演算を行う画素演算命令、alli
gnは、レジスタファイルの2つのレジスタから読みだ
した2つの64ビット幅のデータを連結し、左にmビッ
トシフトし、シフト後に左より64ビットをデータとし
て取り出す画素配置命令である。
イン処理可能であり、そのレイテンシは2ステップであ
るとした。加算命令とロングレジスタ格納命令のレイテ
ンシは1ステップであるとした。また、スーパスカラー
またはVLIWアーキテクチャによって、異なる演算装
置で実行される異なる種類の命令は同時に実行できるも
のとして、同時実行可能な命令を1行に記述した。
tでカレントフレ−ムのカレントマクロブロックの特定
行の16画素のうちの8画素の輝度データと、サ−チウ
ィンドウの特定行の8画素の輝度データとの間の差の和
を求め、加算命令addで求まった和を順次加算し、画
素配置命令alignで次回の演算に用いるサ−チウィ
ンドウの特定行の8画素を右に1画素更新する処理を、
サ−チウィンドウの特定行の最も左側の8画素より16
回繰り返して行う。
istでカレントフレ−ムのカレントマクロブロックの
特定行の16画素のうちの残りの8画素の輝度データ
と、サ−チウィンドウの特定行の8画素の輝度データと
の間の差の和を求め、加算命令addで求まった和を順
次加算し、画素配置命令alignで次回の演算に用い
るサ−チウィンドウの特定行の8画素を左に1画素更新
する処理をサ−チウィンドウの特定行の最も右側の8画
素より16回繰り返して行う。
PARCのものとは異なり、概略がわかる程度に簡略化した
ものである。
て前記処理を実現する場合には、49ステップを要して
いる。
係るプロセッサの方が、この処理を約2.5倍高速に行
うことができることになる。これは、本実施例に係るプ
ロセッサの構成によれば、画素演算装置11において1
6画素の輝度データ間の演算を一度に行えることや、演
算に用いるサ−チウィンドウの16画素の輝度データの
更新と、更新したデータと、カレントマクロブロックの
16画素との間の演算を一命令で実現できることなどに
よるものである。
タ12、第二ロングレジスタ13、ロングレジスタ更新
装置14、画素演算ソースセレクタ15によって増加す
るハードウェア量は、レジスタファイルの読み出しポー
ト数を増やしたり、レジスタファイルのビット幅を広げ
る場合のハードウェア増加量よりも少なくて済む。
を(数4)に示した演算を行うものとしたが、画素演算
器11を他の演算を行うものとしてもよく、また、画素
の演算ではなく一般のデータの演算を行うものとしても
よい。
す数式を演算するものとしてもよい。
示す。図示するように、この構成は、先に図4に示した
構成における差演算器51を、乗算器53に置き換えた
構成を有している。乗算器53は、2つの要素データの
積を計算する演算器である。
表されるような時系列データのフィルタ演算などに応用
できる。
い、したがって、良好な応答特性を得ることができ、か
つ、処理速度の高速なフィルタを実現することができ
る。
ば、ハードウェアのコストを、あまり増加することな
く、レジスタファイルのデータ長より大きなデータ長の
データ間の演算処理を高速に実行できるプロセッサを提
供することができる。
を示すブロック図である。
ブロック図である。
タを示す図である。
ブロック図である。
の構成を示すブロック図である。
輝度データの格納のようすを示した図である。
例を示した図である。
ある。
を示したブロック図である。
近似画素ブロックの探索範囲を示した図である。
である。
への輝度データの格納のようすを示した図である。
探索の手順を示したフロ−チャ−トである。
Claims (6)
- 【請求項1】並列にデータを読みだし可能な少なくとも
2つのレジスタを含んだ複数のビット幅Nのレジスタを
備えたレジスタファイルを有するプロセッサであって、 命令を格納する命令レジスタと、 ビット幅M(但し、M>N)のレジスタである第1のロ
ングレジスタ及び第2のロングレジスタと、 前記第2のロングレジスタから読みだしたデータの一部
を前記レジスタファイルから読みだされたデータの一部
に置き換えたMビット幅のデータを、前記命令レジスタ
に格納された命令に応じて生成する更新部と、 前記レジスタファイルの複数のレジスタより並列に読み
だされたデータを連結したMビット幅のデータ、もしく
は、前記更新部が生成したMビット幅のデータの一方
を、前記命令レジスタに格納された命令に応じて選択す
る選択部と、 前記選択部が選択したMビット幅のデータと前記第1の
ロングレジスタから読みだされたMビット幅のデータと
に所定の演算を、前記命令レジスタに格納された命令に
応じて施す演算器と、を有し、 前記第1のロングレジスタは、前記命令レジスタに格納
された命令に応じて、前記レジスタファイルの複数のレ
ジスタより並列に読みだされたデータを連結したMビッ
ト幅のデータを格納し、 前記第2のロングレジスタは、前記命令レジスタに格納
された命令に応じて、前記選択部が選択したMビット幅
のデータを格納し、 前記命令レジスタに特定の命令が格納された場合に、前
記更新部は、前記第2のロングレジスタから読みだした
データの一部を前記レジスタファイルから読みだされた
データの一部に置き換えたMビット幅のデータを生成
し、前記選択部は前記更新部が生成したMビット幅のデ
ータを選択し、前記第2のロングレジスタは前記選択部
が選択したMビット幅のデータを格納し、前記演算器は
前記第1のロングレジスタから読みだされたMビット幅
のデータと前記選択部が選択したMビット幅のデータと
の間に所定の演算を施すことを特徴とするプロセッサ。 - 【請求項2】請求項1記載のプロセッサであって、 前記命令レジスタに第1種の命令が格納された場合に、
前記第1のロングレジスタは、前記レジスタファイルの
複数のレジスタより並列に読みだされたデータを連結し
たMビット幅のデータを格納し、 前記命令レジスタに第2種の命令が格納された場合に、
前記選択部は前記レジスタファイルの複数のレジスタよ
り並列に読みだされたデータを連結したMビット幅のデ
ータを選択し、前記第2のロングレジスタは前記選択部
が選択したMビット幅のデータを格納し、前記演算器は
前記第1のロングレジスタから読みだされたMビット幅
のデータと前記選択部が選択したMビット幅のデータと
の間に所定の演算を施すことを特徴とするプロセッサ。 - 【請求項3】請求項1記載のプロセッサであって、 前記更新部は、前記レジスタファイルから読みだされた
データをシフトする第1のシフタと、前記第1のシフタ
でシフトされたデータと前記第2のロングレジスタから
読みだしたデータとを連結したデータをシフトし、シフ
ト後のデータ中の所定の範囲からMビット幅のデータを
出力する第2のシフタとを備えていることを特徴とする
プロセッサ。 - 【請求項4】請求項1記載のプロセッサであって、 前記演算器が施す演算は、前記選択部が選択したMビッ
ト幅のデータを複数に分割した複数の第1要素データの
各々について、当該第1要素データと、前記第1のロン
グレジスタから読みだされたデータを複数に分割した複
数の第2要素データのうちの前記Mビット幅のデータ中
の位置に関して当該第1要素データと対応する第2要素
データとの差の絶対値を求め、各第1要素データについ
て求めた差の絶対値の総和を求める演算であることを特
徴とするプロセッサ。 - 【請求項5】請求項1記載のプロセッサであって、 前記演算器が施す演算は、前記選択部が選択したMビッ
ト幅のデータを複数に分割した複数の第1要素データの
各々について、当該第1要素データと、前記第1のロン
グレジスタから読みだされたデータを複数に分割した複
数の第2要素データのうちの前記Mビット幅のデータ中
の位置に関して当該第1要素データと対応する第2要素
データとの積を求め、各第1要素データについて求めた
積の総和を求める演算であることを特徴とするプロセッ
サ。 - 【請求項6】複数の命令を含むプログラムとデータを記
憶した記憶手段と、 前記記憶手段に記憶されたプログラム中の命令を順次取
り込んで処理するプロセッサと、を備えたデータ処理装
置であって、 前記プロセッサは、 前記記憶手段から取り込んだ命令を格納する命令レジス
タと、 並列にデータを読みだし可能な少なくとも2つのレジス
タを含んだ複数のビット幅Nのレジスタを備えたレジス
タファイルと、 前記レジスタファイルの各レジスタと前記記憶手段との
間のデータの転送を、前記命令レジスタに格納された命
令に応じて制御する手段と、 ビット幅M(但し、M>N)のレジスタである第1のロ
ングレジスタ及び第2のロングレジスタと、 前記第2のロングレジスタから読みだしたデータの一部
を前記レジスタファイルから読みだされたデータの一部
に置き換えたMビット幅のデータを、前記命令レジスタ
に格納された命令に応じて生成する更新部と、 前記レジスタファイルの複数のレジスタより並列に読み
だされたデータを連結したMビット幅のデータ、もしく
は、前記更新部が生成したMビット幅のデータの一方
を、前記命令レジスタに格納された命令に応じて選択す
る選択部と、 前記選択部が選択したMビット幅のデータと前記第1の
ロングレジスタから読みだされたMビット幅のデータと
に所定の演算を、前記命令レジスタに格納された命令に
応じて施し、演算の結果を前記レジスタファイルのレジ
スタに書き込む演算器と、を有し、 前記第1のロングレジスタは、前記命令レジスタに格納
された命令に応じて、前記レジスタファイルの複数のレ
ジスタより並列に読みだされたデータを連結したMビッ
ト幅のデータを格納し、 前記第2のロングレジスタは、前記命令レジスタに格納
された命令に応じて、前記選択部が選択したMビット幅
のデータを格納し、 前記命令レジスタに特定の命令が格納された場合に、前
記更新部は、前記第2のロングレジスタから読みだした
データの一部を前記レジスタファイルから読みだされた
データの一部に置き換えたMビット幅のデータを生成
し、前記選択部は前記更新部が生成したMビット幅のデ
ータを選択し、前記第2のロングレジスタは前記選択部
が選択したMビット幅のデータを格納し、前記演算器は
前記第1のロングレジスタから読みだされたMビット幅
のデータと前記選択部が選択したMビット幅のデータと
の間に所定の演算を施すことを特徴とするデータ処理装
置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19860995A JP3526976B2 (ja) | 1995-08-03 | 1995-08-03 | プロセッサおよびデータ処理装置 |
US08/681,180 US5870618A (en) | 1995-08-03 | 1996-07-22 | Processor and data processor |
TW085109033A TW297878B (ja) | 1995-08-03 | 1996-07-24 | |
KR1019960030919A KR100213604B1 (ko) | 1995-08-03 | 1996-07-29 | 프로세서 및 데이타처리장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19860995A JP3526976B2 (ja) | 1995-08-03 | 1995-08-03 | プロセッサおよびデータ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0944356A JPH0944356A (ja) | 1997-02-14 |
JP3526976B2 true JP3526976B2 (ja) | 2004-05-17 |
Family
ID=16394045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19860995A Expired - Fee Related JP3526976B2 (ja) | 1995-08-03 | 1995-08-03 | プロセッサおよびデータ処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5870618A (ja) |
JP (1) | JP3526976B2 (ja) |
KR (1) | KR100213604B1 (ja) |
TW (1) | TW297878B (ja) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6401190B1 (en) * | 1995-03-17 | 2002-06-04 | Hitachi, Ltd. | Parallel computing units having special registers storing large bit widths |
US6421698B1 (en) | 1998-11-04 | 2002-07-16 | Teleman Multimedia, Inc. | Multipurpose processor for motion estimation, pixel processing, and general processing |
JP2001202243A (ja) * | 1999-04-30 | 2001-07-27 | Hitachi Ltd | データ処理装置 |
WO2002101538A1 (en) * | 2001-06-13 | 2002-12-19 | Teleman Multimedia, Inc. | Multipupose processor for motion estimation, pixel processing, and general processing |
GB2409060B (en) * | 2003-12-09 | 2006-08-09 | Advanced Risc Mach Ltd | Moving data between registers of different register data stores |
GB2409061B (en) * | 2003-12-09 | 2006-09-13 | Advanced Risc Mach Ltd | Table lookup operation within a data processing system |
GB2411976B (en) * | 2003-12-09 | 2006-07-19 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
GB2409066B (en) * | 2003-12-09 | 2006-09-27 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
GB2409063B (en) * | 2003-12-09 | 2006-07-12 | Advanced Risc Mach Ltd | Vector by scalar operations |
GB2409065B (en) * | 2003-12-09 | 2006-10-25 | Advanced Risc Mach Ltd | Multiplexing operations in SIMD processing |
GB2411975B (en) * | 2003-12-09 | 2006-10-04 | Advanced Risc Mach Ltd | Data processing apparatus and method for performing arithmetic operations in SIMD data processing |
GB2409064B (en) * | 2003-12-09 | 2006-09-13 | Advanced Risc Mach Ltd | A data processing apparatus and method for performing in parallel a data processing operation on data elements |
GB2409059B (en) * | 2003-12-09 | 2006-09-27 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
GB2411973B (en) * | 2003-12-09 | 2006-09-27 | Advanced Risc Mach Ltd | Constant generation in SMD processing |
GB2411974C (en) * | 2003-12-09 | 2009-09-23 | Advanced Risc Mach Ltd | Data shift operations |
GB2409062C (en) * | 2003-12-09 | 2007-12-11 | Advanced Risc Mach Ltd | Aliasing data processing registers |
GB2409067B (en) * | 2003-12-09 | 2006-12-13 | Advanced Risc Mach Ltd | Endianess compensation within a SIMD data processing system |
GB2409068A (en) * | 2003-12-09 | 2005-06-15 | Advanced Risc Mach Ltd | Data element size control within parallel lanes of processing |
GB2410097B (en) * | 2004-01-13 | 2006-11-01 | Advanced Risc Mach Ltd | A data processing apparatus and method for performing data processing operations on floating point data elements |
GB2411978B (en) * | 2004-03-10 | 2007-04-04 | Advanced Risc Mach Ltd | Inserting bits within a data word |
US9557994B2 (en) | 2004-07-13 | 2017-01-31 | Arm Limited | Data processing apparatus and method for performing N-way interleaving and de-interleaving operations where N is an odd plural number |
KR100706289B1 (ko) * | 2005-08-19 | 2007-04-13 | 가부시키가이샤 도쿄 마루이 | 완구총의 리코일 쇼크 장치 |
US8417922B2 (en) * | 2006-08-02 | 2013-04-09 | Qualcomm Incorporated | Method and system to combine multiple register units within a microprocessor |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2617974B2 (ja) * | 1988-03-08 | 1997-06-11 | 富士通株式会社 | データ処理装置 |
US5437043A (en) * | 1991-11-20 | 1995-07-25 | Hitachi, Ltd. | Information processing apparatus having a register file used interchangeably both as scalar registers of register windows and as vector registers |
US5513363A (en) * | 1994-08-22 | 1996-04-30 | Hewlett-Packard Company | Scalable register file organization for a computer architecture having multiple functional units or a large register file |
-
1995
- 1995-08-03 JP JP19860995A patent/JP3526976B2/ja not_active Expired - Fee Related
-
1996
- 1996-07-22 US US08/681,180 patent/US5870618A/en not_active Expired - Lifetime
- 1996-07-24 TW TW085109033A patent/TW297878B/zh active
- 1996-07-29 KR KR1019960030919A patent/KR100213604B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US5870618A (en) | 1999-02-09 |
TW297878B (ja) | 1997-02-11 |
KR100213604B1 (ko) | 1999-08-02 |
JPH0944356A (ja) | 1997-02-14 |
KR970014366A (ko) | 1997-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3526976B2 (ja) | プロセッサおよびデータ処理装置 | |
KR102258414B1 (ko) | 처리 장치 및 처리 방법 | |
US4635292A (en) | Image processor | |
JPH02289097A (ja) | 画像表示データ処理装置 | |
JP3442192B2 (ja) | データ駆動型情報処理装置 | |
EP0752643A1 (en) | Expansion of data | |
JPH09106342A (ja) | 並べ換え装置 | |
US10884736B1 (en) | Method and apparatus for a low energy programmable vector processing unit for neural networks backend processing | |
EP0817003B1 (en) | Format conversion of graphical image data words | |
US5896307A (en) | Method for handling an underflow condition in a processor | |
KR101586770B1 (ko) | 데이터 처리 장치 | |
US8135229B1 (en) | Image processing method and device | |
US6067099A (en) | High-performance band combine function | |
US5029018A (en) | Structure of image processing system | |
JP2018173956A (ja) | 半導体装置 | |
US7260711B2 (en) | Single instruction multiple data processing allowing the combination of portions of two data words with a single pack instruction | |
EP1936492A1 (en) | SIMD processor with reduction unit | |
JPH1153189A (ja) | 演算装置、演算方法及びコンピュータ読み取り可能な記録媒体 | |
JPH10224224A (ja) | 半導体演算装置 | |
JP2007183712A (ja) | データ駆動型情報処理装置 | |
JPH02299082A (ja) | 可変長データを処理するプロセッサ | |
JPH11149554A (ja) | 3x3グリッドのランクに基づくフィルタのSIMD計算 | |
JPS6162174A (ja) | 情報婦理装置 | |
JP4203480B2 (ja) | 画像処理プロセッサ | |
JP3907369B2 (ja) | データ駆動型情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040105 |
|
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: 20040210 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040218 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080227 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090227 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100227 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110227 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110227 Year of fee payment: 7 |
|
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 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110227 Year of fee payment: 7 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110227 Year of fee payment: 7 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110227 Year of fee payment: 7 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110227 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120227 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130227 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140227 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |