JP2008204288A - ストリームデータ処理装置 - Google Patents

ストリームデータ処理装置 Download PDF

Info

Publication number
JP2008204288A
JP2008204288A JP2007041223A JP2007041223A JP2008204288A JP 2008204288 A JP2008204288 A JP 2008204288A JP 2007041223 A JP2007041223 A JP 2007041223A JP 2007041223 A JP2007041223 A JP 2007041223A JP 2008204288 A JP2008204288 A JP 2008204288A
Authority
JP
Japan
Prior art keywords
data
circuit
output
input
read
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.)
Pending
Application number
JP2007041223A
Other languages
English (en)
Inventor
Hiromitsu Katsumata
大満 勝又
Taku Takemoto
卓 竹本
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007041223A priority Critical patent/JP2008204288A/ja
Publication of JP2008204288A publication Critical patent/JP2008204288A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Input (AREA)
  • Static Random-Access Memory (AREA)

Abstract

【課題】チップ面積の増加を抑制し、短期間で開発することができるストリームデータ処理装置を実現する。
【解決手段】本発明のストリームデータ処理装置は、1つのライトポートおよび1つのリードポートを備え、複数のデータが格納されるバンクA〜Dを備えたデータ格納回路11と、バンクA〜Dのうち3個を選択し、クロック信号のサイクルごとに読み出されるデータをそれぞれ異なる3個の出力ポートへ出力するデータ並び替え回路12と、クロック信号の異なるサイクルで読み出された3個のデータをクロック信号に同期して同時に出力する出力タイミング調整回路13と、出力タイミング調整回路13からのデータに基づいて演算を実行し、演算結果16を生成する演算回路14と、演算結果16または入力データ17をデータ格納回路11へ書き込むために、バンクA〜Dのうち1つを選択するデータ格納選択回路15を有する。
【選択図】図1

Description

本発明は、画像処理などにおけるストリームデータ処理装置に関する。
近年、画像処理用のマイクロプロセッサ等において、高性能化の要求が大きくなって来ている。この要求を満たす1つの手段として、演算の並列実行による演算速度の高速化がある。このような演算の並列処理を効率良く実現するためには、汎用レジスタとしてマルチポートのメモリ装置が必要となる。例えば、画像処理等で頻繁に使用される積和演算の場合、効率のよい並列処理を実現するためには、1回のアクセスでランダムなアドレスの3つのデータを同時に読み出すことができる3リードポートの汎用レジスタが必要となる。
マルチポートの汎用レジスタ(メモリ装置)とは、同じまたは異なるワードのデータを複数のリードポートで並列に読み出せ、また、同じまたは異なるワードのデータを複数のライトポートから書き込めるものである。(例えば、「特許文献1」を参照。)
しかしながら、従来、マルチポートの汎用レジスタは、1リードポートの汎用レジスタと異なり、一般的に使用頻度が少ないために設計ライブラリにマクロセルとして存在しない場合が多く、製品ごとに最初から開発しなければならないという問題があった。また、マルチポートの汎用レジスタは、1リードポートの汎用レジスタよりもはるかに回路規模が大きく、チップの実装面積を多く消費してしまうという問題があった。
特開平4−324189号公報
本発明は、チップ面積の増加を抑制し、短期間で開発することができるストリームデータ処理装置を提供する。
本発明の一態様によれば、1つのライトポートおよび1つのリードポートを備え、複数のデータが格納されるバンクと、N個(Nは2以上の整数。)の前記バンクを備えたデータ格納手段と、前記データ格納手段におけるN個の前記リードポートのうちM個(Mは、2≦M≦Nの整数。)を選択し、当該リードポートからクロック信号のサイクルごとに読み出されるデータをそれぞれ異なるM個の出力ポートへ出力するデータ並び替え手段と、前記データ並び替え手段からのM個のデータを前記出力ポートごとに異なる時間保持し、前記クロック信号の異なるサイクルで前記データ格納手段から読み出されたM個のデータを前記クロック信号に同期して同時に出力する出力タイミング調整手段と、前記出力タイミング調整手段からのデータに基づいて演算を実行し、演算結果を生成する演算手段と、前記演算結果または入力データを前記データ格納手段へ書き込むために、N個の前記ライトポートのうち1つを選択するデータ格納選択手段を有することを特徴とするストリームデータ処理装置が提供される。
また、本発明の別の一態様によれば、1つのライトポートおよび1つのリードポートを備え、複数のデータが格納されるバンクと、N個(Nは2以上の整数。)の前記バンクを備えたデータ格納手段と、前記データ格納手段におけるN個の前記リードポートのうち(M+1)個(Mは、2≦M<Nの整数。)を選択し、当該リードポートからクロック信号のサイクルごとに読み出されるデータをそれぞれ異なる(M+1)個の出力ポートへ出力するデータ並び替え手段と、前記データ並び替え手段からの(M+1)個のデータのうちM個のデータを前記出力ポートごとに異なる時間保持し、前記クロック信号の異なるサイクルで前記データ格納手段から読み出されたM個のデータを前記クロック信号に同期して同時に出力する出力タイミング調整手段と、前記出力タイミング調整手段からのデータに基づいて演算を実行し、演算結果を生成する演算手段と、前記出力タイミング調整手段からの(M+1)個のデータのうちテクスチャ参照値を一時保持するデータ保持手段と、前記データ保持手段からの前記テクスチャ参照値に基づいて、色データを生成するテクスチャフェッチ手段と、前記演算結果、前記色データ、または入力データを前記データ格納手段へ書き込むために、N個の前記ライトポートのうち1つを選択するデータ格納選択手段を有することを特徴とするストリームデータ処理装置が提供される。
本発明によれば、1リードポートの汎用レジスタを使用しているので、チップ面積の増加を抑えつつ高性能なストリームデータ処理装置を短期間で開発することができる。
以下、図面を参照しながら、本発明の実施例を説明する。
図1は、本発明の実施例1に係わるストリームデータ処理装置を示す回路ブロック図である。ここでは、主に、並列処理されるデータが格納される汎用レジスタ群とその演算処理にかかわる部分を示した。
本発明の実施例1に係わるストリームデータ処理装置は、汎用レジスタとして使用されるデータ格納回路11、データ格納回路11からのデータを並び替えるデータ並び替え回路12、データ並び替え回路12からのデータを保持し出力タイミングを調整する出力タイミング調整回路13、出力タイミング調整回路13からのデータに基づいて演算を行い演算結果16を生成する演算回路14、およびデータ格納回路11に書き込む演算結果16または入力データ17を選択するデータ格納選択回路15を備えている。
データ格納回路11は、4つのバンクA〜Dを備えており、各バンクは、128ビット幅のデータを128ワード保持することができ、それぞれ、インターフェースとして1つのリードポートと1つのライトポートを有している。
データ格納回路11のバンクAの入力にはデータ格納選択回路15からの第1の書き込みデータ18aが入力され、バンクAの出力は第1の読み出しデータ19aとしてデータ並び替え回路12の第1の入力へ供給されている。
データ格納回路11のバンクBの入力にはデータ格納選択回路15からの第2の書き込みデータ18bが入力され、バンクBの出力は第2の読み出しデータ19bとしてデータ並び替え回路12の第2の入力へ供給されている。
データ格納回路11のバンクCの入力にはデータ格納選択回路15からの第3の書き込みデータ18cが入力され、バンクCの出力は第3の読み出しデータ19cとしてデータ並び替え回路12の第3の入力へ供給されている。
データ格納回路11のバンクDの入力にはデータ格納選択回路15からの第4の書き込みデータ18dが入力され、バンクDの出力は第4の読み出しデータ19dとしてデータ並び替え回路12の第4の入力へ供給されている。
データ並び替え回路12の第1の出力は並び替えられたデータ20aとして出力タイミング調整回路13の第1の入力に供給され、データ並び替え回路12の第2の出力は並び替えられたデータ20bとして出力タイミング調整回路13の第2の入力に供給され、データ並び替え回路12の第3の出力は並び替えられたデータ20cとして出力タイミング調整回路13の第3の入力に供給されている。
出力タイミング調整回路13の第1の出力は同時に演算処理されるデータ21aとして演算回路14の第1の入力に供給され、出力タイミング調整回路13の第2の出力は同時に演算処理されるデータ21bとして演算回路14の第2の入力に供給され、出力タイミング調整回路13の第3の出力は同時に演算処理されるデータ21cとして演算回路14の第3の入力に供給されている。
データ格納選択回路15の第1の入力には演算回路14からの演算結果16が入力され、第2の入力には入力データ17が入力されている。
データ並び替え回路12はクロスバー構成であり、制御回路(図示していない。)からの制御信号に基づいて、データ格納回路11からの4つの128ビット幅の読み出しデータ19a〜19dのうち3つを選択し、それぞれを異なる出力ポートへ並び替えられたデータ20a〜20cとして同時に出力することができる。
出力タイミング調整回路13は、図1に示したように、データ並び替え回路12の出力ポートごとに複数の128ビット幅のシフトレジスタ列で構成されている。
すなわち、データ20aが入力される第1のシフトレジスタ列は、3段のシフトレジスタが従属接続された128組で構成され、データ20bが入力される第2のシフトレジスタ列は、2段のシフトレジスタが従属接続された128組で構成され、データ20cが入力される第3のシフトレジスタ列は、1段のシフトレジスタが128組で構成されている。
図1では、各段の128組のシフトレジスタを、第1のシフトレジスタ列ではs00、s01、およびs02で示し、第2のシフトレジスタ列ではs10およびs11で示し、第3のシフトレジスタ列ではs20で示した。
各シフトレジスタ列は、データ並び替え回路12からの128ビット幅のデータ20a〜20cをクロック信号のサイクルごとにそれぞれ次段へ転送する。
したがって、入力されたデータ20aは出力タイミング調整回路13で一時保持され、クロック信号の3サイクル目でデータ21aとして演算回路14へ出力される。同様に、データ20bは2サイクル目でデータ21bとして出力され、データ20cは次のクロックサイクルでデータ21c出力される。
すなわち、データ並び替え回路12の各出力ポートごとにクロック信号の異なるサイクルで入力された3つのデータ20a〜20cが、s02、s11、およびs20からクロック信号に同期してデータ21a〜21cとして同時に出力される。
データ格納選択回路15はクロスバー構成であり、制御回路(図示していない。)からの制御信号およびレジスタアドレスに基づいて、本装置外部からの128ビット幅の入力データ17と演算回路14からの128ビット幅の演算結果16をデータ格納回路11にある4つのバンクA〜Dのいずれかへ書き込みデータ18a〜18dとして同時に出力することができる。
図2は、本発明の実施例1に係わるストリームデータ処理装置における演算回路14を示す回路ブロック図である。
本発明の実施例1に係わるストリームデータ処理装置における演算回路14は、4つの32ビット演算器A〜Dを備えている。
演算器A〜Dは、それぞれ、32ビットの3つの入力と32ビットの出力を備えており、s02、s11、s20からの128ビット幅のデータは32ビット幅のデータ4つに分割され、それぞれの演算器に入力されている。
演算器Aの第1の入力にはデータ21aの第0ビット〜第31ビットが入力され、演算器Aの第2の入力にはデータ21bの第0ビット〜第31ビットが入力され、演算器Aの第3の入力にはデータ21cの第0ビット〜第31ビットが入力され、演算器Aの出力は検算結果の第0ビット〜第31ビットとしてデータ格納選択回路15の第1の入力および本装置の外部へ供給されている。
演算器Bの第1の入力にはデータ21aの第32ビット〜第63ビットが入力され、演算器Bの第2の入力にはデータ21bの第32ビット〜第63ビットが入力され、演算器Bの第3の入力にはデータ21cの第32ビット〜第63ビットが入力され、演算器Bの出力は検算結果の第32ビット〜第63ビットとしてデータ格納選択回路15の第1の入力および本装置の外部へ供給されている。
演算器Cの第1の入力にはデータ21aの第64ビット〜第95ビットが入力され、演算器Cの第2の入力にはデータ21bの第64ビット〜第95ビットが入力され、演算器Cの第3の入力にはデータ21cの第64ビット〜第95ビットが入力され、演算器Cの出力は検算結果の第64ビット〜第95ビットとしてデータ格納選択回路15の第1の入力および本装置の外部へ供給されている。
演算器Dの第1の入力にはデータ21aの第96ビット〜第127ビットが入力され、演算器Dの第2の入力にはデータ21bの第96ビット〜第127ビットが入力され、演算器Dの第3の入力にはデータ21cの第96ビット〜第127ビットが入力され、演算器Dの出力は検算結果の第96ビット〜第127ビットとしてデータ格納選択回路15の第1の入力および本装置の外部へ供給されている。
演算器A〜Dは、それぞれ、3つのオペランドを取る命令(例えば、積和演算や比較演算など。)、2つのオペランドを取る命令(例えば、加算など。)、および1つのオペランドを取る命令(例えば、log演算など。)を処理できる。
次に、上述した構成を持つストリームデータ処理装置の動作について説明する。
まず、本装置を使用する前にデータ格納回路11へ演算で使用するデータを格納するために、データ格納選択回路15によって入力データ17を処理単位ごとにバンクA〜Dへ格納するように書き込み先のバンクを決定する。処理単位とは、1つの演算命令において入力データ17がすべて同じバンクに格納されていることを意味する。すなわち、例えば、積和演算を行う場合は3つの入力オペランドが必要になるが、3つのデータはすべて同じバンクに格納されている。
バンクA〜Dに格納されたデータは、制御回路からの読み出し要求があった場合に読み出しデータ19a〜19dとしてデータ並び替え回路12に渡される。データ並び替え回路12は、同じ処理単位のデータが出力タイミング調整回路13の各シフトレジスタ列に1つずつ入力されるように、バンクインタリーブによって読み出されたデータ19a〜19dを並び替えていく。
出力タイミング調整回路13にはデータ並び替え回路12で並び替えられたデータ20a〜20cが次々に入力され、内部のシフトレジスタを移動し、レジスタの最終段(s02、s10、およびs20)で同時に処理されるデータ21a〜21cがすべて揃う。揃ったデータ21a〜21cは、演算回路14で実行される命令のオペランドとなる。
演算回路14による出力結果は、本装置の外部へ毎サイクル処理単位に出力されると同時に、データ格納選択回路15にも入力され、処理単位に指定されたバンクへ書き戻される。
図3は、本発明の実施例1に係わるストリームデータ処理装置における出力タイミング調整回路13の動作を示すイメージ図である。ここでは、一例として、バンクAに格納されたデータに対して積和演算(mad r3,r0,r1,r2)を実行する場合のサイクルごとのs00−s20の変化を示した。
図3に示したp00は、処理単位を意味する名前である。データ並び替え回路12によって0サイクル目では、s00に、第1のオペランドであるr0が入力され、1サイクル目では、s10に、第2のオペランドであるr1が入力され、2サイクル目では、s20に、第3のオペランドであるr2が入力される。
3サイクル目で処理p00の3つのオペランドが揃い、演算回路14へ同時に出力できることが確認できる。バンクA〜Dに処理単位ごとに格納されたデータを出力タイミング調整回路13へ毎サイクル入力することで、積和演算のような3入力演算を毎サイクル実行できる。
3つのオペランド(データ21a〜21c)を入力とする積和演算(mad)を多用するストリーミング処理の場合、1リードポートの汎用レジスタを複数使用してバンク化することで、回路面積が大きい3リードポートの汎用レジスタを使用せずにデータ格納回路11を構成でき、バンクコンフリクト無しの演算が毎サイクル可能となる。
また、バンクコンフリクトが発生しないため演算器A〜Dの使用効率が向上し、ストリームデータ処理装置の性能が大幅に改善する。
上記実施例1によれば、1リードポートの汎用レジスタ(バンクA〜D)を使用しているので、一般的なセルライブラリを利用することができ、チップ面積の増加を抑えつつ高性能なストリームデータ処理装置を短期間で開発することができる。
図4は、本発明の実施例2に係わるストリームデータ処理装置を示す回路ブロック図である。ここでは、主に、並列処理されるデータが格納される汎用レジスタ群とその演算処理にかかわる部分を示した。
本発明の実施例2に係わるストリームデータ処理装置は、汎用レジスタとして使用されるデータ格納回路11、データ格納回路11からのデータを並び替えるデータ並び替え回路12、データ並び替え回路12からのデータを保持し出力タイミングを調整する出力タイミング調整回路13、演算を行い演算結果16を生成する演算回路14、データ格納回路11に書き込む演算結果16または入力データ17を選択するデータ格納選択回路15、定数値を格納しておくSRAM41(Static Random Access Memory)、および出力タイミング調整回路13からのデータまたはSRAM41からの定数値データ43を選択するマルチプレクサ42a〜42cを備えている。
SRAM41およびマルチプレクサ42a〜42cを除く回路ブロックの構成、機能、および動作は実施例1と同様であるので、実施例1と同じ符号を使用し詳しい説明は省略する。
マルチプレクサ42aの第1の入力には出力タイミング調整回路13からの第1のデータ21aが入力され、第2の入力にはSRAM41からの定数値データ43が入力され、マルチプレクサ42aの出力は演算回路14の第1の入力に供給されている。
マルチプレクサ42bの第1の入力には出力タイミング調整回路13からの第2のデータ21bが入力され、第2の入力にはSRAM41からの定数値データ43が入力され、マルチプレクサ42bの出力は演算回路14の第2の入力に供給されている。
マルチプレクサ42cの第1の入力には出力タイミング調整回路13からの第3のデータ21cが入力され、第2の入力にはSRAM41からの定数値データ43が入力され、マルチプレクサ42cの出力は演算回路14の第3の入力に供給されている。
SRAM41には、128ビット幅のデータを256ワード格納でき、本装置を使用する前に演算で使用する定数値があらかじめ格納されている。そして、制御回路(図示していない。)からの制御信号に基づいて、必要な定数値データ43が読み出される。
マルチプレクサ42a〜42cは、それぞれが128個の2入力1出力選択回路で構成され、制御回路からの制御信号に基づいて出力タイミング調整回路13からのデータ21a〜21cまたは定数値データ43を選択し、演算回路14へ出力する。
上述した構成を持つストリームデータ処理装置の動作については、マルチプレクサ42a〜42cで定数値データ43を選択することを除いて実施例1と同様であるので、詳しい説明は省略する。
上記実施例2によれば、実施例1と同様の効果を得られるばかりでなく、演算回路14の前に定数値データ43とバンクA〜Dからのデータ21a〜21cのマルチプレクサ42a〜42cを置くことで、定数値を含んだ演算が可能となる。
上述の実施例2では、定数値データ43の格納にはSRAM41を用いるとしたが、本発明はこれに限られるものではなく、DRAM(Dynamic Random Access Memory)やEEPROM(Electrical Erasable PROM)など他のメモリマクロを用いてもよい。
図5は、本発明の実施例3に係わるストリームデータ処理装置を示す回路ブロック図である。ここでは、主に、並列処理されるデータが格納される汎用レジスタ群とその演算処理にかかわる部分を示した。
本発明の実施例3に係わるストリームデータ処理装置は、汎用レジスタとして使用されるデータ格納回路11、データ格納回路11からのデータを並び替えるデータ並び替え回路12、データ並び替え回路12からのデータを保持し出力タイミングを調整する出力タイミング調整回路13、演算を行い演算結果16を生成する演算回路14、データ格納回路11に書き込む演算結果16または入力データ17を選択するデータ格納選択回路15、定数値を格納しておくSRAM41(Static Random Access Memory)、出力タイミング調整回路13からのデータまたはSRAM41からの定数値データ43を選択するマルチプレクサ42a〜42c、出力タイミング調整回路13からのデータを一時保持するレジスタ(以下、「ts00」という。)、およびテクスチャ参照値52から色データ53を生成するテクスチャフェッチ回路51を備えている。
ts00、およびテクスチャフェッチ回路51を除く回路ブロックの構成、機能、および動作は実施例1および実施例2と同様であるので、それらと同じ符号を使用し詳しい説明は省略する。
ts00の入力にはデータ並び替え回路12からのテクスチャ参照値52が入力され、ts00の出力はテクスチャフェッチ回路51の入力へ供給されている。テクスチャフェッチ回路51の出力は色データ53としてデータ格納選択回路15の第3の入力へ供給されている。
データ並び替え回路12の実施例1との違いは、出力ポートが実施例1より1つ多いことである。すなわち、データ格納回路11からの4つの128ビット幅の読み出しデータ19a〜19dをそれぞれを異なる出力ポートへ並び替えられたデータ20a〜20cおよびテクスチャ参照値52として同時に出力することである。
データ20a〜20cは出力タイミング調整回路13へ供給され、テクスチャ参照値52はts00へ供給される。
ts00は、1段のシフトレジスタであり、データ並び替え回路12からのテクスチャ参照値52を一時保持し、クロック信号に同期してテクスチャフェッチ回路51へ出力する。
テクスチャフェッチ回路51は、ts00から渡されたデータを参照値としてあらかじめ回路内に格納されているテクスチャデータを読み出し、適宜加工して色データ53としてデータ格納選択回路15へ出力する。
データ格納選択回路15の実施例1との違いは、入力される3つのデータ(演算結果16、入力データ17、および色データ53)をデータ格納回路11にある4つのバンクA〜Dのいずれかへ書き込みデータ18a〜18dとして同時に出力することである。
次に、上述した構成を持つストリームデータ処理装置の動作について説明する。
本実施例における動作は、テクスチャフェッチ回路51に関わる部分を除いて、実施例1および実施例2と同様であるので、詳細な説明は省略する。
データ並び替え回路12において、制御回路からの制御信号に基づいてデータ格納回路11のバンクA〜Dから読み出されたデータがテクスチャフェッチを行う命令(例えば、texldなど)のオペランドの場合、データ並び替え回路12は、ts00にデータを格納するよう動作し、テクスチャフェッチを行うためにテクスチャフェッチ回路51へデータが渡される。
テクスチャフェッチ回路51は、渡されたデータを参照値として、テクスチャデータを読み出し、適宜加工して色データ53として出力する。色データ53は、データ格納選択回路15に入力されて指定されたバンクへ書き戻される。
データがテクスチャフェッチを行う命令以外のオペランドの場合、実施例1と同様に、データ並び替え回路12は、同じ処理単位のデータが出力タイミング調整回路13の各シフトレジスタに1つずつ格納されるように読み出されたデータ19a〜19dを並び替えていく。
図6および図7は、本発明の実施例3に係わるストリームデータ処理装置における出力タイミング調整回路13およびts00の動作の一例を説明するためのイメージ図である。ここでは、一例として、バンクA〜Dに格納されたデータに対して積和演算(mad r3,r0,r1,r2)およびテクスチャフェッチ命令(texld r3,r0,s0)を実行する場合を示した。
図6に示したp00〜p13は、処理単位を意味する名前である。また、スレッド0とスレッド1は、それぞれ複数のデータに同じ命令を実行する単位を意味する。すなわち、p00、p01、p02、p03はすべて積和演算(mad r3,r0,r1,r2)が実行され、p10、p11、p12、p13はすべてテクスチャフェッチ命令(texld r3,r0,s0)が実行される。
一般に、ストリーミング処理では、複数のデータを塊(スレッドという名前の4つの処理単位の塊)として扱い、同じ演算処理を施すことが多い。スレッド0の演算は、データ格納回路11からデータを3つ必要とする命令(mad)、スレッド1の演算は、データ格納回路11からのデータを1つ必要とするテクスチャフェッチ命令(texld)である。
図7は、各処理を実行した際のts00とs00−s20の変化を示している。データ並び替え回路12によって0サイクル目では、ts00にスレッド1のp10の演算で使用するr0が入力される。
1サイクル目では、ts00にスレッド1のp11の演算で使用するr0が入力され、s00に、スレッド0のp00の演算で使用するr0が入力される。2サイクル目では、ts00にスレッド1のp12の演算で使用するr0が入力され、s00に、スレッド0のp01の演算で使用するr0が入力され、s10に、スレッド0のp00の演算で使用するr1が入力される。
3サイクル目では、ts00にスレッド1のp13の演算で使用するr0が入力され、s00に、スレッド0のp02の演算で使用するr0が入力され、s10に、スレッド0のp01の演算で使用するr1が入力され、s20に、スレッド0のp00の演算で使用するr2が入力される。
4サイクル目でスレッド0の処理p00の3つのオペランドが揃い、演算回路14へ同時に出力できることが確認できる。1サイクル目からスレッド1のテクスチャ命令はテクスチャキャッシュミスがない場合、毎サイクル実行できる。
4サイクル目から毎サイクル3つのオペランドが出力することが確認できる。よって、各バンクに処理単位に格納されたデータを出力タイミング調整回路13へ毎サイクル入力することで、積和演算のような3入力演算を毎サイクル実行できる。
このように、本装置は、リードポートが1つのバンクを4つ持ち、それぞれをバンクとして処理単位ごとにインタリーブを行うため、テクスチャフェッチの処理で使用するデータと他の演算命令で使用するオペランドの数のデータを同時に読み出すことができる。
上記実施例3によれば、実施例1および実施例2と同様の効果を得られるばかりでなく、テクスチャフェッチの処理とそれ以外の演算回路14を使用する処理を並列して実行できる。
上述の実施例1〜3の説明では、データ格納回路11のバンク数は4つであるとしたが、本発明はこれに限られるものではなく、2以上の整数であれば、原理的には適用可能である。
また、上述の実施例1〜3の説明では、データ並び替え回路12のシフトレジスタ列の数は3つであるとしたが、本発明はこれに限られるものではなく、2以上の整数であれば、原理的には適用可能である。
さらに、上述の実施例1〜3の説明では、演算回路14は4つ演算器A〜Dで構成されるとしたが、本発明はこれに限られるものではなく、2以上の整数であれば、原理的には適用可能である。
さらに、上述の実施例1〜3の説明では、データのビット幅は128ビットであるとしたが、本発明はこれに限られるものではない。また、データ格納回路の各バンクは128ビット幅であるとしたが、本発明はこれに限られるものではなく、例えば、32ビット幅のマクロを4つ並べて128ビット幅のバンクを実現することもできる。
本発明の実施例1に係わるストリームデータ処理装置を示す回路ブロック図。 本発明の実施例1に係わるストリームデータ処理装置における演算回路14を示す回路ブロック図。 本発明の実施例1に係わるストリームデータ処理装置における出力タイミング調整回路13の動作を示すイメージ図。 本発明の実施例2に係わるストリームデータ処理装置を示す回路ブロック図。 本発明の実施例3に係わるストリームデータ処理装置を示す回路ブロック図。 本発明の実施例3に係わるストリームデータ処理装置におけるバンクA〜Dの一例を示すイメージ図。 本発明の実施例3に係わるストリームデータ処理装置における出力タイミング調整回路13およびts00の動作を示すイメージ図。
符号の説明
11 データ格納回路
12 データ並び替え回路
13 出力タイミング調整回路
14 演算回路
15 データ格納選択回路
16 演算結果
17 入力データ
s00〜s20 シフトレジスタ

Claims (5)

  1. 1つのライトポートおよび1つのリードポートを備え、複数のデータが格納されるバンクと、
    N個(Nは2以上の整数。)の前記バンクを備えたデータ格納手段と、
    前記データ格納手段におけるN個の前記リードポートのうちM個(Mは、2≦M≦Nの整数。)を選択し、当該リードポートからクロック信号のサイクルごとに読み出されるデータをそれぞれ異なるM個の出力ポートへ出力するデータ並び替え手段と、
    前記データ並び替え手段からのM個のデータを前記出力ポートごとに異なる時間保持し、前記クロック信号の異なるサイクルで前記データ格納手段から読み出されたM個のデータを前記クロック信号に同期して同時に出力する出力タイミング調整手段と、
    前記出力タイミング調整手段からのデータに基づいて演算を実行し、演算結果を生成する演算手段と、
    前記演算結果または入力データを前記データ格納手段へ書き込むために、N個の前記ライトポートのうち1つを選択するデータ格納選択手段を有することを特徴とするストリームデータ処理装置。
  2. 1つのライトポートおよび1つのリードポートを備え、複数のデータが格納されるバンクと、
    N個(Nは2以上の整数。)の前記バンクを備えたデータ格納手段と、
    前記データ格納手段におけるN個の前記リードポートのうち(M+1)個(Mは、2≦M<Nの整数。)を選択し、当該リードポートからクロック信号のサイクルごとに読み出されるデータをそれぞれ異なる(M+1)個の出力ポートへ出力するデータ並び替え手段と、
    前記データ並び替え手段からの(M+1)個のデータのうちM個のデータを前記出力ポートごとに異なる時間保持し、前記クロック信号の異なるサイクルで前記データ格納手段から読み出されたM個のデータを前記クロック信号に同期して同時に出力する出力タイミング調整手段と、
    前記出力タイミング調整手段からのデータに基づいて演算を実行し、演算結果を生成する演算手段と、
    前記出力タイミング調整手段からの(M+1)個のデータのうちテクスチャ参照値を一時保持するデータ保持手段と、
    前記データ保持手段からの前記テクスチャ参照値に基づいて、色データを生成するテクスチャフェッチ手段と、
    前記演算結果、前記色データ、または入力データを前記データ格納手段へ書き込むために、N個の前記ライトポートのうち1つを選択するデータ格納選択手段を有することを特徴とするストリームデータ処理装置。
  3. 定数値があらかじめ格納された記憶手段と、
    前記出力タイミング調整手段の前記出力ポートごとに、当該出力ポートからのデータまたは前記記憶手段からの定数値を前記演算手段へ出力する選択手段をさらに有することを特徴とする請求項1または請求項2に記載のストリームデータ処理装置。
  4. 前記出力タイミング調整手段は、
    m個(mは、1≦m≦Mの整数。)のシフトレジスタが直列接続され、前記クロック信号によりデータがmサイクル保持されるシフトレジスタ列と、
    前記データ並び替え手段の前記出力ポートのデータビット幅に対応する数の前記シフトレジスタ列で構成され、入力に前記データ並び替え手段の第mの出力ポートが接続され、出力が前記演算手段の第mの入力に接続されたデータ遅延手段と、
    前記データ並び替え手段の前記出力ポート数に対応した数の前記データ遅延手段を有することを特徴とする請求項1または請求項2に記載のストリームデータ処理装置。
  5. 前記データ並び替え手段は、N個の入力とM個の出力を備えたクロスバーであることを特徴とする請求項1または請求項2に記載のストリームデータ処理装置。
JP2007041223A 2007-02-21 2007-02-21 ストリームデータ処理装置 Pending JP2008204288A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007041223A JP2008204288A (ja) 2007-02-21 2007-02-21 ストリームデータ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007041223A JP2008204288A (ja) 2007-02-21 2007-02-21 ストリームデータ処理装置

Publications (1)

Publication Number Publication Date
JP2008204288A true JP2008204288A (ja) 2008-09-04

Family

ID=39781713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007041223A Pending JP2008204288A (ja) 2007-02-21 2007-02-21 ストリームデータ処理装置

Country Status (1)

Country Link
JP (1) JP2008204288A (ja)

Similar Documents

Publication Publication Date Title
US11816572B2 (en) Hardware accelerated machine learning
US7761694B2 (en) Execution unit for performing shuffle and other operations
JP2012137839A (ja) メモリ制御装置、及びメモリ制御方法
US8407456B2 (en) Method and instruction set including register shifts and rotates for data processing
US20220206796A1 (en) Multi-functional execution lane for image processor
US8862835B2 (en) Multi-port register file with an input pipelined architecture and asynchronous read data forwarding
US7441099B2 (en) Configurable SIMD processor instruction specifying index to LUT storing information for different operation and memory location for each processing unit
EP1193594A2 (en) Register renaming apparatus and processor
US20080229063A1 (en) Processor Array with Separate Serial Module
US20020138535A1 (en) SIMD sum of product arithmetic method and circuit, and semiconductor integrated circuit device equipped with the SIMD sum of product arithmetic circuit
JP2008204288A (ja) ストリームデータ処理装置
KR20080027175A (ko) 메모리 액세스 장치
JP2006350907A (ja) Simd型マイクロプロセッサ、データ転送装置、及びデータ変換装置
JP2018132901A (ja) 演算処理装置および演算処理装置の制御方法
JP5659772B2 (ja) 演算処理装置
JP5664198B2 (ja) 演算処理装置
US20100064115A1 (en) Vector processing unit
US7246218B2 (en) Systems for increasing register addressing space in instruction-width limited processors
JP2008071037A (ja) Simd型マイクロプロセッサ
US20050114626A1 (en) Very long instruction word architecture
JP2010204913A (ja) ベクトル処理装置
JP2011134042A (ja) Simd型マイクロプロセッサおよびsimd型マイクロプロセッサのデータ整列方法
JP2013161325A (ja) Simd型マイクロプロセッサ、プロセッサシステムおよびsimd型マイクロプロセッサのデータ処理方法
JP2003330914A (ja) ベクトル演算処理装置、ベクトル演算方法およびベクトル演算プログラム
JP2002108604A (ja) Simd型マイクロプロセッサにおけるテーブル変換