JP2007188249A - Multiprocessor system - Google Patents
Multiprocessor system Download PDFInfo
- Publication number
- JP2007188249A JP2007188249A JP2006005130A JP2006005130A JP2007188249A JP 2007188249 A JP2007188249 A JP 2007188249A JP 2006005130 A JP2006005130 A JP 2006005130A JP 2006005130 A JP2006005130 A JP 2006005130A JP 2007188249 A JP2007188249 A JP 2007188249A
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing
- unit
- units
- main memory
- 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
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
Description
本発明はマルチプロセッサシステムに係り、特に複数のプロセッサがデータバスを介して共通のメインメモリに接続された構成のマルチプロセッサシステムに関する。 The present invention relates to a multiprocessor system, and more particularly to a multiprocessor system having a configuration in which a plurality of processors are connected to a common main memory via a data bus.
画像処理のような膨大な(画像)データを扱うデータ処理では、幾つかの処理ブロックに分けてプロセッサがブロック毎に順次処理を行う。この様子を図7に示す。最終結果を出力するために、プロセッサが4つの処理ブロックを順次処理する必要がある場合、図7に示すように、プロセッサは、4つの処理ブロックP0、P1、P2、P3を、順次処理して最終目的の処理結果を得る。各処理ブロックP0〜P3では必要なデータ毎に処理を行う。 In data processing that handles enormous (image) data, such as image processing, the processor divides the data into several processing blocks and sequentially performs processing for each block. This is shown in FIG. When the processor needs to sequentially process four processing blocks to output the final result, the processor sequentially processes the four processing blocks P0, P1, P2, and P3 as shown in FIG. Get the final processing result. Each processing block P0 to P3 performs processing for each necessary data.
画像データ処理の場合、処理単位はピクセル、ライン、ブロック等となる。処理単位のデータ群をGD0、GD1、GD2、・・・とすると、各処理ブロックが時間の経過と共に処理するデータ群は、図8に示すようにすると理想的に処理できる。ただし、対象データの値は前の処理により変化している。これは各処理が並行して行われるため、処理ブロックP0〜P3で最も処理時間の掛かる処理の処理間隔で単位処理データの処理が終わる。この様な理想の処理速度を得るためには処理をハードウェア化しなくては実現できない。 In the case of image data processing, processing units are pixels, lines, blocks, and the like. Assuming that the data group of the processing unit is GD0, GD1, GD2,..., The data group processed by each processing block with the passage of time can be ideally processed as shown in FIG. However, the value of the target data is changed by the previous processing. Since each process is performed in parallel, the process of the unit process data ends at the process interval of the process that takes the longest processing time in the process blocks P0 to P3. In order to obtain such an ideal processing speed, the processing cannot be realized without hardware.
プロセッサによるソフトウェア処理の場合、各処理を時間的に並行して行うことができないので、図9に示すように、処理単位のデータを処理ブロックP0、P1、P2、P3の順で順次処理した後、次の単位処理データを同様に処理ブロックP0、P1、P2、P3の順で順次処理する。図9から分かるように、プロセッサによるソフトウェア処理では4つの処理時間の合計が単位処理データの処理に掛かるため、図8に示したように処理するハードウェアに比べ処理速度で圧倒的に劣る原因となる。 In the case of software processing by the processor, each process cannot be performed in parallel in time. Therefore, as shown in FIG. 9, after processing units of data are sequentially processed in the order of processing blocks P0, P1, P2, and P3. Similarly, the next unit processing data is sequentially processed in the order of the processing blocks P0, P1, P2, and P3. As can be seen from FIG. 9, in the software processing by the processor, the total of the four processing times is taken to process the unit processing data, and therefore the cause of the overwhelmingly lower processing speed than the hardware to be processed as shown in FIG. Become.
図10はプロセッサが処理を進める際の一例の動作説明用フローチャートを示す。同図に示すように、メインメモリから処理すべきデータを読み出し(ステップS1)、例えば処理ブロックP0の処理を行い(ステップS2)、その処理結果を一旦メインメモリに保存する(ステップS3)。続いて、メインメモリ内に格納されているP0の処理結果を読み出し(ステップS4)、次の処理ブロックP1の処理を実行し(ステップS5)、その処理結果を一旦メインメモリに保存する(ステップS6)。以下、同様にして必要な処理ブロックの数だけ上記の処理を繰り返し、最終結果を得る。この様に、処理を引き継ぐ際、メインメモリに対しアクセスが発生する。 FIG. 10 is a flowchart for explaining the operation of an example when the processor advances the processing. As shown in the figure, data to be processed is read from the main memory (step S1), for example, processing of the processing block P0 is performed (step S2), and the processing result is temporarily stored in the main memory (step S3). Subsequently, the processing result of P0 stored in the main memory is read (step S4), the processing of the next processing block P1 is executed (step S5), and the processing result is temporarily stored in the main memory (step S6). ). Thereafter, the above-described processing is repeated in the same manner as many as necessary processing blocks to obtain the final result. In this way, when the processing is taken over, access to the main memory occurs.
ところで、以上は一台のプロセッサによる処理についての説明であるが、性能と信頼性の向上を目的として複数のプロセッサを結合したマルチプロセッサシステムが従来から知られている(例えば、特許文献1参照)。図11はn台の中央処理装置(CPU)11−1、11−2、・・・、11−nと、m台以上のディジタル・シグナル・プロセッサ(DSP)12−1、・・・、12−mなどの、複数のプロセッサが、データバス14を介して共通にメインメモリ13に接続されている(つまり、メインメモリ13を共有している。)。
By the way, the above is a description of processing by a single processor, but a multiprocessor system in which a plurality of processors are combined for the purpose of improving performance and reliability has been conventionally known (for example, see Patent Document 1). . 11 shows n central processing units (CPUs) 11-1, 11-2,..., 11-n and m or more digital signal processors (DSPs) 12-1,. A plurality of processors such as −m are connected to the
この図11に示した従来のマルチプロセッサシステムの動作について、図12のフローチャートと共に説明する。まず、CPU11−1が処理を行うため、処理に必要なデータをメインメモリ13から読み込み(ステップS11)、CPU11−1はこのデータを処理して(ステップS12)、その処理結果をメインメモリ13に書き込む(ステップS13)。
The operation of the conventional multiprocessor system shown in FIG. 11 will be described with reference to the flowchart of FIG. First, since the CPU 11-1 performs processing, data necessary for processing is read from the main memory 13 (step S11), the CPU 11-1 processes this data (step S12), and the processing result is stored in the
続いて、CPU11−1の処理結果をCPU11−2が処理するために、CPU11−2が、メインメモリ13に保存されているCPU11−1の処理結果をメインメモリ13から読み込み(ステップS14)、CPU11−2はこのデータを処理して(ステップS15)、その処理結果をメインメモリ13に書き込む(ステップS16)。以下、同様にして、CPU11−nまでが上記と同様にデータを処理する。
Subsequently, in order for the CPU 11-2 to process the processing result of the CPU 11-1, the CPU 11-2 reads the processing result of the CPU 11-1 stored in the
システム内にはDSP12−1〜12−mも処理を行うため、CPU11−1〜11−nと同様に、まずDSP12−1がメインメモリ13からデータを読み込み(ステップS17)、データを処理して(ステップS18)、その処理結果をメインメモリ13に書き込む(ステップS19)。他のDSP12−2〜12−mも同様の動作を行う。 Since the DSPs 12-1 to 12-m also perform processing in the system, the DSP 12-1 first reads data from the main memory 13 (step S17) and processes the data in the same manner as the CPUs 11-1 to 11-n. (Step S18), the processing result is written in the main memory 13 (Step S19). The other DSPs 12-2 to 12-m perform the same operation.
ところで、プロセッサオリエンテッドなデータ処理系において、処理速度がハードウェアより劣る原因の一つがバスの問題である。プロセッサバスは命令バス、データバスに大別されるがデータバスには処理データ以外にローカルデータ(スタック、一時保存データ)が混在し、純粋なハードウェア処理系に比べてデータアクセスが一つのバスに集中し易い。 Incidentally, in a processor-oriented data processing system, one of the causes that the processing speed is inferior to that of hardware is a bus problem. Processor buses are broadly divided into instruction buses and data buses, but the data bus contains local data (stack and temporary storage data) in addition to processing data, and has one data access compared to a pure hardware processing system. Easy to concentrate on.
すなわち、マルチプロセッサによる並列・分散処理系(メモリ共有システム)である、図11に示した従来のマルチプロセッサシステムでは、システム内のCPU11−1、11−2、・・・等や、DSP12が、図12のステップS11、S13、S14、S16、S17、S19等において、それぞれメインメモリ13にアクセスすることになり、データアクセスが一つのデータバス14に集中し、CPUやDSPの数が多い大規模システムほど、この問題が顕著に現れ、バストラフィックが悪化する。
That is, in the conventional multiprocessor system shown in FIG. 11, which is a parallel / distributed processing system (memory sharing system) using multiprocessors, the CPUs 11-1, 11-2,. In steps S11, S13, S14, S16, S17, S19, etc. in FIG. 12, the
本発明は以上の点に鑑みなされたもので、無駄なデータバスの使用を抑制して、システム全体の処理速度をハードウェア処理速度に迫る高速度化を実現し得るマルチプロセッサシステムを提供することを目的とする。 The present invention has been made in view of the above points, and provides a multiprocessor system capable of suppressing the use of a useless data bus and realizing the high processing speed of the entire system approaching the hardware processing speed. With the goal.
上記の目的を達成するため、本発明は、システム制御用の第1のプロセッサが第1のプログラムメモリに接続されると共に、複数のユニットと共にデータバスを介してメインメモリに共通に接続された構成のマルチプロセッサシステムであって、複数のユニットのそれぞれは、第1のプロセッサからの処理開始命令により、メインメモリから第1のデータ入力ポートを介してデータを読み込み、最終的な処理結果を第1のデータ出力ポートからメインメモリへ出力する、ダイレクトメモリ転送コントローラによる第1のバスインタフェースと、第1のバスインタフェースを介して入力されたデータに対して、ユニット毎に独立して所定の処理を行い、最終的に得られた処理結果を第1のバスインタフェースへ出力するように接続された複数の基本ユニットとを有し、基本ユニットの数及び互いの接続方法が互いに同一又は一部若しくは全部が異なる構成であり、
複数の基本ユニットのそれぞれは、ダイレクトメモリ転送コントローラによる第2のバスインタフェースと、所定の動作を行わせるためのプログラムが記憶された第2のプログラムメモリと、第2のデータ入力ポートを介して第2のバスインタフェースに入力されたデータに対して、第2のプログラムメモリのプログラムに従って所定の処理を行い、得られた処理結果を第2のバスインタフェースを介して第2のデータ出力ポートへ出力する第2のプロセッサと、第2のプロセッサによる処理結果を一時記憶するデータメモリとを有することを特徴とする。
In order to achieve the above object, the present invention has a configuration in which a first processor for system control is connected to a first program memory and is commonly connected to a main memory through a data bus together with a plurality of units. Each of the plurality of units reads data from the main memory via the first data input port according to a processing start command from the first processor, and displays the final processing result as the first processing result. The first bus interface by the direct memory transfer controller that outputs to the main memory from the data output port and data input via the first bus interface are subjected to predetermined processing independently for each unit. A plurality of processing results connected to output the final processing result to the first bus interface. And a present unit, the number and mutual connection method identical to each other or a part or all different configurations of the basic unit,
Each of the plurality of basic units includes a second bus interface by a direct memory transfer controller, a second program memory in which a program for performing a predetermined operation is stored, and a second data input port. The data input to the second bus interface is subjected to predetermined processing according to the program in the second program memory, and the obtained processing result is output to the second data output port via the second bus interface. It has a 2nd processor and the data memory which memorize | stores the process result by a 2nd processor temporarily, It is characterized by the above-mentioned.
本発明では、複数のユニットのそれぞれは、内部の複数の基本ユニットによりその基本ユニット内の第2のプロセッサにより最終的に得られた処理結果を第1のバスインタフェースを介して第1のデータ出力ポートからデータバスへ出力することができる。 In the present invention, each of the plurality of units outputs the processing result finally obtained by the second processor in the basic unit by the plurality of internal basic units via the first bus interface. Can be output from the port to the data bus.
また、上記の目的を達成するため、本発明は、複数のユニットのそれぞれは、そのユニット内の複数の基本ユニットのうち初段の基本ユニットがメインメモリにアクセスして処理用データをメインメモリから読み出し、第1のバスインタフェースを介して入力された処理用データに対して処理してその処理結果を初段の基本ユニット内のデータメモリに読み込み、複数の基本ユニットのうち、初段の基本ユニットを除く残りの基本ユニットは、前段の基本ユニットにより処理された結果を受けて処理された結果を次段の基本ユニットへ出力し、複数の基本ユニットのうち最終段の基本ユニットで処理して得られた最終的な処理結果を、第1のバスインタフェースを介してメインメモリに書き込むことを特徴とする。 In order to achieve the above object, according to the present invention, each of the plurality of units is configured such that the first basic unit among the plurality of basic units in the unit accesses the main memory and reads processing data from the main memory. The processing data input via the first bus interface is processed and the processing result is read into the data memory in the first-stage basic unit, and the remaining of the plurality of basic units excluding the first-stage basic unit The basic unit receives the result processed by the previous basic unit, outputs the processed result to the next basic unit, and outputs the final result obtained by processing the final basic unit among the multiple basic units. A typical processing result is written into the main memory via the first bus interface.
この発明では、複数の基本ユニットのうち、初段の基本ユニットを除く残りの基本ユニットは、前段の基本ユニットにより処理された結果を受けて処理された結果を次段の基本ユニットへ出力し、複数の基本ユニットのうち最終段の基本ユニットで処理して得られた最終的な処理結果を、第1のバスインタフェースを介してメインメモリに書き込むようにしたため、複数の基本ユニットは互いに独立して動作して、所謂並列・分散処理を実現できる。また、この発明では、基本ユニット間のプロセッサ間制御はごく単純なものとなり、大規模化が容易であり、また、基本ユニット同士はハードウェア接続とすることができる。 In the present invention, among the plurality of basic units, the remaining basic units other than the first-stage basic unit receive the result processed by the previous-stage basic unit and output the processed result to the next-stage basic unit. Since the final processing result obtained by processing in the last basic unit among the basic units is written to the main memory via the first bus interface, the plurality of basic units operate independently of each other. Thus, so-called parallel / distributed processing can be realized. Further, in the present invention, the inter-processor control between the basic units becomes very simple and can be easily scaled up, and the basic units can be connected by hardware.
本発明によれば、複数のユニットのそれぞれは、内部の複数の基本ユニットによりその基本ユニット内の第2のプロセッサにより最終的に得られた処理結果を第1のバスインタフェースを介して第1のデータ出力ポートからデータバスへ出力するようにしたため、基本的なデータ転送は基本ユニット間で行われ、メインメモリへのアクセスは、初段基本ユニットと最終段の基本ユニットのみしか行わず、それ以外では複数のユニットの各ユニット内でデータ転送するため、メインメモリへのバストラフィックは大幅に減少でき、この結果、システム全体のパフォーマンス向上が可能となり、また、各基本ユニットは互いに独立して処理を行うためいわゆる並列・分散処理が実現し、処理速度が飛躍的に向上し、システム全体の処理速度をハードウェア処理速度に迫る高速度化を実現できる。 According to the present invention, each of the plurality of units receives the processing result finally obtained by the second processor in the basic unit by the plurality of internal basic units via the first bus interface. Since data is output from the data output port to the data bus, basic data transfer is performed between the basic units, and access to the main memory is performed only by the first-stage basic unit and the final-stage basic unit. Since data is transferred within each unit of multiple units, bus traffic to the main memory can be greatly reduced. As a result, the performance of the entire system can be improved, and each basic unit performs processing independently of each other. Therefore, so-called parallel / distributed processing is realized, the processing speed is dramatically improved, and the processing speed of the entire system is increased. It can achieve speeds approaching the hardware processing speed.
また、マルチプロセッサによる並列・分散処理ではプロセッサ間の複雑な制御が必要であるが、本発明では基本ユニット間のプロセッサ間制御はごく単純なものとなり、大規模化が容易であり、更に、基本ユニット同士はハードウェア接続のため、データ転送がリアルタイムで扱える。更にメインメモリへの一時的なデータ保存がなくなり無駄なバス使用が減少するため、システム全体の処理能力が向上する。 In addition, multi-processor parallel / distributed processing requires complex control between processors. However, in the present invention, control between processors between basic units is very simple and easy to scale up. Since the units are connected by hardware, data transfer can be handled in real time. Further, since temporary data storage in the main memory is eliminated and useless bus use is reduced, the processing capacity of the entire system is improved.
次に、本発明の実施の形態について図面と共に説明する。まず、本発明のマルチプロセッサシステムで用いるプロセッサの構成について説明する。本発明で用いるプロセッサは、基本ユニットである第1のユニット(以下、「Pユニット」という)と、図11の一つのCPUに相当する第2のユニット(以下、「Mユニット」という)とから少なくとも構成される。 Next, embodiments of the present invention will be described with reference to the drawings. First, the configuration of the processor used in the multiprocessor system of the present invention will be described. The processor used in the present invention includes a first unit (hereinafter referred to as “P unit”) which is a basic unit and a second unit (hereinafter referred to as “M unit”) corresponding to one CPU in FIG. At least composed.
図1はPユニットの一実施の形態のブロック図を示す。同図に示すように、Pユニット100は、一つのデータ入力ポート101と、ダイレクト・メモリ・アクセス転送(DMA転送)を行わせるコントローラ、すなわち、DMACによるバスインタフェース(バスI/F)102と、各種の演算を行う一つのCPU103と、命令を格納している一つのプログラムメモリ104と、一つのデータメモリ(RAM)105と、一つのデータ出力ポート106とより構成される。
FIG. 1 shows a block diagram of an embodiment of a P unit. As shown in the figure, the
Pユニット100では、データ入力ポート101に入力され、バスI/F102を経由してデータ出力ポート106から出力されるデータは、処理データのみであり、時間的に一定の間隔で処理結果が得られるものである。また、プログラムメモリ104からCPU103に対する命令(ファームウェア)により、自由に機能実装ができるため(プログラマブルなので処理内容をかえることができるため)、複雑な処理の実現も可能である。
In the
図2はMユニットの一実施の形態のブロック図を示す。同図に示すように、Mユニット200は、一つのデータ入力ポート201と、高機能DMACによるバスI/F202と、Pユニット接続ブロック203と、一つのデータ出力ポート204とから構成される。Pユニット接続ブロック203は、データ入力ポート201から入力されたデータが、バスI/F202を介して入力される、それぞれ図1の構成の複数のPユニットからなり、処理したデータをバスI/F202を経由してデータ出力ポート204へ出力する構成である。従って、Mユニット200は、Pユニット接続ブロック203を構成するPユニットの数及び接続状態により、複数の種類が存在する。
FIG. 2 shows a block diagram of an embodiment of the M unit. As shown in the figure, the
例えば、Pユニット接続ブロック203を構成するPユニットを2つ持つMユニットとしては、図3(A)に示すMユニット210と、図3(B)に示すMユニット220の2種類が存在する。図3(A)に示すMユニット210は、直列に接続された2つのPユニット211及び212により、Pユニット接続ブロック203を構成している。また、図3(B)に示すMユニット220は、並列に接続された2つのPユニット221及び222により、Pユニット接続ブロック203を構成している。
For example, there are two types of M units having two P units constituting the P unit connection block 203: an
上記のPユニット接続ブロック203を構成する複数のPユニット211及び212、又は221及び222は、独立で処理を行うため、いわゆる並列・分散処理が実現し、処理速度が飛躍的に向上する。
Since the plurality of
このように、Mユニット200は、目的に応じてPユニットの接続状態を自由に変えられる仕組みを持っている。Pユニット同士の接続はそれぞれの入力と出力を直接ハードウェア的に接続する方法もあるし、お互いのDMACが相手と連携し、データを直接やり取りできる方法もある。Pユニット同士の接続を、それぞれの入力と出力を直接ハードウェア的に接続するものとした場合は、データ転送がリアルタイムで扱える。
Thus, the
図4は本発明になるマルチプロセッサシステムの一実施の形態のブロック図を示す。同図に示すように、本実施の形態は、システム制御CPU301がプログラムメモリ302に接続され、また、データバス304を介してk台(kは1以上の自然数)のMユニット200−1、200−2、・・・、200−kと、メインメモリ303に接続された構成であり、システム制御CPU301とMユニット200−1〜200−kとは、データバス304を介してメインメモリ303を共有している。
FIG. 4 shows a block diagram of an embodiment of a multiprocessor system according to the present invention. As shown in the figure, in this embodiment, a
次に、本実施の形態の動作について、図5のフローチャートを併せ参照して説明する。ここでは、一例として処理の流れがMユニット200−1、200−2、・・・、200−kと順番に進む場合を例にとって説明する。システム制御CPU301が、プログラムメモリ302からの命令に従って、まずMユニット200−1へデータバス304を介して処理開始命令を出力する(ステップS21)。すると、Mユニット200−1は、処理用データをメインメモリ303からデータバス304を介して読み込み(ステップS22)、その処理用データに対してMユニット200−1内の複数のPユニットが後述するように順次にデータ処理する(ステップS23)。Mユニット200−1はこのようにしてデータ処理した結果を、データバス304を介してメインメモリ303へ転送し、書き込む(ステップS24)。
Next, the operation of the present embodiment will be described with reference to the flowchart of FIG. Here, a case where the flow of processing proceeds in order of M units 200-1, 200-2,..., 200-k will be described as an example. The
続いて、システム制御CPU301は、次のMユニット200−2へデータバス304を介して処理開始命令を出力する(ステップS25)。すると、Mユニット200−2は、メインメモリ303に書き込まれているMユニット2001−により処理された処理結果をメインメモリ303からデータバス304を介して読み込み(ステップS26)、その処理結果に対してMユニット200−2内の複数のPユニットが後述するように順次データ処理し(ステップS27)、その処理結果を、データバス304を介してメインメモリ303へ転送し、書き込む(ステップS28)。以下、上記と同様にして、複数のMユニットにより、順次データ処理が行われて、最終段のMユニット200−kにより処理された最終処理結果がメインメモリ303に格納されて一連の処理が終了する。
Subsequently, the
ここで、Mユニット200−1〜200−kのそれぞれのMユニットの動作について、更に詳細に図6のフローチャートと共に説明する。Mユニット内のPユニット接続ブロックにPユニット0からPユニットnまでの(n+1)個のPユニットがあり、処理の流れがPユニット0、Pユニット1、・・・、Pユニットnの順で進む場合を例にとって説明する。
Here, the operation of each M unit of the M units 200-1 to 200-k will be described in more detail with reference to the flowchart of FIG. There are (n + 1) P units from P unit 0 to P unit n in the P unit connection block in the M unit, and the processing flow is in the order of P unit 0,
まず、システム制御CPU301から処理開始命令を受けたMユニットは、その内部のPユニット接続ブロック内の初段のPユニット0が、処理に必要な処理用データをメインメモリ303から読み込み(ステップS31)、その処理用データを処理し(ステップS32)、得られた処理結果をPユニット0内のメモリ(図1のデータメモリ105に相当)に保存する。次段のPユニット1はPユニット0内のメモリからPユニット0の処理結果のデータを読み込み(ステップS33)、その処理結果のデータに対して所定の処理を行い(ステップS34)、同様に得られた処理結果をPユニット1内のメモリ(図1のデータメモリ105に相当)に保存する。
First, in the M unit that has received the processing start command from the
次段のPユニット2はPユニット1内のメモリからPユニット1の処理結果のデータを読み込む(ステップS35)。以下、上記と同様の動作を繰り返し、最終段のPユニットnがデータを処理し(ステップS36)、得られた最終の処理結果をPユニットnがメインメモリ303に書き込む(ステップS37)。
The P unit 2 at the next stage reads data of the processing result of the
このように、本実施の形態では、基本的なデータ転送はPユニット間で行われ、メインメモリ303へのアクセスは、図6のステップS31での初段Pユニット0と、ステップS37での最終段Pユニットnのみしか行わず、それ以外ではMユニット内でデータ転送するため、メインメモリ303へのバストラフィックは大幅に減少する。この結果、システム全体のパフォーマンス向上が可能となる。
As described above, in this embodiment, basic data transfer is performed between P units, and access to the
また、図11に示した従来のマルチプロセッサシステムで、例えば5個のCPU処理部11−1〜11−5が行う処理を、図4のMユニット200−1で実現し、図11の例えば3個のDSP処理部(12−1〜12−3)が行う処理を、図4のMユニット200−2で実現すると、メインメモリ303へのアクセスは従来16対(読み出し、書き込みで1対)行われていたものが、図4の実施の形態では2対へと大幅に減少する。
Further, in the conventional multiprocessor system shown in FIG. 11, for example, the processing performed by the five CPU processing units 11-1 to 11-5 is realized by the M unit 200-1 in FIG. When the processing performed by the DSP processing units (12-1 to 12-3) is realized by the M unit 200-2 in FIG. 4, the access to the
更に、本実施の形態では、各Mユニットでまとまった処理を行うため、メインメモリ303でのデータの一時保存は無くなる。全システムの大規模化はMユニットの数で対応できるが、Mユニットの大規模化でも対応できる。システムの目的、効率にあった方法がとれる。本実施の形態においては、Pユニット間のプロセッサ間制御はごく単純なものとなり、大規模化が容易である。
Furthermore, in this embodiment, since the processing is performed in each M unit, temporary storage of data in the
また、更に、近年CPUは飛躍的に微細化が進み、図4のCPU301、プログラムメモリ302、Mユニット200−1〜200−k及びデータバス304の多数のプロセッサを含む部分を一つの大規模半導体集積回路(LSI)で構成することもでき、このようなLSIを用いて大規模なマルチプロセッサシステムを構築することができる。
Further, in recent years, CPUs have been remarkably miniaturized, and a part including a
なお、本発明は上記の実施の形態に限定されるものではなく、例えば、図6では初段のPユニット0からデータの処理が開始され、以下、次段のPユニット1、・・・と処理が進み、最終段のPユニットnで処理が終了するように説明したが、本発明はこれに限らず、Mユニットが図3(B)に示すような構成の場合は、複数のPユニットが並列に同時に動作を行う構成も可能であり、また、直列接続されたPユニット群と、並列接続されたPユニット群とが混在する構成であっても勿論よい。
Note that the present invention is not limited to the above-described embodiment. For example, in FIG. 6, data processing is started from the first P unit 0, and the following
また、図4において、システム制御CPU301と共にデータバス304を介してメインメモリ303を共有しているMユニット200−1〜200−kは、それぞれ同一構成であってもよいし、それらの一部又は全部が互いに異なる構成であってもよいことは勿論である。
In FIG. 4, the M units 200-1 to 200-k sharing the
更に、上記の実施の形態では、ユニットはPユニット100とMユニット200の2種類で説明したが、本発明のマルチプロセッサシステムにおいて、データバスに接続されるユニットは、Mユニット200に限定されるものではなく、例えば、図2のPユニット接続ブロック203に替えてMユニット接続ブロックとする第3のユニットであってもよく、要は、DMACによるバスI/Fに接続されるユニット接続ブロックが、少なくともPユニット100を基本単位として多層化した集合体であればよい。
Furthermore, in the above embodiment, two types of units have been described: the
100、211、212、221、222 Pユニット
101、201 データ入力ポート
102 DMACによるバスI/F
103 中央処理装置(CPU)
104、302 プログラムメモリ
105 データメモリ(RAM)
106、204 データ出力ポート
200、200−1〜200−k、210、220 Mユニット
202 高機能DMACによるバスI/F
203 Pユニット接続ブロック
301 システム制御中央処理装置(CPU)
303 メインメモリ
304 データバス
100, 211, 212, 221, 222
103 Central processing unit (CPU)
104, 302
106, 204
203 P unit connection block 301 System control central processing unit (CPU)
303
Claims (2)
前記複数のユニットのそれぞれは、
前記第1のプロセッサからの処理開始命令により、前記メインメモリから第1のデータ入力ポートを介してデータを読み込み、最終的な処理結果を第1のデータ出力ポートから前記メインメモリへ出力する、ダイレクトメモリ転送コントローラによる第1のバスインタフェースと、
前記第1のバスインタフェースを介して入力されたデータに対して、ユニット毎に独立して所定の処理を行い、最終的に得られた処理結果を前記第1のバスインタフェースへ出力するように接続された複数の基本ユニットと
を有し、前記基本ユニットの数及び互いの接続方法が互いに同一又は一部若しくは全部が異なる構成であり、
前記複数の基本ユニットのそれぞれは、
ダイレクトメモリ転送コントローラによる第2のバスインタフェースと、
所定の動作を行わせるためのプログラムが記憶された第2のプログラムメモリと、
第2のデータ入力ポートを介して前記第2のバスインタフェースに入力されたデータに対して、前記第2のプログラムメモリのプログラムに従って所定の処理を行い、得られた処理結果を前記第2のバスインタフェースを介して第2のデータ出力ポートへ出力する第2のプロセッサと、
前記第2のプロセッサによる前記処理結果を一時記憶するデータメモリと
を有することを特徴とするマルチプロセッサシステム。 A multiprocessor system having a configuration in which a first processor for system control is connected to a first program memory and is connected to a main memory via a data bus together with a plurality of units,
Each of the plurality of units is
In response to a processing start command from the first processor, data is read from the main memory via the first data input port, and a final processing result is output from the first data output port to the main memory. A first bus interface by a memory transfer controller;
A connection is made so that data input via the first bus interface is subjected to predetermined processing independently for each unit, and the final processing result is output to the first bus interface. A plurality of basic units, and the number of the basic units and the connection method to each other are the same or partly or entirely different from each other,
Each of the plurality of basic units is
A second bus interface by a direct memory transfer controller;
A second program memory in which a program for performing a predetermined operation is stored;
Predetermined processing is performed on the data input to the second bus interface via the second data input port according to the program in the second program memory, and the obtained processing result is displayed on the second bus. A second processor for outputting to a second data output port via the interface;
A multiprocessor system, comprising: a data memory for temporarily storing the processing result by the second processor.
In each of the plurality of units, the basic unit in the first stage among the plurality of basic units in the unit accesses the main memory to read processing data from the main memory, and passes through the first bus interface. The processing data input in step 1 is processed and the processing result is read into the data memory in the first-stage basic unit, and the remaining basic units excluding the first-stage basic unit among the plurality of basic units. Receives the result processed by the previous basic unit, outputs the processed result to the next basic unit, and obtains the final result obtained by processing the final basic unit among the plurality of basic units. 2. The processing result is written to the main memory via the first bus interface. Multi-processor system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006005130A JP2007188249A (en) | 2006-01-12 | 2006-01-12 | Multiprocessor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006005130A JP2007188249A (en) | 2006-01-12 | 2006-01-12 | Multiprocessor system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007188249A true JP2007188249A (en) | 2007-07-26 |
Family
ID=38343386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006005130A Pending JP2007188249A (en) | 2006-01-12 | 2006-01-12 | Multiprocessor system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007188249A (en) |
-
2006
- 2006-01-12 JP JP2006005130A patent/JP2007188249A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7386689B2 (en) | Method and apparatus for connecting a massively parallel processor array to a memory array in a bit serial manner | |
JP2007041781A (en) | Reconfigurable integrated circuit device | |
JP2016189096A (en) | Semiconductor device | |
JP2006099719A (en) | Processing device | |
JPH08235130A (en) | Parallel processor | |
JP5601327B2 (en) | Data rearrangement circuit, variable delay circuit, fast Fourier transform circuit, and data rearrangement method | |
JP2001084229A (en) | Simd-type processor | |
JP2007188249A (en) | Multiprocessor system | |
JP2019220003A (en) | Data processing apparatus, data processing method, and program | |
US9507541B2 (en) | Computation device, computation method, and medium | |
JPWO2007099950A1 (en) | Processor array system with high-speed inter-PE data relocation function | |
JP2006350907A (en) | Simd type microprocessor, data transfer unit, and data conversion unit | |
JP5196946B2 (en) | Parallel processing unit | |
JP4482356B2 (en) | Image processing method and image processing apparatus using SIMD processor | |
JP2009187313A (en) | Descriptor control method, direct memory transfer device, and program | |
JP6141062B2 (en) | Data processing apparatus and clock supply method | |
JPH0646413B2 (en) | Data processing processor | |
JP2514473B2 (en) | Parallel processor | |
JP2018092325A (en) | Arithmetic processing device | |
JPS6398056A (en) | Dma control circuit | |
JP4403009B2 (en) | Microprocessor | |
JP4413905B2 (en) | SIMD type processor | |
JP2004206387A (en) | Image processing method, processor, and image processor | |
CN113867798A (en) | Integrated computing device, integrated circuit chip, board card and computing method | |
JP2001350714A (en) | Data processor |