JP2011034190A - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP2011034190A JP2011034190A JP2009177759A JP2009177759A JP2011034190A JP 2011034190 A JP2011034190 A JP 2011034190A JP 2009177759 A JP2009177759 A JP 2009177759A JP 2009177759 A JP2009177759 A JP 2009177759A JP 2011034190 A JP2011034190 A JP 2011034190A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- packet
- data
- processing module
- modules
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1423—Reconfiguring to eliminate the error by reconfiguration of paths
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
【課題】複数の処理モジュールを並列に動作させることが可能なデータ処理装置を提供すること。
【解決手段】複数の処理モジュール(21−a,21−b,22−a,22−b,23−a,23−b)のそれぞれに処理フローに対応する処理プロセスが割り当てられ、複数の処理モジュールの中の少なくとも2つの処理モジュールが同じ処理プロセスを実行可能である。ネットワーク15は、処理モジュールからパケットを受けると、パケットに付加された処理プロセス番号に応じて当該処理プロセスを実行可能な処理モジュールの中から処理モジュールを選択してパケットを出力する調停回路16を含む。したがって、自律的に各処理モジュール間をパケットが移動するようになり、複数の処理モジュールを並列に動作させることが可能となる。
【選択図】図3
【解決手段】複数の処理モジュール(21−a,21−b,22−a,22−b,23−a,23−b)のそれぞれに処理フローに対応する処理プロセスが割り当てられ、複数の処理モジュールの中の少なくとも2つの処理モジュールが同じ処理プロセスを実行可能である。ネットワーク15は、処理モジュールからパケットを受けると、パケットに付加された処理プロセス番号に応じて当該処理プロセスを実行可能な処理モジュールの中から処理モジュールを選択してパケットを出力する調停回路16を含む。したがって、自律的に各処理モジュール間をパケットが移動するようになり、複数の処理モジュールを並列に動作させることが可能となる。
【選択図】図3
Description
本発明は、複数のハードウェア処理モジュールを用いて処理を行なう技術に関し、特に、複数のハードウェア処理モジュールを並列に動作させて処理を行なうデータ処理装置に関する。
近年、無線通信機器、コンピュータなどのデータ処理装置の高機能化、多機能化が進んでいる。特に、通信、画像処理、画像認識などの分野においては、装置にメディア処理エンジンが搭載され、様々なメディア処理が実現されていることが多い。このような、半導体で実現されるメディア処理エンジンに対して様々な要求がなされてきている。
たとえば、リアルタイムで膨大なメディアデータを処理可能なメディア処理エンジンに対する要求が高まっている。このような要求は、単体のCPU(Central Processing Unit)、DSP(Digital Signal Processor)などによる処理だけでは実現不可能となってきている。
また、モバイル環境での利用のためのバッテリ駆動に対する要求や、発熱対策のための低消費電力化に対する要求も高まってきている。
また、半導体プロセスの進展に伴い、SoC(System on a Chip)の開発費が高騰しており、開発する半導体チップの種類を削減し、1つの半導体チップで複数のアプリケーションに対応させたいといった要求も高まっている。また、顧客の商品への要求事項の変化が激しいため、商品(最終製品)の開発サイクルを短くする必要がある。そのため、半導体チップにおいても製品化までの期間の短縮が求められている。
また、通信、特に放送機器や携帯電話機を含む無線通信の分野、圧縮/伸張が必要な画像処理などの分野においては、世界中で様々な規格が制定されており、その規格も次世代に向けて絶え間なく更新され続けている。これらの規格に対応可能なマルチモード処理エンジンを実現するために、その半導体チップには高プログラマビリティ、高スケーラビリティが求められている。
さらには、プログラマビリティを有する半導体チップにおいては、ソフトウェアの開発が重要となる。そのソフトウェア開発においても、高性能、高品質、短納期化が求められており、それらを実現するためにソフトウェアの開発容易性に対する要求も高まってきている。
これらに関連する技術として、下記の特許文献1〜4に開示された発明がある。
特許文献1は、並列演算処理装置の各演算ユニットで実施できる処理は決まっており、スケジューリングによっては待ちが発生するという課題を解決することを目的とする。並列演算処理装置は、外部入力手段と、ストリーム入出力手段と、外部出力手段と、バス網と、専用処理回路と、複数の演算ユニットと、第1〜第3のクロックを選択するセレクタと、外部入力処理、外部出力処理、外部入力処理および外部出力処理以外の処理を適応的に複数の演算ユニットに割り当てる制御手段とを備える。
特許文献1は、並列演算処理装置の各演算ユニットで実施できる処理は決まっており、スケジューリングによっては待ちが発生するという課題を解決することを目的とする。並列演算処理装置は、外部入力手段と、ストリーム入出力手段と、外部出力手段と、バス網と、専用処理回路と、複数の演算ユニットと、第1〜第3のクロックを選択するセレクタと、外部入力処理、外部出力処理、外部入力処理および外部出力処理以外の処理を適応的に複数の演算ユニットに割り当てる制御手段とを備える。
特許文献2は、コストアップをともなう受信バッファ等の増加を行うことなくシステム全体のパフォーマンスを向上させることができる画像処理装置および画像処理方法を提供することを目的とする。画像処理情報が記載されたヘッダーを画像データに付加したデータパケットを用いて、画像処理LSIが、入力したデータパケットを処理できる場合は画像データの画像処理を行った後、画像処理が終了したことを示す処理終了情報をヘッダーに記載する。また、処理できない場合は処理終了情報を記載せずに出力することにより、画像処理LSIが画像データを処理できない状態においても、次の画像処理LSIに対してデータパケットを転送し処理させることができ、画像処理LSIやバス等のリソースを効率的に利用することができる。
特許文献3は、MPEG−4・AVCの符号化/復号処理のような、大量のデータ処理量が要求される画像処理に対して、高性能で、高効率な画像処理が行える信号処理装置およびそれを用いた電子機器を提供することを目的とする。信号処理装置は、命令並列プロセッサ、第1データ並列プロセッサ、第2データ並列プロセッサ、および、専用ハードウェアである動き検出ユニットとデブロックフィルタ処理ユニットと可変長符号化/復号処理ユニットとを備える。この構成により、処理量の多い画像圧縮伸張アルゴリズムの信号処理において、ソフトウェアとハードウェアで負荷が分散され高い処理能力と柔軟性を実現した信号処理装置、及びそれを用いた電子機器を提供できる。
特許文献4は、回路規模の増大を抑制しつつ、複数のタスクを同時に並行して実行できるマルチタスクプロセッサを提供することを目的とする。このマルチタスクプロセッサは、プログラムを格納する命令メモリと、命令メモリに格納されたプログラムに記述された命令を読み出してデコードし、タスクとして実行する2つの命令処理部と、複数のタスクの優先度にもとづいて2つの命令処理部のためにタスクを選択し、選択されたタスクを2つの命令処理部に割り当てるスケジューラとを備える。
従来、通信、画像処理、画像認識などの分野においては、高性能化、低消費電力化を実現するために、専用ハードウェア処理エンジンが採用されている。しかしながら、専用ハードウェアでは低開発費、短納期化を実現することができない。また、専用ハードウェアでは処理内容が固定されてしまうため、高プログラマビリティ、高スケーラビリティを満たすことができない。
高プログラマビリティ、高スケーラビリティを実現するために、CPU、DSP、FPGA(Field Programmable Gate Array)などの汎用のプログラマブルデバイスで、通信処理、画像処理、画像認識処理などを実現する提案がいくつかなされている。しかしながら、汎用のプログラマブルデバイスを用いて専用ハードウェア処理エンジンと同じ性能を実現しようとした場合、チップ面積が非常に大きくなるとともに、消費電力も膨大なものとなり、現時点ではモバイル環境における使用が不可能である。
また、今後、半導体プロセスの開発が進み、集積度がさらに向上すればチップ面積のデメリットはなくなるが、低消費電力化の可能性は低く、むしろ電力密度が高くなって発熱に関する問題がさらに顕在化することが予想される。
本発明は、上記問題点を解決するためになされたものであり、その目的は、複数の処理モジュールを並列に動作させることが可能なデータ処理装置を提供することである。
本発明の一実施例によれば、複数の処理モジュールがバス等のネットワークによって接続されたデータ処理装置が提供される。複数の処理モジュールのそれぞれに処理フローに対応する処理プロセスが割り当てられ、複数の処理モジュールの中の少なくとも2つの処理モジュールが同じ処理プロセスを実行可能である。ネットワークは、処理モジュールからパケットを受けると、パケットに付加された処理プロセス番号に応じて当該処理プロセスを実行可能な処理モジュールの中から処理モジュールを選択してパケットを出力する調停回路を含む。
この実施例によれば、調停回路が、パケットに付加された処理プロセス番号に応じて当該処理プロセスを実行可能な処理モジュールの中から処理モジュールを選択してパケットを出力するので、自律的に各処理モジュール間をパケットが移動するようになり、複数の処理モジュールを並列に動作させることが可能となる。
上述の問題を解決するために、高性能、低消費電力の特徴を有するハードウェア処理モジュールと、高プログラマビリティ、高スケーラビリティの特徴を有するCPUとの組み合わせによってデータ処理装置を実現する提案がなされている。
図1は、ハードウェア処理モジュールとCPUとを組合わせたデータ処理装置における問題点を説明するための図である。図1においては、CPUがプログラムを実行しているときに、ハードウェア処理モジュール(以下、単に処理モジュールとも呼ぶ。)1〜3がシリアルに呼び出され、処理モジュール1〜3による処理がシリアルに実行される。すなわち、処理モジュール1による処理が終了した後に、処理モジュール2の処理が開始される。そして、処理モジュール2による処理が終了した後に、処理モジュール3の処理が開始される。
このように、CPUがプログラムを実行しているときに処理モジュールをシリアルに呼び出す方式においては、同一時間に処理を実行できる処理モジュールは1つである。そのため、処理性能が低下する。
図2は、処理モジュール1〜3に対してパイプラインで並列に処理を実行させた場合を示す図である。処理モジュール1〜3が並列に処理を実行するため、図1に示す各処理モジュールがシリアルに処理を実行する場合と比較して、処理性能が向上する。
(第1の実施の形態)
図3は、本発明の第1の実施の形態におけるデータ処理装置の概略構成を示すブロック図である。このデータ処理装置1は、データ入力部11と、コントローラ(CPU)12と、メモリ13と、データ出力部14と、処理モジュール1(21−a,21−b)と、処理モジュール2(22−a,22−b)と、処理モジュール3(23−a,23−b)とを含み、これらがネットワーク15を介して接続される。このネットワーク15は、例えばスプリットトランザクションバス等のパケット転送型バスである。
図3は、本発明の第1の実施の形態におけるデータ処理装置の概略構成を示すブロック図である。このデータ処理装置1は、データ入力部11と、コントローラ(CPU)12と、メモリ13と、データ出力部14と、処理モジュール1(21−a,21−b)と、処理モジュール2(22−a,22−b)と、処理モジュール3(23−a,23−b)とを含み、これらがネットワーク15を介して接続される。このネットワーク15は、例えばスプリットトランザクションバス等のパケット転送型バスである。
データ入力部11は、外部からデータを入力するためのモジュールであり、入力されたデータを処理単位にまとめてパケットを生成してネットワーク15に出力する。このパケットの詳細については、後述する。
コントローラ12は、データ処理装置1の全体的な制御を行なうモジュールであり、データ処理装置1の初期化動作において各処理モジュールのプログラムメモリ24にプログラムおよびパラメータをロードする。コントローラ12によるプログラムおよびパラメータのロードが終了すると、各処理モジュールはデータの入力待ち状態となる。
メモリ13は、フラッシュメモリ、MRAM(Magnetoresistive Random Access Memory)などの不揮発性メモリ、またはSRAM(Static Random Access Memory)などの揮発性メモリによって構成される。メモリ13は、各処理モジュールにロードされるプログラム、パラメータなどの情報を記憶する。
データ出力部14は、外部にデータを出力するためのモジュールであり、ネットワーク15からパケットを受けると、そのパケットに含まれるデータを外部IF(Interface)のプロトコルに変換して出力する。
処理モジュール1(21−a)および処理モジュール1(21−b)は、それぞれ同様の機能を有しており、同様の処理を選択的に実行することが可能である。また、処理モジュール2(22−a)および処理モジュール2(22−b)についても同様である。また、処理モジュール3(23−a)および処理モジュール3(23−b)についても同様である。
ネットワーク15は、内部に調停回路16を有しており、各モジュールから受けたパケットを調停し、次の処理を行なう処理モジュールに対してパケットを出力する。この調停回路16の詳細については後述する。
図4は、処理モジュールの構成例を示す図である。この処理モジュールは、プログラムメモリ24と、入出力制御部31と、入出力用メモリ32と、演算部33と、演算用中間データ配置用メモリ34と、演算制御部35とを含む。
演算部33は、FPU(Floating Point Unit)やDSP(Digital Signal Processor)等のプログラムにより演算制御可能な演算器、若しくはFPGA(Field Programmable Gate Array)等の論理・接続構成を再構築可能な回路で構成される。演算部33が論理・接続構成を再構築可能な回路で構成される場合、演算制御部35は演算処理を開始する前に、演算部33の論理・接続構成を構築するための情報をメモリ13等から読み出し、演算部33の論理・接続構成を構築する処理を行なう。
入出力制御部31は、ネットワーク15に対するパケットの入出力を制御する。入出力制御部31は、演算後のデータをパケットに格納してネットワーク15に出力する際、後述するパケットの処理ステージ番号、処理プロセス番号などの情報を更新する。
入出力用メモリ32は、ネットワーク15から受けたパケットおよびネットワーク15に出力するパケットを一時的に記憶する。
演算制御部35は、プログラムメモリ24に記憶される命令コードを順次デコードし、デコード結果に応じて演算部33の演算処理を制御する。また、演算制御部35は、デコード結果に応じてプログラムメモリ24に記憶されるパラメータを演算用中間データ配置用メモリ34に配置する。
演算用中間データ配置用メモリ34は、演算部33が演算を行なう際に使用するデータおよび演算部33による演算途中のデータ(中間データ)を一時的に記憶する。演算部33は、演算用中間データ配置用メモリ34の内容を参照しながら演算処理を実行する。
図5は、各処理モジュール内のプログラムメモリ24に記憶されるプログラム、パラメータなどの情報を示す図である。プログラムメモリ24は、複数のプロセスに対応するプログラムを記憶しており、さらに処理ステージ番号がどの処理プロセス番号に対応するかを示す情報を記憶している。
各処理ステージの領域には、この処理ステージに対応する処理プロセス番号(プログラムの開始アドレス)、次の処理プロセス番号およびパラメータが記憶される。処理モジュールは、処理ステージ番号に対応した処理プロセス番号(プログラムの開始アドレス)を参照して、対応のプロセスの実行を開始する。このとき、その処理ステージに記憶されるパラメータが用いられる。
そして、そのプロセスの処理を終了すると、処理モジュールは次の処理プロセス番号を参照して処理後のデータを渡すプロセスを決定する。
図6は、パケットの構成例を示す図である。パケットは、パケット番号41と、処理ステージ番号42と、処理プロセス番号43と、パケットサイズ44と、データ本体45とを含む。
パケット番号41は、データ入力部11によって付加され、最初のパケットに対しては“0”、次のパケットに対しては“1”というように順次インクリメントした値が付加される。調停回路16は、パケット番号41が小さいデータを優先する。
処理ステージ番号42は、当該パケットデータが何番目の処理ステージに対応するかを示す。
処理プロセス番号43は、選択可能な処理モジュール群を示す。どの処理モジュールで処理を実行するかは、調停回路16によって決定される。たとえば、FFT(Fast Fourier Transform)などのように同じ処理を2回実行する場合、処理プロセス番号が同一となるため、この処理プロセス番号43だけで次の処理プロセスを決定することはできない。しかしながら、1回目の処理と2回目の処理とでは処理ステージ番号が異なるので、処理ステージ番号42と処理プロセス番号43との両方の情報を用いることで、次の処理プロセスを決定することができる。
パケットサイズ44は、アプリケーション中でサイズの異なるパケットを扱う場合に必要となる情報である。アプリケーション中で用いるパケットのサイズが全て同じであれば、このパケットサイズは不要である。
調停回路16は、各モジュールからのパケットを受けると、パケット番号41の小さいパケットを優先してバス調停を行なう。パケット番号41のビット数は予め決められており、パケット番号が有限であるため入力されるパケットのパケット番号が上限を超える場合も想定される。そのときは、パケット番号を“0”に戻し、ラップアラウンド方式でバス調停を行なう。
すなわち、調停回路16は、パケット番号41の上位2ビットを比較し、それぞれのパケットの上位2ビットが“00”および“01”であれば、“00”の方のパケットを優先する。それぞれのパケットの上位2ビットが“01”および“10”であれば、“01”の方のパケットを優先する。それぞれのパケットの上位2ビットが“10”および“11”であれば、“10”の方のパケットを優先する。それぞれのパケットの上位2ビットが“11”および“00”であれば、“11”の方のパケットを優先する。
パケット番号41の上位2ビットが同じ場合には、調停回路16は、上位2ビット以外のビットを比較し、小さい方のパケットを優先する。
調停回路16は、動的調停および静的調停のいずれかの方法でバス調停を行なう。動的調停とは、調停回路16がパケットを受けたときに、各処理ステージに対応する処理を行なう処理モジュールを決定する方法である。処理データのサイズや頻度を予想しなくても、処理を各処理モジュールに平均的に分散することができる。
たとえば、調停回路16は、パケットの調停を行なってパケットを出力した処理モジュールを処理実行中の処理モジュールとして登録する。そして、その処理モジュールから処理後のデータを格納したパケットを受けたときに、その処理モジュールを処理待ち状態の処理モジュールとして登録する。これによって、処理待ち状態の処理モジュールと処理中の処理モジュールとを区別し、負荷を分散させることができる。
一方、静的調停とは、アプリケーション実行前に、各処理ステージに対応する処理を行なう処理モジュールを予め決めておく方法である。処理データのサイズや頻度がが予め予測できる場合に有効であり、調停回路16のハードウェアの規模を小さくすることができる。
図7は、アプリケーションのプログラムの一例を示す図である。図7に示すように、アプリケーションのプログラムは、アプリケーションを構成する複数のプロセスの集合として記述される。各プロセスは、C言語などのようなよく使用される記述言語のライブラリとして提供され、そのライブラリを用いてアプリケーション処理フローが記述される。
図7においては、データ入力の処理プロセスとして“Stream_input();”が記述され、FFTの処理プロセスとして“FFT();”が記述され、インターリーブの処理プロセスとして“Interleave();”が記述され、データ出力の処理プロセスとして“Stream_output();”が記述されている。
記述されたアプリケーションは、シミュレーション用ライブラリを用いてシミュレーションを行ない、実行結果を確認することが可能である。
図8は、グラフィカル・ユーザ・インタフェースを用いて記述された処理フローの一例を示す図である。処理フローの記述として、たとえばMATLABなどのグラフィカル・ユーザ・インタフェースが用いられる。図7に示すプログラムと同様に、この記述は、各ライブラリ51〜58を含んでおり、ライブラリの処理順序に従って記述される。
図7に示すプログラムや図8に示す処理フローにおける記述は各プロセスに対応しており、それらがどの処理モジュールで実行可能かの対応付けがなされる。図9は、ライブラリ・処理モジュール対応表61の一例を示す図である。
図9において、たとえば、“FFT”を実行可能な処理モジュールが“1”であり、“Interleave−1”を実行可能な処理モジュールが“2”であり、“Map”を実行可能な処理モジュールが“1”であることを示している。“Viterbi”、“Interleave−2”、“Reed Solomon”についても同様である。あるプロセスを実行可能な処理モジュールは複数登録される。
図10は、処理モジュール・プロセス対応表62の一例を示す図である。アプリケーションを構成する全プロセスに対して、処理モジュールとの対応のリストが作成されて調停回路16に記憶される。このとき、図7または図8に示す処理フローに基づいて、図5に示すような処理ステージ番号と次の処理プロセス番号との対応が作成されてメモリ13に記憶される。
図11は、本発明の第1の実施の形態におけるデータ処理装置のハードウェア実行準備を説明するための図である。データ処理装置1がリセットされると、システムが初期状態となる。システムの初期化動作において、コントローラ(CPU)12は、メモリ13から各処理モジュール(21−a〜23−a,21−b〜23−b)のプログラムメモリ24に、図5に示すようなプログラムおよびパラメータをロードする。
この処理が完了すると、システムはReady状態となり、データ入力部11によるデータ入力および各処理モジュールによる処理が可能な状態となる。このとき、データ入力部11は、データの入力待ち状態となる。
データ入力部11は、外部からデータを入力すると、データを処理単位にまとめてパケットを生成し、パケット番号41としてシリアル番号を付加し、パケットの処理ステージ番号42に“1”を付加する。そして、データを最初に処理する処理プロセスに対応する処理プロセス番号43を付加する。データ入力部11は、生成したパケットをネットワーク15に出力する。
ネットワーク15内の調停回路16は、バス調停を行なってパケットを処理モジュールに出力する。処理モジュールは、パケットが入力されると処理プロセス番号43に対応したプログラムアドレスに分岐し、処理を実行する。このとき、処理モジュールは、FFTのポイント数などのパラメータに基づいて処理を行なう。
処理モジュールは処理を終了すると、パケットの処理ステージ番号42をインクリメントし、処理プロセス番号43を次の処理プロセス番号に基づいて更新する。そして、パケットをネットワーク15に出力する。
各処理モジュールによる処理が終了し、データ出力部14がパケットを受けると、パケットに含まれるデータを外部IFのプロトコルに変換して出力する。
図12は、調停回路16によるバス調停の処理手順を説明するためのフローチャートである。まず、調停回路16はデータパケットを入力すると(S11)、図10に示す処理プロセス番号と処理モジュールとの対応表(処理モジュール・プロセス対応表62)を参照して、実行対象の処理モジュールを選択する(S12)。この処理は、パケットの処理プロセス番号43に基づいて行なわれ、上述のように動的調停または静的調停によって処理モジュールが選択される。
次に、調停回路16は、同一処理モジュールに対する要求が複数あるか否かを判定する(S13)。同一処理モジュールへの要求が複数ない場合には(S13,No)、ステップS16に処理が進む。
また、同一処理モジュールへの要求が複数ある場合には(S13,Yes)、当該パケットのシリアル番号(パケット番号41)が最小か否かを判定する(S14)。当該パケットのシリアル番号が最小であれば(S14,Yes)、ステップS16に処理が進む。また、シリアル番号が最小でなければ(S14、No)、そのパケットの出力を待たせる(S15)。
同一時刻に同一処理モジュールへのストア要求が複数存在する可能性がある。この場合、パケットのシリアル番号が小さい方を優先して調停を行なう。これは、シリアル番号が小さい方のパケットを先行して処理を行なわないと、転送先の処理モジュールが処理中のままとなってしまい、システム全体の処理が停止してしまう可能性があるからである。
ステップS16において、調停回路16は、実行対象の処理モジュールがデータ入力可能か否かを判定する。実行対象の処理モジュールがデータ入力可能でなければ(S16,No)、そのパケットの出力を待たせる(S17)。
また、実行対象の処理モジュールがデータ入力可能であれば(S16,Yes)、調停回路16はそのデータパケットを実行対象の処理モジュールに出力して(S18)、処理を終了する。
図13は、本発明の第1の実施の形態におけるデータ処理装置をマルチモード対応無線通信ベースバンド回路に適用した場合を示す図である。このベースバンド回路は、RF/ベースバンド処理SoC(データ処理装置)1と、アンテナ71と、AD/DA/RF回路72と、MAC処理部85とを含む。また、RF/ベースバンド処理SoC1は、モジュール73〜84と、それらを接続するネットワーク15とを含む。なお、各モジュール内のブロックは、プログラムによって実現される機能などを模式的に示したものである。
モジュール79は、図3に示すデータ入力部11に対応しており、AD/DA/RF回路72とのインタフェースであるAD/DA IFと、メモリ(MEM)と、LD/ST部とを含んでおり、上述のデータ入力部11の処理を実行する。モジュール79は、メモリ(MEM)を使用しながらパケットを生成し、LD/ST部によって生成したパケットをネットワーク15に出力させる。LD/ST部は、図4に示す入出力制御部31に対応している。
処理モジュール74および80は同等の機能を有しており、同一の処理プロセスを実行可能である。この処理モジュール74および80は、プログラムメモリ24に記憶されるプログラムを実行することにより、主にMAC(Multiply Accumulate)演算によって処理を行なう処理モジュールである。
処理モジュール75および81は同等の機能を有しており、同一の処理プロセスを実行可能である。この処理モジュール75および81は、プログラムメモリ24に記憶されるプログラムを実行することにより、主に遅延演算によって処理を行なう処理モジュールである。
処理モジュール76および82は同等の機能を有しており、同一の処理プロセスを実行可能である。この処理モジュール76および82は、プログラムメモリ24に記憶されるプログラムを実行することにより、主に加算演算によって処理を行なう処理モジュールである。
モジュール84は、図3に示すデータ出力部14に対応しており、MAC処理部85とのインタフェースであるMAC IFと、メモリ(MEM)と、LD/ST部とを含んでおり、上述のデータ出力部14の処理を実行する。
なお、モジュール77および83は、それぞれ図3に示すコントローラ12およびメモリ13に対応している。また、モジュール73および78は、それぞれRF(Radio Frequency)部および周辺機器に対応する機能を有するモジュールである。
図14は、ソフトウェアの処理フローをどのようにデータ処理装置1にマッピングするかを示す図である。図14(a)は、C言語によって記述されたプログラムを示しており、図7に示すものと同様である。また、図14(b)は、MATLABによって記述されたフローチャートを示しており、図8に示すものと同様である。
図14(c)は、図14(a)または図14(b)に示す記述を各処理モジュールにマッピングしたところを示している。記述51〜58がそれぞれ、処理モジュール79,74,75,80,76,81,82および84にマッピングされる。
図15は、図14に示すマッピング後のデータ処理装置1におけるパケットの流れを説明するための図である。Stream input51に対応する処理モジュール79によってパケットが生成されると、FFT52に対応する処理モジュール74に出力され、処理モジュール74によるFFT処理が行なわれる。
処理モジュール74による処理が終了すると、処理後のデータがパケットに格納されてInterleave53に対応する処理モジュール75に出力され、処理モジュール75によるインターリーブ処理が行なわれる。
処理モジュール75による処理が終了すると、処理後のデータがパケットに格納されてMap54に対応する処理モジュールに出力される。このとき、Map処理を実行可能な処理モジュールが2つあるため、調停回路16は処理モジュール74および80のいずれに処理を行なわせるかを各処理モジュールの負荷状態に応じて決定する。図15において、調停回路16は、負荷の軽い処理モジュール80を選択して処理を実行させる。
以上説明したように、本実施の形態におけるデータ処理装置によれば、処理すべきデータを格納したパケットにシリアル番号を持たせ、自律的に各処理モジュール間をパケットが移動するようにしたので、複数の処理モジュールを並列に動作させることができ、いわゆるパイプライン処理を実現することが可能となった。
また、処理モジュールのプログラムメモリに記憶するプログラムを変更することによって処理モジュールの機能を変更することができるため、高プログラマビリティおよび高スケーラビリティを実現することが可能となった。さらに、高性能、低消費電力、低開発費、短納期が可能なデータ処理装置を提供することが可能となった。
また、処理フローをC言語などのよく使われる記述言語のライブラリを用いて記述できるため、ソフトウェアの開発が容易となる。
(第2の実施の形態)
本発明の第2の実施の形態におけるデータ処理装置は、各処理モジュール内のメモリを複数バンク化するものである。
本発明の第2の実施の形態におけるデータ処理装置は、各処理モジュール内のメモリを複数バンク化するものである。
図13に示すベースバンド回路のように、処理モジュール73〜84はそれぞれ2つのメモリ(MEM)を有しており、一方が処理モジュールの内部データを格納するメモリとして使用され、他方が外部の処理モジュールとのデータ入出力に使用される。これによって、処理モジュールによる演算処理とデータ入出力処理とが並列に行なえる。
以上説明したように、本実施の形態におけるデータ処理装置によれば、処理モジュールのメモリを複数バンク化するようにしたので、処理モジュールによる演算処理とデータ入出力処理とが並列に行なえ、データ処理装置の処理効率をさらに向上させることが可能となった。
(第3の実施の形態)
図16は、本発明の第3の実施の形態におけるデータ処理装置の概略構成を示すブロック図である。図3に示す第1の実施の形態におけるデータ処理装置と比較して、ネットワーク内に電源制御部17を設けた点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
図16は、本発明の第3の実施の形態におけるデータ処理装置の概略構成を示すブロック図である。図3に示す第1の実施の形態におけるデータ処理装置と比較して、ネットワーク内に電源制御部17を設けた点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
電源制御部17は、調停回路16から出力される制御情報に基づいて、各処理モジュールの電源のオン/オフを制御する。すなわち、調停回路16は、パケットの調停を行なう際に電源制御部17にパケットを出力する処理モジュールの電源をオンさせた後にパケットを送信する。そして、その処理モジュールからパケットを受けたときに、その処理モジュールの処理が終了したものとして電源制御部17にその処理モジュールの電源をオフさせる。なお、この電源制御に関してはCPU12が介在せず、自律的に電源制御が行なわれる。また、記憶素子を不揮発デバイスで構成し、電源オフの場合でもデータを保持できるようにする。
以上説明したように、本実施の形態におけるデータ処理装置によれば、処理モジュールが処理を行なっていない場合には電源がオフとなり、消費電力を削減することが可能となった。
また、記憶素子に不揮発デバイスを利用するため、電源をオンした後の処理モジュールによる処理が直ちに行なえるようになる。
(第4の実施の形態)
本発明の第4の実施の形態におけるデータ処理装置は、定期的に各処理モジュールの故障診断を行ない、各処理モジュールが処理実行可能か否かを判断してパケットを出力するものである。図3に示す第1の実施の形態におけるデータ処理装置と比較して、調停回路内の処理モジュール・プロセス対応表に有効フラグが付加された点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
本発明の第4の実施の形態におけるデータ処理装置は、定期的に各処理モジュールの故障診断を行ない、各処理モジュールが処理実行可能か否かを判断してパケットを出力するものである。図3に示す第1の実施の形態におけるデータ処理装置と比較して、調停回路内の処理モジュール・プロセス対応表に有効フラグが付加された点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
図17は、有効フラグを付加した処理モジュール・プロセス対応表の一例を示す図である。この処理モジュール・プロセス対応表63には、各処理モジュールが処理可能か否かを示す有効フラグが付加されている。たとえば、処理モジュール1(21−a)は有効であり、処理モジュール1(21−b)が無効であることを示している。
図18は、故障回避機能を付加したデータ処理装置の構成例を示すブロック図である。コントローラ12は、各処理モジュールに対して故障診断プログラムを実行して、対象モジュールが故障しているか否かを判断する。調停回路16は、その診断結果をコントローラ12から受けて有効フラグとして処理モジュール・プロセス対応表63に追加する。
調停回路16は、パケットを調停する際に有効フラグを参照し、有効フラグが“無効”となっている処理モジュールに対する処理の割り当てを行なわない。すなわち、それまで故障した処理モジュールに割り当てられていた処理を動的に他の処理モジュールに割り当て変更することで、システムとしての故障回避を実現する。
図18においては、処理モジュール1(21−b)および処理モジュール2(22−b)が故障と診断されており、この2つの処理モジュールに対する処理の割り当ては行なわれないことを示している。
以上説明したように、本実施の形態におけるデータ処理装置によれば、定期的に故障診断を行ない、故障した処理モジュールに対して処理を割り当てないようにしたので、自律的に故障回避を実現することができ、システムとしての信頼性を向上させることが可能となった。
(第5の実施の形態)
本発明の第5の実施の形態におけるデータ処理装置は、各処理モジュールがパケットにデータを格納する際にデータを圧縮して格納し、そのパケットを受けた処理モジュールがデータを伸張するものである。
本発明の第5の実施の形態におけるデータ処理装置は、各処理モジュールがパケットにデータを格納する際にデータを圧縮して格納し、そのパケットを受けた処理モジュールがデータを伸張するものである。
図4に示す処理モジュールにおいて、処理モジュール内の入出力制御部31が、パケットにデータを格納する際、予め決められた方法でデータを圧縮して格納してネットワーク15に出力する。また、入出力制御部31は、ネットワーク15からパケットを受けると、そのパケットに含まれるデータに対して予め決められた方法でデータを伸張する。
圧縮/伸張方法として、データのカテゴリ、たとえば動画、静止画、音声などの種類によって分類された方法が用いられる。入出力制御部31は、転送されるデータをモニタリングし、そのデータの特徴に合わせて圧縮率が高くなる方法で圧縮を行なう。この圧縮/伸張処理は、ハードウェアおよびソフトウェアのいずれであっても構わない。
以上説明したように、パケットに格納するデータを圧縮するようにしたので、バスで転送されるデータ量が削減し、バスの広帯域化および低消費電力化が可能となった。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 データ処理装置、11 データ入力部、12 コントローラ、13 メモリ、14 データ出力部、15 ネットワーク、16 調停回路、17 電源制御部、21−a,21−b,22−a,22−b,23−a,23−b,73〜84 処理モジュール、24 プログラムメモリ、31 入出力制御部、32 入出力用メモリ、33 演算部、34 演算用中間データ配置用メモリ、35 演算制御部、41 パケット番号、42 処理ステージ番号、43 処理プロセス番号、44 パケットサイズ、45 データ本体、61 ライブラリ・処理モジュール対応表、62,63 処理モジュール・プロセス対応表、71 アンテナ、72 AD/DA/RF部、85 MAC処理部。
Claims (10)
- 複数の処理モジュールがネットワークによって接続されたデータ処理装置であって、
前記複数の処理モジュールのそれぞれに処理フローに対応する処理プロセスが割り当てられ、前記複数の処理モジュールの中の少なくとも2つの処理モジュールが同じ処理プロセスを実行可能であり、
前記ネットワークは、第1の処理モジュールからパケットを受けると、パケットに付加された処理プロセス番号に応じて当該処理プロセスを実行可能な処理モジュールの中から第2の処理モジュールを選択して前記パケットを出力する調停手段を含む、データ処理装置。 - 前記第2の処理モジュールは前記調停手段から前記パケットを受けると、前記処理プロセス番号に対応する処理を行ない、前記パケットに処理後のデータと次の処理プロセス番号を格納して前記ネットワークに出力する、請求項1記載のデータ処理装置。
- 前記データ処理装置はさらに、外部から入力したデータを処理単位にまとめて前記パケットを生成し、該パケットにシリアル番号および前記処理プロセス番号を付加して前記ネットワークに出力するデータ入力手段を含む、請求項1または2記載のデータ処理装置。
- 前記調停手段は、前記パケットに付加された前記シリアル番号に基づいてパケット出力の優先度を判定してバス調停を行なう、請求項3記載のデータ処理装置。
- 前記調停手段は、処理モジュールと処理モジュールが実行可能な処理プロセスとの対応表を有しており、前記パケットに付加された処理プロセス番号と前記対応表とに基づいて前記パケットを出力する処理モジュールを決定する、請求項1記載のデータ処理装置。
- 前記第2の処理モジュールは、演算処理を行なうときに使用する第1のメモリと、前記ネットワークとの間でパケットを入出力するときに使用する第2のメモリとをバンクメモリとして有し、前記演算処理および前記パケット入出力処理を並列に行なう、請求項1記載のデータ処理装置。
- 前記データ処理装置はさらに、前記複数の処理モジュールのそれぞれの電源を制御する電源制御手段を含み、
前記調停手段は、処理モジュールの処理開始時に当該処理モジュールの電源をオンするよう前記電源制御手段を制御し、処理モジュールの処理終了時に当該処理モジュールの電源をオフするよう前記電源制御手段を制御する、請求項1記載のデータ処理装置。 - 前記処理モジュールが実行するプログラムを記憶するメモリが不揮発メモリによって構成される、請求項7記載のデータ処理装置。
- 前記データ処理装置はさらに、前記複数の処理モジュールの故障診断を行なう故障診断手段を含み、
前記調停手段は、前記故障診断手段によって故障と診断された処理モジュールを除外して前記パケットを出力する処理モジュールを選択する、請求項1記載のデータ処理装置。 - 前記複数の処理モジュールの少なくとも1つは、処理後のデータを圧縮して前記パケットに格納する圧縮手段を含む、請求項1記載のデータ処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009177759A JP2011034190A (ja) | 2009-07-30 | 2009-07-30 | データ処理装置 |
US12/847,439 US8325609B2 (en) | 2009-07-30 | 2010-07-30 | Data processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009177759A JP2011034190A (ja) | 2009-07-30 | 2009-07-30 | データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011034190A true JP2011034190A (ja) | 2011-02-17 |
Family
ID=43526885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009177759A Withdrawn JP2011034190A (ja) | 2009-07-30 | 2009-07-30 | データ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8325609B2 (ja) |
JP (1) | JP2011034190A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014531857A (ja) * | 2011-09-29 | 2014-11-27 | アルカテル−ルーセント | 通信ネットワークのためのアクセスノード |
JP2015018379A (ja) * | 2013-07-10 | 2015-01-29 | 国立大学法人 筑波大学 | プログラム、及び情報処理装置 |
JP2020537784A (ja) * | 2017-10-17 | 2020-12-24 | ザイリンクス インコーポレイテッドXilinx Incorporated | ニューラルネットワークアクセラレーションのための機械学習ランタイムライブラリ |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6396715B2 (ja) * | 2014-08-07 | 2018-09-26 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
CN104330810A (zh) * | 2014-11-17 | 2015-02-04 | 广东好帮手电子科技股份有限公司 | 一种基于soc的北斗多模导航车联网终端及设计方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5825773A (en) * | 1991-03-20 | 1998-10-20 | Hitachi, Ltd. | Switching system for transferring broadcast packet held in broadcast buffer received from input port to output ports according to the state of each output port |
JP3732989B2 (ja) * | 2000-01-12 | 2006-01-11 | 富士通株式会社 | パケットスイッチ装置及びスケジューリング制御方法 |
JP4294821B2 (ja) * | 2000-01-26 | 2009-07-15 | 株式会社日立製作所 | ネットワーク中継装置 |
JP2001312479A (ja) | 2000-04-28 | 2001-11-09 | Canon Inc | 画像処理装置および画像処理方法 |
JP2003323309A (ja) | 2002-05-07 | 2003-11-14 | Matsushita Electric Ind Co Ltd | マルチタスクプロセッサおよびデータ処理システム |
US7243184B1 (en) * | 2002-06-14 | 2007-07-10 | Juniper Networks, Inc. | Maintaining packet order using hash-based linked-list queues |
JP2004326228A (ja) | 2003-04-22 | 2004-11-18 | Matsushita Electric Ind Co Ltd | 並列演算処理装置 |
JP4699685B2 (ja) | 2003-08-21 | 2011-06-15 | パナソニック株式会社 | 信号処理装置及びそれを用いた電子機器 |
US8072974B1 (en) * | 2008-07-18 | 2011-12-06 | Tellabs San Jose Inc | Method and apparatus for improving packet processing performance using multiple contexts |
-
2009
- 2009-07-30 JP JP2009177759A patent/JP2011034190A/ja not_active Withdrawn
-
2010
- 2010-07-30 US US12/847,439 patent/US8325609B2/en not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014531857A (ja) * | 2011-09-29 | 2014-11-27 | アルカテル−ルーセント | 通信ネットワークのためのアクセスノード |
JP2015018379A (ja) * | 2013-07-10 | 2015-01-29 | 国立大学法人 筑波大学 | プログラム、及び情報処理装置 |
JP2020537784A (ja) * | 2017-10-17 | 2020-12-24 | ザイリンクス インコーポレイテッドXilinx Incorporated | ニューラルネットワークアクセラレーションのための機械学習ランタイムライブラリ |
JP7382925B2 (ja) | 2017-10-17 | 2023-11-17 | ザイリンクス インコーポレイテッド | ニューラルネットワークアクセラレーションのための機械学習ランタイムライブラリ |
Also Published As
Publication number | Publication date |
---|---|
US20110026396A1 (en) | 2011-02-03 |
US8325609B2 (en) | 2012-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8010593B2 (en) | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements | |
US11372546B2 (en) | Digital signal processing data transfer | |
US10884707B1 (en) | Transpose operations using processing element array | |
US20090287859A1 (en) | DMA Engine | |
JP2011034190A (ja) | データ処理装置 | |
EP2728491A1 (en) | Stream Data Processor | |
CN116547644A (zh) | 检测可编程原子事务中的无限循环 | |
CN110688160A (zh) | 一种指令流水线处理方法、系统、设备及计算机存储介质 | |
US9448967B2 (en) | Stream data processor | |
CN116685943A (zh) | 可编程原子单元中的自调度线程 | |
EP3885895A1 (en) | Reconfigurable digital signal processing (dsp) vector engine | |
US9350584B2 (en) | Element selection unit and a method therein | |
JP7617907B2 (ja) | プロセッサおよびその内部の割り込みコントローラ | |
US8832412B2 (en) | Scalable processing unit | |
CN114385326A (zh) | 桶式处理器中的线程重放到保留状态 | |
CN116635824A (zh) | 桶式处理器中的线程调度控制及存储器分割 | |
US20100281234A1 (en) | Interleaved multi-threaded vector processor | |
CN116685942A (zh) | 在处理器中重用飞行中寄存器数据 | |
CN114385246B (zh) | 电子设备及其实施的方法 | |
CN117632256A (zh) | 用于处置多元件处理器中的断点的装置及方法 | |
EP2751705B1 (en) | Digital signal processor and method for addressing a memory in a digital signal processor | |
CN116529721A (zh) | 按需可编程原子内核加载 | |
Seidel | A Task Level Programmable Processor | |
EP3030963A1 (en) | Flexible configuration hardware streaming unit | |
JP2010033336A (ja) | 信号処理装置及び信号処理方法 |
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: 20121002 |