JP6179149B2 - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP6179149B2
JP6179149B2 JP2013056569A JP2013056569A JP6179149B2 JP 6179149 B2 JP6179149 B2 JP 6179149B2 JP 2013056569 A JP2013056569 A JP 2013056569A JP 2013056569 A JP2013056569 A JP 2013056569A JP 6179149 B2 JP6179149 B2 JP 6179149B2
Authority
JP
Japan
Prior art keywords
data
bit
valid
length
bit length
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
Application number
JP2013056569A
Other languages
English (en)
Other versions
JP2014182584A (ja
Inventor
一生 堀尾
一生 堀尾
博 畑農
博 畑農
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 JP2013056569A priority Critical patent/JP6179149B2/ja
Priority to US14/180,758 priority patent/US20140289491A1/en
Publication of JP2014182584A publication Critical patent/JP2014182584A/ja
Application granted granted Critical
Publication of JP6179149B2 publication Critical patent/JP6179149B2/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion

Description

本発明は、データ処理装置に関する。
第1バスと第2バスを含むコンピュータ・システム用のブリッジであって、第1バスと第2バスの間に配置されるブリッジが知られている(例えば、特許文献1参照)。シフタは、第1バスおよび第2バスのうちの一方からバイトを受け取るために接続された入力と、シフトされたバイトに受け取ったバイトに関して選択可能なシフトを行う出力とを有する。アキュムレータは、シフタの出力を受け取るために接続された入力を有し、シフトされたバイトの選択的な累積を行う。アキュムレータが第1バスおよび第2バスのうちの他方に渡される再アラインメントされたバイトを供給する出力を有する。
プロセッサ中で未アライメントデータを読み取る方法が知られている(例えば、特許文献2参照)。未アライメントデータは一つの記憶装置に保存され、記憶装置はワード境界により複数のmビットのワードに分割される。未アライメントデータはワード境界により、第1部分、第2部分及び第3部分に分割される。この方法は、開始キャプチャステップ、中継キャプチャステップ、第1移動ステップ、終了キャプチャステップ、第2移動ステップを具える。開始キャプチャステップでは第1命令を実行し、第1部分を具えた記憶装置の部分より、第1ワードをキャプチャする。中継キャプチャステップでは、第2命令を実行し、第2部分を具えた記憶装置の部分より、第2ワードをキャプチャする。第1移動ステップでは、第1ワードと第2ワードを直列に接続し、並びに第1位置に移動させる。終了キャプチャステップでは、第3命令を実行し、第3部分を具えた該記憶装置の部分より、第3ワードをキャプチャする。第2移動ステップでは、第2ワードと第3ワードを直列に接続し、並びに第1位置に移動させる。
特開2000−267989号公報 特開2005−267209号公報
メモリには、サイクル毎に一定ビット長のデータを読み出して出力するメモリがある。そのようなメモリは、有効データのみを切り出して出力することができず、有効データ及び/又は無効データを含む一定ビット長のデータを出力する。そのようなメモリの場合、演算部は、メモリから出力されたデータのうちの無効データを無視して有効データのみを用いて演算をする必要がある。無効データがある場合、演算部の演算に待ちが発生する課題が存在する。
本発明の目的は、データ内の無効データを削除して有効データのストリームを生成することができるデータ処理装置を提供することである。
データ処理装置は、サイクル毎に第1のビット長の第1のデータを入力し、前記第1のデータ内の先頭の無効データを削除するように前記第1のデータをシフトし、前記第1のビット長の2倍の第2のビット長の第2のデータを出力するシフト回路と、前記第2のデータの前半の前記第1のビット長のデータ又は前記第1のビット長の第3のデータを選択し、前記第1のビット長の第4のデータを出力する第1のセレクタと、前記第4のデータと前記第2のデータの後半の前記第1のビット長のデータを結合した第5のデータ内の有効データが前記第1のビット長以上である場合に、前記第5のデータの前半の前記第1のビット長のデータを切り出して出力するゲート回路と、前記第5のデータ内の有効データが前記第1のビット長未満である場合には、前記第5のデータの前半の前記第1のビット長のデータを選択し、前記第5のデータ内の有効データが前記第1のビット長以上である場合には、前記第5のデータの後半の前記第1のビット長のデータを選択し、前記第1のビット長の前記第3のデータを前記第1のセレクタに出力する第2のセレクタとを有し、前記第1のセレクタは、前記第3のデータ内の有効データの領域については前記第3のデータを選択し、前記第3のデータ内の無効データの領域については前記第2のデータの前半の前記第1のビット長のデータを選択し、前記シフト回路は、前記第1のデータ内の無効データ及び前記第3のデータ内の無効データを削除するように前記第1のデータをシフトし、前記第1のセレクタは、前記第3のデータ内の無効データと前記第1のデータ内の無効データを削除し、前記第3のデータ内の有効データと前記第1のデータ内の有効データを結合した前記第4のデータを出力する。
第1のデータ内の無効データを削除して有効データのストリームを生成することができる。これにより、データを用いた演算の待ち時間によるロスを解消することができる。
図1は、本実施形態によるデータ処理装置の構成例を示す図である。 図2は、図1の演算部の演算例を示す図である。 図3は、図1のメモリの構成例を示す図である。 図4は、図1のデータ処理回路が入力するデータの例を示す図である。 図5は、図1のデータ処理回路の他の処理例を示す図である。 図6は、無効データを削除した有効データのデータストリームを示す図である。 図7は、図1のデータ処理回路の構成例を示す図である。 図8は、図7のシフト選択回路の構成例を示す図である。 図9(A)及び(B)は、データの例を示す図である。 図10は、1サイクル目の図7のデータ処理回路の処理例を示す図である。 図11は、1サイクル目の図8のシフト選択回路の処理例を示す図である。 図12は、2サイクル目の図7のデータ処理回路の処理例を示す図である。 図13は、2サイクル目の図8のシフト選択回路の処理例を示す図である。 図14は、3サイクル目の図7のデータ処理回路の処理例を示す図である。 図15は、3サイクル目の図8のシフト選択回路の処理例を示す図である。 図16は、4サイクル目の図7のデータ処理回路の処理例を示す図である。 図17は、4サイクル目の図8のシフト選択回路の処理例を示す図である。 図18は、5サイクル目の図7のデータ処理回路の処理例を示す図である。 図19は、6サイクル目の図7のデータ処理回路の処理例を示す図である。
図1は、本実施形態によるデータ処理装置の構成例を示す図である。データ処理装置は、プロセッサ101、メモリ102、データ処理回路104、ファーストインファーストアウト(FIFO)回路105A〜105F及び演算部106を有する。メモリ102は、ダイレクトメモリアクセスコントローラ(DMAC)103A〜103Fを有する。プロセッサ101は、メモリ102、データ処理回路104及び演算部106を制御する。
ダイレクトメモリアクセスコントローラ103A〜103Dは、それぞれ、読み出し開始アドレス及び読み出しデータ長を含む読み出し命令をプロセッサ101から入力すると、その読み出し命令に対応するデータをメモリ102から読み出して、データDA1〜DD1をデータ処理回路104に出力する。データ処理回路104は、データDA1〜DD1を入力し、データDA1〜DD1内の無効データを削除し、有効データDA2〜DD2を出力する。ファーストインファーストアウト回路105A〜105Dは、それぞれ、有効データDA2〜DD2を先入れ先出しによりバッファリングし、データDA3〜DD3を出力する。演算部106は、データDA3〜DD3のすべて又は一部を用いて演算を行い、データDE1及び/又はDF1を出力する。ファーストインファーストアウト回路105E及び105Fは、それぞれ、データDE1及びF1を先入れ先出しによりバッファリングし、データDE2及びF2を出力する。ダイレクトメモリアクセスコントローラ103E及び103Fは、それぞれ、書き込み開始アドレス及び書き込みデータ長を含む書き込み命令をプロセッサ101から入力すると、その書き込み命令に対応するメモリ102のアドレスにデータDE2及びDF2を書き込む。
図2は、図1の演算部106の演算例を示す図である。演算部106は、データDA3及びDB3を入力し、例えば次式の演算を行い、データDF1を出力する。
A0×B0=F0
A1×B1=F1
A2×B2=F2
A3×B0=F3
A4×B1=F4
A5×B2=F5
A6×B0=F6
A7×B1=F7
A8×B2=F8
A9×B0=F9
A10×B1=F10
A11×B2=F11
データDA3は、データA0〜A11を有する。データDB3は、4組のデータB0〜B2を有する。データDF1は、データF0〜F11を有する。この場合、ダイレクトメモリアクセスコントローラ103Aは、データDA1として、12個のデータA0〜A11を1回読み出す。これに対し、ダイレクトメモリアクセスコントローラ103Bは、データDB1として、3個のデータB0〜B2を4回繰り返して読み出す。
図3は、図1のメモリ102の構成例を示す図である。メモリ102は、サイクル毎に一定ビット長(例えば512ビット)のメモリライン301単位でデータの読み出し及び書き込みを行う。メモリ102は、例えば、各アドレスに16ビットデータを記憶する。
データストリーム302Aは、例えば4本のメモリライン上に記憶されており、その先頭アドレス及び末尾アドレスはメモリラインの境界ではないアドレスに位置する。ダイレクトメモリアクセスコントローラ103Aは、読み出し開始アドレス及び読み出しデータ長を含む読み出し命令をプロセッサ101から入力すると、その読み出し命令に対応するデータストリーム302Aを含む4本のメモリライン(4×512ビット)のデータをメモリ102から読み出して、データDA1をデータ処理回路104に出力する。
データストリーム302Bは、例えば2本のメモリライン上に記憶されており、その先頭アドレス及び末尾アドレスはメモリラインの境界ではないアドレスに位置する。ダイレクトメモリアクセスコントローラ103Bは、読み出し開始アドレス及び読み出しデータ長を含む読み出し命令をプロセッサ101から入力すると、その読み出し命令に対応するデータストリーム302Bを含む2本のメモリライン(2×512ビット)のデータをメモリ102から読み出して、データDB1をデータ処理回路104に出力する。
図4は、図1のデータ処理回路104が入力するデータDA1及びDB1の例を示す図である。データDA1は、図3に示したようにデータストリーム302Aを含む4本のメモリラインのデータで構成され、データストリーム302Aは、図2に示したように12個のデータA0〜A11を有する。データDA1は、有効データであるデータストリーム302A及び無効データ401を有する。データ処理回路104は、無効データ401を削除して、有効データのデータストリーム302Aをファーストインファーストアウト回路105Aに出力する。
データDB1は、図2及び図3に示すように、データストリーム302Bを含む2本のメモリラインのデータが4回繰り返してメモリ102から読み出される。なお、図4では、4回目のデータストリーム302Bを省略している。各データストリーム302Bは、3個のデータB0〜B2で構成される。データDB1は、有効データであるデータストリーム302B及び無効データ401を有する。データ処理回路104は、無効データ401を削除して、有効データの3個のデータストリーム302Bを結合してファーストインファーストアウト回路105Bに出力する。
これにより、演算部106は、12個のデータA0〜A11と、12個のデータB0〜B2,B0〜B2,B0〜B2,B0〜B2とをそれぞれ対応付けて、図2に示した演算を行うことができる。
以上のように、メモリ102は、サイクル毎に一定ビット長のメモリライン301単位でデータを読み出して出力する。メモリ102は、有効データのみを切り出して出力することができず、有効データ及び無効データ401を含む一定ビット長のデータを出力する。無効データ401が存在すると、演算部106は、メモリ102から出力されたデータのうちの無効データ401を無視して有効データのみを用いて演算をする必要があり、演算部106の演算に待ちが発生する課題が存在する。
本実施形態では、データ処理回路104は、一定ビット長のデータ内の無効データ401を削除して、有効データのストリームを生成することができる。これにより、データを用いた演算の待ち時間によるロスを解消することができる。
図5は、図1のデータ処理回路104の他の処理例を示す図である。データDA1及びDB1の処理は、図4の処理と同じである。
データ処理回路104は、データDA1を入力し、無効データ401を削除して、図6に示すように、有効データのデータストリーム302Aで構成されるデータDA2をファーストインファーストアウト回路105Aに出力する。
また、データ処理回路104は、データDB1を入力し、無効データ401を削除して、図6に示すように、有効データの4個のデータストリーム302Bを結合したデータDB2をファーストインファーストアウト回路105Bに出力する。
データDC1は、データストリーム302Cを含む3本のメモリラインのデータが2回繰り返してメモリ102から読み出される。各データストリーム302Cは、6個のデータC0〜C5で構成される。データDC1は、有効データであるデータストリーム302C及び無効データ401を有する。データ処理回路104は、データDC1を入力し、無効データ401を削除して、図6に示すように、有効データの2個のデータストリーム302Cを結合したデータDC2をファーストインファーストアウト回路105Cに出力する。
データDD1は、データストリーム302Dを含む4本のメモリラインのデータが読み出される。データストリーム302Dは、12個のデータD0〜D11で構成される。データDD1は、有効データであるデータストリーム302D及び無効データ401を有する。データ処理回路104は、データDD1を入力し、無効データ401を削除して、図6に示すように、有効データのデータストリーム302Dで構成されるデータDD2をファーストインファーストアウト回路105Dに出力する。
この場合、図1の演算部106は、データDA3〜DD3を入力し、例えば次式の演算を行い、データDF1を出力する。
A0×B0+C0+D0=F0
A1×B1+C1+D1=F1
A2×B2+C2+D2=F2
A3×B0+C3+D3=F3
A4×B1+C4+D4=F4
A5×B2+C5+D5=F5
A6×B0+C0+D6=F6
A7×B1+C1+D7=F7
A8×B2+C2+D8=F8
A9×B0+C3+D9=F9
A10×B1+C4+D10=F10
A11×B2+C5+D11=F11
図7は、図1のデータ処理回路104の構成例を示す図である。データ処理回路104は、演算部701、セレクタ703、バッファ704、シフト選択回路705及びゲート回路707を有する。図7の回路は、4個のデータDA1〜DD1に対応して、4個の回路が設けられる。データ702は、例えばデータDA1であり、512ビットの一定ビット長のデータである。512ビットのデータ702は、サイクル毎にメモリ102から入力される。セレクタ703は、制御信号MFが「0」の場合には512ビットのデータ706Lを選択し、制御信号MFが「1」の場合には512ビットのデータ706Rを選択する。バッファ704は、セレクタ703が選択した512ビットのデータをバッファリングし、512ビットのデータ708を出力する。シフト選択回路705は、512ビットデータ702及び708を入力し、シフト及び選択処理した2×512ビットデータ706を出力する。データ706は、前半の512ビットデータ706L及び後半の512ビットデータ706Rを有する。ゲート回路707は、制御信号MFが「1」になると、512ビットデータ706L及び書き込み要求信号PDを、それに対応するファーストインファーストアウト回路105A〜105Dに出力する。すると、それに対応するファーストインファーストアウト回路105A〜105Dには、512ビットデータ706Lが書き込まれる。
図8は、図7のシフト選択回路705の構成例を示す図である。シフト選択回路705は、シフト回路801及び32個のセレクタSEL1〜SEL32を有する。シフト回路801は、サイクル毎に一定ビット長のデータ702を入力し、データ702内の先頭の無効データ401を削除するようにデータ702を左シフトし、2×512ビットデータ802を出力する。32個のセレクタSEL1〜SEL32は、データ802内の前半の512ビットデータ又は512ビットデータ708を、16ビット単位で選択し、512ビットデータ706Lを出力する。メモリ102の各アドレスは、16ビットデータを記憶するので、各セレクタSEL1〜SEL32は、16ビットデータを選択して出力する。具体的には、セレクタSEL1〜SEL32は、データ708内の有効データの領域のビットについてはデータ708を選択し、データ708内の無効データの領域のビットについてはデータ802を選択する。データ802内の後半の512ビットのデータは、512ビットデータ706Rとして出力される。
図9(A)は、図7の512ビットデータ702の例を示す図である。512ビットデータ702は、最下位ビットLSB及び最上位ビットMSB、並びに有効データ901及び無効データ401を有する。有効データ長SZは、有効データ901のビット長である。有効データオフセットFSは、最下位ビットLSBから有効データ901の先頭アドレスまでのビット長である。
図9(B)は、データDA1の例を示す図である。データDA1は、有効データストリーム302A及び無効データ401を含む3本のメモリラインのデータである。有効データストリーム302Aは、48ビット有効データd1、512ビット有効データd2及び112ビット有効データd3を有する。1本目のメモリラインは、無効データ401及び48ビット有効データd1を記憶している。2本目のメモリラインは、512ビット有効データd2を記憶している。3本目のメモリラインは、112ビット有効データd3及び無効データ401を記憶している。以下、図9(B)のデータDA1がメモリ102から連続して2回読み出される場合の処理例を説明する。
図10は、1サイクル目の図7のデータ処理回路104の処理例を示す図である。1〜3サイクル目では、1回目の図9(B)のデータDA1を処理する。1サイクル目では、512ビットデータ702として、図9(B)の1本目のメモリラインのデータを入力する。512ビットデータ702は、有効データd1を有し、有効データオフセットFSが464(=512−48)ビットであり、有効データ長SZが48ビットである。演算部701は、図1のプロセッサ101又はダイレクトメモリアクセスコントローラ103A〜103Dからの情報を基に、有効データオフセットFS及び有効データ長SZを演算する。
また、演算部701は、次式により、シフト量SHを演算する。ここで、初期時、次サイクルのバッファ704の有効データ長BSは0ビットである。
SH=FS−BS+512
=464−0+512
=976ビット
また、演算部701は、次式により、次サイクルの有効データ長BStを演算する。
BSt=SZ+BS
=48+0
=48ビット
演算部701は、次サイクルの有効データ長BStが512ビット未満であるので、次式により、次サイクルのバッファ704の有効データ長BS(図12)を設定する。
BS=BSt
=48ビット
また、演算部701は、次サイクルの有効データ長BStが512ビット未満であるので、制御信号MFを「0」にする。
次に、シフト選択回路705の動作を、図11を参照しながら、説明する。図11は、1サイクル目の図8のシフト選択回路705の処理例を示す図である。1サイクル目では、シフト回路801は、512ビットデータ702をシフト量SH(=976ビット)左シフトし、2×512ビットデータ802を出力する。データ802の先頭には、48ビット有効データd1が位置する。
図8において、n番目のセレクタSELnは、次式を満たす場合にはデータ802を選択し、次式を満たさない場合にはデータ708を選択し、出力する。ここで、BSは、図10の現在のバッファ704の有効データ長であり、有効データ長BSは0ビットである。
n>BS/16
n>0/16
n>0
図11では、すべてのセレクタSEL1〜SEL32がデータ802を選択し、512ビットデータ706Lを出力する。その結果、前半512ビットデータ706Lは、2×512ビットデータ802の前半の512ビットデータと同じになる。後半512ビットデータ706Rは、2×512ビットデータ802の後半の512ビットデータと同じになる。すなわち、2×512ビットデータ706は、2×512ビットデータ802と同じになる。
次に、図10において、ゲート回路707は、制御信号MFが「0」であるので、512ビットデータ706L及び書き込み要求信号PDを出力しない。また、セレクタ703は、制御信号MFが「0」であるので、データ706Lを選択し、図12に示すように、バッファ704には図10の512ビットデータ706Lが書き込まれる。
図12は、2サイクル目の図7のデータ処理回路104の処理例を示す図である。2サイクル目では、512ビットデータ702として、図9(B)の2本目のメモリラインのデータを入力する。512ビットデータ702は、有効データd2を有し、有効データオフセットFSが0ビットであり、有効データ長SZが512ビットである。
また、演算部701は、次式により、シフト量SHを演算する。
SH=FS−BS+512
=0−48+512
=464ビット
また、演算部701は、次式により、次サイクルの有効データ長BStを演算する。
BSt=SZ+BS
=512+48
=560ビット
演算部701は、次サイクルの有効データ長BStが512ビット以上であるので、次式により、次サイクルのバッファ704の有効データ長BS(図14)を設定する。
BS=BSt−512
=560−512
=48ビット
また、演算部701は、次サイクルの有効データ長BStが512ビット以上であるので、制御信号MFを「1」にする。
次に、シフト選択回路705の動作を、図13を参照しながら、説明する。図13は、2サイクル目の図8のシフト選択回路705の処理例を示す図である。2サイクル目では、シフト回路801は、512ビットデータ702をシフト量SH(=464ビット)左シフトし、2×512ビットデータ802を出力する。
図8において、n番目のセレクタSELnは、次式を満たす場合にはデータ802を選択し、次式を満たさない場合にはデータ708を選択し、出力する。ここで、BSは、図12の現在のバッファ704の有効データ長であり、有効データ長BSは48ビットである。
n>BS/16
n>48/16
n>3
図13では、セレクタSEL1〜SEL3がデータ708を選択し、セレクタSEL4〜SEL32がデータ802を選択し、512ビットデータ706Lを出力する。その結果、前半512ビットデータ706Lは、48ビット有効データd1及び先頭の512−48ビットの有効データd2を有する。また、後半512ビットデータ706Rは、2×512ビットデータ802の後半512ビットデータと同じになり、最終部の48ビットの有効データd2を有する。
次に、図12において、ゲート回路707は、制御信号MFが「1」であるので、512ビットデータ706L及び書き込み要求信号PDを、それに対応する図1のファーストインファーストアウト回路105A〜105Dに出力する。また、セレクタ703は、制御信号MFが「1」であるので、データ706Rを選択し、図14に示すように、バッファ704には図12の512ビットデータ706Rが書き込まれる。
図14は、3サイクル目の図7のデータ処理回路104の処理例を示す図である。3サイクル目では、512ビットデータ702として、図9(B)の3本目のメモリラインのデータを入力する。512ビットデータ702は、有効データd3を有し、有効データオフセットFSが0ビットであり、有効データ長SZが112ビットである。
また、演算部701は、次式により、シフト量SHを演算する。
SH=FS−BS+512
=0−48+512
=464ビット
また、演算部701は、次式により、次サイクルの有効データ長BStを演算する。
BSt=SZ+BS
=112+48
=160ビット
演算部701は、次サイクルの有効データ長BStが512ビット未満であるので、次式により、次サイクルのバッファ704の有効データ長BS(図16)を設定する。
BS=BSt
=160ビット
また、演算部701は、次サイクルの有効データ長BStが512ビット未満であるので、制御信号MFを「0」にする。
次に、シフト選択回路705の動作を、図15を参照しながら、説明する。図15は、3サイクル目の図8のシフト選択回路705の処理例を示す図である。3サイクル目では、シフト回路801は、512ビットデータ702をシフト量SH(=464ビット)左シフトし、2×512ビットデータ802を出力する。
図8において、n番目のセレクタSELnは、次式を満たす場合にはデータ802を選択し、次式を満たさない場合にはデータ708を選択し、出力する。ここで、BSは、図14の現在のバッファ704の有効データ長であり、有効データ長BSは48ビットである。
n>BS/16
n>48/16
n>3
図15では、セレクタSEL1〜SEL3がデータ708を選択し、セレクタSEL4〜SEL32がデータ802を選択し、512ビットデータ706Lを出力する。その結果、前半512ビットデータ706Lは、48ビット有効データd2及び112ビット有効データd3を有する。また、後半512ビットデータ706Rは、2×512ビットデータ802の後半512ビットデータと同じである。
次に、図14において、ゲート回路707は、制御信号MFが「0」であるので、512ビットデータ706L及び書き込み要求信号PDを出力しない。また、セレクタ703は、制御信号MFが「0」であるので、データ706Lを選択し、図16に示すように、バッファ704には図14の512ビットデータ706Lが書き込まれる。
図16は、4サイクル目の図7のデータ処理回路104の処理例を示す図である。4〜6サイクル目では、2回目の図9(B)のデータDA1を処理する。4サイクル目では、512ビットデータ702として、図9(B)の1本目のメモリラインのデータを入力する。512ビットデータ702は、有効データd4を有し、有効データオフセットFSが464ビットであり、有効データ長SZが48ビットである。48ビット有効データd4は、図9(B)の48ビット有効データd1に対応する。
また、演算部701は、次式により、シフト量SHを演算する。
SH=FS−BS+512
=464−160+512
=816ビット
また、演算部701は、次式により、次サイクルの有効データ長BStを演算する。
BSt=SZ+BS
=48+160
=208ビット
演算部701は、次サイクルの有効データ長BStが512ビット未満であるので、次式により、次サイクルのバッファ704の有効データ長BS(図18)を設定する。
BS=BSt
=208ビット
また、演算部701は、次サイクルの有効データ長BStが512ビット未満であるので、制御信号MFを「0」にする。
次に、シフト選択回路705の動作を、図17を参照しながら、説明する。図17は、4サイクル目の図8のシフト選択回路705の処理例を示す図である。4サイクル目では、シフト回路801は、512ビットデータ702をシフト量SH(=816ビット)左シフトし、2×512ビットデータ802を出力する。
図8において、n番目のセレクタSELnは、次式を満たす場合にはデータ802を選択し、次式を満たさない場合にはデータ708を選択し、出力する。ここで、BSは、図16の現在のバッファ704の有効データ長であり、有効データ長BSは160ビットである。
n>BS/16
n>160/16
n>10
図17では、セレクタSEL1〜SEL10がデータ708を選択し、セレクタSEL11〜SEL32がデータ802を選択し、512ビットデータ706Lを出力する。その結果、前半512ビットデータ706Lは、48ビット有効データd2、112ビット有効データd3及び48ビット有効データd4を有する。また、後半512ビットデータ706Rは、2×512ビットデータ802の後半512ビットデータと同じである。
次に、図16において、ゲート回路707は、制御信号MFが「0」であるので、512ビットデータ706L及び書き込み要求信号PDを出力しない。また、セレクタ703は、制御信号MFが「0」であるので、データ706Lを選択し、図18に示すように、バッファ704には図16の512ビットデータ706Lが書き込まれる。
図18は、5サイクル目の図7のデータ処理回路104の処理例を示す図である。5サイクル目では、512ビットデータ702として、図9(B)の2本目のメモリラインのデータを入力する。512ビットデータ702は、有効データd5を有し、有効データオフセットFSが0ビットであり、有効データ長SZが512ビットである。512ビット有効データd5は、図9(B)の512ビット有効データd2に対応する。
また、演算部701は、次式により、シフト量SHを演算する。
SH=FS−BS+512
=0−208+512
=304ビット
また、演算部701は、次式により、次サイクルの有効データ長BStを演算する。
BSt=SZ+BS
=512+208
=720ビット
演算部701は、次サイクルの有効データ長BStが512ビット以上であるので、次式により、次サイクルのバッファ704の有効データ長BS(図19)を設定する。
BS=BSt−512
=720−512
=208ビット
また、演算部701は、次サイクルの有効データ長BStが512ビット以上であるので、制御信号MFを「1」にする。
次に、5サイクル目の図8のシフト選択回路705の処理例を説明する。5サイクル目では、シフト回路801は、512ビットデータ702をシフト量SH(=304ビット)左シフトし、2×512ビットデータ802を出力する。
n番目のセレクタSELnは、次式を満たす場合にはデータ802を選択し、次式を満たさない場合にはデータ708を選択し、出力する。ここで、BSは、図18の現在のバッファ704の有効データ長であり、有効データ長BSは208ビットである。
n>BS/16
n>208/16
n>13
セレクタSEL1〜SEL13はデータ708を選択し、セレクタSEL14〜SEL32はデータ802を選択し、512ビットデータ706Lを出力する。その結果、前半512ビットデータ706Lは、48ビット有効データd2、112ビット有効データd3、48ビット有効データd4及び304ビット有効データd5を有する。また、後半512ビットデータ706Rは、最終部の208ビット有効データd5を有する。
次に、ゲート回路707は、制御信号MFが「1」であるので、512ビットデータ706L及び書き込み要求信号PDを、それに対応する図1のファーストインファーストアウト回路105A〜105Dに出力する。また、セレクタ703は、制御信号MFが「1」であるので、データ706Rを選択し、図19に示すように、バッファ704には図18の512ビットデータ706Rが書き込まれる。
図19は、6サイクル目の図7のデータ処理回路104の処理例を示す図である。6サイクル目では、512ビットデータ702として、図9(B)の3本目のメモリラインのデータを入力する。512ビットデータ702は、有効データd6を有し、有効データオフセットFSが0ビットであり、有効データ長SZが112ビットである。112ビット有効データd6は、図9(B)の112ビット有効データd3に対応する。
また、演算部701は、次式により、シフト量SHを演算する。
SH=FS−BS+512
=0−208+512
=304ビット
また、演算部701は、次式により、次サイクルの有効データ長BStを演算する。
BSt=SZ+BS
=112+208
=320ビット
演算部701は、次サイクルの有効データ長BStが512ビット未満であるので、次式により、次サイクルのバッファ704の有効データ長BSを設定する。
BS=BSt
=320ビット
また、最終サイクル時、演算部701は、制御信号MFを「1」にする。
次に、6サイクル目の図8のシフト選択回路705の処理例を説明する。6サイクル目では、シフト回路801は、512ビットデータ702をシフト量SH(=304ビット)左シフトし、2×512ビットデータ802を出力する。
n番目のセレクタSELnは、次式を満たす場合にはデータ802を選択し、次式を満たさない場合にはデータ708を選択し、出力する。ここで、BSは、図19の現在のバッファ704の有効データ長であり、有効データ長BSは208ビットである。
n>BS/16
n>208/16
n>13
セレクタSEL1〜SEL13はデータ708を選択し、セレクタSEL14〜SEL32はデータ802を選択し、512ビットデータ706Lを出力する。その結果、前半512ビットデータ706Lは、208ビット有効データd5及び112ビット有効データd6を有する。また、後半512ビットデータ706Rは、2×512ビットデータ802の後半512ビットデータと同じである。
次に、ゲート回路707は、制御信号MFが「1」であるので、512ビットデータ706L及び書き込み要求信号PDを、それに対応する図1のファーストインファーストアウト回路105A〜105Dに出力する。
以上のように、図9(B)のデータDA1がメモリ102から連続して2回読み出される場合、データ処理回路104は、無効データ401を削除し、有効データd1〜d6を結合したデータを出力することができる。
具体的には、シフト回路801は、サイクル毎に一定ビット長のデータ702を入力し、データ702内の先頭の無効データ401を削除するようにデータ702をシフトし、データ802を出力する。ゲート回路707は、シフトされたサイクル毎のデータを結合したデータ706が一定ビット長以上になると、先頭の一定ビット長のデータ706Lを切り出して外部に出力する。演算部106は、ゲート回路707により出力されたデータ706Lを用いて演算を行う。
バッファ704は、シフト回路801によりシフトされた連続する複数サイクルのデータを結合したデータ706が一定ビット長未満である場合には、先頭の一定ビット長のデータ706Lをバッファリングする。また、バッファ704は、シフト回路801によりシフトされた連続する複数サイクルのデータを結合したデータ706が一定ビット長以上である場合には、先頭の一定ビット長のデータ706Lを除いた残りのデータ706Rをバッファリングする。
セレクタSEL1〜SEL32は、バッファ704のデータ708内の有効データを選択する。ゲート回路707は、セレクタSEL1〜SEL32により選択された前回のサイクルの有効データとシフト回路801によりシフトされた現在のサイクルの有効データとを結合したデータ706が一定ビット長以上になると、先頭の一定ビット長のデータ706Lを切り出して外部に出力する。
メモリ102は、サイクル毎に一定ビット長のデータ702を読み出してシフト回路801に出力する。ファーストインファーストアウト回路105A〜105Dは、ゲート回路707及び演算部106間に設けられる。
上記のように、データ処理装置は、一定ビット長のデータ702内の無効データを削除して有効データのストリームを生成することができる。これにより、データを用いた演算の待ち時間によるロスを解消することができる。また、シフト回路801及びバッファ704を用いることにより、回路規模を小さくすることができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
101 プロセッサ
102 メモリ
103A〜103F ダイレクトメモリアクセスコントローラ
104 データ処理回路
105A〜105F ファーストインファーストアウト回路
106 演算部
701 演算部
703 セレクタ
704 バッファ
705 シフト選択回路
707 ゲート回路
801 シフト回路

Claims (4)

  1. サイクル毎に第1のビット長の第1のデータを入力し、前記第1のデータ内の先頭の無効データを削除するように前記第1のデータをシフトし、前記第1のビット長の2倍の第2のビット長の第2のデータを出力するシフト回路と、
    前記第2のデータの前半の前記第1のビット長のデータ又は前記第1のビット長の第3のデータを選択し、前記第1のビット長の第4のデータを出力する第1のセレクタと、
    前記第4のデータと前記第2のデータの後半の前記第1のビット長のデータを結合した第5のデータ内の有効データが前記第1のビット長以上である場合に、前記第5のデータの前半の前記第1のビット長のデータを切り出して出力するゲート回路と、
    前記第5のデータ内の有効データが前記第1のビット長未満である場合には、前記第5のデータの前半の前記第1のビット長のデータを選択し、前記第5のデータ内の有効データが前記第1のビット長以上である場合には、前記第5のデータの後半の前記第1のビット長のデータを選択し、前記第1のビット長の前記第3のデータを前記第1のセレクタに出力する第2のセレクタとを有し、
    前記第1のセレクタは、前記第3のデータ内の有効データの領域については前記第3のデータを選択し、前記第3のデータ内の無効データの領域については前記第2のデータの前半の前記第1のビット長のデータを選択し、
    前記シフト回路は、前記第1のデータ内の無効データ及び前記第3のデータ内の無効データを削除するように前記第1のデータをシフトし、
    前記第1のセレクタは、前記第3のデータ内の無効データと前記第1のデータ内の無効データを削除し、前記第3のデータ内の有効データと前記第1のデータ内の有効データを結合した前記第4のデータを出力することを特徴とするデータ処理装置。
  2. さらに、前記ゲート回路により出力されたデータを用いて演算を行う演算部を有することを特徴とする請求項1記載のデータ処理装置。
  3. さらに、サイクル毎に前記第1のビット長の前記第1のデータを読み出して前記シフト回路に出力するメモリを有することを特徴とする請求項1又は2記載のデータ処理装置。
  4. さらに、前記ゲート回路及び前記演算部間に設けられるファーストインファーストアウト回路を有することを特徴とする請求項2記載のデータ処理装置。
JP2013056569A 2013-03-19 2013-03-19 データ処理装置 Expired - Fee Related JP6179149B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013056569A JP6179149B2 (ja) 2013-03-19 2013-03-19 データ処理装置
US14/180,758 US20140289491A1 (en) 2013-03-19 2014-02-14 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013056569A JP6179149B2 (ja) 2013-03-19 2013-03-19 データ処理装置

Publications (2)

Publication Number Publication Date
JP2014182584A JP2014182584A (ja) 2014-09-29
JP6179149B2 true JP6179149B2 (ja) 2017-08-16

Family

ID=51570024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013056569A Expired - Fee Related JP6179149B2 (ja) 2013-03-19 2013-03-19 データ処理装置

Country Status (2)

Country Link
US (1) US20140289491A1 (ja)
JP (1) JP6179149B2 (ja)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237701A (en) * 1989-03-31 1993-08-17 Ampex Systems Corporation Data unpacker using a pack ratio control signal for unpacked parallel fixed m-bit width into parallel variable n-bit width word
JPH06332793A (ja) * 1993-05-20 1994-12-02 Nec Eng Ltd データアライメント回路
US6108722A (en) * 1996-09-13 2000-08-22 Silicon Grpahics, Inc. Direct memory access apparatus for transferring a block of data having discontinous addresses using an address calculating circuit
JP2002358288A (ja) * 2001-05-31 2002-12-13 Hitachi Ltd 半導体集積回路及びコンピュータ読取り可能な記録媒体
JP2003084751A (ja) * 2001-07-02 2003-03-19 Hitachi Ltd 表示制御装置およびマイクロコンピュータならびにグラフィックシステム
JP2003067321A (ja) * 2001-08-28 2003-03-07 Hitachi Ltd データ転送装置及び該データ転送装置内に具備されるアライナ
EP1369878A1 (en) * 2002-06-04 2003-12-10 Infineon Technologies AG System for testing a group of functionally independent memories and for replacing failing memory words
US7275147B2 (en) * 2003-03-31 2007-09-25 Hitachi, Ltd. Method and apparatus for data alignment and parsing in SIMD computer architecture
TWI244033B (en) * 2003-11-26 2005-11-21 Sunplus Technology Co Ltd Processor capable of cross-boundary alignment of a plurality of register data and method of the same
US7334116B2 (en) * 2004-10-06 2008-02-19 Sony Computer Entertainment Inc. Bit manipulation on data in a bitstream that is stored in a memory having an address boundary length
US7461214B2 (en) * 2005-11-15 2008-12-02 Agere Systems Inc. Method and system for accessing a single port memory
EP1826937A1 (en) * 2006-02-27 2007-08-29 STMicroelectronics S.r.l. Transmitter and receiver with efficient memory management in rate matching processes
US7834658B1 (en) * 2006-04-18 2010-11-16 Xilinx, Inc. Interface generation for coupling to a high-bandwidth interface
US8036484B2 (en) * 2007-10-16 2011-10-11 Broadcom Corporation In-place averaging of packed pixel data
US20140019650A1 (en) * 2012-07-10 2014-01-16 Zhi Bin Li Multi-Write Bit-Fill FIFO

Also Published As

Publication number Publication date
JP2014182584A (ja) 2014-09-29
US20140289491A1 (en) 2014-09-25

Similar Documents

Publication Publication Date Title
CN102004711B (zh) 一种基于fpga的单中断实时数据传输方法
JP2010027032A (ja) Fifo装置及びfifoバッファへのデータ格納方法
US9973205B1 (en) Decompression using cascaded history windows
JP6449702B2 (ja) 半導体装置
WO2016070668A1 (zh) 一种实现数据格式转换的方法、装置及计算机存储介质
JP4747077B2 (ja) 演算回路
JPWO2011036918A1 (ja) データ並べ替え回路、可変遅延回路、高速フーリエ変換回路、およびデータ並べ替え方法
JP6179149B2 (ja) データ処理装置
CN111279617A (zh) 数据解压缩的装置与方法
JP2012098893A (ja) 圧縮命令処理装置及び圧縮命令生成装置
TWI492237B (zh) Read request processing device
JPWO2011004532A1 (ja) パイプライン回路、半導体装置およびパイプライン制御方法
US10853123B2 (en) Memory module
JPS6211736B2 (ja)
JP2011065415A (ja) 非同期バス・インタフェース回路
JP2021061501A5 (ja)
JP5218015B2 (ja) データ伸長装置
EP3030963B1 (en) Flexible configuration hardware streaming unit
US20080028192A1 (en) Data processing apparatus, and data processing method
US20210250043A1 (en) Decode device
TWI396975B (zh) 可調適緩衝裝置及其方法
JP2010086321A (ja) メモリ制御システム
JP3136573B2 (ja) 可変長符号の復号装置及び処理装置
JP6823259B2 (ja) バス制御回路、情報処理装置及びバス制御回路の制御方法
JP2011248586A (ja) データ入出力装置、データ記憶方法及びプログラム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20150612

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160920

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20161117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20161117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170523

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170703

R150 Certificate of patent or registration of utility model

Ref document number: 6179149

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees